:root{color-scheme:dark;--bg:#0b141b;--panel:#101c23;--panel2:#15242c;--line:rgba(180,209,213,.14);--cream:#f2f0e7;--muted:#8c9fa4;--muted2:#64777e;--accent:#8bd8d1;--accentdark:#448f8b;--gold:#dfbd81;--radius:12px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.shell{min-height:100vh;max-width:2100px;margin:auto}.site-header{height:73px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);background:#0b151c}.brand{display:flex;gap:12px;align-items:center;letter-spacing:.13em}.brand-icon{color:var(--accent);display:flex;align-items:center}.brand strong{display:block;font-size:13px;letter-spacing:.24em}.brand small{display:block;color:#84999c;font-size:12px;margin-top:4px;letter-spacing:.15em}.header-right{display:flex;gap:16px;align-items:center}.small-pill{border:1px solid #3a5457;border-radius:2px;color:#c2d6d1;font-size:12px;letter-spacing:.14em;padding:8px 12px}.status-dot,.live-mark i{height:5px;width:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}.header-caption{font-size:12px;color:#859da0;letter-spacing:.11em}.workbench{display:grid;grid-template-columns:minmax(0,1fr) 364px;min-height:calc(100vh - 73px)}.scene-panel{min-width:0;position:relative;display:flex;flex-direction:column;background:#0a1920}.scene-stage{position:relative;isolation:isolate;height:calc(100vh - 131px);min-height:590px;overflow:hidden;background:radial-gradient(ellipse at 51% 18%,#2c4247 0,#122731 36%,#0c1b23 75%)}.scene-halo{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(2,15,21,.57) 0%,transparent 33%,transparent 72%,rgba(2,15,21,.67) 100%);z-index:1}.scene-stage canvas{width:100%;height:100%;position:absolute;inset:0;display:block;cursor:grab;touch-action:none}.scene-stage canvas:active{cursor:grabbing}.scene-top{z-index:2;pointer-events:none;position:absolute;top:37px;left:40px;right:32px;display:flex;gap:24px;justify-content:space-between}.scene-top h1{font-weight:450;font-size:clamp(38px,3.5vw,63px);line-height:1.05;letter-spacing:-.063em;margin:14px 0 15px;text-shadow:0 2px 30px rgba(0,0,0,.55)}.scene-top h1 em{font-family:Georgia,Times,serif;font-weight:400;font-style:italic;color:#b1d3cb}.scene-top p{max-width:360px;line-height:1.55;color:#b3c3c2;font-size:12px;margin:0;text-shadow:0 2px 16px #08141b}.eyebrow,.section-kicker,.context-kicker{font-size:12px;letter-spacing:.17em;color:var(--accent);font-weight:650}.eyebrow{display:flex;align-items:center;gap:11px}.dash{width:15px;height:1px;background:var(--accent)}.mini-counter{font-size:12px;color:#9aabac;margin-left:9px;font-weight:400}.top-tools{display:flex;gap:7px;pointer-events:auto;align-items:flex-start}.top-tools button{display:flex;align-items:center;gap:7px;padding:9px 11px;color:#d6e3e1;border:1px solid #6b828277;background:#0a1a20bb;border-radius:6px;font-size:12px;transition:background .22s}.top-tools button:hover{background:#28515a}.top-tools svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.65}.view-caption{position:absolute;z-index:2;left:36px;bottom:103px;display:flex;gap:10px;align-items:center;color:#c0cdca;font-size:12px;letter-spacing:.03em;text-shadow:0 2px 12px #091b22}.view-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}.caption-separator{color:#5c7d83}.scene-bottom{position:absolute;z-index:2;left:32px;right:32px;bottom:30px;display:flex;align-items:end;justify-content:space-between;gap:12px}.camera-dock{border:1px solid #5e74765e;border-radius:7px;display:flex;align-items:center;background:#10252bbd;backdrop-filter:blur(12px);gap:1px;padding:5px}.camera-dock span{font-size:12px;letter-spacing:.12em;color:#94a6a7;padding:0 11px}.camera-dock button{font-size:12px;border:0;color:#9cb0b4;padding:9px 11px;background:transparent;border-radius:4px;white-space:nowrap}.camera-dock button:hover,.camera-dock button.active{background:#41646a;color:#fff}.stage-hint{font-size:12px;color:#91a5a9;white-space:nowrap;letter-spacing:.11em}.stage-hint span{margin:0 5px}.mode-strip{height:58px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #2a454c;border-bottom:1px solid #2a454c;background:#0f222a}.mode-strip button{border:0;border-right:1px solid #2a454c;color:#91a3a8;font-size:12px;letter-spacing:.035em;background:transparent;display:flex;gap:12px;align-items:center;justify-content:center;transition:all .25s}.mode-strip button:hover{color:white;background:#19343c}.mode-strip .active{box-shadow:inset 0 -2px var(--accent);color:var(--accent);background:#173139}.mode-count{font-size:12px;color:#67898b}.sidebar{background:#111c23;border-left:1px solid #2d3b42;min-width:0;height:calc(100vh - 73px);overflow:auto;scrollbar-color:#46626a #111c23}.sidebar-scroll{padding:0 25px 24px}.side-intro{padding:29px 0 22px;border-bottom:1px solid var(--line)}.section-kicker{display:flex;justify-content:space-between;font-size:12px;color:var(--accent)}.section-kicker span{color:#859c9c;font-weight:400;font-size:12px}.side-intro h2{font-family:Georgia,Times,serif;font-size:30px;line-height:1.13;font-weight:normal;letter-spacing:-.025em;margin:15px 0 10px}.side-intro p,.assembly-card p,.context-columns p{color:#9cadad;font-size:12px;line-height:1.62;margin:0}.control-drawer{border-bottom:1px solid var(--line)}.control-drawer summary{list-style:none;cursor:pointer;font-size:12px;font-weight:650;padding:18px 0;display:flex;justify-content:space-between;align-items:center}.control-drawer summary::-webkit-details-marker{display:none}.drawer-caret{font-size:21px;color:var(--accent);line-height:10px;transform:rotate(180deg)}.control-drawer:not([open]) .drawer-caret{transform:none}.controls-body{padding:0 0 24px}.control-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.13em;color:#a8b8b9;margin:16px 0 12px;text-transform:uppercase}.control-head output{font-size:12px;color:var(--cream);letter-spacing:0;font-weight:600}.controls-body input[type=range]{appearance:none;width:100%;height:4px;border-radius:4px;outline:none;background:linear-gradient(90deg,#83c9c3 0,#487c7b 28%,#334b53 28%,#334b53 100%);cursor:pointer;margin:0}.controls-body input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;border:3px solid #d4f1eb;background:#28515b;box-shadow:0 0 0 2px #4a8486}.controls-body input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;border:3px solid #d4f1eb;background:#28515b}.range-labels{display:flex;justify-content:space-between;color:#788f94;font-size:12px;margin:10px 0 22px;letter-spacing:.09em}.twocol-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:23px 0}.twocol-controls label span{display:block;color:#9caeb1;letter-spacing:.13em;font-size:12px;margin-bottom:9px}.twocol-controls select,#subsystem{width:100%;border-radius:5px;color:#dce8e6;background:#172831;border:1px solid #385159;padding:10px 8px;font-size:12px;min-height:39px}.action-row{display:grid;grid-template-columns:1.1fr 1fr;gap:9px;margin-top:22px}.action-row button,.assembly-actions button{border:1px solid #3c5d64;border-radius:6px;min-height:38px;font-size:12px;color:#cbd8d8;background:#1a2a31}.action-row .primary-action{background:#85cec8;color:#092027;border:1px solid #85cec8;font-weight:650}.primary-action .play-symbol{margin-right:10px;font-size:12px}.action-row button:hover,.assembly-actions button:hover:not(:disabled){filter:brightness(1.14)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 14px}.section-heading>span:first-child{font-size:12px;letter-spacing:.13em;font-weight:650;color:#dae6e2}.live-mark,.muted-value{font-size:12px;letter-spacing:.065em;color:#8da19e;display:flex;align-items:center;gap:7px}.live-mark i{width:5px;height:5px}.metrics{display:grid;grid-template-columns:1fr 1fr;border:1px solid #33474e;border-radius:8px;overflow:hidden}.metric{padding:13px 12px 14px;background:#16262d;border-bottom:1px solid #2a4148;min-height:77px}.metric:nth-child(odd){border-right:1px solid #2a4148}.metric:nth-last-child(-n+2){border-bottom:0}.metric span{display:block;font-size:12px;color:#9eb1b1;line-height:1.3}.metric span b{font-family:serif;font-weight:normal;color:#b8d1d0}.metric div{display:flex;gap:7px;align-items:baseline;margin-top:8px}.metric strong{font-family:Georgia,Times,serif;font-size:25px;line-height:1;font-weight:400;letter-spacing:-.025em;color:#e5eee7}.metric small{color:#90b9b6;font-size:12px}.metric-footnote{font-size:12px;color:#819699;line-height:1.5;margin:11px 0 0}.assembly-section{border-top:1px solid var(--line);margin-top:23px}.assembly-section select{margin-bottom:12px}.assembly-card{background:#16272e;border:1px solid #314a50;border-radius:7px;padding:13px}.assembly-title{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:#d8e6e1}.assembly-title b{color:var(--accent);font-size:12px}.assembly-card p{margin:10px 0 14px}.assembly-progress{height:3px;background:#334c51;border-radius:3px;overflow:hidden}.assembly-progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .25s}.assembly-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:13px}.assembly-actions button{min-height:31px}.assembly-actions button:disabled{opacity:.35;cursor:default}.part-detail{font-size:12px;color:#9bb0af;margin-top:12px;min-height:26px;line-height:1.5}.science{margin-top:20px;background:#14262c;border:1px solid #365359;border-radius:6px}.science summary{list-style:none;padding:15px 12px;font-weight:650;font-size:12px;letter-spacing:.13em;cursor:pointer;display:flex;align-items:center;justify-content:space-between;color:#d7e5df}.science summary span{font-weight:400;font-size:12px;color:#91b5b1;letter-spacing:.055em}.science summary::-webkit-details-marker{display:none}.science-body{padding:2px 13px 16px;font-size:12px;line-height:1.55;color:#abbbbb}.science-body p{margin:9px 0}.science-body strong{color:#e0eee9}.formula{font-family:Georgia,Times,serif;font-size:18px;padding:7px 9px;border-bottom:1px solid #31454b;color:#b5e3db}.disclaimer{padding-top:8px;border-top:1px solid #345157}.context-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:27px}.context-columns>div{border-top:1px solid #426364;padding-top:15px}.context-kicker{font-size:12px}.context-columns h3{font-family:Georgia,Times,serif;font-size:17px;line-height:1.3;font-weight:400;margin:9px 0 7px}.context-columns p{font-size:12px}.quiz{border-top:1px solid var(--line);margin-top:25px}.quiz-question{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:17px}.quiz-question p{font-size:12px;line-height:1.55;color:#e6eeec}.quiz-question label{display:flex;align-items:flex-start;gap:7px;font-size:12px;line-height:1.45;color:#9fb4b2;padding:5px 0;cursor:pointer}.quiz-question label.correct{color:#aee8c9}.quiz-question label.incorrect{color:#efac94}.quiz-question input{accent-color:var(--accent);margin:2px 0 0}.quiz-explanation{font-size:12px;margin-top:7px;color:#91bbb8;line-height:1.45}.site-footer{border-top:1px solid var(--line);display:grid;gap:8px;padding-top:22px;color:#728b8d;font-size:12px;letter-spacing:.11em}.mobile-mode-nav{display:none}.embed-mode{height:100vh;height:100dvh;overflow:hidden}.embed-mode #brand-header{display:none}.embed-mode .workbench{height:100vh;height:100dvh;min-height:0}.embed-mode .sidebar{height:100vh;height:100dvh}.embed-mode .scene-stage{height:calc(100vh - 58px);height:calc(100dvh - 58px);min-height:0}@media(max-width:1120px){.workbench{grid-template-columns:minmax(0,1fr) 320px}.sidebar-scroll{padding:0 18px 24px}.scene-top{left:24px;top:25px;right:17px}.scene-top h1{font-size:clamp(35px,4vw,48px)}.scene-bottom{left:20px;right:20px}.stage-hint{display:none}}@media(max-width:760px){.site-header{height:61px;padding:0 16px}.header-right{display:none}.workbench{display:block;min-height:0}.scene-stage{height:58vh;height:58dvh;min-height:380px}.scene-top{left:16px;top:18px;right:12px}.scene-top h1{font-size:clamp(32px,8.3vw,46px);margin:10px 0 7px}.scene-top p{font-size:12px;max-width:230px}.eyebrow{font-size:8px}.mini-counter{display:none}.top-tools{flex-direction:column;gap:5px}.top-tools button{padding:7px;justify-content:center}.top-tools button span{display:none}.view-caption{left:16px;bottom:93px;font-size:12px;right:10px}.scene-bottom{left:12px;right:12px;bottom:16px}.camera-dock{width:100%;justify-content:space-around}.camera-dock span{font-size:8px;padding:0 5px}.camera-dock button{padding:9px 7px}.mode-strip{display:none}.mobile-mode-nav{display:grid;position:sticky;bottom:0;z-index:10;grid-template-columns:repeat(5,1fr);min-height:55px;background:#142830;border-top:1px solid #426268}.mobile-mode-nav button{border:0;border-right:1px solid #37535b;background:transparent;color:#91a9a9;font-size:12px}.mobile-mode-nav .active{color:var(--accent);box-shadow:inset 0 3px var(--accent);background:#1f3b44}.sidebar{height:auto;border-left:0;border-top:1px solid #34565e;overflow:visible}.sidebar-scroll{padding:0 20px 28px}.side-intro{padding-top:20px}.side-intro h2{font-size:26px}.context-columns{gap:14px}.embed-mode .workbench{height:calc(100dvh - 55px);overflow:hidden}.embed-mode .scene-panel{height:100%;}.embed-mode .scene-stage{height:100%;min-height:0}.embed-mode .sidebar{display:none}.embed-mode .mobile-mode-nav{position:fixed;left:0;right:0;bottom:0}.embed-mode .scene-top h1{font-size:32px}.embed-mode .scene-stage{height:calc(100dvh - 55px)}}@media(min-width:761px) and (max-height:800px){.scene-stage{min-height:0}.scene-top h1{font-size:clamp(34px,3.2vw,52px)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Non-overlapping model annotations: the leader lines are generated from projected geometry. */
.model-callouts{pointer-events:none;position:absolute;inset:0;z-index:2}.model-callouts svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.model-callouts line{stroke:#a7d5cb;stroke-width:1;opacity:.78;stroke-dasharray:3 3}.model-callouts circle{fill:#8bd8d1;stroke:#15363a;stroke-width:2}.model-callout{position:absolute;padding:8px 10px 7px;min-width:140px;max-width:162px;border-left:2px solid #95d4c8;color:#dbece9;background:rgba(10,30,36,.82);backdrop-filter:blur(5px);box-shadow:0 5px 18px rgba(0,0,0,.12);font-size:12px;letter-spacing:.06em;text-transform:uppercase;transition:opacity .25s;white-space:nowrap}.model-callout span{display:block;color:#90b4b1;font-size:12px;letter-spacing:.07em;margin-top:5px;text-transform:none}@media(max-width:760px){.model-callouts{display:none}}
