/* The room is a scroll-driven stage. Content remains in normal document flow. */
.hospitality-hero img{height:auto;aspect-ratio:1;object-fit:cover}
.header{position:fixed;inset:0 0 auto;z-index:20;background:#0a0d14;padding-block:22px}.journey.hero{height:260svh;max-width:none;padding:0;overflow:visible}.journey-stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate}.opening{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;padding:100px 8% 70px;transform-origin:center;will-change:transform,opacity}.opening>p:first-child{color:var(--muted);font-size:15px;margin:0 0 25px}.journey .opening h1{font-size:clamp(65px,10vw,155px);line-height:1.03;letter-spacing:-.075em;white-space:normal;font-weight:400;margin-bottom:26px}.opening-line{font-size:clamp(18px,2vw,25px);line-height:1.5;letter-spacing:-.03em}.enter-room{display:flex;justify-content:space-between;align-items:center;width:250px;margin-top:22px;padding:15px 0;font-size:15px}.enter-room span{font-size:25px}.journey .room-area{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;width:100%;margin:0;padding:0;opacity:0;transform-origin:50% 65%;will-change:transform,opacity;animation:none!important}.journey .room{position:relative;width:min(100vw,150svh);max-width:none;margin:0;aspect-ratio:3/2;transition:none;transform:none!important;flex-shrink:0}.journey .room-art{width:100%;height:100%;object-fit:contain}.journey .room-caption{position:absolute;left:5%;right:5%;bottom:70px;margin:0;padding:0;display:flex;flex-direction:row;justify-content:space-between;align-items:center;text-align:left;color:var(--ink);opacity:0;transition:opacity .5s}.room-ready .room-caption{opacity:1}.journey .spot-label{opacity:1;transform:translate(-50%,0);background:var(--bg);color:var(--ink);bottom:auto;top:100%;padding:9px 13px}.journey .hotspot{opacity:0;transition:opacity .5s}.room-ready .hotspot{opacity:1}.scene-toolbar{position:absolute;bottom:22px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);z-index:4}.scene-toolbar>a{opacity:0;pointer-events:none;transition:opacity .4s}.room-ready .scene-toolbar>a{opacity:1;pointer-events:auto}#room-stop{position:absolute;top:160svh;height:1px;scroll-margin-top:0}.journey .hotspot-manage{left:25%;top:43%}.journey .hotspot-portal{left:58%;top:27%}.journey .hotspot-connect{left:81%;top:57%}.journey .hotspot:hover .spot-symbol{transform:scale(1.15)}
/* Dive from the exact on-screen station, then reveal its interior. */
.dive-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100svh;max-height:none;margin:0;padding:0;background:var(--bg);overflow:hidden;border:0;animation:none!important}.dive-dialog::backdrop{background:var(--bg)}.dive-image{position:absolute;max-width:none;object-fit:contain;transition:transform 1.6s cubic-bezier(.64,0,.2,1),opacity 1.3s .35s;opacity:1;pointer-events:none}.dive-dialog.arrived .dive-image{opacity:.12}.dive-bar{position:absolute;z-index:4;inset:0 0 auto;height:70px;display:flex;justify-content:space-between;align-items:center;padding:0 4%;background:var(--bg);font-size:14px}.dive-bar button{padding:15px 0}.dive-bar button span{margin-left:25px;font-size:22px}.station-interface{position:absolute;inset:85px 5% 35px;overflow:auto;overscroll-behavior:contain;background:#e8edf1;color:#182334;opacity:0;transform:translateY(30px) scale(.88);transition:opacity .6s .95s,transform .85s .8s;border-radius:12px;box-shadow:0 20px 100px #0008;scroll-behavior:smooth;scroll-padding-top:85px}.arrived .station-interface{opacity:1;transform:none}.departing .station-interface{opacity:0;transform:scale(.88);transition:opacity .25s,transform .5s}.departing .dive-image{transition:transform 1s cubic-bezier(.64,0,.2,1),opacity .5s;opacity:1}.instant .dive-image,.instant .station-interface{transition:none!important}.screen-chrome{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 24px;background:#d9e0e7;font-size:12px;position:sticky;top:0;z-index:2}.window-dots{letter-spacing:5px;color:#60758a;font-size:11px}.desk-layout{display:grid;grid-template-columns:190px 1fr}.desk-sidebar{background:#dfe6ec;padding:35px 25px;display:flex;flex-direction:column;align-items:flex-start;gap:40px}.desk-sidebar>strong{font-size:30px;letter-spacing:-.05em}.desk-sidebar nav{display:flex;flex-direction:column;margin:0;gap:20px}.desk-sidebar nav a{font-size:14px}.desk-sidebar p{font-size:12px;margin-top:auto;color:#536477}.screen-story{padding:50px 7%;max-width:1000px}.screen-kicker{font-size:14px;color:#536477}.screen-story h2{font-size:clamp(35px,4.5vw,65px);line-height:1.14}.screen-metrics{display:flex;gap:60px;margin:40px 0 55px}.screen-metrics>div{display:flex;flex-direction:column;gap:8px}.screen-metrics strong{font-size:48px;font-weight:500;letter-spacing:-.06em}.screen-metrics span{font-size:13px;color:#536477}.screen-story section{margin:40px 0}.screen-story h3{margin-bottom:18px}.screen-story p{font-size:16px;max-width:700px}.screen-story .button,.hospitality-story .button{background:#182334;color:#fff}.workflow-path,.network-diagram{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:22px;background:#d9e3ec;margin:24px 0;font-size:14px}.workflow-path i,.network-diagram i{font-style:normal}.screen-footnote{font-size:12px!important;margin:30px 0 0;color:#56677c;line-height:1.6}.dive-dialog[data-station=portal] .station-interface{background:#0d1521;color:#e5edf8}.network-chrome{background:#172333;color:var(--ink)}.network-tabs{display:flex;gap:10px}.network-tabs button{padding:9px 13px;font-size:13px;color:var(--muted)}.network-tabs [aria-selected=true]{color:#9fc7ff;background:#23364d}.code-tabs{padding:16px 30px;display:flex;gap:30px;background:#111d2c;color:#a0b4cb;font:12px/1.6 Consolas,monospace}.code-tabs span:first-child{color:#c4dfff}.code-layout{display:grid;grid-template-columns:37% 1fr;gap:35px;padding:45px 4%}.code-prose h2{font-size:clamp(30px,3.4vw,52px);margin:25px 0}.code-prose>p:not(.terminal-comment){font-size:17px;color:#c7d4e5;max-width:310px}.terminal-comment{font:14px/1.8 Consolas,monospace;color:#7f9e8e}.career-code{margin:0;overflow:auto;padding:0 0 20px;color:#c6d7e8;font:14px/1.9 Consolas,'Courier New',monospace;tab-size:2;white-space:pre}.syntax-comment{color:#8ca398}.syntax-keyword{color:#df9aee}.syntax-variable{color:#8ccfff}.syntax-string{color:#dfb18b}.syntax-number{color:#a4d5aa}.network-story{padding:40px 6% 60px}.network-story h2{font-size:clamp(34px,4.5vw,64px);margin-bottom:25px}.network-story h3{margin:20px 0}.network-diagram{background:#172637;color:#acd2ff}.network-story .case-grid{gap:45px}.hospitality-story{padding:30px 5% 45px;background:#e9e8e3;color:#242d33}.hospitality-brand{font-size:25px;letter-spacing:-.05em;display:flex;justify-content:space-between;font-weight:600}.hospitality-brand>span{font-size:14px;letter-spacing:0;font-weight:400}.hospitality-hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:35px;margin:40px 0 65px}.hospitality-hero h2{font-size:clamp(30px,3.5vw,51px);line-height:1.2;margin:20px 0 25px}.hospitality-hero>div>p:first-child{font-size:14px}.hospitality-hero img{width:100%;border-radius:50% 50% 0 0}.hospitality-details{display:grid;grid-template-columns:1fr 1.5fr;gap:50px;margin:50px 0}.hospitality-details h3{max-width:290px}.hospitality-details p{font-size:16px}
@media(max-width:1000px){.journey .room-area{width:100%;margin:0}.journey .room{width:min(110vw,150svh)}.opening{padding-inline:7%}.desk-layout{grid-template-columns:140px 1fr}.desk-sidebar{padding:30px 18px}.screen-chrome>span:last-child{display:none}.code-layout{grid-template-columns:1fr;padding:30px 6%}.code-prose{display:grid;grid-template-columns:1fr 1fr;gap:15px 30px}.code-prose .terminal-comment{grid-column:1/-1}.code-prose h2{margin:0}.code-prose .text-link{grid-column:2}.career-code{font-size:14px}.hospitality-hero{grid-template-columns:1fr}.hospitality-hero img{max-height:350px;object-fit:cover;object-position:center 50%;border-radius:0}.hospitality-details{gap:25px}.station-interface{inset:80px 3% 25px}}
@media(max-width:700px){.header{padding:18px 6%}.header nav{gap:18px}.header nav a{font-size:12px}.journey.hero{height:230svh}.opening{padding:95px 7% 80px}.journey .opening h1{font-size:clamp(50px,11.5vw,78px);line-height:1.15;margin-bottom:30px}.opening>p:first-child{font-size:13px}.opening-line{font-size:19px}.enter-room{font-size:14px;width:230px}.journey .room{width:150vw;max-width:none}.journey .room-area{transform-origin:center}.journey .room-caption{bottom:85px;left:6%;right:6%;gap:20px;flex-direction:column;align-items:flex-start;font-size:13px}.journey .room-caption>span{max-width:none}.journey .spot-label{font-size:10px;white-space:normal;text-align:center;width:95px;padding:7px}.journey .hotspot-manage{left:27%}.journey .hotspot-connect{left:77%}.scene-toolbar{left:6%;right:6%;font-size:11px}.scene-toolbar .quiet-button{font-size:11px}#room-stop{top:130svh}.dive-bar{height:65px;padding:0 5%;font-size:11px}.dive-bar button{font-size:12px}.dive-bar button span{margin-left:8px}.station-interface{inset:70px 10px 12px;border-radius:7px}.screen-chrome{padding:15px;font-size:10px;gap:10px}.window-dots{display:none}.desk-layout{display:block}.desk-sidebar{padding:15px 22px;flex-direction:row;gap:20px;align-items:center}.desk-sidebar>strong{font-size:20px}.desk-sidebar nav{flex-direction:row;gap:15px}.desk-sidebar nav a{font-size:11px}.desk-sidebar p{display:none}.screen-story{padding:30px 23px}.screen-story h2{font-size:31px}.screen-metrics{gap:30px;margin:30px 0}.screen-metrics strong{font-size:40px}.screen-metrics span{font-size:11px}.screen-story h3{font-size:23px}.screen-story p{font-size:15px}.workflow-path{font-size:11px;gap:10px;padding:15px}.network-chrome{flex-wrap:wrap}.network-mark{display:none}.network-tabs{gap:0}.network-tabs button{font-size:11px;padding:8px}.code-tabs{padding:13px 18px;gap:18px;font-size:10px}.code-tabs>span:last-child{display:none}.code-layout{padding:25px 22px;gap:20px}.code-prose{display:block}.code-prose h2{font-size:35px;margin:20px 0}.code-prose>p:not(.terminal-comment){font-size:15px}.career-code{font-size:12px;line-height:1.9}.network-story{padding:30px 23px}.network-story .case-grid{grid-template-columns:1fr;gap:0}.network-story h2{font-size:31px}.network-diagram{font-size:11px;gap:9px;padding:15px}.hospitality-story{padding:25px 22px}.hospitality-brand{font-size:23px}.hospitality-hero{margin:30px 0;gap:30px}.hospitality-hero h2{font-size:29px}.hospitality-hero p{font-size:15px}.hospitality-details{grid-template-columns:1fr;gap:15px;margin:35px 0}.hospitality-details h3{font-size:24px}.hospitality-details p{font-size:15px}.screen-footnote{font-size:11px!important}}
@media(max-width:700px){.journey .opening h1{font-size:clamp(35px,10vw,48px)}.journey .hotspot-connect .spot-label{transform:translate(-85%,0)}}
.journey .hotspot-profile{left:58%;top:27%}.journey .hotspot-wifi{left:53%;top:13%}
.dive-dialog[data-station=profile] .station-interface{background:#0d1521;color:#e5edf8}
/* Object-sized targets make the room itself the navigation. */
.journey .hotspot{transform:none;display:block;padding:0;background:transparent;border-radius:0;min-width:44px;min-height:44px}
.journey .hotspot-manage{left:14%;top:28%;width:23%;height:24%}
.journey .hotspot-profile{left:49%;top:22%;width:18%;height:46%}
.journey .hotspot-wifi{left:50.6%;top:10.7%;width:7%;height:12%}
.journey .hotspot-connect{left:75%;top:41%;width:15%;height:17%}
.object-highlight{display:block;width:100%;height:100%;overflow:visible;opacity:0;filter:blur(16px);mix-blend-mode:screen;transition:opacity .4s ease}
.object-highlight>*{fill:#a2ccff;fill-opacity:.35;stroke:none;transition:fill-opacity .3s ease}
.hotspot:hover .object-highlight,.hotspot:focus-visible .object-highlight{opacity:1}
.hotspot:hover .object-highlight>*,.hotspot:focus-visible .object-highlight>*{fill-opacity:.35}
.journey .hotspot:focus-visible{outline:none}.hotspot:focus-visible .object-highlight>*{fill-opacity:.6}
.hotspot:active .object-highlight>*{fill-opacity:.5}
.scene-toolbar{justify-content:flex-end}.header nav{margin-left:auto}
@media(hover:none){.object-highlight{opacity:.18}}
/* Only the screen contents scroll; exit controls remain viewport anchored. */
.dive-dialog{overflow:clip}.dive-bar{position:fixed}
@media(prefers-reduced-motion:reduce){.dive-image,.station-interface,.opening,.room-area{transition:none!important;animation:none!important}.station-interface{scroll-behavior:auto}}
/* The room asset has an alpha background; no color-blending rectangle is needed. */
.journey-stage,.journey .room-area{background:var(--bg)}
.journey .room{background:transparent}
.journey .room-art,.dive-image{mix-blend-mode:normal;mask-image:none;-webkit-mask-image:none}
