:root{
  color-scheme: light;
  --bg:#f5f6f0;
  --surface:#ffffff;
  --surface-2:#eef1e6;
  --surface-hover:#e6eadb;
  --text-primary:#12140f;
  --text-secondary:#4c5245;
  --text-muted:#5f6658;
  --border:rgba(18,20,15,0.12);
  --ring-line:#c9cebc;
  --grid-hair:#e3e6da;
  --accent:#5c2a6e;
  --accent-2:#1d7a46;
  --priority:#b8811f;
  --cat-1:#2a78d6; --cat-2:#eb6834; --cat-3:#1baf7a; --cat-4:#eda100;
  --cat-5:#e87ba4; --cat-6:#008300; --cat-7:#4a3aa7; --cat-8:#e34948;
}
@media (prefers-color-scheme: dark){
  :root:where(:not([data-theme="light"])){
    color-scheme: dark;
    --bg:#0e100c;
    --surface:#171a14;
    --surface-2:#1e2318;
    --surface-hover:#242b1c;
    --text-primary:#f3f5ee;
    --text-secondary:#c6cbb9;
    --text-muted:#9aa08e;
    --border:rgba(255,255,255,0.14);
    --ring-line:#333a2a;
    --grid-hair:#242a1d;
    --accent:#cd9fe2;
    --accent-2:#5fcf8e;
    --priority:#e0b84a;
    --cat-1:#3987e5; --cat-2:#d95926; --cat-3:#199e70; --cat-4:#c98500;
    --cat-5:#d55181; --cat-6:#2fae2f; --cat-7:#9085e9; --cat-8:#e66767;
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#0e100c; --surface:#171a14; --surface-2:#1e2318; --surface-hover:#242b1c;
  --text-primary:#f3f5ee; --text-secondary:#c6cbb9; --text-muted:#9aa08e;
  --border:rgba(255,255,255,0.14); --ring-line:#333a2a; --grid-hair:#242a1d;
  --accent:#cd9fe2; --accent-2:#5fcf8e; --priority:#e0b84a;
  --cat-1:#3987e5; --cat-2:#d95926; --cat-3:#199e70; --cat-4:#c98500;
  --cat-5:#d55181; --cat-6:#2fae2f; --cat-7:#9085e9; --cat-8:#e66767;
}
:root[data-theme="light"]{
  color-scheme: light;
  --bg:#f5f6f0; --surface:#ffffff; --surface-2:#eef1e6; --surface-hover:#e6eadb;
  --text-primary:#12140f; --text-secondary:#4c5245; --text-muted:#5f6658;
  --border:rgba(18,20,15,0.12); --ring-line:#c9cebc; --grid-hair:#e3e6da;
  --accent:#5c2a6e; --accent-2:#1d7a46; --priority:#b8811f;
  --cat-1:#2a78d6; --cat-2:#eb6834; --cat-3:#1baf7a; --cat-4:#eda100;
  --cat-5:#e87ba4; --cat-6:#008300; --cat-7:#4a3aa7; --cat-8:#e34948;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text-primary);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing:antialiased;
}
#root{ min-height:100%; }

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

::selection{ background:var(--accent); color:#fff; }

.app-shell{ max-width:1440px; margin:0 auto; padding:20px 20px 48px; }

.header{
  display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  flex-wrap:wrap; margin-bottom:18px;
}
.brand{ display:flex; gap:14px; align-items:flex-start; }
.brand-bars{ display:flex; flex-direction:column; gap:3px; margin-top:4px; flex-shrink:0; }
.brand-bars .bar{ display:block; width:26px; height:9px; }
.brand-bars .bar-a{ background:var(--accent); }
.brand-bars .bar-b{ background:var(--accent-2); width:16px; }
.brand h1{
  font-size:1.7rem; font-weight:800; letter-spacing:-0.02em; margin:0 0 4px;
  text-wrap:balance;
}
.brand p{ margin:0; color:var(--text-secondary); font-size:1rem; max-width:52ch; }
.eyebrow{
  font-size:0.875rem; font-weight:700; letter-spacing:0.11em; text-transform:uppercase;
  color:var(--accent); margin:0 0 4px;
}

.header-controls{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.search-input{
  background:var(--surface); border:1px solid var(--border); border-radius:8px;
  padding:8px 12px; font-size:1rem; color:var(--text-primary); min-width:220px;
  outline:none;
}
.search-input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
.search-input::placeholder{ color:var(--text-muted); }

.segmented{ display:flex; background:var(--surface-2); border-radius:8px; padding:3px; border:1px solid var(--border); }
.segmented button{
  border:none; background:transparent; padding:6px 12px; font-size:1rem; font-weight:600;
  color:var(--text-secondary); border-radius:6px; cursor:pointer;
}
.segmented button.active{ background:var(--surface); color:var(--text-primary); box-shadow:0 1px 2px rgba(0,0,0,0.08); }

.icon-btn{
  background:var(--surface); border:1px solid var(--border); border-radius:8px;
  padding:7px 12px; font-size:1rem; font-weight:600; color:var(--text-secondary); cursor:pointer;
}
.icon-btn:hover{ background:var(--surface-hover); }

.filter-group{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.chip{
  border:1px solid var(--border); background:var(--surface-2); color:var(--text-secondary);
  border-radius:999px; padding:5px 11px; font-size:0.875rem; font-weight:600; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px; line-height:1.1; white-space:nowrap;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease, opacity 120ms ease;
}
.chip:hover{ background:var(--surface-hover); }
.chip .dot-swatch{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.chip.inactive{ opacity:0.45; }
.reset-btn{
  margin-left:auto; border:none; background:none; color:var(--text-muted);
  font-size:0.875rem; font-weight:600; cursor:pointer; text-decoration:underline;
  text-underline-offset:2px;
}
.reset-btn:hover{ color:var(--text-primary); }

.priority-strip{
  display:flex; gap:10px; overflow-x:auto; padding-bottom:6px; margin-bottom:16px;
}
.priority-card{
  flex:0 0 auto; min-width:190px; background:var(--surface); border:1px solid var(--border);
  border-radius:10px; padding:10px 12px; cursor:pointer; position:relative;
}
.priority-card.selected{ border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent); }
.priority-card:hover{ background:var(--surface-hover); }
.priority-rank{
  font-size:0.875rem; font-weight:800; color:var(--priority); letter-spacing:0.06em;
}
.priority-name{ font-size:1rem; font-weight:700; margin:2px 0 6px; line-height:1.2; }
.priority-meta{ display:flex; align-items:center; justify-content:space-between; gap:8px; }

.main-grid{ display:grid; grid-template-columns: 1fr 340px; gap:16px; align-items:start; margin-bottom:16px; }
@media (max-width: 940px){ .main-grid{ grid-template-columns: 1fr; } }

.panel{
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:16px;
}
.chart-panel{ min-height:560px; }
.caption-right{ display:flex; align-items:center; gap:10px; }
.radar-stage{ position:relative; }
.zoom-btn{
  position:absolute; right:0; bottom:0; z-index:2;
  display:inline-flex; align-items:center; gap:8px; padding:9px 16px;
  background:var(--accent-2); color:var(--surface); border:none; border-radius:999px;
  font-size:1rem; font-weight:700; cursor:pointer;
  box-shadow:0 4px 12px rgba(0,0,0,0.18);
}
.zoom-btn:hover{ filter:brightness(1.1); }
.zoom-btn:focus-visible{ outline:3px solid var(--priority); outline-offset:3px; }
.zoom-btn svg{ width:20px; height:20px; flex-shrink:0; }
.chart-panel.is-expanded .zoom-btn{ position:fixed; right:24px; bottom:20px; }
.chart-panel.is-expanded{
  position:fixed; inset:0; z-index:40; border-radius:0; border:none;
  overflow:auto; padding:16px 24px; min-height:0;
}
.chart-panel.is-expanded .radar-wrap{ max-width:min(96vw, calc(100vh - 70px)); }
body.radar-expanded{ overflow:hidden; }
.chart-caption{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; flex-wrap:wrap; gap:8px; }
.chart-caption h2{ font-size:1.0625rem; font-weight:750; margin:0; }
.chart-caption .count-pill{
  font-size:0.875rem; font-weight:700; color:var(--text-muted); font-variant-numeric: tabular-nums;
}

.radar-wrap{ position:relative; max-width:min(720px, 86vh); margin:0 auto; }
.radar-svg{ display:block; width:100%; height:auto; position:relative; z-index:1; overflow:visible; }
.radar-sweep{
  position:absolute; top:50%; left:50%; width:89.8%; aspect-ratio:1/1;
  transform:translate(-50%,-50%); border-radius:50%; pointer-events:none; z-index:0;
  background:conic-gradient(from 0deg,
    color-mix(in srgb, var(--accent-2) 32%, transparent) 0deg,
    transparent 65deg, transparent 360deg);
  animation: radar-sweep-spin 9s linear infinite;
}
@keyframes radar-sweep-spin{ from{ transform:translate(-50%,-50%) rotate(0deg); } to{ transform:translate(-50%,-50%) rotate(360deg); } }

.ring-label{ font-size:13px; font-weight:800; letter-spacing:0.01em; fill:var(--text-primary); }
.ring-label-bg{ fill:var(--surface); }
.sector-label{ font-size:28px; font-weight:750; }
.divider-line{ stroke:var(--text-muted); stroke-width:1.75; }
.ring-circle{ fill:none; stroke:var(--ring-line); stroke-width:1; stroke-dasharray:2 3; }
.hub-circle{ fill:var(--surface); stroke:var(--border); stroke-width:1; }
.hub-title{ font-size:16px; font-weight:800; letter-spacing:0.08em; fill:var(--text-primary); }
.hub-sub{ font-size:10.5px; font-weight:700; letter-spacing:0.06em; fill:var(--text-muted); }
.priority-ring{ stroke:var(--priority); stroke-width:1.4; stroke-dasharray:2 2; }
.dot-mark{ transition: r 120ms ease; }
.dot:focus{ outline:none; }
.dot:focus .dot-mark{ stroke:var(--text-primary); stroke-width:2.5px; }

.dot-label{ font-size:18px; font-weight:600; fill:var(--text-secondary); pointer-events:none;
  paint-order:stroke; stroke:var(--surface); stroke-width:4px; stroke-linejoin:round; }
.dot-label.is-selected{ fill:var(--text-primary); font-weight:800; }
.pos-grid{ pointer-events:none; }
.pos-grid-minor{ stroke:#3b82f6; stroke-width:0.5; opacity:0.25; }
.pos-grid-major{ stroke:#3b82f6; stroke-width:1; opacity:0.6; }
.pos-grid-label{ font-size:13px; font-weight:700; fill:#2563eb; }

.legend-swatch{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }

.legend{
  display:flex; flex-wrap:wrap; gap:22px; margin-top:14px; padding-top:14px;
  border-top:1px solid var(--border); font-size:0.875rem; color:var(--text-secondary);
}
.legend-block{ display:flex; flex-direction:column; gap:6px; }
.legend-title{
  font-size:0.875rem; font-weight:700; letter-spacing:0.09em; text-transform:uppercase;
  color:var(--text-muted);
}
.legend-row{ display:flex; align-items:center; gap:7px; }
.legend-size-demo{ display:flex; align-items:center; gap:10px; }
.legend-size-dot{ border-radius:50%; background:var(--text-muted); flex-shrink:0; }
.legend-priority-ring{
  width:14px; height:14px; border-radius:50%; border:1.4px dashed var(--priority); flex-shrink:0;
}

.table-wrap{ overflow-x:auto; }
table.tech-table{ width:100%; border-collapse:collapse; font-size:1rem; }
table.tech-table thead th{
  text-align:left; font-size:0.875rem; font-weight:700; letter-spacing:0.07em; text-transform:uppercase;
  color:var(--text-muted); padding:8px 10px; border-bottom:1px solid var(--border); cursor:pointer;
  white-space:nowrap; position:sticky; top:0; background:var(--surface);
}
table.tech-table thead th:hover{ color:var(--text-primary); }
table.tech-table tbody td{ padding:9px 10px; border-bottom:1px solid var(--grid-hair); vertical-align:middle; }
table.tech-table tbody tr{ cursor:pointer; }
table.tech-table tbody tr:hover{ background:var(--surface-hover); }
table.tech-table tbody tr.selected{ background:color-mix(in srgb, var(--accent) 10%, transparent); }
.table-scroll{ max-height:520px; overflow-y:auto; }
.name-cell{ display:flex; align-items:center; gap:8px; font-weight:650; }
.theme-pill{
  display:inline-flex; align-items:center; gap:6px; font-size:0.875rem; font-weight:650;
  padding:3px 9px; border-radius:999px; background:var(--surface-2); white-space:nowrap;
}
.maturity-pill{
  display:inline-flex; font-size:0.875rem; font-weight:650; padding:3px 9px; border-radius:999px;
  background:var(--surface-2); color:var(--text-secondary); white-space:nowrap;
}
.num-cell{ font-variant-numeric: tabular-nums; font-weight:700; }

.intro-banner{ margin-bottom:16px; }
.filter-panel{ min-height:200px; }
.filter-panel-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.filter-panel .filter-group{ flex-direction:column; align-items:flex-start; gap:6px; }
.filter-panel .chip{ width:100%; justify-content:flex-start; }
.filter-panel .reset-btn{ margin-top:8px; }
.clear-btn{
  border:1px solid var(--border); background:var(--surface-2); color:var(--text-secondary);
  border-radius:6px; padding:3px 9px; font-size:0.875rem; font-weight:650; cursor:pointer;
}
.clear-btn:hover{ background:var(--surface-hover); color:var(--text-primary); }
.intro-card h3{ font-size:1.125rem; font-weight:750; margin:0 0 6px; }
.intro-card p{ font-size:1rem; color:var(--text-secondary); line-height:1.5; margin:0 0 14px; }
.priority-intro{ margin:6px 0 16px; max-width:78ch; }
.priority-intro p{ font-size:1rem; color:var(--text-secondary); line-height:1.55; margin:0 0 10px; }
.priority-intro p:last-child{ margin-bottom:0; }
.mix-row{ display:flex; align-items:center; gap:8px; margin-bottom:7px; }
.mix-label{ width:92px; font-size:0.875rem; color:var(--text-secondary); flex-shrink:0; }
.mix-bar-track{ flex:1; height:8px; background:var(--surface-2); border-radius:4px; overflow:hidden; }
.mix-bar-fill{ height:100%; background:var(--accent-2); border-radius:4px; }
.mix-count{ width:22px; text-align:right; font-size:0.875rem; font-variant-numeric: tabular-nums; color:var(--text-muted); }

.detail-card{ display:flex; flex-direction:column; gap:12px; }
.detail-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.detail-badges{ display:flex; flex-wrap:wrap; gap:6px; }
.close-btn{
  border:none; background:var(--surface-2); color:var(--text-secondary); width:26px; height:26px;
  border-radius:50%; cursor:pointer; font-size:1.0625rem; line-height:1; flex-shrink:0;
}
.close-btn:hover{ background:var(--surface-hover); color:var(--text-primary); }
.detail-card h3{ font-size:1.125rem; font-weight:800; margin:0; letter-spacing:-0.01em; }
.detail-desc{ font-size:1rem; color:var(--text-secondary); margin:0; line-height:1.5; }
.section-label{
  font-size:0.875rem; font-weight:700; letter-spacing:0.09em; text-transform:uppercase;
  color:var(--text-muted); margin:0 0 5px;
}
.rationale-text{ font-size:1rem; line-height:1.55; color:var(--text-primary); margin:0; }
.meter-row{ margin-bottom:10px; }
.meter-head{ display:flex; justify-content:space-between; font-size:0.875rem; color:var(--text-secondary); margin-bottom:4px; }
.meter-track{ height:8px; border-radius:4px; background:var(--surface-2); overflow:hidden; }
.meter-fill{ height:100%; border-radius:4px; }
.team-section{ background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:40px 32px 44px; margin-top:16px; }
.team-title{ font-size:2.25rem; font-weight:800; letter-spacing:-0.02em; color:var(--text-primary); margin:0 auto 36px; max-width:1040px; }
/* 3 per row; a part-filled last row is centred */
.team-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:44px 32px; max-width:1040px; margin:0 auto; }
.team-member{ text-align:center; flex:0 0 calc((100% - 64px) / 3); max-width:300px; }
@media (max-width:860px){ .team-member{ flex-basis:calc((100% - 32px) / 2); } }
@media (max-width:520px){ .team-member{ flex-basis:100%; } }
.team-photo{
  width:150px; height:150px; border-radius:50%; object-fit:cover; display:block; margin:0 auto 16px;
  border:4px solid var(--surface); box-shadow:0 0 0 3px var(--accent-2);
}
.team-initials{ display:flex; align-items:center; justify-content:center; background:var(--accent-2); color:#fff; font-size:2.6rem; font-weight:800; }
.team-name{ font-size:1.3rem; font-weight:800; color:var(--text-primary); margin-bottom:4px; }
.team-job{ font-size:1rem; color:var(--text-secondary); line-height:1.4; }
.team-role{ font-size:1rem; font-weight:800; color:var(--accent-2); margin-top:6px; }
.team-bio{ font-size:1rem; color:var(--text-secondary); line-height:1.55; margin-top:10px; }
.team-bio p{ margin:0; }
.footer-note{
  margin-top:26px; padding-top:16px; border-top:1px solid var(--border);
  font-size:0.875rem; color:var(--text-muted); line-height:1.6; max-width:90ch;
}

.tooltip-box{
  position:fixed; z-index:50; pointer-events:none; max-width:230px;
  background:var(--text-primary); color:var(--bg); border-radius:8px; padding:8px 10px;
  font-size:0.875rem; line-height:1.4; box-shadow:0 8px 20px rgba(0,0,0,0.25);
}
.tooltip-box .tt-name{ font-weight:750; margin-bottom:2px; }
.tooltip-box .tt-meta{ opacity:0.8; }

.intro-splash{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  padding:40px 32px; overflow-y:auto;
  background: radial-gradient(circle at 28% 18%, #1f8a52 0%, #0f4a2c 48%, #082616 100%);
  opacity:1; transition: opacity 480ms ease;
}
.intro-splash.closing{ opacity:0; pointer-events:none; }
.intro-splash-card{ max-width:980px; width:100%; color:#eafaf0; }
.intro-splash-eyebrow{
  font-size:0.875rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
  color:#9be6ba; margin-bottom:12px;
}
.intro-splash-title{
  font-size:2.25rem; font-weight:800; letter-spacing:-0.02em; margin:0 0 26px; color:#ffffff;
  text-wrap:balance;
}
.intro-splash-columns{ display:flex; gap:48px; margin-bottom:30px; }
.intro-splash-col{ flex:1; min-width:0; }
@media (max-width:760px){ .intro-splash-columns{ flex-direction:column; gap:0; } }
.intro-splash-section{ margin-bottom:24px; }
.intro-splash-section:last-child{ margin-bottom:0; }
.intro-splash-section h2{
  font-size:1.4rem; font-weight:800; color:#ffffff; margin:0 0 10px;
  letter-spacing:-0.01em; text-wrap:balance;
}
.intro-splash-section p{ font-size:1.0625rem; line-height:1.65; color:#e2f7e9; margin:0 0 12px; }
.intro-splash-section p:last-child{ margin-bottom:0; }
.intro-splash-section p strong{ color:#ffffff; }
.intro-splash-btn{
  background:#ffffff; color:#0f4a2c; border:none; border-radius:999px;
  padding:13px 28px; font-size:1rem; font-weight:750; cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,0.3);
}
.intro-splash-btn:hover{ background:#d9f9e3; }


/* ---------- Landing page (content comes from landing.md) ---------- */
.landing{
  position:fixed; inset:0; z-index:200; overflow-y:auto; background:#f5f6f0; color:#12140f;
  opacity:1; transition:opacity 480ms ease;
}
.landing.closing{ opacity:0; pointer-events:none; }
.landing-top{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  max-width:1200px; margin:0 auto; padding:16px 24px;
}
.landing-brand{ display:flex; align-items:center; gap:10px; font-weight:800; font-size:1rem; letter-spacing:0.02em; color:#0f4a2c; }
.landing-brand-mark{ width:26px; height:20px; display:flex; flex-direction:column; gap:3px; }
.landing-brand-mark span{ flex:1; border-radius:2px; }
.landing-skip{
  background:none; border:1.5px solid #1d7a46; color:#1d7a46; border-radius:999px;
  padding:8px 18px; font-size:1rem; font-weight:700; cursor:pointer;
}
.landing-skip:hover{ background:#1d7a46; color:#fff; }
.landing-hero{
  background:radial-gradient(circle at 20% 10%, #1f8a52 0%, #0f4a2c 50%, #082616 100%);
  color:#fff;
}
.landing-hero-inner{
  max-width:1200px; margin:0 auto; padding:56px 24px 64px;
  display:grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap:48px; align-items:center;
}
@media (max-width:860px){ .landing-hero-inner{ grid-template-columns:1fr; } .landing-hero-art{ max-width:360px; } }
.landing-eyebrow{ font-size:0.875rem; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; color:#9be6ba; margin-bottom:14px; }
.landing-title{ font-size:clamp(2.25rem, 4.5vw, 3.4rem); line-height:1.08; font-weight:800; letter-spacing:-0.02em; margin:0 0 20px; text-wrap:balance; }
.landing-lead{ font-size:1.3rem; line-height:1.5; font-weight:600; color:#e2f7e9; margin:0 0 22px; max-width:46ch; }
.landing-meta{ font-size:1rem; color:#c9efd7; margin-bottom:28px; }
.landing-meta strong{ color:#fff; }
.landing-btn{
  display:inline-flex; align-items:center; gap:10px;
  background:#fff; color:#0f4a2c; border:none; border-radius:999px;
  padding:14px 30px; font-size:1.0625rem; font-weight:800; cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,0.3);
}
.landing-btn:hover{ background:#d9f9e3; }
.landing-btn:focus-visible, .landing-skip:focus-visible{ outline:3px solid #e0b84a; outline-offset:3px; }
.landing-hero-art{ width:100%; justify-self:center; }
.landing-hero-art svg{ display:block; width:100%; height:auto; }
.landing-sweep{ transform-origin:200px 200px; animation: landing-spin 8s linear infinite; }
@keyframes landing-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .landing-sweep{ animation:none; } }

.landing-body{ max-width:780px; margin:0 auto; padding:40px 24px 24px; }
.landing-layout.has-side{
  max-width:1200px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:minmax(0,780px) 320px; gap:48px; justify-content:center;
}
.landing-layout.has-side .landing-body{ margin:0; padding:40px 0 24px; max-width:none; }
.landing-side{ padding:40px 0 24px; }
@media (max-width:1100px){
  .landing-layout.has-side{ grid-template-columns:minmax(0,1fr); gap:0; max-width:828px; }
  .landing-side{ padding-top:0; }
}
.landing-side-box{ background:#fff; border:1px solid rgba(18,20,15,0.12); border-radius:12px; padding:20px; margin-bottom:24px; }
.landing-side-heading{ font-size:0.875rem; font-weight:800; letter-spacing:0.12em; text-transform:uppercase; color:#4c5245; margin-bottom:14px; }
.landing-author-box-head{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.landing-author-box-head img, .landing-initials{
  width:72px; height:72px; border-radius:50%; object-fit:cover; flex-shrink:0;
  border:3px solid #fff; box-shadow:0 0 0 2px #1d7a46;
}
.landing-initials{ display:flex; align-items:center; justify-content:center; background:#1d7a46; color:#fff; font-weight:800; font-size:1.4rem; }
.landing-author-box-name{ font-size:1.125rem; font-weight:800; color:#12140f; }
.landing-author-box-role{ font-size:1rem; color:#4c5245; }
.landing-author-box-bio{ font-size:1rem; line-height:1.6; color:#2a2e25; }
.landing-author-box-bio p{ margin:0 0 8px; }
.landing-promo{ position:sticky; top:16px; background:#0f4a2c; border:none; color:#fff; }
.landing-promo-title{ font-size:1.0625rem; line-height:1.35; font-weight:800; text-transform:uppercase; letter-spacing:0.03em; margin-bottom:14px; }
.landing-promo-body ul{ list-style:none; margin:0 0 18px; padding:0; }
.landing-promo-body li{ position:relative; padding-left:30px; margin:10px 0; font-size:1.0625rem; font-weight:600; color:#e2f7e9; }
.landing-promo-body li::before{
  content:'✓'; position:absolute; left:0; top:-1px; width:22px; height:22px; border-radius:50%;
  background:#9be6ba; color:#0f4a2c; font-size:0.875rem; font-weight:900; display:flex; align-items:center; justify-content:center;
}
.landing-promo-body p{ color:#e2f7e9; margin:0 0 14px; }
.landing-promo-btn{
  display:inline-block; background:#fff; color:#0f4a2c; border-radius:999px; padding:11px 24px;
  font-weight:800; text-decoration:none;
}
.landing-promo-btn:hover{ background:#d9f9e3; }
.landing-promo-btn:focus-visible{ outline:3px solid #e0b84a; outline-offset:3px; }
.landing-covers{
  background:#fff; border:1px solid rgba(18,20,15,0.12); border-left:5px solid #1d7a46;
  border-radius:10px; padding:18px 22px; margin-bottom:36px;
}
.landing-covers h2{ font-size:0.875rem !important; letter-spacing:0.12em; text-transform:uppercase; color:#4c5245; margin:0 0 10px !important; }
.landing-covers ul{ margin:0; padding-left:20px; }
.landing-covers li{ margin:4px 0; font-size:1.0625rem; }
.landing-covers a{ color:#1d7a46; font-weight:700; }
.landing-article{ font-size:1.125rem; line-height:1.7; color:#2a2e25; }
.landing-article h2{ font-size:1.75rem; line-height:1.25; font-weight:800; color:#12140f; letter-spacing:-0.01em; margin:44px 0 14px; scroll-margin-top:20px; }
.landing-article h3{ font-size:1.3rem; font-weight:800; color:#12140f; margin:28px 0 10px; }
.landing-article p{ margin:0 0 16px; }
.landing-article a{ color:#1d7a46; font-weight:700; }
.landing-article strong{ color:#12140f; }
.landing-article ul, .landing-article ol{ padding-left:24px; margin:0 0 16px; }
.landing-article blockquote{
  margin:32px 0; padding:6px 0 6px 28px; border-left:5px solid #1d7a46; position:relative;
}
.landing-article blockquote p{ font-size:1.45rem; line-height:1.45; font-weight:700; color:#0f4a2c; margin:0 0 10px; }
.landing-article blockquote p.quote-cite{ font-size:1rem; font-weight:600; color:#4c5245; }
.landing-author{ display:flex; align-items:center; gap:18px; margin:24px 0 8px !important; line-height:1.5; }
.landing-author img{ width:96px; height:96px; border-radius:50%; object-fit:cover; flex-shrink:0; border:3px solid #fff; box-shadow:0 0 0 2px #1d7a46; }
.landing-author span{ color:#4c5245; }
.landing-author strong{ display:inline-block; font-size:1.2rem; }
.landing-stats{ display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:16px; margin:40px 0 12px; }
.landing-stat{ background:#fff; border:1px solid rgba(18,20,15,0.12); border-radius:12px; padding:20px; }
.landing-stat-num{ display:block; font-size:2.6rem; line-height:1; font-weight:800; color:#1d7a46; margin-bottom:8px; }
.landing-stat-label{ font-size:1rem; color:#4c5245; line-height:1.4; }
.landing-cta{ background:#0f4a2c; color:#fff; margin-top:40px; }
.landing-cta-inner{ max-width:780px; margin:0 auto; padding:48px 24px; }
.landing-cta h2{ font-size:1.9rem; font-weight:800; margin:0 0 12px; letter-spacing:-0.01em; }
.landing-cta p{ font-size:1.125rem; line-height:1.6; color:#e2f7e9; margin:0 0 24px; max-width:56ch; }
.landing-footer{ max-width:780px; margin:0 auto; padding:20px 24px 32px; font-size:0.875rem; color:#5f6658; }

.modal-overlay{
  position:fixed; inset:0; z-index:100; background:rgba(0,0,0,0.45);
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.modal-card{
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:20px; width:100%; max-width:480px; max-height:85vh; overflow-y:auto;
  box-shadow:0 20px 50px rgba(0,0,0,0.35);
}

.live-articles{ margin-top:4px; }
.live-status{
  font-size:1rem; color:var(--text-muted); line-height:1.5; margin:0;
}
.live-status code{
  background:var(--surface-2); border-radius:4px; padding:1px 5px; font-size:1rem;
}
.article-list{ display:flex; flex-direction:column; gap:8px; }
.article-item{
  display:block; text-decoration:none; color:inherit; padding:8px 10px;
  border:1px solid var(--border); border-radius:8px; background:var(--surface-2);
}
.article-item:hover{ background:var(--surface-hover); border-color:var(--accent); }
.article-title{ font-size:1rem; font-weight:700; color:var(--text-primary); line-height:1.35; }
.article-meta{ font-size:0.875rem; color:var(--text-muted); margin-top:3px; }
.article-summary{ font-size:1rem; color:var(--text-secondary); margin-top:5px; line-height:1.4; }

.briefing-table{ width:100%; min-width:640px; border-collapse:collapse; font-size:1rem; }
.briefing-table th{
  text-align:left; font-size:0.875rem; font-weight:700; letter-spacing:0.07em; text-transform:uppercase;
  color:var(--text-muted); padding:10px 12px; border-bottom:1px solid var(--border);
  background:var(--surface-2); white-space:nowrap;
}
.briefing-table td{ padding:14px 12px; border-bottom:1px solid var(--grid-hair); vertical-align:top; line-height:1.5; }
.briefing-table tr:last-child td{ border-bottom:none; }
.briefing-tech-cell{ min-width:190px; max-width:220px; cursor:pointer; }
.briefing-tech-cell:hover .briefing-tech-name{ color:var(--accent); text-decoration:underline; }
.briefing-rank{ display:block; font-size:0.875rem; font-weight:800; color:var(--priority); letter-spacing:0.06em; margin-bottom:3px; }
.briefing-tech-name{ display:block; font-weight:750; font-size:1rem; color:var(--text-primary); margin-bottom:7px; }
.briefing-badge{
  display:inline-flex; align-items:center; gap:6px; font-size:0.875rem; font-weight:650;
  color:var(--text-secondary); background:var(--surface-2); padding:3px 9px; border-radius:999px;
  font-variant-numeric: tabular-nums;
}
.briefing-why{ color:var(--text-secondary); max-width:34ch; }
.briefing-steps{ margin:0; padding-left:18px; display:flex; flex-direction:column; gap:8px; max-width:38ch; }
.briefing-steps li strong{ color:var(--text-primary); }
