:root{color-scheme:dark;font-family:Avenir Next,Avenir,Segoe UI,sans-serif;font-synthesis:none;--night: #030711;--night-raised: rgba(7, 11, 25, .88);--line: rgba(174, 168, 241, .25);--lavender: #c7b9ff;--lavender-muted: #9994bd;--moon: #8ee8e1;--lantern: #ffc86b;--sun: #ffd76e;--text: #f5f0ff;--danger: #ff9ba8;--good: #7fdaa4}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;touch-action:manipulation}body{min-width:320px;background:var(--night);color:var(--text);overscroll-behavior:none;-webkit-font-smoothing:antialiased}html.gameplay-zoom-locked,html.gameplay-zoom-locked body,html.gameplay-zoom-locked #app{touch-action:none}html.gameplay-zoom-locked.gameplay-zoom-recovery,html.gameplay-zoom-locked.gameplay-zoom-recovery body,html.gameplay-zoom-locked.gameplay-zoom-recovery #app,html.gameplay-zoom-locked.gameplay-zoom-recovery .game-canvas,html.gameplay-zoom-locked.gameplay-zoom-recovery .joystick,html.gameplay-zoom-locked.gameplay-zoom-recovery .mobile-blink{touch-action:pinch-zoom}button,input,select{font:inherit}button,select{cursor:pointer}[hidden]{display:none!important}.game-root{position:fixed;inset:0;isolation:isolate;background:var(--night)}.game-canvas,.label-layer,.hud,.join-screen,.mobile-controls{position:absolute;inset:0}.game-canvas,.label-layer,.hud,.mobile-controls,.settings-button,.quality-select,.diagnostics-toggle,.sound-toggle,.volume-slider{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.game-canvas{z-index:0;display:block;width:100%;height:100%;outline:none;touch-action:none}.label-layer{z-index:1;overflow:hidden;pointer-events:none}.player-label{position:absolute;top:0;left:0;color:#c8b9ff;font-size:12px;font-weight:650;letter-spacing:.025em;white-space:nowrap;text-shadow:0 1px 3px #02030a,0 0 10px rgba(117,95,214,.65);will-change:transform}.player-label.is-local{color:var(--lantern);font-size:13px;text-shadow:0 1px 3px #02030a,0 0 12px rgba(255,184,74,.68)}.player-label.is-local.is-veiled{color:#aebcff;text-shadow:0 1px 3px #02030a,0 0 12px rgba(116,132,232,.56)}.player-label.is-sunlit{color:#ffe09a;text-shadow:0 1px 3px #100803,0 0 13px rgba(255,190,55,.82)}.join-screen{z-index:20;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(72px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#030711e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.join-card{width:min(430px,100%);padding:39px 38px 34px;border:1px solid var(--line);border-radius:18px;background:#070b19eb;box-shadow:0 26px 80px #00000085,inset 0 1px #ffffff09;text-align:center}.join-title{margin:0;color:var(--lavender);max-width:100%;font-size:clamp(30px,9vw,40px);font-weight:500;letter-spacing:clamp(.12em,1vw,.16em);line-height:1;text-indent:clamp(.12em,1vw,.16em);text-shadow:0 0 30px rgba(139,114,240,.24);white-space:nowrap}.join-description{max-width:340px;margin:22px auto 28px;color:#b7afd0;font-size:14px;line-height:1.6}.join-label{display:grid;gap:9px;color:var(--lavender-muted);font-size:11px;font-weight:650;letter-spacing:.14em;text-align:left;text-transform:uppercase}.join-input{width:100%;height:52px;padding:0 16px;border:1px solid rgba(178,170,237,.3);border-radius:10px;outline:none;background:#02050eb8;color:var(--text);font-size:16px;font-weight:500;letter-spacing:.02em;text-transform:none;transition:border-color .15s ease,box-shadow .15s ease}.join-input:focus{border-color:#8ee8e1b8;box-shadow:0 0 0 3px #8ee8e11a}.play-button{width:100%;min-height:51px;margin-top:18px;border:1px solid rgba(255,209,126,.64);border-radius:10px;background:#d79e45;color:#120c05;font-size:13px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;box-shadow:0 10px 30px #ce8d352b;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.play-button:hover:not(:disabled){background:var(--lantern);box-shadow:0 12px 34px #ffb84a40;transform:translateY(-1px)}.play-button:focus-visible,.settings-button:focus-visible,.mobile-blink:focus-visible,.quality-select:focus-visible,.diagnostics-toggle:focus-visible,.sound-toggle:focus-visible,.volume-slider:focus-visible{outline:2px solid var(--moon);outline-offset:3px}.play-button:disabled,.join-input:disabled{cursor:wait;opacity:.6}.join-error,.join-connection{min-height:17px;margin:10px 0 -2px;font-size:12px;line-height:1.4}.join-error{color:var(--danger)}.join-connection{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:13px;color:var(--lavender-muted)}.join-connection-dot{width:6px;height:6px;border-radius:50%;background:#8a829f}.join-connection[data-state=good]{color:var(--good)}.join-connection[data-state=good] .join-connection-dot{background:var(--good);box-shadow:0 0 8px #7fdaa4b3}.join-connection[data-state=warn]{color:#eab5bd}.join-connection[data-state=warn] .join-connection-dot{background:var(--danger)}.join-controls{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:50%;width:calc(100% - 36px);max-width:760px;margin:0;color:#dad0ffb3;font-size:13px;font-weight:500;letter-spacing:.055em;line-height:1.4;text-align:center;text-shadow:0 1px 9px rgba(8,5,22,.82);transform:translate(-50%)}.hud{z-index:5;color:var(--text);pointer-events:none}.objective-chip,.leaderboard-panel,.veil-status,.sunlit-status,.status-strip,.connection-pill,.settings-panel{border:1px solid var(--line);background:var(--night-raised);box-shadow:0 13px 44px #00000047;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.veil-status,.sunlit-status{position:absolute;bottom:max(78px,calc(env(safe-area-inset-bottom) + 61px));left:50%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:min(540px,calc(100vw - 34px));padding:10px 13px;border-color:#917ee875;border-radius:11px;background:linear-gradient(105deg,#141130f0,#080e21e6);box-shadow:0 12px 38px #0000004d,inset 0 0 24px #745ed014;transform:translate(-50%)}.sunlit-status{border-color:#ffc0438f;background:linear-gradient(105deg,#361c06f2,#170f09e8);box-shadow:0 12px 38px #0000004d,inset 0 0 28px #ffa7271a}.veil-icon{color:#9daaff;font-size:17px;text-shadow:0 0 13px rgba(126,116,255,.85)}.sunlit-icon{color:#fff1b8;font-size:18px;text-shadow:0 0 7px rgba(255,248,208,.92),0 0 16px rgba(255,175,33,.86)}.veil-copy,.sunlit-copy{display:grid;gap:2px;min-width:0}.veil-label{color:#c2c7ff;font-size:11px;letter-spacing:.18em}.sunlit-label{color:#ffe69b;font-size:11px;letter-spacing:.18em}.veil-reminder{overflow:hidden;color:#aaa8ca;font-size:10px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.sunlit-reminder{overflow:hidden;color:#d4bd91;font-size:10px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.veil-time{color:#a5ecff;font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:.03em}.sunlit-time{color:#fff0a8;font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:.03em;text-shadow:0 0 12px rgba(255,177,42,.5)}.objective-chip{position:absolute;top:max(17px,env(safe-area-inset-top));left:max(17px,env(safe-area-inset-left));display:flex;align-items:center;gap:13px;min-width:310px;padding:17px 20px;border-radius:12px}.objective-mark{color:var(--lavender);font-size:17px;text-shadow:0 0 13px rgba(160,138,255,.8)}.objective-chip div{display:grid;gap:4px}.objective-title{color:var(--lavender);font-size:19px;font-weight:600;letter-spacing:.31em}.objective-copy{color:#aaa2c3;font-size:13px;letter-spacing:.035em}.leaderboard-panel{position:absolute;top:max(66px,calc(env(safe-area-inset-top) + 57px));right:max(17px,env(safe-area-inset-right));width:244px;padding:18px 19px 16px;border-radius:12px}.leaderboard-title{margin:0 0 10px;color:var(--lavender);font-size:15px;font-weight:650;letter-spacing:.2em;text-transform:uppercase}.leaderboard-list{display:grid;gap:7px;margin:0;padding:0;list-style:none}.leaderboard-list li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:baseline;gap:7px;min-width:0;color:#d3cce4;font-size:14px}.leaderboard-list li.is-local{color:var(--lantern)}.leader-rank{color:#77738e;text-align:right}.leader-name{display:flex;align-items:baseline;gap:5px;min-width:0}.leader-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-crown{flex:none}.leader-score,.hud-stat-value{font-variant-numeric:tabular-nums}.status-strip{position:absolute;bottom:max(17px,env(safe-area-inset-bottom));left:50%;display:flex;align-items:stretch;min-width:470px;border-radius:12px;opacity:.88;transform:translate(-50%)}.hud-stat{position:relative;display:flex;flex:1 1 0;align-items:baseline;justify-content:center;gap:8px;min-width:0;padding:14px 20px}.hud-stat+.hud-stat:before{position:absolute;inset:11px auto 11px 0;width:1px;background:#b5aae738;content:""}.hud-stat-label{color:#a9a1c1;font-size:14px}.hud-stat-value{color:var(--lantern);font-size:16px;font-weight:700}.hud-stat[data-stat=blink][data-state]:not([data-state=ready]):not([data-state=sunlit-ready]) .hud-stat-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.hud-stat[data-state=extinguish] .hud-stat-value,.hud-stat[data-state=flash] .hud-stat-value{color:var(--lavender)}.hud-stat[data-state=cooldown] .hud-stat-value{color:#bcb4d3}.hud-stat[data-state=sunlit-ready] .hud-stat-value,.hud-stat[data-state=sunburst-extinguish] .hud-stat-value,.hud-stat[data-state=sunburst-flash] .hud-stat-value{color:#fff0ac;text-shadow:0 0 12px rgba(255,183,47,.54)}.hud-stat[data-state=late] .hud-stat-value{color:#ffc98f;text-shadow:0 0 12px rgba(255,166,82,.5)}.hud-stat[data-state=dawn] .hud-stat-value{color:#ffe6b8;text-shadow:0 0 12px rgba(255,205,130,.55)}.connection-pill{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(19px,env(safe-area-inset-bottom));display:grid;grid-template-columns:max-content max-content;align-items:center;column-gap:8px;row-gap:3px;padding:9px 11px;border-radius:9px;color:#aaa4c5;font-size:10px;letter-spacing:.04em;white-space:nowrap}.connection-diagnostics{grid-row:2;grid-column:2;color:#817b9b;font-family:SFMono-Regular,Consolas,monospace;font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:0;line-height:1.2}.connection-dot{grid-row:1;grid-column:1;width:7px;height:7px;border-radius:50%;background:#dbad5f;box-shadow:0 0 9px currentColor}.connection-text{grid-row:1;grid-column:2}.connection-pill[data-state=connected] .connection-dot{background:var(--good)}.connection-pill[data-state=offline] .connection-dot,.connection-pill[data-state=error] .connection-dot{background:var(--danger)}.settings-button{position:absolute;top:max(17px,env(safe-area-inset-top));right:max(17px,env(safe-area-inset-right));width:36px;height:36px;padding:0;border:0;background:transparent;color:var(--lavender);font-size:24px;line-height:1;pointer-events:auto;text-shadow:0 0 14px rgba(153,124,255,.38)}.settings-panel{position:absolute;top:max(61px,calc(env(safe-area-inset-top) + 44px));right:max(17px,env(safe-area-inset-right));display:none;width:190px;padding:13px;border-radius:10px;pointer-events:auto}.settings-panel[data-open]{display:grid;gap:10px}.quality-label{display:grid;gap:7px;color:#aaa2c3;font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.quality-select{width:100%;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#070b18;color:var(--text);font-size:12px;text-transform:none}.diagnostics-toggle,.sound-toggle{width:100%;min-height:34px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#070b18;color:#aaa2c3;font-size:10px;font-weight:650;letter-spacing:.05em;text-align:left}.diagnostics-toggle[aria-pressed=true],.sound-toggle[aria-pressed=true]{border-color:#8ee8e180;color:var(--moon)}.volume-label{display:grid;gap:7px;color:#aaa2c3;font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.volume-slider{width:100%;height:22px;margin:0;accent-color:var(--lantern)}.event-banner{position:absolute;top:max(72px,calc(env(safe-area-inset-top) + 56px));left:50%;z-index:7;display:grid;gap:3px;max-width:min(78vw,400px);padding:11px 22px;border:1px solid rgba(142,232,225,.35);border-radius:12px;background:#060a18d1;text-align:center;opacity:0;transform:translate(-50%,-8px);transition:opacity .45s ease,transform .45s ease;pointer-events:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.event-banner[data-visible]{opacity:1;transform:translate(-50%)}.event-banner-title{color:var(--moon);font-size:15px;font-weight:750;letter-spacing:.34em;text-shadow:0 0 18px rgba(142,232,225,.45)}.event-banner[data-tone=sun]{border-color:#ffc14475;background:#211407db}.event-banner[data-tone=sun] .event-banner-title{color:#ffe595;text-shadow:0 0 18px rgba(255,177,36,.62)}.event-banner[data-tone=sun] .event-banner-message{color:#ead5ae}.event-banner[data-tone=shade]{border-color:#ff8a428c;background:#1f0906e0}.event-banner[data-tone=shade] .event-banner-title{color:#ffb08a;text-shadow:0 0 18px rgba(255,110,46,.62)}.event-banner[data-tone=shade] .event-banner-message{color:#ecc4ad}.event-banner-message{color:#c5d7e4;font-size:11.5px;letter-spacing:.03em}.dawn-overlay{position:absolute;inset:0;z-index:8;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 38%,#ffcd8c29,#0808148c 72%);opacity:0;transition:opacity .6s ease;pointer-events:none}.dawn-overlay[data-visible]{opacity:1}.dawn-copy{display:grid;gap:6px;padding:22px 40px;border:1px solid rgba(255,214,150,.4);border-radius:16px;background:#140e08c7;text-align:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.dawn-kicker{color:#ffe6b8;font-size:13px;font-weight:750;letter-spacing:.42em;text-shadow:0 0 20px rgba(255,194,110,.6)}.dawn-crown{color:#d9c9a8;font-size:11px;letter-spacing:.2em;text-transform:uppercase}.dawn-winner{color:#fff3d8;font-size:22px;font-weight:700;text-shadow:0 0 24px rgba(255,214,140,.55)}.dawn-countdown{color:#c8b795;font-size:12px;letter-spacing:.05em}.moth-panel{position:absolute;top:max(126px,calc(env(safe-area-inset-top) + 110px));left:50%;z-index:7;display:flex;gap:12px;align-items:center;max-width:min(84vw,380px);padding:11px 16px;border:1px solid rgba(199,185,255,.3);border-radius:12px;background:#060a18d9;opacity:0;transform:translate(-50%,-8px);transition:opacity .4s ease,transform .4s ease;pointer-events:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.moth-panel[data-visible]{opacity:.88;transform:translate(-50%)}.moth-panel-icon{flex-shrink:0;width:44px;height:44px;filter:drop-shadow(0 0 10px rgba(180,230,255,.35))}.moth-panel-icon svg{width:100%;height:100%}.moth-panel-copy{display:grid;gap:3px;text-align:left}.moth-panel-name{color:var(--text);font-size:13px;font-weight:750;letter-spacing:.04em}.moth-panel-description{color:#b9cbd9;font-size:11.5px;line-height:1.35}.gameplay-tip{position:absolute;bottom:max(82px,calc(env(safe-area-inset-bottom) + 65px));left:50%;z-index:6;max-width:min(68vw,560px);margin:0;padding:6px 13px;border-radius:999px;background:#0307114d;color:#e2dcf5;font-size:12px;font-weight:500;letter-spacing:.035em;line-height:1.4;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 12px rgba(121,103,198,.32);opacity:0;transform:translate(-50%,4px);transition:opacity .65s ease,transform .65s ease;pointer-events:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.gameplay-tip[data-visible]{opacity:.68;transform:translate(-50%)}.veil-status:not([hidden])~.gameplay-tip,.sunlit-status:not([hidden])~.gameplay-tip{opacity:0}.mobile-controls{z-index:8;display:none;pointer-events:none}.joystick,.mobile-blink{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.joystick{left:max(21px,env(safe-area-inset-left));width:118px;height:118px;border:1px solid rgba(178,170,237,.28);border-radius:50%;background:#060a1675;box-shadow:inset 0 0 35px #00000052;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.joystick:before{position:absolute;top:50%;left:50%;width:4px;height:4px;border-radius:50%;background:#c7b9ff94;content:"";transform:translate(-50%,-50%)}.joystick-thumb{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px);width:50px;height:50px;border:1px solid rgba(142,232,225,.46);border-radius:50%;background:#356b709e;box-shadow:0 0 22px #5cded724;will-change:transform}.mobile-blink{right:max(23px,env(safe-area-inset-right));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:84px;height:84px;padding:8px;border:1px solid rgba(199,185,255,.55);border-radius:50%;background:#261e48b8;color:#ddd4ff;font-size:11px;font-weight:750;letter-spacing:.13em;box-shadow:0 0 26px #8b72f024,inset 0 0 22px #816cdd1f}.mobile-blink-label,.mobile-blink-hint{display:block;line-height:1}.mobile-blink-hint{color:#ddd4ffad;font-size:7px;font-weight:650;letter-spacing:.08em}.mobile-blink:disabled{opacity:.62}.mobile-blink:active{background:#51408fcc;transform:scale(.95)}.hud[data-sunlit]~.mobile-controls .mobile-blink[data-state=ready]{border-color:#ffe291db;background:#5b350ad1;color:#fff1b2;box-shadow:0 0 30px #ffad2457,inset 0 0 24px #ffd86f29}.hud[data-sunlit]~.mobile-controls .mobile-blink[data-state=ready] .mobile-blink-hint{color:transparent;font-size:0}.hud[data-sunlit]~.mobile-controls .mobile-blink[data-state=ready] .mobile-blink-hint:after{color:#ffe49a;content:"SUNBURST";font-size:7px}@media(hover:none),(pointer:coarse),(max-width:720px){.mobile-controls:not([hidden]){display:block}.hud-stat[data-stat=blink]{display:none}.status-strip{bottom:max(150px,calc(env(safe-area-inset-bottom) + 126px));width:min(94vw,390px);min-width:0}.veil-status,.sunlit-status{bottom:max(198px,calc(env(safe-area-inset-bottom) + 174px));width:min(92vw,390px);gap:7px;padding:8px 10px}.veil-icon{font-size:13px}.sunlit-icon{font-size:14px}.veil-label,.sunlit-label{font-size:9px}.veil-reminder,.sunlit-reminder{font-size:8px;white-space:normal}.veil-time,.sunlit-time{font-size:11px}.gameplay-tip{bottom:max(198px,calc(env(safe-area-inset-bottom) + 174px));max-width:min(82vw,440px);padding:5px 10px;font-size:10.5px;line-height:1.35}.connection-pill{top:max(78px,calc(env(safe-area-inset-top) + 64px));bottom:auto;left:max(11px,env(safe-area-inset-left));right:auto}.objective-chip{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));width:min(47vw,186px);min-width:0;padding:10px 11px}.objective-mark{display:none}.objective-title{font-size:11px;letter-spacing:.22em}.objective-copy{font-size:9px;line-height:1.25}.settings-button{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:30px;height:30px;font-size:20px}.settings-panel{top:max(48px,calc(env(safe-area-inset-top) + 38px));right:max(9px,env(safe-area-inset-right))}.quality-select{font-size:16px}.leaderboard-panel{top:max(50px,calc(env(safe-area-inset-top) + 40px));right:max(9px,env(safe-area-inset-right));width:min(42vw,160px);padding:10px 11px}.leaderboard-title{margin-bottom:7px;font-size:9px;letter-spacing:.12em}.leaderboard-list{gap:4px}.leaderboard-list li{grid-template-columns:15px minmax(0,1fr) auto;gap:4px;font-size:9px}.hud-stat{gap:5px;padding:10px 8px}.hud-stat-label{font-size:9px}.hud-stat-value{font-size:11px}.player-label{font-size:10px}}@media(max-width:1080px),(hover:none),(pointer:coarse){.event-banner{top:max(116px,calc(env(safe-area-inset-top) + 102px));left:max(11px,env(safe-area-inset-left));right:calc(max(17px,env(safe-area-inset-right)) + 252px);width:auto;max-width:280px;transform:translateY(-8px)}.event-banner[data-visible]{transform:translateY(0)}}@media(hover:none),(pointer:coarse),(max-width:720px){.event-banner{right:calc(max(9px,env(safe-area-inset-right)) + min(42vw,160px) + 8px);padding:10px 12px}.event-banner-title{font-size:13px;letter-spacing:.22em}.event-banner-message{font-size:10.5px;line-height:1.35}}@media(max-width:520px){.join-card{padding:34px 23px 28px;border-radius:15px}.join-description{font-size:13px}.join-controls{display:none}.joystick{width:106px;height:106px}.mobile-blink{width:76px;height:76px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
