:root{--ink:#1d1430;--paper:#fffaf2;--accent:#ffb347;--font-head:"Space Grotesk", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body{color:#fff;height:100%;font-family:var(--font-body);-webkit-font-smoothing:antialiased;background:radial-gradient(at 50% 45%,#33206e 0%,#170f3d 45%,#07051a 100%);margin:0;overflow:hidden}body:after{content:"";pointer-events:none;z-index:100;opacity:.2;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#globe{touch-action:none;cursor:grab;opacity:0;width:100%;height:100%;transition:opacity 1.2s;display:block;position:fixed;inset:0}#globe.ready{opacity:1}#globe:active{cursor:grabbing}#globe.pointing{cursor:pointer}#ui{pointer-events:none;position:fixed;inset:0}#ui>:not(.labels):not(.hint):not(.hud){pointer-events:auto}button{font:inherit}.brand{text-shadow:0 2px 12px #07051a99;max-width:min(360px,100% - 64px);position:absolute;top:28px;left:32px}.brand h1{font:700 clamp(26px, 3.4vw, 40px) / 1 var(--font-head);letter-spacing:-.02em;margin:0}.brand p{opacity:.75;margin:8px 0 12px;font-size:15px}.links{flex-wrap:wrap;gap:8px;display:flex}.links a{font:500 13px var(--font-head);color:inherit;opacity:.85;border:1.5px solid;border-radius:999px;padding:5px 11px;text-decoration:none;transition:background .15s,color .15s,opacity .15s}.brand .links a:hover{color:var(--ink);opacity:1;background:#fff}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.label{background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;will-change:transform, opacity;border:0;border-radius:12px;flex-direction:column;align-items:flex-start;gap:1px;margin-top:-10px;padding:7px 12px 8px;transition:background .2s;display:flex;position:absolute;top:0;left:0;box-shadow:0 4px #0000004d}.label:after{content:"";background:inherit;clip-path:polygon(0 0,100% 0,50% 100%);width:14px;height:9px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.label:before{content:"";background:var(--accent);border-radius:0 0 4px 4px;height:4px;position:absolute;top:0;left:12px;right:12px}.label-place{font:500 10px var(--font-head);letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin-top:2px}.label-title{font:700 15px var(--font-head)}.label.is-hover{background:var(--accent)}.hint{white-space:nowrap;font:500 11px var(--font-head);letter-spacing:.14em;text-transform:uppercase;opacity:.55;margin:0;transition:opacity .3s;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}body.panel-open .hint{opacity:0}@media (width>=761px){.chips{transition:left .55s cubic-bezier(.2,.8,.2,1)}body.panel-open .chips{left:calc(50% - min(440px,42vw)/2 - 8px)}}.chips{flex-wrap:wrap;justify-content:center;gap:10px;width:max-content;max-width:calc(100% - 32px);display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.chip{background:var(--paper);color:var(--ink);font:600 14px var(--font-head);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;padding:9px 16px 9px 12px;transition:transform .15s,background .2s,box-shadow .15s;display:flex;box-shadow:0 4px #00000059}.chip .dot{background:var(--accent);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:12px;height:12px;transition:transform .3s}.chip:hover,.chip.is-hover{transform:translateY(-2px);box-shadow:0 6px #00000059}.chip:hover .dot,.chip.is-hover .dot{transform:rotate(45deg)scale(1.15)}.chip[aria-pressed=true]{background:var(--accent)}.chip[aria-pressed=true] .dot{background:var(--ink)}.chip:focus-visible,.panel-close:focus-visible,.links a:focus-visible{outline-offset:3px;outline:3px solid #fff}.panel{background:var(--paper);width:min(440px,42vw);color:var(--ink);visibility:hidden;z-index:10;border-radius:24px;flex-direction:column;transition:transform .55s cubic-bezier(.2,.8,.2,1),visibility 0s linear .55s;display:flex;position:absolute;top:16px;bottom:16px;right:16px;overflow:hidden;transform:translate(calc(100% + 40px));box-shadow:0 24px 70px #00000080}.panel.open{visibility:visible;transition:transform .55s cubic-bezier(.2,.8,.2,1),visibility;transform:none}.panel-banner{background-color:var(--accent);background-image:linear-gradient(135deg,#ffffff38 25%,#0000 25%),linear-gradient(225deg,#ffffff38 25%,#0000 25%);background-position:0 100%;background-size:28px 28px;flex:none;height:110px;position:relative;overflow:hidden}.panel-banner span{display:block;position:absolute}.panel-banner span:first-child{background:#1d1430d9;border-radius:50%;width:90px;height:90px;top:30px;right:40px}.panel-banner span:nth-child(2){background:var(--paper);clip-path:polygon(50% 0,100% 100%,0 100%);width:70px;height:70px;top:44px;right:110px}.panel-banner span:nth-child(3){background:#ffffffd9;width:34px;height:34px;top:22px;left:28px;transform:rotate(20deg)}.panel-close{background:var(--paper);width:38px;height:38px;color:var(--ink);cursor:pointer;z-index:1;border:0;border-radius:50%;font-size:16px;transition:transform .15s;position:absolute;top:14px;right:14px;box-shadow:0 3px #00000040}.panel-close:hover{transform:rotate(90deg)}.panel-body{flex:1;padding:26px 30px 36px;overflow-y:auto}.kicker{font:600 12px var(--font-head);letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin:0 0 4px}.panel h2{font:700 36px / 1.05 var(--font-head);letter-spacing:-.02em;margin:0 0 12px}.intro{margin:0 0 20px;font-size:16px;line-height:1.55}.items{margin:0;padding:0;list-style:none}.item{border-top:2px dashed #1d143024;padding:18px 0}.item-head{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.item h3{font:700 18px var(--font-head);margin:0}.meta{font:500 12px var(--font-head);background:color-mix(in srgb, var(--accent) 30%, transparent);border-radius:999px;padding:2px 9px}.item p{opacity:.85;margin:8px 0 0;line-height:1.5}.item .links{margin-top:10px}.item .links a:hover{background:var(--ink);color:var(--paper);opacity:1}.brand,.chips,.labels{transition:opacity .4s}body.exploring .brand,body.exploring .chips,body.exploring .labels,body.exploring .hint{opacity:0;visibility:hidden;pointer-events:none!important}.hud{pointer-events:none;opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s linear .5s;position:absolute;inset:0}body.exploring .hud{opacity:1;visibility:visible;transition:opacity .6s .8s,visibility 0s .8s}.hud button{pointer-events:auto}.hud-btn{background:var(--paper);color:var(--ink);font:600 14px var(--font-head);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;top:20px;box-shadow:0 4px #0000004d}.hud-btn:hover{transform:translateY(-2px);box-shadow:0 6px #0000004d}.hud-back{left:20px}.hud-list{right:20px}.hud-hint{white-space:nowrap;font:500 12px var(--font-head);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:#fffaf2bf;border-radius:999px;margin:0;padding:6px 12px;transition:opacity .6s;position:absolute;bottom:86px;left:50%;transform:translate(-50%)}.hud-hint kbd{font:inherit;background:var(--ink);color:var(--paper);border-radius:4px;padding:0 5px}.hud.has-dragged .hud-hint{opacity:0}.hud-nav{background:var(--paper);border-radius:999px;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 4px #0000004d}.hud-step{background:var(--accent);width:40px;height:40px;color:var(--ink);font:700 22px / 1 var(--font-head);cursor:pointer;border:0;border-radius:50%;transition:transform .15s,opacity .2s}.hud-step:hover:not(:disabled){transform:scale(1.08)}.hud-step:disabled{opacity:.3;cursor:default}.hud-dots{align-items:center;gap:8px;margin:0;padding:0 8px;list-style:none;display:flex}.hud-dot{border:2px solid var(--ink);cursor:pointer;background:0 0;width:12px;height:12px;padding:0;transition:transform .2s,background .2s;display:block;transform:rotate(45deg)}.hud-dot.is-visited{background:color-mix(in srgb, var(--accent) 55%, transparent)}.hud-dot.is-current{background:var(--accent);transform:rotate(45deg)scale(1.35)}.hud-dot.is-walking{animation:.8s ease-in-out infinite alternate dot-pulse}@keyframes dot-pulse{to{opacity:.6;transform:rotate(45deg)scale(1.1)}}.hud-step:focus-visible,.hud-dot:focus-visible,.hud-btn:focus-visible,.card-action:focus-visible{outline-offset:3px;outline:3px solid #fff}.tags{pointer-events:none;position:absolute;inset:0;overflow:hidden}.tag{color:var(--ink);font:600 12px var(--font-head);white-space:nowrap;cursor:pointer;opacity:0;background:#fffaf2eb;border:0;border-radius:999px;align-items:center;gap:6px;margin-top:-8px;padding:5px 10px;display:flex;position:absolute;top:0;left:0;box-shadow:0 3px #0003}.tag:after{content:"";background:inherit;clip-path:polygon(0 0,100% 0,50% 100%);width:10px;height:7px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.tag-dot{background:var(--accent);width:8px;height:8px;transform:rotate(45deg)}.tag:hover{background:var(--accent)}.card-pin{background:var(--accent);border:2px solid var(--paper);opacity:0;pointer-events:none;width:14px;height:14px;box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 30%, transparent);transition:opacity .3s;position:absolute;top:-7px;left:-7px}.card-pin.open{opacity:1}.card{background:var(--paper);width:min(360px,100vw - 48px);max-height:calc(100vh - 220px);color:var(--ink);opacity:0;visibility:hidden;pointer-events:none;border-radius:20px;flex-direction:column;transition:opacity .35s,visibility 0s linear .35s;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 18px 50px #00000059}.card.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s .1s,visibility}.card:before{content:"";background-color:var(--accent);background-image:linear-gradient(135deg,#ffffff4d 25%,#0000 25%),linear-gradient(225deg,#ffffff4d 25%,#0000 25%);background-size:14px 14px;flex:none;height:14px}.card-body{padding:18px 22px 22px;overflow-y:auto}.card .kicker{margin-bottom:6px}.card h2{font:700 30px / 1.05 var(--font-head);letter-spacing:-.02em;margin:0 0 10px}.card h3{font:700 20px var(--font-head);margin:0}.card p{margin:10px 0 0;line-height:1.5}.card .intro{margin:0;font-size:15px}.card .links{margin-top:12px}.card .links a:hover{background:var(--ink);color:var(--paper);opacity:1}.card-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.card-actions .card-action{margin-top:0}.card-action{background:var(--accent);color:var(--ink);font:600 14px var(--font-head);cursor:pointer;border:0;border-radius:999px;margin-top:16px;padding:9px 16px;transition:transform .15s}.card-action:hover{transform:translate(3px)}.card-action.ghost{box-shadow:inset 0 0 0 2px var(--ink);background:0 0}.card.is-list{width:min(420px,100vw - 48px)}.pieces{background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:14px;margin:14px 0 0;padding:0;list-style:none;overflow:hidden}.piece{align-items:center;gap:12px;padding:9px 12px;display:flex;position:relative}.piece+.piece{border-top:1px solid color-mix(in srgb, var(--ink) 10%, transparent)}.piece.is-current{background:color-mix(in srgb, var(--accent) 22%, transparent)}.piece-text{flex-direction:column;min-width:0;display:flex}.piece-title{font:600 15px / 1.25 var(--font-head)}.piece-sub{opacity:.7;font-size:13px}.piece-progress{background:var(--accent);transform-origin:0;opacity:0;height:3px;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.piece.is-current .piece-progress{opacity:1}.piece-play,.piece-link,.piece-none,.np-toggle{border-radius:50%;flex:none;width:34px;height:34px}.piece-play,.np-toggle{background:var(--accent);color:var(--ink);cursor:pointer;border:0;place-items:center;transition:transform .15s;display:grid}.piece-play:hover,.np-toggle:hover{transform:scale(1.08)}.piece-link{color:var(--ink);box-shadow:inset 0 0 0 2px var(--accent);place-items:center;font-weight:700;text-decoration:none;display:grid}.piece-link:hover{background:var(--accent)}.piece-none{place-items:center;display:grid}.piece-none:before{content:"";background:color-mix(in srgb, var(--ink) 25%, transparent);width:8px;height:8px;transform:rotate(45deg)}.piece-play .icon,.np-toggle .icon{clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor;width:12px;height:12px;margin-left:3px}.piece-play.is-playing .icon,.np-toggle.is-playing .icon{clip-path:polygon(0 0,35% 0,35% 100%,0 100%,0 0,65% 0,100% 0,100% 100%,65% 100%,65% 0);margin-left:0}.piece-play:focus-visible,.piece-link:focus-visible,.np-toggle:focus-visible,.np-close:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.now-playing{z-index:20;background:var(--paper);max-width:min(320px,100vw - 40px);color:var(--ink);--accent:#ff5fa2;border-radius:999px;align-items:center;gap:10px;padding:7px 8px 9px 7px;display:flex;position:absolute;bottom:22px;left:20px;overflow:hidden;box-shadow:0 4px #0000004d}.now-playing[hidden]{display:none}.np-text{flex-direction:column;min-width:0;display:flex}.np-label{font:600 10px var(--font-head);letter-spacing:.1em;text-transform:uppercase;opacity:.6}.np-title{font:600 14px var(--font-head);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.np-close{width:28px;height:28px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none}.np-close:hover{background:color-mix(in srgb, var(--ink) 10%, transparent)}.np-bar{background:color-mix(in srgb, var(--accent) 25%, transparent);height:3px;position:absolute;bottom:0;left:0;right:0}.np-bar span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}@media (width<=760px){.hud-btn{padding:8px 13px;font-size:13px;top:14px}.hud-back{left:14px}.hud-list{right:14px}.hud-hint{display:none}.hud-nav{bottom:14px}.card{width:auto;max-height:46vh;inset:auto 10px 84px;transform:none!important}.card h2{font-size:26px}.card.is-list{width:auto}.now-playing{top:62px;bottom:auto;left:14px}.brand{top:18px;left:18px}.brand p{margin-bottom:10px;font-size:13px}.chips{gap:8px;bottom:16px}.chip{padding:8px 13px 8px 10px;font-size:13px}.hint{bottom:112px}.panel{border-radius:22px;width:auto;height:64vh;inset:auto 8px 8px;transform:translateY(calc(100% + 24px))}.panel-banner{height:76px}.panel h2{font-size:30px}.panel-body{padding:20px 22px 28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:10ms!important}}.intro,p.text{white-space:pre-line}
