/* Visitor-first entry, touch labels and optional advanced controls. */
.workspace{grid-template-columns:minmax(0,1fr) 400px}
.left-panel{display:none}.advanced-open .workspace{grid-template-columns:320px minmax(0,1fr) 370px}.advanced-open .left-panel{display:flex}
#advanced-close{width:100%;margin-bottom:18px}.system-row{grid-template-columns:minmax(0,1fr) 78px}.system-eye{width:78px;font-size:14px;border-radius:8px;color:var(--teal)}
.system-toggle small,.left-foot,#visible-count,.local-badge,.live-indicator,.detail-native~.part-meta{display:none}
.right-panel .part-meta{display:none}.simulation-note,.expedition-fiction{font-size:14px!important;line-height:1.6}
.welcome-visual{height:140px;max-height:20vh}.welcome-visual .organ-thumbnail{height:100%;width:100%;object-fit:contain}
.stage-tools .icon-button{width:92px;height:auto;min-height:62px;display:flex;flex-direction:column;justify-content:center;gap:3px;font-size:22px;padding:7px 4px}.stage-tools .icon-button span{font-size:14px;line-height:1.3}.stage-tools{gap:6px}
.heartbeat-button{color:var(--teal)!important;background:#7dbbb512!important;border-color:#7dbbb530!important}.heartbeat-button span{font-size:14px;line-height:1.25}.heartbeat-button small{font-size:14px;font-weight:400}
.return-context{position:absolute;z-index:4;left:50%;top:100px;transform:translateX(-50%);padding:12px 18px;background:var(--lime);color:#15231b;border-radius:30px;min-height:48px;font-weight:700}
.gesture-demo{position:fixed;z-index:90;left:50%;top:48%;transform:translate(-50%,-50%);padding:24px 30px;border:1px solid #bfe3cf40;border-radius:24px;background:#10251ff2;text-align:center;pointer-events:none;box-shadow:0 20px 80px #0008;max-width:90vw}.gesture-demo span{display:block;font-size:64px;animation:gesture-swipe 1.3s ease-in-out infinite}.gesture-demo strong{display:block;font-size:18px}@keyframes gesture-swipe{0%,100%{transform:translateX(-30px) rotate(-12deg)}50%{transform:translateX(30px) rotate(12deg)}}
.kids-mode .left-panel,.kids-mode #advanced-button,.kids-mode .bottom-controls,.kids-mode .orientation,.kids-mode #labels-button{display:none!important}.kids-mode .workspace{grid-template-columns:minmax(0,1fr) 420px}.kids-mode .detail-native,.kids-mode .detail-latin,.kids-mode .detail-fact{display:none}.kids-mode .stage-tools{top:140px}.kids-mode .detail-title{font-size:32px}
.welcome-screen{position:relative;z-index:2;flex:1;min-height:0;padding:55px 7vw 45px;display:flex;flex-direction:column;justify-content:space-between;gap:30px;pointer-events:none;overflow:auto}.welcome-screen button{pointer-events:auto}.welcome-copy h1{font-size:clamp(40px,4.8vw,86px);line-height:1.1;letter-spacing:-3px;margin:22px 0}.welcome-copy h1 span{color:var(--lime)}.welcome-copy p{font-size:20px;color:#acc3bd}.welcome-copy .eyebrow{font-size:14px;letter-spacing:2px}
.welcome-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.welcome-doors button{background:linear-gradient(135deg,#1c302df5,#111e25f5);border:1px solid #8cb8a533;border-radius:24px;padding:26px 30px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:16px;min-height:280px;box-shadow:0 12px 40px #0004}.welcome-doors button:hover,.welcome-doors button:focus-visible{background:#254338;border-color:var(--lime);transform:translateY(-4px)}.welcome-doors strong{font-size:clamp(22px,1.65vw,32px);line-height:1.25}.welcome-doors button>span:not(.door-number):not(.door-cell){font-size:17px;line-height:1.6;color:#bed0ca}.welcome-doors b{font-size:16px;color:var(--lime);margin-top:auto}.door-number{font-size:14px;letter-spacing:1.5px;color:#a3c8b8}.welcome-doors svg{width:38px;height:38px;color:var(--lime)}.door-cell{color:#ee686c;font-size:42px;line-height:38px;text-shadow:3px 3px 0 #8b263d;position:relative}.door-cell:after{content:'• •';position:absolute;font-size:13px;letter-spacing:3px;left:5px;top:0;color:#ffe9dd}
.landing .workspace{position:absolute;inset:96px 0 40px;display:block;overflow:hidden;pointer-events:none}.landing .stage{height:100%;width:100%;border:0;background:radial-gradient(ellipse at 74% 35%,#27443a88,transparent 60%)}.landing #canvas-host{left:42%;width:58%;opacity:.8}.landing .stage>:not(#canvas-host):not(#loading){display:none!important}.landing .right-panel,.landing .left-panel,.landing .main-tabs,.landing #advanced-button,.landing #reset-all{display:none!important}.landing .top-actions{margin-left:auto}.landing .statusbar{z-index:3}.landing .topbar{z-index:4}
.quiz-task{padding:16px;border-radius:14px;background:#c6ee9812;margin:16px 0;font-size:18px;line-height:1.5}.quiz-fallback summary{cursor:pointer;min-height:48px;padding:12px 0;color:#9db6b3;font-size:14px}.quiz-options button{min-height:48px}
@media(max-width:1350px) and (min-width:1001px){.workspace{grid-template-columns:minmax(0,1fr) 340px}.advanced-open .left-panel{position:fixed;z-index:8;inset:96px auto 35px 0;width:340px;background:#111b21;box-shadow:15px 0 60px #0009}.advanced-open .workspace{grid-template-columns:minmax(0,1fr) 340px}.main-tabs button{padding:0 12px!important}.topbar{gap:12px!important}.welcome-screen{padding:35px 5vw}.welcome-copy h1{font-size:56px}.welcome-doors button{padding:22px;min-height:260px}}
@media(max-width:1000px){.workspace,.advanced-open .workspace,.kids-mode .workspace{display:flex;flex-direction:column}.stage{width:100%;min-height:760px;grid-column:auto;grid-row:auto}.right-panel{width:100%}.advanced-open .left-panel{position:fixed;z-index:9;inset:120px 0 0 auto;width:min(420px,100vw);background:#111b21;overflow:auto;box-shadow:-20px 0 60px #000a}.topbar{flex-wrap:wrap;height:auto!important;min-height:110px;padding:10px 16px!important;gap:8px!important}.main-tabs{order:3;width:100%;justify-content:center}.main-tabs button{height:48px!important;font-size:15px!important;flex:1;padding:0 8px!important}.top-actions{margin-left:auto}.top-actions .reset-session{margin:0;min-height:48px;font-size:14px}.landing .topbar{min-height:82px}.landing .workspace{inset:82px 0 40px}.landing #canvas-host{left:30%;width:70%}.welcome-screen{padding:34px 5vw;min-height:calc(100dvh - 122px);gap:40px}.welcome-copy h1{font-size:60px}.welcome-doors{gap:12px}.welcome-doors button{padding:20px;min-height:260px}.welcome-doors strong{font-size:23px}.welcome-doors button>span:not(.door-number):not(.door-cell){font-size:16px}.stage-tools .icon-button{width:80px}.welcome-copy{max-width:65%}.kids-mode .stage{min-height:720px}.landing .brand-logo{width:180px}}
@media(max-width:650px){.welcome-screen{padding:28px 20px;gap:30px}.welcome-copy{max-width:100%}.welcome-copy h1{font-size:44px;letter-spacing:-2px}.welcome-copy p{font-size:17px}.welcome-doors{grid-template-columns:1fr}.welcome-doors button{min-height:150px;display:grid;grid-template-columns:38px 1fr;gap:8px 15px;padding:20px}.welcome-doors .door-number{grid-column:1/-1}.welcome-doors strong{font-size:24px}.welcome-doors button>span:not(.door-number):not(.door-cell){grid-column:2;font-size:15px}.welcome-doors b{grid-column:2;font-size:15px}.welcome-doors br{display:none}.landing .workspace{position:fixed;opacity:.35}.landing #canvas-host{left:0;width:100%}.topbar .brand-logo{width:135px}.main-tabs button{font-size:13px!important}.stage-tools{right:10px!important}.stage-tools .icon-button{width:68px;min-height:60px}.stage-tools .icon-button span{font-size:12px}.stage-header{right:10px}.stage-header h2{font-size:20px}.orientation{max-width:160px}.view-buttons{grid-template-columns:1fr 1fr!important}.heartbeat-button{width:160px!important}.welcome-visual{float:none;width:100%;margin:0;height:100px}.return-context{top:105px;left:12px;transform:none}.simulation-active .return-context{display:none}.kids-mode .stage-tools{top:180px}.kids-mode .stage-header h2{max-width:240px}}
@media(prefers-reduced-motion:reduce){.gesture-demo span{animation:none}.welcome-doors button{transition:none}}
.door-cell:after{display:none}.door-cell svg{width:42px;height:42px}.unavailable-structure{padding:18px;border:1px solid var(--line);border-radius:12px;line-height:1.6;font-size:16px}.unavailable-structure em{display:block;color:var(--teal);font-size:14px}.unavailable-structure p{margin-bottom:0}
.landing .welcome-doors .door-cell{display:block;height:42px}
.advanced-open .left-panel{overflow-y:auto}#advanced-close{flex:0 0 48px;height:48px}.left-panel .panel-top{flex-shrink:0}.left-panel .panel-top h1{font-size:24px}.quiz-running .bottom-controls,.quiz-running #labels-button{display:none}
.landing .stage>#gesture-demo:not([hidden]){display:block!important}
@media(max-width:1000px){.mobile-detail-link{left:24px;right:auto!important;max-width:calc(100% - 130px)}}
.topbar{z-index:10}
@media(max-width:1350px){.advanced-open .left-panel{top:var(--toolbar-height,130px)}}
@media(max-width:650px){.stage-tools .icon-button span{font-size:14px}.stage-tools .icon-button{width:78px}.main-tabs button{font-size:14px!important}}
/* Keep the live entry model reachable and clear of the three choices. */
.landing #canvas-host{pointer-events:auto;opacity:1;cursor:pointer}.landing #audience-mode{display:none}
.welcome-copy .welcome-touch-hint{font-size:16px;color:var(--teal);margin-top:18px}.welcome-model-space{display:none}
.audience-mode{min-height:48px;padding:9px 12px;border:1px solid #7dbbb550;border-radius:10px;color:var(--teal);font-size:14px;white-space:nowrap}
.kids-mode .audience-mode{background:#c6ee9818;color:var(--lime);border-color:#c6ee9860}
.quiz-feedback.quiz-correct{color:var(--lime)}.quiz-feedback.quiz-try{color:#f1c695}
.panel-session{position:sticky;bottom:-24px;z-index:3;display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding:14px 0 12px;background:#111c22;border-top:1px solid var(--line)}
.panel-session button{flex:1;min-height:52px;font-size:15px;margin:0;white-space:nowrap}
.panel-session svg{width:18px;height:18px;margin-right:8px}
.toast{bottom:100px;max-width:calc(100vw - 32px)}
@media(min-width:1001px){.right-panel{padding-bottom:12px}.panel-session{bottom:-12px}}
.system-row[data-vessel] .system-dot{background:linear-gradient(135deg,#ff6d78 0 50%,#69baff 50% 100%)}
.vessel-legend{padding:12px 4px;color:#aac4c5;font-size:14px;line-height:1.6}.vessel-legend strong{color:#e0ebe5}
@media(orientation:portrait) and (min-width:1001px){
 .workspace,.advanced-open .workspace,.kids-mode .workspace{grid-template-columns:minmax(0,1fr)}
 .right-panel{grid-column:1/-1;width:100%;min-width:0}
 .right-panel .audience-switch{max-width:620px}
 .right-panel .simulation-card{min-height:130px}
}
@media(max-width:1500px){.top-actions{gap:6px}.top-actions .reset-caption{display:none}.audience-mode{font-size:14px;padding:8px}.main-tabs button{padding:0 10px!important}}
@media(max-width:650px){
 .landing .workspace{position:absolute;opacity:1;inset:var(--toolbar-height,82px) 0 40px}
 .welcome-model-space{display:block;min-height:360px;pointer-events:none}
 .welcome-screen{overflow:visible;flex:none;gap:20px}
 .welcome-copy h1{font-size:40px}.welcome-copy .welcome-touch-hint{margin-bottom:0}
 .audience-mode{font-size:13px;padding:6px 8px}.topbar .brand-logo{width:108px}.top-actions{gap:5px}
 .top-actions #help-button{width:40px}.top-actions #reset-all{width:40px;min-width:40px}
}
@media(max-width:1000px){
 html{scroll-padding-top:calc(var(--toolbar-height,130px) + 16px)}
 button,input,select{scroll-margin-top:calc(var(--toolbar-height,130px) + 16px)}
}
/* Organ detail always offers the matching live explanation before the facts. */
.organ-simulation{display:flex;align-items:center;gap:14px;width:100%;min-height:96px;padding:16px;margin:14px 0 18px;text-align:left;border:1px solid color-mix(in srgb,var(--sim-color) 50%,transparent);border-radius:12px;background:color-mix(in srgb,var(--sim-color) 9%,#121d24);color:#f4f4ed;cursor:pointer}
.organ-simulation:hover{background:color-mix(in srgb,var(--sim-color) 17%,#121d24)}
.organ-simulation:focus-visible{outline:3px solid var(--sim-color);outline-offset:3px}
.organ-simulation>span:nth-child(2){flex:1;min-width:0}
.organ-simulation small,.organ-simulation strong,.organ-simulation em{display:block}
.organ-simulation small{font-size:14px;line-height:1.5;color:#c4ced1;letter-spacing:.04em}
.organ-simulation strong{font-size:19px;line-height:1.35;margin:3px 0;color:var(--sim-color)}
.organ-simulation em{font-size:14px;line-height:1.5;font-style:normal}
.organ-simulation svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0}
.organ-simulation-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:50%;background:var(--sim-color);color:#142027}
.simulation-return{width:100%;margin:0 0 18px;white-space:normal;text-align:left}
