@font-face{font-family:Jost;src:url(../fonts/jost.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Marcellus;src:url(../fonts/marcellus.woff2)format("woff2");font-weight:400;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--pine-950:#0a1b16;--pine-900:#0c211b;--pine-800:#12302a;--pine-700:#1b4238;--pine-600:#2a5a4c;--cream:#f7efdc;--sage:#bccdbd;--gold:#e8bd5f;--gold-soft:#f4d68f;--red:#b4262f;--red-bright:#ef5f62;--ease-out:cubic-bezier(.16, 1, .3, 1);--pin:26px;font-family:Jost,system-ui,sans-serif;font-size:16px;line-height:1.35}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--pine-900);color:var(--cream);-webkit-tap-highlight-color:transparent;overflow:hidden}::selection{background:var(--gold);color:var(--pine-950)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}h1,h2,h3,p{margin:0}svg.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1em;height:1em;display:block}.num{font-variant-numeric:tabular-nums}.app{grid-template:"top""stage""panel"minmax(0,1fr)/minmax(0,1fr);height:100dvh;display:grid}.topbar{padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:var(--pine-900);grid-area:top;justify-content:space-between;align-items:center;gap:12px;display:flex}.brand h1{color:var(--gold-soft);font:400 1.5rem/1.1 Marcellus,serif}.status{color:var(--sage);flex-direction:column;font-size:.875rem;display:flex}.status-now{align-items:center;gap:6px;display:inline-flex}.live-dot{background:var(--red-bright);border-radius:50%;width:8px;height:8px;animation:1.8s ease-in-out infinite pulse}.icon-text{background:var(--pine-800);white-space:nowrap;border-radius:22px;align-items:center;gap:6px;min-height:44px;padding:0 14px;font-size:.9375rem;font-weight:500;display:inline-flex}.icon-text:hover{background:var(--pine-700)}.icon-text[aria-expanded=true]{background:var(--pine-700);color:var(--gold-soft)}.stage{flex-direction:column;grid-area:stage;min-height:0;display:flex}.panel{overscroll-behavior:contain;background:var(--pine-900);scrollbar-color:var(--pine-600) transparent;scrollbar-width:thin;grid-area:panel;min-height:0;overflow-y:auto}.map{touch-action:none;-webkit-user-select:none;user-select:none;background:var(--pine-950);cursor:grab;height:38dvh;min-height:230px;position:relative;overflow:hidden}.map:focus-visible{outline-offset:-3px}.map.dragging{cursor:grabbing}.scene,.scene svg{width:100%;height:100%;display:block;position:absolute;inset:0}.map-backdrop{filter:blur(28px)brightness(.32)saturate(.8);pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:-40px}.art-frame{fill:none;stroke:var(--gold);stroke-width:2px;vector-effect:non-scaling-stroke;opacity:.7}.night{transition:opacity 1.2s}.roof-label{font:400 var(--place,30px) "Marcellus", serif;fill:#f7efdc;text-anchor:middle;letter-spacing:.03em;paint-order:stroke;stroke:#0a1b16;stroke-width:5px}.lawn-label{font:400 var(--place,30px) "Marcellus", serif;fill:#d4e6d8;text-anchor:middle;letter-spacing:.03em;paint-order:stroke;stroke:#0d3023;stroke-width:5px}.scene.far .far-hide{display:none}.pool{opacity:0;transition:opacity .9s}.pool.on{opacity:1}.tree-wash{opacity:0;transition:opacity 2s .4s}.bulb{opacity:0;transition:opacity .35s}.tree-star{fill:#6c6a4d;transition:fill .8s}.lights-on .bulb{opacity:1;transition:opacity .7s var(--d,0s)}.lights-on .twinkle{animation:twinkle var(--t,3s) ease-in-out calc(var(--d,0s) + 1.2s) infinite}.lights-on .tree-star{fill:#ffe39b;transition-delay:1s}.lights-on .tree-wash{opacity:1}.burst{fill:none;stroke:#ffe39b;stroke-width:7px;opacity:0;transform-box:fill-box;transform-origin:50%}.burst.go{animation:burst 2.2s var(--ease-out)}.pins{pointer-events:none;position:absolute;inset:0}.pin{width:var(--pin);height:var(--pin);margin:calc(var(--pin) / -2) 0 0 calc(var(--pin) / -2);pointer-events:auto;will-change:transform;touch-action:none;position:absolute;top:0;left:0}.pin:before{content:"";border-radius:50%;position:absolute;inset:-6px}.pin-dot{font-size:calc(var(--pin) * .56);color:#a9bfb0;transition:background .4s, color .4s, border-color .4s, opacity .4s, transform .25s var(--ease-out);background:#16322a;border:1.5px solid #5d7a6c;border-radius:50%;place-items:center;display:grid;position:absolute;inset:0;box-shadow:0 2px 5px #00000080}.pin.is-on .pin-dot{background:var(--gold);color:#2b1d04;border-color:#fff0c2;box-shadow:0 2px 10px #ffc45aa6}.pin.is-soon .pin-dot{color:var(--gold-soft);border-color:var(--gold)}.pin.is-soon .pin-dot:after{content:"";border:2px solid var(--gold);animation:ping 2s var(--ease-out) infinite;border-radius:50%;position:absolute;inset:-2px}.pin.is-done .pin-dot{opacity:.6}.pin.is-dim{opacity:.28}.pin:hover .pin-dot{transform:scale(1.14)}.pin.is-selected{z-index:3}.pin.is-selected .pin-dot{border:2.5px solid #fff;transform:scale(1.32)}.pin-star{background:var(--red);color:#fff;border-radius:50%;place-items:center;width:15px;height:15px;font-size:10px;display:none;position:absolute;top:-5px;right:-5px}.pin-star svg.icon{fill:currentColor}.pin.is-starred .pin-star{display:grid}.pin-label{text-align:center;white-space:nowrap;opacity:0;pointer-events:none;background:#081813e6;border-radius:6px;padding:1px 7px;font-size:.8125rem;font-weight:500;line-height:1.3;transition:opacity .2s;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%)}.pin.has-label .pin-label,.pin.is-selected .pin-label,.pin:hover .pin-label,.pin:focus-visible .pin-label{opacity:1}.pin.lab-t .pin-label{top:auto;bottom:calc(100% + 3px)}.pin.lab-r .pin-label{top:50%;left:calc(100% + 4px);transform:translateY(-50%)}.pin.lab-l .pin-label{top:50%;left:auto;right:calc(100% + 4px);transform:translateY(-50%)}.pin.is-selected,.pin:hover,.pin:focus-visible{z-index:4}.map-tools{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.map-tools button{background:#0c211beb;border-radius:50%;place-items:center;width:40px;height:40px;font-size:18px;display:grid;box-shadow:0 2px 6px #0006}.map-tools button:hover{background:var(--pine-700)}.timebar{background:var(--pine-800);padding:8px 16px 6px}.timebar-head{align-items:baseline;gap:12px;min-height:30px;display:flex}.clock{color:var(--gold-soft);font-variant-numeric:tabular-nums;font:400 1.375rem/1.2 Marcellus,serif}.hint{color:var(--sage);font-size:.875rem}.link-btn{color:var(--gold-soft);text-underline-offset:3px;min-height:30px;font-size:.9375rem;font-weight:500;text-decoration:underline}.track{--thumb:26px;padding-bottom:20px;position:relative}#time{appearance:none;cursor:pointer;background:0 0;width:100%;height:34px;margin:0;display:block}#time::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--gold) var(--pct,0%), var(--pine-600) var(--pct,0%));border-radius:3px;height:6px}#time::-moz-range-track{background:var(--pine-600);border-radius:3px;height:6px}#time::-moz-range-progress{background:var(--gold);border-radius:3px;height:6px}#time::-webkit-slider-thumb{-webkit-appearance:none;width:var(--thumb);height:var(--thumb);background:var(--gold-soft);border:3px solid #fff7df;border-radius:50%;margin-top:-10px;box-shadow:0 2px 6px #0000008c}#time::-moz-range-thumb{background:var(--gold-soft);border:3px solid #fff7df;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 6px #0000008c}.ticks{left:calc(var(--thumb) / 2);right:calc(var(--thumb) / 2);pointer-events:none;height:20px;position:absolute;top:28px}.tick{color:var(--sage);white-space:nowrap;font-size:.75rem;position:absolute;top:4px;transform:translate(-50%)}.tick-lights{color:var(--gold-soft);align-items:center;gap:3px;font-weight:500;display:inline-flex;top:3px}.tick-long{display:none}@media (width>=480px){.tick-long{display:inline}}.alert-settings{background:var(--pine-800);border-bottom:1px solid var(--pine-700);padding:12px 16px}.alert-settings p{max-width:60ch;font-size:.9375rem}.settings-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.pill-btn{background:var(--pine-700);border-radius:20px;align-items:center;gap:7px;min-height:40px;padding:0 14px;font-size:.9375rem;font-weight:500;display:inline-flex}.pill-btn:hover{background:var(--pine-600)}.pill-btn[aria-pressed=true]{background:var(--gold);color:#2b1d04}.pill-btn[aria-pressed=true] svg.icon{fill:currentColor}.pill-btn:disabled{opacity:.6;cursor:default}.push-card{background:var(--pine-800);border-bottom:1px solid var(--pine-700);padding:12px 16px}.push-card h2{color:var(--gold-soft);font:400 1.125rem/1.2 Marcellus,serif}.push-card p{max-width:60ch;margin-top:4px;font-size:.9375rem}.note{color:var(--sage);max-width:60ch;margin-top:8px;font-size:.875rem}.detail{background:var(--pine-800);border-bottom:1px solid var(--pine-700);animation:rise .35s var(--ease-out);padding:14px 16px 16px}.detail-head{align-items:flex-start;gap:12px;display:flex}.detail h2{color:var(--gold-soft);text-wrap:balance;font:400 1.375rem/1.15 Marcellus,serif}.detail-sub{color:var(--sage);margin-top:2px;font-size:.9375rem}.detail-close{border-radius:50%;flex:none;place-items:center;width:40px;height:40px;margin:-6px -8px 0 auto;font-size:20px;display:grid}.detail-close:hover{background:var(--pine-700)}.times{margin:10px 0 0;padding:0;font-size:.9375rem;list-style:none}.times li{justify-content:space-between;gap:16px;padding:3px 0;display:flex}.times li.on{color:var(--gold-soft);font-weight:500}.times li.done{color:var(--sage)}.filters{scrollbar-width:none;z-index:2;background:var(--pine-900);gap:6px;padding:10px 16px 6px;display:flex;position:sticky;top:0;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.chip{background:var(--pine-800);min-height:36px;color:var(--sage);border-radius:18px;flex:none;padding:0 13px;font-size:.9375rem;font-weight:500}.chip:hover{color:var(--cream)}.chip[aria-pressed=true]{background:var(--gold);color:#2b1d04}.schedule-note{color:var(--gold-soft);margin:6px 16px 0;font-size:.875rem}.list{padding:0 8px 12px}.list h2{color:var(--cream);padding:16px 8px 4px;font:400 1.125rem/1.2 Marcellus,serif}.row{border-radius:10px;align-items:center;display:flex}.row:hover{background:var(--pine-800)}.row.selected{background:var(--pine-700)}.row-main{text-align:left;border-radius:10px;flex:1;align-items:center;gap:12px;min-width:0;min-height:52px;padding:7px 8px;display:flex}.row-icon{background:var(--pine-800);width:36px;height:36px;color:var(--sage);border-radius:50%;flex:none;place-items:center;font-size:19px;display:grid}.row:hover .row-icon,.row.selected .row-icon{background:var(--pine-600)}.row.on .row-icon{background:var(--gold);color:#2b1d04}.row-title{font-weight:500;display:block}.row-meta{color:var(--sage);font-size:.875rem;display:block}.row.on .row-meta b{color:var(--gold-soft);font-weight:500}.row.done .row-title{color:var(--sage)}.row-star{width:44px;height:44px;color:var(--sage);border-radius:50%;flex:none;place-items:center;font-size:19px;display:grid}.row-star:hover{color:var(--gold-soft)}.row-star[aria-pressed=true]{color:var(--gold)}.row-star[aria-pressed=true] svg.icon{fill:currentColor}.empty{color:var(--sage);max-width:44ch;padding:20px 8px}.done-toggle{color:var(--sage);text-underline-offset:3px;min-height:36px;margin:8px;text-decoration:underline;display:block}.foot{padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--pine-800);color:var(--sage);font-size:.875rem}.foot a{color:var(--cream);text-underline-offset:3px}.sponsors{flex-wrap:wrap;align-items:center;gap:14px 22px;margin-bottom:12px;display:flex}.sponsors img{width:auto;height:34px;display:block}.alerts{z-index:20;top:calc(8px + env(safe-area-inset-top));pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;left:12px;right:12px}.alert{pointer-events:auto;background:var(--red);color:#fff;width:min(100%,460px);animation:drop .5s var(--ease-out);border-radius:14px;align-items:center;gap:10px;margin-inline:auto;padding:11px 8px 11px 14px;display:flex;box-shadow:0 8px 24px #00000080}.alert-icon{flex:none;font-size:22px}.alert-text{flex:1;min-width:0}.alert-text strong{font-weight:600;line-height:1.2;display:block}.alert-text span{color:#ffe6df;font-size:.875rem}.alert-show{color:#7c1219;background:#fff;border-radius:20px;flex:none;min-height:40px;padding:0 12px;font-size:.875rem;font-weight:600}.alert-close{border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:18px;display:grid}.alert-close:hover{background:#ffffff2e}@media (width>=900px){:root{--pin:34px}.app{grid-template:"stage top""stage panel"minmax(0,1fr)/minmax(0,1fr) 420px}.stage{grid-row:1/span 2;height:100dvh}.map{flex:1;height:auto}.topbar{border-left:1px solid var(--pine-800);padding:16px}.panel{border-left:1px solid var(--pine-800)}.brand h1{font-size:2rem}.timebar{padding:10px 24px 8px}.clock{font-size:1.625rem}.map-tools{top:16px;bottom:auto;right:16px}.alerts{left:16px;right:436px}}@media (width<=899px) and (orientation:landscape){.app{grid-template:"stage top""stage panel"minmax(0,1fr)/minmax(0,1fr) 320px}.stage{grid-row:1/span 2;height:100dvh}.map{flex:1;height:auto;min-height:0}.timebar{padding:2px 16px 0}.timebar-head{min-height:24px}.topbar{padding-top:6px;padding-bottom:6px}.brand h1{font-size:1.25rem}}@media (pointer:coarse) and (width<=899px){#zoom-in,#zoom-out{display:none}}@media (pointer:coarse){.chip,.map-tools button,.alert-close,.alert-show,.pill-btn,.link-btn{min-height:44px}.map-tools button,.alert-close{width:44px;height:44px}#time{height:44px}.ticks{top:34px}}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.45}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes ping{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}@keyframes burst{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(13)}}@keyframes drop{0%{transform:translateY(-120%)}to{transform:none}}@keyframes rise{0%{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}}
