:root{--ink: #f4efe6;--ink-2: rgba(244, 239, 230, .72);--ink-3: rgba(244, 239, 230, .48);--accent: #e7a64a;--accent-2: #c9663a;--glass: rgba(16, 15, 18, .46);--glass-strong: rgba(14, 13, 16, .72);--line: rgba(255, 255, 255, .13);--serif: "Cormorant Garamond", "Times New Roman", serif;--sans: "Manrope", system-ui, -apple-system, sans-serif;--ease: cubic-bezier(.2, .7, .1, 1);--pad: clamp(16px, 2.6vw, 32px)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#0b0b0d;color:var(--ink);font-family:var(--sans);overflow:hidden;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}[hidden]{display:none!important}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.display{font-family:var(--serif);font-weight:300;letter-spacing:.04em;text-transform:uppercase;line-height:.95;margin:0}.eyebrow{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-2);margin:0 0 14px}.glass{background:var(--glass);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--line)}.link{text-decoration:underline;text-underline-offset:3px;color:var(--ink-2);padding:0}.link:hover{color:var(--ink)}.loader{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 60%,#1a1712,#0b0b0d 70%);z-index:50;transition:opacity 1.4s var(--ease)}.loader.done{opacity:0;pointer-events:none}.loader-inner{text-align:center;padding:var(--pad)}.loader .display{font-size:clamp(40px,8vw,104px);color:#f4efe6eb}.progress{width:min(320px,70vw);height:1px;background:#ffffff24;margin:40px auto 16px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .4s var(--ease)}.loader-status{font-size:12px;letter-spacing:.12em;color:var(--ink-3);margin:0}.intro{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:40;padding:var(--pad);background:radial-gradient(ellipse at 50% 55%,#0000,#00000061);transition:opacity 1.2s var(--ease)}.intro.leaving{opacity:0;pointer-events:none}.intro-title{font-size:clamp(56px,12vw,168px);text-shadow:0 8px 60px rgba(0,0,0,.45)}.btn-enter{margin-top:48px;padding:16px 38px;border:1px solid rgba(255,255,255,.5);border-radius:999px;letter-spacing:.28em;text-transform:uppercase;font-size:12px;background:#ffffff0a;backdrop-filter:blur(10px);transition:background .4s var(--ease),border-color .4s,letter-spacing .6s var(--ease)}.btn-enter:hover,.btn-enter:focus-visible{background:#ffffff24;border-color:#fff;letter-spacing:.34em}.intro-note{margin-top:18px;font-size:12px;color:var(--ink-3)}.fade-up{opacity:0;transform:translateY(18px);animation:fadeUp 1.6s var(--ease) forwards;animation-delay:var(--d, 0s)}@keyframes fadeUp{to{opacity:1;transform:none}}.topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:calc(var(--pad) * .75) var(--pad);z-index:20;background:linear-gradient(180deg,#08080a9e,#08080a47 60%,#08080a00);animation:fadeIn 1.2s var(--ease)}@keyframes fadeIn{0%{opacity:0}}.wordmark{display:flex;flex-direction:column;align-items:flex-start;line-height:1;text-transform:uppercase;text-shadow:0 1px 14px rgba(0,0,0,.55)}.wm-a{font-size:10px;letter-spacing:.42em;color:var(--ink-2)}.wm-b{font-family:var(--serif);font-size:24px;letter-spacing:.12em;margin-top:3px}.nav{display:flex;gap:clamp(6px,1.6vw,26px);padding:6px clamp(12px,1.6vw,22px);border-radius:999px;background:#0e0d106b;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(255,255,255,.1)}.nav button{font-size:11px;letter-spacing:.24em;text-transform:uppercase;padding:8px 4px;color:#f4efe6db;text-shadow:0 1px 8px rgba(0,0,0,.5);position:relative;transition:color .3s}.nav button:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transition:transform .45s var(--ease)}.nav button:hover,.nav button.active{color:var(--ink)}.nav button.active:after{transform:scaleX(1)}.badge{display:inline-block;min-width:18px;padding:1px 5px;margin-left:4px;border-radius:9px;font-size:9px;letter-spacing:.05em;background:#e7a64a38;color:var(--accent)}.icon-btn{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#0e0d1073;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.icon-btn[aria-pressed=true]{border-color:#e7a64a99;color:var(--accent)}.i-sound{width:14px;height:12px;display:inline-flex;gap:2px;align-items:flex-end}.i-sound:before,.i-sound:after{content:"";width:3px;background:currentColor;height:4px;border-radius:1px}.icon-btn[aria-pressed=true] .i-sound:before{animation:eq .9s ease-in-out infinite alternate}.icon-btn[aria-pressed=true] .i-sound:after{animation:eq .7s ease-in-out infinite alternate-reverse}@keyframes eq{0%{height:3px}to{height:12px}}.bottombar{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:var(--pad);padding-bottom:max(var(--pad),env(safe-area-inset-bottom));z-index:20;pointer-events:none}.bottombar>*{pointer-events:auto}.timebar{display:flex;align-items:center;gap:18px;border-radius:999px;padding:10px 22px 10px 12px;width:min(560px,100%)}.tb-now{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:118px}.tb-icon{width:34px;height:34px;border-radius:50%;flex:0 0 34px;position:relative;background:radial-gradient(circle at 50% 50%,#ffe7a8 0 34%,rgba(255,200,110,.35) 35% 60%,transparent 61%);transition:background .6s}.tb-icon.moon{background:radial-gradient(circle at 42% 42%,#e9eefc 0 36%,transparent 37%),radial-gradient(circle at 60% 34%,transparent 0 30%,transparent 31%);box-shadow:inset -7px -3px #0000}.tb-icon.moon:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;left:15px;top:8px;background:#141622eb}.tb-text{display:flex;flex-direction:column;line-height:1.1}.tb-clock{font-family:var(--serif);font-size:22px;letter-spacing:.02em;color:var(--ink);font-variant-numeric:tabular-nums}.tb-phase{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3);margin-top:2px}.tb-track{position:relative;flex:1 1 auto;padding:10px 0 18px;min-width:0}.time-chips{position:absolute;left:8px;right:8px;bottom:0;height:14px}.time-chips button{position:absolute;left:var(--p);transform:translate(-50%);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);padding:2px 0;white-space:nowrap;transition:color .3s}.time-chips button:before{content:"";position:absolute;left:50%;top:-9px;width:1px;height:5px;background:#ffffff59}.time-chips button.active,.time-chips button:hover{color:var(--ink)}#time-slider{-webkit-appearance:none;appearance:none;display:block;width:100%;height:4px;border-radius:4px;outline:none;margin:0;cursor:pointer;background:linear-gradient(90deg,#141b33,#1b2440 18%,#e88a52 25%,#9fc4e8 38%,#d6e8f7,#9fc4e8 62%,#e8744a 75%,#1b2440 82%,#0f1426)}#time-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 5px #ffffff29,0 2px 10px #00000073;cursor:grab}#time-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 5px #ffffff29,0 2px 10px #00000073;cursor:grab}#time-slider:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.08)}.right-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.zone-name{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--ink-2);text-shadow:0 2px 20px rgba(0,0,0,.6)}.pill{padding:10px 18px;border-radius:999px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--line);transition:background .3s,border-color .3s}.pill:hover{background:#ffffff1a;border-color:#ffffff59}.pill.primary{background:var(--ink);color:#111;border-color:var(--ink)}.pill.primary:hover{background:#fff}.panel{position:fixed;top:84px;right:var(--pad);bottom:150px;width:min(420px,calc(100vw - 2 * var(--pad)));z-index:25;border-radius:22px;overflow:auto;padding:28px 28px 32px;background:var(--glass-strong);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border:1px solid var(--line);animation:panelIn .55s var(--ease);scrollbar-width:thin}@keyframes panelIn{0%{opacity:0;transform:translate(24px)}}.panel h2{font-family:var(--serif);font-weight:300;font-size:40px;letter-spacing:.03em;margin:0 0 6px}.panel .lede{color:var(--ink-2);font-size:14px;line-height:1.6;margin:0 0 22px}.panel .close{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);font-size:16px;line-height:1;color:var(--ink-2)}.panel h3{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-3);margin:26px 0 10px;font-weight:500}.item{display:grid;grid-template-columns:40px 1fr auto;gap:14px;align-items:center;width:100%;text-align:left;padding:14px 12px;border-radius:14px;transition:background .25s}.item:hover{background:#ffffff0f}.item.active{background:#e7a64a1f}.item .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:18px;border:1px solid var(--line);color:var(--accent)}.item .t{font-family:var(--serif);font-size:21px;line-height:1.1}.item .s{font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.4}.item .tag{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);padding:4px 8px;border-radius:999px;white-space:nowrap}.item .tag.live{color:var(--accent);border-color:#e7a64a73}.item.disabled .t,.item.disabled .ic{opacity:.55}.kbd{display:inline-block;padding:2px 7px;border:1px solid var(--line);border-radius:6px;font-size:11px;color:var(--ink-2);margin:0 2px}.help-grid{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;font-size:13px;color:var(--ink-2);align-items:center}.quality{display:flex;gap:8px;flex-wrap:wrap}.quality button{padding:8px 12px;border-radius:999px;border:1px solid var(--line);font-size:11px;letter-spacing:.08em;color:var(--ink-2)}.quality button.active{border-color:var(--accent);color:var(--accent)}.meter{height:2px;background:#ffffff1f;border-radius:2px;overflow:hidden;margin:8px 0 4px}.meter span{display:block;height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent))}.panel p.small{font-size:12px;color:var(--ink-3);line-height:1.6}.card{position:fixed;left:var(--pad);top:50%;transform:translateY(-50%);width:min(440px,calc(100vw - 2 * var(--pad)));max-height:calc(100vh - 260px);overflow:auto;z-index:24;padding:34px 32px 30px;border-radius:24px;background:var(--glass-strong);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border:1px solid var(--line);animation:cardIn .7s var(--ease);scrollbar-width:thin}@keyframes cardIn{0%{opacity:0;transform:translate(-16px,-50%)}}.card .local{font-family:var(--serif);font-size:18px;color:var(--accent);margin:0 0 4px}.card h2{font-family:var(--serif);font-weight:300;font-size:clamp(38px,4vw,52px);line-height:.98;margin:0 0 8px}.card .sub{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-3);margin:0 0 22px}.card .summary{font-size:15px;line-height:1.7;color:var(--ink);margin:0 0 18px}.card ul{margin:0 0 18px;padding:0;list-style:none}.card li{position:relative;padding:10px 0 10px 22px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.6;color:var(--ink-2)}.card li:before{content:"";position:absolute;left:2px;top:19px;width:8px;height:1px;background:var(--accent)}.card .meta{font-size:11px;color:var(--ink-3);line-height:1.7}.card .meta a{color:var(--ink-2)}.card .note{font-size:12px;color:var(--accent);border:1px solid rgba(231,166,74,.3);border-radius:12px;padding:10px 12px;margin:0 0 16px;line-height:1.5}.card .close{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);color:var(--ink-2)}.card .actions{display:flex;gap:10px;margin:6px 0 18px;flex-wrap:wrap}.label-layer{position:fixed;inset:0;pointer-events:none;z-index:10;overflow:hidden}.pin{position:absolute;left:0;top:0;pointer-events:auto;display:flex;align-items:center;gap:8px;transform-origin:0 0;white-space:nowrap;padding:0;transition:opacity .3s;will-change:transform}.pin.hidden{display:none}.pin-dot{width:9px;height:9px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 4px #ffffff2e,0 0 18px #ffdcaab3;margin-left:-4.5px}.pin-text{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);text-shadow:0 1px 10px rgba(0,0,0,.85),0 0 2px rgba(0,0,0,.9);padding:5px 0}.pin-landmark:hover .pin-dot{background:var(--accent)}.pin-landmark:hover .pin-text{color:var(--accent)}.pin-discovery .pin-text{font-size:10px;letter-spacing:.18em;color:#ffe2b0;opacity:0;transform:translate(-4px);transition:opacity .3s,transform .3s}.pin-discovery:hover .pin-text,.pin-discovery:focus-visible .pin-text{opacity:1;transform:none}.pin-spark{width:7px;height:7px;transform:rotate(45deg);background:#ffd38a;box-shadow:0 0 14px #ffc46a;margin-left:-3.5px}.pin-discovery.found .pin-spark{background:#9fd7ff;box-shadow:0 0 12px #8fd0ff}.pin-discovery.found .pin-text{color:#cfeaff}.tourbar{position:fixed;left:50%;bottom:150px;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:14px 16px 14px 22px;border-radius:999px;z-index:22;animation:fadeIn .6s}.tourbar .eyebrow{margin:0 0 2px;font-size:9px}.tour-name{font-family:var(--serif);font-size:20px;margin:0}.toast{position:fixed;top:92px;left:50%;transform:translate(-50%);z-index:30;padding:14px 22px;border-radius:999px;font-size:13px;letter-spacing:.04em;background:var(--glass-strong);border:1px solid var(--line);backdrop-filter:blur(16px);animation:toastIn .5s var(--ease);max-width:calc(100vw - 32px);text-align:center}.toast b{color:var(--accent);font-weight:500}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-10px)}}@media(max-width:860px){.nav{position:fixed;left:0;right:0;bottom:0;justify-content:space-around;gap:0;padding:8px 6px max(8px,env(safe-area-inset-bottom));background:#0a0a0cc7;backdrop-filter:blur(18px);border-top:1px solid var(--line)}.nav button{font-size:9px;letter-spacing:.12em;padding:10px 4px}.nav button[data-panel=about],.badge{display:none}.wm-b{font-size:19px}.icon-btn .lbl{display:none}.bottombar{bottom:58px;padding:12px;flex-direction:column;align-items:stretch}.right-tools{flex-direction:row;justify-content:space-between;align-items:center}.zone-name{font-size:16px}.timebar{width:100%;padding:8px 16px 8px 10px;gap:12px}.tb-now{min-width:92px}.tb-clock{font-size:18px}.tb-icon{width:28px;height:28px;flex-basis:28px}.time-chips button{font-size:7.5px;letter-spacing:.08em}.time-chips button[data-time="0.35"],.time-chips button[data-time="0.745"]{display:none}.nav{border-radius:0;padding:8px 6px max(8px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line)}.panel{inset:auto 0 58px;width:auto;max-height:64vh;border-radius:22px 22px 0 0;animation:sheetIn .5s var(--ease)}@keyframes sheetIn{0%{transform:translateY(40px);opacity:0}}.card{inset:auto 0 58px;width:auto;transform:none;max-height:58vh;border-radius:22px 22px 0 0;padding:26px 22px;animation:sheetIn .5s var(--ease)}.tourbar{bottom:200px;width:calc(100vw - 24px);justify-content:space-between}.pin-text{font-size:9px}}@media(max-height:520px)and (orientation:landscape){.bottombar .timebar{width:min(420px,60vw);padding:6px 14px 6px 8px}.tb-phase,.time-chips{display:none}.tb-track{padding:8px 0}.panel,.card{max-height:70vh}}@media(prefers-reduced-motion:reduce){.fade-up{animation-duration:.01s}}@media(max-width:1500px){.time-chips button[data-time="0.35"]{font-size:0}.time-chips button[data-time="0.35"]:before{top:-9px}}.card .visit{margin:4px 0 20px;padding:16px 18px 12px;border:1px solid var(--line);border-radius:16px;background:#ffffff08}.card .visit summary{cursor:pointer;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);list-style:none}.card .visit summary::-webkit-details-marker{display:none}.card .visit[open] summary{margin-bottom:12px}.card .tickets{width:100%;border-collapse:collapse;margin:0 0 12px;font-size:13px}.card .tickets td{padding:6px 0;border-top:1px solid var(--line);color:var(--ink-2)}.card .tickets td:last-child{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:12px}.card .visit dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 10px;font-size:13px;line-height:1.55}.card .visit dt{color:var(--ink-3);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding-top:2px}.card .visit dd{margin:0;color:var(--ink-2)}.card .visit .tips li{font-size:13px;padding:7px 0 7px 22px}.card .visit .meta{margin:8px 0 0}.panel .fest{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}.panel .fest.on .fdate{background:var(--accent);color:#1a1208}.panel .fdate{text-align:center;border:1px solid var(--line);border-radius:12px;padding:6px 0 7px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);height:fit-content}.panel .fdate span{display:block;font-family:var(--serif);font-size:24px;letter-spacing:0;line-height:1.1;color:var(--ink)}.panel .fest.on .fdate span{color:#1a1208}.panel .fest .t{font-size:15px;color:var(--ink)}.panel .fest .loc{font-family:var(--serif);color:var(--accent);margin-left:6px;font-size:14px}.panel .fest .when{margin-left:8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(231,166,74,.4);border-radius:20px;padding:2px 8px;vertical-align:2px}.panel .fest .s{font-size:12px;color:var(--ink-3);line-height:1.5;margin-top:2px}.panel .fest p{font-size:13px;line-height:1.6;color:var(--ink-2);margin:6px 0 8px}.panel .fest .facts{display:flex;flex-wrap:wrap;gap:8px}.panel .fest .facts button{font-size:12px;padding:7px 12px;border-radius:20px;background:var(--accent);color:#1a1208;border:0;cursor:pointer}.panel .fest .facts button.ghost{background:transparent;color:var(--ink-2);border:1px solid var(--line)}.i-search{display:inline-block;width:13px;height:13px;border:1.6px solid currentColor;border-radius:50%;position:relative;margin-right:2px}.i-search:after{content:"";position:absolute;width:6px;height:1.6px;background:currentColor;right:-5px;bottom:-3px;transform:rotate(45deg)}.search{position:fixed;top:76px;left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 2 * var(--pad)));z-index:30;border-radius:20px;overflow:hidden;background:var(--glass-strong);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border:1px solid var(--line);animation:cardIn .4s var(--ease)}.search-in{display:flex;align-items:center;gap:12px;padding:14px 16px 14px 20px;border-bottom:1px solid var(--line);color:var(--ink-3)}.search-in input{flex:1;background:none;border:0;outline:0;color:var(--ink);font:400 16px Manrope,system-ui,sans-serif}.search-in .close{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);color:var(--ink-2)}.search-res{max-height:min(60vh,520px);overflow:auto;padding:6px}.search-res button{display:grid;grid-template-columns:78px 1fr;gap:12px;width:100%;text-align:left;padding:10px 12px;border-radius:12px;color:var(--ink)}.search-res button:hover,.search-res button:focus{background:#ffffff12;outline:0}.search-res .k{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);padding-top:3px}.search-res .t{font-size:14.5px}.search-res .loc{font-family:var(--serif);color:var(--accent);margin-left:4px}.search-res .s{display:block;font-size:12px;color:var(--ink-3);margin-top:2px}.search-res .none{padding:14px;font-size:13px;color:var(--ink-3)}.minimap{position:fixed;right:var(--pad);top:84px;width:216px;border-radius:16px;overflow:hidden;z-index:19;padding:0}.minimap canvas{display:block;width:100%;height:auto;cursor:crosshair}.minimap .mm-x{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:#00000073;color:#ddd;font-size:14px;line-height:1}.mm-show{margin-right:8px}@media(max-width:760px){.minimap{width:150px;top:auto;bottom:200px}.search{top:64px}}
