@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"); *,::before,::after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / 0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / 0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}.container{margin-left:auto;margin-right:auto;max-width:1320px;padding-left:1.5rem;padding-right:1.5rem;}.btn{display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;border-radius:9999px;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;font-weight:500;text-decoration:none;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;transition-duration:200ms;}.btn-ghost{display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;border-width:1px;--un-border-opacity:1;border-color:rgb(229 224 213 / var(--un-border-opacity));border-radius:9999px;background-color:transparent /* transparent */;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(6 17 21 / var(--un-text-opacity)) /* #061115 */;font-weight:500;text-decoration:none;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;transition-duration:200ms;}.btn-mint{display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;border-radius:9999px;--un-bg-opacity:1;background-color:rgb(34 199 184 / var(--un-bg-opacity)) /* #22C7B8 */;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(6 17 21 / var(--un-text-opacity)) /* #061115 */;font-weight:500;text-decoration:none;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;transition-duration:200ms;}.btn-primary{display:inline-flex;cursor:pointer;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;border-radius:9999px;--un-bg-opacity:1;background-color:rgb(6 17 21 / var(--un-bg-opacity)) /* #061115 */;padding-left:1.25rem;padding-right:1.25rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(251 250 246 / var(--un-text-opacity)) /* #FBFAF6 */;font-weight:500;text-decoration:none;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;transition-duration:200ms;}.eyebrow{display:inline-flex;align-items:center;gap:0.5rem;font-size:11px;--un-text-opacity:1;color:rgb(107 111 115 / var(--un-text-opacity)) /* #6B6F73 */;letter-spacing:0.2em;font-family:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;text-transform:uppercase;}.btn-ghost:hover{--un-border-opacity:1;border-color:rgb(6 17 21 / var(--un-border-opacity));}.btn-mint:hover{--un-bg-opacity:1;background-color:rgb(169 237 69 / var(--un-bg-opacity)) /* #A9ED45 */;}.btn-primary:hover{--un-bg-opacity:1;background-color:rgb(10 61 58 / var(--un-bg-opacity)) /* #0a3d3a */;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}.grid{display:grid;}.ms{margin-inline-start:1rem;}.mt-3{margin-top:0.75rem;}.mt-6{margin-top:1.5rem;}.block{display:block;}.inline-block{display:inline-block;}.hidden{display:none;}.h1{height:0.25rem;}.h2{height:0.5rem;}.h3{height:0.75rem;}.h4{height:1rem;}.h6{height:1.5rem;}.flex{display:flex;}.flex-shrink{flex-shrink:1;}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}.b,.border{border-width:1px;}.uppercase{text-transform:uppercase;}.italic{font-style:italic;}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;} html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}
/* =========================================================
   本地化字体 - 智脑空间科学
   由 scripts/download-fonts.py 从 Google Fonts 拉取并改写
   包含: Fraunces (300/400/500/600) + Inter (300-700) + JetBrains Mono (400/500)
   切片: latin + latin-ext (CJK 用系统字体)
   ========================================================= */

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/fraunces-300-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/fraunces-300-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/fraunces-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/fraunces-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/fraunces-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/fraunces-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/fraunces-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/fraunces-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/inter-300-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/inter-300-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/inter-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/inter-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/inter-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/inter-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/inter-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/inter-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* =========================================================
   智脑空间 — 共享设计 Tokens
   适用于：企业官网 / 品牌官网 / 后续产品
   ========================================================= */

:root {
  /* ---- 品牌识别色 (全站统一, 不可修改) ---- */
  --mint:          #22C7B8;   /* 实验青(主品牌) */
  --mint-deep:     #0FA296;
  --mint-tint:     #D9F3EF;
  --blue:          #3F6CFF;   /* 空间蓝(交互/按钮) */
  --blue-deep:     #2A4ECC;
  --blue-tint:     #DDE4FF;
  --green:         #A9ED45;   /* 科学绿(状态点) */
  --violet:        #735DF5;   /* AI/空间计算点缀 */
  --amber:         #D3A84B;   /* 关键学习/警示 */
  --red:           #C44545;   /* 错误状态 */

  /* ---- 中性色基底 (主题变体各自覆盖) ---- */
  --ink:           #061115;
  --ink-soft:      #0E1A20;
  --paper:         #FBFAF6;
  --paper-soft:    #F2EFE8;
  --paper-line:    #E5E0D5;

  /* ---- 文字色阶基底 (主题变体各自覆盖) ---- */
  --text-1:        #061115;
  --text-2:        #2A2E32;
  --text-3:        #6B6F73;
  --text-4:        #8B8F93;
  --text-inv:      #FBFAF6;

  /* ---- 间距 (8 倍数, 全站统一) ---- */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 128px;

  /* ---- 字号 (全站统一) ---- */
  --fs-1: 12px;
  --fs-2: 14px;
  --fs-3: 16px;
  --fs-4: 18px;
  --fs-5: 22px;
  --fs-6: 28px;
  --fs-7: 36px;
  --fs-8: 48px;
  --fs-9: 64px;

  /* ---- 行高 (全站统一) ---- */
  --lh-tight: 1.15;
  --lh-snug: 1.3;
  --lh-base: 1.55;
  --lh-loose: 1.7;

  /* ---- 圆角 (全站统一) ---- */
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-pill: 999px;

  /* ---- 阴影 (全站统一, 克制纸感) ---- */
  --sh-1: 0 1px 2px rgba(6,17,21,0.04);
  --sh-2: 0 2px 6px rgba(6,17,21,0.06);
  --sh-3: 0 6px 18px rgba(6,17,21,0.08);
  --sh-4: 0 18px 48px rgba(6,17,21,0.10);

  /* ---- 字体栈 (全站统一) ----
     v0.4.0 重大变更: 完全照搬讯飞官网 (iflytek.com) 字体策略
     - 移除全部 webfont (Inter / Fraunces / JetBrains Mono)
     - 中文回退顺序对齐: Hiragino Sans GB (macOS) → microsoft yahei (Windows) → arial (Linux) → sans-serif
     - 优势: 零 webfont 加载, 性能最优, 跨设备接受字体差异
     - 妥协: macOS / Windows / Linux 上字体视觉效果不同 */
  --font-sans: "Hiragino Sans GB", "microsoft yahei", "Microsoft YaHei", "微软雅黑", arial, sans-serif;
  /* display 与 mono 保留为未来扩展位 (当前未在 official-web 模板中使用) */
  --font-display: Georgia, "Times New Roman", "宋体", "SimSun", serif;
  --font-mono: "SF Mono", Menlo, Consolas, "Courier New", monospace;

  /* 字体渲染优化: 讯飞风 macOS 中文不"发虚" + 全平台统一 */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;

  /* ---- 动效 (全站统一) ---- */
  --t-fast: 120ms;
  --t-base: 200ms;
  --t-slow: 360ms;
  --t-slower: 600ms;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ---- 容器 (全站统一) ---- */
  --container: 1240px;
  --container-narrow: 880px;
  --gutter: 24px;

  /* ---- 渐变 (克制使用) ---- */
  --grad-mint: linear-gradient(135deg, #22C7B8 0%, #3F6CFF 100%);
  --grad-ink:  linear-gradient(180deg, #061115 0%, #0E1A20 100%);
  /* 别名:官方 web 早期使用的旧 token 名字,别名指向 mint 渐变(历史 bug 修复) */
  --gradient-primary: var(--grad-mint);

  /* ---- RGB 别名 (便于 rgba(alpha) 计算,避免层叠 hardcode) ---- */
  /* v0.3.0 新增:official-web 用 --blue-rgb / --violet-rgb / --amber-rgb 渲染 alpha 透明度 */
  --blue-rgb:   63, 108, 255;   /* = #3F6CFF */
  --blue-deep-rgb: 42, 78, 204; /* = #2A4ECC */
  --violet-rgb: 115, 93, 245;   /* = #735DF5 */
  --amber-rgb:  211, 168, 75;   /* = #D3A84B */
  --red-rgb:    196, 69, 69;    /* = #C44545 */
  --green-rgb:  169, 237, 69;   /* = #A9ED45 */
}

/* =========================================================
   智脑科学 品牌官网 — Design Tokens (v1.1)
   共享 token 已迁移至 design-system/tokens.css
   本文件仅保留品牌官网特有 / 扩展 token
   ========================================================= */

:root {
  /* ---- 中性色扩展 (共享层之外的次要文字) ---- */
  --muted:         #6B6F73;   /* 次要文字 */
  --muted-2:       #8B8F93;

  /* ---- 字号扩展 (共享层只到 fs-9) ---- */
  --fs-10: 88px;

  /* 章节序号字号 */
  --fs-section: 14px;

  /* 学术脚注字号 (数据脚注、引用、注释) */
  --fs-foot: 11px;

  /* 巨型数据展示字号 */
  --fs-display: clamp(64px, 9vw, 128px);

  /* ---- 阴影扩展 (共享层没有 --sh-ink) ---- */
  --sh-ink: 0 1px 0 rgba(6,17,21,0.06), 0 0 0 1px rgba(6,17,21,0.04);

  /* ---- 学术风工具 token (新增) ---- */
  --hairline: 1px solid var(--paper-line);
  --hairline-dark: 1px solid rgba(6, 17, 21, 0.08);
  --hairline-inv: 1px solid rgba(251, 250, 246, 0.10);

  /* 装饰点直径 */
  --dot-s: 4px;
  --dot-m: 6px;
  --dot-l: 8px;

  /* ---- 动效增强 token (v1.1, 2026-07-04) ---- */
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);  /* 菜单 hover 弹性 */
  --t-stagger: 80ms;                                  /* 错落间隔 */
  --t-stagger-char: 30ms;                             /* 字符级间隔 */

  /* ---- 全局动效可访问性开关 (v1.1) ---- */
  /* 尊重用户系统设置：减少动画时所有动效退化为即时显示 */
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
}



/* =========================================================
   智脑科学 品牌官网 - 基础样式与字体
   ========================================================= */
* { box-sizing: border-box; margin: 0; padding: 0; }
*::before, *::after { box-sizing: border-box; }
html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
}
body {
  font-family: var(--font-sans);
  font-size: var(--fs-3);
  line-height: var(--lh-base);
  color: var(--text-1);
  background: var(--paper);
  overflow-x: hidden;
  font-feature-settings: "ss01", "cv11";
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
img, svg { display: block; max-width: 100%; }
input, textarea, select { font-family: inherit; font-size: inherit; }
::selection { background: var(--mint-tint); color: var(--ink); }
/* ---- 排版 ---- */
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 500; line-height: var(--lh-tight); letter-spacing: -0.01em; color: var(--text-1); }
h1 { font-size: clamp(40px, 6vw, var(--fs-9)); }
h2 { font-size: clamp(32px, 4.2vw, var(--fs-8)); }
h3 { font-size: var(--fs-7); }
h4 { font-size: var(--fs-5); }
h5 { font-size: var(--fs-4); font-family: var(--font-sans); font-weight: 600; }
p { line-height: var(--lh-loose); }
.eyebrow {
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--mint-deep);
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
}
.eyebrow::before {
  content: ""; width: 24px; height: 1px; background: currentColor;
}
.lead { font-size: var(--fs-5); line-height: var(--lh-base); color: var(--text-2); max-width: 60ch; }
.serif-italic { font-family: var(--font-display); font-style: italic; font-weight: 400; }
.mono { font-family: var(--font-mono); font-size: var(--fs-2); letter-spacing: 0.04em; }
/* ---- 容器 ---- */
.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.container-narrow { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--gutter); }
/* ---- Section ---- */
section { padding: var(--s-9) 0; position: relative; }
.section-tight { padding: var(--s-7) 0; }
.section-dark { background: var(--ink); color: var(--text-inv); }
.section-dark h1, .section-dark h2, .section-dark h3, .section-dark h4 { color: var(--text-inv); }
.section-paper { background: var(--paper-soft); }
/* ---- 按钮 ---- */
.btn {
  display: inline-flex; align-items: center; gap: var(--s-2);
  padding: 14px 22px;
  border-radius: var(--r-pill);
  font-weight: 500;
  font-size: var(--fs-3);
  transition: all var(--t-base) var(--ease);
  white-space: nowrap;
  border: 1px solid transparent;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--ink); color: var(--text-inv); }
.btn-primary:hover { background: var(--blue); box-shadow: var(--sh-3); }
.btn-mint { background: var(--mint); color: var(--ink); }
.btn-mint:hover { background: var(--mint-deep); color: var(--text-inv); }
.btn-ghost { background: transparent; color: var(--text-1); border-color: var(--paper-line); }
.btn-ghost:hover { border-color: var(--ink); background: var(--paper); }
.btn-ghost-inv { background: transparent; color: var(--text-inv); border-color: rgba(251,250,246,0.25); }
.btn-ghost-inv:hover { border-color: var(--text-inv); background: rgba(251,250,246,0.05); }
.btn-arrow svg { transition: transform var(--t-base) var(--ease); }
.btn:hover .btn-arrow svg { transform: translateX(4px); }
/* ---- 卡片 (克制的纸感) ---- */
.card {
  background: var(--paper);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  padding: var(--s-5);
  transition: all var(--t-base) var(--ease);
}
.card:hover { transform: translateY(-2px); box-shadow: var(--sh-3); border-color: var(--ink); }
/* ---- 滚动入场动画 ---- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity var(--t-slower) var(--ease), transform var(--t-slower) var(--ease); }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 80ms; }
.reveal-delay-2 { transition-delay: 160ms; }
.reveal-delay-3 { transition-delay: 240ms; }
.reveal-delay-4 { transition-delay: 320ms; }
.reveal-delay-5 { transition-delay: 400ms; }
/* ---- 标签 ---- */
.tag {
  display: inline-flex; align-items: center; gap: var(--s-1);
  padding: 4px 10px;
  border-radius: var(--r-pill);
  font-size: var(--fs-1);
  font-weight: 500;
  font-family: var(--font-mono);
  letter-spacing: 0.02em;
  background: var(--paper-soft);
  color: var(--text-2);
  border: 1px solid var(--paper-line);
}
.tag-mint { background: var(--mint-tint); color: var(--mint-deep); border-color: transparent; }
.tag-blue { background: var(--blue-tint); color: var(--blue-deep); border-color: transparent; }
.tag-amber { background: rgba(211,168,75,0.12); color: #8A6A1F; border-color: transparent; }
.tag-violet { background: rgba(115,93,245,0.10); color: var(--violet); border-color: transparent; }
.tag-green { background: rgba(169,237,69,0.18); color: #4F7A00; border-color: transparent; }
.tag-dark { background: var(--ink); color: var(--text-inv); border-color: transparent; }
/* ---- 网格线分隔 (学术感) ---- */
.rule { height: 1px; background: var(--paper-line); border: none; margin: 0; }
.section-dark .rule { background: rgba(251,250,246,0.12); }
/* ---- 工具 ---- */
.flex { display: flex; }
.grid { display: grid; }
.between { justify-content: space-between; }
.items-center { align-items: center; }
.gap-1 { gap: var(--s-1); }
.gap-2 { gap: var(--s-2); }
.gap-3 { gap: var(--s-3); }
.gap-4 { gap: var(--s-4); }
.gap-5 { gap: var(--s-5); }
.gap-6 { gap: var(--s-6); }
.mt-2 { margin-top: var(--s-2); }
.mt-3 { margin-top: var(--s-3); }
.mt-4 { margin-top: var(--s-4); }
.mt-5 { margin-top: var(--s-5); }
.mt-6 { margin-top: var(--s-6); }
.mt-7 { margin-top: var(--s-7); }
.mb-2 { margin-bottom: var(--s-2); }
.mb-3 { margin-bottom: var(--s-3); }
.mb-4 { margin-bottom: var(--s-4); }
.mb-5 { margin-bottom: var(--s-5); }
.mb-6 { margin-bottom: var(--s-6); }
.text-center { text-align: center; }
.text-muted { color: var(--text-3); }
/* ---- 装饰元素 ---- */
.dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--mint); }
.dot-amber { background: var(--amber); }
.dot-red { background: var(--red); }
.dot-blue { background: var(--blue); }
.kbd {
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 2px 6px;
  border: 1px solid var(--paper-line);
  border-bottom-width: 2px;
  border-radius: var(--r-xs);
  background: var(--paper);
  color: var(--text-3);
}
@media (max-width: 768px) {
  :root { --gutter: 20px; }
  section { padding: var(--s-7) 0; }
  .lead { font-size: var(--fs-4); }
}
/* ---- 错落入场 (data-stagger) ---- */
[data-stagger] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--t-slower) var(--ease), transform var(--t-slower) var(--ease);
  transition-delay: var(--stagger-delay, 0ms);
  will-change: opacity, transform;
}
[data-stagger].in {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  [data-stagger] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
/* =========================================================
   智脑科学 品牌官网 - 导航 + 页脚
   ========================================================= */

/* ---- 顶部导航 ---- */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 16px 0;
  transition: all var(--t-base) var(--ease);
  background: transparent;
}
.site-header.scrolled {
  background: rgba(251, 250, 246, 0.78);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid var(--paper-line);
  padding: 12px 0;
}
.nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-5);
}
.brand-mark {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 19px;
  letter-spacing: -0.01em;
  color: var(--text-1);
}
.brand-mark svg { flex-shrink: 0; }
.brand-mark .brand-en {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: var(--text-3);
  text-transform: uppercase;
  margin-top: 2px;
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(251,250,246,0.5);
  backdrop-filter: blur(10px);
  padding: 4px;
  border-radius: var(--r-pill);
  border: 1px solid var(--paper-line);
}
.nav-link {
  padding: 8px 16px;
  font-size: var(--fs-2);
  font-weight: 500;
  color: var(--text-2);
  border-radius: var(--r-pill);
  transition: all var(--t-fast) var(--ease);
  position: relative;
}
.nav-link:hover { color: var(--text-1); }
.nav-link.active {
  background: var(--ink);
  color: var(--text-inv);
}

.nav-cta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.nav-cta .btn { padding: 10px 18px; font-size: var(--fs-2); }

.nav-toggle {
  display: none;
  width: 40px; height: 40px;
  border-radius: var(--r-pill);
  background: var(--paper-soft);
  align-items: center;
  justify-content: center;
}
.nav-toggle span {
  display: block; width: 18px; height: 1.5px; background: var(--ink); position: relative;
}
.nav-toggle span::before, .nav-toggle span::after {
  content: ""; position: absolute; left: 0; width: 100%; height: 1.5px; background: var(--ink);
}
.nav-toggle span::before { top: -6px; }
.nav-toggle span::after { top: 6px; }

@media (max-width: 980px) {
  .nav-menu { display: none; }
  .nav-toggle { display: flex; }
  .nav-cta .btn-ghost { display: none; }
}

/* ---- 页脚 ---- */
.site-footer {
  background: var(--ink);
  color: var(--text-inv);
  padding: var(--s-9) 0 var(--s-5);
  position: relative;
  overflow: hidden;
}
.site-footer::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--mint), transparent);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--s-7);
  padding-bottom: var(--s-7);
  border-bottom: 1px solid rgba(251,250,246,0.10);
}
.footer-brand .brand-mark { color: var(--text-inv); margin-bottom: var(--s-4); }
.footer-brand p { color: rgba(251,250,246,0.55); max-width: 32ch; font-size: var(--fs-2); }
.footer-col h6 {
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(251,250,246,0.45);
  margin-bottom: var(--s-4);
}
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-col a { color: rgba(251,250,246,0.78); font-size: var(--fs-2); transition: color var(--t-fast); }
.footer-col a:hover { color: var(--mint); }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-3);
  padding-top: var(--s-5);
  font-size: var(--fs-1);
  color: rgba(251,250,246,0.40);
}
.footer-bottom a { color: rgba(251,250,246,0.55); }
.footer-bottom a:hover { color: var(--mint); }
.footer-theme-note {
  margin-top: var(--s-3);
  font-size: var(--fs-1);
  color: var(--text-inv);
  opacity: 0.5;
}

@media (max-width: 768px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--s-5); }
  .footer-brand { grid-column: span 2; }
}
/* =========================================================
   智脑科学 品牌官网 - 通用 page-hero (5 个变体)
   ========================================================= */

/* ---- 通用 page-hero 基础 ---- */
.page-hero {
  padding-top: 120px;
  padding-bottom: var(--s-8);
  border-bottom: 1px solid var(--paper-line);
  position: relative;
  overflow: hidden;
}
.page-hero .crumb {
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  color: var(--text-3);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  margin-bottom: var(--s-5);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.page-hero .crumb::before {
  content: ""; display: block;
  width: 16px; height: 1px;
  background: var(--text-3);
}
.page-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -0.015em;
  color: var(--ink);
  max-width: 18ch;
  margin: 0 0 var(--s-4);
}
.page-hero .lead {
  font-size: var(--fs-3);
  line-height: 1.55;
  color: var(--text-2);
  max-width: 52ch;
  font-weight: 400;
}
.page-hero .lead strong {
  color: var(--text-1);
  font-weight: 500;
}

/* ============== CTA 收尾 + 数据面板 (复用) ============== */
.cta-end {
  background: var(--ink);
  color: var(--text-inv);
  padding: var(--s-9) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-end::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(34,199,184,0.10) 0%, transparent 50%);
}
.cta-end h2 { color: var(--text-inv); max-width: 22ch; margin: 0 auto var(--s-4); position: relative; }
.cta-end p { color: rgba(251,250,246,0.65); max-width: 50ch; margin: 0 auto var(--s-5); position: relative; }
.cta-end .btn-row { display: inline-flex; gap: var(--s-3); position: relative; }

/* ============== 数据面板 (复用) ============== */
.kpi-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  background: var(--paper);
  margin-top: var(--s-7);
}
.kpi {
  padding: var(--s-5);
  border-right: 1px solid var(--paper-line);
}
.kpi:last-child { border-right: none; }
.kpi .num { font-family: var(--font-display); font-size: var(--fs-7); color: var(--ink); }
.kpi .num small { font-size: var(--fs-3); color: var(--text-3); }
.kpi .lbl { font-family: var(--font-mono); font-size: var(--fs-1); color: var(--text-3); text-transform: uppercase; letter-spacing: 0.10em; margin-top: 6px; }
@media (max-width: 768px) { .kpi-row { grid-template-columns: 1fr 1fr; } .kpi:nth-child(2) { border-right: none; } .kpi:nth-child(1), .kpi:nth-child(2) { border-bottom: 1px solid var(--paper-line); } }
/* =========================================================
   智脑科学 品牌官网 - 5 个 page-hero 变体 (差异化视觉签名)
   配套:page-shared.css (基础 .page-hero 样式)
   ========================================================= */

/* 1. /scenes 课堂场景 - 时间码风格 */
.page-hero--scenes {
  background: linear-gradient(180deg, var(--paper) 0%, var(--paper) 60%, rgba(34,199,184,0.04) 100%);
  padding-bottom: var(--s-7);
}
.page-hero--scenes h1 {
  font-family: var(--font-mono);
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.page-hero--scenes h1 .num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.5em;
  font-weight: 500;
  color: var(--mint-deep);
  letter-spacing: -0.04em;
  vertical-align: -0.08em;
  margin: 0 0.05em;
}

/* 2. /packages 课包库 + /book 预约 - 大数字主导 */
.page-hero--packages {
  background: var(--paper);
}
.page-hero--packages .hero-fig {
  display: flex;
  align-items: flex-end;
  gap: var(--s-4);
  margin-bottom: var(--s-4);
}
.page-hero--packages .hero-num {
  font-family: var(--font-display);
  font-size: clamp(96px, 14vw, 180px);
  font-style: italic;
  font-weight: 500;
  line-height: 0.85;
  color: var(--ink);
  letter-spacing: -0.04em;
  flex-shrink: 0;
}
.page-hero--packages .hero-num small {
  font-size: 0.3em;
  color: var(--text-3);
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  margin-left: 4px;
}
.page-hero--packages .hero-num-unit {
  font-family: var(--font-mono);
  font-size: var(--fs-2);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--text-3);
  padding-bottom: 16px;
}
.page-hero--packages h1 {
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 400;
  max-width: none;
  margin-bottom: var(--s-3);
}
.page-hero--packages .packages-bar {
  display: flex;
  margin-top: var(--s-5);
  border-top: 1px solid var(--paper-line);
  border-bottom: 1px solid var(--paper-line);
  height: 6px;
  border-radius: 3px;
  overflow: hidden;
  max-width: 480px;
}
.page-hero--packages .packages-bar .seg-on { background: var(--mint); }
.page-hero--packages .packages-bar .seg-plan { background: var(--paper-soft); border-left: 1px dashed var(--paper-line); }
.page-hero--packages .packages-legend {
  display: flex;
  gap: var(--s-4);
  margin-top: var(--s-2);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.page-hero--packages .packages-legend .dot {
  display: inline-block; width: 8px; height: 8px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
}
.page-hero--packages .packages-legend .dot.on { background: var(--mint); }
.page-hero--packages .packages-legend .dot.plan { background: var(--paper-soft); border: 1px solid var(--paper-line); }

/* 3. /teacher 教师端 - 主角人物剪影 */
.page-hero--teacher {
  background: var(--paper);
}
.page-hero--teacher .hero-figure {
  position: absolute;
  right: 0;
  top: 60px;
  width: 280px;
  height: 320px;
  pointer-events: none;
  opacity: 0.95;
}
@media (max-width: 980px) { .page-hero--teacher .hero-figure { display: none; } }
.page-hero--teacher h1 {
  font-size: clamp(28px, 3.6vw, 44px);
  max-width: 14ch;
}
.page-hero--teacher h1 .small {
  font-size: 0.6em;
  font-weight: 400;
  color: var(--text-2);
  display: block;
  margin-top: 0.2em;
}
.page-hero--teacher .lead {
  margin-top: var(--s-4);
  font-family: var(--font-mono);
  font-size: var(--fs-2);
  color: var(--text-3);
  letter-spacing: 0.04em;
  border-top: 1px solid var(--paper-line);
  padding-top: var(--s-3);
  max-width: 56ch;
}
.page-hero--teacher .lead::before {
  content: "->";
  color: var(--mint);
  margin-right: 8px;
}

/* 4. /ai-grading AI 评分 - 等宽字 + 引号 */
.page-hero--ai {
  background: var(--paper);
}
.page-hero--ai .crumb {
  color: var(--violet);
}
.page-hero--ai .crumb::before {
  background: var(--violet);
}
.page-hero--ai h1 {
  font-family: var(--font-mono);
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 500;
  letter-spacing: -0.005em;
  line-height: 1.3;
  max-width: 22ch;
}
.page-hero--ai h1 .quoted {
  background: linear-gradient(180deg, transparent 60%, rgba(115,93,245,0.18) 60%);
  padding: 0 2px;
}
.page-hero--ai h1 .violet {
  color: var(--violet);
  font-style: italic;
}
.page-hero--ai .lead::before {
  content: "↳ ";
  color: var(--violet);
  font-family: var(--font-mono);
}

/* 5. /cases 案例 - 招募状态 */
.page-hero--cases {
  background: var(--paper);
}
.page-hero--cases .hero-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  background: rgba(211,168,75,0.12);
  border: 1px solid rgba(211,168,75,0.4);
  border-radius: var(--r-pill);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  color: #8a6a25;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: var(--s-4);
}
.page-hero--cases .hero-status .pulse {
  width: 8px; height: 8px; border-radius: 50%;
  background: #D3A84B;
  animation: status-blink 1.6s ease infinite;
}
@keyframes status-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
.page-hero--cases h1 {
  font-size: clamp(28px, 3.6vw, 44px);
  max-width: 16ch;
}
.page-hero--cases h1 .sub {
  display: block;
  font-size: 0.55em;
  font-weight: 400;
  color: var(--text-2);
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.10em;
  margin-top: 0.4em;
}
.page-hero--cases .lead {
  max-width: 48ch;
  font-style: italic;
  font-family: var(--font-display);
  font-size: var(--fs-4);
  color: var(--text-2);
}
.page-hero--cases .cases-counter {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin-top: var(--s-5);
  font-family: var(--font-mono);
  font-size: var(--fs-2);
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.page-hero--cases .cases-counter .num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 2.4em;
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
  letter-spacing: -0.02em;
}
/* =========================================================
   智脑科学品牌首页 — 实验台透视方向
   ========================================================= */

.home-hero {
  padding: 104px 0 0;
  overflow: hidden;
}

.home-motion {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 720ms var(--ease) var(--stagger-delay, 0ms),
    transform 720ms var(--ease) var(--stagger-delay, 0ms);
  will-change: opacity, transform;
}

.home-motion.in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.home-motion--visual {
  transform: translate3d(0, 22px, 0) scale(0.985);
}

.home-motion--visual.in {
  transform: translate3d(0, 0, 0) scale(1);
}

.home-hero-grid {
  display: grid;
  grid-template-columns: minmax(440px, 0.86fr) minmax(620px, 1.14fr);
  max-width: none;
  margin: 0;
  padding: 0 0 0 clamp(48px, 4.8vw, 80px);
  align-items: start;
  gap: 0;
}

.home-hero-copy {
  max-width: 600px;
  padding: clamp(68px, 5.5vw, 88px) clamp(40px, 5vw, 80px) var(--s-6) 0;
}

.home-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-4);
  margin-bottom: var(--s-5);
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  letter-spacing: 0.1em;
}

.home-hero h1 {
  max-width: none;
  margin-bottom: var(--s-4);
  font-size: clamp(48px, 4.35vw, 68px);
  letter-spacing: -0.045em;
}

.home-hero h1 .accent {
  color: var(--mint-deep);
  font-style: italic;
  font-weight: 400;
  white-space: nowrap;
}

.home-hero-sub {
  max-width: 32ch;
  margin-bottom: var(--s-5);
  color: var(--text-2);
  font-size: var(--fs-5);
}

.home-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-4);
}

.home-hero-text-link {
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  color: var(--text-1);
  font-size: var(--fs-2);
  font-weight: 500;
}

.home-hero-text-link:hover {
  color: var(--mint-deep);
}

.home-hero-note {
  max-width: 36ch;
  margin-top: var(--s-5);
  border-top: 1px solid var(--paper-line);
  padding-top: var(--s-3);
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  letter-spacing: 0.04em;
}

.home-hero-visual {
  align-self: start;
  height: 556px;
  margin: 0;
  overflow: hidden;
  border-top-left-radius: clamp(220px, 23vw, 360px) clamp(128px, 16vw, 250px);
}

.home-hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% center;
  transform: scale(1.035);
  transition: transform 1.1s var(--ease);
}

.home-hero-visual.in img {
  transform: scale(1);
}

.home-proof-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  max-width: none;
  padding: 0;
  border-top: 1px solid var(--paper-line);
  border-bottom: 1px solid var(--paper-line);
}

.home-proof {
  display: flex;
  min-height: 128px;
  flex-direction: column;
  justify-content: center;
  padding: var(--s-4) clamp(20px, 4.8vw, 80px);
}

.home-proof + .home-proof {
  border-left: 1px solid var(--paper-line);
}

.home-proof-value {
  display: flex;
  align-items: baseline;
  gap: 4px;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(38px, 4vw, 56px);
  line-height: 1;
}

.home-proof-value small {
  color: var(--text-3);
  font-family: var(--font-sans);
  font-size: var(--fs-2);
  font-weight: 500;
}

.home-proof-label {
  margin-top: var(--s-3);
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  letter-spacing: 0.08em;
}

/* 课堂流程 */
.demo-strip {
  background: var(--ink);
  color: var(--text-inv);
  padding: var(--s-10) 0;
}

.demo-strip h2 {
  max-width: 18ch;
  color: var(--text-inv);
}

.demo-strip .eyebrow {
  color: var(--mint);
}

.lesson-flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-5);
}

.lesson-flow .step {
  border-top: 1px solid rgba(251, 250, 246, 0.28);
  padding-top: var(--s-4);
}

.lesson-flow .step-num {
  margin-bottom: var(--s-6);
  color: var(--mint);
  font-family: var(--font-display);
  font-size: var(--fs-7);
  font-style: italic;
  line-height: 1;
}

.lesson-flow .step-body {
  max-width: 31ch;
}

.lesson-flow .step-body h4 {
  color: var(--text-inv);
  font-family: var(--font-sans);
  font-size: var(--fs-5);
  font-weight: 600;
}

.lesson-flow .step-body p {
  margin-top: var(--s-3);
  color: rgba(251, 250, 246, 0.64);
  font-size: var(--fs-2);
}

.lesson-flow .step-body span {
  display: block;
  margin-top: var(--s-5);
  color: var(--mint);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  letter-spacing: 0.08em;
}

/* 课包预览 */
.section-package-preview {
  background: var(--paper-soft);
  border-top: 1px solid var(--paper-line);
  border-bottom: 1px solid var(--paper-line);
}

.package-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--paper-line);
  background: var(--paper);
  transition:
    border-color var(--t-base) var(--ease),
    transform var(--t-base) var(--ease);
}

.package-card:hover {
  border-color: var(--ink);
  transform: translateY(-3px);
}

.package-thumb {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--ink);
}

.package-thumb .thumb-tag {
  position: absolute;
  z-index: 1;
  top: 12px;
  left: 12px;
}

.package-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: var(--s-4);
}

.package-body h4 {
  margin-bottom: 4px;
  font-family: var(--font-sans);
  font-size: var(--fs-4);
  font-weight: 600;
}

.package-body .meta {
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
}

.package-body p {
  flex: 1;
  margin: var(--s-3) 0;
  color: var(--text-2);
  font-size: var(--fs-2);
}

.package-body .ai-dims {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: auto;
}

.section-package-preview .grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-5);
}

.home-brand .cta-end h2 {
  max-width: none;
  white-space: nowrap;
}

@media (max-width: 980px) {
  .home-hero-grid {
    grid-template-columns: 1fr;
    padding: 0;
    gap: 0;
  }

  .home-hero-copy {
    max-width: 680px;
    padding: var(--s-9) var(--gutter) var(--s-7);
  }

  .home-hero-visual {
    height: 480px;
    border-radius: 0;
  }

  .lesson-flow,
  .section-package-preview .grid-3 {
    grid-template-columns: 1fr;
  }

  .lesson-flow {
    gap: var(--s-6);
  }
}

@media (max-width: 768px) {
  .home-hero {
    padding-top: 104px;
  }

  .home-hero-copy {
    padding-top: var(--s-7);
  }

  .home-hero h1 {
    font-size: clamp(40px, 11vw, 54px);
  }

  .home-brand .cta-end h2 {
    white-space: normal;
  }

  .home-hero-sub {
    font-size: var(--fs-4);
  }

  .home-hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--s-4);
  }

  .home-hero-visual {
    height: 360px;
  }

  .home-proof-strip {
    grid-template-columns: 1fr 1fr;
  }

  .home-proof {
    min-height: 132px;
  }

  .home-proof:nth-child(2n + 1) {
    border-left: 0;
  }

  .home-proof:nth-child(n + 3) {
    border-top: 1px solid var(--paper-line);
  }

  .demo-strip {
    padding: var(--s-9) 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-motion {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .home-hero-visual img {
    transform: none;
    transition: none;
  }
}
/* =========================================================
   智脑科学品牌官网 - 课堂场景页（课堂证据链）
   ========================================================= */

.scenes-reference-page {
  overflow: clip;
  background: var(--paper);
}

.scenes-motion {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 720ms var(--ease) var(--stagger-delay, 0ms),
    transform 720ms var(--ease) var(--stagger-delay, 0ms);
  will-change: opacity, transform;
}

.scenes-motion.in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.scenes-motion--visual {
  transform: translate3d(0, 20px, 0) scale(0.985);
}

.scenes-motion--visual.in {
  transform: translate3d(0, 0, 0) scale(1);
}

.scenes-reference-hero {
  display: grid;
  min-height: 748px;
  box-sizing: border-box;
  grid-template-columns: minmax(440px, 0.92fr) minmax(660px, 1.08fr);
  align-items: stretch;
  padding: 124px 0 0;
  border-bottom: 1px solid var(--paper-line);
}

.scenes-reference-hero-copy {
  display: flex;
  max-width: 690px;
  flex-direction: column;
  justify-content: flex-start;
  padding: var(--s-3) var(--s-4) 0 clamp(40px, 4vw, 72px);
}

.scenes-reference-kicker {
  display: inline-flex;
  align-self: flex-start;
  margin: 0 0 var(--s-5);
  padding: 7px 16px;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-pill);
  color: var(--mint-deep);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1;
}

.scenes-reference-hero h1,
.scenes-proof-map-heading h2,
.scenes-proof-cta h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.05em;
}

.scenes-reference-hero h1 {
  max-width: none;
  font-size: clamp(44px, 3.65vw, 52px);
  line-height: 1.22;
}

.scenes-reference-hero h1 em,
.scenes-proof-map-heading h2 em {
  color: var(--mint-deep);
  font-style: normal;
}

.scenes-reference-lead {
  max-width: 38ch;
  margin: var(--s-5) 0 var(--s-7);
  color: var(--text-2);
  font-size: var(--fs-4);
  line-height: var(--lh-loose);
}

.scenes-reference-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-5);
  margin: 0;
}

.scenes-reference-metric dt {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.scenes-reference-metric dt strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(40px, 3.7vw, 56px);
  font-weight: 500;
  line-height: 1;
}

.scenes-reference-metric dt span {
  color: var(--text-3);
  font-size: var(--fs-2);
}

.scenes-reference-metric dd {
  display: grid;
  gap: 3px;
  margin: var(--s-3) 0 0;
}

.scenes-reference-metric dd b,
.scenes-reference-metric dd small {
  font-size: var(--fs-2);
  line-height: var(--lh-base);
}

.scenes-reference-metric dd b {
  color: var(--text-2);
  font-weight: 500;
}
.scenes-reference-metric dd small {
  color: var(--text-3);
}

.scenes-reference-hero-visual {
  min-width: 0;
  margin: 0;
  overflow: hidden;
}

.scenes-reference-hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 624px;
  object-fit: cover;
  object-position: 76% center;
  transform: scale(1.035);
  transition: transform 1.1s var(--ease);
}

.scenes-reference-hero-visual.in img {
  transform: scale(1);
}

.scenes-proof-map {
  padding: var(--s-9) 0 var(--s-10);
  background: var(--paper);
}

.scenes-proof-map-heading {
  display: grid;
  grid-template-columns: minmax(440px, 450px) minmax(340px, 1fr);
  align-items: start;
  gap: clamp(36px, 5vw, 72px);
  padding-bottom: var(--s-8);
}

.scenes-proof-map-heading h2 {
  width: 560px;
  max-width: 560px;
  font-size: clamp(36px, 3vw, 46px);
  line-height: 1.22;
}

.scenes-proof-map-heading > p {
  max-width: 32ch;
  margin: 8px 0 0;
  padding-left: var(--s-6);
  border-left: 1px solid var(--paper-line);
  color: var(--text-2);
  font-size: var(--fs-3);
  line-height: var(--lh-loose);
}

.scenes-proof-journey {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 4vw, 64px);
}

.scenes-proof-role {
  min-width: 0;
}

.scenes-proof-role-heading {
  min-height: 92px;
}

.scenes-proof-role-heading p,
.scenes-proof-report-intro p {
  margin: 0 0 var(--s-2);
  color: var(--mint-deep);
  font-size: var(--fs-3);
  font-weight: 600;
}

.scenes-proof-role-heading i,
.scenes-proof-report-intro i {
  margin-right: 8px;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: var(--fs-5);
  font-style: italic;
  font-weight: 500;
}

.scenes-proof-role-heading span,
.scenes-proof-report-intro span {
  color: var(--text-2);
  font-size: var(--fs-2);
  line-height: var(--lh-base);
}

.scenes-proof-role-visual {
  position: relative;
  display: flex;
  min-height: 330px;
  align-items: end;
  justify-content: center;
  overflow: hidden;
  background: var(--paper);
}

.scenes-proof-role-visual > img {
  position: relative;
  z-index: 1;
  display: block;
  width: 76%;
  max-height: 330px;
  object-fit: cover;
  object-position: center;
}

.scenes-proof-role--teacher .scenes-proof-role-visual > img {
  width: 62%;
  margin-right: auto;
}

.scenes-proof-role--student .scenes-proof-role-visual > img {
  width: 72%;
  margin-left: auto;
}

.scenes-proof-status-card,
.scenes-proof-progress-card,
.scenes-proof-analysis-card,
.scenes-proof-report-card {
  background: rgba(251, 250, 246, 0.94);
  box-shadow: var(--sh-2);
}

.scenes-proof-status-card,
.scenes-proof-progress-card,
.scenes-proof-analysis-card {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity 520ms var(--ease) 170ms,
    transform 520ms var(--ease) 170ms;
}

.scenes-proof-role.in .scenes-proof-status-card,
.scenes-proof-role.in .scenes-proof-progress-card,
.scenes-proof-role.in .scenes-proof-analysis-card {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.scenes-proof-status-card {
  position: absolute;
  z-index: 2;
  top: var(--s-5);
  right: var(--s-3);
  width: 154px;
  padding: var(--s-3);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-sm);
}

.scenes-proof-status-card > b,
.scenes-proof-progress-card > b,
.scenes-proof-analysis-card > b {
  color: var(--text-1);
  font-size: 11px;
}

.scenes-proof-status-card dl,
.scenes-proof-analysis-card dl {
  display: grid;
  gap: 5px;
  margin: var(--s-2) 0 var(--s-3);
}

.scenes-proof-status-card dl div,
.scenes-proof-analysis-card dl div {
  display: flex;
  justify-content: space-between;
  gap: var(--s-2);
}

.scenes-proof-status-card dt,
.scenes-proof-status-card dd,
.scenes-proof-analysis-card dt,
.scenes-proof-analysis-card dd {
  margin: 0;
  color: var(--text-3);
  font-size: 10px;
}

.scenes-proof-status-card dd,
.scenes-proof-analysis-card dd {
  color: var(--text-1);
  font-weight: 600;
}

.scenes-proof-status-card > strong {
  color: var(--red);
  font-size: 10px;
}
.scenes-proof-status-card > p {
  margin: 4px 0 0;
  color: var(--text-2);
  font-size: 10px;
  line-height: 1.5;
}

.scenes-proof-progress-card {
  position: absolute;
  z-index: 2;
  top: var(--s-4);
  left: var(--s-3);
  display: grid;
  width: 130px;
  gap: 4px;
  padding: var(--s-3);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-sm);
}

.scenes-proof-progress-card span,
.scenes-proof-progress-card small {
  color: var(--mint-deep);
  font-size: 10px;
}
.scenes-proof-progress-card strong {
  margin-top: var(--s-2);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: var(--fs-5);
  font-weight: 500;
}
.scenes-proof-progress-card small {
  color: var(--text-3);
}

.scenes-proof-analysis-card {
  display: grid;
  width: min(220px, 80%);
  gap: var(--s-2);
  padding: var(--s-5) var(--s-4);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-sm);
}

.scenes-proof-analysis-card > strong {
  color: var(--mint-deep);
  font-family: var(--font-display);
  font-size: var(--fs-8);
  font-weight: 500;
  line-height: 1;
}

.scenes-proof-analysis-card > strong small {
  color: var(--text-3);
  font-family: var(--font-sans);
  font-size: var(--fs-2);
}
.scenes-proof-analysis-card > p {
  display: flex;
  justify-content: space-between;
  margin: 0;
  padding-top: var(--s-2);
  border-top: 1px solid var(--paper-line);
  color: var(--text-3);
  font-size: 11px;
}
.scenes-proof-analysis-card > p b {
  color: var(--text-2);
  font-weight: 500;
}

.scenes-proof-report-row {
  display: grid;
  grid-template-columns: minmax(220px, 0.62fr) minmax(370px, 1.05fr) minmax(230px, 0.65fr);
  align-items: end;
  gap: var(--s-6);
  margin-top: var(--s-8);
  padding-top: var(--s-7);
  border-top: 1px solid var(--paper-line);
}

.scenes-proof-report-intro {
  align-self: start;
}

.scenes-proof-report-card {
  padding: var(--s-5);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
}

.scenes-proof-report-card header {
  text-align: center;
}
.scenes-proof-report-card h3 {
  margin: 0;
  color: var(--text-1);
  font-size: var(--fs-3);
}
.scenes-proof-report-card header p {
  margin: 5px 0 0;
  color: var(--text-3);
  font-size: 10px;
}

.scenes-proof-report-card > dl {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: var(--s-5) 0 0;
  border-top: 1px solid var(--paper-line);
  border-bottom: 1px solid var(--paper-line);
}

.scenes-proof-report-card > dl div {
  padding: var(--s-3) var(--s-2);
  text-align: center;
}
.scenes-proof-report-card > dl div + div {
  border-left: 1px solid var(--paper-line);
}
.scenes-proof-report-card > dl dt {
  color: var(--text-3);
  font-size: 10px;
}
.scenes-proof-report-card > dl dd {
  margin: 5px 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: var(--fs-5);
}
.scenes-proof-report-card > dl dd small {
  margin-left: 2px;
  color: var(--text-3);
  font-family: var(--font-sans);
  font-size: 10px;
}

.scenes-proof-report-summary {
  margin-top: var(--s-4);
  padding: var(--s-4);
  background: var(--paper-soft);
}
.scenes-proof-report-summary p {
  margin: 0;
  color: var(--text-2);
  font-size: var(--fs-2);
  line-height: var(--lh-base);
}

.scenes-proof-cta {
  align-self: center;
}
.scenes-proof-cta h3 {
  max-width: none;
  font-size: var(--fs-6);
  line-height: 1.25;
  white-space: nowrap;
}
.scenes-proof-cta p {
  margin: var(--s-4) 0 var(--s-5);
  color: var(--text-2);
  font-size: var(--fs-3);
  line-height: var(--lh-loose);
}

@media (max-width: 1060px) {
  .scenes-reference-hero {
    grid-template-columns: 0.92fr 1.08fr;
  }
  .scenes-reference-hero-copy {
    padding-right: var(--s-5);
    padding-left: var(--s-5);
  }
  .scenes-reference-hero h1 {
    font-size: clamp(42px, 5.3vw, 60px);
  }
  .scenes-proof-journey {
    gap: var(--s-4);
  }
  .scenes-proof-report-row {
    grid-template-columns: 0.55fr 1fr;
  }
  .scenes-proof-cta {
    grid-column: 2;
  }
}

@media (max-width: 820px) {
  .scenes-reference-hero {
    grid-template-columns: 1fr;
    padding-top: 64px;
  }
  .scenes-reference-hero-copy {
    max-width: 690px;
    padding: var(--s-9) var(--gutter) var(--s-8);
  }
  .scenes-reference-hero-visual {
    min-height: 420px;
  }
  .scenes-reference-hero-visual img {
    min-height: 420px;
  }
  .scenes-proof-map-heading,
  .scenes-proof-journey,
  .scenes-proof-report-row {
    grid-template-columns: 1fr;
  }
  .scenes-proof-map-heading {
    gap: var(--s-4);
  }
  .scenes-proof-map-heading h2 {
    width: auto;
  }
  .scenes-proof-map-heading > p {
    padding-left: 0;
    border-left: 0;
  }
  .scenes-proof-role-heading {
    min-height: 0;
    margin-bottom: var(--s-4);
  }
  .scenes-proof-role + .scenes-proof-role {
    margin-top: var(--s-6);
  }
  .scenes-proof-report-row {
    align-items: stretch;
  }
  .scenes-proof-cta {
    grid-column: auto;
  }
  .scenes-proof-cta h3 {
    max-width: 12ch;
    white-space: normal;
  }
}

@media (max-width: 560px) {
  .scenes-reference-hero-copy {
    padding-top: var(--s-8);
  }
  .scenes-reference-hero h1 {
    font-size: clamp(42px, 12vw, 54px);
  }
  .scenes-reference-lead {
    font-size: var(--fs-3);
  }
  .scenes-reference-metrics {
    gap: var(--s-3);
  }
  .scenes-reference-metric dt strong {
    font-size: 40px;
  }
  .scenes-reference-metric dd b,
  .scenes-reference-metric dd small {
    font-size: 11px;
  }
  .scenes-reference-hero-visual,
  .scenes-reference-hero-visual img {
    min-height: 310px;
  }
  .scenes-proof-map {
    padding: var(--s-8) 0;
  }
  .scenes-proof-map-heading h2 {
    font-size: 36px;
  }
  .scenes-proof-role-visual {
    min-height: 294px;
  }
  .scenes-proof-role-visual > img {
    max-height: 294px;
  }
  .scenes-proof-report-card {
    padding: var(--s-4);
  }
  .scenes-proof-report-card > dl {
    grid-template-columns: 1fr 1fr;
  }
  .scenes-proof-report-card > dl div:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--paper-line);
  }
  .scenes-proof-report-card > dl div:nth-child(4) {
    border-top: 1px solid var(--paper-line);
  }
}

@media (prefers-reduced-motion: reduce) {
  .scenes-motion,
  .scenes-proof-status-card,
  .scenes-proof-progress-card,
  .scenes-proof-analysis-card {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .scenes-reference-hero-visual img {
    transform: none;
    transition: none;
  }
}
/* ============== 课包库 /packages · 实验档案 ============== */
.packages-archive-page {
  background: var(--paper);
}

.package-motion {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition:
    opacity 680ms var(--ease) var(--stagger-delay, 0ms),
    transform 680ms var(--ease) var(--stagger-delay, 0ms);
  will-change: opacity, transform;
}

.package-motion.in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.packages-archive-hero {
  padding: 104px 0 var(--s-5);
  border-bottom: 1px solid var(--paper-line);
}

.packages-archive-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(282px, 0.43fr);
  gap: clamp(var(--s-7), 8vw, var(--s-10));
  align-items: end;
}

.packages-archive-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: var(--s-5);
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  letter-spacing: 0.14em;
}

.packages-archive-kicker::before {
  width: 16px;
  height: 1px;
  background: currentColor;
  content: '';
}

.packages-archive-hero h1 {
  max-width: none;
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(48px, 5vw, 72px);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 1.1;
}

.packages-archive-hero h1 em {
  color: var(--mint-deep);
  font-style: normal;
}

.packages-archive-hero-copy > p {
  max-width: 48ch;
  margin: var(--s-5) 0 0;
  color: var(--text-2);
  font-size: var(--fs-4);
  line-height: var(--lh-loose);
}

.packages-availability {
  padding-bottom: 6px;
}

.packages-availability-label {
  display: flex;
  align-items: baseline;
  gap: var(--s-2);
  margin: 0;
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-2);
  letter-spacing: 0.12em;
}

.packages-availability-label .dot {
  width: 8px;
  height: 8px;
  transform: translateY(-1px);
}

.packages-availability-label strong {
  color: var(--mint-deep);
  font-family: var(--font-display);
  font-size: clamp(44px, 4.2vw, 60px);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 0.8;
}

.packages-availability-label small {
  color: var(--text-3);
  font-size: var(--fs-2);
}

.packages-availability-bar {
  display: block;
  width: 100%;
  height: 6px;
  margin: var(--s-4) 0 var(--s-3);
  overflow: hidden;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-pill);
  background: var(--paper-soft);
}

.packages-availability-live {
  display: block;
  width: 33.333%;
  height: 100%;
  background: var(--mint);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 760ms var(--ease) 170ms;
}

.packages-availability.in .packages-availability-live {
  transform: scaleX(1);
}

.packages-availability-meta {
  display: flex;
  gap: var(--s-4);
  margin: 0;
}

.packages-availability-meta div {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.packages-availability-meta dt,
.packages-availability-meta dd {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--fs-1);
}

.packages-availability-meta dt {
  color: var(--text-3);
}
.packages-availability-meta dd {
  color: var(--text-1);
}

.packages-archive {
  padding: var(--s-5) 0 var(--s-10);
}

.packages-archive .filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-6);
  margin: 0;
  padding: 0 0 var(--s-4);
  border-bottom: 1px solid var(--paper-line);
}

.packages-archive .filter-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.packages-archive .filter-label {
  margin-right: var(--s-2);
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  letter-spacing: 0.1em;
}

.packages-archive .filter-chip {
  padding: 7px 15px;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-pill);
  background: var(--paper);
  color: var(--text-2);
  font-size: var(--fs-2);
  transition:
    border-color var(--t-fast) var(--ease),
    background var(--t-fast) var(--ease),
    color var(--t-fast) var(--ease);
}

.packages-archive .filter-chip:hover,
.packages-archive .filter-chip:focus-visible {
  border-color: var(--mint-deep);
  color: var(--ink);
  outline: none;
}

.packages-archive .filter-chip.active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--text-inv);
}

.packages-result-count {
  margin: var(--s-3) 0 var(--s-4);
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  letter-spacing: 0.08em;
}

.packages-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-5);
}

.packages-archive .package-card {
  border-color: var(--paper-line);
  box-shadow: none;
}

.packages-archive .package-card:hover {
  border-color: var(--ink);
  box-shadow: var(--sh-2);
}

.packages-archive .thumb-tag .tag-mint {
  border-color: transparent;
  background: var(--mint);
  color: var(--ink);
}

.packages-archive .package-thumb {
  aspect-ratio: 2 / 1;
}

.packages-archive .package-body {
  padding: var(--s-4) var(--s-4) var(--s-5);
}

.packages-archive .package-body h4 {
  margin-bottom: var(--s-1);
  font-family: var(--font-display);
  font-size: var(--fs-5);
  font-weight: 500;
  letter-spacing: -0.025em;
}

.packages-archive .package-body .meta {
  color: var(--text-3);
  font-size: 11px;
  letter-spacing: 0.04em;
}

.packages-archive .package-body p {
  min-height: 4.65em;
  margin: var(--s-3) 0 var(--s-4);
  color: var(--text-2);
  font-size: var(--fs-2);
  line-height: 1.65;
}

.packages-archive .package-body .ai-dims {
  gap: 5px;
}

.packages-archive .package-body .tag {
  padding: 4px 9px;
  color: var(--text-2);
  font-size: 10px;
}

@media (max-width: 980px) {
  .packages-archive-hero-grid {
    grid-template-columns: 1fr;
    gap: var(--s-6);
  }

  .packages-availability {
    max-width: 520px;
  }

  .packages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .packages-archive-hero {
    padding-top: 104px;
  }

  .packages-archive-hero h1 {
    font-size: clamp(42px, 12vw, 54px);
  }

  .packages-archive-hero-copy > p {
    font-size: var(--fs-3);
  }

  .packages-availability-meta,
  .packages-archive .filter-bar {
    gap: var(--s-3);
  }

  .packages-archive .filter-group {
    width: 100%;
  }

  .packages-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .package-motion {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .packages-availability-live {
    transform: none;
    transition: none;
  }
}
/* ============== 教师端 /teacher — 课堂证据叙事 ============== */
body:has(.teacher-page) .site-header {
  background: rgba(251, 250, 246, 0.94);
  border-bottom: 1px solid var(--paper-line);
  padding: 12px 0;
}

.teacher-page {
  background: var(--paper);
  overflow: hidden;
  --teacher-mint-ink: #0d6f68;
}

.teacher-motion {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 720ms var(--ease) var(--stagger-delay, 0ms),
    transform 720ms var(--ease) var(--stagger-delay, 0ms);
  will-change: opacity, transform;
}

.teacher-motion.in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.teacher-motion--scale {
  transform: translate3d(0, 28px, 0) scale(0.98);
}

.teacher-motion--scale.in {
  transform: translate3d(0, 0, 0) scale(1);
}

.teacher-motion--line {
  opacity: 1;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 920ms var(--ease) var(--stagger-delay, 0ms);
}

.teacher-motion--line.in {
  transform: scaleX(1);
}

.teacher-overline {
  align-items: center;
  color: var(--teacher-mint-ink);
  display: inline-flex;
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  font-weight: 500;
  gap: 10px;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.teacher-overline::before {
  background: currentColor;
  content: '';
  height: 1px;
  width: 28px;
}

.teacher-overline--light {
  color: var(--mint);
}

.teacher-hero {
  align-items: stretch;
  background: #081012;
  display: flex;
  min-height: min(760px, 92svh);
  overflow: hidden;
  padding: 0;
}

.teacher-hero-image,
.teacher-hero-shade {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.teacher-hero-image {
  animation: teacher-hero-settle 1.3s var(--ease) both;
  object-fit: cover;
  object-position: center;
}

@keyframes teacher-hero-settle {
  from {
    opacity: 0.72;
    transform: scale(1.045);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.teacher-hero-shade {
  background: linear-gradient(
    90deg,
    rgba(3, 8, 10, 0.96) 0%,
    rgba(3, 8, 10, 0.82) 33%,
    rgba(3, 8, 10, 0.16) 67%,
    rgba(3, 8, 10, 0.12) 100%
  );
}

.teacher-hero-content {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(760px, 92svh);
  padding-bottom: 84px;
  padding-top: 152px;
  position: relative;
  width: 100%;
}

.teacher-hero h1 {
  color: var(--text-inv);
  font-size: clamp(56px, 6vw, 86px);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 1.04;
  margin-top: 30px;
  max-width: 720px;
}

.teacher-hero h1 span {
  display: block;
  white-space: nowrap;
}

.teacher-hero-copy {
  color: rgba(251, 250, 246, 0.72);
  font-size: clamp(16px, 1.26vw, 19px);
  line-height: 1.75;
  margin-top: 28px;
  max-width: none;
  white-space: nowrap;
}

.teacher-hero-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 36px;
}

.teacher-hero-actions .btn,
.teacher-final .btn {
  min-height: 52px;
  padding-inline: 27px;
}

.teacher-hero-link {
  border-bottom: 1px solid rgba(251, 250, 246, 0.55);
  color: rgba(251, 250, 246, 0.8);
  font-size: var(--fs-2);
  padding: 6px 0;
  transition:
    border-color var(--t-fast) var(--ease),
    color var(--t-fast) var(--ease);
}

.teacher-hero-link:hover {
  border-color: var(--mint);
  color: var(--mint);
}

.teacher-workflow {
  background: var(--paper);
  padding: clamp(86px, 10vw, 138px) 0 clamp(78px, 9vw, 124px);
}

.teacher-workflow .container {
  position: relative;
}

.teacher-workflow-track {
  background: color-mix(in srgb, var(--mint) 28%, transparent);
  height: 1px;
  left: calc(var(--gutter) + 9%);
  position: absolute;
  right: calc(var(--gutter) + 9%);
  top: 0;
}

.teacher-workflow-track::after,
.teacher-workflow-track::before,
.teacher-workflow-track span {
  background: var(--paper);
  border: 2px solid var(--mint);
  border-radius: 999px;
  content: '';
  height: 13px;
  position: absolute;
  top: -6px;
  width: 13px;
}

.teacher-workflow-track::before {
  left: 0;
}

.teacher-workflow-track span {
  left: calc(50% - 7px);
}

.teacher-workflow-track::after {
  right: 0;
}

.teacher-stage-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 38px auto 0;
  max-width: 1120px;
}

.teacher-stage {
  border-right: 1px solid var(--paper-line);
  color: var(--text-1);
  display: grid;
  gap: 12px;
  min-height: 210px;
  padding: 20px clamp(22px, 4vw, 58px) 24px;
  text-align: left;
  transition:
    background var(--t-base) var(--ease),
    border-color var(--t-base) var(--ease),
    box-shadow var(--t-base) var(--ease),
    color var(--t-base) var(--ease),
    opacity 720ms var(--ease) var(--stagger-delay, 0ms),
    transform 720ms var(--ease) var(--stagger-delay, 0ms);
}

.teacher-stage.teacher-motion {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
}

.teacher-stage.teacher-motion.in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.teacher-stage:first-child {
  border-left: 1px solid var(--paper-line);
}

.teacher-stage:hover,
.teacher-stage.active {
  background: rgba(34, 199, 184, 0.06);
}

@media (hover: hover) and (pointer: fine) {
  .teacher-stage.in:hover {
    border-color: color-mix(in srgb, var(--mint) 54%, var(--paper-line));
    box-shadow: 0 14px 28px rgba(6, 17, 21, 0.07);
    transform: translate3d(0, -4px, 0);
  }
}

.teacher-stage-number {
  color: var(--teacher-mint-ink);
  font-family: var(--font-display);
  font-size: clamp(38px, 4vw, 58px);
  font-style: italic;
  line-height: 1;
}

.teacher-stage strong {
  font-family: var(--font-sans);
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 600;
  letter-spacing: -0.03em;
}

.teacher-stage > span:last-child {
  color: var(--text-3);
  font-size: var(--fs-2);
  line-height: 1.7;
}

.teacher-observe {
  background: var(--ink);
  min-height: clamp(580px, 56vw, 820px);
  overflow: hidden;
  padding: 0;
}

.teacher-observe-image,
.teacher-observe-wash {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.teacher-observe-image {
  object-fit: cover;
  object-position: center;
  transform: scale(1.035);
  transition: transform 1.1s var(--ease);
}

.teacher-observe:has(.teacher-observe-copy.in) .teacher-observe-image {
  transform: scale(1);
}

.teacher-observe-wash {
  background: linear-gradient(
    90deg,
    rgba(5, 14, 16, 0.93) 0%,
    rgba(5, 14, 16, 0.68) 28%,
    rgba(5, 14, 16, 0.09) 72%,
    rgba(5, 14, 16, 0.18) 100%
  );
}

.teacher-observe-content {
  align-items: center;
  display: flex;
  min-height: clamp(580px, 56vw, 820px);
  position: relative;
  width: 100%;
}

.teacher-observe-copy {
  color: var(--text-inv);
  padding: 80px 0;
  width: min(100%, 560px);
}

.teacher-observe h2 {
  color: var(--text-inv);
  font-size: clamp(50px, 5.4vw, 76px);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 1.04;
  margin-top: 28px;
}

.teacher-observe h2 span {
  display: block;
  white-space: nowrap;
}

.teacher-observe-list {
  display: grid;
  gap: 24px;
  list-style: none;
  margin-top: 42px;
  padding: 0;
}

.teacher-observe-list li {
  border-left: 2px solid var(--mint);
  display: grid;
  gap: 4px;
  padding-left: 16px;
}

.teacher-observe-list strong {
  color: var(--text-inv);
  font-size: var(--fs-3);
  font-weight: 600;
}

.teacher-observe-list span {
  color: rgba(251, 250, 246, 0.68);
  font-size: var(--fs-2);
  line-height: 1.7;
}

.teacher-evidence {
  background: var(--paper);
  padding: clamp(86px, 10vw, 148px) 0;
}

.teacher-evidence-grid {
  align-items: center;
  display: grid;
  gap: clamp(46px, 6vw, 90px) clamp(44px, 6vw, 96px);
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
}

.teacher-evidence-intro {
  grid-column: 1 / -1;
  margin: 0 auto;
  max-width: 760px;
  text-align: center;
}

.teacher-evidence-intro h2 {
  font-size: clamp(42px, 4.2vw, 58px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1.08;
  margin-top: 26px;
}

.teacher-evidence-intro > p:last-child {
  color: var(--text-2);
  font-size: var(--fs-3);
  line-height: 1.85;
  margin: 20px auto 0;
  max-width: 42ch;
}

.teacher-evidence-figure {
  grid-column: 1;
  grid-row: auto;
  margin: 0;
}

.teacher-evidence-figure img {
  display: block;
  filter: drop-shadow(0 18px 32px rgba(6, 17, 21, 0.13));
  max-height: 580px;
  object-fit: contain;
  width: 100%;
}

.teacher-evidence-figure figcaption {
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  margin-top: 12px;
  text-align: right;
}

.teacher-proof-list {
  align-self: end;
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.teacher-proof-list li {
  border-top: 1px solid var(--paper-line);
  display: grid;
  gap: 18px;
  grid-template-columns: 34px minmax(0, 1fr);
  padding: 18px 0;
}

.teacher-proof-list li:last-child {
  border-bottom: 1px solid var(--paper-line);
}

.teacher-proof-list span {
  color: var(--teacher-mint-ink);
  font-family: var(--font-mono);
  font-size: 11px;
  padding-top: 4px;
}

.teacher-proof-list h3 {
  font-family: var(--font-sans);
  font-size: var(--fs-3);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.teacher-proof-list p {
  color: var(--text-3);
  font-size: var(--fs-2);
  line-height: 1.7;
  margin-top: 5px;
}

.teacher-final {
  align-items: center;
  background: #071012;
  display: flex;
  min-height: 490px;
  overflow: hidden;
  padding: 98px 0;
  text-align: center;
}

.teacher-final-wash,
.teacher-final-surface {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.teacher-final-wash {
  mix-blend-mode: screen;
  object-fit: cover;
  opacity: 0.16;
}

.teacher-final-surface {
  background: rgba(3, 11, 13, 0.78);
}

.teacher-final-content {
  align-items: center;
  display: flex;
  flex-direction: column;
  position: relative;
  width: 100%;
}

.teacher-final h2 {
  color: var(--text-inv);
  font-size: clamp(48px, 5vw, 70px);
  font-weight: 400;
  letter-spacing: -0.06em;
  line-height: 1.08;
  margin-top: 25px;
  white-space: nowrap;
}

.teacher-final h2 span {
  white-space: nowrap;
}

.teacher-final p:last-of-type {
  color: rgba(251, 250, 246, 0.7);
  font-size: var(--fs-3);
  line-height: 1.8;
  margin-top: 22px;
  max-width: none;
  white-space: nowrap;
}

.teacher-final .btn {
  margin-top: 30px;
}

.teacher-hero-link:focus-visible,
.teacher-stage:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--mint) 75%, transparent);
  outline-offset: 5px;
}

@media (max-width: 900px) {
  .teacher-hero,
  .teacher-hero-content {
    min-height: 680px;
  }

  .teacher-hero-image {
    object-position: 66% center;
  }

  .teacher-hero-shade {
    background: linear-gradient(
      90deg,
      rgba(3, 8, 10, 0.95) 0%,
      rgba(3, 8, 10, 0.8) 56%,
      rgba(3, 8, 10, 0.3) 100%
    );
  }

  .teacher-evidence-grid {
    grid-template-columns: 1fr;
  }

  .teacher-evidence-figure {
    grid-column: 1;
    grid-row: auto;
  }

  .teacher-evidence-intro > p:last-child {
    max-width: 48ch;
  }

  .teacher-hero-copy {
    max-width: 28em;
    white-space: normal;
  }

  .teacher-final h2,
  .teacher-final p:last-of-type {
    white-space: normal;
  }

  .teacher-final h2 span {
    display: block;
  }

  .teacher-final p:last-of-type {
    max-width: 37ch;
  }
}

@media (max-width: 680px) {
  .teacher-hero,
  .teacher-hero-content {
    min-height: 650px;
  }

  .teacher-hero-content {
    justify-content: flex-end;
    padding-bottom: 66px;
    padding-top: 122px;
  }

  .teacher-hero-image {
    object-position: 72% center;
  }

  .teacher-hero-shade {
    background: linear-gradient(
      90deg,
      rgba(3, 8, 10, 0.88) 0%,
      rgba(3, 8, 10, 0.58) 78%,
      rgba(3, 8, 10, 0.24) 100%
    );
  }

  .teacher-hero h1 {
    font-size: clamp(34px, 11vw, 56px);
    max-width: 100%;
  }

  .teacher-hero-copy {
    font-size: var(--fs-2);
    max-width: 28ch;
  }

  .teacher-hero-actions {
    gap: 18px;
    margin-top: 28px;
  }

  .teacher-workflow {
    padding-block: 72px;
  }

  .teacher-workflow-track {
    display: none;
  }

  .teacher-stage-grid {
    grid-template-columns: 1fr;
    margin-top: 0;
  }

  .teacher-stage,
  .teacher-stage:first-child {
    border: 0;
    border-top: 1px solid var(--paper-line);
    min-height: 0;
    padding: 24px 0;
  }

  .teacher-stage:last-child {
    border-bottom: 1px solid var(--paper-line);
  }

  .teacher-stage {
    gap: 7px;
  }

  .teacher-stage-number {
    font-size: 38px;
  }

  .teacher-observe,
  .teacher-observe-content {
    min-height: 650px;
  }

  .teacher-observe-image {
    object-position: 62% center;
  }

  .teacher-observe-wash {
    background: linear-gradient(
      90deg,
      rgba(5, 14, 16, 0.91) 0%,
      rgba(5, 14, 16, 0.62) 80%,
      rgba(5, 14, 16, 0.38) 100%
    );
  }

  .teacher-observe-copy {
    padding: 72px 0;
  }

  .teacher-observe h2 {
    font-size: clamp(42px, 13vw, 60px);
  }

  .teacher-evidence {
    padding-block: 76px;
  }

  .teacher-evidence-intro h2 {
    font-size: clamp(42px, 13vw, 58px);
  }

  .teacher-evidence-figure img {
    max-height: none;
  }

  .teacher-final {
    min-height: 450px;
    padding-block: 80px;
  }

  .teacher-final h2 {
    font-size: clamp(42px, 12vw, 58px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .teacher-motion,
  .teacher-motion--line,
  .teacher-stage.teacher-motion {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .teacher-hero-image {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .teacher-observe-image {
    transform: none;
    transition: none;
  }
}
/* ============== AI 评分 /ai-grading ============== */
.ai-evidence-page {
  --evidence-mint: #159f95;
  --evidence-mint-soft: #e4f4f1;
  --evidence-paper: #fbfaf6;
  background: var(--evidence-paper);
}

.ai-evidence-motion {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 720ms var(--ease) var(--stagger-delay, 0ms),
    transform 720ms var(--ease) var(--stagger-delay, 0ms);
  will-change: opacity, transform;
}

.ai-evidence-motion.in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.ai-evidence-motion--visual {
  transform: translate3d(0, 22px, 0) scale(0.985);
}

.ai-evidence-motion--visual.in,
.ai-evidence-motion--report.in {
  transform: translate3d(0, 0, 0) scale(1);
}

.ai-evidence-motion--report {
  transform: translate3d(0, 24px, 0) scale(0.985);
  transform-origin: top center;
}

.ai-evidence-hero {
  padding: 116px 0 120px;
}

.ai-evidence-hero__grid {
  align-items: start;
  display: grid;
  gap: clamp(48px, 6vw, 104px);
  grid-template-columns: minmax(0, 1.05fr) minmax(400px, 0.95fr);
}

.ai-evidence-kicker {
  align-items: center;
  color: var(--evidence-mint);
  display: inline-flex;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  gap: 10px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.ai-evidence-kicker::before {
  background: currentColor;
  content: '';
  height: 1px;
  width: 22px;
}

.ai-evidence-hero h1 {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(58px, 5.8vw, 90px);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1.04;
  margin: 24px 0 22px;
}

.ai-evidence-hero__lead {
  color: var(--text-2);
  font-size: var(--fs-4);
  line-height: 1.8;
  max-width: 27ch;
}

.ai-evidence-hero__values {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 32px;
  max-width: 620px;
}

.ai-evidence-hero__values article {
  border-left: 1px solid var(--paper-line);
  display: grid;
  gap: 6px;
  padding: 0 16px;
}

.ai-evidence-hero__values article:first-child {
  border-left: 0;
  padding-left: 0;
}

.ai-evidence-hero__values strong {
  color: var(--text-1);
  font-size: var(--fs-2);
  font-weight: 600;
}

.ai-evidence-hero__values span {
  color: var(--text-3);
  font-size: 12px;
  line-height: 1.55;
}

.ai-evidence-hero__cta {
  margin-top: 34px;
}

.ai-evidence-hero__visual {
  background: #f2eee7;
  border-radius: 16px;
  isolation: isolate;
  line-height: 0;
  margin: 44px 0 0;
  overflow: hidden;
  position: relative;
}

.ai-evidence-hero__visual img {
  display: block;
  height: auto;
  min-height: 440px;
  object-fit: cover;
  object-position: 68% center;
  transform: scale(1.035);
  transition: transform 1.1s var(--ease);
  width: 100%;
}

.ai-evidence-hero__visual.in img {
  transform: scale(1);
}

.ai-evidence-hero__visual figcaption {
  background: rgba(251, 250, 246, 0.94);
  bottom: 18px;
  display: grid;
  gap: 5px;
  left: 18px;
  line-height: 1.2;
  padding: 14px 16px;
  position: absolute;
}

.ai-evidence-hero__visual figcaption span {
  color: var(--evidence-mint);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
}

.ai-evidence-hero__visual figcaption strong {
  color: var(--text-1);
  font-size: var(--fs-2);
  font-weight: 600;
}

.ai-evidence-report {
  background: #fffefa;
  border: 1px solid rgba(6, 17, 21, 0.14);
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(6, 17, 21, 0.07);
  overflow: hidden;
}

.ai-evidence-report__header {
  border-bottom: 1px solid var(--paper-line);
  display: grid;
  gap: 18px;
  padding: 28px 30px 22px;
}

.ai-evidence-report__header h2 {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 500;
  letter-spacing: -0.035em;
}

.ai-evidence-report__header > div > p {
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  margin-top: 5px;
}

.ai-evidence-report__header dl {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, 1fr);
}

.ai-evidence-report__header dl div {
  border-top: 1px solid var(--paper-line);
  display: grid;
  gap: 4px;
  padding-top: 8px;
}

.ai-evidence-report__header dt {
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: 9px;
}

.ai-evidence-report__header dd {
  color: var(--text-1);
  font-size: 11px;
  margin: 0;
}

.ai-evidence-report__overview {
  align-items: center;
  border-bottom: 1px solid var(--paper-line);
  display: grid;
  gap: 30px;
  grid-template-columns: 150px minmax(0, 1fr);
  padding: 24px 30px;
}

.ai-evidence-report__overview > div > p {
  color: var(--text-3);
  font-size: 12px;
}

.ai-evidence-report__overview strong {
  color: var(--evidence-mint);
  font-family: var(--font-display);
  font-size: 76px;
  font-weight: 500;
  letter-spacing: -0.075em;
  line-height: 0.9;
}

.ai-evidence-report__overview span {
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: 11px;
  margin-left: 4px;
}

.ai-evidence-report__overview > p {
  color: var(--text-2);
  font-size: 13px;
  line-height: 1.75;
}

.ai-evidence-report__dimensions {
  border-bottom: 1px solid var(--paper-line);
  padding: 24px 30px;
}

.ai-evidence-report h3 {
  color: var(--text-1);
  font-size: 14px;
  font-weight: 600;
}

.ai-evidence-report__dimensions > div {
  align-items: center;
  border-bottom: 1px solid var(--paper-line);
  display: flex;
  font-size: 12px;
  justify-content: space-between;
  padding: 9px 0;
}

.ai-evidence-report__dimensions > div:first-of-type {
  margin-top: 14px;
}

.ai-evidence-report__dimensions span {
  color: var(--text-2);
}

.ai-evidence-report__dimensions strong {
  color: var(--evidence-mint);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
}

.ai-evidence-report__extracts {
  padding: 24px 30px;
}

.ai-evidence-report__extracts ol {
  display: grid;
  gap: 13px;
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
}

.ai-evidence-report__extracts li {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: 70px minmax(0, 1fr) auto;
}

.ai-evidence-report__extracts img {
  aspect-ratio: 1 / 1;
  border-radius: 4px;
  height: 70px;
  object-fit: cover;
  width: 70px;
}

.ai-evidence-report__extracts time {
  color: var(--evidence-mint);
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
}

.ai-evidence-report__extracts li strong {
  color: var(--text-1);
  display: block;
  font-size: 12px;
  font-weight: 600;
  margin-top: 3px;
}

.ai-evidence-report__extracts li p {
  color: var(--text-3);
  font-size: 11px;
  line-height: 1.5;
  margin-top: 3px;
}

.ai-evidence-report__extracts li > span {
  border: 1px solid rgba(21, 159, 149, 0.35);
  border-radius: var(--r-pill);
  color: var(--evidence-mint);
  font-family: var(--font-mono);
  font-size: 9px;
  padding: 4px 6px;
  white-space: nowrap;
}

.ai-evidence-report__comment {
  background: #f5faf8;
  border-top: 1px solid var(--paper-line);
  display: grid;
  gap: 7px;
  padding: 20px 30px 24px;
}

.ai-evidence-report__comment strong {
  color: var(--evidence-mint);
  font-size: 12px;
  font-weight: 600;
}

.ai-evidence-report__comment p {
  color: var(--text-2);
  font-size: 12px;
  line-height: 1.75;
}

.ai-workflow {
  border-top: 1px solid var(--paper-line);
  padding: 128px 0;
}

.ai-section-heading {
  margin: 0 auto;
  max-width: 820px;
  text-align: center;
}

.ai-section-heading .ai-evidence-kicker {
  justify-content: center;
}

.ai-section-heading h2,
.ai-evidence-ledger h2,
.ai-evidence-closing h2 {
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.045em;
}

.ai-section-heading h2 {
  font-size: clamp(42px, 4.2vw, 64px);
  margin-top: 20px;
}

.ai-section-heading > p:last-child {
  color: var(--text-2);
  font-size: var(--fs-4);
  line-height: 1.8;
  margin: 18px auto 0;
  max-width: 36ch;
}

.ai-workflow__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 82px;
}

.ai-workflow__grid article {
  border-left: 1px solid var(--paper-line);
  min-height: 300px;
  padding: 0 clamp(24px, 3.4vw, 56px);
}

.ai-workflow__grid article:first-child {
  border-left: 0;
  padding-left: 0;
}

.ai-workflow__grid article:last-child {
  padding-right: 0;
}

.ai-workflow__grid article > p {
  color: var(--evidence-mint);
  font-family: var(--font-display);
  font-size: 48px;
  font-style: italic;
  line-height: 1;
}

.ai-workflow__grid h3 {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 34px;
  font-weight: 500;
  margin-top: 18px;
}

.ai-workflow__grid article > strong {
  color: var(--text-2);
  display: block;
  font-size: var(--fs-3);
  font-weight: 400;
  margin-top: 8px;
}

.ai-workflow__grid ul {
  border-top: 1px solid var(--paper-line);
  list-style: none;
  margin-top: 28px;
  padding: 0;
}

.ai-workflow__grid li {
  border-bottom: 1px solid var(--paper-line);
  color: var(--text-2);
  font-size: 13px;
  line-height: 1.5;
  padding: 10px 0;
}

.ai-evidence-ledger {
  background: #f5f2eb;
  padding: 120px 0;
}

.ai-evidence-ledger__grid {
  align-items: start;
  display: grid;
  gap: clamp(48px, 7vw, 120px);
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
}

.ai-evidence-ledger h2 {
  font-size: clamp(42px, 4.4vw, 66px);
  margin-top: 20px;
}

.ai-evidence-ledger__lead {
  color: var(--text-2);
  font-size: var(--fs-4);
  line-height: 1.8;
  margin-top: 18px;
  max-width: 34ch;
}

.ai-evidence-ledger__list {
  display: grid;
  list-style: none;
  margin: 48px 0 0;
  padding: 0;
}

.ai-evidence-ledger__list li {
  align-items: center;
  border-top: 1px solid rgba(6, 17, 21, 0.12);
  display: grid;
  gap: 16px;
  grid-template-columns: 62px 132px minmax(0, 1fr);
  padding: 18px 0;
}

.ai-evidence-ledger__list li:last-child {
  border-bottom: 1px solid rgba(6, 17, 21, 0.12);
}

.ai-evidence-ledger__list time {
  color: var(--evidence-mint);
  font-family: var(--font-mono);
  font-size: 12px;
}

.ai-evidence-ledger__list img {
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  height: 74px;
  object-fit: cover;
  width: 132px;
}

.ai-evidence-ledger__list span {
  color: var(--evidence-mint);
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.05em;
}

.ai-evidence-ledger__list strong {
  color: var(--text-1);
  display: block;
  font-size: var(--fs-2);
  font-weight: 600;
  margin-top: 4px;
}

.ai-evidence-ledger__list p {
  color: var(--text-2);
  font-size: 12px;
  line-height: 1.6;
  margin-top: 5px;
}

.ai-teaching-notes {
  background: #fffefa;
  border: 1px solid rgba(6, 17, 21, 0.14);
  border-radius: 14px;
  padding: clamp(28px, 3vw, 42px);
}

.ai-teaching-notes > p {
  color: var(--evidence-mint);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
}

.ai-teaching-notes h2 {
  font-size: clamp(30px, 2.25vw, 38px);
  letter-spacing: -0.04em;
  line-height: 1.1;
  margin-top: 16px;
  white-space: nowrap;
}

.ai-teaching-notes ol {
  border-top: 1px solid var(--paper-line);
  list-style: none;
  margin-top: 30px;
  padding: 0;
}

.ai-teaching-notes li {
  border-bottom: 1px solid var(--paper-line);
  color: var(--text-2);
  font-size: 13px;
  line-height: 1.7;
  padding: 15px 0;
}

.ai-teaching-notes > div {
  background: var(--evidence-mint-soft);
  display: grid;
  gap: 6px;
  margin-top: 24px;
  padding: 16px;
}

.ai-teaching-notes > div span,
.ai-teaching-notes > div small {
  color: var(--text-3);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.04em;
}

.ai-teaching-notes > div strong {
  color: var(--text-1);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

.ai-evidence-closing {
  background: var(--ink);
  padding: 0;
}

.ai-evidence-closing__frame {
  align-items: center;
  border-bottom: 1px solid rgba(251, 250, 246, 0.16);
  display: grid;
  gap: clamp(42px, 6vw, 100px);
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 360px;
  padding: clamp(56px, 7vw, 108px) 0;
}

.ai-evidence-closing__statement {
  border-left: 2px solid var(--evidence-mint);
  padding-left: clamp(22px, 3vw, 42px);
}

.ai-evidence-closing .ai-evidence-kicker {
  color: var(--evidence-mint);
}

.ai-evidence-closing h2 {
  color: var(--paper);
  font-size: clamp(40px, 4vw, 62px);
  line-height: 1.08;
  margin-top: 18px;
  max-width: none;
}

.ai-evidence-closing__cta {
  background: var(--evidence-mint);
  border: 1px solid var(--evidence-mint);
  border-radius: 8px;
  color: var(--ink);
  font-size: var(--fs-4);
  justify-content: center;
  min-height: 88px;
  min-width: 320px;
}

.ai-evidence-closing__cta:hover {
  background: var(--paper);
  border-color: var(--paper);
  color: var(--ink);
}

@media (max-width: 1080px) {
  .ai-evidence-hero__grid,
  .ai-evidence-ledger__grid {
    gap: 48px;
  }

  .ai-evidence-report__overview {
    gap: 20px;
    grid-template-columns: 128px minmax(0, 1fr);
  }

  .ai-evidence-report__overview strong {
    font-size: 64px;
  }

  .ai-workflow__grid article {
    padding: 0 28px;
  }
}

@media (max-width: 860px) {
  .ai-evidence-hero {
    padding: 96px 0;
  }

  .ai-evidence-hero__grid,
  .ai-evidence-ledger__grid {
    grid-template-columns: 1fr;
  }

  .ai-evidence-hero__visual img {
    min-height: 0;
  }

  .ai-evidence-report {
    max-width: 680px;
  }

  .ai-workflow {
    padding: 96px 0;
  }

  .ai-workflow__grid article {
    min-height: 0;
  }

  .ai-evidence-ledger {
    padding: 96px 0;
  }
}

@media (max-width: 640px) {
  .ai-evidence-hero {
    padding: 82px 0 72px;
  }

  .ai-evidence-hero h1 {
    font-size: clamp(52px, 15vw, 70px);
  }

  .ai-evidence-hero__values {
    grid-template-columns: 1fr;
    margin-top: 28px;
  }

  .ai-evidence-hero__values article,
  .ai-evidence-hero__values article:first-child {
    border-left: 0;
    border-top: 1px solid var(--paper-line);
    padding: 12px 0;
  }

  .ai-evidence-hero__values article:first-child {
    border-top: 0;
    padding-top: 0;
  }

  .ai-evidence-hero__visual {
    margin-top: 34px;
  }

  .ai-evidence-hero__visual img {
    height: 400px;
    object-position: 70% center;
  }

  .ai-evidence-report__header,
  .ai-evidence-report__overview,
  .ai-evidence-report__dimensions,
  .ai-evidence-report__extracts,
  .ai-evidence-report__comment {
    padding-left: 20px;
    padding-right: 20px;
  }

  .ai-evidence-report__header dl {
    grid-template-columns: 1fr 1fr;
  }

  .ai-evidence-report__overview {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .ai-evidence-report__extracts li {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  .ai-evidence-report__extracts img {
    height: 58px;
    width: 58px;
  }

  .ai-evidence-report__extracts li > span {
    display: none;
  }

  .ai-workflow {
    padding: 80px 0;
  }

  .ai-workflow__grid {
    grid-template-columns: 1fr;
    margin-top: 52px;
  }

  .ai-workflow__grid article,
  .ai-workflow__grid article:first-child,
  .ai-workflow__grid article:last-child {
    border-bottom: 1px solid var(--paper-line);
    border-left: 0;
    padding: 28px 0;
  }

  .ai-workflow__grid article:last-child {
    border-bottom: 0;
  }

  .ai-evidence-ledger {
    padding: 80px 0;
  }

  .ai-evidence-ledger__list li {
    align-items: start;
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .ai-evidence-ledger__list img {
    grid-column: 2;
    height: auto;
    width: 100%;
  }

  .ai-evidence-ledger__list li > div {
    grid-column: 2;
  }

  .ai-evidence-closing {
    padding: 0;
  }

  .ai-evidence-closing__frame {
    align-items: start;
    gap: 28px;
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 72px 0;
  }

  .ai-evidence-closing h2 {
    max-width: 11ch;
  }

  .ai-evidence-closing__cta {
    min-width: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ai-evidence-motion,
  .ai-evidence-motion--visual,
  .ai-evidence-motion--report,
  .ai-evidence-hero__visual img {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }
}
/* ============== 案例 /cases ============== */
.cases-page {
  --cases-accent: #0b756b;
  background: var(--paper);
}

.cases-kicker {
  align-items: center;
  color: var(--cases-accent);
  display: inline-flex;
  font-family: var(--font-mono);
  font-size: var(--fs-1);
  font-weight: 500;
  gap: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.cases-kicker::before {
  background: currentColor;
  content: '';
  height: 1px;
  width: 24px;
}

.cases-hero {
  border-bottom: 1px solid var(--paper-line);
  overflow: hidden;
  padding: 112px 0 84px;
}

.cases-hero__grid {
  align-items: center;
  display: grid;
  gap: clamp(48px, 6vw, 96px);
  grid-template-columns: minmax(0, 0.98fr) minmax(520px, 1.02fr);
}

.cases-hero__copy {
  min-width: 0;
}

.cases-status {
  align-items: center;
  background: var(--mint-tint);
  border-radius: var(--r-pill);
  color: var(--cases-accent);
  display: inline-flex;
  font-family: var(--font-mono);
  font-size: 11px;
  gap: 8px;
  letter-spacing: 0.1em;
  margin-top: 20px;
  padding: 7px 12px;
}

.cases-status span {
  animation: cases-status-pulse 1.8s ease-in-out infinite;
  background: var(--mint);
  border-radius: 50%;
  height: 6px;
  width: 6px;
}

.cases-hero h1 {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(48px, 5.1vw, 78px);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1.08;
  margin: 24px 0 18px;
}

.cases-hero h1 span {
  display: block;
  opacity: 0;
  transform: translate3d(0, 0.22em, 0);
  transition:
    opacity 560ms var(--ease),
    transform 560ms var(--ease);
  white-space: nowrap;
}

.cases-hero h1.in span {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.cases-hero h1.in span:nth-child(2) {
  transition-delay: 120ms;
}

.cases-hero__lead {
  color: var(--text-2);
  font-size: var(--fs-4);
  line-height: 1.8;
  max-width: none;
}

.cases-hero__lead span {
  display: block;
  white-space: nowrap;
}

.cases-hero__actions,
.cases-cta__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 28px;
}

.cases-text-link {
  color: var(--text-2);
  font-size: var(--fs-2);
  text-decoration: none;
}

.cases-text-link::after {
  color: var(--cases-accent);
  content: ' →';
  margin-left: 4px;
}

.cases-text-link:hover {
  color: var(--cases-accent);
}

.cases-hero__proof {
  border-top: 1px solid var(--paper-line);
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 48px;
  padding-top: 18px;
}

.cases-hero__proof div {
  min-width: 0;
}

.cases-hero__proof dt {
  color: var(--text-1);
  font-size: var(--fs-2);
  font-weight: 600;
}

.cases-hero__proof dd {
  color: var(--text-3);
  font-size: var(--fs-1);
  line-height: 1.65;
  margin: 5px 0 0;
}

.cases-hero__figure {
  border-radius: var(--r-md);
  margin: 0;
  min-height: 620px;
  overflow: hidden;
  position: relative;
}

.cases-hero__figure img {
  border: 1px solid var(--paper-line);
  border-radius: 0;
  display: block;
  height: 620px;
  object-fit: cover;
  object-position: 62% center;
  transform: scale(1.045);
  transition: transform 1.1s var(--ease);
  width: 100%;
}

.cases-hero__figure.in img {
  transform: scale(1);
}

.cases-hero__figure figcaption {
  background: rgba(251, 250, 246, 0.94);
  bottom: 22px;
  display: grid;
  gap: 5px;
  left: 22px;
  opacity: 0;
  padding: 16px 18px;
  position: absolute;
  transform: translate3d(0, 12px, 0);
  transition:
    opacity 420ms var(--ease) 300ms,
    transform 420ms var(--ease) 300ms;
}

.cases-hero__figure.in figcaption {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.cases-hero__figure figcaption span,
.cases-record__evidence > p {
  color: var(--cases-accent);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cases-hero__figure figcaption strong {
  color: var(--text-1);
  font-size: var(--fs-2);
  font-weight: 600;
}

.cases-evidence,
.cases-collaboration {
  padding: clamp(88px, 10vw, 148px) 0;
}

.cases-section-heading {
  margin: 0 auto;
  max-width: 800px;
  text-align: center;
}

.cases-section-heading h2 {
  color: var(--ink);
  font-size: clamp(40px, 4.4vw, 62px);
  letter-spacing: -0.055em;
  line-height: 1.12;
  margin-top: 20px;
}

.cases-section-heading > p:last-child {
  color: var(--text-2);
  font-size: var(--fs-4);
  line-height: 1.8;
  margin: 18px auto 0;
  max-width: none;
  white-space: nowrap;
}

.cases-records {
  display: grid;
  gap: 12px;
  margin-top: 72px;
}

.cases-record {
  align-items: stretch;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  display: grid;
  grid-template-columns: minmax(220px, 0.76fr) minmax(360px, 1.24fr) minmax(190px, 0.62fr);
  min-height: 278px;
  overflow: hidden;
}

.cases-record__intro,
.cases-record__evidence {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(26px, 3vw, 44px);
}

.cases-record__intro {
  border-right: 1px solid var(--paper-line);
}

.cases-record__intro > p,
.cases-collaboration-card > p {
  color: var(--amber);
  font-family: var(--font-display);
  font-size: 24px;
  font-style: italic;
  letter-spacing: -0.03em;
}

.cases-record__intro h3,
.cases-collaboration-card h3 {
  color: var(--ink);
  font-size: clamp(24px, 2.2vw, 32px);
  letter-spacing: -0.045em;
  margin-top: 14px;
}

.cases-record__intro > span,
.cases-collaboration-card > span {
  color: var(--text-2);
  font-size: var(--fs-2);
  line-height: 1.8;
  margin-top: 12px;
}

.cases-record__figure {
  margin: 0;
  min-height: 278px;
}

.cases-record__figure img {
  display: block;
  height: 100%;
  object-fit: cover;
  transform: scale(1.045);
  transition: transform 900ms var(--ease);
  width: 100%;
}

.cases-record.in .cases-record__figure img {
  transform: scale(1);
}

.cases-record__evidence {
  background: var(--paper-soft);
  border-left: 1px solid var(--paper-line);
}

.cases-record__evidence ul,
.cases-collaboration-card ul {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
}

.cases-record__evidence li,
.cases-collaboration-card li {
  border-top: 1px solid var(--paper-line);
  color: var(--text-2);
  font-size: var(--fs-2);
  padding: 11px 0;
}

.cases-loop {
  background: var(--paper-soft);
  border-bottom: 1px solid var(--paper-line);
  border-top: 1px solid var(--paper-line);
  padding: clamp(88px, 10vw, 132px) 0;
}

.cases-section-heading--compact {
  max-width: 860px;
}

.cases-section-heading--compact h2 {
  font-size: clamp(36px, 3.8vw, 54px);
  white-space: nowrap;
}

.cases-loop__list {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 58px auto 0;
  max-width: 1030px;
  padding: 0;
}

.cases-loop__list li {
  border-left: 1px solid var(--paper-line);
  display: grid;
  gap: 10px;
  min-height: 142px;
  opacity: 0;
  padding: 0 clamp(22px, 3vw, 48px);
  transform: translate3d(0, 18px, 0);
  transition:
    opacity 520ms var(--ease),
    transform 520ms var(--ease);
}

.cases-loop__list.in li {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.cases-loop__list.in li:nth-child(2) {
  transition-delay: 100ms;
}

.cases-loop__list.in li:nth-child(3) {
  transition-delay: 200ms;
}

.cases-loop__list li:first-child {
  border-left: 0;
  padding-left: 0;
}

.cases-loop__list li:last-child {
  padding-right: 0;
}

.cases-loop__list strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(26px, 2.3vw, 34px);
  font-weight: 500;
  letter-spacing: -0.04em;
}

.cases-loop__list span {
  color: var(--text-2);
  font-size: var(--fs-2);
  line-height: 1.75;
}

.cases-collaboration__grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 64px;
}

.cases-collaboration-card {
  --cases-card-pad: clamp(28px, 3vw, 42px);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  display: flex;
  flex-direction: column;
  min-height: 412px;
  opacity: 0;
  overflow: hidden;
  padding: 0 var(--cases-card-pad) var(--cases-card-pad);
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 640ms var(--ease) var(--stagger-delay, 0ms),
    transform 640ms var(--ease) var(--stagger-delay, 0ms),
    border-color var(--t-base) var(--ease),
    box-shadow var(--t-base) var(--ease);
}

.cases-collaboration-card.in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.cases-collaboration-card__image {
  height: 156px;
  margin: 0 calc(0px - var(--cases-card-pad)) 26px;
  object-fit: cover;
  transform: scale(1.045);
  transition: transform 900ms var(--ease);
  width: calc(100% + var(--cases-card-pad) + var(--cases-card-pad));
}

.cases-collaboration-card.in .cases-collaboration-card__image {
  transform: scale(1);
}

.cases-collaboration-card:hover {
  border-color: var(--mint);
  box-shadow: var(--sh-3);
  transform: translateY(-4px);
}

.cases-collaboration-card.in:hover .cases-collaboration-card__image {
  transform: scale(1.035);
}

.cases-collaboration-card ul {
  margin-top: auto;
  padding-top: 20px;
}

.cases-cta {
  background: var(--paper);
  padding: clamp(56px, 7vw, 88px) 0;
}

.cases-cta__inner {
  align-items: center;
  background: var(--paper-soft);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  display: grid;
  gap: 52px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: clamp(34px, 5vw, 64px);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition:
    opacity 640ms var(--ease) var(--stagger-delay, 0ms),
    transform 640ms var(--ease) var(--stagger-delay, 0ms),
    border-color 640ms var(--ease),
    box-shadow 640ms var(--ease);
}

.cases-cta__inner.in {
  border-color: color-mix(in srgb, var(--mint) 42%, var(--paper-line));
  box-shadow: var(--sh-2);
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.cases-cta .cases-kicker {
  color: var(--cases-accent);
}

.cases-cta h2 {
  color: var(--ink);
  font-size: clamp(38px, 4vw, 58px);
  letter-spacing: -0.055em;
  line-height: 1.12;
  margin-top: 20px;
  max-width: none;
  white-space: nowrap;
}

.cases-cta__inner > div:first-child > p:last-child {
  text-wrap: balance;
}

.cases-cta__inner > div:first-child > p:last-child {
  color: var(--text-2);
  font-size: var(--fs-3);
  line-height: 1.75;
  margin-top: 18px;
  max-width: none;
  white-space: nowrap;
}

.cases-cta__actions {
  flex-direction: column;
  align-items: flex-start;
  margin-top: 0;
}

.cases-cta .cases-text-link {
  color: var(--text-2);
}

.cases-reveal,
[data-cases-reveal]:not(.cases-collaboration-card):not(.cases-cta__inner) {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition:
    opacity 640ms var(--ease) var(--stagger-delay, 0ms),
    transform 640ms var(--ease) var(--stagger-delay, 0ms);
}

[data-cases-reveal]:not(.cases-collaboration-card):not(.cases-cta__inner).in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@keyframes cases-status-pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.42;
    transform: scale(0.76);
  }
}

@media (max-width: 1080px) {
  .cases-hero__grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(400px, 1.1fr);
  }

  .cases-record {
    grid-template-columns: minmax(180px, 0.7fr) minmax(300px, 1.2fr) minmax(170px, 0.65fr);
  }
}

@media (max-width: 880px) {
  .cases-hero {
    padding-top: 94px;
  }

  .cases-hero__grid,
  .cases-cta__inner {
    grid-template-columns: 1fr;
  }

  .cases-hero__figure,
  .cases-hero__figure img {
    height: min(78vw, 600px);
    min-height: 0;
  }

  .cases-record {
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  }

  .cases-record__evidence {
    border-left: 0;
    border-top: 1px solid var(--paper-line);
    grid-column: 1 / -1;
    padding: 24px 32px;
  }

  .cases-record__evidence ul {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, 1fr);
  }

  .cases-record__evidence li {
    padding: 0;
  }

  .cases-cta__actions {
    align-items: flex-start;
  }
}

@media (max-width: 700px) {
  .cases-hero {
    padding: 84px 0 64px;
  }

  .cases-hero h1 {
    font-size: clamp(40px, 11vw, 58px);
    letter-spacing: -0.065em;
  }

  .cases-hero__lead {
    font-size: var(--fs-3);
  }

  .cases-hero__lead span,
  .cases-section-heading > p:last-child,
  .cases-cta h2,
  .cases-cta__inner > div:first-child > p:last-child {
    white-space: normal;
  }

  .cases-hero__proof,
  .cases-collaboration__grid,
  .cases-loop__list {
    grid-template-columns: 1fr;
  }

  .cases-hero__proof {
    gap: 16px;
  }

  .cases-hero__proof div {
    border-top: 1px solid var(--paper-line);
    padding-top: 12px;
  }

  .cases-hero__proof div:first-child {
    border-top: 0;
    padding-top: 0;
  }

  .cases-hero__figure,
  .cases-hero__figure img {
    height: 112vw;
  }

  .cases-hero__figure img {
    object-position: 65% center;
  }

  .cases-hero__figure figcaption {
    bottom: 14px;
    left: 14px;
    padding: 12px 14px;
  }

  .cases-evidence,
  .cases-collaboration {
    padding: 80px 0;
  }

  .cases-section-heading {
    text-align: left;
  }

  .cases-section-heading h2,
  .cases-section-heading--compact h2 {
    font-size: clamp(34px, 9vw, 46px);
    letter-spacing: -0.06em;
    white-space: normal;
  }

  .cases-section-heading > p:last-child {
    margin-left: 0;
  }

  .cases-records {
    gap: 18px;
    margin-top: 48px;
  }

  .cases-record {
    display: flex;
    flex-direction: column;
  }

  .cases-record__intro,
  .cases-record__evidence {
    padding: 30px 24px;
  }

  .cases-record__intro {
    border-bottom: 1px solid var(--paper-line);
    border-right: 0;
  }

  .cases-record__figure,
  .cases-record__figure img {
    height: 68vw;
    min-height: 0;
  }

  .cases-record__evidence ul {
    display: grid;
    gap: 0;
    grid-template-columns: 1fr;
  }

  .cases-record__evidence li {
    padding: 11px 0;
  }

  .cases-loop {
    padding: 80px 0;
  }

  .cases-loop__list {
    gap: 0;
    margin-top: 44px;
  }

  .cases-loop__list li,
  .cases-loop__list li:first-child,
  .cases-loop__list li:last-child {
    border-left: 0;
    border-top: 1px solid var(--paper-line);
    min-height: auto;
    padding: 24px 0;
  }

  .cases-loop__list li:first-child {
    border-top: 0;
    padding-top: 0;
  }

  .cases-collaboration__grid {
    gap: 12px;
    margin-top: 44px;
  }

  .cases-collaboration-card {
    min-height: 0;
    padding: 0 24px 28px;
  }

  .cases-collaboration-card__image {
    height: 52vw;
    margin: 0 -24px 24px;
    width: calc(100% + 48px);
  }

  .cases-collaboration-card ul {
    margin-top: 24px;
  }

  .cases-cta {
    padding: 74px 0;
  }

  .cases-cta h2 {
    font-size: clamp(36px, 9vw, 48px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cases-status span {
    animation: none;
  }

  .cases-collaboration-card,
  [data-cases-reveal] {
    transition: none;
  }

  .cases-hero h1 span,
  .cases-hero__figure img,
  .cases-hero__figure figcaption,
  .cases-record__figure img,
  .cases-loop__list li,
  .cases-collaboration-card__image,
  [data-cases-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
/* ============== 预约演示 /book ============== */
.book-page {
  overflow: clip;
}

.book-page .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* 预约页独立入场：此前 data-book-stagger 未对应可见状态样式，导致动效未实际生效。 */
.book-page [data-book-stagger] {
  transform: translate3d(0, 26px, 0);
  transition: transform 680ms var(--ease) var(--stagger-delay, 0ms);
  will-change: transform;
}

.book-page [data-book-stagger].in {
  transform: translate3d(0, 0, 0);
}

.book-topics {
  padding-top: clamp(148px, 15vw, 208px);
  background: var(--paper);
}

.book-section-heading {
  max-width: 760px;
  margin: 0 auto;
}

.book-section-heading--center {
  text-align: center;
}

.book-section-heading .eyebrow {
  justify-content: center;
}

.book-page .eyebrow,
.topic-index,
.privacy-check a {
  color: #087269;
}

.book-section-heading h1,
.book-section-heading h2 {
  max-width: none;
  margin: var(--s-3) auto 0;
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1.18;
}

@media (min-width: 981px) {
  .book-section-heading {
    max-width: none;
  }

  .book-section-heading h1,
  .book-section-heading h2,
  .prompt-heading h2,
  .booking-success h2 {
    white-space: nowrap;
  }

  .book-section-heading h1,
  .book-section-heading h2 {
    font-size: clamp(34px, 3.15vw, 48px);
  }
}

.book-section-heading > p:last-child {
  max-width: 56ch;
  margin: var(--s-3) auto 0;
  color: var(--text-2);
  font-size: var(--fs-3);
}

.topic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: clamp(40px, 5vw, 64px);
}

.topic-card {
  display: flex;
  min-height: 348px;
  flex-direction: column;
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  background: var(--paper);
  box-shadow: var(--sh-1);
  transition:
    border-color var(--t-base) var(--ease),
    box-shadow var(--t-base) var(--ease),
    transform var(--t-base) var(--ease);
}

.topic-card:hover {
  transform: translateY(-6px);
  border-color: rgba(34, 199, 184, 0.6);
  box-shadow: var(--sh-3);
}

.topic-index {
  margin-bottom: auto;
  font-family: var(--font-mono);
  font-size: var(--fs-2);
  letter-spacing: 0.12em;
}

.topic-card h2 {
  margin-top: var(--s-6);
  font-family: var(--font-sans);
  font-size: var(--fs-5);
  font-weight: 600;
  letter-spacing: 0;
}

.topic-description {
  margin-top: var(--s-3);
  color: var(--text-2);
  font-size: var(--fs-2);
  line-height: 1.8;
}

.topic-card ul {
  display: grid;
  gap: 8px;
  margin-top: var(--s-4);
  padding: 0;
  list-style: none;
  color: var(--text-2);
  font-size: var(--fs-1);
}

.topic-card li {
  display: flex;
  align-items: center;
  gap: 8px;
}

.topic-card li::before {
  width: 4px;
  height: 4px;
  flex: 0 0 4px;
  border-radius: 50%;
  background: var(--mint);
  content: '';
}

.booking-prompts {
  padding-top: var(--s-3);
}

.prompt-panel {
  padding: clamp(28px, 4vw, 56px) clamp(24px, 4vw, 64px);
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  background: var(--paper-soft);
}

.prompt-heading {
  text-align: center;
}

.prompt-heading .eyebrow {
  justify-content: center;
}

.prompt-heading h2 {
  margin-top: var(--s-2);
  font-size: clamp(28px, 3vw, 40px);
}

.prompt-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: var(--s-6);
  padding: 0;
  list-style: none;
}

.prompt-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--s-3);
  min-width: 0;
  padding: 0 clamp(18px, 3vw, 46px);
  border-right: 1px solid var(--paper-line);
}

.prompt-list li:first-child {
  padding-left: 0;
}

.prompt-list li:last-child {
  padding-right: 0;
  border-right: 0;
}

.prompt-index {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--mint-deep);
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
}

.prompt-list h3 {
  font-family: var(--font-sans);
  font-size: var(--fs-3);
  font-weight: 600;
  letter-spacing: 0;
}

.prompt-list p {
  margin-top: 8px;
  color: var(--text-2);
  font-size: var(--fs-1);
  line-height: 1.75;
}

.booking-form-section {
  padding-top: var(--s-7);
}

.booking-form {
  margin-top: var(--s-6);
  overflow: hidden;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  background: var(--paper);
  box-shadow: var(--sh-2);
}

.booking-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: var(--s-4) clamp(24px, 4vw, 56px);
  border-bottom: 1px solid var(--paper-line);
}

.booking-step {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: var(--text-3);
  font-size: var(--fs-2);
}

.booking-step:not(:last-child)::after {
  height: 1px;
  flex: 1;
  margin: 0 var(--s-3);
  background: var(--paper-line);
  content: '';
}

.booking-step span {
  display: grid;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  place-items: center;
  border-radius: 50%;
  background: var(--ink);
  color: var(--text-inv);
  font-family: var(--font-mono);
  font-size: 10px;
}

.booking-step strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-1);
  font-weight: 600;
}

.booking-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.booking-column {
  min-width: 0;
  padding: clamp(24px, 3vw, 42px);
  border-right: 1px solid var(--paper-line);
}

.booking-column:last-child {
  border-right: 0;
}

.booking-column h3 {
  margin-bottom: var(--s-4);
  font-family: var(--font-sans);
  font-size: var(--fs-3);
  font-weight: 600;
  letter-spacing: 0;
}

.field-stack {
  display: grid;
  gap: 16px;
}

.booking-field {
  display: grid;
  gap: 7px;
}

.booking-field > span {
  color: var(--text-2);
  font-size: var(--fs-1);
  font-weight: 600;
}

.booking-field b {
  margin-left: 3px;
  color: var(--red);
}

.booking-field input,
.booking-field select,
.booking-field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-sm);
  background: var(--paper);
  color: var(--text-1);
  font-size: var(--fs-2);
  line-height: 1.4;
  outline: none;
  transition:
    border-color var(--t-fast) var(--ease),
    box-shadow var(--t-fast) var(--ease),
    background-color var(--t-fast) var(--ease);
}

.booking-field input,
.booking-field select {
  height: 44px;
  padding: 0 12px;
}

.booking-field textarea {
  min-height: 76px;
  padding: 11px 12px;
  resize: vertical;
}

.booking-field input::placeholder,
.booking-field textarea::placeholder {
  color: var(--text-3);
}

.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus {
  border-color: var(--mint-deep);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(34, 199, 184, 0.16);
}

.topic-choice {
  min-width: 0;
  margin: clamp(20px, 2vw, 28px) clamp(20px, 2vw, 32px) 0;
  padding: 0;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  background: var(--paper-soft);
}

.topic-choice__content {
  display: grid;
  grid-template-columns: minmax(220px, 0.72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: clamp(24px, 3vw, 48px);
  padding: clamp(24px, 3vw, 36px);
}

.topic-choice__eyebrow {
  color: var(--text-1);
  font-size: var(--fs-3);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.topic-choice__eyebrow span {
  margin-left: 8px;
  color: #087269;
  font-family: var(--font-mono);
  font-size: var(--fs-foot);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.topic-choice__copy > p:last-child {
  max-width: 31ch;
  margin-top: 9px;
  color: var(--text-2);
  font-size: var(--fs-1);
  line-height: 1.7;
}

.topic-choice__options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.topic-choice label {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-sm);
  background: var(--paper);
  color: var(--text-2);
  font-size: var(--fs-2);
  cursor: pointer;
  transition:
    border-color var(--t-fast) var(--ease),
    color var(--t-fast) var(--ease),
    background-color var(--t-fast) var(--ease),
    box-shadow var(--t-fast) var(--ease),
    transform var(--t-fast) var(--ease);
}

.topic-choice label:hover {
  transform: translateY(-2px);
  border-color: rgba(8, 114, 105, 0.48);
  background: #fff;
  box-shadow: var(--sh-1);
}

.topic-choice label:has(input:checked) {
  border-color: var(--mint-deep);
  background: var(--mint-tint);
  color: var(--text-1);
  box-shadow: inset 0 0 0 1px rgba(8, 114, 105, 0.08);
}

.topic-choice input,
.privacy-check input {
  accent-color: var(--mint-deep);
}

.topic-choice input {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
}

.topic-choice label:has(input:checked) input {
  animation: book-choice-check 320ms var(--ease-bounce);
}

@keyframes book-choice-check {
  0% {
    transform: scale(0.78);
  }

  72% {
    transform: scale(1.16);
  }

  100% {
    transform: scale(1);
  }
}

.booking-form-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  padding: var(--s-4) clamp(24px, 3vw, 42px);
}

.privacy-check {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--text-3);
  font-size: var(--fs-1);
}

.privacy-check a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.booking-success {
  margin-top: var(--s-6);
  padding: clamp(48px, 8vw, 96px);
  border: 1px solid var(--mint);
  border-radius: var(--r-md);
  background: var(--mint-tint);
  text-align: center;
}

.booking-success h2 {
  margin-top: var(--s-3);
  font-size: clamp(30px, 3.2vw, 44px);
}

.booking-success p:not(.eyebrow) {
  margin-top: var(--s-3);
  color: var(--text-2);
}

.booking-success > div {
  display: flex;
  justify-content: center;
  gap: var(--s-3);
  margin-top: var(--s-5);
}

.book-faq {
  background: var(--paper-soft);
}

.faq-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: var(--s-6);
  overflow: hidden;
  border: 1px solid var(--paper-line);
  border-radius: var(--r-md);
  background: var(--paper-line);
}

.faq-grid article {
  min-width: 0;
  padding: clamp(22px, 3vw, 34px);
  background: var(--paper-soft);
}

.faq-grid h3 {
  font-family: var(--font-sans);
  font-size: var(--fs-2);
  font-weight: 600;
  letter-spacing: 0;
}

.faq-grid p {
  margin-top: var(--s-3);
  color: var(--text-2);
  font-size: var(--fs-1);
  line-height: 1.8;
}

@media (max-width: 980px) {
  .topic-grid,
  .prompt-list,
  .booking-form-grid,
  .faq-grid {
    grid-template-columns: 1fr;
  }

  .topic-card {
    min-height: 0;
  }

  .topic-card h2 {
    margin-top: var(--s-5);
  }

  .prompt-list {
    gap: 0;
  }

  .prompt-list li,
  .prompt-list li:first-child,
  .prompt-list li:last-child {
    padding: var(--s-4) 0;
    border-right: 0;
    border-bottom: 1px solid var(--paper-line);
  }

  .prompt-list li:last-child {
    border-bottom: 0;
  }

  .booking-column {
    border-right: 0;
    border-bottom: 1px solid var(--paper-line);
  }

  .booking-column:last-child {
    border-bottom: 0;
  }

  .faq-grid {
    gap: 1px;
  }

  .topic-choice__content {
    grid-template-columns: 1fr;
  }

  .topic-choice__copy > p:last-child {
    max-width: none;
  }
}

@media (max-width: 640px) {
  .book-topics {
    padding-top: 124px;
  }

  .book-section-heading h1,
  .book-section-heading h2 {
    font-size: clamp(30px, 9vw, 40px);
  }

  .booking-steps {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .booking-step:not(:last-child)::after {
    display: none;
  }

  .booking-form-bottom,
  .booking-success > div {
    align-items: stretch;
    flex-direction: column;
  }

  .booking-form-bottom .btn,
  .booking-success .btn {
    justify-content: center;
  }

  .topic-choice {
    margin-right: 16px;
    margin-left: 16px;
  }

  .topic-choice__content {
    padding: 20px;
  }

  .topic-choice__options {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .book-page [data-book-stagger],
  .topic-card,
  .booking-field input,
  .booking-field select,
  .booking-field textarea,
  .topic-choice label {
    transition: none;
  }

  .topic-card:hover,
  .topic-choice label:hover {
    transform: none;
  }

  .topic-choice label:has(input:checked) input {
    animation: none;
  }
}
/* =========================================================
   智脑科学 品牌官网 - 动效增强层 (motion.css)
   设计理念：四层动效体系（入场/滚动/交互/转场）
   性能原则：仅用 transform + opacity，GPU 加速，尊重 reduced-motion
   ========================================================= */

/* ============== 1. 滚动进度条 ============== */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  width: 0%;
  background: linear-gradient(90deg, var(--mint), var(--blue));
  z-index: 9999;
  pointer-events: none;
  transition: width 60ms linear;
  box-shadow: 0 0 8px rgba(34, 199, 184, 0.4);
}

/* ============== 2. 自定义光标 ============== */
.cursor-dot {
  position: fixed;
  top: 0;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--mint);
  pointer-events: none;
  z-index: 9998;
  mix-blend-mode: difference;
  transition: transform 80ms var(--ease), width 200ms var(--ease), height 200ms var(--ease);
  will-change: transform;
}

.cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(34, 199, 184, 0.4);
  pointer-events: none;
  z-index: 9997;
  transition: transform 240ms var(--ease), width 240ms var(--ease), height 240ms var(--ease), border-color 240ms var(--ease);
  will-change: transform;
}

.cursor-dot.is-hover {
  width: 16px;
  height: 16px;
}

.cursor-ring.is-hover {
  width: 56px;
  height: 56px;
  border-color: var(--mint);
  background: rgba(34, 199, 184, 0.06);
}

/* 触屏设备隐藏自定义光标 */
@media (hover: none) and (pointer: coarse) {
  .cursor-dot,
  .cursor-ring {
    display: none !important;
  }
}

/* ============== 3. Hero 标题逐词入场 ============== */
.word-reveal {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
}

.word-reveal .word-inner {
  display: inline-block;
  transform: translateY(110%);
  transition: transform 700ms var(--ease);
  will-change: transform;
}

.word-reveal.in .word-inner {
  transform: translateY(0);
}

/* ============== 4. 下划线绘制动效 ============== */
.draw-line {
  position: relative;
}

.draw-line::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 2px;
  background: var(--mint);
  opacity: 0.5;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 800ms var(--ease) 400ms;
}

.draw-line.in::after {
  transform: scaleX(1);
}

/* ============== 5. 磁吸按钮增强 ============== */
.magnetic {
  transition: transform 200ms var(--ease);
  will-change: transform;
}

.magnetic .magnetic-inner {
  display: inline-flex;
  align-items: center;
  gap: inherit;
  transition: transform 200ms var(--ease);
  will-change: transform;
}

/* ============== 6. 视差元素 ============== */
.parallax {
  will-change: transform;
}

/* ============== 7. 步骤连线绘制（已移除，避免覆盖设计稿 .steps-grid::before） ============== */

/* ============== 8. 步骤编号脉冲（已移除，避免覆盖设计稿 .step-num::after） ============== */

/* ============== 9. 卡片悬浮光晕 ============== */
.card-glow {
  position: relative;
  overflow: hidden;
}

.card-glow::after {
  content: '';
  position: absolute;
  top: var(--glow-y, 50%);
  left: var(--glow-x, 50%);
  width: 300px;
  height: 300px;
  margin: -150px 0 0 -150px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(34, 199, 184, 0.1) 0%, transparent 70%);
  opacity: 0;
  transition: opacity 300ms var(--ease);
  pointer-events: none;
  z-index: 0;
}

.card-glow:hover::after {
  opacity: 1;
}

.card-glow > * {
  position: relative;
  z-index: 1;
}

/* ============== 10. 数字递增底部线（已移除，避免覆盖设计稿 .stat .num） ============== */

/* ============== 11. 渐入上浮（增强版 reveal） ============== */
.reveal-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 800ms var(--ease), transform 800ms var(--ease);
  will-change: opacity, transform;
}

.reveal-up.in {
  opacity: 1;
  transform: translateY(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 600ms var(--ease), transform 600ms var(--ease);
  will-change: opacity, transform;
}

.reveal-scale.in {
  opacity: 1;
  transform: scale(1);
}

/* ============== 12. 模糊渐入（高级感） ============== */
.reveal-blur {
  opacity: 0;
  filter: blur(8px);
  transform: translateY(20px);
  transition: opacity 700ms var(--ease), filter 700ms var(--ease), transform 700ms var(--ease);
  will-change: opacity, filter, transform;
}

.reveal-blur.in {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

/* ============== 13. 浮动装饰动效 ============== */
.float-slow {
  animation: float-slow 6s ease-in-out infinite;
}

@keyframes float-slow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

.float-medium {
  animation: float-medium 4s ease-in-out infinite;
}

@keyframes float-medium {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* ============== 14. 渐变流动（背景氛围） ============== */
.gradient-flow {
  background-size: 200% 200%;
  animation: gradient-flow 8s ease infinite;
}

@keyframes gradient-flow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* ============== 15. 闪烁指示点 ============== */
.blink-dot {
  animation: blink 1.6s ease-in-out infinite;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

/* ============== 16. 页面转场增强 ============== */
.page-enter-active {
  transition:
    opacity 320ms var(--ease),
    transform 320ms var(--ease),
    filter 320ms var(--ease);
}
.page-enter-from {
  opacity: 0;
  transform: translateY(12px);
  filter: blur(4px);
}

/* ============== 全局可访问性：减少动画 ============== */
@media (prefers-reduced-motion: reduce) {
  .scroll-progress { transition: none; }
  .word-reveal .word-inner { transform: none !important; transition: none !important; }
  .draw-line::after { transform: scaleX(1) !important; transition: none !important; }
  .steps-grid::before { transform: scaleX(1) !important; transition: none !important; }
  .step-num::before { animation: none !important; }
  .float-slow, .float-medium, .gradient-flow, .blink-dot { animation: none !important; }
  .reveal-up, .reveal-scale, .reveal-blur { opacity: 1 !important; transform: none !important; filter: none !important; }
  .stat .num::after { width: 32px !important; transition: none !important; }
}
/* =========================================================
   智脑空间 — 全局焦点可见性 (Phase C)
   WCAG 2.4.7 Focus Visible — 2px 实色 outline,对比度 ≥ 3:1
   依赖:design-system/tokens.css 中的 --blue (#3F6CFF) 变量
   使用方需在调用方 main.ts 中先 import 共享 tokens.css
   ========================================================= */

:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
  border-radius: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}

.brand-column[data-v-29a98749] {
  display: flex;
  align-items: center;
  gap: 24px;
}


/* ---- RouterView 页面转场 (out-in, 增强版) ---- */
.page-enter-active {
  transition:
    opacity 320ms var(--ease),
    transform 320ms var(--ease),
    filter 320ms var(--ease);
}
.page-leave-active {
  transition:
    opacity 200ms var(--ease),
    transform 200ms var(--ease);
}
.page-enter-from {
  opacity: 0;
  transform: translateY(12px);
  filter: blur(4px);
}
.page-leave-to {
  opacity: 0;
  transform: translateY(-6px);
}

/* 减少动画偏好下退化 */
@media (prefers-reduced-motion: reduce) {
.page-enter-active,
  .page-leave-active {
    transition-duration: 0.01ms !important;
}
}
