/* Competition screens: generous picture targets and the same stage vocabulary. */
#competitionHome{margin:30px 0 34px}
.welcome-screen{text-align:center;max-width:1100px;margin:auto}
.welcome-screen h1{font-size:clamp(32px,4vw,52px);margin:12px 0}
.welcome-screen>p,.competition-description{color:#c4b9d3;line-height:1.65;max-width:680px;margin:12px auto 25px}
.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:750px;margin:30px auto}
.role-card{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:15px;min-height:245px;padding:28px;border:2px solid #aa8fc84a;border-radius:26px;background:radial-gradient(ellipse at 50% 10%,#b599fa22,transparent 70%),#251d36;box-shadow:0 12px 35px #09051133}
.role-card:hover{border-color:var(--gold);background-color:#332741;transform:translateY(-4px)}
.role-card strong{font:600 29px Outfit,sans-serif}
.role-card small,.role-card p{font-size:13px;color:#c4b9d3;line-height:1.5;margin:0}
.role-icon{width:110px;height:110px;display:grid;place-items:center;font-size:76px;color:var(--gold)}
.role-icon svg,.role-card>svg{width:100px;height:100px;flex:none}
.character-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:25px 0}
.character-card{position:relative;isolation:isolate;min-width:0;padding:12px 8px 17px;display:flex;flex-direction:column;align-items:center;gap:5px;border:2px solid #b59bd732;border-radius:20px;overflow:hidden;background:linear-gradient(155deg,#31273f,#1a1829)}
.character-card::before{content:'';position:absolute;inset:20% 10% 22%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#b599fa1c,transparent 72%)}
.character-card:hover{border-color:#c3b0ef;background:#352842}
.character-card.selected,.character-card[aria-pressed="true"],.character-card[aria-selected="true"]{border:3px solid var(--gold);padding:11px 7px 16px;background:linear-gradient(155deg,#52402f,#292039);box-shadow:0 0 0 3px #f6cd7c17}
.character-card.selected::after,.character-card[aria-pressed="true"]::after,.character-card[aria-selected="true"]::after{content:'✓';position:absolute;top:9px;right:9px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:#2c2138;font-size:18px;font-weight:800}
.character-portrait{display:block;width:100px;height:130px;flex-shrink:0}
.character-card>svg{width:100%;max-width:140px;height:155px;flex-shrink:0}
.character-name{font:600 16px/1.2 Outfit,sans-serif;display:block}
.character-era{display:block;color:#bcb0c9;font-size:11px;line-height:1.4}
.setup-actions,.podium-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;max-width:650px;margin:22px auto}
.setup-actions .primary,.setup-actions .secondary,.podium-actions .primary,.podium-actions .secondary{width:auto;min-width:190px;flex:1;margin:0;min-height:55px;font-size:15px}
.competition-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:24px 0 18px;flex-wrap:wrap}
.competition-topbar h2{font:600 26px Outfit,sans-serif;margin:0}
.competition-topbar .secondary{width:auto;margin:0;min-height:48px}
.round-track{display:flex;align-items:center;gap:9px}
.round-dot{width:43px;height:43px;display:grid;place-items:center;border:2px solid #847294;border-radius:50%;color:#d6cbe2;font:600 20px Outfit,sans-serif;position:relative}
.round-dot:not(:last-child)::after{content:'';position:absolute;left:100%;top:18px;width:11px;border-top:2px solid #847294}
.round-dot.active{background:var(--gold);border-color:var(--gold);color:#282033;box-shadow:0 0 0 5px #f6cd7c17}
.round-dot.done{background:#254c44;color:#b4f2d6;border-color:#93d1b6}
.contestant-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:16px 0 22px}
.contestant-chip{position:relative;min-width:0;display:flex;align-items:center;gap:8px;text-align:left;padding:8px;border:1px solid #ffffff20;border-radius:14px;background:#221c30}
.contestant-chip .character-portrait,.contestant-chip>svg{width:43px;height:58px;flex-shrink:0}
.contestant-chip strong{display:block;font:500 13px Outfit,sans-serif}
.contestant-chip small{color:#bdb0cb;font-size:10px;display:block;margin-top:4px}
.contestant-chip.selected,.contestant-chip[aria-current="true"]{border:2px solid var(--gold);background:#3a2e34;padding:7px}
.contestant-chip.selected::after{content:'★';position:absolute;right:4px;top:2px;font-size:12px;color:var(--gold)}
.judge-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}
.judge-picker .move-choice{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;min-width:0;min-height:110px;padding:10px 7px;border:2px solid #ffffff1c;border-radius:16px;background:#ffffff04}
.judge-picker .move-choice:hover,.judge-picker .move-choice[aria-pressed="true"]{border-color:var(--gold);background:#f6cd7c15}
.judge-picker .move-picture{width:72px;height:72px}
.judge-picker .move-choice span{font-size:12px}
.round-score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:25px 0}
.score-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #c6aaf136;border-radius:20px;background:linear-gradient(150deg,#30273d,#211a2c);padding:16px 9px;min-width:0}
.score-card h3,.score-card strong{font:600 16px Outfit,sans-serif;margin:8px 0 12px}
.score-card .character-portrait,.score-card>svg{height:125px;width:100px}
.score-controls{display:flex;align-items:center;flex-direction:column;gap:5px;margin-top:8px}
.score-controls button{width:64px;height:48px;padding:0;font-size:29px;font-weight:700;border:2px solid #bd9ddb63;background:#b599fa15;border-radius:12px;touch-action:manipulation}
.score-controls button:hover{border-color:var(--gold);background:#f6cd7c22}
.score-value{display:grid;place-items:center;font:700 43px/1 Outfit,sans-serif;color:var(--gold);min-height:54px;min-width:70px;font-variant-numeric:tabular-nums}
.judge-results{max-width:920px;margin:24px auto;text-align:left;overflow-x:auto}
.judge-score-row{display:grid;grid-template-columns:65px minmax(95px,1fr) minmax(160px,1.2fr) 65px;align-items:center;gap:12px;padding:12px 15px;margin:8px 0;border:1px solid #ffffff16;background:#292034;border-radius:16px}
.judge-score-row .character-portrait,.judge-score-row>svg{width:52px;height:66px}
.judge-score-row strong{font:600 16px Outfit,sans-serif}
.judge-score-row .total{font:700 28px Outfit,sans-serif;color:var(--gold);text-align:right}
.judge-votes{display:flex;justify-content:space-around;gap:8px}
.judge-vote{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:43px;min-height:54px;padding:7px;background:#16152180;border-radius:10px;font:600 23px Outfit,sans-serif;font-variant-numeric:tabular-nums}
.judge-vote small{font:400 10px 'DM Sans',sans-serif;color:#bcb0ca}
.judge-results table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.judge-results th,.judge-results td{padding:13px 10px;border-bottom:1px solid #ffffff1a;text-align:center}
.judge-results th{font-size:12px;color:#c0b2cc}
.judge-results td:first-child,.judge-results th:first-child{text-align:left}
.leaderboard-row{display:flex;align-items:center;gap:15px;text-align:left;max-width:680px;margin:8px auto;padding:10px 18px;border-radius:15px;border:1px solid #ffffff15;background:#271f33}
.leaderboard-row:first-child{border-color:#f6cd7c80;background:#3b2d39}
.leaderboard-row .rank{width:32px;font:600 25px Outfit,sans-serif;color:var(--gold)}
.leaderboard-row .character-portrait,.leaderboard-row>svg{width:45px;height:57px}
.leaderboard-row .total{margin-left:auto;font:600 27px Outfit,sans-serif;color:var(--gold)}
.competition-help{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;color:#c7bad6;margin:18px 0}
.competition-help svg{width:45px;height:45px;flex:none}
@media(max-width:1000px){.contestant-chip{flex-direction:column;text-align:center;gap:3px}.contestant-chip strong{font-size:12px}.character-card>svg{height:135px}.character-name{font-size:14px}.round-score-grid{gap:8px}.score-card{padding:12px 5px}}
@media(max-width:650px){
 #competitionHome{margin-top:23px}.welcome-screen h1{font-size:33px}.welcome-screen>p{font-size:13px;margin-bottom:18px}
 .role-grid{gap:12px;margin:23px auto}.role-card{min-height:205px;padding:20px 9px;gap:12px;border-radius:20px}.role-card strong{font-size:23px}.role-card small,.role-card p{font-size:11px}.role-icon,.role-icon svg,.role-card>svg{width:80px;height:80px}
 .character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.character-card>svg{height:150px}.character-name{font-size:17px}.character-era{font-size:11px}
 .setup-actions,.podium-actions{gap:9px}.setup-actions .primary,.setup-actions .secondary,.podium-actions .primary,.podium-actions .secondary{min-width:130px;font-size:13px}
 .competition-topbar{justify-content:center;gap:14px}.competition-topbar h2{font-size:23px}.round-dot{width:38px;height:38px;font-size:19px}.round-dot:not(:last-child)::after{top:16px}
 .contestant-strip{gap:5px;margin:10px 0 16px}.contestant-chip{padding:5px 2px}.contestant-chip.selected{padding:4px 1px}.contestant-chip .character-portrait,.contestant-chip>svg{width:36px;height:49px}.contestant-chip strong{font-size:10px;line-height:1.15}.contestant-chip small{font-size:9px}
 .judge-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.judge-picker .move-picture{width:64px;height:64px}.judge-picker .move-choice{min-height:102px;padding:8px 3px}.judge-picker .move-choice span{font-size:10px}
 .round-score-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.round-score-grid .score-card:last-child:nth-child(odd){grid-column:1 / -1;max-width:calc(50% - 6px);width:100%;justify-self:center}.score-card{padding:15px 8px}.score-card .character-portrait,.score-card>svg{height:120px;width:94px}.score-controls{flex-direction:row;gap:5px}.score-controls button{width:44px;min-height:48px;font-size:25px}.score-value{font-size:32px;min-width:30px}
 .judge-score-row{grid-template-columns:42px minmax(60px,1fr) minmax(130px,1.3fr) 36px;gap:6px;padding:9px 7px;border-radius:12px}.judge-score-row .character-portrait,.judge-score-row>svg{width:39px;height:53px}.judge-score-row strong{font-size:12px}.judge-score-row .total{font-size:22px}.judge-votes{gap:4px}.judge-vote{min-width:35px;min-height:48px;font-size:20px;padding:5px 3px}.judge-vote small{font-size:8px}
 .leaderboard-row{gap:10px;padding:9px 12px}.leaderboard-row .total{font-size:24px}.leaderboard-row .rank{font-size:22px;width:22px}
}
@media(prefers-reduced-motion:reduce){.role-card,.character-card{transition:none}.role-card:hover{transform:none}}
#competitionHome h2{font:600 26px Outfit,sans-serif;margin:24px 0 12px}.judge-request{display:flex;align-items:center;gap:9px;font-size:20px;color:var(--gold);margin-top:16px}.round-activity{display:flex;flex-direction:column;gap:7px;margin:16px 0}.activity-item{display:flex;align-items:center;gap:7px;font-size:11px;color:#c9bedb}.activity-item>b{background:#ffffff12;border-radius:50%;width:23px;height:23px;display:grid;place-items:center}.activity-item strong{margin-left:auto;color:var(--gold)}.activity-item.you{color:var(--gold)}.score-confirm{margin-top:10px;min-height:46px;min-width:65px;font-size:22px}.score-confirm.confirmed{background:#426b57;border-color:#b2e3c4}.result-moves{display:block;font:11px 'DM Sans',sans-serif;color:#bbb1c8;margin-top:5px}.results-heading{background:none;border:0;padding-bottom:0}.results-heading .judge-votes>span{display:flex;flex-direction:column;align-items:center;font-size:21px}.results-heading small{font-size:10px}.final-standings .leaderboard-row{padding:8px;gap:8px}.final-standings .leaderboard-row strong{font-size:12px}.final-standings .leaderboard-row .total{font-size:22px}.final-standings .leaderboard-row .character-portrait{width:33px;height:44px}.welcome-screen .character-card .character-portrait{height:155px;width:125px}.welcome-screen>.eyebrow{margin-top:18px}.round-score-grid button:disabled{opacity:.5}.score-controls button:focus-visible{outline-color:var(--gold)}
@media(max-width:650px){.round-score-grid .score-card{min-width:0}.score-controls{gap:3px}.score-controls button{width:39px}.score-value{min-width:35px}.judge-score-row .judge-vote{min-width:31px}.judge-score-row{grid-template-columns:35px minmax(55px,1fr) 117px 39px}.judge-score-row .total{font-size:19px}.results-heading strong{font-size:10px}.live .stage{height:575px}.final-standings{margin-top:12px}}
