:root{color-scheme:dark;--bg: #0e1014;--panel: rgba(14, 15, 19, .86);--line: rgba(198, 182, 152, .22);--text: #e9e4d9;--text-dim: #a49d8f;--text-faint: #6f6a60;--gold: #d8a34b;--gold-soft: #f0c887;--gold-line: rgba(216, 163, 75, .38);--pink: #d61f69;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font:14px/1.4 var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}#stage{position:relative;width:100%;height:100%;overflow:hidden}#scene{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#scene.dragging{cursor:grabbing}.brand{position:absolute;top:0;left:0;max-width:min(60%,420px);padding:18px 20px;pointer-events:none}.brand h1{margin:0;font-size:clamp(19px,2.4vw,24px);font-weight:800;letter-spacing:-.02em;text-shadow:0 2px 14px rgba(0,0,0,.65)}.brand p{margin:5px 0 0;font-size:12.5px;color:var(--text-dim);text-shadow:0 1px 10px rgba(0,0,0,.7)}.brand-tour{margin-top:12px;padding:7px 14px;border:1px solid rgba(240,200,135,.5);border-radius:999px;background:#0e0f13b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#f3e5c8;font-size:12.5px;font-weight:500;cursor:pointer;pointer-events:auto}.brand-tour:hover{border-color:var(--gold-soft);background:#d8a34b2e}.touring .brand-tour{visibility:hidden}#markers{position:absolute;inset:0;pointer-events:none}.marker{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;pointer-events:auto;transition:opacity .18s}.marker:before{content:"";position:absolute;inset:11px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fffaf0,#ffe3ac 45%,#e6aa4d);box-shadow:0 0 0 2px #0e1014e6,0 0 0 4px #ffe3acf2,0 0 20px 8px #ffbe5ad9,0 0 60px 20px #d8a34b73;transition:transform .2s}.marker:after{content:"";position:absolute;inset:9px;border:2px solid rgba(255,220,150,.95);border-radius:50%;animation:pulse 2s ease-out infinite}@keyframes pulse{0%{transform:scale(.8);opacity:.95}to{transform:scale(2.3);opacity:0}}.marker:hover:before{transform:scale(1.18)}.marker.active:before{transform:scale(1.1)}.marker.active:after,.marker.occluded:after{animation:none;opacity:0}.marker.occluded{opacity:.45}.marker.active.occluded{opacity:1}.marker-label{position:absolute;top:50%;left:46px;translate:0 -50%;padding:5px 11px;border:1px solid rgba(240,200,135,.55);border-radius:999px;background:#0e0f13d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px #00000073;color:#f6ead2;font-size:12.5px;font-weight:500;white-space:nowrap;pointer-events:none;transition:opacity .2s,translate .2s}.marker:hover .marker-label{translate:3px -50%;border-color:var(--gold-soft)}.marker.active .marker-label,.marker.occluded .marker-label{opacity:0}.card{position:absolute;top:0;left:0;z-index:5;width:min(330px,calc(100vw - 32px));max-height:calc(100% - 32px);overflow-y:auto;scrollbar-width:thin;padding:18px 20px;border:1px solid var(--gold-line);border-radius:14px;background:linear-gradient(rgba(216,163,75,.07),transparent 40%),var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 50px #0000008c;opacity:0;visibility:hidden;transform:translateY(8px) scale(.98);pointer-events:none;transition:opacity .35s,transform .45s cubic-bezier(.22,.7,.3,1),visibility 0s .45s}.card.open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .45s,transform .55s cubic-bezier(.22,.7,.3,1)}.card.open.away{opacity:0;pointer-events:none}.card [hidden]{display:none}.card-notch{position:absolute;top:var(--notch-y, 40px);left:-7px;width:12px;height:12px;translate:0 -50%;rotate:45deg;background:#0e0f13f2;border-bottom:1px solid var(--gold-line);border-left:1px solid var(--gold-line)}.card.flip .card-notch{left:auto;right:-7px;rotate:225deg}.card-close{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:50%;background:none;color:var(--text-faint);font-size:13px;cursor:pointer}.card-close:hover{color:var(--text);background:#ffffff0f}.card-name{margin:0;padding-right:24px;color:#f2e6cc;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.15}.card-location{margin:4px 0 14px;color:var(--text-dim);font-size:12px}.card-desc{margin:0;color:#d9d2c4;font-size:13.5px;line-height:1.55}.card :where(ul){margin:0;padding:0;list-style:none}.card-fields,.card-menu section,.card-events,.card-staff{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}.card-menu section+section{border-top:0;padding-top:0}.card h3{margin:0 0 6px;color:#efe2c6;font-size:14px;font-weight:600}.card-fields{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12.5px}.card-fields dt{color:var(--text-faint);white-space:nowrap}.card-fields dd{margin:0}.card-menu li{display:flex;align-items:baseline;gap:6px;font-size:13px;line-height:1.75}.card-menu .leader{flex:1;border-bottom:1px dotted rgba(233,228,217,.25);translate:0 -3px}.card-menu .price{color:var(--gold-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.card-events li{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:6px 0;line-height:1.35}.card-events li+li{border-top:1px solid rgba(233,228,217,.06)}.card-events .when,.card-events .what{display:flex;flex-direction:column}.card-events .when{font-size:12px}.card-events .when b{font-weight:600}.card-events .when span{color:var(--text-faint)}.card-events .what{font-size:13px}.card-events .what em{color:var(--gold);font-size:11.5px;font-style:normal}.card-staff{display:flex;flex-direction:column;gap:8px}.card-staff li{display:grid;grid-template-columns:30px 1fr;column-gap:10px;align-items:center;line-height:1.2}.card-staff .avatar{display:grid;grid-row:span 2;place-items:center;width:30px;height:30px;border:1px solid rgba(240,200,135,.5);border-radius:50%;background:#d8a34b26;color:var(--gold-soft);font-size:13px;font-weight:600}.card-staff b{font-size:13px;font-weight:600}.card-staff small{color:var(--text-faint);font-size:11.5px}.card-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.card-links a{padding:6px 14px;border:1px solid rgba(240,200,135,.4);border-radius:8px;background:#d8a34b14;color:#f3e5c8;font-size:12.5px;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s}.card-links a:hover{border-color:var(--gold-soft);background:#d8a34b33}.tourbar{position:absolute;bottom:22px;left:50%;z-index:6;display:flex;align-items:center;gap:6px;padding:6px;translate:-50% 0;border:1px solid var(--gold-line);border-radius:999px;background:#0e0f13e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 34px #00000080;animation:rise .4s cubic-bezier(.22,.7,.3,1)}.tourbar[hidden]{display:none}.tourbar button{height:34px;border:0;border-radius:999px;background:none;font-size:13px;white-space:nowrap;cursor:pointer}.tourbar button:hover:not(:disabled){background:#ffffff0f}.tourbar button:disabled{opacity:.3;cursor:default}.tour-prev,.tour-end{width:34px}.tour-prev{font-size:20px;line-height:1}.tour-end{color:var(--text-faint)}.tourbar .tour-next{padding:0 16px;border:1px solid rgba(240,200,135,.55);background:#d8a34b24;color:#f6ead2;font-weight:500}.tourbar .tour-next:hover{background:#d8a34b47}.tour-info{display:flex;flex-direction:column;align-items:center;min-width:110px;padding:0 6px;line-height:1.2}.tour-step{color:var(--gold);font-size:11px;font-variant-numeric:tabular-nums}.tour-name{font-size:13px;white-space:nowrap}.intro-active .brand,.intro-active #markers{opacity:0;pointer-events:none}.brand,#markers{transition:opacity .8s .3s}.intro{position:absolute;inset:0;z-index:10;display:grid;place-items:center;padding:24px 16px;background:#121213;transition:background-color .9s,backdrop-filter .9s,opacity .8s}.intro.ready{background:#0e0e108c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.intro.leaving{opacity:0;pointer-events:none}.intro-inner{display:flex;flex-direction:column;align-items:center;text-align:center;animation:rise .8s ease-out both}.intro h1{margin:0;color:#fff;font-size:clamp(44px,10vw,104px);font-weight:800;letter-spacing:-.035em;line-height:1;text-shadow:0 2px 24px rgba(0,0,0,.45)}.intro-where{margin:14px 0 0;color:#ffffffb8;font-size:15px;font-weight:500}.intro-hours{display:inline-flex;align-items:center;gap:7px;margin:14px 0 0;padding:4px 11px;border-radius:999px;background:var(--pink);color:#fff;font-size:12.5px;font-weight:600}.intro-hours:before{content:"";width:6px;height:6px;border-radius:50%;background:#fff}.intro-hours[hidden]{display:none}.intro-actions{display:flex;gap:10px;margin-top:30px;opacity:0;transform:translateY(4px);transition:opacity .5s,transform .5s}.intro.ready .intro-actions{opacity:1;transform:none}.intro-actions button{height:44px;padding:0 22px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.intro-actions button:disabled{pointer-events:none}.intro-actions :focus-visible{outline-color:#fff;outline-offset:3px}.intro-explore{border:0;background:#fff;color:#111}.intro-explore:hover{background:#e9e9ea}.intro-tour{border:1px solid rgba(255,255,255,.35);background:#ffffff0f}.intro-tour:hover{background:#ffffff24}.intro-progress{width:180px;height:3px;margin-top:-22px;overflow:hidden;border-radius:3px;background:#ffffff1f;pointer-events:none;transition:opacity .4s}.intro.ready .intro-progress{opacity:0}.intro-bar{height:100%;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .25s}.intro-status{min-height:1.4em;margin:14px 0 0;color:#ffffff80;font-size:12px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media(max-width:640px){.brand{max-width:80%;padding:14px 16px}.touring .brand{opacity:0;pointer-events:none}.card{inset:auto 0 0;width:100%;max-height:70%;border-bottom:0;border-radius:16px 16px 0 0;transform:translateY(24px)}.card.open{transform:none}.card-notch{display:none}.tourbar{top:12px;bottom:auto}}@media(prefers-reduced-motion:reduce){.marker:after{animation:none;opacity:.6;transform:scale(1.3)}.marker,.marker:before{transition:none}.card,.card.open{transform:none;transition:opacity .2s,visibility 0s}.tourbar,.intro-inner{animation:none}.intro,.intro-actions,.intro-bar{transition:opacity .3s}}
