/* JEWISH 2026 design shell (PROMPT_0360). Layout/palette/components from the
   approved Claude Design 2026 staging. Self-hosted Nunito prepended (CSP font-src 'self').
   Used only on the 4 new surfaces: /, /cast, /music, /cast/<slug>. */

/* ---- self-hosted Nunito (replaces Google Fonts) ---- */
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-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:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-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:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/nunito/nunito-600-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/nunito/nunito-600-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/nunito/nunito-600-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:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/nunito/nunito-600-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:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/nunito/nunito-700-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/nunito/nunito-700-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/nunito/nunito-700-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:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/nunito/nunito-700-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:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/nunito/nunito-800-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/nunito/nunito-800-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/nunito/nunito-800-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:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/nunito/nunito-800-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:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/nunito/nunito-900-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/nunito/nunito-900-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/nunito/nunito-900-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:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/nunito/nunito-900-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;}

/* JEWISH, official site styles
   Cream, gold, marigold, warm red. Nunito only. Never dark. */

:root{
  --cream:#FFF9F2;
  --cream-deep:#FBEFE0;
  --ink:#2A2622;
  --ink-soft:#6B5A4D;
  --gold:#2E9B6B;
  --gold-ink:#1F7D54;
  --marigold:#FFC24D;
  --red:#E0392B;
  --red-deep:#C22A1E;
  --line:#EDE3D2;
  /* ---- typography + rhythm scale (PROMPT_0376): one scale for the whole site ---- */
  --display:clamp(46px,5.4vw,62px); /* home hero title only */
  --h1:30px;                        /* every internal-page H1 */
  --lede:15px;
  --label:12.5px;
  --name:14px;
  --meta:12px;
  --pad-page-top:22px;
  --section-gap:16px;
  --pad-page-bottom:96px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Nunito',sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;display:flex;flex-direction:column;
}
main{flex:1 0 auto}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:2px}
::selection{background:var(--marigold);color:var(--ink)}

/* PROMPT_0424 (T6 a11y): skip link + reduced-motion, palette-neutral */
.skip-link{position:absolute;left:8px;top:-48px;z-index:100;background:var(--red);color:var(--cream);padding:10px 16px;border-radius:0 0 8px 8px;font-weight:800;font-size:14px;text-decoration:none;transition:top .15s ease}
.skip-link:focus{top:0}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

.container{max-width:1100px;margin:0 auto;padding-left:28px;padding-right:28px}

.eyebrow{
  margin:0;
  font-size:var(--label);font-weight:800;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-ink);
}

.section-label{
  display:flex;align-items:center;gap:18px;
  margin:0;
  font-size:var(--label);font-weight:900;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-ink);
}
.section-label::after{content:"";height:1px;flex:1;background:var(--line)}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--cream);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;
  padding-top:16px;padding-bottom:16px;
}
.brand{
  display:inline-flex;align-items:center;gap:9px;
  font-size:17px;font-weight:900;letter-spacing:.24em;
  text-decoration:none;color:var(--ink);
}
.brand::after{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--red);flex:none;
}
.brand-logo{flex:none;width:40px;height:40px;display:block}
.site-nav,.footer-nav{display:flex;gap:26px}
.site-nav a,.footer-nav a{
  font-size:12px;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;color:var(--ink-soft);
  /* PROMPT_0424 (T6): >=24px tall tap target (WCAG 2.5.8); header height stays
     driven by the 40px brand logo, so this does not change the sticky-header size. */
  padding-top:6px;padding-bottom:4px;border-bottom:2px solid transparent;
}
.site-nav a:hover,.footer-nav a:hover{color:var(--red)}
.site-nav a[aria-current="page"]{color:var(--red);border-bottom-color:var(--marigold)}

/* ---------- buttons + character links ---------- */
.btn{
  display:inline-block;
  background:var(--red);color:var(--cream);
  font-size:13.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;
  padding:13px 30px;border-radius:999px;
}
.btn:hover{background:var(--red-deep)}

.char-link{
  color:inherit;font-weight:700;
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-decoration-color:#E3BF7C;
  text-underline-offset:3px;
}
.char-link:hover{color:var(--red);text-decoration-color:var(--red)}

/* ---------- home hero ---------- */
.hero{position:relative;overflow:hidden}
.hero-disc{
  position:absolute;top:-150px;right:-110px;
  width:440px;height:440px;border-radius:50%;
  background:var(--marigold);
}
.hero-ring{
  position:absolute;top:230px;right:270px;
  width:180px;height:180px;border-radius:50%;
  border:2px solid var(--gold);opacity:.45;
}
/* vertical padding is adaptive (PROMPT_0378): caps at the desktop value on tall
   windows (>=~1080px) and shrinks with vh on shorter ones, so the home hero never
   forces a vertical scrollbar down to ~750px-tall viewports. */
.hero-inner{position:relative;z-index:1;padding-top:clamp(30px,5.9vh,64px);padding-bottom:clamp(34px,6.7vh,72px)}
.hero-title{
  margin:10px 0 16px;
  font-size:var(--display);
  font-weight:900;letter-spacing:.06em;line-height:1;
}
.logline{margin:0 0 12px;max-width:640px;font-size:18px;line-height:1.55}
.logline-2{margin:0 0 22px;max-width:620px;font-size:16.5px;color:var(--ink-soft)}

/* ---------- tweak states (home) ---------- */
body[data-hero-motif="off"] .hero-disc,
body[data-hero-motif="off"] .hero-ring{display:none}
/* ---------- hero stat (12M+ plays and views) ---------- */
.hero-stat{margin:16px 0 0;font-size:15px;font-weight:900;color:var(--red)}

/* ---------- page heads ---------- */
/* page-head top + page-pad bottom are the page's vertical rhythm pair; both are
   adaptive (PROMPT_0378) so heroless pages (/cast) compress to fit short windows. */
.page-head{padding-top:clamp(12px,2vh,var(--pad-page-top))}
.page-title{margin:0 0 6px;font-size:var(--h1);font-weight:900;line-height:1.1}
.lede{margin:0;max-width:1000px;font-size:var(--lede);color:var(--ink-soft)}
/* PROMPT_0400: vh coeff 8.9vh->6.5vh so /cast fits Volodya's real 1463x688 maximized Chrome
   (175% scaling). Cap unchanged; on tall windows the sticky footer absorbs the reduction
   so >=1920x1080 looks identical. */
.page-pad{padding-bottom:clamp(40px,6.5vh,var(--pad-page-bottom))}

/* ---------- cast grid ---------- */
.cast-main{max-width:1640px}
/* PROMPT_0400: section gap shrinks on short windows (cap 16px reached by ~1067px tall, so
   >=1920x1080 keeps full 16px); helps /cast clear the 1463x688 fold with headroom. */
.cast-section{margin-top:clamp(8px,1.5vh,16px)}
.cast-grid{
  list-style:none;margin:4px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(12,1fr);
  gap:16px 14px;text-align:center;
}
.cast-grid.adults{grid-template-columns:repeat(9,1fr)}/* PROMPT_0426d: 9 adults (Felicia added) stay one row so /cast keeps its no-scroll fold */
.cast-thumb{
  display:flex;align-items:center;justify-content:center;
  width:72px;height:72px;border-radius:50%;overflow:hidden;
  margin:0 auto 5px;
  border:1px solid var(--line);
  text-decoration:none;
}
.cast-thumb img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.cast-thumb:hover{border-color:var(--marigold);box-shadow:0 0 0 3px rgba(255,194,77,.35)}
.cast-thumb.mono{
  background:var(--cream-deep);
  border:1px solid var(--gold);
  color:var(--gold-ink);
  font-size:19px;font-weight:800;letter-spacing:.08em;
}
.cast-name{font-size:var(--name);font-weight:800;line-height:1.2}
.cast-role{margin:2px 0 0;font-size:var(--meta);color:var(--ink-soft)}

/* ---------- bio pages ---------- */
.bio{padding-top:var(--pad-page-top);padding-bottom:var(--pad-page-bottom)}
.back-link{
  font-size:13px;font-weight:800;letter-spacing:.06em;
  text-decoration:none;color:var(--ink-soft);
}
.back-link:hover{color:var(--red)}
.bio-grid{
  display:grid;grid-template-columns:360px minmax(0,1fr);
  gap:60px;margin-top:30px;
}
.bio-portrait{margin:0;position:sticky;top:96px;align-self:start}
.bio-portrait img{border-radius:12px;border:1px solid var(--line)}

.monogram{
  position:relative;
  aspect-ratio:4/5;border-radius:12px;
  background:var(--cream-deep);
  border:1px solid var(--gold);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
}
.monogram::after{
  content:"";position:absolute;inset:10px;
  border:1px solid rgba(46,155,107,.45);border-radius:8px;
  pointer-events:none;
}
.monogram-star{color:var(--marigold);font-size:22px;line-height:1}
.monogram-letters{font-size:84px;font-weight:900;line-height:1;letter-spacing:.04em;color:var(--gold-ink)}
.monogram-word{font-size:11px;font-weight:800;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-soft)}

.bio-body h1{margin:8px 0 6px;font-size:var(--h1);font-weight:900;line-height:1.1}
.tagline{margin:6px 0 28px;font-size:19px;font-weight:600;font-style:italic;color:var(--red)}
.bio-text p{margin:0 0 18px;max-width:62ch}
.bio-text p:last-child{margin-bottom:0}

.key-numbers{
  margin-top:42px;
  background:var(--cream-deep);
  border:1px solid var(--line);border-radius:12px;
  padding:26px 30px;
}
.key-numbers h2,.related h2{
  margin:0 0 14px;
  font-size:12.5px;font-weight:900;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-ink);
}
.key-numbers ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.key-numbers li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.kn-title{font-weight:800}
.kn-title a{font-weight:800;text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:#E3BF7C;text-underline-offset:3px}
.kn-title a:hover{color:var(--red);text-decoration-color:var(--red)}
.kn-note{font-size:13.5px;color:var(--ink-soft)}

.related{margin-top:42px}
.related-strip{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:14px 32px}
.related-card{display:flex;align-items:center;gap:12px}
.related-thumb{
  display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;overflow:hidden;flex:none;
  border:1px solid var(--line);text-decoration:none;
}
.related-thumb img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.related-thumb.mono{background:var(--cream-deep);border-color:var(--gold);color:var(--gold-ink);font-size:14px;font-weight:800}
.related-name{font-size:var(--name);font-weight:800}
.related-role{margin:1px 0 0;font-size:var(--meta);color:var(--ink-soft)}

/* ---------- music page ---------- */
.album{
  display:grid;grid-template-columns:300px minmax(0,1fr);
  gap:48px;align-items:center;margin-top:48px;
}
.album-art{border-radius:12px;border:1px solid var(--line)}
.album-meta h2{margin:10px 0 12px;font-size:30px;font-weight:900;line-height:1.15}
.album-meta p{max-width:56ch}
.album-blurb{margin:0;color:var(--ink-soft)}
.album-stat{margin:18px 0 0;font-size:18px;font-weight:900;color:var(--red)}

.music-main{max-width:1640px}
.tracklist{margin-top:var(--section-gap)}
.tracklist ol{
  list-style:none;margin:14px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:column;grid-template-rows:repeat(4,1fr);
  column-gap:34px;min-height:calc(100vh - 396px);
}
.track{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto;
  grid-template-areas:"num main play" "num feat play";
  column-gap:10px;row-gap:1px;
  align-content:center;
  padding:9px 4px;
  border-bottom:1px solid var(--line);
  break-inside:avoid;
  scroll-margin-top:110px;
}
.track:target{background:var(--cream-deep)}
.track-num{grid-area:num;font-size:12px;font-weight:800;color:var(--gold-ink);font-variant-numeric:tabular-nums;padding-top:2px}
.track-main{grid-area:main;min-width:0}
.track-title{margin:0;font-size:var(--name);font-weight:800;line-height:1.2}
.track-title-link{color:inherit;text-decoration:none}
.track-title-link:hover{color:var(--red);text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:var(--red);text-underline-offset:3px}
.track-origin{margin:1px 0 0;font-size:var(--meta);color:var(--ink-soft)}
.track-feat{grid-area:feat;margin:1px 0 0;font-size:var(--meta);color:var(--ink-soft);text-align:left;max-width:none;line-height:1.3}
.track-play{grid-area:play;justify-self:end;align-self:center;display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;white-space:nowrap;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;color:var(--red);border:1px solid var(--line);border-radius:999px;padding:10px 18px}
.track-play:hover{background:var(--red);color:var(--cream);border-color:var(--red)}
.track-play[aria-expanded="true"]{background:var(--red);color:var(--cream);border-color:var(--red)}
.track-player{max-width:900px;margin:22px auto 6px;padding:0 4px}
.track-player-frame{position:relative;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--cream-deep)}
.track-player-frame iframe{width:100%;height:100%;border:0;display:block}
/* PROMPT_0381 (Volodya): close-X over the expanded player, top-right, keyboard-focusable */
.track-player-close{
  position:absolute;top:10px;right:10px;z-index:3;
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  padding:0;border-radius:999px;border:1px solid var(--line);
  background:rgba(255,249,242,.92);color:var(--ink);
  font-size:22px;line-height:1;font-weight:800;cursor:pointer;
  box-shadow:0 1px 5px rgba(42,38,34,.28);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
}
.track-player-close:hover{background:var(--red);color:var(--cream);border-color:var(--red)}
.track-player-close:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.track-player-link{display:inline-block;margin-top:10px;font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--gold-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:#E3BF7C;text-underline-offset:3px}
.track-player-link:hover{color:var(--red);text-decoration-color:var(--red)}
.tracklist-note{margin:16px 0 0;font-size:13px;color:var(--ink-soft)}
/* PROMPT_0402: /music/russian has a 2-line Russian lede (taller page-head than /music's
   1-line lede), so its tracklist fill reserves ~10px more than /music to clear the no-scroll
   fold at the tall 2560x1250 viewport where the adaptive clamps are already at their caps. */
.ru-songs .tracklist ol{min-height:calc(100vh - 406px)}
/* PROMPT_0404: "the voices behind these songs" credit block under the /music/russian tracklist */
.voices{margin:34px 0 0}
.voices-head{margin:0 0 2px;font-size:var(--label);font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink)}
.voices-sub{margin:0 0 16px;font-size:var(--meta);color:var(--ink-soft)}
.voices-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:22px}
.voice-card{width:240px}
.voice-photo{width:240px;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;border:1px solid var(--line);display:block}
.voice-photo.pos-elechka{object-position:50% 40%}
.voice-photo.pos-olga{object-position:50% 28%}
.voice-name{margin:8px 0 0;font-size:var(--name);font-weight:800}
.voice-role{margin:1px 0 0;font-size:var(--meta);color:var(--ink-soft)}
/* PROMPT_0402: permanent "Story & Reviews" link beside each title on /music/russian */
.track-story{font-weight:800;color:var(--gold-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:#E3BF7C;text-underline-offset:2px;white-space:nowrap}
.track-story:hover{color:var(--red);text-decoration-color:var(--red)}

/* ---------- russian song story pages (PROMPT_0402) ---------- */
/* terminal pages like the cast bios: scroll is allowed, content reads top-to-bottom. */
.song{padding-top:var(--pad-page-top);padding-bottom:var(--pad-page-bottom);max-width:760px}
.song-body{margin-top:24px}
.song-body .eyebrow{margin-bottom:8px}
.song-native{margin:2px 0 0;font-size:16px;font-weight:700;color:var(--ink-soft)}
.song-body h1{margin:6px 0 2px;font-size:var(--h1);font-weight:900;line-height:1.1}
.song-text{margin-top:20px}
.song-text p{margin:0 0 18px;max-width:68ch}
.song-text p:last-child{margin-bottom:0}
.song-embed{margin:30px 0 6px}
.song-embed-frame{position:relative;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--cream-deep)}
.song-embed-frame iframe{width:100%;height:100%;border:0;display:block}
.song-embed-link{display:inline-block;margin-top:10px;font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--gold-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:#E3BF7C;text-underline-offset:3px}
.song-embed-link:hover{color:var(--red);text-decoration-color:var(--red)}
.reviews{margin-top:42px}
.reviews h2{margin:0 0 6px;font-size:12.5px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink)}
.reviews-intro{margin:0 0 20px;font-size:13.5px;color:var(--ink-soft)}
.review-list{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.review{border-left:3px solid var(--line);padding:1px 0 1px 18px}
.review-en{margin:0;font-size:16px;line-height:1.6}
.review-ru{margin:6px 0 0;font-size:14px;font-style:italic;color:var(--ink-soft);line-height:1.55}
.review-by{margin:8px 0 0;font-size:12.5px;font-weight:800;letter-spacing:.03em;color:var(--gold-ink)}
.reviews-note{margin:24px 0 0;font-size:13px;color:var(--ink-soft)}

/* ---------- PROMPT_0408: lyrics (line by line) + click-to-load player on song pages ---------- */
.lyrics{margin:36px 0 0}
.lyrics h2{margin:0 0 6px;font-size:12.5px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink)}
.lyrics-intro{margin:0 0 18px;font-size:13.5px;color:var(--ink-soft)}
.lyric-verse{margin:0 0 18px}
.lyric-verse:last-child{margin-bottom:0}
.lyric-line{margin:0 0 7px}
.lyric-ru{margin:0;font-size:15.5px;line-height:1.35;font-weight:600;overflow-wrap:anywhere}
.lyric-en{margin:1px 0 0;font-size:13.5px;font-style:italic;color:var(--ink-soft);line-height:1.3;overflow-wrap:anywhere}
/* click-to-load player (youtube-nocookie facade + close-X, like /music) */
.song-player-facade{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;display:block}
.song-player-facade img{width:100%;height:100%;object-fit:cover;display:block}
.song-player-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:999px;background:rgba(224,57,43,.92);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;padding-left:5px;box-shadow:0 2px 12px rgba(42,38,34,.35)}
.song-player-facade:hover .song-player-btn{background:var(--red)}
.song-player-close{position:absolute;top:10px;right:10px;z-index:3;width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:999px;border:1px solid var(--line);background:rgba(255,249,242,.92);color:var(--ink);font-size:22px;line-height:1;font-weight:800;cursor:pointer;box-shadow:0 1px 5px rgba(42,38,34,.28)}
.song-player-close:hover{background:var(--red);color:var(--cream);border-color:var(--red)}
.song-player-close:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* ---------- about page (PROMPT_0411) ---------- */
.about{padding-top:var(--pad-page-top);padding-bottom:var(--pad-page-bottom);max-width:820px}
.about .song-text{margin-top:18px}
/* shared franchise definition (identical on jewishthemovie.com + jewishsong.org) */
.definition{margin:22px 0 0;padding:16px 20px;border-left:3px solid var(--marigold);background:var(--cream-deep);border-radius:0 10px 10px 0;font-size:16px;font-weight:700;color:var(--ink);max-width:68ch}
.about-links{margin:40px 0 0}
.about-links h2{margin:0 0 12px;font-size:12.5px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink)}
.about-links ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px}
.about-links a{font-weight:800;color:var(--ink);text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:#E3BF7C;text-underline-offset:3px}
.about-links a:hover{color:var(--red);text-decoration-color:var(--red)}

/* ---------- opening / first-scene page (PROMPT_0426) ---------- */
/* story page: scroll is allowed, reads top to bottom like the bios and song pages. */
.opening{padding-top:var(--pad-page-top);padding-bottom:var(--pad-page-bottom);max-width:860px}
.opening-figure{margin:20px 0 0}
.opening-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:var(--cream-deep);display:block}
.opening-caption{margin:10px 0 0;font-size:var(--meta);font-style:italic;color:var(--ink-soft)}
.opening-prose,.opening-dialogue{margin-top:26px}
.opening-prose p:first-child{font-size:18px;font-weight:700;color:var(--ink)}
/* PROMPT_0426c: audio of the recording Joseph is listening to (self-hosted HTML5 audio,
   our master). Cream card, simple native play control; palette unchanged. */
.opening-audio{margin:18px 0 0;padding:15px 18px;background:var(--cream-deep);border:1px solid var(--line);border-radius:12px}
.opening-audio-label{margin:0 0 10px;font-size:var(--label);font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.opening-player{width:100%;display:block}
.opening-player:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:8px}
.opening-audio-credit{margin:11px 0 0;font-size:var(--meta);color:var(--ink-soft);line-height:1.5}
/* PROMPT_0426e: Snapshot section (was /opening). Per-entry heading under the page H1. */
.snapshot-entry{margin-top:14px}
.snapshot-entry-title{margin:0;font-size:21px;font-weight:900;line-height:1.15;color:var(--ink)}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);background:var(--cream)}
.footer-inner{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;
  gap:24px;
  /* adaptive (PROMPT_0378): footer padding shrinks on short windows so it never
     tips a short page past the viewport; capped at the desktop value when tall.
     PROMPT_0381 (Volodya): tightened the cap so the footer block reads more compact
     and the /music content-to-footer gap closes; tracklist fill (min-height above)
     reclaims the freed height so the footer stays pinned to the viewport bottom. */
  /* PROMPT_0424: trimmed further so the new cross-site link line (T2) keeps the
     NOSCROLL pages (/cast @1463x688, /music @2560x1250) inside the fold. */
  padding-top:clamp(10px,2vh,22px);padding-bottom:clamp(12px,2.6vh,26px);
}
.footer-note{margin:7px 0 0;font-size:13.5px;color:var(--ink-soft)}
.footer-cross{margin:3px 0 0;font-size:12.5px}
.footer-cross a{color:var(--gold-ink);text-decoration:none;border-bottom:1px solid var(--line)}
.footer-cross a:hover{border-bottom-color:var(--gold-ink)}
.footer-right{text-align:right}
.footer-nav{justify-content:flex-end}
.footer-copy{margin:12px 0 0;font-size:13px;color:var(--ink-soft)}

/* ---------- responsive ---------- */
@media (max-width:1400px){
  .cast-main{max-width:1100px}
  .cast-grid{grid-template-columns:repeat(6,1fr);gap:24px 18px}
  .cast-grid.adults{grid-template-columns:repeat(4,1fr)}
  .music-main{max-width:1100px}
  .tracklist ol{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(6,auto);min-height:auto}
}
@media (max-width:980px){
  .bio-grid{grid-template-columns:300px minmax(0,1fr);gap:40px}
}
@media (max-width:760px){
  .cast-grid{grid-template-columns:repeat(4,1fr)}
  .cast-grid.adults{grid-template-columns:repeat(4,1fr)}
  .bio-grid{grid-template-columns:1fr}
  .bio-portrait{position:static;max-width:340px}
  .album{grid-template-columns:1fr;gap:28px}
  .album-art{max-width:300px}
  .footer-right{text-align:left}
  .footer-nav{justify-content:flex-start}
}
@media (max-width:680px){
  .tracklist ol{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:auto;column-gap:0}
}
@media (max-width:560px){
  .cast-grid{grid-template-columns:repeat(3,1fr);gap:18px 12px}
  .cast-grid.adults{grid-template-columns:repeat(3,1fr)}
  .cast-thumb{width:76px;height:76px}
  .hero-inner{padding-top:44px;padding-bottom:56px}
  /* PROMPT_0426: 6 nav items (added "The Opening") no longer fit one row at 390px;
     wrap both navs onto multiple lines so there is zero horizontal overflow. Mobile is
     exempt from the no-scroll rule, so the extra nav line is fine. Desktop is untouched. */
  .site-nav,.footer-nav{gap:14px 16px;flex-wrap:wrap}
  .header-inner{flex-wrap:wrap}
}
