.allcup-section{background:#000 url('/assets/ranking-icons.png') left top/auto;padding:48px 16px 40px;text-align:center;color:#fff}
.rank-banner{width:471px;max-width:100%;height:81px;display:flex;align-items:center;justify-content:center;margin:0 auto;background:url('/assets/ranking-banner-desktop.png') center/100% 100% no-repeat}
.rank-banner img{display:block;width:346px;max-width:74%;height:auto}
.rank-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 24px;background:#000;border:3px solid white;border-radius:40px;color:white;font:bold 18px 'Nunito Sans',system-ui,sans-serif;text-decoration:none;min-width:310px;max-width:100%;cursor:pointer;line-height:1.3}
.rank-button::before{content:'';display:inline-block;width:22px;height:22px;flex:none;background:url('/assets/ranking-arrow.svg') center/contain no-repeat}
.rank-button:hover,.rank-button:focus-visible{background:#303030;outline:3px solid #ffdf33;outline-offset:4px}
.allcup-section .rank-button{margin-top:28px}
.ranking-page{margin:0;min-height:100vh;color:#fff;background:#074673;font-family:'Nunito Sans',system-ui,sans-serif}
.ranking-page::before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(#0004,#0008),url('/assets/ranking-bg.png') calc(50% + 30vw) bottom/auto 100% no-repeat #0e7bc0}
.ranking-page *{box-sizing:border-box}
.ranking-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#170637;border-bottom:2px solid #fff;gap:16px}
.ranking-header>a img{display:block;width:230px;max-width:42vw;height:auto}
.ranking-header select{color:white;background:#1a1026;border:1px solid #fff;border-radius:4px;padding:8px;max-width:43vw;font:inherit;font-size:14px}
.ranking-main{padding:46px 20px 60px;max-width:950px;margin:auto;text-align:center}
.ranking-main>.rank-banner{width:600px;height:115px;background-image:url('/assets/ranking-banner-page.png')}
.ranking-main>.rank-banner img{width:462px;max-width:74%}
.ranking-navigation{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;margin:34px 0}
.ranking-navigation .rank-button{font-size:16px;min-width:0;padding:12px 22px;border-width:2px}
.ranking-panel{max-width:650px;margin:0 auto 32px}
#ranking-mode{font-size:26px;line-height:1.3;margin:0;padding-bottom:15px;border-bottom:2px solid #fff}
#ranking-content{padding:20px 0 0}.ranking-period{margin:8px 0 24px}.season-name{font-size:24px;margin:4px 0}
.ranking-status{margin:26px 0;line-height:1.6;padding:28px 18px;border-radius:8px;background:#000b;overflow-wrap:anywhere}
.ranking-status:empty{display:none}
.ranking-loading{padding:38px 0 28px;display:flex;align-items:center;justify-content:center;gap:14px}
.ranking-spinner{width:42px;height:42px;border:3px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:ranking-spin 1s linear infinite}
@keyframes ranking-spin{to{transform:rotate(360deg)}}
.ranking-page [hidden]{display:none!important}
.ranking-notes{text-align:left;line-height:1.7;font-size:15px;max-width:700px;margin:24px auto 32px}
.ranking-notes p{margin:16px 0}.ranking-updated{font-size:14px}.ranking-footer{text-align:center;padding:25px 20px;font-size:13px;background:#000 url('/assets/ranking-icons.png')}
.season-list{list-style:none;text-align:left;padding:0;margin:0;border:2px solid white;border-radius:8px;overflow:hidden}
.season-list li+li{border-top:2px solid #fff}.season-list a{padding:20px;display:grid;grid-template-columns:1fr 24px;gap:8px;color:#fff;text-decoration:none;background:#000c}
.season-list a:hover,.season-list a:focus-visible{background:#273b51}.season-list strong{font-size:21px}.season-list a>span:not(.season-arrow){font-size:14px;grid-column:1}.season-arrow{grid-column:2;grid-row:1/3;align-self:center;font-size:30px}
.ranking-table{width:100%;border:2px solid white;border-collapse:collapse;background:#000c;text-align:left;table-layout:fixed}
.ranking-table th,.ranking-table td{padding:16px 12px;border-bottom:1px solid #ffffff55;overflow-wrap:anywhere}.ranking-table th{background:#b40016}.ranking-table th:first-child{width:18%}.ranking-table th:last-child{width:28%}.ranking-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.ranking-table tbody tr:nth-child(-n+3) td:first-child{color:#ffdd32;font-size:22px;font-weight:900}
.ranking-page .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1023px){.allcup-section{background-size:170.5px auto;padding:8vw 4.7vw}.rank-banner{width:90.533vw;height:15.333vw;background-image:url('/assets/ranking-banner-mobile.png')}.rank-banner img{width:61.6vw;max-width:74%}.rank-button{min-width:0;width:min(310px,90%);font-size:16px}.allcup-section .rank-button{margin-top:5.333vw}.ranking-header{padding:12px 14px}.ranking-main{padding:30px 16px 40px}.ranking-main>.rank-banner{width:90.533vw;height:17.35vw;background-image:url('/assets/ranking-banner-page.png')}.ranking-main>.rank-banner img{width:70vw}.ranking-navigation{gap:10px;margin:24px 0}.ranking-navigation .rank-button{width:auto;font-size:14px}.ranking-panel{margin-bottom:20px}#ranking-mode{font-size:21px}.ranking-notes{font-size:14px}.ranking-table th,.ranking-table td{padding:12px 8px;font-size:14px}.ranking-header select{font-size:12px}.season-list strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.ranking-spinner{animation:none}}
