:root {
  --bg:#FDFCFA;
  --panel:#FFFFFF;
  --panel-2:#F5F3F0;
  --border:#E8E5E0;
  --border-soft:#F0EDE8;
  --border-strong:#DDD9D2;
  --accent:#E3473B;
  --accent-dark:#B8342A;
  --accent-tint:#FDECE9;
  --accent-lip:#F2B3AB;
  --text:#1F1E1C;
  --text-soft:#3E3B37;
  --muted:#6A6661;
  --faint:#9A958E;
  --success:#2A9D8F;
  --success-ink:#216F66;
  --success-tint:#E3F3F0;
  --warn:#E9A23B;
  --warn-ink:#805310;
  --warn-tint:#FCF1DE;
  --error:#C63A2F;
  --white:#FFFFFF;
  --wash-1:#FCE6E0;
  --wash-2:#FFF6F2;
  --wash-edge:#F8DDD6;
  --wash-sheen:rgba(255,255,255,.55);
  --wash-sheen-2:rgba(255,255,255,.32);
  --teal-band-1:rgba(42,157,143,.055);
  --teal-band-2:rgba(42,157,143,.085);
  --glow-coral:rgba(227,71,59,.06);
  --glow-teal:rgba(42,157,143,.05);
  --bezel-hi:#F7F5F2;
  --bezel:#E9E6E1;
  --camera:#2B2A28;
  --veil:rgba(31,30,28,.28);
  --clear:transparent;

  --shadow-xs:0 1px 2px rgba(31,30,28,.05);
  --shadow-soft:0 1px 2px rgba(31,30,28,.04),0 10px 28px -6px rgba(31,30,28,.08);
  --shadow-panel:0 2px 6px rgba(31,30,28,.04),0 22px 48px -14px rgba(31,30,28,.14);
  --shadow-window:0 1px 3px rgba(31,30,28,.05),0 28px 56px -18px rgba(184,52,42,.22);
  --shadow-phone:0 8px 16px rgba(31,30,28,.08),0 40px 72px -18px rgba(31,30,28,.34);
  --shadow-cta:0 4px 0 var(--accent-lip),0 14px 26px -10px rgba(227,71,59,.5);
  --shadow-cta-sm:0 3px 0 var(--accent-lip);
  --shadow-fab:0 6px 14px -4px rgba(184,52,42,.55);
  --shadow-lift:0 1px 2px rgba(31,30,28,.06),0 6px 14px -6px rgba(31,30,28,.14);

  --r-tray:28px;
  --r-card:24px;
  --r-window:18px;
  --r-md:14px;
  --r-sm:9px;
  --r-mini:4px;
  --r-round:50%;
  --r-pill:999px;
  --r-phone:38px;
  --r-screen:30px;
  --font-display:"Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --fs-xs:12px;
  --fs-caption:12.5px;
  --fs-small:13px;
  --fs-label:14px;
  --fs-nav:15px;
  --fs-body:16px;
  --fs-lead:18px;
  --fs-h3:22px;
  --fs-h2:clamp(26px,2.8vw,36px);
  --fs-h1:clamp(34px,3.4vw,48px);
  --weight-normal:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:800;
  --weight-cjk:900;
  --leading-body:1.6;
  --leading-title:1.18;
  --shell:1320px;
  --reading:860px;
  --gutter:48px;
  --bar-h:72px;
  --space-section:104px;
  --ease:ease;
  --duration:.18s;
  --duration-reveal:.55s;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--bar-h) + 28px); }
html,body { margin:0; }
html.nav-open { overflow:hidden; }
body {
  background:var(--bg); color:var(--text); font-family:var(--font-body);
  font-size:var(--fs-body); line-height:var(--leading-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
[hidden] { display:none!important; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
button,summary,a { -webkit-tap-highlight-color:var(--clear); }
img { display:block; max-width:100%; height:auto; }
svg { display:block; flex-shrink:0; }
button { border:0; }
h1,h2,h3,h4 { font-family:var(--font-display); color:var(--text); text-wrap:balance; }
h1,.h1 { font-size:var(--fs-h1); font-weight:var(--weight-bold); line-height:var(--leading-title); letter-spacing:-.01em; }
h2 { font-size:var(--fs-h2); font-weight:var(--weight-bold); line-height:1.3; margin:0 0 24px; }
h3 { font-size:var(--fs-h3); line-height:1.4; margin:0 0 12px; }
p { margin:0 0 20px; }
strong { font-weight:var(--weight-semibold); }
small { font-size:var(--fs-caption); }
code,kbd,pre { font-family:var(--font-mono); }
code { overflow-wrap:anywhere; font-size:.9em; }
pre {
  max-width:100%; min-width:0; overflow-x:auto; padding:24px;
  background:var(--panel-2); color:var(--text-soft);
  border:1px solid var(--border); border-radius:var(--r-md);
}
pre code { overflow-wrap:normal; word-break:normal; white-space:pre; }
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible {
  outline:2px solid var(--accent-dark); outline-offset:3px;
}
:where(.grid,.hero__grid,.footer__grid,.feature-tabs)>* { min-width:0; }
.shell,.wrap {
  width:100%; max-width:calc(var(--shell) + var(--gutter)*2);
  padding-inline:var(--gutter); margin-inline:auto;
}
.reading { max-width:calc(var(--reading) + var(--gutter)*2); }
.section { padding-top:var(--space-section); padding-bottom:var(--space-section); }
.section__head { max-width:740px; margin-bottom:40px; }
.grid { display:grid; gap:24px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.stack>*+* { margin-top:24px; }
.flow { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.nowrap { white-space:nowrap; }
.muted { color:var(--muted); }
.accent { color:var(--accent-dark); }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link {
  position:fixed; left:var(--gutter); top:8px; z-index:100;
  padding:12px 18px; background:var(--panel); color:var(--accent-dark);
  border-radius:var(--r-md); transform:translateY(-150%);
}
.skip-link:focus { transform:none; }
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:52px; padding:12px 26px; border:1px solid var(--clear);
  border-radius:var(--r-pill); font-size:var(--fs-body); font-weight:var(--weight-semibold);
  line-height:1.4; text-align:center; transition:transform var(--duration) var(--ease),background var(--duration) var(--ease);
}
.btn svg { width:18px; height:18px; }
.btn:hover { transform:translateY(-1px); }
.btn:active,.btn.is-active { transform:translateY(1px); }
.btn--primary { background:var(--accent); color:var(--white); box-shadow:var(--shadow-cta); }
.btn--primary:hover,.btn--primary.is-hover { background:var(--accent-dark); color:var(--white); }
.btn--ghost { background:var(--panel); color:var(--text); border-color:var(--border-strong); box-shadow:var(--shadow-xs); }
.btn--ghost:hover { border-color:var(--text-soft); }
.btn--sm { min-height:40px; padding:9px 18px; font-size:var(--fs-label); box-shadow:var(--shadow-cta-sm); }
.btn--sm svg { width:16px; height:16px; }
.btn:disabled,.btn[aria-disabled="true"] {
  background:var(--panel-2); color:var(--muted); border-color:var(--border);
  box-shadow:none; cursor:not-allowed; transform:none;
}
.btn.is-focus { outline:2px solid var(--accent-dark); outline-offset:3px; }
.card,.panel {
  padding:32px; background:var(--panel); color:var(--text);
  border:1px solid var(--border); border-radius:var(--r-card); box-shadow:var(--shadow-soft); min-width:0;
}
.panel { border-radius:var(--r-tray); }
.card__meta { font-size:var(--fs-small); color:var(--muted); }
.card p:last-child,.panel p:last-child { margin-bottom:0; }
.prose { min-width:0; line-height:1.85; }
.prose :where(h2,h3) { scroll-margin-top:calc(var(--bar-h) + 36px); }
.prose h2 { margin-top:64px; }
.prose h3 { margin-top:32px; }
.prose a:not(.btn) { color:var(--accent-dark); text-decoration:underline; text-underline-offset:3px; }
.prose li+li { margin-top:8px; }
.prose :where(div,section,article,figure) { min-width:0; max-width:100%; }
.prose figure { margin-inline:0; }

.topbar,#site-header {
  position:sticky; top:0; z-index:50; background:var(--panel); color:var(--text);
  border-bottom:1px solid var(--border);
}
.topbar__in {
  width:100%; max-width:min(100%,calc(1320px + var(--gutter)*2)); margin-inline:auto;
  padding-inline:var(--gutter); height:var(--bar-h); display:flex; align-items:center; gap:28px;
}
.brand {
  display:inline-flex; align-items:center; gap:11px; flex-shrink:0;
  font-family:var(--font-display); font-weight:var(--weight-bold); font-size:var(--fs-lead);
  letter-spacing:-.01em; color:var(--text); white-space:nowrap;
}
.brand__mark { width:34px; height:34px; flex-shrink:0; }
.mainnav { flex:1; min-width:0; display:flex; justify-content:center; }
.mainnav__list {
  display:flex; align-items:center; list-style:none; margin:0; padding:0; gap:4px;
}
.mainnav__link {
  display:inline-flex; align-items:center; min-height:40px; padding:8px 15px;
  border-radius:var(--r-pill); font-size:var(--fs-nav); font-weight:var(--weight-medium);
  color:var(--text-soft); white-space:nowrap;
}
.mainnav__link:hover { background:var(--panel-2); color:var(--text); }
.mainnav__link[aria-current="page"] { background:var(--accent-tint); color:var(--accent-dark); }
.more { position:relative; margin-left:6px; }
.more__btn,.lang {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  min-height:38px; padding:8px 14px; border:1px solid var(--border);
  background:var(--panel); color:var(--text-soft); border-radius:var(--r-pill);
  font-size:var(--fs-label); font-weight:var(--weight-medium); white-space:nowrap;
}
.more__btn { list-style:none; }
.more__btn::-webkit-details-marker { display:none; }
.more__btn svg,.lang svg { width:12px; height:12px; }
.more__btn:hover,.lang:hover { background:var(--panel-2); color:var(--text); }
.chev,.ico { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.more__panel {
  position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%);
  width:400px; padding:12px; display:grid; grid-template-columns:1fr 1fr; gap:6px;
  background:var(--panel); color:var(--text); border:1px solid var(--border);
  border-radius:var(--r-card); box-shadow:var(--shadow-panel);
}
.more:not(.is-open):not([open])>.more__panel { display:none; }
.more__group { padding:6px; }
.more__label { display:flex; align-items:center; gap:7px; margin:4px 8px 8px; font-size:var(--fs-xs); font-weight:var(--weight-semibold); }
.more__label::before { content:""; width:6px; height:6px; flex-shrink:0; border-radius:var(--r-round); background:currentColor; }
.more__label--coral { color:var(--accent-dark); }
.more__label--teal { color:var(--success-ink); }
.more__item { display:block; padding:10px; border-radius:var(--r-md); }
.more__item:hover { background:var(--panel-2); color:var(--text); }
.more__item b { display:block; font-size:var(--fs-label); font-weight:var(--weight-semibold); }
.more__item span { display:block; font-size:var(--fs-caption); color:var(--muted); line-height:1.45; }
.more__item[aria-current="page"] b { color:var(--accent-dark); }
.tools { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.language { position:relative; }
.lang { border-color:var(--clear); padding-inline:12px; }
.lang__short { display:none; }
.language__list {
  position:absolute; right:0; top:calc(100% + 12px); width:190px; padding:8px;
  border:1px solid var(--border); border-radius:var(--r-window);
  background:var(--panel); color:var(--text); box-shadow:var(--shadow-panel);
  list-style:none; margin:0;
}
.language__list a { display:block; min-height:44px; padding:10px 12px; border-radius:var(--r-sm); }
.language__list a:hover,.language__list [aria-current="true"] { background:var(--accent-tint); color:var(--accent-dark); }
.language:not([open]):not(.is-open)>.language__list { display:none; }
.hamburger {
  display:none; min-width:44px; min-height:44px; align-items:center; justify-content:center;
  border:1px solid var(--border); border-radius:var(--r-pill); background:var(--panel); color:var(--text);
}
.hamburger svg { width:20px; height:20px; }
.mobile-nav { display:none; }
.nav-veil {
  position:fixed; inset:var(--bar-h) 0 0; z-index:-1;
  background:var(--veil); color:var(--text); border:0; width:100%;
}
.footer { margin-top:64px; padding-top:64px; padding-bottom:32px; border-top:1px solid var(--border); background:var(--panel); color:var(--text); }
.footer__grid { display:grid; grid-template-columns:1.4fr 1fr 1.2fr; gap:64px; }
.footer__intro { color:var(--muted); max-width:30em; margin-top:20px; font-size:var(--fs-label); }
.footer__title { font-size:var(--fs-label); font-weight:var(--weight-semibold); margin:0 0 16px; }
.footer__links { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.footer__links a { display:inline-block; padding-block:5px; font-size:var(--fs-label); color:var(--muted); }
.footer a:hover { color:var(--accent-dark); }
.footer__languages { display:flex; flex-wrap:wrap; gap:8px 20px; padding-top:36px; }
.footer__languages a { padding-block:8px; font-size:var(--fs-small); color:var(--muted); }
.footer__languages [aria-current="true"] { color:var(--accent-dark); }
.footer__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; margin-top:24px; padding-top:24px; border-top:1px solid var(--border); font-size:var(--fs-small); color:var(--muted); }
.reveal { opacity:1; transform:none; }
html.reveal-ready .reveal:not(.shown) { opacity:0; transform:translateY(18px); }
.reveal.shown { opacity:1; transform:none; transition:opacity var(--duration-reveal) var(--ease),transform var(--duration-reveal) var(--ease); }

.hero { position:relative; isolation:isolate; overflow-x:clip; padding-top:52px; padding-bottom:64px; }
.hero::before,.hero::after { content:""; position:absolute; z-index:-1; border-radius:var(--r-round); pointer-events:none; }
.hero::before { width:1100px; height:820px; right:-240px; top:-260px; background:radial-gradient(closest-side,var(--glow-coral),var(--clear) 72%); }
.hero::after { width:900px; height:620px; left:-320px; bottom:-280px; background:radial-gradient(closest-side,var(--glow-teal),var(--clear) 70%); }
.hero__grid { display:grid; grid-template-columns:minmax(0,43fr) minmax(0,57fr); gap:52px; align-items:center; }
.copy { padding-left:8px; min-width:0; }
.eyebrow { display:inline-flex; align-items:center; gap:9px; font-size:var(--fs-label); font-weight:var(--weight-semibold); color:var(--success-ink); letter-spacing:.02em; }
.eyebrow i { width:8px; height:8px; border-radius:var(--r-round); flex-shrink:0; background:var(--success); box-shadow:0 0 0 4px var(--success-tint); }
.eyebrow--coral { color:var(--accent-dark); }
.eyebrow--coral i { background:var(--accent); box-shadow:0 0 0 4px var(--accent-tint); }
.h1 { margin:20px 0 0; }
.h1__line { display:block; }
.h1 .cjk { font-weight:var(--weight-cjk); letter-spacing:-.01em; }
.h1 .hl { color:var(--accent-dark); }
.lede { margin:22px 0 0; max-width:29em; font-size:var(--fs-lead); line-height:1.75; color:var(--muted); }
.lede strong { color:var(--text); }
.cta { margin-top:34px; display:flex; flex-wrap:wrap; gap:14px; }
.facts { margin-top:40px; display:grid; grid-template-columns:auto 1fr; gap:14px 18px; align-items:center; }
.facts__k { font-size:var(--fs-small); font-weight:var(--weight-medium); color:var(--muted); white-space:nowrap; }
.chips { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.chip {
  display:inline-flex; align-items:center; min-height:28px; padding:3px 12px;
  font-family:var(--font-mono); font-size:var(--fs-caption); font-weight:var(--weight-medium);
  color:var(--text-soft); background:var(--panel-2); border:1px solid var(--border); border-radius:var(--r-pill);
  max-width:100%; overflow-wrap:anywhere;
}
.plat {
  list-style:none; margin:0; padding:4px; display:inline-flex; align-items:center; justify-self:start;
  background:var(--panel); color:var(--text-soft); border:1px solid var(--border); border-radius:var(--r-pill); box-shadow:var(--shadow-xs);
}
.plat li { display:flex; align-items:center; min-width:0; }
.plat li+li::before { content:""; width:1px; height:16px; background:var(--border); margin:0 2px; flex-shrink:0; }
.plat a { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:6px 13px; border-radius:var(--r-pill); font-size:var(--fs-small); font-weight:var(--weight-medium); }
.plat a:hover { background:var(--panel-2); color:var(--text); }
.plat svg { width:15px; height:15px; }
.plat .tux { width:14px; height:16px; }

@media (max-width:1200px) {
  .mainnav { display:none; }
  .tools { margin-left:auto; }
  .hamburger { display:inline-flex; }
  .tools>.btn { display:none; }
  .mobile-nav:not([hidden]) {
    display:block; position:absolute; top:var(--bar-h); left:0; right:0; z-index:2;
    max-height:calc(100dvh - var(--bar-h)); overflow-y:auto; overscroll-behavior:contain;
    padding:20px var(--gutter) 28px; border-bottom:1px solid var(--border);
    background:var(--panel); color:var(--text); box-shadow:var(--shadow-panel);
  }
  .mobile-nav ul { list-style:none; margin:0; padding:0; }
  .mobile-nav a { display:flex; align-items:center; width:100%; min-height:48px; padding:12px 16px; border-radius:var(--r-md); }
  .mobile-nav a:hover,.mobile-nav [aria-current="page"],.mobile-nav [aria-current="true"] { background:var(--accent-tint); color:var(--accent-dark); }
  .mobile-nav__label { margin:20px 16px 8px; font-size:var(--fs-xs); color:var(--muted); }
}
@media (max-width:1080px) {
  .hero__grid { grid-template-columns:minmax(0,1fr); gap:56px; }
  .copy { padding-left:0; }
  .footer__grid { gap:32px; }
}
@media (max-width:768px) {
  :root { --gutter:24px; --space-section:64px; --fs-h1:clamp(24px,4.5vw,30px); }
  .grid { grid-template-columns:minmax(0,1fr); }
  .footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer__brand { grid-column:1/-1; }
  .topbar__in { gap:12px; }
}
@media (max-width:640px) {
  :root { --gutter:20px; --r-phone:30px; --r-screen:24px; }
  .hero { padding-top:36px; padding-bottom:56px; }
  .h1 { font-size:clamp(24px,7vw,30px); }
  .lede { font-size:var(--fs-body); }
  .facts { grid-template-columns:minmax(0,1fr); row-gap:8px; }
  .plat { flex-wrap:wrap; border-radius:var(--r-card); }
  .plat a { padding-inline:10px; }
  .brand { gap:8px; }
  .brand span { font-size:var(--fs-body); }
  .brand__mark { width:30px; height:30px; }
  .lang__full { display:none; }
  .lang__short { display:inline; }
  .lang { padding-inline:8px; }
  .tools { gap:6px; margin-left:auto; }
  .card,.panel { padding:24px; }
  .footer__grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  .footer__brand { grid-column:auto; }
  .tilt,.phone,[data-tilt] { transform:none!important; }
  .cta { gap:12px; }
  .cta .btn { padding-inline:20px; }
}
@media (max-width:360px) {
  :root { --gutter:16px; }
  .brand span { font-size:var(--fs-label); }
  .topbar__in { gap:6px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  html.reveal-ready .reveal:not(.shown) { opacity:1; transform:none; }
}