/* A winter invitation, a sculptural aperture, and a real Christmas night. */
.home-page {
  --home-night:#050b13;
  --home-ivory:#eef1ef;
  --home-ice:#97daf3;
  --home-gold:#e3c393;
  --home-ink:#162c3d;
  background:var(--home-night);
}
.home-page .site-header { color:var(--home-ink);background:rgba(236,241,241,.82);border-color:#223e501c; }
.home-page .site-brand span { color:#445967; }
.home-page .site-header.is-scrolled { background:rgba(236,241,241,.88); }
.home-page .site-header .header-season { color:var(--home-ink); }
.home-page .header-season span { color:#526c7b; }
.home-page.is-in-night .header-season span { color:#bac7d0; }
.home-page .primary-nav a::after { background:currentColor; }
.home-page.is-in-night .site-header { color:#f4f5f2;background:rgba(5,11,19,.83);border-color:#ffffff18; }
.home-page.is-in-night .site-brand span,.home-page.is-in-night .header-season { color:#c7d4df; }
.home-page .site-header { transition:background .4s,color .4s,min-height .3s; }
.home-page main { overflow:clip; }
.light-journey { position:relative;isolation:isolate;background:#e9eef0; }
.light-viewport { position:relative;min-height:780px;height:100svh;overflow:hidden;isolation:isolate; }
.home-spatial .light-journey { height:270svh; }
.home-spatial .light-viewport { position:sticky;top:0;height:100svh;min-height:0; }
.winter-field { position:absolute;inset:0;background:radial-gradient(ellipse at 75% 27%,#fffcf5 0,transparent 46%),radial-gradient(ellipse at 18% 90%,#b6ccda85 0,transparent 55%),#e9eef0; }
.winter-orbit { position:absolute;left:26%;top:-40%;width:100vw;height:100vw;border:1px solid #8197a421;border-radius:50%;transform:rotateX(52deg) rotateY(-24deg); }
.winter-orbit-two { left:37%;top:-15%;width:83vw;height:83vw; }
.light-portal { --portal-size:min(56vw,80svh);position:absolute;z-index:2;left:70%;top:53%;width:var(--portal-size);height:var(--portal-size);transform:translate(-50%,-50%) perspective(1200px) rotateY(-14deg) rotateX(5deg);transform-style:preserve-3d;pointer-events:none; }
.light-sculpture { position:absolute;inset:0;display:block;width:100%;height:100%;z-index:2; }
.portal-window { position:absolute;left:29%;top:29%;width:42%;height:42%;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:#050b13; }
.portal-photo { width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%; }
.portal-glaze { position:absolute;inset:0;border-radius:50%;box-shadow:inset 7px 10px 19px #0209137d,inset -2px -3px 4px #fafcff59;background:linear-gradient(125deg,transparent 35%,#effdff18 45%,transparent 53%); }
.portal-fallback { position:absolute;inset:20%;border:clamp(22px,6vw,82px) solid #b8cbd8;border-radius:50%;background:transparent;box-shadow:inset 4px 5px 6px #fff9,8px 14px 22px #143e5436; }
.light-portal:has(.light-sculpture[data-sculpture="ready"]) .portal-fallback { display:none; }
.light-sculpture[data-sculpture="unavailable"] { visibility:hidden; }
.portal-shadow { position:absolute;left:70%;top:86%;width:34vw;height:6vh;border-radius:50%;background:#16364738;filter:blur(25px);transform:translate(-50%,-50%); }
.invitation { position:absolute;z-index:3;left:var(--gutter);top:24%;color:var(--home-ink);transform-origin:left center; }
.invitation-kicker { margin:0 0 2.7rem;font-size:.65rem;letter-spacing:.19em;text-transform:uppercase;font-weight:800; }
.invitation-line { margin:2.2rem 0 1.7rem;font-size:clamp(1.1rem,1.55vw,1.55rem);line-height:1.45;letter-spacing:-.03em; }
.enter-light { display:inline-flex;gap:2.5rem;align-items:center;min-height:48px;border-bottom:1px solid #153d4c6b;font-size:.82rem;font-weight:800; }
.enter-light i { display:grid;place-items:center;width:32px;height:32px;border:1px solid #5478887a;border-radius:50%;font-size:1rem;font-style:normal;transition:transform .25s,background .25s; }
.enter-light:hover i { transform:translateY(3px);background:#fff9; }
.portal-inscription { position:absolute;z-index:3;left:70%;top:calc(5.5rem + 1.5rem);transform:translateX(-50%);text-align:center;color:#385568;font-size:.58rem;font-weight:800;letter-spacing:.19em;text-transform:uppercase;white-space:nowrap; }
.portal-inscription span { display:none;margin-top:.6rem;color:#546b7a;font-size:.65rem;font-weight:500;letter-spacing:.02em;text-transform:none; }
.invitation-bottom { position:absolute;z-index:3;left:var(--gutter);right:var(--gutter);bottom:2.4rem;display:flex;justify-content:space-between;align-items:end;color:#233e50; }
.invitation-bottom p { margin:0;font-size:.68rem;font-weight:700;line-height:1.7; }
.invitation-bottom p > span { display:block;font-size:.67rem;font-weight:500; }
.invitation-date { text-align:right; }
.passing-thought { position:absolute;z-index:3;left:var(--gutter);top:50%;width:36vw;display:block;text-align:left;color:#28495e;font-family:"Open Sans",Arial,sans-serif;font-size:clamp(2.7rem,5.1vw,5.8rem);font-weight:600;letter-spacing:-.06em;line-height:1.12;transform:translateY(-50%);pointer-events:none;opacity:0; }
.passing-thought span { display:block; }
.arrival { position:absolute;z-index:4;inset:auto var(--gutter) 5.5rem;display:flex;justify-content:space-between;align-items:end;gap:2rem;opacity:0;visibility:hidden;pointer-events:none;color:#fafbf8; }
.arrival h2 { margin:1rem 0 0;font-family:"Open Sans",Arial,sans-serif;font-size:clamp(2.3rem,4.7vw,5rem);font-weight:600;letter-spacing:-.065em;line-height:1.04;text-shadow:0 1px 35px #000d; }
.arrival-kicker { margin:0;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em; }
.arrival-actions { display:grid;gap:.9rem; }
.arrival-show { display:flex;align-items:center;gap:1rem;min-width:320px;min-height:95px;padding:1.1rem 1.3rem;background:#f4f2eaf0;color:#162734;font-size:1rem;font-weight:800;backdrop-filter:blur(12px); }
.arrival-show > i { display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid #17395065;font-size:.68rem;font-style:normal;transition:background .25s; }
.arrival-show small { display:block;margin-top:.3rem;font-size:.65rem;font-weight:500; }
.arrival-show b { margin-left:auto;font-size:1.4rem;font-weight:400; }
.arrival-show:hover > i { background:#a9d6e9; }
.arrival-visit { display:flex;justify-content:space-between;align-items:center;min-height:44px;border-bottom:1px solid #e8f0f468;font-size:.76rem;font-weight:600; }
.journey-track { position:absolute;z-index:5;left:var(--gutter);bottom:1.4rem;display:none;align-items:center;gap:.6rem;color:var(--home-ink);font-size:.55rem;font-weight:800; }
.journey-track i { position:relative;display:block;width:90px;height:1px;background:#7987904a; }
.journey-track i::after { content:"";position:absolute;inset:0;background:currentColor;transform:scaleX(var(--journey-progress,0));transform-origin:left; }
.home-spatial .journey-track { display:flex; }
.motion-toggle { position:absolute;z-index:6;right:var(--gutter);bottom:.6rem;padding:.65rem 0 .65rem 1rem;min-height:44px;color:#435d6c;background:transparent;font-size:.58rem;text-decoration:underline;text-underline-offset:4px;cursor:pointer; }
.motion-toggle[hidden] { display:none; }
.home-page.is-in-night .motion-toggle,.home-page.is-in-night .journey-track { color:#d0dce6; }
.home-eyebrow { margin:0;font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase; }
.home-belonging { display:grid;grid-template-columns:.7fr 2fr 1fr;gap:3vw;align-items:end;padding:clamp(6rem,12vw,12rem) var(--gutter);background:#050b13;color:#eef1ef; }
.belonging-intro { align-self:start;display:grid;gap:3rem;color:#a4c1d6; }
.belonging-intro > span { font-size:5rem;font-family:Georgia,serif;font-weight:400;line-height:1; }
.home-belonging h2 { margin:0;font-family:"Open Sans",Arial,sans-serif;font-size:clamp(3rem,5vw,6rem);font-weight:600;line-height:1.1;letter-spacing:-.065em; }
.home-belonging h2 em { color:#91b3c9;font-style:normal; }
.belonging-note { font-size:clamp(.88rem,1.05vw,1.1rem);line-height:1.8;color:#b1bcc5; }
.belonging-note p { margin:0 0 1.2rem; }
.belonging-note a { display:flex;justify-content:space-between;align-items:center;min-height:44px;padding-block:.75rem;border-bottom:1px solid #94c3dc71;color:#eaf5fa;font-size:.77rem;font-weight:700; }
.home-invitation { padding:clamp(5rem,10vw,10rem) var(--gutter);background:#e8eff0;color:#1b3546; }
.home-invitation h2 { margin:2rem 0 4rem;font-family:"Open Sans",Arial,sans-serif;font-size:clamp(2.4rem,6vw,6.8rem);font-weight:600;letter-spacing:-.065em;line-height:1.13; }
.home-invitation h2 span { color:#66869a; }
.invitation-facts { display:grid;grid-template-columns:1fr 1.2fr .85fr;gap:2rem;border-top:1px solid #2c4b6129;padding-top:2rem;align-items:center; }
.invitation-facts p { margin:0;font-size:1.2rem;font-weight:600; }
.invitation-facts small { display:block;margin-bottom:1rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:#486373; }
.invitation-facts p > span { display:block;margin-top:.6rem;font-size:.78rem;font-weight:500; }
.invitation-facts > a { display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#1c3a4d;color:#eff4f4;font-size:.9rem;font-weight:700; }
.invitation-facts > a:hover { background:#2d566f; }
.invitation-facts i { font-size:1.6rem;font-style:normal; }
.invitation-exceptions { margin:2rem 0 0;font-size:.75rem;line-height:1.6;color:#516775; }
/* Static layouts keep the photograph, meaning, and every destination available. */
.home-static .light-journey { height:auto; }
.home-static .light-viewport { height:auto;min-height:0;padding-top:780px;overflow:hidden; }
.home-static .arrival { position:relative;inset:auto;opacity:1;visibility:visible;pointer-events:auto;padding:5rem var(--gutter);background:linear-gradient(#050b13a6,#050b13d9),url('assets/rapids-plain-black-trailer.webp') center/cover; }
.home-static .invitation { top:190px; }
.home-static .light-portal { top:410px; }
.home-static .invitation-bottom { top:685px;bottom:auto; }
.home-static .portal-inscription { top:120px; }
.home-static .motion-toggle { top:718px;bottom:auto;color:#435d6c; }
.home-static .portal-shadow { top:680px; }
.home-static .passing-thought,.home-static .journey-track { display:none; }
@media(min-width:1700px) {
  .invitation { left:7vw; }
  .invitation-bottom { left:7vw;right:7vw; }
}
@media(max-width:1100px) and (min-width:761px) {
  .home-belonging { grid-template-columns:.5fr 1.5fr;gap:3rem; }
  .belonging-note { grid-column:2;max-width:35rem; }
  .home-belonging h2 { font-size:6vw; }
  .invitation { top:29%; }
  .invitation-kicker { font-size:.55rem;margin-bottom:1.9rem; }
}
@media(max-width:760px) {
  .home-page .site-header { min-height:72px; }
  .home-page .menu-toggle { color:var(--home-ink); }
  .home-page.is-in-night .menu-toggle { color:#eff5f6; }
  .home-page .primary-nav { color:#f4f6f3; }
  .home-page.menu-open .site-header { color:#f2f5f2;background:#050b13; }
  .home-page.menu-open .site-brand span,.home-page.menu-open .menu-toggle { color:#d8e2e6; }
  .home-spatial .light-journey { height:260svh; }
  .light-viewport { min-height:780px; }
  .light-portal { --portal-size:100vw;left:50%;top:68%; }
  .invitation { left:var(--gutter);top:15%; }
  .invitation-kicker { margin-bottom:1.5rem;font-size:.55rem;letter-spacing:.14em; }
  .invitation-line { margin:1.2rem 0 .7rem;font-size:1.05rem; }
  .invitation-line br { display:none; }
  .enter-light { font-size:.73rem;gap:1.3rem;min-height:48px; }
  .portal-inscription { top:46.5%;left:auto;right:var(--gutter);transform:none;font-size:.46rem;letter-spacing:.1em; }
  .portal-inscription span { display:none; }
  .portal-shadow { left:50%;top:87%;width:65vw;height:3vh;filter:blur(15px); }
  .invitation-bottom { bottom:3.2rem;align-items:start; }
  .invitation-bottom p { max-width:240px;font-size:.58rem;line-height:1.65; }
  .invitation-bottom p > span { font-size:.58rem; }
  .invitation-bottom .invitation-date { max-width:90px;font-size:.55rem; }
  .invitation-date span { display:none!important; }
  .arrival { inset:auto var(--gutter) 4.1rem;display:grid;gap:1.5rem; }
  .arrival h2 { font-size:10vw; }
  .arrival-kicker { font-size:.52rem; }
  .arrival-actions { gap:.4rem; }
  .arrival-show { min-width:0;min-height:80px;padding:.9rem 1rem; }
  .passing-thought { top:27%;width:calc(100% - 2 * var(--gutter));font-size:13vw; }
  .home-belonging { grid-template-columns:1fr;gap:2.3rem;padding-block:5rem; }
  .belonging-intro { display:flex;align-items:center;justify-content:space-between; }
  .belonging-intro > span { font-size:2.6rem; }
  .home-belonging h2 { font-size:11.5vw; }
  .belonging-note { max-width:32rem;font-size:.9rem; }
  .home-invitation { padding-block:5rem; }
  .home-invitation h2 { margin:2rem 0 2.5rem;font-size:10vw; }
  .invitation-facts { grid-template-columns:1fr;gap:2rem; }
  .invitation-facts p { font-size:1.1rem; }
  .invitation-facts small { margin-bottom:.6rem; }
  .invitation-facts > a { min-height:70px;padding:1.1rem 1.3rem; }
  .home-static .light-viewport { padding-top:790px; }
  .home-static .invitation { top:120px; }
  .home-static .light-portal { top:560px; }
  .home-static .portal-inscription { top:385px; }
  .home-static .invitation-bottom { top:715px; }
  .home-static .motion-toggle { top:750px; }
  .home-static .portal-shadow { top:720px; }
  .home-static .arrival { padding:4rem var(--gutter); }
  html:not(.has-js) .home-page .site-header { color:#f4f6f3; }
  html:not(.has-js) .home-page .site-brand span { color:#becdda; }
}
@media(max-height:620px) and (min-width:761px) {
  .invitation { top:23%; }
  .invitation-kicker { margin-bottom:1rem; }
  .invitation-line { margin:1rem 0 .2rem;font-size:1rem; }
  .invitation-bottom { bottom:2.7rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .home-page *, .home-page *::before, .home-page *::after { scroll-behavior:auto!important;transition:none!important; }
}

@media(max-width:760px) and (max-height:740px) {
  .home-spatial .invitation { top:100px; }
  .home-spatial .invitation-kicker { margin-bottom:1rem; }
  .home-spatial .invitation-line { margin:.8rem 0 .4rem;font-size:.95rem; }
  .home-spatial .portal-inscription { display:none; }
}

/* Visit facts at a glance, in the opening screen (Oct 2026). */
.visit-glance { margin:-.3rem 0 1.5rem;padding-left:.85rem;border-left:2px solid #b8955f;font-size:.8rem;font-weight:700;line-height:1.55;color:var(--home-ink); }
.visit-glance span { display:block; }
.visit-glance span + span { font-weight:500; }
.invitation-actions { display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 2.2rem; }
.glance-directions { display:inline-flex;gap:.7rem;align-items:center;min-height:48px;border-bottom:1px solid #153d4c6b;font-size:.82rem;font-weight:800;color:var(--home-ink); }
.glance-directions:hover { border-color:currentColor; }
.facts-directions { display:inline-flex;gap:.5rem;align-items:center;min-height:44px;margin-top:.4rem;border-bottom:1px solid currentColor;font-size:.8rem;font-weight:700; }
@media(max-width:760px) {
  .visit-glance { margin:0 0 .5rem;padding-left:.7rem;font-size:.72rem;line-height:1.5; }
  .invitation-actions { gap:.4rem 1.6rem; }
  .glance-directions { font-size:.73rem;gap:.5rem; }
  .light-portal { --portal-size:min(100vw,52svh);top:70%; }
  .portal-inscription { top:51%; }
  .home-static .portal-inscription { top:430px; }
  .home-static .light-portal { top:590px; }
  .home-static .light-viewport { padding-top:820px; }
  .home-static .invitation-bottom { top:745px; }
  .home-static .motion-toggle { top:780px; }
  .home-static .portal-shadow { top:750px; }
}
@media(max-height:800px) and (min-width:761px) {
  .home-spatial .invitation { top:20%; }
  .home-spatial .invitation-kicker { margin-bottom:1.8rem; }
  .home-spatial .invitation-line { margin:1.5rem 0 1.3rem; }
}
@media(max-height:620px) and (min-width:761px) {
  .home-spatial .invitation { top:86px; }
  .home-spatial .invitation-kicker { display:none; }
  .home-spatial .invitation-line { margin:.6rem 0 .6rem;font-size:.95rem; }
  .home-spatial .invitation-line br { display:none; }
  .visit-glance { margin:0 0 .2rem;font-size:.7rem; }
  .visit-glance span { display:inline; }
  .visit-glance span + span::before { content:" · "; }
  .invitation-actions .enter-light, .glance-directions { min-height:44px; }
}
@media(max-width:760px) and (max-height:740px) {
  .home-spatial .visit-glance { margin-bottom:.2rem;font-size:.68rem;line-height:1.4; }
}
@media(min-width:761px) {
  .home-static .invitation { top:165px; }
  .home-static .invitation-bottom { top:722px; }
  .home-static .motion-toggle { top:755px; }
  .home-static .light-viewport { padding-top:815px; }
}
