:root{color-scheme:dark;--bg:#151124;--panel:#211b35;--panel2:#2b2343;--text:#faf7ff;--muted:#c7bfdc;--line:#514461;--orange:#ffad5a;--lime:#dcff7c;--purple:#c2a1ff;--red:#ffb5bd;--radius:22px;--shadow:0 12px 40px #0003}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:radial-gradient(ellipse at 80% 0,var(--glow,#332145) 0,transparent 42rem),var(--bg);color:var(--text);font:18px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh;-webkit-text-size-adjust:100%}
a{color:var(--purple);text-underline-offset:4px}
button,input,textarea,select{font:inherit}
button,a,input,label{touch-action:manipulation}
button,a{ -webkit-tap-highlight-color:#c2a1ff33}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.65}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(32px,6vw,54px);line-height:1.1;letter-spacing:-1.4px;margin-bottom:18px;overflow-wrap:anywhere}
h2{font-size:27px;line-height:1.2;letter-spacing:-.5px}
h3{font-size:22px;line-height:1.3}
small,.muted{color:var(--muted)}
small{font-size:15px}
strong{font-weight:750}
.wrap{max-width:1160px;margin:auto;padding:12px 24px 40px}
.topbar{max-width:1208px;margin:auto;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.wordmark{display:flex;gap:12px;align-items:center;color:var(--text);text-decoration:none;font-weight:850;letter-spacing:2px;font-size:19px;line-height:1.1}
.wordmark small{display:block;font-size:10px;letter-spacing:1.4px;margin-top:7px;color:var(--muted)}
.brand-mark{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:16px;background:var(--panel2);font-size:26px}
.legacy-unused-control{background:var(--panel);border:1px solid var(--line);border-radius:99px;color:var(--text);font-size:15px;font-weight:700;min-height:48px;padding:10px 16px;white-space:nowrap}
.legacy-unused-control[aria-pressed=true]{border-color:var(--lime)}
.hero{padding:28px 0 16px;max-width:900px}
.eyebrow,.step-label{font-size:12px;font-weight:800;letter-spacing:2px;color:var(--orange);margin-bottom:18px}
.hero-copy{font-size:20px;max-width:720px;color:var(--muted);white-space:pre-line}
.hero .muted{font-size:15px;margin-top:15px}
.contest-logo{float:right;width:142px;height:142px;object-fit:contain;margin:0 0 18px 20px;border-radius:20px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:56px;padding:14px 22px;border:2px solid transparent;border-radius:16px;background:var(--lime);color:#1c2410;text-decoration:none;font-weight:800;text-align:center;line-height:1.3;box-shadow:none}
.button:hover{filter:brightness(1.06)}
.button.secondary{color:var(--text);background:var(--panel2);border-color:var(--line)}
.button.quiet{color:var(--muted);background:transparent;border-color:var(--line)}
.button.danger{background:#582735;color:#ffe7ec;border-color:#ce8291}
.button.small{min-height:48px;padding:10px 16px;font-size:16px}
.button.full{width:100%}
.button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.button-stack{display:grid;gap:12px}
.text-button{background:transparent;color:var(--purple);border:0;text-decoration:underline;text-underline-offset:4px;min-height:48px;padding:8px 0;text-align:left}
.panel,.form-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.countdown{max-width:650px;margin:16px 0 22px;background:linear-gradient(120deg,var(--panel2),var(--panel));position:relative;overflow:hidden}
.countdown-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:18px}
.countdown-heading .pill{margin-left:auto}
.pill{display:inline-block;border:1px solid var(--line);border-radius:99px;padding:5px 11px;font-size:12px;font-weight:800;letter-spacing:1px;background:var(--bg)}
.live-dot{width:10px;height:10px;display:inline-block;border-radius:50%;background:var(--lime)}
.clock{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.clock div{background:var(--bg);border:1px solid #3d314c;border-radius:15px;text-align:center;padding:10px 4px}
.clock b{display:block;font-size:clamp(26px,5vw,42px);line-height:1.15;color:var(--orange);font-variant-numeric:tabular-nums;letter-spacing:-1px}
.clock span{display:block;font-size:11px;letter-spacing:1.5px;font-weight:800;color:var(--muted);margin-top:5px}
.countdown p{font-size:13px;margin:0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:18px;max-width:650px;margin-bottom:24px;overflow:hidden}
.stats div{padding:14px 8px;text-align:center;background:#1b172b}
.stats div+div{border-left:1px solid var(--line)}
.stats b{display:block;font-size:27px;font-weight:850;color:var(--purple);font-variant-numeric:tabular-nums}
.stats span{display:block;font-size:13px;color:var(--muted)}
.refresh-panel{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;background:#27233c;border:1px solid #615178;border-radius:18px;padding:20px;margin:24px 0}
.refresh-panel strong{font-size:20px}
.refresh-panel p{margin:5px 0 0;font-size:16px}
.notice{border:1px solid #807095;background:#2b2440;color:#faf6ff;padding:18px 20px;border-radius:16px;margin:18px 0;overflow-wrap:anywhere}
.notice.success{border-color:#a6c16c;background:#253128;color:#f2ffe1}
.notice.error{background:#41232f;border-color:#d58b99;color:#ffe7ee}
.section-heading{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px;margin:32px 0 18px}
.section-heading h2{margin:0}
.section-heading>span{font-size:14px}
.leader-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.leader-card{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:14px;color:var(--text);text-decoration:none;min-height:104px}
.leader-card .medal{font-size:27px}
.leader-card img{width:66px;height:76px;object-fit:contain;background:var(--bg);border-radius:9px}
.leader-card strong{display:block;font-size:16px}
.leader-card small{display:block;font-size:14px}
.place-1{border-color:#bda160;background:linear-gradient(120deg,#37302b,#211b35)}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.photo-card{overflow:hidden;border:2px solid var(--line);background:var(--panel);border-radius:22px;box-shadow:var(--shadow);min-width:0}
.photo-card.selected{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime)}
.photo-link{display:block;background:#100d18;text-decoration:none}
.photo-link img{display:block;width:100%;height:340px;object-fit:contain}
.photo-info{padding:18px}
.entry-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
.entry-meta>strong{letter-spacing:.5px}
.vote-total{color:var(--orange);white-space:nowrap}
.vote-total b{font-size:20px;font-variant-numeric:tabular-nums}
.caption{margin:12px 0;font-size:17px;overflow-wrap:anywhere;white-space:pre-wrap}
.vote-form{margin-top:16px}
.vote-button{width:100%;font-size:18px}
.vote-button.voted{background:#34452b;color:#ebffce;border-color:var(--lime)}
.photo-info>small{display:block;margin-top:12px;min-height:24px}
.photo-card.confirmed{animation:confirm .35s ease-out}
.detail-card{max-width:650px}
.detail-card .photo-link img{height:auto;max-height:650px;min-height:150px}
.detail-card .photo-info{padding:24px}
.load-more{margin:24px auto;display:flex;min-width:260px}
.empty{text-align:center;margin:20px 0}
.big-emoji{display:block;font-size:44px;margin-bottom:12px}
.sponsors{margin-top:38px}
.sponsors h2{font-size:21px}
.sponsor-grid{display:flex;flex-wrap:wrap;gap:16px}
.sponsor{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--muted);font-size:13px;width:150px}
.sponsor img{height:110px;width:150px;object-fit:contain;background:#f7f4ff;border-radius:12px;padding:10px}
.back-link{display:inline-flex;min-height:48px;align-items:center;margin:8px 0 20px;font-size:17px}
.form-card{max-width:690px;margin:0 auto 28px}
.form-card h1{font-size:37px}
label:not(.check):not(.file-picker){display:block;font-weight:750;margin:20px 0 8px}
label .muted{display:block;font-size:14px;font-weight:400;margin-top:4px}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select{width:100%;max-width:100%;min-height:56px;border:2px solid #695878;border-radius:13px;background:var(--bg);color:var(--text);padding:12px 14px;font-size:18px}
textarea{resize:vertical}
input[type=file]{padding:12px;font-size:15px}
input[type=file]::file-selector-button{border:0;padding:9px 12px;border-radius:8px;background:var(--purple);color:#101923;font-size:16px;font-weight:700;margin-right:10px}
.file-picker{display:flex;align-items:center;flex-direction:column;gap:8px;padding:25px 15px;border:2px dashed var(--purple);background:var(--panel2);border-radius:18px;text-align:center;cursor:pointer}
.file-picker .big-emoji{margin:0}
.file-picker strong{font-size:23px}
.file-picker>span:last-child{font-size:15px;color:var(--muted)}
.check{display:flex;gap:14px;align-items:flex-start;padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:12px;margin:12px 0;font-size:17px;cursor:pointer}
.check input{width:26px;height:26px;flex:0 0 26px;margin:1px 0 0;accent-color:var(--lime)}
form>.button.full{margin:22px 0 8px}
.preview{margin:18px 0;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:16px;text-align:center}
.preview img{display:block;max-height:450px;max-width:100%;margin:auto;object-fit:contain;border-radius:10px}
.preview p{font-size:14px;color:var(--muted);margin:12px 0 0}
progress{width:100%;height:22px;margin:16px 0;accent-color:var(--lime)}
.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.code-input{font-size:32px!important;letter-spacing:10px;text-align:center;font-variant-numeric:tabular-nums}
.receipt{max-width:690px;margin:22px auto}
.receipt h2{margin-top:16px}
.receipt-photo{width:100%;max-height:550px;object-fit:contain;border-radius:13px;background:#100d18}
.status-badge{padding:14px 0;font-weight:750}
.prose{max-width:800px}
.prose h2{margin-top:30px}
.footer{max-width:1160px;margin:auto;padding:32px 24px 120px;color:var(--muted);font-size:14px}
.footer strong{color:var(--orange);font-size:17px}
.footer p{margin:8px 0 12px}
.mobile-dock{display:none}
.toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);width:min(92vw,650px);background:#eaffc3;color:#202718;border:2px solid #daf58f;border-radius:18px;padding:20px 22px;box-shadow:0 10px 40px #0008;z-index:100;font-size:19px;font-weight:700}
.toast.error{background:#ffe4e9;border-color:#f5a8b7;color:#3b1522}
dialog{color:var(--text);background:var(--panel);border:2px solid var(--purple);border-radius:24px;max-width:min(540px,92vw);padding:28px;box-shadow:var(--shadow)}
dialog::backdrop{background:#000b}
dialog h2{font-size:28px}
dialog .button-row{margin-top:24px}
.skip{position:absolute;top:-100px;left:10px;background:var(--lime);color:#151124;padding:14px;z-index:200}
.skip:focus{top:10px}
.admin-nav{display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:12px 0 22px;margin-bottom:28px}
.admin-nav a{display:inline-flex;align-items:center;text-decoration:none;border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-height:48px;color:var(--text);font-size:16px}
.admin-nav a[aria-current=page]{background:var(--lime);color:#1c2410;font-weight:800}
.admin-nav form{margin-left:auto}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.review-card img{width:100%;height:400px;object-fit:contain;background:#100d18;border-radius:13px;margin-bottom:14px}
.review-card .button-row{justify-content:space-between;gap:24px;margin-top:20px}
.review-card .button{min-width:140px}
.review-card p{overflow-wrap:anywhere}
.review-card small{display:block}
.admin-winner{display:grid;grid-template-columns:200px 1fr;gap:24px;margin:22px 0}
.admin-winner img{width:100%;max-height:270px;object-fit:contain;background:#100d18;border-radius:14px}
.admin-winner h2{font-size:30px}
.admin-winner p{overflow-wrap:anywhere}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.settings-grid .span-2{grid-column:1/-1}
.settings-card{margin:24px 0}
.settings-card h2{margin-bottom:12px}
.settings-card .button{margin-top:14px}
.status-table{width:100%;border-collapse:collapse;margin:18px 0;font-size:16px}
.status-table th,.status-table td{padding:13px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.status-table th{color:var(--muted);font-weight:650}
.status-table code{font-size:13px;word-break:break-all}
code{font-size:.9em;background:#161121;border:1px solid var(--line);padding:2px 5px;border-radius:5px;overflow-wrap:anywhere}
.key-box{padding:20px;background:#151020;border:1px solid var(--line);border-radius:14px;overflow-wrap:anywhere;letter-spacing:2px}
.warning{color:var(--orange)}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}

@keyframes confirm{0%{box-shadow:0 0 0 0 #dcff7caa}
100%{box-shadow:0 0 0 12px #dcff7c00}
}

@media(max-width:980px){.leader-grid{grid-template-columns:1fr}
.leader-card{min-height:92px}
.leader-card img{width:68px;height:68px}
.leader-card strong{font-size:19px}
.leader-card small{font-size:16px}
.leader-card .medal{font-size:31px}
.leader-card>span:last-child{display:flex;flex:1;align-items:center;justify-content:space-between;gap:10px}
.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.leader-grid{gap:10px}
}

@media(max-width:640px){body{font-size:18px}
.wrap{padding:8px 16px 26px}
.topbar{padding:18px 16px 10px}
.wordmark{font-size:17px;gap:9px}
.brand-mark{width:40px;height:44px;border-radius:12px;font-size:24px}
.wordmark small{font-size:8px;letter-spacing:1.1px}
.legacy-unused-control{font-size:13px;padding:10px 11px;min-height:46px}
.hero{padding:20px 0 6px}
.hero h1{font-size:36px;letter-spacing:-1px}
.eyebrow{font-size:10px;letter-spacing:1.3px;line-height:1.6}
.hero-copy{font-size:18px}
.hero .button-row{display:grid;grid-template-columns:1fr}
.hero .button.secondary{min-height:50px}
.contest-logo{width:95px;height:95px}
.countdown{padding:20px 17px;margin-top:22px}
.countdown-heading{font-size:17px;gap:8px}
.countdown-heading .pill{font-size:10px}
.clock{gap:8px}
.clock div{padding:12px 3px}
.clock b{font-size:31px}
.clock span{font-size:10px}
.countdown p{font-size:13px;line-height:1.6}
.stats span{font-size:12px}
.stats div{padding:12px 4px}
.refresh-panel{padding:18px 16px;display:block}
.refresh-panel strong{font-size:20px;line-height:1.4;display:block}
.refresh-panel p{font-size:15px;margin:9px 0 14px}
.refresh-panel .button-row{gap:8px}
.refresh-panel .button.small{font-size:15px;flex:1;padding:11px 6px}
.notice{padding:16px;font-size:16px}
.section-heading h2{font-size:25px}
.section-heading>span{font-size:12px}
.photo-grid{grid-template-columns:1fr;gap:24px}
.photo-link img{height:auto;max-height:500px;min-height:200px}
.photo-info{padding:19px}
.vote-button{min-height:58px;font-size:19px}
.photo-info>small{font-size:14px}
.entry-meta{font-size:15px}
.caption{font-size:18px}
.mobile-dock{display:flex;position:fixed;bottom:0;left:0;right:0;gap:6px;background:#191325f2;backdrop-filter:blur(12px);border-top:1px solid #69587a;padding:10px 12px max(10px,env(safe-area-inset-bottom));z-index:50}
.mobile-dock a{flex:1;display:flex;justify-content:center;align-items:center;min-height:50px;border-radius:12px;font-size:15px;font-weight:750;text-decoration:none;color:var(--text);white-space:nowrap}
.mobile-dock .dock-enter{background:var(--orange);color:#26190d}
.footer{padding:30px 18px 115px}
.form-card{padding:22px 18px}
.form-card h1{font-size:32px}
.form-card .button{font-size:18px}
.form-card .check{font-size:16px;padding:14px 12px}
.form-card input,.form-card textarea{font-size:18px}
.button-row>.button{flex-grow:1}
.button-row{align-items:stretch}
.receipt{padding:21px 17px}
.receipt h2{font-size:27px}
.review-grid,.settings-grid{grid-template-columns:1fr}
.settings-grid .span-2{grid-column:auto}
.review-card{padding:19px 16px}
.review-card img{height:360px}
.review-card .button-row{gap:18px}
.review-card .button{min-width:110px;padding:14px 9px}
.admin-winner{grid-template-columns:1fr;padding:22px 18px}
.admin-winner img{max-height:350px}
.admin-nav{gap:8px}
.admin-nav a{font-size:14px;padding:10px 11px}
.admin-nav form{margin-left:0}
.status-table{font-size:14px}
.status-table th,.status-table td{padding:12px 6px}
.sponsor-grid{gap:12px}
.sponsor{width:calc(50% - 6px)}
.sponsor img{width:100%;height:100px}
.prose{padding:22px 18px}
.prose h1{font-size:33px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}
}


/* Version 2.1: theme presets. Shared high-contrast structure, different occasions. */
.theme-general{--bg:#0d1b2a;--panel:#162b40;--panel2:#203b52;--line:#536f89;--muted:#c0d2e4;--orange:#79deee;--lime:#a4f3cc;--purple:#acd9ff;--glow:#1d4254}

.theme-halloween{--bg:#171125;--panel:#271d39;--panel2:#352548;--line:#725a88;--muted:#d1c2e1;--orange:#ffb56d;--lime:#dcff8c;--purple:#d3b2ff;--glow:#51304e}

.theme-santa{--bg:#171d24;--panel:#233036;--panel2:#34423f;--line:#647f76;--muted:#ccdad4;--orange:#ffbcbe;--lime:#c5efb2;--purple:#ffdc94;--glow:#4b2933}

.theme-easter{--bg:#21192d;--panel:#30263e;--panel2:#42334f;--line:#887096;--muted:#e0cee7;--orange:#ffd59c;--lime:#d9eead;--purple:#e5c0ff;--glow:#55364f}

.theme-scavenger{--bg:#121e1c;--panel:#21322c;--panel2:#30453a;--line:#728b75;--muted:#d0dfcf;--orange:#ffda89;--lime:#d7ef9c;--purple:#aee8ce;--glow:#37482e}

.theme-activity{--bg:#151d31;--panel:#222e46;--panel2:#34405b;--line:#7081a6;--muted:#cbd5eb;--orange:#ffbf80;--lime:#ffe199;--purple:#b8d7ff;--glow:#3d3754}

.topbar>.pill{flex-shrink:0;max-width:44%;text-align:center;font-size:12px;overflow-wrap:anywhere}

.topbar .wordmark{min-width:0}
.brand-mark{flex-shrink:0}
.hero{position:relative}

.pill{background:var(--bg)}
.clock div{border-color:var(--line)}
.button{color:#15201a}

.vote-button.voted{background:var(--panel2);color:var(--lime);border-color:var(--lime)}

.file-picker{background:var(--panel2)}
.entry-rule{margin:20px 0 10px;max-width:680px;font-size:17px;color:var(--muted)}
.entry-rule strong{color:var(--orange)}

.locked-notice{border:2px solid var(--orange);background:var(--panel2);font-size:18px}
.locked-notice>strong{color:var(--orange);font-size:17px;letter-spacing:.4px}
.locked-notice p:last-child{margin:12px 0 0}

.final-preview{width:100%;height:auto;max-height:560px;object-fit:contain;background:var(--bg);border-radius:16px;display:block;margin:20px 0}

.preview-contact{border-left:4px solid var(--orange);padding:14px 18px;background:var(--bg);border-radius:0 12px 12px 0;overflow-wrap:anywhere;font-size:21px}

.sponsors{margin:52px auto 8px;max-width:920px;border-top:1px solid var(--line);padding-top:28px}
.sponsors h2{font-size:26px}

.sponsor-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:25px}

.sponsor{display:flex;flex-direction:column;width:100%;gap:0;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);font-size:16px}

.sponsor img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#fff;padding:0;border-radius:0}

.sponsor>span{padding:10px 16px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}

.sponsor:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.sponsor:hover{border-color:var(--orange)}

.moderator-footer{border-top:1px solid var(--line);padding-top:20px;margin-top:26px!important}
.moderator-footer a{display:inline-flex;align-items:center;min-height:48px;font-size:15px;letter-spacing:1.5px;font-weight:700}

.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.theme-option{position:relative;margin:0!important;min-width:0;cursor:pointer}

.theme-option input[type=radio]{position:absolute;left:12px;top:12px;width:24px;height:24px;min-height:24px;margin:0;accent-color:var(--lime);z-index:1}

.theme-swatch{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;min-height:142px;padding:18px 10px 12px;background:var(--panel2);border:2px solid var(--line);border-radius:17px;text-align:center;color:var(--text)}

.theme-swatch b{font-size:36px}
.theme-swatch strong{font-size:17px;line-height:1.25}
.theme-option input:checked+.theme-swatch{border-color:var(--lime);box-shadow:0 0 0 2px var(--lime)}
.theme-option input:focus-visible+.theme-swatch{outline:3px solid var(--purple);outline-offset:4px}

.contest-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.contest-list h2{margin-top:20px}
.contest-list .panel{min-width:0}

.contest-selector{border:1px solid var(--line);border-radius:16px;padding:16px 20px;margin:0 0 25px}
.contest-selector label{margin-top:0!important}
.contest-selector select{flex:1;min-width:180px;width:auto}

.sponsor-editor{margin:26px 0;padding:18px;border:1px solid var(--line);border-radius:16px}
.sponsor-editor>img{display:block;width:100%;height:auto;border-radius:10px}

.delete-link{display:inline-flex;min-height:48px;align-items:center;color:var(--red);margin-top:22px;border-top:1px solid var(--line);width:100%;font-size:17px}

input[type=radio]{accent-color:var(--lime)}
.admin-nav a{max-width:100%}
.form-card .button-stack{margin-top:20px}

@media(max-width:640px){.sponsors{margin-top:38px;padding-top:25px}
.sponsors h2{font-size:24px}
.sponsor-grid{gap:22px}
.sponsor{width:100%;font-size:15px}
.sponsor img{height:auto;width:100%;padding:0}
.sponsor>span{padding:9px 12px}
.topbar>.pill{font-size:10px;max-width:35%;padding:6px 8px;letter-spacing:.6px}
.topbar .wordmark{font-size:15px;letter-spacing:1.4px}
.topbar .wordmark small{font-size:9px;letter-spacing:.7px}
.theme-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.theme-swatch strong{font-size:16px}
.theme-swatch{min-height:135px}
.contest-list{grid-template-columns:1fr}
.contest-selector{padding:15px}
.contest-selector select{min-width:0;width:100%;flex-basis:100%}
.locked-notice{font-size:17px}
.preview-contact{font-size:19px}
.sponsor-editor{padding:12px}
.review-card .button-row{gap:24px}
.button{max-width:100%}
.admin-nav{row-gap:10px}
.mobile-dock{background:var(--panel)}
.form-card input[type=radio]{font-size:inherit}
.refresh-panel strong{font-size:20px}
}

@media(max-width:350px){.topbar .wordmark{font-size:13px}
.topbar .wordmark small{font-size:8px}
.brand-mark{width:37px}
.topbar{gap:7px}
.leader-card>span:last-child{display:block}
.clock{gap:5px}
.clock b{font-size:27px}
}


/* 2.2.0 multi-contest layouts and brief, non-blocking celebration. */
.footer{font-size:15px;line-height:1.6}.footer a{color:inherit;text-decoration:underline;text-underline-offset:3px}.footer-brand{font-weight:500}.footer-rights{font-size:13px;margin:.35rem 0}
.photo-permission{margin:18px 0;padding:14px;border:1px solid var(--line,#456);border-radius:12px;background:rgba(255,255,255,.025)}.consent-compact{font-size:16px;line-height:1.55}.photo-permission details{margin:8px 0 0 36px;font-size:15px}.photo-permission summary{cursor:pointer;text-decoration:underline;padding:8px 0}
.event-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.event-card{min-width:0}.event-card-top{display:flex;align-items:center;justify-content:space-between}.event-emoji{font-size:52px}.event-card .countdown{padding:12px}.event-card .clock b{font-size:30px}.event-card h3{font-size:26px}.event-card .clock{gap:6px}.url-box{overflow-wrap:anywhere;font-size:16px}.contest-badge{font-size:18px;font-weight:750;border-bottom:1px solid #435568;padding:12px 0}.winner-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.winner-slot{min-width:0;border:1px solid #425265;border-radius:14px;padding:16px}.winner-slot img{width:100%;height:220px;object-fit:contain;border-radius:10px;margin-bottom:12px;background:#101c29}.winner-email{overflow-wrap:anywhere}.contest-winners .section-heading{flex-wrap:wrap}.danger-zone{border:2px solid #da8080}details summary{cursor:pointer;padding:10px 0}
.celebration{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden;contain:strict}.party-piece{position:absolute;top:-12vh;font-size:32px;line-height:1;will-change:transform;animation:party-fall 3.4s cubic-bezier(.2,.4,.55,1) both;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}
@keyframes party-fall{0%{transform:translate3d(0,-12vh,0) rotate(-30deg);opacity:0}8%{opacity:1}88%{opacity:1}100%{transform:translate3d(28px,120vh,0) rotate(380deg);opacity:0}}
@media(max-width:700px){.event-directory,.winner-podium{grid-template-columns:1fr}.winner-slot img{height:260px}.party-piece{font-size:28px}.photo-permission details{margin-left:0}.contest-winners{padding:16px}}
@media(prefers-reduced-motion:reduce){.celebration{display:none!important}.party-piece{animation:none!important}}

/* 2.3.0: prize showcase, readable controls, and ten-second decorative effects. */
.contest-logo{background:#fff;padding:4px;border-radius:10px;box-sizing:content-box;object-fit:contain}
.prize-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;align-items:stretch}
.prize-card{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:22px;min-width:0;display:flex;flex-direction:column;gap:12px}
.prize-card h3{margin:0 0 6px;font-size:22px}.prize-image{display:block;width:200px;height:200px;max-width:100%;object-fit:contain;background:#fff;border-radius:12px;margin:0 auto}
.prize-placeholder{display:grid;place-items:center;font-size:78px;color:#24384d;background:#f5f8fb}
.prize-description{font-size:20px;font-weight:750;line-height:1.45;white-space:pre-line;overflow-wrap:anywhere;margin:6px 0}
.prize-state{font-size:16px;line-height:1.5;color:var(--muted);margin:0}
.prize-card .leader-card{margin-top:auto;min-width:0}.prize-card .leader-card img{width:64px;height:72px;object-fit:contain}.prize-card .leader-card .medal{display:none}
.prize-settings{border:1px solid var(--line);padding:22px;border-radius:16px;min-width:0;margin:25px 0}.prize-settings legend{font-size:26px;font-weight:800}
.prize-input{border-top:1px solid var(--line);padding:20px 0;margin-top:20px}.prize-delete{margin-top:20px;border:1px solid var(--line);padding:14px;border-radius:12px}
.prize-delete summary{font-size:18px;font-weight:750}.awarded-prize{white-space:pre-wrap;overflow-wrap:anywhere}
.music-sampler{margin:22px 0;padding:18px;border:1px solid var(--line);border-radius:14px}.music-sampler audio{display:block;margin:14px 0;max-width:100%;width:100%}
.accessibility-bar{max-width:1160px;margin:0 auto;padding:0 24px;text-align:right}.accessibility-bar .text-button{font-size:16px;min-height:44px;text-underline-offset:4px;text-decoration:underline}
.footer .text-button{font:inherit;min-height:44px;text-decoration:underline;text-underline-offset:3px}
#accessibility-dialog{max-width:min(620px,calc(100% - 24px));max-height:85vh;overflow:auto;padding:25px}
#accessibility-dialog .check{font-size:18px}.theme-option{min-width:0}.theme-option strong{overflow-wrap:anywhere}
:focus-visible{outline:3px solid var(--orange);outline-offset:4px}button,a,input,select,textarea,summary{scroll-margin:24px}
button.text-button,summary{min-height:44px}a.skip:focus{left:12px;top:8px;z-index:9999}
.vote-cooldown-note{min-height:1.6em;font-size:17px;font-weight:700;color:var(--text)}
body.reduced-effects .celebration{display:none!important}body.reduced-effects .confirmed{animation:none!important}body.reduced-effects *{scroll-behavior:auto!important}
body.high-contrast{--text:#fff;--muted:#e6edf4;--line:#aab9c6;--bg:#07111a;--panel:#101c28;--panel2:#162534;--orange:#ffd875;--purple:#d6bdff}
body.high-contrast a:not(.button){text-decoration:underline}body.high-contrast input,body.high-contrast select,body.high-contrast textarea{border-color:#bfcddb}
body.larger-reading{font-size:21px}body.larger-reading p,body.larger-reading .muted,body.larger-reading .caption,body.larger-reading .check,body.larger-reading .consent-compact{font-size:20px!important;line-height:1.65}
body.larger-reading small{font-size:18px}body.larger-reading .wordmark small{font-size:12px}
.party-piece{animation-duration:3.8s;animation-iteration-count:infinite;animation-timing-function:linear}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important}.confirmed{animation:none!important}}
@media(prefers-contrast:more){body{--muted:#e6edf4;--line:#aab9c6}input,select,textarea{border-color:#c5d2df}}
@media(max-width:600px){.prize-grid{grid-template-columns:1fr}.prize-card{padding:20px}.accessibility-bar{padding:0 16px}.prize-settings{padding:14px}.topbar{flex-wrap:wrap}.theme-options{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card{min-width:0}.music-sampler{padding:14px}.prize-description{font-size:20px}}
@media(forced-colors:active){.button,.panel,.prize-card,.check{border:2px solid CanvasText}.contest-logo,.prize-image{forced-color-adjust:none}.celebration{display:none}}
/* Native date controls must shrink inside narrow admin grids and zoomed views. */
.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid>label{min-width:0;width:100%}input[type="datetime-local"]{min-width:0;max-width:100%;width:100%;font-size:16px}
@media(max-width:700px){.settings-grid{grid-template-columns:minmax(0,1fr)}}

/* 2.4.0: stable, continuously phased eight-second rain, camera and photo-first podiums. */
@keyframes party-fall{0%{transform:translate3d(0,-8vh,0) rotate(-25deg);opacity:1}96%{opacity:1}100%{transform:translate3d(20px,125vh,0) rotate(335deg);opacity:0}}
.party-piece{top:-6vh;animation-timing-function:linear;animation-fill-mode:both;animation-iteration-count:infinite}
.camera-panel,.capture-settings{padding:20px;border:1px solid var(--line);border-radius:14px;margin:20px 0;min-width:0}
.capture-settings legend{font-size:23px;font-weight:750}.camera-panel h2{font-size:25px}.camera-panel .button-row{flex-wrap:wrap}
#camera-video{display:block;width:100%;max-height:480px;object-fit:contain;background:#070d14;border-radius:12px;margin:18px 0}
#camera-message{min-height:2.7em}.library-option{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}
.prize-card.has-leader .leader-card{display:flex;flex-direction:column;align-items:stretch;padding:12px;margin:0;gap:10px;flex:1}
.prize-card.has-leader .leader-card img{display:block;width:100%;height:290px;max-height:none;object-fit:contain;border-radius:10px;background:rgba(0,0,0,.17)}
.prize-card.has-leader .leader-card>span:last-child{display:flex;justify-content:space-between;align-items:center;gap:10px}.prize-card.has-leader .leader-card small{font-size:16px}
.prize-award{min-width:0}.prize-card.has-leader .prize-award{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:14px;margin-top:auto}
.prize-card.has-leader .prize-image{width:88px;height:88px;flex:0 0 88px;margin:0;border-radius:8px}.prize-card.has-leader .prize-placeholder{font-size:42px}
.prize-card.has-leader .prize-description{font-size:17px;min-width:0;line-height:1.45}.prize-description>small{display:block;font-size:14px;font-weight:500;color:var(--muted);margin-bottom:3px}
.prize-card .prize-state{min-height:3em;color:var(--text)}.table-scroll{overflow-x:auto}.capture-settings .check{align-items:flex-start}
@media(max-width:600px){.camera-panel,.capture-settings{padding:14px}.camera-panel .button{min-height:52px}.prize-card.has-leader .leader-card img{height:330px}.prize-card.has-leader .prize-image{width:80px;height:80px;flex-basis:80px}.prize-card.has-leader .prize-description{font-size:17px}}
@media(prefers-reduced-motion:reduce){.party-piece{animation:none!important}.celebration{display:none!important}}
.party-piece.p0{left:1.00%;animation-duration:3.200s;animation-delay:-0.000s;}
.party-piece.p1{left:62.80%;animation-duration:3.380s;animation-delay:-2.089s;}
.party-piece.p2{left:28.61%;animation-duration:3.560s;animation-delay:-0.840s;}
.party-piece.p3{left:90.41%;animation-duration:3.740s;animation-delay:-3.194s;}
.party-piece.p4{left:56.21%;animation-duration:3.920s;animation-delay:-1.851s;}
.party-piece.p5{left:22.02%;animation-duration:4.100s;animation-delay:-0.370s;}
.party-piece.p6{left:83.82%;animation-duration:4.280s;animation-delay:-3.031s;}
.party-piece.p7{left:49.62%;animation-duration:3.200s;animation-delay:-1.044s;}
.party-piece.p8{left:15.43%;animation-duration:3.380s;animation-delay:-3.192s;}
.party-piece.p9{left:77.23%;animation-duration:3.560s;animation-delay:-2.002s;}
.party-piece.p10{left:43.03%;animation-duration:3.740s;animation-delay:-0.674s;}
.party-piece.p11{left:8.84%;animation-duration:3.920s;animation-delay:-3.130s;}
.party-piece.p12{left:70.64%;animation-duration:4.100s;animation-delay:-1.707s;}
.party-piece.p13{left:36.44%;animation-duration:4.280s;animation-delay:-0.147s;}
.party-piece.p14{left:2.25%;animation-duration:3.200s;animation-delay:-2.088s;}
.party-piece.p15{left:64.05%;animation-duration:3.380s;animation-delay:-0.914s;}
.party-piece.p16{left:29.85%;animation-duration:3.560s;animation-delay:-3.163s;}
.party-piece.p17{left:91.66%;animation-duration:3.740s;animation-delay:-1.895s;}
.party-piece.p18{left:57.46%;animation-duration:3.920s;animation-delay:-0.488s;}
.party-piece.p19{left:23.26%;animation-duration:4.100s;animation-delay:-3.045s;}
.party-piece.p20{left:85.07%;animation-duration:4.280s;animation-delay:-1.544s;}
.party-piece.p21{left:50.87%;animation-duration:3.200s;animation-delay:-3.132s;}
.party-piece.p22{left:16.67%;animation-duration:3.380s;animation-delay:-2.017s;}
.party-piece.p23{left:78.48%;animation-duration:3.560s;animation-delay:-0.765s;}
.party-piece.p24{left:44.28%;animation-duration:3.740s;animation-delay:-3.115s;}
.party-piece.p25{left:10.08%;animation-duration:3.920s;animation-delay:-1.767s;}
.party-piece.p26{left:71.89%;animation-duration:4.100s;animation-delay:-0.282s;}
.party-piece.p27{left:37.69%;animation-duration:4.280s;animation-delay:-2.940s;}
.party-piece.p28{left:3.50%;animation-duration:3.200s;animation-delay:-0.976s;}
.party-piece.p29{left:65.30%;animation-duration:3.380s;animation-delay:-3.120s;}
.party-piece.p30{left:31.10%;animation-duration:3.560s;animation-delay:-1.926s;}
.party-piece.p31{left:92.91%;animation-duration:3.740s;animation-delay:-0.595s;}
.party-piece.p32{left:58.71%;animation-duration:3.920s;animation-delay:-3.046s;}
.party-piece.p33{left:24.51%;animation-duration:4.100s;animation-delay:-1.620s;}
.party-piece.p34{left:86.32%;animation-duration:4.280s;animation-delay:-0.056s;}
.party-piece.p35{left:52.12%;animation-duration:3.200s;animation-delay:-2.020s;}
.party-piece.p36{left:17.92%;animation-duration:3.380s;animation-delay:-0.842s;}
.party-piece.p37{left:79.73%;animation-duration:3.560s;animation-delay:-3.087s;}
.party-piece.p38{left:45.53%;animation-duration:3.740s;animation-delay:-1.815s;}
.party-piece.p39{left:11.33%;animation-duration:3.920s;animation-delay:-0.405s;}
.party-piece.p40{left:73.14%;animation-duration:4.100s;animation-delay:-2.958s;}
.party-piece.p41{left:38.94%;animation-duration:4.280s;animation-delay:-1.453s;}

/* Eastern schedule fields include readable live Pacific and UTC references. */
.schedule-field{min-width:0}.schedule-field>input{max-width:100%;min-width:0;width:100%}.schedule-hint{font-size:.86rem;line-height:1.5;overflow-wrap:anywhere}.schedule-field [data-fold-wrap]{padding:.5rem 0}
