:root{
  --ink:#16325c;        /* 制服藏青：品牌主色、文字 */
  --ink-2:#4a5f7d;      /* 次要文字 */
  --paper:#ffffff;      /* 試卷白 */
  --desk:#f1f5f9;       /* 桌面冷灰 */
  --rose:#e59aa8;       /* 答案卡紅框 */
  --rose-tint:#fdf1f3;
  --pen:#c8102e;        /* 老師紅筆 */
  --teal:#0b6b60;       /* 監視器綠：主要按鈕、正解 */
  --teal-tint:#e5f3f0;
  --lead:#2a2e35;       /* 2B 鉛筆 */
  --line:#d8e1ea;
  --kai:"LXGW WenKai TC","BiauKai","Kaiti TC","DFKai-SB","標楷體",serif;
  --sans:"PingFang TC","Noto Sans TC","Microsoft JhengHei","Heiti TC",system-ui,sans-serif;
  --wrap:1160px;
  --gut:16px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
.sheet{position:relative;background:var(--paper);border:1.5px solid var(--rose);border-radius:6px;box-shadow:0 1px 0 var(--rose),0 18px 40px -18px rgba(22,50,92,.35);font-family:var(--kai);padding:0 0 18px;transform-origin:50% 0}
.sheet-head{position:relative;display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--rose-tint);border-bottom:1.5px solid var(--rose);padding:10px 16px;font-family:var(--sans);font-size:14px;color:#9b3b4c;border-radius:5px 5px 0 0}
.sheet-head b{font-weight:700}
.sheet-body{position:relative;padding:16px 16px 0}
.q{font-size:20px;line-height:1.7;color:var(--lead)}
.q .qno{font-family:var(--sans);font-weight:900;color:var(--pen);margin-right:4px}
.opts{border:0;margin:14px 0 0;padding:0}
.opt{position:relative;display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:start;padding:10px 8px;border-radius:6px;cursor:pointer;transition:background .2s}
.opt:hover{background:#f8fafc}
.opt + .opt{border-top:1px dashed #f0c3cc;border-radius:0}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.bubble{position:relative;width:34px;height:34px;border-radius:50%;border:2px solid var(--rose);display:grid;place-items:center;font-family:var(--sans);font-weight:700;color:#b04456;font-size:16px;margin-top:2px;transition:background .25s,color .25s,border-color .25s}
.opt input:focus-visible + .bubble{outline:3px solid #f2b705;outline-offset:3px}
.opt input:checked + .bubble{background:var(--lead);border-color:var(--lead);color:#fff;animation:fill .35s var(--ease)}
@keyframes fill{0%{transform:scale(.7)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.opt-text{font-size:18px;line-height:1.65;color:var(--lead)}
.mark{position:absolute;left:-1px;top:3px;width:48px;height:42px;overflow:visible;pointer-events:none}
.mark path{fill:none;stroke:var(--pen);stroke-width:3;stroke-linecap:round;stroke-dasharray:160;stroke-dashoffset:160}
.why{grid-column:2;display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.why > span{overflow:hidden;display:block}
.why .w{display:block;color:var(--pen);font-size:17px;line-height:1.6;padding-top:6px;opacity:0;transform:translateY(-6px);transition:opacity .4s ease,transform .4s var(--ease)}
.why b{font-family:var(--sans);font-size:13px;font-weight:700;border:1.5px solid currentColor;border-radius:4px;padding:0 5px;margin-right:6px;vertical-align:2px}
.sheet.done .opt{cursor:default}
.sheet.done .why{grid-template-rows:1fr}
.sheet.done .why .w{display:block;opacity:1;transform:none}
.sheet.done .opt.is-right{background:var(--teal-tint)}
.sheet.done .opt.is-right .why .w{display:block;color:var(--teal)}
.sheet.done .mark path{animation:pen .55s var(--ease) forwards;animation-delay:var(--d,0s)}
@keyframes pen{to{stroke-dashoffset:0}}
.sheet.done .opt.is-right .mark path{stroke:var(--teal)}
.verdict{min-height:0;font-family:var(--sans);font-size:15px;font-weight:700;padding:0 16px;margin-top:6px;position:relative}
.verdict:not(:empty){padding-top:6px}
.sheet-foot{position:relative;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 16px 0;font-family:var(--sans);font-size:14px;color:var(--ink-2)}
.linkbtn{background:none;border:0;padding:4px 0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.reveal-fig{position:relative;display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease);margin:0 16px}
.reveal-fig > div{overflow:hidden}
.sheet.done .reveal-fig{grid-template-rows:1fr}
.fig-inner{margin-top:14px;border-top:1.5px dashed var(--rose);padding-top:14px;font-family:var(--sans);opacity:0;transform:translateY(16px) scale(.98);transition:opacity .5s ease .35s,transform .6s var(--ease) .35s}
.sheet.done .fig-inner{opacity:1;transform:none}
.fig-inner img{border-radius:8px;border:1px solid var(--line);width:100%}
.fig-inner .cap{font-size:14px;color:var(--ink-2);margin-top:8px}
.mnemonic{margin-top:10px;font-family:var(--kai);font-size:20px;font-weight:700;color:var(--ink)}
.mnemonic mark{background:linear-gradient(transparent 55%,#ffe36b 55%);color:inherit;padding:0 2px;background-size:0 100%;background-repeat:no-repeat;transition:background-size .8s var(--ease) .9s}
.sheet.done .mnemonic mark{background-size:100% 100%}
.fig-inner .btn{margin-top:12px;width:100%}


:root{--kai:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--desk);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7}a{color:var(--ink)}[hidden]{display:none!important}
header{position:relative;max-width:none;margin:0;padding:20px max(20px,calc((100vw - 1160px)/2));background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;flex-wrap:wrap}header .brand{margin-right:auto;color:var(--ink);font-size:20px;font-weight:800;text-decoration:none}header .mark{position:static;width:auto;height:auto;background:none;color:var(--pen)}header a{font-size:14px}header nav{display:flex;gap:12px}main{max-width:1160px;margin:auto;padding:0 24px}section{margin:0}.purchase-container{max-width:1160px;margin:12px auto;text-align:right;padding:0 24px}.purchase-access{display:inline-block;background:var(--teal);color:white;border-radius:8px;padding:10px 18px;text-decoration:none;font-weight:700}
.hero{display:grid;grid-template-columns:1fr;gap:32px;background:none;padding:40px 0 64px;align-items:start;position:relative;overflow:visible;min-height:0}.hero-copy{padding:0;position:relative}.eyebrow{font-size:12px;letter-spacing:.1em;font-weight:800;color:var(--pen);margin:0 0 16px}.hero h1{font-size:clamp(34px,4vw,52px);line-height:1.12;letter-spacing:-.035em;color:var(--ink);margin:0 0 20px;max-width:13ch}.hero h1 em{font-style:normal;color:var(--ink)}.hero .lead{font-size:18px;color:var(--ink-2);line-height:1.75;max-width:40em}.hero-copy .study-entry{display:block;margin:20px 0;font-size:14px}.micro,.route-note{font-size:13px;line-height:1.65;color:var(--ink-2)}.hero .micro{margin-top:18px}.hero .route-note{margin-top:16px}
button.primary,a.button{display:inline-flex;justify-content:center;background:var(--teal);color:white;box-shadow:0 3px 0 #06463f;border:0;border-radius:8px;padding:14px 20px;font-size:16px;font-weight:700;text-decoration:none;cursor:pointer}.sheet{min-width:0;max-width:100%;background:white}.sheet .mark{position:absolute;left:-1px;top:3px;background:none;border-radius:0;color:inherit}.sheet .q{margin:0;font-size:18px;line-height:1.65}.sheet .qno{font-size:12px;display:block;letter-spacing:.08em}.sheet .opt-text{font-size:16px}.sheet .why .w{font-size:15px}.sheet .sheet-head{font-size:12px;letter-spacing:.06em}.sheet .verdict{font-size:14px}.sheet legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.sheet .opt{margin:0;background:none;color:inherit;box-shadow:none}.sheet .bubble{flex:none}.sheet .opt input{position:absolute;width:1px;height:1px;opacity:0}.sheet .why{font-weight:400}.sheet .sheet-foot{gap:12px}.sheet .linkbtn{font-size:13px;box-shadow:none;border-radius:0}.sheet .sample-hint{padding:14px 16px 0;margin:0;color:var(--ink-2);font:12px/1.6 var(--sans)}
.steps{display:grid;grid-template-columns:1fr;gap:16px;padding:0 0 52px}.steps article{background:white;border:1px solid var(--line);border-top:3px solid var(--rose);border-radius:8px;padding:24px}.steps h2{font-size:22px;line-height:1.25}.steps article>span{color:var(--pen);font-size:12px;font-weight:800}.steps p{font-size:15px;color:var(--ink-2)}.limitations,.panel,.plans,.guides,.search-faq,.email-box{background:white;border:1px solid var(--line);border-radius:10px;padding:28px;margin:0 0 24px;max-width:none}.limitations h2,.panel h2,.plans h2,.guides h2,.search-faq h2{color:var(--ink);font-size:26px;line-height:1.3}.limitations p,.panel p{color:var(--ink-2)}.search-faq.wrap{width:100%}.search-faq details,.panel details{border-bottom:1px solid var(--line);padding:14px 0}.search-faq summary,.panel summary{cursor:pointer;font-weight:600}.source{font-size:12px}footer{max-width:none;background:var(--ink);color:#d5e0ee;margin:48px 0 0;padding:36px max(24px,calc((100vw - 1112px)/2));border:0;font-size:13px;line-height:1.8}footer a{color:white}footer strong{font-size:20px;color:white}footer p,footer .access-terms{color:#d5e0ee}footer a,footer p a{color:white}footer .primary{background:var(--teal);color:white}.access-terms{max-width:80em}h2,h3{letter-spacing:-.02em}p{margin:12px 0}.plans{display:grid;gap:24px}.plan-card{background:var(--rose-tint);border:1px solid var(--rose);border-radius:8px;padding:24px}.exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.exam-card{display:grid;padding:16px;border:1px solid var(--line);border-radius:8px;text-decoration:none}.exam-card span{font-size:13px;color:var(--teal)}.cmp-wrap{overflow:hidden;border:1px solid var(--line);border-radius:8px;margin:24px 0 48px;background:white}table.cmp{border-collapse:collapse;width:100%;table-layout:fixed}.cmp th,.cmp td{padding:20px;text-align:left;vertical-align:top;overflow-wrap:anywhere}.cmp th{background:var(--ink);color:white;font-size:16px}.cmp td{font-size:15px;color:var(--ink-2)}.cmp th+th,.cmp td+td{border-left:1px solid var(--line);background:var(--teal-tint);color:var(--ink)}
:focus-visible{outline:3px solid #d89d00;outline-offset:4px}.sheet .mark path{stroke-width:3}.ecg{position:absolute;bottom:0;width:100%;height:40px;pointer-events:none}.ecg path{fill:none;stroke:#b7dcd6;stroke-width:2}.ecg .trace{stroke:var(--teal);stroke-dasharray:1800;stroke-dashoffset:1800}
@media(min-width:1000px){.hero{grid-template-columns:.95fr 1.05fr;gap:60px;padding-top:48px}.hero-copy{padding-top:30px}.steps{grid-template-columns:repeat(3,1fr)}.plans{grid-template-columns:1fr 1fr}.exam-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){main{padding:0 18px}header{padding:16px 18px;gap:12px}header .brand{flex-basis:100%;font-size:19px}.purchase-container{text-align:left;padding:0 18px}.hero{padding-top:26px;gap:26px}.hero h1{max-width:18ch}.hero .lead{font-size:16px}.limitations,.panel,.plans,.guides,.search-faq,.email-box{padding:20px}.cmp th,.cmp td{padding:14px 12px;font-size:13px}.controls{flex-wrap:wrap}.controls>div{min-width:0}.sheet-body{padding:14px 12px 0}.sheet .opt{grid-template-columns:34px minmax(0,1fr);gap:8px;padding:10px 0}.sheet .why{grid-column:2}.sheet .bubble{width:30px;height:30px}.sheet .mark{width:40px}.sheet .opt-text{font-size:15px}.sheet .q{font-size:17px}}
@media(prefers-reduced-motion:no-preference){.js .rise{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .8s var(--ease)}.js .rise.in{opacity:1;transform:none}.js .hero .sheet{animation:sheetIn 1s var(--ease) .1s both}.js .ecg .trace{animation:trace 2.6s ease-in-out .3s forwards}}
@keyframes sheetIn{from{opacity:0;transform:translateY(30px) rotate(1.4deg)}to{opacity:1;transform:none}}@keyframes trace{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ecg .trace,.sheet.done .mark path{stroke-dashoffset:0!important}}
