*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#b3120f;font-family:"Arial Rounded MT Bold","Nunito",Arial,"Noto Sans TC",sans-serif}
button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible{outline:3px solid #ffca55;outline-offset:-3px}

/* 滿版點擊區 */
.stage{position:fixed;inset:0;width:100%;height:100%;padding:0;border:0;background:#b3120f;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.flag,.xi,.dirt{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 50%;pointer-events:none}
.dirt{opacity:.38}
.flag{filter:brightness(1.15)}
.xi{top:12%;height:82%;object-fit:contain;object-position:50% 50%;filter:brightness(1.12)}
.flag[hidden],.xi[hidden]{display:none}
/* 手機直向：縮小國旗讓五顆星都露出，上下以旗邊暗紅補滿，髒污層仍滿版 */
@media(max-aspect-ratio:1/1){.stage{background:#721009}.flag{inset:auto;width:210vw;height:140vw;left:-8vw;top:calc(50% - 76vw)}}
.boot{position:absolute;height:min(86vh,140vw);left:50%;top:-8%;transform:translate(-45%,-130%);opacity:0;pointer-events:none}
.stage.stomp .boot{animation:stomp 260ms ease-out}
.stage.stomp .flag,.stage.stomp .xi,.stage.stomp .dirt{animation:shake 260ms ease-out}
@keyframes stomp{0%{transform:translate(-45%,-80%);opacity:1}35%,55%{transform:translate(-45%,0);opacity:1}100%{transform:translate(-45%,-130%);opacity:0}}
@keyframes shake{40%{transform:scale(.985)}100%{transform:none}}

/* 切換按鈕：小但醒目 */
.swap{position:fixed;bottom:130px;left:7vw;z-index:6;width:84px;height:84px;padding:0;font-size:44px;line-height:1;
  background:#ffe600;border:5px solid #000;border-radius:50%;box-shadow:6px 6px 0 #ff00c8;
  transform:rotate(-12deg);animation:wiggle 1.1s ease-in-out infinite}
.swap:hover{background:#00ff5a}
.swap:active{box-shadow:0 0 0 #ff00c8;transform:translate(6px,6px) rotate(-12deg)}
@keyframes wiggle{0%,100%{transform:rotate(-12deg) scale(1)}50%{transform:rotate(12deg) scale(1.12)}}
@media(max-width:600px){.swap{bottom:110px;left:26px;width:66px;height:66px;font-size:34px;border-width:4px}}

/* 標題 */
.title{position:fixed;top:clamp(14px,3vh,34px);left:0;right:0;margin:0;text-align:center;pointer-events:none;
  font-size:clamp(34px,7vw,92px);font-weight:900;letter-spacing:1px;line-height:1;color:#fff;
  -webkit-text-stroke:clamp(3px,.5vw,6px) #111;paint-order:stroke fill}

/* 底部排行條 */
.board{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(1140px,100%);z-index:5;color:#222}
.bar{display:flex;align-items:center;height:64px;padding:0 10px 0 18px;background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -4px 20px #0003;padding-bottom:env(safe-area-inset-bottom)}
.trophy{font-size:22px;padding-right:16px;border-right:1px solid #ddd}
.top3{flex:1;display:flex;justify-content:space-between;list-style:none;margin:0;padding:0 18px;gap:10px;min-width:0}
.top3 li{display:flex;align-items:center;gap:7px;font-size:clamp(14px,1.6vw,19px);white-space:nowrap}
.top3 li:last-child{font-size:clamp(16px,1.9vw,23px)}
.fl{width:1.4em;height:1.05em;border-radius:3px;object-fit:cover;flex:none;box-shadow:0 0 0 1px #0001}
.fl.xx{display:inline-block;background:#ccc}
.toggle{width:52px;height:44px;border:0;border-left:1px solid #ddd;background:none;position:relative}
.toggle::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;border:solid #333;border-width:2px 0 0 2px;transform:translate(-50%,-25%) rotate(45deg)}
.toggle[aria-expanded="true"]::after{transform:translate(-50%,-75%) rotate(225deg)}
.full{list-style:none;margin:0;padding:8px 18px;background:#fff;max-height:min(60vh,520px);overflow:auto;border-radius:18px 18px 0 0;box-shadow:0 -4px 20px #0003}
.full:not([hidden])+.bar{border-radius:0;box-shadow:none;border-top:1px solid #eee}
.full li{display:flex;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid #f0f0f0;font-size:16px}
.full li:last-child{border-bottom:0}
.full .n{width:3em;color:#888}
.full .c{margin-left:auto;font-variant-numeric:tabular-nums}

@media(max-width:600px){
  .bar{height:56px;padding-left:12px}
  .trophy{font-size:18px;padding-right:10px}
  .top3{padding:0 10px}
  .toggle{width:40px}
  .top3{gap:6px}
  .top3 li,.top3 li:last-child{font-size:13px;gap:4px}
}
@media(max-width:360px){.top3 li span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){.swap{animation:none}.stage.stomp .boot{animation:none;opacity:1;transform:translate(-45%,0)}.stage.stomp .flag,.stage.stomp .xi,.stage.stomp .dirt{animation:none}}

/* 個人計數與分享；既有版面不變 */
.personal{position:fixed;top:calc(clamp(14px,3vh,34px) + clamp(34px,7vw,92px) + 16px);left:0;right:0;text-align:center;pointer-events:none;color:#fff;font-size:clamp(30px,4vw,54px);font-weight:800;font-variant-numeric:tabular-nums;-webkit-text-stroke:2px #111;paint-order:stroke fill}
.share{position:fixed;right:18px;bottom:84px;z-index:6;border:1px solid #ddd;border-radius:24px;padding:10px 18px;background:#fff;color:#222;font-size:14px;box-shadow:0 2px 8px #0003}
