:root{--navy: #120e78;--blue: #2f469e;--cyan: #2c7fba;--signal: #f2c200;--ink: #141a33;--muted: #56607a;--paper: #f7f8fb;--glass: rgba(250, 251, 253, .9);--line: rgba(18, 14, 120, .14);--sky: #cfdbe6;--font-ui: "Aptos", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-display: "Aptos Display", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--r: 10px;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0;background:var(--sky);color:var(--ink);font:14px/1.45 var(--font-ui);overflow:hidden;-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}button,select,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--signal);outline-offset:2px}.brand{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));max-width:min(400px,calc(100% - 32px));background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:10px;box-shadow:0 8px 28px #120e781f}.brand img{width:128px;height:auto}.brand-text{display:grid;gap:2px;min-width:0}.brand h1{margin:0;font:650 1.55rem/1.1 var(--font-display);color:var(--navy);letter-spacing:-.01em;text-wrap:balance}.place{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}.sub{margin:4px 0 0;color:var(--muted);max-width:38ch}.stats{margin:0;display:grid;grid-template-columns:repeat(4,auto);gap:4px 14px;border-top:1px solid var(--line);padding-top:10px}.stats div{display:grid;min-width:0}.stats dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.stats dd{margin:0;font-weight:650;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}.controls{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:8px;justify-items:end}.seg{display:flex;background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:999px;padding:3px}.seg button{border:0;background:transparent;padding:7px 14px;border-radius:999px;cursor:pointer;color:var(--navy);font-weight:550}.seg button[aria-pressed=true]{background:var(--navy);color:var(--paper)}.seg button:hover:not([aria-pressed=true]){background:#120e7814}.row{display:flex;gap:8px;align-items:center}.toggle,#lang{background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--navy);font-weight:550;cursor:pointer}.toggle{display:inline-flex;gap:6px;align-items:center}.toggle input{accent-color:var(--navy);margin:0}#markers,#labels{position:absolute;inset:0;pointer-events:none;z-index:1}.brand,.controls,.action,.panel{z-index:2}.loading,.fallback{z-index:3}.marker{position:absolute;left:0;top:0;pointer-events:auto;display:inline-flex;align-items:center;gap:6px;transform:translate(-50%,-50%);border:0;padding:4px 10px 4px 4px;border-radius:999px;background:var(--navy);color:var(--paper);font-size:.8rem;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #120e7859;white-space:nowrap;transition:background-color .15s,opacity .2s;will-change:transform}.marker .n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--signal);color:var(--navy);font-size:.75rem;font-variant-numeric:tabular-nums}.marker:hover,.marker[aria-expanded=true]{background:var(--blue)}.marker.dim{opacity:.55}.surface-label{position:absolute;left:0;top:0;transform:translate(-50%,-50%);background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:.75rem;text-align:center;white-space:nowrap}.surface-label b{display:block;color:var(--navy);font-variant-numeric:tabular-nums}.action{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:grid;justify-items:center;gap:6px;width:max-content;max-width:calc(100% - 32px)}.primary{border:0;background:var(--navy);color:var(--paper);padding:13px 28px;border-radius:999px;font-weight:650;font-size:1rem;letter-spacing:.01em;cursor:pointer;box-shadow:0 10px 30px #120e7859,inset 0 -3px 0 var(--signal)}.primary:hover{background:var(--blue)}.primary:disabled{opacity:.6;cursor:progress}.hint{margin:0;font-size:.75rem;color:var(--ink);background:var(--glass);padding:2px 10px;border-radius:999px;text-align:center}.panel{position:absolute;right:max(16px,env(safe-area-inset-right,0px));top:var(--panel-top, calc(164px + env(safe-area-inset-top, 0px)) );width:min(380px,calc(100% - 32px));max-height:calc(100% - var(--panel-top, 164px) - 96px - env(safe-area-inset-bottom,0px));overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:0 16px 40px #120e782e;display:grid;gap:10px}.panel-close{position:absolute;top:8px;right:8px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted)}.panel-close:hover{background:#120e7814}.panel-index{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}.panel h2{margin:0;font:650 1.45rem/1.2 var(--font-display);color:var(--navy);text-wrap:balance;padding-right:28px}.panel p{margin:0;color:var(--ink)}#p-text{font-size:1.15rem;line-height:1.5}.facts{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}.facts{font-size:1.05rem}.facts div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}.facts dt{color:var(--muted)}.facts dd{margin:0;font-weight:650;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}#p-photos{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}#p-photos img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:6px;max-width:100%}#p-photos figcaption{grid-column:1 / -1;font-size:.8rem;color:var(--muted)}#p-photos.single{grid-template-columns:1fr}#p-photos.single img{aspect-ratio:auto;max-height:220px}.contact{justify-self:start;color:var(--navy);font-weight:650;text-decoration:none;border-bottom:2px solid var(--signal)}.contact:hover{color:var(--blue)}.loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--sky);color:var(--navy);font-weight:600;transition:opacity .4s}.loading.done{opacity:0;pointer-events:none}.fallback{position:absolute;inset:0;overflow:auto;background:var(--paper);padding-block:220px 40px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.fallback ol{max-width:60ch;display:grid;gap:12px;padding-left:1.2em}.fallback li strong{color:var(--navy);display:block}.tools{display:flex;gap:6px}.tool{display:inline-flex;align-items:center;gap:6px;background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--navy);font-weight:550;cursor:pointer}.tool .ico{font-size:.85rem;line-height:1;color:var(--blue)}.tool:hover{background:var(--paper)}.tool[aria-pressed=true]{background:var(--navy);color:var(--paper)}.tool[aria-pressed=true] .ico{color:var(--signal)}.chip{position:absolute;left:50%;transform:translate(-50%);bottom:calc(96px + env(safe-area-inset-bottom,0px));margin:0;padding:6px 14px;border-radius:999px;background:var(--navy);color:var(--paper);font-weight:550;font-size:.85rem;z-index:2;max-width:calc(100% - 32px);text-align:center;pointer-events:none}.toast{pointer-events:auto;bottom:auto;top:calc(16px + env(safe-area-inset-top,0px));user-select:all;word-break:break-all}.measure-label{position:absolute;left:0;top:0;z-index:1;pointer-events:none;background:var(--signal);color:var(--navy);font-weight:700;font-variant-numeric:tabular-nums;padding:3px 9px;border-radius:6px;box-shadow:0 4px 14px #120e784d;white-space:nowrap}.tour{position:absolute;left:50%;transform:translate(-50%);bottom:calc(18px + env(safe-area-inset-bottom,0px));width:min(560px,calc(100% - 32px));z-index:2;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 16px 40px #120e7838;overflow:hidden}.tour-progress{height:4px;background:#120e781a}.tour-progress span{display:block;height:100%;width:0;background:var(--signal)}.tour-row{display:flex;align-items:center;gap:6px;padding:8px 10px}.tour-label{flex:1;margin:0;min-width:0;color:var(--navy);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-label b{color:var(--blue);font-variant-numeric:tabular-nums;margin-right:8px}.tbtn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--navy);font-size:1.1rem;line-height:1;cursor:pointer}.tbtn:hover{background:#120e7814}#tour-play{background:var(--navy);color:var(--paper);font-size:.75rem}.panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.linkbtn{border:0;background:none;padding:0;color:var(--blue);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.credit{font-size:.8rem;color:var(--muted)}body.night{--sky: #0d1730}body.night .hint{background:#fafbfdd9}@media(max-width:720px){.brand{padding:10px 12px;gap:6px;max-width:calc(100% - 32px)}.brand img{width:84px}.brand h1{font-size:1.15rem}.sub,.stats{display:none}.controls{top:auto;bottom:calc(84px + env(safe-area-inset-bottom,0px));gap:6px;right:50%;transform:translate(50%);justify-items:center}.marker{font-size:0;padding:3px;gap:0}.marker .n{font-size:.75rem}#p-text{font-size:1.07rem}.panel{top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));width:auto;max-height:55%;z-index:2}.hint{display:none}.tools{flex-wrap:wrap;justify-content:center}.tool{padding:7px 11px;font-size:.85rem}.tool span:not(.ico){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tool .ico{font-size:1rem}.chip{bottom:auto;top:calc(128px + env(safe-area-inset-top,0px))}.tour{bottom:calc(16px + env(safe-area-inset-bottom,0px))}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
