/* ====== tokens（与 design/tokens.css 逐字同源，修改须同步） ====== */
:root {
	/* 石墨中性色（色相 ≈ 220°，低饱和） */
	--bg: #0F1115;
	--surface: #161A21;
	--surface-2: #1E242D;
	--line: #262C36;
	--line-soft: #1B2028;
	--text-1: #E6E9EE;
	--text-2: #A3ABB8;
	--text-3: #6B7482;

	/* 琥珀 —— 唯一行动色：主按钮 / 选中态 / 品牌方块 / 揭晓高光 */
	--accent: #F5B342;
	--accent-hover: #FFC65C;
	--on-accent: #0F1115;
	--accent-tint: #3B3320;

	/* 行情语义（国内默认红涨绿跌；海外切换只换这四个值） */
	--up: #E5484D;
	--down: #30A46C;
	--up-tint: #3A1F22;
	--down-tint: #1F3A2C;

	/* 状态 */
	--warn: #F08A24;
	--redact: #05080F;
	--stop: #F08A24;
	--take-profit: #F5B342;

	/* 字体 */
	--font-mono: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
	--font-sans: 'IBM Plex Sans Condensed', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB', 'Noto Sans SC', 'Microsoft YaHei', sans-serif;

	/* 字号刻度 */
	--fs-10: 10px; --fs-11: 11px; --fs-12: 12px; --fs-13: 13px; --fs-14: 14px; --fs-16: 16px;
	--fs-20: 20px; --fs-24: 24px; --fs-32: 32px; --fs-44: 44px; --fs-60: 60px;

	/* 间距刻度 */
	--sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 14px; --sp-5: 16px; --sp-6: 24px;
	--sp-8: 32px; --sp-12: 48px; --sp-16: 64px; --sp-24: 96px;

	/* 形状 */
	--radius: 4px;
	--radius-sm: 3px;
	--radius-xs: 2px;
	--radius-pill: 999px;

	/* 动效 */
	--ease: cubic-bezier(0.16, 1, 0.3, 1);
	--dur-1: 160ms; --dur-2: 320ms; --dur-3: 640ms;

	/* 布局 */
	--content-max: 1200px;
	--measure: 65ch;
}

/* ====== 自托管字体：Google Fonts 的 latin 子集 woff2，与 App 打包的同一批；中文回落系统字体 ====== */
@font-face{font-family:'IBM Plex Sans Condensed';font-weight:400;font-display:swap;src:url(/assets/fonts/IBMPlexSansCondensed-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans Condensed';font-weight:500;font-display:swap;src:url(/assets/fonts/IBMPlexSansCondensed-500.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans Condensed';font-weight:600;font-display:swap;src:url(/assets/fonts/IBMPlexSansCondensed-600.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-weight:400 600;font-display:swap;src:url(/assets/fonts/IBMPlexSans.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-weight:400 700;font-display:swap;src:url(/assets/fonts/JetBrainsMono.woff2) format('woff2')}

/* 海外 / 绿涨红跌 */
:root[data-updown="intl"] {
	--up: #30A46C;
	--down: #E5484D;
	--up-tint: #1F3A2C;
	--down-tint: #3A1F22;
}

/* ====== base ====== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
	margin:0;background:var(--bg);color:var(--text-1);
	font-family:var(--font-sans);font-size:var(--fs-14);line-height:1.4;
	-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:var(--content-max);margin:0 auto;padding:0 var(--sp-6)}
@media(max-width:719px){.wrap{padding:0 var(--sp-4)}}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.eyebrow{
	font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.08em;text-transform:uppercase;
	color:var(--text-3);font-weight:500;
}
.lede{font-size:var(--fs-14);color:var(--text-2);line-height:1.65;max-width:var(--measure)}
.tw{overflow-x:auto}

/* 进入动效：淡入上移 */
.rise{opacity:0;transform:translateY(10px);transition:opacity var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}
.rise.in{opacity:1;transform:none}
.rise.del1{transition-delay:60ms}.rise.d2{transition-delay:120ms}

/* ====== 组件 ====== */
.btn{
	display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
	height:44px;padding:0 var(--sp-5);
	font-weight:600;font-size:var(--fs-14);border:1px solid transparent;border-radius:var(--radius);
	transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease);
	white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-secondary{border-color:var(--line);color:var(--text-1)}
.btn-secondary:hover{background:var(--surface-2)}
.btn-sm{height:40px;padding:0 var(--sp-4);font-size:var(--fs-13)}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.btn .kbd{font-family:var(--font-mono);font-size:var(--fs-10);color:inherit;opacity:.7;letter-spacing:.08em}
.btn[data-placeholder]{border:1px dashed var(--warn);outline:1px dashed var(--warn);outline-offset:2px}
.btn-trade{
	display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
	height:40px;padding:0 var(--sp-4);border-radius:var(--radius);
	transition:filter var(--dur-1) var(--ease);
}
.btn-trade:active{transform:translateY(1px)}
.btn-trade b{font-size:var(--fs-13);font-weight:600;line-height:1.1}
.btn-trade small{font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:.08em;opacity:.8;line-height:1.1}
.btn-trade.up{background:var(--up-tint);color:var(--up)}
.btn-trade.down{background:var(--down-tint);color:var(--down)}
.btn-trade[disabled]{opacity:.4;cursor:not-allowed}
.tabs{display:flex;gap:var(--sp-6);height:36px;align-items:stretch;border-top:1px solid var(--line)}
.tabs span{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);letter-spacing:.08em}
.tabs span.on{color:var(--accent);border-bottom:2px solid var(--accent)}
.tabs span i{font-style:normal;color:var(--text-1);margin-left:var(--sp-1)}
.badge{
	display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:.08em;
	padding:0 5px;height:18px;border:1px solid var(--accent-tint);color:var(--accent);background:transparent;
	border-radius:var(--radius-xs);white-space:nowrap;text-transform:uppercase;
}
.badge.neutral{border-color:var(--line);color:var(--text-3)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3)}
.table{width:100%;border-collapse:collapse;background:var(--surface);font-size:var(--fs-13)}
.table th,.table td{padding:var(--sp-2) var(--sp-4);text-align:left;vertical-align:top;line-height:1.5}
.table thead th{
	font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:.08em;text-transform:uppercase;
	color:var(--text-3);font-weight:500;border-bottom:1px solid var(--line);height:36px;white-space:nowrap;
}
.table tbody td{border-bottom:1px solid var(--line-soft);height:40px;color:var(--text-2)}
.table tbody tr:last-child td{border-bottom:0}
.table td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--text-1)}
.switch{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}
.switch .track{width:34px;height:18px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);position:relative;transition:background var(--dur-1) var(--ease)}
.switch .track::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:var(--radius-pill);background:var(--text-1);transition:transform var(--dur-2) var(--ease),background var(--dur-1) var(--ease)}
.switch[aria-checked="true"] .track{background:var(--accent-tint)}
.switch[aria-checked="true"] .track::after{transform:translateX(16px);background:var(--accent)}
.blind{font-family:var(--font-mono);font-size:var(--fs-12);font-weight:700;color:var(--text-3);letter-spacing:.06em}

/* 涂黑条：盲阶段盖住真值，揭晓时从右往左收回 */
.redact{display:inline-block;width:72px;height:14px;background:var(--redact);border-radius:var(--radius-xs);border:1px solid var(--line-soft)}
.redact.w2{width:118px}
.rvwrap{position:relative;display:inline-flex;align-items:center;height:20px;min-width:72px}
#rv-date.rvwrap{min-width:118px}
.rvwrap .redact{position:absolute;right:0;top:3px;transform-origin:right center;transition:transform var(--dur-3) var(--ease)}
.rvwrap.open .redact{transform:scaleX(0)}
.reveal-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-20);color:var(--accent)}
/* 可窥视的涂黑条：鼠标靠近时从右往左收回（--open 0–1 由 site.js 按距离写入），悬停 / 点按全开 */
.peek{position:relative;display:inline-flex;align-items:center;height:20px;cursor:default}
.peek .peek-val{font-size:var(--fs-14);color:var(--text-1);white-space:nowrap;padding-right:4px}
.peek .redact{position:absolute;left:0;right:0;width:auto;top:3px;transform-origin:right center;transform:scaleX(calc(1 - var(--open,0)));transition:transform 120ms linear}
.peek:hover{--open:1}

/* ====== nav / footer ====== */
nav.top{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;height:48px;gap:var(--sp-4)}
.brand{display:flex;align-items:center;gap:var(--sp-2)}
.brand .sq{width:8px;height:8px;background:var(--accent);border-radius:var(--radius-xs)}
.brand .en{font-family:var(--font-mono);font-size:var(--fs-13);font-weight:700;letter-spacing:.06em}
.brand .zh{font-size:var(--fs-13);color:var(--text-2);white-space:nowrap}
.navlinks{display:flex;gap:var(--sp-5)}
.navlinks a{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.06em;color:var(--text-2);white-space:nowrap}
.navlinks a:hover{color:var(--text-1)}
.navright{display:flex;align-items:center;gap:var(--sp-2)}
/* 语言下拉：全宽可见；select 不能挂伪元素，外包一层画箭头 */
.langsel-wrap{position:relative;display:inline-flex;max-width:96px}
.langsel-wrap::after{
	content:'';position:absolute;right:8px;top:50%;margin-top:-2px;pointer-events:none;
	border-left:4px solid var(--text-3);border-top:3px solid transparent;border-bottom:3px solid transparent;
}
.langsel{
	display:inline-block;appearance:none;-webkit-appearance:none;
	background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);height:28px;
	max-width:96px;padding:0 22px 0 var(--sp-2);
	font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-2);
}
.langsel:hover{color:var(--text-1)}
@media(max-width:900px){.navlinks{display:none}}
/* 901–1099：六个链接在 en / es 字典下放不下，收紧间距与字号；涨跌色开关是页头里唯一不在 §11 导航清单内的控件，此档隐藏（< 720 本就隐藏） */
@media(min-width:901px) and (max-width:1099px){
	nav.top .wrap{gap:var(--sp-3)}
	.navlinks{gap:var(--sp-3)}
	.navlinks a{font-size:var(--fs-10)}
	nav.top .switch{display:none}
	nav.top .btn-sm{padding:0 var(--sp-3)}
}
@media(max-width:719px){
	nav.top .switch{display:none}
	.brand .zh{display:none}
}
footer{padding:var(--sp-12) 0}
footer .wrap{display:flex;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap;align-items:flex-start}
footer .cols{display:flex;gap:var(--sp-8);flex-wrap:wrap;font-size:var(--fs-13);color:var(--text-2);align-items:flex-start}
footer .cols a{display:block;padding:var(--sp-1) 0;margin-bottom:var(--sp-1)}
footer .cols a:hover{color:var(--text-1)}
/* 触屏：页脚导航链接只有一行文字高（约 18px），点击区撑到 44px */
@media(max-width:719px){footer .cols a{padding:var(--sp-4) 0;margin-bottom:0}}
footer .stance{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);max-width:44ch;line-height:1.7;margin:var(--sp-3) 0 0}

/* ====== hero：首屏无字幕宣传片静音循环铺满（object-fit: cover），统一压暗后叠左下文案 ====== */
.hero{position:relative;min-height:calc(100svh - 48px);display:flex;align-items:flex-end;padding:var(--sp-24) 0 var(--sp-16);border-bottom:1px solid var(--line);overflow:hidden;background:var(--bg)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-dim{position:absolute;inset:0;background:var(--bg);opacity:.5}
.hero .wrap{position:relative;width:100%}
.hero-copy{max-width:560px}
.hero .eyebrow{font-size:var(--fs-10)}
.hero h1{
	font-family:var(--font-sans);font-weight:600;font-size:clamp(var(--fs-32),5vw,var(--fs-60));
	line-height:1.08;margin:var(--sp-3) 0;letter-spacing:-.01em;
}
.hero .desc{font-size:var(--fs-14);color:var(--text-2);line-height:1.65;max-width:var(--measure);margin:0}
.hero .ctas{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-6);align-items:center}
.hero .stats{display:flex;gap:var(--sp-8);margin-top:var(--sp-8);flex-wrap:wrap}
.hero .stat b{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-20);font-weight:500;line-height:1.2}
.hero .stat span{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-2);letter-spacing:.08em}
@media(max-width:719px){.hero{padding:var(--sp-16) 0 var(--sp-12)}}
/* 盲测演示段：左文案 5 栏 / 终端 7 栏 */
.demo-grid{display:grid;grid-template-columns:5fr 7fr;gap:var(--sp-8);align-items:start}
.demo-keys{margin-top:var(--sp-6);max-width:320px}
.kbd{font-family:var(--font-mono);font-size:var(--fs-11);border:1px solid var(--line);border-radius:var(--radius-xs);padding:1px 6px;color:var(--text-1)}
@media(max-width:1099px){.demo-grid{grid-template-columns:1fr}}
/* 关于页成员：行式列表，器物头像 72px */

/* ====== 终端框 ====== */
.terminal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);position:relative}
.term-head{
	display:flex;justify-content:space-between;align-items:center;min-height:40px;padding:0 var(--sp-3);
	border-bottom:1px solid var(--line);gap:var(--sp-3);flex-wrap:wrap;
}
.term-head .meta{display:flex;gap:var(--sp-3);align-items:center;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3)}
.term-head .meta b{color:var(--text-1);font-weight:500}
.term-ohlc{
	--ma2:#7C86FF;
	display:flex;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line-soft);
	font-family:var(--font-mono);font-size:var(--fs-11);font-variant-numeric:tabular-nums;color:var(--text-3);flex-wrap:wrap;
}
.term-ohlc b{font-weight:400}
.term-ohlc .up{color:var(--up)}.term-ohlc .down{color:var(--down)}
.term-ohlc .ma1{color:var(--accent)}.term-ohlc .ma2{color:var(--ma2)}
.terminal canvas{display:block;width:100%;height:300px}
.term-tabs{padding:0 var(--sp-3)}
.term-eq{
	display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;
	padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--line-soft);
	font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.term-eq .eq b{font-size:var(--fs-20);font-weight:700;line-height:1.2}
.term-eq .eq span,.term-eq .pos{font-size:var(--fs-11);color:var(--text-3);margin-right:var(--sp-3)}
.term-eq .pos b{color:var(--text-1);font-weight:500}
.pnl-up{color:var(--up)}.pnl-down{color:var(--down)}
.term-actions{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);flex-wrap:wrap}
.term-actions .btn-trade{flex:1;min-width:96px}
.term-actions .btn-primary{flex:1.6;min-width:120px;height:40px;font-size:var(--fs-13)}
.term-foot{padding:0 var(--sp-3) var(--sp-3)}
.term-foot .btn-secondary{height:36px;font-size:var(--fs-12)}
.hint{
	position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);
	font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);pointer-events:none;
	transition:opacity var(--dur-2) var(--ease);background:var(--surface-2);padding:var(--sp-1) var(--sp-2);
	border:1px solid var(--line);border-radius:var(--radius);white-space:nowrap;max-width:calc(100% - 2 * var(--sp-3));overflow:hidden;text-overflow:ellipsis;
}
.hint.hide{opacity:0}
.reveal{position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 93%,transparent);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease);border-radius:var(--radius);overflow:auto}
.reveal.on{opacity:1;pointer-events:auto}
.reveal-card{width:min(94%,480px);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);background:var(--surface)}
.reveal-card h3{font-size:var(--fs-16);margin:var(--sp-1) 0 var(--sp-2)}
.reveal-rows{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-1) var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);align-items:baseline}
.reveal-rows b{color:var(--text-1);font-weight:400;font-size:var(--fs-12)}
.reveal-rows b.big{font-size:var(--fs-20);font-weight:500}
.stamps{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-3) 0}
.reveal-note{font-size:var(--fs-12);color:var(--text-3);line-height:1.6;margin:0 0 var(--sp-3)}

/* ====== sections ====== */
section.block{padding:var(--sp-16) 0;border-bottom:1px solid var(--line)}
section.block h2{font-family:var(--font-sans);font-weight:600;font-size:var(--fs-24);margin:var(--sp-2) 0 var(--sp-3)}
section.block .lede{margin:0 0 var(--sp-6)}
@media(max-width:719px){section.block{padding:var(--sp-12) 0}}

/* diagnosis badges */
.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);margin-bottom:var(--sp-3)}
@media(max-width:900px){.badges{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.badges{grid-template-columns:1fr}}
.badge-item{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.badge-item p{margin:0;font-size:var(--fs-12);color:var(--text-2);line-height:1.5}
.badge-item .badge{align-self:flex-start}
.tagline{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);letter-spacing:.06em;margin:0}

/* faq */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line-soft)}
.faq summary{
	display:flex;gap:var(--sp-3);align-items:baseline;cursor:pointer;list-style:none;
	padding:var(--sp-3) 0;font-size:var(--fs-14);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .no{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3)}
.faq summary:hover{color:var(--text-1)}
.faq .a{padding:0 0 var(--sp-3);margin-left:var(--sp-6);color:var(--text-2);font-size:var(--fs-13);line-height:1.65;max-width:var(--measure)}

/* price */
.price-cta{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-6);flex-wrap:wrap}
.price-note{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);margin:var(--sp-3) 0 0;line-height:1.7}
.table .tier{font-family:var(--font-sans);font-size:var(--fs-13);color:var(--text-1);text-transform:none;letter-spacing:0}
.table .tier .amt{display:block;font-family:var(--font-mono);font-size:var(--fs-20);font-weight:500;margin-top:2px}
.table .tier .per{display:block;font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-3);font-weight:400;margin-top:2px}
.table td.y{color:var(--text-1)}
.table td.n{color:var(--text-3)}

/* 法务 / 长文页 */
.doc{max-width:var(--measure);margin:0 auto}
.doc .lg-note{font-size:var(--fs-13);color:var(--warn);border:1px dashed var(--warn);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-4)}
.doc article{font-size:var(--fs-14);color:var(--text-2);line-height:1.75}
.doc article h1{font-size:var(--fs-24);color:var(--text-1);font-weight:600;margin:0 0 var(--sp-2)}
.doc article h2{font-size:var(--fs-16);color:var(--text-1);font-weight:600;margin:var(--sp-6) 0 var(--sp-2)}
.doc article p{margin:0 0 var(--sp-3)}
.doc article ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5)}
.doc article li{margin-bottom:var(--sp-1)}
.doc article strong{color:var(--text-1)}
.doc article table{width:100%;border-collapse:collapse;font-size:var(--fs-13);margin:0 0 var(--sp-4)}
.doc article th,.doc article td{border:1px solid var(--line);padding:var(--sp-1) var(--sp-2);text-align:left;vertical-align:top}
.doc article th{color:var(--text-1);font-weight:600;background:var(--surface)}
.doc article a{color:var(--accent)}
mark.todo{background:transparent;color:var(--warn);border:1px dashed var(--warn);border-radius:var(--radius-xs);padding:0 3px;font-style:normal}

/* 定价页购买区 */
/* 购买方式：同一时间只显示一种（按语言），所以通栏一块；三步横排带等宽序号，按钮靠右 */
.buy{margin-top:var(--sp-12)}
.buy .eyebrow{margin-bottom:var(--sp-3)}
.buy-grid{display:grid;grid-template-columns:1fr}
.buy-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5) var(--sp-6);display:grid;grid-template-columns:1fr auto;gap:var(--sp-3) var(--sp-8);align-items:center}
.buy-card[hidden]{display:none}
.buy-card h3{grid-column:1;font-size:var(--fs-16);font-weight:600;margin:0}
.buy-card .btn{grid-column:2;grid-row:1 / span 2;justify-self:end}
.buy-card ol.steps{grid-column:1;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);list-style:none;margin:0;padding:0;counter-reset:step}
.buy-card ol.steps li{position:relative;padding-left:30px;color:var(--text-2);font-size:var(--fs-13);line-height:1.6}
.buy-card ol.steps li::before{counter-increment:step;content:"0" counter(step);position:absolute;left:0;top:2px;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);letter-spacing:.08em}
.buy-card .steps{grid-column:1}
.hero-mobile{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);letter-spacing:.08em;margin:var(--sp-2) 0 0}
.buy-note{grid-column:1;font-size:var(--fs-12);color:var(--text-3);line-height:1.6;margin:0}
@media(max-width:719px){.buy-card{grid-template-columns:1fr}.buy-card .btn{grid-column:1;grid-row:auto;justify-self:start}.buy-card ol.steps{grid-template-columns:1fr;gap:var(--sp-3)}}

@media(prefers-reduced-motion:reduce){
	*{transition:none!important;animation:none!important}
	html{scroll-behavior:auto}
	.rise{opacity:1;transform:none}
	.rvwrap .redact,.peek .redact{transition:none}
}

/* ====== 研究专栏与关于页（步骤 27；长文规范见 DESIGN §11.1） ====== */
/* 长文正文容器：66ch 行宽、IBM Plex Sans 17px/1.75（移动 16px）；标题仍用 Condensed */
.article{
	max-width:66ch;margin:0 auto;padding-top:var(--sp-12);padding-bottom:var(--sp-16);
	font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Noto Sans SC','Microsoft YaHei',sans-serif;
	font-size:17px;line-height:1.75;color:var(--text-2);
}
@media(max-width:719px){.article{font-size:16px}}
.article h1{
	font-family:var(--font-sans);font-weight:600;font-size:var(--fs-32);line-height:1.2;
	color:var(--text-1);letter-spacing:-.01em;margin:var(--sp-2) 0 var(--sp-3);
}
@media(max-width:719px){.article h1{font-size:26px}}
.article h2{font-family:var(--font-sans);font-weight:600;font-size:22px;line-height:1.3;color:var(--text-1);margin:var(--sp-8) 0 var(--sp-4)}
.article p{margin:0 0 var(--sp-4)}
.article ul,.article ol{margin:0 0 var(--sp-4);padding-left:var(--sp-6)}
.article li{margin-bottom:var(--sp-1)}
.article strong{color:var(--text-1)}
.article a{color:var(--text-1);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.article a:hover{text-decoration-color:var(--text-1)}
.article blockquote{border-left:1px solid var(--line);margin:0 0 var(--sp-4);padding:var(--sp-1) 0 var(--sp-1) var(--sp-4);color:var(--text-3)}
.article blockquote p{margin:0}
.article code{font-family:var(--font-mono);font-size:.85em;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xs);padding:0 4px}
.article pre{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3);margin:0 0 var(--sp-4)}
.article pre code{background:none;border:0;padding:0}
.tscroll{overflow-x:auto;margin:0 0 var(--sp-4)}
.tscroll table{width:100%;min-width:480px;border-collapse:collapse;font-size:var(--fs-14)}
.tscroll th,.tscroll td{border:1px solid var(--line);padding:var(--sp-1) var(--sp-2);text-align:left;vertical-align:top;line-height:1.5}
.tscroll th{color:var(--text-1);font-weight:600;background:var(--surface);font-family:var(--font-sans)}

/* 文章页眉题行与导语 */
.a-meta{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin:0 0 var(--sp-2)}
.a-meta a{color:inherit}
/* 小工具表单：数字输入走 mono + tabular，区间含 50% 时用 warn 色提示 */
.calc{display:flex;flex-wrap:wrap;gap:var(--sp-5);margin:var(--sp-5) 0 var(--sp-3)}
.calc label{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-13);color:var(--text-2)}
.calc input{width:9ch;height:40px;padding:0 var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-14);font-variant-numeric:tabular-nums;color:var(--text-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.calc input:focus{outline:none;border-color:var(--text-3)}
.calc .unit{font-family:var(--font-mono);color:var(--text-3)}
.table td.num.coin{color:var(--warn)}
/* 锚点落位避开 48px 粘性页头 */
.article h2,.article h3{scroll-margin-top:calc(49px + var(--sp-5))}
.a-lede{font-size:18px;color:var(--text-2);line-height:1.7;margin:0 0 var(--sp-6)}

/* 答案块：导语后直接回答标题的问题，供读者与 AI 引擎摘取；不用琥珀（长文页琥珀只给训练框） */
.a-answer{background:var(--surface);border-left:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5);margin:0 0 var(--sp-8);font-size:17px;line-height:1.75;color:var(--text-1)}
.a-answer p{margin:0 0 var(--sp-3)}
.a-answer p:last-child{margin-bottom:0}
@media(max-width:719px){.a-answer{font-size:16px}}

/* 常见问题：可折叠问答，默认展开，爬虫拿到全文 */
.a-faq{margin:var(--sp-8) 0}
.a-faq details{border-top:1px solid var(--line-soft);padding:var(--sp-3) 0}
.a-faq details:last-of-type{border-bottom:1px solid var(--line-soft)}
.a-faq summary{list-style:none;cursor:pointer;font-weight:600;color:var(--text-1);display:flex;gap:var(--sp-3);align-items:baseline}
.a-faq summary::-webkit-details-marker{display:none}
.a-faq summary::before{content:"Q";font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);letter-spacing:.08em;flex:none}
.a-faq details p{color:var(--text-2);margin:var(--sp-2) 0 0 calc(1ch + var(--sp-3))}
.a-faq details p:last-child{margin-bottom:0}

/* 「你可以怎么练」框：长文页唯一的琥珀色用例 */
.train{background:var(--surface);border-left:2px solid var(--accent);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5);margin:var(--sp-8) 0}
.train .train-h{
	font-family:var(--font-mono);font-size:var(--fs-11);font-weight:500;letter-spacing:.08em;text-transform:uppercase;
	color:var(--text-3);margin:0 0 var(--sp-3);
}
.train p:last-child{margin-bottom:0}

/* 参考文献：有序列表，等宽序号右对齐，可锚点跳转 */
.refs ol{list-style:none;counter-reset:ref;padding:0;margin:0}
.refs li{display:grid;grid-template-columns:3ch 1fr;gap:var(--sp-3);counter-increment:ref;margin-bottom:var(--sp-2);font-size:var(--fs-14);line-height:1.6}
.refs li::before{content:counter(ref);font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text-3);text-align:right;padding-top:2px}
.refs li:target .ref-text{color:var(--text-1)}

/* 正文脚注上标：等宽数字，可点击 */
.article .fn{font-family:var(--font-mono);font-size:var(--fs-11);line-height:0}
.article .fn a{text-decoration:none;color:var(--text-3);padding:0 1px}
.article .fn a:hover{color:var(--text-1)}

/* 文章页尾：上一篇 / 下一篇 + 同系列 */
.a-nav{
	display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;
	border-top:1px solid var(--line);padding-top:var(--sp-4);margin-top:var(--sp-8);font-size:var(--fs-12);
}
.a-nav a{text-decoration:none;color:var(--text-2)}
.a-nav a:hover{color:var(--text-1)}
.a-related{margin-top:var(--sp-6)}
.a-related p{margin:var(--sp-1) 0;font-size:var(--fs-14)}

/* 非中英文提示条（博客页顶） */
.blog-note{
	font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.06em;color:var(--text-3);
	border-bottom:1px solid var(--line-soft);padding-top:var(--sp-2);padding-bottom:var(--sp-2);margin:0;
}

/* 研究列表页：表格式行，hover 行底 --surface-2 */
.blist-h{font-size:var(--fs-32);font-weight:600;letter-spacing:-.01em;margin:var(--sp-2) 0 var(--sp-3)}
@media(max-width:719px){.blist-h{font-size:26px}}
.blist tbody tr:hover td{background:var(--surface-2)}
.blist td a{color:var(--text-1)}
.blist-rss{font-size:var(--fs-11);letter-spacing:.08em;margin:var(--sp-3) 0 0}
.blist-rss a{color:var(--text-3);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.blist-rss a:hover{color:var(--text-1)}

/* 首页宣言段：三行，左对齐，行间 1px 分隔 */
#manifesto .mline{font-size:var(--fs-20);color:var(--text-1);line-height:1.6;margin:0;padding:var(--sp-4) 0;border-bottom:1px solid var(--line-soft)}
#manifesto .mline:last-child{border-bottom:0}

/* 首页研究段：最新三篇（日期 · 标题，表格式行） */
.rlist{border-top:1px solid var(--line);margin-bottom:var(--sp-4)}
.rrow{display:flex;gap:var(--sp-4);align-items:baseline;padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--line-soft)}
.rrow:hover{background:var(--surface-2)}
.rrow .rd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-11);color:var(--text-3);white-space:nowrap}
.rrow .rt{color:var(--text-1);font-size:var(--fs-14)}
.rall{margin:0;font-size:var(--fs-13)}
.rall a{color:var(--text-1);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.rall a:hover{text-decoration-color:var(--text-1)}

/* 页脚组织署名行 */
.byorg{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);line-height:1.7;margin:var(--sp-2) 0 0}

/* 关于页：分层分隔线、编号列 */
.about hr.sep{border:0;border-top:1px solid var(--line);margin:var(--sp-12) 0 var(--sp-8)}
.table td.idx{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text-3);width:3ch}
.about .brandline{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.08em;color:var(--text-3);text-transform:uppercase;margin:0 0 var(--sp-6)}

/* ===== 渲染图与图内标注（S28） ===== */

/* 图内标注：等宽 11px、大写间距，1px 引线，端点 4px 方块；坐标经 --co-x/--co-y 按图内百分比给出 */
.callout{position:absolute;left:var(--co-x);top:var(--co-y);z-index:2;pointer-events:none}
.callout .co-t{position:absolute;font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.08em;text-transform:uppercase;color:var(--text-1);white-space:nowrap}
.callout .co-dot{position:absolute;left:-2px;top:-2px;width:4px;height:4px;background:var(--text-3)}
.callout .co-line{position:absolute;left:0;width:1px;height:20px;background:var(--text-3)}
.callout.co-up .co-line{top:-20px}
.callout.co-dn .co-line{top:4px}
.callout.co-lt .co-line{top:-44px;height:44px}
.callout.co-up .co-t{left:10px;bottom:26px}
.callout.co-dn .co-t{left:10px;top:26px}
.callout.co-lt .co-t{left:10px;top:6px;color:var(--on-accent)}
.callout.co-dark .co-t{color:var(--on-accent)}   /* 亮底（浅色卡片/亮地面）上的标注用深字 */
.callout.co-dark .co-line,.callout.co-dark .co-dot{background:var(--on-accent)}
.callout.co-rev .co-t{left:auto;right:10px}
/* 窄屏：标注折到图下方按顺序排列，引线隐藏 */
@media(max-width:899px){
	.callout{position:static;display:inline-flex;align-items:center;gap:var(--sp-2);margin:var(--sp-3) var(--sp-4) 0 0;pointer-events:auto}
	.callout .co-dot{position:static;flex:none}
	.callout .co-line{display:none}
	.callout .co-t{position:static}
}

/* 首页宣言段：视频右 60%（16:9，不裁切）、三句宣言左 40%；移动端视频在上、文字在下 */
#manifesto .man-stage{position:relative;min-height:56vh;display:flex;align-items:center;gap:var(--sp-8)}
#manifesto .man-txt{position:relative;z-index:2;width:40%}
#manifesto .man-fig{position:relative;margin:0;width:60%;aspect-ratio:16/9;background:var(--bg)}
#manifesto .man-video{display:block;width:100%;height:100%;background:var(--bg)}
@media(max-width:899px){
	#manifesto .man-stage{display:flex;flex-direction:column;min-height:0}
	#manifesto .man-fig{order:-1;width:100%}
	#manifesto .man-txt{width:100%}
}

/* 首页经典战役段：树脂块图左 40%（上下经 mask 渐隐融入底色），表右侧 */
.bt-grid{display:grid;grid-template-columns:2fr 3fr;gap:var(--sp-8);align-items:start}
.bt-fig{position:relative;margin:0;height:100%}
.bt-img{display:block;width:100%;height:100%;object-fit:cover;
	-webkit-mask-image:linear-gradient(to bottom,transparent 0,var(--bg) 18%,var(--bg) 82%,transparent 100%);
	mask-image:linear-gradient(to bottom,transparent 0,var(--bg) 18%,var(--bg) 82%,transparent 100%)}
@media(max-width:899px){
	.bt-grid{grid-template-columns:1fr}
	.bt-fig{height:220px}
}

/* 首页模块器物：内容 60% + 图 40%（.rev 图在左），图上下经 mask 渐隐融入底色 */
.mod-grid{display:grid;grid-template-columns:3fr 2fr;gap:var(--sp-8);align-items:start}
.mod-grid.rev .mod-fig{order:-1}
.mod-fig{position:relative;margin:0}
.mod-img{display:block;width:100%;height:auto;object-fit:cover;
	-webkit-mask-image:linear-gradient(to bottom,transparent 0,var(--bg) 18%,var(--bg) 82%,transparent 100%);
	mask-image:linear-gradient(to bottom,transparent 0,var(--bg) 18%,var(--bg) 82%,transparent 100%)}
/* 长译文标注允许换行，避免溢出图框；co-rev 锚点右置、定宽右对齐（包含块 0 宽，shrink-to-fit 不可用） */
figure .callout .co-t{white-space:normal;width:max-content;max-width:200px;line-height:1.6}
figure .callout.co-rev .co-t{text-align:right}
@media(max-width:899px){
	.mod-grid{grid-template-columns:1fr}
	.mod-grid .mod-fig{order:-1;height:220px}
	.mod-grid .mod-img{height:100%}
	figure .callout .co-t{width:auto;max-width:none;text-align:left;transform:none}
}

/* 关于页：研究室层表盘图通栏置于眉题上方（16:9 自适应，不裁切），标注贴图内右下角、引线斜指表盘指针尖；产品层树脂块 45% */
.about .ab-gauge{position:relative;margin:0 0 var(--sp-8)}
.about .ab-gauge-img{display:block;width:100%;height:auto}
.about .ab-pr{display:grid;grid-template-columns:1fr 45%;gap:var(--sp-8);align-items:start}
.about .ab-pr-fig{margin:0}
.about .ab-pr-img{display:block;width:100%;height:100%;object-fit:cover;object-position:70% 50%}
@media(max-width:719px){
	.about .ab-pr{grid-template-columns:1fr}
}

/* 研究列表页页头：220px 表盘小图右侧，无标注 */
.bi-head{position:relative}
.bi-gauge{position:absolute;right:0;top:0;margin:0;width:220px}
.bi-gauge-img{display:block;width:100%;height:auto;object-fit:cover}
@media(max-width:719px){.bi-gauge{display:none}}

/* 文章配图（site:figures 产物，导语后内联）：figure 包 SVG + 图题；字体继承等宽，遮蔽块取 --redact */
.article .fig-wrap{margin:0 0 var(--sp-8)}
.article .fig{display:block;width:100%;height:auto}
.article .fig-wrap figcaption{
	font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3);
	text-align:left;margin:var(--sp-2) 0 0;
}
.fig text{font-family:var(--font-mono)}
.fig .fig-redact{fill:var(--redact)}

/* ====== 路线图页：公开榜三张表（DESIGN §11 子页） ====== */
/* 等待条（DESIGN §4）：96×2 轨道，35% 琥珀段匀速扫过，一轮 --dur-3 × 2；减少动态时只留静止一段 */
.waitbar{position:relative;display:block;width:96px;height:2px;background:var(--line);overflow:hidden}
.waitbar::after{content:'';position:absolute;top:0;left:0;width:35%;height:100%;background:var(--accent);animation:waitbar calc(var(--dur-3) * 2) linear infinite}
@keyframes waitbar{from{transform:translateX(-100%)}to{transform:translateX(calc(100% / .35))}}
@media(prefers-reduced-motion:reduce){.waitbar::after{animation:none}}
.rm-hint{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.06em;color:var(--text-3)}
.rm-cap{display:flex;gap:var(--sp-2);margin:var(--sp-8) 0 var(--sp-2);font-variant-numeric:tabular-nums}
.rm-table th.num{text-align:right}
.rm-table .rm-t{color:var(--text-1);font-weight:500}
.rm-table .rm-b{font-size:var(--fs-12);color:var(--text-3);line-height:1.5;margin-top:2px}
.rm-table td.num,.rm-table .rm-tag,.rm-table .rm-act{white-space:nowrap}
.rm-table .rm-act{text-align:right}
.rm-table .rm-wait td{vertical-align:middle}
.rm-table .rm-fail{font-size:var(--fs-12)}
.rm-table .rm-empty{color:var(--text-3)}
.article .rm-link{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.06em;color:var(--text-2);text-decoration:none;white-space:nowrap}
.article .rm-link:hover{color:var(--text-1)}
.rm-k{white-space:nowrap;width:1%}
@media(max-width:719px){
	.rm-table .rm-tag{display:none}
	.rm-table th,.rm-table td{padding-left:var(--sp-2);padding-right:var(--sp-2)}
}
