/* Final placements are shown one at a time, then as a readable paged board. */
.live:has(.phase-finished),.live:has(.phase-final-board){color:#1c3347}
.live:has(.phase-finished):before,.live:has(.phase-final-board):before{background:radial-gradient(ellipse at 50% 25%,#fff,#f7f4ec 63%,#e7ebe6);opacity:1;transform:none;animation:none}
.live:has(.phase-finished):after,.live:has(.phase-final-board):after{background:radial-gradient(ellipse at 50% 105%,#b9cbd34d,transparent 55%)}
.live:has(.phase-finished) .live-top,.live:has(.phase-final-board) .live-top{display:none}
.live:has(.phase-finished) .hint,.live:has(.phase-final-board) .hint{color:#536a79}
.live:has(.phase-finished) .control-bar .btn-outline,.live:has(.phase-final-board) .control-bar .btn-outline{color:#304656;background:#fff;border-color:#d2dade;box-shadow:0 3px 10px #203f4d18}
.finale-scene,.final-board-scene{width:min(1100px,96%);position:relative;z-index:1;text-align:center;min-width:0}
.finale-kicker{display:inline-block;color:#a7473e;font-size:clamp(10px,1.2vw,14px);font-weight:950;letter-spacing:.21em}
.finale-place{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(53px,8vw,115px);line-height:.95;letter-spacing:.015em;color:#20394d;text-shadow:3px 4px 0 #e6b666,6px 8px 0 #df5c4e;margin:15px 0 8px;animation:finale-pop .55s cubic-bezier(.16,1.3,.3,1) both}
.finale-champion .finale-place{color:#d54d42;text-shadow:3px 4px 0 #ffd579,7px 8px 0 #314c5c}
.finale-rank{color:#8a5246;font-size:12px;font-weight:950;letter-spacing:.16em}
.finale-people{display:flex;justify-content:center;align-items:stretch;gap:clamp(10px,2vw,22px);flex-wrap:wrap;margin:18px auto;max-width:980px}
.finale-person{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:clamp(135px,19vw,240px);max-width:calc(50% - 12px);padding:14px 20px;background:#fff;border:2px solid #e4ddd0;border-radius:16px;box-shadow:0 12px 30px #213f4d26;animation:finale-person .5s var(--reveal-delay,0s) both}
.finale-person strong{max-width:100%;font-size:clamp(20px,3vw,38px);line-height:1.05;overflow-wrap:anywhere}.finale-face{font-size:clamp(54px,10vh,100px);line-height:1.1;margin-bottom:5px}.finale-people.many{gap:8px;margin:10px auto}.finale-people.many .finale-person{min-width:110px;padding:8px;flex:1 1 20%;max-width:23%}.finale-people.many .finale-face{font-size:clamp(35px,6vh,55px)}.finale-people.many .finale-person strong{font-size:clamp(13px,1.7vw,21px)}
.finale-points{color:#4a6170;font-size:clamp(15px,2vw,22px);font-weight:900;letter-spacing:.1em}.finale-points strong{font-size:clamp(30px,4vw,54px);color:#d95044;letter-spacing:0}.finale-step,.finale-more,.final-board-page{margin-top:8px;color:#657c89;font-size:10px;font-weight:900;letter-spacing:.14em}
.final-board-scene h2{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(38px,6vw,76px);letter-spacing:.02em;line-height:1;color:#20394d;margin:8px 0 5px}.final-board-scene p{color:#58717f;font-size:clamp(12px,1.3vw,16px);margin:4px 0 14px}
.final-board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;text-align:left}.final-board-row{display:flex;align-items:center;gap:10px;min-width:0;padding:7px 12px;background:#fff;border:1px solid #dce3e2;border-radius:9px;box-shadow:0 5px 16px #23475714;animation:finale-person .45s var(--reveal-delay,0s) both}.final-board-row.first{background:#fff6dd;border-color:#e9c879}.final-board-rank{width:48px;flex:none;font-size:17px;font-weight:1000;color:#a75244}.final-board-rank small{display:block;font-size:8px;letter-spacing:.08em}.final-board-avatar{font-size:24px;line-height:1}.final-board-row strong{font-size:clamp(13px,1.6vw,18px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.final-board-score{margin-left:auto;flex:none;font-size:21px;color:#263f50;font-weight:1000}.final-board-score small{font-size:9px;color:#748995;margin-left:3px}
@keyframes finale-pop{from{opacity:0;transform:translateY(28px) scale(.83)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes finale-person{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:700px){.finale-place{font-size:clamp(45px,7vw,85px);margin:7px 0}.finale-people{margin:8px auto}.finale-face{font-size:clamp(43px,8vh,70px)}.finale-person{padding:8px 16px}.final-board-scene h2{font-size:clamp(34px,5vw,58px)}.final-board-scene p{margin-bottom:8px}.final-board-row{padding:5px 10px}.final-board-grid{gap:5px 10px}}
@media(max-width:700px){.finale-person{min-width:120px}.finale-people.many .finale-person{flex-basis:22%;max-width:23%;min-width:0}.final-board-row{gap:5px;padding:5px}.final-board-rank{width:36px;font-size:14px}.final-board-avatar{font-size:19px}.final-board-row strong{font-size:12px}.final-board-score{font-size:16px}.final-board-scene p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.finale-place,.finale-person,.final-board-row{animation-duration:.01ms;animation-delay:0s!important}}

.finale-champion:before,.finale-champion:after{position:absolute;z-index:-1;color:#edb759;opacity:.75;font-size:clamp(45px,8vw,95px);content:'✦';animation:finale-star 2.4s ease-in-out infinite alternate}
.finale-champion:before{left:8%;top:18%;transform:rotate(-15deg)}.finale-champion:after{right:8%;top:30%;color:#e67b6a;animation-delay:.6s}@keyframes finale-star{from{transform:scale(.75) rotate(-15deg);opacity:.4}to{transform:scale(1.08) rotate(15deg);opacity:.85}}
@media(prefers-reduced-motion:reduce){.finale-champion:before,.finale-champion:after{animation:none}}
