.MobileTabBar-module__90B2na__bar{left:var(--space-3);right:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom));z-index:var(--z-tabbar);height:var(--tabbar-h);padding:var(--space-1);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);grid-template-columns:repeat(5,1fr);display:grid;position:fixed}.MobileTabBar-module__90B2na__tab{border-radius:var(--radius-pill);color:var(--muted);font-size:var(--text-xs);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.MobileTabBar-module__90B2na__tab:hover{color:var(--text);text-decoration:none}.MobileTabBar-module__90B2na__on{color:var(--accent);background:var(--accent-soft)}.MobileTabBar-module__90B2na__scrim{z-index:calc(var(--z-tabbar) - 2);background:var(--scrim);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);position:fixed;inset:0}.MobileTabBar-module__90B2na__scrimOn{opacity:1;pointer-events:auto}.MobileTabBar-module__90B2na__sheet{left:var(--space-3);right:var(--space-3);bottom:calc(var(--tabbar-h) + var(--space-5) + env(safe-area-inset-bottom));z-index:calc(var(--z-tabbar) - 1);padding:var(--space-3) var(--space-4) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);transform:translateY(calc(100% + var(--tabbar-h) + var(--space-8)));transition:transform var(--dur-slow) var(--ease);position:fixed}.MobileTabBar-module__90B2na__sheetOn{transform:none}.MobileTabBar-module__90B2na__grip{width:var(--space-10);height:var(--space-1);margin:0 auto var(--space-3);border-radius:var(--radius-pill);background:var(--border);display:block}.MobileTabBar-module__90B2na__grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.MobileTabBar-module__90B2na__cell{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--text-xs);text-align:center;flex-direction:column;display:flex}.MobileTabBar-module__90B2na__cell:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.MobileTabBar-module__90B2na__foot{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}
:root,:root[data-theme=light]{--bg:#fafaf7;--surface:#fff;--text:#1c1c1e;--muted:#6b6b70;--border:#e6e5df;--accent:#1967d2;--story-1:#1f4fbf;--story-2:#1f4fbf;--story-3:#1f4fbf;--ink:#1f4fbf;--signal:#c2410c;--paper-line:#1f4fbf12;--watermark-ink:#1f4fbf17;--panel-bg:#14295c;--panel-text:#f3f5fb;--panel-muted:#f3f5fba8;--panel-line:#f3f5fb14;--panel-edge:#f3f5fb38;--accent-soft:#1967d214;--on-accent:#fff;--warn:#9a6212;--off:#9a9aa0;--scrim:#00000059;--overlay:#050608f0;--on-overlay:#fff;--on-overlay-muted:#ffffff26;--shadow:0 1px 2px #0000000a, 0 8px 24px #0000000f;--shadow-lg:0 24px 80px #0000002e;--term-bg:#16181d;--term-text:#d7dae0;--term-accent:#8ab4f8;--term-muted:#7d8590;--term-warn:#fbbf24;--term-line:#ffffff0f;--term-chip:#ffffff0d;--term-chip-border:#ffffff1a;--term-dot-close:#ff5f57;--term-dot-min:#febc2e;--term-dot-max:#28c840}:root[data-theme=dark]{--bg:#0b1424;--surface:#101c30;--text:#e6ebf3;--muted:#8d9bb1;--border:#1f2e48;--accent:#8ab4f8;--story-1:#8ab4f8;--story-2:#8ab4f8;--story-3:#8ab4f8;--ink:#8ab4f8;--signal:#ff9f5a;--paper-line:#8ab4f812;--watermark-ink:#8ab4f81a;--panel-bg:#111c38;--panel-text:#eef2fb;--panel-muted:#eef2fb9e;--panel-line:#eef2fb0f;--panel-edge:#eef2fb2e;--accent-soft:#8ab4f81f;--on-accent:#0b1424;--warn:#fbbf24;--off:#5c636e;--shadow:0 0 0 1px var(--border);--shadow-lg:0 24px 80px #00000080;--term-bg:#08090b;--term-muted:#6e7681}:root{--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-16:4rem;--space-24:6rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-h3:clamp(1.125rem, 1.4vw, 1.3rem);--text-diagram:13px;--text-diagram-sm:10.5px;--text-diagram-note:19px;--text-note:clamp(1.15rem, 1.5vw, 1.4rem);--text-display:clamp(2.1rem, 4.6vw, 3.6rem);--text-title:clamp(1.75rem, 3.2vw, 2.4rem);--text-watermark:clamp(4rem, 14.5vw, 16rem);--text-watermark-sm:clamp(4rem, 9vw, 7.5rem);--radius-xs:6px;--radius-sm:12px;--radius:20px;--radius-lg:28px;--radius-pill:999px;--max:1040px;--max-prose:760px;--gutter:var(--space-4);--nav-h:52px;--size-control:2.5rem;--size-control-sm:2.125rem;--size-badge:3.5rem;--size-brand:1.125rem;--tabbar-h:3.75rem;--size-portrait:clamp(13rem, 22vw, 20rem);--size-story-w:clamp(9rem, 17vw, 14rem);--size-story-h:8.5rem;--size-story-h-sm:5.5rem;--size-story-band:7.5rem;--size-story-side:clamp(14rem, 24vw, 20rem);--size-portrait-sm:10rem;--size-paper:32px;--size-watermark:clamp(22rem, 46vw, 44rem);--size-margin:clamp(11rem, 18vw, 15rem);--ease:cubic-bezier(.22, 1, .36, 1);--dur-fast:.15s;--dur:.3s;--dur-slow:.6s;--dur-draw:1.1s;--stagger-draw:35ms;--z-backdrop:-1;--z-rail:30;--z-nav:50;--z-panel:60;--z-tabbar:80;--z-console:95;--z-palette:100;--z-toast:150;--z-egg:200;--z-lightbox:300}
*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--space-5))}body{counter-reset:story;background-color:var(--bg);background-image:linear-gradient(var(--paper-line) 1px, transparent 1px), linear-gradient(90deg, var(--paper-line) 1px, transparent 1px);background-size:var(--size-paper) var(--size-paper);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);margin:0;line-height:1.65}h1,h2,h3{letter-spacing:-.025em;text-wrap:balance;font-weight:600;line-height:1.15}p{text-wrap:pretty}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--space-1)}.container{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.js .reveal{opacity:0;transform:translateY(var(--space-5));transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease)}.js .reveal.in{opacity:1;transform:none}.flash{animation:1.2s flash}@keyframes flash{0%{box-shadow:0 0 0 0 var(--accent-soft)}30%{box-shadow:0 0 0 var(--space-3) var(--accent-soft)}to{box-shadow:0 0 #0000}}[data-spotlight]{isolation:isolate;position:relative}[data-spotlight]:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%), var(--accent-soft), transparent 60%);opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none;position:absolute;inset:0}[data-spotlight]:hover:before{opacity:1}.prose{font-size:var(--text-lg);line-height:1.75}.prose h2{font-size:var(--text-2xl);margin:var(--space-12) 0 var(--space-3)}.prose h3{font-size:var(--text-xl);margin:var(--space-8) 0 var(--space-2)}.prose p,.prose ul,.prose ol{margin:0 0 var(--space-5)}.prose li+li{margin-top:var(--space-2)}.prose a{text-underline-offset:3px;text-decoration:underline}.prose img{border-radius:var(--radius);margin:var(--space-6) 0}.prose blockquote{margin:var(--space-6) 0;padding:var(--space-1) var(--space-5);border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--muted)}.prose code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--accent-soft);padding:2px var(--space-2);border-radius:var(--radius-sm)}.prose pre{background:var(--term-bg);color:var(--term-text);padding:var(--space-5);border-radius:var(--radius);margin:var(--space-6) 0;font-size:var(--text-sm);line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--border);margin:var(--space-10) 0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
