/* Shared interface skin aligned with YuanSi campus. No canvas/model/material effects. */
:root{--ice:#b2e5f7;--ink:#e8f4fa;--text:#e8f4fa;--muted:#8caabb;--line:#81abc33a;--panel:#102d41ed;--bg:#132637;--gold:#b2e5f7;--accent:#b2e5f7;--cyan:#b2e5f7}
body[data-surface]{color:var(--text);background:#132637}body[data-surface] :is(button,input,select){accent-color:#89d6ef}
body[data-surface] :is(button,a,input,select,summary):focus-visible{outline:2px solid #89d6ef;outline-offset:3px}
body[data-surface] ::selection{background:#477b92;color:#fff}
body[data-surface] :is(button,a)[aria-pressed=true]{color:#d9f5ff}
body[data-surface] :is(select,input[type=search]){color:#cce4ef;background-color:#102737;border-color:#81abc33a}
/* The neutral model stage stays visually distinct from translucent controls. */
body[data-surface=home] .screen{background:radial-gradient(ellipse at 57% 43%,#34424d 0%,#1d3344 43%,#142d43 100%)}
body[data-surface=home] :is(.masthead,.directions){border-color:#81abc32d}
body[data-surface=home] :is(.stage-heading p,.section-kicker,.exhibit-copy h2,.masthead .catalog-link){color:#a3bfd0}
body[data-surface=home] .stage-heading h1{color:#e8f4fa;font-weight:500}
body[data-surface=home] .focus-button{border-radius:3px}
body[data-surface=home] .focus-button:hover{background:#42708920}
body[data-surface=home] .focus-button.active{background:linear-gradient(90deg,#42708955,transparent);box-shadow:inset 2px 0 #87cde2}
body[data-surface=home] .focus-button.active :is(.focus-no,.focus-copy strong){color:#d9f5ff}
body[data-surface=home] .focus-copy strong{color:#aec7d5;font-weight:400}
body[data-surface=home] :is(.inspector,.teaching-dock){background:#102d41e8;border:1px solid #81abc34a;border-radius:6px;backdrop-filter:blur(18px);box-shadow:0 8px 30px #0002}
body[data-surface=home] .mode-switch{gap:3px;padding:3px;background:#05142166;border-radius:4px}
body[data-surface=home] .mode-switch button{padding:.5em .7em;min-height:38px;border-radius:3px;border-bottom:2px solid transparent;color:#b3ceda}
body[data-surface=home] .mode-switch button.active{background:#42708945;color:#d9f5ff;border-bottom-color:#87cde2}
body[data-surface=home] .view-switch{padding:4px;background:#102c3ac9;border:1px solid #81abc32a;border-radius:5px}
body[data-surface=home] .view-switch button{color:#9cbacc;border:0;min-height:32px}
body[data-surface=home] .view-switch button.active{background:#42708940;color:#d9f5ff;box-shadow:inset 0 -1px #87cde2}
body[data-surface=home] :is(#assembly-tools-toggle,.inspector-launcher,.exhibit-link,.selected-model-link,.presentation-button){background:#14364ad9;color:#c9e8f5;border:1px solid #81abc34a;border-radius:4px;box-shadow:none}
body[data-surface=home] :is(#assembly-tools-toggle,.inspector-launcher,.exhibit-link,.selected-model-link):hover{background:#2a4b6180;border-color:#95c9dd80}
body[data-surface=home] :is(#assembly-tools-toggle,.inspector-launcher)[aria-expanded=true]{color:#dcf7ff;background:#3159706b;border-color:#89cbe26b}
body[data-surface=home] :is(.part-actions button,.part-pagination button,.map-heading button){background:#14364a99;border:1px solid #81abc333;border-radius:4px;color:#b3ceda}
body[data-surface=home] .part-actions button[aria-pressed=true]{color:#d9f5ff;background:#42708945;border-color:#87cde2}
body[data-surface=home] :is(.part-row:hover,.part-row[aria-pressed=true]){background:#42708935;color:#ddf6ff}
body[data-surface=home] .part-row[aria-pressed=true]{border-left-color:#87cde2}
body[data-surface=home] :is(.search-box,#module-filter){background:#081c2b80;border-color:#81abc330;color:#c1dce8}
body[data-surface=home] :is(.part-eyebrow,.selected-part .disassembly-note,#detached-status,.selection-state.detached,#professional-map-open b){color:#b2e5f7}
body[data-surface=home] .selection-state.detached{background:#42708930;border-color:#81abc360}
body[data-surface=home] :is(.explode-row,.section-row,.part-browser){border-color:#81abc32a}
/* Quiet professional menu: thin separators, complete labels, no heavy tiles. */
body[data-surface=home] .professional-map{background:#102b3df5;border:1px solid #81abc34a;border-radius:7px;box-shadow:0 20px 70px #0004;padding:30px}
body[data-surface=home] .professional-map::backdrop{background:#071727a8;backdrop-filter:blur(12px)}
body[data-surface=home] .map-heading{border-bottom:1px solid #81abc32d;padding-bottom:20px;margin-bottom:12px}
body[data-surface=home] .map-heading h2{color:#e8f4fa;letter-spacing:.08em}
body[data-surface=home] .map-heading p{color:#8caabb}
body[data-surface=home] .professional-map .domain-grid{gap:0 24px}
body[data-surface=home] .professional-map .domain-card{background:transparent;border:0;border-bottom:1px solid #81abc328;border-radius:0;box-shadow:none;padding:24px 12px;transform:none}
body[data-surface=home] .professional-map .domain-card:hover{background:#42708925;border-color:#8bcde478;transform:none}
body[data-surface=home] .professional-map .domain-card h3{color:#d2e9f4;font-weight:400}
body[data-surface=home] .professional-map :is(.domain-icon,.domain-bottom svg){color:#a1d5e8}
body[data-surface=home] .professional-map :is(.domain-code,.domain-bottom,.direction-links){color:#8caabb}
/* Both workbench families share the same navigation and selection language. */
body[data-surface=workbench] header{background:#142d43;border-color:#81abc330}
body[data-surface=workbench] aside{background:#112737;border-color:#81abc328}
body[data-surface=workbench] :is(.panel-head,.intro,.parts-panel,.part,.module-head){border-color:#81abc325}
body[data-surface=workbench] :is(button,.part-actions button){background:#18394b80;color:#b3ceda;border-color:#81abc333;border-radius:4px}
body[data-surface=workbench] button:hover:enabled{background:#2a4b6166;border-color:#91c6db65;color:#e8f8ff}
body[data-surface=workbench] :is(button.active,button[aria-pressed=true]){background:#42708945;border-color:#81abc345;box-shadow:inset 0 -2px #87cde2;color:#d9f5ff}
body[data-surface=workbench] .part{background:transparent;border-radius:0}
body[data-surface=workbench] .part.is-selected{background:#42708935;border-left-color:#87cde2;color:#d9f5ff;box-shadow:none}
body[data-surface=workbench] :is(.selection,.selected){background:#102d41ed;border-color:#81abc33a;backdrop-filter:blur(14px);border-radius:6px;box-shadow:0 8px 30px #0002}
body[data-surface=workbench] :is(.bottom,.controls){background:#142d40;border-color:#81abc330}
body[data-surface=workbench] :is(.modes,.stage-top){background:#102a3bd9;border-color:#81abc33a;border-radius:5px;padding:4px;gap:3px}
body[data-surface=workbench] :is(.modes,.stage-top) button{background:transparent;border-color:transparent}
body[data-surface=workbench] :is(.modes,.stage-top) button.active{background:#42708945;border-color:transparent;box-shadow:inset 0 -2px #87cde2;color:#d9f5ff}
body[data-surface=workbench] :is(.metric strong,#part-id){color:#c9e9f6}
body[data-surface=workbench] :is(.status-line,#status){background:#0e2232;color:#8caabb;border-color:#81abc325}
body[data-surface=workbench] :is(#model-select,.search input){background:#102a3b;border-color:#81abc330;color:#c7e4ef}
body[data-surface=workbench] :is(header nav a,.home-link){color:#b3ceda}
body[data-surface=workbench] dialog{background:#102b3df5;color:#e8f4fa;border:1px solid #81abc34a;border-radius:7px}
body[data-surface=workbench] dialog::backdrop{background:#071727a8;backdrop-filter:blur(10px)}
body[data-surface=catalog]{--gold:#b2e5f7;--accent:#b2e5f7}
@media(max-width:700px){body[data-surface=home] .mode-switch{gap:1px}body[data-surface=home] .mode-switch button{padding:.45em .4em;font-size:11px}body[data-surface=home] .professional-map{padding:18px}body[data-surface=home] .professional-map .domain-grid{gap:0 12px}body[data-surface=home] .professional-map .domain-card{padding:18px 7px}body[data-surface=home] .professional-map .domain-card h3{font-size:14px}}
@media(prefers-reduced-motion:reduce){body[data-surface] *,body[data-surface] *::before,body[data-surface] *::after{transition:none!important;animation:none!important}}
/* First layer: full-screen holographic vehicle, before professional navigation. */
.portal-actions[hidden],.portal-intro[hidden]{display:none}
body[data-surface=home].portal-home .screen{height:100svh;min-height:540px;display:block;position:relative;overflow:hidden;background:radial-gradient(ellipse at 52% 48%,#294c6150,transparent 60%),#142d43}
body[data-surface=home].portal-home .masthead{position:absolute;left:0;right:0;top:0;height:100px;z-index:6;border:0}
body[data-surface=home].portal-home .masthead-left,body[data-surface=home].portal-home .masthead-actions{visibility:hidden;pointer-events:none}
body[data-surface=home].portal-home .brand{position:absolute;left:0;top:27px;max-width:none}
body[data-surface=home].portal-home .brand .university-mark{width:clamp(190px,17vw,370px);max-height:70px}
body[data-surface=home].portal-home .mainstage{position:absolute;inset:0;overflow:hidden;padding:0;display:block}
body[data-surface=home].portal-home :is(.side-left,.view-switch,.inspector-launcher,.inspector,.teaching-dock,.exhibit-caption,.scene-toolbar,.directions,.live-status){display:none!important}
body[data-surface=home].portal-home .hero-stage{position:absolute;left:5%;right:5%;top:19%;bottom:15%;height:auto;width:auto;margin:0;z-index:1}
.portal-intro{position:absolute;top:6.5%;left:25%;right:25%;text-align:center;z-index:3;pointer-events:none}.portal-eyebrow{font-size:10px;letter-spacing:.22em;color:#83a9bd;margin:0 0 12px}.portal-intro h1{color:#e8f4fa;font-size:clamp(32px,3.2vw,76px);font-weight:450;letter-spacing:.25em;text-indent:.25em;line-height:1.25;margin:0 0 12px;text-shadow:none;background:none}.portal-subtitle{font-size:clamp(12px,.9vw,21px);letter-spacing:.17em;color:#8eacbf;margin:0}
.portal-actions{position:absolute;bottom:5%;left:0;right:0;z-index:5;display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap}
.portal-actions a,.portal-actions button,#return-portal{color:#c7e6f3;background:#14364ab0;border:1px solid #81abc34a;border-radius:4px;min-height:46px;padding:12px 24px;font-size:clamp(13px,.92vw,23px);letter-spacing:.07em}
.portal-actions a{border-color:#9cd8ec85;background:#37627a40}.portal-actions a span{margin-left:20px;color:#b2e5f7}.portal-actions :is(a,button):hover{color:#f1fbff;background:#42708945;border-color:#b2e5f7}.portal-actions small{width:100%;text-align:center;font-size:10px;color:#7898ac;letter-spacing:.1em;margin-top:5px}#return-portal{font-size:12px;min-height:36px;padding:8px 12px}
@media(max-width:700px){body[data-surface=home].portal-home .masthead{height:64px;display:block}body[data-surface=home].portal-home .brand{top:18px;left:10px}body[data-surface=home].portal-home .brand .university-mark{width:180px;max-height:42px}.portal-intro{top:16%;left:5%;right:5%}.portal-intro h1{font-size:32px}.portal-eyebrow{font-size:8px}.portal-subtitle{font-size:11px}body[data-surface=home].portal-home .hero-stage{left:0;right:0;top:29%;bottom:18%;height:auto;margin:0}.portal-actions{bottom:5%;gap:8px}.portal-actions a,.portal-actions button{font-size:12px;padding:10px 13px;min-height:43px}}
body[data-surface=home].portal-home:not(.scene-ready) #hero-canvas{opacity:0}body[data-surface=home].portal-home.scene-ready #hero-canvas{opacity:1;transition:opacity .45s ease}
body[data-surface=home] .professional-map .domain-card::before,body[data-surface=home] .professional-map .domain-card::after{display:none}

/* Energy engineering portal: scene first, two related discipline groups. */
.portal-energy{position:absolute;inset:0;pointer-events:none;z-index:3;color:#b9d8e8}.portal-energy[hidden],.energy-preview[hidden]{display:none}
.portal-energy .mint{color:#64e7c1}.portal-energy .gold{color:#ffcf89}.portal-energy .cyan{color:#83d9ff}
.portal-intro{top:5%;left:24%;right:24%}.portal-intro h1{font-size:clamp(36px,3.6vw,80px);margin-bottom:10px}.portal-subtitle{color:#a7cedd;font-size:clamp(13px,1vw,24px)}
.energy-orbit-label{position:absolute;top:21%;left:25%;right:25%;text-align:center;font-size:clamp(11px,.9vw,20px);letter-spacing:.12em;color:#94b5c7}
.energy-directions{position:absolute;left:3.3%;right:3.3%;top:29%;bottom:27%;display:flex;justify-content:space-between;pointer-events:none}
.energy-group{width:20%;display:flex;flex-direction:column;gap:clamp(14px,2.8vh,36px)}
.energy-group h2{font-size:clamp(16px,1.3vw,30px);font-weight:500;letter-spacing:.06em;color:#e1eff6;margin:0 0 7px;padding-bottom:16px;border-bottom:1px solid #84b9ce38}
.energy-group h2 small{display:block;font-size:9px;letter-spacing:.15em;color:#7299af;font-weight:400;margin-top:8px}
.energy-domain{pointer-events:auto;display:block;text-decoration:none;border-left:2px solid currentColor;padding:10px 0 10px 14px;background:linear-gradient(90deg,#18394d9c,transparent);transition:background .2s,transform .2s}
.energy-domain strong{display:flex;justify-content:space-between;align-items:center;font-size:clamp(15px,1.2vw,28px);font-weight:500;letter-spacing:.02em}.energy-domain strong span{font-size:14px;padding-right:9px;opacity:.65}.energy-domain p{font-size:clamp(11px,.85vw,19px);line-height:1.5;color:#9ebaca;margin:8px 0 0}
.energy-domain:hover,.energy-domain:focus-visible,.energy-domain.is-previewing{background:linear-gradient(90deg,#396f8585,transparent);transform:translateX(3px)}.energy-domain:focus-visible{outline:2px solid #c5efff;outline-offset:5px}
body[data-surface=home].portal-home .hero-stage{left:17%;right:17%;top:21%;bottom:25%;transition:opacity .25s}
body[data-surface=home].portal-home.ecosystem-preview .hero-stage{opacity:.2}
.energy-preview{position:absolute;left:33%;width:34%;top:30%;margin:0;padding:14px;border:1px solid #91c9e64d;background:#102739f5;box-shadow:0 20px 60px #07172570;border-radius:5px;text-align:center}
.energy-preview>span{font-size:10px;letter-spacing:.1em;color:#9dc2d5}.energy-preview img{display:block;width:100%;height:auto;object-fit:contain;margin:10px 0;border-radius:3px}.energy-preview figcaption{font-size:clamp(14px,1.1vw,25px);color:#e5f3fa;padding:5px}
.energy-chain{position:absolute;bottom:19%;left:26%;right:26%;text-align:center}
.energy-track{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 0;border-top:1px solid #83bfd33a;border-bottom:1px solid #83bfd325;position:relative;background:linear-gradient(90deg,transparent,#38617820,transparent)}
.energy-track span{font-size:clamp(12px,1vw,23px);letter-spacing:.03em;position:relative;padding:4px 0;transition:color .25s,text-shadow .25s}.energy-track i{font-style:normal;color:#5e94ac;font-size:15px}
.energy-chain[data-phase="0"] [data-step="0"],.energy-chain[data-phase="1"] [data-step="1"],.energy-chain[data-phase="2"] [data-step="2"],.energy-chain[data-phase="3"] [data-step="3"]{color:#f0fbff;text-shadow:0 0 18px #91e4ff}
.energy-chain[data-phase="0"] [data-step="0"]::after,.energy-chain[data-phase="1"] [data-step="1"]::after,.energy-chain[data-phase="2"] [data-step="2"]::after,.energy-chain[data-phase="3"] [data-step="3"]::after{content:'';height:2px;background:#b2e5f7;position:absolute;bottom:-15px;left:0;right:0;box-shadow:0 0 9px #91e4ff}
.energy-chain>small{display:block;font-size:10px;letter-spacing:.06em;color:#81a7bc;margin-top:12px}.energy-chain button{pointer-events:auto;border:0;border-left:1px solid #729ab350;border-radius:0;background:none;padding:2px 0 2px 10px;margin-left:7px;color:#acd3e5;font-size:10px;cursor:pointer}.energy-chain button:focus-visible{outline:2px solid #b2e5f7;outline-offset:3px}
.portal-actions{bottom:5.5%;gap:16px}.portal-actions a,.portal-actions button{font-size:clamp(14px,1.05vw,24px);padding:15px 27px;min-height:50px}
.portal-actions #portal-enter{background:#b2e5f7;color:#102e41;border-color:#d0f2ff;box-shadow:0 0 30px #79cce51c;font-weight:600}.portal-actions #portal-enter span{color:#16394c}.portal-actions #portal-enter:hover{background:#dbf6ff;box-shadow:0 0 30px #79cce53a}.portal-actions #portal-explore{background:#132d4080;border-color:#81abc360}.portal-actions small{font-size:11px}.portal-actions :focus-visible{outline:2px solid #e5faff;outline-offset:5px}
@media(min-width:1600px){.energy-group h2 small{font-size:12px}.energy-domain{padding:18px 0 18px 22px}.energy-preview>span,.energy-chain>small,.energy-chain button{font-size:13px}.energy-track{padding:20px 0}.energy-chain [data-step]::after{bottom:-21px!important}}
@media(max-width:700px){
 body[data-surface=home].portal-home .screen{min-height:840px}
 .portal-intro{top:10.5%;left:5%;right:5%}.portal-intro h1{font-size:29px}.portal-subtitle{font-size:11px}
 .energy-orbit-label{top:22%;left:5%;right:5%;font-size:10px}
 body[data-surface=home].portal-home .hero-stage{left:0;right:0;top:25%;bottom:50%}
 .energy-directions{left:5%;right:5%;top:59%;bottom:18%}.energy-group{width:46%;gap:9px}.energy-group h2{font-size:13px;margin:0 0 2px;padding-bottom:8px}.energy-group h2 small{display:none}
 .energy-domain{padding:8px 0 8px 9px;min-height:36px}.energy-domain strong{font-size:12px}.energy-domain strong span{font-size:11px}.energy-domain p{display:none}
 .energy-chain{left:7%;right:7%;bottom:44%}.energy-track{padding:8px 0}.energy-track span{font-size:11px}.energy-chain [data-step]::after{bottom:-9px!important}.energy-chain>small,.energy-chain button{font-size:8px;margin-top:6px}
 .energy-preview{left:18%;width:64%;top:26%;padding:9px}.energy-preview>span{font-size:8px}.energy-preview figcaption{font-size:12px}.energy-preview img{max-height:130px;margin:4px 0}
 .portal-actions{bottom:4%;gap:8px}.portal-actions a,.portal-actions button{font-size:12px;padding:12px 14px;min-height:44px}.portal-actions small{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.energy-domain,.energy-track span{transition:none}}

/* Source credit remains reachable in both exhibition and exploration. */
#vehicle-model-info-open{position:absolute;right:22px;top:16px;z-index:7;background:#102c3a80;color:#99bacb;border:1px solid #81abc32a;border-radius:4px;padding:8px 12px;font-size:11px;cursor:pointer}
.portal-home #vehicle-model-info-open{top:34px;right:3.3%}
.vehicle-model-info{width:min(560px,calc(100vw - 36px));max-height:85svh;overflow:auto;box-sizing:border-box;background:#102b3dfa;color:#bfd4df;border:1px solid #81abc355;border-radius:8px;padding:32px;box-shadow:0 25px 90px #0007;font-size:14px;line-height:1.85}
.vehicle-model-info::backdrop{background:#061322a8;backdrop-filter:blur(10px)}
.vehicle-model-info form{float:right}.vehicle-model-info button{border:1px solid #81abc345;background:transparent;color:#c6deea;padding:5px 10px;border-radius:4px;cursor:pointer}
.vehicle-model-info h2{font-size:24px;font-weight:500;color:#eef8ff;line-height:1.4;margin:20px 0 14px}.model-info-kicker{font-size:9px;letter-spacing:.1em;color:#84abbf}.model-object-count{color:#b2e5f7;border-block:1px solid #81abc32a;padding:12px 0}
.vehicle-model-info dl{margin:22px 0 0}.vehicle-model-info dt{color:#7595a8;font-size:12px;margin-top:12px}.vehicle-model-info dd{margin:0}.vehicle-model-info a{color:#b2e5f7;text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.portal-home #vehicle-model-info-open{top:26px;right:12px;font-size:9px;padding:6px 8px}.vehicle-model-info{padding:22px}.vehicle-model-info h2{font-size:21px}}
body[data-surface=home]:not(.portal-home) #vehicle-model-info-open{right:180px}
@media(max-width:700px){body[data-surface=home]:not(.portal-home) #vehicle-model-info-open{right:auto;left:12px;top:54px}}

/* Dedicated Tesla collection, available from the fullscreen portal. */
.tesla-exhibition-entry{display:none}.portal-home .tesla-exhibition-entry{display:block;position:absolute;right:3.3%;top:82px;z-index:7;color:#c7e5ef;font-size:12px;letter-spacing:.04em;padding:9px 12px;border:1px solid #81abc34a;border-radius:4px;background:#102c3a80}.portal-home .tesla-exhibition-entry:hover{color:#fff;border-color:#8dcde3}.header-nav{display:flex;gap:20px;align-items:center}@media(max-width:700px){.portal-home .tesla-exhibition-entry{top:65px;right:12px;font-size:10px;padding:7px 8px}}
