/* ===== 太晉書院 · 沉浸式夜色水墨 ===== */
:root{
  --ink:#0e0b0a;
  --bg:#14100e;
  --bg-2:#1a1512;
  --paper:#ece2d1;
  --paper-2:#cdc4b2;
  --paper-3:#8d8475;
  --cinnabar:#c4493c;
  --cinnabar-deep:#a8322a;
  --gold:#c4a35e;
  --gold-soft:rgba(196,163,94,.55);
  --jade:#6f8a78;
  --hair:rgba(236,226,205,.13);
  --hair-soft:rgba(236,226,205,.07);
  --serif:"Noto Serif SC","Songti SC","STSong",serif;
  --cal:"Ma Shan Zheng","Noto Serif SC",cursive;
  --sans:"Noto Sans SC","Helvetica Neue",sans-serif;
  --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--serif);color:var(--paper);line-height:1.9;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;background:var(--bg);
}
.cal{font-family:var(--cal);font-weight:400}
img,svg{display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--cinnabar);color:var(--ink)}

/* 全站氛围：墨底 + 云雾 + 颗粒 */
.atmos{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(80% 55% at 78% 8%, rgba(58,52,66,.5), transparent 60%),
    radial-gradient(70% 50% at 12% 32%, rgba(48,40,33,.45), transparent 60%),
    radial-gradient(90% 60% at 50% 102%, rgba(36,30,26,.6), transparent 55%),
    linear-gradient(180deg,#16121a 0%, #14100e 40%, #100c0b 100%)}
.atmos::before{content:"";position:absolute;inset:-20%;opacity:.5;mix-blend-mode:screen;
  background:radial-gradient(40% 30% at 30% 20%, rgba(120,110,130,.10), transparent 70%),
    radial-gradient(40% 30% at 70% 60%, rgba(150,120,90,.08), transparent 70%);
  filter:blur(40px);animation:cloud 40s ease-in-out infinite alternate}
@keyframes cloud{from{transform:translate3d(-2%,0,0) scale(1)}to{transform:translate3d(3%,-2%,0) scale(1.08)}}
.grain{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;opacity:.06;mix-blend-mode:overlay}

/* 通用按钮 */
.btn{display:inline-flex;align-items:center;gap:.5em;font-size:1rem;letter-spacing:.14em;
  transition:.4s cubic-bezier(.2,.7,.2,1);cursor:pointer}
.btn--solid{padding:.95em 2.4em;background:var(--cinnabar);color:#1a1210;border-radius:1px;
  box-shadow:0 10px 34px rgba(196,73,60,.34)}
.btn--solid:hover{background:var(--gold);color:#1a1210;transform:translateY(-3px);box-shadow:0 16px 38px rgba(196,163,94,.3)}
.btn--text{color:var(--paper);position:relative;padding:.95em 0}
.btn--text .arr{transition:.4s}
.btn--text:hover .arr{transform:translateX(7px)}
.btn--text::after{content:"";position:absolute;left:0;bottom:.7em;width:100%;height:1px;background:var(--gold-soft);
  transform:scaleX(.5);transform-origin:left;transition:.4s}
.btn--text:hover::after{transform:scaleX(1);background:var(--gold)}

/* 阅读进度 */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:200;transform:scaleX(0);
  transform-origin:left;background:linear-gradient(90deg,var(--cinnabar),var(--gold));transition:transform .12s linear}

/* ===== 导航（全站暗色，文字常浅） ===== */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:.45s}
.nav.scrolled{background:rgba(16,12,11,.72);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(196,163,94,.14)}
.nav__inner{max-width:var(--maxw);margin:0 auto;padding:1.4rem 2rem;display:flex;align-items:center;
  justify-content:space-between;transition:.45s}
.nav.scrolled .nav__inner{padding:.9rem 2rem}
.brand{display:flex;align-items:center;gap:.75rem}
.brand__seal{width:40px;height:40px;display:grid;place-items:center;background:var(--cinnabar);color:#1a1210;
  font-size:1.35rem;font-family:var(--cal);border-radius:3px;box-shadow:0 0 22px rgba(196,73,60,.35)}
.brand__text strong{display:block;font-size:1.18rem;font-weight:700;letter-spacing:.16em;line-height:1.2;color:var(--paper)}
.brand__text em{font-style:normal;font-family:var(--sans);font-size:.58rem;font-weight:300;letter-spacing:.34em;color:var(--gold)}
.nav__links{margin-left:auto;display:flex;align-items:center;gap:2.1rem}
.nav__links a{font-size:.96rem;letter-spacing:.12em;position:relative;display:flex;align-items:baseline;gap:.45em;color:var(--paper-2)}
.nav__links a i{font-family:var(--sans);font-style:normal;font-size:.62rem;font-weight:300;color:var(--gold)}
.nav__links a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--gold);transition:.4s}
.nav__links a:not(.nav__cta):hover{color:var(--paper)}
.nav__links a:not(.nav__cta):hover::after{width:100%}
.nav__links a.is-current{color:var(--gold)}
.nav__links a.is-current::after{width:100%}
.nav__cta{padding:.55em 1.3em;border:1px solid var(--gold-soft);border-radius:1px;color:var(--paper);transition:.4s}
.nav__cta:hover{background:var(--gold);color:#1a1210;border-color:var(--gold)}
.lang{display:flex;align-items:center;margin-left:1.7rem}
.lang button{background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:.82rem;font-weight:400;
  letter-spacing:.02em;color:var(--paper-3);padding:.25em .6em;line-height:1;transition:.25s}
.lang button+button{border-left:1px solid var(--hair)}
.lang button:hover{color:var(--paper)}
.lang button.is-active{color:var(--gold);font-weight:500}
.nav__toggle{display:none;background:none;border:none;font-size:1.5rem;color:var(--paper);cursor:pointer}

/* ===== Hero · 夜山云海 ===== */
.hero{position:relative;min-height:100vh;display:grid;place-items:center;text-align:center;
  padding:8rem 1.5rem 5rem;overflow:hidden;z-index:2;
  background:radial-gradient(125% 95% at 50% 14%, #34313f 0%, #211f29 32%, #16131a 60%, #100d0e 100%)}
.hero::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;
  background:radial-gradient(115% 78% at 50% 42%, transparent 50%, rgba(6,5,7,.66) 100%)}
.sky{position:absolute;inset:0;z-index:0;overflow:hidden}
.stars{position:absolute;inset:0;z-index:1;animation:twinkle 7s ease-in-out infinite;background-repeat:no-repeat;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 16%, rgba(255,250,235,.9), transparent),
    radial-gradient(1px 1px at 25% 30%, rgba(255,250,235,.55), transparent),
    radial-gradient(1.5px 1.5px at 38% 11%, rgba(255,250,235,.8), transparent),
    radial-gradient(1px 1px at 57% 21%, rgba(255,250,235,.5), transparent),
    radial-gradient(1.3px 1.3px at 71% 13%, rgba(255,250,235,.85), transparent),
    radial-gradient(1px 1px at 83% 27%, rgba(255,250,235,.5), transparent),
    radial-gradient(1.2px 1.2px at 91% 15%, rgba(255,250,235,.7), transparent),
    radial-gradient(1px 1px at 47% 7%, rgba(255,250,235,.6), transparent),
    radial-gradient(1px 1px at 64% 33%, rgba(255,250,235,.4), transparent),
    radial-gradient(1.4px 1.4px at 30% 23%, rgba(255,250,235,.65), transparent),
    radial-gradient(1px 1px at 8% 30%, rgba(255,250,235,.5), transparent),
    radial-gradient(1.2px 1.2px at 78% 8%, rgba(255,250,235,.7), transparent)}
@keyframes twinkle{0%,100%{opacity:.4}50%{opacity:.85}}
.moon{position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);z-index:1;width:min(72vmin,640px);
  aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(233,212,156,.20),rgba(233,212,156,.07) 34%,transparent 60%)}
.hero__watermark{position:absolute;right:-3vw;top:50%;transform:translateY(-50%);z-index:1;font-size:62vh;
  line-height:.8;color:#f4ecdc;opacity:.04;pointer-events:none}
.enso{position:absolute;top:47%;left:50%;transform:translate(-50%,-52%);z-index:2;width:min(80vmin,660px);
  height:min(80vmin,660px);color:var(--gold);opacity:.5;filter:drop-shadow(0 0 16px rgba(196,163,94,.45)) url(#inkEdge);
  stroke-dasharray:1500;stroke-dashoffset:1500;animation:draw 3.4s ease forwards .3s}
@keyframes draw{to{stroke-dashoffset:0}}
.mist{position:absolute;left:-30%;width:160%;z-index:3;pointer-events:none;filter:blur(22px);
  background:radial-gradient(60% 100% at 50% 50%, rgba(205,198,182,.12), transparent 72%)}
.mist--1{bottom:14%;height:40%;animation:drift1 28s ease-in-out infinite alternate}
.mist--2{bottom:2%;height:36%;opacity:.85;animation:drift2 36s ease-in-out infinite alternate}
.mist--3{bottom:28%;height:30%;opacity:.5;animation:drift1 46s ease-in-out infinite alternate-reverse}
@keyframes drift1{from{transform:translateX(-7%)}to{transform:translateX(9%)}}
@keyframes drift2{from{transform:translateX(7%)}to{transform:translateX(-9%)}}
.mountains{position:absolute;left:0;right:0;bottom:0;width:100%;height:min(48vh,440px);z-index:4;
  pointer-events:none;filter:url(#inkEdge)}
.mountains .r3{fill:#2b2833}.mountains .r2{fill:#1d1a22}.mountains .r1{fill:#130f12}
.hero__fade{position:absolute;left:0;right:0;bottom:0;height:36%;z-index:4;pointer-events:none;
  background:linear-gradient(transparent,#100d0e 88%)}
.motes{position:absolute;inset:0;z-index:5;pointer-events:none}
.vlabel{position:absolute;writing-mode:vertical-rl;z-index:6}
.vlabel--l{left:2.6vw;top:50%;transform:translateY(-50%);font-family:var(--sans);font-weight:300;font-size:.66rem;
  letter-spacing:.42em;color:rgba(236,226,205,.42)}
.vlabel--l::before{content:"";display:block;width:1px;height:46px;background:var(--gold);margin:0 auto .9rem}
.vlabel--r{right:3vw;top:50%;transform:translateY(-50%);font-size:1.45rem;letter-spacing:.3em;
  color:rgba(216,178,108,.72);text-shadow:0 0 18px rgba(196,163,94,.4)}
.hero__content{position:relative;z-index:6;max-width:840px}
.hero__eyebrow{display:flex;align-items:center;justify-content:center;gap:1rem;font-family:var(--sans);font-weight:400;
  color:var(--gold);letter-spacing:.4em;font-size:.82rem;margin-bottom:1.8rem}
.hero__eyebrow i{width:34px;height:1px;background:var(--gold);opacity:.7}
.hero__title{font-size:clamp(4rem,15vw,9.5rem);font-weight:900;letter-spacing:.12em;text-indent:.12em;line-height:1;
  color:#f5eedf;text-shadow:0 2px 40px rgba(0,0,0,.55),0 0 70px rgba(233,212,156,.14)}
.hero__sub{font-size:clamp(1.1rem,3vw,1.7rem);font-weight:500;letter-spacing:.5em;text-indent:.5em;color:#d77a62;
  margin:1.6rem 0 1.7rem;text-shadow:0 0 24px rgba(168,50,42,.35)}
.hero__desc{color:rgba(236,226,205,.78);font-size:1.04rem;font-weight:300;margin-bottom:2.6rem}
.hero__actions{display:flex;gap:2.2rem;justify-content:center;align-items:center;flex-wrap:wrap}
.hero__scroll{position:absolute;bottom:1.8rem;left:50%;transform:translateX(-50%);z-index:6;display:flex;
  flex-direction:column;align-items:center;gap:.7rem;font-family:var(--sans);font-weight:300;font-size:.6rem;
  letter-spacing:.34em;color:rgba(236,226,205,.6)}
.hero__scroll i{width:1px;height:40px;background:linear-gradient(var(--gold),transparent);animation:drop 2s ease-in-out infinite}
@keyframes drop{0%,100%{transform:scaleY(.5);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}
/* 首屏入场 */
.hero__content>*{opacity:0;animation:heroIn .95s cubic-bezier(.2,.7,.2,1) forwards}
.hero__eyebrow{animation-delay:.15s}.hero__title{animation-delay:.32s}.hero__sub{animation-delay:.54s}
.hero__desc{animation-delay:.7s}.hero__actions{animation-delay:.86s}
@keyframes heroIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.vlabel,.hero__scroll{opacity:0;animation:fadeSlow 1.6s ease forwards 1.05s}
@keyframes fadeSlow{to{opacity:1}}

/* ===== 箴言滚动条（暗色分隔） ===== */
.marquee{position:relative;z-index:3;background:#0c0908;border-top:1px solid var(--hair-soft);
  border-bottom:1px solid var(--hair-soft);color:var(--gold);overflow:hidden;padding:1rem 0}
.marquee__track{display:inline-flex;align-items:center;gap:2.4rem;white-space:nowrap;animation:slide 42s linear infinite;
  font-size:.98rem;font-weight:300;letter-spacing:.2em;opacity:.85}
.marquee__track span{opacity:.92}.marquee .dot{color:var(--cinnabar);font-size:.6rem}
@keyframes slide{to{transform:translateX(-50%)}}

/* ===== 通用篇章（近一屏 · 留白 · 展卷淡入） ===== */
.section{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  max-width:var(--maxw);margin:0 auto;padding:9rem 2rem}
.section::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(55% 45% at 80% 22%, rgba(46,39,32,.4), transparent 70%),
    radial-gradient(50% 45% at 12% 82%, rgba(34,28,24,.38), transparent 70%)}
.head{position:relative;margin-bottom:4rem}
.head::before{content:"";position:absolute;left:0;top:-2.4rem;height:1px;width:0;
  background:linear-gradient(90deg,var(--gold),transparent);transition:width 1.3s ease .15s}
.head--center::before{left:50%;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.head.in::before{width:130px}
.head__meta{display:flex;align-items:center;gap:1.1rem;margin-bottom:1rem}
.head__meta--c{justify-content:center}
.head__num{font-size:2.7rem;color:var(--cinnabar);line-height:1;text-shadow:0 0 22px rgba(196,73,60,.3)}
.head__num--light{color:var(--gold)}
.head__en{font-family:var(--sans);font-weight:300;font-size:.74rem;letter-spacing:.34em;color:var(--paper-3)}
.head__en--light{color:rgba(236,226,205,.5)}
.head__title{font-size:clamp(2.1rem,5vw,3.4rem);font-weight:700;letter-spacing:.06em;line-height:1.28;color:var(--paper)}
.head--center{text-align:center}
.head__intro{max-width:640px;margin:1.5rem auto 0;color:var(--paper-2);font-weight:300}
.head__cal{position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:12rem;color:var(--gold);
  opacity:.06;pointer-events:none;line-height:1;text-shadow:0 0 60px rgba(196,163,94,.3)}

/* ===== 关于 ===== */
.about__grid{display:grid;grid-template-columns:1.45fr 1fr;gap:5rem;align-items:start}
.about__text .lead{font-size:1.3rem;font-weight:500;line-height:1.8;margin-bottom:1.6rem;color:var(--paper)}
.about__text .lead strong{color:var(--gold)}
.about__text p{color:var(--paper-2);font-weight:300;margin-bottom:1.3rem}
.about__stats{display:grid;gap:0}
.stat{padding:1.5rem 0;border-top:1px solid var(--hair);display:flex;align-items:baseline;justify-content:space-between;transition:.35s}
.stat:last-child{border-bottom:1px solid var(--hair)}
.stat:hover{padding-left:.6rem;background:linear-gradient(90deg,rgba(196,163,94,.06),transparent)}
.stat b{font-size:2.6rem;font-weight:700;color:var(--gold);letter-spacing:.02em;line-height:1}
.stat span{font-size:.92rem;font-weight:300;color:var(--paper-3);letter-spacing:.14em}

/* ===== 道之箴言（全屏 · 泼墨） ===== */
.zhen{position:relative;z-index:2;min-height:100vh;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:8rem 1.5rem;overflow:hidden;background:radial-gradient(70% 60% at 50% 50%, #1d1722 0%, #110d0f 70%)}
.zhen__bg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:40vh;line-height:1;
  color:var(--gold);opacity:.05;pointer-events:none;white-space:nowrap;filter:drop-shadow(0 0 80px rgba(196,163,94,.3))}
.zhen__inner{position:relative;max-width:880px;margin:0 auto}
.zhen__mark{display:block;font-family:var(--cal);font-size:4.4rem;color:var(--cinnabar);line-height:.5;margin-bottom:1.5rem;
  text-shadow:0 0 30px rgba(196,73,60,.4)}
.zhen__quote{font-size:clamp(1.8rem,5vw,3.3rem);font-weight:500;letter-spacing:.14em;line-height:1.85;color:#f6efe2;
  text-shadow:0 0 50px rgba(0,0,0,.5)}
.zhen__cite{display:block;margin-top:2.2rem;font-family:var(--sans);font-weight:300;color:var(--gold);
  letter-spacing:.22em;font-size:.92rem;font-style:normal}

/* ===== 道学之要 · 书法画廊（暗底发光） ===== */
.gallery{display:grid;grid-template-columns:repeat(4,1fr)}
.glyph{position:relative;padding:2.8rem 1.8rem;border-left:1px solid var(--hair);transition:.45s}
.glyph:first-child{border-left:none}
.glyph:hover{background:linear-gradient(180deg,rgba(196,163,94,.06),transparent)}
.glyph__char{display:block;font-size:5.8rem;line-height:1;color:var(--paper);margin-bottom:1.4rem;transition:.45s;
  text-shadow:0 0 1px transparent}
.glyph:hover .glyph__char{color:var(--gold);transform:translateY(-6px);text-shadow:0 0 36px rgba(196,163,94,.55)}
.glyph__idx{position:absolute;top:2.8rem;right:1.8rem;font-family:var(--cal);font-size:1.1rem;color:var(--cinnabar);opacity:.8}
.glyph h3{font-size:1.32rem;font-weight:700;letter-spacing:.08em;margin-bottom:.7rem;color:var(--paper)}
.glyph p{font-size:.95rem;font-weight:300;color:var(--paper-2)}

/* ===== 课程 · 编辑式列表 ===== */
.clist{border-top:1px solid var(--hair)}
.crow{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:2.4rem;
  padding:2.4rem 1rem 2.4rem 0;border-bottom:1px solid var(--hair);transition:.45s;position:relative}
.crow::before{content:"";position:absolute;left:0;top:0;height:100%;width:0;
  background:linear-gradient(90deg,rgba(196,163,94,.1),transparent);z-index:-1;transition:.45s}
.crow:hover{padding-left:1.4rem}.crow:hover::before{width:100%}
.crow__no{font-family:var(--cal);font-size:2.6rem;color:var(--cinnabar);line-height:1;width:1.6em;text-align:center;transition:.4s}
.crow:hover .crow__no{color:var(--gold);text-shadow:0 0 24px rgba(196,163,94,.5)}
.crow__main h3{font-size:1.55rem;font-weight:700;letter-spacing:.06em;margin-bottom:.4rem;color:var(--paper)}
.crow__main p{font-size:.96rem;font-weight:300;color:var(--paper-2);max-width:46ch}
.crow__meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;min-width:130px}
.crow__meta .tag{font-family:var(--sans);font-size:.7rem;font-weight:400;letter-spacing:.1em;color:var(--jade);
  border:1px solid rgba(111,138,120,.5);padding:.25em .8em;border-radius:20px}
.crow__meta em{font-style:normal;font-size:.84rem;font-weight:300;color:var(--paper-3);letter-spacing:.06em}
.crow__arrow{font-size:1.4rem;color:var(--gold);opacity:0;transform:translateX(-10px);transition:.4s}
.crow:hover .crow__arrow{opacity:1;transform:none}

/* ===== 师资 ===== */
.masters__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem}
.master{padding:2.8rem 2rem;border:1px solid var(--hair);text-align:center;transition:.45s;
  background:linear-gradient(180deg,rgba(236,226,205,.02),transparent)}
.master:hover{transform:translateY(-8px);border-color:var(--gold-soft);box-shadow:0 30px 60px rgba(0,0,0,.4)}
.master__avatar{width:104px;height:104px;margin:0 auto 1.5rem;border-radius:50%;display:grid;place-items:center;
  font-size:3rem;color:var(--gold);background:radial-gradient(circle at 35% 30%,#2a241d,#100d0c);
  border:1px solid var(--hair);transition:.45s}
.master:hover .master__avatar{color:#1a1210;background:radial-gradient(circle at 35% 30%,var(--gold),#8a6b28);
  box-shadow:0 0 30px rgba(196,163,94,.4)}
.master h3{font-size:1.34rem;font-weight:700;letter-spacing:.08em;margin-bottom:.35rem;color:var(--paper)}
.master__role{color:var(--cinnabar);font-family:var(--sans);font-size:.84rem;font-weight:400;letter-spacing:.12em;margin-bottom:1rem}
.master figcaption p:last-child{color:var(--paper-2);font-weight:300;font-size:.95rem}

/* ===== 动态 ===== */
.news__list{border-top:1px solid var(--hair)}
.nrow{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2.6rem;
  padding:2.2rem 1rem 2.2rem 0;border-bottom:1px solid var(--hair);transition:.45s}
.nrow:hover{padding-left:1.2rem;background:linear-gradient(90deg,rgba(196,163,94,.05),transparent)}
.nrow time{text-align:center;line-height:1}
.nrow time b{display:block;font-family:var(--cal);font-size:2.2rem;color:var(--cinnabar)}
.nrow time span{font-family:var(--sans);font-size:.74rem;font-weight:300;color:var(--paper-3);letter-spacing:.16em}
.nrow__body h3{font-size:1.3rem;font-weight:600;letter-spacing:.04em;margin-bottom:.4rem;color:var(--paper)}
.nrow__body p{font-size:.95rem;font-weight:300;color:var(--paper-2)}
.nrow__arrow{font-size:1.3rem;color:var(--gold);opacity:0;transform:translateX(-8px);transition:.4s}
.nrow:hover .nrow__arrow{opacity:1;transform:none}

/* ===== 入院 ===== */
.join{position:relative;z-index:2;min-height:100vh;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;padding:8rem 1.5rem;background:radial-gradient(70% 60% at 50% 60%, #20161a 0%, #100c0b 70%)}
.join__bg{position:absolute;right:4vw;top:50%;transform:translateY(-50%);font-size:54vh;line-height:1;color:var(--cinnabar);
  opacity:.07;pointer-events:none;filter:drop-shadow(0 0 80px rgba(196,73,60,.3))}
.join__inner{position:relative;max-width:720px;margin:0 auto}
.join__title{font-size:clamp(2rem,5vw,3rem);font-weight:700;letter-spacing:.1em;margin:.4rem 0 1.4rem;color:var(--paper)}
.join__desc{color:var(--paper-2);font-weight:300;margin-bottom:2.6rem}
.join__form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;text-align:left}
.join__form input,.join__form select{padding:1em 1.1em;background:rgba(236,226,205,.05);
  border:1px solid var(--hair);color:var(--paper);font-family:var(--serif);font-size:1rem;border-radius:1px;outline:none;transition:.3s}
.join__form input::placeholder{color:var(--paper-3)}
.join__form input:focus,.join__form select:focus{border-color:var(--gold);background:rgba(236,226,205,.09)}
.join__form select{color:var(--paper-2)}.join__form select option{color:var(--ink)}
.join__form .btn{grid-column:1/-1;justify-content:center}
.join__hint{margin-top:1.4rem;color:var(--gold);letter-spacing:.04em}

/* ===== 页脚 ===== */
.footer{position:relative;z-index:2;background:#0b0908;border-top:1px solid var(--hair-soft)}
.footer__inner{max-width:var(--maxw);margin:0 auto;padding:4.5rem 2rem 2.4rem;display:flex;justify-content:space-between;gap:3rem;flex-wrap:wrap}
.footer__brand{display:flex;gap:1.2rem;align-items:center}
.footer__big{font-size:3.4rem;color:var(--gold);line-height:1;text-shadow:0 0 40px rgba(196,163,94,.3)}
.footer__brand strong{display:block;font-size:1.2rem;letter-spacing:.16em;color:var(--paper)}
.footer__brand p{font-size:.85rem;font-weight:300;color:var(--paper-3)}
.footer__cols{display:flex;gap:4rem;flex-wrap:wrap}
.footer__cols h4{color:var(--gold);font-family:var(--sans);font-size:.82rem;font-weight:500;letter-spacing:.18em;margin-bottom:1.1rem}
.footer__cols a{display:block;font-size:.92rem;font-weight:300;color:var(--paper-2);margin-bottom:.65rem;transition:.25s}
.footer__cols a:hover{color:var(--gold);padding-left:5px}
.footer__bottom{border-top:1px solid var(--hair-soft);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;
  max-width:var(--maxw);margin:0 auto;padding:1.6rem 2rem;font-family:var(--sans);font-size:.8rem;font-weight:300;
  color:var(--paper-3);letter-spacing:.08em}

/* ===== 回到顶部 ===== */
.totop{position:fixed;right:1.8rem;bottom:1.8rem;z-index:90;width:46px;height:46px;border:1px solid var(--hair);
  border-radius:50%;background:rgba(20,16,14,.8);backdrop-filter:blur(8px);color:var(--gold);font-size:1.1rem;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(14px);transition:.4s}
.totop.show{opacity:1;visibility:visible;transform:none}
.totop:hover{background:var(--gold);color:#1a1210;border-color:var(--gold);transform:translateY(-3px)}

/* ===== 英文模式排版 ===== */
body[data-lang="en"]{--serif:"Cormorant Garamond","Noto Serif SC",Georgia,serif}
body[data-lang="en"] .brand__text strong{letter-spacing:.02em;font-size:1.12rem}
body[data-lang="en"] .nav__links a{letter-spacing:.02em}
body[data-lang="en"] .hero__title{font-weight:600;font-size:clamp(3.2rem,9vw,6.6rem);letter-spacing:.005em;text-indent:0;line-height:1.02}
body[data-lang="en"] .hero__sub{letter-spacing:.06em;text-indent:0;font-size:clamp(1rem,2.4vw,1.4rem);font-weight:500;font-style:italic}
body[data-lang="en"] .hero__eyebrow{letter-spacing:.24em}
body[data-lang="en"] .hero__desc{font-size:1.18rem;line-height:1.7}
body[data-lang="en"] .head__title,body[data-lang="en"] .join__title{font-weight:600;letter-spacing:.005em;line-height:1.12}
body[data-lang="en"] .head__intro,body[data-lang="en"] .join__desc,body[data-lang="en"] .about__text p,
body[data-lang="en"] .glyph p,body[data-lang="en"] .crow__main p,body[data-lang="en"] .nrow__body p,
body[data-lang="en"] .master figcaption p:last-child{font-size:1.08rem}
body[data-lang="en"] .about__text .lead{font-size:1.45rem;line-height:1.6}
body[data-lang="en"] .about__text .lead em,body[data-lang="en"] .about__text p em{font-style:italic}
body[data-lang="en"] .zhen__quote{font-weight:500;letter-spacing:.005em;font-size:clamp(1.7rem,4.4vw,3rem);font-style:italic}
body[data-lang="en"] .glyph h3,body[data-lang="en"] .crow__main h3,body[data-lang="en"] .nrow__body h3,body[data-lang="en"] .master h3{letter-spacing:.01em}
body[data-lang="en"] .stat span,body[data-lang="en"] .master__role,body[data-lang="en"] .crow__meta em{font-family:var(--sans)}
body[data-lang="en"] .nrow time b{font-size:1.5rem;font-family:"Cormorant Garamond",serif}

/* ===== 滚动揭示 ===== */
.reveal{opacity:0;transform:translateY(34px);transition:1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .enso,.marquee__track,.hero__scroll i,.mist,.stars,.atmos::before{animation:none}
  .enso{stroke-dashoffset:0}
  .hero__content>*,.vlabel,.hero__scroll{opacity:1;animation:none}
}

/* ===== 响应式 ===== */
@media(max-width:1080px){
  .vlabel,.head__cal{display:none}
  .about__grid{grid-template-columns:1fr;gap:3rem}
  .gallery{grid-template-columns:1fr 1fr}
  .glyph{border-left:1px solid var(--hair)}.glyph:nth-child(odd){border-left:none}
  .masters__grid{grid-template-columns:1fr}
  .section{min-height:auto;padding:6rem 2rem}
  .zhen,.join{min-height:80vh}
}
@media(max-width:680px){
  .nav__inner{padding:1rem 1.3rem}
  .nav__links{position:fixed;top:68px;right:0;flex-direction:column;align-items:flex-start;gap:0;
    background:rgba(16,12,11,.96);backdrop-filter:blur(14px);width:66%;height:calc(100vh - 68px);padding:1.4rem 1.6rem;
    border-left:1px solid var(--hair);transform:translateX(112%);transition:.4s}
  .nav__links.open{transform:none}
  .nav__links a{width:100%;padding:1rem 0;border-bottom:1px solid var(--hair-soft)}
  .nav__toggle{display:block}
  .lang{margin-left:auto;margin-right:.7rem}
  .section{padding:5rem 1.4rem}
  .gallery{grid-template-columns:1fr}
  .glyph{border-left:none!important;border-top:1px solid var(--hair);padding:2rem 0}.glyph:first-child{border-top:none}
  .glyph__char{font-size:4.6rem}
  .crow{grid-template-columns:auto 1fr;gap:1.2rem 1.4rem;padding-right:0}
  .crow__meta{grid-column:2;align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap;gap:.8rem}
  .crow__arrow,.nrow__arrow{display:none}
  .nrow{grid-template-columns:auto 1fr;gap:1.4rem}
  .join__form{grid-template-columns:1fr}
  .footer__bottom{flex-direction:column;text-align:center}
  .totop{right:1rem;bottom:1rem}
}

/* ===== 暖色主题 · 暮色暖阁（烛照檀香） ===== */
.theme{margin-left:1.3rem;background:none;border:none;cursor:pointer;color:var(--paper-2);
  font-size:1.1rem;line-height:1;padding:.2em;transition:.3s}
.theme:hover{color:var(--gold);transform:rotate(20deg)}

body.warm{
  --bg:#17100b;--bg-2:#1f150d;
  --paper:#f1e5d0;--paper-2:#d8c8ad;--paper-3:#9c8c73;
  --cinnabar:#d15c3b;--cinnabar-deep:#b23e28;
  --gold:#d8ac5e;--gold-soft:rgba(216,172,94,.55);
  --jade:#a5904f;
  --hair:rgba(241,229,208,.14);--hair-soft:rgba(241,229,208,.07);
}
body.warm .atmos{background:
  radial-gradient(80% 55% at 78% 8%, rgba(96,62,38,.5), transparent 60%),
  radial-gradient(70% 50% at 12% 32%, rgba(74,46,28,.46), transparent 60%),
  radial-gradient(90% 60% at 50% 102%, rgba(50,31,20,.62), transparent 55%),
  linear-gradient(180deg,#1c120b 0%, #17100b 42%, #120a06 100%)}
body.warm .atmos::before{background:
  radial-gradient(40% 30% at 30% 20%, rgba(190,128,72,.11), transparent 70%),
  radial-gradient(40% 30% at 70% 60%, rgba(208,158,82,.09), transparent 70%)}
body.warm .hero{background:radial-gradient(125% 95% at 50% 13%, #4d3524 0%, #341f13 33%, #20130b 62%, #150c07 100%)}
body.warm .hero::after{background:radial-gradient(115% 78% at 50% 42%, transparent 50%, rgba(12,6,3,.66) 100%)}
body.warm .moon{background:radial-gradient(circle,rgba(246,200,120,.24),rgba(246,200,120,.08) 34%,transparent 60%)}
body.warm .mist{background:radial-gradient(60% 100% at 50% 50%, rgba(222,186,138,.13), transparent 72%)}
body.warm .mountains .r3{fill:#3b2c1e}
body.warm .mountains .r2{fill:#281b12}
body.warm .mountains .r1{fill:#1a110a}
body.warm .hero__fade{background:linear-gradient(transparent,#150c07 88%)}
body.warm .hero__sub{color:#e2805a;text-shadow:0 0 24px rgba(178,62,40,.4)}
body.warm .marquee{background:#0f0805}
body.warm .zhen{background:radial-gradient(70% 60% at 50% 50%, #2a1a10 0%, #150c07 70%)}
body.warm .join{background:radial-gradient(70% 60% at 50% 60%, #2c1a12 0%, #150c07 70%)}
body.warm .footer{background:#0d0704}
body.warm .btn--solid{box-shadow:0 10px 34px rgba(209,92,59,.34)}

@media(max-width:680px){
  .theme{margin-left:0;margin-right:.4rem}
}
