
  :root{
    --dusk-deep:#271519;
    --dusk-mid:#4a2b2c;
    --dusk-warm:#f3a659;
    --dusk-glow:#ffd9a0;
    --aurora-green:#bcd9a0;
    --aurora-violet:#d6a5c9;
    --ember:#e2692f;
    --ember-light:#f6a35c;
    --wool-cream:#f7efdd;
    --wool-cream-dim:#efe3c9;
    --ink:#241a13;
    --ink-soft:#4a3c2c;
    --gold-thread:#caa25e;
    --gold-thread-light:#e6c789;
    --shadow-deep: 0 20px 60px rgba(10,6,20,.45);
    --ease: cubic-bezier(.22,.68,0,1);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }

  body{
    margin:0;
    background:var(--dusk-deep);
    color:var(--wool-cream);
    font-family:'Nunito',sans-serif;
    font-size:16px;
    line-height:1.6;
    overflow-x:hidden;
  }

  h1,h2,h3,.display{
    font-family:'Fraunces',serif;
    font-weight:600;
    letter-spacing:.01em;
    margin:0 0 .4em;
  }

  img{max-width:100%;display:block;}
  a{color:inherit;}

  .skip-link{
    position:absolute; left:-999px; top:0; background:var(--gold-thread); color:var(--ink);
    padding:.8em 1.2em; z-index:999; border-radius:0 0 8px 0; font-weight:700;
  }
  .skip-link:focus{left:0;}

  :focus-visible{outline:3px solid var(--gold-thread-light); outline-offset:3px;}

  /* ---------- GRAIN / FILM TEXTURE ---------- */
  .grain{
    position:fixed; inset:0; z-index:300; pointer-events:none; opacity:.045; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }

  /* ---------- ENTRY GATE ---------- */
  #entryGate{
    position:fixed; inset:0; z-index:600; display:flex; align-items:center; justify-content:center;
    padding:1.5em; background:radial-gradient(ellipse 90% 70% at 50% 30%, #3a2228, #12080a 85%);
    transition:opacity .5s var(--ease), visibility 0s;
  }
  #entryGate.gate-hidden{ opacity:0; visibility:hidden; pointer-events:none; transition:opacity .5s var(--ease), visibility 0s .5s; }
  body.gate-active{ overflow:hidden; }
  .gate-card{
    max-width:460px; width:100%; text-align:center; padding:2.4em 2.2em 2em;
    background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.16); border-top:3px dashed rgba(230,199,137,.4);
    border-radius:22px; backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    box-shadow:0 24px 70px rgba(0,0,0,.55);
  }
  .gate-card img{ width:64px; margin:0 auto 1em; opacity:.95; }
  .gate-card h2{ font-size:1.5rem; margin-bottom:.5em; }
  .gate-card .lede{ margin:0 auto 1.4em; font-size:.92rem; }
  .gate-terms-box{
    text-align:left; font-size:.8rem; color:var(--wool-cream-dim); background:rgba(0,0,0,.2);
    border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:1em 1.1em; max-height:110px; overflow-y:auto; margin-bottom:1.3em;
  }
  .gate-terms-box p{ margin:0 0 .6em; }
  .gate-terms-box p:last-child{ margin:0; }
  .gate-terms-box a{ color:var(--gold-thread-light); font-weight:700; }
  .gate-check{
    display:flex; align-items:flex-start; gap:.6em; text-align:left; font-size:.86rem; color:var(--wool-cream);
    margin-bottom:1.1em; cursor:pointer;
  }
  .gate-check input{ margin-top:.2em; width:16px; height:16px; accent-color:var(--gold-thread); flex:none; }
  .gate-email-row{ margin-bottom:1.3em; text-align:left; }
  .gate-email-row label{ display:block; font-size:.78rem; color:var(--wool-cream-dim); margin-bottom:.4em; }
  .gate-email-row input{
    width:100%; padding:.75em .9em; border-radius:10px; border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.06); color:var(--wool-cream); font:inherit; font-size:.92rem;
  }
  .gate-email-row input::placeholder{ color:rgba(247,239,221,.4); }
  .gate-submit{
    width:100%; padding:.9em; border:none; border-radius:999px; background:var(--gold-thread);
    color:var(--ink); font-weight:800; font-size:1rem; letter-spacing:.02em; cursor:pointer;
    transition:transform .2s var(--ease), opacity .2s; opacity:.5; pointer-events:none;
  }
  .gate-submit.ready{ opacity:1; pointer-events:auto; }
  .gate-submit.ready:hover{ transform:translateY(-2px); }
  .gate-note{ font-size:.72rem; color:var(--wool-cream-dim); margin-top:1em; opacity:.75; }
  @media (prefers-reduced-motion:reduce){ #entryGate{ transition:none; } }

  /* ---------- INTRO CURTAIN ---------- */
  #introCurtain{ position:fixed; inset:0; z-index:500; display:flex; }
  #introCurtain .ic-panel{
    flex:1; overflow:hidden; background:#3a2228;
    box-shadow:inset -14px 0 34px rgba(0,0,0,.45);
    transition:transform 1.15s var(--ease);
    position:relative;
  }
  #introCurtain .ic-panel img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center;
    filter:saturate(.94) brightness(.85);
  }
  #introCurtain .ic-panel::before{
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
    box-shadow:inset 0 0 60px rgba(20,10,14,.55);
  }
  #introCurtain .ic-panel::after{ content:""; position:absolute; top:0; bottom:0; width:12px; background:linear-gradient(90deg,var(--gold-thread-light),var(--gold-thread)); z-index:2; }
  #introCurtain .ic-panel.left::after{ right:0; }
  #introCurtain .ic-panel.right::after{ left:0; }
  #introCurtain .ic-mark{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:min(200px,40vw); opacity:.95; filter:drop-shadow(0 4px 14px rgba(0,0,0,.5)); z-index:2; transition:opacity .35s; }
  body.curtain-open #introCurtain .ic-mark{ opacity:0; }
  body.curtain-open #introCurtain .ic-panel.left{ transform:translateX(-102%); }
  body.curtain-open #introCurtain .ic-panel.right{ transform:translateX(102%); }
  body.curtain-open #introCurtain{ visibility:hidden; transition:visibility 0s 1.2s; }
  @media (prefers-reduced-motion:reduce){ #introCurtain{ display:none; } }

  /* ---------- SCROLL THREAD RAIL ---------- */
  .scroll-thread{ position:fixed; right:20px; top:50%; transform:translateY(-50%); z-index:150; height:min(48vh,360px); }
  .scroll-thread .rail{ position:relative; width:2px; height:100%; margin:0 auto; background:rgba(255,255,255,.15); border-radius:2px; }
  .scroll-thread .rail-fill{ position:absolute; left:0; top:0; width:100%; height:0%; background:linear-gradient(180deg,var(--gold-thread-light),var(--gold-thread)); border-radius:2px; }
  .scroll-thread .pins{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:space-between; }
  .scroll-thread .pin{
    width:9px; height:9px; border-radius:50%; background:var(--dusk-deep); border:2px solid rgba(255,255,255,.35);
    margin-left:-3.5px; transition:background .3s, border-color .3s, transform .3s, box-shadow .3s; cursor:pointer;
  }
  .scroll-thread .pin.active{ background:var(--gold-thread-light); border-color:var(--gold-thread-light); transform:scale(1.35); box-shadow:0 0 10px var(--gold-thread-light); }
  @media (max-width:960px){ .scroll-thread{ display:none; } }

  /* ---------- SECTION PHOTO BACKDROPS ---------- */
  .scene{ position:relative; isolation:isolate; overflow:hidden; }
  .scene-bg{ position:absolute; inset:0; z-index:-2; }
  .scene-bg img{
    position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover;
    animation:kenburns 28s ease-in-out infinite alternate; filter:saturate(.75);
  }
  @keyframes kenburns{ from{transform:scale(1) translate(0,0);} to{transform:scale(1.1) translate(-1.5%,-1%);} }
  .scene-bg .tint{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(38,22,24,.86), rgba(38,22,24,.90) 45%, rgba(38,22,24,.96)); }
  @media (prefers-reduced-motion:reduce){ .scene-bg img{ animation:none; } }

  /* ---------- NUMERAL WATERMARK ---------- */
  .numeral-mark{
    position:absolute; top:-.35em; right:0; font-family:'Fraunces',serif; font-size:clamp(6rem,15vw,12rem);
    color:rgba(255,255,255,.045); font-weight:600; line-height:1; z-index:0; pointer-events:none; user-select:none;
  }
  .scene.parchment .numeral-mark{ color:rgba(40,25,10,.07); }

  /* ---------- DROP CAP ---------- */
  .drop-cap::first-letter{
    font-family:'Fraunces',serif; font-size:3.5em; float:left; line-height:.78; padding:.05em .1em 0 0;
    color:var(--gold-thread-light); font-weight:700;
  }

  /* ---------- GLASS ---------- */
  .glass{
    background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.14);
    backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    box-shadow:0 14px 44px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08);
  }

  /* ---------- HILL DIVIDER ---------- */
  .hill-divider{ position:relative; z-index:3; line-height:0; margin:-1px 0; }
  .hill-divider svg{ width:100%; height:clamp(40px,7vw,90px); display:block; }

  /* ---------- EQUALIZER ---------- */
  .eq{ position:absolute; left:6px; bottom:6px; display:flex; align-items:flex-end; gap:2px; height:16px; opacity:0; transition:opacity .3s; z-index:2; }
  .player-card.playing .eq{ opacity:1; }
  .eq span{ width:3px; background:var(--dusk-glow); animation:eqBounce 1s ease-in-out infinite; border-radius:2px; }
  .eq span:nth-child(2){ animation-delay:.15s; } .eq span:nth-child(3){ animation-delay:.3s; } .eq span:nth-child(4){ animation-delay:.45s; }
  @keyframes eqBounce{ 0%,100%{ height:4px; } 50%{ height:15px; } }

  .thread-divider{
    display:flex; align-items:center; justify-content:center; gap:.7em;
    color:var(--gold-thread); font-size:1.1rem; opacity:.85; margin:1.6em 0;
    letter-spacing:.3em;
  }
  .thread-divider::before, .thread-divider::after{
    content:""; height:1px; width:44px; background:linear-gradient(90deg,transparent,var(--gold-thread),transparent);
  }

  /* ---------- NAV ---------- */
  .site-nav{
    position:fixed; top:0; left:0; right:0; z-index:200;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.1em clamp(1.2em,4vw,3em);
    background:transparent;
    transition:background .5s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
  }
  .site-nav.scrolled{
    background:rgba(38,22,24,.85);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:.7em clamp(1.2em,4vw,3em);
    box-shadow:0 6px 24px rgba(0,0,0,.25);
  }
  .brand{display:flex;align-items:center;gap:.6em;font-family:'Fraunces',serif;font-weight:700;color:var(--wool-cream);text-decoration:none;font-size:1.05rem;letter-spacing:.02em;}
  .brand img{height:28px;width:auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));}
  .nav-links{display:flex;gap:1.6em;list-style:none;margin:0;padding:0;align-items:center;}
  .nav-links a{
    text-decoration:none;font-weight:700;font-size:.92rem;letter-spacing:.03em;
    color:var(--wool-cream); opacity:.88; position:relative; padding:.2em 0;
  }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:-3px; height:2px; width:0%;
    background:var(--gold-thread-light); transition:width .3s var(--ease);
  }
  .nav-links a:hover::after, .nav-links a:focus-visible::after{width:100%;}
  .nav-links a.active{opacity:1; color:var(--gold-thread-light);}
  .nav-links a.active::after{width:100%;}
  .nav-links a.shop-link{
    background:var(--gold-thread); color:var(--ink); padding:.5em 1em; border-radius:999px; opacity:1;
  }
  .nav-links a.shop-link::after{display:none;}
  .nav-toggle{display:none;background:none;border:none;color:var(--wool-cream);font-size:1.6rem;cursor:pointer;padding:.2em .3em;}

  @media (max-width:880px){
    .nav-links{
      position:fixed; inset:0 0 0 auto; width:min(78vw,320px); height:100vh;
      background:linear-gradient(160deg,var(--dusk-mid),#1a0f11);
      flex-direction:column; justify-content:center; align-items:flex-start; gap:1.4em;
      padding:2em 2.2em; transform:translateX(100%); transition:transform .4s var(--ease);
      box-shadow:-10px 0 40px rgba(0,0,0,.4);
    }
    .nav-links.open{transform:translateX(0);}
    .nav-toggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative; height:100vh; height:100svh; min-height:420px; max-height:1100px; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(180deg,#180f10 0%, var(--dusk-deep) 45%, #3a2228 100%);
  }
  .hero .sky-glow{
    position:absolute; inset:0;
    background:
      radial-gradient(ellipse 70% 40% at 50% 8%, rgba(214,165,201,.22), transparent 60%),
      radial-gradient(ellipse 60% 30% at 20% 15%, rgba(255,190,120,.20), transparent 60%);
    animation:driftGlow 22s ease-in-out infinite alternate;
  }
  @keyframes driftGlow{ from{transform:translateX(-2%) scale(1);} to{transform:translateX(2%) scale(1.04);} }

  .aurora{position:absolute; inset:0 0 auto 0; height:55%; pointer-events:none; mix-blend-mode:screen; opacity:.75;}
  .aurora span{
    position:absolute; top:0; height:100%; width:140%; left:-20%;
    background:linear-gradient(180deg, transparent, var(--aurora-green) 35%, transparent 70%);
    filter:blur(18px); opacity:.35; border-radius:50%;
    animation:auroraSway 16s ease-in-out infinite;
    transform-origin:center top;
  }
  .aurora span:nth-child(2){background:linear-gradient(180deg, transparent, var(--aurora-violet) 40%, transparent 75%); animation-duration:21s; animation-delay:-4s; opacity:.28;}
  .aurora span:nth-child(3){background:linear-gradient(180deg, transparent, var(--dusk-glow) 30%, transparent 65%); animation-duration:26s; animation-delay:-9s; opacity:.18;}
  @keyframes auroraSway{
    0%,100%{transform:translateX(-4%) skewX(-4deg) scaleY(1);}
    50%{transform:translateX(4%) skewX(3deg) scaleY(1.08);}
  }

  .stars{position:absolute; inset:0 0 45% 0; pointer-events:none;}
  .stars i{
    position:absolute; width:2px; height:2px; background:var(--wool-cream); border-radius:50%;
    opacity:.6; animation:twinkle 3.4s ease-in-out infinite;
  }
  @keyframes twinkle{0%,100%{opacity:.15;}50%{opacity:.9;}}

  .hero .village-wrap{
    position:absolute; left:0; right:0; bottom:0; height:72%; overflow:hidden;
  }
  .hero .village-wrap img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 70%;
    filter:saturate(.85) brightness(.62) contrast(1.05);
  }
  .hero .village-tint{
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(40,20,18,.05) 0%, rgba(40,20,18,.45) 60%, rgba(26,12,12,.68) 100%),
      linear-gradient(0deg, rgba(255,170,90,.30), transparent 45%);
  }
  .window-lights span{
    position:absolute; width:5px; height:5px; border-radius:50%;
    background:var(--dusk-glow);
    box-shadow:0 0 8px 3px rgba(255,214,150,.85);
    animation:flicker 3.2s ease-in-out infinite;
  }
  @keyframes flicker{0%,100%{opacity:.55;}50%{opacity:1;}}

  .birta-figure{
    position:absolute; bottom:6%; left:50%; transform:translateX(-165%);
    width:clamp(90px,11vw,150px); border-radius:50%; overflow:hidden;
    border:3px solid var(--gold-thread-light); box-shadow:var(--shadow-deep);
    opacity:0; animation:birtaIn 1.4s var(--ease) 1.6s forwards, birtaBob 5s ease-in-out 3s infinite;
  }
  .birta-figure img{width:100%;height:100%;object-fit:cover;}
  @keyframes birtaIn{ to{opacity:1;} }
  @keyframes birtaBob{ 0%,100%{transform:translateX(-165%) translateY(0);} 50%{transform:translateX(-165%) translateY(-8px);} }

  @media (max-width:480px), (max-height:760px){
    .birta-figure{ width:64px; bottom:4%; }
    .hero-content{ gap:.5em; padding-bottom:5vh; }
    .title-lockup{ width:min(400px,80vw); }
  }
  .hero-content{
    position:relative; z-index:5; text-align:center; padding:0 1.2em;
    display:flex; flex-direction:column; align-items:center; gap:.9em; width:100%;
    transform:translateY(14%);
  }
  @media (max-height:640px){ .hero-content{ transform:translateY(4%); gap:.5em; } }
  .title-lockup{
    width:min(560px,82vw);
    filter:drop-shadow(0 6px 22px rgba(0,0,0,.55));
    clip-path:inset(0 100% 0 0);
    animation:stitchIn 1.8s var(--ease) .3s forwards;
  }
  @keyframes stitchIn{ to{clip-path:inset(0 0% 0 0);} }
  .hero-tagline{
    opacity:0; animation:fadeUp 1s var(--ease) 1.9s forwards;
    color:var(--wool-cream); font-size:clamp(.95rem,1.6vw,1.15rem); letter-spacing:.05em;
    text-transform:uppercase; font-weight:700;
  }
  @keyframes fadeUp{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }

  .cta-enter{
    opacity:0; animation:fadeUp 1s var(--ease) 2.3s forwards;
    display:inline-flex; align-items:center; gap:.5em; margin-top:.4em;
    background:rgba(247,239,221,.1); border:1.5px solid var(--gold-thread-light);
    color:var(--wool-cream); padding:.75em 1.6em; border-radius:999px; text-decoration:none;
    font-weight:700; letter-spacing:.03em; backdrop-filter:blur(4px);
    transition:background .3s, transform .3s var(--ease);
  }
  .cta-enter:hover, .cta-enter:focus-visible{background:rgba(247,239,221,.22); transform:translateY(-3px);}
  .cta-enter .chev{display:inline-block; animation:bob 1.8s ease-in-out infinite;}
  @keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}

  /* ---------- GENERIC SCENE ---------- */
  .scene{ position:relative; padding:clamp(4em,9vw,7em) clamp(1.2em,5vw,4em); }
  .scene-inner{max-width:1180px;margin:0 auto;position:relative;z-index:1;}
  .scene.dark{background:linear-gradient(180deg,#3a2228,var(--dusk-deep));}
  .eyebrow{
    color:var(--gold-thread-light); text-transform:uppercase; letter-spacing:.22em; font-weight:800;
    font-size:.78rem; margin-bottom:.6em; display:block;
  }
  .scene h2{font-size:clamp(1.8rem,3.6vw,2.6rem);}
  .lede{max-width:64ch; color:var(--wool-cream-dim); font-size:1.05rem;}

  .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
  .reveal.in-view{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none;} }

  /* ---------- OUR WORLD ---------- */
  .lore-block{background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.14); border-top:3px dashed rgba(230,199,137,.4); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); box-shadow:0 14px 44px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08); border-radius:20px; padding:2em 2.2em; margin:1.6em 0 2.4em;}
  .lore-block p{margin:0 0 1em; color:var(--wool-cream-dim);}
  .lore-block p:last-child{margin:0;}

  .room-pills{display:flex; flex-wrap:wrap; gap:.8em; margin:2em 0 3em;}
  .room-pills a{
    text-decoration:none; padding:1.1em 1.4em; border-radius:16px; background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    box-shadow:0 14px 34px rgba(0,0,0,.3); flex:1 1 220px; transition:transform .3s var(--ease), background .3s, box-shadow .3s;
  }
  .room-pills a:hover, .room-pills a:focus-visible{transform:translateY(-6px); background:rgba(255,255,255,.1); box-shadow:0 20px 46px rgba(0,0,0,.4), 0 0 0 1px rgba(230,199,137,.35);}
  .room-pills strong{display:block; font-family:'Fraunces',serif; font-size:1.05rem; margin-bottom:.2em; color:var(--wool-cream);}
  .room-pills span{color:var(--wool-cream-dim); font-size:.9rem;}

  .region-grid{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1.1em; margin-top:1em;
  }
  .region-card{
    position:relative; border-radius:16px; overflow:hidden; aspect-ratio:4/5; text-decoration:none;
    box-shadow:var(--shadow-deep); isolation:isolate; transition:transform .2s ease-out, box-shadow .3s;
    transform-style:preserve-3d; will-change:transform;
  }
  .region-card:hover, .region-card:focus-visible{ box-shadow:0 24px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(230,199,137,.3); }
  .region-card img{width:100%;height:100%;object-fit:cover; transition:transform .6s var(--ease); filter:brightness(.78) saturate(.95);}
  .region-card:hover img, .region-card:focus-visible img{transform:scale(1.08);}
  .region-card::after{
    content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(10,6,18,.9) 100%);
  }
  .region-card .r-label{position:absolute; left:.9em; right:.9em; bottom:.8em; z-index:2;}
  .region-card .r-label b{display:block; font-family:'Fraunces',serif; font-size:1.02rem; color:var(--wool-cream);}
  .region-card .r-label span{font-size:.78rem; color:var(--wool-cream-dim);}

  /* ---------- THEATER ---------- */
  .theater-frame{ position:relative; padding:18% 0; }
  .theater-wrap{
    position:relative; aspect-ratio:16/9; background:transparent;
  }
  .screen-inner{
    position:absolute; inset:0; border-radius:22px; overflow:hidden; box-shadow:var(--shadow-deep);
    background:#000; z-index:1;
  }
  .screen-inner .backdrop{
    position:absolute; inset:0;
    background:radial-gradient(ellipse 80% 70% at 50% 45%, #2a2018, #08060a 85%);
  }
  .screen-inner .backdrop img{width:100%;height:100%;object-fit:cover; filter:brightness(.16) saturate(.25) blur(10px); opacity:.7;}
  .screen-inner .backdrop::after{
    content:""; position:absolute; inset:0;
    background:radial-gradient(ellipse 55% 45% at 50% 40%, rgba(255,214,150,.14), transparent 70%);
  }
  .curtain{
    position:absolute; left:0; right:0; top:-30%; bottom:-30%; display:flex; z-index:3;
    filter:drop-shadow(0 25px 50px rgba(0,0,0,.55));
  }
  @media (max-width:640px){ .curtain{ top:-18%; bottom:-18%; } .theater-frame{ padding:11% 0; } }
  .curtain .panel{
    flex:1; overflow:hidden; background:#3a2228;
    box-shadow:inset -14px 0 34px rgba(0,0,0,.45);
    transition:transform 1.1s var(--ease);
    position:relative;
  }
  .curtain .panel img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%;
    filter:saturate(.94) brightness(.92);
  }
  .curtain .panel::before{
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
    box-shadow:inset 0 0 60px rgba(20,10,14,.5);
  }
  .curtain .panel::after{
    content:""; position:absolute; top:0; bottom:0; width:10px; z-index:2;
    background:linear-gradient(90deg,var(--gold-thread-light),var(--gold-thread));
  }
  .curtain .panel.left::after{right:0;}
  .curtain .panel.right::after{left:0;}
  .theater-wrap.open .curtain .panel.left{transform:translateX(-102%);}
  .theater-wrap.open .curtain .panel.right{transform:translateX(102%);}
  .curtain-btn{
    position:absolute; z-index:4; top:50%; left:50%; transform:translate(-50%,-50%);
    background:var(--gold-thread); color:var(--ink); border:none; border-radius:999px;
    padding:1em 1.8em; font-weight:800; font-size:1rem; cursor:pointer; letter-spacing:.02em;
    box-shadow:0 10px 30px rgba(0,0,0,.4); transition:transform .25s var(--ease);
  }
  .curtain-btn:hover{transform:translate(-50%,-50%) scale(1.05);}
  .theater-wrap.open .curtain-btn{display:none;}
  .screen-inner iframe{position:absolute; inset:0; width:100%; height:100%; border:0; z-index:2;}

  .theater-meta{display:flex; flex-wrap:wrap; gap:1.4em; align-items:flex-start; margin-top:1.6em;}
  .theater-meta .badge{
    background:var(--ember); color:#fff; font-weight:800; font-size:.72rem; letter-spacing:.1em;
    padding:.35em .8em; border-radius:999px; text-transform:uppercase;
  }
  .bird{position:relative; width:34px; height:26px; display:inline-block; vertical-align:middle; margin-right:.5em;}
  .bird svg{width:100%;height:100%;}
  .bird.land{animation:birdLand 1.1s var(--ease) forwards;}
  @keyframes birdLand{0%{transform:translateY(-30px) rotate(-8deg); opacity:0;}100%{transform:translateY(0) rotate(0); opacity:1;}}

  .more-link{
    display:inline-flex; align-items:center; gap:.4em; margin-top:1.4em; text-decoration:none;
    font-weight:800; color:var(--gold-thread-light); border-bottom:2px solid transparent; transition:border-color .3s;
  }
  .more-link:hover, .more-link:focus-visible{border-color:var(--gold-thread-light);}

  /* ---------- FIRESIDE ---------- */
  .scene.ember{
    background:
      radial-gradient(ellipse 70% 55% at 50% 115%, rgba(226,105,47,.5), transparent 60%),
      radial-gradient(ellipse 50% 40% at 15% -10%, rgba(230,180,140,.16), transparent 60%),
      repeating-linear-gradient(45deg, rgba(255,255,255,.025) 0 6px, transparent 6px 14px),
      linear-gradient(180deg,#3a2228,var(--dusk-deep));
    position:relative; overflow:hidden;
  }
  .embers span{
    position:absolute; bottom:-10px; width:5px; height:5px; border-radius:50%; background:var(--ember-light);
    opacity:.7; filter:blur(.3px); animation:riseEmber linear infinite;
  }
  @keyframes riseEmber{ to{ transform:translateY(-70vh) translateX(20px); opacity:0; } }

  .fireside-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:2.4em; align-items:start; margin-top:1.6em;}
  @media (max-width:840px){ .fireside-grid{grid-template-columns:1fr;} }

  .player-card{
    background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.16); border-radius:22px;
    padding:1.8em; box-shadow:0 20px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); position:relative;
  }
  .player-top{display:flex; gap:1.1em; align-items:center;}
  .album-art{width:86px;height:86px;border-radius:14px;overflow:hidden;flex:none; box-shadow:0 8px 20px rgba(0,0,0,.4); position:relative;}
  .album-art img{width:100%;height:100%;object-fit:cover;}
  .now-playing b{display:block; font-family:'Fraunces',serif; font-size:1.1rem;}
  .now-playing span{color:var(--wool-cream-dim); font-size:.85rem;}
  .player-controls{display:flex; align-items:center; gap:1em; margin-top:1.2em;}
  .play-btn{
    width:52px;height:52px;border-radius:50%; border:none; background:var(--ember);
    color:#fff; font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 18px rgba(226,105,47,.5); transition:transform .2s var(--ease);
  }
  .play-btn:hover{transform:scale(1.07);}
  .seek{flex:1; accent-color:var(--ember-light); height:4px;}
  .time{font-size:.78rem; color:var(--wool-cream-dim); min-width:70px; text-align:right;}

  .track-list{list-style:none; margin:1.4em 0 0; padding:0; display:grid; gap:.5em;}
  .track-list button{
    width:100%; display:flex; align-items:center; gap:.8em; background:none; border:1px solid transparent;
    color:var(--wool-cream); padding:.55em .7em; border-radius:10px; cursor:pointer; font:inherit; text-align:left;
    transition:background .25s;
  }
  .track-list button:hover, .track-list button:focus-visible{background:rgba(255,255,255,.07);}
  .track-list button.active{background:rgba(226,105,47,.18); border-color:rgba(226,105,47,.4);}
  .track-list img{width:38px;height:38px;border-radius:8px;object-fit:cover;flex:none;}
  .track-list small{display:block; color:var(--wool-cream-dim); font-weight:400;}

  .festival-card{
    background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.16); border-radius:22px; padding:1.8em;
    box-shadow:0 20px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  }
  .festival-card img{border-radius:14px; margin-bottom:1em;}
  .load-embed-btn{
    background:var(--gold-thread); color:var(--ink); border:none; border-radius:999px; padding:.8em 1.4em;
    font-weight:800; cursor:pointer;
  }
  .festival-card iframe{border-radius:14px; width:100%; border:0;}

  /* ---------- LIBRARY ---------- */
  .scene.parchment{background:linear-gradient(180deg,var(--wool-cream),var(--wool-cream-dim)); color:var(--ink);}
  .scene.parchment .eyebrow{color:#8a6a2f;}
  .scene.parchment .lede{color:var(--ink-soft);}
  .book{
    display:grid; grid-template-columns:.85fr 1.15fr; gap:0; margin-top:1.8em; border-radius:18px; overflow:hidden;
    box-shadow:0 24px 50px rgba(70,50,20,.18); background:#fffaf0;
  }
  @media (max-width:760px){ .book{grid-template-columns:1fr;} }
  .book-cover{position:relative; min-height:280px;}
  .book-cover img{width:100%;height:100%;object-fit:cover; position:absolute; inset:0;}
  .book-cover::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(40,25,10,.55));}
  .book-cover .cap{position:absolute; left:1.2em; bottom:1.1em; z-index:2; color:#fff;}
  .book-pages{padding:2em clamp(1.4em,3vw,2.4em); border-left:1px dashed #d8c691;}
  .tale-list{list-style:none; margin:1.2em 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.55em;}
  .tale-list a{
    text-decoration:none; font-size:.85rem; font-weight:700; color:var(--ink-soft);
    background:#f0e4c4; border:1px solid #e0cd9c; padding:.5em .85em; border-radius:999px;
    transition:background .25s;
  }
  .tale-list a:hover, .tale-list a:focus-visible{background:#e6d5a6;}
  .read-btn{
    display:inline-flex; align-items:center; gap:.5em; margin-top:1.6em; background:var(--ink);
    color:var(--wool-cream); text-decoration:none; padding:.9em 1.5em; border-radius:999px; font-weight:800;
  }
  .stat-row{display:flex; gap:2.4em; margin-top:1.6em; flex-wrap:wrap;}
  .stat-row div b{display:block; font-family:'Fraunces',serif; font-size:1.8rem; color:#8a6a2f;}
  .stat-row div span{font-size:.82rem; color:var(--ink-soft);}

  /* ---------- WORKSHOP ---------- */
  .workshop-panel{
    display:grid; grid-template-columns:1fr 1fr; gap:2.4em; align-items:center; margin-top:1em;
  }
  @media (max-width:800px){ .workshop-panel{grid-template-columns:1fr;} }
  .knit-swatch{
    aspect-ratio:1/1; border-radius:20px;
    background:
      repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 6px, transparent 6px 12px),
      repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 6px, transparent 6px 12px),
      linear-gradient(135deg,#55302f,#3a2228);
    box-shadow:var(--shadow-deep); position:relative; overflow:hidden;
  }
  .knit-swatch::after{
    content:"❧"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-size:6rem; color:rgba(230,199,137,.25);
  }
  .btn-row{display:flex; gap:1em; margin-top:1.6em; flex-wrap:wrap;}
  .btn-solid, .btn-ghost{
    text-decoration:none; padding:.9em 1.5em; border-radius:999px; font-weight:800; letter-spacing:.02em;
  }
  .btn-solid{background:var(--gold-thread); color:var(--ink);}
  .btn-ghost{border:1.5px solid var(--gold-thread-light); color:var(--wool-cream);}

  /* ---------- CAST ---------- */
  .cast-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1.6em; margin-top:1.8em;}
  .cast-card{text-align:center;}
  .cast-portrait{
    width:100%; aspect-ratio:1/1; border-radius:50%; overflow:hidden; margin:0 auto .8em;
    border:3px solid rgba(202,162,94,.6); box-shadow:var(--shadow-deep); transition:transform .4s var(--ease), border-color .4s;
  }
  .cast-portrait img{width:100%;height:100%;object-fit:cover;}
  .cast-card:hover .cast-portrait, .cast-card:focus-within .cast-portrait{transform:rotate(-3deg) scale(1.04); border-color:var(--gold-thread-light);}
  .cast-card b{display:block; font-family:'Fraunces',serif; font-size:1.05rem;}
  .cast-card span{font-size:.8rem; color:var(--wool-cream-dim); display:block; margin-top:.15em;}

  /* ---------- FOOTER ---------- */
  footer{
    background:#1a0f11; padding:3em clamp(1.2em,5vw,4em) 2.4em; text-align:center;
    color:var(--wool-cream-dim); font-size:.85rem;
  }
  footer .foot-links{margin:1em 0; display:flex; gap:1.2em; justify-content:center; flex-wrap:wrap;}
  footer .foot-links a{text-decoration:none; color:var(--wool-cream-dim); font-weight:700;}
  footer .foot-links a:hover{color:var(--wool-cream);}
  footer p{max-width:60ch; margin:.4em auto;}

  .lang-switch{display:flex;gap:.55em;align-items:center;margin-left:1.1em;font-size:.78rem;letter-spacing:.06em;font-weight:700;}
  .lang-switch a{color:var(--wool-cream-dim);text-decoration:none;opacity:.75;transition:opacity .2s var(--ease),color .2s var(--ease);}
  .lang-switch a:hover{opacity:1;color:var(--gold-thread-light);}
  .lang-switch a.active{color:var(--gold-thread-light);opacity:1;}
  @media (max-width:820px){.lang-switch{margin:.6em 0 0;justify-content:center;}}

/* ---------- INNER PAGES (2026-09-20) ---------- */
body.inner-page{background:var(--dusk-deep);}
.inner-page .site-nav{position:sticky; top:0;}
.inner-head{padding-top:clamp(3.5em,9vh,6em); padding-bottom:clamp(2em,5vh,3.4em); position:relative; overflow:hidden;}
.inner-head .scene-inner{position:relative; z-index:2;}
.inner-head h1{font-size:clamp(2.1rem,5.2vw,3.6rem); margin:.15em 0 .35em;}
.inner-head .lede{max-width:60ch;}
.inner-body{padding-top:0; padding-bottom:clamp(3em,8vh,5.5em); background:var(--dusk-deep);}
.video-block{margin:0 0 clamp(2.6em,6vh,4em);}
.video-block h2{font-size:clamp(1.4rem,3vw,2rem); margin-bottom:.25em;}
.video-block .badge{display:inline-block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:800; color:var(--ink); background:var(--gold-thread); padding:.32em .8em; border-radius:99px; margin-bottom:.7em;}
.video-block p{max-width:62ch; color:var(--wool-cream-dim);}
.video-frame{margin-top:1.1em; border-radius:14px; overflow:hidden; border:1px solid rgba(202,162,94,.28);
  box-shadow:var(--shadow-deep); background:#120a0c; aspect-ratio:16/9;}
.video-frame iframe{width:100%; height:100%; border:0; display:block;}
.note-card{border:1px dashed rgba(202,162,94,.45); border-radius:14px; padding:1.5em 1.6em; background:rgba(255,217,160,.05);}
.note-card h3{margin-bottom:.3em;}
.note-card p{margin:0; color:var(--wool-cream-dim); max-width:62ch;}
.back-home{display:inline-block; margin-top:2.4em; font-weight:700; color:var(--gold-thread-light); text-decoration:none;}
.back-home:hover{text-decoration:underline;}

/* ---------- INNER PAGE: link cards + media rows ---------- */
.link-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.4em; margin-top:1.6em;}
.link-card{position:relative; display:block; border-radius:16px; overflow:hidden; text-decoration:none;
  border:1px solid rgba(202,162,94,.22); background:#180d10; box-shadow:var(--shadow-deep);
  transition:transform .3s var(--ease), border-color .3s var(--ease);}
.link-card:hover{transform:translateY(-4px); border-color:var(--gold-thread);}
.link-card img{width:100%; aspect-ratio:4/3; object-fit:cover;}
.link-card .lc-body{padding:1.1em 1.25em 1.35em;}
.link-card h3{margin:0 0 .25em; color:var(--wool-cream);}
.link-card p{margin:0; color:var(--wool-cream-dim); font-size:.93rem;}
.link-card .lc-go{display:inline-block; margin-top:.8em; font-weight:800; font-size:.85rem;
  letter-spacing:.04em; color:var(--gold-thread-light);}
.media-row{display:grid; grid-template-columns:minmax(0,260px) minmax(0,1fr); gap:1.6em; align-items:start;
  margin-top:1.4em;}
.media-row img{border-radius:14px; border:1px solid rgba(202,162,94,.28); box-shadow:var(--shadow-deep);}
.media-row iframe{width:100%; height:352px; border:0; border-radius:14px;}
@media (max-width:760px){ .media-row{grid-template-columns:1fr;} .media-row img{max-width:260px;} }
.section-block{margin-bottom:clamp(2.8em,6vh,4.2em);}
.section-block > h2{font-size:clamp(1.4rem,3vw,2rem);}
.section-block > p{max-width:62ch; color:var(--wool-cream-dim);}

/* ---------- CHARACTER CARD LIGHTBOX (2026-09-20) ---------- */
.cast-card{cursor:pointer; background:none; border:0; padding:0; font:inherit; color:inherit; text-align:center;}
.cast-card .cast-portrait{transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.cast-card:hover .cast-portrait,.cast-card:focus-visible .cast-portrait{transform:translateY(-5px);
  box-shadow:0 14px 34px rgba(10,6,20,.55), 0 0 0 2px var(--gold-thread);}
#charModal{position:fixed; inset:0; z-index:700; display:none; align-items:center; justify-content:center;
  padding:clamp(1em,4vw,2.5em); background:rgba(12,6,8,.86); backdrop-filter:blur(6px);}
#charModal.open{display:flex;}
.cm-card{position:relative; width:min(980px,100%); max-height:90vh; overflow:auto; border-radius:18px;
  background:linear-gradient(170deg,#241418,#160c0f); border:1px solid rgba(202,162,94,.35);
  box-shadow:var(--shadow-deep); display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);}
.cm-card img{width:100%; height:100%; max-height:90vh; object-fit:contain; background:#120a0c; display:block;}
.cm-text{padding:clamp(1.4em,3vw,2.4em); align-self:center;}
.cm-text .eyebrow{display:block; margin-bottom:.5em;}
.cm-text h3{font-family:'Fraunces',serif; font-size:clamp(1.6rem,3.4vw,2.4rem); margin:0 0 .15em; color:var(--wool-cream);}
.cm-role{color:var(--gold-thread-light); font-weight:700; font-size:.9rem; letter-spacing:.05em; margin:0 0 1em;}
.cm-bio{color:var(--wool-cream-dim); margin:0; max-width:46ch;}
.cm-close{position:absolute; top:.7em; right:.8em; z-index:2; width:2.2em; height:2.2em; border-radius:50%;
  border:1px solid rgba(202,162,94,.5); background:rgba(18,10,12,.8); color:var(--wool-cream);
  font-size:1.1rem; line-height:1; cursor:pointer;}
.cm-close:hover{background:var(--gold-thread); color:var(--ink);}
@media (max-width:760px){ .cm-card{grid-template-columns:1fr;} .cm-card img{max-height:46vh;} }

/* ---------- THEATER CAROUSEL (2026-09-20) ---------- */
.theater-controls{display:flex; align-items:center; justify-content:center; gap:1em; margin-top:1.1em; flex-wrap:wrap;}
/* 2026-09-20 (Happy: "the scroll button needs to be much closer to the video, it is too far to
   scroll to see if it works"). .theater-frame carries 18% bottom padding so the curtain panels
   have room to overhang - which parked the arrows a screenful below the video. The controls are
   pulled back up through exactly that padding, so they sit just under the picture and stay there
   at every width, because both values are a percentage of the same container. */
.theater-controls.under-screen{margin-top:calc(1.1em - 18%); position:relative; z-index:6;}
.theater-controls.under-screen .tc-arrow{width:3em; height:3em; font-size:1.05rem;
  background:rgba(24,13,16,.92); border-color:rgba(202,162,94,.7);
  box-shadow:0 2px 14px rgba(0,0,0,.45);}
.theater-controls.under-screen .tc-count{color:var(--wool-cream); text-shadow:0 1px 6px rgba(0,0,0,.6);}
@media (max-width:640px){ .theater-controls.under-screen{margin-top:calc(.8em - 11%);} }
.tc-arrow{width:2.6em; height:2.6em; border-radius:50%; border:1px solid rgba(202,162,94,.5);
  background:rgba(24,13,16,.85); color:var(--wool-cream); font-size:1rem; cursor:pointer; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:background .2s var(--ease), color .2s var(--ease);}
.tc-arrow:hover:not(:disabled){background:var(--gold-thread); color:var(--ink);}
.tc-arrow:disabled{opacity:.35; cursor:default;}
.tc-count{font-size:.8rem; letter-spacing:.1em; font-weight:800; color:var(--wool-cream-dim); min-width:5.5em; text-align:center;}
.playlist-tabs{display:flex; gap:.5em; flex-wrap:wrap; justify-content:center; margin-top:1.3em;}
.pl-tab{border:1px solid rgba(202,162,94,.32); background:rgba(24,13,16,.6); color:var(--wool-cream-dim);
  font:inherit; font-size:.82rem; font-weight:700; padding:.45em 1em; border-radius:99px; cursor:pointer;
  transition:all .2s var(--ease);}
.pl-tab:hover{border-color:var(--gold-thread); color:var(--wool-cream);}
.pl-tab[aria-pressed="true"]{background:var(--gold-thread); border-color:var(--gold-thread); color:var(--ink);}
.screen-inner iframe{position:absolute; inset:0; width:100%; height:100%; border:0; z-index:3;}

/* 2026-09-20: nav grew to 8 items + language — tighten spacing before the mobile breakpoint */
@media (max-width:1180px){
  .site-nav .nav-links{gap:1.05em;}
  .site-nav .nav-links a{font-size:.92rem;}
  .lang-switch{margin-left:.7em;}
}

/* ---------- ABOUT PAGE (2026-09-20) ---------- */
.prose{max-width:66ch;}
.prose p{color:var(--wool-cream-dim); margin:0 0 1.15em;}
.prose p.lead{font-size:1.12rem; color:var(--wool-cream);}
.prose h2{font-size:clamp(1.4rem,3vw,2rem); margin:2.2em 0 .6em; color:var(--wool-cream);}
.byline{display:flex; gap:1.4em; flex-wrap:wrap; margin:1.8em 0 0;}
.who{display:flex; gap:.9em; align-items:flex-start; max-width:31ch;}
.who .ini{flex:none; width:2.9em; height:2.9em; border-radius:50%; display:flex; align-items:center;
  justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:1.15rem;
  color:var(--ink); background:linear-gradient(150deg,var(--gold-thread-light),var(--gold-thread));
  box-shadow:0 6px 18px rgba(10,6,20,.45);}
.who b{display:block; color:var(--wool-cream); font-size:1rem; margin-bottom:.15em;}
.who span{color:var(--wool-cream-dim); font-size:.92rem; line-height:1.55;}
.disclosure{border-left:3px solid var(--gold-thread); background:rgba(255,217,160,.05);
  padding:1.2em 1.4em; border-radius:0 12px 12px 0; margin:1.6em 0 1.8em;}
.disclosure p:last-child{margin-bottom:0;}
