:root{color-scheme:dark;--bg:#0c161d;--surface:#14232c;--line:#2b4148;--text:#dbe9e7;--muted:#8aa5aa;--mint:#8cdec0;--gold:#edc389;--blue:#88baff}*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--mint);outline-offset:3px}a{color:inherit;text-decoration:none}.sim-header{height:78px;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line);padding:0 34px;background:#101d25}.wordmark{font-size:24px;font-weight:750;letter-spacing:-1px}.wordmark span{color:var(--mint)}.sim-header>div{padding-left:26px;border-left:1px solid var(--line)}.sim-header strong{font-size:13px;font-weight:500}.sim-header small{display:block;font:8px Consolas,monospace;letter-spacing:1.5px;color:var(--muted);margin-top:6px}.sim-header>a:last-child{margin-left:auto;font-size:11px;color:var(--muted)}.sim-shell{display:grid;grid-template-columns:228px minmax(0,1fr);max-width:1700px;margin:auto}.project-sidebar{padding:35px 22px;border-right:1px solid var(--line)}.overline{font:8px Consolas,monospace;color:var(--mint);letter-spacing:1.5px}h1{font-size:21px;line-height:1.65;font-weight:500;letter-spacing:-.5px;margin:15px 0 27px}.project-sidebar nav{display:grid;gap:9px}.project-sidebar nav button{display:flex;align-items:center;gap:12px;padding:15px 12px;border:1px solid transparent;background:transparent;color:var(--muted);text-align:left;border-radius:6px}.project-sidebar nav button[aria-pressed=true]{background:#1c3637;border-color:#49756b;color:#d1eee1}.project-sidebar nav button>span{font:15px Consolas,monospace;opacity:.7}.project-sidebar nav strong{font-size:12px;font-weight:500}.project-sidebar nav small{display:block;margin-top:7px;font-size:9px;color:#729a98}.sidebar-note{border-top:1px solid var(--line);padding-top:25px;margin-top:36px;font-size:10px;line-height:1.9;color:var(--muted)}.sidebar-note strong{font-weight:500;color:var(--mint)}.sidebar-note p{margin:12px 0}.status-dot{display:inline-block;width:5px;height:5px;background:var(--mint);border-radius:50%;margin-right:7px}.simulation-main{padding:29px 28px;min-width:0}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:22px}h2{font-size:25px;font-weight:600;letter-spacing:-.5px;margin:9px 0 0}.model-badge{font-size:9px;background:#22382d;border:1px solid #47664b;color:#bed4af;padding:7px 9px;border-radius:4px}.sim-toolbar{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid var(--line);background:#13232b;border-radius:7px;margin-bottom:18px}.button{display:inline-flex;justify-content:center;align-items:center;background:#1b3038;border:1px solid #3b5660;color:#c3d8d9;border-radius:4px;min-height:36px;font-size:10px;padding:8px 12px}.button:hover{border-color:#79ae9b;background:#25453e}.button.primary{background:#91dbb9;color:#13382d;border-color:#91dbb9;min-width:84px}.sim-toolbar label{display:flex;align-items:center;gap:8px;margin-left:10px;color:var(--muted);font-size:9px}.sim-time{margin-left:auto;font:11px Consolas,monospace;color:var(--mint)}select{background:#11242c;color:#c1d6d7;border:1px solid #37515b;border-radius:4px;font-size:10px;padding:7px;max-width:100%}.simulation-grid{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:20px}.visual-column{min-width:0}.viewport-frame{background:#101f28;border:1px solid #314b50;border-radius:8px;overflow:hidden}.viewport-caption{display:flex;justify-content:space-between;color:#789e9f;padding:14px 16px 0;font:8px Consolas,monospace;letter-spacing:.6px}.viewport-caption span:last-child{color:var(--mint)}#scene{display:block;width:100%;height:auto;aspect-ratio:980/450}.scene-edit-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:9px 12px;flex-wrap:wrap;font-size:9px;color:var(--muted)}.scene-edit-row label{display:flex;align-items:center;gap:6px}.scene-edit-row select{font-size:9px}.text-button{font-size:9px;color:var(--mint);background:none;border:0;padding:8px 0}.scene-edit-row>span{font-size:8px;line-height:1.8}.instrument-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:10px}.readout{padding:12px 10px;border:1px solid #2d4847;background:#132a2b;border-radius:5px;min-width:0}.readout small{font-size:8px;color:#7fa5a0;display:block}.readout strong{display:block;font:17px Consolas,monospace;color:#bcf2d0;margin-top:8px;overflow-wrap:anywhere}.readout strong.bits{font-size:12px}.readout i{font-size:8px;font-style:normal;margin-left:3px;color:#7e9f91}.plot-frame{margin-top:13px;border:1px solid var(--line);background:#101e26;border-radius:6px;padding:13px}.plot-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font:8px Consolas,monospace;color:#88a6ad}.plot-heading select{font-size:9px}#plot{width:100%;height:130px;display:block}.plot-legend{display:flex;gap:15px;font-size:8px;color:var(--mint);flex-wrap:wrap}.plot-legend span:nth-child(2){color:var(--gold)}.plot-legend small{margin-left:auto;color:var(--muted);font-size:8px}.simulation-status{font-size:10px;line-height:1.8;color:#9fbbb7;border-left:2px solid var(--mint);padding-left:12px;margin-top:17px}.parameter-column{border:1px solid var(--line);background:#14242b;border-radius:7px;padding:18px;align-self:start;min-width:0}.parameter-heading h3{font-size:16px;font-weight:500;margin:10px 0 20px}.field-label{display:block;color:#a8c3c2;font-size:10px;margin:15px 0 8px}.field-label>select{display:block;width:100%;margin-top:8px;min-height:35px}.parameter-field{border-bottom:1px solid #263e44;padding:13px 0 10px}.parameter-field label{display:flex;justify-content:space-between;font-size:10px;color:#9eb9b7;gap:8px}.parameter-field output{font:11px Consolas,monospace;color:#b0e8ca}.parameter-field input{width:100%;accent-color:#88d3b0;display:block;margin:12px 0 3px;height:15px}.parameter-field small{font-size:8px;line-height:1.7;color:#668d8a}.project-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:15px}.project-actions .button{font-size:9px;padding:7px 9px}.model-details{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;font-size:10px;color:#86aaa5}.model-details summary{cursor:pointer;min-height:30px}.model-details p{font-size:9px;line-height:1.9;color:#71968f}.scene-files{display:flex;flex-wrap:wrap;gap:7px;border-top:1px solid var(--line);padding-top:15px;margin-top:16px}.scene-files .button{font-size:9px;padding:7px 9px;cursor:pointer}.import-button input{display:none}.storage-note{font-size:8px;color:#668f87;line-height:1.9}.sim-toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#285448;color:#d4f2e0;padding:11px 20px;border-radius:6px;font-size:11px;max-width:90%;opacity:0;pointer-events:none;z-index:30;transition:opacity .15s}.sim-toast.visible{opacity:1}.manual-row{display:flex;gap:5px;flex-wrap:wrap}.manual-row .button{min-width:36px}.embed .sim-header,.embed .project-sidebar,.embed .workspace-heading{display:none}.embed .sim-shell{display:block}.embed .simulation-main{padding:0}.embed .simulation-grid{grid-template-columns:minmax(0,1fr) 245px}.embed .sim-toast{position:sticky;bottom:10px}.embed .model-badge{display:none}
@media(min-width:1450px){.simulation-main{padding:32px 40px}.simulation-grid{grid-template-columns:minmax(0,1fr) 280px}.sim-shell{grid-template-columns:250px minmax(0,1fr)}}
@media(max-width:1150px){.sim-shell{grid-template-columns:185px minmax(0,1fr)}.project-sidebar{padding:30px 14px}.project-sidebar h1{font-size:18px}.simulation-main{padding:24px 18px}.simulation-grid{grid-template-columns:minmax(0,1fr) 225px}.parameter-column{padding:14px}.instrument-strip{grid-template-columns:1fr 1fr}.readout strong{font-size:18px}}
@media(max-width:900px){.sim-shell{display:block}.project-sidebar{border-right:0;border-bottom:1px solid var(--line);padding:16px 20px}.project-sidebar h1,.project-sidebar>.overline,.sidebar-note{display:none}.project-sidebar nav{display:flex;gap:8px}.project-sidebar nav button{flex:1;padding:11px 10px;gap:9px}.project-sidebar nav button>span{font-size:11px}.project-sidebar nav small{font-size:8px}.sim-header{padding:0 22px;gap:20px}.simulation-grid,.embed .simulation-grid{grid-template-columns:1fr}.parameter-column{padding:20px}.parameter-column #parameter-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.parameter-heading h3{margin-bottom:12px}.instrument-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.storage-note{font-size:10px}.parameter-field label{font-size:12px}.parameter-field small{font-size:10px}.model-details p{font-size:11px}.scene-files .button{font-size:11px;min-height:40px}.embed .sim-toolbar{margin-top:0}.embed #scene{aspect-ratio:980/450}.sim-header>div{padding-left:16px}.plot-legend small{margin-left:0}.embed .parameter-column{margin-bottom:10px}}
@media(max-width:520px){.sim-header{height:70px;padding:0 17px;gap:15px}.sim-header strong{font-size:11px}.sim-header small{font-size:6px}.sim-header>a:last-child{font-size:9px}.wordmark{font-size:20px}.project-sidebar{padding:12px}.project-sidebar nav{gap:5px}.project-sidebar nav button{padding:10px 6px;gap:5px}.project-sidebar nav strong{font-size:10px}.project-sidebar nav small{display:none}.simulation-main{padding:20px 12px}.workspace-heading h2{font-size:22px}.model-badge{font-size:8px;padding:6px}.sim-toolbar{gap:6px;padding:10px;flex-wrap:wrap}.sim-toolbar label{margin-left:0}.sim-time{font-size:10px}.button{min-height:39px;padding:8px 10px}.sim-toolbar .primary{min-width:73px}.sim-toolbar label{font-size:8px}.sim-toolbar select{padding:6px}.instrument-strip{grid-template-columns:1fr 1fr}.readout small{font-size:9px}.readout strong{font-size:19px}.viewport-caption{font-size:7px;padding:12px 10px 0}.scene-edit-row{gap:8px;padding:9px}.scene-edit-row>span{font-size:9px}.parameter-column{padding:16px}.parameter-column #parameter-fields{grid-template-columns:1fr;gap:0}.parameter-field label{font-size:12px}.parameter-field input{height:25px;margin-top:10px}.parameter-field small{font-size:10px}.project-actions .button{font-size:11px;min-height:40px}.simulation-status{font-size:11px}.plot-frame{padding:11px}.plot-heading{font-size:7px}#scene,.embed #scene{aspect-ratio:520/565}#plot{height:140px}.embed .sim-toolbar{padding:9px}.embed .sim-time{font-size:9px}.embed .sim-toolbar label{gap:4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Task-oriented workbench and lightweight portfolio exhibits. */
.task-monitor{border:1px solid #3f5a50;background:linear-gradient(120deg,#1d332c,#14242b);border-radius:7px;margin-bottom:20px;padding:18px 20px}.task-intro strong{font-size:15px;color:#e6eee1}.task-intro p{font-size:11px;line-height:1.8;color:#a9bdb1;margin:8px 0 16px}.task-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;border-top:1px solid #365145;padding-top:14px}.task-metrics small{display:block;color:#98b1a4;font-size:10px;margin-bottom:7px}.task-metrics strong{font-size:13px;font-weight:500;font-family:Consolas,'Microsoft YaHei',monospace;color:#e6d5b8;line-height:1.7}.task-metrics div:last-child strong{color:#a4ddc5}.experiment-bottom{display:flex;align-items:center;gap:15px;margin:17px 0}.experiment-events{flex:1;color:#a6baaf;font-size:10px;line-height:1.8}.experiment-bottom button{font-size:10px;white-space:nowrap}.preset-note{font-size:11px;color:#9bb6a8;line-height:1.9;padding:14px 0;border-top:1px solid #30483f}.preset-note a{display:block;color:#e1c7a1;margin-top:7px}.model-details{margin-top:7px}.simulation-main{max-width:1800px}.parameter-heading h3{font-size:19px}.sim-header{background:#111c21}.viewport-frame{background:radial-gradient(ellipse at 70% 50%,#24423933,transparent 70%),#132128}.plot-frame{background:#122128}.model-badge{color:#d9c29b;background:#302e26;border-color:#594e3b}.project-sidebar{background:#101c21}.overline{color:#d0ba99}.project-sidebar nav button[aria-pressed=true]{box-shadow:inset 3px 0 #9ddbc2;background:#203a32}.sim-toolbar{position:sticky;top:0;z-index:3;background:#17282df5;backdrop-filter:blur(14px)}
.showcase .sim-header,.showcase .project-sidebar,.showcase .workspace-heading,.showcase .sim-toolbar,.showcase .parameter-column,.showcase .scene-edit-row,.showcase .plot-frame,.showcase #task-monitor,.showcase .experiment-bottom,.showcase #status,.showcase .sim-toast{display:none!important}.showcase{background:#142127}.showcase .simulation-main{padding:0!important}.showcase .sim-shell,.showcase .simulation-grid{display:block!important}.showcase .viewport-frame{border:0;border-radius:0;background:radial-gradient(ellipse at 75% 45%,#375b4430,transparent 65%),#142127}.showcase .viewport-caption{padding:18px 20px 0;font-size:9px;color:#c6b390}.showcase #scene{pointer-events:none;aspect-ratio:980/450;width:100%;display:block}.showcase .instrument-strip{display:none}.story-caption{font-size:12px;line-height:1.8;color:#bdd2c1;padding:0 22px;margin:0 0 18px}.showcase-controls{display:flex;flex-wrap:wrap;gap:8px;padding:0 22px 22px}.showcase-controls button{font:11px 'Segoe UI','Microsoft YaHei',sans-serif;padding:9px 13px;color:#b7c7bc;border:1px solid #456354;border-radius:4px;background:transparent;min-height:36px}.showcase-controls button[aria-pressed=true]{background:#a1d9ba;color:#123326;border-color:#a1d9ba}.showcase-controls button:hover{border-color:#a1d9ba}.hero-showcase .showcase-controls{justify-content:center}.hero-showcase .story-caption{font-size:10px;text-align:center;padding-inline:12px}.hero-showcase .viewport-caption{font-size:8px}.hero-showcase .showcase-controls button{font-size:9px;padding:7px 9px;min-height:30px}
@media(max-width:1100px){.task-metrics{gap:12px}.task-metrics strong{font-size:11px}}
@media(max-width:900px){.task-metrics{grid-template-columns:1fr 1fr}.sim-toolbar{top:0}.simulation-main{padding-top:22px}}
@media(max-width:520px){.task-monitor{padding:16px 14px;margin-bottom:14px}.task-intro strong{font-size:14px}.task-metrics{gap:14px}.task-metrics strong{font-size:12px}.experiment-bottom{align-items:flex-start;flex-direction:column}.task-intro p{font-size:10px}.showcase #scene{aspect-ratio:520/565}.story-caption{font-size:11px;padding-inline:14px}.showcase-controls{padding-inline:14px;gap:7px}.showcase-controls button{font-size:10px;padding:8px 11px}.showcase .viewport-caption{padding:13px 14px 0;font-size:8px}}

.parameter-group{font-size:10px;letter-spacing:1px;font-weight:500;color:#d7c3a0;margin:22px 0 10px;border-bottom:1px solid #3a5047;padding-bottom:10px;grid-column:1 / -1}.parameter-group:first-child{margin-top:13px}

.signal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.signal-actions button{font-size:10px}.signal-actions [hidden]{display:none!important}@media(max-width:520px){.signal-actions{justify-content:flex-start}.signal-actions button{font-size:10px}}

.legacy-banner{display:block;background:#294536;color:#dbe7c9;padding:12px 20px;font-size:12px;line-height:1.8}.showcase .legacy-banner,.embed .legacy-banner{display:none!important}
