:root{--surface-0: #FAF7F2;--surface-1: #FFFFFF;--surface-2: #F3EEE5;--hairline: #E4DCCF;--hairline-strong: #CFC4B2;--ink: #1C1B19;--ink-soft: #6B6760;--ink-faint: #6C6759;--biome-se: #2A7047;--biome-ne: #8F5D15;--biome-n: #1F6F8B;--sig: #2A7047;--null: #B8A88A;--null-ink: #736446;--danger: #B23A2A;--roadmap: #6D3B9E;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Fraunces", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--radius-sm: 12px;--radius-md: 20px;--radius-lg: 28px;--radius-pill: 999px;--shadow-soft: 0 6px 24px rgba(28, 27, 25, .05), 0 1px 3px rgba(28, 27, 25, .04);--shadow-lift: 0 14px 36px rgba(28, 27, 25, .09);color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--surface-0);color:var(--ink);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}a{color:var(--biome-n);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--biome-n);outline-offset:2px}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse 75% 40% at 15% -5%,rgba(42,112,71,.06),transparent 60%),radial-gradient(ellipse 65% 38% at 90% 5%,rgba(143,93,21,.06),transparent 55%),var(--surface-0)}.topbar{position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf7f2e6;border-bottom:1px solid var(--hairline)}.topbar-inner{max-width:1220px;margin:0 auto;padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.8rem;cursor:pointer;background:none;border:none;text-align:left;color:inherit;font:inherit}.brand-mark{width:44px;height:44px;border-radius:14px;background:var(--surface-2);border:1px solid var(--hairline-strong);display:grid;place-items:center;color:var(--biome-se);flex-shrink:0}.brand-title{font-family:var(--font-display);font-weight:700;font-size:1.12rem;letter-spacing:-.02em;color:var(--ink);display:block}.brand-sub{font-size:.74rem;color:var(--ink-soft);display:block}.nav-links{display:flex;align-items:center;gap:.45rem;background:var(--surface-2);padding:.3rem;border-radius:var(--radius-pill);border:1px solid var(--hairline)}.nav-btn{border:1px solid transparent;background:transparent;color:var(--ink-soft);padding:.48rem 1rem;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:.88rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease}.nav-btn:hover{color:var(--ink);background:#ffffffa6}.nav-btn.active{color:var(--surface-1);background:var(--biome-se);box-shadow:0 2px 8px #2a704740}.main-container{flex:1;max-width:1220px;width:100%;margin:0 auto;padding:2rem 1.5rem 3.5rem}.main-container.story-full{max-width:none;padding:0;display:flex;flex-direction:column}[data-present="1"] .topbar,[data-present="1"] .footer{display:none}.badge{display:inline-flex;align-items:center;gap:.38rem;font-family:var(--font-mono);font-size:.74rem;font-weight:600;letter-spacing:.02em;padding:.28rem .72rem;border-radius:var(--radius-pill);border:1px solid var(--hairline-strong);background:var(--surface-2);color:var(--ink-soft)}.badge.live{color:var(--sig);border-color:#2a704759;background:#2a704714}.badge.cached{color:var(--biome-ne);border-color:#8f5d1559;background:#8f5d1517}.badge.roadmap{color:var(--roadmap);border-color:#6d3b9e59;background:#6d3b9e14}.badge.sig{color:var(--biome-n);border-color:#1f6f8b59;background:#1f6f8b14}.badge.null{color:var(--null-ink);border-color:#73644659;background:#b8a88a38}.btn-primary{background:var(--biome-se);color:var(--surface-1);border:1px solid var(--biome-se);padding:.72rem 1.4rem;border-radius:var(--radius-pill);font-family:var(--font-sans);font-weight:600;font-size:.94rem;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;box-shadow:0 6px 18px #2a704733;transition:transform .14s ease,filter .14s ease}.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px);text-decoration:none}.btn-secondary{background:var(--surface-1);color:var(--ink);border:1px solid var(--hairline-strong);padding:.7rem 1.25rem;border-radius:var(--radius-pill);font-family:var(--font-sans);font-weight:600;font-size:.92rem;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;transition:background-color .14s ease,border-color .14s ease}.btn-secondary:hover{background:var(--surface-2);border-color:var(--ink-soft);text-decoration:none}.btn-ghost{background:transparent;color:var(--ink-soft);border:1px solid transparent;padding:.45rem .85rem;border-radius:var(--radius-pill);font-family:var(--font-sans);font-weight:600;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.btn-ghost:hover{color:var(--ink);background:var(--surface-2)}.card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:1.35rem;box-shadow:var(--shadow-soft)}.card-inset{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:.85rem 1rem}.mono{font-family:var(--font-mono)}.display{font-family:var(--font-display)}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:1fr}}@media(max-width:680px){.grid-4,.grid-2{grid-template-columns:1fr}}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.15rem;flex-wrap:wrap}.section-header h2{font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.75rem);letter-spacing:-.02em;color:var(--ink)}.controls-bar{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;padding:1.1rem 1.25rem;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);margin-bottom:1.25rem}.control-group{display:flex;flex-direction:column;gap:.35rem}.control-group label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-weight:700}.pill-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.pill{border:1px solid var(--hairline-strong);background:var(--surface-0);color:var(--ink-soft);padding:.44rem .9rem;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:.85rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .14s ease}.pill:hover{color:var(--ink);border-color:var(--ink-soft);background:var(--surface-1)}.pill.active{color:var(--surface-1);background:var(--biome-se);border-color:var(--biome-se)}select,input[type=number],input[type=text],input[type=search]{background:var(--surface-0);color:var(--ink);border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);padding:.48rem .8rem;font-family:var(--font-sans);font-size:.88rem}.stat-value{font-family:var(--font-mono);font-size:1.55rem;font-weight:700;margin:.25rem 0;color:var(--ink)}.stat-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:700}.chart-wrap{position:relative;width:100%;overflow:hidden}.draw-in{stroke-dasharray:1;stroke-dashoffset:1;animation:omni-draw 1.4s ease-out forwards}@keyframes omni-draw{to{stroke-dashoffset:0}}.tooltip-box{position:absolute;pointer-events:none;background:#fffffff5;color:var(--ink);border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);padding:.55rem .75rem;font-size:.78rem;box-shadow:var(--shadow-lift);z-index:10;white-space:nowrap}.banner-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1.15rem;border-radius:var(--radius-md);border:1px solid var(--hairline-strong);background:var(--surface-2);margin-bottom:1.15rem}.banner-status.is-live{background:#2a704714;border-color:#2a704759}.banner-status.is-cached{background:#8f5d1514;border-color:#8f5d1559}.cockpit-tabs{display:flex;flex-wrap:wrap;gap:.45rem;border-bottom:1px solid var(--hairline);padding-bottom:.85rem;margin-bottom:1.35rem}.raw-table-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface-1)}.raw-table{width:100%;border-collapse:collapse;font-size:.83rem}.raw-table th{text-align:left;padding:.65rem .85rem;background:var(--surface-2);color:var(--ink-soft);font-family:var(--font-mono);font-size:.73rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--hairline)}.raw-table td{padding:.55rem .85rem;border-bottom:1px solid var(--hairline);color:var(--ink)}.raw-table tr:last-child td{border-bottom:none}.story-shell{position:relative;min-height:calc(100vh - 68px);display:flex;flex-direction:column;justify-content:space-between;padding:2rem 1.5rem 2.25rem;overflow:hidden;transition:background-color .45s ease}[data-present="1"] .story-shell{min-height:100vh}.story-curve{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.story-inner{position:relative;z-index:2;max-width:1120px;width:100%;margin:0 auto;flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem}.story-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.story-slide-stage{flex:1;display:flex;flex-direction:column;justify-content:center;padding:1rem 0}.story-title{font-family:var(--font-display);font-size:clamp(2.1rem,4.8vw,3.85rem);line-height:1.07;letter-spacing:-.03em;color:var(--ink);max-width:18ch;margin-top:.85rem}.story-lead{font-size:clamp(1.05rem,1.8vw,1.32rem);color:var(--ink-soft);max-width:58ch;margin-top:1.15rem;line-height:1.55}.story-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1rem;border-top:1px solid var(--hairline)}.story-dots{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.story-dot{width:10px;height:10px;border-radius:var(--radius-pill);border:1px solid var(--hairline-strong);background:var(--surface-1);cursor:pointer;padding:0;transition:width .2s ease,background-color .2s ease}.story-dot[aria-current=step]{width:28px;background:var(--biome-se);border-color:var(--biome-se)}.academy-hero{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow-soft);margin-bottom:1.35rem}.quiz-option{width:100%;text-align:left;padding:.9rem 1.1rem;border-radius:var(--radius-sm);border:1px solid var(--hairline-strong);background:var(--surface-0);color:var(--ink);font-family:var(--font-sans);font-size:.94rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.75rem;transition:border-color .14s ease,background-color .14s ease}.quiz-option:hover:not(:disabled){border-color:var(--biome-n);background:var(--surface-1)}.quiz-option.correct{border-color:var(--sig);background:#2a70471a}.quiz-option.wrong{border-color:var(--danger);background:#b23a2a14}.ask-fab{position:fixed;right:1.35rem;bottom:1.35rem;z-index:45}.ask-drawer{position:fixed;right:1.35rem;bottom:4.85rem;width:min(460px,calc(100vw - 2rem));max-height:min(76vh,660px);display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--hairline-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);z-index:50;overflow:hidden}.ask-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.78rem .95rem;background:var(--surface-2);border-bottom:1px solid var(--hairline);font-size:.92rem}.ask-meta-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .95rem;background:var(--surface-0);border-bottom:1px solid var(--hairline)}.ask-profile-note{padding:.35rem .95rem;font-size:.76rem;color:var(--ink-soft);background:var(--surface-1);border-bottom:1px solid var(--hairline)}.ask-log{flex:1;min-height:180px;overflow-y:auto;padding:.85rem .95rem;display:flex;flex-direction:column;gap:.65rem;background:var(--surface-1)}.ask-welcome{padding:.85rem;border-radius:var(--radius-md);background:var(--surface-0);border:1px solid var(--hairline);font-size:.84rem}.ask-msg{padding:.72rem .85rem;border-radius:var(--radius-md);font-size:.85rem;max-width:94%}.ask-msg-user{align-self:flex-end;background:var(--surface-2);border:1px solid var(--biome-n);color:var(--ink)}.ask-msg-assistant{align-self:flex-start;background:var(--surface-0);border:1px solid var(--hairline);color:var(--ink)}.ask-msg-source{font-family:var(--font-mono);font-size:.69rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);margin-bottom:.3rem}.ask-composer{display:flex;flex-direction:column;gap:.45rem;padding:.75rem .95rem;background:var(--surface-0);border-top:1px solid var(--hairline)}.ask-textarea{width:100%;resize:vertical;min-height:68px;max-height:140px;padding:.55rem .68rem;border-radius:var(--radius-sm);border:1px solid var(--hairline-strong);background:var(--surface-1);color:var(--ink);font-family:var(--font-sans);font-size:.84rem;line-height:1.4}.ask-textarea:focus{outline:2px solid var(--biome-n);outline-offset:1px}.ask-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.persona-table{width:100%;border-collapse:collapse;font-size:.86rem}.persona-table th{text-align:left;padding:.7rem .85rem;color:var(--ink-soft);font-family:var(--font-mono);font-size:.73rem;letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);border-bottom:1px solid var(--hairline)}.persona-table td{padding:.85rem;border-bottom:1px solid var(--hairline);vertical-align:top;color:var(--ink);line-height:1.5}.persona-table tr:last-child td{border-bottom:none}.footer{border-top:1px solid var(--hairline);background:var(--surface-2);padding:1.65rem 1.5rem;font-size:.83rem;color:var(--ink-soft)}.footer-inner{max-width:1220px;margin:0 auto;display:flex;flex-direction:column;gap:.55rem}@keyframes omni-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:omni-spin 1s linear infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.draw-in{stroke-dashoffset:0}}
