@font-face{font-family:Manrope;src:url('assets/manrope.woff2') format('woff2');font-display:swap;font-weight:200 800}
:root{color-scheme:dark;--navy:#07172c;--red:#ed001b;--muted:#b9c5d5;--border:#acc4dc40;--font:Manrope,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:#fff;background:var(--navy)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #85cfff;outline-offset:4px}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}.skip{position:fixed;left:16px;top:-80px;z-index:100;background:white;color:#081b32;padding:16px}.skip:focus{top:16px}.experience{height:100svh;min-height:650px;position:relative;overflow:hidden;isolation:isolate}.scene-area{position:absolute;inset:0;touch-action:none;overflow:hidden;cursor:grab}.scene-area:active{cursor:grabbing}.plate{position:absolute;left:50%;top:50%;width:max(100vw,177.68svh);height:max(56.28vw,100svh);transform:translate(-50%,-50%);transform-origin:center;will-change:transform}.plate>img{width:100%;height:100%;object-fit:fill;display:block;pointer-events:none;user-select:none}.pins{position:absolute;inset:0;pointer-events:none}.pin{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);display:flex;align-items:center;gap:9px;background:transparent;border:0;padding:8px;white-space:nowrap;transition:opacity .3s}.pin .dot{width:26px;height:26px;border-radius:50%;background:var(--red);border:4px solid #fff;box-shadow:0 2px 10px #00112488;flex:none;display:grid;place-items:center;font-size:12px;font-weight:800}.pin .label{padding:9px 13px;font-size:14px;line-height:1.15;font-weight:700;border-radius:7px;background:#071c37ee;border:1px solid #9bc7eb33;box-shadow:0 5px 22px #00102033;backdrop-filter:blur(12px)}.pin:hover .label,.pin.selected .label{background:#fff;color:#07172c}.pin.selected .dot{box-shadow:0 0 0 8px #ff173829,0 0 30px #ff204e8f}.pin.tour .dot{width:30px;height:30px;border-width:2px}.shade{position:absolute;inset:0;background:linear-gradient(#04152e3d,transparent 18%,transparent 78%,#05162ee6);pointer-events:none}#webgl{position:absolute;inset:0}#webgl canvas{display:block;width:100%;height:100%}#webgl .pins{z-index:2}.header{position:absolute;left:32px;right:32px;top:24px;display:flex;align-items:flex-start;gap:40px;z-index:5;pointer-events:none}.header>*{pointer-events:auto}.brand{width:100px;flex:none}.brand img{width:90px;height:90px}.header nav{display:flex;gap:30px;padding-top:9px}.scene-tab{border:0;background:transparent;color:#becbda;font-weight:600;font-size:15px;padding:9px 0 15px;position:relative}.scene-tab.active{color:#fff}.scene-tab.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--red);border-radius:5px}.dossier{margin-left:auto;padding:17px 0;font-size:14px;display:flex;gap:14px}.dossier span{color:#9aacc4}.intro{position:absolute;top:155px;left:40px;width:315px;z-index:2;pointer-events:none;transition:opacity .4s}.intro>p:first-child{font-size:12px;letter-spacing:.13em;color:#c3d1e4;font-weight:650;line-height:1.5;margin:0 0 17px}.intro h1{font-size:clamp(30px,3.1vw,55px);line-height:1.05;letter-spacing:-.04em;margin:0 0 16px;font-weight:800;text-shadow:0 2px 30px #04152ed9}.intro h1 span{color:var(--red)}.intro>p:last-child{font-size:15px;line-height:1.55;max-width:255px;color:#e5ecf5;text-shadow:0 1px 12px #041020}.view-switch{position:absolute;top:90px;right:32px;display:flex;padding:4px;border:1px solid var(--border);border-radius:30px;background:#05192dca;backdrop-filter:blur(10px);z-index:5}.view-switch button{padding:8px 14px;background:transparent;border:0;border-radius:20px;font-size:13px;color:#bdc8d8}.view-switch button.active{background:#fff;color:#06172a}.detail{position:absolute;right:32px;top:145px;width:345px;max-height:calc(100svh - 290px);z-index:6;overflow:auto;scrollbar-width:thin;border:1px solid #a8c6e17d;border-radius:16px;background:#081d35ed;box-shadow:0 16px 70px #00122470;backdrop-filter:blur(20px);animation:open-card .4s ease}.detail-photo{height:190px;margin:12px 12px 0;border-radius:9px;background-size:cover;background-position:center;overflow:hidden}.detail-photo img{width:100%;height:100%;object-fit:cover}.detail-body{padding:21px 23px 12px}.detail .eyebrow{font-size:12px;color:#ff3451;letter-spacing:.11em;line-height:1.6;margin:0 0 10px;font-weight:700}.detail h2{font-size:27px;line-height:1.13;letter-spacing:-.025em;margin:0 0 12px}.detail-subtitle,#detail-subtitle{font-size:14px;line-height:1.6;color:#c6d3e2;margin:0 0 18px}.close-detail{position:absolute;right:20px;top:20px;z-index:2;background:#071c36aa;border:0;border-radius:50%;width:34px;height:34px;line-height:25px;font-size:27px}.red-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 17px;background:var(--red);border:1px solid #ff2642;border-radius:30px;font-size:14px;font-weight:700}.red-button:hover{background:#ca0017}.story>p{font-size:15px;line-height:1.7;color:#dbe6f1;margin-top:20px}.story dl{margin:16px 0}.story dt{font-size:14px;font-weight:750;margin:18px 0 5px}.story dd{font-size:14px;line-height:1.65;color:#bdcddd;margin:0}.story a{display:inline-block;border-bottom:1px solid #ffffff70;padding:5px 0;font-size:14px;margin-top:5px}.detail-nav{display:flex;align-items:center;justify-content:space-between;margin-top:15px;border-top:1px solid #ffffff15;padding-top:8px}.detail-nav button{border:0;background:transparent;font-size:22px;min-width:38px;min-height:38px}.detail-nav span{font-size:12px;color:#abbdd2}.controls{position:absolute;bottom:110px;left:32px;display:flex;align-items:center;gap:9px;z-index:5}.camera-controls{display:flex;align-items:center;border:1px solid var(--border);border-radius:28px;background:#061a34cf;backdrop-filter:blur(12px);padding:4px}.camera-controls button{border:0;background:transparent;width:42px;height:40px;font-size:24px}.divider{height:24px;width:1px;background:var(--border)}.guided,.fullscreen{border:1px solid var(--border);background:#061a34cf;backdrop-filter:blur(12px);border-radius:25px;min-height:50px;padding:10px 18px;font-size:14px;display:flex;align-items:center;gap:10px}.guided.active{background:var(--red);border-color:var(--red)}.fullscreen{font-size:24px;padding:7px 15px}.journey{position:absolute;bottom:47px;left:32px;right:32px;display:flex;gap:10px;z-index:4;overflow-x:auto;scrollbar-width:none;padding:6px 3px}.journey button{display:flex;align-items:center;gap:9px;border:1px solid #a2bbd434;border-radius:25px;background:#081e36c9;backdrop-filter:blur(14px);padding:10px 15px;font-size:13px;white-space:nowrap}.journey button span{font-size:11px;color:#b0c8e1}.journey button.active{background:#fff;color:#07172c;border-color:#fff}.journey button.active span{color:var(--red)}.bottom-note{position:absolute;bottom:18px;left:36px;right:36px;display:flex;justify-content:space-between;gap:20px;color:#c4d3e4;font-size:12px;pointer-events:none}.toast{position:absolute;left:50%;top:110px;transform:translateX(-50%);z-index:20;font-size:14px;background:#fff;color:#07172c;border-radius:15px;padding:16px 22px;box-shadow:0 5px 30px #0005;max-width:90vw}.tour-world .brand{width:244px}.tour-world #tour-brand{display:flex;align-items:center;gap:13px;background:#f4f8ff;color:#073cbd;border-radius:0 0 20px 20px;padding:13px 20px;margin-top:-24px;margin-left:-8px;width:250px}.tour-world #tour-brand b{font-size:27px;font-style:italic;font-weight:900;letter-spacing:-2px;line-height:.78}.tour-world #tour-brand>span{color:#071a31}.tour-world #tour-brand strong{font-size:16px;color:#e70021;letter-spacing:-.04em}.tour-world #tour-brand small{display:block;color:#0a2541;font-size:10px;letter-spacing:.16em;margin-top:4px}.tour-world .intro{top:170px}.has-selection .intro{opacity:.3}.has-selection .intro:hover{opacity:1}.model-view .intro{opacity:.7}.model-view .shade{background:linear-gradient(#06182b66,transparent 25%,transparent 76%,#06182bdc)}@keyframes open-card{from{opacity:0;transform:translateX(15px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1900px){.detail{width:410px}.detail-photo{height:240px}.detail h2{font-size:32px}.detail-body{padding:25px}.intro{width:360px}.pin .label{font-size:16px}.header nav{gap:45px}}
@media(max-width:1100px){.header{left:20px;right:20px;gap:20px}.brand{width:78px}.brand img{width:70px;height:70px}.intro{left:24px;top:135px;width:230px}.intro h1{font-size:33px}.intro>p:first-child{font-size:11px}.intro>p:last-child{font-size:14px;max-width:200px}.detail{right:20px;width:295px;top:140px}.detail-photo{height:140px}.detail h2{font-size:24px}.detail-body{padding:17px}.view-switch{right:20px;top:85px}.pin .label{font-size:12px;padding:8px 10px}.pin{gap:5px}.pin .dot{width:22px;height:22px;border-width:3px}.pin.tour .dot{width:25px;height:25px}.tour-world .header{gap:26px}.tour-world .brand{width:215px}.tour-world #tour-brand{width:218px;padding:13px}.header nav{gap:20px}.journey{left:20px;right:20px}.controls{left:20px}.bottom-note{left:24px;right:24px}}
@media(max-width:760px){.experience{min-height:600px}.header{top:14px;left:16px;right:16px;display:grid;grid-template-columns:60px 1fr 24px;gap:10px;align-items:center}.brand{width:54px}.brand img{width:54px;height:54px}.header nav{padding:0;gap:18px;justify-content:center}.scene-tab{font-size:12px;padding:13px 0}.dossier{font-size:0;padding:8px}.dossier span{font-size:22px}.intro{top:93px;left:20px;width:215px}.intro>p:first-child{display:none}.intro h1{font-size:31px;margin-bottom:10px}.intro>p:last-child{font-size:13px;max-width:205px}.view-switch{top:auto;bottom:149px;right:16px;border-radius:20px}.view-switch button{font-size:11px;padding:8px 10px}.controls{bottom:147px;left:15px;gap:5px}.camera-controls{padding:1px}.camera-controls button{width:31px;height:35px;font-size:22px}.guided{position:absolute;left:0;bottom:49px;min-height:38px;font-size:12px;padding:9px 13px}.fullscreen{display:none}.journey{bottom:56px;left:12px;right:12px;max-height:78px;flex-wrap:nowrap;align-items:center;padding:14px 3px}.journey button{font-size:12px;padding:10px 12px;min-height:40px}.bottom-note{left:18px;right:18px;bottom:16px;display:block;font-size:10px;line-height:1.6;max-width:90%}.bottom-note span{display:block}.bottom-note #scope{color:#829cb8}.pin .label{display:none}.pin .dot{width:29px;height:29px;border-width:3px}.pin.tour .dot{width:30px;height:30px;font-size:11px}.pin.selected .label,.pin:hover .label{display:block;font-size:12px;max-width:170px;white-space:normal}.detail{position:absolute;top:auto;bottom:145px;left:12px;right:12px;width:auto;max-height:56svh;border-radius:16px;box-shadow:0 -10px 90px #00102288}.detail-photo{width:95px;height:95px;float:left;margin:16px 14px 0 16px}.detail-body{padding:17px 18px 8px}.detail .eyebrow{font-size:10px;margin-bottom:7px;min-height:14px}.detail h2{font-size:22px;line-height:1.16;padding-right:15px;min-height:42px;margin-bottom:8px}.detail #detail-subtitle{clear:both;padding-top:12px;font-size:13px;margin-bottom:12px}.close-detail{right:10px;top:10px;width:28px;height:28px;font-size:22px}.red-button{font-size:13px;padding:12px 15px}.detail-nav{margin-top:8px;padding-top:2px}.detail-nav button{min-height:31px}.has-selection .controls,.has-selection .view-switch{visibility:hidden}.has-selection .intro{opacity:0}.tour-world .brand{width:54px}.tour-world #tour-brand{width:60px;padding:10px 7px;margin:0;border-radius:9px;display:block}.tour-world #tour-brand b{font-size:22px}.tour-world #tour-brand>span,.tour-world #tour-brand strong{display:none}.tour-world .header{gap:10px}.tour-world .intro{top:93px}.model-view .intro{opacity:.8}.plate{width:max(100vw,145svh);height:max(56.28vw,81.6svh);top:47%}.has-selection .journey{z-index:8}.story>p{font-size:14px}.story dd{font-size:13px}.toast{top:78px;width:90%;font-size:13px}}
.route-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 0 5px #ff123a)}.pin{transform-origin:50% 100%}
@media(max-width:760px){.scene-tab{font-size:13px}.journey button{font-size:13px}.view-switch button{font-size:12px}.pin.selected .label,.pin:hover .label{font-size:13px}.pin .label{transform-origin:left center}}
/* The complete landscape sits inside an extended blue portrait canvas.
   Small screens grow vertically rather than cropping the map. */
@media(max-width:760px){
 .experience{height:100svh;height:100dvh;min-height:calc(56.28vw + 410px + env(safe-area-inset-top,0px) + env(safe-area-inset-bottom,0px));--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
 .map-overview .scene-area{touch-action:pan-y pinch-zoom}
 .scene-area{background:radial-gradient(ellipse at 50% 45%,#123561 0%,#0a2548 48%,#07172c 100%)}
 .tour-world .scene-area{background:radial-gradient(ellipse at 65% 40%,#24618a 0%,#123b61 45%,#07172c 100%)}
 .plate{top:50%;width:max(100vw,177.68svh);height:max(56.28vw,100svh);width:max(100vw,177.68dvh);height:max(56.28vw,100dvh)}
 .plate>img{
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 3%,#000 96%,transparent),linear-gradient(to right,transparent,#000 3%,#000 97%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to bottom,transparent,#000 3%,#000 96%,transparent),linear-gradient(to right,transparent,#000 3%,#000 97%,transparent);
  mask-composite:intersect;
 }
 .shade{background:linear-gradient(to bottom,#06172beb 0%,#06172b99 17%,transparent 36%,transparent 63%,#06172b80 81%,#06172bdb 100%)}
 .header{top:calc(12px + var(--safe-top));left:14px;right:14px;grid-template-columns:54px 1fr 24px;gap:8px}
 .header nav{gap:16px}
 .scene-tab{font-size:13px;white-space:nowrap}
 .intro,.tour-world .intro{top:calc(84px + var(--safe-top));left:18px;width:250px}
 .intro h1{font-size:30px;line-height:1.05;margin-bottom:8px}
 .intro>p:last-child{font-size:13px;line-height:1.4;max-width:245px;margin-top:0}
 .controls{left:14px;right:14px;bottom:calc(150px + var(--safe-bottom));justify-content:space-between;gap:12px}
 .camera-controls button{width:38px;height:40px}
 .guided{position:static;white-space:nowrap;min-height:44px;padding:10px 15px;font-size:13px}
 .view-switch{top:auto;bottom:calc(98px + var(--safe-bottom));left:50%;right:auto;transform:translateX(-50%);white-space:nowrap}
 .view-switch button{font-size:13px;min-height:38px;padding:8px 14px}
 .journey{bottom:calc(40px + var(--safe-bottom));left:10px;right:10px;padding:5px 3px;max-height:50px}
 .journey button{min-height:44px}
 .bottom-note{bottom:calc(6px + var(--safe-bottom));left:16px;right:16px;max-width:none;font-size:10px;line-height:1.5}
 .detail{bottom:calc(98px + var(--safe-bottom));max-height:50svh;max-height:50dvh}
 .pin .dot{width:27px;height:27px}
 .pin.tour .dot{width:29px;height:29px}
 .has-selection .intro,.has-selection.model-view .intro{opacity:0}
}
@media(max-width:360px){
 .header nav{gap:10px}.scene-tab{font-size:12px}.header{left:10px;right:10px;gap:5px;grid-template-columns:48px 1fr 24px}.brand,.tour-world .brand{width:48px}.brand img{width:48px;height:48px}.tour-world #tour-brand{width:48px}.intro h1{font-size:28px}
}
@media(max-width:760px) and (max-height:620px){
 .intro>p:last-child{display:none}.intro h1{font-size:26px}.controls{bottom:calc(137px + var(--safe-bottom))}.view-switch{bottom:calc(87px + var(--safe-bottom))}.journey{bottom:calc(33px + var(--safe-bottom))}.bottom-note #hint{display:none}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
