/* self-hosted Google Fonts (OFL): Assistant, Frank Ruhl Libre — variable woff2 */
@font-face{font-family:'Assistant';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/assistant-hebrew.woff2) format('woff2');unicode-range:U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F}
@font-face{font-family:'Assistant';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/assistant-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Assistant';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/assistant-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Frank Ruhl Libre';font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/frank-hebrew.woff2) format('woff2');unicode-range:U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F}
@font-face{font-family:'Frank Ruhl Libre';font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/frank-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Frank Ruhl Libre';font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/frank-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --paper:#F3F4EF; --card:#FBFBF8; --ink:#1C2230; --muted:#5B6272; --line:#D8DAD1;
  --accent:#2B4C7E; --accent-soft:#E3E9F3; --ok:#3F6E45; --ok-soft:#E4EEE3; --no:#9A3B33; --no-soft:#F4E3E0;
  --gold:#7A5C14; --gold-soft:#F2EAD6;
  --serif:'Frank Ruhl Libre','David','Times New Roman',serif; --sans:'Assistant','Arial Hebrew','Segoe UI',Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#12161E; --card:#1A202B; --ink:#E6E8E3; --muted:#A0A7B4; --line:#2E3645;
    --accent:#8FB0E0; --accent-soft:#223149; --ok:#8CC894; --ok-soft:#1E3322; --no:#EE9A91; --no-soft:#3A2220;
    --gold:#D9B865; --gold-soft:#342C18; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#12161E; --card:#1A202B; --ink:#E6E8E3; --muted:#A0A7B4; --line:#2E3645;
  --accent:#8FB0E0; --accent-soft:#223149; --ok:#8CC894; --ok-soft:#1E3322; --no:#EE9A91; --no-soft:#3A2220;
  --gold:#D9B865; --gold-soft:#342C18; color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.7;direction:rtl;padding-inline:16px;padding-block:0 64px}
.wrap{max-width:760px;margin:0 auto}
header{padding-block:40px 24px;border-bottom:1px solid var(--line)}
.eyebrow{font-size:14px;letter-spacing:.06em;color:var(--gold);font-weight:700}
h1{font-family:var(--serif);font-weight:900;font-size:clamp(40px,8vw,64px);line-height:1.05;margin:6px 0 10px;text-wrap:balance}
.thesis{font-family:var(--serif);font-size:24px;color:var(--accent);margin:0}
.meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;color:var(--muted);font-size:15px}
.controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
button{font:inherit;cursor:pointer}
.btn{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 16px;font-size:15px;font-weight:600}
.btn[aria-pressed="true"]{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.btn:focus-visible,.reveal:focus-visible,.opt:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

nav.map{margin:28px 0 8px}
nav.map h2,.sec-h{font-family:var(--serif);font-size:26px;margin:0 0 12px}
.map ol{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.map a{display:flex;gap:12px;align-items:baseline;color:var(--ink);text-decoration:none;padding:6px 10px;border-radius:8px}
.map a:hover{background:var(--accent-soft)}
.map .amud{font-size:13px;color:var(--gold);font-weight:700;min-width:54px}

section.sugya{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.sugya .amud{font-size:13px;letter-spacing:.05em;color:var(--gold);font-weight:700}
.sugya h3{font-family:var(--serif);font-size:30px;line-height:1.25;margin:4px 0 14px;text-wrap:balance}
blockquote{margin:0 0 16px;padding:14px 20px;background:var(--gold-soft);border-radius:4px 12px 12px 4px;font-family:var(--serif);font-size:22px;line-height:1.6}
blockquote cite{display:block;font-family:var(--sans);font-style:normal;font-size:14px;color:var(--gold);margin-top:6px}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.steps li{display:grid;grid-template-columns:78px 1fr;gap:12px;align-items:start}
.tag{font-size:13px;font-weight:800;text-align:center;border-radius:6px;padding:3px 0;margin-top:4px;background:var(--accent-soft);color:var(--accent)}
.tag.q{background:var(--no-soft);color:var(--no)}
.tag.a{background:var(--ok-soft);color:var(--ok)}
.tag.c{background:var(--gold-soft);color:var(--gold)}
.steps b{font-weight:800}
.explain{margin:14px 0 0;color:var(--muted);font-size:17px}
.explain.flow{color:var(--ink);font-size:18px;margin:0 0 14px;padding:10px 14px;border-inline-start:3px solid var(--accent);background:var(--card);border-radius:0 8px 8px 0}
.storyline{margin:24px 0 8px;padding:16px 18px;background:var(--accent-soft);border-radius:12px}
.storyline .sl-h{font-family:var(--serif);font-size:22px;font-weight:700;margin-bottom:6px}
.storyline p{margin:0;font-size:18px}
details.storyline>summary,details.flowd>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;user-select:none}
details.storyline>summary::-webkit-details-marker,details.flowd>summary::-webkit-details-marker{display:none}
details.storyline>summary::before,details.flowd>summary::before{content:"◂";display:inline-block;transition:transform .15s;font-size:.8em}
details.storyline[open]>summary::before,details.flowd[open]>summary::before{transform:rotate(-90deg)}
details.storyline[open]>summary{margin-bottom:8px}
details.flowd{margin:0 0 12px}
details.flowd>summary{display:inline-flex;font-size:15px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:5px 14px}
details.flowd[open]>summary{margin-bottom:10px}
details.storyline>summary:focus-visible,details.flowd>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.prefs{margin-top:10px;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:12px;display:grid;gap:6px;font-size:16px}
.prefs[hidden]{display:none}
.prefs-h{font-size:13px;color:var(--muted)}
.prefs label{display:flex;align-items:center;gap:8px;cursor:pointer}
.prefs input{width:18px;height:18px;accent-color:var(--accent)}
.verdicts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:14px 0}
.v{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--card)}
.v .res{font-weight:800}
.v.ok .res{color:var(--ok)} .v.no .res{color:var(--no)}

.think{margin-top:16px;border:1px dashed var(--accent);border-radius:12px;padding:12px 16px;background:var(--card)}
.think p{margin:0}
.think .lbl{font-size:13px;font-weight:800;color:var(--accent)}
.reveal{margin-top:8px;background:none;border:0;color:var(--accent);font-weight:700;padding:0;text-decoration:underline;text-underline-offset:3px}
.ans{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}

.tree-mode .steps li{margin-inline-start:calc(var(--d,0)*22px);position:relative}
.tree-mode .steps li[data-d]:not([data-d="0"])::before{content:"";position:absolute;inset-inline-start:-14px;top:-6px;height:22px;width:10px;border-inline-start:2px solid var(--accent);border-bottom:2px solid var(--accent);border-end-start-radius:8px;opacity:.55}
.tree-mode .steps li[data-d="0"]{margin-top:6px}
.tag .tn{display:none;font-size:11px;font-weight:700;opacity:.8;margin-top:1px}
.tree-mode .tag .tn{display:block}
@media (max-width:480px){.tree-mode .steps li{margin-inline-start:calc(var(--d,0)*12px)}.tree-mode .steps li{grid-template-columns:70px 1fr}}
.hide-mode .steps li.hideable .body{filter:blur(6px);cursor:pointer;user-select:none}
.hide-mode .steps li.hideable.shown .body{filter:none;cursor:auto;user-select:auto}

.tbl{overflow-x:auto;margin-top:12px}
table{width:100%;border-collapse:collapse;font-size:16px;min-width:520px}
th,td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:14px;color:var(--muted);font-weight:700}
td.ok{color:var(--ok);font-weight:800} td.no{color:var(--no);font-weight:800}
.mnemo{margin-top:16px;font-family:var(--serif);font-size:24px;text-align:center;padding:12px;border:1px solid var(--gold);border-radius:12px;color:var(--gold)}

.quiz{display:grid;gap:18px;margin-top:12px}
.qitem{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.qitem p{margin:0 0 10px;font-weight:700}
.opts{display:grid;gap:8px}
.opt{text-align:right;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:16px}
.opt.right{background:var(--ok-soft);border-color:var(--ok);color:var(--ok);font-weight:700}
.opt.wrong{background:var(--no-soft);border-color:var(--no);color:var(--no)}
.fb{margin-top:8px;font-size:15px;color:var(--muted)}
.score{font-weight:800;color:var(--accent)}
.links{columns:2 260px;padding-inline-start:18px;font-size:16px}
.links a{color:var(--accent)}
footer{margin-top:40px;color:var(--muted);font-size:14px;border-top:1px solid var(--line);padding-top:16px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.ai-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 10px}
button.term{background:none;border:0;padding:0 0 1px;margin:0;font:inherit;color:inherit;cursor:pointer;border-bottom:2px dotted var(--accent);border-radius:0;text-align:inherit}
button.term.person{border-bottom-color:var(--gold)}
button.term:hover,button.term[aria-expanded="true"]{background:var(--accent-soft)}
button.term.person:hover,button.term.person[aria-expanded="true"]{background:var(--gold-soft)}
button.term:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.legend{margin-top:8px;font-size:14px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 14px}
.legend .lt{border-bottom:2px dotted var(--accent)} .legend .lp{border-bottom:2px dotted var(--gold)}
.hide-mode .steps li.hideable:not(.shown) button.term{pointer-events:none}
.pop{position:absolute;z-index:50;max-width:300px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:15px;line-height:1.55}
.pop .pk{font-size:12px;font-weight:800;color:var(--gold);letter-spacing:.04em}
.pop .ph{font-family:var(--serif);font-weight:700;font-size:18px;margin:2px 0 4px}
.src{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent}
button.src{background:none;border:0;border-bottom:1px dashed var(--accent);padding:0;font:inherit;cursor:pointer}
button.src::after{content:" ▤";font-size:.75em}
.src:hover{border-bottom-color:var(--accent)}
.src::after{content:" ↗";font-size:.8em}
.amud .src{margin-inline-start:8px;font-weight:700}
.sefaria-bar{margin-top:10px;font-size:15px}
.srcdlg-bg{position:fixed;inset:0;z-index:60;background:rgba(10,14,22,.45);display:flex;align-items:flex-end;justify-content:center;padding:16px}
@media (min-width:700px){.srcdlg-bg{align-items:center}}
.srcdlg{background:var(--card);color:var(--ink);border-radius:16px;max-width:680px;width:100%;max-height:78vh;display:flex;flex-direction:column;box-shadow:0 16px 40px rgba(0,0,0,.3);border:1px solid var(--line)}
.srcdlg header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.srcdlg h4{margin:0;font-family:var(--serif);font-size:22px}
.srcdlg .x{background:none;border:1px solid var(--line);border-radius:999px;width:34px;height:34px;font-size:18px;color:var(--ink);cursor:pointer}
.srcdlg .body{overflow:auto;padding:14px 20px;font-family:var(--serif);font-size:21px;line-height:1.75}
.srcdlg .body p{margin:0 0 12px}
.srcdlg .body p.gap{text-align:center;color:var(--muted)}
.srcdlg footer{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 18px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}

.cards{display:grid;gap:14px;margin-top:20px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;color:var(--ink);text-decoration:none}
.card:hover{border-color:var(--accent)}
.card .top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.card h3{font-family:var(--serif);font-size:28px;margin:0}
.card .date{font-size:14px;color:var(--muted)}
.card p{margin:6px 0 0;font-size:16px;color:var(--muted)}
.pill{display:inline-block;font-size:13px;font-weight:800;border-radius:999px;padding:2px 10px;background:var(--ok-soft);color:var(--ok)}
.stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.chk{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
.chk li{display:flex;gap:10px;align-items:flex-start}
.chk .mk{color:var(--ok);font-weight:800}
.chk .mk.w{color:var(--gold)}
.back{display:inline-block;margin-top:24px;font-size:15px;font-weight:700;color:var(--accent);text-decoration:none}
.back:hover{text-decoration:underline}

/* static-site additions */
[hidden]{display:none!important}
html{scroll-padding-top:12px}
.topnav{margin-top:24px;font-size:15px;color:var(--muted)}
.topnav .back{margin-top:0}
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:32px}
.pager .back{margin-top:0}

/* feedback */
.fb-form{font-family:var(--sans);font-size:17px;display:grid;gap:12px}
.fb-form fieldset{border:0;padding:0;margin:0;display:grid;gap:6px}
.fb-form legend{font-weight:700;margin-bottom:4px}
.fb-form label{display:flex;gap:8px;align-items:center;cursor:pointer}
.fb-form textarea,.fb-form input[name=name]{font:inherit;font-size:16px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}
.fb-form textarea:focus,.fb-form input:focus{outline:2px solid var(--accent);outline-offset:1px}
.fb-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.fb-send{justify-self:start;background:var(--accent);color:var(--paper);border-color:var(--accent)}
.fb-status{margin:0;font-size:15px;color:var(--no)}
.fb-ok{margin:0;font-size:18px;color:var(--ok);font-weight:700}

/* credits */
.credits{margin-top:40px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:15px}
.credits h2{font-family:var(--serif);font-size:20px;margin:16px 0 6px}
.credits ul{margin:0;padding-inline-start:18px;display:grid;gap:4px}
.credits a{color:var(--accent)}
.credits-note{margin:10px 0 0;color:var(--muted);font-size:14px}
.sponsor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--ink);text-decoration:none;padding-bottom:14px;border-bottom:1px solid var(--line)}
.sponsor:hover span{text-decoration:underline}
.sponsor-logo{height:32px;width:auto}
.sponsor-word{font:800 22px/1 var(--sans);letter-spacing:.02em;color:var(--accent);border:2px solid var(--accent);border-radius:8px;padding:4px 10px}
.sponsor-by{font:700 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sponsor-logo{height:28px;width:auto;display:block}
.sponsor-note{flex-basis:100%;font-size:14px;color:var(--muted)}
.sponsor-row{display:inline-flex;align-items:center;gap:10px}
.fb-form input[name=email]{font:inherit;font-size:16px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);text-align:right}
.fb-notify{font-size:15px}
.fb-muted{margin:0;font-size:14px;color:var(--muted)}
.fb-ts:empty{display:none}
.fb-track{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.fb-track a{color:var(--accent)}
.fb-badge{font-family:var(--sans);font-size:14px;margin:12px 0 0;padding:6px 10px;border-radius:8px;border:1px solid var(--line);color:var(--muted)}
.fb-badge.st-fixed,.fb-badge.pub{border-color:var(--ok);color:var(--ok)}
.fb-list{display:grid;gap:12px;margin:18px 0}
.fb-note{font-family:var(--sans);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.fb-note-h{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;color:var(--muted)}
.fb-note-h a{color:var(--accent)}
.fb-note-t{white-space:pre-wrap;margin:8px 0}
.fb-note-s{margin:0;font-weight:700}
.fb-note.st-fixed .fb-note-s{color:var(--ok)}
.fb-note-r{margin:6px 0 0;color:var(--muted)}
.fb-sec{float:left;position:relative;margin:2px 10px 0 0;width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;opacity:.55;transition:opacity .15s,color .15s,background .15s}
.fb-sec:hover,.fb-sec:focus-visible{opacity:1;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.fb-sec::after{content:attr(data-tip);position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%);white-space:nowrap;font-family:var(--sans);font-size:13px;font-weight:600;line-height:1;padding:6px 9px;border-radius:6px;background:var(--ink);color:var(--paper);pointer-events:none;opacity:0;transition:opacity .15s}
.fb-sec:hover::after,.fb-sec:focus-visible::after{opacity:1}
@media (hover:none){.fb-sec{opacity:.8}.fb-sec::after{display:none}}
