:root{--paper:#faf9f5;--ink:#292722;--muted:#6b6860;--line:#c8c5ba;--accent:#a94e35;--wash:#f0eee6;--body:1rem;--caption:.875rem;--title:1.25rem;--section:2rem;--display:clamp(2.25rem,5vw,4rem);--serif:Georgia,'Songti SC','STSong','SimSun',serif;--sans:'PingFang SC','Microsoft YaHei',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:400 var(--body)/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select,textarea{touch-action:manipulation}button,.button{cursor:pointer;min-height:44px;padding:10px 18px;border:1px solid var(--ink);border-radius:9px;background:var(--ink);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:opacity 150ms cubic-bezier(.2,0,0,1),scale 150ms cubic-bezier(.2,0,0,1)}button:hover,.button:hover{opacity:.86}button:active,.button:active{scale:.96}.secondary{background:transparent;border-color:var(--line);color:var(--ink)}.accent{background:var(--accent);border-color:var(--accent);color:white}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:500;text-wrap:balance}h1{font-size:var(--display);line-height:1.2;letter-spacing:-.025em}h2{font-size:var(--section);line-height:1.3}h3{font-size:var(--title);line-height:1.45;font-weight:600;text-wrap:balance}p{max-width:65ch;text-wrap:pretty}.muted{color:var(--muted)}.small{font-size:var(--caption)}.skip{position:absolute;inset-block-start:-60px;inset-inline-start:20px;z-index:5;background:var(--paper);padding:12px}.skip:focus{inset-block-start:10px}.site-header{max-width:1200px;margin:auto;display:flex;align-items:center;gap:32px;padding:24px 40px}.brand{display:flex;align-items:center;gap:12px;font:600 24px var(--serif);white-space:nowrap}.brand-mark{font:500 22px var(--serif);width:34px;height:38px;border:1.5px solid var(--accent);color:var(--accent);border-radius:2px 9px 2px 2px;display:grid;place-items:center}.brand-caption{font:400 13px var(--sans);margin-inline-start:8px;color:var(--muted)}nav{display:flex;gap:28px;align-items:center;margin-inline:auto}nav a{font-size:15px;padding-block:10px;border-block-end:1px solid transparent;white-space:nowrap}nav a.active{border-color:var(--ink)}.account-link{font-size:14px;border:1px solid var(--line);padding:9px 15px;border-radius:8px;white-space:nowrap}main{max-width:1120px;margin:0 auto;min-height:65vh;padding:0 20px}.hero{padding:70px 0 60px;display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:60px}.hero p{margin-block:26px 28px;color:var(--muted);max-width:30em}.hero-art{height:290px;position:relative;display:grid;place-items:center;background:var(--wash);border-radius:180px 180px 20px 20px;overflow:hidden}.hero-art svg{width:260px;max-width:90%;height:240px}.hero-art .art-note{position:absolute;inset-block-end:24px;color:var(--muted);font-size:13px;letter-spacing:2px}.section-top{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-block:16px 28px}.section-top p{margin-block-start:9px;color:var(--muted);font-size:14px}.text-link{border-block-end:1px solid var(--line);font-size:14px;padding:8px 0;white-space:nowrap}.latest-list{display:grid}.course-row{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:24px;align-items:center;padding:25px 0;border-block-end:1px solid #dfdcd3}.course-row:first-child{border-block-start:1px solid #dfdcd3}.lesson-tile{width:74px;min-height:80px;display:grid;place-items:center;background:var(--wash);border-radius:8px;font:400 27px var(--serif);color:var(--accent);font-variant-numeric:tabular-nums}.course-meta{font-size:13px;color:var(--muted);margin-block-end:6px}.course-row p{font-size:14px;color:var(--muted);margin-block-start:8px}.course-row .button,.course-row button{font-size:14px;white-space:nowrap}.category-section{padding-block:60px 65px}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-block-start:28px}.category-card{display:block;padding:25px;border:1px solid #d7d3c8;border-radius:12px;min-height:180px}.category-card:hover{background:var(--wash)}.category-symbol{color:var(--accent);font-family:var(--serif);font-size:24px;margin-block-end:17px}.category-card h3{font-size:20px}.category-card p{font-size:14px;color:var(--muted);margin-block-start:10px}.page-heading{padding-block:55px 35px}.page-heading h1{font-size:42px}.page-heading p{margin-block-start:15px;color:var(--muted)}.search-bar{display:flex;gap:12px;max-width:620px;margin-block:10px 28px}.search-bar input{flex:1;min-width:0}.filters{display:flex;flex-wrap:wrap;gap:12px;margin-block-end:25px}.chip{font-size:14px;min-height:42px;background:transparent;color:var(--ink);border-color:#d2cec3;padding:8px 16px}.chip.selected{background:var(--ink);border-color:var(--ink);color:var(--paper)}input,textarea,select{font-size:16px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fffefa;padding:10px 12px;width:100%;color:var(--ink)}textarea{min-height:90px;resize:vertical}label{display:block;font-size:14px;font-weight:500}label span{display:block;margin-block-end:8px}label+label{margin-block-start:22px}.empty{padding:55px 24px;background:var(--wash);border-radius:12px;text-align:center}.empty p{margin:12px auto 22px}.panel{padding:30px;border:1px solid #d7d3c8;border-radius:14px;margin-block:20px 35px}.panel h2{font-size:26px}.panel p{margin-block:12px 25px;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:35px}.admin-grid .panel{margin-block-start:0}.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-block-start:28px}.admin-item{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:20px 0;border-block-end:1px solid #dfdcd3}.admin-item h3{font-size:17px}.admin-item button{flex-shrink:0;background:transparent;color:var(--ink);border-color:var(--line);font-size:14px}.status-tag{font-size:12px;padding:3px 8px;border-radius:5px;background:var(--wash);color:var(--muted)}.status-tag.draft{color:var(--accent);background:#f8ece5}.notice{position:fixed;inset-block-start:14px;inset-inline:20px;margin-inline:auto;max-width:650px;z-index:10;padding:15px 20px;background:#e5eddf;color:#304628;border:1px solid #aab9a1;border-radius:10px;box-shadow:0 8px 30px rgb(0 0 0/.08)}.notice.error{background:#f8e7df;color:#853722;border-color:#d5ab98}footer{max-width:1120px;margin:0 auto;padding:30px 20px 95px;border-block-start:1px solid #dfdcd3;display:flex;gap:25px;flex-wrap:wrap;font-size:13px;color:var(--muted)}footer a{margin-inline-start:auto;text-decoration:underline;text-underline-offset:4px}.preview-label{position:fixed;inset-block-end:0;inset-inline:0;background:#eeece5;border-block-start:1px solid #d7d3c8;text-align:center;padding:9px 15px calc(9px + env(safe-area-inset-bottom));font-size:12px;color:#625c50;z-index:2}dialog{max-width:570px;width:calc(100% - 40px);padding:32px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:rgb(0 0 0/.28)}dialog h2{font-size:27px;line-height:1.4;margin-block:35px 18px}dialog p{margin-block-end:20px}.dialog-close{float:inline-end;min-height:38px;padding:6px 12px;font-size:13px}.inline-warning{background:#f4eee2;border-radius:8px;padding:14px 16px;color:#685a43;font-size:13px;margin-block-end:26px}.resource-list{display:grid;grid-template-columns:1fr 1fr;gap:24px}.resource-list .panel{margin:0}.preview-form{max-width:450px;margin-inline:auto}.preview-form h1{font-size:36px;margin-block-end:20px}.preview-form .button{width:100%;margin-block-start:24px}
@media(max-width:900px){.site-header{padding-inline:25px;gap:20px}nav{gap:17px}.hero{gap:30px}.admin-grid{grid-template-columns:1fr 1.4fr}.hero-art{height:250px}.category-card{padding:20px}}
@media(max-width:680px){.site-header{padding:20px;flex-wrap:wrap;gap:14px}.brand{font-size:23px}.account-link{margin-inline-start:auto}nav{order:3;width:100%;justify-content:space-between;margin:0;gap:15px}nav a{font-size:14px}.hero{grid-template-columns:1fr;padding-block:38px 40px;gap:30px}.hero-art{height:160px;border-radius:110px 110px 15px 15px}.hero-art svg{height:145px}.hero-art .art-note{display:none}.hero p{margin-block:20px 24px}.hero h1{font-size:38px}.section-top{align-items:start;margin-block-start:20px;gap:15px}h2{font-size:28px}.section-top .text-link{font-size:13px}.course-row{grid-template-columns:50px minmax(0,1fr);gap:16px;padding-block:22px}.lesson-tile{width:50px;min-height:60px;font-size:23px}.course-row button,.course-row .button{grid-column:2;justify-self:start;min-height:42px;margin-block-start:0}.course-row h3{font-size:19px}.category-grid{grid-template-columns:1fr;gap:15px}.category-card{min-height:initial;display:grid;grid-template-columns:35px 1fr;gap:14px;padding:20px}.category-symbol{grid-row:1/3;margin:0}.category-card p{grid-column:2;margin:0}.category-section{padding-block:40px}.page-heading{padding-block:35px 25px}.page-heading h1{font-size:34px}.admin-grid,.resource-list{grid-template-columns:1fr;gap:20px}.panel{padding:23px}.admin-item{align-items:start}.search-bar{flex-wrap:wrap}.search-bar input{flex-basis:100%}footer{gap:14px}footer a{margin-inline-start:0}.preview-label{font-size:11px}dialog{padding:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button,.button{transition:none}button:active,.button:active{scale:1}}
