:root{--color-bg: #ffffff;--color-bg-raised: #fafafa;--color-bg-panel: #ffffff;--color-ink: #111214;--color-ink-soft: #55585f;--color-muted: #8a8d94;--color-line: #e9e9ea;--color-line-strong: #d6d6d8;--color-accent: #3d4b73;--color-accent-soft: #f1f3f8;--color-accent-ink: #2c3858;--shadow-card: 0 1px 2px rgba(17, 18, 20, .04), 0 10px 28px -14px rgba(17, 18, 20, .16);--font-sans: "Inter", "Noto Sans JP", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "Noto Sans Mono JP", ui-monospace, monospace;--fs-000: .75rem;--fs-00: .8125rem;--fs-0: .9375rem;--fs-1: 1.0625rem;--fs-2: 1.25rem;--fs-3: 1.6rem;--fs-4: 2.1rem;--fs-5: 2.75rem;--fs-6: 3.5rem;--fs-7: 4rem;--lh-tight: 1.15;--lh-snug: 1.35;--lh-body: 1.75;--measure: 60ch;--gutter: clamp(1.25rem, 5vw, 4rem);--content-max: 1100px;--section-space: clamp(4rem, 9vw, 7rem);--radius: 16px;--radius-sm: 10px;--radius-pill: 999px;--ease-lab: cubic-bezier(.22, .61, .24, 1);--dur-fast: .18s;--dur-med: .32s;--dur-slow: .7s;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #0b0c0f;--color-bg-raised: #121317;--color-bg-panel: #16181d;--color-ink: #f1f1ee;--color-ink-soft: #b7b8bd;--color-muted: #82858c;--color-line: #24262c;--color-line-strong: #34363d;--color-accent: #8fa0d6;--color-accent-soft: #1a2030;--color-accent-ink: #c2cdf0;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -14px rgba(0, 0, 0, .6);color-scheme:dark}}:root[data-theme=dark]{--color-bg: #0b0c0f;--color-bg-raised: #121317;--color-bg-panel: #16181d;--color-ink: #f1f1ee;--color-ink-soft: #b7b8bd;--color-muted: #82858c;--color-line: #24262c;--color-line-strong: #34363d;--color-accent: #8fa0d6;--color-accent-soft: #1a2030;--color-accent-ink: #c2cdf0;--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -14px rgba(0, 0, 0, .6);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--fs-0);line-height:var(--lh-body);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;transition:background var(--dur-med) var(--ease-lab),color var(--dur-med) var(--ease-lab)}img,picture,svg{max-width:100%;display:block}a{color:inherit}h1,h2,h3,h4{font-weight:500;line-height:var(--lh-tight);letter-spacing:-.01em;margin:0}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:1px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-3rem;left:1rem;z-index:200;background:var(--color-ink);color:var(--color-bg);padding:.6rem 1rem;font-family:var(--font-mono);font-size:var(--fs-00);transition:top var(--dur-fast) var(--ease-lab)}.skip-link:focus{top:1rem}.wrap{max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-00);color:var(--color-ink);text-decoration:none;border-bottom:1px solid var(--color-line-strong);padding-bottom:2px;transition:border-color var(--dur-fast) var(--ease-lab),color var(--dur-fast) var(--ease-lab)}.btn-primary{font-weight:500}.btn-primary:hover,.btn-secondary:hover{border-color:var(--color-ink)}.badge{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-000);padding:.2rem .65rem;border-radius:var(--radius-pill);border:1px solid var(--color-line-strong);color:var(--color-ink-soft)}.status-active{background:var(--color-accent-soft);color:var(--color-accent-ink);border-color:transparent}.status-dev{background:#fdf3e2;color:#8a5a10;border-color:transparent}:root[data-theme=dark] .status-dev{background:#2e2410;color:#e3b567}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .status-dev{background:#2e2410;color:#e3b567}}.status-concept{background:transparent;color:var(--color-muted);border-style:dashed}.status-archived{background:var(--color-bg-raised);color:var(--color-muted);border-color:transparent}.btn-pill{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--fs-00);font-weight:500;padding:.6rem 1.2rem;border-radius:var(--radius-pill);text-decoration:none;border:1px solid var(--color-line-strong);color:var(--color-ink);transition:border-color var(--dur-fast) var(--ease-lab),background var(--dur-fast) var(--ease-lab),color var(--dur-fast) var(--ease-lab)}.btn-pill:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-pill--primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn-pill--primary:hover{background:var(--color-accent-ink);border-color:var(--color-accent-ink);color:#fff}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-000);color:var(--color-muted);letter-spacing:.02em}.rule{border:0;border-top:1px solid var(--color-line);margin:0}.prose :where(p,ul,ol){max-width:var(--measure)}.prose p+p,.prose p+ul,.prose p+ol{margin-top:1.2em}.prose h2{font-size:var(--fs-3);margin-top:3rem;margin-bottom:1rem}.prose h3{font-size:var(--fs-2);margin-top:2.25rem;margin-bottom:.75rem}.prose a{text-decoration:underline;text-decoration-color:var(--color-line-strong);text-underline-offset:3px}.prose a:hover{text-decoration-color:var(--color-accent)}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--color-bg-raised);padding:.1em .35em;border-radius:var(--radius)}.prose pre{background:var(--color-ink);color:var(--color-bg);padding:1.25rem;overflow-x:auto;border-radius:var(--radius)}.prose pre code{background:none;padding:0}.prose blockquote{border-left:2px solid var(--color-accent);padding-left:1.25rem;color:var(--color-ink-soft);margin:1.5rem 0}.prose img{margin:2rem 0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
