
  /* v4: the owner chose pairing C (19.10.2026). */
  :root {
    --serif:"Frank Ruhl Libre", serif; --serif-w:500; --sans:"Assistant", sans-serif;
    --burg:#5D1524; --burg-2:#74203A; --orange:#E89041; --orange-ink:#A84E00;
    --bg:#FAF6EF; --sand:#F1E6D4; --ink:#22080E; --muted:#6B5A50; --hair:rgba(93,21,36,.16);
    --ease:cubic-bezier(.25,.6,.2,1);
  }
  * { box-sizing:border-box; }
  body { margin:0; background:var(--bg); color:var(--ink); font:400 18px/1.7 var(--sans); overflow-x:hidden; }
  a { color:inherit; text-decoration:none; }
  img { display:block; max-width:100%; }
  :focus-visible { outline:2px solid var(--burg); outline-offset:3px; }
  .wrap { max-width:1180px; margin-inline:auto; padding-inline:24px; }
  .serif { font-family:var(--serif); font-weight:var(--serif-w); color:var(--burg); }
  .num { font-variant-numeric:tabular-nums lining-nums; }
  .eyebrow { font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:.14em; color:var(--orange-ink); text-transform:uppercase; display:flex; align-items:center; gap:12px; }
  .eyebrow::before { content:""; width:28px; height:1px; background:var(--orange); }

  .rv { opacity:0; transform:translateY(18px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
  .rv.in { opacity:1; transform:none; }
  .rv.d1 { transition-delay:.12s } .rv.d2 { transition-delay:.24s } .rv.d3 { transition-delay:.36s }

  header { position:sticky; top:0; z-index:20; background:rgba(250,246,239,.9); backdrop-filter:blur(8px); border-bottom:1px solid transparent; transition:border-color .4s; }
  header.scrolled { border-color:var(--hair); }
  header .wrap { display:flex; align-items:center; justify-content:space-between; height:72px; }
  header img { height:42px; }
  nav ul { display:none; gap:34px; list-style:none; margin:0; padding:0; font-size:16px; font-weight:500; }
  nav a { padding-block:6px; background:linear-gradient(var(--burg),var(--burg)) no-repeat right bottom / 0 1px; transition:background-size .35s var(--ease); }
  nav a:hover { background-size:100% 1px; }
  .btn { display:inline-flex; align-items:center; gap:12px; min-height:48px; padding:0 24px; border-radius:4px; font-weight:600; font-size:16px; letter-spacing:.02em; transition:background .25s, color .25s; }
  .btn.solid { background:var(--burg); color:#fff; } .btn.solid:hover { background:var(--burg-2); }
  .btn.link { padding:0; min-height:44px; color:var(--burg); border-bottom:1px solid var(--burg); border-radius:0; }
  .arr { transition:transform .3s var(--ease); } a:hover .arr { transform:translateX(-5px); }

  .hero { padding-block:40px 0; }
  .now { font-size:15px; color:var(--muted); display:flex; gap:10px; align-items:center; margin-bottom:26px; }
  .now b { color:var(--burg); font-weight:600; }
  .now i { width:6px; height:6px; border-radius:50%; background:var(--burg); display:inline-block; }
  .hero h1 { font-size:clamp(50px, 13vw, 104px); text-wrap:balance; line-height:1; margin:0 0 24px; letter-spacing:-.01em; }
  .hero h1 span { color:var(--orange-ink); }
  .hero p { color:var(--muted); max-width:38ch; margin:0 0 30px; font-size:19px; }
  .cta { display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
  .hero-media { margin:38px 0 0; overflow:hidden; border-radius:2px; aspect-ratio:4/5; }
  .hero-media img { width:100%; height:115%; object-fit:cover; will-change:transform; }
  .hero-media figcaption { font-size:14px; color:var(--muted); padding-top:10px; }

  .strip { margin-top:64px; border-block:1px solid var(--hair); }
  .strip .wrap { display:flex; flex-wrap:wrap; gap:6px 22px; justify-content:center; padding-block:18px; font-family:var(--serif); font-weight:var(--serif-w); font-size:22px; color:var(--burg); }
  .strip span + span::before { content:"·"; color:var(--orange); margin-inline-end:22px; }

  section { padding-block:84px 0; }
  h2.serif { font-size:clamp(40px, 8.5vw, 68px); line-height:1.08; margin:14px 0 34px; }

  .times { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--burg); }
  .times div { padding:18px 0 4px; }
  .times div + div { padding-inline-start:18px; border-inline-start:1px solid var(--hair); }
  .times small { display:block; font-size:14px; color:var(--muted); letter-spacing:.06em; }
  .times b { font-family:var(--serif); font-weight:var(--serif-w); font-size:clamp(36px,8vw,56px); color:var(--burg); line-height:1.15; }
  .item { display:grid; grid-template-columns:88px 1fr auto; gap:14px; align-items:baseline; padding:17px 0; border-bottom:1px solid var(--hair); }
  .item:first-child { border-top:1px solid var(--hair); }
  .item .d { color:var(--muted); font-size:15px; }
  .item .t { font-weight:500; font-size:18px; }
  .item .t em { font-style:normal; color:var(--muted); font-size:14px; display:block; font-weight:400; }
  .item .h { font-family:var(--serif); font-weight:var(--serif-w); font-size:22px; color:var(--burg); }

  .moments { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .ph { position:relative; overflow:hidden; border-radius:2px; }
  .ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
  .ph:hover img { transform:scale(1.03); }
  .ph.tall { grid-row:1 / span 2; }
  .ph.wide { aspect-ratio:4/3; }
  .caption { font-size:14px; color:var(--muted); margin-top:8px; }
  .fig { display:flex; flex-direction:column; }
  .fig .ph { flex:1; }

  .svc { display:grid; grid-template-columns:1fr auto; gap:4px 20px; align-items:baseline; padding:24px 0; border-bottom:1px solid var(--hair); background:linear-gradient(var(--orange),var(--orange)) no-repeat right bottom / 0 1px; transition:background-size .6s var(--ease); }
  .svc:first-of-type { border-top:1px solid var(--hair); }
  .svc:hover { background-size:100% 1px; }
  .svc h3 { margin:0; font-family:var(--serif); font-weight:var(--serif-w); font-size:clamp(26px,5.5vw,34px); color:var(--ink); line-height:1.2; }
  .svc p { margin:0; grid-column:1; color:var(--muted); font-size:16px; }
  .svc .more { grid-row:1 / span 2; grid-column:2; align-self:center; font-size:15px; font-weight:600; color:var(--burg); white-space:nowrap; }

  /* Slots for photographs the owner still sends; the real site never ships one. */
  .slot { position:relative; display:grid; place-items:center; text-align:center; padding:24px; background:var(--sand) repeating-linear-gradient(135deg, transparent 0 14px, rgba(93,21,36,.05) 14px 15px); border:1px solid var(--hair); border-radius:2px; color:var(--muted); font-size:15px; }
  .slot b { display:block; font-family:var(--serif); font-weight:var(--serif-w); font-size:22px; color:var(--burg); margin-bottom:4px; }

  .shul { aspect-ratio:16/10; }
  .svc-photo { margin:0 0 30px; }
  .svc-photo .ph { aspect-ratio:4/5; }
  .shul-cap { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:14px; color:var(--muted); margin-top:10px; }

  .farb { display:grid; gap:28px; }
  .guests { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:48px; }
  .guest .ph { aspect-ratio:4/5; }
  .guest b { display:block; margin-top:12px; font-family:var(--serif); font-weight:var(--serif-w); font-size:22px; color:var(--burg); line-height:1.25; }
  .guest span { font-size:14px; color:var(--muted); }
  .guest-list { margin-top:34px; }
  .guest-list .item { grid-template-columns:1fr auto; }
  .vid { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--hair); }
  .vid .play { width:40px; height:40px; border:1px solid var(--burg); border-radius:50%; position:relative; }
  .vid .play::after { content:""; position:absolute; inset:0; margin:auto; width:0; height:0; border-block:7px solid transparent; border-inline-end:11px solid var(--burg); transform:translateX(-2px); }
  .vid .t { font-weight:600; font-size:17px; }
  .vid .t em { display:block; font-style:normal; font-weight:400; font-size:14px; color:var(--muted); }
  .vid .arr { color:var(--burg); }
  .vids-feature { position:relative; display:block; }
  .vids-feature .ph { aspect-ratio:4/5; }
  .vids-feature .badge { position:absolute; inset-inline-start:16px; bottom:16px; display:flex; align-items:center; gap:10px; padding:10px 14px; background:rgba(34,8,14,.72); color:#fff; border-radius:2px; font-weight:600; font-size:15px; }
  .vids-feature .badge b { font-family:var(--serif); font-weight:var(--serif-w); font-size:22px; }
  .rabbi { display:grid; gap:30px; align-items:start; }
  .rabbi .slot { aspect-ratio:4/5; }
  .slot.bw { background-color:#E7E2DA; }
  #rabbi { padding-top:64px; }
  .rabbi p { margin:0 0 18px; max-width:52ch; }
  .rabbi blockquote { margin:30px 0 26px; padding-inline-start:22px; border-inline-start:1px solid var(--orange); font-family:var(--serif); font-weight:var(--serif-w); font-size:clamp(22px,4.2vw,27px); line-height:1.55; color:var(--ink); }

  .stories { display:grid; gap:0; border-top:1px solid var(--burg); }
  .st { display:block; padding:28px 0 30px; border-bottom:1px solid var(--hair); background:linear-gradient(var(--orange),var(--orange)) no-repeat right bottom / 0 1px; transition:background-size .6s var(--ease); }
  .st:hover { background-size:100% 1px; }
  .st .meta { font-size:13px; font-weight:600; letter-spacing:.12em; color:var(--orange-ink); }
  .st h3 { margin:10px 0 10px; font-family:var(--serif); font-weight:var(--serif-w); font-size:clamp(26px,5vw,32px); line-height:1.25; color:var(--burg); }
  .st p { margin:0 0 14px; color:var(--muted); font-size:17px; }
  .st .go { font-size:15px; font-weight:600; color:var(--burg); }

  .stats { display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--hair); }
  .stats div { padding:26px 6px; text-align:center; }
  .stats div + div { border-inline-start:1px solid var(--hair); }
  .stats b { display:block; font-family:var(--serif); font-weight:var(--serif-w); font-size:clamp(46px,11vw,80px); color:var(--burg); line-height:1; }
  .stats span { color:var(--muted); font-size:14px; letter-spacing:.04em; }

  .chesed { background:var(--burg); color:#fff; padding:56px 28px; border-radius:2px; }
  .chesed .eyebrow { color:var(--orange); } .chesed .eyebrow::before { background:var(--orange); }
  .chesed h2 { color:#fff; margin-bottom:18px; }
  .chesed p { max-width:46ch; color:#F1DDE1; margin:0 0 28px; }
  .chesed .btn { background:#fff; color:var(--burg); }

  footer { margin-top:96px; background:var(--sand); }
  footer .facade { height:280px; overflow:hidden; }
  footer .facade img { width:100%; height:100%; object-fit:cover; object-position:center 40%; filter:saturate(.9); }
  footer .wrap { display:flex; gap:28px; align-items:center; flex-wrap:wrap; padding-block:32px 110px; color:var(--muted); font-size:15px; }
  footer .logo { height:104px; }

  .wa { position:fixed; inset-inline-start:18px; bottom:calc(18px + env(safe-area-inset-bottom)); z-index:30; display:inline-flex; align-items:center; gap:10px; height:52px; padding:0 18px; border-radius:4px; background:var(--burg); color:#fff; font-weight:600; font-size:15px; box-shadow:0 10px 30px rgba(34,8,14,.22); }

  @media (min-width:960px) {
    nav ul { display:flex; }
    .hero .wrap { display:grid; grid-template-columns:1.1fr 1fr; gap:72px; align-items:end; }
    .hero-media { margin-top:0; aspect-ratio:4/5; }
    .wk { display:grid; grid-template-columns:1fr 1.25fr; gap:72px; }
    .moments { grid-template-columns:1.2fr 1fr 1fr; gap:18px; }
    .farb { display:grid; grid-template-columns:1fr 1.4fr; gap:64px; align-items:start; }
    .guests-wrap { display:grid; grid-template-columns:1fr 1.3fr; gap:64px; align-items:start; }
    .guests { margin-top:0; }
    .vids { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; align-items:center; }
    .svc-wrap { display:grid; grid-template-columns:1.25fr .75fr; gap:64px; align-items:start; }
    .svc-photo { position:sticky; top:96px; margin:0 !important; }
    .rabbi { grid-template-columns:.85fr 1.15fr; gap:72px; }
    #rabbi .rabbi { grid-template-columns:1.15fr .85fr; } #rabbi .slot-img { order:2; }
    .stories { grid-template-columns:repeat(3,1fr); }
    .st { padding:30px 28px 34px 0; border-bottom:0; }
    .st + .st { padding-inline-start:28px; border-inline-start:1px solid var(--hair); }
    .st:first-child { padding-inline-start:0; }
    .chesed { padding:80px; }
    .wa { inset-inline-start:28px; bottom:28px; }
  }
  @media (prefers-reduced-motion:reduce) { .rv { opacity:1; transform:none; transition:none; } .hero-media img { transform:none !important; } }

  /* ---- site additions over the v4 prototype ---- */
  .skip { position:absolute; inset-inline-start:-9999px; top:8px; z-index:50; background:var(--burg); color:#fff; padding:10px 16px; border-radius:4px; }
  .skip:focus { inset-inline-start:12px; }
  header .wrap { gap:16px; }
  nav a[aria-current="page"] { background-size:100% 1px; color:var(--burg); }
  .menu { position:relative; margin-inline-start:auto; }
  .menu summary { list-style:none; cursor:pointer; min-height:44px; display:flex; align-items:center; padding:0 14px; border:1px solid var(--hair); border-radius:4px; font-weight:600; font-size:15px; color:var(--burg); }
  .menu summary::-webkit-details-marker { display:none; }
  .menu ul { position:absolute; inset-inline-end:0; top:52px; min-width:220px; margin:0; padding:8px 0; list-style:none; background:var(--bg); border:1px solid var(--hair); border-radius:4px; box-shadow:0 14px 34px rgba(34,8,14,.14); }
  .menu li a { display:block; padding:12px 18px; font-size:17px; }
  .menu li a[aria-current="page"] { color:var(--burg); font-weight:600; }
  .hd-give { padding:0 18px; }
  .page-head { padding-block:56px 8px; }
  .page-head h1 { font-size:clamp(46px, 11vw, 92px); line-height:1.04; margin:14px 0 18px; }
  .lead { color:var(--muted); font-size:19px; max-width:52ch; margin:0; }
  .narrow { max-width:760px; }
  .prose p { margin:0 0 18px; max-width:60ch; }
  .small { font-size:14px; color:var(--muted); margin-top:30px; }
  .small a, .prose a, .foot a { border-bottom:1px solid currentColor; }
  .note { font-size:15px; color:var(--muted); margin:16px 0 0; }
  .tanya { margin:26px 0 0; font-size:16px; color:var(--muted); }
  .tanya a { color:var(--burg); border-bottom:1px solid; }
  .rebbe-text { max-width:760px; }
  .rebbe-text p { margin:0 0 18px; }
  .rebbe-text blockquote, .rabbi blockquote { margin:30px 0 26px; padding-inline-start:22px; border-inline-start:1px solid var(--orange); font-family:var(--serif); font-weight:var(--serif-w); font-size:clamp(22px,4.2vw,27px); line-height:1.55; color:var(--ink); }
  .stories .st { display:block; }
  .item .h a { color:inherit; }
  .foot { line-height:1.9; }
  .kv { display:flex; justify-content:space-between; gap:16px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--hair); }
  .kv span { color:var(--muted); font-size:15px; }
  .kv a, .kv b { font-family:var(--serif); font-weight:var(--serif-w); font-size:24px; color:var(--burg); }
  @media (min-width:960px) { .menu { display:none; } }
  @media (max-width:959px) { .hd-give { display:none; } }
