@font-face{font-family:Gilroy;src:url('assets/gilroy-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Gilroy;src:url('assets/gilroy-bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{color-scheme:dark;--bg:#071d2a;--panel:#102f40;--line:#284b5b;--muted:#b2c9d3;--accent:#ffcb05;--blue:#1c9ed6;--white:#ffffff;--green:#88e9be}
*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;color:var(--white);background:var(--bg)}button,a{touch-action:manipulation}a{color:#8bd9f7;text-decoration:none}a:hover{color:white}button{font:inherit;cursor:pointer;color:var(--white);border:1px solid #3c6375;background:#173c50;border-radius:8px;padding:10px 14px;transition:background .2s}button:hover{background:#20546c}button:disabled{opacity:.55;cursor:wait}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Gilroy,Segoe UI,sans-serif;font-weight:700}h2{font-size:22px;letter-spacing:-.5px}small,.subtle,.helper{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:7px;font-size:10px;letter-spacing:1.4px;font-weight:700;color:var(--green);background:#183429;border:1px solid #2c5a46;padding:7px 10px;border-radius:5px;white-space:nowrap}.badge:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.demo-badge{color:#f5c175;background:#352819;border-color:#645037}.topbar{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#002e42}.brand{display:flex;align-items:center;gap:27px}.brand img{width:120px;height:60px;object-fit:contain}.brand>span{font-size:11px;letter-spacing:2px;color:var(--muted);border-left:1px solid #b4cbd3;padding-left:27px}.brand b{color:#fff;margin-left:7px}nav{display:flex;gap:26px;font-size:13px}main{max-width:1480px;margin:auto;padding:40px 5vw 0}.intro{display:flex;align-items:center;justify-content:space-between;padding:0 0 32px}.intro h1{font-size:clamp(38px,4vw,58px);line-height:1.05;letter-spacing:-2.5px;margin:13px 0 16px;font-weight:750}.intro h1 span{color:#ffcb05}.intro .subtle{font-size:14px}.session{text-align:right;max-width:330px}.session p{font-size:13px;margin:14px 0 7px}.session small{font-size:11px}.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:30px}.stats>div{padding:23px 25px}.stats>div+div{border-left:1px solid var(--line)}.stats span{font-size:10px;letter-spacing:1.5px;color:var(--muted);display:block;margin-bottom:9px}.stats strong{font-size:31px;font-weight:650;letter-spacing:-1px}.stats>div:first-child strong{color:#ffcb05}.preview-panel,.queue-panel,.alert-panel,.notes-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.section-heading{padding:24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.section-heading .eyebrow{margin-bottom:8px}.section-heading>a{font-size:12px;white-space:nowrap}.thermo-stage{margin:0 24px;background:repeating-linear-gradient(135deg,#061a26,#061a26 15px,#0a2330 15px,#0a2330 16px);border:1px solid #284b5b;border-radius:6px;padding:23px 12px}.thermo-stage iframe{width:100%;height:140px;border:0;display:block}.panel-foot{display:flex;justify-content:space-between;gap:14px;padding:15px 24px;color:var(--muted);font-size:11px}.workspace{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr);gap:24px;margin-top:26px}.queue-panel{align-self:start;min-height:410px}.queue-tools{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:0 24px 19px;border-bottom:1px solid var(--line);font-size:11px}.tabs{display:flex;gap:5px}.tabs button{border-color:transparent;background:transparent;font-size:12px;padding:8px 12px}.tabs button.selected{background:#164c65;color:#ffffff;border-color:#1c9ed6}.count{font-size:13px;padding:3px 8px;border-radius:6px;background:#164c65;color:#b8e9fc;vertical-align:middle;margin-left:6px}.donations{max-height:620px;overflow:auto;scrollbar-color:#376579 transparent}.donation{padding:22px 24px;border-bottom:1px solid var(--line)}.donation:last-child{border-bottom:0}.donation-top{display:flex;gap:12px;align-items:center}.avatar{width:39px;height:39px;border-radius:10px;background:#164c65;color:#ffcb05;display:grid;place-items:center;font-weight:700;flex-shrink:0}.donation-name{font-size:16px;font-weight:650;overflow-wrap:anywhere;flex:1}.donation-amount{font-size:20px;font-weight:700;color:#ffcb05;text-align:right}.donation p{font-size:15px;line-height:1.6;margin:13px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#dfebf0}.donation-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:13px}.donation time{color:var(--muted);font-size:11px}.donation button{font-size:12px;padding:7px 12px}.donation.read{opacity:.64}.empty{padding:55px 28px;text-align:center}.empty-icon{font-size:28px;color:#ffcb05;display:block;margin-bottom:13px}.empty h3{font-size:17px;margin-bottom:9px}.empty p{font-size:13px;line-height:1.6;color:var(--muted)}.alert-panel{padding-bottom:22px}.alert-stage{position:relative;margin:0 22px 18px;height:175px;border:1px dashed #376579;border-radius:8px;background:radial-gradient(ellipse at center,#0e4660,#071d2a);display:grid;place-items:center}.alert-stage iframe{position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0}.stage-hint{font-size:11px;color:#acc8d5}.primary{display:block;width:calc(100% - 44px);margin:0 22px;background:#ffcb05;color:#002e42;font-weight:700;border-color:#ffcb05}.primary:hover{background:#ffdb50}.helper{font-size:11px;line-height:1.6;margin:11px 22px}.controls{display:flex;flex-wrap:wrap;gap:8px;margin:19px 22px 0}.controls button{font-size:11px;flex:1}.notes-panel{margin-top:20px;padding:25px;background:linear-gradient(135deg,#103e53,#0a293a)}.notes-panel h3{font-size:22px;margin:13px 0}.notes-panel p:not(.eyebrow){font-size:13px;line-height:1.8;color:var(--muted)}.notes-panel a{display:block;font-size:12px;margin-top:20px}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:40px;padding:22px 0;color:#a8c4d1;font-size:10px;letter-spacing:1.6px}footer span{letter-spacing:0}.dock{padding:20px;min-width:280px}.dock-header{padding:0 0 20px}.dock h1{font-size:28px;margin:16px 0 8px}.dock-header .eyebrow{display:flex;align-items:center;justify-content:space-between;gap:8px}.dock-header p:not(.eyebrow){font-size:12px;color:var(--muted)}.dock-header small{display:block;margin-top:7px;font-size:10px}.dock-total{display:flex;justify-content:space-between;margin-top:24px;align-items:baseline}.dock-total strong{font-size:30px;color:#ffcb05}.dock-total span{font-size:12px;color:var(--muted)}.dock .queue-tools{padding:0 0 18px}.dock .donations{max-height:none}.dock .donation{padding:22px 0}.dock .donation-name{font-size:18px}.dock .donation p{font-size:17px}.dock #action-status{font-size:12px;color:#ffc18d;margin-top:10px}
/* OBS browser sources have transparent outer canvases. */
.overlay{background:transparent!important;overflow:hidden;color-scheme:normal}.thermometer{height:140px;width:100%;padding:10px 22px 8px;border:1px solid #1c9ed6;border-radius:12px;background:linear-gradient(110deg,#002e42f5,#063c54f5 48%,#0e7ca2f5);box-shadow:inset 0 1px 0 #1c9ed64d;position:relative}.thermo-main{height:91px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:12px}.thermo-amount span,.thermo-goal span{font:600 11px Segoe UI,Arial;letter-spacing:2px;color:#d3edf7;display:block;margin-bottom:5px}.thermo-main strong{font:700 clamp(23px,3.5vw,45px) Gilroy,Segoe UI,sans-serif;letter-spacing:-1px;color:white;text-shadow:0 2px 8px #0008;white-space:nowrap}.thermo-goal{text-align:right}.thermo-brand{text-align:center;align-self:center}.thermo-brand img{display:block;height:68px;max-width:100%;width:190px;object-fit:contain;margin:auto}.thermo-brand span{font-size:8px;letter-spacing:2px;color:#d3edf7}.progress{height:9px;background:#315568;border-radius:10px;position:relative;overflow:hidden}.fill{height:100%;width:0;background:linear-gradient(90deg,#ffcb05,#ffcb05 70%,#ffdb50);box-shadow:0 0 15px #ffcb05;transition:width 1.8s cubic-bezier(.2,.8,.2,1);border-radius:10px;min-width:0}.tick{position:absolute;top:0;width:2px;height:100%;background:#002e4266}.t25{left:25%}.t50{left:50%}.t75{left:75%}.thermo-caption{display:flex;justify-content:space-between;font:600 9px Segoe UI,Arial;letter-spacing:1.3px;margin-top:7px;color:#d3edf7}.alert-overlay{padding:12px}.donation-alert{position:relative;display:flex;align-items:center;gap:20px;width:100%;min-height:150px;border:1px solid #1c9ed6;border-radius:16px;padding:25px;background:linear-gradient(115deg,#0e7ca2f7,#002e42f7 75%);box-shadow:0 8px 25px #0005;overflow:hidden;animation:alert-in .5s ease-out}.donation-alert[hidden]{display:none}.alert-icon{display:grid;place-items:center;flex-shrink:0;width:64px;height:64px;border:1px solid #ffcb05;border-radius:18px;background:#ffffff12;color:#ffcb05;font-size:40px;transform:none}.alert-copy{flex:1;min-width:0}.alert-copy .eyebrow{color:#ffcb05;font-size:10px}.alert-copy h1{font-size:clamp(19px,3.6vw,32px);line-height:1.15;margin:8px 0;overflow-wrap:anywhere}.alert-copy>span{font-size:12px;color:#e1f1f7}.alert-copy>p:not(.eyebrow){font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:52px;overflow:hidden}.donation-alert>strong{font:700 clamp(20px,4vw,40px) Gilroy,Segoe UI,sans-serif;color:#ffcb05;max-width:42%;overflow-wrap:anywhere}.alert-timer{height:4px;position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(90deg,#ffcb05,#ffdb50);transform-origin:left;animation:countdown var(--duration,8s) linear forwards}.audio-enable{position:absolute;bottom:0;right:12px;font-size:11px;z-index:5}.audio-enable[hidden]{display:none}@keyframes alert-in{from{opacity:0;transform:translateY(25px) scale(.95)}to{opacity:1;transform:none}}@keyframes countdown{to{transform:scaleX(0)}}
.setup{max-width:980px;padding-bottom:45px}.setup h1{font-size:42px;letter-spacing:-1.5px;margin:16px 0}.setup>p{color:var(--muted);line-height:1.8;margin-bottom:30px}.setup section{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:26px;margin:20px 0}.setup h2{margin-bottom:15px}.setup p,.setup li{font-size:14px;line-height:1.9;color:#d8e7ee}.setup code{display:block;background:#061a26;color:#b8e9fc;padding:13px;border:1px solid #284b5b;border-radius:5px;margin:13px 0;overflow-wrap:anywhere}.setup strong{color:white}
@media(max-width:950px){.workspace{grid-template-columns:1fr}.stats>div{padding:20px 15px}.stats strong{font-size:26px}.intro h1{font-size:44px}.brand>span{display:none}.thermo-stage{margin:0 14px;padding:15px 8px}.section-heading{padding:20px}.alert-stage{height:190px}}
@media(max-width:600px){.topbar{height:75px;padding:0 20px}nav{gap:14px;font-size:11px}.brand img{width:90px}.intro{align-items:flex-start;gap:15px;flex-direction:column}.session{text-align:left}.session p{margin:9px 0 5px}.stats{grid-template-columns:1fr 1fr}.stats>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.stats>div:nth-child(4){border-top:1px solid var(--line)}.panel-foot{flex-direction:column;font-size:10px}.section-heading{flex-wrap:wrap}.thermometer{padding:10px 12px}.thermo-brand img{height:50px}.thermo-brand span{display:none}.thermo-amount span,.thermo-goal span{font-size:8px;letter-spacing:1px}.thermo-main strong{font-size:22px}.thermo-caption{font-size:8px;letter-spacing:.5px}.donation-alert{gap:12px;padding:20px 14px;min-height:145px}.alert-icon{width:35px;height:35px;font-size:25px;border-radius:10px}.alert-copy>span{font-size:10px}.donation-alert>strong{font-size:20px}.alert-copy .eyebrow{font-size:8px;letter-spacing:1px}.alert-copy h1{font-size:19px}.queue-tools{padding-left:18px;padding-right:18px}footer{font-size:8px;letter-spacing:1px}.donation-amount{font-size:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* 2026 Extra Life: official blue, deep navy, yellow, and Gilroy headings. */
.topbar{background:#fff;border-bottom:4px solid var(--blue)}
.brand img{width:150px;height:64px}
.brand>span,.topbar nav a{color:#002e42}.brand b{color:#0e7ca2}.topbar nav a:hover{color:#0e7ca2}
.thermometer::before{content:"";position:absolute;inset:0;background:url('assets/brand-squares.svg') right center/auto 240% no-repeat;opacity:.1;pointer-events:none;border-radius:inherit}
.thermo-main,.progress,.thermo-caption{position:relative}
.thermo-amount strong{color:var(--accent)}
.thermo-main strong,.donation-alert>strong,.stats strong{font-variant-numeric:tabular-nums}
.alert-icon{background:#002e42;border-color:#1c9ed6}.alert-icon img{width:90%;height:90%;object-fit:contain}
@media(max-width:600px){.brand img{width:110px}}

[hidden]{display:none!important}.stats span span{margin:0}.donate-link{color:#ffcb05!important}
