:root{--ink:#e9f5ee;--muted:#a9b9af;--paper:#0b1611;--pitch:#10241b;--pitch-light:#173a29;--line:rgba(222,247,230,.16);--glass:rgba(12,29,21,.62);--green:#79e8a3;--gold:#efc66c;--red:#ff8a7d;--radius:18px;--ease:cubic-bezier(.16,1,.3,1);font:100%/1.5 -apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-optical-sizing:auto;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;background:var(--paper);overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.page-width{width:min(1180px,calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;top:-4rem;left:1rem;z-index:10;padding:.75rem 1rem;background:#fff;color:#000;border-radius:8px}.skip-link:focus{top:1rem}.top-nav{position:fixed;z-index:10;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(1200px,calc(100% - 28px));min-height:56px;padding:6px 8px 6px 16px;border:1px solid rgba(255,255,255,.2);border-radius:14px;display:flex;align-items:center;gap:24px;background:rgba(6,18,12,.6);backdrop-filter:blur(18px) saturate(145%);box-shadow:0 14px 34px rgba(0,0,0,.18)}.brand{font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--green);color:#092015;font-size:11px;font-weight:900;letter-spacing:-.08em}.nav-links{display:flex;gap:4px;margin-left:auto}.nav-links a{padding:10px 11px;color:#cfddd3;font-size:14px}.nav-links a:hover,.nav-links a:focus-visible{color:#fff}.nav-cta{min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 13px;border-radius:10px;background:#e8f4ec;color:#092015;font-size:14px;font-weight:700}.hero{min-height:max(760px,100svh);position:relative;display:grid;align-items:end;overflow:hidden;background:#07150d}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{background-image:url('/assets/football-night-stadium.jpg');background-position:70% calc(50% + (var(--scroll-y,0px) * -.07));background-size:cover;transform:scale(1.04);will-change:transform,background-position}.hero-shade{background:linear-gradient(90deg,rgba(5,17,11,.96) 0%,rgba(5,17,11,.7) 40%,rgba(5,17,11,.2) 78%),linear-gradient(0deg,rgba(5,17,11,.95),transparent 55%)}.hero-content{position:relative;z-index:1;padding-bottom:clamp(72px,12vh,150px)}.eyebrow{margin:0 0 12px;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.hero h1{max-width:790px;margin:0;letter-spacing:-.052em;font-size:clamp(46px,7vw,92px);line-height:.99}.hero-copy{max-width:520px;margin:28px 0;color:#d0ddd4;font-size:clamp(16px,1.7vw,19px);line-height:1.7}.hero-actions{display:flex;gap:12px}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 19px;border-radius:12px;font-weight:700;transition:transform .2s var(--ease),background .2s var(--ease)}.button:active,.match-card:active{transform:scale(.98)}.button-primary{background:var(--green);color:#092015}.button-secondary{border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.06)}.featured-match{position:absolute;z-index:1;right:max(24px,calc((100vw - 1180px)/2));bottom:clamp(50px,9vh,108px);width:min(390px,calc(100% - 48px));padding:24px;border:1px solid rgba(255,255,255,.22);border-radius:var(--radius);box-shadow:0 24px 60px rgba(0,0,0,.28)}.glass{background:var(--glass);backdrop-filter:blur(18px) saturate(135%)}.feature-kicker{display:flex;align-items:center;gap:8px;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.08em}.live-dot,.status-icon{display:inline-block;flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(121,232,163,.12)}.feature-league{margin:22px 0 8px;color:#c9d6ce;font-size:14px}.feature-teams{display:flex;align-items:center;gap:12px;font-size:22px;letter-spacing:-.03em}.feature-teams span{color:var(--gold);font-size:12px;font-weight:800}.feature-meta{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.confidence-line{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:9px;margin-top:18px;font-size:13px}.confidence-line strong{color:var(--green)}.confidence-line i{display:block;height:4px;overflow:hidden;border-radius:9px;background:rgba(255,255,255,.14)}.confidence-line b{display:block;height:100%;border-radius:inherit;background:var(--green);transition:width .5s var(--ease)}.hero-scroll{position:absolute;z-index:1;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;color:#c5d3c9;font-size:12px}.hero-scroll span{display:block;width:32px;height:1px;background:var(--green)}.metrics{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:-42px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--line)}.metric{min-height:150px;padding:24px;background:#10241b}.metric span,.metric small{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;margin:8px 0;color:#f2fff5;font-size:32px;letter-spacing:-.04em}.section{padding:clamp(88px,12vw,152px) 0}.section-head{display:flex;justify-content:space-between;gap:42px;align-items:end;margin-bottom:32px}.section-head h2,.signal-copy h2{margin:0;max-width:700px;font-size:clamp(32px,4.6vw,56px);line-height:1.08;letter-spacing:-.045em}.section-head>p{max-width:320px;margin:0;color:var(--muted);font-size:15px;line-height:1.7}.filter-bar{display:flex;align-items:center;gap:8px;min-height:62px;padding:8px;border:1px solid var(--line);border-radius:14px}.filter{min-height:44px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:#c1d0c6;cursor:pointer}.filter.active{background:rgba(121,232,163,.15);color:var(--green);font-weight:800}.data-state{margin-left:auto;padding-right:10px;color:var(--muted);font-size:13px}.match-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.match-card{position:relative;min-height:400px;overflow:hidden;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);background:#142b20;isolation:isolate;cursor:pointer;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);animation:card-in .5s var(--ease) both}.match-card:hover,.match-card:focus-within,.match-card.selected{transform:translateY(-5px);border-color:rgba(121,232,163,.7);box-shadow:0 18px 45px rgba(0,0,0,.28)}.card-image,.card-overlay{position:absolute;inset:0}.card-image{background:url('/assets/football-night-stadium.jpg') center/cover;opacity:.46;transition:transform .5s var(--ease)}.match-card:nth-child(2) .card-image{background-position:center 72%;filter:hue-rotate(-12deg)}.match-card:nth-child(3) .card-image{background-position:65% center;filter:saturate(.72)}.match-card:hover .card-image{transform:scale(1.06)}.card-overlay{background:linear-gradient(180deg,rgba(3,12,8,.18),rgba(3,12,8,.94) 78%)}.card-content{position:relative;z-index:1;min-height:400px;padding:20px;display:flex;flex-direction:column}.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.league-pill,.risk-pill{padding:5px 8px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(6,17,11,.55);font-size:12px}.risk-pill.low{color:var(--green)}.risk-pill.medium{color:var(--gold)}.risk-pill.high{color:var(--red)}.kickoff{margin:auto 0 6px;color:#d9e6dd;font-size:13px}.match-card h3{margin:0;font-size:clamp(24px,2.3vw,32px);line-height:1.13;letter-spacing:-.04em}.match-card h3 span{display:block}.match-card h3 b{color:var(--gold);font-size:15px}.card-outcome{display:flex;justify-content:space-between;gap:8px;margin-top:16px;color:var(--green);font-weight:800;font-size:14px}.card-outcome strong{color:#fff;font-size:13px}.card-summary{min-height:48px;margin:14px 0;color:#c8d4cc;font-size:14px;line-height:1.65}.card-bottom{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.18);font-size:13px;color:#d5e3d9}.card-bottom button{min-height:44px;padding:0;border:0;background:transparent;color:#fff;font-weight:800;cursor:pointer}.card-bottom i{font-style:normal;color:var(--green);transition:transform .2s var(--ease)}.match-card:hover .card-bottom i{display:inline-block;transform:translateX(4px)}.gallery-empty{grid-column:1/-1;padding:32px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);text-align:center}.gallery-empty button{margin-left:8px;border:0;background:none;color:var(--green);text-decoration:underline;cursor:pointer}.signal-section{padding:clamp(88px,12vw,152px) 0;background:#10241b;overflow:hidden}.signal-layout{display:grid;grid-template-columns:1fr 1.2fr .78fr;gap:42px;align-items:center}.signal-copy>p:not(.eyebrow){max-width:340px;color:var(--muted);line-height:1.75}.text-link{display:inline-flex;gap:9px;margin-top:20px;color:var(--green);font-weight:800}.tactics-board{position:relative;aspect-ratio:1.05;border:1px solid rgba(210,255,223,.27);border-radius:20px;background:linear-gradient(135deg,#113b29,#0d2b1d);overflow:hidden}.pitch-lines{position:absolute;inset:9%;border:1px solid rgba(224,255,234,.32);border-radius:2px}.pitch-lines:before,.pitch-lines:after{content:"";position:absolute;left:50%;transform:translateX(-50%);border:1px solid rgba(224,255,234,.32)}.pitch-lines:before{top:0;bottom:0}.pitch-lines:after{top:50%;width:30%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%)}.signal-node{position:absolute;z-index:1;display:grid;gap:2px;min-width:92px;padding:10px;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(4,17,10,.75);box-shadow:0 10px 24px rgba(0,0,0,.16)}.signal-node b{font-size:14px}.signal-node span{color:var(--muted);font-size:11px}.node-home{top:21%;left:12%}.node-draw{bottom:16%;left:18%}.node-away{top:22%;right:10%}.node-core{top:50%;left:50%;transform:translate(-50%,-50%);border-color:var(--green);background:#102b1d}.signal-notes{display:grid;gap:14px}.signal-notes article{display:flex;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}.signal-notes strong{display:block;font-size:14px}.signal-notes p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.status-icon.watch{background:var(--gold);box-shadow:0 0 0 4px rgba(239,198,108,.13)}.trust-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:16px}.repository-card,.commit-list,.source-card{border:1px solid var(--line);border-radius:var(--radius);background:#10241b}.repository-card{padding:26px}.repo-head{display:flex;align-items:center;gap:10px}.repo-dot{width:11px;height:11px;border-radius:50%;background:var(--green)}.repo-status{margin-left:auto;padding:4px 8px;border-radius:99px;background:rgba(121,232,163,.14);color:var(--green);font-size:12px}.repository-card>p{margin:26px 0;color:#c7d5cc;line-height:1.75}.repo-meta{display:flex;flex-wrap:wrap;gap:8px}.repo-meta span{padding:6px 8px;border-radius:7px;background:rgba(255,255,255,.06);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.commit-list{padding:8px 20px}.commit{display:grid;grid-template-columns:auto 1fr auto;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.commit:last-child{border:0}.commit-state{align-self:start;padding:4px 7px;border-radius:6px;background:rgba(121,232,163,.14);color:var(--green);font-size:11px;font-weight:800}.commit-state.watch{background:rgba(239,198,108,.15);color:var(--gold)}.commit strong{font-size:14px}.commit p{margin:4px 0 0;color:var(--muted);font-size:13px}.commit time{color:var(--muted);font-size:12px;white-space:nowrap}.source-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.source-card{padding:20px}.source-card>div{display:flex;align-items:center;gap:8px}.source-card strong{font-size:15px}.source-state{margin-left:auto;color:var(--green);font-size:12px}.source-card>p{min-height:44px;margin:18px 0;color:var(--muted);font-size:13px;line-height:1.6}.source-card dl{display:grid;gap:9px;margin:0;padding-top:14px;border-top:1px solid var(--line)}.source-card dl div{display:flex;justify-content:space-between;gap:8px}.source-card dt,.source-card dd{margin:0;color:var(--muted);font-size:11px}.source-card dd{color:#d5e0d9}.site-footer{padding:32px 0 calc(32px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);font-size:13px}.site-footer>div{display:flex;justify-content:space-between;gap:18px}.site-footer a{color:var(--green);font-weight:800}.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease),transform .55s var(--ease)}.reveal.in-view{opacity:1;transform:none}@keyframes card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@supports not (backdrop-filter:blur(1px)){.glass,.top-nav{background:rgba(6,18,12,.92)}}@media (max-width:900px){.nav-links{display:none}.featured-match{right:24px}.match-gallery{grid-template-columns:repeat(2,1fr)}.signal-layout{grid-template-columns:1fr 1fr}.signal-notes{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.trust-grid{grid-template-columns:1fr}.source-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.page-width{width:min(100% - 32px,560px)}.top-nav{width:calc(100% - 20px);top:max(8px,env(safe-area-inset-top));padding-left:10px;gap:8px}.brand{font-size:14px}.nav-cta{min-height:44px;margin-left:auto;padding:0 10px;font-size:12px}.hero{min-height:max(720px,100svh)}.hero-image{background-position:57% center}.hero-content{padding-bottom:190px}.hero h1{font-size:clamp(42px,12.5vw,58px)}.hero-copy{margin:20px 0;font-size:16px}.hero-actions{display:grid;grid-template-columns:1fr 1fr}.button{min-height:48px;padding:0 10px;font-size:14px}.featured-match{right:16px;bottom:32px;width:calc(100% - 32px);padding:17px}.feature-teams{font-size:19px}.metrics{grid-template-columns:1fr 1fr;margin-top:-20px;border-radius:14px}.metric{min-height:130px;padding:18px}.metric strong{font-size:27px}.section{padding:72px 0}.section-head{display:grid;gap:16px;margin-bottom:24px}.section-head>p{max-width:none}.filter-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:5px}.filter{min-height:44px;padding:0 6px;font-size:13px}.data-state{grid-column:1/-1;margin:0;padding:6px 9px;font-size:12px}.match-gallery{grid-template-columns:1fr}.match-card{min-height:360px}.card-content{min-height:360px}.signal-layout{grid-template-columns:1fr;gap:30px}.signal-notes{grid-column:auto;grid-template-columns:1fr}.tactics-board{aspect-ratio:1.12}.trust-grid,.source-grid{grid-template-columns:1fr}.commit{grid-template-columns:auto 1fr}.commit time{grid-column:2}.site-footer>div{display:grid;gap:8px}.site-footer span:nth-child(2){max-width:290px}.hero-scroll{display:none}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.hero-image{transform:none!important;background-position:center!important}.reveal{opacity:1;transform:none;transition:none}.match-card,.button,.card-image,.confidence-line b{transition:none;animation:none}.match-card:hover{transform:none}}@media (prefers-reduced-transparency:reduce){.glass,.top-nav{background:#0b1c13;backdrop-filter:none}}@media (prefers-contrast:more){:root{--line:rgba(235,255,241,.5);--muted:#d2e3d8}}

/* 紧凑品牌：以“足球入网”表达产品语境，动画本身不承载状态信息。 */
.brand{gap:9px;min-width:0;font-size:15px;line-height:1.2}
.brand-wordmark{overflow-wrap:anywhere;font-size:clamp(13px,1.25vw,16px);font-weight:720;letter-spacing:-.03em}
.goal-mark{position:relative;display:block;flex:0 0 30px;width:30px;height:30px;overflow:hidden;border:1px solid rgba(121,232,163,.58);border-radius:9px;background:linear-gradient(145deg,rgba(121,232,163,.19),rgba(121,232,163,.06));color:transparent}
.goal-frame{position:absolute;right:5px;top:6px;width:14px;height:15px;border:1.5px solid rgba(231,255,239,.92);border-bottom:0;border-radius:1px 1px 0 0;background:repeating-linear-gradient(90deg,transparent 0 3px,rgba(231,255,239,.17) 3px 4px),repeating-linear-gradient(0deg,transparent 0 3px,rgba(231,255,239,.14) 3px 4px);transform-origin:100% 100%;will-change:transform;animation:goal-net-recoil .95s cubic-bezier(.2,.8,.3,1) both}
.goal-mark::after{content:"";position:absolute;z-index:2;left:14px;top:8px;width:10px;height:10px;border-radius:50%;pointer-events:none;opacity:0;background:conic-gradient(from 10deg,transparent 0 7%,rgba(121,232,163,.95) 7% 12%,transparent 12% 23%,rgba(239,198,108,.9) 23% 28%,transparent 28% 42%,rgba(121,232,163,.95) 42% 47%,transparent 47% 59%,rgba(239,198,108,.9) 59% 64%,transparent 64% 78%,rgba(121,232,163,.95) 78% 83%,transparent 83%);transform:scale(.2);will-change:transform,opacity;animation:goal-impact .95s cubic-bezier(.2,.8,.3,1) both}
.goal-ball{position:absolute;z-index:3;left:4px;bottom:5px;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f3fff7 0 18%,#183328 19% 37%,#f3fff7 38% 60%,#183328 61% 74%,#f3fff7 75%);box-shadow:0 1px 2px rgba(0,0,0,.35);will-change:transform,opacity;animation:goal-kick .95s cubic-bezier(.2,.8,.3,1) both}
@keyframes goal-kick{0%,12%{transform:translate3d(0,0,0) scale(1);opacity:1}54%{transform:translate3d(5px,-3px,0) scale(.94);opacity:1}72%{transform:translate3d(10px,-5px,0) scale(.82);opacity:1}81%{transform:translate3d(9px,-5px,0) scale(.76);opacity:1}100%{transform:translate3d(10px,-5px,0) scale(.8);opacity:1}}
@keyframes goal-net-recoil{0%,68%,100%{transform:translate3d(0,0,0) skewY(0)}74%{transform:translate3d(1px,0,0) skewY(-4deg)}82%{transform:translate3d(-.5px,0,0) skewY(2deg)}89%{transform:translate3d(0,0,0) skewY(0)}}
@keyframes goal-impact{0%,70%,100%{transform:scale(.2);opacity:0}75%{transform:scale(1);opacity:.95}83%{transform:scale(1.45);opacity:0}}
@media (max-width:640px){.brand{gap:7px;font-size:13px}.brand-wordmark{font-size:clamp(12px,3.55vw,14px);letter-spacing:-.045em}.goal-mark{flex-basis:28px;width:28px;height:28px}.goal-frame{right:4px;top:6px;width:13px;height:14px}}
@media (prefers-reduced-motion:reduce){.goal-ball{animation:none;transform:translate3d(10px,-5px,0) scale(.8)}.goal-frame,.goal-mark::after{animation:none;opacity:0}}

/* 收藏只是一项研究操作：在赛事卡片和单场页使用同一枚轻量图标。 */
.card-top-actions{display:flex;align-items:center;gap:8px}.card-favorite,.detail-favorite{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:#eaf6ee;background:rgba(6,17,11,.56);cursor:pointer;transition:transform .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease),color .18s var(--ease)}.card-favorite svg,.detail-favorite svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.card-favorite:hover,.card-favorite:focus-visible,.detail-favorite:hover,.detail-favorite:focus-visible{border-color:rgba(143,230,173,.7);background:rgba(143,230,173,.15)}.card-favorite:active,.detail-favorite:active{transform:scale(.93)}.card-favorite.is-favorited,.detail-favorite.is-favorited{border-color:rgba(239,198,108,.68);color:#f5d27a;background:rgba(239,198,108,.14)}.card-favorite.is-favorited svg,.detail-favorite.is-favorited svg{fill:currentColor}.detail-favorite{gap:8px;min-width:0;min-height:42px;margin-top:16px;padding:0 14px;border-radius:11px;font-size:13px;font-weight:800}.detail-favorite svg{width:18px;height:18px}.detail-favorite span{line-height:1}.detail-favorite:focus-visible,.card-favorite:focus-visible{outline:3px solid rgba(143,230,173,.42);outline-offset:3px}@media (max-width:640px){.card-favorite{min-width:40px;min-height:40px}.detail-favorite{min-height:44px}}
