/* ============================================================
   BallFact · home.css —— 首页专属样式（依赖 global.css）
   全站规则（rem 阶梯 / 变量 / nav / footer / chips）见 global.css
   ============================================================ */

/* --- hero --- */
.hero { position:relative; padding:6rem 0 4.5rem; overflow:hidden; }
.ghost { position:absolute; right:-1.875rem; top:2.125rem; z-index:0; font-family:var(--disp); font-weight:900; font-size:16rem; line-height:.8; letter-spacing:-.04em; color:transparent; -webkit-text-stroke:1px rgba(204,255,0,.09); pointer-events:none; user-select:none; }
.hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.35fr .9fr; gap:4rem; align-items:center; }
.eyebrow { display:inline-flex; align-items:center; gap:0.75rem; font-size:0.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); margin-bottom:1.875rem; }
.eyebrow::before { content:""; width:2.125rem; height:1px; background:var(--acc); }
.hero h1 { font-size:3.5rem; line-height:.95; letter-spacing:-.025em; margin-bottom:2.125rem; }
.hero h1 .row2 { color:var(--acc); text-shadow:0 0 2.75rem rgba(204,255,0,.25); }
.hero-sub { max-width:35rem; color:var(--dim); font-size:1rem; line-height:1.9; margin-bottom:2.625rem; }
.hero-sub b { color:var(--text); font-weight:500; }
.hero-cta { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:4rem; }
.hero-stats { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); background:rgba(13,13,13,.6); }
.hstat { padding:1.25rem 1.375rem; border-right:1px solid var(--line); position:relative; overflow:hidden; }
.hstat:last-child { border-right:none; }
.hstat::before { content:""; position:absolute; left:0; top:0; width:100%; height:2px; background:var(--acc); transform:scaleX(0); transform-origin:left; transition:transform .4s; }
.hstat:hover::before { transform:scaleX(1); }
.hstat .v { font-family:var(--disp); font-weight:900; font-size:1.875rem; color:var(--text); letter-spacing:-.01em; }
.hstat .v em { font-style:normal; color:var(--acc); }
.hstat .k { font-size:0.71875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); margin-top:0.25rem; }
.term { position:relative; background:var(--surface); border:1px solid var(--line-2); padding:1.625rem 1.625rem 1.875rem; box-shadow:0 1.875rem 5rem rgba(0,0,0,.5); }
.term-head { display:flex; justify-content:space-between; align-items:center; gap:0.75rem; border-bottom:1px dashed var(--line-2); padding-bottom:0.875rem; margin-bottom:1.125rem; font-size:0.75rem; letter-spacing:.14em; text-transform:uppercase; }
.term-head .file { color:var(--acc); }
.term-head .state { display:flex; align-items:center; gap:0.4375rem; color:var(--dim); }
.term-body { min-height:14.875rem; font-size:0.84375rem; line-height:2.15; color:var(--dim); }
.term-body .ln { display:block; white-space:pre-wrap; }
.term-body .ln.cmd { color:var(--text); }
.term-body .ln.ok { color:var(--acc); }
.term-body .ln.warn { color:#ffb03a; }
.term-body .ln .pfx { color:var(--acc); }
.term-body .ln .ok { color:var(--acc); }
.term-body .ln .cy { color:var(--cyan); }
.cursor { display:inline-block; width:0.5rem; height:0.9375rem; background:var(--acc); vertical-align:-0.125rem; animation:blink 1s steps(2) infinite; }
.term-foot { margin-top:1.125rem; padding-top:0.875rem; border-top:1px dashed var(--line-2); display:flex; justify-content:space-between; font-size:0.71875rem; letter-spacing:.12em; color:var(--faint); text-transform:uppercase; }

/* --- ticker --- */
.ticker { border-block:1px solid var(--line); background:var(--bg-2); overflow:hidden; padding:0.8125rem 0; position:relative; }
.ticker::before,.ticker::after { content:""; position:absolute; top:0; bottom:0; width:7.5rem; z-index:2; pointer-events:none; }
.ticker::before { left:0; background:linear-gradient(90deg,var(--bg-2),transparent); }
.ticker::after { right:0; background:linear-gradient(-90deg,var(--bg-2),transparent); }
.ticker-track { display:flex; gap:0; width:max-content; animation:marquee 36s linear infinite; }
.ticker:hover .ticker-track { animation-play-state:paused; }
@keyframes marquee { to { transform:translateX(-50%); } }
.tk-group { display:flex; gap:3.5rem; padding-right:3.5rem; flex:none; align-items:center; }
.tk { display:flex; align-items:center; gap:0.625rem; font-size:0.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); white-space:nowrap; }
.tk .chk { color:var(--acc); }
.tk .warn { color:var(--red); }
.tk .sep { color:var(--faint); margin-left:1.375rem; }

/* --- spotlight --- */
.spot-grid { display:grid; grid-template-columns:1.05fr .8fr; gap:3.5rem; align-items:start; }
.spot-q { font-size:1.875rem; line-height:1.15; margin-bottom:1.375rem; }
.spot-q em { font-style:normal; color:var(--acc); }
.spot-p { color:var(--dim); font-size:0.9375rem; line-height:1.95; margin-bottom:1.875rem; }
.spot-grid .chips { margin-bottom:2.125rem; }
.audit-log { border:1px solid var(--line); background:var(--surface); padding:1.375rem 1.5rem; font-size:0.8125rem; line-height:2.3; }
.audit-log .h { letter-spacing:.16em; text-transform:uppercase; font-size:0.71875rem; color:var(--faint); margin-bottom:0.625rem; }
.audit-log .st { display:flex; justify-content:space-between; gap:0.875rem; border-bottom:1px dashed var(--line); color:var(--dim); }
.audit-log .st:last-child { border-bottom:none; }
.audit-log .st .ok { color:var(--acc); }
.gauge-card { background:var(--surface); border:1px solid var(--line-2); padding:2.75rem 2.375rem; text-align:center; position:relative; }
.gauge-wrap { position:relative; width:14.375rem; margin:0 auto 1.625rem; }
.gauge-wrap svg { width:100%; height:auto; transform:rotate(-90deg); }
.gauge-track { fill:none; stroke:var(--line-2); stroke-width:6; }
.gauge-fill { fill:none; stroke:var(--acc); stroke-width:6; stroke-linecap:butt; stroke-dasharray:527; stroke-dashoffset:527; transition:stroke-dashoffset 1.8s cubic-bezier(.16,1,.3,1); filter:drop-shadow(0 0 8px rgba(204,255,0,.5)); }
.gauge-num { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.gauge-num .v { font-family:var(--disp); font-weight:900; font-size:4.125rem; line-height:1; letter-spacing:-.02em; }
.gauge-num .k { font-size:0.6875rem; letter-spacing:.22em; text-transform:uppercase; color:var(--faint); margin-top:0.5rem; }
.evi-bars { display:flex; flex-direction:column; gap:0.875rem; text-align:left; margin-top:0.5rem; }
.ebar .t { display:flex; justify-content:space-between; font-size:0.71875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-bottom:0.375rem; }
.ebar .track { height:0.4375rem; background:rgba(255,255,255,.05); overflow:hidden; }
.ebar .fill { height:100%; width:0; background:linear-gradient(90deg,rgba(204,255,0,.35),var(--acc)); transition:width 1.4s cubic-bezier(.16,1,.3,1); }

/* --- best xi --- */
.xi-layout { display:grid; grid-template-columns:27.5rem 1fr; gap:3.25rem; align-items:start; }
/* grid 子项默认 min-width:auto 会被宽表格撑破视口，必须归零 */
.xi-layout > *,.spot-grid > *,.fm-grid > *,.hero-grid > * { min-width:0; }
.pitch-box { position:sticky; top:6.5rem; border:1px solid var(--line); background:linear-gradient(180deg,rgba(13,13,13,.9),rgba(5,5,5,.9)); padding:1.125rem; }
.pitch-box .ph { display:flex; justify-content:space-between; font-size:0.71875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); padding:0 0.375rem 0.875rem; }
.pitch-box .ph b { color:var(--acc); font-weight:500; }
.pitch { width:100%; height:auto; }
.pitch .field { stroke:rgba(204,255,0,.16); stroke-width:1; fill:none; }
.pitch .field-soft { stroke:rgba(255,255,255,.05); stroke-width:1; fill:none; }
.pnode { cursor:pointer; }
.pnode .ring { fill:#0a0a0a; stroke:var(--line-2); stroke-width:1.5; transition:all .25s; }
.pnode .num-txt { fill:var(--dim); font-family:var(--mono); font-size:11px; font-weight:700; text-anchor:middle; transition:fill .25s; }
.pnode .nm { fill:var(--faint); font-family:var(--mono); font-size:9.5px; letter-spacing:.08em; text-anchor:middle; text-transform:uppercase; transition:fill .25s; }
.pnode:hover .ring,.pnode.hot .ring { stroke:var(--acc); fill:var(--acc-dim); filter:drop-shadow(0 0 0.4375rem rgba(204,255,0,.55)); }
.pnode:hover .num-txt,.pnode.hot .num-txt { fill:var(--acc); }
.pnode:hover .nm,.pnode.hot .nm { fill:var(--text); }
.xi-legend { display:flex; justify-content:space-between; gap:0.625rem; font-size:0.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); padding:0.875rem 0.375rem 0; border-top:1px dashed var(--line); margin-top:0.875rem; flex-wrap:wrap; }
.xi-table-wrap { border:1px solid var(--line); background:var(--surface); overflow-x:auto; -webkit-overflow-scrolling:touch; }
.xi-thead { display:flex; justify-content:space-between; padding:0.875rem 1.375rem; border-bottom:1px solid var(--line); font-size:0.71875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); }
.xi-thead b { color:var(--acc); font-weight:500; }
table.xi { width:100%; border-collapse:collapse; min-width:40rem; }
.xi th { text-align:left; font-size:0.6875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); font-weight:500; padding:0.8125rem 0.75rem; border-bottom:1px solid var(--line); background:var(--bg-2); }
.xi td { padding:0.9375rem 0.75rem; border-bottom:1px solid var(--line); font-size:0.875rem; color:var(--dim); white-space:nowrap; }
.xi tr:last-child td { border-bottom:none; }
.xi-row { transition:background .2s; }
.xi-row:hover,.xi-row.hot { background:rgba(204,255,0,.05); }
.xi-row:hover .nm,.xi-row.hot .nm { color:var(--acc); }
.xi .pos { font-size:0.6875rem; letter-spacing:.14em; color:var(--faint); }
.xi .nm { color:var(--text); font-weight:500; transition:color .2s; }
.xi .club { font-size:0.75rem; }
.nat { display:inline-block; font-size:0.65625rem; letter-spacing:.1em; padding:0.1875rem 0.4375rem; border:1px solid var(--line-2); color:var(--dim); }
.attr { color:var(--dim); font-variant-numeric:tabular-nums; }
.ovr { display:flex; align-items:center; gap:0.625rem; }
.ovr .bar { width:4.5rem; height:0.3125rem; background:rgba(255,255,255,.06); overflow:hidden; }
.ovr .bar i { display:block; height:100%; background:var(--acc); width:0; transition:width 1.2s cubic-bezier(.16,1,.3,1); }
.ovr .n { font-family:var(--disp); font-weight:900; font-size:1rem; color:var(--acc); }
.xi-note { margin-top:1.125rem; font-size:0.78125rem; color:var(--faint); line-height:1.9; }
.xi-note b { color:var(--dim); font-weight:500; }
.sec-more { margin-top:3rem; display:flex; justify-content:center; }

/* --- fm index --- */
.fm-grid { display:grid; grid-template-columns:1fr 1fr; gap:3.25rem; align-items:start; }
.drift { border:1px solid var(--line); background:var(--surface); }
.drift .dh { display:flex; justify-content:space-between; padding:1rem 1.375rem; border-bottom:1px solid var(--line); font-size:0.71875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); }
.drift .dh b { color:var(--cyan); font-weight:500; }
.drow { display:grid; grid-template-columns:5.375rem 1fr 3.375rem 2.75rem; align-items:center; gap:0.875rem; padding:0.875rem 1.375rem; border-bottom:1px solid var(--line); font-size:0.8125rem; }
.drow:last-child { border-bottom:none; }
.drow:hover { background:rgba(77,232,255,.04); }
.drow .ver { color:var(--dim); letter-spacing:.08em; }
.drow .bar { height:0.5rem; background:rgba(255,255,255,.05); overflow:hidden; }
.drow .bar i { display:block; height:100%; width:0; background:linear-gradient(90deg,rgba(77,232,255,.3),var(--cyan)); transition:width 1.3s cubic-bezier(.16,1,.3,1); }
.drow .val { color:var(--text); font-weight:700; text-align:right; font-variant-numeric:tabular-nums; }
.drow .dlt { text-align:right; font-size:0.71875rem; }
.dlt.up { color:var(--acc); }
.dlt.down { color:var(--red); }
.dlt.peak { color:#0a0a0a; background:var(--acc); padding:0.125rem 0.3125rem; font-weight:700; }
.verdicts { display:flex; flex-direction:column; gap:1rem; }
.verdict { border:1px solid var(--line); background:var(--surface); padding:1.5rem 1.625rem; position:relative; overflow:hidden; transition:border-color .25s,transform .25s; }
.verdict::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--acc); transform:scaleY(0); transform-origin:top; transition:transform .3s; }
.verdict:hover { border-color:var(--line-2); transform:translateX(0.375rem); }
.verdict:hover::before { transform:scaleY(1); }
.verdict .vt { display:flex; justify-content:space-between; align-items:baseline; gap:0.75rem; margin-bottom:0.5rem; }
.verdict .vt .name { font-family:var(--disp); font-weight:700; font-size:1.0625rem; letter-spacing:.02em; text-transform:uppercase; }
.verdict .vt .tag { font-size:0.65625rem; letter-spacing:.14em; text-transform:uppercase; padding:0.25rem 0.5rem; flex:none; }
.verdict .tag.over { background:var(--red-dim); color:var(--red); }
.verdict .tag.under { background:var(--acc-dim); color:var(--acc); }
.verdict .tag.correct { background:var(--cyan-dim); color:var(--cyan); }
.verdict .vd { font-size:0.84375rem; color:var(--dim); line-height:1.85; }
.verdict .vd b { color:var(--text); font-weight:500; }

/* --- podium --- */
.podium-wrap { border:1px solid var(--line); background:var(--surface); padding:3.5rem 3rem 0; overflow:hidden; }
.podium-q { font-size:1.375rem; margin-bottom:2.75rem; text-align:center; }
.podium-q em { font-style:normal; color:var(--acc); }
.podium { display:flex; align-items:flex-end; justify-content:center; gap:1.125rem; }
.pcol { flex:1; max-width:17.5rem; display:flex; flex-direction:column; align-items:center; gap:0; }
.pmeta { text-align:center; padding:0 0.625rem 1.375rem; }
.pmeta .rank { font-family:var(--disp); font-weight:900; font-size:0.9375rem; letter-spacing:.1em; color:var(--faint); margin-bottom:0.5rem; }
.pmeta .rank em { font-style:normal; color:var(--acc); }
.pmeta .pname { font-family:var(--disp); font-weight:900; text-transform:uppercase; font-size:1.125rem; letter-spacing:.01em; margin-bottom:0.375rem; }
.pmeta .pinfo { font-size:0.71875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); }
.pmeta .pscore { font-family:var(--disp); font-weight:900; font-size:2.125rem; color:var(--acc); margin-top:0.75rem; }
.pmeta .pscore span { font-size:0.8125rem; color:var(--faint); font-family:var(--mono); font-weight:400; }
.pblock { width:100%; border:1px solid var(--line-2); border-bottom:none; position:relative; overflow:hidden; background:repeating-linear-gradient(-45deg,transparent 0 10px,rgba(255,255,255,.014) 10px 20px); }
.pblock::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,var(--acc-dim),transparent 60%); opacity:0; transition:opacity .3s; }
.pcol:hover .pblock::after { opacity:1; }
.p1 .pblock { height:13.75rem; border-color:rgba(204,255,0,.5); }
.p2 .pblock { height:9.375rem; }
.p3 .pblock { height:6.5rem; }
.pblock .lbl { position:absolute; left:0; right:0; top:0.75rem; text-align:center; font-size:0.6875rem; letter-spacing:.2em; text-transform:uppercase; color:var(--faint); }

/* --- truth lab --- */
.truth-list { display:flex; flex-direction:column; border:1px solid var(--line); background:var(--surface); }
.trow { display:grid; grid-template-columns:6.875rem 1fr auto; gap:2.125rem; align-items:center; padding:1.875rem 2.25rem; border-bottom:1px solid var(--line); transition:background .25s; }
.trow:last-child { border-bottom:none; }
.trow:hover { background:rgba(204,255,0,.03); }
.trow .yr { font-family:var(--disp); font-weight:900; font-size:1.875rem; color:transparent; -webkit-text-stroke:1px var(--acc); letter-spacing:-.01em; }
.trow:hover .yr { color:var(--acc); -webkit-text-stroke:1px var(--acc); }
.trow .tt { font-family:var(--disp); font-weight:700; font-size:1.0625rem; text-transform:uppercase; letter-spacing:.02em; margin-bottom:0.4375rem; }
.trow .td { font-size:0.875rem; color:var(--dim); line-height:1.8; max-width:40rem; }

/* --- manifesto --- */
.manifesto { background:var(--bg-2); border-block:1px solid var(--line); }
.mani-line { font-size:2.75rem; line-height:1.05; margin-bottom:0.875rem; }
.mani-line .ghost-x { color:transparent; -webkit-text-stroke:1px var(--line-2); }
.mani-line .acc { color:var(--acc); text-shadow:0 0 2.5rem rgba(204,255,0,.22); }
.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:4rem; }
.principle { background:var(--bg-2); padding:2.25rem 2.125rem; transition:background .3s; }
.principle:hover { background:var(--surface); }
.principle .pn { font-size:0.75rem; letter-spacing:.2em; color:var(--acc); margin-bottom:1.125rem; }
.principle h3 { font-family:var(--disp); font-weight:900; text-transform:uppercase; font-size:1.1875rem; letter-spacing:.02em; margin-bottom:0.75rem; }
.principle p { font-size:0.875rem; color:var(--dim); line-height:1.85; }

/* --- join --- */
.join-box { border:1px solid var(--line-2); background:var(--surface); padding:4rem 3.5rem; position:relative; overflow:hidden; }
.join-box::before { content:""; position:absolute; top:-10rem; right:-7.5rem; width:26.25rem; height:26.25rem; background:radial-gradient(circle,rgba(204,255,0,.14),transparent 62%); pointer-events:none; }
.join-head { font-size:2.125rem; line-height:1.05; margin-bottom:1.125rem; }
.join-head em { font-style:normal; color:var(--acc); }
.join-sub { color:var(--dim); font-size:0.9375rem; max-width:35rem; margin-bottom:2.375rem; line-height:1.9; }
.join-form { display:flex; align-items:center; gap:0; border:1px solid var(--line-2); background:var(--bg); max-width:40rem; position:relative; z-index:1; }
.join-form .prompt { padding:0 0 0 1.125rem; color:var(--acc); font-size:0.8125rem; white-space:nowrap; }
.join-form input { flex:1; min-width:0; background:transparent; border:none; outline:none; color:var(--text); font-size:0.9375rem; padding:1.0625rem 0.875rem; }
.join-form input::placeholder { color:var(--faint); }
.join-form button { border:none; border-left:1px solid var(--line-2); background:var(--acc); color:#0a0a0a; font-weight:700; font-size:0.8125rem; letter-spacing:.12em; text-transform:uppercase; padding:0 1.625rem; cursor:pointer; height:3.25rem; transition:box-shadow .25s; }
.join-form button:hover { box-shadow:0 0 1.625rem var(--acc-glow); }
.join-resp { margin-top:1rem; font-size:0.8125rem; color:var(--acc); min-height:1.25rem; }

/* --- 首页响应式 --- */
@media (max-width:1080px) {
.hero-grid { grid-template-columns:1fr; gap:3.25rem; }
.ghost { font-size:10rem; top:auto; bottom:-2.5rem; opacity:.6; }
.spot-grid,.fm-grid { grid-template-columns:1fr; gap:2.75rem; }
.xi-layout { grid-template-columns:1fr; gap:2.25rem; }
.pitch-box { position:static; max-width:min(32.5rem,100%); margin:0 auto; width:100%; }
}
@media (max-width:760px) {
.hero { padding:4rem 0 3.5rem; }
.hero h1 { font-size:2.75rem; }
.hero-stats { grid-template-columns:1fr 1fr; }
.hstat:nth-child(2) { border-right:none; }
.hstat:nth-child(-n+2) { border-bottom:1px solid var(--line); }
.term-body { min-height:16.25rem; }
.gauge-card { padding:2rem 1.5rem; }
.drow { padding:0.875rem 1rem; gap:0.625rem; }
.podium { gap:0.5rem; }
.podium-wrap { padding:2.75rem 1rem 0; }
.pmeta { padding:0 0.25rem 1rem; }
.pmeta .pname { font-size:0.9375rem; }
.pmeta .pscore { font-size:1.625rem; }
.p1 .pblock { height:9.375rem; } .p2 .pblock { height:6.5rem; } .p3 .pblock { height:4.5rem; }
.pblock .lbl { font-size:0.5625rem; letter-spacing:.08em; padding:0 0.25rem; }
.trow { grid-template-columns:1fr; gap:0.75rem; padding:1.625rem 1.375rem; }
.trow .yr { font-size:1.5rem; }
.badge { justify-self:start; }
.mani-line { font-size:2rem; }
.principles { grid-template-columns:1fr; }
.join-box { padding:2.75rem 1.625rem; }
.join-form { flex-wrap:wrap; }
.join-form .prompt { display:none; }
.join-form input { width:100%; }
.join-form button { width:100%; border-left:none; border-top:1px solid var(--line-2); height:3rem; }
}
