:root{--bg:#f8f2e9;--bg-2:#f1e7da;--bg-3:#ead9c6;--card:#fffaf3;--line:#e5d6c3;--ink:#3b2b25;--muted:#7d6a5f;--red:#9b3a2f;--red-2:#b8574a;--red-soft:#f3dfd6;--gold:#b8955f;--gold-2:#d4b98a;--shadow:0 1px 2px #7850320d, 0 20px 44px -22px #78503247;--gutter:clamp(18px, 3.4vw, 44px)}*{box-sizing:border-box}html,body{margin:0}html{scroll-behavior:smooth;scroll-padding-top:84px}body{background:var(--bg);color:var(--ink);font-family:Noto Sans TC,PingFang TC,system-ui,sans-serif;font-size:17px;line-height:1.95;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(115deg, transparent 52%, #ffffff8c 58%, transparent 64%, transparent 68%, #fff6 73%, transparent 79%), radial-gradient(ellipse 70% 55% at 85% 0%, #fffdf8 0%, transparent 70%), linear-gradient(180deg, #faf5ee 0%, var(--bg) 60%, var(--bg-2) 100%);position:fixed;inset:0}a{color:var(--red)}.wrap{max-width:1200px;padding-inline:var(--gutter);margin:0 auto}h1,h2,h3,.serif{letter-spacing:.08em;margin:0;font-family:Noto Serif TC,serif;line-height:1.4}h1{color:var(--red);letter-spacing:.12em;font-size:clamp(44px,7vw,84px);font-weight:700;line-height:1.2}h2{color:var(--ink);margin-bottom:16px;font-size:clamp(28px,3.8vw,42px);font-weight:700}h3{color:var(--ink);margin-bottom:8px;font-size:clamp(19px,1.9vw,23px);font-weight:700}.gold{color:var(--red)}.eyebrow{color:var(--gold);letter-spacing:.35em;align-items:center;gap:12px;margin:0 0 18px;font-size:14px;font-weight:500;display:flex}.eyebrow:before{content:"";background:var(--red);width:26px;height:1px}.center{text-align:center}.center .eyebrow{justify-content:center}.center .eyebrow:after{content:"";background:var(--red);width:26px;height:1px}.sub{color:var(--muted);letter-spacing:.03em;max-width:40em;margin:0 0 44px;font-size:clamp(17px,1.6vw,19px)}.center .sub{margin-inline:auto}section{padding-top:120px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:32px}.btn{background:var(--red);color:#fffaf3;letter-spacing:.12em;border-radius:4px;align-items:center;gap:10px;padding:16px 34px;font-size:17px;font-weight:500;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.btn:hover{background:#82302a;transform:translateY(-1px)}.btn.ghost{color:var(--red);border:1px solid var(--red);background:0 0}.btn.ghost:hover{background:var(--red-soft)}.btns{flex-wrap:wrap;gap:14px;display:flex}.divider{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:120px;height:1px;margin:0 auto}.star-mark{color:var(--gold);font-size:20px;line-height:1}.js .reveal{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(18px)}.js .reveal.in{opacity:1;transform:none}.js .reveal.d1{transition-delay:.1s}.js .reveal.d2{transition-delay:.2s}.js .reveal.d3{transition-delay:.3s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transition:none;transform:none}.twinkle,.book,.sway{animation:none!important}}.top{z-index:20;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#f8f2e9e0;position:sticky;top:0}.top-in{align-items:center;gap:24px;height:74px;display:flex}.brand{color:var(--red);white-space:nowrap;letter-spacing:.12em;align-items:center;gap:12px;font-family:Noto Serif TC,serif;font-size:20px;font-weight:700;text-decoration:none;display:inline-flex}.brand svg{width:32px;height:32px}.top nav{scrollbar-width:none;gap:30px;min-width:0;margin-left:auto;display:flex;overflow-x:auto}.top nav a{color:var(--ink);white-space:nowrap;letter-spacing:.1em;font-size:16px;text-decoration:none}.top nav a:hover,.top nav a[aria-current=page]{color:var(--red)}.top .btn{flex:none;padding:10px 22px;font-size:15px}.hero{padding-block:72px 40px;position:relative}.hero-grid{grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(32px,5vw,80px);display:grid;position:relative}.hero .status{border:1px solid var(--line);background:var(--card);color:var(--red);letter-spacing:.12em;border-radius:999px;align-items:center;gap:10px;margin-bottom:30px;padding:6px 18px;font-size:15px;display:inline-flex}.hero .status:before{content:"✦";color:var(--gold)}.hero h1 small{color:var(--ink);letter-spacing:.12em;text-wrap:balance;margin-top:22px;font-size:clamp(18px,2vw,25px);font-weight:500;display:block}.hero .tagline{color:var(--muted);letter-spacing:.05em;max-width:30em;margin:28px 0 36px;font-size:clamp(17px,1.8vw,20px);line-height:2.1}.hero .rule{background:var(--red);width:36px;height:2px;margin:26px 0 0}.twinkle{animation:4s ease-in-out infinite twinkle}.twinkle.t2{animation-delay:-1.3s}.twinkle.t3{animation-delay:-2.6s}@keyframes twinkle{50%{opacity:.35}}.deco{pointer-events:none;position:absolute}.deco.branch{width:clamp(160px,20vw,260px);bottom:-40px;right:-10px}.deco.vase{opacity:.95;width:clamp(90px,9vw,130px);bottom:10px;right:2%}.sway{transform-origin:20% 100%;animation:9s ease-in-out infinite sway}@keyframes sway{50%{transform:rotate(-2deg)}}.book-stage{perspective:1600px;place-items:center;min-height:540px;display:grid;position:relative}.book-stage:before{content:"";aspect-ratio:1;background:radial-gradient(circle,#fffdf8 0%,#fffdf800 68%);border-radius:50%;width:78%;position:absolute}.book{aspect-ratio:3/4.3;width:min(330px,70vw);transform-style:preserve-3d;animation:8s ease-in-out infinite float;position:relative;transform:rotateY(-22deg)rotateX(3deg)}@keyframes float{50%{transform:rotateY(-18deg)rotateX(2deg)translateY(-10px)}}.book .front{background:linear-gradient(160deg,#fffaf2 0%,#f3e8da 100%);border:1px solid #eadcc9;border-radius:3px 10px 10px 3px;position:absolute;inset:0;overflow:hidden;box-shadow:inset 6px 0 10px #5a3c281f,0 34px 60px -22px #6e462873}.book .front svg{width:100%;height:100%;position:absolute;inset:0}.book .spine{transform-origin:100%;background:linear-gradient(90deg,#e9dccb,#f6ede1);border-radius:3px 0 0 3px;width:30px;position:absolute;top:0;bottom:0;left:-30px;transform:rotateY(-90deg)}.book .pages{transform-origin:0;background:repeating-linear-gradient(90deg,#fbf6ec 0 2px,#e8dcc7 2px 3px);width:16px;position:absolute;top:5px;bottom:5px;right:-16px;transform:rotateY(90deg)}.layers{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.layer{text-align:left;padding-top:48px;position:relative}.layer .n{color:var(--red-soft);font-family:Noto Serif TC,serif;font-size:60px;font-weight:700;line-height:1;position:absolute;top:24px;right:28px}.layer h3{color:var(--red);letter-spacing:.15em;font-size:clamp(24px,2.4vw,30px)}.layer p{color:var(--muted);margin:12px 0 16px}.layer .key{color:var(--red);letter-spacing:.05em;margin:0;font-family:Noto Serif TC,serif;font-weight:500}.quote-block{text-align:center;max-width:820px;color:var(--ink);letter-spacing:.06em;margin:70px auto 0;font-family:Noto Serif TC,serif;font-size:clamp(19px,2vw,23px);line-height:2.2}.quote-block:before{content:"✦";color:var(--gold);margin-bottom:18px;display:block}.quote-block cite{color:var(--red);letter-spacing:.25em;margin-top:16px;font-size:15px;font-style:normal;display:block}.diffs{grid-template-columns:repeat(2,1fr);gap:22px;display:grid}.diff{grid-template-columns:76px 1fr;align-items:start;gap:20px;display:grid}.badge{background:radial-gradient(circle at 35% 30%, #fffaf3, var(--red-soft));width:76px;height:76px;color:var(--red);border-radius:50%;place-items:center;display:grid}.badge svg{width:36px;height:36px}.diff .no{color:var(--gold);letter-spacing:.3em;margin-bottom:6px;font-family:Noto Serif TC,serif;font-size:14px}.diff h3{color:var(--red)}.diff p{color:var(--muted);margin:0}.stars{grid-template-columns:repeat(7,1fr);gap:14px;display:grid}.star{text-align:center;padding:26px 12px;transition:transform .25s,border-color .25s}.star:hover{border-color:var(--red-2);transform:translateY(-5px)}.star .glyph{width:44px;height:44px;margin:0 auto 14px}.star h3{color:var(--red);letter-spacing:.15em;margin-bottom:8px;font-size:20px}.star p{color:var(--muted);margin:0;font-size:15px;line-height:1.75}.star .ch{color:var(--gold);letter-spacing:.2em;margin-bottom:6px;font-size:13px}.stars.four{grid-template-columns:repeat(4,1fr);max-width:980px;margin:0 auto}.star.side{background:linear-gradient(180deg, #fff6ee, var(--card));border-color:#e9cfc4}.parts{gap:16px;display:grid}.part{grid-template-columns:120px 1fr;align-items:start;gap:28px;display:grid}.part .no{color:var(--red);letter-spacing:.2em;border-right:1px solid var(--line);font-family:Noto Serif TC,serif;font-size:24px;font-weight:700}.part p{color:var(--muted);margin:6px 0 0}.part ul{color:var(--ink);margin:12px 0 0;padding-left:1.2em}.author{grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(32px,5vw,72px);display:grid}.portrait{aspect-ratio:4/5;border:1px solid var(--line);background:radial-gradient(ellipse at 50% 30%, #fffaf3, var(--bg-3));text-align:center;color:var(--muted);box-shadow:var(--shadow);border-radius:200px 200px 24px 24px;place-items:center;padding:0;display:grid;overflow:hidden}.portrait img{object-fit:cover;object-position:50% 12%;width:100%;height:100%;display:block}.portrait b{color:var(--gold);margin-bottom:14px;font-family:Noto Serif TC,serif;font-size:60px;line-height:1;display:block}.nums{grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0;display:grid}.nums div{border-top:1px solid var(--red);padding-top:14px}.nums b{color:var(--red);font-family:Noto Serif TC,serif;font-size:clamp(24px,2.8vw,32px);font-weight:700;line-height:1.3;display:block}.nums span{color:var(--muted);letter-spacing:.05em;font-size:14px}.method{border-left:2px solid var(--red);color:var(--ink);margin:24px 0;padding:6px 0 6px 20px;font-family:Noto Serif TC,serif;font-size:19px;line-height:2}.course{grid-template-columns:1.1fr .9fr;align-items:start;gap:28px;display:grid}.facts{gap:12px;margin:0;padding:0;list-style:none;display:grid}.facts li{border-bottom:1px dashed var(--line);grid-template-columns:90px 1fr;gap:12px;padding-bottom:12px;display:grid}.facts b{color:var(--red);letter-spacing:.15em;font-weight:500}.price{color:var(--red);font-family:Noto Serif TC,serif;font-size:clamp(38px,4.6vw,52px);font-weight:700;line-height:1.1}.stages{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.stages ol{color:var(--muted);margin:10px 0 0;padding-left:1.3em}.stages li{margin:6px 0}.stage-no{color:var(--red);letter-spacing:.25em;font-family:Noto Serif TC,serif;font-weight:700}.check{margin:0;padding:0;list-style:none}.check li{border-bottom:1px solid var(--line);padding:12px 0 12px 32px;position:relative}.check li:before{content:"✦";color:var(--gold);position:absolute;left:4px}.cta-card{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(#fffaf3,#f6ebe0);border-radius:24px;position:relative;overflow:hidden}.cta-card .deco.branch{opacity:.9;width:200px;bottom:-30px;right:-20px}.foot{border-top:1px solid var(--line);color:var(--muted);background:#efe3d4;margin-top:140px;padding:52px 0 40px;font-size:15px}.foot-in{grid-template-columns:2fr 1fr 1fr;gap:32px;display:grid}.foot h4{color:var(--red);letter-spacing:.15em;margin:0 0 10px;font-family:Noto Serif TC,serif;font-size:16px}.foot a{color:var(--ink)}.foot .brand{color:var(--red)}.foot p{margin:6px 0}.sticky-cta{display:none}@media (width<=1100px){.stars{grid-template-columns:repeat(4,1fr)}}@media (width<=960px){.hero-grid,.author,.course,.layers,.stages,.diffs{grid-template-columns:1fr}.book-stage{min-height:440px}.top nav{display:none}.top .btn{margin-left:auto}.foot-in{grid-template-columns:1fr}.deco.vase{right:6%}}@media (width<=600px){body{font-size:16.5px}section{padding-top:88px}.stars,.stars.four,.nums{grid-template-columns:1fr 1fr}.part{grid-template-columns:1fr;gap:8px}.part .no{border-right:0;border-bottom:1px solid var(--line);padding-bottom:6px}.diff{grid-template-columns:1fr}.card{padding:24px}h1{letter-spacing:.08em}.deco.branch{opacity:.7;width:130px;bottom:-20px;right:-20px}.sticky-cta{z-index:30;justify-content:center;display:flex;position:fixed;bottom:12px;left:12px;right:12px}.foot{padding-bottom:100px}}.voices{columns:3;column-gap:22px;margin-top:12px}.voice{break-inside:avoid;margin:0 0 22px;padding:30px 28px 24px;position:relative}.voice .q-mark{color:var(--gold);opacity:.8;font-size:16px;position:absolute;top:18px;right:22px}.voice blockquote{color:var(--ink);letter-spacing:.03em;margin:0 0 22px;font-family:Noto Serif TC,serif;font-size:17.5px;line-height:2.05}.voice figcaption{border-top:1px solid var(--line);align-items:center;gap:14px;padding-top:16px;display:flex}.voice figcaption b{color:var(--red);letter-spacing:.1em;font-size:15px;font-weight:500;display:block}.voice figcaption small{color:var(--muted);letter-spacing:.1em;font-size:13px}.avatar{border-radius:50%;flex:none;animation:7s ease-in-out infinite breathe;box-shadow:0 6px 16px -8px #78462873}@keyframes breathe{50%{transform:translateY(-3px)}}.voice.dialog{background:linear-gradient(180deg, #fff7f0, var(--card));border-color:#ecd2c6}.dialog-title{color:var(--red);letter-spacing:.12em;margin:0 0 16px;font-family:Noto Serif TC,serif}.line{align-items:flex-end;gap:10px;margin-bottom:12px;display:flex}.line p{border-radius:16px;max-width:82%;margin:0;padding:10px 14px;font-size:15.5px;line-height:1.8}.line.student p{border:1px solid var(--line);background:#fff;border-bottom-left-radius:4px}.line.teacher{flex-direction:row-reverse}.line.teacher p{background:var(--red);color:#fffaf3;border-bottom-right-radius:4px}.dialog-note{border-top:1px dashed var(--line);color:var(--muted);margin-top:8px;padding-top:14px;font-size:14px;display:block}.js .soft{opacity:0;filter:blur(4px);transition:opacity 1.6s,transform 1.6s cubic-bezier(.2,.7,.2,1),filter 1.6s;transform:translateY(22px)}.js .soft.in{opacity:1;filter:none;transform:none}.js .soft .line{opacity:0;transition:opacity 1s,transform 1s;transition-delay:calc(.9s + var(--k) * .9s);transform:translateY(8px)}.js .soft.in .line{opacity:1;transform:none}.soft-typer{color:var(--ink);letter-spacing:.12em;margin:0 0 30px;font-family:Noto Serif TC,serif;font-size:clamp(18px,1.9vw,22px)}.soft-typer .word{color:var(--red);border-bottom:1px solid var(--gold);padding:0 2px 2px}.soft-caret{background:var(--red);vertical-align:-3px;width:1px;height:1.1em;margin-left:4px;animation:1.6s ease-in-out infinite softBlink;display:inline-block}@keyframes softBlink{50%{opacity:0}}.star span>.glyph{animation:9s ease-in-out infinite glow;animation-delay:calc(var(--s,0) * .5s)}.star>span{display:block}@keyframes glow{0%,86%,to{filter:none;transform:none}92%{filter:drop-shadow(0 0 6px #b8955fb3);transform:scale(1.08)}}@media (width<=960px){.voices{columns:2}}@media (width<=600px){.voices{columns:1}}@media (prefers-reduced-motion:reduce){.js .soft,.js .soft .line{opacity:1;filter:none;transition:none;transform:none}.avatar,.star span>.glyph,.soft-caret{animation:none!important}}.pay{flex-wrap:wrap;gap:8px;margin:10px 0 0;display:flex}.pay span{color:var(--red);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:14px}.home-bar{background:var(--red);color:#fffaf3;letter-spacing:.12em;font-size:14px}.home-bar .wrap{justify-content:space-between;align-items:center;height:38px;display:flex}.home-bar a{color:#fffaf3;text-decoration:none}.home-bar a:hover{text-decoration:underline}.home-bar span{opacity:.7;font-size:13px}
