
:root{
  --mag:#ff0097;
  --ink:#0a0a0e;
  --tilt:-4deg;
  /* legacy tokens consumed by theme-shared.css (shared nav/footer chrome) */
  --magenta:#ff0097;
  --magenta-dark:#c4008a;
  --grad:linear-gradient(135deg,#ff0097 0%,#c4008a 100%);
  --amber:#e07b10;
  --text-muted:#9999b0;
  --bg:#0a0a0e;
  --card:#101016;
  --card2:#15151c;
  --shell:#101016;
  --cell:#0a0a0e;
  --tx:#fff;
  --body:#c6c6cf;
  --mute:#8f8f9b;
  --gold:#d8a23a;
  --mag-tx:#ff0097;
  --line:rgba(255,255,255,.13);
  --line-strong:rgba(255,255,255,.3);
  --line-mag:rgba(255,0,151,.45);
  --line-gold:rgba(216,162,58,.45);
  --line-gold-hov:rgba(216,162,58,.7);
  --jersey:rgba(255,255,255,.32);
  --img-ring:rgba(255,255,255,.08);
  --shadow-hov:rgba(0,0,0,.55);
  --chip-bg:#fff; --chip-tx:#0a0a0e; --vs-bg:#0a0a0e; --vs-tx:#fff;
  --hero-filter:saturate(1.08) contrast(1.12) brightness(.62);
  --hero-wash:linear-gradient(100deg,#0a0a0e 0%,#0a0a0e 36%,rgba(10,10,14,.66) 62%,rgba(255,0,151,.30) 100%);
  --ghost-bd:rgba(255,255,255,.42); --ghost-tx:#fff; --ghost-hov-bd:#fff; --ghost-hov-bg:rgba(10,10,14,.6);
  --numcap:rgba(255,255,255,.92);
  --bandmid-bg:#fff; --bandmid-tx:#0a0a0e;
  --cc-bg:#fff; --cc-tx:#0a0a0e;
  --grain-blend:screen; --grain-o:.055;
  --aur-o:.78; --aur-blend:screen;
  --logo-f:none;
  --sun-o:1; --sun-s:1; --sun-b:0px;
  --moon-o:0; --moon-s:.25; --moon-b:4px;
  color-scheme:dark;
}
[data-theme=light]{
  --bg:#fff; --card:#fff; --card2:#f1f1f5; --shell:#eeeef3; --cell:#fff;
  --tx:#0a0a0e; --body:#46464f; --mute:#5c5c67; --gold:#94660a; --mag-tx:#d10079;
  --line:rgba(10,10,14,.14); --line-strong:rgba(10,10,14,.34);
  --line-mag:rgba(209,0,121,.55); --line-gold:rgba(148,102,10,.5); --line-gold-hov:rgba(148,102,10,.75);
  --jersey:rgba(10,10,14,.15); --img-ring:rgba(0,0,0,.1); --shadow-hov:rgba(26,10,20,.22);
  --chip-bg:#0a0a0e; --chip-tx:#fff; --vs-bg:#fff; --vs-tx:#0a0a0e;
  --hero-filter:saturate(1.1) contrast(1.04) brightness(1.02);
  --hero-wash:linear-gradient(100deg,#fff 0%,#fff 34%,rgba(255,255,255,.74) 60%,rgba(255,0,151,.22) 100%);
  --hero-wash-m:linear-gradient(100deg,#fff 0%,#fff 30%,rgba(255,255,255,.86) 62%,rgba(255,0,151,.20) 100%);
  --ghost-bd:rgba(10,10,14,.5); --ghost-tx:#0a0a0e; --ghost-hov-bd:#0a0a0e; --ghost-hov-bg:rgba(255,255,255,.7);
  --numcap:#0a0a0e;
  --bandmid-bg:#0a0a0e; --bandmid-tx:#fff;
  --cc-bg:#0a0a0e; --cc-tx:#fff;
  --grain-blend:multiply; --grain-o:.05;
  --aur-o:.5; --aur-blend:normal;
  --logo-f:invert(1);
  --sun-o:0; --sun-s:.25; --sun-b:4px;
  --moon-o:1; --moon-s:1; --moon-b:0px;
  color-scheme:light;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme]){
    --bg:#fff; --card:#fff; --card2:#f1f1f5; --shell:#eeeef3; --cell:#fff;
    --tx:#0a0a0e; --body:#46464f; --mute:#5c5c67; --gold:#94660a; --mag-tx:#d10079;
    --line:rgba(10,10,14,.14); --line-strong:rgba(10,10,14,.34);
    --line-mag:rgba(209,0,121,.55); --line-gold:rgba(148,102,10,.5); --line-gold-hov:rgba(148,102,10,.75);
    --jersey:rgba(10,10,14,.15); --img-ring:rgba(0,0,0,.1); --shadow-hov:rgba(26,10,20,.22);
    --chip-bg:#0a0a0e; --chip-tx:#fff; --vs-bg:#fff; --vs-tx:#0a0a0e;
    --hero-filter:saturate(1.1) contrast(1.04) brightness(1.02);
    --hero-wash:linear-gradient(100deg,#fff 0%,#fff 34%,rgba(255,255,255,.74) 60%,rgba(255,0,151,.22) 100%);
    --hero-wash-m:linear-gradient(100deg,#fff 0%,#fff 30%,rgba(255,255,255,.86) 62%,rgba(255,0,151,.20) 100%);
    --ghost-bd:rgba(10,10,14,.5); --ghost-tx:#0a0a0e; --ghost-hov-bd:#0a0a0e; --ghost-hov-bg:rgba(255,255,255,.7);
    --numcap:#0a0a0e;
    --bandmid-bg:#0a0a0e; --bandmid-tx:#fff;
    --cc-bg:#0a0a0e; --cc-tx:#fff;
    --grain-blend:multiply; --grain-o:.05;
    --aur-o:.5; --aur-blend:normal;
    --logo-f:invert(1);
    --sun-o:0; --sun-s:.25; --sun-b:4px;
    --moon-o:1; --moon-s:1; --moon-b:0px;
    color-scheme:light;
  }
}
*{box-sizing:border-box}
html,body{overflow-x:hidden}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font:500 16px/1.75 'Noto Sans TC',sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
::selection{background:var(--mag);color:#fff}
a:focus-visible,button:focus-visible{outline:3px solid var(--mag);outline-offset:3px}
.final a:focus-visible{outline-color:var(--ink)}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
section[id],div[id]{scroll-margin-top:80px}
.matchup,h1,.vhero .en,.cta-row,.final h2,.final .sub,.final .line-row{transform-origin:left center}
.skip{position:absolute;left:24px;top:14px;z-index:1200;background:var(--mag);color:#fff;font:900 13px/1 'Noto Sans TC';padding:13px 18px;text-decoration:none;transform:translateY(-320%);transition:transform .2s}
.skip:focus{transform:none}

/* ---------- shared chrome ---------- */
.mono{font-family:'IBM Plex Mono','Noto Sans TC',monospace;font-variant-numeric:tabular-nums}
.kick{display:flex;align-items:center;gap:12px;font:600 12px/1.7 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.22em;color:var(--mute);text-transform:uppercase}
.kick::before{content:"";flex:none;width:14px;height:14px;background:var(--mag);clip-path:polygon(0 0,100% 0,100% 60%,60% 100%,0 100%)}
.sec-head{margin:0 0 44px}
.sec-head h2{margin:20px 0 0;font:900 clamp(2rem,5vw,3.4rem)/1.12 'Noto Sans TC';letter-spacing:.01em}
.sec-head .en{display:block;margin-top:10px;font:800 clamp(.95rem,1.6vw,1.2rem)/1.2 'Archivo';font-style:italic;letter-spacing:.06em;color:var(--mag-tx)}
.sec-head .lede{margin:16px 0 0;max-width:34em;color:var(--body);font-size:15.5px}
section{padding:96px 0}
@media(max-width:720px){section{padding:72px 0}}

/* grain */
.grain::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;opacity:var(--grain-o);mix-blend-mode:var(--grain-blend);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.final{--grain-blend:screen;--grain-o:.055}

/* ---------- masthead (v3 header; sits below the fixed shared site nav) ---------- */
.mast{position:relative;z-index:9;margin-top:64px}
.mast .bar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0}
.mast .bar img{height:30px;width:auto;filter:var(--logo-f)}
.mast nav{display:flex;gap:6px;margin-left:auto}
.mast nav a{position:relative;font:600 11.5px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.14em;color:var(--mute);text-decoration:none;padding:14px 12px;transition:color .25s}
.mast nav a::after{content:"";position:absolute;inset:-4px 0}
.mast nav a:hover{color:var(--tx)}
.hdr-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
.hosthint{position:relative;font:600 11.5px/1 'IBM Plex Mono',monospace;color:var(--gold);letter-spacing:.12em;border:1px solid var(--line-gold);padding:10px 13px;text-decoration:none;transform:skewX(-8deg);transition:border-color .25s}
.hosthint:hover{border-color:var(--line-gold-hov)}
.hosthint>span{display:inline-block;transform:skewX(8deg)}
.hosthint::after,.hdr-contact::after{content:"";position:absolute;inset:-4px}
.hdr-contact{position:relative;font:900 12.5px/1 'Noto Sans TC';color:#fff;background:var(--mag);padding:10px 16px;text-decoration:none;transform:skewX(-8deg);transition:background-color .25s}
.hdr-contact:hover{background:#ff2ea9}
.hdr-contact>span{display:inline-block;transform:skewX(8deg)}
.mode{position:relative;flex:none;width:42px;height:42px;padding:0;border:1px solid var(--line);background:transparent;color:var(--tx);cursor:pointer;transform:skewX(-8deg);transition:border-color .25s,transform .15s}
.mode:hover{border-color:var(--line-strong)}
.mode:active{transform:skewX(-8deg) scale(.96)}
.mode::after{content:"";position:absolute;inset:-4px}
.mode .mi{position:absolute;inset:0;display:grid;place-items:center;transform:skewX(8deg);transition:opacity .3s cubic-bezier(.2,0,0,1),scale .3s cubic-bezier(.2,0,0,1),filter .3s cubic-bezier(.2,0,0,1)}
.mode .mi svg{width:17px;height:17px;display:block}
.mode .sun{opacity:var(--sun-o);scale:var(--sun-s);filter:blur(var(--sun-b))}
.mode .moon{opacity:var(--moon-o);scale:var(--moon-s);filter:blur(var(--moon-b))}
@media(max-width:860px){.mast nav{display:none}}
@media(max-width:640px){.hide-s{display:none}.mast .bar{flex-wrap:wrap;row-gap:9px}.mast .bar img{height:25px}.hdr-actions{width:100%;justify-content:flex-end}.hosthint{font-size:10px;padding:9px 10px}.hdr-contact{font-size:11.5px;padding:9px 12px}.mode{width:38px;height:38px}.mode::after{inset:-5px}}

/* ---------- hero ---------- */
.vhero{position:relative;padding:34px 0 0;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 7.5vw),0 100%)}
.vhero .photo{position:absolute;inset:0;z-index:-2;overflow:hidden}.vhero .photo>img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:var(--hero-filter);display:block}
.vhero .wash{position:absolute;inset:0;z-index:-1;background:var(--hero-wash)}
.vhero .wash::after{content:"";position:absolute;inset:auto 0 0 0;height:180px;background:linear-gradient(180deg,transparent,var(--bg))}
.vhero .aurora{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:var(--aur-o);mix-blend-mode:var(--aur-blend);filter:blur(26px);transform:scale(1.12)}
/* site-wide morphing color field: two drifting magenta/violet blobs behind all content */
.ambient-field{position:fixed;inset:-20%;z-index:-3;pointer-events:none;filter:blur(90px)}
.ambient-field i{position:absolute;border-radius:50%;display:block}
.ambient-field i:nth-child(1){width:52vw;height:52vw;background:radial-gradient(circle, rgba(255,0,151,.16), transparent 65%);animation:amb1 26s ease-in-out infinite alternate}
.ambient-field i:nth-child(2){width:44vw;height:44vw;right:0;bottom:0;background:radial-gradient(circle, rgba(124,77,255,.12), transparent 65%);animation:amb2 32s ease-in-out infinite alternate}
@keyframes amb1{from{transform:translate(-8%,4%) scale(1)}to{transform:translate(48%,34%) scale(1.25)}}
@keyframes amb2{from{transform:translate(6%,-2%) scale(1.15)}to{transform:translate(-38%,-30%) scale(.95)}}
[data-theme=light] .ambient-field i:nth-child(1){background:radial-gradient(circle, rgba(255,0,151,.1), transparent 65%)}
[data-theme=light] .ambient-field i:nth-child(2){background:radial-gradient(circle, rgba(124,77,255,.08), transparent 65%)}
@media(prefers-reduced-motion:reduce){.ambient-field i{animation:none}}
.vhero .inner{position:relative;z-index:3;padding-top:42px;padding-bottom:40px}
.vhero .cols{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}
.matchup{display:inline-flex;align-items:center;gap:13px;font:800 13px/1 'Noto Sans TC';letter-spacing:.1em;background:var(--chip-bg);color:var(--chip-tx);padding:11px 18px;transform:rotate(var(--tilt));clip-path:polygon(0 0,100% 0,calc(100% - 11px) 100%,0 100%)}
.matchup b{color:var(--mag)}
.matchup .vs{font:900 11px/1 'Archivo';font-style:italic;background:var(--vs-bg);color:var(--vs-tx);padding:4px 8px 3px}
h1{margin:34px 0 0;transform:rotate(var(--tilt));font:900 clamp(2.9rem,7.6vw,6rem)/1.02 'Noto Sans TC';letter-spacing:.01em;max-width:11ch}
h1 .solid{display:block}
h1 .out{display:block}
h1 .mag{color:var(--mag)}
.vhero .en{font:900 clamp(1.15rem,2.4vw,1.75rem)/1.2 'Archivo';font-style:italic;letter-spacing:.02em;margin:22px 0 0;transform:rotate(var(--tilt))}
.vhero .en b{color:var(--mag)}
.vhero .lede{margin:20px 0 0;max-width:30em;transform:rotate(var(--tilt));color:var(--body);font-size:15.5px;line-height:1.8}
[data-theme=dark] .vhero .lede{color:#d5d5de}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:38px 0 8px;transform:rotate(var(--tilt))}
.cta{display:inline-block;background:var(--mag);color:#fff;font:900 16.5px/1 'Noto Sans TC';padding:19px 34px;text-decoration:none;clip-path:polygon(0 0,100% 0,calc(100% - 16px) 100%,0 100%);box-shadow:0 14px 30px -14px rgba(255,0,151,.5);transition:transform .25s,box-shadow .25s,background-color .25s}
.cta:hover{background:#ff2ea9;box-shadow:0 16px 32px -12px rgba(255,0,151,.55)}
.cta:active{transform:scale(.96)}
.cta.ghost{background:transparent;border:2px solid var(--ghost-bd);color:var(--ghost-tx);clip-path:none;transform:skewX(-8deg);transition:border-color .25s,background-color .25s,transform .25s}
.cta.ghost>*{display:inline-block;transform:skewX(8deg)}
.cta.ghost:hover{border-color:var(--ghost-hov-bd);background:var(--ghost-hov-bg)}
.cta.ghost:active{transform:skewX(-8deg) scale(.96)}
.hero-meta{margin:26px 0 0;transform:rotate(var(--tilt));font:600 11.5px/1.9 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.14em;color:var(--numcap)}
.hero-meta a{color:var(--mag-tx);text-decoration:none;border-bottom:1px solid var(--line-mag)}
.hero-meta a:hover{border-color:var(--mag)}
[data-theme=dark] .hero-meta a{color:#ff66c0}
.hero-scroll{margin:30px 0 0;font:600 10px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.3em;color:var(--mute);text-transform:uppercase;display:flex;align-items:center;gap:10px}
.hero-scroll::after{content:"";width:44px;height:1px;background:var(--line-strong)}
.num{position:relative;z-index:2;text-align:right;user-select:none;margin-top:-14px}
.num b{display:block;font:900 clamp(150px,24vw,380px)/0.82 'Archivo';font-style:italic;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px rgba(255,0,151,.55)}
.num span{display:inline-block;margin-top:14px;font:600 11px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.3em;color:var(--numcap)}
@media(max-width:880px){
  .vhero .cols{grid-template-columns:1fr}
  .vhero .wash{background:var(--hero-wash-m,var(--hero-wash))}
  .num{position:absolute;top:-26px;right:-14px;margin:0;opacity:.55;z-index:0}
  .num b{font-size:clamp(150px,40vw,240px);-webkit-text-stroke-width:2px}
  .num span{display:none}
  h1{max-width:none}
}

/* diagonal marquee bands */
.band{position:relative;z-index:4;background:var(--mag);transform:rotate(var(--tilt));width:112vw;margin:58px -6vw 5.5vw;padding:15px 0;overflow:hidden}
.band .track{display:flex;gap:0;white-space:nowrap;width:max-content;animation:mq 40s linear infinite}
.band .set{display:flex;gap:54px;padding-right:54px;font:900 15px/1 'Archivo';font-style:italic;letter-spacing:.12em;color:#fff}
.band .set i{font-style:normal;color:var(--ink)}
.band .set .zh{font-family:'Noto Sans TC';font-style:normal;font-weight:900}
@keyframes mq{to{transform:translateX(-50%)}}
.band.dark{background:var(--ink);box-shadow:none}
.band.dark .set{color:#fff}
.band.dark .set i{color:var(--mag)}
.band.light{background:var(--bandmid-bg);transform:rotate(calc(-1 * var(--tilt)));margin:0 -6vw}
.band.light .track{animation-direction:reverse;animation-duration:30s}
.band.light .set{color:var(--bandmid-tx)}
.band.light .set i{color:var(--mag)}

/* ---------- scoreboard ---------- */
.scorewrap{padding-top:64px;padding-bottom:8px}
.score{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:22px}
.cell{background:var(--cell);padding:24px 22px 20px}
.cell span{font:600 10.5px/1.6 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.18em;color:var(--mute);display:block}
.cell b{font:900 40px/1.15 'Archivo';font-style:italic;color:var(--tx);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.cell.hot b{color:var(--mag-tx)}
.cell.gold b{color:var(--gold)}

/* ---------- roster ---------- */
.roster-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media(max-width:820px){.roster-grid{grid-template-columns:1fr}}
.player{position:relative;background:var(--card);border:1px solid var(--line);padding:30px 28px 26px;overflow:hidden;transition:transform .3s,border-color .3s,box-shadow .3s}
.ptile{position:relative;height:172px;margin:-30px -28px 24px;overflow:hidden}
.ptile img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.1) brightness(.8);transition:transform .5s cubic-bezier(.22,.9,.24,1)}
.player:hover .ptile img{transform:scale(1.04)}
.ptile::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(10,10,14,.55),rgba(10,10,14,.06) 55%,rgba(255,0,151,.36));box-shadow:inset 0 0 0 1px var(--img-ring)}
.player.mvp .ptile::after{background:linear-gradient(115deg,rgba(10,10,14,.55),rgba(10,10,14,.06) 55%,rgba(216,162,58,.38))}
.player:hover{transform:translateY(-5px);border-color:rgba(255,0,151,.5);box-shadow:0 20px 40px -24px var(--shadow-hov)}
.player::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--mag);transform:scaleX(0);transform-origin:left;transition:transform .35s;z-index:1}
.player:hover::before{transform:scaleX(1)}
.player .jersey{position:absolute;right:8px;top:-12px;z-index:1;font:900 118px/1 'Archivo';font-style:italic;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:2px var(--jersey);transition:-webkit-text-stroke-color .35s;user-select:none}
.player:hover .jersey{-webkit-text-stroke-color:rgba(255,0,151,.55)}
.pos{display:inline-block;font:600 11px/1 'IBM Plex Mono',monospace;letter-spacing:.2em;color:var(--mag-tx);border:1px solid var(--line-mag);padding:8px 11px;transform:skewX(-8deg)}
.pos>span{display:inline-block;transform:skewX(8deg)}
.player h3{margin:20px 0 0;font:900 clamp(1.5rem,2.6vw,1.9rem)/1.2 'Noto Sans TC'}
.player .sub{font:800 12.5px/1.3 'Archivo';font-style:italic;letter-spacing:.08em;color:var(--mute);margin-top:6px}
.player p{margin:14px 0 0;color:var(--body);font-size:15px;max-width:30em;position:relative;z-index:1}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.tags i{font:600 10.5px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.12em;font-style:normal;color:var(--mute);border:1px solid var(--line);padding:7px 10px}
.player .go{display:inline-flex;align-items:center;gap:9px;margin:20px -6px -10px;padding:13px 6px;font:800 14.5px/1 'Noto Sans TC';color:var(--tx);text-decoration:none}
.player .go em{font-style:normal;color:var(--mag-tx);transition:translate .25s}
.player .go:hover em{translate:5px 0}
.player .go span{border-bottom:2px solid rgba(255,0,151,.55);padding-bottom:4px;transition:border-color .25s}
.player .go:hover span{border-color:var(--mag)}
.player.mvp{border-color:var(--line-gold)}
.player.mvp::before{background:var(--gold)}
.player.mvp:hover{border-color:var(--line-gold-hov);box-shadow:0 20px 40px -24px var(--shadow-hov)}
.player.mvp .pos{color:var(--gold);border-color:var(--line-gold)}
.player.mvp:hover .jersey{-webkit-text-stroke-color:rgba(216,162,58,.55)}
.player.mvp .go span{border-color:var(--line-gold)}
.player.mvp .go em{color:var(--gold)}
.player.mvp .go:hover span{border-color:var(--gold)}

/* ---------- war room ---------- */
.war{background:var(--shell);clip-path:polygon(0 7.5vw,100% 0,100% calc(100% - 7.5vw),0 100%);padding:calc(64px + 7.5vw) 0}
.war .sec-head .en{color:var(--gold)}
.war-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media(max-width:940px){.war-grid{grid-template-columns:1fr}}
.wcard{display:flex;flex-direction:column;align-items:flex-start;background:var(--cell);border:1px solid var(--line);padding:30px 28px 28px}
.wcard .tagrow{margin-top:auto;padding-top:20px}
.wcard .wk{font:600 11px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.2em;color:var(--mute)}
.wcard h3{margin:16px 0 0;font:900 1.35rem/1.3 'Noto Sans TC'}
.wcard h3 i{display:block;font:800 12px/1.4 'Archivo';font-style:italic;letter-spacing:.08em;color:var(--mute);margin-top:4px}
.wcard p{margin:14px 0 0;color:var(--body);font-size:15px}
.wcard p .au{color:var(--gold);font-weight:800}
.hotline{display:inline-block;margin:14px 0 0;font:600 clamp(1.15rem,2vw,1.45rem)/1.2 'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;color:var(--tx);text-decoration:none;border-bottom:2px solid rgba(255,0,151,.55);padding:10px 0 11px;transition:border-color .25s,color .25s}
.hotline:hover{border-color:var(--mag);color:var(--mag-tx)}
.wtag{display:inline-block;margin-top:16px;font:600 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.18em;color:var(--mag-tx);border:1px solid var(--line-mag);padding:8px 11px}
.wcard.gold .wtag{color:var(--gold);border-color:var(--line-gold)}
.wlink{display:inline-block;margin:16px 0 0;font:800 14px/1 'Noto Sans TC';color:var(--tx);text-decoration:none;border-bottom:2px solid rgba(255,0,151,.55);padding-bottom:4px;transition:border-color .25s}
.wlink:hover{border-color:var(--mag)}
.creds{list-style:none;margin:18px 0 0;padding:0}
.creds li{display:flex;gap:14px;align-items:baseline;padding:13px 0;border-top:1px solid var(--line)}
.creds li:first-child{border-top:0;padding-top:4px}
.creds b{font:900 15.5px/1.5 'Noto Sans TC';color:var(--tx);white-space:nowrap}
.creds b.au{color:var(--gold)}
.creds span{font:500 13px/1.6 'Noto Sans TC';color:var(--mute)}
.war-note{margin:34px 0 0;padding:20px 24px;border:1px solid var(--line-gold);background:var(--cell);color:var(--body);font-size:14.5px;max-width:46em}
.war-note b{color:var(--gold)}

/* ---------- hall of fame ---------- */
.hof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
@media(max-width:940px){.hof-grid{grid-template-columns:1fr}}
.hof{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);padding:26px 26px 0;transition:transform .3s,border-color .3s}
.hof:hover{transform:translateY(-5px);border-color:var(--line-strong)}
.hof .ptag{align-self:flex-start;font:600 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.2em;color:#fff;background:var(--mag);padding:8px 11px;transform:rotate(var(--tilt));margin:2px 0 6px;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%)}
.hof q{display:block;margin:18px 0 22px;font:700 clamp(1.1rem,1.7vw,1.28rem)/1.65 'Noto Sans TC';quotes:"「" "」";flex:1;color:var(--tx)}
.hof q::before,.hof q::after{color:var(--mag-tx);font-weight:900}
.chyron{display:flex;align-items:center;gap:12px;margin:0 -26px;padding:16px 22px;background:var(--card2);border-top:1px solid var(--line)}
.chyron .cc{font:900 12px/1 'Archivo';font-style:italic;letter-spacing:.1em;color:var(--cc-tx);background:var(--cc-bg);padding:6px 8px 5px}
.chyron b{font:900 14.5px/1.3 'Noto Sans TC';color:var(--tx)}
.chyron span{font:600 10.5px/1.5 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.1em;color:var(--mute);margin-left:auto;text-align:right}
.hof-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:22px}
.stile{position:relative;height:190px;overflow:hidden;margin:0}
.stile img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.08) brightness(.85)}
.stile::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(10,10,14,.35),rgba(10,10,14,.05) 45%,rgba(255,0,151,.3));box-shadow:inset 0 0 0 1px var(--img-ring)}
.stile figcaption{position:absolute;left:14px;bottom:14px;z-index:1;font:600 10.5px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.18em;color:#fff;background:var(--ink);padding:8px 11px}
@media(max-width:720px){
  .hof-strip{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:72%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
  .stile{scroll-snap-align:start}
}

/* ---------- final call ---------- */
.final{position:relative;background:var(--mag);color:var(--ink);padding:0 0 104px;overflow:hidden;clip-path:polygon(0 7.5vw,100% 0,100% 100%,0 100%)}
.final .band{margin:6.5vw -6vw 68px}
.final .kick{color:rgba(10,10,14,.75)}
.final .kick::before{background:var(--ink)}
.final h2{margin:26px 0 0;transform:rotate(var(--tilt));font:900 clamp(2.6rem,7vw,5rem)/1.05 'Noto Sans TC';color:#fff}
.final h2 .ink{color:var(--ink)}
.final .sub{margin:22px 0 0;transform:rotate(var(--tilt));font:700 clamp(1rem,1.8vw,1.2rem)/1.7 'Noto Sans TC';color:rgba(10,10,14,.85);max-width:30em}
.final .cta-row{margin-top:36px}
.final .cta{background:var(--ink);color:#fff;box-shadow:0 18px 44px -14px rgba(10,10,14,.55)}
.final .cta:hover{background:#1c1c24}
.final .cta.ghost{background:transparent;border-color:rgba(10,10,14,.55);color:var(--ink);box-shadow:none}
.final .cta.ghost:hover{border-color:var(--ink);background:transparent}
.final .line-row{margin:34px 0 0;transform:rotate(var(--tilt));font:600 12.5px/1.6 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.14em;color:rgba(10,10,14,.85)}
.final .line-row b{color:#fff;background:var(--ink);padding:5px 9px;font-weight:600}
.final .line-row a{color:inherit;text-decoration:none}
.final .big-en{margin:74px 0 0;font:900 clamp(3rem,9vw,7rem)/.9 'Archivo';font-style:italic;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:2.5px rgba(10,10,14,.5);white-space:nowrap;user-select:none}

/* ---------- motion ---------- */
.vhero .inner>.stagger>*{animation:heroIn .8s cubic-bezier(.22,.9,.24,1) both}
.vhero .stagger>*:nth-child(1){animation-delay:.05s}
.vhero .stagger>*:nth-child(2){animation-delay:.15s}
.vhero .stagger>*:nth-child(3){animation-delay:.25s}
.vhero .stagger>*:nth-child(4){animation-delay:.35s}
.vhero .stagger>*:nth-child(5){animation-delay:.45s}
.vhero .stagger>*:nth-child(6){animation-delay:.55s}
@keyframes heroIn{from{opacity:0;transform:translateY(26px) rotate(var(--tilt))}to{opacity:1;transform:rotate(var(--tilt))}}
.num{animation:numIn 1s .4s cubic-bezier(.22,.9,.24,1) both}
@keyframes numIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}}
.rv{opacity:0;translate:0 26px;transition:opacity .7s ease,translate .7s ease}
.rv.in{opacity:1;translate:0 0}
.rv:nth-child(2){transition-delay:.08s}
.rv:nth-child(3){transition-delay:.16s}
.rv:nth-child(4){transition-delay:.24s}

/* ---------- accreditations (live content, v3 skin) ---------- */
.accred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:880px){.accred-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:430px){.accred-grid{grid-template-columns:1fr}}
.accred-card{background:var(--card);border:1px solid var(--line);padding:26px 22px 24px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;transition:transform .3s,border-color .3s}
.accred-card:hover{transform:translateY(-5px);border-color:var(--line-strong)}
.accred-card .ac-logo{height:92px;width:100%;display:flex;align-items:center;justify-content:center;margin-bottom:18px;background:#fff;box-shadow:inset 0 0 0 1px var(--img-ring);padding:10px}
.accred-card .ac-logo img{max-height:72px;max-width:150px;width:auto;height:auto;display:block}
.accred-card .ac-title{font:900 15.5px/1.4 'Noto Sans TC';color:var(--tx);margin-bottom:8px}
.accred-card .ac-desc{font:500 13px/1.7 'Noto Sans TC';color:var(--mute)}
.accred-card .ac-desc b{color:var(--mag-tx);font-weight:800}
.eltis-badge{height:92px;width:100%;margin-bottom:18px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#fff;box-shadow:inset 0 0 0 1px var(--img-ring);padding:10px}
.eltis-badge .em-word{font-family:'Fraunces',Georgia,serif;font-weight:800;font-size:40px;letter-spacing:-.02em;color:#15152a;line-height:1;font-style:italic}
.eltis-badge .em-word .em-i{color:#ff0097}
.eltis-badge .em-sub{font:800 9px/1 'IBM Plex Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:#8a8a99}
.accred-highlight{margin:30px 0 0;display:flex;align-items:center;gap:17px;text-align:left;background:var(--cell);border:1px solid var(--line-gold);padding:22px 26px}
.accred-highlight .ah-pin{font-size:30px;line-height:1;flex-shrink:0}
.accred-highlight .ah-title{font:900 clamp(15px,1.7vw,18.5px)/1.35 'Noto Sans TC';color:var(--tx)}
.accred-highlight .ah-title b{color:var(--gold)}
.accred-highlight .ah-sub{font-size:12.5px;color:var(--mute);margin-top:5px;line-height:1.55}
.accred-highlight .ah-map{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font:800 12.5px/1.4 'Noto Sans TC';color:var(--mag-tx);text-decoration:none;border-bottom:1px solid var(--line-mag);padding-bottom:1px;transition:color .15s,border-color .15s}
.accred-highlight .ah-map:hover{border-bottom-color:var(--mag)}
@media(max-width:520px){.accred-highlight{padding:16px 18px;gap:13px}.accred-highlight .ah-pin{font-size:25px}}

/* ---------- proof band (升學成果) ---------- */
.proof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.pstat{background:var(--cell);padding:28px 24px}
.pstat .pn{font:900 clamp(28px,3.4vw,40px)/1.15 'Archivo';font-style:italic;letter-spacing:-.02em;color:var(--mag-tx);font-variant-numeric:tabular-nums}
.pstat .pl{font:500 13.5px/1.7 'Noto Sans TC';color:var(--mute);margin-top:10px}
.pstat .pl b{color:var(--tx);font-weight:800}
.proof-note{margin:26px 0 0;padding:20px 24px;border:1px solid var(--line);background:var(--card);font:500 14px/1.8 'Noto Sans TC';color:var(--body);max-width:56em}
.proof-note b{color:var(--mag-tx);font-weight:800}

/* ---------- about (球團簡介) ---------- */
.fr-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
@media(max-width:880px){.fr-grid{grid-template-columns:1fr}}
.fr-text p{margin:16px 0 0;color:var(--body);font-size:15.5px;line-height:1.85}
.fr-text p strong{color:var(--tx)}
.fr-cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.fr-photo{position:relative;margin:0}
.fr-photo img{width:100%;height:auto;filter:saturate(1.05) contrast(1.06)}
.fr-photo::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--img-ring);pointer-events:none}
.fr-badge{position:absolute;left:14px;bottom:14px;z-index:1;background:var(--ink);color:#fff;padding:12px 16px}
.fr-badge strong{display:block;font:900 13.5px/1.4 'Noto Sans TC'}
.fr-badge span{font:600 10px/1.6 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.14em;color:rgba(255,255,255,.75)}
.glow-line{width:100%;max-width:1140px;margin:0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--line-mag),transparent)}

/* ---------- stability callout ---------- */
.scallout{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
@media(max-width:768px){.scallout{grid-template-columns:1fr}}
.scallout h2{margin:20px 0 16px;font:900 clamp(22px,3vw,34px)/1.3 'Noto Sans TC'}
.scallout .sc-p{font-size:15px;color:var(--body);line-height:1.8;margin:16px 0 0}
.scallout .sc-p strong{color:var(--tx)}
.scc{background:var(--card);border:1px solid var(--line-gold);padding:30px 28px}
.scc .scc-emoji{font-size:30px;line-height:1}
.scc h3{margin:14px 0 0;font:900 1.25rem/1.4 'Noto Sans TC';color:var(--tx)}
.scc p{margin:12px 0 0;font-size:14.5px;line-height:1.8;color:var(--body)}
.scc-list{margin-top:18px}
.scc-item{display:flex;gap:10px;align-items:baseline;font:500 14px/1.7 'Noto Sans TC';color:var(--body);padding:9px 0;border-top:1px solid var(--line)}
.scc-item:first-child{border-top:0}
.scc-check{color:var(--gold);font-weight:900}

/* ---------- program (賽季行程) ---------- */
.phase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:940px){.phase-grid{grid-template-columns:1fr}}
.phase{position:relative;background:var(--card);border:1px solid var(--line);padding:30px 28px 26px;overflow:hidden;transition:transform .3s,border-color .3s}
.phase:hover{transform:translateY(-5px);border-color:rgba(255,0,151,.5)}
.phase::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--mag);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.phase:hover::before{transform:scaleX(1)}
.phase .pnum{position:absolute;right:8px;top:-12px;font:900 108px/1 'Archivo';font-style:italic;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:2px var(--jersey);user-select:none}
.phase:hover .pnum{-webkit-text-stroke-color:rgba(255,0,151,.55)}
.phase .pos{margin-top:2px}
.phase h3{margin:20px 0 0;font:900 1.35rem/1.3 'Noto Sans TC';position:relative;z-index:1}
.phase>p{margin:12px 0 0;color:var(--body);font-size:14.5px;position:relative;z-index:1}
.phase-list{list-style:none;margin:18px 0 0;padding:0;position:relative;z-index:1}
.phase-list li{font:500 14px/1.6 'Noto Sans TC';color:var(--body);padding:10px 0 10px 22px;border-top:1px solid var(--line);position:relative}
.phase-list li::before{content:"▸";position:absolute;left:2px;color:var(--mag-tx);font-weight:900}

/* ---------- who (球探報告) ---------- */
.who-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:start}
@media(max-width:940px){.who-grid{grid-template-columns:1fr}}
.scout-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(max-width:560px){.scout-grid{grid-template-columns:1fr}}
.scout{background:var(--card);border:1px solid var(--line);padding:22px 20px;transition:transform .3s,border-color .3s}
.scout:hover{transform:translateY(-4px);border-color:var(--line-mag)}
.scout .si{font-size:24px;line-height:1}
.scout h3{margin:12px 0 0;font:900 1.1rem/1.3 'Noto Sans TC';display:inline-block}
.scout .stype{display:inline-block;margin-left:8px;font:800 11px/1 'Archivo';font-style:italic;letter-spacing:.08em;color:var(--mag-tx)}
.scout p{margin:10px 0 0;font:500 13.5px/1.7 'Noto Sans TC';color:var(--mute)}
.scout .sq{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line);font:600 12.5px/1.6 'Noto Sans TC';color:var(--body)}
.tip-note{margin-top:14px;padding:16px 20px;border:1px solid var(--line-gold);background:var(--card);font:500 14px/1.75 'Noto Sans TC';color:var(--body)}
.tip-note strong{color:var(--gold)}
.tryout{background:var(--card);border:1px solid var(--line-mag);padding:26px 24px;position:sticky;top:84px}
.tryout h3{margin:0;font:900 1.3rem/1.3 'Noto Sans TC'}
.tryout .note{margin:8px 0 14px;font:600 11px/1.6 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.1em;color:var(--mute)}
.checklist{list-style:none;margin:0;padding:0}
.checklist li{display:flex;gap:12px;align-items:flex-start;font:500 13.5px/1.6 'Noto Sans TC';color:var(--body);padding:10px 4px;border-top:1px solid var(--line);cursor:pointer;user-select:none;transition:color .2s}
.checklist li:first-child{border-top:0}
.checklist li:hover{color:var(--tx)}
.check-box{flex:none;width:18px;height:18px;margin-top:2px;border:1.5px solid var(--line-strong);transition:background-color .2s,border-color .2s;position:relative}
.checklist li.is-checked{color:var(--tx)}
.checklist li.is-checked .check-box{background:var(--mag);border-color:var(--mag)}
.checklist li.is-checked .check-box::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:900 12px/1 'Noto Sans TC'}
#who .checklist-score{display:flex;align-items:baseline;gap:12px;margin-top:16px;padding:14px 18px;border:1px solid var(--line);background:var(--cell);transition:border-color .3s,background-color .3s}
#who .checklist-score .score-num{font:900 34px/1 'Archivo';font-style:italic;color:var(--mag-tx);font-variant-numeric:tabular-nums}
#who .checklist-score .score-label{font:600 12px/1.5 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.06em;color:var(--mute)}
#who .checklist-score.is-great{border-color:var(--line-gold-hov);background:rgba(216,162,58,.08)}
#who .checklist-score.is-great .score-num{color:var(--gold)}
#who .checklist-score.is-great .score-label{color:var(--tx)}
.tryout .cta{display:block;text-align:center;margin-top:20px}

/* ---------- destinations (客場地圖) ---------- */
.dest-highlight{display:inline-flex;align-items:baseline;gap:12px;margin:20px 0 0}
.dest-highlight .dnum{font:900 clamp(3rem,6vw,4.6rem)/1 'Archivo';font-style:italic;color:var(--mag-tx);letter-spacing:-.02em}
.dest-highlight span{font:800 15px/1.4 'Noto Sans TC';color:var(--tx)}
.dest-region{margin-top:34px}
.dest-region h3{margin:0 0 14px;font:600 12px/1.7 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.2em;color:var(--mute);text-transform:uppercase}
.dest-pills{display:flex;flex-wrap:wrap;gap:10px}
.dpill{display:inline-flex;align-items:center;gap:8px;font:700 13.5px/1 'Noto Sans TC';color:var(--tx);text-decoration:none;border:1px solid var(--line);background:var(--card);padding:12px 16px;transition:border-color .25s,transform .25s}
.dpill:hover{border-color:var(--line-mag);transform:translateY(-2px)}
.dpill .flag{font-size:15px;line-height:1}
.dpill .star{margin-left:4px;font:800 10px/1 'IBM Plex Mono',monospace;letter-spacing:.06em;color:var(--gold)}
.dest-cta{margin-top:36px}

/* ---------- gallery marquee (ported from live batch-fixes; sharp v3 corners) ---------- */
.gal-marquee{display:flex;flex-direction:column;gap:14px;margin-top:8px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.gal-row{display:flex;overflow:hidden}
.gal-track{display:flex;gap:14px;flex:none;animation:gal-marq 64s linear infinite;will-change:transform;padding-right:14px}
.gal-row.rev .gal-track{animation-duration:80s;animation-direction:reverse}
.gal-track img{width:clamp(190px,24vw,300px);height:clamp(140px,17vw,210px);object-fit:cover;border-radius:0;
  outline:1px solid var(--img-ring);outline-offset:-1px;cursor:zoom-in;flex:none;
  filter:saturate(1.05) contrast(1.06);
  transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.gal-track img:hover{transform:scale(1.045)}
@keyframes gal-marq{to{transform:translateX(-50%)}}
.gal-marquee:hover .gal-track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.gal-track{animation:none}.gal-marquee{flex-wrap:wrap;-webkit-mask-image:none;mask-image:none}.gal-row{overflow:auto}}

/* ---------- testimonials (inside hall of fame) ---------- */
.hq{margin:64px 0 34px;padding:0}
.hq blockquote{margin:0;font:700 clamp(1.3rem,2.6vw,1.9rem)/1.7 'Noto Sans TC';color:var(--tx);max-width:30em}
.hq blockquote::before{content:"「";color:var(--mag-tx);font-weight:900}
.hq blockquote::after{content:"」";color:var(--mag-tx);font-weight:900}
.tcard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:26px}
@media(max-width:940px){.tcard-grid{grid-template-columns:1fr}}
.tcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);padding:24px 24px 0;transition:transform .3s,border-color .3s}
.tcard:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.tcard.gold{border-color:var(--line-gold)}
.tstars{font:600 12px/1 'IBM Plex Mono',monospace;letter-spacing:.3em;color:var(--gold)}
.tcard blockquote{margin:16px 0 20px;font:500 14.5px/1.8 'Noto Sans TC';color:var(--body);flex:1}
.tmeta{display:flex;align-items:center;gap:12px;margin:0 -24px;padding:14px 20px;background:var(--card2);border-top:1px solid var(--line)}
.tmeta .tav{flex:none;width:34px;height:34px;display:grid;place-items:center;background:var(--cc-bg);color:var(--cc-tx);font:900 14px/1 'Archivo';font-style:italic}
.tmeta strong{font:900 13.5px/1.3 'Noto Sans TC';color:var(--tx);display:block}
.tmeta span{font:600 10px/1.5 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.08em;color:var(--mute)}

/* ---------- blog (戰報) ---------- */
.press-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.press-all{font:800 14px/1 'Noto Sans TC';color:var(--tx);text-decoration:none;border-bottom:2px solid rgba(255,0,151,.55);padding-bottom:5px;transition:border-color .25s}
.press-all:hover{border-color:var(--mag)}
.press-featured{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;margin-top:40px}
@media(max-width:880px){.press-featured{grid-template-columns:1fr}}
.press-side{display:flex;flex-direction:column;gap:22px}
.pcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);overflow:hidden;transition:transform .3s,border-color .3s}
.pcard:hover{transform:translateY(-4px);border-color:var(--line-mag)}
.pthumb{position:relative;aspect-ratio:16/9;overflow:hidden}
.press-side .pthumb{aspect-ratio:16/6.5}
.pthumb img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.06);transition:transform .5s cubic-bezier(.22,.9,.24,1)}
.pcard:hover .pthumb img{transform:scale(1.04)}
.pthumb::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--img-ring);pointer-events:none}
.pcat{position:absolute;left:12px;top:12px;z-index:1;font:600 10px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.16em;color:#fff;background:var(--ink);padding:7px 10px}
.pbody{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.pdate{margin:0;font:600 10.5px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.14em;color:var(--mute)}
.pbody h3{margin:12px 0 0;font:900 clamp(1.05rem,1.6vw,1.3rem)/1.45 'Noto Sans TC';color:var(--tx)}
.pbody p{margin:10px 0 0;font:500 13.5px/1.7 'Noto Sans TC';color:var(--mute);flex:1}
.pmore{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font:800 13.5px/1 'Noto Sans TC';color:var(--mag-tx);text-decoration:none}
.pmore:hover{color:var(--mag)}
.press-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:22px}
@media(max-width:880px){.press-grid{grid-template-columns:1fr}}

/* ---------- app (隨身裝備) — slanted shell ---------- */
.appx{background:var(--shell);clip-path:polygon(0 4.5vw,100% 0,100% calc(100% - 4.5vw),0 100%);padding:calc(64px + 4.5vw) 0}
.appx .sec-head{margin-bottom:8px}
.app-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.app-badge{display:inline-block;font:700 13.5px/1 'Noto Sans TC';color:var(--mute);border:1px solid var(--line-strong);padding:13px 18px;text-decoration:none;transform:skewX(-8deg)}
.app-badge>span{display:inline-block;transform:skewX(8deg)}
.app-badge b{color:var(--tx)}
.app-badge.hotlink{color:var(--mag-tx);border-color:var(--line-mag);transition:border-color .25s}
.app-badge.hotlink:hover{border-color:var(--mag)}

/* ---------- popwall (community band) ---------- */
.bfe-popwall{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:74px 0 78px}
.bfe-popwall::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 0%,rgba(255,0,151,.28),transparent 60%)}
.bfe-popwall .wrap{position:relative;z-index:2}
.bfe-popwall .kick{color:rgba(255,255,255,.65)}
.bfe-popwall h2{margin:20px 0 0;font:900 clamp(1.8rem,4.4vw,3rem)/1.25 'Noto Sans TC';color:#fff}
.bfe-popwall h2 u{text-decoration-color:rgba(255,0,151,.7);text-underline-offset:8px}
.bfe-popwall .pw-sub{color:rgba(255,255,255,.8);max-width:600px;margin:16px 0 26px;font-size:15.5px}
.pw-cta{display:inline-block;background:var(--mag);color:#fff;font:900 15.5px/1 'Noto Sans TC';padding:17px 30px;text-decoration:none;clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%);transition:background-color .25s,transform .25s}
.pw-cta:hover{background:#ff2ea9}

/* ---------- contact form on the final slab ---------- */
.fcard{position:relative;z-index:6;background:var(--ink);color:#f2f2f7;padding:40px 34px;margin-top:64px;max-width:560px;box-shadow:0 30px 70px -30px rgba(10,10,14,.7)}
.fcard .fk{font:600 11px/1.7 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.22em;color:#ff8fd0;text-transform:uppercase}
.fcard h3{margin:14px 0 0;font:900 clamp(1.5rem,3vw,2rem)/1.25 'Noto Sans TC';color:#fff}
.fcard .fp{margin:12px 0 0;font:500 14px/1.75 'Noto Sans TC';color:#b9b7c2}
.nf4-form{display:grid;gap:14px;margin:26px auto 0;text-align:left}
.nf4-form label{font:700 12px/1.4 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.08em;color:#9d9dac;display:block;margin-bottom:6px}
.nf4-in{width:100%;box-sizing:border-box;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:0;padding:13px 14px;font:500 16px/1.4 'Noto Sans TC',sans-serif;color:#f2f2f7;outline:none;transition:border-color .2s}
.nf4-in:focus{border-color:#ff0097}
.nf4-in::placeholder{color:#6b6b7a}
select.nf4-in{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#9d9dac 50%),linear-gradient(135deg,#9d9dac 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.nf4-seg{display:flex;gap:8px}
.nf4-seg button{flex:1;padding:11px 0;border-radius:0;font:800 13.5px/1.4 'Noto Sans TC';background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#9d9dac;cursor:pointer;transition:border-color .2s,color .2s,background-color .2s}
.nf4-seg button.on{background:rgba(255,0,151,.16);border-color:#ff0097;color:#ff8fd0}
.nf4-submit{width:100%;padding:16px 0;border:0;border-radius:0;background:#ff0097;color:#fff;font:900 16px/1.2 'Noto Sans TC';cursor:pointer;clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%);transition:background-color .25s,transform .18s}
.nf4-submit:hover{background:#ff2ea9}
.nf4-submit:active{transform:scale(.97)}
.nf4-submit:disabled{opacity:.55}
.nf4-note{font:500 11.5px/1.7 'Noto Sans TC';color:#6b6b7a;text-align:center;margin:0}
.nf4-ok{display:none;text-align:center;padding:28px 0}
.nf4-ok .big{font-size:42px}
.nf4-ok h3{color:#fff}
.nf4-ok p{color:#b9b7c2;margin-top:8px}
.fcard .falt{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:8px;font:500 13px/1.5 'Noto Sans TC';color:#9d9dac}
.fcard .fphone{margin-top:8px;text-align:center;font:600 13px/1.5 'IBM Plex Mono',monospace;color:#9d9dac}
.fcard .fphone a{color:inherit;text-decoration:none}

/* ---------- ambient FX layer (preserved from live, tuned to v3) ---------- */
#mesh-bg{position:fixed;inset:0;z-index:-3;pointer-events:none;overflow:hidden}
.mesh-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.04;will-change:transform}
.mesh-orb-1{width:600px;height:600px;background:radial-gradient(circle,#ff0097 0%,transparent 65%);animation:orbFloat1 22s ease-in-out infinite}
.mesh-orb-2{width:500px;height:500px;background:radial-gradient(circle,#7000ff 0%,transparent 65%);animation:orbFloat2 28s ease-in-out infinite}
.mesh-orb-3{width:450px;height:450px;background:radial-gradient(circle,#d8a23a 0%,transparent 65%);animation:orbFloat3 34s ease-in-out infinite}
@keyframes orbFloat1{0%{transform:translate(10vw,10vh)}33%{transform:translate(72vw,30vh)}66%{transform:translate(40vw,70vh)}100%{transform:translate(10vw,10vh)}}
@keyframes orbFloat2{0%{transform:translate(70vw,60vh)}50%{transform:translate(20vw,20vh)}100%{transform:translate(70vw,60vh)}}
@keyframes orbFloat3{0%{transform:translate(30vw,80vh)}50%{transform:translate(60vw,10vh)}100%{transform:translate(30vw,80vh)}}
#ambient-orb{position:fixed;width:700px;height:700px;border-radius:50%;pointer-events:none;z-index:-2;transform:translate(-50%,-50%);filter:blur(60px);opacity:.5;transition:left 1.8s cubic-bezier(.16,1,.3,1),top 1.8s cubic-bezier(.16,1,.3,1),background 1.2s ease}
#scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg,var(--mag),#7000ff,var(--mag));background-size:200% 100%;animation:gradShift 3s linear infinite;z-index:10000;transition:width .08s linear;pointer-events:none}
@keyframes gradShift{to{background-position:200% 0}}

/* ---------- .btn-primary (ported from live — the shared header's 預約說明會 button depends on it) ---------- */
.btn-primary{display:inline-block;background:linear-gradient(135deg,#ff0097 0%,#c4008a 100%);color:#fff;font-size:15px;font-weight:700;padding:14px 36px;border-radius:50px;letter-spacing:.5px;transition:transform .2s,box-shadow .2s;box-shadow:0 6px 24px rgba(255,0,151,.35);border:none;cursor:pointer;text-decoration:none}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(255,0,151,.5)}

/* ---------- feel layer (ported from live batch-fixes) ---------- */
.btn,.pw-cta,.gtab,button,a.cta,.cta-primary,.cta-secondary{transition:transform .18s cubic-bezier(.2,.8,.2,1),background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.btn:active,.pw-cta:active,a.cta:active,.cta-primary:active,.cta-secondary:active{transform:scale(.97)}
:where(a,button,.btn,.pw-cta):focus-visible{outline:2px solid var(--mag,#ff0097);outline-offset:3px}
.score-num,.stat-num,[class*="counter"]{font-variant-numeric:tabular-nums}
img{outline-color:rgba(0,0,0,.04)}

/* ---------- defense vs theme-shared.css (needed for shared nav/footer includes) ---------- */
#main h1,#main h2,#main h3,#main h4,.final h2{font-family:'Noto Sans TC','Inter Tight',sans-serif!important}
html[data-theme=light] body{background:#fff!important}
html[data-theme=dark] body{background:#0a0a0e!important}
#main blockquote,.tcard blockquote,.hq blockquote{font-family:'Noto Sans TC',sans-serif!important}
.mast{isolation:isolate}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;translate:0 0}
  .band .track{animation:none!important}
  *{scroll-behavior:auto}
}
  
/* ============================================================
   VARSITY SUBPAGE EXTENSION — new selectors + legacy-vocabulary
   mapping. Loaded AFTER each page's legacy inline styles so the
   varsity rules win source-order ties; content mappings are
   scoped under #main so shared nav/footer chrome (theme-shared.css)
   stays untouched. v1 · 2026-07-06
   ============================================================ */

/* ---- legacy token aliases (old inline CSS consumes these) ---- */
:root{
  --dark:var(--shell);
  --dark2:var(--card2);
  --darker:var(--bg);
  --border:var(--line);
  --text-dim:var(--mute);
}

/* ---- lightbox (shared) ---- */
.nf-lightbox{position:fixed;inset:0;z-index:11000;display:none;align-items:center;justify-content:center;background:rgba(6,4,10,.92);padding:4vmin}
.nf-lightbox.open{display:flex}
.nf-lightbox img{max-width:92vw;max-height:88vh;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.nf-lightbox .lb-close{position:absolute;top:14px;right:18px;width:44px;height:44px;border:1px solid rgba(255,255,255,.3);background:rgba(10,10,14,.6);color:#fff;font-size:26px;line-height:1;cursor:pointer}

/* ---- legacy reveal system (varsity.js adds .in + .revealed; transform
        guard defeats the old per-page transform-based reveal rules) ---- */
.reveal{opacity:0;translate:0 26px;transform:none!important;transition:opacity .7s ease,translate .7s ease!important}
.reveal.in{opacity:1;translate:0 0}
.reveal-d1.in{transition-delay:.08s!important}
.reveal-d2.in{transition-delay:.16s!important}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;translate:0 0}}

/* ============================================================
   LEGACY CONTENT VOCABULARY → VARSITY (scoped to #main)
   ============================================================ */
#main{display:block}
#main .nav-spacer{display:none}
#main .container{max-width:1140px;margin:0 auto;padding:0 24px}
#main .section{padding:96px 0;position:relative}
@media(max-width:720px){#main .section{padding:72px 0}}

/* kicker eyebrows */
#main .tag,#main .hero-eyebrow,#main .camps-hero-eyebrow,#main .uni-hero-eyebrow,#main .ap-hero-eyebrow,
#main .wat-eyebrow,#main .page-eyebrow,#main .exch-eyebrow,#main .faq-eyebrow,#main .help-eyebrow,#main .legal-eyebrow,#main .taiwan-eyebrow{
  display:flex;align-items:center;gap:12px;margin:0 0 18px;background:none;border:0;padding:0;border-radius:0;
  font:600 12px/1.7 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.22em;color:var(--mute);text-transform:uppercase}
#main .tag::before,#main .hero-eyebrow::before,#main .camps-hero-eyebrow::before,#main .uni-hero-eyebrow::before,#main .ap-hero-eyebrow::before,
#main .wat-eyebrow::before,#main .page-eyebrow::before,#main .exch-eyebrow::before,#main .faq-eyebrow::before,#main .help-eyebrow::before,#main .legal-eyebrow::before,#main .taiwan-eyebrow::before{
  content:"";flex:none;width:14px;height:14px;background:var(--mag);clip-path:polygon(0 0,100% 0,100% 60%,60% 100%,0 100%)}

/* shared content helpers across the May-21 page batch */
#main .lead,#main .section-lead{color:var(--body)}
#main .callout{border:1px solid var(--line-gold);background:var(--card);border-radius:0}
#main .callout.warn,#main .warn{border-color:var(--line-mag)}
#main .grad{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:currentColor!important;color:var(--mag-tx)!important}
#main .btn-line{border-radius:0!important}
#main .title-en,#main .country-name-en,#main .prog-tagline,#main .pathway-tagline{font-family:'Archivo','Noto Sans TC',sans-serif;font-style:italic;color:var(--mag-tx)}
#main .table-wrap{border:1px solid var(--line)}
#main .step-num,#main .process-num,#main .pathway-num,#main .asse-num,#main .mandarin-num{font-family:'Archivo','Noto Sans TC',sans-serif;font-style:italic;font-weight:900;color:var(--mag-tx);background:none;-webkit-text-fill-color:currentColor}
#main .prog-card,#main .subnav-card,#main .asse-card,#main .philosophy-card,#main .service-card,#main .offer-card,#main .benefit-card,#main .fit-card,#main .qa-item{
  background:var(--card);border:1px solid var(--line);border-radius:0!important;box-shadow:none;transition:transform .3s,border-color .3s,box-shadow .3s}
#main .prog-card:hover,#main .subnav-card:hover,#main .asse-card:hover,#main .philosophy-card:hover,#main .service-card:hover,#main .offer-card:hover,#main .benefit-card:hover{
  transform:translateY(-5px);border-color:var(--line-mag);box-shadow:0 20px 40px -24px var(--shadow-hov)}

/* headings + the old gradient-clip accent → solid magenta (varsity rule: no gradient-clip text) */
/* core's homepage-hero h1 defaults (11ch cap + tilt) must not leak onto content h1s;
   hero-family h1 rules below re-assert their own tilt via higher specificity */
#main h1{max-width:none;transform:none}
#main h2{font-family:'Noto Sans TC',sans-serif;font-weight:900;letter-spacing:.01em;color:var(--tx)}
#main .section>.container>h2,#main .section h2.section-h,#main .section-title{font-size:clamp(1.9rem,4.6vw,3rem);line-height:1.18}
#main .grad-text{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:currentColor!important;color:var(--mag-tx)!important}
#main h3{color:var(--tx)}
#main p{color:var(--body)}

/* cards */
#main .content-card,#main .info-card,#main .detail-card,#main .feature-card,#main .pillar,#main .step-card,#main .why-card,#main .stat-card,#main .program-card,#main .camp-card,#main .country-card,#main .path-card,#main .support-card{
  background:var(--card);border:1px solid var(--line);border-radius:0;box-shadow:none;
  transition:transform .3s,border-color .3s,box-shadow .3s}
#main .content-card:hover,#main .info-card:hover,#main .detail-card:hover,#main .feature-card:hover,#main .pillar:hover,#main .step-card:hover,#main .why-card:hover,#main .program-card:hover,#main .camp-card:hover,#main .country-card:hover,#main .path-card:hover{
  transform:translateY(-5px);border-color:var(--line-mag);box-shadow:0 20px 40px -24px var(--shadow-hov)}
#main .section-icon{font-size:26px;line-height:1}

/* lists */
#main .list-items{list-style:none;margin:0;padding:0}
#main .list-items li{font:500 14px/1.7 'Noto Sans TC';color:var(--body);padding:10px 0 10px 22px;border-top:1px solid var(--line);position:relative;background:none}
#main .list-items li::before{content:"▸";position:absolute;left:2px;color:var(--mag-tx);font-weight:900}
#main .list-items li:first-child{border-top:0}
#main .list-warn li::before{content:"▹";color:var(--gold)}

/* day timeline */
#main .day-timeline{border:1px solid var(--line);background:var(--card);padding:8px 20px}
#main .day-item{display:flex;gap:13px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line);font:500 14px/1.65 'Noto Sans TC';color:var(--body)}
#main .day-item:first-child{border-top:0}
#main .day-dot{flex:none;width:9px;height:9px;border-radius:0;background:var(--mag);transform:translateY(-1px) skewX(-8deg)}

/* specs / quick-facts bar → box score */
#main .specs-bar{background:none;border:0;padding:34px 0 0}
#main .specs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
#main .spec-row{display:block;background:var(--cell);padding:20px 20px 17px;border:0;border-radius:0}
#main .spec-label{font:600 10.5px/1.6 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.18em;color:var(--mute);text-transform:uppercase}
#main .spec-val{font:900 16px/1.5 'Noto Sans TC';color:var(--tx);margin-top:4px;font-variant-numeric:tabular-nums}

/* marquee ticker → varsity diagonal band */
#main .marquee-wrap{position:relative;z-index:4;background:var(--mag);border:0;transform:rotate(var(--tilt));width:112vw;margin:58px -6vw;padding:15px 0;overflow:hidden;mask-image:none;-webkit-mask-image:none}
#main .marquee-track{display:flex;gap:0;white-space:nowrap;width:max-content;animation:mq 40s linear infinite}
#main .marquee-item{display:inline-flex;align-items:center;gap:9px;padding:0 27px 0 0;margin:0 27px 0 0;border:0;background:none;font:900 15px/1 'Archivo','Noto Sans TC',sans-serif;font-style:italic;letter-spacing:.12em;color:#fff}
#main .marquee-item strong{font-family:'Noto Sans TC',sans-serif;font-style:normal;font-weight:900;color:var(--ink)}
#main .marquee-item .mflag{font-style:normal;font-size:15px}
@media(prefers-reduced-motion:reduce){#main .marquee-track{animation:none!important}}

/* hero families → varsity hero */
#main .country-hero,#main .page-hero,#main .wat-hero,#main .exch-hero,#main .camps-hero,#main .uni-hero,#main .ap-hero,#main .taiwan-hero,#main .legal-hero,#main .faq-hero,#main .help-hero,#main .hf-hero,#main .hero{
  position:relative;overflow:hidden;background:var(--bg);clip-path:polygon(0 0,100% 0,100% calc(100% - 5.5vw),0 100%);padding-bottom:calc(48px + 5.5vw)}
#main .country-hero-img img{filter:var(--hero-filter)}
/* CSS-background heroes converted to real LCP <img>: kill the bg, fill with the img */
#main .wat-hero-bg,#main .exch-hero-bg,#main .camps-hero-bg,#main .uni-hero-bg,#main .ap-hero-bg,#main .taiwan-hero-bg,#main .legal-hero-bg,#main .hero-bg,#main .page-hero-bg,#main .faq-hero-bg,#main .help-hero-bg{background-image:none!important}
#main .wat-hero-bg img,#main .exch-hero-bg img,#main .camps-hero-bg img,#main .uni-hero-bg img,#main .ap-hero-bg img,#main .taiwan-hero-bg img,#main .legal-hero-bg img,#main .hero-bg img,#main .page-hero-bg img,#main .faq-hero-bg img,#main .help-hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--hero-filter)}
#main .country-hero-overlay,#main .hero-overlay,#main .wat-hero-overlay,#main .exch-hero-overlay,#main .camps-hero-overlay,#main .uni-hero-overlay,#main .ap-hero-overlay,#main .taiwan-hero-overlay,#main .legal-hero-overlay{
  background:var(--hero-wash)}
#main .country-hero-overlay::after,#main .hero-overlay::after,#main .wat-hero-overlay::after,#main .exch-hero-overlay::after,#main .camps-hero-overlay::after,#main .uni-hero-overlay::after,#main .ap-hero-overlay::after,#main .taiwan-hero-overlay::after,#main .legal-hero-overlay::after{
  content:"";position:absolute;inset:auto 0 0 0;height:160px;background:linear-gradient(180deg,transparent,var(--bg))}
#main .country-hero-bg,#main .page-hero-glow{display:none}
#main .hero-aurora{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:var(--aur-o);mix-blend-mode:var(--aur-blend);filter:blur(26px);transform:scale(1.12)}
#main .hero-inner,#main .wat-hero-inner,#main .camps-hero-inner,#main .ap-hero-inner,#main .taiwan-hero-inner,#main .legal-hero-inner,#main .faq-hero-inner{position:relative;z-index:3}
#main .country-hero h1,#main .page-hero h1,#main .wat-hero h1,#main .exch-hero h1,#main .camps-hero h1,#main .uni-hero h1,#main .ap-hero h1,#main .taiwan-hero h1,#main .legal-hero h1,#main .faq-hero h1,#main .help-hero h1,#main .hero h1{
  font:900 clamp(2.5rem,6.6vw,5rem)/1.06 'Noto Sans TC',sans-serif;letter-spacing:.01em;color:var(--tx);background:none;
  transform:rotate(var(--tilt));transform-origin:left center;text-wrap:balance;max-width:16ch}
#main .en-name{font:900 clamp(1.1rem,2.2vw,1.6rem)/1.2 'Archivo','Noto Sans TC',sans-serif;font-style:italic;letter-spacing:.02em;color:var(--mag-tx);transform:rotate(var(--tilt));transform-origin:left center;margin-top:14px}
#main .hero-sub,#main .country-hero .lede{color:var(--body);max-width:34em;transform:rotate(var(--tilt));transform-origin:left center}
#main .breadcrumb{font:600 10.5px/1.8 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.16em;color:var(--mute);text-transform:uppercase}
#main .breadcrumb a{color:var(--mute);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
#main .breadcrumb a:hover{color:var(--tx);border-color:var(--line-strong)}
#main .country-flag-large{font-size:52px;line-height:1;filter:none}
#main .ctag{display:inline-block;font:600 10.5px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.12em;font-style:normal;color:var(--body);border:1px solid var(--line);background:none;border-radius:0;padding:8px 10px}
#main .asse-badge{display:inline-flex;align-items:center;gap:8px;font:600 11px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.16em;color:var(--gold);border:1px solid var(--line-gold);background:none;border-radius:0;padding:9px 12px;text-transform:uppercase}
#main .asse-badge .dot{width:7px;height:7px;border-radius:0;background:var(--gold);transform:skewX(-8deg);animation:none;box-shadow:none}
#main .hero-stats,#main .hero-stat,#main .hero-stat-card{border-radius:0}

/* buttons — content zone only (shared nav keeps its rounded .btn-primary) */
#main .btn-primary{display:inline-block;background:var(--mag);color:#fff;font:900 15.5px/1.2 'Noto Sans TC',sans-serif;letter-spacing:.02em;padding:17px 30px;border:0;border-radius:0;text-decoration:none;cursor:pointer;
  clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%);box-shadow:0 14px 30px -14px rgba(255,0,151,.5);
  transition:transform .25s,box-shadow .25s,background-color .25s}
#main .btn-primary:hover{background:#ff2ea9;transform:none;box-shadow:0 16px 32px -12px rgba(255,0,151,.55)}
#main .btn-primary:active{transform:scale(.96)}
#main .btn-outline,#main .btn-secondary{display:inline-block;background:transparent;border:2px solid var(--ghost-bd);color:var(--ghost-tx);font:800 14.5px/1.2 'Noto Sans TC',sans-serif;padding:15px 26px;border-radius:0;text-decoration:none;cursor:pointer;
  transition:border-color .25s,background-color .25s,transform .18s}
#main .btn-outline:hover,#main .btn-secondary:hover{border-color:var(--ghost-hov-bd);background:var(--ghost-hov-bg);transform:none}
#main .btn-outline:active,#main .btn-secondary:active{transform:scale(.96)}

/* related-country pills → dpills */
#main .related-section{background:var(--shell);padding:72px 0}
#main .related-grid{display:flex;flex-wrap:wrap;gap:10px}
#main .rel-pill{display:inline-flex;align-items:center;gap:8px;font:700 13.5px/1 'Noto Sans TC';color:var(--tx);text-decoration:none;border:1px solid var(--line);background:var(--card);border-radius:0;padding:12px 16px;transition:border-color .25s,transform .25s}
#main .rel-pill:hover{border-color:var(--line-mag);transform:translateY(-2px);background:var(--card)}

/* related-programs (cross-page SEO block) */
#main .related-programs{background:var(--shell);border-top:0;padding:88px 20px;clip-path:polygon(0 3.5vw,100% 0,100% 100%,0 100%);margin-top:3.5vw}
#main .related-programs-title{font:900 clamp(1.6rem,3vw,2.2rem)/1.25 'Noto Sans TC';text-align:left}
#main .related-programs-subtitle{text-align:left;color:var(--mute);opacity:1;font:500 14.5px/1.7 'Noto Sans TC'}
#main .related-programs-grid{gap:16px}
#main .related-programs-card{background:var(--card);border:1px solid var(--line);border-radius:0;color:var(--tx);transition:transform .25s,border-color .25s,box-shadow .25s}
#main .related-programs-card:hover{transform:translateY(-4px);background:var(--card);border-color:var(--line-mag);box-shadow:0 18px 36px -24px var(--shadow-hov)}
#main .related-programs-name{color:var(--tx);font-weight:800}
#main .related-programs-desc{color:var(--mute);opacity:1}

/* culture gallery */
#main .culture-gallery .culture-intro{color:var(--body);max-width:34em}
#main .culture-item{border-radius:0;box-shadow:none;outline:1px solid var(--img-ring);outline-offset:-1px}
#main .culture-item img{border-radius:0;filter:saturate(1.05) contrast(1.06);cursor:zoom-in}
#main .culture-caption{font:600 10.5px/1.4 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.14em;color:#fff;background:var(--ink);border-radius:0;padding:8px 11px;left:14px;bottom:14px;right:auto;text-shadow:none}

/* final CTA slabs → magenta varsity slab */
#main .cta-section,#main .uni-cta,#main .cta-banner{position:relative;background:var(--mag);color:var(--ink);overflow:hidden;clip-path:polygon(0 4.5vw,100% 0,100% 100%,0 100%);padding:calc(80px + 4.5vw) 0 96px;text-align:left}
#main .cta-section .tag,#main .uni-cta .tag,#main .cta-banner .tag{color:rgba(10,10,14,.75)}
#main .cta-section .tag::before,#main .uni-cta .tag::before,#main .cta-banner .tag::before{background:var(--ink)}
#main .cta-section h2,#main .uni-cta h2,#main .cta-banner h2{color:#fff;font:900 clamp(2rem,5vw,3.6rem)/1.12 'Noto Sans TC';transform:rotate(var(--tilt));transform-origin:left center}
#main .cta-section h2 .grad-text,#main .uni-cta h2 .grad-text,#main .cta-banner h2 .grad-text{color:var(--ink)!important}
#main .cta-section p,#main .uni-cta p,#main .cta-banner p{color:rgba(10,10,14,.85);font-weight:700;max-width:34em}
#main .cta-section .btn-primary,#main .uni-cta .btn-primary,#main .cta-banner .btn-primary{background:var(--ink);color:#fff;box-shadow:0 18px 44px -14px rgba(10,10,14,.55)}
#main .cta-section .btn-primary:hover,#main .uni-cta .btn-primary:hover,#main .cta-banner .btn-primary:hover{background:#1c1c24}
#main .cta-section .btn-outline,#main .uni-cta .btn-outline,#main .cta-banner .btn-outline{border-color:rgba(10,10,14,.55);color:var(--ink)}
#main .cta-section .btn-outline:hover,#main .uni-cta .btn-outline:hover{border-color:var(--ink);background:transparent}
#main .cta-section a:focus-visible,#main .uni-cta a:focus-visible,#main .cta-banner a:focus-visible{outline-color:var(--ink)}

/* FAQ accordions */
#main details.qa{background:var(--card);border:1px solid var(--line);border-radius:0;margin:0 0 10px;transition:border-color .25s}
#main details.qa[open]{border-color:var(--line-mag)}
#main details.qa summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:12px;padding:18px 20px;font:900 15.5px/1.6 'Noto Sans TC';color:var(--tx)}
#main details.qa summary::-webkit-details-marker{display:none}
#main details.qa summary::before{content:"+";flex:none;font:900 16px/1 'IBM Plex Mono',monospace;color:var(--mag-tx);transform:translateY(1px);transition:rotate .25s}
#main details.qa[open] summary::before{rotate:45deg}
#main details.qa>div,#main details.qa .qa-a{padding:0 20px 20px 48px;color:var(--body);font-size:14.5px;line-height:1.8}

/* stats bands (exchange-program / university) */
#main .stats-band{background:var(--shell)}
#main .stat-num{font-family:'Archivo','Noto Sans TC',sans-serif;font-style:italic;font-weight:900;color:var(--mag-tx);letter-spacing:-.02em;font-variant-numeric:tabular-nums;background:none;-webkit-text-fill-color:currentColor}

/* filter buttons (summer camps) */
#main .filter-btn{border-radius:0;border:1px solid var(--line);background:var(--card);color:var(--body);font:700 13px/1 'Noto Sans TC';transform:skewX(-8deg);transition:border-color .25s,color .25s,background-color .25s}
#main .filter-btn>*{display:inline-block;transform:skewX(8deg)}
#main .filter-btn:hover{background:var(--card);border-color:var(--line-strong);color:var(--tx)}
#main .filter-btn.active{background:var(--mag);border-color:var(--mag);color:#fff}

/* region tab row (destinations guide) */
#main .rtab{border-radius:0;border:1px solid var(--line);background:var(--card);color:var(--body);font:700 13px/1 'Noto Sans TC';transition:border-color .25s,color .25s,background-color .25s}
#main .rtab:hover{border-color:var(--line-strong);color:var(--tx)}
#main .rtab.active{background:var(--mag);border-color:var(--mag);color:#fff}

/* tables (compare tables etc.) */
#main table{border-collapse:collapse;border:1px solid var(--line)}
#main th{font:700 12px/1.6 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.1em;color:var(--mute);text-transform:uppercase;border:1px solid var(--line);background:var(--card2)}
#main td{border:1px solid var(--line);color:var(--body);background:var(--cell)}

/* kill leftover rounded corners from inline style attributes (varsity is sharp).
   dots/orbs keep their radius via explicit rules above. */
#main section [style*="border-radius"],#main div[style*="border-radius"],#main a[style*="border-radius"],#main span[style*="border-radius"]{border-radius:0!important}

/* generic content links (zero-specificity inner so scoped rules like .breadcrumb a win) */
#main :where(a:not([class])){color:var(--mag-tx);text-decoration:none;border-bottom:1px solid var(--line-mag);transition:border-color .2s}
#main :where(a:not([class])):hover{border-color:var(--mag)}

/* legacy .num stat elements (about mission strip, destinations facts bar,
   host-family hero stats) — undo the homepage-hero .num chrome, whose mobile
   breakpoint absolutely-positions and fades the element */
#main .num{position:static;text-align:inherit;margin:0;opacity:1;animation:none;z-index:auto;user-select:auto;top:auto;right:auto}
#main .num span{display:inline}
#main .mission-item .num{margin-bottom:8px}

/* blog family */
#main .blogidx-head{text-align:left}
#main .blogidx-head .tag{border-radius:0}
#main .bx-card,#main .post-nav-card{border-radius:0!important;background:var(--card);border:1px solid var(--line);transition:transform .25s,border-color .25s,box-shadow .25s}
#main .bx-card:hover,#main .post-nav-card:hover{transform:translateY(-4px);border-color:var(--line-mag);box-shadow:0 18px 36px -24px var(--shadow-hov)}
#main .bx-cat{border-radius:0;background:var(--ink);color:#fff;font:600 10px/1 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.16em;backdrop-filter:none}
#main .bx-thumb img{border-radius:0}
#main .article-title,#main .post-title{font:900 clamp(1.7rem,4vw,2.6rem)/1.3 'Noto Sans TC',sans-serif!important;letter-spacing:.01em;text-wrap:balance}
#main .post-hero-img-wrap,#main .post-hero-img-wrap img{border-radius:0!important}
#main .post-byline-avatar{border-radius:0}
#main .post-breadcrumb{font:600 10.5px/1.8 'IBM Plex Mono','Noto Sans TC',monospace;letter-spacing:.16em;text-transform:uppercase}
#main .post-body a{color:var(--mag-tx)}

/* about-page stat numerals: gradient-clip → solid varsity numerals */
#main .mission-item .num,#main .cred-item .big{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:currentColor!important;color:var(--mag-tx)!important;font-family:'Archivo','Noto Sans TC',sans-serif!important;font-style:italic;font-variant-numeric:tabular-nums}
#main .uni-pill{border-radius:0!important}

/* mast on subpages sits identical to homepage */
.mast .bar a.mlogo{display:inline-flex;border:0}

/* ============================================================
   DEFENSE vs theme-shared.css legacy skin (the shared file is
   byte-identical site chrome — these #main-anchored rules outrank
   its !important page-skin layer via ID specificity).
   ============================================================ */
#main h1,#main h2,#main h3,#main h4{font-family:'Noto Sans TC','Inter Tight',sans-serif!important}
#main blockquote{font-family:'Noto Sans TC',sans-serif!important}

/* flatten the legacy round-corners pass — varsity is sharp */
#main .benefit-card,#main .fit-card,#main .spec-row,#main .country-card,#main .country-card-photo,#main .country-card-photo img,
#main .region-block .container>img,#main .what-photo img,#main .about-photo img,#main .country-hero-img img,
#main .hero-bg,#main .page-hero-bg,#main .specs-section .spec-row,#main .culture-item,#main .culture-item img,
#main .timeline,#main .culture-item--wide-solo,#main .culture-item--wide,#main .culture-item--narrow,#main .step-card,
#main .content-card,#main .info-card,#main .detail-card,#main .feature-card,#main .pillar,#main .camp-card,
#main .path-card,#main .support-card,#main .program-card,#main .day-timeline,#main .tip-note,#main details.qa{border-radius:0!important}

/* hero text: varsity puts SOLID ground under text (hero-wash), so text uses
   theme ink — defeat the old white-on-photo + text-shadow strategy */
#main .country-hero h1,#main .page-hero h1,#main .wat-hero h1,#main .exch-hero h1,#main .camps-hero h1,
#main .uni-hero h1,#main .ap-hero h1,#main .taiwan-hero h1,#main .legal-hero h1,#main .faq-hero h1,
#main .help-hero h1,#main .hero h1,#main .page-hero-inner h1{color:var(--tx)!important;text-shadow:none!important}
#main h1 .grad-text{color:var(--mag-tx)!important;filter:none!important;text-shadow:none!important}
#main .en-name{color:var(--mag-tx)!important;text-shadow:none!important}
#main .country-hero .breadcrumb,#main .country-hero .breadcrumb a,#main .breadcrumb,#main .breadcrumb a{color:var(--mute)!important;text-shadow:none!important}
#main .breadcrumb a:hover{color:var(--tx)!important}
#main .country-hero .ctag,#main .ctag{background:none!important;border:1px solid var(--line)!important;color:var(--body)!important;text-shadow:none!important}
#main .country-hero-overlay,#main .hero-overlay,#main .wat-hero-overlay,#main .exch-hero-overlay,#main .camps-hero-overlay,
#main .uni-hero-overlay,#main .ap-hero-overlay,#main .taiwan-hero-overlay,#main .legal-hero-overlay{background:var(--hero-wash)!important}
#main .hero-sub,#main .hero-eyebrow{color:var(--body)!important;text-shadow:none!important}

/* culture-item hover: keep the lift, kill the huge blur shadow for the flat varsity look */
#main .culture-item:hover{transform:translateY(-5px)!important;box-shadow:0 20px 40px -24px var(--shadow-hov)!important}
