:root{color-scheme:light;--ink:#1b1a17;--ink-soft:#55504a;--ink-faint:#7d766d;--paper:#fbfaf7;--surface:#ffffff;--surface-sunken:#f3f1ec;--line:#e3dfd6;--line-strong:#cec8bb;--accent:#2f5d50;--accent-strong:#234439;--accent-wash:#e8f0ec;--highlight:#9a4a25;--radius:10px;--radius-lg:16px;--measure:68ch;--step-0:1rem;--step-1:1.2rem;--step-2:1.45rem;--step-3:1.85rem;--step-4:clamp(2rem,1.3rem + 2.6vw,3rem);--font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--ink:#f1ede6;--ink-soft:#c2bbb0;--ink-faint:#948c81;--paper:#16181a;--surface:#1e2124;--surface-sunken:#24282b;--line:#333739;--line-strong:#474c4f;--accent:#8fc7b3;--accent-strong:#b2ddcc;--accent-wash:#22312c;--highlight:#e0a17d}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.65}h1,h2,h3{line-height:1.25;text-wrap:balance;margin:0 0 .5em}h1{font-size:var(--step-4);letter-spacing:-.015em}h2{font-size:var(--step-3);letter-spacing:-.01em}h3{font-size:var(--step-2)}li,p{text-wrap:pretty}a{color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent-strong)}:focus-visible{outline:3px solid var(--highlight);outline-offset:3px;border-radius:4px}.skip-link{position:absolute;left:.5rem;top:-4rem;z-index:10;padding:.6rem 1rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);transition:top .12s ease}.skip-link:focus{top:.5rem}.shell{width:100%;max-width:68rem;margin:0 auto;padding-inline:1.25rem}.site-header{border-bottom:1px solid var(--line);background:var(--surface)}.site-header__inner{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding-block:1rem}.brand{font-weight:650;font-size:var(--step-1);color:var(--ink);text-decoration:none}.site-nav{display:flex;flex-wrap:wrap;gap:1.25rem;margin-left:auto}.site-nav a{color:var(--ink-soft);text-decoration:none;font-size:.95rem}.site-nav a:hover{color:var(--ink);text-decoration:underline}main{display:block;padding-block:2.5rem 4rem}.site-footer{border-top:1px solid var(--line);background:var(--surface);color:var(--ink-soft);font-size:.9rem}.site-footer__inner{padding-block:2rem;display:grid;grid-gap:.75rem;gap:.75rem}.stack>*+*{margin-top:var(--stack-gap,1rem)}.section+.section{margin-top:3.5rem}.eyebrow{font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .6rem}.lede{font-size:var(--step-1);color:var(--ink-soft)}.lede,.prose{max-width:var(--measure)}.prose h2{margin-top:1.8em}.prose blockquote{margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;border-left:3px solid var(--accent);color:var(--ink-soft);font-style:italic}.card-grid{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));list-style:none;margin:0;padding:0}.card{display:flex;flex-direction:column;gap:.6rem;height:100%;padding:1.35rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.card h3{margin:0;font-size:var(--step-1)}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{text-decoration:underline}.card__meta{color:var(--ink-faint);font-size:.88rem;margin:0}.card__body{color:var(--ink-soft);margin:0;flex:1 1}.card__price{font-weight:650;color:var(--ink)}.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.6rem}.price__amount{font-size:var(--step-3);font-weight:680;letter-spacing:-.01em}.price__list{color:var(--ink-faint);text-decoration:line-through}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border:1px solid transparent;border-radius:var(--radius);background:var(--accent);color:#ffffff;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}@media (prefers-color-scheme:dark){.button{color:#10201b}}.button:hover{background:var(--accent-strong);color:#ffffff}@media (prefers-color-scheme:dark){.button:hover{color:#10201b}}.button--quiet{background:transparent;color:var(--accent);border-color:var(--line-strong)}.button--quiet:hover{background:var(--accent-wash);color:var(--accent-strong)}.button[aria-disabled=true]{cursor:default}.purchase{display:grid;grid-gap:1rem;gap:1rem;padding:1.5rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg)}.purchase__note{margin:0;font-size:.88rem;color:var(--ink-faint)}.purchase__note:empty{display:none}@media (min-width:60rem){.purchase{position:-webkit-sticky;position:sticky;top:1.5rem}}.course-layout{display:grid;grid-gap:2.5rem;gap:2.5rem;align-items:start;margin-top:3.5rem}@media (min-width:60rem){.course-layout{grid-template-columns:minmax(0,1fr) 21rem;gap:3rem}.course-layout>.course-body{order:1}.course-layout>.purchase{order:2}}.syllabus{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.syllabus li+li{border-top:1px solid var(--line)}.lesson{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;padding:1rem 1.25rem;background:var(--surface)}.lesson--locked{background:var(--surface-sunken)}.lesson__index{color:var(--ink-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:2ch}.lesson__title{font-weight:600;flex:1 1 14rem}.lesson__summary{flex:1 1 100%;margin:0;color:var(--ink-soft);font-size:.92rem;padding-left:2.75rem}.tag{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.tag--preview{background:var(--accent-wash);color:var(--accent-strong)}.tag--locked{background:transparent;border:1px solid var(--line-strong);color:var(--ink-faint)}.checklist{list-style:none;margin:0;padding:0;display:grid;grid-gap:.6rem;gap:.6rem;max-width:var(--measure)}.checklist li{padding-left:1.6rem;position:relative}.checklist li:before{content:"";position:absolute;left:0;top:.62em;width:.55rem;height:.55rem;border-radius:2px;background:var(--accent)}.checklist--muted li:before{background:var(--line-strong)}.two-up{display:grid;grid-gap:2rem;gap:2rem}@media (min-width:46rem){.two-up{grid-template-columns:1fr 1fr}}.faq{display:grid;grid-gap:0;gap:0;max-width:var(--measure);border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{padding:1rem 0;cursor:pointer;font-weight:600}.faq details p{margin:0 0 1rem;color:var(--ink-soft)}.policy{display:grid;grid-gap:1.25rem;gap:1.25rem;max-width:var(--measure)}.policy dt{font-weight:650;margin-bottom:.2rem}.policy dd{margin:0;color:var(--ink-soft)}.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:0;padding:0}.chip{display:inline-block;padding:.4rem .9rem;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-soft);text-decoration:none;font-size:.9rem}.chip:hover,.chip[aria-current=true]{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-strong)}.breadcrumb{font-size:.9rem;color:var(--ink-faint);margin-bottom:1.25rem}.breadcrumb a,.notice{color:var(--ink-soft)}.notice{border:1px solid var(--line-strong);border-left:3px solid var(--accent);background:var(--surface);max-width:var(--measure)}.empty{color:var(--ink-soft)}.center-page{max-width:34rem;margin:3rem auto;text-align:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.site-nav__form{display:inline}.site-nav__button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}.site-nav__button:hover{color:var(--accent)}.notice{border:1px solid var(--line);border-left-width:4px;border-radius:var(--radius);padding:1rem 1.25rem}.notice--positive{border-left-color:var(--accent)}.notice>*+*{margin-top:.75rem}.order-summary{border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.order-summary__lines{display:grid;grid-template-columns:auto 1fr;grid-gap:.4rem 1.5rem;gap:.4rem 1.5rem;margin:1rem 0 0}.order-summary__lines dt{font-weight:600;color:var(--ink-faint)}.order-summary__lines dd{margin:0}.order-summary__total{font-size:var(--step-1);font-weight:700}.order-lines{list-style:none;margin:1rem 0 0;padding:0}.order-lines li{display:grid;grid-gap:.15rem;gap:.15rem;padding:.75rem 0;border-top:1px solid var(--line)}.order-lines__title{font-weight:600}.note,.order-lines__meta{color:var(--ink-faint);font-size:.9rem}.invoice-fields{border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin:0}.invoice-fields legend{font-weight:700;padding:0 .4rem}.invoice-fields__choices{display:grid;grid-gap:.5rem;gap:.5rem;margin:1rem 0}.invoice-fields__choices label{display:flex;align-items:center;gap:.6rem;min-height:2.75rem;cursor:pointer}.invoice-fields__detail{display:grid;grid-gap:.3rem;gap:.3rem;padding-top:.75rem;border-top:1px solid var(--line)}.invoice-fields__detail label{font-weight:600}.invoice-fields__detail input[type=text]{font:inherit;padding:.6rem .7rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface,#fff);color:inherit;max-width:24rem;width:100%}.invoice-fields__detail input[type=text]:focus-visible{outline:2px solid currentColor;outline-offset:2px}@supports selector(:has(*)){.invoice-fields__detail{display:none}.invoice-fields:has(#invoice-kind-barcode:checked) [data-for=mobile_barcode],.invoice-fields:has(#invoice-kind-business:checked) [data-for=business],.invoice-fields:has(#invoice-kind-donation:checked) [data-for=donation]{display:grid}}.form-error{border-left:3px solid var(--danger,#b3261e);padding-left:.75rem;font-weight:600}.lesson-nav{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1rem}