:root{--ink: #22211e;--ink-soft: #3c3a36;--paper: #f1efe9;--charcoal: #171614;--terrain: #b3afa4;--hairline: rgba(34, 33, 30, .18);--font: "Archivo", "Archivo Narrow", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--charcoal);color:var(--ink);overflow:hidden;overscroll-behavior:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit;color:inherit}.app{position:fixed;inset:0}.entrance{position:fixed;inset:0;z-index:50;overflow:hidden}.entrance__panel{position:absolute;top:0;bottom:0;width:50.5%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0 2px,transparent 2px 30px),linear-gradient(115deg,#1a1916,#141310 55%,#1a1916);transition:transform .95s cubic-bezier(.77,0,.18,1);will-change:transform}.entrance__panel--left{left:0;border-right:1px solid rgba(241,239,233,.12)}.entrance__panel--right{right:0;border-left:1px solid rgba(241,239,233,.12)}.entrance--opening .entrance__panel--left{transform:translate(-102%)}.entrance--opening .entrance__panel--right{transform:translate(102%)}.entrance__seam{position:absolute;top:0;bottom:0;left:50%;width:1px;background:#f1efe91a;transition:opacity .2s ease}.entrance__content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;color:var(--paper);text-align:center;transition:opacity .26s ease;padding:24px}.entrance--opening .entrance__seam,.entrance--opening .entrance__content,.entrance--opening .entrance__coords{opacity:0;pointer-events:none}.entrance__kicker{font-size:11px;font-weight:500;letter-spacing:.7em;text-indent:.7em;opacity:.65}.entrance__title{font-size:clamp(64px,15vw,158px);font-weight:700;line-height:.92;letter-spacing:.03em}.entrance__button{margin-top:18px;background:transparent;border:1px solid var(--paper);padding:15px 52px;font-size:12px;font-weight:600;letter-spacing:.42em;text-indent:.42em;cursor:pointer;transition:background .16s ease,color .16s ease}.entrance__button:hover,.entrance__button:focus-visible{background:var(--paper);color:var(--charcoal);outline:none}.entrance__place{font-size:10px;letter-spacing:.45em;text-indent:.45em;opacity:.55}.entrance__coords{position:absolute;right:22px;bottom:18px;color:var(--paper);font-size:9px;letter-spacing:.18em;opacity:.3;transition:opacity .2s ease}.viewport{position:fixed;inset:0;overflow:hidden;background:var(--terrain);touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}.world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.world-svg{display:block}.world-svg text{font-family:var(--font);pointer-events:none}.building,.hotspot-marker{cursor:pointer}.hotspot-marker__plate{fill:var(--paper);stroke:var(--ink);stroke-width:1.3;transition:fill .15s ease}.hotspot-marker__cross{stroke:var(--ink);stroke-width:1.6;transition:stroke .15s ease}.hotspot-marker.is-near .hotspot-marker__plate{fill:var(--ink)}.hotspot-marker.is-near .hotspot-marker__cross{stroke:var(--paper)}.player{pointer-events:none}.player__figure.is-walking .player__body{animation:player-bob .38s ease-in-out infinite}.player__leg{transform-box:fill-box;transform-origin:50% 8%}.player__figure.is-walking .player__leg--l{animation:leg-swing .38s ease-in-out infinite}.player__figure.is-walking .player__leg--r{animation:leg-swing .38s ease-in-out infinite;animation-delay:-.19s}@keyframes player-bob{50%{transform:translateY(-2.4px)}}@keyframes leg-swing{0%,to{transform:rotate(16deg)}50%{transform:rotate(-16deg)}}.click-marker__inner{transform-box:fill-box;transform-origin:center}.tree-sway{transform-box:fill-box;transform-origin:50% 70%;animation:tree-sway 9s ease-in-out infinite alternate}@keyframes tree-sway{0%{transform:rotate(-.6deg)}to{transform:rotate(.8deg)}}.ambient-weld{opacity:0;animation:weld-flicker 4.2s steps(1,end) infinite}@keyframes weld-flicker{0%{opacity:0}4%{opacity:.95}7%{opacity:.2}10%{opacity:.85}13%{opacity:0}55%{opacity:0}58%{opacity:.7}61%{opacity:0}to{opacity:0}}.ambient-glow{animation:warm-glow 4.5s ease-in-out infinite}@keyframes warm-glow{0%,to{opacity:.35}50%{opacity:.7}}.dust{transform-box:fill-box;animation:dust-drift 26s linear infinite}.dust--2{animation-duration:34s;animation-delay:-12s}.dust--3{animation-duration:30s;animation-delay:-6s}@keyframes dust-drift{0%{transform:translate(0);opacity:0}15%{opacity:.16}50%{transform:translate(46px,-34px);opacity:.1}85%{opacity:.14}to{transform:translate(90px,-8px);opacity:0}}.hotspot-label{position:fixed;top:0;left:0;z-index:20;pointer-events:none;will-change:transform}.hotspot-label__button{pointer-events:auto;transform:translate(-50%,-100%);display:flex;flex-direction:column;gap:3px;align-items:flex-start;background:var(--paper);border:1px solid var(--ink);padding:10px 14px 9px;cursor:pointer;text-align:left;animation:label-in .15s ease-out;transition:background .14s ease,color .14s ease}.hotspot-label__button:hover,.hotspot-label__button:focus-visible{background:var(--ink);color:var(--paper);outline:none}.hotspot-label__name{font-size:11.5px;font-weight:600;letter-spacing:.16em;white-space:nowrap}.hotspot-label__action{font-size:8.5px;font-weight:500;letter-spacing:.32em;opacity:.6}@keyframes label-in{0%{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}.hud__brand{position:fixed;top:22px;left:26px;z-index:25;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:none;border:none;cursor:pointer;text-align:left;padding:4px}.hud__brand-name{font-size:15px;font-weight:700;letter-spacing:.3em}.hud__brand-sub{font-size:8.5px;font-weight:500;letter-spacing:.56em;opacity:.72}.hud__brand-place{margin-top:3px;font-size:8px;letter-spacing:.42em;opacity:.45}.hud__menu-button{position:fixed;top:24px;right:26px;z-index:25;background:none;border:1px solid transparent;padding:10px 14px;font-size:11px;font-weight:600;letter-spacing:.3em;text-indent:.3em;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.hud__menu-button:hover,.hud__menu-button:focus-visible{border-color:var(--ink);outline:none}.hud__hint{position:fixed;bottom:calc(28px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:25;background:#f1efe9d9;border:1px solid var(--ink);padding:11px 20px;font-size:10px;font-weight:600;letter-spacing:.42em;text-indent:.42em;white-space:nowrap;animation:hint-pulse 2.4s ease-in-out infinite;pointer-events:none}@keyframes hint-pulse{0%,to{opacity:1}50%{opacity:.55}}.hud__orientation{display:none}@media (orientation: portrait) and (pointer: coarse){.hud__orientation{display:block;position:fixed;bottom:calc(78px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:24;font-size:8.5px;letter-spacing:.4em;text-indent:.4em;opacity:0;animation:orientation-note 6s ease forwards;pointer-events:none;white-space:nowrap}}@keyframes orientation-note{0%{opacity:0}12%{opacity:.6}80%{opacity:.6}to{opacity:0}}.overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:stretch}.overlay__backdrop,.menu__backdrop{position:absolute;inset:0;background:#17161452;border:none;cursor:default}.overlay__panel{position:relative;width:min(470px,94vw);height:100%;background:var(--paper);border-right:1px solid var(--ink);padding:32px 38px 36px;display:flex;flex-direction:column;overflow-y:auto;animation:panel-left .23s cubic-bezier(.3,.9,.3,1)}@keyframes panel-left{0%{transform:translate(-24px);opacity:0}to{transform:translate(0);opacity:1}}.overlay__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:34px}.overlay__kicker{font-size:10.5px;font-weight:600;letter-spacing:.28em;padding-top:8px;opacity:.75}.overlay__close,.menu__close{flex:none;width:34px;height:34px;border:1px solid var(--ink);background:none;font-size:19px;line-height:1;cursor:pointer;transition:background .14s ease,color .14s ease}.overlay__close:hover,.overlay__close:focus-visible,.menu__close:hover,.menu__close:focus-visible{background:var(--ink);color:var(--paper);outline:none}.overlay__name{font-size:clamp(42px,9vh,66px);font-weight:700;line-height:.95;letter-spacing:0}.overlay__name span{display:block}.overlay__area{margin-top:14px;font-size:21px;font-weight:600;letter-spacing:.14em;opacity:.75}.overlay__subtitle{list-style:none;margin-top:26px;border-top:1px solid var(--ink)}.overlay__subtitle li{padding:9px 0 8px;border-bottom:1px solid var(--hairline);font-size:12.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.overlay__status{margin-top:26px;align-self:flex-start;border:1px solid var(--ink);padding:8px 12px;font-size:10.5px;font-weight:600;letter-spacing:.26em;text-indent:.26em}.overlay__description{margin-top:24px;font-size:13.5px;line-height:1.65;max-width:36ch;color:var(--ink-soft)}.overlay__details{list-style:none;margin-top:24px;border-top:1px solid var(--ink)}.overlay__details li{padding:10px 0 9px;border-bottom:1px solid var(--hairline);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase}.overlay__soon{margin-top:26px;font-size:10px;font-weight:600;letter-spacing:.4em;opacity:.5}.overlay__cta-row{margin-top:auto;padding-top:34px}.overlay__cta{display:inline-block;border:1px solid var(--ink);background:none;padding:14px 22px;font-size:11px;font-weight:600;letter-spacing:.3em;text-indent:.3em;text-decoration:none;color:var(--ink);cursor:pointer;transition:background .15s ease,color .15s ease}.overlay__cta:hover,.overlay__cta:focus-visible{background:var(--ink);color:var(--paper);outline:none}.overlay__cta--soon{opacity:.45;cursor:default}.overlay__cta--soon:hover{background:none;color:var(--ink)}.menu{position:fixed;inset:0;z-index:40}.menu__panel{position:absolute;top:0;right:0;bottom:0;width:min(410px,100vw);background:var(--paper);border-left:1px solid var(--ink);padding:28px 32px 34px;overflow-y:auto;animation:panel-right .23s cubic-bezier(.3,.9,.3,1)}@keyframes panel-right{0%{transform:translate(26px);opacity:0}to{transform:translate(0);opacity:1}}.menu__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.menu__title{font-size:13px;font-weight:700;letter-spacing:.34em}.menu__section{margin-top:30px;padding-bottom:8px;border-bottom:1px solid var(--ink);font-size:9.5px;font-weight:600;letter-spacing:.36em;opacity:.55}.menu__list{list-style:none}.menu__item{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:13px 6px 12px 2px;border:none;border-bottom:1px solid var(--hairline);background:none;font-size:13px;font-weight:600;letter-spacing:.12em;cursor:pointer;transition:background .13s ease,color .13s ease,padding .13s ease}.menu__item:hover,.menu__item:focus-visible{background:var(--ink);color:var(--paper);padding-left:10px;padding-right:10px;outline:none}.menu__item-meta{font-size:10px;font-weight:500;letter-spacing:.18em;opacity:.6;white-space:nowrap}.menu__foot{margin-top:44px;font-size:8.5px;letter-spacing:.3em;opacity:.4}.debug-panel{position:fixed;left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:60;background:#0c0c0bd9;color:#e8e6df;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:10px;padding:10px 12px;pointer-events:none}.debug-panel__title{font-size:8.5px;letter-spacing:.2em;opacity:.6;margin-bottom:7px}.debug-panel td{padding:1.5px 0}.debug-panel td:first-child{padding-right:12px;opacity:.55}.debug-panel__hint{margin-top:7px;font-size:8.5px;opacity:.45}@media (max-width: 820px){.hud__brand{top:16px;left:18px}.hud__menu-button{top:16px;right:14px}.overlay{align-items:flex-end}.overlay__panel{width:100%;height:auto;max-height:78%;border-right:none;border-top:1px solid var(--ink);padding:26px 26px 30px;animation:panel-up .24s cubic-bezier(.3,.9,.3,1)}.overlay__header{margin-bottom:22px}.overlay__name{font-size:clamp(38px,11vw,54px)}.overlay__cta-row{margin-top:30px;padding-top:0}.menu__panel{padding:24px 24px 30px}}@keyframes panel-up{0%{transform:translateY(26px);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion: reduce){.tree-sway,.ambient-weld,.ambient-glow,.dust,.player__figure.is-walking .player__body,.player__figure.is-walking .player__leg--l,.player__figure.is-walking .player__leg--r,.hud__hint{animation:none!important}.ambient-weld{opacity:.25}.entrance__panel{transition-duration:.14s}.overlay__panel,.menu__panel,.hotspot-label__button{animation:none}}
