
:root{
  --ground:#E9E3D3; --surface:#F5F1E5; --surface-2:#DFD8C4;
  --ink:#17211F; --ink-2:#3D4A46; --muted:#6B766F;
  --rule:#CBC3AC; --rule-soft:#DAD3BF;
  --accent:#12615B; --gold:#9A6C22; --gold-soft:#C9A45B;
  --pos:#12615B; --neg:#8A3D2E;
  --shadow:0 1px 0 rgba(23,33,31,.05), 0 12px 28px -18px rgba(23,33,31,.45);
  --focus:#12615B;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --ground:#101617; --surface:#18201F; --surface-2:#212B29;
  --ink:#E9E4D4; --ink-2:#C3C6BC; --muted:#8E9A93;
  --rule:#2C3735; --rule-soft:#232D2C;
  --accent:#54B7A9; --gold:#D4A757; --gold-soft:#8A6E33;
  --pos:#54B7A9; --neg:#D98B76;
  --shadow:0 1px 0 rgba(0,0,0,.35), 0 16px 34px -20px rgba(0,0,0,.85);
  --focus:#7FD0C3;
}}
:root[data-theme="dark"]{
  --ground:#101617; --surface:#18201F; --surface-2:#212B29;
  --ink:#E9E4D4; --ink-2:#C3C6BC; --muted:#8E9A93;
  --rule:#2C3735; --rule-soft:#232D2C;
  --accent:#54B7A9; --gold:#D4A757; --gold-soft:#8A6E33;
  --pos:#54B7A9; --neg:#D98B76;
  --shadow:0 1px 0 rgba(0,0,0,.35), 0 16px 34px -20px rgba(0,0,0,.85);
  --focus:#7FD0C3;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);
  font-family:"Assistant","Segoe UI",system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.6}
.he{font-family:"Frank Ruhl Libre","Times New Roman",serif;direction:rtl;unicode-bidi:isolate}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

.sitebar{border-bottom:1px solid var(--rule);background:var(--ground)}
.sitebar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:11px;padding-bottom:11px;flex-wrap:wrap}
.sitemark{display:flex;align-items:baseline;gap:9px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.86rem;letter-spacing:.02em}
.sitemark .he{font-family:"Frank Ruhl Libre",serif;font-size:1.1rem;color:var(--gold);font-weight:500}
.backlink{font-size:.78rem;color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;letter-spacing:.02em}
.backlink:hover{color:var(--accent);border-bottom-color:color-mix(in srgb,var(--accent) 40%,transparent)}
header.masthead{border-bottom:1px solid var(--rule);
  background:radial-gradient(120% 140% at 50% -30%, color-mix(in srgb, var(--accent) 9%, transparent) 0%, transparent 60%), var(--surface)}
.masthead-inner{display:grid;grid-template-columns:1fr;gap:30px;padding-top:clamp(38px,6vw,68px);padding-bottom:clamp(30px,4vw,46px)}
.mast-left,.mast-right{display:flex;flex-direction:column;gap:20px;min-width:0}
@media (min-width:960px){
  .masthead-inner{grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);column-gap:56px;align-items:end}
}
.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0}
.title-he{display:inline-block;font-size:clamp(1.4rem,3.4vw,2rem);font-weight:400;color:var(--gold);margin:0 0 10px;line-height:1.2;letter-spacing:.02em}
h1{font-family:"Frank Ruhl Libre","Times New Roman",serif;font-weight:500;
  font-size:clamp(2.3rem,5.8vw,4.3rem);line-height:1.04;letter-spacing:-.015em;margin:0;text-wrap:balance;color:var(--ink)}
h1 .num{color:var(--gold);font-weight:700}
.standfirst{max-width:60ch;margin:0;color:var(--ink-2);font-size:clamp(1rem,1.4vw,1.1rem);line-height:1.65}
.standfirst b{color:var(--ink);font-weight:600}

.yad{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 18px;
  border:1px solid var(--rule);border-left:3px solid var(--gold);background:var(--ground)}
.yad-glyph{font-family:"Frank Ruhl Libre",serif;font-size:2.4rem;line-height:1;color:var(--gold);font-weight:700;direction:rtl}
.yad-text{font-size:.9rem;color:var(--muted);line-height:1.55;flex:1 1 220px;min-width:190px}
.yad-text strong{color:var(--ink-2);font-weight:600}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.stat{background:var(--surface);padding:13px 15px}
.stat dt{font-size:.66rem;letter-spacing:.14em;white-space:nowrap;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 3px}
.stat dd{margin:0;font-family:"Frank Ruhl Libre",serif;font-size:1.5rem;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.stat dd small{font-size:.78rem;font-family:"Assistant",sans-serif;color:var(--muted);font-weight:400;letter-spacing:.02em}

.toolbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb, var(--ground) 93%, transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.toolbar-inner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
.search{flex:1 1 250px;display:flex;align-items:center;gap:9px;border:1px solid var(--rule);background:var(--surface);padding:8px 12px;min-width:0}
.search svg{flex:none;color:var(--muted)}
.search input{border:0;background:transparent;color:var(--ink);font:inherit;font-size:.95rem;width:100%;outline:none;min-width:0}
.search input::placeholder{color:var(--muted)}
.btn{font:inherit;font-size:.8rem;font-weight:600;letter-spacing:.03em;border:1px solid var(--rule);
  background:var(--surface);color:var(--ink-2);padding:9px 13px;cursor:pointer;white-space:nowrap;
  transition:border-color .15s ease,color .15s ease}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.count{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}

main{padding:clamp(30px,5vw,54px) 0 0}
.arc{margin:0 0 clamp(28px,4vw,44px)}
.arc[hidden]{display:none}
.arc-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding-bottom:10px;margin-bottom:20px;border-bottom:1px solid var(--rule)}
.arc-head h2{margin:0;font-family:"Frank Ruhl Libre",serif;font-weight:500;font-size:1.26rem;color:var(--ink)}
.arc-head span{font-size:.7rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);font-weight:600}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:16px;align-items:start}

.book{background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow);display:flex;flex-direction:column;transition:border-color .18s ease}
.book:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--rule))}
.book[hidden]{display:none}
.book.open{grid-column:1 / -1;box-shadow:0 1px 0 rgba(0,0,0,.04), 0 22px 44px -26px rgba(0,0,0,.5);border-color:color-mix(in srgb, var(--accent) 40%, var(--rule))}
.book-head{width:100%;text-align:left;font:inherit;color:inherit;background:transparent;border:0;cursor:pointer;
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:18px 18px 12px}
.ord{font-family:"Frank Ruhl Libre",serif;direction:rtl;font-size:1.45rem;font-weight:700;line-height:1;color:var(--gold);min-width:2ch;text-align:center;padding-top:3px}
.ord small{display:block;font-family:"Assistant",sans-serif;direction:ltr;font-size:.6rem;font-weight:600;letter-spacing:.09em;color:var(--muted);margin-top:6px}
.names{min-width:0}
.name-he{display:block;font-family:"Frank Ruhl Libre",serif;direction:rtl;text-align:left;font-size:1.68rem;font-weight:500;line-height:1.3;color:var(--ink);margin:0 0 4px}
.name-tr{display:block;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 4px}
.name-en{display:block;font-size:1.03rem;font-weight:600;color:var(--ink);margin:0;line-height:1.3}
.name-alt{display:block;font-size:.78rem;color:var(--muted);margin:4px 0 0;font-style:italic;line-height:1.4}
.chev{flex:none;color:var(--muted);transition:transform .22s ease;margin-top:6px}
.book.open .chev{transform:rotate(180deg)}
.theme{margin:0;padding:0 18px 14px;color:var(--ink-2);font-size:.93rem;line-height:1.55}
.meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 18px 16px;font-size:.75rem;color:var(--muted)}
.pill{border:1px solid var(--rule);padding:3px 9px;font-weight:600;letter-spacing:.03em;color:var(--ink-2);font-variant-numeric:tabular-nums;background:var(--ground)}

.laws{border-top:1px solid var(--rule-soft);background:var(--ground);display:none}
.book.open .laws{display:block}
.laws > ol{margin:0;padding:0;list-style:none}
.law{border-bottom:1px solid var(--rule-soft)}
.law:last-child{border-bottom:0}
.law[hidden]{display:none}
.law-head{width:100%;text-align:left;font:inherit;color:inherit;background:transparent;border:0;cursor:pointer;
  display:grid;grid-template-columns:2.8ch minmax(0,1.15fr) minmax(0,1fr) auto;
  gap:4px 18px;align-items:baseline;padding:11px 18px}
.law-head:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}
.law-n{font-size:.7rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.law-en{font-size:.88rem;color:var(--ink);line-height:1.4;font-weight:600}
.law-he{font-family:"Frank Ruhl Libre",serif;direction:rtl;text-align:right;font-size:1.1rem;color:var(--ink-2);line-height:1.45}
.law-tags{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end;min-width:210px}
.tag{font-size:.68rem;font-weight:700;letter-spacing:.02em;padding:2px 6px;border:1px solid var(--rule);
  font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.tag.p{color:var(--pos);border-color:color-mix(in srgb,var(--pos) 40%,transparent)}
.tag.n{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,transparent)}
.tag.c{color:var(--muted)}
.law-body{display:none;padding:2px 18px 16px 18px;border-top:1px dashed var(--rule-soft);background:var(--surface)}
.law.open .law-body{display:block}
.law.open .law-head{background:var(--surface)}
.src-label{font-size:.64rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:12px 0 6px}
.src-he{font-family:"Frank Ruhl Libre",serif;direction:rtl;text-align:right;font-size:1.14rem;line-height:1.85;color:var(--ink);margin:0 0 14px}
.src-en{font-size:.9rem;line-height:1.65;color:var(--ink-2);margin:0 0 14px;max-width:74ch}
.src-links{display:flex;gap:8px;flex-wrap:wrap;font-size:.76rem}
.src-links a{color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent);padding-bottom:1px}
.src-links a:hover{border-bottom-color:var(--accent)}
.src-links span{color:var(--muted)}
.law-note{padding:10px 18px 14px;font-size:.79rem;color:var(--muted);border-top:1px solid var(--rule-soft)}
mark{background:color-mix(in srgb, var(--gold-soft) 55%, transparent);color:inherit;padding:0 1px}
.empty{display:none;padding:48px 0;text-align:center;color:var(--muted)}
.empty.show{display:block}

footer{margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--rule);background:var(--surface);padding:clamp(28px,4vw,44px) 0 34px}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:28px}
.foot-grid h3{margin:0 0 8px;font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);font-weight:600}
.foot-grid p{margin:0;font-size:.88rem;color:var(--ink-2);line-height:1.6;max-width:52ch}
.foot-grid a{color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}
.colophon{margin-top:28px;padding-top:16px;border-top:1px solid var(--rule);font-size:.75rem;color:var(--muted);
  display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}
.colophon a{color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--muted) 40%,transparent)}
.colophon a:hover{color:var(--accent);border-bottom-color:color-mix(in srgb,var(--accent) 50%,transparent)}

@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important}}
@media (max-width:820px){
  .book-head{padding:15px 15px 11px}
  .theme,.meta{padding-left:15px;padding-right:15px}
  .law-head{padding-left:15px;padding-right:15px;grid-template-columns:2.8ch minmax(0,1fr);gap:3px 12px}
  .law-n{grid-row:span 3}
  .law-tags{justify-content:flex-start;margin-top:5px;min-width:0}
  .law-he{text-align:left}
  .law-body{padding-left:15px;padding-right:15px}
}

/* ---------- mitzvot list + origin badges ---------- */
.law-tr{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-top:2px}
.tag.o-torah{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.tag.o-rab{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 50%,transparent)}
.tag.o-none{color:var(--muted)}
.mitz{list-style:none;margin:0 0 16px;padding:0;border-top:1px solid var(--rule-soft)}
.mitz li{display:grid;grid-template-columns:2.4ch auto minmax(0,1fr);gap:4px 12px;align-items:baseline;
  padding:9px 0;border-bottom:1px solid var(--rule-soft)}
.mitz li:last-child{border-bottom:0}
.mi{font-size:.7rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.mk{font-size:.6rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:2px 6px;border:1px solid var(--rule);white-space:nowrap}
.mk.P{color:var(--pos);border-color:color-mix(in srgb,var(--pos) 40%,transparent)}
.mk.N{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,transparent)}
.mtx{min-width:0}
.m-en{display:block;font-size:.9rem;line-height:1.45;color:var(--ink)}
.m-he{display:block;font-family:"Frank Ruhl Libre",serif;direction:rtl;text-align:right;
  font-size:1.02rem;line-height:1.5;color:var(--ink-2);margin-top:2px}
.origin-note{margin:0;padding:10px 0 0;font-size:.79rem;color:var(--muted);line-height:1.55}
@media (max-width:820px){
  .mitz li{grid-template-columns:2.4ch minmax(0,1fr)}
  .mk{grid-column:2;justify-self:start;margin-bottom:2px}
  .mtx{grid-column:2}
  .m-he{text-align:left}
}

/* ---------- subscribe CTA ---------- */
.cta{border-top:1px solid var(--rule);background:var(--surface)}
.cta-inner{display:grid;grid-template-columns:1fr;gap:24px;padding:clamp(30px,4.5vw,50px) 0}
@media (min-width:900px){.cta-inner{grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);column-gap:56px;align-items:start}}
.cta h2{margin:0 0 10px;font-family:"Frank Ruhl Libre",serif;font-weight:500;
  font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;color:var(--ink);text-wrap:balance}
.cta p.cta-lede{margin:0;color:var(--ink-2);font-size:.96rem;line-height:1.65;max-width:52ch}
.cta-form{display:flex;flex-direction:column;gap:10px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-weight:700}
.field label .opt{letter-spacing:.02em;text-transform:none;font-weight:400;color:var(--muted);font-size:.78rem}
.field input[type=email],.field input[type=tel]{
  font:inherit;font-size:.98rem;color:var(--ink);background:var(--ground);
  border:1px solid var(--rule);padding:11px 13px;width:100%;min-width:0}
.field input::placeholder{color:var(--muted)}
.field input:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--accent)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--ink-2);line-height:1.5}
.consent input{margin-top:3px;flex:none;accent-color:var(--accent);width:16px;height:16px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cta-btn{font:inherit;font-size:.92rem;font-weight:700;letter-spacing:.03em;cursor:pointer;
  background:var(--accent);color:var(--surface);border:1px solid var(--accent);padding:12px 20px;
  transition:opacity .15s ease;align-self:flex-start}
.cta-btn:hover{opacity:.9}
.cta-btn[disabled]{opacity:.55;cursor:default}
.cta-msg{font-size:.86rem;line-height:1.5;margin:0;min-height:1.2em}
.cta-msg.ok{color:var(--accent);font-weight:600}
.cta-msg.err{color:var(--neg);font-weight:600}
.cta-fine{margin:2px 0 0;font-size:.76rem;color:var(--muted);line-height:1.5;max-width:46ch}

@media print{
  .toolbar{display:none}
  .laws,.law-body{display:block !important}
  .book{break-inside:avoid;box-shadow:none}
}
