:root{
  --ink:#0B1B2B; --muted:#5B6B78; --paper:#F4F8FB; --white:#FFFFFF; --line:#D5E0E8;
  --cyan:#00C8FF; --cyan-deep:#007FA3; --red:#FF1F1F; --red-deep:#A30000;
  --sans:"Sora","Noto Sans TC",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{display:block;max-width:100%}
.wrap{max-width:1160px;margin:0 auto;padding:0 32px}
@media (max-width:640px){.wrap{padding:0 16px}}
:focus-visible{outline:3px solid var(--cyan-deep);outline-offset:3px;border-radius:6px}

/* 導覽 */
.nav{display:flex;align-items:center;gap:24px;height:76px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;text-decoration:none;letter-spacing:-.01em}
.brand img{width:34px;height:34px}
.nav nav{display:flex;gap:28px;margin-left:auto}
.nav nav a{text-decoration:none;color:var(--muted);font-size:15px}
.nav nav a:hover{color:var(--ink)}
.nav .old{font-size:15px;color:var(--ink);text-decoration:none;font-weight:500;white-space:nowrap}
.nav .old:hover{text-decoration:underline}
@media (max-width:760px){.nav nav{display:none}.nav .old{margin-left:auto}}

.btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 26px;border-radius:999px;background:var(--cyan);color:var(--ink);font-weight:700;font-size:17px;text-decoration:none;white-space:nowrap;transition:background .15s}
.btn:hover{background:#33D4FF}
.btn-sm{height:42px;padding:0 20px;font-size:15px}

/* 開場 */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center;padding-top:48px;padding-bottom:96px}
@media (max-width:960px){.hero{grid-template-columns:minmax(0,1fr);gap:40px;padding-top:24px;padding-bottom:72px}}
.hero h1{margin:0;font-weight:900;font-size:clamp(48px,7.4vw,96px);line-height:1.08;letter-spacing:-.02em}
.hero h1 span{display:block}
.hero .lead{margin:28px 0 0;font-size:19px;color:var(--muted);max-width:30em}
.cta-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:36px}
.cta-row small{font-size:14px;color:var(--muted)}
.cta-row small a{color:var(--ink)}

/* 開場插圖：一次的載入動畫 */
.scene{width:100%;height:auto}
.scene text{font-family:var(--sans)}
.s-b1,.s-b2,.s-b3,.s-pin{transform-box:fill-box;opacity:0;animation:pop .45s ease-out forwards}
.s-b1{animation-delay:.3s}.s-b2{animation-delay:1.2s}.s-pin{animation-delay:3.1s}.s-b3{animation-delay:3.5s}
.s-ball{transform-box:fill-box;transform-origin:center;animation:roll 1.2s cubic-bezier(.3,.7,.3,1) 1.9s both}
.s-ring{stroke-dasharray:260;stroke-dashoffset:260;animation:draw .6s ease-out 3.1s forwards}
@keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes roll{from{transform:translateX(-190px) rotate(-360deg)}to{transform:none}}
@keyframes draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){
  .s-b1,.s-b2,.s-b3,.s-pin{animation:none;opacity:1}
  .s-ball{transform-box:fill-box;transform-origin:center;animation:none}.s-ring{animation:none;stroke-dashoffset:0}
  html{scroll-behavior:auto}
}

/* 為什麼需要 */
.why{background:var(--ink);color:var(--white);padding:112px 0}
.why h2{text-wrap:balance;margin:0;font-weight:900;font-size:clamp(32px,4.6vw,56px);line-height:1.2;letter-spacing:-.01em;max-width:15em}
.why p{margin:28px 0 0;font-size:19px;color:#B7C6D1;max-width:36em}
.why ul{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;border-top:1px solid #24394D;padding-top:32px}
.why li{font-size:18px;line-height:1.6}
.why li b{display:block;color:var(--cyan);font-size:22px;margin-bottom:6px}
@media (max-width:760px){.why{padding:80px 0}.why ul{grid-template-columns:minmax(0,1fr);gap:20px}}

/* 三個角色 */
.role{padding-top:120px}
.role-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.role.flip .role-art{order:-1}
@media (max-width:900px){.role{padding-top:88px}.role-in{grid-template-columns:minmax(0,1fr);gap:32px}.role.flip .role-art{order:0}}
.who{font-size:16px;font-weight:700;color:var(--cyan-deep)}
.role h2{text-wrap:balance;margin:10px 0 0;font-weight:900;font-size:clamp(30px,3.8vw,46px);line-height:1.25;letter-spacing:-.01em}
.ba{margin-top:32px;display:grid;gap:18px}
.ba div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;align-items:baseline}
.ba dt,.ba .k{font-weight:700;font-size:15px;color:var(--muted)}
.ba .after .k{color:var(--ink)}
.ba .after p{font-weight:500;color:var(--ink)}
.ba p{margin:0;color:var(--muted)}
.ba .after{padding:18px 20px;border-radius:16px;background:var(--white);grid-template-columns:72px minmax(0,1fr)}
@media (max-width:640px){.ba div,.ba .after{grid-template-columns:minmax(0,1fr);gap:4px}}
.role-art{background:var(--white);border-radius:28px;padding:28px}
.role-art svg text{font-family:var(--sans)}

/* 信任 */
.trust{padding-top:128px}
.trust-in{display:grid;grid-template-columns:120px minmax(0,1fr);gap:40px;align-items:start;max-width:880px}
.trust h2{text-wrap:balance;margin:0;font-weight:900;font-size:clamp(28px,3.4vw,40px);line-height:1.3}
.trust p{margin:18px 0 0;color:var(--muted);font-size:18px}
@media (max-width:640px){.trust{padding-top:88px}.trust-in{grid-template-columns:minmax(0,1fr);gap:20px}}

/* 常見問題 */
.faq{padding-top:112px}
.faq h2{margin:0 0 24px;font-weight:900;font-size:clamp(28px,3.4vw,40px)}
.faq details{border-top:1px solid var(--line);max-width:880px}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font-weight:700;font-size:19px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:12px;height:12px;border-right:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{margin:0 0 24px;color:var(--muted);max-width:40em}
@media (prefers-reduced-motion:reduce){.faq summary::after{transition:none}}

/* 結尾 */
.end{margin-top:128px;background:var(--cyan);color:var(--ink);padding:104px 0}
.end h2{text-wrap:balance;margin:0;font-weight:900;font-size:clamp(36px,5.4vw,68px);line-height:1.12;letter-spacing:-.02em}
.end p{margin:24px 0 0;font-size:19px;max-width:32em}
.end .btn{background:var(--ink);color:var(--white)}
.end .btn:hover{background:#1C3348}
.end .cta-row small{color:var(--ink)}
@media (max-width:640px){.end{margin-top:88px;padding:72px 0}}
.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:32px;padding-bottom:44px;color:var(--muted);font-size:14px}
.foot .brand{font-size:16px}.foot .brand img{width:26px;height:26px}
