* {
	-moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* inter-100 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100;
  src: url('./fonts/inter-v20-latin-100.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-100italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 100;
  src: url('./fonts/inter-v20-latin-100italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-200 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  src: url('./fonts/inter-v20-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-200italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 200;
  src: url('./fonts/inter-v20-latin-200italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  src: url('./fonts/inter-v20-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-300italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 300;
  src: url('./fonts/inter-v20-latin-300italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('./fonts/inter-v20-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 400;
  src: url('./fonts/inter-v20-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  src: url('./fonts/inter-v20-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-500italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 500;
  src: url('./fonts/inter-v20-latin-500italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  src: url('./fonts/inter-v20-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-600italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 600;
  src: url('./fonts/inter-v20-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  src: url('./fonts/inter-v20-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 700;
  src: url('./fonts/inter-v20-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  src: url('./fonts/inter-v20-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-800italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 800;
  src: url('./fonts/inter-v20-latin-800italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  src: url('./fonts/inter-v20-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* inter-900italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Inter';
  font-style: italic;
  font-weight: 900;
  src: url('./fonts/inter-v20-latin-900italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

:root{color-scheme:dark;--bg:#080f1d;--ink:#f3f5ff;--muted:#a0aec6;--line:rgba(181,214,255,.18);--cyan:#6ae6ed;--violet:#bd9dff;--mint:#9cebbf;--orange:#ffca91;--glass:rgba(12,21,38,.76);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;min-height:100svh;overflow:hidden;color:var(--ink);background:radial-gradient(ellipse at 70% 42%,#20364f 0%,#111a30 40%,#080e1d 74%,#070b14 100%)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(132,180,241,.029) 1px,transparent 1px),linear-gradient(90deg,rgba(132,180,241,.029) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,transparent 4%,#000 38%,#000 88%,transparent);z-index:0}
body:after{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 54% 47%,transparent 25%,rgba(2,7,16,.54) 100%);z-index:2}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #a7eeff;outline-offset:4px}
a{color:inherit;text-decoration:none}a:hover{color:#fff}
#scene{position:fixed;inset:0;z-index:1;touch-action:none;cursor:grab}#scene.dragging{cursor:grabbing}#scene canvas{display:block;width:100%;height:100%}
#interface{position:fixed;inset:0;z-index:4;pointer-events:none}#interface>*{pointer-events:auto}
.header{position:absolute;top:0;left:0;right:0;padding:clamp(17px,3vw,40px) clamp(20px,3.7vw,62px);display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.brand-area{display:flex;align-items:center;gap:17px}.logo-frame{height:58px;width:174px;display:flex;align-items:center;justify-content:center;border:1px dashed rgba(171,226,255,.34);background:rgba(125,209,255,.035);border-radius:12px;flex-shrink:0;position:relative;overflow:hidden}
.logo-frame:before,.logo-frame:after{content:"";position:absolute;width:11px;height:11px;border-color:var(--cyan);border-style:solid;opacity:.65}.logo-frame:before{top:-1px;left:-1px;border-width:2px 0 0 2px}.logo-frame:after{right:-1px;bottom:-1px;border-width:0 2px 2px 0}.logo-placeholder{display:flex;align-items:center;gap:11px;letter-spacing:.13em;font-size:13px;font-weight:800}.brand-glyph{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,#6bece8,#9a88ff);color:#081020;font-size:12px;letter-spacing:-.12em;box-shadow:0 0 27px rgba(83,205,244,.19)}.logo-frame img{max-width:100%;max-height:100%;object-fit:contain}
.brand-divider{width:1px;height:29px;background:var(--line)}.brand-caption{font-size:10px;font-weight:650;letter-spacing:.17em;text-transform:uppercase;line-height:1.7;color:#8eabc8}
.header-tools{display:flex;align-items:center;gap:10px}.fx-toggle{margin-top:12px;color:#b6d5ed;border:1px solid rgba(156,206,241,.22);border-radius:99px;background:rgba(8,18,34,.67);padding:10px 12px;font:650 10px/1 monospace;white-space:nowrap;letter-spacing:.08em;backdrop-filter:blur(15px)}.fx-toggle:hover,.fx-toggle[aria-pressed="true"]{color:#b7fbfa;border-color:rgba(141,235,242,.55);background:rgba(25,71,86,.55)}.fx-toggle b{font:inherit;color:#92e8e4}.status{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 13px;border:1px solid var(--line);border-radius:99px;background:rgba(8,18,34,.6);backdrop-filter:blur(15px);font:650 10px/1 monospace;color:#b8d0e6;letter-spacing:.14em}.status .dot{width:7px;height:7px;background:#8de4bf;border-radius:50%;box-shadow:0 0 11px #62daa2;animation:blink 2.3s ease-in-out infinite}@keyframes blink{50%{opacity:.3}}
.intro{position:absolute;left:clamp(20px,3.7vw,62px);top:clamp(147px,22.4vh,245px);max-width:min(350px,26vw);pointer-events:none;transition:opacity .5s,transform .5s}
.eyebrow{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.3em;font-size:10px;font-weight:750;color:#90dce3}.eyebrow:before{content:"";width:22px;height:1px;background:#91e9e7}
.intro h1{font-size:clamp(37px,4.4vw,71px);line-height:1.015;letter-spacing:-.064em;margin:19px 0 20px;font-weight:790;text-wrap:balance}.intro h1 span{color:#86e7e7}.intro p{font-size:clamp(12px,1.05vw,15px);line-height:1.85;color:#b4c4d7;max-width:300px;margin:0}.intro .micro{margin-top:24px;font:600 10px/1.6 monospace;letter-spacing:.12em;color:#6b91af}
.footer{position:absolute;left:clamp(20px,3.7vw,62px);right:clamp(20px,3.7vw,62px);bottom:clamp(16px,2.75vw,34px);display:flex;justify-content:space-between;align-items:flex-end;gap:18px;z-index:10}.footer small{color:#85a0b9;font:500 10px/1.7 monospace;letter-spacing:.08em}.foot-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.foot-links a{font-size:11px;font-weight:650;color:#abc0d5;transition:color .2s}.foot-links a:hover{color:var(--cyan)}
#poiBar{position:absolute;left:50%;bottom:clamp(70px,8.4vh,105px);transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:rgba(8,17,32,.82);border:1px solid rgba(155,205,239,.2);border-radius:17px;backdrop-filter:blur(24px);box-shadow:0 17px 60px rgba(1,5,17,.35);max-width:calc(100vw - 32px);z-index:9}
.poi-btn{border:0;color:#aebfd4;background:transparent;border-radius:11px;min-height:43px;display:flex;align-items:center;gap:9px;padding:0 12px;white-space:nowrap;font-size:11px;font-weight:710;letter-spacing:.01em;transition:background .2s,color .2s}.poi-btn:hover,.poi-btn.active{color:#fff;background:rgba(144,190,247,.13)}.poi-btn.active{box-shadow:inset 0 0 0 1px rgba(143,210,236,.18)}.poi-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0}.poi-btn:first-child{color:#8ee9e5}.poi-sep{height:24px;width:1px;background:var(--line);margin:0 3px}
#backButton{position:absolute;bottom:clamp(135px,15vh,174px);left:50%;transform:translateX(-50%) translateY(10px);opacity:0;pointer-events:none;border:1px solid rgba(149,231,239,.46);background:rgba(9,24,39,.88);color:#d8faff;border-radius:100px;padding:11px 18px;display:flex;align-items:center;gap:9px;white-space:nowrap;transition:opacity .3s,transform .3s;backdrop-filter:blur(15px);font-size:12px;font-weight:700;z-index:8}#backButton.visible{opacity:1;transform:translateX(-50%);pointer-events:auto}#backButton:hover{background:#1b3d51}
#hint{position:absolute;left:clamp(20px,3.7vw,62px);bottom:clamp(87px,10vh,133px);display:flex;align-items:center;gap:11px;color:#abc6df;font:500 10px/1.7 monospace;letter-spacing:.04em;z-index:4;pointer-events:none}
/* #hint .orbit{height:28px;width:28px;border:1px solid rgba(142,210,244,.4);border-radius:50%;display:grid;place-items:center;font-size:17px} */
#hint .orbit{height:28px;width:28px;border:1px solid rgba(142,210,244,.4);border-radius:50%;display: flex; justify-content: center; align-items: center; text-align: center; padding-bottom: 2px;}
#markerLayer{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}.hotspot{position:absolute;left:0;top:0;transform:translate(-50%,-50%);border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:8px;pointer-events:auto;white-space:nowrap;transition:opacity .22s;filter:drop-shadow(0 3px 8px rgba(0,0,0,.6))}.hotspot .pin{display:grid;place-items:center;position:relative;flex-shrink:0;border-radius:50%;height:28px;width:28px;background:rgba(15,31,50,.94);border:1px solid var(--accent,#a3ecf0);box-shadow:0 0 0 4px rgba(7,18,34,.32),0 0 22px color-mix(in srgb,var(--accent,#a3ecf0) 29%,transparent);font-size:12px;font-weight:800;color:var(--accent,#a3ecf0)}.hotspot .pin:after{content:"";position:absolute;inset:-6px;border:1px solid color-mix(in srgb,var(--accent,#a3ecf0) 35%,transparent);border-radius:50%;animation:markerPulse 3s ease-out infinite}.hotspot.poi .pin{height:34px;width:34px;background:rgba(12,35,51,.95);border-width:2px}.hotspot.poi .pin:before{content:"↗";font-size:14px}.hotspot .label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:750;padding:8px 10px;background:rgba(9,20,38,.89);border:1px solid rgba(159,204,239,.2);border-radius:7px;backdrop-filter:blur(12px)}.hotspot:not(.poi) .label{opacity:0;transform:translateX(-5px);transition:.2s}.hotspot:not(.poi):hover .label,.hotspot:not(.poi):focus-visible .label{opacity:1;transform:none}.hotspot:hover .pin{background:#163e4c}@keyframes markerPulse{0%{transform:scale(.8);opacity:.65}75%,100%{transform:scale(1.6);opacity:0}}
#detail{position:absolute;right:clamp(20px,3.7vw,62px);top:50%;width:min(354px,calc(100vw - 40px));transform:translate(18px,-50%);opacity:0;pointer-events:none;transition:opacity .3s,transform .4s;z-index:11;background:linear-gradient(155deg,rgba(19,37,60,.96),rgba(8,17,33,.96));border:1px solid rgba(153,210,248,.27);border-radius:20px;padding:27px 27px 25px;box-shadow:0 30px 85px rgba(0,0,0,.38);backdrop-filter:blur(26px)}#detail.open{transform:translate(0,-50%);opacity:1;pointer-events:auto}
#detail:before{content:"";position:absolute;top:0;left:28px;width:64px;height:2px;background:linear-gradient(90deg,var(--detail-accent,#7de7e8),transparent)}#detail .close{position:absolute;top:16px;right:16px;width:33px;height:33px;background:rgba(135,178,229,.09);border:1px solid var(--line);border-radius:9px;color:#d8ecff;font-size:18px}#detail .close:hover{background:rgba(135,178,229,.2)}.card-tag{display:flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.22em;color:var(--detail-accent,#81e6e3);font-size:10px;font-weight:790}.card-id{font-family:monospace;font-size:10px;letter-spacing:.07em;color:#738ba6;margin:21px 0 3px}.card-head{font-size:30px;letter-spacing:-.05em;line-height:1.1;margin:9px 0 15px;font-weight:790}.card-description{font-size:13px;line-height:1.9;color:#bed0e2;margin:0}.card-divider{height:1px;background:var(--line);margin:20px 0 17px}.card-points{display:flex;gap:7px;flex-wrap:wrap}.card-points span{background:rgba(136,171,211,.09);border:1px solid rgba(156,196,243,.16);padding:7px 9px;border-radius:6px;font-size:10px;font-weight:700;color:#c3d6ea}#visitPoi{background:transparent;color:#aeece9;display:flex;align-items:center;gap:8px;border:0;padding:20px 0 0;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
#loader{position:fixed;z-index:30;inset:0;display:grid;place-items:center;background:#08101e;transition:opacity .75s,visibility .75s}#loader.off{opacity:0;visibility:hidden;pointer-events:none}.load-mark{text-align:center}.load-emblem{width:62px;height:62px;margin:auto auto 26px;border:1px solid rgba(117,225,244,.27);border-radius:14px;display:grid;place-items:center;color:#8fe7ed;font:bold 20px monospace;background:#111f31;box-shadow:0 0 70px rgba(95,206,236,.1)}.load-title{font:800 12px monospace;letter-spacing:.38em;color:#d1e5f4}.load-sub{margin-top:12px;font:10px monospace;letter-spacing:.12em;color:#6787a3}.load-line{width:190px;height:2px;background:#1a2a3b;margin:24px auto;overflow:hidden}.load-line:before{content:"";display:block;width:55%;height:100%;background:#7ce3df;animation:loading 1.45s infinite alternate}@keyframes loading{from{transform:translateX(-110%)}to{transform:translateX(200%)}}
#error{display:none;position:fixed;inset:0;z-index:25;place-items:center;padding:24px;background:radial-gradient(circle at center,#1b3351,#0a1220)}#error.show{display:grid}.fallback-panel{max-width:640px;padding:40px;border:1px solid rgba(143,200,244,.2);border-radius:24px;background:rgba(20,36,56,.68);box-shadow:0 35px 100px rgba(0,0,0,.25)}.fallback-panel .fp-eyebrow{font:700 11px monospace;letter-spacing:.27em;color:#94e3de}.fallback-panel h2{font-size:clamp(30px,6vw,60px);letter-spacing:-.06em;line-height:1.1}.fallback-panel p{font-size:15px;line-height:1.75;color:#b6cbe0}.fallback-links{display:flex;gap:19px;margin-top:34px;flex-wrap:wrap;color:#aee9ed;font-size:13px}
#noscript{display:none;position:fixed;inset:0;z-index:60;padding:28px;place-items:center;background:radial-gradient(ellipse at 72% 28%,#1d3b58,#101b32 51%,#080f1d)}#noscript .voxel-art{display:flex;align-items:flex-end;gap:5px;height:80px;margin:30px 0}#noscript .voxel-art i{display:block;width:25px;background:linear-gradient(180deg,#8ee6e9,#5870b3);box-shadow:inset -5px -4px rgba(10,22,51,.2)}#noscript .voxel-art i:nth-child(1){height:35px}#noscript .voxel-art i:nth-child(2){height:70px}#noscript .voxel-art i:nth-child(3){height:50px}#noscript .voxel-art i:nth-child(4){height:80px}#noscript .voxel-art i:nth-child(5){height:30px}#noscript .fallback-panel{max-width:700px}
@media (max-width:1200px){.intro{max-width:290px}.intro h1{font-size:48px}.intro p{font-size:12px}#poiBar{bottom:87px}.poi-btn{padding:0 9px}.hotspot .label{font-size:9px}}
@media (max-width:850px){.header{padding:17px 20px}.brand-caption,.brand-divider{display:none}.logo-frame{width:144px;height:49px}.status{margin-top:8px}.intro{top:90px;left:20px;max-width:290px}.intro h1{font-size:39px;margin:9px 0 10px}.intro p{font-size:11px;line-height:1.6;max-width:240px}.intro .micro{display:none}#hint{display:none}.hotspot .label{display:none}.hotspot .pin{width:27px;height:27px}#detail{right:18px}#poiBar{bottom:75px}.footer{left:20px;right:20px;bottom:15px}}
@media (max-width:600px){.header{padding:15px 16px}.header-tools{gap:5px}.fx-toggle{font-size:8px;padding:9px 7px}.logo-frame{width:128px;height:42px}.logo-placeholder{font-size:10px;gap:7px}.brand-glyph{width:22px;height:22px}.status{padding:9px 10px;font-size:9px;letter-spacing:.04em}.status .desktop{display:none}.intro{left:18px;top:79px;max-width:275px}.intro h1{font-size:clamp(29px,7.8vw,41px)}.intro p{font-size:11px;max-width:245px;line-height:1.5}.eyebrow{font-size:9px}.footer{bottom:10px;left:16px;right:16px;justify-content:center}.footer small{display:none}.foot-links{justify-content:center;gap:24px}.foot-links a{font-size:10px}#poiBar{left:12px;right:12px;transform:none;bottom:57px;border-radius:14px;justify-content:space-between;gap:0;padding:5px}.poi-btn{flex:1;min-width:0;flex-direction:column;justify-content:center;gap:3px;padding:6px 2px;font-size:8px;min-height:48px}.poi-btn svg{width:15px;height:15px}.poi-sep{height:28px;flex-shrink:0;margin:0 2px}#backButton{bottom:122px;padding:8px 13px;font-size:11px}#detail{left:12px;right:12px;bottom:122px;top:auto;transform:translateY(15px);width:auto;border-radius:15px;padding:18px 20px 20px}#detail.open{transform:translateY(0)}.card-head{font-size:25px}.card-description{font-size:12px;line-height:1.65}.card-id{margin:10px 0 0}.card-divider{margin:13px 0}.card-points span{font-size:9px;padding:5px 7px}#visitPoi{padding-top:13px}.hotspot.poi .pin{width:31px;height:31px}}
@media (max-width:390px){.intro h1{font-size:29px}.intro p{max-width:210px}.poi-btn{font-size:7px}.status{font-size:8px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

/* =========================================================
   PUNKT BRAND SYSTEM · precise / clean / pink
   All visuals are self-contained; the logo is a data URI.
   ========================================================= */
:root{color-scheme:light;--bg:#f7f8fa;--ink:#1b1d25;--muted:#6f737e;--line:rgba(23,25,35,.12);--cyan:#e50046;--violet:#ab315f;--mint:#5a7e81;--orange:#c78762;--glass:rgba(255,255,255,.92)}
html{background:#f7f8fa}
body{background:radial-gradient(ellipse 66% 72% at 55% 49%,#fff 0%,#f6f7fa 63%,#eef0f4 100%);color:#1b1d25}
body:before{inset:0;z-index:2;opacity:.47;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='114' height='100' viewBox='0 0 114 100'%3E%3Cg fill='none' stroke='%239ba2ae' stroke-width='.65' opacity='.35'%3E%3Cpath d='M28 1 56 17v33L28 66 0 50V17zM85 1l28 16v33L85 66 57 50V17zM56 51l28 16v32L56 115 28 99V67z'/%3E%3C/g%3E%3C/svg%3E");background-size:116px 102px;mask-image:linear-gradient(90deg,#000,transparent 27%,transparent 74%,#000)}
body:after{z-index:2;background:linear-gradient(90deg,rgba(250,250,252,.37),transparent 23%,transparent 77%,rgba(250,250,252,.3));pointer-events:none}
button:focus-visible,a:focus-visible{outline-color:#e50046}a:hover{color:#e50046}
.header{padding:clamp(15px,2.2vw,30px) clamp(20px,3.6vw,58px);align-items:center;gap:12px}
.brand-area{gap:17px}
.logo-frame{width:246px;height:83px;padding:0 5px;border:none;background:transparent;border-radius:2px;flex-shrink:0}
.logo-frame:before,.logo-frame:after{display:none}
.logo-frame img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.brand-divider{background:rgba(21,24,32,.18);height:32px}
.brand-caption{font-size:9px;line-height:1.8;letter-spacing:.15em;color:#747780;font-weight:750}
.header-tools{gap:9px}
.fx-toggle,.status{margin-top:0;border:1px solid rgba(27,30,37,.1);background:rgba(255,255,255,.82);box-shadow:0 6px 30px rgba(13,16,24,.035);backdrop-filter:blur(20px)}
.fx-toggle{padding:11px 13px;color:#555d67;font-family:ui-sans-serif,system-ui;font-size:10px;letter-spacing:.05em}
.fx-toggle b{color:#e50046}
.fx-toggle:hover,.fx-toggle[aria-pressed="true"]{color:#a10c40;background:#fff1f5;border-color:rgba(229,0,70,.24)}
.status{padding:11px 15px;color:#525760;font:720 10px/1.2 ui-sans-serif,system-ui;letter-spacing:.08em}
.status .dot{background:#e50046;box-shadow:0 0 0 4px rgba(229,0,70,.1);animation:blink 2.8s infinite}
.intro{left:clamp(22px,4.3vw,72px);top:clamp(160px,25vh,242px);max-width:min(410px,30vw);pointer-events:none;filter:drop-shadow(0 1px 0 rgba(255,255,255,.6))}
.eyebrow{font-size:10px;letter-spacing:.18em;color:#e50046;font-weight:800}
.eyebrow:before{width:24px;height:2px;background:#e50046}
.intro h1{font-size:clamp(44px,5vw,76px);font-weight:800;letter-spacing:-.075em;line-height:1.065;margin:20px 0 22px;color:#15171e}
.intro h1 span{color:#e50046}
.intro p{max-width:310px;font-size:clamp(12px,1.05vw,15px);line-height:1.8;color:#646974;font-weight:480}
.intro .micro{font-size:9px;letter-spacing:.12em;color:#a2a5ad;margin-top:25px;font-family:ui-sans-serif,system-ui}
.intro .micro:before{content:'◆';font-size:8px;color:#e50046;margin-right:10px}
.footer{left:clamp(22px,4.3vw,72px);right:clamp(22px,4.3vw,72px);bottom:clamp(18px,2.6vw,31px)}
.footer small{color:#9b9da5;font-size:9px;font-family:ui-sans-serif,system-ui;letter-spacing:.13em;font-weight:650}
.foot-links{gap:22px}.foot-links a{font-size:11px;color:#6c7079;font-weight:680}.foot-links a:hover{color:#e50046}
#poiBar{bottom:clamp(67px,8.2vh,98px);background:rgba(255,255,255,.93);border:1px solid rgba(23,24,34,.10);border-radius:15px;box-shadow:0 15px 55px rgba(33,37,47,.11),0 4px 15px rgba(26,29,39,.04);padding:6px;backdrop-filter:blur(25px)}
.poi-btn{color:#686c76;border-radius:10px;min-height:42px;padding:0 13px;font-size:11px;font-weight:720}
.poi-btn:first-child{color:#af2a52}
.poi-btn:hover,.poi-btn.active,.poi-btn:first-child.active{color:#a40039;background:#fff0f5}
.poi-btn.active{box-shadow:inset 0 0 0 1px rgba(229,0,70,.11)}
.poi-btn svg{width:16px;height:16px}.poi-sep{background:rgba(25,29,36,.12)}
#backButton{bottom:clamp(132px,14.6vh,164px);color:#e50046;background:rgba(255,255,255,.94);border:1px solid rgba(229,0,70,.2);box-shadow:0 5px 26px rgba(27,28,41,.08);border-radius:11px}
#backButton:hover{background:#fff0f5}
#hint{left:clamp(22px,4.3vw,72px);bottom:clamp(88px,10vh,122px);color:#7d818b;font:600 10px/1.7 ui-sans-serif,system-ui;letter-spacing:.02em}
#hint .orbit{border-color:rgba(229,0,70,.22);color:#e50046;background:rgba(255,255,255,.84);font-size:19px}
.hotspot{filter:drop-shadow(0 2px 6px rgba(36,27,39,.15))}
.hotspot .pin{color:var(--accent,#e50046);background:rgba(255,255,255,.97);border:1.5px solid currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 4px 17px rgba(23,25,31,.18)}
.hotspot .pin:after{border-color:rgba(229,0,70,.35)}
.hotspot.poi .pin{background:#e50046;color:#fff;border:2px solid #fff;box-shadow:0 0 0 2px #e50046,0 6px 20px rgba(146,0,48,.18)}
.hotspot .label{background:rgba(255,255,255,.97);color:#383840;border:1px solid rgba(24,28,40,.12);box-shadow:0 3px 16px rgba(20,20,31,.06);font-size:10px;letter-spacing:.06em;text-transform:none;font-weight:760;border-radius:7px}
.hotspot:hover .pin{background:#fff0f6}.hotspot.poi:hover .pin{background:#b7003b}
#detail{top:50%;right:clamp(22px,4.3vw,72px);width:min(340px,calc(100vw - 40px));padding:24px 26px 24px;background:rgba(255,255,255,.965);border:1px solid rgba(24,27,36,.11);border-radius:14px;box-shadow:0 18px 65px rgba(25,28,36,.13);backdrop-filter:blur(24px)}
#detail:before{left:26px;width:41px;height:3px;background:#e50046}
#detail .close{color:#61656d;border:1px solid rgba(24,26,33,.11);background:#f5f6f8;border-radius:8px;font-size:19px}
#detail .close:hover{background:#fff0f6;color:#a7003c}
.card-tag{color:#e50046;letter-spacing:.14em;font-size:9px}
.card-id{color:#aaaeb6;font-size:9px;margin:17px 0 3px}
.card-head{font-size:27px;letter-spacing:-.05em;line-height:1.14;margin:7px 0 13px;color:#20222a}
.card-description{color:#666a75;font-size:12px;line-height:1.8}
.card-divider{background:rgba(21,23,31,.09);margin:16px 0 15px}
.card-points span{background:#f7f7f9;border:1px solid #e7e8ed;color:#585d68;border-radius:6px;font-size:9px;padding:7px 9px}
#visitPoi{color:#e50046;font-size:10px;padding:18px 0 0;letter-spacing:.07em}
#visitPoi:hover{color:#aa0037}
#loader{background:#f9fafc}
.load-emblem{width:72px;height:72px;color:#fff;background:#e50046;border-radius:50%;font:bold 42px/1 Arial,sans-serif;box-shadow:0 0 0 11px rgba(229,0,70,.07);margin-bottom:34px}
.load-emblem span{color:#1c2029}.load-title{color:#232630;letter-spacing:.22em;font:800 13px ui-sans-serif,system-ui}
.load-sub{color:#989ca6;font:650 10px ui-sans-serif,system-ui;letter-spacing:.14em;margin-top:11px}
.load-line{background:#eceff3;height:2px}.load-line:before{background:#e50046}
#error{background:radial-gradient(circle at 70% 30%,#fff,#f0f2f6)}
.fallback-panel{background:rgba(255,255,255,.97);border:1px solid rgba(24,27,35,.1);border-radius:16px;color:#252730;box-shadow:0 24px 85px rgba(28,32,42,.12)}
.fallback-panel .fp-eyebrow{color:#e50046;font:750 10px ui-sans-serif,system-ui;letter-spacing:.2em}
.fallback-panel p{color:#656a74}
.fallback-links{color:#e50046;font-weight:750;font-size:12px}
#errorDetails{color:#838792!important}
#noscript{background:radial-gradient(ellipse at 70% 35%,#fff,#f1f2f6);color:#252730}
#noscript .voxel-art i{background:linear-gradient(180deg,#f02065,#9a1748);box-shadow:inset -6px -4px rgba(26,25,29,.18)}
@media(max-width:1200px){.intro{max-width:280px}.intro h1{font-size:53px}.poi-btn{padding:0 10px}}
@media(max-width:850px){.header{padding:14px 19px}.logo-frame{width:190px;height:65px}.intro{top:118px;left:22px;max-width:260px}.intro h1{font-size:42px;margin:9px 0 11px}.intro p{font-size:12px;line-height:1.65}.intro .micro{display:none}#hint{display:none}.footer{left:20px;right:20px;bottom:15px}}
@media(max-width:600px){
 .header{padding:11px 14px}.brand-area{gap:0}.logo-frame{width:158px;height:57px;padding:0}.header-tools{gap:6px}
 .fx-toggle{padding:9px 9px;font-size:9px}.status{padding:9px 9px;font-size:9px}.status .desktop{display:none}
 .intro{left:18px;top:83px;max-width:240px}.intro h1{font-size:clamp(34px,9vw,43px);margin:8px 0 11px}
 .intro p{font-size:11px;max-width:208px;line-height:1.58}.eyebrow{font-size:8px;letter-spacing:.11em}
 .footer{bottom:9px;left:12px;right:12px}.footer small{display:none}.foot-links{gap:23px}.foot-links a{font-size:10px}
 #poiBar{left:10px;right:10px;bottom:51px;transform:none;gap:0;border-radius:13px;padding:5px}
 .poi-btn{flex:1;min-width:0;flex-direction:column;justify-content:center;gap:3px;padding:6px 2px;font-size:8px;min-height:50px}
 .poi-btn svg{width:16px;height:16px}.poi-sep{height:24px;flex-shrink:0}
 #backButton{bottom:114px;padding:10px 13px;font-size:10px}
 #detail{right:12px;left:12px;top:auto;bottom:116px;width:auto;border-radius:12px;padding:20px 20px 19px}
 .card-head{font-size:25px}.card-description{font-size:12px;line-height:1.65}
 .hotspot.poi .pin{width:29px;height:29px}
}
@media(max-width:380px){.logo-frame{width:139px;height:53px}.fx-toggle{font-size:8px;padding:8px 7px}.status{font-size:8px;padding:9px 6px}.intro h1{font-size:33px}.poi-btn{font-size:7px}}



/* Short POI captions keep the extra AI viewpoint genuinely usable at 320px. */
#poiBar .navshort{display:none}
@media(max-width:600px){#poiBar .navfull{display:none}#poiBar .navshort{display:inline}}

/* Theme toggle: light stays as the current default, dark mode overrides below */
#themeTint{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .45s ease,background .45s ease;mix-blend-mode:multiply}
body[data-theme="dark"]{background:radial-gradient(ellipse at 52% 42%,#182030 0%,#111826 32%,#0b121e 60%,#070b13 100%)}
body[data-theme="dark"]:before{opacity:.28;background-image:linear-gradient(rgba(124,144,172,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(124,144,172,.045) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to bottom,transparent 4%,#000 28%,#000 90%,transparent)}
body[data-theme="dark"]:after{background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.03) 0%,transparent 34%),linear-gradient(90deg,rgba(8,12,20,.46),transparent 20%,transparent 80%,rgba(8,12,20,.48));opacity:1}
body[data-theme="dark"] #themeTint{opacity:1;background:radial-gradient(ellipse at 50% 48%,rgba(229,0,70,.07) 0%,rgba(25,19,29,.02) 26%,rgba(8,11,17,.08) 42%,rgba(6,9,14,.28) 66%,rgba(4,6,11,.62) 100%)}
body[data-theme="dark"] .logo-frame{padding:6px 8px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(255,255,255,.04),0 12px 36px rgba(0,0,0,.28),0 0 34px rgba(229,0,70,.18)}
body[data-theme="dark"] .logo-frame img{mix-blend-mode:normal;filter:drop-shadow(0 1px 0 rgba(255,255,255,.34))}
body[data-theme="dark"] .brand-divider{background:rgba(255,255,255,.14)}
body[data-theme="dark"] .brand-caption{color:#aeb4bf}
body[data-theme="dark"] .fx-toggle,body[data-theme="dark"] .status{border-color:rgba(145,169,201,.16);background:rgba(14,18,27,.72);box-shadow:0 8px 34px rgba(0,0,0,.22);color:#c8d0da}
body[data-theme="dark"] .fx-toggle b{color:#ff7aa4}
body[data-theme="dark"] .fx-toggle:hover,body[data-theme="dark"] .fx-toggle[aria-pressed="true"]{color:#fff;background:rgba(53,22,34,.72);border-color:rgba(229,0,70,.36)}
body[data-theme="dark"] .status .dot{background:#ff4f85;box-shadow:0 0 0 4px rgba(229,0,70,.14),0 0 16px rgba(229,0,70,.28)}
body[data-theme="dark"] .eyebrow,body[data-theme="dark"] .eyebrow:before{color:#ff5f92;background:#ff5f92}
body[data-theme="dark"] .intro{filter:none}
body[data-theme="dark"] .intro h1{color:#f3f5fb}
body[data-theme="dark"] .intro p{color:#adb6c3}
body[data-theme="dark"] .intro .micro{color:#7e8898}
body[data-theme="dark"] .footer small{color:#8d96a4}
body[data-theme="dark"] .foot-links a{color:#c8d0db}
body[data-theme="dark"] .foot-links a:hover{color:#ff6a99}
body[data-theme="dark"] #poiBar{background:rgba(11,15,24,.82);border-color:rgba(148,173,200,.15);box-shadow:0 15px 55px rgba(0,0,0,.28),0 4px 15px rgba(0,0,0,.18)}
body[data-theme="dark"] .poi-btn{color:#b9c2cf}
body[data-theme="dark"] .poi-btn:first-child{color:#ff7ca3}
body[data-theme="dark"] .poi-btn:hover,body[data-theme="dark"] .poi-btn.active{color:#fff;background:rgba(229,0,70,.14)}
body[data-theme="dark"] .poi-btn.active{box-shadow:inset 0 0 0 1px rgba(255,120,163,.19)}
body[data-theme="dark"] .poi-sep{background:rgba(255,255,255,.09)}
body[data-theme="dark"] #backButton{background:rgba(12,18,27,.85);color:#eef3fb;border-color:rgba(255,124,163,.35)}
body[data-theme="dark"] #backButton:hover{background:rgba(49,18,31,.94)}
body[data-theme="dark"] #hint{color:#c8d0db}
body[data-theme="dark"] #hint .orbit{border-color:rgba(255,121,164,.28)}
body[data-theme="dark"] .hotspot .pin{background:rgba(15,19,29,.94);box-shadow:0 0 0 4px rgba(5,8,14,.42),0 0 26px color-mix(in srgb,var(--accent,#ff76a4) 22%,transparent)}
body[data-theme="dark"] .hotspot .label{background:rgba(10,13,21,.88);border-color:rgba(144,163,190,.16);color:#e7ecf5}
body[data-theme="dark"] #detail{background:linear-gradient(155deg,rgba(16,21,31,.96),rgba(8,11,18,.97));border-color:rgba(153,174,202,.16);box-shadow:0 30px 85px rgba(0,0,0,.48)}
body[data-theme="dark"] #detail .close{background:rgba(255,255,255,.05);color:#f0f4fa}
body[data-theme="dark"] .card-tag{color:#ff7fa9}body[data-theme="dark"] .card-head{color:#f7f9fc}
body[data-theme="dark"] .card-description{color:#bac2cf}
body[data-theme="dark"] .card-divider{background:rgba(255,255,255,.08)}
body[data-theme="dark"] .card-points span{background:rgba(255,255,255,.06);color:#e9eef7;border-color:rgba(255,255,255,.05)}
body[data-theme="dark"] #visitPoi{color:#ff82ab}
body[data-theme="dark"] #visitPoi:hover{color:#fff}
body[data-theme="dark"] .loader-card{background:rgba(11,16,24,.86);border-color:rgba(255,255,255,.12);color:#f0f3f8}
body[data-theme="dark"] #error{background:rgba(15,18,25,.9);color:#f3f5f9;border-color:rgba(255,255,255,.12)}
@media (max-width:600px){body[data-theme="dark"] .logo-frame{padding:4px 6px;border-radius:12px}}


/* Day-to-night transitions: preserve the original light design and geometry. */
body:before,body:after{transition:opacity 1.15s ease,background-color 1.15s ease,filter 1.15s ease}
#themeTint{mix-blend-mode:normal;transition:opacity 1.15s cubic-bezier(.22,.65,.24,1);will-change:opacity}
body[data-theme="dark"] #themeTint{background:radial-gradient(ellipse at 51% 46%,rgba(232,0,75,.075) 0%,transparent 32%,rgba(10,11,18,.025) 65%,rgba(7,9,16,.10) 100%)}
body[data-theme="dark"] .logo-frame{padding:0;border-color:rgba(255,255,255,.16);border-radius:13px;background:rgba(255,255,255,.98);box-shadow:0 12px 36px rgba(0,0,0,.3),0 0 27px rgba(229,0,70,.17)}
.logo-frame,.brand-caption,.brand-divider,.fx-toggle,.fx-toggle b,.status,.intro h1,.intro p,.intro .micro,.eyebrow,.footer small,.foot-links a,#poiBar,.poi-btn,#backButton,#hint,.hotspot .pin,.hotspot .label,#detail,#detail .close,.card-head,.card-description,.card-tag,.card-points span,#visitPoi{
 transition-property:background-color,color,border-color,box-shadow,opacity,filter,transform;
 transition-duration:.8s;
 transition-timing-function:cubic-bezier(.22,.65,.24,1)
}
/* Do not override existing camera/POI card show-hide transitions. */
.intro{transition:opacity .5s,transform .5s}.hotspot{transition:opacity .22s}
#detail{transition:opacity .3s,transform .4s,background-color .8s,color .8s,border-color .8s}
#backButton{transition:opacity .3s,transform .3s,background-color .8s,border-color .8s,color .8s}
body[data-theme="dark"] .card-head{color:#f7f9fc}
@media(prefers-reduced-motion:reduce){
 #themeTint,body:before,body:after,.logo-frame,.brand-caption,.brand-divider,.fx-toggle,.fx-toggle b,.status,.intro h1,.intro p,.intro .micro,.eyebrow,.footer small,.foot-links a,#poiBar,.poi-btn,#backButton,#hint,.hotspot .pin,.hotspot .label,#detail,#detail .close,.card-head,.card-description,.card-tag,.card-points span,#visitPoi{transition-duration:0s!important}
}

/* Keep both switches accessible on narrow phones: the status capsule is optional. */
@media(max-width:600px){.header-tools .status{display:none}}
@media(max-width:380px){.header-tools{gap:3px}.header-tools .fx-toggle{font-size:7px;letter-spacing:0;padding:7px 4px}}

.status {display:none;}