@import "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;600;700;900&family=Yuji+Syuku&family=Noto+Sans+JP:wght@300;400;500;600;700;800;900&display=swap";
:root{--bg-primary:#fcfaf2;--bg-secondary:#f4efe2;--bg-card:#fff;--bg-card-hover:#faf8f2;--bg-elevated:#eae3d2;--bg-glass:#fcfaf2e6;--text-primary:#2b2b2b;--text-secondary:#5c5a54;--text-muted:#8c887d;--text-dim:#b0ab9e;--border-primary:#8c887d33;--border-hover:#c0542d4d;--border-accent:#c0542d80;--accent-indigo:#c0542d;--accent-indigo-dim:#c0542d1a;--accent-amber:#b88a3e;--accent-amber-dim:#b88a3e1a;--accent-red:#aa3838;--accent-red-dim:#aa38381a;--accent-green:#5a7e66;--accent-green-dim:#5a7e661a;--accent-cyan:#4c8da0;--accent-cyan-dim:#4c8da01a;--accent-purple:#705480;--accent-purple-dim:#7054801a;--shadow-sm:0 2px 4px #2b2b2b0d;--shadow-md:0 8px 16px #2b2b2b14;--shadow-lg:0 16px 32px #2b2b2b1a;--shadow-glow-indigo:0 4px 20px #c0542d1f;--shadow-glow-amber:0 4px 20px #b88a3e1f;--font-serif:"Shippori Mincho", "Noto Serif JP", serif;--font-sans:"Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;--font-brush:"Yuji Syuku", serif;--font-mono:monospace;--section-padding:clamp(3rem, 8vw, 6rem);--container-max:1200px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--radius-full:9999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(#8c887d0d 1px,#0000 0);background-size:24px 24px;line-height:1.8;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}.container{max-width:var(--container-max);margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}.section{padding:var(--section-padding) 0}.section-title{font-family:var(--font-serif);letter-spacing:.05em;color:var(--text-primary);margin-bottom:.5rem;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;display:inline-block;position:relative}.section-title:after{content:"";background:var(--accent-indigo);width:60px;height:2px;position:absolute;bottom:-4px;left:0}.section-subtitle{color:var(--text-secondary);max-width:600px;margin-top:1rem;font-size:.95rem}.glass{background:var(--bg-card);border:1px solid var(--border-primary);box-shadow:var(--shadow-sm)}.badge{border-radius:var(--radius-sm);letter-spacing:.05em;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.tech-tag{border-radius:var(--radius-sm);color:var(--text-secondary);border:1px solid var(--border-primary);white-space:nowrap;background:#8c887d14;align-items:center;padding:.2rem .6rem;font-size:.75rem;font-weight:500;display:inline-flex}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in-up{animation:fadeInUp .8s var(--transition-base) both}.animate-delay-1{animation-delay:.15s}.animate-delay-2{animation-delay:.3s}.animate-delay-3{animation-delay:.45s}.animate-delay-4{animation-delay:.6s}.animate-delay-5{animation-delay:.75s}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--text-dim);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{color:var(--text-primary);background:#c0542d26}
