:root{--ink:#17201d;--ink-soft:#4c554f;--paper:#eee9dd;--paper-light:#f7f4ec;--stone:#6b6c64;--vermilion:#a53b2b;--gold:#b59a5a;--night:#101513;--rule:rgb(23 32 29 / 18%);--shell:min(1120px,calc(100% - 40px));--display:"STKaiti","KaiTi","Kaiti SC",serif;--body:"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--body);line-height:1.65}body:before{position:fixed;inset:0;z-index:-1;content:"";opacity:.28;pointer-events:none;background-image:radial-gradient(rgb(25 30 26 / 11%) .6px,transparent .7px);background-size:7px 7px}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.shell{width:var(--shell);margin-inline:auto}.site-header{border-bottom:1px solid var(--rule);background:rgb(238 233 221 / 88%);backdrop-filter:blur(12px)}.site-header__inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:28px}.wordmark{display:inline-flex;align-items:center;gap:11px;text-decoration:none;flex:0 0 auto}.wordmark__seal{display:grid;width:37px;height:37px;place-items:center;color:var(--paper-light);background:var(--vermilion);font:22px/1 var(--display);box-shadow:inset 0 0 0 2px rgb(255 255 255 / 35%)}.wordmark__text{display:grid;font:600 19px/1.1 var(--display);letter-spacing:.11em}.wordmark__text small{margin-top:4px;color:var(--stone);font:8px/1 var(--body);letter-spacing:.16em}.site-nav{display:flex;gap:clamp(14px,3vw,36px);margin-left:auto}.site-nav a,.account-link,.link-button{color:var(--ink-soft);text-decoration:none;font-size:14px}.site-nav a:hover,.account-link:hover,.link-button:hover{color:var(--vermilion)}.site-header__account{display:flex;align-items:center;gap:14px}.site-header__account form{margin:0}.link-button{padding:0;border:0;background:transparent}.seal-button{display:inline-block;padding:7px 12px;color:var(--paper-light);background:var(--vermilion);text-decoration:none;font-size:13px}.hero{overflow:hidden;border-bottom:1px solid var(--rule);background:var(--paper-light)}.hero__grid{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr) minmax(300px,.78fr);min-height:580px;gap:clamp(26px,5vw,80px);align-items:center}.hero__title-tab{align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:13px;padding-top:52px;color:var(--paper-light);background:var(--ink);font:24px/1 var(--display);letter-spacing:.1em}.section-kicker{margin:0 0 13px;color:var(--vermilion);font-size:12px;font-weight:700;letter-spacing:.18em}.hero h1,.page-intro h1,.lesson-hero h1{margin:0;font:clamp(43px,6vw,78px)/1.15 var(--display);letter-spacing:.045em}.hero__description{max-width:420px;margin:27px 0 30px;color:var(--ink-soft);font-size:16px}.hero__actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.primary-button{display:inline-block;padding:12px 23px;color:var(--paper-light);background:var(--ink);border:1px solid var(--ink);text-decoration:none;font-size:14px;transition:transform .2s ease,background .2s ease}.primary-button:hover{background:var(--vermilion);border-color:var(--vermilion);transform:translateY(-2px)}.text-link{color:var(--ink);font-size:14px;text-decoration:none;border-bottom:1px solid var(--ink)}.text-link span{margin-left:7px;color:var(--vermilion)}.hero__ink{position:relative;min-height:370px}.hero__ink-stroke{position:absolute;top:38px;right:-48px;width:min(32vw,380px);aspect-ratio:1;border-radius:46% 54% 48% 52%;background:radial-gradient(circle at 38% 35%,#374039 0 3%,transparent 4%),repeating-radial-gradient(ellipse at 47% 49%,#17201d 0 6%,#252e29 7% 8%,transparent 9% 10%);filter:contrast(1.2);transform:rotate(-18deg);opacity:.96}.hero__seal{position:absolute;top:52px;left:0;display:grid;width:112px;height:112px;place-content:center;gap:4px;color:var(--paper-light);background:var(--vermilion);border:3px double rgb(255 255 255 / 60%);font:21px/1.1 var(--display);text-align:center;transform:rotate(-6deg)}.hero__seal small{font:11px/1 var(--body);letter-spacing:.18em}.hero__note{position:absolute;right:17px;bottom:6px;z-index:1;padding:12px 11px;border:0;background:transparent;color:#fff;font:18px/1.8 var(--display);letter-spacing:.12em;writing-mode:vertical-rl;text-shadow:0 1px 10px rgb(0 0 0 / 65%),0 0 2px rgb(0 0 0 / 80%)}.course-intro,.works-section,.catalog{padding-block:clamp(68px,10vw,118px)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:34px}.section-heading h2,.practice-band h2,.lesson-content h2{margin:0;font:clamp(30px,4vw,46px)/1.25 var(--display);letter-spacing:.035em}.course-rail{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}.course-card{min-height:258px;padding:27px;position:relative;background:var(--paper)}.course-card--featured{background:var(--ink);color:var(--paper-light)}.course-card__number,.course-card__meta{margin:0;font-size:12px;letter-spacing:.11em}.course-card__meta{margin-top:34px;color:var(--stone)}.course-card--featured .course-card__meta{color:rgb(238 233 221 / 68%)}.course-card h3{margin:8px 0 10px;font:31px/1.25 var(--display)}.course-card p:not(.course-card__meta){max-width:230px;margin:0;color:var(--ink-soft);font-size:14px}.course-card--featured p:not(.course-card__meta){color:rgb(238 233 221 / 76%)}.course-card__seal{position:absolute;right:20px;bottom:19px;padding:3px 8px;color:var(--vermilion);border:1px solid currentColor;font-size:11px;letter-spacing:.08em}.course-card--featured .course-card__seal{color:var(--gold)}.practice-band{color:var(--paper-light);background:var(--night)}.practice-band__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(35px,8vw,120px);padding-block:clamp(66px,10vw,112px)}.practice-band .section-kicker{color:var(--gold)}.practice-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:0;padding:0;list-style:none;background:rgb(238 233 221 / 20%)}.practice-steps li{display:flex;gap:15px;min-height:117px;padding:22px;background:var(--night)}.practice-steps span{color:var(--gold);font:31px/1 var(--display)}.practice-steps p{margin:0;color:rgb(238 233 221 / 68%);font-size:13px}.practice-steps strong{display:block;margin-bottom:5px;color:var(--paper-light);font-weight:600}.works-placeholder{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(15px,3vw,34px)}.works-placeholder span{display:grid;min-height:190px;place-items:center;color:var(--ink);border:1px solid var(--rule);background:linear-gradient(145deg,rgb(255 255 255 / 54%),transparent);font:55px/1 var(--display);writing-mode:vertical-rl}.works-placeholder span:nth-child(2){transform:translateY(25px)}.works-placeholder span:nth-child(3){transform:translateY(-10px)}.quiet-note{color:var(--stone);font-size:13px}.page-intro{padding:clamp(36px,6vw,72px) max(0px,7vw) clamp(28px,4vw,48px);border-bottom:1px solid var(--rule);background:var(--paper-light)}.page-intro p:not(.section-kicker){max-width:560px;margin:20px 0 0;color:var(--ink-soft)}.catalog{padding-top:44px}.catalog__filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:32px}.catalog__filters button{padding:7px 13px;color:var(--ink-soft);border:1px solid var(--rule);background:transparent;font-size:13px}.catalog__filters button.is-active,.catalog__filters button:hover{color:var(--paper-light);border-color:var(--ink);background:var(--ink)}.catalog__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--rule);background:var(--rule)}.catalog-card{min-height:270px;padding:25px;background:var(--paper-light)}.catalog-card p,.catalog-card span{color:var(--stone);font-size:12px;letter-spacing:.08em}.catalog-card h2{margin:41px 0 22px;font:29px/1.25 var(--display)}.catalog-card a{display:block;margin-top:25px;font-size:13px;text-underline-offset:5px}.catalog__notice{margin:25px 0 0;color:var(--stone);font-size:13px}.lesson-hero{padding:clamp(48px,9vw,105px) 0;background:var(--ink);color:var(--paper-light)}.lesson-hero__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(35px,9vw,130px);align-items:center}.breadcrumb{display:inline-block;margin-bottom:42px;color:rgb(238 233 221 / 70%);font-size:13px}.lesson-hero .section-kicker{color:var(--gold)}.lesson-hero h1{font-size:clamp(45px,6vw,72px)}.lesson-hero p:not(.section-kicker){max-width:560px;color:rgb(238 233 221 / 72%)}.lesson-hero__meta{display:flex;gap:12px 22px;flex-wrap:wrap;margin:27px 0;color:var(--gold);font-size:12px;letter-spacing:.07em}.lesson-hero .primary-button{color:var(--ink);border-color:var(--paper-light);background:var(--paper-light)}.lesson-sheet{position:relative;display:flex;justify-content:center;gap:11px;min-height:300px;padding:40px 20px;color:var(--ink);background:var(--paper);font:45px/1 var(--display);writing-mode:vertical-rl;box-shadow:14px 14px 0 rgb(181 154 90 / 20%)}.lesson-sheet i{position:absolute;width:70%;height:9px;bottom:35px;background:var(--ink);transform:rotate(-32deg);opacity:.9}.lesson-content{display:grid;grid-template-columns:1fr 260px;gap:clamp(36px,9vw,130px);padding-block:clamp(65px,10vw,115px)}.lesson-content__main p,.lesson-content li{color:var(--ink-soft)}.lesson-content ul{padding-left:1.2em}.lesson-content__side{align-self:start;padding:24px;border-top:3px solid var(--vermilion);background:var(--paper-light)}.lesson-content__side .course-card__seal{position:static;display:inline-block}.lesson-content__side p{color:var(--ink-soft);font-size:14px}.account-page{width:min(510px,calc(100% - 40px));margin:80px auto}.account-page h1{font:40px/1.25 var(--display)}.account-page form{display:grid;gap:17px;margin:26px 0}.account-page label{display:block;margin-bottom:6px;font-size:14px}.account-page input:not([type="checkbox"]){width:100%;padding:10px 12px;border:1px solid var(--rule);background:var(--paper-light)}.account-page button{padding:12px 20px;color:var(--paper-light);border:0;background:var(--ink)}.account-page [role="alert"],.account-page span{color:var(--vermilion);font-size:13px}.site-footer{padding:40px 0;color:rgb(238 233 221 / 75%);background:var(--night)}.site-footer__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:end}.site-footer__title{margin:0;color:var(--paper-light);font:28px/1 var(--display)}.site-footer p{margin:0;font-size:13px}.site-footer a{color:var(--gold)}@media (max-width:760px){.site-header__inner{min-height:auto;padding-block:13px;flex-wrap:wrap;gap:14px}.site-nav{order:3;width:100%;justify-content:space-between;margin:0}.site-header__account{margin-left:auto}.wordmark__text{font-size:17px}.hero__grid{grid-template-columns:38px 1fr;min-height:auto;padding-bottom:48px;gap:25px}.hero__title-tab{gap:9px;padding-top:35px;font-size:18px}.hero__copy{padding-top:55px}.hero h1{font-size:44px}.hero__ink{display:none}.section-heading{align-items:start;flex-direction:column}.course-rail,.practice-band__grid,.lesson-hero__grid,.lesson-content{grid-template-columns:1fr}.course-card{min-height:220px}.practice-steps{grid-template-columns:1fr}.works-placeholder span{min-height:130px;font-size:39px}.catalog__grid{grid-template-columns:1fr 1fr}.lesson-sheet{min-height:230px;max-width:290px}.site-footer__grid{grid-template-columns:1fr}.page-intro{padding-inline:0}.site-nav a{font-size:13px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.primary-button{transition:none}.works-placeholder span:nth-child(2),.works-placeholder span:nth-child(3){transform:none}}

/* 主导航：参考个人中心项目的三段式结构，保留书院的案头气质。 */
.site-header{position:sticky;top:0;z-index:40;background:rgb(238 233 221 / 94%)}
.site-header__bar{min-height:66px;gap:22px}
.site-header__brand-group{display:flex;align-items:center;gap:clamp(28px,4vw,58px);min-width:0}
.site-nav{gap:clamp(18px,2.4vw,31px);margin:0}
.site-nav a{position:relative;padding:22px 0;color:var(--ink-soft);font-size:13px;letter-spacing:.04em;white-space:nowrap}
.site-nav a::after{position:absolute;right:0;bottom:13px;left:0;height:1px;content:"";background:var(--vermilion);transform:scaleX(0);transform-origin:right;transition:transform .2s ease}
.site-nav a:hover,.site-nav a.is-current{color:var(--ink)}
.site-nav a:hover::after,.site-nav a.is-current::after{transform:scaleX(1);transform-origin:left}
.site-header__account--desktop{margin-left:auto}
.account-menu{position:relative}
.account-menu summary{display:block;cursor:pointer;list-style:none}
.account-menu summary::-webkit-details-marker,.site-mobile-menu summary::-webkit-details-marker{display:none}
.account-menu__avatar{display:grid;width:31px;height:31px;place-items:center;color:var(--paper-light);border:1px solid rgb(255 255 255 / 50%);background:var(--vermilion);font:18px/1 var(--display)}
.account-menu__panel{position:absolute;top:calc(100% + 13px);right:0;z-index:2;display:grid;min-width:176px;padding:13px;border:1px solid var(--rule);background:var(--paper-light);box-shadow:9px 9px 0 rgb(181 154 90 / 16%)}
.account-menu__panel p{margin:0 0 9px;padding-bottom:9px;color:var(--stone);border-bottom:1px solid var(--rule);font-size:12px}
.account-menu__panel a,.account-menu__panel button{padding:7px 4px;color:var(--ink-soft);border:0;background:transparent;text-align:left;text-decoration:none;font:13px var(--body)}
.account-menu__panel a:hover,.account-menu__panel button:hover{color:var(--vermilion)}
.site-mobile-menu{display:none}
@media (max-width:880px){.site-header__bar{min-height:62px}.site-nav,.site-header__account--desktop{display:none}.site-mobile-menu{position:relative;display:block;margin-left:auto}.site-mobile-menu summary{display:grid;min-width:47px;min-height:34px;place-items:center;color:var(--ink);border:1px solid var(--rule);cursor:pointer;font:14px/1 var(--display);letter-spacing:.08em}.site-mobile-menu[open] summary{color:var(--paper-light);border-color:var(--ink);background:var(--ink)}.site-mobile-menu__panel{position:absolute;top:calc(100% + 14px);right:0;z-index:3;width:min(290px,calc(100vw - 40px));padding:11px;border:1px solid var(--rule);background:var(--paper-light);box-shadow:10px 10px 0 rgb(181 154 90 / 18%)}.site-mobile-menu__panel nav{display:grid}.site-mobile-menu__panel nav a,.site-mobile-menu__account a,.site-mobile-menu__account button{padding:10px 9px;color:var(--ink-soft);border:0;background:transparent;text-align:left;text-decoration:none;font:14px var(--body)}.site-mobile-menu__panel nav a.is-current,.site-mobile-menu__panel nav a:hover,.site-mobile-menu__account a:hover,.site-mobile-menu__account button:hover{color:var(--vermilion);background:rgb(165 59 43 / 7%)}.site-mobile-menu__account{display:grid;margin-top:8px;padding-top:8px;border-top:1px solid var(--rule)}}
@media (prefers-reduced-motion:reduce){.site-nav a::after{transition:none}}
.lesson-video{margin:0 0 32px;border:1px solid var(--rule);background:var(--ink);box-shadow:14px 14px 0 rgb(181 154 90 / 20%)}
.lesson-video video{display:block;width:100%;aspect-ratio:16/9;border:0;background:#000}

/* 柳岸临池：灰绿柳色配合两层风动，仍保持低对比框景。 */
.hero{position:relative}
.hero__willow{position:absolute;top:-36px;right:-18px;width:min(31vw,390px);height:auto;pointer-events:none;opacity:.56}
.willow-branch{fill:none;stroke:#526b59;stroke-width:1.35;stroke-linecap:round;opacity:.64}
.willow-branch--strong{stroke:#3f5949;stroke-width:2.2;opacity:.72}
.willow-branch--fine{stroke:#718574;stroke-width:.8;opacity:.58}
.willow-spray,.willow-tip{transform-box:view-box;will-change:transform}
.willow-spray--near{transform-origin:358px 0;animation:willow-spray-sway 8.6s ease-in-out infinite alternate}
.willow-spray--middle{transform-origin:330px 0;animation:willow-spray-sway 9.4s ease-in-out -4.1s infinite alternate-reverse}
.willow-spray--far{transform-origin:292px 0;animation:willow-spray-sway 7.9s ease-in-out -2.7s infinite alternate}
.willow-tip--near{transform-origin:250px 170px;animation:willow-tip-sway 5.8s ease-in-out -1.6s infinite alternate}
.willow-tip--middle{transform-origin:302px 238px;animation:willow-tip-sway 6.5s ease-in-out -4.2s infinite alternate-reverse}
.willow-tip--far{transform-origin:240px 218px;animation:willow-tip-sway 5.3s ease-in-out -2.4s infinite alternate}
.willow-leaves{fill:#607b65}
.willow-leaves path{transform-box:fill-box;transform-origin:center;animation:willow-leaf-flutter 3.7s ease-in-out infinite;will-change:transform}
.willow-leaves path:nth-child(3n+1){fill:#4c6d57;animation-delay:-1.1s}
.willow-leaves path:nth-child(3n+2){fill:#789078;animation-duration:4.4s;animation-delay:-2.6s}
.willow-leaves path:nth-child(3n){fill:#5a775f;animation-duration:3.2s;animation-delay:-1.9s}
@keyframes willow-spray-sway{from{transform:rotate(-.28deg)}to{transform:rotate(.68deg)}}
@keyframes willow-tip-sway{from{transform:rotate(-.45deg)}to{transform:rotate(1.35deg)}}
@keyframes willow-leaf-flutter{0%,100%{transform:rotate(-1.2deg) scaleX(.98)}50%{transform:rotate(1.8deg) scaleX(.93)}}
.pond{position:relative;margin:22px 0 -34px;overflow:hidden;background:radial-gradient(ellipse at 14% 82%,rgb(76 85 79 / 8%),transparent 29%),radial-gradient(ellipse at 74% 78%,rgb(76 85 79 / 5%),transparent 25%)}
.pond::before{position:absolute;right:0;bottom:24px;left:0;height:1px;content:"";background:linear-gradient(90deg,transparent,rgb(23 32 29 / 14%) 14%,rgb(23 32 29 / 8%) 72%,transparent)}
.pond svg{position:relative;display:block;width:100%;height:auto}
.pond__water{fill:none;stroke:var(--ink-soft);stroke-width:1;stroke-linecap:round;opacity:.22}
.pond__water path:nth-child(2),.pond__water path:nth-child(4){stroke-dasharray:85 18 34 22;opacity:.55}
.pond__leaf-shape{fill:url(#pond-leaf-wash);stroke:rgb(23 32 29 / 28%);stroke-width:.8}
.pond__leaf--small .pond__leaf-shape,.pond__leaf--far .pond__leaf-shape{fill:url(#pond-leaf-wash-soft)}
.pond__leaf--small{opacity:.76}
.pond__leaf--far{opacity:.5}
.pond__leaf-shadow{fill:none;stroke:var(--ink);stroke-width:7;stroke-linecap:round;opacity:.1;filter:blur(2px)}
.pond__leaf-underside{fill:#859188;stroke:rgb(23 32 29 / 22%);stroke-width:.8;opacity:.58}
.pond__leaf-rim{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;opacity:.28}
.pond__leaf-rim--light{stroke:var(--paper-light);stroke-width:1.6;opacity:.4}
.pond__leaf-vein{fill:none;stroke:var(--paper-light);stroke-width:1;stroke-linecap:round;opacity:.3}
.pond__leaf-navel{fill:var(--ink);opacity:.48}
.pond__stem{fill:none;stroke:var(--ink-soft);stroke-width:2.2;stroke-linecap:round;opacity:.62}
.pond__petal,.pond__bud-shape{fill:var(--vermilion)}
.pond__petal--back{opacity:.23}
.pond__petal--middle{opacity:.42}
.pond__petal--front{opacity:.62}
.pond__bud-shape{opacity:.48}
.pond__lotus-line{fill:none;stroke:var(--paper-light);stroke-width:1;stroke-linecap:round;opacity:.54}
.pond__koi{transform-box:fill-box;transform-origin:center;animation:koi-glide 8s ease-in-out infinite alternate}
.pond__koi-body,.pond__koi-tail{fill:currentColor}
.pond__koi--vermilion{color:var(--vermilion);opacity:.6}
.pond__koi--ink{color:var(--ink-soft);opacity:.34;animation-delay:-4s}
.pond__koi-patch{fill:var(--paper-light);opacity:.72}
.pond__koi-fin{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;opacity:.5}
.pond__koi-eye{fill:var(--night)}
.pond__willow-branch{fill:none;stroke:var(--ink-soft);stroke-width:1.5;stroke-linecap:round;opacity:.46}
.pond__willow-branch--fine{stroke-width:.85;opacity:.36}
.pond__willow-leaf{fill:var(--ink-soft);opacity:.4}
@keyframes koi-glide{from{translate:-3px 1px}to{translate:5px -2px}}
@media (max-width:760px){.hero__willow{display:none}.pond{margin:16px -10px -20px}.pond svg{width:140%;max-width:none;transform:translateX(-12%)}.pond__willow{display:none}}
.pager{display:flex;gap:9px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:34px}
.pager a{padding:7px 13px;color:var(--ink-soft);border:1px solid var(--rule);background:transparent;font-size:13px;text-decoration:none}
.pager a:hover{color:var(--paper-light);border-color:var(--ink);background:var(--ink)}

/* 全站图标：与个人中心同一套 mask 用法，颜色跟随 currentColor。 */
.ui-icon{display:inline-block;width:1em;height:1em;flex:0 0 auto;background-color:currentColor;-webkit-mask:var(--ui-icon-mask) center / contain no-repeat;mask:var(--ui-icon-mask) center / contain no-repeat}
.ui-icon--arrow-left{--ui-icon-mask:url("/icons/phosphor/arrow-left-light.svg")}
.ui-icon--arrow-right{--ui-icon-mask:url("/icons/phosphor/arrow-right-light.svg")}
.ui-icon--arrow-down{--ui-icon-mask:url("/icons/phosphor/arrow-down-light.svg")}
.pager a,.breadcrumb{display:inline-flex;align-items:center;gap:6px}

/* 深色课程头图区：文本链接改用纸白色，否则墨字压在墨底上看不见。 */
.lesson-hero .text-link{color:var(--paper-light);border-bottom-color:var(--paper-light)}
.lesson-submit{margin:20px 0 34px}
.lesson-submit .seal-button{padding:12px 28px;font-size:15px}
.lesson-submit h3{margin:0 0 14px;font:26px/1.3 var(--display);letter-spacing:.04em}
.lesson-submit form{display:grid;gap:14px;max-width:560px}
.lesson-submit label{display:block;margin-bottom:6px;font-size:14px}
.lesson-submit textarea{width:100%;min-height:90px;padding:10px 12px;border:1px solid var(--rule);background:var(--paper-light);font:inherit}
.lesson-submit input[type="file"]{font-size:14px}
.lesson-submit button{justify-self:start;border:0}
.lesson-submit [role="alert"],.lesson-submit span{color:var(--vermilion);font-size:13px}
.lesson-submit .catalog__notice{color:var(--stone)}
.submission-success{max-width:560px;padding:12px 14px;border-left:3px solid var(--vermilion);background:rgb(165 59 43 / 8%);color:var(--ink)}
.submission-success a{margin-left:8px;color:var(--vermilion)}

/* 课程播放页：左视频右推荐，仿视频站布局。 */
.watch{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(24px,4vw,48px);padding-bottom:clamp(28px,5vw,56px)}
.watch__player{margin:14px 0 0}
.watch__cover{margin:14px 0 0;border:1px solid var(--rule)}
.watch__cover img{display:block;width:100%;height:auto}
.watch__title{margin:16px 0 10px;font:clamp(26px,3.4vw,40px)/1.3 var(--display);letter-spacing:.03em}
.watch__row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0}
.watch__channel{display:inline-flex;align-items:center;gap:10px;font:18px/1.2 var(--display)}
.watch__channel small{display:block;color:var(--stone);font:11px/1.6 var(--body);letter-spacing:.14em}
.watch__channel .wordmark__seal{width:34px;height:34px;font-size:20px}
.watch__meta{color:var(--stone);font-size:13px}
.watch__row .seal-button{margin-left:auto;padding:10px 22px;font-size:14px}
.watch__desc{margin:0 0 8px;padding:18px 20px;border:1px solid var(--rule);background:var(--paper-light)}
.watch__desc p{margin:0 0 10px;color:var(--ink-soft);font-size:14px}
.watch__desc p:last-child{margin-bottom:0}
.watch__side{align-self:start}
.watch__side h2{margin:0 0 14px;font:22px/1.3 var(--display);letter-spacing:.04em}
.watch__next{display:flex;gap:12px;margin-bottom:14px;padding:10px;border:1px solid var(--rule);background:var(--paper-light);text-decoration:none}
.watch__next:hover{border-color:var(--vermilion)}
.watch__next img,.watch__thumb{width:140px;height:80px;flex:0 0 auto;object-fit:cover}
.watch__thumb{display:grid;place-items:center;color:var(--paper-light);background:var(--ink);font:28px/1 var(--display)}
.watch__next span{display:grid;align-content:start;gap:4px;min-width:0}
.watch__next strong{font:17px/1.4 var(--display)}
.watch__next small{color:var(--stone);font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:960px){.watch{grid-template-columns:1fr}.watch__row .seal-button{margin-left:0}}

/* 马善政毛笔楷书（OFL）：仅首页 Hero 与荷塘条屏用字，其余走系统字体。 */
@font-face{font-family:"MaShanZheng";src:url("/fonts/mashanzheng-home.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
.hero h1,.hero__seal,.hero__note,.works-placeholder span,.page-intro--brush h1{font-family:"MaShanZheng",var(--display)}
@media (prefers-reduced-motion:reduce){.willow-spray,.willow-tip,.willow-leaves path,.pond__koi{animation:none}}

/* 注册页短信验证码输入与发送按钮。 */
.verification-code-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.verification-code-field button{min-width:128px;padding-inline:14px;white-space:nowrap}
.verification-code-field button:disabled{cursor:not-allowed;opacity:.58}
#verification-code-status{display:block;margin-top:6px;color:var(--ink-soft)}
@media (max-width:480px){.verification-code-field{grid-template-columns:1fr}.verification-code-field button{width:100%}}

/* 个人资料页：把表单拆成「账号信息（只读）」和「个人资料（可编辑）」两块。 */
.account-form__group{margin:0;padding:18px 18px 6px;border:1px solid var(--rule);background:var(--paper-light)}
.account-form__group+.account-form__group{margin-top:18px}
.account-form__legend{padding-inline:8px;color:var(--ink);font:600 13px/1 var(--body);letter-spacing:.14em;text-transform:uppercase}
.account-form__hint{margin:6px 0 14px;color:var(--stone);font-size:12px}
.account-form__field{display:grid;gap:6px;margin-bottom:14px}
.account-form__field label{margin:0;font-size:14px}
.account-form__field small{display:block;color:var(--stone);font-size:12px}
.account-form__group--readonly{background:repeating-linear-gradient(135deg,rgb(247 244 236 / 92%) 0 14px,rgb(232 226 211 / 92%) 14px 15px);border-style:dashed}
.account-form__group--readonly .account-form__legend{color:var(--ink-soft)}
.account-form__group--readonly input{cursor:not-allowed;color:var(--ink-soft);background:rgb(247 244 236 / 65%);border-color:rgb(23 32 29 / 22%);box-shadow:none}
.account-form__group--readonly input:focus-visible{outline-color:var(--ink-soft)}
.account-form__group--editable{border-color:var(--ink)}
.account-form__group--editable .account-form__legend{color:var(--vermilion)}

/* 作品编辑器：文字、附件与提交动作收进同一方砚式容器。 */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.submission-composer{overflow:hidden;border:1px solid rgb(23 32 29 / 28%);background:var(--paper-light);box-shadow:6px 7px 0 rgb(23 32 29 / 6%);transition:border-color .18s ease,box-shadow .18s ease}
.submission-composer:focus-within{border-color:var(--ink);box-shadow:6px 7px 0 rgb(181 154 90 / 17%)}
.submission-composer.is-dragging{border-color:var(--vermilion);box-shadow:inset 0 0 0 2px rgb(165 59 43 / 12%),6px 7px 0 rgb(165 59 43 / 9%)}
.lesson-submit .submission-composer__text,.account-page .submission-composer__text{display:block;width:100%;min-height:112px;padding:16px 17px 10px;resize:vertical;color:var(--ink);border:0;outline:0;background:transparent;font:inherit}
.submission-composer__text::placeholder{color:rgb(76 85 79 / 62%)}
.image-uploader__native{display:block;width:calc(100% - 32px);margin:0 16px 12px;font-size:13px}
.image-uploader__native[hidden]{display:none}
.image-uploader__tray{padding:2px 16px 12px}
.image-uploader__tray[hidden],.image-uploader__add[hidden]{display:none}
.image-uploader__list{display:flex;gap:9px;flex-wrap:wrap}
.image-uploader__item{position:relative;width:104px;margin:0;border:1px solid var(--rule);background:var(--paper);box-shadow:3px 3px 0 rgb(23 32 29 / 7%)}
.image-uploader__item img{display:block;width:100%;height:78px;object-fit:cover;background:rgb(23 32 29 / 7%)}
.image-uploader__item figcaption{display:grid;gap:1px;padding:6px 7px;line-height:1.2}
.image-uploader__item figcaption span{overflow:hidden;color:var(--ink);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.image-uploader__item figcaption small{color:var(--stone);font-size:9px}
.submission-composer .image-uploader__remove{position:absolute;top:4px;right:4px;display:flex;width:24px;height:24px;padding:0 0 2px;box-sizing:border-box;align-items:center;justify-content:center;color:#fff;border:1px solid rgb(255 255 255 / 48%);background:var(--vermilion);font:18px/1 var(--body);box-shadow:0 2px 7px rgb(0 0 0 / 24%);line-height:1;text-align:center}
.submission-composer .image-uploader__remove>span[aria-hidden="true"]{display:block;line-height:1;transform:translateY(-.5px)}
.submission-composer__current{padding:2px 16px 12px}
.submission-composer__current-title{margin:0 0 8px;color:var(--stone);font-size:11px}
.submission-composer__current-list{display:flex;gap:9px;flex-wrap:wrap}
.image-uploader__item--current{box-shadow:none}
.image-uploader__item--current img{height:78px}
.image-uploader__remove--keep{cursor:pointer}
.image-uploader__remove--keep:has(input:not(:checked)){background:var(--ink)}
.image-uploader__item--current.is-removed img,.image-uploader__item--current:has([data-kept-toggle]:not(:checked)) img{opacity:.4;filter:grayscale(.6)}
.image-uploader__item--current.is-removed::after,.image-uploader__item--current:has([data-kept-toggle]:not(:checked))::after{content:"将删除";position:absolute;left:4px;bottom:4px;padding:2px 6px;background:var(--ink);color:var(--paper-light);font-size:10px}
.submission-composer.has-replacement .submission-composer__current img{opacity:.45;filter:grayscale(.5)}
.submission-composer.has-replacement .submission-composer__current-title::after{content:"（附新图后将被替换）";color:var(--vermilion)}
.submission-composer__toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin:0 12px 11px;padding-top:10px;border-top:1px solid var(--rule)}
.submission-composer .image-uploader__add{display:inline-flex;align-items:center;gap:5px;justify-self:start;padding:7px 10px;color:var(--ink-soft);border:1px solid var(--rule);background:transparent;font-size:12px}
.submission-composer .image-uploader__add[hidden]{display:none}
.submission-composer .image-uploader__add:hover{color:var(--vermilion);border-color:var(--vermilion)}
.submission-composer .image-uploader__add span:first-child{font:20px/1 var(--display)}
.submission-composer__toolbar small{overflow:hidden;color:var(--stone);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.lesson-submit .submission-composer__send,.account-page .submission-composer__send{justify-self:end;padding:8px 13px;color:var(--paper-light);border:1px solid var(--ink);background:var(--ink);font-size:12px;white-space:nowrap}
.lesson-submit .submission-composer__send:hover,.account-page .submission-composer__send:hover{border-color:var(--vermilion);background:var(--vermilion)}
.submission-composer__messages{display:grid;gap:2px;padding:0 16px 10px}
.submission-composer__messages:empty{display:none}
.submission-composer__messages span,.submission-composer__messages small{color:var(--vermilion);font-size:11px}
/* 缩略图点击查看大图：灯箱与可点击态。 */
[data-lightbox-item]{cursor:zoom-in}
[data-lightbox-item]:focus-visible{outline:2px solid var(--vermilion);outline-offset:2px}
body.has-lightbox{overflow:hidden}
.image-lightbox{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:clamp(16px,4vw,48px)}
.image-lightbox[hidden]{display:none}
.image-lightbox__backdrop{position:absolute;inset:0;background:rgb(23 32 29 / 78%)}
.image-lightbox__figure{position:relative;z-index:1;max-width:min(920px,94vw);margin:0;padding:12px;border:1px solid var(--rule);background:var(--paper-light);box-shadow:8px 9px 0 rgb(0 0 0 / 28%)}
.image-lightbox__image{display:block;max-width:100%;max-height:min(76vh,720px);object-fit:contain;background:rgb(23 32 29 / 7%)}
.image-lightbox__counter{margin:8px 0 0;color:var(--stone);font-size:12px;text-align:center}
.image-lightbox__close{position:absolute;top:14px;right:14px;z-index:2;display:grid;width:36px;height:36px;place-items:center;color:#fff;border:1px solid rgb(255 255 255 / 48%);background:var(--vermilion);font-size:22px;line-height:1;cursor:pointer}
.image-lightbox__nav{position:absolute;top:50%;z-index:2;display:grid;width:40px;height:56px;place-items:center;color:var(--ink);border:1px solid var(--rule);background:var(--paper-light);font-size:26px;line-height:1;cursor:pointer;transform:translateY(-50%)}
.image-lightbox__nav--prev{left:12px}
.image-lightbox__nav--next{right:12px}
.image-lightbox__nav[hidden]{display:none}
@media (max-width:640px){.image-lightbox__nav{width:34px;height:48px;font-size:22px}.image-lightbox__nav--prev{left:6px}.image-lightbox__nav--next{right:6px}}
@media (max-width:480px){.submission-composer__toolbar{grid-template-columns:auto 1fr}.submission-composer__toolbar small{display:none}.image-uploader__item{width:calc(33.333% - 6px)}}

/* 注册 / 登录：左表单右壁纸的双栏布局 */
.auth-split{display:grid;grid-template-columns:minmax(360px,1fr) minmax(0,1.15fr);min-height:calc(100vh - 76px);background:var(--paper-light)}
.auth-split__form{display:grid;align-items:center;padding:clamp(28px,5vw,56px) clamp(24px,5vw,56px)}
.auth-split__inner{width:min(420px,100%);margin:0 auto}
.auth-split__inner h1{margin:0;font:clamp(30px,4vw,40px)/1.25 var(--display);letter-spacing:.045em}
.auth-split__inner>p:first-of-type{margin:14px 0 32px;color:var(--ink-soft);font-size:14px}
.auth-split__inner form{display:grid;gap:17px;margin:0 0 18px}
.auth-split__inner label{display:block;margin-bottom:6px;font-size:14px}
.auth-split__inner input:not([type=checkbox]){width:100%;padding:10px 12px;border:1px solid var(--rule);background:var(--paper-light);font-size:14px}
.auth-split__inner [role=alert],.auth-split__inner span{color:var(--vermilion);font-size:13px}
.auth-split__inner button{padding:12px 20px;color:var(--paper-light);border:0;background:var(--ink);font-size:14px;cursor:pointer}
.auth-split__inner button:hover{background:var(--vermilion)}
.auth-split__switch{margin:18px 0 0;color:var(--ink-soft);font-size:13px}
.auth-split__switch a{color:var(--vermilion);text-decoration:none}
.auth-split__switch a:hover{text-decoration:underline}
.auth-split__art{position:relative;overflow:hidden;background:var(--ink)}
.auth-split__art::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgb(16,21,19 / 8%) 0%,rgb(16,21,19 / 12%) 45%,rgb(16,21,19 / 62%) 100%)}
.auth-bg-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:auth-bg-cycle 15s infinite}
.auth-bg-slide:nth-of-type(1){animation-delay:0s}
.auth-bg-slide:nth-of-type(2){animation-delay:-10s}
.auth-bg-slide:nth-of-type(3){animation-delay:-5s}
@keyframes auth-bg-cycle{0%,28%{opacity:1}33%,96%{opacity:0}100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.auth-bg-slide{animation:none;opacity:0}.auth-bg-slide:first-of-type{opacity:1}}
.auth-split__caption{position:absolute;inset:auto 0 0 0;padding:28px clamp(24px,5vw,52px);color:var(--paper-light);text-shadow:0 1px 14px rgb(0 0 0 / 65%)}
.auth-split__caption blockquote{margin:0;font:clamp(20px,2.4vw,28px)/1.45 var(--display);letter-spacing:.08em}
.auth-split__caption figcaption{margin-top:12px;color:rgb(247 244 236 / 78%);font:11px/1.4 var(--body);letter-spacing:.16em;text-transform:uppercase}
@media (max-width:760px){.auth-split{grid-template-columns:1fr;min-height:auto}.auth-split__form{padding:32px 24px}.auth-split__art{display:none}}
