/* Live, native-resolution type. The light and the menu share one coordinate system. */
/* Desktop uses the supplied six-route film. Hit targets share its camera plane.
   Portrait uses native routes, so embedded labels are never cropped away. */
#hologram[data-filmed=true]{transform:none;max-width:none;max-height:none}
#hologram[data-filmed=true]:before,#hologram[data-filmed=true] .map-heading,#hologram[data-filmed=true] .route-art{display:none}
#hologram[data-filmed=true] .map-space{position:absolute;inset:0;aspect-ratio:auto;height:100%;max-height:none}
#hologram[data-filmed=true] .map-space button{width:17%;height:13%;border-radius:50%;transform:translate(-50%,-50%);background:transparent;border:0;box-shadow:none}
#hologram[data-filmed=true] .map-space button span,#hologram[data-filmed=true] .map-space button i{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
#hologram[data-filmed=true] .map-space button[data-go=works]{left:22%!important;top:32.5%!important}
#hologram[data-filmed=true] .map-space button[data-go=services]{left:78%!important;top:32.5%!important}
#hologram[data-filmed=true] .map-space button[data-go=prices]{left:19%!important;top:51.5%!important}
#hologram[data-filmed=true] .map-space button[data-go=process]{left:81%!important;top:51.5%!important}
#hologram[data-filmed=true] .map-space button[data-go=contact]{left:22%!important;top:71.5%!important}
#hologram[data-filmed=true] .map-space button[data-go=articles]{left:78%!important;top:71.5%!important}
#hologram[data-filmed=true] .map-space button[data-go=home]{left:50%!important;top:51.5%!important;width:10%;height:18%;background:none;border:0;box-shadow:none}
#hologram[data-filmed=true] .map-space button:not([data-go=home]):hover{box-shadow:0 0 35px var(--route),inset 0 0 25px #fff2}
#hologram[data-filmed=true] .map-space button:focus-visible{outline:2px solid var(--route);outline-offset:0}
#hologram[data-filmed=true] .map-space button:not([data-go=home]){transform:translate(-50%,-50%)}
.filmed-signal{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
#hologram[data-filmed=true] .filmed-signal{display:block}
.filmed-label{fill:#f2ffff;font:700 96px Arial,sans-serif;filter:drop-shadow(0 0 10px var(--label-glow));paint-order:stroke fill;stroke:var(--label-glow);stroke-width:1}
.filmed-stop circle{fill:none;stroke:var(--label-glow)}
.filmed-stop .stop-halo{stroke-width:30;filter:blur(17px);opacity:.85}
.filmed-stop .stop-orbit{stroke-width:2;opacity:.8}
.filmed-stop .stop-core{stroke:#eeffff;stroke-width:11;filter:drop-shadow(0 0 9px var(--label-glow))}
.stop-join-glow{stroke:var(--label-glow);stroke-width:12;filter:blur(6px)}
.stop-join-core{stroke:#eaffff;stroke-width:4;filter:drop-shadow(0 0 7px var(--label-glow))}
.filmed-label,.filmed-stop{opacity:var(--route-visibility,0)}
.filmed-signal path{fill:none;stroke:#ecffff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:9 100;opacity:0;filter:drop-shadow(0 0 7px #9fefff)}
.filmed-signal path.is-active{animation:filmed-pulse .5s ease-out}
.filmed-signal path.ambient-signal{animation:none;stroke-width:6;stroke-dasharray:5 95}
body[data-state=map] .filmed-signal path.ambient-signal{animation:filmed-drift 3.6s linear infinite}
@keyframes filmed-drift{0%{stroke-dashoffset:100;opacity:0}12%{opacity:.6}82%{opacity:.6}100%{stroke-dashoffset:0;opacity:0}}
@media(prefers-reduced-motion:reduce){body[data-state=map] .filmed-signal path.ambient-signal,body[data-state=map-reveal] .filmed-label,body[data-state=map-reveal] .filmed-stop{animation:none}}
@keyframes filmed-pulse{0%{stroke-dashoffset:109;opacity:0}12%{opacity:1}85%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
#lock-overlay{position:absolute;inset:0;z-index:6;width:3840px;height:2160px;pointer-events:none}
#meet-guide{position:fixed;z-index:6;border:0;background:none;padding:0;font-size:0}
#meet-guide:after{content:'Meet your guide ↗';position:absolute;left:50%;top:27%;transform:translate(-50%,-50%);white-space:nowrap;border:1px solid #8defff88;background:#061c2bd9;padding:12px 16px;border-radius:30px;font-size:12px;box-shadow:0 0 24px #56ccea33;opacity:0;transition:opacity .2s}
#meet-guide:hover:after,#meet-guide:focus-visible:after{opacity:1}
body[data-state=guide] #assistant-dialog{margin:10svh auto 0 4vw;width:min(430px,37vw);max-height:80svh}
body[data-state=guide] #assistant-dialog::backdrop{background:#00101b1a}
@media(min-aspect-ratio:6/5){body[data-state=press] #press-gate{left:50%;top:51.5%;width:15vmin;aspect-ratio:1;transform:translate(-50%,-50%)}body[data-state=press] #press-gate>p,body[data-state=press] #press-gate>small{display:none}body[data-state=press] #press{width:100%;height:100%;margin:0;padding:0;border:0;box-shadow:none;background:none;backdrop-filter:none;border-radius:50%}body[data-state=press] #press:before,body[data-state=press] #press:after{display:none}body[data-state=press] #press span,body[data-state=press] #press i{position:absolute;clip-path:inset(50%);width:1px;height:1px}body[data-state=press] #press:hover{box-shadow:0 0 45px #63dfff66}}
@media(max-aspect-ratio:6/5){body[data-state=guide] #assistant-dialog{position:fixed;inset:auto 12px 22px;margin:0;width:calc(100vw - 24px);height:49svh;max-height:calc(100dvh - 100px);padding:16px}body[data-state=guide] .assistant-heading h2{font-size:24px}body[data-state=guide] #assistant-log{max-height:none}}
#press-gate{position:fixed;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(370px,82vw);text-align:center;color:#b9f3ff}
#press-gate>p{font:10px/1.6 monospace;letter-spacing:.16em;text-shadow:0 2px 5px #000}
#press{position:relative;width:100%;display:flex;align-items:center;justify-content:space-between;padding:26px 36px;margin:22px 0;border:1px solid #83e9ff;border-radius:18px;background:linear-gradient(135deg,#092b479c,#1bb3d33b);box-shadow:0 0 5px #b0f5ff,inset 0 0 30px #0da1d561,0 0 65px #1ebae044;color:#e3fcff;text-shadow:0 0 16px #a0edff;backdrop-filter:blur(3px);font-size:38px;letter-spacing:.04em;transition:box-shadow .2s,background .2s}
#press:before,#press:after{content:"";position:absolute;inset:-7px 6px;border:1px solid #87eaff45;border-radius:22px;pointer-events:none}#press:after{inset:-13px 13px;border-color:#87eaff20}#press i{font-style:normal;font-size:24px}#press:hover{box-shadow:0 0 12px #b0f5ff,inset 0 0 35px #0da1d590,0 0 95px #1ebae060;background:#12638088}#press-gate small{font-size:11px;letter-spacing:.06em;text-shadow:0 2px 5px #000}
#hologram{position:fixed;inset:auto;left:50%;top:50%;width:min(850px,94vw);height:auto;transform:translate(-50%,-45%);isolation:isolate;color:#e4f8ff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
#hologram:before{content:"";position:absolute;z-index:-1;inset:-20px -3%;background:radial-gradient(ellipse,#04141beb 12%,#061821a8 46%,transparent 72%);pointer-events:none}
.map-heading{text-align:center;margin:0 0 6px}.map-heading>span{font:9px/1.5 monospace;letter-spacing:.2em;color:#a2dae9}.map-heading h2{font-size:clamp(16px,2.6vw,25px);font-weight:500;letter-spacing:.01em;margin:8px 0;color:#e6faff;text-shadow:0 1px 12px #00151e}
.map-space{position:relative;width:100%;aspect-ratio:8/5}.route-art{width:100%;height:100%;overflow:visible}.projection-rings{fill:none;stroke:#82e8ff30;stroke-width:1;stroke-dasharray:3 10}.projection-rings path{stroke:#82e8ff17;stroke-dasharray:2 12}
.route{fill:none;stroke:var(--route);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.route>path{pathLength:1;stroke-dasharray:650;stroke-dashoffset:0;animation:route-reveal 1.2s cubic-bezier(.2,.65,.2,1) both}.route:nth-of-type(2n)>path{animation-delay:.15s}.route:nth-of-type(3n)>path{animation-delay:.3s}.route .route-glow{filter:url(#neon-glow);stroke-width:10;opacity:.6}.route .route-spark{stroke:#f1ffff;stroke-width:3;opacity:0;stroke-dasharray:18 600;animation:none}.route.is-active .route-spark{animation:route-signal .6s ease-out}.route.is-active .route-glow{opacity:1}
#hologram .map-space button{position:absolute;transform:translate(-50%,-12px);width:150px;height:72px;padding:0;border:0;border-radius:10px;background:none;color:var(--route);box-shadow:none;display:flex;flex-direction:column;align-items:center;gap:9px;text-shadow:0 1px 6px #00111f}
#hologram .map-space button i{display:block;width:12px;height:12px;border:2px solid #e8ffff;border-radius:50%;background:var(--route);box-shadow:0 0 8px var(--route),0 0 25px var(--route);flex:none}
#hologram .map-space button span{position:static;width:auto;height:auto;clip-path:none;overflow:visible;font-size:17px;font-weight:600;letter-spacing:.02em;line-height:1.2}
#hologram .map-space button small{display:block;color:#bbd6dd;font:9px/1.4 monospace;letter-spacing:.02em;margin-top:6px;font-weight:400}
#hologram .map-space button:not([data-go=home]):hover i{box-shadow:0 0 12px white,0 0 30px var(--route);background:#fff}#hologram .map-space button:not([data-go=home]):hover span{color:#fff;text-shadow:0 0 12px var(--route)}#hologram .map-space button:focus-visible{outline:2px solid var(--route);outline-offset:5px}
#hologram .map-space button[data-go=home]{width:70px;height:70px;transform:translate(-50%,-50%);display:grid;place-items:center;background:#052330e6;border:1px solid #a9ecff;border-radius:50%;box-shadow:0 0 14px #71d8ef66,inset 0 0 18px #71d8ef33}
#hologram .map-space button[data-go=home] span{font-size:11px;letter-spacing:.07em}
@keyframes route-reveal{from{stroke-dashoffset:650;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes route-signal{0%{stroke-dashoffset:600;opacity:0}10%{opacity:1}90%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@media(max-width:600px){#hologram{width:96vw;transform:translate(-50%,-40%)}.map-space{aspect-ratio:8/6}#hologram .map-space button{width:105px;gap:8px;height:64px}#hologram .map-space button span{font-size:14px}#hologram .map-space button small{font-size:8px;max-width:95px}#hologram .map-space button[data-go=home]{width:50px;height:50px}#hologram .map-space button[data-go=home] span{font-size:9px}.route-art{position:absolute;inset:0;height:100%}.map-heading{margin-bottom:20px}.map-heading>span{font-size:8px}}
@media(max-height:500px){#hologram{width:min(630px,90vw);top:53%;transform:translate(-50%,-50%)}.map-space{max-height:240px;aspect-ratio:8/5}.map-heading h2{font-size:16px;margin:4px}.map-heading>span{display:none}#hologram .map-space button span{font-size:13px}#hologram .map-space button small{display:none}#hologram .map-space button{height:45px}}
@media(prefers-reduced-motion:reduce){.route>path{animation:none!important}.route .route-spark{display:none}}
#hologram .map-space button:not([data-go=home]){transform:translate(-50%,-6px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#guide-invite{position:fixed;z-index:8;right:4vw;bottom:9svh;display:flex;align-items:center;gap:12px;padding:7px 17px 7px 7px;border:1px solid #8fe8ee80;background:#061c2ce8;border-radius:40px;text-align:left;box-shadow:0 0 28px #3bcbe326;color:#eaffff}
#guide-invite img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:1px solid #91e8ec}
#guide-invite span{font:500 14px/1.4 -apple-system,BlinkMacSystemFont,sans-serif}
#guide-invite small{display:block;margin-bottom:2px;font:9px/1.4 monospace;letter-spacing:.07em;color:#8bdae2}
#guide-invite b{margin-left:9px;font-weight:400}
#guide-invite:hover{background:#123b4b;border-color:#ceffff}
@media(max-aspect-ratio:6/5){#guide-invite{top:67px;bottom:auto;left:50%;right:auto;transform:translateX(-50%);padding:4px 12px 4px 4px;gap:8px;white-space:nowrap}#guide-invite img{width:36px;height:36px}#guide-invite small{display:none}#guide-invite span{font-size:12px}}
#assistant-dialog{width:min(470px,calc(100vw - 32px));height:620px;max-height:calc(100svh - 60px);padding:24px;border:1px solid #86ebffa8;border-radius:3px;color:#e4f8ff;background:linear-gradient(125deg,#062637eb,#05131bf2);box-shadow:0 0 0 5px #51dfff0c,0 0 50px #1d94c335,inset 0 0 35px #0abfff0c;backdrop-filter:blur(10px);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden;overscroll-behavior:contain}
#assistant-dialog[open]{display:flex;flex-direction:column;animation:guide-project .45s ease-out}
#assistant-dialog{max-width:calc(100vw - 24px)}
#assistant-dialog::before,#assistant-dialog::after{content:'';position:absolute;width:27px;height:27px;pointer-events:none;border-color:#b9fcff}
#assistant-dialog::before{top:0;left:0;border-top:2px solid;border-left:2px solid}#assistant-dialog::after{bottom:0;right:0;border-bottom:2px solid;border-right:2px solid}
#assistant-dialog::backdrop{background:#00101b55}
.assistant-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex:none}
.assistant-heading p{font:9px/1.6 monospace;letter-spacing:.12em;color:#9edfe9;margin:0}
.assistant-heading p i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#83e7ed;box-shadow:0 0 8px #83e7ed;margin-right:6px}
.assistant-heading h2{font-size:32px;line-height:1.15;letter-spacing:-.01em;margin:9px 0 12px;font-weight:500}
#assistant-title:focus{outline:none}
#assistant-close{font-size:27px;line-height:1;width:40px;height:40px;flex:none;color:#c7ebf2}
.assistant-controls{display:flex;align-items:center;gap:7px;padding-bottom:10px;border-bottom:1px solid #8defff30;font-size:10px;flex:none}
#assistant-mode{flex:1;color:#afc7ce;line-height:1.4}
.assistant-controls select{font:600 11px/1.4 inherit;border:0;background:#15374a;color:#eaffff;padding:5px 4px;border-radius:3px}
#assistant-voice{font-size:11px;padding:6px;color:#a9f0f5}
.assistant-note{font-size:10px;line-height:1.45;color:#a9c1cc;margin:7px 0 0;flex:none}
#assistant-log{flex:1;min-height:60px;max-height:none;overflow:auto;overscroll-behavior:contain;margin:10px 0;font-size:14px;line-height:1.6;scrollbar-width:thin;scrollbar-color:#67969e transparent}
#assistant-log p{padding:11px 13px;margin:0 0 10px;overflow-wrap:anywhere;white-space:pre-wrap}
#assistant-log .chat-guide{border-left:2px solid #7edfea;background:#10314290;margin-right:12px}
#assistant-log .chat-visitor{background:#2450698c;border-right:2px solid #b1edff;margin-left:28px}
#assistant-log a{display:block;color:#9dedfc;font-size:11px;margin-top:8px}
#assistant-log[aria-busy=true]::after{content:'…';display:block;padding:4px 12px;color:#8defff}
#assistant-questions{display:flex;gap:6px;overflow:auto;flex:none;padding-bottom:9px;scrollbar-width:none}
#assistant-questions button{text-align:left;border:1px solid #a5e9ff3d;padding:7px 9px;font-size:11px;line-height:1.4;background:#12334960;white-space:nowrap;flex:none}
#assistant-questions button:hover{background:#21526b}
#assistant-form{display:flex;gap:6px;border:1px solid #99e8f580;background:#061722e6;padding:4px;flex:none}
#assistant-input{min-width:0;flex:1;display:block;border:0;outline-offset:1px;background:none;color:#fff;padding:8px;font:16px/1.4 -apple-system,BlinkMacSystemFont,sans-serif;border-radius:0}
#assistant-input::placeholder{color:#a1bdc8;font-size:13px}
#assistant-send{flex:none;width:38px;height:38px;background:#8de4ed;color:#06212c;font-size:24px}
#assistant-send:disabled{opacity:.4;cursor:wait}
#assistant-dialog nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid #a5e9ff25;flex:none}
#assistant-dialog nav button{font-size:11px;padding:5px 0;color:#afe6ed;text-decoration:underline;text-underline-offset:4px}
#assistant-dialog[data-speaking=true] .assistant-heading p i{animation:guide-voice .9s ease-in-out infinite}
@keyframes guide-project{from{opacity:0;filter:brightness(1.5);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}
@keyframes guide-voice{50%{box-shadow:0 0 18px #8cffff;transform:scale(1.4)}}
@media(prefers-reduced-motion:reduce){#assistant-dialog[open],#assistant-dialog[data-speaking=true] .assistant-heading p i{animation:none}}
.route>path{animation-duration:1.2s}.route:nth-of-type(2n)>path{animation-delay:.15s}.route:nth-of-type(3n)>path{animation-delay:.3s}
#map-projection{position:fixed;inset:0;z-index:1;pointer-events:none}
body[data-state=press] #map-projection{animation:press-projection-in .22s ease-out both}
@keyframes press-projection-in{from{opacity:0}to{opacity:1}}
#map-projection>*{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
#map-projection video{visibility:hidden;opacity:0}
#continue-projection{position:fixed;z-index:8;left:50%;bottom:17svh;transform:translateX(-50%);padding:10px 18px;border:1px solid #b5daff;background:#071322dc;font-size:12px}
#hologram[data-portrait=true] .map-space button{min-width:44px;min-height:44px}
#hologram[data-portrait=true] .map-space button small{display:none}
@media(max-aspect-ratio:6/5){
 body[data-state=press] #press-gate{transform:translate(-50%,-50%)}
 body[data-state=press] #press-gate>p,body[data-state=press] #press-gate>small{display:none}
 body[data-state=press] #press{width:100%;height:100%;margin:0;padding:0;border:0;box-shadow:none;background:none;backdrop-filter:none;border-radius:50%}
 body[data-state=press] #press:before,body[data-state=press] #press:after{display:none}
 body[data-state=press] #press{justify-content:center}
 body[data-state=press] #press span,body[data-state=press] #press i{position:absolute;clip-path:inset(50%);width:1px;height:1px}
 body[data-state=press] #press:hover{box-shadow:0 0 45px #63dfff66}
}
@media(max-aspect-ratio:6/5) and (max-height:700px){body[data-state=guide] #assistant-dialog{height:56svh;min-height:300px;padding:12px;bottom:12px}.assistant-heading h2{display:none}.assistant-heading{min-height:34px}.assistant-controls{padding-bottom:6px}#assistant-log{font-size:13px;margin:7px 0}#assistant-dialog nav{display:none}.assistant-note{font-size:9px;margin-top:5px}#assistant-questions button{font-size:10px;padding:5px 7px}}

#station-sign{position:fixed;left:0;width:100%;z-index:1;pointer-events:none;display:flex;align-items:center;justify-content:center;border-top:1px solid #8d908780;border-bottom:5px solid #124682;background:linear-gradient(100deg,#333832,#45473f 52%,#363c37);box-shadow:0 3px 9px #0005,inset 0 1px #c4c2b326}
#station-sign span{font:500 clamp(17px,5.2vw,36px)/1.1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.12em;color:#f1f0e6;white-space:nowrap;text-shadow:0 2px 2px #0008}
@media(min-aspect-ratio:6/5){#station-sign{display:none}}
@media(max-aspect-ratio:6/5){footer{justify-content:flex-end}}
body[data-state=guide] #assistant-dialog{border-color:#9cefff99;background:linear-gradient(130deg,#08212ae8,#041c27d9);box-shadow:0 0 0 5px #68def312,0 0 0 6px #9cefff35,0 0 45px #5acde624,inset 0 0 35px #60ddff0c}
@media(max-height:600px) and (min-aspect-ratio:6/5){
 body[data-state=guide] #assistant-dialog{position:fixed;inset:12px auto 12px 12px;margin:0;width:min(430px,48vw);height:calc(100dvh - 24px);max-height:none;padding:12px}
 body[data-state=guide] .assistant-heading{min-height:26px}
 body[data-state=guide] .assistant-heading h2{display:none}
 body[data-state=guide] .assistant-heading p{font-size:9px;margin:0}
 body[data-state=guide] #assistant-close{width:28px;height:28px;padding:0;font-size:24px}
 body[data-state=guide] .assistant-controls{padding:4px 0;min-height:28px;font-size:10px}
 body[data-state=guide] #assistant-log{min-height:70px;max-height:none;margin:6px 0;font-size:13px}
 body[data-state=guide] #assistant-questions{margin-bottom:6px}
 body[data-state=guide] #assistant-questions button{font-size:10px;padding:5px 7px}
 body[data-state=guide] #assistant-form{padding:2px}
 body[data-state=guide] #assistant-input{padding:5px;font-size:16px}
 body[data-state=guide] #assistant-send{width:32px;height:32px}
 body[data-state=guide] .assistant-note{font-size:9px;line-height:1.25;margin-top:5px}
 body[data-state=guide] #assistant-dialog nav{margin-top:4px;padding-top:3px}
 body[data-state=guide] #assistant-dialog nav button{font-size:10px;padding:3px 0}
 /* The phone already has Ask studio. A second floating control blocks its
    next-project arrow in small landscape viewports. */
 #guide-invite{display:none}
}
