:root{color-scheme:dark;--bg:#0a1015;--stage:#111a21;--panel:#101820;--line:#2b3841;--thin:rgba(221,244,245,.12);--ink:#e7efee;--secondary:#92a4ac;--subtle:#667d87;--accent:#77d5d9;--accent-2:#b2eff1;--shadow:rgba(0,0,0,.5);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button,select{color:inherit}button{cursor:pointer}button:disabled{opacity:.37;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.app-shell{width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;min-height:400px}.app-header{height:66px;flex:0 0 66px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#0d141a;border-bottom:1px solid #28353d;gap:12px}.logo{display:flex;align-items:center;gap:13px;color:var(--accent)}.logo svg{height:31px;width:31px}.logo-text strong{display:block;white-space:nowrap;color:#f2f7f7;font-size:15px;font-weight:780;letter-spacing:.13em}.logo-text strong span{font-weight:400}.logo-text small{font-size:8px;letter-spacing:.12em;color:#7f949b;display:block;margin-top:4px}.header-center{font-size:10px;letter-spacing:.23em;color:#718891;white-space:nowrap}.dot{display:inline-block;background:var(--accent);height:3px;width:3px;border-radius:50%;vertical-align:middle;margin:0 10px}.minimal{background:transparent;border:0;color:#afc1c6}.header-help{font-size:10px;letter-spacing:.13em;display:flex;gap:8px;align-items:center;white-space:nowrap}.header-help svg{width:15px;height:15px;color:var(--accent)}
.workspace{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 365px;min-height:0}.viewer{position:relative;overflow:hidden;background:radial-gradient(ellipse at 52% 40%,#223641,#101a23 59%,#081016 100%);min-height:0;isolation:isolate}.viewer canvas#scene,.viewer canvas#fallback{display:block;width:100%;height:100%;outline-offset:-4px;touch-action:none}.vignette{pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,18,24,.33),transparent 24%,transparent 75%,rgba(7,15,20,.12)),linear-gradient(0deg,rgba(7,13,18,.72),transparent 18%,transparent 78%,rgba(6,13,18,.20));z-index:1}.scene-heading{position:absolute;left:clamp(24px,4%,62px);top:clamp(25px,6%,62px);pointer-events:none;z-index:2;text-shadow:0 2px 18px rgba(8,17,24,.7)}.eyebrow{font-size:10px;letter-spacing:.18em;color:#a1bcc2;font-weight:600;display:flex;align-items:center;gap:10px}.eyebrow-line{width:24px;height:1px;background:var(--accent)}.scene-heading h1{font-size:clamp(22px,2.65vw,39px);font-weight:720;letter-spacing:.005em;line-height:1.13;margin:12px 0 10px}.scene-heading h1 em{font-style:normal;font-weight:300;color:#c1d4d7}.scene-heading p{margin:0;font-size:12px;letter-spacing:.025em;color:#9eafb5}.view-toolbar{position:absolute;right:21px;top:24px;z-index:5;display:flex;gap:4px;align-items:center;background:rgba(12,22,28,.81);border:1px solid #354852;padding:6px;border-radius:10px;box-shadow:0 7px 25px rgba(0,0,0,.25);backdrop-filter:blur(10px)}.icon-btn{display:flex;justify-content:center;align-items:center;width:34px;height:34px;background:transparent;border:0;border-radius:6px;color:#abc0c7;transition:background .2s,color .2s}.icon-btn svg{width:18px;height:18px}.icon-btn:hover,.icon-btn:focus-visible{background:#31424a;color:var(--accent)}.toolbar-sep{height:22px;width:1px;background:#3c4d55;margin:0 4px}
.mode-tabs{display:flex;position:absolute;top:175px;left:clamp(24px,4%,62px);z-index:5;align-items:center;gap:4px;flex-wrap:wrap;max-width:calc(100% - 45px)}.mode{white-space:nowrap;border:1px solid rgba(139,163,176,.20);background:rgba(12,22,29,.65);font-size:9px;letter-spacing:.06em;border-radius:4px;padding:10px 13px;color:#798f9a;transition:background .2s,color .2s,border-color .2s;backdrop-filter:blur(5px)}.mode span{font-size:11px;color:#a6b6bd;margin-left:6px;letter-spacing:0;font-weight:560}.mode.active{background:#22414a;color:var(--accent);border-color:#4b8188;box-shadow:inset 0 -2px var(--accent)}.mode.active span{color:#f3fbfa}.mode:hover{border-color:#6e9ca2}
.scene-labels{pointer-events:none;position:absolute;inset:0;z-index:4;overflow:hidden}.callout{position:absolute;left:0;top:0;display:flex;align-items:center;gap:9px;font-size:10px;color:#d7f4f5;white-space:nowrap;text-shadow:0 1px 8px #0b1d24;opacity:0;transition:opacity .15s;transform:translate(-50%,-50%)}.callout:before{content:'';width:17px;height:1px;background:var(--accent)}.callout:after{content:'';position:absolute;left:-5px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--accent);transform:translateY(-50%);box-shadow:0 0 9px var(--accent)}.callout span{padding:5px 7px;background:rgba(12,27,35,.75);border-left:1px solid #4e8c93;border-radius:0 4px 4px 0}.scene-bottom{position:absolute;bottom:23px;left:clamp(24px,4%,62px);right:25px;display:flex;justify-content:space-between;align-items:flex-end;gap:14px;z-index:3;pointer-events:none}.model-status{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:.15em;color:#d4eeee}.pulse{background:#80e0d8;border-radius:50%;width:6px;height:6px;box-shadow:0 0 12px #80e0d8}.model-status small{margin-left:10px;color:#7b939d;letter-spacing:0;font-size:11px}.scene-legend{font-size:9px;color:#b3c4c7;white-space:nowrap;display:flex;gap:7px;align-items:center;letter-spacing:.07em}.legend-mark{display:inline-block;height:8px;width:8px;border-radius:50%}.legend-mark.metal{background:#bccbd0}.legend-mark.copper{background:#c7956e}.legend-mark.blue{background:#55a9c1}.toast{pointer-events:none;z-index:10;position:absolute;bottom:65px;left:50%;transform:translateX(-50%);background:#1e343b;border:1px solid #517b85;color:#e8f9f8;border-radius:6px;font-size:12px;padding:12px 18px;opacity:0;transition:opacity .2s}.toast.show{opacity:1}
.side-panel{background:var(--panel);border-left:1px solid #2c3941;min-height:0;min-width:0;overflow:hidden}.panel-scroll{height:100%;overflow:auto;overscroll-behavior:contain;padding:27px 24px 32px;scrollbar-width:thin;scrollbar-color:#394d55 transparent}.micro-label,.muted-kicker{font-weight:600;font-size:9px;letter-spacing:.19em;color:var(--accent)}.panel-title-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-title-row h2{font-size:23px;margin:13px 0 4px;font-weight:670;letter-spacing:-.025em}.live-chip{border:1px solid #335963;color:#9ee5e8;font-size:9px;letter-spacing:.13em;border-radius:30px;padding:4px 8px;white-space:nowrap}.live-chip span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:5px}.panel-top p{font-size:12px;line-height:1.65;color:#8fa1a9;margin:5px 0 25px}.section-head{border-top:1px solid var(--line);margin-top:24px;padding:18px 0 16px;color:#c2d0d2;font-size:10px;letter-spacing:.13em;font-weight:700;display:flex;align-items:center;gap:11px}.section-head>span:first-child{font-size:10px;color:var(--accent)}.badge-soft{font-weight:500;letter-spacing:.07em;font-size:8px!important;color:#83bfc2!important;background:#203a40;border-radius:2px;padding:4px 5px;margin-left:auto}.control-block{margin:0 0 20px}.control-block label{color:#c4d2d5;font-size:12px;font-weight:560}.help-text{float:right;color:#667f89;font-size:10px;font-weight:400}select{background:#16242d;color:#d6e8e9;border:1px solid #354651;padding:10px 10px;font-size:12px;border-radius:5px;width:100%;outline:0;margin-top:10px}select:focus-visible{outline:2px solid var(--accent)}.component-caption{color:#8399a2;font-size:11px;line-height:1.6;margin-top:9px;min-height:30px}.range-label{display:flex;justify-content:space-between;gap:12px;align-items:center}.range-label output{font-size:12px;color:var(--accent);font-weight:650;font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent);height:5px;margin:17px 0 4px;cursor:pointer}.range-ticks{display:flex;justify-content:space-between;color:#66828e;font-size:9px;letter-spacing:.10em;margin-top:6px}.toggle-row{display:grid;grid-template-columns:1fr 1fr;gap:10px 8px}.switch-label{font-size:11px;color:#a5b8bf;display:flex;gap:8px;align-items:center;cursor:pointer;line-height:1.35}.switch-label input{position:absolute;opacity:0;width:1px;height:1px}.switch{flex:0 0 28px;width:28px;height:16px;position:relative;border-radius:100px;background:#3c4e56;border:1px solid #52656d;transition:.2s}.switch:before{content:"";position:absolute;height:10px;width:10px;background:#a4b6bc;border-radius:50%;left:2px;top:2px;transition:.2s}.switch-label input:checked+.switch{background:#2d6569;border-color:#6bc4c7}.switch-label input:checked+.switch:before{transform:translateX(12px);background:#c6f9f4}.switch-label input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:3px}
.assembly-card{background:linear-gradient(145deg,#1a2a33,#16232c);border:1px solid #2a434d;padding:14px;border-radius:8px}.assembly-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.assembly-top strong{display:block;font-size:12px;font-weight:580;margin:8px 0 0}.assembly-top>span{font-size:11px;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.progress{height:4px;border-radius:4px;background:#344951;overflow:hidden;margin:15px 0 10px}.progress>div{height:100%;width:0;background:var(--accent);transition:width .2s}.assembly-card p{color:#91a7ae;font-size:11px;line-height:1.5;min-height:34px}.assembly-actions{display:flex;gap:7px;flex-wrap:wrap}.assembly-actions button,.operation-row button{font-size:11px;padding:9px 11px;border-radius:4px}.primary-btn{background:var(--accent);color:#12232b;border:1px solid var(--accent);font-weight:750}.thin-btn{background:#203039;border:1px solid #3d535e;color:#c5dadd}.thin-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.thermal-controls .control-block{margin-bottom:16px}.readouts{background:#0c171e;border:1px solid #30434d;border-radius:8px;overflow:hidden;margin-top:12px}.readout-header{padding:11px 12px;border-bottom:1px solid #2c3d45;display:flex;justify-content:space-between;letter-spacing:.13em;color:#99aeb5;font-size:9px}.readout-header span+span{color:var(--accent)}.readout-grid{display:grid;grid-template-columns:1fr 1fr}.readout{padding:14px 12px;border-bottom:1px solid #2a3941}.readout:nth-child(odd){border-right:1px solid #2a3941}.readout small{color:#a1b5bb;font-size:10px;display:flex;justify-content:space-between}.readout strong{font-size:22px;color:#e8f5f4;font-weight:530;display:block;margin:8px 0 1px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.readout strong em{font-style:normal;font-size:11px;color:var(--accent)}.readout>span{font-size:9px;color:#65828c}.independent{padding:11px 12px}.independent>span{color:var(--accent);font-size:9px;letter-spacing:.1em}.independent p{font-size:10px;color:#a8c0c5;margin:6px 0 0;line-height:1.6}.independent b{color:#e5f4f2;font-weight:550}.separator-dot{color:#536b74}.check-mark{color:#85d8b6;font-size:9px;margin-left:5px;font-weight:700}.operation-row{display:flex;gap:8px}.operation-row button{white-space:nowrap}.operation-row select{margin:0;min-width:0}.science{border:1px solid #334750;border-radius:6px;margin-top:24px;background:#15232b}.science summary{cursor:pointer;padding:14px 12px;font-size:11px;letter-spacing:.12em;color:#d6e4e4;list-style:none;display:flex;justify-content:space-between;gap:5px}.science summary::-webkit-details-marker{display:none}.science summary:after{content:'+';font-size:18px;color:var(--accent);line-height:12px}.science[open] summary:after{content:'−'}.science summary span{font-size:9px;letter-spacing:0;color:#80969e}.science-body{padding:0 14px 12px;border-top:1px solid #2d434b;font-size:11px;color:#a6bdc0;line-height:1.7}.science-body h3{font-size:11px;color:#d3e5e5;margin:14px 0 0}.science-body code{font-family:ui-monospace,Consolas,monospace;color:#9ed9db;white-space:normal}.affiliation{border-left:2px solid var(--accent);padding:8px 12px;background:#1e3038;color:#d1e5e7}.panel-footer{margin-top:28px;padding-top:15px;border-top:1px solid var(--line);font-size:9px;letter-spacing:.08em;line-height:1.7;color:#617982}.panel-footer span{color:var(--accent);margin:0 6px}
body.embed-mode{height:100vh;height:100dvh;overflow:hidden}body.embed-mode .app-header{display:none}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 328px}.app-header{padding:0 18px}.header-center{display:none}.scene-legend{display:none}.mode-tabs{top:153px}.scene-heading h1{font-size:28px}}
@media(max-width:740px){.app-shell{height:100vh;height:100dvh}.app-header{height:49px;flex-basis:49px;padding:0 14px}.logo{gap:8px}.logo svg{width:24px;height:24px}.logo-text strong{font-size:12px}.logo-text small{font-size:6px;letter-spacing:.08em}.header-help{font-size:0;gap:0}.header-help svg{width:19px;height:19px}.workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(270px,54%) minmax(220px,46%)}.side-panel{border-left:0;border-top:1px solid #3a4c53}.panel-scroll{padding:19px 20px 32px}.panel-top p{margin-bottom:15px}.viewer{min-height:0}.scene-heading{top:18px;left:18px}.eyebrow{font-size:8px;letter-spacing:.1em}.eyebrow-line{width:13px}.scene-heading h1{font-size:clamp(19px,5.3vw,29px);margin:8px 0 5px}.scene-heading p{font-size:10px}.view-toolbar{top:16px;right:13px;padding:4px;gap:0}.icon-btn{height:27px;width:27px}.icon-btn svg{width:15px;height:15px}.toolbar-sep{margin:0 1px;height:16px}.mode-tabs{left:13px;right:13px;top:auto;bottom:66px;max-width:unset;gap:3px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.mode-tabs::-webkit-scrollbar{display:none}.mode{font-size:8px;letter-spacing:0;padding:8px 7px;flex:1;min-width:max-content;background:rgba(8,20,27,.88)}.mode span{font-size:10px;margin-left:2px}.scene-bottom{bottom:19px;left:17px;right:15px}.model-status{font-size:8px;gap:6px}.model-status small{display:none}.scene-legend{display:none}.callout{font-size:8px}.callout span{padding:3px 5px}.readout strong{font-size:21px}.section-head{margin-top:18px}.panel-title-row h2{font-size:21px;margin-top:7px}.component-caption{min-height:auto}}
@media(max-width:420px){.app-header{padding:0 10px}.scene-heading h1{font-size:18px}.scene-heading p{font-size:9px}.scene-heading{top:15px;left:13px}.view-toolbar{right:8px;top:13px}.icon-btn{width:24px;height:25px}.icon-btn svg{width:13px;height:13px}.mode{font-size:7px;padding:7px 5px}.mode span{font-size:9px}.panel-scroll{padding:15px 16px 28px}.workspace{grid-template-rows:minmax(260px,52%) minmax(220px,48%)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
[hidden]{display:none!important}

html,body{height:100%;overflow:hidden}
