/* ============================================================
   和鸣辩论社 · 招新站
   视觉系统：纸、墨、朱、金；声纹与卷宗
   ============================================================ */

@font-face{
  font-family:'HM Serif';
  src:url('../fonts/serif-400.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'HM Serif';
  src:url('../fonts/serif-700.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'HM Sans';
  src:url('../fonts/sans-400.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'HM Sans';
  src:url('../fonts/sans-700.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;
}

:root{
  --paper:#F2EDE1;
  --paper-2:#E9E2D2;
  --paper-3:#DED4BF;
  --ink:#0F1929;
  --ink-2:#28323F;
  --muted:#67614F;
  --red:#B93A2B;
  --red-deep:#8C2A20;
  --gold:#A5843F;
  --gold-2:#CBA963;
  --line:rgba(15,25,41,.16);
  --line-soft:rgba(15,25,41,.085);
  --navy:#0C1421;
  --navy-2:#111C2E;
  --cream:#EDE5D3;
  --pad:24px;
  --dock-h:62px;
  --serif:'HM Serif','Noto Serif SC','Songti SC','STSong','SimSun',serif;
  --sans:'HM Sans','Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:16px;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:16px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* 纸张颗粒 */
body::before{
  content:"";
  position:fixed;
  inset:-20%;
  z-index:9998;
  pointer-events:none;
  opacity:.055;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size:160px 160px;
}

/* 页面暖光 */
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:9997;
  pointer-events:none;
  background:
    radial-gradient(90% 55% at 82% 0%, rgba(203,169,99,.10), transparent 60%),
    radial-gradient(80% 50% at 0% 100%, rgba(15,25,41,.05), transparent 65%);
}

img{max-width:100%;display:block;}
a{color:inherit;-webkit-tap-highlight-color:transparent;}
p,h1,h2,h3,h4,figure,blockquote{margin:0;}
p{text-wrap:pretty;}
h1,h2,h3{text-wrap:balance;}
button{font:inherit;color:inherit;}
::selection{background:var(--red);color:#FFF6E7;}

:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

.skip-link{
  position:fixed;left:12px;top:-60px;z-index:10000;
  padding:10px 14px;background:var(--ink);color:var(--paper);
  font:400 12px var(--sans);letter-spacing:.1em;text-decoration:none;
  transition:top .2s ease;
}
.skip-link:focus{top:12px;}

/* ---------- 顶部进度 ---------- */
.scroll-progress{
  position:fixed;left:0;right:0;top:0;height:2px;z-index:900;
  pointer-events:none;background:rgba(15,25,41,.05);
}
.scroll-progress span{
  display:block;height:100%;background:var(--red);
  transform:scaleX(0);transform-origin:0 50%;
  will-change:transform;
}

/* ---------- 底部导航 ---------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:800;
  display:grid;grid-template-columns:1fr 1fr 1.12fr;
  height:calc(var(--dock-h) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  background:rgba(242,237,225,.93);
  -webkit-backdrop-filter:blur(16px) saturate(1.15);
  backdrop-filter:blur(16px) saturate(1.15);
  border-top:1px solid var(--line);
}
.dock__item{
  position:relative;display:flex;align-items:center;justify-content:center;
  gap:7px;min-height:44px;text-decoration:none;color:var(--ink);
}
.dock__no{
  font:400 8.5px var(--sans);letter-spacing:.14em;color:var(--gold);
  transform:translateY(1px);
}
.dock__label{font:400 12px var(--sans);letter-spacing:.24em;text-indent:.24em;}
.dock__item.is-active::after{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:20px;height:2px;background:var(--red);
}
.dock__item--join{
  background:var(--red);color:#FFF6E7;gap:9px;
  box-shadow:inset 1px 0 0 rgba(255,255,255,.12);
}
.dock__item--join .dock__no{color:rgba(255,246,231,.6);}
.dock__item--join .dock__label{letter-spacing:.2em;text-indent:.2em;}
.dock__arrow{
  font-family:var(--sans);font-size:13px;line-height:1;
  transform:translateY(-1px);transition:transform .3s ease;
}
.dock__item--join:active .dock__arrow{transform:translate(3px,-1px);}
.dock__item--join.is-active{background:var(--red-deep);}

/* ---------- 通用 ---------- */
main{padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom) + 8px);}

.eyebrow{
  font:400 9.5px var(--sans);letter-spacing:.38em;text-indent:.38em;
  color:var(--gold);margin:0;
}
.rule{display:block;height:1px;background:var(--line);border:0;}

.btn{
  display:inline-flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:50px;padding:0 18px;text-decoration:none;
  font:400 13px var(--sans);letter-spacing:.2em;text-indent:.2em;
  border:1px solid transparent;
  transition:transform .18s ease,background .25s ease,color .25s ease;
}
.btn i{font-style:normal;font-family:var(--sans);font-size:15px;transition:transform .3s ease;}
.btn:active{transform:scale(.985);}
.btn:active i{transform:translateX(3px);}
.btn--primary{background:var(--red);color:#FFF6E7;box-shadow:0 10px 26px rgba(140,42,32,.22);}
.btn--ghost{
  background:transparent;color:var(--cream);
  border-color:rgba(237,229,211,.24);justify-content:center;
}
.btn--lg{width:100%;min-height:58px;font-size:14px;}

.tag{
  display:inline-block;flex:none;margin-left:auto;
  font:400 8.5px var(--sans);letter-spacing:.1em;
  color:var(--ink);border:1px solid var(--line);padding:5px 7px;
  white-space:nowrap;line-height:1;
}
.tag--red{color:var(--red);border-color:rgba(185,58,43,.42);}

/* ============================================================
   界面一 · 封面
   ============================================================ */
.hero{
  position:relative;min-height:100svh;display:flex;flex-direction:column;
  padding:20px var(--pad) 24px;
  background:var(--navy);color:var(--cream);overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(70% 50% at 78% 12%, rgba(203,169,99,.16), transparent 65%),
    radial-gradient(90% 60% at 0% 100%, rgba(185,58,43,.10), transparent 60%);
  pointer-events:none;
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(203,169,99,.55),transparent);
}

.hero__top{
  position:relative;z-index:2;display:flex;justify-content:space-between;
  align-items:flex-start;gap:12px;
  font:400 9px var(--sans);letter-spacing:.2em;
  color:rgba(237,229,211,.6);
}
.hero__top .sep{color:var(--gold-2);margin:0 6px;}
.hero__idx{
  font-family:var(--sans);letter-spacing:.12em;white-space:nowrap;
  color:rgba(237,229,211,.75);
}
.hero__idx b{font-size:13px;font-weight:400;color:var(--cream);}
.hero__idx span{opacity:.5;}

.hero__mark{
  position:absolute;left:-38px;top:58px;width:300px;z-index:0;
  opacity:.16;filter:grayscale(.35) sepia(.25) brightness(1.05);
  pointer-events:none;
}
.hero__mark img{width:100%;height:auto;}

.hero__type{
  position:relative;z-index:2;flex:1;
  display:flex;justify-content:flex-end;align-items:flex-start;
  gap:12px;padding-top:34px;
}
.hero__vert{
  display:flex;flex-direction:column;gap:16px;
  writing-mode:vertical-rl;padding-top:4px;
}
.hero__kicker{
  font:400 9.5px var(--sans);letter-spacing:.4em;text-indent:.4em;
  color:var(--gold-2);
}
.hero__side{
  font:400 9px var(--sans);letter-spacing:.56em;text-indent:.56em;
  color:rgba(237,229,211,.42);
}
.hero__namewrap{display:flex;flex-direction:column;align-items:center;gap:12px;}
.hero__name{
  writing-mode:vertical-rl;
  font-family:var(--serif);font-weight:700;
  font-size:clamp(78px,24vw,100px);line-height:1;letter-spacing:.06em;
  color:#FBF3E3;
}
.hero__seal{
  width:46px;height:auto;opacity:0;transform:rotate(-4deg) scale(1.5);
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.3));
}

.hero__line{
  position:relative;z-index:2;
  font-size:clamp(19px,5.3vw,23px);line-height:1.72;letter-spacing:.035em;
  color:var(--cream);margin:0 0 20px;max-width:310px;
}
.hero__line::before{
  content:"";display:block;width:26px;height:1px;background:var(--red);
  margin-bottom:15px;
}

.hero__wave{
  position:relative;z-index:1;width:calc(100% + 48px);height:26px;
  margin:0 -24px 18px;opacity:.5;overflow:visible;
}
.hero__wave path{
  fill:none;stroke:var(--gold-2);stroke-width:1;
  stroke-dasharray:620;stroke-dashoffset:620;
}

.hero__actions{position:relative;z-index:2;display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin-bottom:18px;}
.hero__actions .btn{min-height:52px;}

.hero__foot{
  position:relative;z-index:2;display:flex;justify-content:space-between;gap:10px;
  font:400 8.5px var(--sans);letter-spacing:.12em;line-height:1.7;
  color:rgba(237,229,211,.42);
}
.hero__foot span:last-child{text-align:right;}

/* 封面入场 */
.js .hero__name{clip-path:inset(0 0 100% 0);}
.is-ready .hero__name{
  animation:inkDrop 1.05s cubic-bezier(.2,.75,.2,1) .1s both;
}
.is-ready .hero__seal{
  animation:stamp .7s cubic-bezier(.2,.9,.2,1) .75s both;
}
.is-ready .hero__wave path{
  animation:drawLine 2.4s cubic-bezier(.3,.7,.2,1) .5s forwards;
}
.is-ready .hero__top,
.is-ready .hero__line,
.is-ready .hero__actions,
.is-ready .hero__foot{
  animation:riseIn .8s cubic-bezier(.2,.7,.2,1) both;
}
.is-ready .hero__line{animation-delay:.25s;}
.is-ready .hero__actions{animation-delay:.4s;}
.is-ready .hero__foot{animation-delay:.55s;}

@keyframes inkDrop{
  from{clip-path:inset(0 0 100% 0);transform:translateY(-6px);}
  to{clip-path:inset(0 0 0 0);transform:translateY(0);}
}
@keyframes stamp{
  0%{opacity:0;transform:rotate(-9deg) scale(1.55);}
  62%{opacity:1;transform:rotate(-3deg) scale(.96);}
  100%{opacity:.94;transform:rotate(-4deg) scale(1);}
}
@keyframes drawLine{to{stroke-dashoffset:0;}}
@keyframes riseIn{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:translateY(0);}
}

/* ============================================================
   章节
   ============================================================ */
.chapter{padding:60px var(--pad) 0;position:relative;}
.chapter__head{
  position:relative;display:flex;align-items:flex-end;gap:13px;
  padding-bottom:20px;border-bottom:1px solid var(--line);
}
.chapter__no{
  font:700 9.5px var(--sans);letter-spacing:.16em;color:var(--gold);
  padding-bottom:9px;
}
.chapter__title .eyebrow{margin-bottom:7px;}
.chapter__title h2{
  font-size:clamp(30px,8.6vw,36px);line-height:1.08;
  letter-spacing:.07em;font-weight:700;
}
.chapter__rail{
  position:absolute;right:0;top:-2px;
  writing-mode:vertical-rl;
  font:400 8.5px var(--sans);letter-spacing:.34em;text-indent:.34em;
  color:var(--muted);opacity:.75;
}

.prose{
  padding-top:24px;
  font-size:16px;line-height:1.98;letter-spacing:.01em;color:var(--ink-2);
}
.prose p{margin:0 0 1.15em;text-align:left;}
.prose p:last-child{margin-bottom:0;}
.prose .lead{font-size:17.5px;line-height:1.9;color:var(--ink);}
.prose em{
  font-style:normal;color:var(--ink);
  background:linear-gradient(transparent 64%,rgba(165,132,63,.3) 64%);
}

/* 引言 */
.pull{
  position:relative;margin:34px -6px;
  padding:28px 18px 26px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.pull::before{
  content:"“";position:absolute;left:2px;top:-14px;
  font-family:var(--serif);font-size:58px;line-height:1;
  color:var(--gold);opacity:.32;
}
.pull blockquote{
  font-size:clamp(23px,6.2vw,27px);line-height:1.55;font-weight:700;
  letter-spacing:.02em;color:var(--ink);
}
.pull strong{
  font-weight:700;color:var(--red);font-size:1.5em;
  letter-spacing:0;vertical-align:-.08em;
}

/* 勇气阶梯 */
.ladder{list-style:none;margin:26px 0 0;padding:0;}
.ladder li{
  display:flex;gap:13px;padding:14px 0 14px calc(var(--i,0) * 13px);
  border-bottom:1px solid var(--line-soft);
}
.ladder li:last-child{border-bottom:0;}
.ladder__n{
  flex:none;font:400 8.5px var(--sans);letter-spacing:.1em;
  color:var(--gold);padding-top:6px;
}
.ladder p{font-size:16.5px;line-height:1.75;color:var(--ink-2);}
.ladder li:nth-child(3) p{color:var(--ink);font-weight:700;}

/* 低语 */
.whisper{
  margin:26px 0 30px;padding-left:15px;
  border-left:1px solid rgba(165,132,63,.65);
}
.whisper::before{
  content:"……";display:block;
  font-size:12px;letter-spacing:.2em;color:var(--gold);
  margin-bottom:8px;
}
.whisper p{
  font-size:13.5px;line-height:2.1;color:var(--muted);
  text-align:left;
}

/* 沉默 */
.silence{
  position:relative;overflow:hidden;
  margin:38px 0;padding:56px var(--pad);
  background:var(--navy);
}
.silence::before{
  content:"";position:absolute;left:24px;top:0;bottom:0;width:1px;
  background:var(--red);opacity:.75;
}
.silence p{
  font-size:clamp(24px,6.6vw,28px);line-height:1.65;
  letter-spacing:.14em;color:rgba(237,229,211,.26);
  transition:color 1.1s ease,letter-spacing 1.3s cubic-bezier(.2,.7,.2,1);
}
.silence.is-in p{color:var(--cream);letter-spacing:.03em;}

/* 三段契机 */
.beats{margin:34px 0 0;}
.beat{
  position:relative;margin:0 0 15px;padding-left:17px;
  font-size:18.5px;line-height:1.82;color:var(--ink-2);
}
.beat::before{
  content:"";position:absolute;left:0;top:.78em;
  width:6px;height:1px;background:var(--red);
}
.beat em{font-style:normal;color:var(--red);font-weight:700;letter-spacing:.04em;}
.thesis{
  margin:30px 0 0;padding-top:24px;border-top:1px solid var(--line);
  font-size:clamp(21px,5.6vw,24px);line-height:1.66;font-weight:700;
  letter-spacing:.02em;
}

/* 引文卡 */
.quote-card{
  position:relative;margin:36px 0;padding:32px 22px 26px;
  background:var(--paper-2);border:1px solid var(--line-soft);
}
.quote-card::before{
  content:"“";position:absolute;left:16px;top:2px;
  font-size:52px;line-height:1;color:var(--gold);opacity:.3;
}
.quote-card::after{
  content:"";position:absolute;right:9px;bottom:9px;width:13px;height:13px;
  border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);
}
.quote-card blockquote{
  position:relative;font-size:16px;line-height:1.95;
  letter-spacing:.01em;color:var(--ink-2);text-align:left;
}

/* 照片 */
.photo{margin:36px 0;}
.photo__frame{
  position:relative;overflow:hidden;background:var(--paper-3);
}
.photo img{
  width:100%;height:auto;
  filter:grayscale(.55) sepia(.14) contrast(1.04) brightness(.97);
  transform:scale(1.035);
  transition:transform 1.4s cubic-bezier(.2,.7,.2,1),filter .9s ease;
}
.photo.is-in img{transform:scale(1);filter:grayscale(.32) sepia(.08) contrast(1.03) brightness(1);}
.photo__frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,20,33,.14),transparent 38%,rgba(12,20,33,.08));
  mix-blend-mode:multiply;
}
.photo figcaption{
  display:flex;justify-content:space-between;gap:10px;
  margin-top:9px;font:400 8.5px var(--sans);letter-spacing:.16em;
  color:var(--muted);
}
.js .photo__frame{clip-path:inset(0 0 100% 0);}
.photo.is-in .photo__frame{
  animation:photoUnveil 1.05s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes photoUnveil{
  from{clip-path:inset(0 0 100% 0);}
  to{clip-path:inset(0 0 0 0);}
}

/* 场花 */
.changhua{
  position:relative;overflow:hidden;
  margin:44px 0 0;padding:42px var(--pad) 40px;
  background:var(--navy);color:var(--cream);
}
.changhua__ghost{
  position:absolute;right:-26px;bottom:-58px;z-index:0;
  font-size:220px;line-height:1;font-weight:700;
  color:rgba(237,229,211,.035);pointer-events:none;
}
.changhua__head{
  position:relative;z-index:1;display:flex;align-items:center;gap:14px;
  margin-bottom:26px;
}
.changhua__head .eyebrow{color:var(--gold-2);}
.changhua__head .rule{flex:1;background:rgba(237,229,211,.18);}
.changhua__lines{position:relative;z-index:1;}
.changhua__lines p{
  font-size:clamp(16.5px,4.5vw,18.5px);line-height:2.15;letter-spacing:.055em;
  color:rgba(237,229,211,.9);
}
.changhua__lines p:nth-child(3){
  margin-top:17px;padding-top:17px;
  border-top:1px solid rgba(237,229,211,.15);
}
.changhua__lines .lead{
  color:var(--gold-2);font-weight:700;font-size:1.22em;
  margin-right:.06em;
  display:inline-block;
}
.changhua__lines p.is-in .lead{animation:leadGlow 2.2s ease both;}
@keyframes leadGlow{
  0%{text-shadow:0 0 0 rgba(203,169,99,0);}
  40%{text-shadow:0 0 18px rgba(203,169,99,.5);}
  100%{text-shadow:0 0 0 rgba(203,169,99,0);}
}

/* 社训 */
.motto{padding:46px var(--pad) 6px;}
.motto__plate{
  position:relative;text-align:center;
  padding:32px 16px 30px;
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0));
}
.motto__plate::before{
  content:"";position:absolute;inset:6px;border:1px solid var(--line-soft);
  pointer-events:none;
}
.motto__label{
  font:400 8.5px var(--sans);letter-spacing:.44em;text-indent:.44em;
  color:var(--gold);margin-bottom:16px;
}
.motto__text{
  font-size:clamp(27px,7.3vw,33px);line-height:1.6;
  font-weight:700;letter-spacing:.12em;text-indent:.12em;
}
.motto__text .comma{color:var(--red);}
.motto__seal{
  position:absolute;right:16px;bottom:12px;width:32px;height:auto;
  opacity:0;transform:rotate(-10deg) scale(1.6);
  mix-blend-mode:multiply;
}
.motto__plate.is-in .motto__seal{animation:stampSmall .65s cubic-bezier(.2,.9,.2,1) .55s both;}
@keyframes stampSmall{
  0%{opacity:0;transform:rotate(-10deg) scale(1.6);}
  65%{opacity:.9;transform:rotate(-4deg) scale(.94);}
  100%{opacity:.86;transform:rotate(-5deg) scale(1);}
}

/* 鹤 */
.crane{
  position:relative;margin:44px 0 0;padding-top:34px;
  border-top:1px solid var(--line);
}
.crane::before{
  content:"";position:absolute;top:-1px;left:0;width:34px;height:1px;
  background:var(--red);
}
.crane__bird{
  position:absolute;right:2px;top:-13px;width:52px;height:20px;
  opacity:.55;
}
.crane__bird path{
  fill:none;stroke:var(--gold);stroke-width:1;
  stroke-dasharray:80;stroke-dashoffset:80;
}
.crane.is-in .crane__bird path{animation:drawLine 1.6s ease .3s forwards;}
.crane blockquote{
  font-size:clamp(21px,5.8vw,25px);line-height:1.78;
  letter-spacing:.02em;color:var(--ink);text-align:left;
}
.crane em{font-style:normal;color:var(--red);font-weight:700;}

/* 行动区 */
.cta{
  margin:44px 0 0;padding:32px 0 6px;
  border-top:1px solid var(--line);
}
.cta__label{
  font:400 8.5px var(--sans);letter-spacing:.42em;text-indent:.42em;
  color:var(--gold);margin-bottom:16px;
}
.link-arrow{
  display:inline-flex;align-items:center;gap:9px;
  margin-top:16px;padding-bottom:5px;
  font:400 10px var(--sans);letter-spacing:.16em;text-decoration:none;
  border-bottom:1px solid var(--line);color:var(--ink-2);
}
.link-arrow i{font-style:normal;transition:transform .3s ease;}
.link-arrow:active i{transform:translateX(3px);}

/* 页脚 */
.foot{
  margin-top:52px;padding:48px var(--pad) 38px;
  border-top:1px solid var(--line);text-align:center;
}
.foot img{width:52px;height:auto;margin:0 auto 15px;opacity:.92;}
.foot__name{font-size:13.5px;letter-spacing:.14em;margin-bottom:7px;}
.foot__meta,.foot__note{
  font:400 8.5px var(--sans);letter-spacing:.12em;line-height:1.9;
  color:var(--muted);
}
.foot__meta{margin-bottom:3px;}

/* ============================================================
   界面二 · 和鸣
   ============================================================ */
.masthead{
  position:relative;overflow:hidden;
  padding:22px var(--pad) 34px;
  border-bottom:1px solid var(--line);
}
.masthead__top{
  display:flex;justify-content:space-between;align-items:flex-start;
  font:400 9px var(--sans);letter-spacing:.18em;color:var(--muted);
}
.masthead__top .sep{color:var(--gold);margin:0 5px;}
.masthead__idx{white-space:nowrap;}
.masthead__idx b{font-weight:400;font-size:12px;color:var(--ink);}
.masthead__idx span{opacity:.5;}
.masthead__body{position:relative;z-index:1;margin-top:32px;}
.masthead h1{
  font-size:clamp(54px,16vw,68px);line-height:1;letter-spacing:.1em;
  margin:20px 0 20px;font-weight:700;
}
.masthead__lede{
  max-width:300px;font-size:13.5px;line-height:1.95;
  color:var(--ink-2);text-align:left;
}
.masthead__mark{
  position:absolute;right:-26px;top:38px;width:142px;height:auto;
  opacity:.1;filter:grayscale(.2);
}
.masthead--join h1{letter-spacing:.14em;}

.js .masthead h1{clip-path:inset(0 0 100% 0);}
.is-ready .masthead h1{animation:inkDrop 1s cubic-bezier(.2,.75,.2,1) .08s both;}
.is-ready .masthead__lede,
.is-ready .quick-index{animation:riseIn .8s cubic-bezier(.2,.7,.2,1) .28s both;}
.is-ready .masthead__top{animation:riseIn .7s ease both;}

.quick-index{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;
}
.quick-index a{
  font:400 9.5px var(--sans);letter-spacing:.1em;
  padding:7px 10px;border:1px solid var(--line);
  text-decoration:none;color:var(--ink-2);
  background:rgba(255,255,255,.18);
  transition:background .25s ease,color .25s ease;
}
.quick-index a:active{background:var(--ink);color:var(--paper);}

.sec{padding:42px var(--pad) 0;}
.sec__head{
  display:flex;align-items:baseline;gap:11px;
  padding-bottom:13px;border-bottom:1px solid var(--line);
  margin-bottom:22px;
}
.sec__no{
  font:700 8.5px var(--sans);letter-spacing:.16em;color:var(--gold);
}
.sec__head h2{font-size:23px;line-height:1.2;letter-spacing:.1em;}
.sec__meta{
  margin-left:auto;font:400 8.5px var(--sans);letter-spacing:.12em;
  color:var(--muted);white-space:nowrap;
}
.sec__lede{
  font-size:12.5px;line-height:1.9;color:var(--muted);
  margin:-8px 0 20px;text-align:left;
}

/* 缘起 */
.origin-date{
  display:flex;align-items:baseline;gap:10px;
  margin:0 0 16px;
}
.origin-date b{
  font-size:clamp(30px,8.5vw,36px);line-height:1;font-weight:700;
  letter-spacing:.03em;color:var(--ink);font-variant-numeric:tabular-nums;
}
.origin-date span{
  font:400 8.5px var(--sans);letter-spacing:.18em;color:var(--gold);
}

/* 文化 */
.culture{
  position:relative;overflow:hidden;
  margin:34px 0 0;padding:40px var(--pad) 38px;
  background:var(--navy);color:var(--cream);
}
.culture::before{
  content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;
  border:1px solid rgba(203,169,99,.16);border-radius:50%;
}
.culture::after{
  content:"";position:absolute;right:-10px;top:-10px;width:150px;height:150px;
  border:1px solid rgba(203,169,99,.1);border-radius:50%;
}
.culture__head{
  position:relative;z-index:1;display:flex;align-items:center;gap:14px;
  margin-bottom:22px;
}
.culture__head .eyebrow{color:var(--gold-2);}
.culture__head .rule{flex:1;background:rgba(237,229,211,.18);}
.culture__pair{
  position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;
  border:1px solid rgba(237,229,211,.18);
}
.culture__pair > div{padding:20px 14px 18px;}
.culture__pair > div + div{border-left:1px solid rgba(237,229,211,.18);}
.culture__char{
  display:block;font-size:54px;line-height:1;font-weight:700;
  color:var(--gold-2);margin-bottom:14px;
}
.culture__src{
  font:400 8px var(--sans);letter-spacing:.1em;line-height:1.7;
  color:rgba(237,229,211,.48);margin-bottom:6px;
}
.culture__q{
  font-size:12.5px;line-height:1.75;color:rgba(237,229,211,.9);
}
.culture .prose{
  position:relative;z-index:1;padding-top:24px;color:rgba(237,229,211,.82);
  font-size:14.5px;
}
.culture__line{
  position:relative;z-index:1;margin:26px 0 0;padding-top:22px;
  border-top:1px solid rgba(237,229,211,.16);
  font-size:clamp(20px,5.5vw,23px);line-height:1.7;color:#FFF6E7;
  letter-spacing:.02em;
}
.culture__line b{color:var(--gold-2);font-weight:700;}

/* 四组 */
.group{
  position:relative;padding:24px 0;
  border-top:1px solid var(--line);
}
.group:first-of-type{border-top:0;padding-top:0;}
.group__head{display:flex;align-items:center;gap:11px;margin-bottom:11px;}
.group__no{
  font:400 8.5px var(--sans);letter-spacing:.1em;color:var(--gold);
}
.group h3{font-size:25px;line-height:1.2;letter-spacing:.09em;}
.group__intro + .group__intro{margin-top:11px;}
.group__intro{
  font-size:14px;line-height:1.95;color:var(--ink-2);
  text-align:left;
}
.group__link{
  display:inline-flex;align-items:center;gap:7px;
  margin-top:12px;padding-bottom:4px;
  font:400 9.5px var(--sans);letter-spacing:.12em;
  color:var(--red);text-decoration:none;
  border-bottom:1px solid rgba(185,58,43,.3);
}
.group__link i{font-style:normal;transition:transform .3s ease;}
.group__link:active i{transform:translateX(3px);}
.margin-note{
  display:table;margin:12px 0 4px;
  padding:2px 5px 3px;
  font:400 13px var(--sans);letter-spacing:.06em;
  color:var(--red);transform:rotate(-4deg);
  border-bottom:1px dashed rgba(185,58,43,.55);
}

/* 指导老师 */
.advisor{
  display:grid;grid-template-columns:104px 1fr;gap:15px;
  padding:22px 0;border-top:1px solid var(--line);
}
.advisor:first-of-type{border-top:0;padding-top:0;}
.advisor__photo{
  position:relative;overflow:hidden;align-self:start;
  background:var(--paper-3);
}
.advisor__photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,20,33,.12),transparent 45%,rgba(12,20,33,.1));
  mix-blend-mode:multiply;
}
.advisor__photo img{
  width:100%;height:136px;object-fit:cover;object-position:center 18%;
  filter:grayscale(.92) sepia(.1) contrast(1.06);
}
.advisor h3{font-size:21px;line-height:1.3;letter-spacing:.06em;margin-bottom:3px;}
.advisor__role{
  font:400 8.5px var(--sans);letter-spacing:.08em;line-height:1.7;
  color:var(--gold);margin-bottom:9px;
}
.advisor ul{list-style:none;margin:0;padding:0;}
.advisor li{
  position:relative;padding-left:9px;margin-bottom:3px;
  font-size:12px;line-height:1.72;color:var(--ink-2);
}
.advisor li::before{
  content:"";position:absolute;left:0;top:.72em;
  width:3px;height:1px;background:var(--gold);
}

/* 赛历 */
.calendar{list-style:none;margin:0;padding:0;position:relative;}
.calendar::before{
  content:"";position:absolute;left:71px;top:10px;bottom:10px;
  width:1px;background:var(--line);
}
.cal__item{
  position:relative;display:grid;grid-template-columns:72px 1fr;
  padding:15px 0;
}
.cal__item::before{
  content:"";position:absolute;left:71px;top:0;bottom:0;width:1px;
  background:var(--red);opacity:.65;
  transform:scaleY(0);transform-origin:50% 0;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.cal__item.is-in::before{transform:scaleY(1);}
.cal__when{position:relative;}
.cal__month{
  font:700 12.5px var(--serif);letter-spacing:.03em;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.cal__dot{
  position:absolute;left:67px;top:6px;width:9px;height:9px;
  border-radius:50%;background:var(--paper);border:1px solid rgba(185,58,43,.55);
  transition:background .4s ease,transform .4s ease;
}
.cal__item.is-in .cal__dot{background:var(--red);transform:scale(1.05);}
.cal__body{padding-left:12px;}
.cal__body p{
  font-size:13px;line-height:1.85;color:var(--ink-2);
  text-align:left;
}

/* 荣誉 */
.honors{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.honor{
  position:relative;display:grid;grid-template-columns:50px 1fr;gap:11px;
  padding:15px 0;border-bottom:1px solid var(--line-soft);
}
.honor__year{
  font:400 11px var(--sans);white-space:nowrap;letter-spacing:.04em;color:var(--gold);
  padding-top:3px;font-variant-numeric:tabular-nums;
}
.honor p{
  font-size:13.5px;line-height:1.8;color:var(--ink-2);
  text-align:left;
}
.honor em{font-style:normal;color:var(--red);font-weight:700;}
.honor--best{background:linear-gradient(90deg,rgba(185,58,43,.055),transparent 72%);}
.honor--best::before{
  content:"";position:absolute;left:-24px;top:0;bottom:0;width:2px;
  background:var(--red);
}
.honor__seal{
  position:absolute;right:1px;bottom:7px;width:25px;height:auto;
  opacity:0;transform:rotate(-12deg) scale(1.5);
  mix-blend-mode:multiply;pointer-events:none;
}
.honor--best.is-in .honor__seal{animation:stampTiny .6s cubic-bezier(.2,.9,.2,1) .45s both;}
@keyframes stampTiny{
  0%{opacity:0;transform:rotate(-12deg) scale(1.5);}
  70%{opacity:.85;transform:rotate(-5deg) scale(.94);}
  100%{opacity:.8;transform:rotate(-6deg) scale(1);}
}

/* 下一页 */
.next{
  margin:46px var(--pad) 0;padding:30px 0 4px;
  border-top:1px solid var(--line);
}
.next__link{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;padding:18px 0;
  border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
  text-decoration:none;
}
.next__link span{font-size:24px;letter-spacing:.08em;font-weight:700;}
.next__link i{font-style:normal;font-family:var(--sans);color:var(--red);font-size:18px;}
.next__note{
  margin-top:12px;font-size:11.5px;line-height:1.8;color:var(--muted);
}

/* ============================================================
   界面三 · 加入
   ============================================================ */
.join-card{
  position:relative;padding:26px 0 28px;
  border-top:1px solid var(--line);
}
.join-card:first-of-type{border-top:0;padding-top:0;}
.join-card__head{display:flex;align-items:center;gap:11px;margin-bottom:14px;}
.join-card__no{
  font:400 8.5px var(--sans);letter-spacing:.1em;color:var(--gold);
}
.join-card h2{font-size:26px;line-height:1.2;letter-spacing:.09em;}
.join-card__method{
  font-size:14px;line-height:1.95;color:var(--ink-2);
}
.join-card__method p{
  margin:0 0 1em;text-align:left;
}
.join-card__method p:last-child{margin-bottom:0;}
.join-card__method p:first-child{color:var(--ink);}
.join-note{
  position:relative;margin-top:16px;padding:16px 16px 15px;
  background:var(--paper-2);border-left:2px solid var(--gold);
  font-size:13px;line-height:1.9;color:var(--ink-2);
  text-align:left;
}
.join-note--red{border-left-color:var(--red);background:rgba(185,58,43,.045);}
.join-note .kicker{
  display:block;font:400 8px var(--sans);letter-spacing:.24em;
  color:var(--gold);margin-bottom:7px;
}
.join-note--red .kicker{color:var(--red);}
.join-note em{font-style:normal;color:var(--red);font-weight:700;}

/* 新生节点 */
.nodes{list-style:none;margin:0;padding:0;position:relative;}
.nodes::before{
  content:"";position:absolute;left:53px;top:8px;bottom:8px;
  width:1px;background:var(--line);
}
.node{
  position:relative;display:grid;grid-template-columns:54px 1fr;gap:12px;
  padding:14px 0;
}
.node__month{
  position:relative;font:700 12px var(--serif);letter-spacing:.02em;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.node__month::before{
  content:"";position:absolute;left:49px;top:4px;width:9px;height:9px;
  border-radius:50%;background:var(--paper);border:1px solid var(--line);
  transition:background .4s ease,border-color .4s ease,box-shadow .4s ease;
}
.node.is-in .node__month::before{background:var(--ink);border-color:var(--ink);}
.node--new .node__month::before{
  background:var(--red);border-color:var(--red);
  box-shadow:0 0 0 4px rgba(185,58,43,.1);
}
.node p{
  font-size:13px;line-height:1.85;color:var(--ink-2);
  text-align:left;
}
.node__flag{
  display:inline-block;margin-right:5px;padding:1px 4px 2px;
  font:400 8px var(--sans);letter-spacing:.1em;line-height:1.4;
  color:var(--red);border:1px solid rgba(185,58,43,.4);
  vertical-align:1px;white-space:nowrap;
}

/* 报名占位 */
.placeholder{
  position:relative;margin-top:6px;padding:22px 18px 20px;
  border:1px dashed rgba(185,58,43,.5);
  background:rgba(185,58,43,.025);
}
.placeholder::before,.placeholder::after{
  content:"";position:absolute;width:9px;height:9px;border-color:var(--red);
}
.placeholder::before{left:-1px;top:-1px;border-left:2px solid;border-top:2px solid;}
.placeholder::after{right:-1px;bottom:-1px;border-right:2px solid;border-bottom:2px solid;}
.placeholder__top{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  margin-bottom:12px;
}
.placeholder__tag{
  font:400 8px var(--sans);letter-spacing:.18em;color:var(--red);
  border:1px solid rgba(185,58,43,.4);padding:4px 6px;line-height:1;
}
.placeholder__date{
  font:400 8px var(--sans);letter-spacing:.12em;color:var(--muted);
}
.placeholder__title{
  font-size:21px;line-height:1.4;font-weight:700;letter-spacing:.06em;
  margin-bottom:8px;
}
.placeholder__desc{
  font-size:12.5px;line-height:1.9;color:var(--ink-2);
}
.placeholder__qr{
  display:grid;place-items:center;
  width:104px;height:104px;margin:20px auto 18px;
  border:1px dashed var(--line);
  font:400 8.5px var(--sans);letter-spacing:.18em;line-height:1.9;
  color:var(--muted);text-align:center;
  background:
    linear-gradient(90deg,transparent 49.6%,rgba(15,25,41,.05) 49.6%,rgba(15,25,41,.05) 50.4%,transparent 50.4%),
    linear-gradient(0deg,transparent 49.6%,rgba(15,25,41,.05) 49.6%,rgba(15,25,41,.05) 50.4%,transparent 50.4%);
}
.btn--disabled{
  width:100%;justify-content:center;min-height:50px;
  background:var(--paper-2);color:var(--muted);
  border:1px solid var(--line);box-shadow:none;cursor:not-allowed;
}
.placeholder__note{
  margin-top:13px;font:400 9.5px var(--sans);letter-spacing:.05em;
  line-height:1.9;color:var(--muted);
}

/* 结尾 */
.finale{
  position:relative;overflow:hidden;
  margin-top:50px;padding:66px var(--pad) 34px;
  background:var(--navy);color:var(--cream);
}
.finale__bg{
  position:absolute;inset:0;background:url('../img/stage.jpg') center 30%/cover no-repeat;
  opacity:.2;filter:grayscale(1) contrast(1.12) brightness(.8);
}
.finale::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,var(--navy) 0%,rgba(12,20,33,.62) 42%,rgba(12,20,33,.92) 100%);
}
.finale > *{position:relative;z-index:1;}
.finale .eyebrow{color:var(--gold-2);}
.finale__quote{
  margin:18px 0 24px;
  font-size:clamp(27px,8vw,35px);line-height:1.55;font-weight:700;
  letter-spacing:.03em;color:#FFF6E7;
}
.finale__text{
  font-size:13px;line-height:1.95;color:rgba(237,229,211,.78);
  text-align:left;
}
.finale__mark{
  display:flex;align-items:center;gap:15px;margin:30px 0 26px;
}
.finale__mark img:first-child{width:48px;height:auto;opacity:.95;}
.finale__mark img:last-child{width:40px;height:auto;opacity:.9;transform:rotate(-5deg);}
.finale__foot{
  padding-top:20px;border-top:1px solid rgba(237,229,211,.16);
  display:flex;justify-content:space-between;align-items:flex-end;gap:12px;
}
.finale__foot p{
  font:400 8.5px var(--sans);letter-spacing:.12em;line-height:1.9;
  color:rgba(237,229,211,.5);
}
.back{
  display:inline-flex;align-items:center;gap:7px;
  font:400 9px var(--sans);letter-spacing:.14em;
  color:var(--gold-2);text-decoration:none;
  border-bottom:1px solid rgba(203,169,99,.35);padding-bottom:4px;
  white-space:nowrap;
}

/* ============================================================
   滚动入场
   ============================================================ */
.js .reveal{opacity:0;transform:translateY(16px);}
.js .reveal.is-in{
  opacity:1;transform:none;
  transition:opacity .75s ease,transform .85s cubic-bezier(.2,.7,.2,1);
}
.js .reveal[data-reveal="left"]{transform:translateX(-18px);}
.js .reveal[data-reveal="right"]{transform:translateX(18px);}
.js .reveal[data-reveal="fade"]{transform:none;}
.js .reveal[data-reveal="scale"]{transform:scale(.97);}

/* 逐项延迟 */
.js .stagger > *{opacity:0;transform:translateY(12px);}
.js .stagger.is-in > *{
  opacity:1;transform:none;
  transition:opacity .65s ease,transform .75s cubic-bezier(.2,.7,.2,1);
}
.js .stagger.is-in > *:nth-child(1){transition-delay:.02s;}
.js .stagger.is-in > *:nth-child(2){transition-delay:.09s;}
.js .stagger.is-in > *:nth-child(3){transition-delay:.16s;}
.js .stagger.is-in > *:nth-child(4){transition-delay:.23s;}
.js .stagger.is-in > *:nth-child(5){transition-delay:.3s;}
.js .stagger.is-in > *:nth-child(6){transition-delay:.37s;}
.js .stagger.is-in > *:nth-child(7){transition-delay:.44s;}
.js .stagger.is-in > *:nth-child(8){transition-delay:.51s;}
.js .stagger.is-in > *:nth-child(9){transition-delay:.58s;}

/* ============================================================
   跨页面过渡
   ============================================================ */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:vtOut .22s ease both;}
::view-transition-new(root){animation:vtIn .38s cubic-bezier(.2,.7,.2,1) both;}
@keyframes vtOut{to{opacity:0;transform:translateY(-5px);}}
@keyframes vtIn{from{opacity:0;transform:translateY(9px);}}

/* ============================================================
   小屏微调
   ============================================================ */
@media (max-width:370px){
  :root{--pad:21px;}
  .hero__mark{width:260px;left:-46px;}
  .hero__name{font-size:74px;}
  .hero__actions{grid-template-columns:1.25fr 1fr;}
  .advisor{grid-template-columns:92px 1fr;gap:13px;}
  .advisor__photo img{height:124px;}
  .cal__item{grid-template-columns:66px 1fr;}
  .calendar::before,.cal__item::before{left:65px;}
  .cal__dot{left:61px;}
  .group h3{font-size:23px;}
  .honor{grid-template-columns:52px 1fr;gap:10px;}
}

@media (max-height:700px){
  .hero__type{padding-top:14px;}
  .hero__mark{width:250px;top:40px;}
  .hero__name{font-size:74px;}
  .hero__line{font-size:18px;margin-bottom:14px;}
  .hero__wave{display:none;}
  .hero__actions .btn{min-height:46px;}
}

/* ============================================================
   减弱动效
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    transition-delay:0ms !important;
  }
  .js .reveal,.js .stagger > *{opacity:1 !important;transform:none !important;}
  .js .photo__frame{clip-path:none !important;}
  .hero__name{clip-path:none !important;}
  .silence p{color:var(--cream) !important;letter-spacing:.03em !important;}
  .hero__seal,.motto__seal,.honor__seal{opacity:.9 !important;transform:rotate(-4deg) !important;}
  .hero__wave path,.crane__bird path{stroke-dashoffset:0 !important;}
  .cal__item::before{transform:scaleY(1) !important;}
}
