/* Native language links work before JavaScript; the preference prompt is optional. */
.footer-language { position:relative; flex-shrink:0; text-align:start; }
.footer-language summary { display:flex; align-items:center; gap:8px; min-height:44px; cursor:pointer; list-style:none; font-size:12px; color:inherit; }
.footer-language summary::-webkit-details-marker { display:none; }
.footer-language summary .language-chevron { margin-inline-start:4px; }
.footer-language[open] .language-chevron { transform:rotate(180deg); }
.footer-bottom .footer-language-list { position:absolute; z-index:20; inset-inline-end:0; bottom:calc(100% + 8px); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; width:300px; max-width:calc(100vw - 48px); max-height:calc(100dvh - 88px); overflow-y:auto; padding:16px 20px; background:#f6f5f0; color:#202824; border:1px solid #d9dbd5; box-shadow:0 12px 28px #0002; }
.footer-bottom .footer-language-list a { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; font-size:13px; line-height:1.5; text-decoration:none; color:inherit; }
.footer-bottom .footer-language-list a:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-language-list a[aria-current] { font-weight:600; }
.immersive-page .footer-language-list { color:#eeece7; background:#141719; border-color:#ffffff29; }
.immersive-page .footer-language-list a { color:inherit; }
@media(max-width:760px) {
  .footer-bottom .footer-language-list { inset-inline:auto; inset-inline-start:0; }
}
.language-suggestion { position:fixed; z-index:110; inset:auto 20px 20px auto; display:flex; align-items:center; gap:16px; padding:12px 14px; max-width:calc(100% - 40px); background:#f7f6f1; color:#202824; border:1px solid #d9dbd5; box-shadow:0 8px 32px #0003; }
.language-suggestion a,.language-suggestion button { display:flex; align-items:center; min-height:44px; padding:0 4px; font:inherit; font-size:13px; line-height:1.4; color:inherit; }
.language-suggestion a { font-weight:500; text-decoration:underline; text-underline-offset:4px; }
.language-suggestion button { cursor:pointer; border:0; background:transparent; }
.language-suggestion .language-dismiss { justify-content:center; width:36px; font-size:24px; flex-shrink:0; }
.purchase-language-note { max-width:42ch; margin-top:10px; font-size:11px; line-height:1.5; color:#646965; }
.film-subtitles { display:flex; align-items:center; gap:7px; min-height:40px; font-size:11px; }
.film-subtitles select { min-width:0; max-width:130px; min-height:36px; padding:4px; font:inherit; color:inherit; background:#111314; border:1px solid #ffffff40; border-radius:0; }
video::cue { background:#080c0be0; color:#fff; font-size:18px; }
.film-caption-overlay { position:absolute; z-index:4; top:12%; inset-inline:6%; margin:auto; text-align:center; pointer-events:none; color:#fff; font-size:clamp(14px,1.6vw,22px); line-height:1.5; }
.film-caption-overlay span { display:inline-block; max-width:56ch; padding:4px 9px; background:#080c0be0; border-radius:3px; white-space:pre-line; overflow-wrap:anywhere; }
.film-caption-overlay[hidden] { display:none; }
html:not([lang="en"]) :is(h1,h2,h3,p,button,a,summary,figcaption) { overflow-wrap:break-word; }
html:is([lang^="zh"],[lang="ja"],[lang="ko"],[lang="ar"]) body :is(h1,h2,h3,.chapter-kicker,.zen-section-label,.dialogue-label,.eyebrow,.dialogue-turn>span) { letter-spacing:normal; }
html[lang="ko"] body { word-break:keep-all; }
html[dir="rtl"] body :is(.hero,.story-opening-inner,.home-invitation,.purchase-summary) { text-align:start; }
html[dir="rtl"] .first-week-dialogue { border-left:0; border-inline-start:1px solid #bec4b8; padding-inline:clamp(24px,4vw,64px) 0; }
html[dir="rtl"] .preorder-price, html[dir="rtl"] input[type="email"], html[dir="rtl"] a[href^="mailto:"] { direction:ltr; unicode-bidi:isolate; }
html[dir="rtl"] .story-principles-list { margin-left:0; margin-inline-start:auto; }
html[dir="rtl"] .story-principles::after { transform:scaleX(-1); }
html[dir="rtl"] .hero-visual::after { transform:scaleX(-1); }
html[dir="rtl"] .companion-portrait { inset-inline:43% 0; }
html[dir="rtl"] .companion-portrait img { mask-image:linear-gradient(270deg,transparent,#000 20%); }
html[dir="rtl"] .hero-copy { margin-inline:0 auto; }
html[dir="rtl"] body :is(.hero-lead,.first-week-copy>p,.story-principle-body>p) { line-height:1.75; }
@media(max-width:600px) {
  video::cue { font-size:14px; }
  .language-suggestion { inset-inline:12px; bottom:12px; max-width:none; gap:10px; }
  .language-suggestion a { flex:1; }
  .language-suggestion a,.language-suggestion button { font-size:12px; }
  body.home-page .home-film-frame .film-controls, body.story-framed-page .story-film-frame .film-controls { gap:12px; flex-wrap:wrap; height:auto; }
  body.home-page .home-film-frame .film-player { grid-template-rows:minmax(0,1fr) auto; }
  .film-subtitles { gap:4px; font-size:10px; }
  .film-subtitles select { max-width:90px; }
  html[dir="rtl"] .companion-portrait { inset:0; }
}
@media(max-width:360px) and (max-height:700px) {
  body.story-framed-page .story-principles,
  body.home-page .first-week { height:auto; min-height:100dvh; }
}
@media(max-height:650px) and (min-aspect-ratio:1/1) {
  html:not([lang="en"]) body.home-page .dialogue-turn>p { font-size:16px; max-width:none; }
  html:not([lang="en"]) body.home-page .dialogue-turn { margin-bottom:12px; }
  html:not([lang="en"]) body.home-page .dialogue-turn>span { margin-bottom:4px; }
  html:not([lang="en"]) body.home-page .dialogue-label { margin-bottom:12px; }
  .purchase-language-note { margin-top:5px; font-size:10px; line-height:1.4; }
}
