:root{--color-primary:#1f9b7a;--color-primary-hover:#28b089;--color-accent:#c48a1a;--color-bg:#070b10;--color-surface:#0b1219;--color-surface-2:#121a24;--color-text:#e6edf3;--color-text-muted:#8b9bb0;--color-border:#1e2a38;--color-danger:#e06a72;--color-success:#1f9b7a;--wash-hero:radial-gradient(ellipse 80% 70% at 18% 28%, color-mix(in srgb, var(--color-primary) 12%, transparent) 0%, transparent 62%);--wash-lab:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 6%, transparent) 0%, transparent 70%);--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--font-display:"Source Serif 4", "Source Serif Pro", "Noto Serif SC", "Songti SC", Georgia, "Times New Roman", serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--space-chapter:clamp(5rem, 10vw, 10rem);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--content-width:40rem;--page-width:72rem;--header-height:3.5rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.1875rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:3rem;--text-5xl:4.25rem;--text-hero:clamp(3rem, 8vw, 5.5rem);--text-chapter:clamp(2rem, 4vw, 3rem);--shadow-featured:0 24px 48px #00000059;--ease-out:cubic-bezier(.22, 1, .36, 1);--transition-fast:.15s var(--ease-out);--transition-med:.22s var(--ease-out);color-scheme:dark}[data-theme=light]{--color-primary:#187a60;--color-primary-hover:#146852;--color-accent:#a86e0c;--color-bg:#f4f6f8;--color-surface:#fff;--color-surface-2:#e8eef4;--color-text:#121820;--color-text-muted:#5a6a7a;--color-border:#d0d8e0;--color-danger:#c23b44;--color-success:#187a60;--wash-hero:radial-gradient(ellipse 80% 70% at 18% 28%, color-mix(in srgb, var(--color-primary) 6%, transparent) 0%, transparent 62%);--wash-lab:linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 4%, transparent) 0%, transparent 70%);--shadow-featured:0 20px 40px #0f1e2814;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}ul,ol{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p{margin:0}.prose{max-width:var(--content-width);font-size:var(--text-base);color:var(--color-text);line-height:1.7}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3,.prose h4{font-family:var(--font-display);scroll-margin-top:calc(var(--header-height) + 1rem);margin-top:1.75em;font-weight:600;line-height:1.3}.prose h2{font-size:var(--text-2xl)}.prose h3{font-size:var(--text-xl)}.prose a{color:var(--color-primary);text-underline-offset:.2em;transition:color var(--transition-med);text-decoration:underline 1.5px}.prose a:hover{color:var(--color-primary-hover)}.prose code{font-family:var(--font-mono);background:var(--color-surface-2);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.9em}.prose pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose blockquote{padding:var(--space-2) var(--space-4);border-left:3px solid var(--color-accent);color:var(--color-text-muted);margin-left:0}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.prose th,.prose td{border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:left}.prose th{background:var(--color-surface-2)}.prose .proof,.prose .netlist{border-left:3px solid var(--color-primary);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:0 var(--radius-md) var(--radius-md) 0}.prose ul,.prose ol{padding-left:1.25em}.prose li+li{margin-top:.35em}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);line-height:1.65}.site-shell{flex-direction:column;min-height:100vh;display:flex}.container{width:min(100% - 2 * var(--space-5), var(--page-width));margin-inline:auto}.breakout{width:100%;margin-inline:0}.skip-link{left:var(--space-4);z-index:1000;background:var(--color-accent);color:#111;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:600;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--space-4)}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background:color-mix(in srgb, var(--color-primary) 28%, transparent);color:var(--color-text)}.site-main{padding:0 0 var(--space-9);flex:1}.site-main--padded{padding-top:var(--space-7)}.page-kicker{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-2)}.page-title{font-family:var(--font-display);font-size:clamp(var(--text-3xl), 5vw, var(--text-4xl));letter-spacing:-.03em;margin-bottom:var(--space-3);font-weight:700;line-height:1.15}.page-lead{color:var(--color-text-muted);font-size:var(--text-lg);max-width:60ch;margin-bottom:var(--space-6)}.card-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));display:grid}.chapter{margin:var(--space-chapter) 0 0}.chapter:first-child{margin-top:0}.chapter-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.chapter-head h2{font-family:var(--font-display);font-size:var(--text-chapter);letter-spacing:-.03em;font-weight:600;line-height:1.15}.chapter-head a{color:var(--color-primary);text-underline-offset:.22em;text-decoration:underline 1.5px;text-decoration-color:color-mix(in srgb, var(--color-primary) 45%, transparent);font-size:var(--text-sm);transition:color var(--transition-med), text-decoration-color var(--transition-med)}.chapter-head a:hover{color:var(--color-primary-hover);text-decoration-color:var(--color-primary-hover)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border);color:var(--color-text);font-weight:500;font-size:var(--text-sm);transition:border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);background:0 0;padding:.65rem 1.25rem;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--color-text-muted);background:var(--color-surface-2);color:var(--color-text)}.btn-primary{border-color:var(--color-primary);color:#06110d;background:var(--color-primary)}.btn-primary:hover{border-color:var(--color-primary-hover);background:var(--color-primary-hover);color:#06110d}.link-quiet{color:var(--color-text-muted);text-underline-offset:.22em;text-decoration:underline 1.5px;text-decoration-color:color-mix(in srgb, var(--color-text-muted) 40%, transparent);font-size:var(--text-sm);transition:color var(--transition-fast), text-decoration-color var(--transition-fast);font-weight:500}.link-quiet:hover{color:var(--color-primary);text-decoration-color:var(--color-primary)}.hero-field{min-height:min(72vh,720px);padding:var(--space-9) 0 var(--space-8);align-items:center;display:flex;position:relative;overflow:hidden}.hero-field__inner{z-index:1;width:min(100% - 2 * var(--space-5), var(--page-width));max-width:42rem;margin-inline:auto;position:relative}.hero-field__brand{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-4);letter-spacing:.04em}.hero-field__title{font-family:var(--font-display);font-size:var(--text-hero);letter-spacing:-.045em;margin-bottom:var(--space-5);font-weight:700;line-height:1.02}.hero-field__copy{color:var(--color-text-muted);font-size:var(--text-lg);max-width:36ch;margin-bottom:var(--space-6);line-height:1.6}.hero-field__actions{align-items:center;gap:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.lab-band{padding:var(--space-9) 0;background:var(--color-surface);border-block:1px solid var(--color-border);position:relative;overflow:hidden}.lab-band__inner{z-index:1;width:min(100% - 2 * var(--space-5), var(--page-width));margin-inline:auto;position:relative}.lab-shelf{flex-direction:column;gap:0;display:flex}.lab-play{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);align-items:baseline;gap:var(--space-3) var(--space-5);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.lab-play__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.4rem;display:inline-flex}.lab-play__dot{background:var(--color-accent);border-radius:50%;flex-shrink:0;width:.45rem;height:.45rem}.lab-play a{color:var(--color-text-muted);transition:color var(--transition-fast);text-decoration:none}.lab-play a:hover{color:var(--color-primary)}.lab-play__sep{color:var(--color-border);user-select:none}.about-whisper{max-width:42rem;color:var(--color-text-muted);font-size:var(--text-lg);line-height:1.7}.about-whisper p{margin-bottom:var(--space-3)}.about-whisper a{color:var(--color-primary);text-underline-offset:.22em;text-decoration:underline 1.5px}.meta-row{gap:var(--space-2) var(--space-4);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.empty-state{padding:var(--space-5);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);background:var(--color-surface)}.list-rail{flex-direction:column;display:flex}.game-panel{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);padding:var(--space-5);max-width:640px}.game-toolbar{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.truth-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:var(--text-sm)}.truth-table th,.truth-table td{border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:center}.truth-table th{background:var(--color-surface-2);color:var(--color-primary)}.gate-choices{gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap;display:flex}.gate-choices button{font-family:var(--font-mono);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-md);transition:border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);padding:.45rem .8rem}.gate-choices button[aria-pressed=true]{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface-2));color:var(--color-primary)}.game-status{min-height:1.5em;font-family:var(--font-mono);font-size:var(--text-sm)}.game-status.ok{color:var(--color-success)}.game-status.bad{color:var(--color-danger)}.badge{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent);align-items:center;gap:.35rem;display:inline-flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.nav-link[data-astro-cid-3o5q7yvo]{color:var(--color-text-muted);font-size:var(--text-sm);transition:color var(--transition-fast), border-color var(--transition-fast), font-weight var(--transition-fast);border-bottom:1px solid #0000;padding:.2rem 0;font-weight:500;text-decoration:none}.nav-link[data-astro-cid-3o5q7yvo]:hover{color:var(--color-text)}.nav-link[data-astro-cid-3o5q7yvo].is-current{color:var(--color-text);border-bottom-color:var(--color-text);font-weight:600}.theme-toggle[data-astro-cid-l6lhmie6]{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);width:2.25rem;height:2.25rem;color:var(--color-text-muted);transition:border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.theme-toggle[data-astro-cid-l6lhmie6]:hover{border-color:var(--color-text-muted);color:var(--color-text);background:var(--color-surface)}.site-header[data-astro-cid-nen7h5rs]{z-index:50;backdrop-filter:blur(12px);background:color-mix(in srgb, var(--color-surface) 82%, transparent);border-bottom:1px solid var(--color-border);height:auto;position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{min-height:var(--header-height);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.brand[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2);font-family:var(--font-display);color:var(--color-text);font-weight:600;text-decoration:none;display:inline-flex}.brand-mark[data-astro-cid-nen7h5rs]{background:var(--color-primary);border-radius:50%;width:.55rem;height:.55rem}.desktop-nav[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;justify-content:flex-end;display:flex}.nav-item[data-astro-cid-nen7h5rs]{color:var(--color-text-muted);font-size:var(--text-sm);border-bottom:1px solid #0000;text-decoration:none}.nav-item[data-astro-cid-nen7h5rs]:hover{color:var(--color-text)}.nav-item[data-astro-cid-nen7h5rs].is-current{color:var(--color-text);border-bottom-color:var(--color-text);font-weight:600}.library[data-astro-cid-nen7h5rs]{position:relative}.library[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs]{cursor:pointer;color:var(--color-text-muted);font-size:var(--text-sm);border-bottom:1px solid #0000;list-style:none}.library[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs]::-webkit-details-marker{display:none}.library[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs].is-current,.library[data-astro-cid-nen7h5rs][open] summary[data-astro-cid-nen7h5rs]{color:var(--color-text);border-bottom-color:var(--color-text);font-weight:600}.library-panel[data-astro-cid-nen7h5rs]{gap:var(--space-2);min-width:9rem;padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex;position:absolute;top:calc(100% + .5rem);left:0;box-shadow:0 8px 24px #00000040}.library-panel[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--color-text-muted);font-size:var(--text-sm);text-decoration:none}.library-panel[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.library-panel[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--color-primary)}.mobile-tools[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-2);display:none}.nav-toggle[data-astro-cid-nen7h5rs]{border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);border-radius:var(--radius-md);font-size:var(--text-sm);padding:.35rem .7rem}.mobile-nav[data-astro-cid-nen7h5rs]{padding-bottom:var(--space-4);border-top:1px solid var(--color-border);display:none}.mobile-nav[data-astro-cid-nen7h5rs] nav[data-astro-cid-nen7h5rs]{gap:var(--space-3);padding-top:var(--space-3);flex-direction:column;display:flex}@media (width<=860px){.desktop-nav[data-astro-cid-nen7h5rs]{display:none}.mobile-tools[data-astro-cid-nen7h5rs]{display:inline-flex}.mobile-nav[data-astro-cid-nen7h5rs]:not([hidden]){display:block}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-5) 0;color:var(--color-text-muted);font-size:var(--text-sm)}.footer-inner[data-astro-cid-jo6i4kqk]{gap:var(--space-3) var(--space-5);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.footer-colophon[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em}.footer-links[data-astro-cid-jo6i4kqk]{gap:var(--space-3);flex-wrap:wrap;display:flex}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--color-primary);text-underline-offset:.2em;transition:color var(--transition-med);text-decoration:underline 1.5px}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--color-primary-hover)}.bitfield-canvas{pointer-events:none;z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}.site-shell{z-index:1;position:relative}
