:root{color:#e2e8f0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#020817;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100svh;margin:0;overflow-x:hidden}button,input,textarea,select{font:inherit}img{max-width:100%;display:block}#root{min-height:100svh}.lan-page{--lan-accent:#7dd3fc;min-height:100svh;padding:24px max(12px, env(safe-area-inset-right)) 24px max(12px, env(safe-area-inset-left));color:#e2efff;background-color:#020817;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.lan-page:before{z-index:0;background-image:linear-gradient(180deg, #01030f40, #04081780), var(--lan-background-image);content:"";background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.install-app-button{z-index:10;right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));border:1px solid var(--lan-accent);box-shadow:0 0 18px color-mix(in srgb, var(--lan-accent) 28%, transparent);color:#f8fafc;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:#020817e6;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:.78rem;font-weight:800;transition:background .18s,box-shadow .18s,transform .18s;display:inline-flex;position:fixed}.install-app-button:hover{background:color-mix(in srgb, var(--lan-accent) 24%, #020817f0);box-shadow:0 0 24px color-mix(in srgb, var(--lan-accent) 48%, transparent);transform:translateY(-2px)}.placeholder-page{place-items:center;min-height:100svh;padding:24px;display:grid}.placeholder-card{z-index:1;border:1px solid color-mix(in srgb, var(--lan-accent) 45%, transparent);width:min(100%,560px);box-shadow:inset 0 0 24px color-mix(in srgb, var(--lan-accent) 12%, transparent), 0 0 30px color-mix(in srgb, var(--lan-accent) 16%, transparent);text-align:center;background:#020817c7;border-radius:22px;padding:clamp(28px,6vw,56px);position:relative}.placeholder-icon{color:var(--lan-accent);text-shadow:0 0 18px color-mix(in srgb, var(--lan-accent) 80%, transparent);margin-bottom:18px;font-size:2rem;display:block}.placeholder-kicker{color:var(--lan-accent);letter-spacing:.2em;text-transform:uppercase;margin:0 0 10px;font-size:.8rem;font-weight:800}.placeholder-card h1{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,6vw,4rem);line-height:1}.placeholder-copy{color:#cbd5e1;margin:18px 0 0;font-size:1rem}.admin-page{color:#e2efff;background:#020817;min-height:100svh;padding:32px 16px}.admin-panel{background:linear-gradient(145deg,#0f172af5,#020817e6);border:1px solid #7dd3fc59;border-radius:18px;width:min(100%,980px);margin:0 auto;padding:clamp(24px,5vw,48px);box-shadow:0 18px 50px #00000047,inset 0 0 24px #7dd3fc0f}.admin-heading,.admin-section-heading,.admin-actions{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.admin-heading h1{color:#f8fafc;letter-spacing:-.04em;text-shadow:none;-webkit-text-stroke:0;margin:8px 0 10px;font-size:clamp(2rem,5vw,3.6rem)}.admin-heading p:not(.panel-label),.admin-section-heading p{color:#94a3b8;margin:0}.admin-lan-select,.admin-field{color:var(--lan-accent,#7dd3fc);letter-spacing:.1em;text-transform:uppercase;gap:8px;font-size:.7rem;font-weight:800;display:grid}.admin-lan-select select,.admin-field input,.admin-field textarea,.admin-schedule-row input{color:#f8fafc;letter-spacing:0;text-transform:none;background:#020817c7;border:1px solid #7dd3fc4d;border-radius:8px;min-width:0;padding:10px 12px;font-size:.95rem}.admin-field textarea{resize:vertical}.admin-form-grid{grid-template-columns:minmax(160px,.45fr) minmax(0,1fr);gap:20px;margin-top:36px;display:grid}.admin-field-wide{grid-column:2}.admin-field-wide+.admin-field-wide{grid-column:1/-1}.admin-schedule{border-top:1px solid #7dd3fc33;margin-top:36px;padding-top:24px}.admin-section-heading h2{color:#f8fafc;margin:0 0 6px;font-size:1.35rem}.admin-section-heading button,.admin-schedule-row button,.admin-actions button{color:#e0f2fe;cursor:pointer;background:#7dd3fc1a;border:1px solid #7dd3fc73;border-radius:8px;padding:9px 13px;font-weight:800}.admin-section-heading button:disabled{cursor:not-allowed;opacity:.45}.admin-schedule-list{gap:8px;margin-top:18px;display:grid}.admin-schedule-row{grid-template-columns:90px minmax(0,1fr) 80px auto;gap:8px;display:grid}.admin-actions{justify-content:flex-start;align-items:center;margin-top:32px}.admin-save-button{border-color:var(--lan-accent,#7dd3fc)!important;background:color-mix(in srgb, var(--lan-accent,#7dd3fc) 22%, transparent)!important}.admin-actions span{color:#4ade80;font-size:.85rem;font-weight:700}.hero-stage{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(100%,1500px);padding:60px 0 24px;display:flex;position:relative}.event-stage{min-height:calc(100svh - 48px);padding-top:24px}.event-stage:before{z-index:0;background:radial-gradient(ellipse at 50% 38%, color-mix(in srgb, var(--lan-accent) 32%, transparent), transparent 68%);content:"";opacity:0;pointer-events:none;animation:1.1s ease-out both lan-start-flash;position:absolute;inset:0}.event-stage:after{z-index:0;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--lan-accent) 75%, transparent);width:min(42vw,360px);box-shadow:0 0 28px color-mix(in srgb, var(--lan-accent) 45%, transparent);content:"";opacity:0;pointer-events:none;border-radius:50%;animation:1.05s ease-out both lan-start-wave;position:absolute;top:40%;left:50%}.lan-start-confetti{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.lan-start-confetti span{top:-12vh;left:var(--confetti-x);background:var(--confetti-color,#facc15);width:8px;height:16px;box-shadow:0 0 8px color-mix(in srgb, var(--confetti-color) 55%, transparent);opacity:0;animation:lan-confetti-rain 3.8s cubic-bezier(.2, .65, .3, 1) var(--confetti-delay) both;border-radius:2px;position:absolute}.lan-start-confetti span:nth-child(3n){--confetti-color:#22c55e}.lan-start-confetti span:nth-child(3n+1){--confetti-color:#06b6d4}.lan-start-confetti span:nth-child(4n){--confetti-color:#ef4444;border-radius:50%;width:9px;height:9px}.lan-start-confetti span:nth-child(5n){--confetti-color:#f8fafc}.lan-start-confetti span:nth-child(7n){--confetti-color:#facc15}.lan-start-confetti span:nth-child(11n){--confetti-color:var(--lan-accent)}.countdown-stage{justify-content:flex-end;min-height:calc(100svh - 48px);padding-top:24px;padding-bottom:clamp(32px,8vh,96px)}.event-view{z-index:1;width:min(100%,1320px);animation:.85s cubic-bezier(.2,.8,.2,1) both lan-start-reveal}@keyframes lan-start-flash{0%{opacity:0}12%{opacity:.9}to{opacity:0}}@keyframes lan-start-wave{0%{opacity:.8;transform:translate(-50%,-50%)scale(.2)}to{opacity:0;transform:translate(-50%,-50%)scale(2.8)}}@keyframes lan-confetti-rain{0%{opacity:0;transform:translate3d(0, -10vh, 0) rotate(var(--confetti-rotation))}8%{opacity:1}to{opacity:0;transform:translate3d(var(--confetti-drift), 110vh, 0) rotate(calc(var(--confetti-rotation) + 540deg))}}@keyframes lan-start-reveal{0%{opacity:0}to{opacity:1}}.event-header{margin-bottom:28px;padding-top:30px}.event-kicker,.panel-label,.schedule-date{color:var(--lan-accent);letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:.9rem;font-weight:700}.event-kicker{border:1px solid color-mix(in srgb, var(--lan-accent) 60%, transparent);background:color-mix(in srgb, var(--lan-accent) 14%, #0f172adb);letter-spacing:.16em;width:max-content;text-shadow:0 0 14px color-mix(in srgb, var(--lan-accent) 85%, transparent);box-shadow:0 0 18px color-mix(in srgb, var(--lan-accent) 28%, transparent), inset 0 0 14px color-mix(in srgb, var(--lan-accent) 12%, transparent);border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:clamp(1.05rem,2vw,1.4rem);display:inline-flex;position:absolute;top:clamp(10px,2vh,24px);left:50%;transform:translate(-50%)}.live-indicator{background:#4ade80;border-radius:50%;flex:none;width:10px;height:10px;animation:1.8s ease-in-out infinite live-pulse;box-shadow:0 0 12px #4ade80f2}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.78)}}@media (width>=961px){.event-stage{justify-content:flex-end;padding-bottom:clamp(32px,1vh,96px)}.dashboard-metrics-mobile{display:none}}.page-top-left-time{z-index:3;border:1px solid color-mix(in srgb, var(--lan-accent) 35%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--lan-accent) 14%, transparent);background:#0208179e;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:13px 22px;display:inline-flex;position:fixed;top:24px;left:24px}.page-top-left-time-icon{font-size:1.2rem;line-height:1}.page-top-left-time strong{color:#f8fafc;letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:1.45rem;font-weight:700;line-height:1}.event-header h1{letter-spacing:-.06em;margin:8px 0 20px;font-size:clamp(3.5rem,9vw,8rem)}.network-status{border:1px solid color-mix(in srgb, var(--lan-accent) 40%, transparent);color:#dbeafe;letter-spacing:.08em;text-transform:uppercase;background:#0f172aad;border-radius:999px;align-items:center;gap:10px;padding:11px 18px;font-size:1rem;font-weight:700;display:inline-flex}.network-latency{border-left:1px solid color-mix(in srgb, currentColor 30%, transparent);color:var(--lan-accent);font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap;padding-left:10px}.network-details{color:#f8fafc;letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px;font-size:.8rem;font-weight:700;display:flex}.network-details span{border:1px solid color-mix(in srgb, var(--lan-accent) 55%, transparent);box-shadow:0 0 10px color-mix(in srgb, var(--lan-accent) 18%, transparent);white-space:nowrap;background:#020817e0;border-radius:999px;padding:6px 10px}.status-dot{background:#4ade80;border-radius:50%;width:10px;height:10px;box-shadow:0 0 12px #4ade80e6}.is-offline .status-dot{background:#fb7185;box-shadow:0 0 12px #fb7185e6}.desktop-local-time{display:none}.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.dashboard-metrics-mobile{grid-template-columns:1fr}.metric-card{border:1px solid color-mix(in srgb, var(--lan-accent) 32%, transparent);min-width:0;min-height:68px;box-shadow:inset 0 0 18px color-mix(in srgb, var(--lan-accent) 8%, transparent), 0 8px 20px #00000024;text-align:left;background:linear-gradient(135deg,#0f172adb,#020817b3);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 16px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:relative;overflow:hidden}.metric-card:after{background:var(--lan-accent);height:2px;box-shadow:0 0 12px color-mix(in srgb, var(--lan-accent) 80%, transparent);content:"";opacity:.7;position:absolute;bottom:0;left:0;right:0}.metric-card:hover{border-color:color-mix(in srgb, var(--lan-accent) 62%, transparent);box-shadow:inset 0 0 18px color-mix(in srgb, var(--lan-accent) 13%, transparent), 0 10px 24px #00000038;transform:translateY(-2px)}.metric-label{min-width:0;color:var(--lan-accent);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;font-size:.68rem;font-weight:700;display:flex}.metric-label>span:first-child{border:1px solid color-mix(in srgb, var(--lan-accent) 38%, transparent);background:color-mix(in srgb, var(--lan-accent) 12%, #020817cc);border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-size:.95rem;display:grid}.metric-value{color:#f8fafc;font-variant-numeric:tabular-nums;justify-self:end;font-size:clamp(1.25rem,2.4vw,2rem);line-height:1}.metric-value-small{font-size:clamp(1rem,1.8vw,1.35rem)}.latency-heartbeat-panel{border:1px solid color-mix(in srgb, var(--lan-accent) 40%, transparent);box-shadow:inset 0 0 18px color-mix(in srgb, var(--lan-accent) 12%, transparent), 0 0 18px color-mix(in srgb, var(--lan-accent) 10%, transparent);background:#0f172ab8;border-radius:18px;margin-top:22px;padding:18px 18px 14px}.heartbeat-header-wrap{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.heartbeat-title-wrap{flex-direction:column;gap:4px;display:flex}.heartbeat-window{color:#cbd5e1;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.heartbeat-summary{grid-template-columns:repeat(4,minmax(74px,1fr));gap:8px;width:min(100%,440px);margin-left:auto;display:grid}.heartbeat-stat{border-left:1px solid color-mix(in srgb, var(--lan-accent) 28%, transparent);background:color-mix(in srgb, var(--lan-accent) 5%, transparent);flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:8px 10px;display:flex}.heartbeat-stat span{color:#94a3b8;letter-spacing:.1em;text-transform:uppercase;font-size:.58rem;font-weight:800;line-height:1}.heartbeat-stat strong{color:#eaf7ff;font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;font-size:1.15rem;line-height:1;display:flex}.heartbeat-stat strong small{color:var(--lan-accent);font-size:.62rem;font-weight:700}.heartbeat-stat-current{border-left-color:var(--lan-accent);background:color-mix(in srgb, var(--lan-accent) 12%, transparent)}.heartbeat-stat-current strong{color:var(--lan-accent)}.heartbeat-summary strong{color:#f8fafc;font-variant-numeric:tabular-nums}.heartbeat-chart{border:1px solid color-mix(in srgb, var(--lan-accent) 30%, transparent);background:linear-gradient(#020817db,#0f172af5);border-radius:14px;height:170px;position:relative;overflow:hidden}.heartbeat-meta-badge{z-index:2;border:1px solid color-mix(in srgb, var(--lan-accent) 40%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f8fafc;letter-spacing:.08em;text-transform:uppercase;background:#030712b3;border-radius:10px;flex-direction:column;align-items:flex-end;gap:2px;padding:7px 9px;font-size:.62rem;font-weight:700;display:flex;position:absolute;top:10px;right:10px}.heartbeat-meta-badge strong{color:var(--lan-accent);letter-spacing:.04em;text-transform:none;font-size:.68rem}.heartbeat-meta-label{color:#cbd5e1;font-size:.56rem}.heartbeat-chart svg{width:100%;height:100%;display:block}.heartbeat-footer{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.heartbeat-pill{color:#fecdd3;letter-spacing:.08em;text-transform:uppercase;background:#fb71851f;border:1px solid #fb718580;border-radius:999px;align-items:center;padding:6px 10px;font-size:.7rem;font-weight:800;display:inline-flex}.heartbeat-pill-muted{border-color:color-mix(in srgb, var(--lan-accent) 38%, transparent);color:var(--lan-accent);background:#7dd3fc14}.heartbeat-point-group{cursor:pointer}.heartbeat-tooltip{z-index:2;border:1px solid color-mix(in srgb, var(--lan-accent) 50%, transparent);color:#f8fafc;letter-spacing:.04em;pointer-events:none;background:#020817f0;border-radius:10px;flex-direction:column;gap:2px;min-width:110px;padding:8px 10px;font-size:.72rem;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-110%);box-shadow:0 10px 22px #0f172a8c}.heartbeat-tooltip strong{color:var(--lan-accent);font-size:.8rem}.heartbeat-point{opacity:.95;transform-box:fill-box;transform-origin:50%;vector-effect:non-scaling-stroke;transition:transform .15s,opacity .15s}.heartbeat-point-group:hover .heartbeat-point,.heartbeat-point-group:focus-visible .heartbeat-point{opacity:1;transform:scale(1.12)}.rotating-message{z-index:2;border:1px solid color-mix(in srgb, var(--lan-accent) 35%, transparent);color:#f8fafc;letter-spacing:.04em;text-align:center;width:fit-content;max-width:min(100%,100vw - 48px);box-shadow:0 0 14px color-mix(in srgb, var(--lan-accent) 14%, transparent);background:#0208179e;border-radius:999px;justify-content:center;align-items:center;gap:8px;margin:0;padding:12px 20px;font-size:1rem;font-weight:700;animation:.7s ease-out both message-arrival;display:flex;position:fixed;top:24px;right:24px}.rotating-message-icon{color:var(--lan-accent);font-size:1rem}@keyframes message-arrival{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.event-stage:before,.event-stage:after,.event-view,.lan-start-confetti span,.rotating-message,.game-wheel-panel.has-winner,.game-wheel-confetti span,.game-wheel-confetti:before,.game-wheel-confetti:after,.game-wheel-panel.has-winner .game-wheel-result{animation:none}}.event-grid{text-align:left;grid-template-columns:minmax(360px,1fr) minmax(420px,1.5fr) minmax(300px,.9fr);gap:18px;margin-top:22px;display:grid}.elapsed-panel,.schedule-panel,.game-wheel-panel{border:1px solid color-mix(in srgb, var(--lan-accent) 45%, transparent);box-shadow:inset 0 0 18px color-mix(in srgb, var(--lan-accent) 20%, transparent), 0 0 18px color-mix(in srgb, var(--lan-accent) 20%, transparent);background:#0f172aad;border-radius:18px}.elapsed-panel{flex-direction:column;justify-content:center;padding:18px;display:flex}.elapsed-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.elapsed-live{color:#4ade80;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:6px;font-size:.72rem;font-weight:800;display:inline-flex}.elapsed-live .status-dot{width:7px;height:7px}.elapsed-clock{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px;display:grid}.elapsed-unit{border:1px solid color-mix(in srgb, var(--lan-accent) 25%, transparent);background:#0208176b;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:7px 4px 6px;display:flex}.elapsed-value{color:#edf7ff;font-variant-numeric:tabular-nums;text-shadow:0 0 18px color-mix(in srgb, var(--lan-accent) 80%, transparent);font-size:clamp(1.6rem,2.7vw,2.8rem);line-height:1}.elapsed-label{color:var(--lan-accent);letter-spacing:.12em;text-transform:uppercase;font-size:.62rem;font-weight:700}.lan-progress{margin-top:14px}.progress-heading{color:#dbeafe;letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;margin-bottom:8px;font-size:.75rem;font-weight:700;display:flex}.progress-heading strong{color:var(--lan-accent);font-variant-numeric:tabular-nums}.progress-track{background:#020817cc;border-radius:999px;height:8px;overflow:hidden;box-shadow:inset 0 0 6px #00000073}.progress-track span{border-radius:inherit;background:var(--lan-accent);height:100%;box-shadow:0 0 12px color-mix(in srgb, var(--lan-accent) 75%, transparent);transition:width .5s;display:block}.schedule-panel{padding:16px 20px}.schedule-heading{border-bottom:1px solid color-mix(in srgb, var(--lan-accent) 25%, transparent);justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:9px;display:flex}.next-activity{align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.next-activity-label,.next-activity-countdown{color:var(--lan-accent);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;font-size:.68rem;font-weight:800}.next-activity strong{color:#e0f2fe;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.72rem;overflow:hidden}.schedule-list{overscroll-behavior:contain;scrollbar-color:var(--lan-accent) #0208178c;scrollbar-width:thin;gap:0;max-height:190px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.schedule-item{border-bottom:1px solid color-mix(in srgb, var(--lan-accent) 16%, transparent);color:#e0f2fe;grid-template-columns:72px 1fr;align-items:center;gap:18px;padding:8px 0;font-size:1rem;display:grid}.schedule-item:last-child{border-bottom:0;padding-bottom:0}.schedule-item time{color:var(--lan-accent);font-variant-numeric:tabular-nums;font-weight:800}.game-wheel-panel{flex-direction:column;align-items:center;padding:16px 14px 12px;display:flex;position:relative;overflow:hidden}.game-wheel-actions{flex-direction:column;flex:1;justify-content:center;gap:9px;width:100%;padding:10px 0 0;display:flex;transform:translateY(-32px)}.game-wheel-modal{z-index:30;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.game-wheel-backdrop{cursor:pointer;background:#01030fcc;border:0;position:absolute;inset:0}.game-wheel-modal-content{z-index:1;border:1px solid color-mix(in srgb, var(--lan-accent) 55%, transparent);width:min(100%,620px);max-height:calc(100svh - 48px);box-shadow:0 24px 80px #0000008c, inset 0 0 28px color-mix(in srgb, var(--lan-accent) 14%, transparent);background:linear-gradient(145deg,#0f172afa,#020817fa);border-radius:18px;flex-direction:column;align-items:center;padding:26px 30px 28px;display:flex;position:relative;overflow:auto}.game-wheel-modal-heading{justify-content:space-between;align-items:flex-start;gap:20px;width:100%;display:flex}.game-wheel-close{border:1px solid color-mix(in srgb, var(--lan-accent) 45%, transparent);color:#f8fafc;cursor:pointer;background:#02081799;border-radius:8px;place-items:center;width:36px;height:36px;font-size:1.5rem;line-height:1;display:grid}.game-wheel-close:hover,.game-wheel-close:focus-visible{border-color:var(--lan-accent);color:var(--lan-accent)}.game-wheel-modal-content .game-wheel-stage{width:min(100%,360px);margin-top:28px}.game-wheel-modal-content .spin-button{margin-top:18px}.game-wheel-panel.has-winner{animation:.52s ease-out both winner-pop;overflow:visible}.game-wheel-confetti{z-index:20;pointer-events:none;position:fixed;inset:0;overflow:hidden}.game-wheel-confetti:before,.game-wheel-confetti:after{content:"";pointer-events:none;border-radius:50%;display:block;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)}.game-wheel-confetti:before{border:2px solid color-mix(in srgb, var(--lan-accent) 85%, #fff);width:34px;height:34px;box-shadow:0 0 18px var(--lan-accent), 0 0 48px color-mix(in srgb, var(--lan-accent) 70%, transparent);animation:1s cubic-bezier(.16,.78,.24,1) both celebration-burst}.game-wheel-confetti:after{width:12px;height:12px;box-shadow:0 0 18px 8px #fff, 0 0 54px 18px var(--lan-accent);background:#fff;animation:.52s ease-out both celebration-flash}.game-wheel-confetti span{background:var(--confetti-color,#f59e0b);width:10px;height:20px;box-shadow:0 0 8px color-mix(in srgb, var(--confetti-color) 55%, transparent);opacity:0;transform:translate(-50%, -50%) rotate(calc(var(--confetti-index) * 37deg));animation:confetti-cannon 2.9s cubic-bezier(.16, .78, .24, 1) calc(var(--confetti-index) * 12ms) both;will-change:transform, opacity;border-radius:2px;position:absolute;top:55%;left:50%}.game-wheel-confetti span:nth-child(3n){--confetti-color:#22c55e}.game-wheel-confetti span:nth-child(3n+1){--confetti-color:#06b6d4}.game-wheel-confetti span:nth-child(4n){--confetti-color:#ef4444;border-radius:50%;width:15px;height:9px}.game-wheel-confetti span:nth-child(5n){--confetti-color:#f8fafc}.game-wheel-confetti span:nth-child(7n){--confetti-color:#facc15}@keyframes celebration-burst{0%{opacity:.95;transform:translate(-50%,-50%)scale(.25)}to{opacity:0;transform:translate(-50%,-50%)scale(7)}}@keyframes celebration-flash{0%{opacity:.95;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(10)}}@keyframes winner-pop{0%{box-shadow:inherit}45%{box-shadow:0 0 32px color-mix(in srgb, var(--lan-accent) 55%, transparent)}to{box-shadow:inherit}}@keyframes confetti-cannon{0%{opacity:0;animation-timing-function:cubic-bezier(.33,1,.68,1);transform:translate(-50%,-50%)scale(.4)rotate(0)}12%{opacity:.72;transform:translate(calc(var(--confetti-spread) * .08), calc(var(--confetti-rise) * .18)) scale(.72) rotate(120deg)}46%{opacity:1;transform:translate(calc(var(--confetti-spread) * .62), var(--confetti-rise)) scale(1.06) rotate(420deg);animation-timing-function:cubic-bezier(.45,0,.55,1)}to{opacity:0;transform:translate(calc(var(--confetti-spread) * 1.18), calc(var(--confetti-rise) + 100vh)) rotate(1100deg)}}.game-wheel-heading{justify-content:space-between;align-items:flex-start;gap:12px;width:100%;display:flex}.game-wheel-subtitle{color:#cbd5e1;margin-top:6px;font-size:.8rem;display:block}.game-wheel-count{color:var(--lan-accent);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.68rem;font-weight:800}.game-wheel-stage{aspect-ratio:1;place-items:center;width:min(100%,220px);margin:10px auto 6px;display:grid;position:relative}.game-wheel{width:100%;height:100%;box-shadow:0 0 0 3px color-mix(in srgb, var(--lan-accent) 60%, transparent), 0 0 24px color-mix(in srgb, var(--lan-accent) 42%, transparent);border:8px solid #e2efffe6;border-radius:50%;transition:transform 4.2s cubic-bezier(.12,.8,.22,1);position:relative}.game-wheel-label{color:#fff;text-align:center;transform-origin:42px 162px;text-shadow:0 1px 3px #000000b3;flex-direction:column;align-items:center;width:84px;font-size:1.8rem;display:flex;position:absolute;top:5%;left:calc(50% - 42px)}.game-wheel-label strong{text-transform:uppercase;max-width:100px;margin-top:5px;font-size:.72rem;line-height:1.05}.game-wheel-center{background:#020817;border:4px solid #e2efff;border-radius:50%;place-items:center;width:48px;height:48px;font-size:1.3rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.game-wheel-pointer{z-index:1;width:0;height:0;filter:drop-shadow(0 0 5px var(--lan-accent));border-top:22px solid #f8fafc;border-left:10px solid #0000;border-right:10px solid #0000;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.game-wheel-result{color:#e0f2fe;text-align:center;min-height:24px;font-size:.85rem}.game-wheel-result strong{color:var(--lan-accent)}.game-wheel-panel.has-winner .game-wheel-result{font-size:1rem;animation:.65s ease-out both winner-result}@keyframes winner-result{0%{opacity:0;transform:scale(.82)}70%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.game-wheel-launch-button{border:1px solid color-mix(in srgb, var(--lan-accent) 72%, #fff);background:linear-gradient(105deg, color-mix(in srgb, var(--lan-accent) 28%, transparent), #020817d1), #020817b8;width:100%;min-height:52px;box-shadow:inset 0 0 16px color-mix(in srgb, var(--lan-accent) 14%, transparent), 0 0 16px color-mix(in srgb, var(--lan-accent) 12%, transparent);color:#f8fafc;cursor:pointer;letter-spacing:.1em;text-transform:uppercase;border-radius:12px;justify-content:center;align-items:center;gap:10px;margin-top:14px;padding:13px 16px;font-size:.76rem;font-weight:900;line-height:1.2;transition:background .18s,box-shadow .18s,transform .18s;display:flex}.game-wheel-launch-icon{background:color-mix(in srgb, var(--lan-accent) 24%, transparent);border-radius:8px;place-items:center;width:28px;height:28px;font-size:1.1rem;display:grid}.game-wheel-launch-arrow{color:var(--lan-accent);margin-left:auto;font-size:1.15rem}.game-wheel-launch-button:hover,.game-wheel-launch-button:focus-visible{background:linear-gradient(105deg, color-mix(in srgb, var(--lan-accent) 42%, transparent), #020817d1), #020817b8;box-shadow:0 0 24px color-mix(in srgb, var(--lan-accent) 35%, transparent);transform:translateY(-2px)}.spin-button{border:1px solid var(--lan-accent);background:color-mix(in srgb, var(--lan-accent) 18%, #020817e6);color:#f8fafc;cursor:pointer;letter-spacing:.1em;border-radius:8px;margin-top:14px;padding:10px 16px;font-size:.72rem;font-weight:900;transition:background .18s,box-shadow .18s,transform .18s}.spin-button:hover:not(:disabled){background:color-mix(in srgb, var(--lan-accent) 34%, #020817e6);box-shadow:0 0 16px color-mix(in srgb, var(--lan-accent) 45%, transparent);transform:translateY(-2px)}.spin-button:disabled{cursor:wait;opacity:.7}.title-shell{width:min(100%,1350px);margin-bottom:28px;padding:18px 30px 12px;position:relative}h1{letter-spacing:-.08em;color:#dff6ff;text-transform:uppercase;text-shadow:0 0 0 #bfe9ff, 0 0 18px color-mix(in srgb, var(--lan-accent) 90%, transparent), 0 0 38px color-mix(in srgb, var(--lan-accent) 70%, transparent), 0 0 70px color-mix(in srgb, var(--lan-accent) 60%, transparent);-webkit-text-stroke:2px color-mix(in srgb, var(--lan-accent) 90%, transparent);margin:0;font-size:clamp(4.8rem,10vw,18rem);font-weight:900;line-height:.82}.countdown-wrapper{width:min(100%,1100px);max-width:100%;padding:18px 0;position:relative}.countdown-title{color:#dff6ff;text-shadow:0 0 18px color-mix(in srgb, var(--lan-accent) 90%, transparent), 0 0 38px color-mix(in srgb, var(--lan-accent) 70%, transparent);margin:0 0 34px;font-size:clamp(2rem,5vw,4.5rem);line-height:1}.countdown-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:24px;display:grid}.time-box{border:1px solid color-mix(in srgb, var(--lan-accent) 45%, transparent);box-shadow:inset 0 0 18px color-mix(in srgb, var(--lan-accent) 20%, transparent), 0 0 18px color-mix(in srgb, var(--lan-accent) 24%, transparent);background:#0f172a94;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;padding:20px 10px 14px;display:flex}.time-value{color:#edf7ff;text-shadow:0 0 18px color-mix(in srgb, var(--lan-accent) 80%, transparent);font-size:clamp(3rem,5.5vw,6rem);font-weight:800;line-height:1;display:block}.time-label{letter-spacing:.24em;text-transform:uppercase;color:var(--lan-accent);margin-top:10px;font-size:.8rem}@media (width<=960px){.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-stage{padding-top:36px}.event-grid{grid-template-columns:1fr}.elapsed-panel{padding:22px 24px}}@media (width<=640px){.lan-page{padding:18px max(10px, env(safe-area-inset-right)) 18px max(10px, env(safe-area-inset-left))}.admin-page{padding:18px 10px}.admin-panel{border-radius:14px;padding:24px 16px}.admin-heading,.admin-section-heading{flex-direction:column}.admin-lan-select,.admin-lan-select select{width:100%}.admin-form-grid{grid-template-columns:1fr;margin-top:28px}.admin-field-wide,.admin-field-wide+.admin-field-wide{grid-column:auto}.admin-schedule-row{grid-template-columns:72px minmax(0,1fr) 56px}.admin-schedule-row button{grid-column:1/-1}.admin-actions{flex-wrap:wrap}.lan-page:before{background-position:50%;background-size:cover;background-image:linear-gradient(180deg, #01030f40, #04081780), var(--lan-mobile-background-image)}.install-app-button{right:50%;bottom:max(14px, env(safe-area-inset-bottom));transform:translate(50%)}.install-app-button:hover{transform:translate(50%)translateY(-2px)}.hero-stage{padding:18px 0}.countdown-stage{min-height:calc(100svh - 36px);padding-top:18px;padding-bottom:clamp(24px,6vh,64px)}.event-stage{min-height:calc(100svh - 36px);padding:18px 0 50px}.event-header{margin-bottom:28px;padding-top:0}.event-kicker{gap:7px;width:fit-content;max-width:100%;margin:0 auto 22px;padding:8px 12px;font-size:.88rem;position:relative;top:-24px;left:auto;transform:none}.network-status{gap:8px;max-width:100%;padding:10px 14px;font-size:.9rem}.network-latency{padding-left:8px}.network-details{margin-top:12px;font-size:.7rem}.status-dot{width:9px;height:9px}.live-indicator{width:8px;height:8px}.event-header h1{margin-bottom:16px}.event-grid{gap:10px;margin-top:14px}.heartbeat-header-wrap{align-items:stretch;gap:12px}.heartbeat-summary{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-left:0}.dashboard-metrics{grid-template-columns:1fr;gap:8px;margin-bottom:14px}.page-top-left-time{width:fit-content;margin:18px auto;padding:12px 18px;display:inline-flex;position:relative;top:auto;left:auto;transform:none}.rotating-message{max-width:calc(100% - 20px);margin:22px auto 0;padding:10px 14px;font-size:.9rem;position:relative;top:auto;right:auto}.metric-card{border-radius:10px;gap:6px;padding:11px 10px}.metric-label{letter-spacing:.08em;font-size:.68rem}.metric-value{font-size:1.3rem}.metric-value-small{font-size:1rem}.elapsed-panel,.schedule-panel{border-radius:12px;padding:14px}.game-wheel-label{transform-origin:34px 112px;width:68px;font-size:1.35rem;left:calc(50% - 34px)}.game-wheel-label strong{max-width:78px;margin-top:3px;font-size:.58rem}.game-wheel-actions{margin-top:18px;transform:translateY(-12px)}.elapsed-heading{flex-direction:column;align-items:flex-start;gap:8px}.elapsed-clock{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.elapsed-unit{padding:7px 4px 6px}.elapsed-value{font-size:clamp(1.6rem,8vw,2.6rem)}.schedule-item{grid-template-columns:58px 1fr;gap:9px;padding:7px 0;font-size:1rem}.schedule-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding-bottom:12px;display:grid}.schedule-heading .next-activity{border-top:1px solid color-mix(in srgb, var(--lan-accent) 16%, transparent);grid-column:1/-1;justify-content:center;width:100%;padding-top:8px}.schedule-heading .next-activity strong{font-size:.8rem}.schedule-date{font-size:.65rem}.countdown-wrapper{padding:12px 0}.countdown-title{margin-bottom:24px;font-size:clamp(1.6rem,8vw,2.8rem)}.countdown-grid{gap:10px}.time-box{border-radius:12px;min-width:0;padding:16px 6px 12px}.time-value{font-size:clamp(2rem,13vw,3.25rem)}.time-label{letter-spacing:.16em;margin-top:8px;font-size:.65rem}}@media (width<=360px){.countdown-grid{gap:8px}.time-box{padding-inline:4px}.time-label{letter-spacing:.1em;font-size:.58rem}}
