:root{--color-sumi:#0f1118;--color-sumi-soft:#161824;--color-sumi-surface:#1a1d2a;--color-sumi-hover:#252840;--color-sumi-card:#181b28;--color-kuro:#2a2a3a;--color-kuro-soft:#3a3a4e;--color-gofun:#f5f1ea;--color-gofun-soft:#ede8de;--color-gofun-surface:#fff;--color-gofun-hover:#f6f2ea;--color-shiro:#d8d0c4;--color-shiro-soft:#c8c0b4;--color-shu:#c73e3a;--color-shu-hover:#d94a46;--color-shu-subtle:#c73e3a1a;--color-sakura:#e293a3;--color-sakura-subtle:#e293a31a;--color-matcha:#7e8f75;--color-matcha-subtle:#7e8f751a;--color-ai:#1f364b;--color-ai-subtle:#1f364b1a;--color-mugi:#c9a84a;--color-mugi-subtle:#c9a84a14;--color-nezumi:#b5ada2;--color-rikyu:#97907f;--color-bg:var(--color-sumi);--color-bg-alt:var(--color-sumi-soft);--color-surface:var(--color-sumi-surface);--color-surface-card:var(--color-sumi-card);--color-surface-hover:var(--color-sumi-hover);--color-border:var(--color-kuro);--color-border-light:var(--color-kuro-soft);--color-text:#f2ede4;--color-text-secondary:var(--color-nezumi);--color-text-muted:var(--color-rikyu);--color-accent:var(--color-shu);--color-accent-hover:var(--color-shu-hover);--color-accent-subtle:var(--color-shu-subtle);--color-accent-alt:var(--color-sakura);--color-success:var(--color-matcha);--color-error:#b84a4a;--font-display:"Noto Serif JP", "Georgia", serif;--font-body:"Zen Kaku Gothic New", "Hiragino Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", monospace;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.75rem;--text-3xl:2rem;--text-4xl:2.5rem;--text-5xl:3.2rem;--text-6xl:4rem;--leading-tight:1.2;--leading-snug:1.4;--leading-normal:1.65;--leading-relaxed:1.8;--tracking-tight:-.01em;--tracking-normal:.02em;--tracking-wide:.06em;--tracking-wider:.1em;--ma-xs:.25rem;--ma-sm:.5rem;--ma-md:1rem;--ma-lg:2rem;--ma-xl:4rem;--ma-2xl:6rem;--ma-3xl:8rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-18:4.5rem;--space-20:5rem;--space-24:6rem;--space-28:7rem;--space-32:8rem;--max-width:1280px;--max-width-narrow:720px;--content-padding:var(--space-6);--radius-sharp:0;--radius-wabi:.5rem;--radius-lg:.75rem;--radius-enso:9999px;--shadow-subtle:0 1px 3px #0006;--shadow-shoji:0 4px 20px #00000080;--shadow-deep:0 8px 40px #0009;--shadow-accent:0 0 30px #c73e3a14;--transition-zen:.4s cubic-bezier(.25, 1, .5, 1);--transition-fast:.2s cubic-bezier(.25, .46, .45, .94);--transition-base:.4s cubic-bezier(.25, .46, .45, .94);--transition-slow:.6s cubic-bezier(.25, .46, .45, .94);--z-header:100;--z-overlay:200;--z-modal:300}.container{width:100%;max-width:var(--max-width);padding-inline:var(--content-padding);margin-inline:auto}.container-narrow{width:100%;max-width:var(--max-width-narrow);padding-inline:var(--content-padding);margin-inline:auto}:root{--pattern-seigaiha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M30 15 Q45 15 45 25 Q45 35 30 35 Q15 35 15 25 Q15 15 30 15z' fill='none' stroke='%232a2a3a' stroke-width='0.5'/%3E%3Cpath d='M30 5 Q45 5 45 15 Q45 25 30 25 Q15 25 15 15 Q15 5 30 5z' fill='none' stroke='%232a2a3a' stroke-width='0.3'/%3E%3C/svg%3E")}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:auto}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh;letter-spacing:var(--tracking-normal);transition:background-color var(--transition-zen), color var(--transition-zen);overflow-x:hidden}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text);transition:color var(--transition-zen)}h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}.section{padding-block:var(--space-24);content-visibility:auto;contain-intrinsic-size:auto 800px;position:relative}.hero{content-visibility:visible}.section:nth-child(odd of .section){background:var(--color-bg)}.section:nth-child(2n of .section){background:var(--color-bg-alt)}.section:after{content:"";background:linear-gradient(to bottom, transparent, var(--color-bg));pointer-events:none;height:60px;position:absolute;bottom:0;left:0;right:0}.section:nth-child(2n of .section):after{background:linear-gradient(to bottom, transparent, var(--color-bg-alt))}.section:last-child:after{display:none}.section-label{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4);transition:color var(--transition-zen);font-weight:600;display:block}.section-title{margin-bottom:var(--space-4);transition:color var(--transition-zen)}.section-subtitle{font-size:var(--text-base);color:var(--color-text-secondary);max-width:540px;line-height:var(--leading-relaxed);transition:color var(--transition-zen)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}::selection{background:var(--color-accent-subtle);color:var(--color-text)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg-alt)}::-webkit-scrollbar-thumb{background:var(--color-border)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}.tag{font-size:var(--text-xs);letter-spacing:.04em;background:var(--color-accent-subtle);color:var(--color-accent);white-space:nowrap;align-items:center;padding:.25rem .75rem;font-weight:500;display:inline-flex}.tag-outline{border:1px solid var(--color-border);color:var(--color-text-secondary);letter-spacing:.02em;transition:border-color var(--transition-zen), color var(--transition-zen);background:0 0;font-weight:400}@media (width<=768px){h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}.section{padding-block:var(--space-16)}:root{--content-padding:var(--space-4)}}@media (width<=480px){h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}.section{padding-block:var(--space-12)}}
