@font-face{font-family:Martian Mono;src:url(/fonts/MartianMono-VariableFont_wdth_wght.ttf) format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Stack Sans;src:url(/fonts/StackSansText-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-display:swap}:root{--font-body: "Stack Sans", system-ui, sans-serif;--font-mono: "Martian Mono", "SF Mono", monospace;--font-display: "Stack Sans", system-ui, sans-serif;--bg-0: #08090a;--bg-1: #101112;--bg-2: #171819;--bg-3: #202124;--bg-4: #292a2e;--border: #292b2d;--border-light: #3a3c3f;--fg: #eceef2;--fg-2: #aeb2ba;--fg-3: #747984;--fg-4: #4d525b;--accent: #B8C3D0;--accent-dim: #8D9BAA;--ok: #87D8D3;--warn: #E49A2A;--crit: #E8404A;--border-hair: rgba(255, 255, 255, .06);--border-rule: rgba(255, 255, 255, .08);--accent-glow: rgba(168, 180, 194, .12);--crit-glow: rgba(232, 64, 74, .1);--ok-glow: rgba(135, 216, 211, .1);--radius: 3px;--radius-sm: 2px;--type-label: 8px;--type-ui: 10px;--type-body: 11px;--type-title: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--bg-0);color:var(--fg);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;transition:transform .1s ease,opacity .15s ease}button:active:not(:disabled){transform:scale(.97)}button:hover:not(:disabled){opacity:.85}button:disabled{cursor:not-allowed;opacity:.4}::-webkit-scrollbar{width:2px;height:2px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:0}::-webkit-scrollbar-thumb:hover{background:#ffffff47}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInFast{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes subtlePulse{0%,to{opacity:.78}50%{opacity:1}}@keyframes stressPulse{0%,to{opacity:.2}50%{opacity:.8}}@keyframes modalIn{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes countdownUrgent{0%,to{background-color:var(--crit)}50%{background-color:#ff6060}}@keyframes borderGlow{0%,to{border-color:var(--crit)20}50%{border-color:var(--crit)50}}.fade-in{animation:none}.landing{min-height:100vh;background:radial-gradient(circle at 50% 0%,rgba(184,195,208,.06),transparent 36%),linear-gradient(180deg,var(--bg-0) 0%,#070809 46%,var(--bg-0) 100%);color:var(--fg)}.landing-nav{position:relative;z-index:30;width:100%;max-width:1240px;min-height:30px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 4px;background:transparent;border-bottom:0;-webkit-backdrop-filter:none;backdrop-filter:none}.landing-brand{display:inline-flex;align-items:center;min-width:0;color:var(--fg);text-decoration:none;font-family:var(--font-mono);font-size:var(--type-ui);letter-spacing:.1em;text-transform:uppercase}.landing-brand img{display:block;width:auto;height:10px;filter:invert(1) brightness(1.15)}.landing-nav__links{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;font-family:var(--font-mono);font-size:var(--type-label);letter-spacing:.1em}.landing-nav__links a,.landing-nav__links button,.landing-footer a{color:var(--fg-3);text-decoration:none;white-space:nowrap;font-family:var(--font-mono);font-size:var(--type-label);line-height:1;letter-spacing:.1em;text-transform:uppercase}.landing-nav__links a:hover,.landing-nav__links button:hover,.landing-footer a:hover{color:var(--fg)}.landing-nav__cta,.landing-primary,.landing-secondary,.landing-text-button{min-height:32px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);text-decoration:none;font-family:var(--font-mono);font-size:var(--type-ui);letter-spacing:.04em}.landing-nav__cta,.landing-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--fg);color:var(--bg-0);padding:0 14px;font-weight:620}.landing-nav__cta{min-height:28px;padding:0 12px}.landing-secondary,.landing-text-button{display:inline-flex;align-items:center;justify-content:center;background:#ffffff0a;color:var(--fg-2);padding:0 13px}.landing-text-button{justify-self:start;margin-top:8px}.landing-hero{width:min(1080px,calc(100% - 32px));min-height:min(640px,calc(100svh - 52px));margin:0 auto;padding:84px 0 70px;display:grid;place-items:center;align-content:center;text-align:center}.landing-eyebrow{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3);letter-spacing:.15em;text-transform:uppercase}.landing-hero h1{max-width:520px;margin-top:16px;color:var(--fg);font-size:clamp(24px,2.8vw,34px);line-height:1.12;font-weight:500;letter-spacing:0}.landing-hero__lede{max-width:560px;margin-top:18px;color:var(--fg-2);font-size:clamp(13px,1.1vw,15px);line-height:1.55}.landing-hero__actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:24px}.landing-hero__actions .landing-primary,.landing-hero__actions .landing-secondary,.landing-final .landing-primary{min-height:36px;padding:0 15px}.landing-hero-visual{width:min(820px,100%);margin-top:52px;border:0;opacity:.95}.landing-hero-visual svg{display:block;width:100%;height:auto;overflow:visible}.landing-hero-visual text,.landing-visual text{fill:var(--fg-2);font-family:var(--font-mono);font-size:17px;letter-spacing:.04em}.landing-grid-line{fill:none;stroke:url(#landingFlow);stroke-width:1.2;stroke-linecap:round;opacity:.64}.landing-topology-connection{fill:none;stroke:var(--accent);stroke-width:1.05;stroke-linecap:round;stroke-dasharray:4 9;opacity:.28}.landing-topology-connection--warm{stroke:var(--warn);opacity:.36}.landing-topology-users{fill:#0c0d0f;stroke:#272a2f;stroke-width:.75;opacity:.96}.landing-topology-users-text,.landing-topology-load,.landing-topology-alert,.landing-topology-node-label{font-family:var(--font-mono);font-weight:700;letter-spacing:.04em}.landing-hero-visual .landing-topology-users-text{fill:#6f7680;font-size:8px}.landing-hero-visual .landing-topology-load,.landing-hero-visual .landing-topology-alert{font-size:7px}.landing-hero-visual .landing-topology-node-label{fill:#b9bbbf;font-size:8px}.landing-grid-line--soft{stroke:#ffffff29}.landing-node{fill:#101112eb;stroke:#fff3;stroke-width:1}.landing-node--client{stroke:#b8c3d070}.landing-node--data{stroke:#87d8d36b}.landing-packet{fill:var(--accent);opacity:.88}.landing-packet--two{fill:var(--ok)}.landing-packet--three{fill:var(--fg-2)}.landing-sections{width:100%;margin:0;display:grid;gap:0;padding:18px 0 48px}.landing-section{width:100%;display:grid;grid-template-columns:minmax(0,.86fr) minmax(360px,1fr);align-items:center;gap:46px;min-height:430px;padding:76px max(16px,calc((100vw - 1080px)/2));border-top:0;opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}.landing-section:nth-child(2n){background:#ffffff05}.landing-section.is-visible{opacity:1;transform:translateY(0)}.landing-section--flipped{grid-template-columns:minmax(360px,1fr) minmax(0,.86fr)}.landing-section--flipped .landing-section__copy{grid-column:2;grid-row:1}.landing-section--flipped .landing-visual{grid-column:1;grid-row:1}.landing-section__copy{display:grid;gap:12px;align-content:center}.landing-section h2,.landing-final h2{color:var(--fg);font-size:clamp(17px,1.8vw,24px);line-height:1.2;font-weight:520;letter-spacing:0}.landing-section__copy>p:not(.landing-eyebrow),.landing-final>p:not(.landing-eyebrow){max-width:520px;color:var(--fg-2);font-size:13px;line-height:1.6}.landing-visual{position:relative;min-height:310px;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),#1011128f;background-size:28px 28px,28px 28px,100% 100%;overflow:hidden}.landing-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 1px #ffffff0f,inset 0 -80px 90px #08090a61}.landing-visual--diagram svg,.landing-visual--sim svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.landing-visual--diagram svg path{fill:none;stroke:#b8c3d038;stroke-width:1.2}.landing-chip{position:absolute;z-index:2;width:132px;height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 11px;border:1px solid rgba(255,255,255,.11);border-radius:var(--radius);background:#08090ac7;color:var(--fg-2);font-family:var(--font-mono);font-size:var(--type-ui);text-transform:uppercase}.landing-chip i{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 16px #87d8d359}.landing-chip--0{top:52px;left:28px}.landing-chip--1{top:52px;left:calc(50% - 66px)}.landing-chip--2{top:52px;right:28px}.landing-chip--3{bottom:52px;left:calc(50% - 66px)}.landing-chip--4{bottom:52px;right:28px}.landing-sim-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;font-family:var(--font-mono);font-size:var(--type-ui);color:var(--fg-3);text-transform:uppercase}.landing-sim-header strong{color:var(--fg);font-weight:600}.landing-sim-grid{fill:none;stroke:#ffffff0d;stroke-width:1}.landing-sim-curve{fill:none;stroke:var(--ok);stroke-width:1.35;stroke-linecap:round;stroke-dasharray:560;animation:landingDraw 4s ease-in-out infinite}.landing-sim-bars{position:absolute;left:18px;right:18px;bottom:18px;display:grid;grid-template-columns:repeat(10,1fr);gap:5px;align-items:end;height:88px}.landing-sim-bars span{height:var(--bar);border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,#b8c3d04d,#b8c3d014);transform-origin:bottom;animation:landingBarRise 2.8s ease-in-out infinite;animation-delay:var(--delay)}.landing-visual--incident{display:grid;align-content:center;gap:10px;padding:26px}.landing-alert,.landing-choice{position:relative;z-index:1;display:flex;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid rgba(255,255,255,.09);border-radius:var(--radius);background:#08090ab3;color:var(--fg-2);font-family:var(--font-mono);font-size:var(--type-ui);text-transform:uppercase}.landing-alert{border-color:#e8404a57;color:var(--fg)}.landing-alert span{color:var(--crit)}.landing-choice--active{border-color:#87d8d35c}.landing-choice b{color:var(--fg);font-weight:600}.landing-visual--report{display:grid;align-content:center;gap:12px;padding:28px}.landing-report-chart{position:relative;z-index:1;width:min(100%,340px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);background:#08090a80;padding:10px}.landing-report-chart svg{display:block;width:100%;height:auto}.landing-report-grid{fill:none;stroke:#ffffff0e;stroke-width:1}.landing-report-line{fill:none;stroke-width:1.45;stroke-linecap:round;stroke-dasharray:420;animation:landingDrawReport 4.8s ease-in-out infinite}.landing-report-line--traffic{stroke:var(--ok)}.landing-report-line--latency{stroke:var(--accent);animation-delay:.5s}.landing-report-lines{display:grid;gap:8px;width:min(100%,340px)}.landing-report-lines span{height:6px;background:#ffffff14}.landing-report-lines span:nth-child(1){width:84%}.landing-report-lines span:nth-child(2){width:68%}.landing-report-lines span:nth-child(3){width:76%}.landing-report-row,.landing-classroom-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px 0;border-top:1px solid rgba(255,255,255,.08);color:var(--fg-2);font-family:var(--font-mono);font-size:var(--type-ui);text-transform:uppercase}.landing-report-row b,.landing-classroom-row strong{color:var(--fg);font-weight:650}.landing-classroom-row strong{display:grid;grid-template-columns:44px auto;align-items:center;gap:8px}.landing-classroom-row strong i{display:block;height:5px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,var(--ok) var(--fill),rgba(255,255,255,.06) var(--fill));transform-origin:left center;animation:landingFillPulse 3.6s ease-in-out infinite}.landing-visual--sandbox{display:grid;align-content:center;gap:18px;padding:28px}.landing-visual--sandbox label{position:relative;z-index:1;display:grid;gap:9px;color:var(--fg-2);font-family:var(--font-mono);font-size:var(--type-ui);text-transform:uppercase}.landing-visual--sandbox i{height:6px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,var(--accent) var(--fill),rgba(255,255,255,.07) var(--fill));transform-origin:left center;animation:landingFillPulse 3.4s ease-in-out infinite;animation-delay:var(--delay)}.landing-toggles{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px}.landing-toggles span{padding:8px 10px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);color:var(--fg-2);background:#08090a94;font-family:var(--font-mono);font-size:var(--type-ui);text-transform:uppercase}.landing-visual--classroom{display:grid;align-content:center;padding:28px}.landing-classroom-row{grid-template-columns:.45fr 1fr auto;min-width:0}.landing-classroom-row--head{color:var(--fg-3)}.landing-final{width:min(1080px,calc(100% - 28px));margin:0 auto;padding:104px 0;display:grid;justify-items:center;gap:16px;text-align:center;border-top:0}.landing-footer{width:min(1080px,calc(100% - 28px));margin:0 auto;padding:26px 0 34px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.07);color:var(--fg-4);font-family:var(--font-mono);font-size:var(--type-label);letter-spacing:.08em;text-transform:uppercase}.landing-footer nav{display:flex;gap:14px;flex-wrap:wrap}@keyframes landingDraw{0%{stroke-dashoffset:560;opacity:.45}42%,72%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-560;opacity:.45}}@keyframes landingDrawReport{0%{stroke-dashoffset:420;opacity:.42}44%,76%{stroke-dashoffset:0;opacity:.95}to{stroke-dashoffset:-420;opacity:.42}}@keyframes landingBarRise{0%,to{transform:scaleY(.72);opacity:.58}45%,68%{transform:scaleY(1);opacity:.98}}@keyframes landingFillPulse{0%,to{transform:scaleX(.72);opacity:.68}42%,74%{transform:scaleX(1);opacity:1}}@media(prefers-reduced-motion:reduce){.landing-section,.landing-packet,.landing-sim-curve,.landing-report-line,.landing-sim-bars span,.landing-visual--sandbox i,.landing-classroom-row strong i{animation:none;transition:none}.landing-section{opacity:1;transform:none}}@media(max-width:820px){.landing-nav{width:100%;max-width:1240px;gap:10px;padding:12px 10px 4px}.landing-brand span{display:none}.landing-nav__links{gap:9px;font-size:var(--type-label)}.landing-nav__links a[href="#design"]{display:none}.landing-hero{width:min(100% - 22px,1080px);padding:68px 0 54px;min-height:auto}.landing-hero h1{max-width:430px;font-size:clamp(23px,6.4vw,30px);font-weight:500}.landing-sections,.landing-final,.landing-footer{width:min(100% - 22px,1080px)}.landing-sections{width:100%}.landing-section,.landing-section--flipped{grid-template-columns:1fr;gap:22px;min-height:0;padding:58px 11px}.landing-section--flipped .landing-section__copy,.landing-section--flipped .landing-visual{grid-column:auto;grid-row:auto}.landing-visual{min-height:270px}.landing-chip{width:118px;font-size:8px}.landing-chip--0{left:18px}.landing-chip--2,.landing-chip--4{right:18px}.landing-footer{align-items:flex-start;flex-direction:column}}.app-shell{width:100%;max-width:1240px;margin:0 auto;padding:16px 16px max(28px,env(safe-area-inset-bottom));min-height:100vh;position:relative}.app-shell--canvas{max-width:none;padding-left:0;padding-right:0;padding-bottom:0}.canvas-screen{min-height:calc(100vh - 76px)}.canvas-stage{position:relative;display:grid;grid-template-rows:auto minmax(360px,1fr) auto;gap:10px;min-height:calc(100vh - 76px);padding:14px 16px 16px;background:radial-gradient(circle,rgba(255,255,255,.03) .5px,transparent .5px),radial-gradient(circle at 50% 10%,rgba(168,180,194,.04),transparent 42%),linear-gradient(180deg,#08090a,#060708);background-size:22px 22px,100% 100%,100% 100%;overflow-x:hidden;overflow-y:auto}.canvas-visual{position:relative;min-height:0;height:100%}.canvas-visual--sim{min-height:340px}.canvas-screen--sim .canvas-stage{grid-template-rows:auto minmax(420px,52vh) auto}.canvas-screen--sim .canvas-topbar{min-height:104px}.canvas-screen--sim .canvas-visual--sim{height:clamp(420px,52vh,620px);min-height:clamp(420px,52vh,620px)}.canvas-screen--sim .canvas-overlay{min-height:216px}.canvas-screen--sim .sim-ops>.overlay-panel{min-height:166px}.canvas-screen--sim .sim-event-drawer{min-height:30px}.canvas-topbar,.overlay-panel{background:#08090a94;border:0;border-radius:var(--radius);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:none}.canvas-topbar{position:relative;z-index:1;display:grid;gap:10px;width:min(980px,100%);padding:10px 12px}.canvas-overlay{position:relative;z-index:1;display:grid;gap:12px;max-height:none;overflow:visible;pointer-events:auto}.overlay-row{display:grid;gap:12px}.overlay-panel{padding:12px;overflow:auto}.overlay-panel:hover{background:#08090aa8}.overlay-scroll{display:flex;gap:0;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.overlay-scroll::-webkit-scrollbar{display:none}.overlay-scroll>*{flex:0 0 auto}.menu-grid,.contract-layout,.design-layout,.sim-layout,.result-layout{display:grid;gap:14px}.design-sidebar,.sim-side{display:grid;gap:10px;align-content:start}.design-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.menu-screen{display:grid;gap:22px;padding-bottom:10px}.menu-intro{display:grid;gap:8px;max-width:720px;padding:34px 0 18px}.menu-intro h1{font-size:16px;line-height:1.22;color:var(--fg);font-weight:600}.menu-intro p{font-size:var(--type-title);color:var(--fg-2);line-height:1.55}.menu-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding-top:4px;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-4);letter-spacing:.06em;text-transform:uppercase}.menu-footer nav{display:flex;gap:12px;flex-wrap:wrap}.menu-footer a{color:var(--fg-3);text-decoration:none}.menu-footer a:hover{color:var(--fg-2)}.curriculum{display:grid;gap:22px}.curriculum-group{display:grid;gap:10px}.curriculum-group__header{display:flex;justify-content:space-between;align-items:end;gap:12px;padding-top:4px;border-top:1px solid rgba(255,255,255,.055)}.curriculum-group__label{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg);letter-spacing:.12em;text-transform:uppercase}.curriculum-group__summary{margin-top:4px;font-size:var(--type-body);color:var(--fg-3);line-height:1.45}.scenario-grid{display:grid;gap:10px}.scenario-card{position:relative;display:grid;gap:8px;width:100%;min-height:156px;padding:12px;text-align:left;background:#0f1012c2;border:1px solid rgba(255,255,255,.075);border-radius:var(--radius)}.scenario-card:hover:not(:disabled){border-color:#b8c3d03d;background:#121416db}.scenario-card--current{border-color:#b8c3d047}.scenario-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.scenario-card__meta,.ui-label{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase}.scenario-card__title{font-size:var(--type-title);line-height:1.22;color:var(--fg)}.scenario-card__body,.ui-copy{font-size:var(--type-body);line-height:1.55;color:var(--fg-2)}.scenario-card__client{font-size:var(--type-body);color:var(--accent)}.sim-ops{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(360px,1.22fr);gap:10px;align-items:start}.sim-status-grid{display:grid;grid-template-columns:repeat(4,minmax(68px,1fr));gap:10px}.sim-deploy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}.sim-timebar{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:12px;align-items:center}.sim-timeblock{display:grid;gap:2px;min-width:82px;font-family:var(--font-mono)}.sim-time-progress{height:2px;background:#ffffff0e;overflow:hidden;position:relative}.sim-time-controls{display:flex;gap:6px;align-items:center;justify-self:end}.sim-client-label{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3);letter-spacing:.05em}.sim-log{display:grid;gap:4px;max-height:118px;overflow:auto}.sim-event-drawer{display:grid;gap:7px;padding:2px 2px 0}.sim-event-toggle{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;min-height:24px;color:var(--fg-3);text-align:left}.sim-event-latest{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-ui);color:var(--fg-4)}.sim-event-chevron{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3);letter-spacing:.08em;text-transform:uppercase}.sim-log-row{display:grid;grid-template-columns:28px 34px minmax(0,1fr);gap:8px;align-items:baseline;padding:2px 0;font-family:var(--font-mono);font-size:var(--type-label)}.sim-log-row span:last-child{font-family:var(--font-body);font-size:var(--type-ui);line-height:1.4}.sim-log-empty{font-size:var(--type-ui);color:var(--fg-4)}.minimal-button{border:1px solid rgba(255,255,255,.055);border-radius:var(--radius);background:#ffffff05}.classroom-screen{display:grid;gap:18px}.classroom-layout{display:grid;gap:14px}.classroom-panel{display:grid;gap:13px;padding-top:12px;border-top:1px solid rgba(255,255,255,.055)}.classroom-field{display:grid;gap:6px;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3);letter-spacing:.08em;text-transform:uppercase}.classroom-field input,.classroom-field select,.classroom-inline select{min-width:0;border:1px solid var(--border-hair);border-radius:var(--radius-sm);background:#ffffff06;color:var(--fg);padding:8px 9px;font-family:var(--font-mono);font-size:var(--type-ui);letter-spacing:0}.classroom-topic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.classroom-topic{display:grid;gap:3px;min-height:54px;padding:9px 10px;text-align:left;border:1px solid var(--border-hair);border-radius:var(--radius);background:#ffffff05}.classroom-topic span:first-child{font-size:var(--type-ui);color:var(--fg-2);line-height:1.3}.classroom-topic span:last-child{font-size:var(--type-label);color:var(--fg-3)}.classroom-topic--active{border-color:#a8b4c252;background:#a8b4c20f}.classroom-topic--active span:first-child{color:var(--fg)}.classroom-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.classroom-small-button{min-width:58px;padding:8px 10px;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-2);text-transform:uppercase;letter-spacing:.08em}.classroom-chip-list{display:flex;flex-wrap:wrap;gap:7px}.classroom-chip{border:1px solid var(--border-hair);border-radius:var(--radius-sm);padding:5px 7px;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-2)}.classroom-share{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:10px;align-items:end}.classroom-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3)}.classroom-assignment-list{display:grid;gap:9px}.classroom-assignment{display:grid;grid-template-columns:minmax(0,1fr) auto 96px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid rgba(255,255,255,.045)}.classroom-assignment:first-child{border-top:0}.classroom-assignment-meta{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.classroom-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.classroom-summary-grid strong{display:block;margin-top:5px;font-family:var(--font-mono);font-size:var(--type-title);color:var(--fg);letter-spacing:0}.classroom-aggregate-detail{display:flex;gap:12px;flex-wrap:wrap;font-size:var(--type-body);color:var(--fg-2)}.classroom-results{display:grid;gap:0;overflow:auto}.classroom-result-row{display:grid;grid-template-columns:.7fr 1.2fr 58px 70px 62px 58px .9fr;gap:10px;align-items:baseline;min-width:760px;padding:7px 0;border-top:1px solid rgba(255,255,255,.045);font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-2)}.classroom-result-row--head{color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em}.classroom-empty{padding:10px 0;font-size:var(--type-body);color:var(--fg-4)}.sandbox-screen{display:grid;gap:18px}.sandbox-section,.sandbox-layout{display:grid;gap:14px}.sandbox-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.sandbox-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.sandbox-panel{display:grid;gap:12px;border-top:1px solid rgba(255,255,255,.055);padding-top:12px}.sandbox-panel--wide,.sandbox-panel--launch{grid-column:1 / -1}.sandbox-panel--launch{grid-template-columns:minmax(0,1fr) auto;align-items:end}.sandbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sandbox-field{display:grid;gap:5px;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3);letter-spacing:.08em;text-transform:uppercase}.sandbox-field input,.sandbox-field select{min-width:0;border:1px solid var(--border-hair);border-radius:var(--radius-sm);background:#ffffff06;color:var(--fg);padding:8px 9px;font-family:var(--font-mono);font-size:var(--type-ui);letter-spacing:0}.sandbox-chart{display:grid;gap:6px}.sandbox-curve{display:grid;gap:9px}.sandbox-curve svg{width:100%;height:92px;display:block;border:1px solid var(--border-hair);border-radius:var(--radius-sm);background:#ffffff05}.sandbox-curve line{stroke:#ffffff1f;stroke-width:1}.sandbox-curve polyline{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.sandbox-curve circle{fill:var(--accent);stroke:var(--bg-0);stroke-width:1}.sandbox-curve-points{display:grid;gap:6px}.sandbox-curve-point{display:grid;grid-template-columns:32px minmax(0,1fr) 82px;gap:8px;align-items:center;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3)}.sandbox-curve-point input[type=number]{min-width:0;border:1px solid var(--border-hair);border-radius:var(--radius-sm);background:#ffffff06;color:var(--fg);padding:5px 6px;font-family:var(--font-mono);font-size:var(--type-label)}.sandbox-chart__meta,.sandbox-summary{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3)}.sandbox-actions{display:flex;gap:8px;align-items:center}.sandbox-component-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:8px}.sandbox-component{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:7px;align-items:center;border:1px solid var(--border-hair);border-radius:var(--radius);padding:8px 9px;color:var(--fg-3);font-family:var(--font-mono);font-size:var(--type-label)}.sandbox-component--active{color:var(--fg);border-color:#a8b4c247;background:#ffffff06}.sandbox-component input{margin:0}.sandbox-component strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-ui);font-weight:600}.sandbox-component em{color:var(--fg-3);font-style:normal}.result-screen{display:grid;gap:16px;padding-bottom:18px}.result-hero{display:grid;justify-items:center;gap:7px;padding:18px 0 16px}.result-kicker,.result-section-label,.result-row-label,.result-row-detail{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase}.result-grade{font-family:var(--font-mono);font-size:46px;line-height:.92;letter-spacing:0}.result-message,.result-text,.result-analysis-title,.result-row-value,.result-chip,.result-link-button,.result-action{font-size:var(--type-ui)}.result-message{margin:0;line-height:1.45}.result-layout{align-items:start}.result-column{display:grid;gap:14px;align-content:start}.result-section{display:grid;gap:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.055)}.result-section--reveal{opacity:0;animation:fadeIn .45s ease forwards}.result-section-label{margin-bottom:0}.result-text{color:var(--fg-2);line-height:1.55}.result-text--accent{color:var(--accent)}.result-text--muted{color:var(--fg-3)}.result-analysis-list{display:grid;gap:10px}.result-timeline-list{display:grid;gap:8px;margin-top:12px}.result-timeline-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:baseline;padding-top:8px;border-top:1px solid rgba(255,255,255,.045)}.result-timeline-hour{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-3)}.result-timeline-body{display:grid;gap:3px;min-width:0}.result-analysis-item{display:grid;gap:4px}.result-analysis-title{font-family:var(--font-mono);color:var(--fg);line-height:1.45}.result-inline-time{margin-left:8px;color:var(--fg-3)}.result-bars{display:grid;gap:9px}.result-bar-row{display:grid;gap:5px}.result-bar-meta{display:flex;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:var(--type-ui);color:var(--fg-2)}.result-bar-track{height:3px;background:#fff1}.result-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:baseline;padding:7px 0;border-top:1px solid rgba(255,255,255,.045)}.result-row:first-of-type{border-top:0;padding-top:0}.result-section-label+.result-row{border-top:0;padding-top:0}.result-row-value{font-family:var(--font-mono);color:var(--fg);letter-spacing:0}.result-chip-row{display:flex;flex-wrap:wrap;gap:7px}.result-chip{font-family:var(--font-mono);color:var(--fg-2);padding:0 0 3px;border-bottom:1px solid var(--border-hair)}.result-reference-chip{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-2);padding:4px 6px;border:1px solid var(--border-hair);border-radius:var(--radius-sm)}.result-chip--active{color:var(--accent);border-bottom-color:var(--accent)}.result-link-button{justify-self:start;margin-top:2px;font-family:var(--font-mono);color:var(--accent)}.result-actions{display:flex;gap:8px}.result-action{flex:1;border-radius:var(--radius);padding:10px;font-family:var(--font-mono);font-weight:600;text-transform:uppercase}.result-action--secondary{background:transparent;border:1px solid var(--border-hair);color:var(--fg-2)}.result-action--primary{background:var(--accent);color:var(--bg-0)}.glossary-panel{position:fixed;top:12px;right:12px;bottom:12px;z-index:120;width:min(720px,calc(100vw - 24px));background:#08090af5;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);box-shadow:-18px 0 48px #00000061;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.glossary-header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 20px 12px}.glossary-title{margin-top:5px;font-size:var(--type-title);line-height:1.25;color:var(--fg)}.glossary-close{width:28px;height:28px;border-radius:999px;border:1px solid rgba(255,255,255,.07);background:#ffffff05;font-family:var(--font-mono);font-size:var(--type-ui);color:var(--fg-2);display:flex;align-items:center;justify-content:center}.glossary-search{padding:0 20px 16px}.glossary-search input{width:100%;background:#ffffff06;border:1px solid rgba(255,255,255,.065);border-radius:var(--radius);color:var(--fg);padding:9px 10px;font-size:var(--type-body);font-family:var(--font-body);outline:none}.glossary-search input:focus{border-color:#b8c3d042}.glossary-body{display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);gap:18px;min-height:0;padding:0 20px 20px}.glossary-list,.glossary-entry{min-height:0;overflow:auto}.glossary-list{display:grid;gap:5px;align-content:start;padding-right:4px}.glossary-term{display:grid;gap:3px;text-align:left;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}.glossary-term--active .glossary-term-name{color:var(--accent)}.glossary-term-name{font-family:var(--font-mono);font-size:var(--type-ui);color:var(--fg-2)}.glossary-term-alias,.glossary-empty{font-size:var(--type-ui);color:var(--fg-3);line-height:1.45}.glossary-entry{display:grid;align-content:start;gap:12px;padding-left:2px}.glossary-entry-title{font-size:var(--type-title);line-height:1.25;color:var(--fg)}.glossary-tags{display:flex;flex-wrap:wrap;gap:6px}.glossary-tags span{font-family:var(--font-mono);font-size:var(--type-label);color:var(--fg-2);background:#ffffff06;border:1px solid rgba(255,255,255,.055);border-radius:999px;padding:4px 7px}.glossary-entry-body{max-width:44rem;font-size:var(--type-body);line-height:1.65;color:var(--fg-2)}@media(min-width:760px){.menu-grid,.scenario-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.design-palette{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:900px){.contract-layout{grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);align-items:start}.design-layout{grid-template-columns:minmax(320px,.85fr) minmax(0,1.4fr);align-items:start}.sim-layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.95fr);align-items:start}.result-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start}.classroom-layout{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);align-items:start}.overlay-row{grid-template-columns:minmax(250px,340px) minmax(0,1fr);align-items:start}}@media(min-width:1100px){.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.scenario-grid,.design-palette{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:899px){.canvas-stage{grid-template-rows:auto minmax(280px,1fr) auto;min-height:calc(100vh - 72px);padding:10px;gap:10px}.sim-ops{grid-template-columns:1fr}.canvas-screen--sim .canvas-stage{grid-template-rows:auto minmax(360px,46vh) auto}.canvas-screen--sim .canvas-topbar{min-height:128px}.canvas-screen--sim .canvas-visual--sim{height:clamp(360px,46vh,520px);min-height:clamp(360px,46vh,520px)}.canvas-screen--sim .canvas-overlay{min-height:0}.canvas-screen--sim .sim-ops>.overlay-panel{min-height:0}}@media(max-width:767px){.app-shell{padding:12px 10px max(20px,env(safe-area-inset-bottom))}.menu-screen{gap:16px}.menu-intro{padding:24px 0 10px}.canvas-stage{grid-template-rows:auto minmax(52vh,1fr) auto;min-height:calc(100vh - 72px);padding:8px 8px max(8px,env(safe-area-inset-bottom));gap:8px}.canvas-screen--design .canvas-stage{grid-template-rows:auto minmax(240px,38vh) auto;min-height:calc(100svh - 72px);max-height:none}.canvas-visual,.canvas-visual--sim{min-height:48vh;max-height:none;height:auto}.canvas-screen--design .canvas-visual--design{min-height:240px;height:38vh;max-height:360px}.canvas-screen--design .canvas-topbar,.canvas-screen--design .canvas-overlay,.canvas-screen--design .overlay-row,.canvas-screen--design .overlay-panel,.canvas-screen--design .overlay-scroll{min-width:0}.canvas-screen--sim .canvas-stage{grid-template-rows:auto minmax(42vh,42vh) auto}.canvas-screen--sim .canvas-visual--sim{height:42vh;min-height:42vh}.canvas-visual--collapsed{min-height:72px;height:72px}.overlay-row{grid-template-columns:1fr;align-items:stretch}.overlay-panel{overflow:visible}.canvas-screen--design .overlay-panel{overflow:auto}.canvas-screen--design .component-dock{overflow:hidden}.overlay-scroll{padding-bottom:4px}.canvas-screen--design .overlay-scroll{overflow-x:auto;overflow-y:hidden;max-width:100%}.canvas-screen--design .overlay-scroll>*{width:min(152px,calc(100vw - 58px))!important;max-width:calc(100vw - 58px)}.sim-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sim-deploy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sim-timebar{grid-template-columns:minmax(0,1fr);gap:7px}.sim-time-progress{grid-column:auto;grid-row:auto}.sim-time-controls{justify-self:start;width:100%;flex-wrap:wrap;gap:5px}.sim-event-toggle{grid-template-columns:auto minmax(0,1fr) auto;gap:7px}.sim-client-label{display:none}.result-screen{gap:12px;padding-bottom:12px}.result-hero{padding:12px 0 10px}.result-grade{font-size:38px}.result-layout,.result-column{gap:12px}.result-section{gap:8px;padding-top:10px}.result-row{grid-template-columns:minmax(0,1fr);gap:3px;padding:8px 0}.result-row-detail{line-height:1.45}.result-row-value{justify-self:start}.result-actions{flex-direction:column}.result-action{min-height:36px}.sandbox-layout,.sandbox-grid,.sandbox-panel--launch,.classroom-share,.classroom-inline,.sandbox-preset-grid,.sandbox-component-grid{grid-template-columns:1fr}.sandbox-actions{flex-direction:column;align-items:stretch}.classroom-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.classroom-assignment{grid-template-columns:minmax(0,1fr);align-items:stretch}.classroom-assignment-meta{justify-content:flex-start}.sandbox-curve-point{grid-template-columns:32px minmax(0,1fr)}.sandbox-curve-point input[type=number]{grid-column:2;width:100%}.glossary-panel{top:8px;right:8px;bottom:8px;left:8px;width:auto}.glossary-header{padding:14px 14px 10px}.glossary-search{padding:0 14px 12px}.glossary-body{grid-template-columns:1fr;gap:14px;padding:0 14px 14px;overflow:auto}.glossary-list,.glossary-entry{overflow:visible}.glossary-list{max-height:30vh;overflow:auto}}
