/* YIFENG visual tokens: maritime technology, editorial typography, quiet interfaces. */
:root{
  color-scheme:dark;
  --bg:#080d15;--bg-raised:#101925;--bg-elevated:#152131;
  --hairline:rgba(194,216,244,.13);--hairline-strong:rgba(194,216,244,.27);
  --fg:#edf3fc;--fg-muted:#98a9bf;--fg-soft:#c2cedf;
  --accent:#a6c8ff;--accent-ink:#0b1728;--accent-soft:rgba(138,185,255,.12);--accent-glow:rgba(88,145,235,.28);
  --accent-secondary:#7febd0;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --sans:"Inter","Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --section-label:.68rem/1.5 var(--mono);
  --section-gap:clamp(4.75rem,8vw,8.5rem);
  --container:1320px;--gutter:clamp(22px,5vw,76px);
  --ease:cubic-bezier(.19,.8,.22,1);
}
[data-bu="cloud"]{--accent:#7be5cf;--accent-ink:#08241f;--accent-soft:rgba(105,230,204,.1);--accent-glow:rgba(39,169,154,.24);--accent-secondary:#99c3fa}
[data-bu="shop"]{--accent:#ffc28e;--accent-ink:#31200f;--accent-soft:rgba(255,172,106,.11);--accent-glow:rgba(196,112,54,.23);--accent-secondary:#ebbaed}
[data-bu="pay"]{--accent:#8ebdff;--accent-ink:#102037;--accent-soft:rgba(110,167,255,.12);--accent-glow:rgba(49,108,203,.28);--accent-secondary:#a4e7f3}
[data-bu="game"]{--bg:#0c0b17;--bg-raised:#171426;--bg-elevated:#211b35;--accent:#c3a5ff;--accent-ink:#211436;--accent-soft:rgba(177,133,255,.13);--accent-glow:rgba(120,71,196,.3);--accent-secondary:#efbf7e}
[data-bu="sso"]{--accent:#c5d7f1;--accent-ink:#152338;--accent-soft:rgba(177,202,238,.11);--accent-glow:rgba(118,153,202,.2);--accent-secondary:#94cbbc}
[data-bu="oa"]{
  color-scheme:light;--bg:#f2f5f8;--bg-raised:#fff;--bg-elevated:#eaf0f6;
  --hairline:rgba(31,53,78,.11);--hairline-strong:rgba(31,53,78,.24);
  --fg:#172b40;--fg-muted:#536a80;--fg-soft:#435c74;
  --accent:#376f9a;--accent-ink:#fff;--accent-soft:rgba(55,111,154,.08);--accent-glow:rgba(55,111,154,.13);
  --accent-secondary:#388e81;
  --section-gap:clamp(3rem,6vw,5rem);
}
@keyframes yf-reveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes yf-marquee{to{transform:translateX(-50%)}}
.yf-section-label{font:var(--section-label);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-muted)}
.yf-section-label::before{content:attr(data-n)" / ";color:var(--accent);margin-right:.55em}
.yf-datapoint-archived{font-size:0;line-height:0;position:absolute;pointer-events:none}
