/* Lab Portal world landings. All other pages use the shared premium shell. */
.world-landing{margin:22px 0 42px}
.world-landing [hidden]{display:none!important}
.world-workspace{position:relative;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(25px,3.5vw,56px);align-items:center;min-width:0;min-height:555px;overflow:hidden;border:1px solid var(--portal-line);border-radius:20px;padding:clamp(25px,4vw,58px);box-shadow:0 22px 55px #10283f12}
.world-workspace::before{position:absolute;inset:0;z-index:0;pointer-events:none;content:"";background-image:radial-gradient(#67829d33 .75px,transparent .75px);background-size:24px 24px;mask-image:linear-gradient(90deg,transparent,#000)}
.world-workspace>*{position:relative;z-index:1;min-width:0}
.laptop-workspace{background:linear-gradient(125deg,#fffefa 12%,#edf5fb 100%)}
.remote-workspace{background:linear-gradient(125deg,#fffefa 4%,#e7f1f0 100%)}
.engineer-workspace{display:block;background:linear-gradient(115deg,#fffefa 8%,#f4e9db 100%)}
.workspace-kicker{display:block;color:var(--portal-rust);font-size:11px;font-weight:850;letter-spacing:.15em;line-height:1.4;text-transform:uppercase}
.world-workspace h2{font-size:clamp(35px,3.35vw,56px);line-height:1.05;margin:18px 0 22px;max-width:14ch}
.world-workspace h2 em{color:var(--portal-blue);font-style:normal}
.engineer-workspace h2 em{color:#91512f}
.workspace-copy>p,.engineer-intro>p{font-size:17px;line-height:1.56;color:var(--portal-muted);margin:0 0 22px;max-width:53ch}
.workspace-cta{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:24px 0 8px}
.workspace-primary{display:inline-flex;align-items:center;gap:20px;justify-content:space-between;min-height:48px;padding:12px 17px;border-radius:9px;background:var(--portal-blue-deep);color:#fffefa!important;text-decoration:none;font-size:14px;font-weight:800;line-height:1.25;box-shadow:0 8px 20px #0d3c7029}
.workspace-primary:hover{background:var(--portal-blue)}
.workspace-cta>a:not(.workspace-primary),.inspector-actions>a:not(.workspace-primary){font-size:14px;font-weight:700}
.world-workspace .workspace-footnote{font-size:13px;color:var(--portal-muted);margin:18px 0 0}
.world-workspace .workspace-footnote a{font-weight:700}
.scene-label{font-size:10px;font-weight:850;letter-spacing:.11em;line-height:1.3}
.scene-disclaimer{font-size:11px;color:var(--portal-muted)}

/* The local route is a single workstation: editor, terminal, engine, browser. */
.local-scene{padding:20px;min-height:475px;border-radius:18px;background:linear-gradient(145deg,#dae8f3,#fffefa 64%);border:1px solid #bed0df;box-shadow:inset 0 0 0 8px #ffffff80,0 25px 45px #10283f1c}
.local-screen{overflow:hidden;border:10px solid #10283f;border-bottom-width:16px;border-radius:17px 17px 8px 8px;background:#10283f;box-shadow:0 14px 25px #10283f35}
.scene-window-bar{height:31px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 9px;color:#dceaf4;font-size:10px;font-weight:800;letter-spacing:.08em}
.window-dots{color:#8dd0dd;letter-spacing:.14em;font-size:9px}
.local-screen-content{display:grid;grid-template-columns:1.08fr .92fr;gap:4px;min-height:142px}
.local-terminal,.local-editor{display:flex;flex-direction:column;gap:9px;padding:13px;min-width:0}
.local-terminal{background:#173c55;color:#eaf6fc}.local-terminal .scene-label{color:#86cbd7}.local-terminal code{font-size:13px;color:#fff;white-space:nowrap}.local-terminal small{color:#bfdeeb;font-size:11px}
.local-editor{background:#f7fbff;color:#173c55}.local-editor .scene-label{color:#4e718b}.local-editor>span:not(.scene-label){padding:3px 7px;border-left:3px solid #1a62c6;background:#e7eef7;font:11px/1.3 var(--portal-mono)}
.local-keyboard{height:18px;width:112%;margin-left:-6%;border-radius:3px 3px 13px 13px;background:linear-gradient(#becbd5,#e6edf1);box-shadow:0 6px 8px #10283f1a}
.local-runtime{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:27px 4px 0;padding:15px 18px;border:1px solid #80a4c2;border-left:5px solid var(--portal-blue);border-radius:11px;background:#fffefa}
.local-runtime>div{display:flex;flex-direction:column;gap:6px}.local-runtime .scene-label{color:var(--portal-blue-deep)}.local-runtime strong{font-size:16px;line-height:1.3}.local-runtime strong span{color:var(--portal-rust)}.local-runtime-status{flex-shrink:0;padding:5px 9px;border-radius:999px;background:#e7eef7;color:var(--portal-blue-deep);font-size:10px;font-weight:800;text-transform:uppercase}
.local-browser{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 4px 15px;padding:12px 18px;border:1px solid #b6d7c8;border-radius:10px;background:#eaf5ef;font-size:12px}.local-browser .scene-label{color:var(--portal-green);margin-right:auto}.local-browser strong{font:700 12px/1.3 var(--portal-mono)}.local-browser>span[aria-hidden]{color:var(--portal-green);font-weight:800}

/* The remote route makes the shell transition and tunnel separate. */
.remote-controls{display:flex;flex-wrap:wrap;gap:7px;margin:21px 0 12px}
.remote-controls button{font-size:12px;padding:8px 10px;min-height:44px}
.remote-controls button[aria-pressed=true]{background:#146c75;border-color:#146c75;color:white}
.remote-explanation{min-height:75px;padding:12px 15px;border-left:4px solid #137f78;background:#e7f2ef;color:#174d51!important;font-size:14px!important;line-height:1.5!important;margin:0!important}
.remote-scene{display:grid;grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);align-items:stretch;gap:12px;min-height:395px;padding:18px;border:1px solid #9cc6c2;border-radius:18px;background:linear-gradient(180deg,#e9f4f3,#fdfefd 80%);box-shadow:inset 0 0 0 7px #fffefa99,0 22px 40px #1243501d}
.remote-machine{display:flex;flex-direction:column;min-width:0;padding:14px 12px;border:1px solid #9db9c8;border-radius:12px;background:#fffefa;box-shadow:0 13px 19px #204b5b12}
.remote-server{border-color:#448e8c;background:#f4faf8}
.machine-title{display:block;color:#506276;font-size:10px;font-weight:900;letter-spacing:.12em;margin-bottom:12px}
.machine-screen,.machine-browser,.remote-server-shell,.remote-server-engine{display:flex;flex-direction:column;gap:7px;min-height:96px;padding:12px;border-radius:8px}
.machine-screen,.remote-server-shell{background:#10283f;color:#f7fbff}
.machine-screen>span,.remote-server-shell>span{color:#92cdd8;font-size:11px}.machine-screen strong,.remote-server-shell strong{font-size:15px}.machine-screen small,.remote-server-shell small{color:#c1dbe5;font-size:11px}
.machine-browser,.remote-server-engine{margin-top:11px;background:#e7eef7;color:#10283f;border:1px solid #c4d5e5}.machine-browser>span,.remote-server-engine>span{font-size:11px}.machine-browser strong,.remote-server-engine strong{font-size:13px;overflow-wrap:anywhere}
.remote-crossing{display:flex;flex-direction:column;justify-content:center;gap:44px;min-width:0}
.remote-ssh-flow,.remote-tunnel-flow{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;color:#6c8190;font-size:10px;font-weight:800;text-align:center}
.remote-ssh-flow i,.remote-tunnel-flow i{position:relative;display:block;width:100%;border-top:3px dashed #9bb0bb;transition:border-color .25s}
.remote-ssh-flow i::after,.remote-tunnel-flow i::after{position:absolute;right:-2px;top:-7px;border:6px solid transparent;border-left-color:currentColor;content:""}

.remote-internet{color:#607c83;text-align:center;font-size:9px;font-weight:800;letter-spacing:.09em;line-height:1.5}
.remote-scene-caption{grid-column:1/-1;align-self:end;margin:0!important;padding:10px 0 0;border-top:1px solid #bed6d2;color:#4b6671;font-size:11px!important;line-height:1.45!important}
.remote-scene[data-remote-state="1"] .remote-ssh-flow,.remote-scene[data-remote-state="2"] .remote-ssh-flow{color:#146c75}.remote-scene[data-remote-state="1"] .remote-ssh-flow i,.remote-scene[data-remote-state="2"] .remote-ssh-flow i{border-color:#146c75}
.remote-scene[data-remote-state="1"] .remote-server-shell,.remote-scene[data-remote-state="2"] .remote-server-shell{box-shadow:0 0 0 3px #35a39b55}
.remote-scene[data-remote-state="2"] .remote-tunnel-flow{color:#ad5b3b}.remote-scene[data-remote-state="2"] .remote-tunnel-flow i{border-color:#ad5b3b}.remote-scene[data-remote-state="2"] .machine-browser,.remote-scene[data-remote-state="2"] .remote-server-engine{box-shadow:0 0 0 3px #d486584d}

/* Hades is a reference map, with one selected observation at a time. */
.engineer-intro{max-width:900px}.engineer-intro h2{max-width:18ch;margin-bottom:16px}.engineer-intro>p{margin-bottom:15px}
.engineer-evidence{max-width:850px!important;padding:13px 16px;border-left:4px solid var(--portal-rust);background:#fff7eb;font-size:14px!important;color:#6a4c38!important}.engineer-evidence strong{display:block;color:#794526;text-transform:uppercase;letter-spacing:.07em;font-size:11px;margin-bottom:4px}
.hades-inspector{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr);gap:18px;align-items:stretch;margin-top:23px}
.hades-map{min-width:0;padding:17px;border:1px solid #d0b99e;border-radius:15px;background:#fffdf7;box-shadow:0 15px 30px #744c2612}
.hades-mast{display:flex;align-items:center;gap:12px;padding:5px 5px 15px;border-bottom:1px solid #e1d6c7}.hades-marker{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#10283f;color:#fff;font:italic 31px/1 var(--portal-serif)}.hades-mast>div{display:flex;flex-direction:column;gap:2px}.hades-mast strong{font-size:17px;letter-spacing:.09em}.hades-mast small{font-size:11px;color:#526271}.hades-badge{margin-left:auto;color:#91512f;font-size:10px;font-weight:900;letter-spacing:.08em;text-align:right}
.hades-layer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px;padding:11px;border:1px solid #d8d1c5;border-left:4px solid #ad5b3b;border-radius:9px;background:#f8f4ed}.hades-layer>span{grid-column:1/-1;font-size:10px;font-weight:900;letter-spacing:.11em;color:#795030}.hades-docker{border-left-color:#1a62c6;background:#eff5fa}.hades-docker>span{color:#0d3c70}.hades-delivery{border-left-color:#137f78;background:#eef6f1}.hades-delivery>span{color:#216047}
.hades-layer button{padding:7px 4px;font-size:12px;font-weight:700;min-height:44px;line-height:1.2;border:1px solid #c9d0d3;border-radius:7px;background:#fffefa;color:#10283f}
.hades-layer button[aria-pressed=true]{border-color:#0d3c70;background:#0d3c70;color:white;box-shadow:0 3px 12px #0d3c7033}.hades-layer button:hover{border-color:#1a62c6}
.hades-map-note{margin:13px 4px 0!important;color:#6b6258;font-size:11px!important}
.inspector-reading{display:flex;flex-direction:column;min-width:0;padding:22px;border:1px solid #d0b99e;border-radius:15px;background:#fffefa}
.inspector-detail{min-height:215px}.inspector-status{display:inline-block;padding:6px 9px;border-radius:999px;background:#f5e5d9;color:#794526;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.inspector-detail h3{margin:16px 0 12px;font-size:32px}.inspector-detail p{font-size:15px;line-height:1.55;color:var(--portal-muted)}.inspector-detail>a{display:inline-block;margin-top:6px;font-size:13px;font-weight:800}
.inspector-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:auto;padding-top:18px;border-top:1px solid var(--portal-line)}.inspector-actions .workspace-primary{font-size:13px}.inspector-actions button{font-size:12px!important;min-height:40px!important}

@media(max-width:1120px){.world-workspace{grid-template-columns:1fr;gap:28px;min-height:0}.world-workspace h2{max-width:18ch}.local-scene,.remote-scene{max-width:780px;width:100%;margin:auto}.hades-inspector{grid-template-columns:1fr}.inspector-detail{min-height:150px}}
@media(max-width:680px){.world-landing{margin:16px 0 30px}.world-workspace{padding:18px;gap:22px;border-radius:15px}.world-workspace h2{font-size:36px;margin:12px 0 15px;max-width:13ch}.workspace-copy>p,.engineer-intro>p{font-size:15px}.workspace-kicker{font-size:10px}.workspace-cta{align-items:stretch;flex-direction:column;gap:11px}.workspace-primary{justify-content:space-between}.local-scene{min-height:0;padding:12px}.local-screen{border-width:7px;border-bottom-width:12px}.local-screen-content{min-height:126px}.local-terminal,.local-editor{padding:8px;gap:7px}.local-terminal code{font-size:10px}.local-terminal small{font-size:9px}.local-editor>span:not(.scene-label){font-size:9px;padding:3px}.scene-label{font-size:8px}.local-runtime{padding:10px;gap:7px;margin-top:22px}.local-runtime strong{font-size:12px}.local-runtime-status{font-size:8px}.local-browser{padding:9px;font-size:10px}.local-browser strong{font-size:10px}.remote-scene{grid-template-columns:1fr;gap:10px;padding:12px}.remote-machine{min-height:0}.remote-crossing{flex-direction:row;justify-content:space-between;gap:8px;min-height:50px}.remote-ssh-flow,.remote-tunnel-flow{width:42%;gap:4px}.remote-ssh-flow i,.remote-tunnel-flow i{width:90%;margin:auto}.remote-internet{display:none}.remote-controls button{font-size:11px;padding:7px}.hades-map{padding:11px}.hades-mast{flex-wrap:wrap}.hades-badge{font-size:9px}.hades-layer{grid-template-columns:repeat(2,minmax(0,1fr));padding:9px}.inspector-reading{padding:17px}.inspector-detail h3{font-size:29px}.inspector-detail{min-height:0;padding-bottom:22px}}
@media(prefers-reduced-motion:reduce){.world-landing *, .world-landing *::before, .world-landing *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.world-landing [data-world-panel][hidden]{display:none!important}.remote-controls,.hades-layer button,.inspector-actions button{display:none!important}.world-workspace{box-shadow:none;break-inside:avoid}.remote-scene,.local-scene,.hades-map{box-shadow:none}}

.v5-page .lab-world-heading{font-size:clamp(24px,2.3vw,34px);letter-spacing:-.025em;text-transform:none}.lab-index-heading:has(.lab-world-heading){margin:24px 0 0;align-items:center}.lab-index-heading:has(.lab-world-heading)>a{font-size:13px;letter-spacing:0;text-transform:none}
