/* Medal ceremonies: real ranks, original Pokémon pixels, a short reveal. */
.poke-ui.screen-results .hurdles-results{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:24px;max-width:1180px;margin:0 auto}
.poke-ui .result-stage{--medal:#ffda78;--medal-edge:#b98732;padding:0;border:2px solid #193448;border-radius:8px;overflow:hidden;background:#fffaf0;color:#193448;text-align:center}
.poke-ui .result-stage[data-medal=silver]{--medal:#d4e7ee;--medal-edge:#7fabb9}
.poke-ui .result-stage[data-medal=bronze]{--medal:#efad7e;--medal-edge:#a46548}
.poke-ui .result-stage[data-medal=none]{--medal:#c5e7d0;--medal-edge:#6c9e86}
.poke-ui .result-stage-hero{position:relative;isolation:isolate;overflow:hidden;padding:22px 22px 4px;background:#193448;color:#fffaf0;border-bottom:4px solid var(--medal)}
.poke-ui .result-stage-hero:before{content:'';position:absolute;z-index:-1;width:290px;height:290px;left:calc(50% - 145px);top:95px;border:1px solid #47677a;border-radius:50%;background:#25485a}
.poke-ui .result-stage-hero:after{content:'';position:absolute;z-index:-1;left:0;right:0;top:260px;height:50px;border-top:1px solid #47677a;border-bottom:1px solid #47677a;transform:skewY(-5deg);background:#2c4e61}
.poke-ui .result-stage-head{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px}
.poke-ui .result-stage-head>span:first-child{font:700 12px/1.4 var(--body);letter-spacing:.8px;color:#c4dadd;text-transform:uppercase}
.poke-ui .result-stage-head h1{font:52px/.95 FestivalTitle,sans-serif;color:var(--medal);margin:0;text-wrap:balance;max-width:100%;overflow-wrap:anywhere}
.poke-ui .result-medal{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--medal);font:36px/1 FestivalTitle,sans-serif}
.poke-ui .result-medal svg{width:60px;height:68px;overflow:visible;flex-shrink:0}
.poke-ui .result-medal>span{font:700 12px/1.3 var(--body);max-width:13ch;text-align:left}
.poke-ui .result-rank-badge{display:inline-flex;align-items:baseline;justify-content:center;gap:8px;padding:9px 16px;border:1px solid #91abae;border-radius:4px;background:#2c4e61;color:#d4e7df;font:32px/1 FestivalTitle,sans-serif;margin-bottom:4px}
.poke-ui .result-rank-badge span{font:700 12px/1.4 var(--body)}
.poke-ui .result-medal .medal-ribbon{fill:#eb8575;stroke:#193448;stroke-width:3}
.poke-ui .result-medal .medal-rim{fill:var(--medal,#ffda78);stroke:var(--medal-edge,#b98732);stroke-width:4}
.poke-ui .result-medal .medal-face{fill:none;stroke:#fff4cc;stroke-width:2}
.poke-ui .result-medal text{fill:#193448;font:44px FestivalTitle,sans-serif}
.poke-ui .result-event-name{font:700 12px/1.4 var(--body);letter-spacing:.8px;color:#c4dadd;text-transform:uppercase}
.poke-ui .result-athlete-names{font:700 16px/1.3 var(--body);color:#fffaf0;overflow-wrap:anywhere}
.poke-ui .result-stage .winner-athlete{position:relative;height:145px;margin:0;gap:6px;align-items:flex-end}
.poke-ui .result-stage .winner-athlete>b{display:none}
.poke-ui .result-stage .winner-athlete>img{animation:none;width:150px;height:135px;object-fit:contain}
.poke-ui .result-stage .winner-athlete>canvas{width:170px;height:135px;max-width:50%;object-fit:contain;image-rendering:pixelated}
.poke-ui .result-stage .finish-time{display:block;font:48px/1 FestivalTitle,sans-serif;color:#fffaf0;margin:6px 0 0;overflow-wrap:anywhere}
.poke-ui .result-performance-label{font:12px/1.4 var(--body);color:#c4dadd;margin:6px 0 0}
.poke-ui .result-stage-hero .result-actions{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 12px}
.poke-ui .result-stage-hero .result-actions .btn-primary{flex:1 1 100%;font-size:17px;min-height:50px}
.poke-ui .result-stage-hero .result-actions .btn:not(.btn-primary){flex:1 1 auto;background:transparent;color:#fffaf0;border:1px solid #829eaa;min-height:44px}
.poke-ui .result-stage-hero .result-actions .btn:hover{background:#3c5c6d;color:#fffaf0;border-color:#ffda78}
.poke-ui .result-stage-hero .result-actions .btn-primary:hover{background:#ffe8ad;color:#193448}
.poke-ui .result-stage>.run-stats{margin:0 18px;padding:16px 0;color:#426170;border:0;border-bottom:1px solid #ccd8d0}
.poke-ui .result-stage>.run-stats b{color:#193448;font:30px/1 FestivalTitle,sans-serif}
.poke-ui .result-stage>p{font:13px/1.5 var(--body);color:#45616b;margin:12px 18px}
.poke-ui .result-stage>.reward-line{border:1px solid #b7cbb9;background:#e7f1df;color:#254e43;margin:16px 18px;padding:12px;font:14px/1.4 var(--body);text-wrap:balance}
.poke-ui .result-stage>.reward-line b{display:inline-block;margin-right:5px}
.poke-ui .result-stage>:is([class*="-attempts"],[class*="-splits"],[class*="-sections"],[class*="-lengths"],[class*="-legs"],[class*="-exchanges"],.archery-arrows,.pairs-skating-totals){margin:16px;gap:8px}
.poke-ui .result-stage>:is([class*="-attempts"],[class*="-splits"],[class*="-sections"],[class*="-lengths"],[class*="-legs"],[class*="-exchanges"],.archery-arrows,.pairs-skating-totals)>:is(article,div,section){background:#edf2e7;border:1px solid #b8c9bb;border-radius:4px;color:#193448;padding:12px 8px;min-width:0}
.poke-ui .result-stage>:is([class*="-attempts"],[class*="-splits"],[class*="-sections"],[class*="-lengths"],[class*="-legs"],[class*="-exchanges"],.archery-arrows,.pairs-skating-totals)>:is(article,div,section).best{background:#fff0bd;border-color:#c5a45a}
.poke-ui .result-stage>:is([class*="-attempts"],[class*="-splits"],[class*="-sections"],[class*="-lengths"],[class*="-legs"],[class*="-exchanges"],.archery-arrows,.pairs-skating-totals) :is(span,small,p){font:12px/1.4 var(--body);color:#49665f;letter-spacing:0}
.poke-ui .result-stage>:is([class*="-attempts"],[class*="-splits"],[class*="-sections"],[class*="-lengths"],[class*="-legs"],[class*="-exchanges"],.archery-arrows,.pairs-skating-totals) :is(b,strong){color:#193448}
.poke-ui .result-stage>:is([class*="-attempts"],[class*="-splits"],[class*="-sections"],[class*="-lengths"],[class*="-legs"],[class*="-exchanges"],.archery-arrows,.pairs-skating-totals) :is(h2,h3){color:#193448;font:24px/1.1 FestivalTitle,sans-serif}
.poke-ui .result-stage>:is([class*="-stats"],[class*="-streak"],[class*="-combo"],[class*="-sync"],[class*="-effort"],[class*="-travel"],[class*="-braking"]){margin-inline:16px;color:#49665f}
.poke-ui .result-stage>:is([class*="-stats"],[class*="-streak"],[class*="-combo"],[class*="-sync"],[class*="-effort"],[class*="-travel"],[class*="-braking"]) :is(b,strong,dd){color:#193448}
.poke-ui .result-stage :is(.swimming-split,.sprint-section){background:#edf2e7;color:#193448;border:1px solid #b8c9bb;border-radius:4px}
.poke-ui .result-stage :is(.swimming-split,.sprint-section) :is(span,small,b){color:#193448}
.poke-ui .result-stage> :is(.hurdle-recap,.swim-splits,.sprint-splits){margin-inline:18px}
.poke-ui .result-stage :is(.bobsleigh-pair,.pairs-skating-team,.volleyball-crew,.swimming-relay-pair,.track-relay-pair,.rowing-crew,.skating-relay-pair){max-width:100%;margin:10px auto}
.poke-ui .result-stage :is(.bobsleigh-portrait,.pairs-skating-portrait,.volleyball-portrait,.swimming-relay-portrait,.track-relay-portrait,.rowing-portrait,.skating-relay-portrait){background:transparent;border:0}
.poke-ui .result-stage-hero [class$=-portrait] :is(img,canvas){max-width:100%;image-rendering:pixelated}
.poke-ui .result-stage-hero [class$=-pair]>div,.poke-ui .result-stage-hero [class$=-crew]>div{min-width:0}
.poke-ui .result-stage-hero [class$=-pair] b,.poke-ui .result-stage-hero [class$=-crew] b{color:#fffaf0}
.poke-ui .result-stage-hero [class$=-pair] span,.poke-ui .result-stage-hero [class$=-crew] span{color:#c5d9de}
.poke-ui .result-stage :is(.result-evidence-note,.result-outcome-note){font:600 13px/1.45 var(--body);color:#ffe4ad;max-width:37ch;margin:4px auto}
.poke-ui .result-stage .result-mode{display:inline-block;font:700 11px/1.2 var(--body);border:1px solid #829eaa;border-radius:3px;color:#d4e4e4;padding:4px 8px;margin-top:4px}
.poke-ui.screen-results .race-classification{min-width:0;border:1px solid #9eb6ad;border-top:4px solid #618e7c}
.poke-ui.screen-results .race-classification h2{font:28px/1.1 FestivalTitle,sans-serif;text-transform:none;padding:14px 16px;background:#e7eedf}
.poke-ui:is(.screen-results,.screen-final) .result-table .place-cell{font:30px/1 FestivalTitle,sans-serif;color:#496775;width:50px}
.poke-ui:is(.screen-results,.screen-final) .result-table .player-row .place-cell{color:#193448}
.poke-ui:is(.screen-results,.screen-final) .result-table td{padding-top:12px;padding-bottom:12px}
.poke-ui:is(.screen-results,.screen-final) .result-table .points-earned{display:block;font:600 12px/1.4 var(--body);color:#536c69}
.poke-ui:is(.screen-results,.screen-final) .result-table .player-row{background:#ffecb3;border-left:4px solid #c08e2e}
.poke-ui .ceremony-sparkles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.poke-ui .ceremony-sparkles i{position:absolute;left:calc(8% + var(--i)*7.5%);top:-16px;width:7px;height:11px;background:var(--medal,#ffda78);opacity:0;animation:ceremony-confetti 1.65s cubic-bezier(.17,.65,.55,1) calc(var(--i)*.045s + .12s) both;transform:rotate(calc(var(--i)*43deg))}
.poke-ui .ceremony-sparkles i:nth-child(3n){background:#82c9ae;width:6px;height:6px}
.poke-ui .ceremony-sparkles i:nth-child(3n + 1){background:#ed8b7d}
.poke-ui .result-stage[data-medal]:not([data-medal=none]) .result-medal svg{animation:medal-arrive .55s cubic-bezier(.18,.8,.3,1.15) both}
@keyframes ceremony-confetti{0%{opacity:0;translate:0 -15px}12%{opacity:1}75%{opacity:1}100%{opacity:0;translate:10px 380px;rotate:240deg}}
@keyframes medal-arrive{from{opacity:0;transform:translateY(-12px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}

/* The whole team gets a curtain call. Tied places share one podium tier. */
.poke-ui .final-celebration{--medal:#ffda78;position:relative;isolation:isolate;overflow:hidden;padding:28px 28px 24px;border:2px solid #193448;border-top:5px solid #ffda78;border-radius:8px;background:#193448;color:#fffaf0;text-align:center}
.poke-ui .final-celebration[data-medal=silver]{--medal:#d4e7ee;border-top-color:#d4e7ee}
.poke-ui .final-celebration[data-medal=bronze]{--medal:#efad7e;border-top-color:#efad7e}
.poke-ui .final-celebration[data-medal=none]{--medal:#c5e7d0;border-top-color:#c5e7d0}
.poke-ui .final-celebration h1{font:64px/1 FestivalTitle,sans-serif;margin:8px 0;color:var(--medal);text-wrap:balance}
.poke-ui .final-celebration>.section-eyebrow{justify-content:center;font:700 12px/1.4 var(--body);color:#c7dadd;letter-spacing:1px}
.poke-ui .final-celebration>.section-eyebrow:before{display:none}
.poke-ui .final-celebration>p{font:16px/1.5 var(--body);color:#e1eae5;overflow-wrap:anywhere}
.poke-ui .meet-podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;max-width:900px;margin:24px auto 0;border-bottom:4px solid #6e919b}
.poke-ui .podium-rank{--medal:#efad7e;--medal-edge:#a46548;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-self:flex-end;justify-content:flex-end;gap:0;max-width:300px}
.poke-ui .podium-rank[data-place="1"]{--medal:#ffda78;--medal-edge:#b98732;order:2}
.poke-ui .podium-rank[data-place="2"]{--medal:#d4e7ee;--medal-edge:#7fabb9;order:1}
.poke-ui .podium-rank[data-place="3"]{order:3}
.poke-ui .podium-rank:only-child{max-width:none}
.poke-ui .podium-rank:only-child .podium-entrants{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;align-items:end}
.poke-ui .podium-rank:only-child .podium-entrant+.podium-entrant{border-top:0}
.poke-ui .podium-entrant{position:relative;padding:12px 8px 10px;min-width:0;overflow-wrap:anywhere}
.poke-ui .podium-entrant+.podium-entrant{border-top:1px dashed #6d8793}
.poke-ui .podium-entrant.is-player{background:#315264;border:1px solid #e7c771;border-bottom:0;border-radius:7px 7px 0 0}
.poke-ui .podium-entrant .podium-name{font:700 16px/1.25 var(--body);color:#fffaf0;margin:4px 0}
.poke-ui .podium-entrant small{display:block;color:#c4d9dd;font:12px/1.35 var(--body)}
.poke-ui .podium-entrant p{font:12px/1.35 var(--body);color:#c4d9dd;margin:2px 0}
.poke-ui .podium-entrant>strong{font:24px/1 FestivalTitle,sans-serif;color:var(--medal)}
.poke-ui .podium-portraits{height:112px;display:flex;align-items:flex-end;justify-content:center;gap:0}
.poke-ui .podium-portraits>.trainer-portrait,.poke-ui .podium-portraits>.trainer-avatar,.poke-ui .podium-portraits>img{width:54px;height:76px;object-fit:contain;image-rendering:pixelated;background:none;border:0}
.poke-ui .podium-pokemon{width:125px;max-width:65%;height:108px;display:flex;align-items:flex-end;justify-content:center}
.poke-ui .podium-pokemon :is(img,canvas){width:125px;height:108px;max-width:100%;object-fit:contain;image-rendering:pixelated}
.poke-ui .podium-plinth{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:12px 6px;background:var(--medal);color:#193448;border:2px solid var(--medal-edge);border-top:6px solid #fff1bd;border-bottom:0;min-height:76px;border-radius:4px 4px 0 0;font:42px/1 FestivalTitle,sans-serif}
.poke-ui .podium-rank[data-place="1"] .podium-plinth{min-height:120px}
.poke-ui .podium-rank[data-place="2"] .podium-plinth{min-height:94px}
.poke-ui .podium-plinth small{font:700 11px/1.4 var(--body);color:#294b5a;letter-spacing:.7px}
.poke-ui .podium-plinth svg{width:38px;height:42px}
.poke-ui .podium-plinth .result-medal{gap:7px}
.poke-ui .podium-plinth .result-medal>span{color:#193448;text-align:left;max-width:10ch}
.poke-ui .final-celebration .result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:24px auto 0}
.poke-ui .final-celebration .result-actions .btn{min-height:48px}
.poke-ui .team-curtain-call{margin:24px auto 0;padding-top:18px;border-top:1px solid #68858c;max-width:900px}
.poke-ui .team-curtain-call h2{font:32px/1 FestivalTitle,sans-serif;color:#ffda78;margin:0 0 8px}
.poke-ui .curtain-team{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;align-items:end}
.poke-ui .curtain-athlete{min-width:0;text-align:center;color:#eef3e8}
.poke-ui .curtain-athlete{margin:0}
.poke-ui .curtain-athlete :is(img,canvas){width:108px;height:96px;max-width:100%;object-fit:contain;image-rendering:pixelated}
.poke-ui .curtain-athlete b,.poke-ui .curtain-athlete figcaption{display:block;font:600 12px/1.4 var(--body);overflow-wrap:anywhere}
.poke-ui .curtain-athlete small{font:11px/1.4 var(--body);color:#ffda78}
.poke-ui.screen-final .final-grid{gap:24px;margin-top:24px;align-items:start}
.poke-ui.screen-final .results-note{font:12px/1.5 var(--body)}

@media(max-width:760px){
.poke-ui.screen-results .hurdles-results{grid-template-columns:minmax(0,1fr);max-width:560px;gap:20px}
.poke-ui .result-stage-hero{padding:18px 16px 4px}
.poke-ui .result-stage-head h1{font-size:46px}
.poke-ui .result-medal svg{width:48px;height:54px}
.poke-ui .result-stage .winner-athlete{height:125px}
.poke-ui .result-stage .winner-athlete>img{height:120px;width:135px}
.poke-ui .result-stage .winner-athlete>canvas{height:120px;width:151px}
.poke-ui .result-stage .finish-time{font-size:42px}
.poke-ui .result-stage-hero .result-actions{margin-top:14px}
.poke-ui .final-celebration{padding:20px 12px}
.poke-ui .final-celebration h1{font-size:48px}
.poke-ui .meet-podium{gap:6px;margin-top:18px}
.poke-ui .podium-entrant{padding:8px 3px}
.poke-ui .podium-entrant .podium-name{font-size:12px;line-height:1.3}
.poke-ui .podium-entrant small{font-size:10px}
.poke-ui .podium-portraits{height:96px;position:relative;display:block}
.poke-ui .podium-portraits>.trainer-portrait,.poke-ui .podium-portraits>.trainer-avatar,.poke-ui .podium-portraits>img{position:absolute;left:0;bottom:0;width:30px;height:48px}
.poke-ui .podium-pokemon{width:100%;max-width:100%;height:85px}
.poke-ui .podium-pokemon :is(img,canvas){height:85px;width:100px}
.poke-ui .podium-plinth{min-height:62px;font-size:34px;padding:8px 3px}
.poke-ui .podium-rank[data-place="1"] .podium-plinth{min-height:96px}
.poke-ui .podium-rank[data-place="2"] .podium-plinth{min-height:78px}
.poke-ui .podium-plinth small{font-size:10px;letter-spacing:0}
.poke-ui .podium-plinth .result-medal{flex-direction:column;gap:4px}
.poke-ui .podium-plinth .result-medal>span{font-size:10px;text-align:center}
.poke-ui .podium-plinth .result-medal svg{width:30px;height:34px}
.poke-ui .curtain-team{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 5px}
.poke-ui .team-curtain-call{margin-top:18px;padding-top:16px}
.poke-ui .curtain-athlete :is(img,canvas){height:86px;width:97px}
.poke-ui .final-celebration .result-actions{gap:8px;margin-top:18px}
.poke-ui .final-celebration .result-actions .btn-primary{flex:1 1 100%}
.poke-ui .final-celebration .result-actions .btn:not(.btn-primary){flex:1 1 0}
}
@media(max-width:374px){
html:has(.screen-results),html:has(.screen-final){min-width:0}
.poke-ui .result-stage-head h1{font-size:40px}
.poke-ui .result-athlete-names{font-size:14px}
.poke-ui .result-stage-hero{padding-inline:12px}
.poke-ui .result-stage-hero .result-actions .btn:not(.btn-primary){padding-inline:8px;font-size:14px}
.poke-ui .result-stage .winner-athlete{height:118px}
.poke-ui .result-stage .finish-time{font-size:38px}
.poke-ui .podium-entrant .podium-name{font-size:11px}
.poke-ui .final-celebration h1{font-size:42px}
}
@media(prefers-reduced-motion:reduce){
.poke-ui .ceremony-sparkles{display:none}
.poke-ui .result-medal svg{animation:none!important}
}
