:root{
  --bg:#14182b; --panel:#1f2540; --panel2:#2a3150; --line:#3b4470;
  --text:#f3f4fa; --muted:#aab2d6; --gold:#ffd23f; --accent:#4fd1c5; --danger:#ff6b6b;
  --c1:#ff8fa3; --c2:#ffb84d; --c3:#4fa3ff; --c4:#9d7bff; --c5:#ff7a45; --c6:#3ccf8e; --c0:#b0bec5;
  --font: -apple-system, BlinkMacSystemFont, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-text-size-adjust:100%}
body{min-height:100vh;overscroll-behavior:none}
button,.big,.chip{font-family:var(--font);font-size:16px;color:var(--text);cursor:pointer}
.hidden{display:none !important}
.screen{min-height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
h1{font-size:28px;margin:0;letter-spacing:1px}
h2.row-title{font-size:18px;margin:18px 16px 8px;color:var(--gold)}
h3{margin:0 0 12px}

/* 像素邊框 */
.pixel{border:3px solid #000;box-shadow:0 0 0 3px var(--line), 4px 4px 0 3px #000}

/* ===== 選單 ===== */
#screen-menu{max-width:720px;margin:0 auto;padding-bottom:40px}
.menu-head{display:flex;align-items:center;gap:14px;padding:22px 16px 6px;flex-wrap:wrap}
.menu-title{flex:1 1 auto;min-width:0}
.nameplate{display:flex;align-items:center;gap:10px;flex:1 1 100%;margin:6px 0 0}
.nameplate .np-no{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#f08a24;color:#fff;font-size:24px;font-weight:900;border:2px solid #000;box-shadow:2px 2px 0 #000;flex:0 0 auto}
.nameplate .np-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;padding:4px 12px;border-left:3px solid #f08a24}
.nameplate .np-role{font-size:12px;color:var(--muted);letter-spacing:1px}
.nameplate .np-name{font-size:24px;font-weight:900;color:#f08a24;letter-spacing:3px}

#menu-mascot{width:48px;height:72px;image-rendering:pixelated;image-rendering:crisp-edges}
.sub{margin:4px 0 0;color:var(--muted);font-size:14px}
.menu-tools{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px}
.chip{background:var(--panel2);border:2px solid var(--line);border-radius:999px;padding:6px 12px;font-size:14px}
.chip span{color:var(--gold)}
.level-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:0 16px}
.level-card{position:relative;text-align:left;background:var(--panel);border:3px solid var(--line);border-radius:10px;padding:12px 12px 10px;min-height:120px;display:flex;flex-direction:column;gap:4px;transition:transform .1s}
.level-card:active{transform:scale(.97)}
.level-card .name{font-size:17px;font-weight:700}
.level-card .ta{font-size:13px;color:var(--muted)}
.level-card .meta{font-size:12px;color:var(--muted);margin-top:auto}
.level-card .stars{font-size:16px;letter-spacing:2px;color:var(--gold)}
.level-card .stars .off{color:#5a6399}
.level-card .swatch{position:absolute;right:10px;top:10px;width:14px;height:14px;border:2px solid #000;border-radius:3px}
.level-card.focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,210,63,.3);animation:pulse 1.4s infinite}
.level-card .ribbon{position:absolute;left:-3px;top:-10px;background:var(--gold);color:#000;font-size:12px;font-weight:700;padding:1px 8px;border-radius:4px}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(255,210,63,.25)}50%{box-shadow:0 0 0 7px rgba(255,210,63,.08)}}
.menu-foot{padding:24px 16px 0;color:var(--muted);font-size:12px}
.menu-foot p{margin:4px 0}

/* ===== 世界地圖 ===== */
.map-tip{margin:6px 16px 8px;color:var(--muted);font-size:13px}
#map-wrap{position:relative;width:calc(100% - 24px);max-width:640px;margin:0 auto;aspect-ratio:320/220;border:3px solid #000;border-radius:10px;overflow:hidden;box-shadow:4px 4px 0 #000;background:#4fa3ff}
#map-cv{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;display:block}
#map-nodes{position:absolute;inset:0}
.district{position:absolute;transform:translate(-50%,-50%);font-size:clamp(14px,3.6vw,22px);font-weight:900;color:rgba(255,255,255,.75);text-shadow:0 1px 0 rgba(0,0,0,.35),0 0 6px rgba(0,0,0,.25);letter-spacing:2px;pointer-events:none}
.mnode{position:absolute;background:none;border:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:auto;cursor:pointer}
.mnode .nm{background:rgba(20,24,43,.88);color:#fff;font-size:clamp(11px,2.9vw,14px);font-weight:700;padding:2px 6px;border-radius:6px;white-space:nowrap;border:1px solid rgba(255,255,255,.25);line-height:1.3}
.mnode .st{color:var(--gold);font-size:11px;letter-spacing:1px;text-shadow:0 1px 0 #000;line-height:1}
.mnode.sel .nm{background:var(--gold);color:#000;border-color:#000}
.mnode.lab-b{transform:translate(-50%,6%)}
.mnode.lab-t{transform:translate(-50%,-100%);margin-top:-18px}
.mnode.lab-l{transform:translate(-100%,-100%);margin-left:-8px;margin-top:-2px}
.mnode.lab-r{transform:translate(0,-100%);margin-left:8px;margin-top:-2px}
.mhit{position:absolute;width:34px;height:34px;transform:translate(-50%,-70%);background:none;border:none;padding:0;cursor:pointer}
#map-info{width:calc(100% - 24px);max-width:640px;margin:10px auto 0;background:var(--panel);border:3px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:8px;animation:toastIn .25s}
.mi-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;line-height:1.3}
.mi-line i{width:12px;height:12px;border:2px solid #000;border-radius:3px;flex:0 0 auto}
.mi-name{font-weight:700}
.mi-sep{color:var(--muted)}
.mi-ta{color:var(--muted)}
.ribbon-inline{display:inline-block;background:var(--gold);color:#000;font-size:11px;font-weight:700;padding:1px 7px;border-radius:4px;margin-left:8px;vertical-align:middle}
.legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;font-size:12px;color:var(--muted);margin:10px 16px 0}
.legend i{display:inline-block;width:18px;height:0;border-top:3px dashed #1e88e5;vertical-align:middle;margin-right:4px}
.legend i.l-mrt2{border-top-color:#7e57c2}
.legend i.l-road{border-top:3px solid #e2c9a0}

/* ===== 遊戲 ===== */
#screen-game{display:flex;flex-direction:column;align-items:center;background:#0b0e1a;min-height:100vh;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#stage{position:relative;width:320px;height:180px;flex:0 0 auto;overflow:hidden;background:#000;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#cv{position:absolute;left:0;top:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;display:block}
#hud{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:flex-start;padding:6px 8px;pointer-events:none;font-size:14px;text-shadow:0 1px 0 #000,0 0 4px #000}
.hud-left{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#hud-level{font-weight:700}
#hud-cards,#hud-badges{background:rgba(0,0,0,.45);padding:1px 8px;border-radius:999px;font-size:13px}
.hud-right{display:flex;gap:6px;pointer-events:auto}
.hud-btn{background:rgba(0,0,0,.55);border:2px solid rgba(255,255,255,.5);border-radius:6px;padding:2px 10px;font-size:14px;line-height:1.4}
#toast{position:absolute;left:50%;top:34px;transform:translateX(-50%);background:rgba(0,0,0,.78);border:2px solid var(--gold);border-radius:8px;padding:4px 12px;font-size:16px;font-weight:700;white-space:nowrap;animation:toastIn .25s ease-out}
#toast .cat{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}
#hint{position:absolute;left:50%;bottom:14%;transform:translateX(-50%);background:rgba(20,24,43,.85);border:2px solid var(--accent);border-radius:8px;padding:6px 14px;font-size:16px;white-space:nowrap}
#goal-label{position:absolute;left:50%;top:22%;transform:translateX(-50%);text-align:center;background:rgba(0,0,0,.7);border:2px solid var(--gold);border-radius:10px;padding:8px 16px;font-size:16px;animation:toastIn .4s}
#goal-label b{color:var(--gold);font-size:20px;display:block}
#goal-label{padding:6px 18px}
#fly-card{position:absolute;width:60px;height:36px;border-radius:6px;border:2px solid #fff;left:50%;top:50%;font-size:12px;overflow:hidden;padding:2px 4px;color:#000;font-weight:700;transition:all .7s cubic-bezier(.3,.7,.3,1.2);pointer-events:none}

#panel{width:100%;max-width:720px;padding:14px 14px 24px;flex:1}
#panel-tip{margin:0;color:var(--muted);font-size:14px;text-align:center}
#bubble{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:3px solid var(--line);border-radius:12px;padding:12px 14px;position:relative}
#bubble::before{content:"";position:absolute;left:28px;top:-12px;border:8px solid transparent;border-bottom-color:var(--line)}
#npc-face{width:48px;height:72px;image-rendering:pixelated;flex:0 0 auto;background:var(--panel2);border-radius:6px;padding:2px}
#npc-name{font-size:13px;color:var(--gold);margin-bottom:2px}
#npc-text{font-size:17px;line-height:1.5}
#cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.card{position:relative;background:#fff;color:#111;border:3px solid #000;border-radius:8px;padding:10px 8px 10px;min-height:76px;text-align:center;font-weight:700;font-size:16px;line-height:1.3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:3px 3px 0 #000;transition:transform .1s}
.card:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #000}
.card .stripe{width:100%;height:8px;border-radius:3px;background:var(--c0)}
.card .cid{font-size:11px;color:#666;font-weight:400}
.card.grey{background:#cfd3df;color:#5a6075}
.card.grey .stripe{background:#8a90a8 !important}
.card.wrong{opacity:.45;pointer-events:none;animation:shake .4s}
.card.right{background:#e9fff3;border-color:#1b8f5a;animation:pop .35s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
#plain{margin-top:12px;background:#fff8e1;color:#222;border:3px solid var(--gold);border-radius:12px;padding:12px 14px;font-size:16px;animation:toastIn .3s}
#plain b{display:block;margin-bottom:4px}
#plain .tag{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;color:#000;margin-right:6px;vertical-align:middle}

/* ===== 覆蓋層 ===== */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.dialog{background:var(--panel);border:3px solid var(--line);border-radius:14px;padding:20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:10px}
.dialog p{margin:4px 0}
.big{display:block;width:100%;background:var(--accent);color:#06201e;border:3px solid #000;border-radius:10px;padding:12px;font-size:17px;font-weight:700;box-shadow:3px 3px 0 #000;text-align:center;text-decoration:none}
.big.ghost{background:var(--panel2);color:var(--text)}
.big:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #000}
.btn-col{display:flex;flex-direction:column;gap:10px;padding:16px;max-width:420px;margin:0 auto}
.file-btn{position:relative;overflow:hidden}
.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}

/* ===== 結算 ===== */
#screen-results{max-width:720px;margin:0 auto;padding:24px 16px 40px;text-align:center}
.stars{font-size:48px;letter-spacing:6px;margin:6px 0;color:var(--gold);min-height:64px}
.stars .off{color:#3b4470}
.stars span{display:inline-block;animation:starPop .5s backwards}
@keyframes starPop{0%{transform:scale(0) rotate(-30deg);opacity:0}70%{transform:scale(1.3)}100%{transform:scale(1);opacity:1}}
#res-star-notes{list-style:none;padding:0;margin:0 0 8px;color:var(--muted);font-size:14px}
#res-star-notes li.ok{color:var(--text)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:0 0 8px;text-align:left}
#res-cards{display:flex;flex-wrap:wrap;justify-content:center}
#res-cards .pcard{width:170px;flex:0 0 auto}
@media (max-width:420px){#res-cards .pcard{width:calc(50% - 5px)}}
.pcard{background:#fff;color:#111;border:3px solid #000;border-radius:8px;padding:10px;box-shadow:3px 3px 0 #000;text-align:left;cursor:pointer}
.pcard .stripe{height:8px;border-radius:3px;margin-bottom:6px}
.pcard .c{font-size:11px;color:#777;margin-bottom:2px}
.pcard .t{font-weight:700;font-size:15px}
.pcard.locked .c{color:#6b7190}
.pcard .p{font-size:13px;color:#444;margin-top:4px}
.pcard.locked{background:#30364f;color:#8a90a8;border-color:#1a1e30;box-shadow:none}
.pcard.locked .p{color:#6b7190}
.pcard.locked .stripe{background:#4a5280 !important}

/* ===== 圖鑑 / 頭貼 ===== */
.bar{display:flex;align-items:center;gap:12px;padding:14px 16px;position:sticky;top:0;background:var(--bg);z-index:5}
.bar h1{font-size:20px}
.bar .back{background:none;border:none;color:var(--accent);font-size:16px;padding:4px 0}
#collection-list{padding:0 16px 40px;max-width:900px;margin:0 auto}
.cat-head{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-weight:700}
.cat-head i{width:14px;height:14px;border-radius:3px;border:2px solid #000;display:inline-block}
.cat-head small{color:var(--muted);font-weight:400}
.note{color:var(--muted);font-size:14px;padding:0 16px;max-width:600px;margin:0 auto}
.avatar-wrap{display:flex;justify-content:center;padding:12px}
#avatar-cv{width:min(80vw,320px);height:min(80vw,320px);image-rendering:pixelated;border:3px solid #000;border-radius:12px;box-shadow:4px 4px 0 #000;background:#222}
#avatar-out{text-align:center;padding:0 16px 40px}
#avatar-img{width:min(80vw,320px);border:3px solid var(--gold);border-radius:12px}
#avatar-dl{max-width:320px;margin:12px auto 0}
.policy-pick{display:grid;gap:6px;max-height:50vh;overflow:auto}
.policy-pick button{text-align:left;background:var(--panel2);border:2px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px}
.policy-pick button.sel{border-color:var(--gold)}
.modal-full .t{font-size:18px;font-weight:700;margin:6px 0}
.modal-full .plain{background:#fff8e1;color:#222;border-radius:8px;padding:8px 10px;margin:8px 0}
.modal-full .full{color:var(--muted);font-size:14px}

@media (max-width:480px){
  h1{font-size:24px}
  #cards{gap:6px}
  .card{font-size:14px;padding:8px 4px;min-height:70px}
  #npc-text{font-size:16px}
}

/* ===== 夥伴 ===== */
#res-mascot{display:flex;flex-direction:column;gap:8px;margin:6px auto 14px;max-width:420px}
.mascot-new{display:flex;align-items:center;gap:14px;background:#fff8e1;color:#222;border:3px solid var(--gold);border-radius:12px;padding:10px 14px;text-align:left;animation:pop .5s}
.mascot-new canvas{width:50px;height:60px;image-rendering:pixelated;flex:0 0 auto}
.mn-title{font-size:12px;color:#b26a00;font-weight:700}
.mn-name{font-size:20px;font-weight:700}
.mn-desc{font-size:13px;color:#555}
.team-list{display:flex;flex-direction:column;gap:8px;max-height:55vh;overflow:auto}
.team-row{display:flex;align-items:center;gap:12px;background:var(--panel2);border:2px solid var(--line);border-radius:10px;padding:8px 10px}
.team-row canvas{width:30px;height:36px;image-rendering:pixelated;flex:0 0 auto}
.team-row>div{flex:1}
.team-row .tn{font-weight:700}
.team-row .tn small{color:var(--muted);font-weight:400;margin-left:4px}
.team-row .td{font-size:13px;color:var(--muted)}
.team-row.locked{opacity:.75}
.team-row .tick{color:var(--accent);font-weight:700}

.mnode.finale .nm{background:#ffd23f;color:#000;border-color:#000;box-shadow:0 0 0 2px rgba(255,210,63,.35)}
.mnode.finale.sel .nm{background:#fff}

/* ===== 感謝動畫 ===== */
#thanks{position:fixed;inset:0;background:#05071a;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:16px;overflow:auto}
#thanks-cv{image-rendering:pixelated;image-rendering:crisp-edges;border:3px solid #000;border-radius:8px;box-shadow:4px 4px 0 #000;flex:0 0 auto}
#thanks-lines{min-height:120px;max-width:600px;padding:0 8px;text-align:center;display:flex;flex-direction:column;gap:8px}
#thanks-lines .tl{margin:0;font-size:18px;line-height:1.5;animation:thanksIn .9s ease-out both}
#thanks-lines .tl{transition:color .9s,opacity .9s}
#thanks-lines .tl.dim{color:#7d85ad}
#thanks-lines .tl.sign{font-size:13px;color:var(--gold);letter-spacing:1px;margin-top:6px;opacity:.85}
#thanks.gold #thanks-lines .tl{font-size:19px}
#thanks.gold{background:radial-gradient(ellipse at top,#2a2240,#05071a 70%)}
#thanks.gold #thanks-cv{border-color:#ffd23f;box-shadow:4px 4px 0 #000,0 0 24px rgba(255,210,63,.35)}
#thanks #thanks-btn{max-width:360px;animation:thanksIn .6s both}
@keyframes thanksIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ===== 手機橫式：舞台填滿螢幕，問題站的對話與卡片疊在畫面右側（角色停住時才出現） ===== */
@media (orientation:landscape) and (max-height:520px){
  #screen-game{display:block;position:relative;height:100vh;min-height:0;overflow:hidden}
  #stage{margin:0}
  /* 疊層本身不吃點擊（暫停按鈕、跳躍都要穿透），只有問題站內容可點；內容過高時在站內捲動 */
  #panel{position:absolute;padding:38px 8px 6px;overflow:visible;max-width:none;display:flex;flex-direction:column;justify-content:flex-start;gap:6px;pointer-events:none}
  #station{pointer-events:auto;max-height:calc(100vh - 44px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  #hud{z-index:5}
  #panel-idle{display:none !important}
  /* 選對後收起其他兩張卡，白話框直接接在下面，避免超出畫面 */
  #station.answered .card:not(.right){display:none}
  #station.answered #cards{margin-top:4px}
  #bubble{padding:6px 8px;gap:6px;background:rgba(20,24,43,.88);border-width:2px;backdrop-filter:blur(2px)}
  #bubble::before{display:none}
  #npc-face{width:32px;height:48px}
  #npc-name{font-size:13px}
  #npc-text{font-size:17px;line-height:1.35}
  #cards{grid-template-columns:1fr;gap:5px;margin-top:6px}
  .card{min-height:0;padding:6px 9px;flex-direction:row;justify-content:flex-start;gap:8px;font-size:17px;text-align:left;background:rgba(255,255,255,.96)}
  .card .stripe{width:6px;height:26px;flex:0 0 auto}
  .card .cid{margin-left:auto;font-size:11px}
  #plain{margin-top:6px;padding:7px 9px;font-size:15px;background:rgba(255,248,225,.96)}
}

/* 橫式且高度更小（網址列佔掉空間）：再縮一級 */
@media (orientation:landscape) and (max-height:340px){
  #panel{padding-top:34px;gap:4px}
  #npc-face{width:28px;height:42px}
  #npc-text{font-size:16px}
  #bubble{padding:4px 7px}
  .card{padding:4px 8px;font-size:16px}
  .card .stripe{height:22px}
  #cards{gap:4px;margin-top:4px}
  #plain{font-size:14px;padding:5px 8px;margin-top:4px}
  #plain b{margin-bottom:2px}
}

/* 感謝動畫：手機橫式時畫布填滿、文字疊在畫布下緣、按鈕疊在右下，不用捲動 */
#thanks.landscape{padding:0;gap:0;justify-content:center;overflow:hidden}
#thanks.landscape #thanks-cv{border:none;border-radius:0;box-shadow:none}
#thanks.landscape #thanks-lines{position:absolute;left:0;right:0;bottom:0;min-height:0;max-width:none;padding:40px 16px 14px;background:linear-gradient(to top,rgba(5,7,26,.85),rgba(5,7,26,0));gap:4px;pointer-events:none}
#thanks.landscape #thanks-lines .tl{font-size:16px;line-height:1.4;text-shadow:0 1px 2px #000}
#thanks.landscape #thanks-lines .tl:nth-last-child(n+3){display:none}
#thanks.landscape #thanks-lines .tl.sign{font-size:12px}
#thanks.landscape #thanks-btn{position:absolute;right:max(14px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));width:auto;max-width:none;padding:8px 14px;font-size:14px}

/* ===== 新夥伴登場 ===== */
#reveal{position:fixed;inset:0;background:#070a1f;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;overflow:hidden}
#reveal-cv{image-rendering:pixelated;image-rendering:crisp-edges;border:3px solid #000;border-radius:8px;box-shadow:4px 4px 0 #000;flex:0 0 auto}
#reveal.gold #reveal-cv{border-color:#ffd23f;box-shadow:4px 4px 0 #000,0 0 24px rgba(255,210,63,.35)}
#reveal-text{text-align:center;animation:pop .5s;max-width:560px}
#reveal-tag{font-size:13px;color:var(--gold);letter-spacing:2px;font-weight:700}
#reveal-name{font-size:34px;font-weight:900;letter-spacing:3px;line-height:1.2;text-shadow:0 0 14px rgba(255,210,63,.45)}
#reveal.gold #reveal-name{color:var(--gold)}
#reveal-desc{font-size:16px;margin-top:4px}
#reveal-how{font-size:13px;color:var(--muted);margin-top:2px}
#reveal #reveal-btn{max-width:320px;animation:thanksIn .5s both}
.mascot-line{margin:0;color:var(--muted);font-size:14px}
#reveal.landscape{padding:0;gap:0}
#reveal.landscape #reveal-cv{border:none;border-radius:0;box-shadow:none}
/* 橫式：文字置中放在天空區上方，按鈕放右下角的地面上，避開瀏海 */
#reveal.landscape #reveal-text{position:absolute;left:50%;top:max(10px,env(safe-area-inset-top));transform:translateX(-50%);right:auto;bottom:auto;padding:0;background:none;text-align:center;pointer-events:none;max-width:70%;text-shadow:0 1px 3px #000}
#reveal.landscape #reveal-tag{font-size:12px}
#reveal.landscape #reveal-name{font-size:28px}
#reveal.landscape #reveal-desc{font-size:14px;margin-top:2px}
#reveal.landscape #reveal-how{font-size:12px}
#reveal.landscape #reveal-btn{position:absolute;left:0;right:0;margin:0 auto;top:auto;bottom:max(8px,env(safe-area-inset-bottom));width:max-content;max-width:none;min-height:0;padding:6px 26px;font-size:16px;line-height:1.3;border-width:3px;white-space:nowrap}

/* 結算三星印章 */
.stars-wrap{position:relative;display:inline-block}
.stamp3{position:absolute;right:-96px;top:-6px;width:84px;height:84px;border:4px solid #f08a24;border-radius:50%;color:#f08a24;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-12deg);animation:stampIn .5s .9s cubic-bezier(.2,1.4,.4,1) both;background:rgba(240,138,36,.08)}
.stamp3 b{font-size:34px;line-height:1;font-weight:900}
.stamp3 small{font-size:10px;line-height:1.15;letter-spacing:1px;margin-top:2px}
@keyframes stampIn{0%{transform:rotate(-12deg) scale(2.2);opacity:0}70%{transform:rotate(-12deg) scale(.95);opacity:1}100%{transform:rotate(-12deg) scale(1);opacity:1}}
@media (max-width:480px){.stamp3{right:-80px;width:72px;height:72px}.stamp3 b{font-size:28px}}
