html,body{min-height:100%;background:#f3f1ec}html.screen-page,body.screen-page{background:#0b0d12}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Noto Sans JP,sans-serif;color:#17191f;background:#f3f1ec;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{min-height:56px;padding:0 22px;border:0;background:#e2523d;color:#fff;cursor:pointer;font-weight:800}button:disabled{cursor:not-allowed;opacity:.45}input,select{min-height:52px;border:2px solid #17191f;background:transparent;padding:0 14px}.home,.admin{width:min(100%,920px);min-height:100vh;margin:auto;padding:9vh max(7vw,24px)}.eyebrow{color:#e2523d;font-size:.72rem;font-weight:900;letter-spacing:.14em}.home h1{margin:12vh 0 8vh;font-size:clamp(2.6rem,7vw,5.5rem);line-height:1.08}.home em{color:#e2523d;font-style:normal}.home form,.admin form{display:grid;max-width:560px;gap:12px}.home label{font-weight:800}.home input{height:58px}.home a,.admin a{display:inline-block;margin-top:36px;color:inherit}.demo-band{min-height:28px;background:#e2523d;color:#fff;text-align:center;font-size:12px;font-weight:700}.vote{max-width:720px;margin:auto;padding:0 20px 48px}.vote header{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;padding:24px 0 16px;background:#f3f1ec}.credits{font-weight:700}.credits b{color:#e2523d;font-size:1.8rem}.vote h1{margin:42px 0 12px;font-size:clamp(2rem,6vw,3.6rem);line-height:1.1}.hint,.error{color:#b5281b;font-weight:700}.team-list,.vote-rank-list{display:grid;gap:10px;margin-top:28px}.team-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 16px;border-top:1px solid #bab6ae}.team-card small{color:#e2523d;font-size:.7rem;font-weight:900}.team-card h2{margin:3px 0;font-size:1.2rem;word-break:auto-phrase;overflow-wrap:anywhere}.team-card p{margin:0;color:#69655e;overflow-wrap:anywhere}.team-card button{flex:none}.secondary{border:2px solid #e2523d;background:transparent;color:#e2523d}.closed-results h1{margin-bottom:8px}.center{display:grid;min-height:100vh;place-items:center}.screen{display:grid;position:relative;height:100dvh;min-height:0;grid-template-rows:auto 1fr auto;overflow:hidden;padding:18px 4vw 12px;background:#0b0d12;color:#f6f5f0}.screen>.demo-band{position:absolute;z-index:3;top:0;right:0;left:0}.dark{background:#0b0d12;color:#f6f5f0}.screen-header{display:flex;align-items:end;justify-content:space-between;min-height:0;padding:28px 0 12px;border-bottom:1px solid #343842}.screen h1{margin:4px 0 0;font-size:clamp(1.5rem,4vw,3.5rem)}.screen-total{text-align:right;font-size:1.2rem}.screen-total b{display:block;font-size:clamp(1.5rem,3vw,2.6rem);line-height:1;font-variant-numeric:tabular-nums}.status{display:block;margin-top:12px;color:#ff806c;font-size:.75rem}.rank-list{display:grid;min-height:0;--row-h: calc((100dvh - 160px) / var(--team-count));grid-template-rows:repeat(var(--team-count),minmax(0,1fr));gap:clamp(2px,.6vh,8px);height:100%;margin:8px 0 0}.rank-list-many{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);column-gap:3vw}.rank-row{display:flex;align-items:center;min-width:0;min-height:0;overflow:hidden;gap:18px}.rank-no{width:clamp(28px,4vw,45px);color:#868b96;text-align:right;font-size:clamp(1rem,calc(var(--row-h, 70px) * .45),2rem);font-weight:900}.rank-body{flex:1}.rank-label{display:flex;align-items:baseline;justify-content:space-between;min-height:0;line-height:1;font-size:clamp(28px,calc(var(--row-h, 70px) * .6),44px);font-weight:800}.rank-label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-label strong{font-size:clamp(36px,calc(var(--row-h, 70px) * .78),64px);font-variant-numeric:tabular-nums}.bar{height:clamp(4px,calc(var(--row-h, 70px) * .1),12px);margin-top:3px;background:#20242d}.bar i{display:block;height:100%;background:#e2523d;transition:width .35s}.secret{margin:15vh 0;text-align:center;font-size:clamp(3rem,8vw,7rem);font-weight:900}.secret small{color:#aeb3be;font-size:1.2rem}.secret p{font-size:1.5rem}.screen-qr{flex:none;padding:10px;background:#f6f5f0;color:#0b0d12}.screen-qr canvas{width:clamp(72px,14vh,110px)!important;height:clamp(72px,14vh,110px)!important}.qr{display:grid;justify-items:center;gap:4px;font-size:.8rem}.winner{min-width:0;color:#ffca66;font-size:clamp(1rem,2.5vw,2rem)}.winner b{font-size:clamp(1.5rem,4vw,3rem)}.winner-label{margin-right:14px;padding:2px 10px;border:1px solid #ffca66;font-size:.7em;letter-spacing:.08em;vertical-align:middle}.screen-content{min-height:0;overflow:hidden}.screen-content-secret{display:grid;place-items:center}.screen-footer{display:flex;align-items:end;justify-content:space-between;min-height:0;padding-top:6px}.admin h1{font-size:3.5rem}.admin-section{margin-top:36px;padding-top:24px;border-top:1px solid #bab6ae}.admin-section h2,.admin-section h3{margin-top:0}.inline-form,.team-form,.editable-team,.status-actions,.admin-footer-actions{display:flex;flex-wrap:wrap;gap:8px}.inline-form input{min-width:260px}.event-list{display:grid;gap:8px}.event-button{width:100%;text-align:left}.event-detail .qr{width:210px;margin:20px 0;padding:12px;background:#fff}.settings-grid{display:grid;max-width:560px;gap:16px;margin:24px 0}.settings-grid label{display:grid;gap:6px;font-weight:700}.checkbox-label{display:flex!important;align-items:center;grid-template-columns:auto 1fr}.checkbox-label input{min-height:auto}.team-form{display:grid;grid-template-columns:90px 1fr 1fr auto}.editable-teams{display:grid;gap:8px;margin-top:18px}.editable-team input:nth-child(1){width:90px}.editable-team input:nth-child(2),.editable-team input:nth-child(3){min-width:0;flex:1 1 180px}.admin-footer-actions{margin-top:28px}.results-panel{margin-top:32px}.results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.results-heading h3{margin-bottom:8px}.results-table{width:100%;border-collapse:collapse}.results-table th,.results-table td{padding:9px 8px;border-bottom:1px solid #bab6ae;text-align:left}.results-table th:last-child,.results-table td:last-child{text-align:right}.danger{background:#6d2020}@media(max-width:700px){.team-card{align-items:flex-end}.team-card h2{font-size:1.15rem}.team-card p{font-size:.85rem}.team-card button{padding:0 12px}.team-form{grid-template-columns:1fr 1fr}.screen-footer{gap:8px}.screen-qr{transform:scale(.7);transform-origin:bottom right;margin-right:-24px;margin-bottom:-18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
