/* A real night at the Rapids, with the visitor choosing when to enter. */
.noel-page { --noel-gold:#efd8b6; background:#07080c; }
.noel-page main::before { display:none; }
.noel-page .noel-overture { position:relative;isolation:isolate;min-height:800px;height:100svh;max-height:1100px;padding:8rem var(--gutter) 3rem;display:flex;flex-direction:column;overflow:hidden;background:#050505; }
.noel-overture-image { position:absolute;z-index:-2;inset:0; }
.noel-overture-image img { position:absolute;bottom:3rem;left:0;width:100%;height:auto;max-height:100%;object-fit:cover;object-position:center; }
.noel-overture-image::after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,#06070a 0%,rgba(6,7,10,.8) 17%,transparent 45%,transparent 59%,#06070a 91%),linear-gradient(90deg,#06070a55,transparent 50%); }
.noel-overture-top { display:flex;align-items:flex-start;justify-content:space-between;gap:2rem; }
.noel-page .noel-overture .section-label { color:var(--noel-gold);font-size:.6rem;letter-spacing:.17em;line-height:1.7;max-width:32ch;margin:0; }
.noel-page .noel-overture .section-label::before { display:none; }
.noel-running-time { margin:0;font-size:.65rem;line-height:1.8;text-align:right;color:#c2bbc6; }
.noel-running-time span { display:block;color:#918d97; }
.noel-overture h1 { margin:2.2rem 0 0;max-width:14ch;font-family:"Open Sans",Arial,sans-serif;font-size:clamp(3.8rem,7vw,7rem);line-height:1.04;letter-spacing:-.065em;font-weight:600;color:#f8f5ed; }
.noel-overture h1 span { color:var(--noel-gold); }
.noel-overture-bottom { margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:3rem;padding-top:3rem; }
.noel-song-credit > span { font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;color:#c5adb6; }
.noel-song-credit strong { display:block;margin:.4rem 0;font-family:"Open Sans",Arial,sans-serif;font-size:clamp(2.7rem,4.8vw,5rem);line-height:1.05;letter-spacing:-.06em;font-weight:600; }
.noel-song-credit p { margin:.8rem 0 0;font-size:.8rem;color:#c7c1ca; }
.noel-entry { width:clamp(19rem,32vw,28rem); }
.noel-enter { cursor:pointer;display:flex;align-items:center;width:100%;text-align:left;gap:1.2rem;background:#f4e8d5;color:#19171b;min-height:5.7rem;padding:1.1rem 1.4rem;border-radius:0;font-size:.97rem;font-weight:700;transition:background .25s,transform .25s; }
.noel-enter[hidden] { display:none; }
.noel-enter:hover { background:#fff8ec;transform:translateY(-3px); }
.noel-play-icon { display:grid;place-items:center;border:1px solid #51423055;border-radius:50%;height:2.7rem;width:2.7rem;flex-shrink:0;font-size:.65rem;padding-left:2px; }
.noel-enter small { display:block;margin-top:.4rem;font-size:.63rem;font-weight:500;color:#655653; }
.noel-enter-arrow { margin-left:auto;font-size:1.6rem;font-weight:400; }
.noel-discover { display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:44px;margin-top:.5rem;font-size:.65rem;color:#c5beca; }
.noel-discover:hover { color:white; }
.noel-meaning { display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(3rem,8vw,9rem);background:#f0ece3;color:#1a2330;padding:clamp(4rem,8vw,9rem) var(--gutter);scroll-margin-top:5rem; }
.noel-page .noel-meaning .section-label { color:#625d54;font-size:.63rem; }
.noel-page .noel-meaning .section-label::before { display:none; }
.noel-meaning h2 { margin:2rem 0 0;font-family:"Open Sans",Arial,sans-serif;font-size:clamp(2.6rem,4.6vw,5rem);line-height:1.1;letter-spacing:-.06em;font-weight:600; }
.noel-meaning h2 span { color:#727b83; }
.noel-meaning-rule { width:100%;max-width:26rem;height:1px;background:#c4c4bd;margin-top:3rem;position:relative; }
.noel-meaning-rule span { display:block;width:20%;height:1px;background:#6d6759; }
.noel-meaning-copy { padding-top:0.2rem;max-width:35rem; }
.noel-meaning-copy p { margin:0 0 1.4rem;font-size:.97rem;line-height:1.9;color:#49515a; }
.noel-meaning-copy .noel-meaning-lede { font-size:clamp(1.2rem,1.6vw,1.65rem);line-height:1.65;color:#1a2330; }
.noel-meaning-copy .noel-welcome { margin:2rem 0 0;padding-top:1.5rem;border-top:1px solid #cbc7bc;font-weight:700;color:#303c49; }
.noel-screening { padding:5rem var(--gutter);background:#07090d; }
.noel-page .noel-film { max-width:960px;margin:0 auto;padding:0;border:0; }
.noel-page .noel-film::before { display:none; }
.noel-page .noel-film-heading { align-items:center;gap:1.5rem;margin:0 0 1.5rem; }
.noel-page .noel-film-heading h2 { margin:0;font-family:"Open Sans",Arial,sans-serif;text-transform:none;font-size:clamp(1.3rem,2.3vw,2rem);font-weight:600;letter-spacing:-.04em;line-height:1.2; }
.noel-page .noel-film-heading > span { font-size:.62rem;line-height:1.7;flex-shrink:0; }
.noel-page .noel-film video { display:block;width:100%;height:auto;max-height:80svh;aspect-ratio:16/9;object-fit:contain;border:1px solid #f7e9d51c;box-shadow:none;background:#000; }
.noel-page .noel-film figcaption { display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;padding:0;font-size:.63rem;line-height:1.8; }
.noel-next-night { position:relative;display:block;overflow:hidden;padding:5rem var(--gutter) 4rem;border-top:1px solid #e9e0cc29;background:#11131a;transition:background .3s; }
.noel-next-night:hover { background:#192231; }
.noel-page .noel-next-night .section-label { color:var(--noel-gold);font-size:.65rem; }
.noel-next-title { display:block;font:600 clamp(3rem,7.5vw,8rem)/1.02 "Open Sans",Arial,sans-serif;letter-spacing:-.065em;color:#eceae6;margin:2.5rem 0; }
.noel-next-link { display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff30;padding-top:1.5rem;font-size:.8rem; }
.noel-next-link > span { font-size:2rem; }
html.cinema-active,body.cinema-active { overflow:hidden; }
.noel-cinema { position:fixed;inset:0;border:0;margin:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:#030405;color:#f8f5ed;overflow-y:auto; }
.noel-cinema::backdrop { background:#030405; }
.noel-cinema[open] { display:flex;flex-direction:column; }
.noel-cinema-bar { display:flex;justify-content:space-between;align-items:center;flex-shrink:0;gap:1rem;min-height:5rem;padding:.8rem 2rem;border-bottom:1px solid #fff2; }
.noel-cinema-bar p { margin:0;font-size:.65rem;line-height:1.7; }
.noel-cinema-bar p span { display:block;color:#a7a2a9;font-size:.6rem; }
.noel-cinema-bar button { display:flex;align-items:center;gap:1.25rem;min-height:44px;padding:.5rem 0 .5rem 1rem;cursor:pointer;background:transparent;color:#f5eee1;font-size:.7rem; }
.noel-cinema-bar button > span { font-size:1.9rem;line-height:1; }
.noel-cinema-screen { display:grid;place-items:center;flex:1;min-height:0;padding:2rem; }
.noel-page .noel-cinema .noel-film { width:100%;max-width:min(1280px,calc((100dvh - 14rem) * 16 / 9));margin:0; }
.noel-page .noel-cinema .noel-film video { border:0;max-height:calc(100dvh - 14rem);width:100%; }
.noel-page .noel-cinema .noel-film-heading h2 { font-size:1.1rem; }
.noel-page .noel-cinema .noel-film-heading { margin-bottom:1rem; }
.noel-cinema-ended { padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#f0e7d8;color:#20202a; }
.noel-cinema-ended p { margin:0; }
.noel-cinema-ended a { font-weight:700;text-decoration:underline; }
.noel-cinema-ended[hidden] { display:none; }
@media(max-width:900px) {
  .noel-page .noel-overture { min-height:740px;height:90svh;padding-top:8rem; }
  .noel-overture-image img { bottom:8rem; }
  .noel-overture h1 { font-size:clamp(3.8rem,8vw,6rem); }
  .noel-meaning { grid-template-columns:1fr;gap:3rem; }
  .noel-meaning-title { max-width:38rem; }
  .noel-meaning-copy { max-width:40rem; }
  .noel-meaning-rule { display:none; }
}
@media(max-width:600px) {
  .noel-page .noel-overture { min-height:0;height:auto;max-height:none;padding-top:7.5rem;padding-bottom:2rem; }
  .noel-overture-top { display:block; }
  .noel-page .noel-overture .section-label { max-width:30ch;font-size:.55rem; }
  .noel-running-time { display:none; }
  .noel-overture h1 { font-size:clamp(3.1rem,11.6vw,4.6rem);margin-top:1.5rem; }
  .noel-overture-image img { top:16rem;bottom:auto;width:135%;max-width:none;left:-17.5%; }
  .noel-overture-image::after { background:linear-gradient(180deg,#06070a 6%,rgba(6,7,10,.85) 32%,transparent 51%,transparent 58%,#06070a 73%); }
  .noel-overture-bottom { display:block;margin-top:15rem;padding-top:0; }
  .noel-song-credit { display:none; }
  .noel-entry { width:100%; }
  .noel-enter { padding:1rem 1.1rem;min-height:5.2rem;font-size:.95rem; }
  .noel-meaning { padding-block:3.5rem;gap:2.5rem; }
  .noel-meaning h2 { font-size:2.45rem; }
  .noel-meaning-copy p { font-size:.93rem; }
  .noel-meaning-copy .noel-meaning-lede { font-size:1.3rem; }
  .noel-screening { padding:3rem var(--gutter); }
  .noel-page .noel-film-heading { display:block; }
  .noel-page .noel-film-heading > span { display:block;margin-top:.65rem; }
  .noel-page .noel-film figcaption { flex-direction:column;gap:.5rem; }
  .noel-next-night { padding-block:3.5rem 2.5rem; }
  .noel-next-title { font-size:3.1rem; }
  .noel-cinema-bar { padding:.7rem 1rem; }
  .noel-cinema-bar p { max-width:11rem;font-size:.6rem; }
  .noel-cinema-bar p span { font-size:.54rem; }
  .noel-cinema-bar button { gap:.5rem;font-size:.62rem; }
  .noel-cinema-screen { padding:1rem; }
  .noel-page .noel-cinema .noel-film { max-width:100%; }
  .noel-cinema-ended { padding:1rem;flex-direction:column;align-items:start;font-size:.85rem; }
}
@media(max-height:550px) and (min-width:601px) {
  .noel-cinema-bar { min-height:3rem;padding:.2rem 1rem; }
  .noel-cinema-screen { padding:.5rem 1rem; }
  .noel-page .noel-cinema .noel-film { max-width:calc((100dvh - 4.5rem) * 16 / 9); }
  .noel-page .noel-cinema .noel-film video { max-height:calc(100dvh - 4.5rem); }
  .noel-cinema .noel-film-heading,.noel-cinema .noel-film figcaption { display:none; }
}
@media(prefers-reduced-motion:reduce) { .noel-enter,.noel-next-night { transition:none; } .noel-enter:hover { transform:none; } }
@media(prefers-reduced-motion:no-preference) {
  .noel-cinema[open] .noel-cinema-screen { animation:noel-cinema-enter .55s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes noel-cinema-enter { from { clip-path:inset(7% 5%);opacity:.35; } to { clip-path:inset(0);opacity:1; } }
}
