/* Original artwork is kept separate from responsive, translated labels. */
body[data-route='/']{min-height:100dvh;background:#b9ddf6;overflow-x:hidden}
body[data-route='/'] .world-bg{display:block;position:fixed;inset:0;background:url('/assets/background.webp') center/cover no-repeat}
.login-reference{width:100%;max-width:1800px;min-height:100dvh;aspect-ratio:auto;margin:auto;overflow:visible;container-type:normal;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:center;padding:160px 7vw 70px;gap:5vw}
.login-reference:after{content:none}
.login-brand{position:absolute;top:clamp(24px,4vh,60px);left:4vw;width:clamp(260px,37vw,620px);display:flex;align-items:center;flex-direction:column;gap:4px;z-index:1}
.login-logo{width:100%;height:auto;display:block}
.login-season-label{position:static;width:auto!important;min-height:44px;height:auto;max-width:100%;padding:10px 34px!important;font-size:clamp(12px,1.25vw,20px);white-space:nowrap;background:url('/assets/reference/button-neutral.png') center/100% 100% no-repeat}
.login-visual{position:relative;width:100%;aspect-ratio:1.05;margin-top:clamp(80px,10vw,150px);align-self:end}
.login-stage{position:absolute;width:108%;left:-4%;bottom:-2%;height:auto}
.login-character{position:absolute;width:100%;left:0;bottom:16%;height:auto;transform-origin:50% 94%}
.login-satellite{position:absolute;width:31%;right:-1%;top:-7%;height:auto}
.login-actions{position:relative;inset:auto;display:flex;flex-direction:column;gap:14px;width:100%;max-width:480px;margin:70px auto 0;padding:24px 0;background:none;z-index:1}
.ref-provider,.ref-provider.google,.ref-provider.apple,.ref-provider.line,.ref-provider.kakao{position:relative;inset:auto!important;width:100%;height:auto;margin:0;background:none}
.login-reference .ref-social{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:12px;align-items:center;min-height:68px;width:100%;padding:12px 20px;font-size:clamp(15px,1.4vw,21px);font-weight:500;letter-spacing:-.03em;white-space:normal;border-radius:17px;background:#fff;color:#181818;box-shadow:0 4px 0 #423b2926;line-height:1.4}
.ref-social .social-mark{display:block;width:38px;height:38px;object-fit:contain;grid-column:1;grid-row:1}
.ref-social>span{grid-column:2;grid-row:1;text-align:center}
.login-reference .apple .ref-social{background:#202020;color:white}.login-reference .line .ref-social{background:#29c447;color:white}.login-reference .kakao .ref-social{background:#fee500;color:#231815}
.login-reference .ref-social small{position:static;grid-column:3;grid-row:1;font-size:9px;line-height:1.3;max-width:42px;text-align:center;opacity:.8}
.ref-social:disabled{opacity:.78}
.ref-about{position:static;width:auto;margin:17px 0 0;text-align:center;font-size:18px;line-height:1.5}
.ref-legal{position:static;width:auto;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:14px;font-size:12px;line-height:1.6;color:#5a514b;margin-top:4px}
.ref-legal a{padding:8px 2px}
.login-ref-language,.reference-world .ref-language,.topbar .language{display:flex!important;align-items:center;justify-content:center;gap:10px;min-width:0;width:max-content;height:auto;min-height:46px;padding:10px 17px!important;background:#fffdf5ee;border:2px solid #fff!important;border-radius:999px;box-shadow:0 3px 0 #b1b4ca55;color:#17213e;font-size:clamp(12px,1.05vw,17px);line-height:1.2!important;white-space:nowrap}
.login-ref-language:before,.ref-language:before,.topbar .language:before{content:'';width:27px;height:27px;flex:0 0 27px;background:url('/assets/reference/language-icon.png') center/contain no-repeat}
.login-ref-language:after,.ref-language:after,.topbar .language:after{content:'';width:8px;height:8px;flex:0 0 8px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:3px}
.login-ref-language{top:24px;right:24px;left:auto}.reference-world .ref-language{top:20px;left:auto;right:24px}
.topbar .language img,.topbar .language .chevron{display:none}
.reference-header .ref-season,.topbar .season{width:max-content;max-width:45%;height:auto;min-height:44px;padding:11px 40px;line-height:1.3!important;white-space:nowrap;text-align:center;font-size:clamp(11px,1.2vw,20px)}
.reference-header .ref-season{left:23%;top:23px}
.reference-header .ref-ticket{left:auto;right:calc(230px + 2vw)}.reference-header .ref-profile{left:auto;right:calc(320px + 2vw)}
.game-panel{border:0;border-image:url('/assets/reference/modal-frame.png') 80 fill / 48px / 0 stretch;background:none;box-shadow:none;border-radius:0;color:#492a1f;max-width:calc(100vw - 40px)}
dialog.game-panel{margin:auto;max-height:calc(100dvh - 150px);padding:68px 36px 30px;overflow:visible}
.shared-title,.sport-heading{width:max-content;min-width:340px;max-width:calc(100% - 52px);height:106px;top:-54px;padding:23px 64px 15px 147px!important;background:none!important;border:0!important;border-image:url('/assets/reference/modal-badge-clean.png') 0 210 0 450 fill / 0 70px 0 150px / 0 stretch!important;line-height:1.2!important;white-space:normal;text-align:center;font-size:24px!important;display:flex;align-items:center;justify-content:center}
.sport-heading h2{font-size:28px;line-height:1.2;white-space:normal;margin:0;text-align:center}
.game-panel .close{top:-21px;right:-12px;width:64px;height:64px;z-index:5}
.info-dialog{min-width:min(480px,calc(100vw - 40px))}.info-dialog p{line-height:1.8;margin:14px 0;overflow-wrap:anywhere}.info-dialog #info-body{text-align:center}
.picker-dialog{width:620px}.language-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:calc(100dvh - 300px);overflow:auto;padding:5px}
.language-option,.country-option,.country-select,.back-button,.legal-close,.primary:not(#sport-play){background:url('/assets/reference/button-neutral.png') center/100% 100% no-repeat!important;display:flex;align-items:center;justify-content:center;min-height:56px;padding:12px 25px!important;line-height:1.4;text-align:center;font-size:16px;color:#704931;white-space:normal}
.country-select,.country-option{justify-content:flex-start;gap:12px}.country-select span,.country-option span{min-width:0;flex:1;white-space:normal;text-align:left}.country-select img,.country-option img{flex:0 0 30px;width:30px;height:22px;object-fit:contain}.country-options{max-height:calc(100dvh - 390px);min-height:120px}.country-option small{flex:0 0 24px}
.profile-panel{position:relative;width:540px;max-width:calc(100vw - 36px);padding:70px 38px 35px;margin:110px auto 50px}.profile-panel .shared-title{top:-54px}.profile-panel form{display:grid;gap:12px}.profile-panel input{width:100%;min-width:0}.profile-panel label{line-height:1.5}.profile-panel .primary{margin-top:4px}
.sport-dialog{width:820px}.sport-content{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px;max-height:calc(100dvh - 330px);overflow-y:auto;margin:0;padding:2px}
.sport-preview,.sport-preview[data-sport=table-tennis]{position:relative;aspect-ratio:auto;min-height:300px;display:flex;flex-direction:column;justify-content:center;align-self:stretch;background:url('/assets/reference/clouds.webp') center/cover;border-radius:24px;padding:12px;overflow:hidden}
.sport-preview .island-art,.sport-preview[data-sport=table-tennis] .island-art{visibility:visible;height:220px;aspect-ratio:auto;min-height:150px;flex:1;margin:0;width:100%;max-width:none}
.sport-preview p{position:static;transform:none;inset:auto;width:100%;height:auto;min-height:62px;margin:0;padding:12px 20px!important;font-size:13px;line-height:1.5;flex-shrink:0}
.sport-instructions{gap:10px;padding:0}.instruction{min-height:80px;height:auto;padding:12px 12px 12px 44%;display:flex;align-items:center}.instruction p{font-size:14px;line-height:1.5;margin:0;overflow-wrap:anywhere}.entry-note{min-height:52px;padding:10px 12px 10px 23%;font-size:11px;line-height:1.5}
.sport-footer{display:flex;gap:18px;padding:16px 0 0;align-items:center}.sport-footer .back-button{flex:0 0 auto;max-width:30%;font-size:14px}.sport-footer .primary{width:100%;min-width:0;min-height:90px;padding:18px 76px 18px 108px;font-size:26px;line-height:1.2;display:flex;align-items:center;justify-content:center;gap:0}.sport-footer .primary>span{padding:0;line-height:1.2}.sport-footer .primary small{right:8.2%;top:0;width:13%;height:100%;padding:0;font-size:11px}
.legal-dialog{width:760px}.legal-body{max-height:calc(100dvh - 350px);overflow:auto;padding:6px 4px;line-height:1.9;word-break:keep-all}.legal-body p{margin:12px 0}.legal-close{margin:16px auto 0;min-width:160px}
.text-page{padding:70px 38px 30px}.text-page p{line-height:1.9}.text-page .primary{font-size:18px;min-height:60px}
body[data-route='/games'] .menu-toggle{position:fixed!important;inset:auto 20px 20px auto!important;width:96px;height:96px;min-width:0;min-height:0;z-index:30;overflow:visible}
.menu-toggle .menu-caption{position:absolute;top:65%;bottom:auto;left:14%;right:14%;height:22%;display:flex;align-items:center;justify-content:center;font-size:14px!important;line-height:1;letter-spacing:0;padding:0}
.game-menu{right:110px;bottom:34px;width:min(49vw,calc((100dvh - 72px)*.82));gap:3px 1px;max-width:calc(100vw - 130px);max-height:calc(100dvh - 48px);overflow:visible;border:0;border-image:none;padding:0;background:none}
.menu-tile,.menu-tile:nth-child(2n),.menu-tile:nth-child(3n){height:auto;aspect-ratio:1.32;transform:none;background-size:100% 100%;border:0;border-image:none;overflow:visible}
.menu-tile:hover{transform:none}.menu-tile strong{font-size:clamp(12px,1.45vw,24px);bottom:10%;height:22%;padding:0 4px;white-space:normal;line-height:1.15;text-wrap:balance}
.menu-tile[data-dialog=ranking] strong{bottom:10%}.menu-tile[data-dialog=community] strong{bottom:10%}.menu-tile[data-dialog=contact] strong,.menu-tile[data-dialog=mypage] strong{bottom:13%}
.ref-island-label{font-size:clamp(13px,1.5vw,25px);line-height:1.2;white-space:normal;letter-spacing:-.04em;padding:0!important;text-wrap:balance}
.ref-island.is-soon img{filter:grayscale(1);opacity:1}.ref-soon{top:auto;bottom:calc(100% - var(--label-y) + var(--label-height)/2 + 4%);font-size:clamp(9px,.85vw,14px)}
.ranking-medal,.ranking-medal.medal-0,.ranking-medal.medal-2{left:5%!important;width:2.65cqw;height:2.65cqw;object-fit:contain}.ranking-medal.medal-0{width:2.85cqw;height:2.85cqw}.ranking-medal.medal-2{width:2.5cqw;height:2.5cqw}
.ref-ranking h2{max-width:56%;font-size:clamp(13px,1.6vw,26px);line-height:1.25;white-space:normal}.ref-ranking .ranking-state{top:auto;bottom:5%;font-size:clamp(8px,.65vw,11px);padding:1px 6px}.ref-ranking .ranking-empty{font-size:clamp(9px,.72vw,13px);max-width:85%;line-height:1.3}
.landing-ready .login-stage{animation:stage-arrive .65s both}.landing-ready .login-character{animation:character-arrive .95s .15s cubic-bezier(.16,.8,.3,1.18) both}.landing-ready .login-satellite{animation:satellite-arrive 1s .4s both}.landing-ready .login-brand{animation:brand-arrive .75s .55s cubic-bezier(.2,.8,.3,1.15) both}.landing-ready .ref-provider{animation:control-arrive .5s both}.landing-ready .ref-provider.google{animation-delay:.8s}.landing-ready .ref-provider.apple{animation-delay:.9s}.landing-ready .ref-provider.line{animation-delay:1s}.landing-ready .ref-provider.kakao{animation-delay:1.1s}
@keyframes stage-arrive{from{opacity:0;translate:0 40px}to{opacity:1;translate:0 0}}@keyframes character-arrive{from{opacity:0;transform:translateY(-65px) scale(.88) rotate(-5deg)}to{opacity:1;transform:none}}@keyframes satellite-arrive{from{opacity:0;translate:35px -25px}to{opacity:1;translate:0 0}}@keyframes brand-arrive{from{opacity:0;transform:scale(.75) translateY(-15px)}to{opacity:1;transform:none}}@keyframes control-arrive{from{opacity:0;translate:25px 0}to{opacity:1;translate:0 0}}
@media(max-width:1000px){.login-reference{padding:180px 5vw 60px;gap:4vw;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr)}.login-brand{width:40vw}.login-actions{margin-top:15px}.login-reference .ref-social{font-size:15px;grid-template-columns:32px minmax(0,1fr) 30px;gap:6px;padding:12px}.ref-social .social-mark{width:30px;height:30px}.reference-header .ref-profile{right:285px}.reference-header .ref-ticket{right:190px}.reference-header .ref-season{max-width:32%;font-size:12px;left:23%;top:18px;min-height:36px}.reference-world .ref-language{right:16px;top:17px;min-height:38px;font-size:12px;gap:7px}.ref-language:before{width:23px;height:23px;flex-basis:23px}}
@media(max-width:700px){.login-reference{display:flex;flex-direction:column;padding:85px 22px 35px;gap:0;min-height:100dvh}.login-brand{position:relative;inset:auto;width:min(88%,420px);gap:0;align-self:flex-start;margin-left:0}.login-season-label{min-height:38px;padding:8px 26px!important;font-size:13px}.login-visual{width:min(100%,460px);margin-top:55px;align-self:center;aspect-ratio:1.13}.login-satellite{right:0;top:-11%;width:27%}.login-actions{max-width:440px;margin:8px auto 0;padding:0;gap:12px}.login-reference .ref-social{min-height:58px;font-size:16px;grid-template-columns:34px minmax(0,1fr) 34px;gap:10px;padding:11px 18px}.login-ref-language{top:17px;right:17px;font-size:13px;min-height:42px}.ref-about{font-size:16px;margin-top:12px}.ref-legal{font-size:11px;gap:12px}.reference-header{height:150px}.reference-header .ref-season{top:28px;left:auto;right:12px;max-width:50%;font-size:11px;padding:9px 17px}.reference-header .ref-profile{top:92px;left:18px;right:auto;width:42px;height:42px}.reference-header .ref-ticket{top:94px;left:80px;right:auto;height:37px}.reference-world .ref-language{top:91px;right:14px;font-size:13px;min-height:42px}.reference-rankings{height:148px}.ref-ranking .ranking-state{font-size:9px}.ranking-medal,.ranking-medal.medal-0,.ranking-medal.medal-2{width:27px;height:27px}.ranking-medal.medal-0{width:29px;height:29px}.ranking-medal.medal-2{width:25px;height:25px}.ref-island-label,.ref-island:nth-child(-n+3) .ref-island-label,.ref-island:nth-child(n+7) .ref-island-label{font-size:17px}.ref-soon{font-size:10px}dialog.game-panel{max-width:calc(100vw - 28px);max-height:calc(100dvh - 100px);padding:58px 20px 23px;border-image-width:35px}.shared-title,.sport-heading{min-width:0;width:max-content;max-width:calc(100% - 18px);height:88px;top:-44px;padding:18px 49px 13px 114px!important;border-image-width:0 53px 0 116px!important;font-size:18px!important}.sport-heading h2{font-size:23px}.game-panel .close{width:49px;height:49px;top:-14px;right:-8px}.language-options{gap:7px;max-height:calc(100dvh - 235px)}.language-option{font-size:13px;min-height:49px;padding:11px 15px!important}.country-options{max-height:calc(100dvh - 305px)}.profile-panel{padding:58px 24px 28px}.profile-panel .shared-title{top:-44px}.sport-content{max-height:calc(100dvh - 275px);gap:10px;grid-template-columns:1fr}.sport-preview{min-height:215px;padding:10px}.sport-preview .island-art{height:175px;min-height:175px}.sport-preview p{min-height:48px;font-size:12px}.instruction{min-height:72px;padding:12px 16px 12px 44%}.instruction p{font-size:13px}.sport-footer{gap:6px;padding-top:10px}.sport-footer .back-button{font-size:11px;min-height:46px;padding:10px 14px!important}.sport-footer .primary{min-height:66px;font-size:20px;padding:14px 48px 14px 72px}.sport-footer .primary small{font-size:9px}.legal-body{max-height:calc(100dvh - 280px);font-size:14px}.game-menu{right:18px;bottom:108px;width:min(calc(100vw - 36px),calc((100dvh - 150px)*.84));max-width:calc(100vw - 36px)}.menu-tile strong{font-size:clamp(12px,3.4vw,18px)}body[data-route='/games'] .menu-toggle{inset:auto 16px 16px auto!important;width:80px;height:80px}.menu-toggle .menu-caption{font-size:12px!important}.topbar .language{font-size:12px;min-height:40px}.topbar .season{min-height:36px;font-size:11px;max-width:none}.ref-guide{width:80px;height:auto;left:8px;bottom:8px}.text-page{padding:58px 26px 24px}}
@media(prefers-reduced-motion:reduce){.landing-ready *{animation:none!important;transition:none!important}}

body[data-route="/"] .world-bg{z-index:0}.login-reference{z-index:1}.login-character{bottom:27%}.login-visual{margin-top:180px}.login-brand{z-index:2}@media(max-width:700px){.login-brand{order:-1}.login-visual{margin-top:65px}.login-character{bottom:27%}}

/* Match the viewport without leaving a second background below the composition. */
@media(min-width:701px){.login-reference{display:block;height:100dvh;min-height:650px;padding:0;max-width:none}.login-brand{left:4vw;top:3vh;width:min(38vw,62vh)}.login-visual{position:absolute;left:6vw;bottom:5vh;width:min(46vw,61vh);margin:0;aspect-ratio:1.05}.login-actions{position:absolute;right:7vw;top:50%;transform:translateY(-30%);width:32vw;max-width:480px;margin:0;padding:0}.login-character{bottom:27%}.login-satellite{right:-10%;top:-17%;width:30%}}
.game-panel{background:#fff6eb;border-radius:42px}.shared-title,.sport-heading{width:440px;min-width:0;height:130px;top:-65px;padding:24px 78px 15px 163px!important;border-image:none!important;background:url('/assets/reference/modal-badge-clean.png') center/100% 100% no-repeat!important;font-size:22px!important}.game-panel .close{top:-16px}.profile-panel .shared-title{top:-65px}
@media(max-width:700px){.game-panel{border-radius:30px}.shared-title,.sport-heading{width:300px;height:89px;top:-44px;padding:17px 53px 11px 112px!important;font-size:17px!important}.profile-panel .shared-title{top:-44px}}

.menu-tile[data-dialog=about]{aspect-ratio:340/274}.menu-tile[data-dialog=about] strong{left:46.765%;top:77.372%;bottom:auto;right:auto;width:72.059%;height:17.518%;transform:translate(-50%,-50%) rotate(-2deg);padding:0 6px;}
.menu-tile[data-dialog=games]{aspect-ratio:370/299}.menu-tile[data-dialog=games] strong{left:47.568%;top:75.251%;bottom:auto;right:auto;width:74.865%;height:16.054%;transform:translate(-50%,-50%) rotate(-2deg);padding:0 6px;}
.menu-tile[data-dialog=ranking]{aspect-ratio:350/257}.menu-tile[data-dialog=ranking] strong{left:46.571%;top:78.210%;bottom:auto;right:auto;width:74.286%;height:18.677%;transform:translate(-50%,-50%) rotate(0deg);padding:0 6px;}
.menu-tile[data-dialog=community]{aspect-ratio:376/265}.menu-tile[data-dialog=community] strong{left:48.404%;top:78.491%;bottom:auto;right:auto;width:72.872%;height:18.113%;transform:translate(-50%,-50%) rotate(0deg);padding:0 6px;}
.menu-tile[data-dialog=contact]{aspect-ratio:367/241}.menu-tile[data-dialog=contact] strong{left:45.777%;top:70.539%;bottom:auto;right:auto;width:70.572%;height:19.917%;transform:translate(-50%,-50%) rotate(4deg);padding:0 6px;}
.menu-tile[data-dialog=mypage]{aspect-ratio:356/252}.menu-tile[data-dialog=mypage] strong{left:46.629%;top:73.016%;bottom:auto;right:auto;width:72.472%;height:19.048%;transform:translate(-50%,-50%) rotate(4deg);padding:0 6px;}
.sport-preview[data-sport=table-tennis] .island-art{background-image:url(/assets/reference/sport-table-clean.png)!important;background-size:cover!important;background-position:center!important;border-radius:18px;min-height:220px}.sport-preview[data-sport=table-tennis]{gap:10px}

.ref-social:disabled{opacity:1}
.login-season-label,.ref-season{gap:12px}.login-season-label:before,.login-season-label:after,.ref-season:before,.ref-season:after{content:' ';color:#b68b64;font-size:.85em;flex-shrink:0;padding:2px;}
@media(min-width:701px){.ref-ranking,.reference-world .ref-rank-button{top:clamp(90px,6.2vw,115px)}.reference-islands{top:calc(clamp(90px,6.2vw,115px) + 16cqw + 32px)}.reference-world{min-height:max(100dvh,calc(83vw + 190px))}}

.country-select .chevron{flex:0 0 8px;width:8px;height:8px;min-width:8px;margin-left:8px;padding:0;align-self:center}.country-select #selected-country{text-align:center}.shared-title{white-space:nowrap!important}

/* Interior paint stays strictly inside the artwork's contour. */
.game-panel{background:none!important;isolation:isolate}.game-panel:before{content:'';position:absolute;inset:20px;border-radius:30px;background:#fff6eb;z-index:-1;pointer-events:none}
.country-select .chevron{flex:0 0 8px!important;width:8px!important;height:8px!important;max-width:8px!important;max-height:8px!important;border-width:0 2px 2px 0;display:block;transform:rotate(45deg);margin-top:-4px}
.shared-title{padding-left:170px!important;padding-right:90px!important}@media(max-width:700px){.shared-title{padding-left:119px!important;padding-right:61px!important;font-size:16px!important}.game-panel:before{inset:17px;border-radius:24px}}

html[lang="zh-Hans"] body,html[lang="zh-Hans"] button,html[lang="zh-Hans"] input,html[lang="zh-Hans"] select,[lang="zh-Hans"].language-option{font-family:'Noto Sans SC','Microsoft YaHei',sans-serif}
html[lang="zh-Hant"] body,html[lang="zh-Hant"] button,html[lang="zh-Hant"] input,html[lang="zh-Hant"] select,[lang="zh-Hant"].language-option{font-family:'Noto Sans TC','Microsoft JhengHei',sans-serif}
html[lang^="zh"] .shared-title{font-size:25px!important;font-weight:700;letter-spacing:.02em}html[lang^="zh"] .sport-heading h2{font-size:28px;letter-spacing:.03em}
html[lang^="zh"] .menu-tile strong{font-size:clamp(16px,1.7vw,27px);font-weight:700}html[lang^="zh"] .ref-island-label{font-size:clamp(17px,1.7vw,27px);font-weight:700;letter-spacing:.02em}
html[lang^="zh"] .instruction p,html[lang^="zh"] .sport-preview p{font-size:17px;line-height:1.6}html[lang^="zh"] .ref-ranking .ranking-empty{font-size:clamp(12px,.85vw,15px)}html[lang^="zh"] .ref-ranking h2{font-size:clamp(18px,1.75vw,28px)}
html[lang^="zh"] .profile-panel label,html[lang^="zh"] .country-option,html[lang^="zh"] .country-select,html[lang^="zh"] .language-option{font-size:18px;font-weight:700;line-height:1.5}html[lang^="zh"] .legal-body{font-size:17px;font-weight:500}
.language-option[lang^="zh"]{font-family:'Noto Sans SC',sans-serif;font-size:18px;font-weight:700}.language-option[lang="zh-Hant"]{font-family:'Noto Sans TC',sans-serif}
@media(max-width:700px){html[lang^="zh"] .shared-title{font-size:20px!important}html[lang^="zh"] .sport-heading h2{font-size:24px}html[lang^="zh"] .menu-tile strong{font-size:18px}html[lang^="zh"] .ref-island-label{font-size:21px}html[lang^="zh"] .instruction p,html[lang^="zh"] .sport-preview p{font-size:15px}html[lang^="zh"] .ref-ranking h2{font-size:19px}html[lang^="zh"] .ref-ranking .ranking-empty{font-size:12px}}

.shared-title,.sport-heading{height:122px;top:-61px}.profile-panel .shared-title{top:-61px}@media(max-width:700px){.shared-title,.sport-heading{height:84px;top:-42px}.profile-panel .shared-title{top:-42px}}

/* Scalable contours: corners and outlines never stretch with the content. */
.game-panel{border:6px solid #ff8373!important;border-image:none!important;border-radius:46px!important;background:linear-gradient(165deg,#fffaf2,#fff3e5)!important;box-shadow:inset 0 0 0 3px #fffdf7,inset 0 -9px 0 #f1d6bf,0 4px 0 #ed6d64!important}
.game-panel:before{content:none!important}
.shared-title,.sport-heading{width:520px;max-width:calc(100% - 36px);height:144px;top:-72px;padding:22px 16% 12px 43%!important;background-size:100% 100%!important}
.profile-panel .shared-title{top:-72px}
.shared-title{white-space:normal!important;text-wrap:balance}.sport-heading h2{margin:0!important}
.country-option,.country-select,.language-option,.back-button,.legal-close,.primary:not(#sport-play){background:linear-gradient(#fffdf5,#f8e4d3)!important;border:2px solid #fffdf8!important;border-image:none!important;border-radius:22px!important;box-shadow:inset 0 -3px 0 #efd1b7,0 3px 0 #d8b39755!important;text-shadow:none!important;min-height:58px}
.country-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px;padding:6px;max-height:calc(100dvh - 370px)}
.country-option{width:100%;padding:12px 14px!important;gap:10px;min-height:66px}
.country-option span{overflow:visible;text-overflow:clip;font-size:15px;line-height:1.3}
.country-option small{font-size:11px;color:#9a795f;flex-basis:20px}
.country-select{width:min(100%,340px);justify-self:center;min-height:62px;padding:12px 20px!important}
.country-select #selected-country{flex:1;text-align:center}
.country-select .chevron{margin-left:5px;border-radius:0}
.game-menu{gap:10px;align-items:center}
.menu-tile,.menu-tile:nth-child(2n),.menu-tile:nth-child(3n){aspect-ratio:1.32;height:auto;background-size:100% 100%;background-repeat:no-repeat}
.menu-tile[data-dialog=about]{background-image:url(/assets/reference/menu-about-clean.png)}.menu-tile[data-dialog=about] strong{left:48%;top:79%;width:75%;height:17%;bottom:auto;right:auto;transform:translate(-50%,-50%) rotate(0deg);display:flex;align-items:center;justify-content:center;padding:0 5px;text-align:center}
.menu-tile[data-dialog=games]{background-image:url(/assets/reference/menu-games-clean.png)}.menu-tile[data-dialog=games] strong{left:49%;top:77%;width:74%;height:17%;bottom:auto;right:auto;transform:translate(-50%,-50%) rotate(-2deg);display:flex;align-items:center;justify-content:center;padding:0 5px;text-align:center}
.menu-tile[data-dialog=ranking]{background-image:url(/assets/reference/menu-ranking-clean.png)}.menu-tile[data-dialog=ranking] strong{left:47%;top:79%;width:75%;height:20%;bottom:auto;right:auto;transform:translate(-50%,-50%) rotate(0deg);display:flex;align-items:center;justify-content:center;padding:0 5px;text-align:center}
.menu-tile[data-dialog=community]{background-image:url(/assets/reference/menu-community-clean.png)}.menu-tile[data-dialog=community] strong{left:49%;top:78%;width:76%;height:18%;bottom:auto;right:auto;transform:translate(-50%,-50%) rotate(0deg);display:flex;align-items:center;justify-content:center;padding:0 5px;text-align:center}
.menu-tile[data-dialog=contact]{background-image:url(/assets/reference/menu-contact-clean.png)}.menu-tile[data-dialog=contact] strong{left:43%;top:76%;width:67%;height:21%;bottom:auto;right:auto;transform:translate(-50%,-50%) rotate(2deg);display:flex;align-items:center;justify-content:center;padding:0 5px;text-align:center}
.menu-tile[data-dialog=mypage]{background-image:url(/assets/reference/menu-mypage-clean.png)}.menu-tile[data-dialog=mypage] strong{left:49%;top:78%;width:76%;height:20%;bottom:auto;right:auto;transform:translate(-50%,-50%) rotate(0deg);display:flex;align-items:center;justify-content:center;padding:0 5px;text-align:center}

@media(max-width:700px){.game-panel{border-width:5px!important;border-radius:32px!important}.shared-title,.sport-heading{width:310px;max-width:calc(100% - 16px);height:86px;top:-43px;padding:16px 15% 9px 43%!important}.profile-panel .shared-title{top:-43px}.country-options{grid-template-columns:1fr;gap:9px}.country-option{min-height:62px}.country-select{width:100%}.game-menu{gap:7px}.country-option span{font-size:16px}}
.shared-title,.sport-heading{padding:22px 75px 12px 205px!important}@media(max-width:700px){.shared-title,.sport-heading{padding:16px 44px 9px 125px!important}}
.shared-title,.sport-heading{padding-left:220px!important;padding-right:100px!important}@media(max-width:700px){.shared-title,.sport-heading{padding-left:130px!important;padding-right:54px!important}}
.menu-tile[data-dialog=contact]{aspect-ratio:1.32;background-image:url(/assets/reference/menu-contact-clean.png?v=2)}.menu-tile[data-dialog=contact] strong{left:47%;width:73%;top:76%}
.sport-preview[data-sport=table-tennis] .island-art{background-image:url(/assets/reference/sport-table-clean-v2.png)!important}

@media(max-height:600px) and (min-width:701px){dialog.game-panel{max-height:calc(100dvh - 75px);padding:46px 28px 18px}.shared-title,.sport-heading{width:310px;height:86px;top:-43px;padding:16px 54px 9px 130px!important;font-size:18px!important}.sport-heading h2{font-size:22px!important}.sport-content{max-height:calc(100dvh - 205px)}.sport-footer{padding-top:8px}.sport-footer .primary{min-height:60px;font-size:21px;padding:10px 60px 10px 90px}.sport-footer .back-button{min-height:44px}.language-options,.country-options{max-height:calc(100dvh - 210px);min-height:80px}.legal-body{max-height:calc(100dvh - 215px)}}
#sport-play{aspect-ratio:203/53;min-height:0!important;height:auto;max-width:410px;padding:0!important;margin-inline:auto;position:relative}#sport-play>span{position:absolute;inset:0 20% 0 27%;display:flex;align-items:center;justify-content:center;text-align:center}@media(max-height:600px) and (min-width:701px){#sport-play{max-width:245px}}

.sport-preview[data-sport=badminton] .island-art{position:relative;aspect-ratio:305/186;height:auto!important;min-height:0!important;flex:none;width:100%}
.sport-preview[data-sport=badminton] .island-art:after{content:attr(data-label);position:absolute;left:48.1967%;top:79.5699%;width:52.459%;height:20.4301%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;font-size:19px;line-height:1.15;text-align:center;color:#492a1f}

/* Ranking surfaces are layout, not a retouched screenshot. */
.ref-ranking{background:linear-gradient(135deg,#fff9ef,#fbe8d7)!important;border:3px solid #fffdf7;border-radius:24px;box-shadow:inset 0 0 0 2px #f7dabe,0 5px 0 #dcb997;display:grid;grid-template-columns:clamp(34px,3.7cqw,60px) minmax(0,1fr) auto;grid-template-rows:30% minmax(0,1fr);column-gap:7px;row-gap:5px;padding:9px;height:16cqw;min-height:160px}
.ref-ranking h2{position:static;grid-column:2;grid-row:1;max-width:none;font-size:clamp(12px,1.3cqw,22px);letter-spacing:-.035em;line-height:1.2;align-self:center;margin:0;white-space:normal}
.ref-ranking .ranking-state{position:static;grid-column:3;grid-row:1;align-self:center;justify-self:end;font-size:clamp(8px,.7cqw,11px);padding:4px 7px;line-height:1.2;background:#f5d4b5;border-radius:14px;color:#865638}
.ref-ranking ol{position:static;grid-column:1/-1;grid-row:2;width:100%;height:100%;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:4px;margin:0;padding:0}
.ref-ranking li,.ref-personal li,.ref-national li,.ref-club li{display:grid;grid-template-columns:clamp(24px,2.55cqw,41px) minmax(0,1fr) 15px;gap:7px;align-items:center;padding:0 8px 0 3px!important;position:relative;background:#fffdf9c9;border-radius:15px;opacity:1}
.ref-ranking li:not(:first-child){opacity:1}.ref-ranking .ranking-empty{max-width:none;font-size:clamp(9px,.76cqw,13px);line-height:1.3;letter-spacing:0}.ref-ranking .ranking-score{position:static;font-size:clamp(12px,1cqw,17px);margin:0;text-align:center;color:#9e897a}
.ref-ranking .ranking-medal,.ref-ranking .ranking-medal.medal-0,.ref-ranking .ranking-medal.medal-2{position:static;transform:none;width:100%;height:auto;max-height:100%;object-fit:contain;display:block;justify-self:center}
.ranking-emblem{display:block;grid-column:1;grid-row:1;align-self:center;width:100%;aspect-ratio:1;background-image:url('/assets/game-screen-reference.png');background-repeat:no-repeat}
.emblem-personal{aspect-ratio:66/65;background-size:2533.33333% 1447.69231%;background-position:4.91905% 13.12785%;}
.emblem-national{aspect-ratio:68/68;background-size:2458.82353% 1383.82353%;background-position:33.66584% 12.82932%;}
.emblem-club{aspect-ratio:81/89;background-size:2064.19753% 1057.30337%;background-position:59.96229% 12.55869%;}

.emblem-personal,.emblem-national{clip-path:circle(49% at 50% 50%)}
.emblem-club{clip-path:polygon(49% 0,61% 10%,74% 14%,96% 18%,96% 51%,89% 72%,71% 88%,49% 100%,28% 88%,10% 70%,2% 47%,3% 18%,26% 14%,39% 9%)}
.reference-world .ref-profile{border-radius:50%;overflow:hidden;clip-path:circle(49% at 50% 50%)}
.reference-world .ref-profile img{display:block;object-fit:contain}
.ref-logo img{object-fit:contain}
.sport-preview,.sport-preview[data-sport=table-tennis]{background:none!important;padding:0!important;border-radius:0;gap:12px;overflow:visible}
.sport-preview[data-sport=table-tennis] .island-art{border-radius:22px}
#sport-play small{left:74%!important;right:auto!important;top:26%!important;bottom:auto;width:16.5%!important;height:44%!important;padding:0!important;display:flex;align-items:center;justify-content:center;line-height:1;text-shadow:none;transform:none}
.menu-toggle .menu-caption{top:61%;height:22%;line-height:1;transform:none}
@media(max-width:700px){.ref-ranking{height:160px;min-height:160px;grid-template-columns:35px minmax(0,1fr) auto;padding:9px}.reference-rankings{height:174px}.ref-ranking h2,html[lang^="zh"] .ref-ranking h2{font-size:16px}.ref-ranking .ranking-state{font-size:9px}.ref-ranking li{grid-template-columns:27px minmax(0,1fr) 15px}.ref-ranking .ranking-empty,html[lang^="zh"] .ref-ranking .ranking-empty{font-size:11px}}

.ref-ranking h2{font-size:clamp(16px,1.6cqw,26px)}.ref-ranking .ranking-empty{font-size:clamp(12px,1cqw,16px)}.ref-ranking .ranking-state{font-size:clamp(9px,.8cqw,13px)}
.reference-world .ref-rank-button{height:16cqw;min-height:160px}
.reference-header .ref-account{position:absolute;top:16px;right:24px;display:flex;align-items:center;gap:12px}
.ref-account .ref-profile,.ref-account .ref-ticket,.ref-account .ref-language{position:static!important;inset:auto!important;flex-shrink:0}
.reference-world .ref-account .ref-profile{width:54px;height:54px}
.reference-world .ref-account .ref-ticket{width:100px;height:46px;font-size:22px;padding-right:13px}
.reference-world .ref-account .ref-language{margin:0}
@media(max-width:1000px){.reference-header .ref-account{right:16px;gap:8px}.reference-world .ref-account .ref-profile{width:40px;height:40px}.reference-world .ref-account .ref-ticket{width:75px;height:35px;font-size:17px;padding-right:9px}}
@media(max-width:700px){.reference-header .ref-account{top:91px;left:18px;right:18px;gap:10px}.reference-world .ref-account .ref-profile{width:40px;height:40px}.reference-world .ref-account .ref-ticket{width:72px;height:36px}.reference-world .ref-account .ref-language{margin-left:auto;font-size:12px;padding:9px 12px!important;gap:7px}.ref-ranking h2{font-size:16px}.ref-ranking .ranking-empty{font-size:11px}}
.sport-preview p{background:linear-gradient(#fffdf4,#f9e6d5)!important;border:2px solid #fffdf8;border-radius:24px;box-shadow:inset 0 -3px 0 #efd3bb;min-height:54px;display:flex;align-items:center;justify-content:center}
dialog.sport-dialog{padding-top:94px}.sport-content{max-height:calc(100dvh - 356px)}@media(max-width:700px){dialog.sport-dialog{padding-top:76px}.sport-content{max-height:calc(100dvh - 293px)}}@media(max-height:600px) and (min-width:701px){dialog.sport-dialog{padding-top:64px}.sport-content{max-height:calc(100dvh - 223px)}}

.ref-account .ref-ticket{position:relative!important;overflow:visible}
.ref-ticket .ticket-count{font-family:Arial,sans-serif;font-size:30px;font-weight:700;line-height:1;display:block}
.ref-ticket .ticket-beta{position:absolute;right:-7px;top:-9px;display:flex;align-items:center;justify-content:center;height:20px;min-width:43px;padding:0 6px;background:linear-gradient(#ff8d74,#f25a50);color:white;border:2px solid #fff8e9;border-radius:7px;font:800 9px/1 Arial,sans-serif;box-shadow:0 2px 0 #b857452e;letter-spacing:.03em;transform:rotate(5deg)}
.instruction{border-radius:24px;clip-path:inset(1px round 24px)}
.guide-keys{display:none}
.sport-dialog[data-sport=badminton] .sport-heading{background-image:url('/assets/reference/badminton-heading.png')!important}
.sport-dialog[data-sport=badminton] .instruction p{white-space:pre-line;font-size:14px;line-height:1.5;overflow-wrap:normal}
.sport-dialog[data-sport=badminton] .movement{background:linear-gradient(135deg,#e5f3ff,#d4eaff);min-height:96px;padding-left:37%}
.sport-dialog[data-sport=badminton] .aim{background:linear-gradient(135deg,#fff8d9,#fff0c0);min-height:96px;padding-left:37%}
.sport-dialog[data-sport=badminton] .aim:before{content:'';position:absolute;left:9px;top:6px;width:30%;height:calc(100% - 12px);background:url('/assets/reference/badminton-guide.png') center/contain no-repeat}
.sport-dialog[data-sport=badminton] .guide-keys{position:absolute;left:12px;top:0;width:30%;height:100%;display:flex;gap:6px;align-items:center;justify-content:center}
.guide-keys kbd{display:grid;place-items:center;width:39px;height:43px;border:2px solid white;border-radius:10px;background:linear-gradient(#fffefb,#f8e5ce);box-shadow:0 5px 0 #c59e76,inset 0 -3px 0 #eacdb0;font:800 21px/1 Arial,sans-serif;color:#684930;transform:rotate(-5deg)}
.guide-keys kbd+ kbd{transform:rotate(5deg)}
@media(max-width:700px){.ref-ticket .ticket-count{font-size:26px}.ref-ticket .ticket-beta{height:18px;min-width:37px;font-size:8px;top:-8px;right:-5px}.sport-dialog[data-sport=badminton] .instruction p{font-size:13px}.guide-keys kbd{width:30px;height:35px;font-size:18px}}

/* Visible medal bodies descend in size; gold includes an extra suspension loop. */
.ref-ranking li{grid-template-columns:clamp(32px,2.9cqw,44px) minmax(0,1fr) 15px}
.ref-ranking .ranking-medal.medal-0{width:100%;height:auto;max-height:none}
.ref-ranking .ranking-medal.medal-1{width:82%;height:auto;max-height:none}
.ref-ranking .ranking-medal.medal-2{width:72%;height:auto;max-height:none}
.ref-rank-button span{top:63%;bottom:auto;height:23%;display:flex;align-items:center;justify-content:center;line-height:1;padding-top:.12em}
@font-face{font-family:'M PLUS Rounded 1c';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/mplus-rounded-800.ttf') format('truetype')}
html[lang=ja] body,html[lang=ja] button,html[lang=ja] input,html[lang=ja] select,.language-option[lang=ja]{font-family:'M PLUS Rounded 1c',sans-serif;font-weight:800}
html[lang=ja] .legal-body,html[lang=ja] .legal-page-body{line-height:1.85}
@media(min-width:701px){
 .reference-rankings{inset:auto 2.333% auto;top:clamp(90px,6.2vw,115px);display:grid;grid-template-columns:1.08fr 1fr 1fr .59fr;gap:10px}
 .reference-rankings .ref-ranking,.reference-world .reference-rankings .ref-rank-button{position:relative;inset:auto;top:auto;left:auto;width:100%;height:16cqw;min-height:160px}
}

.sport-footer{display:grid!important;grid-template-columns:minmax(100px,1fr) minmax(220px,2.5fr) minmax(100px,1fr);align-items:center;gap:14px;padding-top:20px}
.sport-footer #sport-play{width:100%;max-width:410px;justify-self:center;margin:0}
.sport-footer .back-button{width:100%;max-width:none;min-width:0;white-space:normal;word-break:keep-all;text-align:center;line-height:1.35;font-size:12px;min-height:54px;padding:10px!important}
#sport-ranking{justify-self:end}
.sport-content{align-items:stretch}.sport-preview{display:flex;flex-direction:column}.sport-preview .island-art{flex:1 0 auto}.sport-preview p{margin-top:auto;margin-bottom:0}.sport-instructions{display:flex;flex-direction:column}.sport-instructions .entry-note{margin-top:auto;margin-bottom:0}
.sport-preview,.sport-preview[data-sport=table-tennis],.sport-preview[data-sport=badminton]{border:0!important;box-shadow:none!important;background:none!important}
.entry-note{border-radius:22px;clip-path:inset(1px round 22px)}
#cup-ranking-dialog{width:760px}#cup-ranking-list{list-style:none;margin:0;padding:0;max-height:50dvh;overflow:auto}#cup-ranking-list li{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:14px;border-radius:15px;background:#fffaf3;margin:7px 0}
@media(max-width:700px){.sport-footer{grid-template-columns:1fr 1fr;gap:10px;padding-top:16px}.sport-footer #sport-play{grid-column:1/-1;grid-row:1;width:min(100%,360px)}.sport-footer .back-button{grid-row:2;min-height:44px;font-size:11px}.sport-content{max-height:calc(100dvh - 345px)}}

#cup-ranking-dialog[data-sport=badminton] .shared-title{background-image:url('/assets/reference/badminton-heading.png')!important}
