/* Earned icons overlay the existing stage; never resize the skater/window. */
.player-badge-rail{position:absolute;top:4%;width:16%;max-width:46px;display:flex;flex-direction:column;gap:14px;z-index:3;pointer-events:none}.player-badge-rail.left{left:0}.player-badge-rail.right{right:0}.player-badge-icon{pointer-events:auto;display:block;padding:0;border:0;background:transparent;width:100%;aspect-ratio:1;filter:drop-shadow(0 2px 4px #0008)}.player-badge-icon img{width:100%;height:100%;object-fit:contain}.player-badge-icon:hover{transform:scale(1.06)}.player-badge-icon:focus-visible{outline:2px solid #ffd259}.player-name-control{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px;font-size:13px;color:#d8efff}.player-name-control input{font:inherit;max-width:220px;border:1px solid #659eb7;border-radius:8px;background:#102b3b;color:#fff;padding:9px 12px;min-height:44px}.player-name-control button{padding:9px 12px;font-size:12px;min-height:44px}.player-name-control small{color:#bbd8e8}
.rafter-banners{position:absolute;inset:0;pointer-events:none;z-index:3}.championship-banner{position:absolute;top:3%;left:calc(4% + var(--badge-index)*15.5%);width:13.5%;height:24%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:8px 5px 18px;background:linear-gradient(100deg,#0b2941,#214863 48%,#08223b);border:2px solid #d1aa57;clip-path:polygon(0 0,100% 0,100% 88%,50% 100%,0 88%);filter:drop-shadow(2px 5px 3px #0008);color:#fff0b8;pointer-events:auto;cursor:pointer;font-family:'Barlow Condensed',Arial,sans-serif;text-align:center;transform:none;border-radius:0}.championship-banner:before{content:'';position:absolute;top:0;left:8%;right:8%;height:3px;background:#d7e0e6}.championship-banner img{width:100%;height:62%;min-height:0;object-fit:contain}.championship-banner strong{font-size:clamp(9px,1.25vw,18px);line-height:1.05}.championship-banner .banner-player{font-family:Arial,sans-serif;font-size:clamp(8px,.8vw,12px);line-height:1.15;max-width:100%;overflow-wrap:anywhere;color:#e9f7ff}.championship-banner:hover{transform:none;filter:brightness(1.1)}.championship-banner:focus-visible{outline:4px solid #fff;outline-offset:-5px}.banner-pending{visibility:hidden}.badge-details{max-width:420px;text-align:center;margin:auto}.badge-details img{display:block;width:min(100%,300px);margin:auto}
.badge-ceremony{position:fixed;inset:0;z-index:150;background:#041526b8;display:flex;align-items:center;justify-content:center;padding:12px;overflow:auto}.badge-ceremony[hidden]{display:none}.ceremony-stage{position:relative;display:grid;grid-template-columns:minmax(120px,220px) minmax(180px,360px);align-items:end;gap:16px;width:min(94vw,650px);padding:28px 18px 18px;border:2px solid #dfbc67;border-radius:18px;background:linear-gradient(#143a53ee,#061c30f5);box-shadow:0 0 60px #93dcff44;overflow:hidden}.ceremony-stage:before{content:'';position:absolute;left:5%;right:5%;top:18px;height:8px;background:linear-gradient(#b5783e,#5c3318);box-shadow:0 3px 0 #17222e}.ceremony-hoist{position:relative;height:330px;display:flex;align-items:start;justify-content:center;grid-column:1;grid-row:1}.ceremony-rope{position:absolute;top:0;height:300px;border-left:3px solid #ead9b7;left:20%;animation:rope-pull 4.8s ease-out both}.ceremony-hoist .championship-banner{top:0;left:6%;width:88%;height:260px;pointer-events:none;animation:banner-hoist 4.8s cubic-bezier(.2,.65,.25,1) both}.ceremony-hoist .championship-banner strong{font-size:20px}.ceremony-hoist .banner-player{font-size:14px}.ceremony-bliz{position:absolute;left:30px;bottom:5px;width:135px;height:190px;object-fit:contain;transform-origin:bottom;animation:bliz-hoist 1.2s ease-in-out 4}.ceremony-message{position:relative;z-index:2;grid-column:2;background:#f1f8fa;color:#102b3b;border-radius:14px;padding:18px;align-self:center}.ceremony-message h2{font-size:29px;margin:4px 0 10px}.ceremony-message p{font-size:15px;line-height:1.6}.ceremony-message small{color:#466171}.ceremony-message button{margin-top:8px;width:100%}.ceremony-status{font-size:12px;color:#526b7a}.ceremony-name{font-weight:800;overflow-wrap:anywhere}
@keyframes banner-hoist{from{transform:translateY(270px)}to{transform:translateY(0)}}@keyframes rope-pull{from{height:570px}to{height:300px}}@keyframes bliz-hoist{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(6px) rotate(-4deg)}}
@media(max-width:700px){.championship-banner{top:1%;left:calc(16% + var(--badge-col)*24%);width:20%;height:12%;padding:5px 3px 12px;gap:2px}.championship-banner:nth-child(n+4){top:14%}.championship-banner strong{font-size:10px}.championship-banner .banner-player{font-size:8px}.player-badge-rail{max-width:42px;gap:12px}.ceremony-stage{grid-template-columns:1fr;max-width:420px;padding-top:30px;gap:4px}.ceremony-hoist{grid-column:1;grid-row:1;height:240px;width:180px;justify-self:center}.ceremony-hoist .championship-banner{top:0;left:8%;width:84%;height:220px}.ceremony-bliz{width:110px;height:160px;bottom:12px;left:3px}.ceremony-message{grid-column:1;grid-row:2;padding:12px}.ceremony-message h2{font-size:25px}.ceremony-message p{font-size:13px;margin:8px 0}.ceremony-hoist .championship-banner strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.ceremony-hoist .championship-banner,.ceremony-rope,.ceremony-bliz{animation:none}.player-badge-icon:hover{transform:none}}
.mission-earned-badge{width:100%;height:100%;object-fit:contain}.badge:has(.mission-earned-badge){background:transparent;width:105px;height:105px;border:0}

dialog.badge-ceremony{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0}dialog.badge-ceremony::backdrop{background:#041526aa}

/* On small screens, Bliz and the hoist occupy row 1; speech occupies row 2. */
@media(max-width:700px){
 .badge-ceremony{align-items:flex-start}
 .ceremony-stage{margin-block:auto;flex-shrink:0;gap:12px}
 .ceremony-hoist{width:100%;height:250px;grid-column:1;grid-row:1}
 .ceremony-hoist .championship-banner{left:48%;width:48%;height:220px}
 .ceremony-bliz{position:relative;left:auto;bottom:auto;grid-column:1;grid-row:1;align-self:end;justify-self:start;width:43%;height:190px;z-index:1;margin-bottom:4px}
 .ceremony-message{grid-column:1;grid-row:2;min-width:0}
}
