@font-face{font-family:"Noto Sans TC";src:url("../fonts/NotoSansTC-campaign.ttf?v=20261030-2") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"Chiron GoRound TC";src:url("../fonts/ChironGoRoundTC-campaign.ttf?v=20261030-2") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}

/* Layout concept: a worksheet-on-desk page. Every band is its own "sheet" with a gridline tint,
   sticker cards (ink outline + hard shadow) sit on it, and animated SVG trace-arrows lead from block to block. */
:root{
  --green:#21A366; --green-deep:#107C41; --green-dark:#0B5A2F; --ink:#072B19;
  --mint:#E3F7EA; --mint-2:#CDEFD9; --paper:#F6FDF8;
  --lime:#B8EC3A; --lime-soft:#EAFAC8; --sun:#FFCB2F; --sun-soft:#FFF3C4;
  --coral:#FF6F59; --coral-soft:#FFE3DC;
  --display:"Chiron GoRound TC","Noto Sans TC","Microsoft JhengHei",sans-serif;
  --body:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  --hard:6px 6px 0 var(--ink);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:500 17px/1.8 var(--body);-webkit-font-smoothing:antialiased}
::selection{background:var(--sun);color:var(--ink);text-shadow:none}
::-moz-selection{background:var(--sun);color:var(--ink);text-shadow:none}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,ol,ul{margin:0}
a{color:inherit}
.course-link{color:inherit;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:var(--green);text-decoration-thickness:2px;text-underline-offset:4px}
.course-link:hover{text-decoration-style:solid;text-decoration-color:var(--green)}
:focus-visible{outline:4px solid var(--green);outline-offset:3px;border-radius:8px}
main{display:block;overflow-x:clip}
.wrap{width:100%;max-width:1320px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* sections */
.sec{position:relative;padding-block:clamp(84px,9vw,132px) clamp(56px,7vw,100px)}
.wave{position:absolute;left:0;top:0;width:100%;height:clamp(24px,3.4vw,48px);transform:translateY(-97%);pointer-events:none}
.sec-head{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-align:center;margin-bottom:clamp(25px,4vw,30px)}
.sec-head>div{display:flex;flex-direction:column;align-items:center;min-width:0;width:100%}
.sec-title{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;font:900 clamp(26px,3.5vw,46px)/1.3 var(--display);text-align:center;text-wrap:balance;margin-bottom:14px}
.sec-title>span:last-child{min-width:0}
.ico{flex:none;display:grid;place-items:center;width:clamp(60px,6vw,80px);aspect-ratio:1;background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:5px 5px 0 var(--ink);animation:wiggle 3.6s ease-in-out infinite}
.ico img{width:72%}
.sec-sub{font-size:clamp(17px,1.6vw,21px);font-weight:700;max-width:62ch;margin-inline:auto;text-align:center}
.sec-sub span {background: linear-gradient(transparent 58%, var(--lime) 58%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  margin: 0 2px;}



/* hero */
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(120deg,#0C703A 0%,#0F7F43 48%,#188D4D 100%);padding-bottom:clamp(64px,8vw,110px)}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.15) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(255,255,255,.15) 1.5px,transparent 1.5px);background-size:120px 40px;-webkit-mask-image:linear-gradient(#000,transparent 90%);mask-image:linear-gradient(#000,transparent 90%)}
.hero-confetti{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);align-items:center;padding-block:clamp(48px,7vw,104px) clamp(40px,5vw,64px)}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:26px;min-width:0}
.hero h1{font:900 clamp(38px,5.2vw,78px)/1.2 var(--display);text-shadow:4px 4px 0 var(--ink);text-wrap:balance}
.hl{display:inline;background:none;color:var(--sun);padding:0;border:0;border-radius:0;box-shadow:none;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink);transform:none;margin-inline:.08em;font-weight:900;letter-spacing:.02em}
.hero-tag{display:inline-flex;align-items:center;gap:12px;background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:999px;box-shadow:var(--hard);padding:6px 26px 6px 14px;font:900 clamp(20px,2.4vw,30px)/1.4 var(--display);transform:rotate(-1.6deg)}
.hero-tag img{width:34px;height:34px;animation:spin 8s linear infinite}
.hero-lead{background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:24px;box-shadow:var(--hard);padding:22px 28px;font-size:clamp(17px,1.5vw,20px);font-weight:700;max-width:640px}
.hero-lead span {
  background: linear-gradient(transparent 58%, var(--lime) 58%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  margin: 0 2px;
}
.hero-art{position:relative;min-width:0}
.hero-sheet{position:relative;width:100%;max-width:660px;margin-inline:auto;animation:float 6s ease-in-out infinite}
.hero-dots{position:absolute;right:-6%;top:-8%;width:70%;opacity:.9}

/* pain */
.pain{background-color:var(--mint);background-image:linear-gradient(rgba(16,124,65,.11) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(16,124,65,.11) 1.5px,transparent 1.5px);background-size:120px 40px}
.vs{display:grid;gap:24px}
.vs-head,.vs-row{display:grid;grid-template-columns:280px minmax(0,1fr) 64px minmax(0,1fr);column-gap:8px;align-items:stretch}
.vs-head{align-items:end}
.tab{grid-column:auto;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-width:0;box-sizing:border-box;text-align:center;font:900 clamp(18px,1.8vw,24px)/1.4 var(--display);border:3px solid var(--ink);border-radius:18px 18px 0 0;padding:8px 14px;border-bottom-width:3px}
.tab::before{content:"";display:block;flex:none;width:20px;height:20px;box-sizing:border-box}
.tab-bad::before{background:linear-gradient(45deg,transparent calc(50% - 1.5px),currentColor calc(50% - 1.5px),currentColor calc(50% + 1.5px),transparent calc(50% + 1.5px)),linear-gradient(-45deg,transparent calc(50% - 1.5px),currentColor calc(50% - 1.5px),currentColor calc(50% + 1.5px),transparent calc(50% + 1.5px))}
.tab-good::before{border:3px solid currentColor;border-radius:50%}
.tab-bad{grid-column:2;background:var(--coral)}
.tab-good{grid-column:4;background:var(--lime)}
.vs-label{display:flex;align-items:center;gap:12px;margin-right:14px;background:var(--sun-soft);border:3px solid var(--ink);border-radius:22px;box-shadow:5px 5px 0 var(--ink);padding:12px 16px;font:900 clamp(18px,1.6vw,22px)/1.4 var(--display)}
.vs-label img{flex:none;width:52px;height:52px}
.vs-card{border:3px solid var(--ink);border-radius:22px;padding:20px 24px;font-size:clamp(16px,1.35vw,18.5px);font-weight:500;display:flex;flex-direction:column;justify-content:center;min-width:0;transition:box-shadow .2s,translate .2s}
.vs-card::before{content:attr(data-label);display:none;font:900 14px/1.4 var(--display);letter-spacing:.06em;margin-bottom:8px}
.vs-card.bad{background:var(--coral-soft);border-style:dashed}
.vs-card.good{background:#fff;box-shadow:5px 5px 0 var(--green)}
.vs-card.good strong{align-self:flex-start;font-weight:900;background:linear-gradient(transparent 58%,var(--lime) 58%)}
.vs-card:hover{translate:-2px -2px}
.vs-arrow{align-self:center;justify-self:center;width:64px}

/* stages */
.stages{background-color:#fff;background-image:url(../images/dots-tile.svg);background-size:28px 28px}
.flow{position:relative;max-width:1000px;margin-inline:auto;display:flex;flex-direction:column;align-items:center}
.stage{width:min(100%,640px);display:flex;align-items:center;gap:22px;background:var(--mint-2);color:inherit;text-decoration:none;cursor:pointer;border:3px solid var(--ink);border-radius:28px;box-shadow:var(--hard);padding:22px 28px;transition:box-shadow .2s,translate .2s}
.stage:hover,.route:hover,.faq-card:hover{translate:-2px -2px;box-shadow:9px 9px 0 var(--ink)}
.stage:focus-visible{outline:5px solid var(--sun);outline-offset:6px;translate:-2px -2px;box-shadow:9px 9px 0 var(--ink)}
.stage .si{flex:none;display:grid;place-items:center;width:84px;aspect-ratio:1;background:#fff;border:3px solid var(--ink);border-radius:22px;transform:rotate(-5deg)}
.stage .si img{width:68%}
.stage-body{min-width:0}
.stage-name{display:inline-block;font:900 18px/1.5 var(--display);letter-spacing:.04em;background:var(--ink);color:#fff;border-radius:999px;padding:1px 14px;margin-bottom:6px}
.stage h3{font:800 clamp(20px,2.2vw,27px)/1.4 var(--display)}
.stage h3 a{text-decoration:none}
.stage h3 a:hover{text-decoration:underline wavy var(--green-deep);text-underline-offset:6px}
.code{display:inline-block;font:700 .5em/1.5 var(--display);background:var(--green-dark);color:var(--lime);padding:.05em .7em;border-radius:999px;margin-left:.4em;vertical-align:.12em;white-space:nowrap}
.s1{background:#CDEFD9}.s2{background:var(--sun-soft)}.s3{background:#E6F9B8}.s4{background:var(--coral-soft)}.s5{background:#BFEBCF}
.conn{width:40px;height:84px;margin-block:2px}
.branch{width:100%;max-width:900px}
.branch-mobile{display:none}
.mobile-branch-note{display:none}
.pair{width:100%;max-width:900px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.pair .stage{width:100%;flex-direction:column;align-items:flex-start;text-align:left}
.only-m{display:none}

/* spec */
.spec{background-color:#0F7F43;color:#fff;background-image:linear-gradient(rgba(255,255,255,.09) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(255,255,255,.09) 1.5px,transparent 1.5px);background-size:120px 40px}
.spec .ico{box-shadow:5px 5px 0 var(--ink)}
.spec .sec-title>span:last-child{display:inline-block;width:auto;max-width:min(100%,920px);color:#fff;text-shadow:4px 4px 0 var(--ink);-webkit-text-stroke:.6px var(--ink);paint-order:stroke fill}
.spec-table-wrap{overflow:hidden;background:#fff;border:3px solid var(--ink);border-radius:28px;box-shadow:8px 8px 0 var(--ink)}
.spec-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;color:var(--ink)}
.spec-col-stage{width:17%}.spec-col-name{width:30%}.spec-col-skills{width:23%}.spec-col-goal{width:30%}
.spec-table th{background:var(--lime);padding:18px 16px;text-align:left;vertical-align:middle;font:900 clamp(16px,1.5vw,19px)/1.4 var(--display);letter-spacing:.025em;border-right:2px solid var(--ink)}
.spec-table th:last-child{border-right:0}
.spec-table th span{display:block;font-size:16px;letter-spacing:.04em}
.spec-row{background:#fff;color:var(--ink)}
.spec-row td{padding:18px 16px;vertical-align:middle;border-top:2px solid var(--ink);border-right:2px solid rgba(7,43,25,.25);transition:background-color .2s}
.spec-row td:last-child{border-right:0}
.spec-row:hover td{background-color:#F4FCF7}
.spec-stage{display:flex;align-items:center;gap:10px;font:900 clamp(18px,1.65vw,23px)/1.3 var(--display)}
.spec-stage img{flex:none;width:56px;height:56px;object-fit:contain}
.spec-name{font:800 clamp(18px,1.6vw,21px)/1.55 var(--display)}
.spec-code{font-size:.78em;font-weight:500}
.spec-skills{display:grid;gap:4px;font:700 16px/1.55 var(--display)}
.spec-skills p{background:var(--mint);border-radius:10px;padding:3px 12px}
.spec-goal{font-size:clamp(16px,1.3vw,18px)}
.spec-row td::before{content:attr(data-label);display:none;font:900 16px/1.4 var(--display);letter-spacing:.06em;color:var(--green-deep);margin-bottom:6px}

/* routes */
.routes{background-color:var(--sun-soft);background-image:linear-gradient(rgba(255,160,0,.16) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(255,160,0,.16) 1.5px,transparent 1.5px);background-size:120px 40px}
.route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.route{display:flex;flex-direction:column;gap:18px;background:#fff;border:3px solid var(--ink);border-radius:30px;box-shadow:var(--hard);padding:28px;transition:box-shadow .2s,translate .2s}
.route header{display:flex;align-items:center;gap:16px}
.route header img{flex:none;width:56px;height:56px;animation:wiggle 4s ease-in-out infinite}
.route h3{font:900 clamp(20px,2vw,26px)/1.4 var(--display);min-width:0}
.path{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.chip{display:inline-block;border:3px solid var(--ink);border-radius:999px;padding:.2em 1em;font:800 clamp(15px,1.3vw,17.5px)/1.5 var(--display);background:var(--mint);text-decoration:none;transition:filter .15s,translate .15s,box-shadow .15s}
.chip[href$="/AIEX"]{background:#CDEFD9}
.chip[href$="/EXAIBF"]{background:var(--sun-soft)}
.chip[href$="/EXAIAD"]{background:#E6F9B8}
.chip[href$="/EXAIBG"]{background:var(--coral-soft)}
.chip[href$="/EXAIVB"]{background:#BFEBCF}
.chip:hover{filter:saturate(1.25) brightness(.96);translate:-2px -2px;box-shadow:4px 4px 0 var(--ink)}
.lead-pill{display:inline-block;background:var(--ink);color:var(--lime);border-radius:12px;padding:.1em .8em;font:900 17px/1.6 var(--display)}
.arr{display:inline-block;font-size:26px;line-height:1;color:var(--green-deep);animation:nudge 1.4s ease-in-out infinite}
.note{border-top:3px dashed var(--ink);padding:10px 5px;font-weight:700;margin-top:10px;font-size:clamp(16px,1.3vw,18px);text-align: center;}
.r1 header img{animation-delay:0s}.r2 header img{animation-delay:-.8s}.r3 header img{animation-delay:-1.6s}.r4 header img{animation-delay:-2.4s}

/* why */
.why{background-color:var(--lime-soft);background-image:url(../images/dots-tile.svg);background-size:28px 28px}
.why-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(450px,510px);gap:clamp(20px,3vw,30px);align-items:stretch}
.why-list{position:relative;list-style:none;padding:0;display:grid;gap:24px}
.why-list::before{content:"";position:absolute;z-index:0;left:36px;top:63px;bottom:42px;width:12px;transform:translateX(-50%);background:url(../images/vflow-ink.svg) repeat-y 0 0/12px 24px;pointer-events:none}
.why-list li{position:relative;z-index:1;display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:center}
.num{display:grid;place-items:center;width:64px;aspect-ratio:1;background:var(--sun);border:3px solid var(--ink);border-radius:50%;font:900 32px/1 var(--display);box-shadow:3px 3px 0 var(--ink)}
.why-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;align-items:center;min-height:126px;background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:var(--hard);padding:20px 24px;transition:box-shadow .2s,translate .2s}
.why-card:hover{translate:-2px -2px;box-shadow:9px 9px 0 var(--ink)}
.why-card>img{width:56px;height:56px;object-fit:contain}
.why-list h3{display:inline;font:900 clamp(18px,2vw,22px)/1.45 var(--display)}
.why-list p{display:inline;font-size:clamp(16px,1.35vw,18.5px)}
.why-map{position:sticky;top:max(24px,env(safe-area-inset-top,0px));background:#fff;border:3px solid var(--ink);border-radius:30px;box-shadow:var(--hard);padding:22px;display:grid;place-items:center}
.why-map img{width:100%;max-width:320px}

/* faq */
.faq{background-color:var(--paper);background-image:linear-gradient(rgba(16,124,65,.10) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(16,124,65,.10) 1.5px,transparent 1.5px);background-size:120px 40px}
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;max-width:1120px;margin-inline:auto}
.faq-card{display:block;background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:var(--hard);overflow:hidden;transition:box-shadow .2s,translate .2s}
.faq-card summary{position:relative;display:block;list-style:none;cursor:pointer;background:var(--green-deep);color:#fff}
.faq-card summary::-webkit-details-marker{display:none}
.faq-card summary::after{content:"";position:absolute;right:24px;top:50%;width:38px;aspect-ratio:1;transform:translateY(-50%);background:linear-gradient(var(--ink),var(--ink)) center/16px 3px no-repeat,linear-gradient(var(--ink),var(--ink)) center/3px 16px no-repeat,var(--sun);border:3px solid var(--ink);border-radius:50%;transition:transform .2s,background-color .2s}
.faq-card[open] summary::after{transform:translateY(-50%) rotate(45deg);background-color:var(--lime)}
.faq-card h3{padding:20px 78px 20px 26px;font:800 clamp(18px,1.7vw,22px)/1.55 var(--display)}
.qmark{display:inline-block;background:var(--sun);color:var(--ink);border:3px solid var(--ink);border-radius:12px;padding:0 .55em;margin-right:.55em;font-weight:900}
.faq-a{padding:22px 26px 26px;display:grid;gap:14px;align-content:start;border-top:3px solid var(--ink);animation:faqReveal .28s ease-out}
.faq-a .lede{font-weight:900;font-size:clamp(17px,1.5vw,20px)}
.faq-a .lede.quote{background:linear-gradient(transparent 55%,var(--sun) 55%);display:inline;padding:0 .1em}
.faq-a ul{list-style:none;padding:0;display:grid;gap:12px}
.faq-a li{position:relative;padding-left:30px;font-size:clamp(16px,1.3vw,18px)}
.faq-a li::before{content:"";position:absolute;left:4px;top:0.5em;width:11px;height:11px;border-radius:50%;background:var(--green);border:2.5px solid var(--ink)}
.faq-a li strong{font-weight:900}
@keyframes faqReveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* instructor */
.instructor{background-color:var(--lime-soft);background-image:url(../images/dots-tile.svg);background-size:28px 28px}
.instructor .instructor-card{display:grid;grid-template-columns:250px minmax(0,1fr);align-items:start;gap:40px;padding:40px;background:#fff;border:3px solid var(--ink);border-radius:30px;box-shadow:var(--hard)}
.instructor .instructor-profile{text-align:center}
.instructor .instructor-photo{width:min(100%,210px);margin-inline:auto;padding:0;overflow:hidden;background:var(--mint);border:3px solid var(--ink);border-radius:50%;box-shadow:3px 4px 0 rgba(7,43,25,.16)}
.instructor .instructor-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%}
.instructor .instructor-profile h3{margin:16px 0 0;font:900 1.875rem/1.3 var(--display)}
.instructor .instructor-title{margin-bottom:24px;font:900 1.5rem/1.6 var(--display);color:var(--green-deep)}
.instructor .instructor-detail+.instructor-detail{margin-top:24px;padding-top:24px;border-top:2px dashed var(--ink)}
.instructor .instructor-detail h4{display:inline-block;margin:0 0 10px;padding:3px 14px;border-radius:999px;background:var(--ink);color:var(--lime);font:900 17px / 1.6 var(--display);}
.instructor .instructor-detail p{font-size: clamp(16px, 1.35vw, 18.5px);font-weight:500;line-height:1.9;overflow-wrap:break-word}
.instructor .instructor-detail p+h4{margin-top:24px}
@media (max-width:900px){
  .instructor .instructor-card{grid-template-columns:minmax(0,1fr);gap:28px;padding:28px}
  .instructor .instructor-profile{width:min(100%,240px);margin-inline:auto}
  .instructor .instructor-title{text-align:center}
}
@media (max-width:560px){
  .instructor .instructor-card{padding:24px 20px}
  .instructor .instructor-profile{max-width:210px}
  .instructor .instructor-title{font-size:1.25rem;}
}

/* cta */
.cta{background:linear-gradient(180deg,#188D4D 0%,#0F7F43 52%,#0C703A 100%);color:#fff;text-align:center;overflow:visible;padding-block:clamp(90px,10vw,115px) clamp(70px,10vw,100px)}
.cta-clip{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.cta-clip img{width:100%;height:100%;object-fit:cover;opacity:.78}
.cta-inner{position:relative;display:flex;justify-content:center}
.cta-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:5px;max-width:100%;background:var(--sun);color:var(--ink);border:4px solid var(--ink);border-radius:999px;box-shadow:9px 9px 0 var(--ink);padding:clamp(15px,3vw,25px) clamp(20px,4.4vw,30px);font:900 clamp(21px,3.1vw,30px)/1.4 var(--display);text-decoration:none;text-wrap:balance;transition:translate .15s,box-shadow .15s}
.cta-btn::after{content:"";position:absolute;inset:-4px;border-radius:inherit;border:4px solid var(--lime);animation:ring 2.2s ease-out infinite;pointer-events:none}
.cta-btn:hover{translate:-3px -3px;box-shadow:12px 12px 0 var(--ink)}
.cta-btn img{flex:none;width:clamp(38px,4.2vw,50px);height:auto;animation:float 2.6s ease-in-out infinite}
.cta-btn span{min-width:0}

/* reveal: elements stay visible; they only settle into place */
.js .rv{transform:translateY(28px) scale(.98);transition:transform .7s cubic-bezier(.2,1.3,.4,1);transition-delay:var(--d,0s)}
.js .rv.in{transform:none}

@keyframes shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(1deg)}}
@keyframes wiggle{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg) scale(1.04)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes nudge{0%,100%{transform:translateX(-3px)}50%{transform:translateX(5px)}}
@keyframes nudge-down{0%,100%{transform:translateY(-2px) rotate(90deg)}50%{transform:translateY(4px) rotate(90deg)}}
@keyframes ring{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.18,1.5);opacity:0}}

@media (max-width:1100px){
  .hero-grid{grid-template-columns:1fr}
  .hero-sheet{max-width:560px}
  .spec-table-wrap{overflow:visible;background:transparent;border:0;border-radius:0;box-shadow:none}
  .spec-table,.spec-table tbody{display:grid;gap:20px}
  .spec-table colgroup,.spec-table thead{display:none}
  .spec-row{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:var(--hard)}
  .spec-row td{display:block;padding:18px 20px;border-top:2px solid rgba(7,43,25,.2);border-right:0}
  .spec-row td:first-child{border-top:0}
  .spec-row td::before{display:block}
  .spec-stage{width:fit-content}
  .spec-row td:first-child::before{display:none}
  .why-grid{grid-template-columns:1fr}
  .why-map{position:static}
}
@media (max-width:900px){
  .vs-head{display:none}
  .vs-row{grid-template-columns:minmax(0,1fr);gap:12px;background:#fff;border:3px solid var(--ink);border-radius:28px;box-shadow:var(--hard);padding:18px}
  .vs-label{margin-right:0;box-shadow:none}
  .vs-card::before{display:block}
  .vs-card.bad::before{content:"×  " attr(data-label);color:#B23A25}
  .vs-card.good::before{content:"○  " attr(data-label);color:var(--green-deep)}
  .vs-arrow{width:64px;justify-self:center;transform:rotate(90deg);margin-block:-4px}
  .route-grid,.faq-grid{grid-template-columns:1fr}
  .branch{display:none}
  .branch-mobile{display:block;width:min(calc(100% - 32px),300px);height:auto;margin:2px auto 4px}
  .only-m{display:none}
  .mobile-branch-note{display:block;width:fit-content;max-width:calc(100% - 24px);margin:0 auto 12px;padding:6px 16px;background:var(--ink);color:#fff;border-radius:999px;font:800 clamp(15px,3.8vw,17px)/1.5 var(--display);text-align:center;box-shadow:4px 4px 0 var(--sun)}
  .pair{grid-template-columns:1fr;gap:38px;justify-items:center;padding-top:14px}
  .pair .stage{position:relative;flex-direction:row;align-items:center;max-width:640px}
  .pair .stage::before{content:attr(data-route);position:absolute;z-index:1;left:24px;top:-19px;padding:4px 14px;background:var(--sun);color:var(--ink);border:3px solid var(--ink);border-radius:999px;font:900 14px/1.4 var(--display);box-shadow:3px 3px 0 var(--ink)}
}
@media (max-width:560px){
  .sec-head{align-items:stretch;text-align:left}
  .sec-head>div{align-items:stretch}
  .sec-title{flex-direction:row;align-items:center;justify-content:flex-start;gap:16px;text-align:left;font: 900 clamp(26px, 3.5vw, 46px) / 1.3 var(--display);}
  .sec-sub{margin-inline:0;text-align:left}
  .stage{padding:15px;gap:14px}
  .stage .si{width:64px}
  .why-list{gap:20px}
  .why-list::before{left:25px;top:34px;bottom:34px}
  .why-list li{grid-template-columns:50px minmax(0,1fr);gap:12px}
  .num{width:50px;font-size:1.5rem;box-shadow:2px 2px 0 var(--ink)}
  .why-card{grid-template-columns:44px minmax(0,1fr);gap:12px;min-height:0;padding:18px 16px;border-radius:20px}
  .why-card>img{width:44px;height:44px}
  .route,.faq-a{padding:22px}
  .faq-card h3{padding:18px 62px 18px 18px}
  .faq-card summary::after{right:14px;width:34px}
  .route{align-items:stretch;text-align:center}
  .route header{align-items:center;justify-content:center;text-align:center}
  .route header img{width:44px;height:44px}
  .path{flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;gap:6px}
  .path .chip{max-width:100%;text-align:center}
  .path .arr{color:var(--green-deep);line-height:1;transform:rotate(90deg);transform-origin:center;animation:nudge-down 1.4s ease-in-out infinite}
  .lead-pill{margin-inline:auto;margin-bottom: 15px;}
  .spec .sec-title>span:last-child{text-shadow:3px 3px 0 var(--ink)}
  .spec-row td{padding:16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* UCOM split-file adaptation */
section.section-host{overflow:visible;padding-block:clamp(84px,9vw,100px) clamp(140px,7vw,160px)}
.cl{color:inherit;text-decoration:none}
.delay-1{--d:.1s}
.delay-2{--d:.12s}
.load-error,.noscript-message{margin:0;padding:16px 20px;border:2px solid #c73246;border-radius:12px;background:#fff3f5;color:#a7192d;font-weight:700}
.noscript-message{max-width:920px;margin:24px auto}

/* 培訓保障：新版淺黃綠底色，台灣圖不加底框並與左欄等高 */
.why{background-color:var(--lime-soft);background-image:url(../images/dots-tile.svg);background-size:28px 28px}
.why-grid{align-items:stretch}
.why-map{position:relative;top:auto;display:flex;align-items:center;justify-content:center;min-height:100%;background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}
.tw-map{position:relative;width:100%;height:auto;max-width:580px;aspect-ratio:380/470;margin-inline:auto;overflow:visible}
.tw-map>img{width:100%;height:auto;max-width:none;transform:translateX(-9%)}
.city{position:absolute;transform:translateY(-50%);background:#fff;color:var(--ink);border:2.5px solid var(--ink);border-radius:999px;padding:2px 12px;font:900 16px/1.5 var(--display);white-space:nowrap}
.city.l{right:calc(100% - var(--x) + 14px)}
.city.r{left:calc(var(--x) + 14px)}
.city--taipei{--x:64.5%;top:14.6%}
.city--hsinchu{--x:48.6%;top:21.4%}
.city--taichung{--x:40.2%;top:40.2%}
.city--kaohsiung{--x:29.6%;top:79%}

/* 桌機首圖減量：保留動態構圖，只降低彩帶與格線密度感 */
@media (min-width:901px){
  .hero-confetti{opacity:.52}
  .hero::before{background-image:linear-gradient(rgba(255,255,255,.08) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(255,255,255,.08) 1.5px,transparent 1.5px)}



}

@media (max-width:1100px){
  .why-grid{grid-template-columns:1fr;align-items:start}
  .why-map{width:100%;max-width:520px;min-height:0;margin-inline:auto}
  .tw-map{width:100%;height:auto;max-width:480px}
  .tw-map>img{height:auto}
  .hero h1 { font: 900 clamp(42px, 5.2vw, 78px) / 1.2 var(--display); }

  .stage-name { font: 900 15px / 1.5 var(--display); letter-spacing: .01em; padding: 1px 10px; }
}
@media (max-width:560px){
  .city{font-size:14px;padding:1px 9px}
  .city.l{right:calc(100% - var(--x) + 8px)}
  .city.r{left:calc(var(--x) + 8px)}


  .cta-btn { text-wrap:unset; text-align: left; }
}
