:root{
  --bg: #0b0f17;
  --surface: rgba(255,255,255,.06);
  --surface2: rgba(255,255,255,.08);
  --stroke: rgba(255,255,255,.12);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.68);
  --muted2: rgba(255,255,255,.52);
  --shadow: 0 18px 60px rgba(0,0,0,.55);
  --brand: #7c5cff;
  --brand2: #18d3ff;
  --ok: #36d399;
  --warn: #fbbf24;
  --radius: 16px;
  --radius2: 22px;
  --container: 1100px;
  --font: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --g1: rgba(124,92,255,.36);
  --g2: rgba(24,211,255,.22);
  --g3: rgba(54,211,153,.14);
  --page-bg:
    radial-gradient(1200px 600px at 20% -10%, var(--g1), transparent 60%),
    radial-gradient(900px 520px at 90% 0%, var(--g2), transparent 58%),
    radial-gradient(760px 460px at 60% 110%, var(--g3), transparent 60%),
    var(--bg);
}

html[data-theme="light"]{
  --bg: #fbfcff;
  --surface: rgba(12,14,20,.04);
  --surface2: rgba(12,14,20,.06);
  --stroke: rgba(12,14,20,.10);
  --text: rgba(12,14,20,.88);
  --muted: rgba(12,14,20,.62);
  --muted2: rgba(12,14,20,.48);
  --shadow: 0 18px 60px rgba(18,20,30,.14);
  --brand: #6b4eff;
  --brand2: #0fb6ff;
  --ok: #059669;
  --warn: #d97706;
  --g1: rgba(107,78,255,.10);
  --g2: rgba(15,182,255,.07);
  --g3: rgba(5,150,105,.06);
  --page-bg:
    radial-gradient(1200px 720px at 18% -14%, var(--g1), transparent 62%),
    radial-gradient(900px 620px at 90% -8%, var(--g2), transparent 60%),
    radial-gradient(880px 620px at 55% 112%, var(--g3), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #f4f7ff 52%, #f8fbff 100%);
}

*{ box-sizing: border-box; }
html,body{ height: 100%; }
body{
  margin: 0;
  font-family: var(--font);
  color: var(--text);
  background: var(--page-bg);
  line-height: 1.5;
}

a{ color: inherit; text-decoration: none; }
button{ font: inherit; color: inherit; background: none; border: 0; }

.container{
  width: min(var(--container), calc(100% - 40px));
  margin: 0 auto;
}

.skip-link{
  position: absolute;
  left: -999px;
  top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(0,0,0,.75);
  color: #fff;
  z-index: 30;
}
.skip-link:focus{ left: 12px; }

.site-header{
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: color-mix(in oklab, var(--bg) 72%, transparent);
  border-bottom: 1px solid var(--stroke);
}
.site-header.is-elevated{
  box-shadow: 0 10px 30px color-mix(in oklab, var(--text) 18%, transparent);
}

.header-inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 0;
}

.brand{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 220px;
}
.brand.small{ min-width: unset; }
.brand-mark{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-weight: 800;
  background:
    radial-gradient(12px 12px at 30% 30%, rgba(255,255,255,.35), transparent 60%),
    linear-gradient(135deg, var(--brand), var(--brand2));
  box-shadow: 0 10px 30px rgba(124,92,255,.25);
}
.brand-name{
  font-weight: 700;
  letter-spacing: .2px;
}
.brand-sub{
  font-size: 12px;
  color: var(--muted);
}

.nav{
  display: flex;
  gap: 18px;
  align-items: center;
}
.nav-link{
  font-size: 14px;
  color: var(--muted);
  padding: 8px 10px;
  border-radius: 10px;
}
.nav-link:hover{
  color: var(--text);
  background: var(--surface);
}

.header-actions{
  display: flex;
  gap: 10px;
  align-items: center;
}

.primary-btn,.secondary-btn,.ghost-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px;
  padding: 10px 14px;
  border: 1px solid transparent;
  cursor: pointer;
  user-select: none;
  transition: transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
}
.primary-btn{
  background: linear-gradient(135deg, var(--brand), color-mix(in oklab, var(--brand2) 80%, var(--brand)));
  color: #fff;
  box-shadow: 0 18px 50px rgba(124,92,255,.22);
}
.primary-btn:hover{ transform: translateY(-1px); }
.primary-btn:active{ transform: translateY(0px); opacity: .9; }
.secondary-btn{
  border-color: var(--stroke);
  background: var(--surface);
  color: var(--text);
}
.secondary-btn:hover{ border-color: color-mix(in oklab, var(--stroke) 70%, var(--brand)); }
.ghost-btn{
  border-color: var(--stroke);
  color: var(--muted);
  background: transparent;
}
.ghost-btn:hover{
  color: var(--text);
  background: var(--surface);
}
.ghost-btn.sm{
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 13px;
}

.hero{
  padding: 22px 0 34px;
  min-height: calc(100vh - 68px);
  display: flex;
  align-items: center;
}
.hero-grid{
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 18px;
}
.hero-preview{
  display: flex;
  justify-content: center;
}
.hero-copy{
  text-align: center;
  max-width: 920px;
  margin: 0 auto;
}
.hero-title{
  margin: 0 0 12px;
  font-size: clamp(28px, 3.2vw, 44px);
  line-height: 1.1;
  letter-spacing: -.6px;
}
.hero-lead{
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 16px;
  max-width: 64ch;
  margin-left: auto;
  margin-right: auto;
}
.hero-cta{
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 14px;
  justify-content: center;
}
.trust-row{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.trust-item{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  color: var(--muted);
  font-size: 13px;
}
.trust-icon{ color: color-mix(in oklab, var(--brand2) 60%, var(--brand)); }

.wsp-window{
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.72);
  --muted2: rgba(255,255,255,.54);
  --surface: rgba(255,255,255,.10);
  --surface2: rgba(255,255,255,.14);
  --stroke: rgba(255,255,255,.18);
  --shadow: 0 26px 90px rgba(0,0,0,.55);
  --ok: #36d399;
  --warn: #fbbf24;

  border-radius: var(--radius2);
  overflow: hidden;
  border: 1px solid color-mix(in oklab, var(--stroke) 88%, transparent);
  background:
    radial-gradient(900px 520px at 18% -10%, rgba(107,78,255,.38), transparent 62%),
    radial-gradient(760px 520px at 90% 10%, rgba(15,182,255,.24), transparent 62%),
    linear-gradient(180deg, rgba(11,15,23,.92), rgba(8,11,18,.96));
  box-shadow: var(--shadow);
}

.wsp-window-hero{
  width: min(1180px, 100%);
}
.wsp-window-hero .wsp-body{
  min-height: clamp(360px, 54vh, 580px);
}

html[data-theme="light"] .wsp-window{
  --text: rgba(12,14,20,.90);
  --muted: rgba(12,14,20,.64);
  --muted2: rgba(12,14,20,.48);
  --surface: rgba(255,255,255,.78);
  --surface2: rgba(255,255,255,.62);
  --stroke: rgba(12,14,20,.12);
  --shadow: 0 26px 90px rgba(18,20,30,.22);
  --ok: #059669;
  --warn: #d97706;

  border-color: rgba(12,14,20,.12);
  background:
    radial-gradient(900px 520px at 18% -10%, rgba(107,78,255,.26), transparent 62%),
    radial-gradient(760px 520px at 90% 10%, rgba(15,182,255,.20), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(245,248,255,.90));
}
.wsp-titlebar{
  display: grid;
  grid-template-columns: 120px 1fr 220px;
  gap: 10px;
  align-items: center;
  padding: 12px 12px;
  border-bottom: 1px solid var(--stroke);
  background: color-mix(in oklab, var(--surface2) 80%, transparent);
}
.wsp-traffic{ display: flex; gap: 7px; align-items: center; }
.dot{
  width: 11px;
  height: 11px;
  border-radius: 50%;
  display: inline-block;
  opacity: .9;
}
.dot.red{ background: #ff5f57; }
.dot.yellow{ background: #febc2e; }
.dot.green{ background: #28c840; }
.wsp-title{
  font-weight: 700;
  letter-spacing: .5px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
.wsp-search{
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
  min-width: 0;
}
.wsp-search-txt{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wsp-search-ic{
  font-family: var(--mono);
  color: color-mix(in oklab, var(--muted) 70%, var(--text));
}

.wsp-toolbar{
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid var(--stroke);
}
.wsp-tool{
  padding: 8px 10px;
  border-radius: 12px;
  color: var(--muted);
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
}
.wsp-tool:hover{ background: var(--surface); color: var(--text); }
.wsp-tool.active{
  background: color-mix(in oklab, var(--brand) 16%, var(--surface));
  border-color: color-mix(in oklab, var(--brand) 30%, var(--stroke));
  color: var(--text);
}
.wsp-toolbar-spacer{ flex: 1; }
.wsp-badge{
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
}

.wsp-body{
  display: grid;
  grid-template-columns: 160px 1fr;
  min-height: 320px;
}
.wsp-sidebar{
  border-right: 1px solid var(--stroke);
  background: color-mix(in oklab, var(--surface) 80%, transparent);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.wsp-sb-title{
  font-size: 12px;
  letter-spacing: .6px;
  color: var(--muted2);
  text-transform: uppercase;
}
.wsp-sb-list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.wsp-sb-item{
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  color: var(--muted);
  border: 1px solid transparent;
}
.wsp-sb-item.is-selected{
  color: var(--text);
  background: color-mix(in oklab, var(--brand2) 12%, var(--surface));
  border-color: color-mix(in oklab, var(--brand2) 26%, var(--stroke));
}
.wsp-sb-ic{ width: 18px; }
.wsp-sb-foot{ margin-top: auto; }
.wsp-sb-chip{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
}

.wsp-canvas{
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wsp-card{
  border: 1px solid var(--stroke);
  border-radius: 18px;
  background: linear-gradient(180deg, color-mix(in oklab, var(--surface2) 75%, transparent), color-mix(in oklab, var(--surface) 70%, transparent));
  padding: 12px;
}
.wsp-card-hd{
  display: flex;
  gap: 12px;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
}
.wsp-card-title{ font-weight: 700; }
.wsp-card-sub{ color: var(--muted); font-size: 13px; margin-top: 2px; }
.wsp-mini-kpis{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  min-width: 220px;
}
.wsp-kpi{
  border: 1px solid var(--stroke);
  border-radius: 14px;
  background: var(--surface);
  padding: 8px 10px;
  text-align: center;
}
.kpi-num{ font-weight: 800; letter-spacing: -.2px; }
.kpi-lbl{ color: var(--muted2); font-size: 11px; margin-top: 2px; }

.wsp-progress{
  border: 1px solid var(--stroke);
  border-radius: 14px;
  background: var(--surface);
  padding: 10px;
  margin-bottom: 10px;
  --p: 72%;
}
.wsp-progress-bar{
  height: 10px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, var(--brand), var(--brand2));
  width: var(--p);
  box-shadow: 0 12px 30px rgba(124,92,255,.18);
}
.wsp-progress-meta{
  display: flex;
  justify-content: space-between;
  color: var(--muted2);
  font-size: 12px;
  margin-top: 8px;
}

.wsp-table{
  border: 1px solid var(--stroke);
  border-radius: 14px;
  overflow: hidden;
  background: color-mix(in oklab, var(--surface) 70%, transparent);
}
.wsp-row{
  display: grid;
  grid-template-columns: 1.35fr .6fr .8fr .55fr;
  gap: 10px;
  padding: 10px 12px;
  border-top: 1px solid var(--stroke);
  align-items: center;
  font-size: 12.5px;
  color: var(--muted);
}
.wsp-row:first-child{ border-top: 0; }
.wsp-row-head{
  background: color-mix(in oklab, var(--surface2) 85%, transparent);
  color: var(--muted2);
  font-size: 11px;
  letter-spacing: .6px;
  text-transform: uppercase;
}
.pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  font-size: 11px;
}
.pill.ok{ border-color: color-mix(in oklab, var(--ok) 35%, var(--stroke)); color: color-mix(in oklab, var(--ok) 78%, var(--text)); }
.pill.warn{ border-color: color-mix(in oklab, var(--warn) 35%, var(--stroke)); color: color-mix(in oklab, var(--warn) 78%, var(--text)); }

.wsp-statusbar{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
}
.status-item strong{ color: var(--text); font-weight: 700; }

.section{
  padding: 46px 0;
}
.section-alt{
  background: color-mix(in oklab, var(--surface) 56%, transparent);
  border-top: 1px solid var(--stroke);
  border-bottom: 1px solid var(--stroke);
}
.section-head{
  margin-bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.section-title{
  margin: 0;
  font-size: 24px;
  letter-spacing: -.2px;
}
.section-sub{
  margin: 0;
  color: var(--muted);
  max-width: 68ch;
}

.grid-3{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.grid-2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.card{
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: linear-gradient(180deg, color-mix(in oklab, var(--surface2) 60%, transparent), color-mix(in oklab, var(--surface) 54%, transparent));
  padding: 16px;
}
.card-icon{
  width: 40px;
  height: 40px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  border: 1px solid var(--stroke);
  background: color-mix(in oklab, var(--surface) 78%, transparent);
  margin-bottom: 12px;
}
.card-title{
  margin: 0 0 8px;
  font-size: 16px;
}
.card-text{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.card-actions{
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 14px;
}

.download-panel{
  border: 1px solid var(--stroke);
  border-radius: 22px;
  overflow: hidden;
  background: linear-gradient(180deg, color-mix(in oklab, var(--surface2) 75%, transparent), color-mix(in oklab, var(--surface) 60%, transparent));
}
.tabs{
  display: flex;
  gap: 6px;
  padding: 10px;
  border-bottom: 1px solid var(--stroke);
  background: color-mix(in oklab, var(--surface2) 70%, transparent);
}
.tab{
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid transparent;
  color: var(--muted);
  cursor: pointer;
}
.tab:hover{ background: var(--surface); color: var(--text); }
.tab.is-active{
  background: color-mix(in oklab, var(--brand) 14%, var(--surface));
  border-color: color-mix(in oklab, var(--brand) 26%, var(--stroke));
  color: var(--text);
}

.download-grid{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
  padding: 14px;
}
.download-choice{
  border: 1px solid var(--stroke);
  border-radius: 18px;
  background: color-mix(in oklab, var(--surface) 64%, transparent);
  padding: 14px;
}
.segmented{
  display: flex;
  gap: 6px;
  padding: 6px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: color-mix(in oklab, var(--surface2) 68%, transparent);
}
.seg{
  flex: 1;
  padding: 10px 10px;
  border-radius: 12px;
  color: var(--muted);
  cursor: pointer;
  border: 1px solid transparent;
}
.seg:hover{ background: var(--surface); color: var(--text); }
.seg.is-active{
  background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 30%, var(--surface)), color-mix(in oklab, var(--brand2) 22%, var(--surface)));
  color: var(--text);
  border-color: color-mix(in oklab, var(--brand2) 22%, var(--stroke));
}

.meta-list{
  margin-top: 14px;
  display: grid;
  gap: 10px;
}
.meta-row{
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: var(--surface);
}
.meta-k{
  color: var(--muted2);
  font-size: 12px;
  letter-spacing: .4px;
}
.meta-v{
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.download-actions{
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 12px;
  flex-wrap: wrap;
}
.disclosure{
  margin-top: 14px;
  border-radius: 18px;
  border: 1px solid var(--stroke);
  background: color-mix(in oklab, var(--surface2) 70%, transparent);
  padding: 12px;
}
.disclosure-row{
  display: grid;
  grid-template-columns: 60px 1fr auto;
  gap: 10px;
  align-items: center;
}
.disclosure-k{ color: var(--muted2); font-size: 12px; letter-spacing: .4px; }
.disclosure-v{
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.disclosure-hint{
  margin-top: 8px;
  color: var(--muted);
  font-size: 12.5px;
}

.download-help{ display: grid; gap: 12px; }
.help-card{
  border: 1px solid var(--stroke);
  border-radius: 18px;
  background: color-mix(in oklab, var(--surface) 60%, transparent);
  padding: 14px;
}
.help-title{ margin: 0 0 10px; font-size: 15px; }
.steps{
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  display: grid;
  gap: 6px;
}
.help-list{
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  display: grid;
  gap: 6px;
}

.table{
  border: 1px solid var(--stroke);
  border-radius: 18px;
  overflow: hidden;
  background: color-mix(in oklab, var(--surface) 60%, transparent);
}
.table-row{
  display: grid;
  grid-template-columns: 1fr .8fr .8fr .9fr;
  gap: 10px;
  padding: 12px 14px;
  border-top: 1px solid var(--stroke);
  color: var(--muted);
}
.table-row.head{
  border-top: 0;
  background: color-mix(in oklab, var(--surface2) 74%, transparent);
  color: var(--muted2);
  font-size: 12px;
  letter-spacing: .6px;
  text-transform: uppercase;
}

.cta-strip{
  margin-top: 14px;
  border: 1px solid var(--stroke);
  border-radius: 18px;
  background: linear-gradient(135deg, color-mix(in oklab, var(--brand) 14%, var(--surface)), color-mix(in oklab, var(--brand2) 10%, var(--surface)));
  padding: 14px;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}
.cta-title{ font-weight: 800; letter-spacing: -.2px; }
.cta-sub{ color: var(--muted); font-size: 13px; margin-top: 2px; }
.cta-actions{
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.news-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.news-card{
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: linear-gradient(180deg, color-mix(in oklab, var(--surface2) 60%, transparent), color-mix(in oklab, var(--surface) 54%, transparent));
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.news-meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.news-tag{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
}
.news-date{
  color: var(--muted2);
  font-size: 12px;
  font-family: var(--mono);
}
.news-title{
  margin: 0;
  font-size: 16px;
  letter-spacing: -.2px;
}
.news-text{
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.news-link{
  margin-top: auto;
  color: color-mix(in oklab, var(--brand2) 62%, var(--brand));
  font-weight: 600;
  padding: 8px 10px;
  border-radius: 12px;
  width: fit-content;
  border: 1px solid transparent;
}
.news-link:hover{
  background: var(--surface);
  border-color: var(--stroke);
}

.article{
  border: 1px solid var(--stroke);
  border-radius: 22px;
  background: linear-gradient(180deg, color-mix(in oklab, var(--surface2) 70%, transparent), color-mix(in oklab, var(--surface) 62%, transparent));
  padding: 18px;
}
.article-head{
  padding-bottom: 14px;
  border-bottom: 1px solid var(--stroke);
  margin-bottom: 14px;
}
.article-title{
  margin: 0;
  font-size: 26px;
  letter-spacing: -.4px;
}
.article-meta{
  margin-top: 8px;
  color: var(--muted2);
  font-size: 12.5px;
  font-family: var(--mono);
}
.article-content{
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}
.article-content p{ margin: 0 0 12px; }
.article-figure{ margin: 0 0 12px; }
.article-img{
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  border: 1px solid var(--stroke);
}
.article-foot{
  margin-top: 18px;
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.empty{
  border: 1px solid var(--stroke);
  border-radius: 22px;
  background: color-mix(in oklab, var(--surface) 60%, transparent);
  padding: 18px;
}
.empty-actions{
  margin-top: 14px;
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.tag-row{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.tag{
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
}

.faq{
  display: grid;
  gap: 10px;
}
.faq-item{
  border: 1px solid var(--stroke);
  border-radius: 18px;
  background: color-mix(in oklab, var(--surface) 60%, transparent);
  padding: 6px 12px;
}
.faq-q{
  cursor: pointer;
  padding: 12px 6px;
  color: var(--text);
  font-weight: 600;
  list-style: none;
}
.faq-q::-webkit-details-marker{ display: none; }
.faq-a{
  padding: 0 6px 12px;
  color: var(--muted);
  font-size: 14px;
}

.site-footer{
  border-top: 1px solid var(--stroke);
  padding: 22px 0;
  background: color-mix(in oklab, var(--surface) 60%, transparent);
}
.footer-inner{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.footer-meta{
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
}
.footer-right{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.footer-link{
  color: var(--muted);
  font-size: 13px;
  padding: 8px 10px;
  border-radius: 12px;
}
.footer-link:hover{ color: var(--text); background: var(--surface); }

.mono{ font-family: var(--mono); }

@media (max-width: 960px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-preview{ justify-content: center; }
  .download-grid{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr; }
  .grid-2{ grid-template-columns: 1fr; }
  .news-grid{ grid-template-columns: 1fr; }
  .nav{ display: none; }
  .brand{ min-width: unset; }
}

@media (prefers-reduced-motion: reduce){
  *{ scroll-behavior: auto !important; transition: none !important; }
}
