:root{--ink:#3b3028;--muted:#61564c;--paper:#fbf8f2;--sand:#f1e7da;--line:#ded2c2;--green:#465345;--rose:#f1e1dc;--serif:"Noto Serif TC","Songti TC","PMingLiU",serif;--sans:system-ui,"PingFang TC","Microsoft JhengHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.85 var(--sans)}a{color:inherit;text-underline-offset:4px}a:hover{color:#664737}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #81523c;outline-offset:4px}.wrap{width:min(1200px,calc(100% - 64px));margin-inline:auto}.skip{position:absolute;left:12px;top:-150px;background:white;padding:8px;z-index:10}.skip:focus{top:8px}.mast{border-bottom:1px solid var(--line);background:var(--paper)}.mast .wrap{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:22px}.logo{font:700 28px/1 var(--serif);white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:9px}.logo img{width:32px;height:32px}.nav{display:flex;align-items:center;gap:clamp(12px,1.65vw,25px);font-size:.9rem}.nav a{text-decoration:none;white-space:nowrap}.nav a[aria-current]{text-decoration:underline}.toggle{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:9px 20px;border:1px solid var(--green);border-radius:50px;background:var(--green);color:#fff;text-decoration:none;gap:12px;font-weight:600}.btn:hover{background:#303d31;color:#fff}.btn.alt{background:transparent;color:var(--green)}.btn.alt:hover{background:#e9ece2}.buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.hero{display:grid;grid-template-columns:1fr .98fr;gap:clamp(24px,5vw,80px);align-items:center;padding-block:48px 62px}.hero-art{position:relative;margin:0;isolation:isolate}.hero-art img{width:100%;display:block;aspect-ratio:1.07;object-fit:cover;border-radius:48% 48% 12px 12px / 42% 42% 12px 12px}.hero-art figcaption{position:absolute;bottom:14px;right:17px;color:#fff9ee;background:#4c3c30;padding:2px 9px;border-radius:20px;font-size:.68rem;letter-spacing:.13em}.eyebrow{color:#655545;font-weight:650;font-size:.76rem;letter-spacing:.16em;margin:0 0 12px}.eyebrow:before{content:"";display:inline-block;width:24px;height:1px;background:#a3846b;vertical-align:middle;margin-right:10px}h1,h2,h3{font-family:var(--serif);line-height:1.35;margin:0 0 .5em}h1{font-size:clamp(2.05rem,5vw,4.6rem);letter-spacing:.025em}h2{font-size:clamp(1.55rem,3vw,2.55rem)}h3{font-size:1.25rem}.hero h1 span{display:block;color:#705444}.intro{font-size:1.05rem;color:var(--muted);max-width:43ch}.local{color:var(--muted);font-size:.88rem;margin-top:21px}.strip{background:var(--sand);border-block:1px solid var(--line)}.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding-block:17px;gap:13px;color:#56493e;font-size:.88rem}.strip b{color:#77553f;margin-right:7px}.section{padding-block:61px}.soft{background:#f3ebe0}.green{background:#e9ece3}.section-head{margin-bottom:25px}.section-head p:last-child{max-width:65ch}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two,.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.tile{display:flex;flex-direction:column;min-height:154px;padding:23px;background:#fffcf7;border:1px solid var(--line);border-radius:8px 25px 8px 8px;text-decoration:none;transition:background .18s,border-color .18s}.tile:hover{background:#f5e9dd;border-color:#9e816a}.tile small{font-size:.72rem;color:#765946;letter-spacing:.12em;margin-bottom:12px;font-weight:700}.tile p{font-size:.93rem;color:var(--muted);margin:0 0 14px}.tile i{margin-top:auto;font-style:normal;font-weight:700;font-size:.85rem}.tile i span{margin-left:9px}.feature{padding:32px;border-radius:8px 50px 8px 8px;background:var(--rose);border:1px solid var(--line)}.feature:nth-child(even){background:#e9ece3}.subhero{background:var(--sand);padding-block:27px 44px;border-bottom:1px solid var(--line)}.subhero h1{font-size:clamp(2rem,4.4vw,3.65rem);max-width:24ch}.crumb{font-size:.84rem;color:var(--muted);margin:0 0 24px}.crumb span{margin-inline:7px}.prose{max-width:760px}.prose h2{font-size:1.48rem;margin-top:1.55em}.prose h2:first-child{margin-top:0}.prose p{margin:.55em 0 1em}.prose ul{padding-left:1.4em}.fact{border-left:3px solid #8c6b52;background:#f1e7db;padding:14px 19px;margin-bottom:20px;font-weight:650}.related{margin-top:35px;padding-top:26px;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:11px 0}summary{cursor:pointer;font-weight:700;padding-block:7px}details p{padding:0 12px}.footer{background:#e9ddce;border-top:1px solid var(--line);padding-block:30px}.footer .wrap{display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap}.footer p{margin:.3em 0;font-size:.88rem}.footer a{display:inline-block;margin-right:12px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.filters button{border:1px solid #9c8977;background:transparent;border-radius:30px;padding:7px 14px;cursor:pointer}.filters button[aria-pressed=true]{background:var(--green);color:white}.article-card[hidden]{display:none}.mobile-cta{display:none}@media(max-width:940px){.mast .wrap{min-height:68px;flex-wrap:wrap;gap:0}.toggle{display:inline-block;border:1px solid var(--line);padding:5px 12px;border-radius:6px;background:transparent;cursor:pointer}.nav{width:100%;display:none;flex-wrap:wrap;gap:4px 16px;padding:8px 0 15px}.nav.open{display:flex}.nav a{padding:7px 0}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:660px){.wrap{width:calc(100% - 36px)}.hero{grid-template-columns:1fr;padding-block:32px;gap:27px}.hero-art img{aspect-ratio:1.37;object-position:center 59%}.strip .wrap{grid-template-columns:repeat(2,1fr);gap:8px}.section{padding-block:38px}.grid,.grid.four,.grid.two,.split{grid-template-columns:1fr}.tile{min-height:unset;padding:18px}.subhero{padding-block:19px 33px}.feature{padding:23px}.footer{padding-bottom:81px}.mobile-cta{display:block;position:fixed;z-index:5;right:12px;bottom:max(12px,env(safe-area-inset-bottom));box-shadow:0 3px 12px #33291f36}.buttons{margin-top:18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.logo img{width:62px;height:62px;object-fit:contain;flex-shrink:0}.hero-art img{object-position:center 37%}.instructor-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:40px}.stage-photo{margin:0}.stage-photo img{display:block;width:100%;height:auto;border-radius:8px 44px 8px 8px}@media(max-width:660px){.instructor-feature{grid-template-columns:1fr;gap:26px}.hero-art img{aspect-ratio:4/5;object-position:center 35%}.logo img{width:54px;height:54px}}
.hero-art img{height:auto}

/* Portrait accents and story page introductions */
.hero-art{margin:16px 16px 24px;overflow:visible}
.portrait-flourish{position:absolute;width:116%;height:120%;left:-8%;top:-5%;z-index:-1;overflow:visible;pointer-events:none;stroke:#9c8064;stroke-width:1.35;opacity:.74}
.portrait-flourish .filled{fill:#9c8064;stroke:none}
.hero-art .portrait-greeting{bottom:24px;left:22px;right:auto;padding:10px 17px;color:#fff8ed;background:rgba(43,39,35,.16);border:1px solid rgba(255,244,224,.48);box-shadow:0 3px 14px #15120e12,inset 0 0 0 1px #ffffff05;border-radius:4px;font-family:"BiauKai","DFKai-SB","KaiTi","STKaiti","Noto Serif TC",serif;font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:500;letter-spacing:.06em;transform:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-shadow:0 1px 5px #1a171340}
.subhero-layout.with-photo{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:clamp(28px,6vw,80px);padding-block:8px 12px}
.page-portrait{margin:0;width:100%;justify-self:end;max-width:440px}
.page-portrait img{display:block;width:100%;height:auto;object-fit:cover;border-radius:44% 44% 12px 12px / 35% 35% 12px 12px;box-shadow:10px 12px 0 #d7c7b747}
.page-portrait.brand{max-width:345px}.page-portrait.brand img{border-radius:50%;box-shadow:none}
.page-portrait.teacher{max-width:300px}.page-portrait.teacher img{aspect-ratio:3/4}
.page-portrait.customers img{aspect-ratio:4/3;border-radius:12px 64px 12px 12px}
.page-portrait.students{max-width:300px}.page-portrait.students img{aspect-ratio:1154/2048;object-fit:contain}
@media(max-width:660px){.hero-art{margin:12px 16px 25px}.hero-art .portrait-greeting{left:17px;right:auto;bottom:18px;padding:8px 14px;font-size:1.2rem}.portrait-flourish{width:112%;left:-6%}.subhero-layout.with-photo{grid-template-columns:1fr;gap:24px;padding-bottom:12px}.page-portrait{justify-self:center;max-width:400px}.page-portrait.brand{max-width:240px}.page-portrait.teacher,.page-portrait.students{max-width:280px}}

@font-face{font-family:"Cute Greeting";src:url("/assets/greeting-wenkai.woff") format("woff");font-display:swap}.hero-art .portrait-greeting{font-family:"Cute Greeting","BiauKai","DFKai-SB",cursive}

.course-tile{padding:0;overflow:hidden;gap:0}.course-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--sand)}.course-copy{display:flex;flex-direction:column;flex:1;padding:22px 23px 23px}.course-copy small{display:block}.course-copy i{padding-top:2px}@media(max-width:660px){.course-tile{padding:0}.course-copy{padding:18px}.course-photo{aspect-ratio:4/3}}
