/* ==========================================================================
   GreenClick design system tokens (colors_and_type.css, trimmed to use)
   ========================================================================== */
:root{
  --gc-deep-teal:#03463F; --gc-lime:#DCFDA2;
  --gc-font-display:'DM Sans', system-ui, sans-serif;
  --gc-font-ui:'Inter', system-ui, 'Roboto', 'Helvetica', 'Arial', sans-serif;
  --gc-font-mono:ui-monospace,'SF Mono','JetBrains Mono',Menlo,Consolas,monospace;
  --gc-gradient-hero:linear-gradient(160deg,#021F1C 0%,#032E28 30%,#03463F 60%,#0A6B61 100%);
  --gc-gradient-cta:linear-gradient(160deg,#021F1C 0%,#03463F 60%,#0A6B61 100%);
  --gc-orb-lime-strong:radial-gradient(circle,rgba(220,253,162,.12) 0%,transparent 70%);
  --gc-orb-lime-soft:radial-gradient(circle,rgba(220,253,162,.08) 0%,transparent 70%);
  --gc-ease:cubic-bezier(.4,0,.2,1);

  /* Tracking is a Latin-only device here — Hebrew overrides these to normal. */
  --t-display:-.035em; --t-h2:-.03em; --t-h3:-.022em; --t-quote:-.015em;
  --t-eyebrow:.16em; --t-tag:.14em; --t-pill:.12em; --t-label:.12em;
  --t-nav:.09em; --t-switch:.08em; --t-micro:.06em;
}

/* --------------------------------------------------------------------------
   Hebrew face swap. DM Sans and Inter carry no Hebrew, so the display face
   becomes Assistant (geometric, has a real 300) and the UI face becomes Heebo
   (the Hebrew companion to Roboto — the closest neutral grotesque to Inter).
   The mono stack keeps its Latin faces first and only falls through to Heebo
   for Hebrew glyphs, so file paths and codenames stay monospaced.
   -------------------------------------------------------------------------- */
:root[lang="he"]{
  --gc-font-display:'Assistant','DM Sans',system-ui,sans-serif;
  --gc-font-ui:'Heebo','Inter',system-ui,'Arial',sans-serif;
  --gc-font-mono:ui-monospace,'SF Mono','JetBrains Mono',Menlo,Consolas,'Heebo',sans-serif;

  /* Hebrew has no case and no ascender rhythm to tighten — negative tracking
     collides the letterforms and wide tracking destroys word shape. */
  --t-display:normal; --t-h2:normal; --t-h3:normal; --t-quote:normal;
  --t-eyebrow:.02em; --t-tag:.02em; --t-pill:.02em; --t-label:.02em;
  --t-nav:normal; --t-switch:normal; --t-micro:normal;
}

/* ==========================================================================
   Page palette
   ========================================================================== */
:root{
  --p-bg:#FBFDFA; --p-panel:#FFFFFF; --p-panel-2:#F4F8F4;
  --p-line:#E2EAE4; --p-line-soft:#EDF3EE;
  --p-fg:#12201C; --p-fg-2:#57655F; --p-fg-3:#8B9891;
  --p-warm:#03463F; --p-warm-tint:#E4F0E6; --p-warm-line:#C4D9C9; --p-warm-bar:#03463F;
  --p-cool:#3D6472; --p-cool-tint:#E9F1F4; --p-cool-line:#CCDDE3;
  --p-logo-filter:none;
  --p-sticky:rgba(251,253,250,.86);
  --p-section:88px; --p-pad:30px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --p-bg:#06120F; --p-panel:#0B1A17; --p-panel-2:#0A1613;
    --p-line:rgba(255,255,255,.10); --p-line-soft:rgba(255,255,255,.055);
    --p-fg:#E9F0EB; --p-fg-2:#9BAAA4; --p-fg-3:#6D7B76;
    --p-warm:#9BC684; --p-warm-tint:rgba(155,198,132,.10); --p-warm-line:rgba(155,198,132,.24); --p-warm-bar:#9BC684;
    --p-cool:#82ACBA; --p-cool-tint:rgba(130,172,186,.08); --p-cool-line:rgba(130,172,186,.22);
    --p-logo-filter:brightness(0) invert(1) opacity(.82);
    --p-sticky:rgba(6,18,15,.84);
  }
}
:root[data-theme="dark"]{
  --p-bg:#06120F; --p-panel:#0B1A17; --p-panel-2:#0A1613;
  --p-line:rgba(255,255,255,.10); --p-line-soft:rgba(255,255,255,.055);
  --p-fg:#E9F0EB; --p-fg-2:#9BAAA4; --p-fg-3:#6D7B76;
  --p-warm:#9BC684; --p-warm-tint:rgba(155,198,132,.10); --p-warm-line:rgba(155,198,132,.24); --p-warm-bar:#9BC684;
  --p-cool:#82ACBA; --p-cool-tint:rgba(130,172,186,.08); --p-cool-line:rgba(130,172,186,.22);
  --p-logo-filter:brightness(0) invert(1) opacity(.82);
  --p-sticky:rgba(6,18,15,.84);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ background:var(--p-bg); scroll-behavior:smooth; scroll-padding-top:84px; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--p-bg); color:var(--p-fg);
  font-family:var(--gc-font-ui); font-size:15px; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ color:var(--p-warm); text-decoration:none; border-bottom:1px solid var(--p-warm-line); }
a:hover{ color:var(--p-fg); border-bottom-color:var(--p-fg); }
code{ font-family:var(--gc-font-mono); font-size:.86em; direction:ltr; unicode-bidi:isolate; }
::selection{ background:rgba(220,253,162,.4); }

/* Latin technical strings — paths, PR ids, codenames — held LTR inside RTL copy.
   The glyph order stays LTR, but a block-level one still has to hang off the
   right edge in RTL or it detaches from the column it belongs to. */
.ltr{ direction:ltr; unicode-bidi:isolate; }
[dir="rtl"] .ltr{ text-align:right; }
/* Multi-word Latin phrases inside Hebrew copy: keep them on one line, or the
   break strands a fragment like ".API" at the start of the next line. */
.ltr.nw{ white-space:nowrap; }

.wrap{ max-width:1200px; margin:0 auto; padding:24px 40px 88px; }

/* ==========================================================================
   Scroll progress + sticky bar
   ========================================================================== */
.progress{
  position:fixed; top:0; left:0; height:3px; width:100%; z-index:60;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg,var(--gc-deep-teal),#0A8A7D 60%,var(--gc-lime));
  will-change:transform;
}
[dir="rtl"] .progress{
  transform-origin:100% 50%;
  background:linear-gradient(270deg,var(--gc-deep-teal),#0A8A7D 60%,var(--gc-lime));
}

.sticky{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:var(--p-sticky);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid transparent;
  transform:translateY(-100%);
  transition:transform 300ms var(--gc-ease), border-color 300ms var(--gc-ease);
}
.sticky.is-on{ transform:translateY(0); border-bottom-color:var(--p-line); }
.sticky-in{
  max-width:1200px; margin:0 auto; padding:11px 40px;
  display:flex; align-items:center; gap:16px;
}
.sticky-in img{ height:16px; width:auto; filter:var(--p-logo-filter); }
.navlinks{ display:flex; align-items:center; gap:4px; margin-inline-start:auto; }
.navlink{
  font-family:var(--gc-font-mono); font-size:10.5px; letter-spacing:var(--t-nav); text-transform:uppercase;
  color:var(--p-fg-3); padding:6px 11px; border-radius:9999px; border:0;
  transition:color 200ms var(--gc-ease), background 200ms var(--gc-ease);
}
.navlink:hover{ color:var(--p-fg); }
.navlink.is-active{ color:var(--p-warm); background:var(--p-warm-tint); }

/* Theme + language switches */
.controls{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.switch{
  display:flex; align-items:center; gap:2px; padding:3px;
  border:1px solid var(--p-line); border-radius:9999px; background:var(--p-panel);
}
.switch button{
  border:0; cursor:pointer; background:transparent; color:var(--p-fg-3);
  font-family:var(--gc-font-mono); font-size:10.5px; letter-spacing:var(--t-switch); text-transform:uppercase;
  padding:6px 12px; border-radius:9999px; white-space:nowrap;
  transition:background 200ms var(--gc-ease), color 200ms var(--gc-ease);
}
.switch button:hover{ color:var(--p-fg); }
.switch button.is-on{ background:var(--p-fg); color:var(--p-bg); }
/* The language switch shows both scripts at once, so it never re-tracks. */
.switch.lang button{ letter-spacing:.06em; }
.switch.lang button[data-lang-set="he"]{ font-family:'Heebo','Arial',sans-serif; letter-spacing:normal; font-size:11.5px; }

/* ==========================================================================
   Masthead row
   ========================================================================== */
.top{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:20px; flex-wrap:wrap; }
.brand{ display:flex; align-items:center; gap:14px; }
.brand img{ height:19px; width:auto; filter:var(--p-logo-filter); }
.rule-v{ width:1px; height:18px; background:var(--p-line); }
.mono-xs{ font-family:var(--gc-font-mono); font-size:11px; letter-spacing:var(--t-micro); color:var(--p-fg-3); }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative; overflow:hidden; border-radius:24px;
  background:var(--gc-gradient-hero); padding:52px 44px 40px;
  box-shadow:0 24px 60px rgba(2,31,28,.26);
}
.orb{ position:absolute; pointer-events:none; }
.orb-a{ top:-170px; right:-110px; width:520px; height:520px; background:var(--gc-orb-lime-strong); animation:orbA 9s var(--gc-ease) infinite alternate; }
.orb-b{ bottom:-230px; left:-150px; width:560px; height:560px; background:var(--gc-orb-lime-soft); animation:orbB 11s var(--gc-ease) infinite alternate; }
@keyframes orbA{ from{ transform:translate(0,0) scale(1); } to{ transform:translate(-4%,3%) scale(1.24); } }
@keyframes orbB{ from{ transform:translate(0,0) scale(1.1); } to{ transform:translate(5%,-4%) scale(1); } }
.hero-in{ position:relative; }
.hero-path{ font-family:var(--gc-font-mono); font-size:11.5px; letter-spacing:.08em; color:rgba(220,253,162,.75); word-break:break-all; }
.hero-h1{
  margin:14px 0 0; font-family:var(--gc-font-display); font-weight:300;
  font-size:clamp(40px,6vw,76px); line-height:1; letter-spacing:var(--t-display); color:#FFFFFF;
}
.hero-h1 span{ color:var(--gc-lime); }
/* Hebrew at weight 300 sits taller in the box and needs a hair less size. */
:root[lang="he"] .hero-h1{ font-size:clamp(34px,5.2vw,66px); line-height:1.14; }

.kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:44px; }
.kpi-n{
  font-family:var(--gc-font-display); font-weight:300;
  font-size:clamp(38px,5.4vw,76px); line-height:.9; letter-spacing:-.045em;
  color:var(--gc-lime); font-variant-numeric:tabular-nums;
  direction:ltr; unicode-bidi:isolate;
}
[dir="rtl"] .kpi-n{ text-align:right; }
.kpi-l{ margin-top:10px; font-size:13px; color:rgba(255,255,255,.72); }
.kpi-s{ margin-top:4px; font-family:var(--gc-font-mono); font-size:10.5px; color:rgba(255,255,255,.38); }

.byline{
  display:flex; flex-wrap:wrap; align-items:center; gap:32px;
  margin-top:38px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12);
}
.byline-date{ flex:1; text-align:end; font-family:var(--gc-font-mono); font-size:10.5px; color:rgba(255,255,255,.38); white-space:nowrap; }

/* ==========================================================================
   Section headers
   ========================================================================== */
section{ margin-top:var(--p-section); }
.sec-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  padding-bottom:16px; border-bottom:1px solid var(--p-fg);
}
.sec-head.cool{ border-bottom-color:var(--p-cool); }
.eyebrow{ font-family:var(--gc-font-mono); font-size:11px; letter-spacing:var(--t-eyebrow); text-transform:uppercase; color:var(--p-warm); }
.eyebrow.muted{ color:var(--p-fg-3); }
.eyebrow.cool{ color:var(--p-cool); }
:root[lang="he"] .eyebrow{ font-size:12px; }
.sec-h2{
  margin:10px 0 0; font-family:var(--gc-font-display); font-weight:300;
  font-size:clamp(28px,4.4vw,36px); line-height:1.1; letter-spacing:var(--t-h2); color:var(--p-fg);
}
:root[lang="he"] .sec-h2{ line-height:1.28; }
.sec-meta{ font-family:var(--gc-font-mono); font-size:11px; color:var(--p-fg-3); padding-bottom:4px; text-align:end; }

/* ==========================================================================
   Track A — shipped
   ========================================================================== */
.track{
  border:1px solid var(--p-warm-line); border-top:0; border-radius:0 0 16px 16px;
  background:var(--p-panel); overflow:hidden;
}
.entry{
  display:grid; grid-template-columns:1fr 300px; gap:40px;
  padding:var(--p-pad); border-bottom:1px solid var(--p-line-soft);
}
.entry:last-child{ border-bottom:0; }
.tagrow{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.tag{
  font-family:var(--gc-font-mono); font-size:10px; letter-spacing:var(--t-tag); text-transform:uppercase;
  border-radius:9999px; padding:5px 11px; color:var(--gc-lime); background:var(--gc-deep-teal);
}
.tag.outline{ color:var(--p-warm); background:var(--p-warm-tint); border:1px solid var(--p-warm-line); padding:4px 10px; }
:root[lang="he"] .tag{ font-size:11px; }
.path{ font-family:var(--gc-font-mono); font-size:12px; color:var(--p-fg-3); overflow-wrap:anywhere; direction:ltr; unicode-bidi:isolate; }
.entry h3{
  margin:16px 0 0; font-family:var(--gc-font-display); font-weight:400;
  font-size:clamp(24px,3.4vw,31px); line-height:1.15; letter-spacing:var(--t-h3); color:var(--p-fg); text-wrap:pretty;
}
:root[lang="he"] .entry h3{ line-height:1.32; font-size:clamp(22px,3.1vw,29px); }
.entry p.lede{ margin:12px 0 0; max-width:58ch; font-size:16px; line-height:1.6; color:var(--p-fg-2); }
:root[lang="he"] .entry p.lede{ line-height:1.72; max-width:52ch; }
.bullets{ display:grid; grid-template-columns:1fr 1fr; gap:10px 26px; margin-top:22px; }
.bullets.one{ grid-template-columns:1fr; }
.b{ display:flex; gap:10px; font-size:14px; line-height:1.5; color:var(--p-fg-2); }
:root[lang="he"] .b{ line-height:1.68; }
.b::before{ content:""; flex:none; width:5px; height:5px; margin-top:7px; border-radius:9999px; background:var(--p-warm); }
:root[lang="he"] .b::before{ margin-top:9px; }
.b strong{ color:var(--p-fg); font-weight:600; }
.b.span2{ grid-column:1/-1; }

.facts{ align-self:start; padding:20px; border-radius:14px; background:var(--p-warm-tint); border:1px solid var(--p-warm-line); }
.facts.plain{ background:var(--p-panel-2); border-color:var(--p-line); }
.facts-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.fact-n{
  font-family:var(--gc-font-display); font-weight:300; font-size:38px; line-height:.9;
  letter-spacing:-.04em; color:var(--p-warm); font-variant-numeric:tabular-nums;
  direction:ltr; unicode-bidi:isolate;
}
[dir="rtl"] .fact-n{ text-align:right; }
.fact-n.sm{ font-size:34px; }
.facts.plain .fact-n{ color:var(--p-fg); }
.fact-l{ margin-top:7px; font-size:12px; color:var(--p-fg-2); }
:root[lang="he"] .fact-l{ font-size:12.5px; line-height:1.5; }
.facts-foot{
  margin-top:18px; padding-top:14px; border-top:1px solid var(--p-warm-line);
  display:flex; flex-direction:column; gap:6px;
  font-family:var(--gc-font-mono); font-size:11px; color:var(--p-fg-2);
}
.facts.plain .facts-foot{ border-top-color:var(--p-line); }
.facts-foot .hi{ color:var(--p-warm); }

.meter{ display:flex; align-items:center; gap:9px; font-family:var(--gc-font-mono); font-size:10.5px; color:var(--p-fg-2); }
.meter-k{ flex:none; width:76px; }
:root[lang="he"] .meter-k{ font-size:11.5px; }
.meter-track{ flex:1; height:5px; background:var(--p-warm-line); border-radius:9999px; overflow:hidden; }
.meter-fill{ display:block; height:5px; background:var(--p-warm-bar); border-radius:9999px; width:0; transition:width 900ms var(--gc-ease); }
.meter-v{ flex:none; width:26px; text-align:end; color:var(--p-fg); direction:ltr; unicode-bidi:isolate; }

/* ==========================================================================
   Permission matrix
   ========================================================================== */
.matrix-card{ border:1px solid var(--p-line); border-top:0; border-radius:0 0 16px 16px; background:var(--p-panel); overflow:hidden; }
.matrix-scroll{ overflow-x:auto; padding:var(--p-pad); -webkit-overflow-scrolling:touch; }
.matrix{ min-width:900px; display:grid; grid-template-columns:190px repeat(6,1fr) 54px; gap:8px; }
.mrow{ display:contents; }
.mhead{
  font-family:var(--gc-font-mono); font-size:10px; letter-spacing:var(--t-label); text-transform:uppercase;
  color:var(--p-fg-3); padding-bottom:8px;
}
:root[lang="he"] .mhead{ font-size:11.5px; }
.mhead.hi{ color:var(--p-warm); }
.mhead.end{ text-align:end; }
.mhead small{ display:block; margin-top:4px; letter-spacing:.02em; text-transform:none; color:var(--p-fg-3); font-size:10px; }
:root[lang="he"] .mhead small{ font-size:11px; }
.mtier{ display:flex; align-items:center; gap:9px; font-family:var(--gc-font-mono); font-size:13px; color:var(--p-fg); direction:ltr; unicode-bidi:isolate; }
/* The tier slug is a strong-LTR run either way, so let the row itself flow RTL:
   that puts the nesting indent on the leading (right) edge, where it reads as
   depth. Keeping direction:ltr here pinned the label to the edge instead. */
[dir="rtl"] .mtier{ direction:rtl; justify-content:flex-start; }
.mtier i{ display:block; border-top:1px solid var(--p-line); }
.cell{ padding:16px 14px; border-radius:10px; font-size:13.5px; background:var(--p-warm-tint); border:1px solid var(--p-warm-line); color:var(--p-fg); }
.cell.admin{ background:var(--gc-deep-teal); border-color:var(--gc-deep-teal); color:var(--gc-lime); font-weight:600; }
.cell.strong{ border-color:var(--p-warm); font-weight:600; }
.cell.dim{ background:var(--p-panel-2); border-color:var(--p-line); color:var(--p-fg-2); }
.cell.empty{ padding:0; background:transparent; border:1px dashed var(--p-line); }
.mn{ display:flex; align-items:center; justify-content:flex-end; font-family:var(--gc-font-mono); font-size:14px; color:var(--p-fg); }
.matrix-notes{
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
  padding:var(--p-pad); border-top:1px solid var(--p-line); background:var(--p-panel-2);
}
.matrix-notes p{ margin:0; font-size:13.5px; line-height:1.55; color:var(--p-fg-2); }
:root[lang="he"] .matrix-notes p{ line-height:1.72; }
.matrix-notes strong{ color:var(--p-fg); font-weight:600; }

/* ==========================================================================
   Track B — scoped
   ========================================================================== */
.cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:20px; }
.card{
  padding:20px; border-radius:14px; background:var(--p-cool-tint); border:1px solid var(--p-cool-line);
  transition:transform 200ms var(--gc-ease), box-shadow 200ms var(--gc-ease);
}
.card:hover{ transform:translateY(-4px); box-shadow:0 12px 40px rgba(3,70,63,.12); }
.card.warm{ background:var(--p-warm-tint); border-color:var(--p-warm-line); }
.card.neutral{ background:var(--p-panel); border-color:var(--p-line); }
.card-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.card-title{ font-weight:600; font-size:16px; color:var(--p-fg); }
:root[lang="he"] .card-title{ line-height:1.4; }
.card p{ margin:9px 0 0; font-size:13.5px; line-height:1.55; color:var(--p-fg-2); }
:root[lang="he"] .card p{ line-height:1.72; }
.pill{
  flex:none; font-family:var(--gc-font-mono); font-size:9.5px; letter-spacing:var(--t-pill); text-transform:uppercase;
  padding:4px 9px; border-radius:9999px; border:1px solid var(--p-line); color:var(--p-fg-2); white-space:nowrap;
}
.pill.ship{ background:var(--gc-deep-teal); border-color:var(--gc-deep-teal); color:var(--gc-lime); }
.pill.cool{ border-color:var(--p-cool); color:var(--p-cool); }
/* Hebrew glyphs run smaller at the same px than the Latin caps they replace. */
:root[lang="he"] .pill{ font-size:11px; padding:4px 10px; }

/* ==========================================================================
   Quotes, next, footer
   ========================================================================== */
.quotes{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.quote{ padding:var(--p-pad); border-radius:16px; background:var(--gc-gradient-cta); position:relative; overflow:hidden; }
.quote .orb{ bottom:-160px; right:-100px; width:340px; height:340px; background:var(--gc-orb-lime-soft); }
.quote p{
  margin:0; position:relative; font-family:var(--gc-font-display); font-weight:300;
  font-size:clamp(20px,2.6vw,24px); line-height:1.35; letter-spacing:var(--t-quote); color:#FFFFFF; text-wrap:pretty;
}
:root[lang="he"] .quote p{ line-height:1.55; font-size:clamp(19px,2.4vw,23px); }
.quote p span{ color:var(--gc-lime); }

.next{ margin-top:var(--p-section); padding-top:20px; border-top:1px solid var(--p-fg); }
.next-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:20px; }
.next-t{ font-family:var(--gc-font-display); font-weight:400; font-size:19px; color:var(--p-fg); }
:root[lang="he"] .next-t{ line-height:1.4; }
.next-grid p{ margin:8px 0 0; font-size:14px; line-height:1.55; color:var(--p-fg-2); }
:root[lang="he"] .next-grid p{ line-height:1.72; }

.foot{
  margin-top:48px; padding-top:18px; border-top:1px solid var(--p-line);
  display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between;
  font-family:var(--gc-font-mono); font-size:10.5px; color:var(--p-fg-3);
}
:root[lang="he"] .foot{ font-size:11.5px; }

/* Back to top */
.totop{
  position:fixed; inset-inline-end:20px; bottom:20px; z-index:45;
  width:42px; height:42px; border-radius:9999px; cursor:pointer;
  border:1px solid var(--p-line); background:var(--p-panel); color:var(--p-fg-2);
  display:grid; place-items:center;
  opacity:0; pointer-events:none; transform:translateY(8px);
  transition:opacity 250ms var(--gc-ease), transform 250ms var(--gc-ease), color 200ms var(--gc-ease);
  box-shadow:0 8px 24px rgba(0,0,0,.10);
}
.totop.is-on{ opacity:1; pointer-events:auto; transform:translateY(0); }
.totop:hover{ color:var(--p-warm); }
.totop svg{ width:16px; height:16px; }

/* ==========================================================================
   Scroll reveal
   ========================================================================== */
.rise{ opacity:0; transform:translateY(40px); transition:opacity 700ms var(--gc-ease), transform 700ms var(--gc-ease); }
.rise.is-in{ opacity:1; transform:none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1080px){
  .entry{ grid-template-columns:1fr 260px; gap:28px; }
}
@media (max-width:900px){
  :root{ --p-section:64px; --p-pad:24px; }
  .wrap{ padding:20px 26px 72px; }
  .sticky-in{ padding:10px 26px; }
  .hero{ padding:40px 28px 32px; border-radius:20px; }
  .kpis{ grid-template-columns:repeat(2,1fr); gap:22px 20px; margin-top:34px; }
  .entry{ grid-template-columns:1fr; gap:24px; }
  .facts{ align-self:stretch; }
  .cards{ grid-template-columns:1fr; }
  .quotes{ grid-template-columns:1fr; }
  .next-grid{ grid-template-columns:1fr 1fr; gap:22px; }
  .matrix-notes{ grid-template-columns:1fr; gap:16px; }
  .navlinks{ display:none; }
}
@media (max-width:640px){
  :root{ --p-section:52px; --p-pad:20px; }
  .wrap{ padding:16px 18px 64px; }
  .sticky-in{ padding:9px 18px; }
  body{ font-size:14.5px; }

  .top{ gap:14px; }
  .controls{ gap:6px; }
  .switch button{ padding:6px 9px; font-size:10px; }
  .switch.lang button{ padding:6px 10px; }
  :root[lang="he"] .switch button{ font-size:10.5px; }

  .hero{ padding:32px 20px 26px; border-radius:18px; }
  .hero-path{ font-size:10.5px; }
  .kpis{ gap:20px 16px; margin-top:28px; }
  .kpi-l{ font-size:12px; margin-top:8px; }
  .byline{ gap:16px; margin-top:28px; }
  .byline-date{ flex:1 1 100%; text-align:start; }

  .sec-head{ flex-direction:column; align-items:flex-start; gap:10px; }
  .sec-meta{ text-align:start; padding-bottom:0; }

  .entry p.lede{ font-size:15px; }
  .bullets{ grid-template-columns:1fr; gap:10px; }
  .facts-grid{ gap:14px; }
  .fact-n{ font-size:32px; }
  .fact-n.sm{ font-size:28px; }

  .next-grid{ grid-template-columns:1fr; }
  .totop{ inset-inline-end:14px; bottom:14px; }

  .card-top{ flex-direction:column-reverse; align-items:flex-start; gap:9px; }
  .card-title{ font-size:15.5px; }
}

/* Matrix → stacked cards on small screens */
@media (max-width:760px){
  .matrix-scroll{ overflow-x:visible; }
  .matrix{ min-width:0; display:flex; flex-direction:column; gap:14px; }
  .mrow.head{ display:none; }
  .mrow{
    display:grid; grid-template-columns:1fr 1fr; gap:8px;
    padding:14px; border-radius:14px; border:1px solid var(--p-line); background:var(--p-panel-2);
  }
  .mtier{ grid-column:1/-1; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--p-fg-3); }
  .mtier i{ display:none; }
  .cell{ padding:11px 12px; font-size:13px; }
  .cell::before{
    content:attr(data-col); display:block; margin-bottom:5px;
    font-family:var(--gc-font-mono); font-size:9px; letter-spacing:var(--t-label); text-transform:uppercase;
    color:var(--p-fg-3);
  }
  :root[lang="he"] .cell::before{ font-size:10.5px; }
  .cell.admin::before{ color:rgba(220,253,162,.62); }
  /* The column group and the role sometimes carry the same name (admin/Admin,
     back office/Back Office). Stacked, that reads as the word printed twice. */
  .cell.no-col::before{ display:none; }
  .cell.empty{ display:none; }
  .mn{
    grid-column:1/-1; justify-content:flex-start; font-size:10px; letter-spacing:var(--t-label); text-transform:uppercase;
    color:var(--p-fg-3); padding-top:2px;
  }
  .mn::after{ content:"\00a0roles"; }
  :root[lang="he"] .mn{ font-size:11.5px; }
  :root[lang="he"] .mn::after{ content:"\00a0תפקידים"; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ animation:none !important; transition:none !important; }
  .rise{ opacity:1; transform:none; }
}

/* ==========================================================================
   ADDITIONS FOR THE MULTI-RELEASE SITE
   Splash index cards, the blocked-on-action callout, flow steps, evidence
   links. Amber is a third semantic temperature alongside warm (shipped) and
   cool (planned): it means "done but stuck on someone".
   ========================================================================== */
:root{
  --p-amber:#8A5A12; --p-amber-tint:#FBF1DE; --p-amber-line:#E8D3A8; --p-amber-bar:#C08A2A;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --p-amber:#E5BE72; --p-amber-tint:rgba(229,190,114,.10);
    --p-amber-line:rgba(229,190,114,.26); --p-amber-bar:#E5BE72;
  }
}
:root[data-theme="dark"]{
  --p-amber:#E5BE72; --p-amber-tint:rgba(229,190,114,.10);
  --p-amber-line:rgba(229,190,114,.26); --p-amber-bar:#E5BE72;
}

.eyebrow.amber{ color:var(--p-amber); }
.sec-head.amber{ border-bottom-color:var(--p-amber); }
.pill.amber{ border-color:var(--p-amber); color:var(--p-amber); }
.pill.warm{ background:var(--p-warm-tint); border-color:var(--p-warm-line); color:var(--p-warm); }

/* --------------------------------------------------------------- splash */
.splash-lead{
  margin:18px 0 0; max-width:62ch; font-size:17px; line-height:1.62; color:rgba(255,255,255,.78);
}
:root[lang="he"] .splash-lead{ line-height:1.78; max-width:56ch; }
.splash-lead strong{ color:#FFFFFF; font-weight:600; }

.rel-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:20px; }

.rel{
  display:block; position:relative; overflow:hidden;
  padding:24px 26px 22px; border-radius:16px;
  background:var(--p-panel); border:1px solid var(--p-line);
  border-bottom:0; text-decoration:none; color:inherit;
  transition:transform 220ms var(--gc-ease), box-shadow 220ms var(--gc-ease), border-color 220ms var(--gc-ease);
}
.rel::after{
  content:""; position:absolute; inset-inline:0; bottom:0; height:3px;
  background:var(--p-line); transition:background 220ms var(--gc-ease);
}
.rel:hover{ transform:translateY(-4px); box-shadow:0 16px 46px rgba(3,70,63,.14); border-color:var(--p-warm-line); }
.rel:hover::after{ background:var(--p-warm-bar); }
.rel.is-blocked:hover{ border-color:var(--p-amber-line); }
.rel.is-blocked:hover::after{ background:var(--p-amber-bar); }
.rel.is-blocked::after{ background:var(--p-amber-line); }

.rel-top{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
.rel-wk{
  font-family:var(--gc-font-mono); font-size:11px; letter-spacing:var(--t-label); text-transform:uppercase;
  color:var(--p-fg-3);
}
:root[lang="he"] .rel-wk{ font-size:12px; }
.rel-h3{
  margin:14px 0 0; font-family:var(--gc-font-display); font-weight:400;
  font-size:clamp(21px,2.7vw,26px); line-height:1.16; letter-spacing:var(--t-h3);
  color:var(--p-fg); text-wrap:pretty;
}
:root[lang="he"] .rel-h3{ line-height:1.34; }
.rel p{ margin:10px 0 0; font-size:14.5px; line-height:1.58; color:var(--p-fg-2); max-width:48ch; }
:root[lang="he"] .rel p{ line-height:1.74; }

.rel-stats{
  display:flex; flex-wrap:wrap; gap:20px; margin-top:20px;
  padding-top:16px; border-top:1px solid var(--p-line-soft);
}
.rel-stat-n{
  font-family:var(--gc-font-display); font-weight:300; font-size:26px; line-height:.95;
  letter-spacing:-.04em; color:var(--p-warm); font-variant-numeric:tabular-nums;
  direction:ltr; unicode-bidi:isolate;
}
[dir="rtl"] .rel-stat-n{ text-align:right; }
.rel.is-blocked .rel-stat-n{ color:var(--p-amber); }
.rel-stat-l{ margin-top:5px; font-family:var(--gc-font-mono); font-size:10px; letter-spacing:var(--t-micro); text-transform:uppercase; color:var(--p-fg-3); }
:root[lang="he"] .rel-stat-l{ font-size:11px; }

.rel-go{
  display:flex; align-items:center; gap:8px; margin-top:18px;
  font-family:var(--gc-font-mono); font-size:11px; letter-spacing:var(--t-nav); text-transform:uppercase;
  color:var(--p-warm);
}
.rel.is-blocked .rel-go{ color:var(--p-amber); }
.rel-go svg{ width:14px; height:14px; transition:transform 220ms var(--gc-ease); }
[dir="rtl"] .rel-go svg{ transform:scaleX(-1); }
.rel:hover .rel-go svg{ transform:translateX(4px); }
[dir="rtl"] .rel:hover .rel-go svg{ transform:scaleX(-1) translateX(4px); }

/* ------------------------------------------------- blocked-on-action panel */
.blocker{
  margin-top:20px; padding:var(--p-pad); border-radius:16px;
  background:var(--p-amber-tint); border:1px solid var(--p-amber-line);
  display:grid; grid-template-columns:1fr 340px; gap:34px; align-items:start;
}
.blocker h3{
  margin:14px 0 0; font-family:var(--gc-font-display); font-weight:400;
  font-size:clamp(22px,3.1vw,28px); line-height:1.16; letter-spacing:var(--t-h3); color:var(--p-fg);
}
:root[lang="he"] .blocker h3{ line-height:1.34; }
.blocker p{ margin:12px 0 0; max-width:56ch; font-size:15.5px; line-height:1.6; color:var(--p-fg-2); }
:root[lang="he"] .blocker p{ line-height:1.74; max-width:50ch; }
.blocker p strong{ color:var(--p-fg); font-weight:600; }

.statbox{ padding:20px; border-radius:14px; background:var(--p-panel); border:1px solid var(--p-amber-line); }
.statbox-l{
  font-family:var(--gc-font-mono); font-size:10px; letter-spacing:var(--t-label); text-transform:uppercase;
  color:var(--p-fg-3);
}
:root[lang="he"] .statbox-l{ font-size:11px; }
.statbox-v{
  margin-top:10px; font-family:var(--gc-font-mono); font-size:clamp(19px,2.6vw,24px);
  color:var(--p-fg); letter-spacing:-.01em; direction:ltr; unicode-bidi:isolate;
  font-variant-numeric:tabular-nums;
}
[dir="rtl"] .statbox-v{ text-align:right; }
.statbox-sub{ margin-top:8px; font-size:12.5px; line-height:1.5; color:var(--p-fg-2); }
:root[lang="he"] 
/* ------------------------------------------------------------ flow steps */
.flow{
  display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:20px;
}
.step{
  padding:20px; border-radius:14px; background:var(--p-panel); border:1px solid var(--p-warm-line);
  position:relative;
}
.step.is-blocked{ border-color:var(--p-amber-line); background:var(--p-amber-tint); }
.step-n{
  font-family:var(--gc-font-mono); font-size:10px; letter-spacing:var(--t-label); text-transform:uppercase;
  color:var(--p-warm);
}
.step.is-blocked .step-n{ color:var(--p-amber); }
:root[lang="he"] .step-n{ font-size:11px; }
.step-t{ margin-top:10px; font-weight:600; font-size:15px; color:var(--p-fg); }
:root[lang="he"] .step-t{ line-height:1.42; }
.step p{ margin:8px 0 0; font-size:13px; line-height:1.55; color:var(--p-fg-2); }
:root[lang="he"] .step p{ line-height:1.72; }
.step-ok{
  margin-top:14px; display:inline-flex; align-items:center; gap:6px;
  font-family:var(--gc-font-mono); font-size:9.5px; letter-spacing:var(--t-pill); text-transform:uppercase;
  padding:4px 9px; border-radius:9999px;
  background:var(--gc-deep-teal); color:var(--gc-lime);
}
.step.is-blocked .step-ok{ background:var(--p-amber-bar); color:var(--p-bg); }
:root[lang="he"] .step-ok{ font-size:11px; }

/* --------------------------------------------------------- evidence links */
.shots{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:18px; }
.shot{
  display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:14px;
  background:var(--p-panel-2); border:1px solid var(--p-line); text-decoration:none; color:inherit;
  transition:border-color 200ms var(--gc-ease), transform 200ms var(--gc-ease);
}
.shot:hover{ border-color:var(--p-warm); transform:translateY(-2px); color:inherit; }
.shot svg{ flex:none; width:18px; height:18px; color:var(--p-fg-3); }
.shot:hover svg{ color:var(--p-warm); }
.shot-t{ font-size:14px; font-weight:600; color:var(--p-fg); }
.shot-u{ margin-top:3px; font-family:var(--gc-font-mono); font-size:10.5px; color:var(--p-fg-3); direction:ltr; unicode-bidi:isolate; }
[dir="rtl"] .shot-u{ text-align:right; }

/* ----------------------------------------------------------- verdict rows */
.verdict{ border:1px solid var(--p-line); border-top:0; border-radius:0 0 16px 16px; background:var(--p-panel); overflow:hidden; }
.vrow{
  display:grid; grid-template-columns:150px 1fr auto; gap:24px; align-items:center;
  padding:18px var(--p-pad); border-bottom:1px solid var(--p-line-soft);
}
.vrow:last-child{ border-bottom:0; }
.vrow-k{ font-family:var(--gc-font-mono); font-size:11.5px; color:var(--p-fg-3); }
:root[lang="he"] .vrow-k{ font-size:12.5px; }
.vrow-v{ font-size:14.5px; line-height:1.55; color:var(--p-fg-2); }
:root[lang="he"] .vrow-v{ line-height:1.72; }
.vrow-v strong{ color:var(--p-fg); font-weight:600; }
.vrow-s{ display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }

@media (max-width:900px){
  .rel-grid{ grid-template-columns:1fr; }
  .blocker{ grid-template-columns:1fr; gap:22px; }
  .flow{ grid-template-columns:1fr 1fr; }
  .shots{ grid-template-columns:1fr; }
  .vrow{ grid-template-columns:1fr; gap:8px; }
  .vrow-s{ justify-content:flex-start; }
}
@media (max-width:640px){
  .flow{ grid-template-columns:1fr; }
  .rel{ padding:20px 20px 18px; }
  .rel-stats{ gap:16px; }
}
