.experience{position:fixed;inset:0}.experience .canvas{position:absolute!important;inset:0;touch-action:none}.experience .topbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:var(--pad);pointer-events:none;z-index:30}.experience .topbar>*{pointer-events:auto}.experience .logo{display:flex;flex-direction:column;gap:6px}.experience .logo-word{font-family:var(--f-display);font-weight:700;font-size:19px;letter-spacing:.32em}.experience .logo-sub{font-size:8px;letter-spacing:.62em}.experience .hud,.experience .logo-sub{font-family:var(--f-display);color:var(--ink-2)}.experience .hud{display:grid;grid-template-columns:auto auto;align-items:center;grid-column-gap:16px;column-gap:16px;grid-row-gap:4px;row-gap:4px;text-align:right;font-size:9px;letter-spacing:.2em}.experience .hud-coord{grid-column:1}.experience .hud-alt{grid-column:1;color:var(--ink-3)}.experience .compass{grid-column:2;grid-row:1/span 2;width:40px;height:40px;color:var(--ink)}.experience .compass svg{width:100%;height:100%;transition:transform .2s linear}.experience .compass text{font-family:var(--f-display)}.experience .experience:before{content:"";position:absolute;inset:0;z-index:10;pointer-events:none;background:linear-gradient(90deg,rgba(10,16,23,.55),rgba(10,16,23,0) 38%),linear-gradient(180deg,rgba(10,16,23,.45),rgba(10,16,23,0) 18%);transition:opacity 1.2s var(--ease)}html:not([data-phase=explore]) .experience:before{opacity:.4}.experience .intro{position:absolute;left:var(--pad);top:50%;transform:translateY(-50%);z-index:20;pointer-events:none;max-width:420px;transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}.experience .kicker{font-size:9px;letter-spacing:.34em;color:var(--ink-2);margin-bottom:18px}.experience .intro h1,.experience .kicker{font-family:var(--f-display);text-transform:uppercase}.experience .intro h1{margin:0;font-weight:400;font-size:clamp(22px,2.6vw,36px);line-height:1.25;letter-spacing:.06em}.experience .intro h1 em{font-family:var(--f-serif);font-style:italic;text-transform:none;letter-spacing:0;font-size:1.45em;color:var(--peach)}.experience .intro p{margin:18px 0 0;font-size:13px;color:var(--ink-2);letter-spacing:.02em}html:not([data-phase=explore]) .experience .intro{opacity:0;transform:translate(-16px,-50%)}.experience .rail{position:absolute;left:50%;bottom:var(--pad);transform:translateX(-50%);display:flex;gap:1px;background:var(--line);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:25;transition:opacity .8s var(--ease),transform .8s var(--ease)}html:not([data-phase=explore]) .experience .rail{opacity:0;transform:translate(-50%,24px);pointer-events:none}.experience .rail-item{position:relative;display:flex;align-items:center;gap:16px;min-width:240px;padding:16px 20px 16px 18px;background:var(--glass);text-align:left;transition:background .35s var(--ease)}.experience .rail-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(.35);transform-origin:bottom;transition:transform .45s var(--ease)}.experience .rail-item:hover,.experience .rail-item[data-hover=true]{background:rgba(22,33,44,.86)}.experience .rail-item:hover:before,.experience .rail-item[data-hover=true]:before{transform:scaleY(1)}.experience .rail-index{font-family:var(--f-display);font-size:10px;letter-spacing:.2em;color:var(--accent)}.experience .rail-body{display:flex;flex-direction:column;gap:5px;flex:1 1}.experience .rail-name{font-family:var(--f-display);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.experience .rail-district{font-size:11.5px;color:var(--ink-2)}.experience .rail-go{color:var(--ink-3);transition:transform .35s var(--ease),color .35s}.experience .rail-item:hover .rail-go,.experience .rail-item[data-hover=true] .rail-go{color:var(--accent);transform:translateX(4px)}.experience .pin{position:relative;display:flex;align-items:flex-end;transform:translate(14px,-18px);pointer-events:auto;cursor:pointer;transition:opacity .6s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none}.experience .pin[data-state=hidden]{opacity:0;pointer-events:none}.experience .pin-mark{display:block;filter:drop-shadow(0 0 14px var(--accent)) drop-shadow(0 4px 10px rgba(0,0,0,.5));transform-origin:50% 100%;transition:transform .45s var(--ease)}.experience .pin[data-state=hover] .pin-mark{transform:translateY(-6px) scale(1.12)}.experience .pin-label{display:flex;align-items:center;gap:10px;margin:0 0 14px 10px;padding:9px 14px 9px 12px;background:var(--glass);border:1px solid var(--line);border-left:2px solid var(--accent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap;transition:transform .45s var(--ease),background .35s}.experience .pin[data-state=hover] .pin-label{transform:translateX(4px);background:rgba(22,33,44,.9)}.experience .pin-index{font-family:var(--f-display);font-size:9px;color:var(--accent);letter-spacing:.16em}.experience .pin-text{display:flex;flex-direction:column;gap:3px}.experience .pin-name{font-family:var(--f-display);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase}.experience .pin-district{font-size:10.5px;color:var(--ink-2)}html[data-phase=intro] .experience .pin,html[data-phase=loading] .experience .pin{opacity:0}.experience .landmark{font-family:var(--f-display);font-size:8px;letter-spacing:.32em;text-transform:uppercase;color:rgba(238,242,246,.55);white-space:nowrap;text-shadow:0 1px 8px rgba(10,16,22,.9);transition:opacity .8s var(--ease)}.experience .landmark-m{font-size:9px;color:rgba(238,242,246,.72)}html:not([data-phase=explore]) .experience .landmark{opacity:0}.experience .panel{position:absolute;right:var(--pad);top:50%;width:min(380px,calc(100vw - 2 * var(--pad)));transform:translate(24px,-50%);opacity:0;pointer-events:none;padding:30px 30px 24px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:30;transition:opacity .7s var(--ease),transform .9s var(--ease)}.experience .panel:before{content:"";position:absolute;left:-1px;top:-1px;width:64px;height:2px;background:var(--accent)}.experience .panel[data-open=true]{opacity:1;transform:translateY(-50%);pointer-events:auto}.experience .panel-kicker{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-size:8.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-2)}.experience .panel-kicker .dot{width:4px;height:4px;border-radius:50%;background:var(--accent)}.experience .panel-title{margin:18px 0 12px;font-family:var(--f-serif);font-weight:400;font-size:42px;line-height:1.02;letter-spacing:-.005em}.experience .panel-tagline{margin:0 0 22px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}.experience .panel-facts{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;margin:0 0 24px;background:var(--line);border:1px solid var(--line)}.experience .panel-facts>div{padding:12px 14px;background:rgba(14,22,30,.7)}.experience .panel-facts dt{font-family:var(--f-display);font-size:7.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px}.experience .panel-facts dd{margin:0;font-size:12.5px;line-height:1.35}.experience .cta{display:flex;width:100%;justify-content:space-between;align-items:center;padding:17px 20px;background:var(--accent);color:#10161d;font-family:var(--f-display);font-size:9.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;transition:filter .3s,transform .4s var(--ease)}.experience .cta:hover{filter:brightness(1.08)}.experience .cta:hover span:last-child{transform:translateX(4px)}.experience .cta span:last-child{transition:transform .4s var(--ease)}.experience .panel-nav{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-family:var(--f-display);font-size:8.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-2)}.experience .panel-nav>div{display:flex;gap:6px}.experience .panel-nav>div button{width:32px;height:32px;border:1px solid var(--line);font-size:15px;letter-spacing:0}.experience .panel-nav button:hover{color:var(--ink)}.experience .panel-nav>div button:hover{border-color:var(--accent)}.experience .controls{position:absolute;right:var(--pad);bottom:var(--pad);display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);z-index:25;transition:opacity .8s}.experience .controls button{width:38px;height:38px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:16px;display:grid;place-items:center}.experience .controls button:hover{background:rgba(22,33,44,.9)}html[data-phase=entering] .experience .controls,html[data-phase=intro] .experience .controls,html[data-phase=loading] .experience .controls{opacity:0;pointer-events:none}.experience .hint{position:absolute;left:var(--pad);bottom:calc(var(--pad) + 6px);font-family:var(--f-display);font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-3);z-index:20;pointer-events:none;transition:opacity 1s}html:not([data-phase=explore]) .experience .hint,html[data-touched="1"] .experience .hint{opacity:0}.experience .attribution{position:absolute;right:calc(var(--pad) + 50px);bottom:calc(var(--pad) + 2px);font-size:9px;color:var(--ink-3);z-index:20;pointer-events:none}.experience .loader{position:absolute;inset:0;z-index:100;display:grid;place-items:center;background:#000;transition:opacity 1.4s var(--ease),visibility 1.4s}.experience .loader[data-hidden=true]{opacity:0;visibility:hidden}.experience .loader-inner{width:min(400px,calc(100vw - 2 * var(--pad)))}.experience .brand-mark{font-family:var(--f-display);font-weight:700;font-size:22px;letter-spacing:.5em;text-align:center;margin-bottom:30px;padding-left:.5em}.experience .loader-bar{height:1px;background:var(--line);overflow:hidden}.experience .loader-bar span{display:block;height:100%;background:var(--peach);transform-origin:left;transition:transform .3s linear}.experience .loader-note{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);text-align:center;animation:loader-note-in 1.4s .4s var(--ease) both}.experience .loader-note-kicker{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;font-family:var(--f-display);font-size:9.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--peach)}.experience .loader-note-dot{width:6px;height:6px;border-radius:50%;background:var(--peach);box-shadow:0 0 10px var(--peach);animation:loader-note-pulse 1.8s ease-in-out infinite}.experience .loader-note p{margin:0;font-family:var(--f-body);font-size:14px;line-height:1.6;color:rgba(238,242,246,.86)}@keyframes loader-note-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes loader-note-pulse{50%{opacity:.35}}.experience .loader-meta{display:flex;justify-content:space-between;margin-top:14px;font-family:var(--f-display);font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-2)}.experience .fade{position:absolute;inset:0;background:var(--bg);opacity:0;pointer-events:none;z-index:90;transition:opacity .6s ease}.experience .fade[data-on=true]{opacity:1}.experience .error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:200;padding:16px 20px;background:#2a1515;border:1px solid #6b2a2a;font-size:13px}@media (max-width:860px){.experience .intro{top:70px;transform:none;max-width:calc(100vw - 2 * var(--pad))}.experience .intro .kicker{display:none}.experience .intro h1{font-size:15px}.experience .intro h1 em{font-size:1.6em}html:not([data-phase=explore]) .experience .intro{transform:translateX(-16px)}.experience .intro p{display:none}.experience .rail{left:var(--pad);right:var(--pad);transform:none;flex-direction:column}html:not([data-phase=explore]) .experience .rail{transform:translateY(24px)}.experience .rail-item{min-width:0;padding:12px 16px}.experience .attribution,.experience .controls,.experience .hint,.experience .hud-alt,.experience .hud-coord{display:none}.experience .panel{top:auto;bottom:var(--pad);right:var(--pad);left:var(--pad);width:auto;transform:translateY(24px);padding:22px 20px 18px}.experience .panel[data-open=true]{transform:none}.experience .panel-title{font-size:32px;margin:12px 0 8px}.experience .panel-tagline{margin-bottom:14px}.experience .panel-facts{margin-bottom:16px}.experience .landmark,.experience .pin-label{display:none}}