:root{--display:"Fredoka", "Trebuchet MS", sans-serif;--sans:"Nunito", "Trebuchet MS", system-ui, sans-serif;--ink:#1a1633;--ocean:#2bb0e8;--ocean-deep:#1a9ed4;--sun:#ffe14a;--pop:#ff3b1f;--pop-dark:#c81e0c;--mint:#22e38a;--ice:#7af0ff;color:var(--ink);font:16px/1.4 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{background:var(--ocean);touch-action:none;height:100%;margin:0;overflow:hidden}#overlay-root{pointer-events:none}button:focus-visible,a:focus-visible{outline:3px solid var(--pop);outline-offset:2px}.app{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid;overflow:hidden}.stage{min-height:0;position:relative;overflow:hidden}.topbar{z-index:3;background:linear-gradient(#fff36b,#ffd23f);border-bottom:4px solid #1a1633;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px 8px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand h1{font-family:var(--display);letter-spacing:.02em;color:var(--pop);margin:0;font-size:clamp(1.4rem,3vw,2rem);line-height:1}.tagline,.status,.credit{margin:0}.tagline{color:#5a1d12;font-size:.78rem}.status{color:#1a1633;text-align:center;flex:1;font-weight:700}.controls{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.chip{font:inherit;color:#1a1633;cursor:pointer;background:#fff;border:2px solid #1a1633;border-radius:999px;padding:6px 12px;font-weight:700}.chip.on,.chip:hover{background:var(--pop);color:#fff;border-color:var(--pop-dark)}.map-wrap{touch-action:none;cursor:grab;position:absolute;inset:0;overflow:hidden}.map-wrap:active{cursor:grabbing}.world,.snow-canvas{position:absolute;inset:0}.snow-canvas{pointer-events:none;z-index:2}.ocean-fill{fill:#2bb0e8}.sphere{fill:#6edbff;stroke:#1a1633;stroke-width:3px}.land{fill:#6fe36a;stroke:#1a1633;stroke-width:1.25px;stroke-linejoin:round;stroke-linecap:round}.pin{cursor:pointer}.hit{fill:#0000}.peak{fill:#8b5a2b;stroke:#1a1633;stroke-width:1.1px;stroke-linejoin:round}.pin.snowing .peak{fill:#fff;stroke:#1a1633}.pin.selected .peak{stroke:#ffe14a;stroke-width:2px}.halo{fill:#ffffff73;stroke:none}.pin-label{fill:#1a1633;paint-order:stroke;stroke:#ffe14a;stroke-width:3px;pointer-events:none;font-size:11px;font-weight:800;display:none}.pin:hover .pin-label,.pin.selected .pin-label{display:block}.resort-card{pointer-events:auto;touch-action:none;z-index:40;background:#fffef2;border:3px solid #1a1633;border-radius:18px;width:280px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:14px 16px 12px;font-size:16px;position:fixed;overflow:auto;box-shadow:6px 8px #ff3b1f}.resort-card h2{font-family:var(--display);overflow-wrap:anywhere;margin:0 0 8px;padding-right:28px;font-size:1.35rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#c81e0c;margin:0;font-size:.72rem}.badge{border-radius:999px;margin:0 0 12px;padding:3px 9px;font-size:.82rem;font-weight:800;display:inline-block}.badge.snow{color:#004e7a;background:#7af0ff}.badge.dry{color:#5a1d12;background:#ffe14a}.resort-card dl{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.resort-card dt{color:#6a2c1f;font-size:.72rem}.resort-card dd{margin:2px 0 0;font-size:1.1rem;font-weight:800}.close{cursor:pointer;color:#1a1633;background:0 0;border:0;font-size:1.5rem;line-height:1;position:absolute;top:8px;right:10px}.credit{text-align:center;color:#1a1633;z-index:3;background:#ffd23f;border-top:3px solid #1a1633;padding:6px 12px 8px;font-size:.72rem}.credit a{color:var(--pop)}@media (width<=720px){.topbar{flex-wrap:wrap;padding:8px 12px}.status{flex-basis:100%;order:3;font-size:.85rem}.resort-card{width:min(280px,100vw - 24px)}}
