/* ===== 奇异果体育 · 共享外壳样式 /assets/site.css ===== */

:root{
  --kiwi:#5DBB3F;
  --seed:#10160F;
  --grass-deep:#1F6E4A;
  --grass-light:#2FA36B;
  --rock:#8A8F86;
  --moss:#4A6B4F;
  --clay:#C9633F;
  --blue:#2F6BE0;
  --pulse:#B6FF3C;
  --canvas:#F4F1E8;
  --paper:#FCFBF6;
  --line:#D9D6CB;
  --ink:#10160F;
  --ink-soft:#3A4038;
  --font-sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --top-h:56px;
  --rail-w:84px;
  --radius:14px;
  --gap:16px;
  --shadow-glass:0 12px 28px rgba(16,22,15,.10);
  --frame:rgba(93,187,63,.45);
}

*,*::before,*::after{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  padding-top:var(--top-h);
  background:var(--canvas);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.8;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

img,svg,video{max-width:100%;display:block;height:auto}

h1,h2,h3,h4{
  margin:0 0 .5em;
  font-weight:900;
  line-height:1.18;
  letter-spacing:-.02em;
  color:var(--ink);
}

p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}

a{color:var(--blue);text-decoration:none;transition:color .18s ease}
a:hover{text-decoration:underline}

button{font:inherit;color:inherit}

[hidden]{display:none !important}

:focus-visible{
  outline:2px solid var(--seed);
  outline-offset:2px;
  border-radius:4px;
  box-shadow:0 0 0 4px rgba(182,255,60,.6);
}

#main-content{scroll-margin-top:calc(var(--top-h) + 18px);display:block}

/* ---------- 跳转链接 ---------- */
.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:220;
  padding:10px 16px;
  background:var(--seed);
  color:var(--pulse);
  font-size:14px;
  font-weight:600;
  border-radius:8px;
  transform:translateY(-180%);
  transition:transform .18s ease;
}
.skip-link:focus,
.skip-link:focus-visible{transform:translateY(0);text-decoration:none}

/* ---------- 布局容器 ---------- */
.wrap{
  width:100%;
  max-width:1340px;
  margin:0 auto;
  padding:0 20px;
}

.section{padding:56px 0}
.section--tight{padding:32px 0}
.section__head{max-width:58em;margin-bottom:28px}
.section__title{font-size:clamp(26px,3.6vw,42px);margin:0 0 12px}
.section__desc{max-width:38em;margin:0;color:var(--moss);font-size:16px;line-height:1.8}

/* ---------- 排版工具 ---------- */
.mono{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  font-size:12px;
  letter-spacing:.12em;
}

.tag-mono{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  color:var(--rock);
  white-space:nowrap;
}

.eyebrow{
  margin:0 0 10px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--kiwi);
}

.display{
  margin:0;
  font-size:clamp(52px,10.5vw,148px);
  font-weight:900;
  line-height:.9;
  letter-spacing:-.03em;
}

.lead{
  max-width:36em;
  font-size:clamp(17px,2vw,20px);
  line-height:1.75;
  color:var(--ink-soft);
}

.prose{
  max-width:38em;
  font-size:17px;
  line-height:1.85;
  color:var(--ink-soft);
}
.prose h2{font-size:clamp(22px,2.6vw,30px);margin:1.6em 0 .6em;color:var(--ink)}
.prose h3{font-size:22px;margin:1.4em 0 .5em;color:var(--ink)}
.prose ul{margin:0 0 1.2em;padding-left:1.1em;list-style:disc}
.prose li{margin:0 0 .5em}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 18px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease;
}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn--primary{background:var(--kiwi);color:#0B120A}
.btn--primary:hover{background:var(--pulse)}
.btn--ghost{background:transparent;border-color:rgba(16,22,15,.24);color:var(--ink)}
.btn--ghost:hover{border-color:var(--kiwi);color:var(--grass-deep)}
.btn--pulse{background:var(--pulse);color:#0B120A}

/* ---------- 材质层 ---------- */
.glass{
  padding:20px;
  background:rgba(252,251,246,.72);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border:1px solid rgba(217,214,203,.9);
  border-radius:var(--radius);
  box-shadow:var(--shadow-glass);
}

.plate{
  padding:20px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
}

.plate--dark{
  background:var(--seed);
  border-color:rgba(93,187,63,.3);
  color:var(--canvas);
}
.plate--dark h2,.plate--dark h3{color:var(--canvas)}

.divider{
  height:1px;
  margin:0;
  border:0;
  background:linear-gradient(90deg,rgba(16,22,15,.3),rgba(16,22,15,.05));
}
.divider--line{background:rgba(217,214,203,.7)}

/* ---------- 数据组件 ---------- */
.num{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  font-weight:600;
  letter-spacing:-.01em;
}

.stat{display:block}
.stat__value{
  display:block;
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  font-weight:700;
  font-size:clamp(40px,7vw,92px);
  line-height:1;
  letter-spacing:-.02em;
  color:var(--ink);
}
.stat__unit{font-size:.45em;margin-left:4px;color:var(--rock)}
.stat__label{
  display:block;
  margin-top:8px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  color:var(--rock);
}

.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border:1px solid rgba(16,22,15,.16);
  border-radius:999px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.1em;
  color:var(--moss);
}
.tag--live{background:var(--pulse);border-color:var(--pulse);color:#0B120A;font-weight:600}
.tag--clay{border-color:var(--clay);color:var(--clay)}
.tag--blue{border-color:var(--blue);color:var(--blue)}

.pulse-dot{
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--pulse);
  animation:kiwiPulse 1.2s ease-in-out infinite;
}

@keyframes kiwiPulse{
  0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(182,255,60,.65)}
  50%{opacity:.72;box-shadow:0 0 0 7px rgba(182,255,60,0)}
}

/* ---------- Bento 网格 ---------- */
.bento{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:var(--gap);
}
.bento > *{grid-column:1 / -1;min-width:0}

@media (min-width:720px){
  .span-2{grid-column:span 2}
  .span-3{grid-column:span 3}
  .span-4{grid-column:span 4}
  .span-5{grid-column:span 5}
  .span-6{grid-column:span 6}
  .span-7{grid-column:span 7}
  .span-8{grid-column:span 8}
  .span-9{grid-column:span 9}
  .span-12{grid-column:span 12}
}

/* ---------- 筛选按钮组 ---------- */
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 20px;
}

.filter-btn{
  padding:7px 13px;
  border:1px solid rgba(16,22,15,.18);
  border-radius:999px;
  background:transparent;
  color:var(--ink);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.1em;
  cursor:pointer;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;
}
.filter-btn:hover{border-color:var(--kiwi);color:var(--grass-deep)}
.filter-btn[aria-pressed="true"]{
  background:var(--kiwi);
  border-color:var(--kiwi);
  color:#0B120A;
  font-weight:600;
}

.is-entering{animation:filterIn .18s ease both}
@keyframes filterIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}

/* ---------- 图片容器 ---------- */
.media-frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  background:linear-gradient(140deg,var(--grass-deep),var(--grass-light) 70%,var(--kiwi));
  aspect-ratio:16 / 9;
}
.media-frame img{width:100%;height:100%;object-fit:cover}
.media-frame--wide{aspect-ratio:21 / 9}
.media-frame--square{aspect-ratio:1 / 1}
.media-frame--tall{aspect-ratio:3 / 4}
.media-frame--outline{
  background:none;
  border:1px dashed rgba(16,22,15,.28);
}

/* ---------- 面包屑 ---------- */
.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  margin:0 0 20px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  color:var(--rock);
}
.breadcrumbs a{color:var(--rock)}
.breadcrumbs a:hover{color:var(--kiwi)}
.breadcrumbs__sep{opacity:.6;margin:0 6px}

/* ---------- 锚点目录 ---------- */
.anchor-nav{
  position:sticky;
  top:calc(var(--top-h) + 18px);
  padding:16px;
  border-left:1px solid rgba(16,22,15,.18);
}
.anchor-nav__title{
  margin:0 0 12px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  color:var(--rock);
  font-weight:500;
}
.anchor-nav__list{display:grid;gap:8px}
.anchor-nav__link{
  color:var(--moss);
  font-size:14px;
  text-decoration:none;
}
.anchor-nav__link.is-active{color:var(--blue);font-weight:600}

/* ---------- 滚动进度 ---------- */
.scroll-progress{
  position:fixed;
  left:0;
  right:0;
  top:calc(var(--top-h) - 3px);
  height:3px;
  z-index:120;
  background:transparent;
  pointer-events:none;
}
.scroll-progress__bar{
  display:block;
  height:100%;
  transform:scaleX(0);
  transform-origin:0 50%;
  background:linear-gradient(90deg,var(--kiwi),var(--pulse));
}

/* ---------- 入场显现 ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .45s ease,transform .45s ease;
}
[data-reveal].is-visible{opacity:1;transform:none}

/* ================= 头部 ================= */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100}

.site-header::after{
  content:"";
  position:fixed;
  top:var(--top-h);
  left:0;
  width:var(--rail-w);
  height:3px;
  display:none;
  background:linear-gradient(90deg,var(--kiwi),var(--grass-light));
  z-index:95;
}

.frame-bar{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:14px;
  height:var(--top-h);
  padding:0 14px;
  background:rgba(252,251,246,.86);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--frame);
}

.frame-bar__brand{display:flex;align-items:center;flex:0 0 auto}
.frame-bar__meta{display:none;margin:0;flex:0 1 auto;overflow:hidden}
.frame-bar__actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:10px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--ink);
  text-decoration:none;
}
.brand:hover{text-decoration:none}

.brand__mark{
  width:22px;
  height:22px;
  flex:0 0 auto;
  border-radius:50%;
  background:
    radial-gradient(circle at 30% 34%,#10160F 0 1.3px,transparent 1.6px),
    radial-gradient(circle at 68% 60%,#10160F 0 1.3px,transparent 1.6px),
    radial-gradient(circle at 52% 22%,#10160F 0 1.1px,transparent 1.4px),
    radial-gradient(circle at 74% 30%,#10160F 0 1px,transparent 1.3px),
    linear-gradient(135deg,var(--kiwi),var(--grass-light));
  box-shadow:inset 0 0 0 1px rgba(16,22,15,.25);
}

.brand__name{
  font-size:17px;
  font-weight:900;
  letter-spacing:.02em;
  white-space:nowrap;
}

.brand__edition{
  padding-left:8px;
  border-left:1px solid var(--line);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.14em;
  color:var(--rock);
  white-space:nowrap;
}

.nav-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border:1px solid rgba(16,22,15,.2);
  border-radius:999px;
  background:transparent;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  cursor:pointer;
}
.nav-toggle:hover{border-color:var(--kiwi)}

.nav-toggle__bars{
  position:relative;
  display:block;
  width:14px;
  height:10px;
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:1.5px;
  background:var(--ink);
  transition:transform .18s ease,opacity .18s ease;
}
.nav-toggle__bars::before{top:0}
.nav-toggle__bars::after{bottom:0}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{transform:translateY(4px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{transform:translateY(-4px) rotate(-45deg)}

.site-nav{
  position:fixed;
  top:var(--top-h);
  left:0;
  right:0;
  bottom:0;
  z-index:90;
  padding:20px 0 32px;
  overflow-y:auto;
  background:var(--seed);
  border-top:1px solid var(--frame);
  opacity:0;
  visibility:hidden;
  transform:translateY(-10px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
}
.site-nav[data-open]{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.site-nav__list{display:block}
.site-nav__item{display:block}

.site-nav__link{
  display:block;
  padding:16px 24px;
  border-bottom:1px solid rgba(217,214,203,.14);
  color:rgba(244,241,232,.86);
  font-size:18px;
  font-weight:600;
  text-decoration:none;
}
.site-nav__link:hover,
.site-nav__link:focus-visible{color:var(--pulse);text-decoration:none;background:rgba(93,187,63,.12)}
.site-nav__link[aria-current="page"]{
  color:var(--pulse);
  background:rgba(93,187,63,.16);
  box-shadow:inset 3px 0 0 var(--pulse);
}

.site-nav__meta{
  margin:24px 24px 0;
  max-width:30em;
  font-size:13px;
  line-height:1.7;
  color:rgba(244,241,232,.55);
}
.site-nav__meta .mono{display:block;margin-bottom:6px;color:var(--kiwi)}

@media (min-width:820px){
  .frame-bar__meta{display:block}
  .frame-bar{padding:0 20px}
}

@media (max-width:999px){
  body.is-nav-open{overflow:hidden}
}

@media (min-width:1000px){
  body{padding-left:var(--rail-w)}

  .site-header::after{display:block}

  .site-nav{
    top:var(--top-h);
    right:auto;
    bottom:0;
    width:var(--rail-w);
    padding:18px 0;
    overflow:visible;
    border-top:0;
    border-right:1px solid var(--frame);
    opacity:1;
    visibility:visible;
    transform:none;
    transition:none;
  }

  .site-nav__list{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    height:100%;
  }

  .site-nav__link{
    writing-mode:vertical-rl;
    padding:16px 6px;
    border-bottom:0;
    border-radius:999px;
    font-size:15px;
    letter-spacing:.16em;
    line-height:1.2;
  }
  .site-nav__link[aria-current="page"]{box-shadow:none}

  .site-nav__meta{display:none}
  .nav-toggle{display:none}
}

/* ================= 页脚 ================= */
.site-footer{
  position:relative;
  margin-top:64px;
  padding:56px 0 28px;
  border-top:3px solid var(--kiwi);
  background:linear-gradient(155deg,var(--grass-deep) 0%,#26805A 46%,var(--grass-light) 100%);
  color:var(--paper);
  overflow:hidden;
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(217,214,203,.14) 1px,transparent 1px);
  background-size:100% 56px;
  pointer-events:none;
}
.site-footer .wrap{position:relative;z-index:1}

.footer-top{
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
}

.footer-brand{display:block}
.footer-brand__name{
  margin:14px 0 4px;
  color:#FFFFFF;
  font-size:20px;
  font-weight:900;
  letter-spacing:.02em;
}
.footer-brand__line{
  margin:0;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  color:rgba(244,241,232,.78);
}

.footer-col__title{
  margin:0 0 14px;
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:.14em;
  color:rgba(244,241,232,.7);
}

.footer-list{display:grid;gap:10px}
.footer-list a{
  color:#FFFFFF;
  font-size:15px;
  text-decoration:none;
  opacity:.92;
}
.footer-list a:hover{color:var(--pulse);opacity:1;text-decoration:underline}

.footer-contact__line{
  margin:0 0 8px;
  font-size:14px;
  line-height:1.7;
  color:rgba(244,241,232,.95);
  word-break:break-word;
}
.footer-contact__line .mono{
  margin-right:8px;
  color:rgba(244,241,232,.6);
}

.footer-note{
  max-width:34em;
  margin:10px 0 0;
  font-size:13px;
  line-height:1.7;
  color:rgba(244,241,232,.78);
}

.footer-line{
  height:1px;
  margin:36px 0 18px;
  background:rgba(217,214,203,.35);
}

.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 24px;
}

.footer-meta{
  margin:0;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.08em;
  color:rgba(244,241,232,.82);
}

.footer-legal{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
}
.footer-legal a{
  color:#FFFFFF;
  font-size:13px;
  text-decoration:none;
  opacity:.9;
}
.footer-legal a:hover{color:var(--pulse);opacity:1;text-decoration:underline}

@media (min-width:760px){
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (min-width:1080px){
  .footer-top{grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px}
}

/* ---------- 动效降级 ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  [data-reveal]{opacity:1;transform:none}
  .pulse-dot{animation:none;box-shadow:none}
  .scroll-progress__bar{transition:none}
}
