:root{--scheme: light;color-scheme:light;--background: oklch(.84 .045 220);--foreground: oklch(.24 .03 245);--muted-foreground: oklch(.36 .035 240);--card: oklch(.95 .014 220);--primary: oklch(.51 .19 27);--primary-foreground: oklch(.99 .004 220);--border: oklch(.24 .03 245 / .16);--input: oklch(.5 .03 240);--ring: oklch(.51 .19 27);--board: oklch(.975 .006 215);--board-ink: oklch(.24 .03 245);--board-blue: oklch(.43 .15 258);--board-red: oklch(.51 .19 27);--board-ghost: oklch(.88 .012 220);--alu: oklch(.78 .012 230);--alu-dark: oklch(.6 .014 230);--wall-deep: oklch(.74 .05 222);--chair: oklch(.42 .06 235);--note: oklch(.9 .1 95);--note-fg: oklch(.24 .03 245);--cap-black: oklch(.28 .02 245);--cap-blue: oklch(.48 .16 258);--shadow-color: oklch(.4 .06 230 / .22)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--scheme: dark;color-scheme:dark;--background: oklch(.25 .045 228);--foreground: oklch(.95 .01 220);--muted-foreground: oklch(.82 .02 220);--card: oklch(.3 .042 228);--primary: oklch(.73 .15 28);--primary-foreground: oklch(.2 .04 28);--border: oklch(.95 .01 220 / .18);--input: oklch(.66 .03 225);--ring: oklch(.73 .15 28);--board: oklch(.33 .035 222);--board-ink: oklch(.96 .008 220);--board-blue: oklch(.82 .09 238);--board-red: oklch(.76 .14 28);--board-ghost: oklch(.38 .035 222);--alu: oklch(.52 .016 230);--alu-dark: oklch(.42 .016 230);--wall-deep: oklch(.3 .045 228);--chair: oklch(.35 .05 232);--note: oklch(.37 .065 92);--note-fg: oklch(.96 .02 95);--cap-black: oklch(.16 .02 245);--cap-blue: oklch(.6 .14 258);--shadow-color: oklch(0 0 0 / .45)}}:root[data-theme=dark]{--scheme: dark;color-scheme:dark;--background: oklch(.25 .045 228);--foreground: oklch(.95 .01 220);--muted-foreground: oklch(.82 .02 220);--card: oklch(.3 .042 228);--primary: oklch(.73 .15 28);--primary-foreground: oklch(.2 .04 28);--border: oklch(.95 .01 220 / .18);--input: oklch(.66 .03 225);--ring: oklch(.73 .15 28);--board: oklch(.33 .035 222);--board-ink: oklch(.96 .008 220);--board-blue: oklch(.82 .09 238);--board-red: oklch(.76 .14 28);--board-ghost: oklch(.38 .035 222);--alu: oklch(.52 .016 230);--alu-dark: oklch(.42 .016 230);--wall-deep: oklch(.3 .045 228);--chair: oklch(.35 .05 232);--note: oklch(.37 .065 92);--note-fg: oklch(.96 .02 95);--cap-black: oklch(.16 .02 245);--cap-blue: oklch(.6 .14 258);--shadow-color: oklch(0 0 0 / .45)}:root{--primary-hover: oklch(.45 .19 27)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--primary-hover: oklch(.79 .12 28)}}:root[data-theme=dark]{--primary-hover: oklch(.79 .12 28)}:root{--font-hand: "Iansui", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Segoe UI", sans-serif;--r-s: 4px;--r-m: 12px;--wrap: 1180px;--dur-press: .11s;--dur-hover: .15s;--dur-pop: .2s;--dur-enter: .36s;--ease-out: cubic-bezier(.2, 0, 0, 1);--shadow: 0 1px 1px var(--shadow-color), 0 6px 14px -4px var(--shadow-color), 0 18px 36px -18px var(--shadow-color)}@media(prefers-reduced-motion:reduce){:root{--dur-pop: .15s;--dur-enter: .15s}}:root:lang(zh-Hant){text-autospace:normal;line-break:strict;font-synthesis-style:none}h1,h2,h3{text-wrap:balance;line-height:1.25;letter-spacing:0}pre,code,kbd,samp,.mono{font-family:ui-monospace,monospace;font-variant-ligatures:none;letter-spacing:0;text-spacing-trim:space-all;text-autospace:no-autospace}*,*:before,*:after{box-sizing:border-box}html{background:var(--background);-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-padding-top:76px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-body);font-size:1.0625rem;line-height:1.75;accent-color:var(--primary)}::selection{background:color-mix(in oklch,var(--primary) 26%,transparent)}img,svg{display:block;max-width:100%}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}button,a,[role=button],label{touch-action:manipulation}button{font:inherit;-webkit-user-select:none;user-select:none}input,select,textarea{font:inherit;font-size:max(16px,1rem)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}h1,h2,h3,.hand{font-family:var(--font-hand);font-weight:400;font-synthesis-weight:none}p{margin:0}.num,td,.price b{font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.keep{white-space:nowrap}:root{--gutter: max(clamp(1rem, .5rem + 3vw, 3rem), env(safe-area-inset-left, 0px) + .5rem, env(safe-area-inset-right, 0px) + .5rem)}.wrap{width:min(100% - 2 * var(--gutter),var(--wrap));margin-inline:auto}.skip{position:absolute;left:12px;top:-60px;z-index:30;padding:10px 16px;background:var(--card);color:var(--foreground);border:1px solid var(--input);border-radius:var(--r-s);font-weight:700}.skip:focus{top:12px}.site-header{position:sticky;top:0;z-index:20;background:var(--background);border-bottom:1px solid transparent}.site-header.is-stuck{border-bottom-color:var(--border)}.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-hand);font-size:1.5rem;text-decoration:none;line-height:1}.brand-mark{width:26px;height:20px;flex:none;border:2px solid var(--alu-dark);border-radius:3px;background:var(--board);position:relative}.brand-mark:after{content:"";position:absolute;left:4px;right:4px;top:7px;height:2px;background:var(--board-red);border-radius:2px}.nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;border-radius:var(--r-s);border:1px solid transparent;font-size:1rem}.nav a.nav-cta{background:var(--primary);color:var(--primary-foreground);margin-left:6px}@media(hover:hover)and (pointer:fine){.nav a:hover{background:color-mix(in oklch,var(--foreground) 8%,transparent)}.nav a.nav-cta:hover{background:var(--primary-hover)}}.nav-toggle{display:none}.nav .nav-mobile{display:none;background:var(--primary);color:var(--primary-foreground);text-decoration:none;min-height:44px;align-items:center;padding:0 16px;border-radius:var(--r-s);border:1px solid transparent}@media(max-width:860px){.nav ul{display:none}.nav .nav-mobile{display:inline-flex}}@media(hover:hover)and (pointer:fine){.nav a.nav-mobile:hover{background:var(--primary-hover)}}@media(max-height:500px){.site-header{position:static}}.hero{position:relative}.scene{position:relative;height:clamp(330px,55svh,540px);overflow:hidden}.scene .clock{position:absolute;right:7%;top:8%;width:clamp(52px,5.5vw,76px);height:auto}.scene .chairs{position:absolute;left:50%;bottom:0;translate:-50% 0;width:min(100%,1180px);height:auto}.board-wrap{position:absolute;left:50%;top:7%;translate:-50% 0;width:min(68vw,880px)}.board{position:relative;aspect-ratio:880 / 360;background:var(--board);border:10px solid var(--alu);border-radius:6px;box-shadow:var(--shadow),inset 0 0 0 1px var(--alu-dark);container-type:inline-size;color:var(--board-ink)}.board:before{content:"";position:absolute;inset:14% 8% 22% 46%;background:radial-gradient(60% 50% at 40% 50%,var(--board-ghost),transparent 70%);opacity:.55;pointer-events:none}.board .magnet{position:absolute;top:-16px;width:22px;height:22px;border-radius:50%}.board .magnet.m1{left:9%;background:var(--board-red)}.board .magnet.m2{right:11%;background:var(--cap-blue)}.board .chapter{position:absolute;left:5%;top:7%;font-family:var(--font-hand);font-size:clamp(14px,3.1cqi,26px);color:var(--board-blue);line-height:1.2}.board .problem{position:absolute;left:5%;top:24%;right:5%;font-family:var(--font-hand);line-height:1.15}.board .ask{display:block;font-size:clamp(17px,4.2cqi,36px)}.board .eq{display:block;font-size:clamp(30px,9.6cqi,84px);margin-top:.12em;letter-spacing:.02em;white-space:nowrap}.board .eq sup{font-size:.5em;vertical-align:.9em;line-height:0}.mark-box{position:relative;display:inline-block;padding:0 .12em}.mark-box>svg{position:absolute;inset:-.08em -.1em -.04em;width:calc(100% + .2em);height:calc(100% + .12em);overflow:visible;pointer-events:none}.mark-box>svg path{fill:none;stroke:var(--board-red);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.board .hint{position:absolute;left:31%;bottom:10%;font-family:var(--font-hand);color:var(--board-red);font-size:clamp(14px,3.1cqi,26px);line-height:1.2}.board .next{position:absolute;right:4%;bottom:8%;text-align:right;font-family:var(--font-hand);color:var(--board-blue);font-size:clamp(14px,3.1cqi,26px);line-height:1.3}.board .next b{font-weight:400;display:block;font-size:.8em}.tray{display:block;width:92%;margin:-2px auto 0;height:auto}.strip{padding:clamp(18px,3.2vh,34px) 0 clamp(28px,5vh,56px)}.strip-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:12px 48px;align-items:end}.strip h1{margin:0;font-size:clamp(2.3rem,1.1rem + 4vw,4.6rem);line-height:1.12;grid-column:1}.strip h1 .num{font-family:var(--font-hand)}.strip .lead{grid-column:2;max-width:30em;color:var(--foreground)}.actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:8px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:var(--r-s);border:1px solid transparent;background:var(--primary);color:var(--primary-foreground);font-weight:700;text-decoration:none;cursor:pointer;transition:translate var(--dur-press) var(--ease-out),background-color var(--dur-hover) var(--ease-out)}.btn:active{translate:0 1px}@media(hover:hover)and (pointer:fine){.btn:hover{background:var(--primary-hover)}}.btn[disabled]{opacity:.7;cursor:progress}.text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:700}@media(max-width:860px){.strip-in{grid-template-columns:minmax(0,1fr)}.strip .lead{grid-column:1}}@media(max-width:640px){.scene{height:calc((100vw - 28px)*.7045 + 90px);max-height:470px}.board-wrap{width:calc(100% - 28px);top:24px}.board{border-width:7px;aspect-ratio:880 / 620}.board .chapter{font-size:4.4cqi}.board .problem{top:19%}.board .ask{font-size:5.6cqi}.board .eq{font-size:12.6cqi}.board .hint{left:6%;bottom:7%;font-size:4.6cqi}.board .next{font-size:4.6cqi}.scene .clock{display:none}}section{position:relative}.sec{padding-block:clamp(64px,9vw,120px)}.sec-head{display:grid;gap:12px;margin-bottom:clamp(28px,4vw,48px);max-width:44rem}.sec h2{margin:0;font-size:clamp(2rem,1.3rem + 2.6vw,3.2rem)}.sec-head p{color:var(--muted-foreground)}@media(prefers-reduced-motion:no-preference){.js .reveal:not(.pre){transition:opacity var(--dur-enter) var(--ease-out),translate var(--dur-enter) var(--ease-out)}.js .reveal.pre{opacity:.2;translate:0 20px}}.board-band{background:var(--board);color:var(--board-ink);border-block:14px solid var(--alu);box-shadow:inset 0 1px 0 var(--alu-dark),inset 0 -1px 0 var(--alu-dark)}.board-band .sec-head p{color:var(--board-blue);font-family:var(--font-hand);font-size:1.5rem}.steps{list-style:none;margin:0;padding:0;display:grid;gap:clamp(18px,2.4vw,30px);counter-reset:s}.steps li{display:grid;grid-template-columns:2.2em minmax(0,1fr) minmax(0,1fr);gap:4px 32px;align-items:baseline}.steps .n{font-family:var(--font-hand);color:var(--board-blue);font-size:1.5rem}.steps .eq{font-family:var(--font-hand);font-size:clamp(1.9rem,1.2rem + 2.4vw,3rem);line-height:1.2;white-space:nowrap}.steps .eq sup{font-size:.5em;vertical-align:.9em;line-height:0}.steps .gloss{font-family:var(--font-hand);color:var(--board-blue);font-size:1.5rem;line-height:1.45}.steps .mark-box,.rule-box .mark-box{padding:.04em .32em}.steps .mark-box>svg,.rule-box .mark-box>svg{inset:-.12em -.08em -.08em;width:calc(100% + .16em);height:calc(100% + .2em)}.steps .final .eq{color:var(--board-red)}.rule-box{margin-top:clamp(32px,4vw,52px);display:inline-block;font-family:var(--font-hand);font-size:clamp(1.45rem,1.1rem + 1.2vw,2.1rem);color:var(--board-red);line-height:1.35}.board-talk{margin-top:28px;max-width:40em;color:var(--board-ink)}.board-next{margin-top:28px;text-align:right;font-family:var(--font-hand);color:var(--board-blue);font-size:1.5rem}@media(max-width:760px){.steps li{grid-template-columns:1.4em minmax(0,1fr);gap:2px 10px}.steps .eq{white-space:normal}.steps .gloss{grid-column:2}.board-next{text-align:left}.rule-box{font-size:1.15rem}.rule-box .mark-box{padding:.2em .55em .24em}.rule-box .mark-box>svg{inset:-.04em 0 0;width:100%;height:100%}}@media(prefers-reduced-motion:no-preference){.js .steps li .eq,.js .steps li .gloss{transition:clip-path .42s var(--ease-out),opacity .2s var(--ease-out)}.js .steps li.pre .eq,.js .steps li.pre .gloss{clip-path:inset(0 100% 0 0);opacity:.2}.js .steps li .gloss{transition-delay:.16s}.js .draw>svg{transition:clip-path .48s var(--ease-out) .38s}.js .draw.pre>svg{clip-path:inset(0 100% 0 0)}}.filters{display:flex;flex-wrap:wrap;gap:12px 28px;margin-bottom:20px}.filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:0;margin:0;padding:0}.filter legend{float:left;margin-right:6px;font-weight:700}.chip{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--input);background:transparent;color:var(--foreground);cursor:pointer;transition:background-color var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out)}.chip[aria-pressed=true]{background:var(--foreground);color:var(--background);border-color:var(--foreground)}@media(hover:hover)and (pointer:fine){.chip:not([aria-pressed=true]):hover{background:color-mix(in oklch,var(--foreground) 9%,transparent)}}.chip:active{translate:0 1px}.timetable{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--r-m);overflow:hidden}.timetable caption{text-align:left;font-weight:700;padding:0 0 10px}.timetable th,.timetable td{text-align:left;padding:16px 18px}.timetable thead th{font-size:.95rem;color:var(--muted-foreground);font-weight:700;border-bottom:2px solid var(--foreground)}.timetable tbody tr+tr td,.timetable tbody tr+tr th{border-top:1px solid var(--border)}.timetable tbody th{font-family:var(--font-hand);font-weight:400;font-size:1.35rem}.timetable .full{color:var(--primary);font-weight:700}.timetable tr[hidden]{display:none}.empty-row td{color:var(--muted-foreground)}.tt-note{margin-top:16px;color:var(--muted-foreground)}@media(max-width:760px){.timetable,.timetable tbody,.timetable tr,.timetable td,.timetable th{display:block}.timetable caption{display:block;width:100%}.timetable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.timetable tbody tr{padding:14px 16px}.timetable tbody tr+tr{border-top:1px solid var(--border)}.timetable tbody tr+tr td,.timetable tbody tr+tr th{border-top:0}.timetable th,.timetable td{padding:2px 0}.timetable td:before{content:attr(data-label) "\3000";color:var(--muted-foreground);font-size:.95rem}.timetable caption{padding:16px 16px 4px}.timetable td[data-label=\5e74\7d1a],.timetable td[data-label=\79d1\76ee]{display:none}.timetable td[data-label=\661f\671f],.timetable td[data-label=\6642\6bb5]{display:inline-block;margin-right:14px}.timetable tr[hidden]{display:none}}.fee-band{background:var(--note);color:var(--note-fg)}.fee-band .sec-head p{color:var(--note-fg)}.prices{list-style:none;margin:0;padding:0}.prices li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px;padding:clamp(14px,2vw,22px) 0;border-top:2px solid color-mix(in oklch,var(--note-fg) 70%,transparent)}.prices li:last-child{border-bottom:2px solid color-mix(in oklch,var(--note-fg) 70%,transparent)}.prices .what .hand{font-size:clamp(1.4rem,1rem + 1.4vw,2.2rem)}.prices .what small{display:block;font-size:1rem}.prices b{font-family:var(--font-hand);font-weight:400;font-size:clamp(2.8rem,1.4rem + 5vw,6.2rem);line-height:1.05}.prices .free b{color:var(--board-red)}.fee-talk{margin-top:28px;max-width:42em}.teachers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;margin:0;padding:0}.teacher{background:var(--card);border-radius:var(--r-m);padding:26px 24px 28px;border-top:8px solid var(--cap)}.teacher h3{margin:0;font-size:2rem}.teacher .subj{margin:2px 0 14px;color:var(--muted-foreground);font-weight:700}.teacher .sample{color:var(--pen);font-size:1.5rem;line-height:1.3;margin-bottom:12px;padding:10px 14px;background:var(--board);border-radius:6px;box-shadow:inset 0 0 0 3px var(--alu)}.teacher.t-black{--cap: var(--cap-black);--pen: var(--board-ink)}.teacher.t-blue{--cap: var(--cap-blue);--pen: var(--board-blue)}.teacher.t-red{--cap: var(--primary);--pen: var(--board-red)}@media(max-width:860px){.teachers{grid-template-columns:minmax(0,1fr)}}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:32px 64px;align-items:start}.split .sec-head{margin-bottom:0}.qa{margin:0;display:grid;gap:0}.qa div{padding:20px 0;border-top:1px solid var(--border)}.qa div:last-child{border-bottom:1px solid var(--border)}.qa dt{font-weight:700;font-size:1.0625rem}.qa dt:before{content:"\554f\3000";font-family:var(--font-hand);font-weight:400;color:var(--muted-foreground)}.qa dd{margin:6px 0 0}@media(max-width:860px){.split{grid-template-columns:minmax(0,1fr)}}.trial-band{background:var(--wall-deep)}.form{background:var(--card);border-radius:var(--r-m);padding:clamp(22px,3vw,36px);display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.field{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0}.field>*{min-width:0}.field>label,.field legend{font-weight:700}.field .req{font-weight:400;color:var(--muted-foreground);font-size:.95rem}.field input[type=text],.field input[type=tel],.field select{min-height:48px;padding:8px 12px;border:1px solid var(--input);border-radius:var(--r-s);background:var(--background);color:var(--foreground);width:100%}.field select{background:var(--background)}fieldset.field{border:0;margin:0;padding:0}.choices{display:flex;flex-wrap:wrap;gap:10px}.choice{position:relative;display:inline-flex}.choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.choice span{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border:1px solid var(--input);border-radius:var(--r-s);background:var(--background);transition:background-color var(--dur-hover) var(--ease-out)}.choice input:checked+span{background:var(--foreground);color:var(--background);border-color:var(--foreground)}.choice input:focus-visible+span{outline:2px solid var(--ring);outline-offset:2px}.help{color:var(--muted-foreground);font-size:.95rem}.err{color:var(--primary);font-weight:700;font-size:.95rem;min-height:1lh}.privacy{color:var(--muted-foreground);font-size:.95rem}.result{background:var(--card);border-radius:var(--r-m);padding:clamp(22px,3vw,36px);display:grid;gap:16px}.result[hidden]{display:none}.result:focus{outline:none}.result:focus-visible{outline:2px solid var(--ring)}.result .done{font-family:var(--font-hand);font-size:2rem;line-height:1.3}.chat{background:var(--background);border-radius:var(--r-m);padding:16px;display:grid;gap:8px}.chat .who{font-size:.95rem;color:var(--muted-foreground)}.bubble{position:relative;background:#a9ebab;color:#101f13;border-radius:18px 18px 4px;padding:14px 16px;white-space:pre-wrap;line-height:1.7;justify-self:end;max-width:30em}.bubble .when{position:relative;display:inline-block}.bubble .when svg{position:absolute;inset:-4px -6px;width:calc(100% + 12px);height:calc(100% + 8px);overflow:visible}.bubble .when svg path{fill:none;stroke:#b7191c;stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}.copy-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.btn-ghost{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:var(--r-s);border:1px solid var(--input);background:transparent;color:var(--foreground);font-weight:700;cursor:pointer}.btn-ghost:active{translate:0 1px}.copied{color:var(--muted-foreground)}.site-footer{padding:48px 0 56px;border-top:1px solid var(--border);font-size:1rem}.foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:20px 48px}.foot dl{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 20px}.foot dt{color:var(--muted-foreground)}.foot dd{margin:0}.copy{margin-top:28px;color:var(--muted-foreground)}@media(max-width:760px){.foot{grid-template-columns:minmax(0,1fr)}.foot dl{grid-template-columns:minmax(0,1fr);gap:0 0}.foot dd{margin-bottom:10px}}@media(forced-colors:active){.btn,.chip,.choice span{border-color:ButtonText}}
