/* Shared seasonal presentation for The North Pine Overlook. */

html[data-season="spring"] {
  --night:#16271F;
  --spruce:#213A31;
  --pine:#29463A;
  --pine-card:#315144;
  --moss:#8BA58D;
  --birch:#F1EADF;
  --sage:#C1C9AD;
  --lantern:#DFC19A;
  --ember:#A96949;
  --cream:#E9DDCA;
  --ink:#1E1F14;
  --theme-color:#213A31;
  --season-hero-mid:#2D4B3F;
  --season-hero-low:#274238;
  --season-nav-bg:rgba(22,39,31,.92);
  --season-ridge-far:#456955;
  --season-ridge-mid:#365A49;
  --season-card-hover:#3B624F;
  --season-copy:#D7D7C7;
  --season-button-hover:#F0D5B4;
  --season-ambient:rgba(223,193,154,.19);
  --season-ambient-soft:rgba(169,105,73,.10);
  --season-mist:rgba(223,232,211,.14);
  --season-moon:radial-gradient(circle at 38% 36%,#FFF5E8 0%,#DFC19A 68%,#B88B70 100%);
  --season-map-surface:#2B4B3F;
  --season-placeholder:#9FB5A1;
  --season-particle:#F0C9C3;
  --season-particle-alt:#DFC19A;
  --bg:#E5E8D8;
  --ink-soft:#405344;
  --ink-faint:#536856;
  --btn-bg:#F7F2EA;
  --btn-border:rgba(30,31,20,.10);
  --btn-shadow:0 2px 8px rgba(22,39,31,.08);
  --btn-shadow-hover:0 10px 24px rgba(22,39,31,.16);
  --avatar-bg-1:#315144;
  --avatar-bg-2:#16271F;
  --toast-bg:#16271F;
  --toast-ink:#F1EADF;
  --focus:#315144;
  --season-ink-rgb:30,31,20;
  --season-light-glow:rgba(139,165,141,.34);
}

html[data-season="summer"] {
  --night:#102A32;
  --spruce:#1A404B;
  --pine:#1F4956;
  --pine-card:#285663;
  --moss:#8BAEB2;
  --birch:#F0E9DF;
  --sage:#C0C8AE;
  --lantern:#E6BA90;
  --ember:#A96949;
  --cream:#DCCDBD;
  --ink:#1E1F14;
  --theme-color:#1A404B;
  --season-hero-mid:#1B4E5C;
  --season-hero-low:#1E4854;
  --season-nav-bg:rgba(16,42,50,.92);
  --season-ridge-far:#3D6975;
  --season-ridge-mid:#2B5B68;
  --season-card-hover:#356675;
  --season-copy:#CED3C0;
  --season-button-hover:#F0C9A3;
  --season-ambient:rgba(230,186,144,.20);
  --season-ambient-soft:rgba(169,105,73,.10);
  --season-mist:rgba(226,220,209,.13);
  --season-moon:radial-gradient(circle at 38% 36%,#FFF7EA 0%,#E6D2B7 68%,#BCA489 100%);
  --season-map-surface:#24525E;
  --season-placeholder:#92ADB0;
  --season-particle:#F7D99C;
  --season-particle-alt:#E6BA90;
  --bg:#D5C6B7;
  --ink-soft:#5E4030;
  --ink-faint:#4A5138;
  --btn-bg:#F7F2EA;
  --btn-border:rgba(30,31,20,.08);
  --btn-shadow:0 2px 8px rgba(30,31,20,.06);
  --btn-shadow-hover:0 10px 24px rgba(30,31,20,.12);
  --avatar-bg-1:#1A404B;
  --avatar-bg-2:#102A32;
  --toast-bg:#1E1F14;
  --toast-ink:#F7F2EA;
  --focus:#1A404B;
  --season-ink-rgb:30,31,20;
  --season-light-glow:rgba(230,186,144,.32);
}

html[data-season="fall"] {
  --night:#251D18;
  --spruce:#352A23;
  --pine:#443229;
  --pine-card:#523B2F;
  --moss:#B08C71;
  --birch:#F1E3D2;
  --sage:#C4B49D;
  --lantern:#DCA36F;
  --ember:#8D3C3C;
  --cream:#E5D2BA;
  --ink:#241812;
  --theme-color:#352A23;
  --season-hero-mid:#4B3429;
  --season-hero-low:#3D2E26;
  --season-nav-bg:rgba(37,29,24,.93);
  --season-ridge-far:#6B4A38;
  --season-ridge-mid:#593B2E;
  --season-card-hover:#65483A;
  --season-copy:#DCCBB8;
  --season-button-hover:#ECC095;
  --season-ambient:rgba(220,163,111,.20);
  --season-ambient-soft:rgba(141,60,60,.13);
  --season-mist:rgba(226,200,173,.11);
  --season-moon:radial-gradient(circle at 38% 36%,#FFE7C6 0%,#DCA36F 68%,#9B5940 100%);
  --season-map-surface:#4C382E;
  --season-placeholder:#B99A80;
  --season-particle:#DCA36F;
  --season-particle-alt:#A96949;
  --bg:#E5D2BA;
  --ink-soft:#5D4032;
  --ink-faint:#6B503E;
  --btn-bg:#F7EEE1;
  --btn-border:rgba(36,24,18,.10);
  --btn-shadow:0 2px 8px rgba(53,42,35,.08);
  --btn-shadow-hover:0 10px 24px rgba(53,42,35,.17);
  --avatar-bg-1:#523B2F;
  --avatar-bg-2:#251D18;
  --toast-bg:#251D18;
  --toast-ink:#F1E3D2;
  --focus:#6B3F2C;
  --season-ink-rgb:36,24,18;
  --season-light-glow:rgba(220,163,111,.34);
}

html[data-season="winter"] {
  --night:#0E1B23;
  --spruce:#152C38;
  --pine:#1A3542;
  --pine-card:#214250;
  --moss:#78959E;
  --birch:#F3F1EA;
  --sage:#BEC9CA;
  --lantern:#D5C6B7;
  --ember:#8D3C3C;
  --cream:#E6E1D9;
  --ink:#14242D;
  --theme-color:#152C38;
  --season-hero-mid:#1B3848;
  --season-hero-low:#183440;
  --season-nav-bg:rgba(14,27,35,.94);
  --season-ridge-far:#355767;
  --season-ridge-mid:#294957;
  --season-card-hover:#2A5363;
  --season-copy:#D6DDDC;
  --season-button-hover:#E8DED2;
  --season-ambient:rgba(213,198,183,.18);
  --season-ambient-soft:rgba(141,60,60,.08);
  --season-mist:rgba(226,237,241,.16);
  --season-moon:radial-gradient(circle at 38% 36%,#FFFFFF 0%,#E3E9E8 68%,#A9BBC0 100%);
  --season-map-surface:#1E3D4A;
  --season-placeholder:#90A9AF;
  --season-particle:#FFFFFF;
  --season-particle-alt:#DDE8EA;
  --bg:#E4ECEE;
  --ink-soft:#3F5862;
  --ink-faint:#536B73;
  --btn-bg:#F7FAFA;
  --btn-border:rgba(20,36,45,.10);
  --btn-shadow:0 2px 8px rgba(14,27,35,.08);
  --btn-shadow-hover:0 10px 24px rgba(14,27,35,.16);
  --avatar-bg-1:#214250;
  --avatar-bg-2:#0E1B23;
  --toast-bg:#0E1B23;
  --toast-ink:#F3F1EA;
  --focus:#214C5D;
  --season-ink-rgb:20,36,45;
  --season-light-glow:rgba(120,149,158,.34);
}

/* Shared dark-site surfaces and hard-coded legacy colors. */
html[data-season] .nav.scrolled {
  background:var(--season-nav-bg);
  border-bottom-color:var(--moss);
}

html[data-season] .hero {
  background:linear-gradient(to bottom,var(--night) 0%,var(--season-hero-mid) 44%,var(--season-hero-low) 70%,var(--spruce) 100%);
}

html[data-season] .hero::before,
html[data-season] .phead .glow {
  background:radial-gradient(ellipse at center bottom,var(--season-ambient) 0%,var(--season-ambient-soft) 38%,transparent 66%);
}

html[data-season] .phead {
  background:linear-gradient(to bottom,var(--night),var(--season-hero-mid) 55%,var(--spruce));
}

html[data-season] .hero .ridges path:nth-child(1) { fill:var(--season-ridge-far); }
html[data-season] .hero .ridges path:nth-child(2) { fill:var(--season-ridge-mid); }
html[data-season] .hero .ridges path:nth-child(3),
html[data-season] .phead .ridge path { fill:var(--spruce); }

html[data-season] .hero .lede,
html[data-season] .article p,
html[data-season] .article ul li,
html[data-season] .waitlist p { color:var(--season-copy); }

html[data-season] .moon {
  background:var(--season-moon);
  box-shadow:0 0 60px 16px var(--season-ambient),0 0 150px 56px var(--season-ambient-soft);
}

html[data-season] .cabin .halo {
  background:radial-gradient(circle,var(--season-ambient) 0%,var(--season-ambient-soft) 42%,transparent 72%);
}

html[data-season] .mist span {
  background:linear-gradient(90deg,transparent,var(--season-mist),transparent);
}

html[data-season="spring"] .stars { opacity:.34; }
html[data-season="summer"] .stars { opacity:.82; }
html[data-season="fall"] .stars { opacity:.52; }
html[data-season="winter"] .stars { opacity:.94; }

html[data-season] .feat:hover,
html[data-season] .gcard:hover { background:var(--season-card-hover); }

html[data-season] .inquire::before,
html[data-season] .cta::before {
  background:radial-gradient(ellipse at center,var(--season-ambient) 0%,var(--season-ambient-soft) 40%,transparent 64%);
}

html[data-season] .nav .pill,
html[data-season] .cta .btn,
html[data-season] .btn-primary {
  background:var(--lantern);
  color:var(--ink);
}

html[data-season] .nav .pill:hover,
html[data-season] .cta .btn:hover,
html[data-season] .btn-primary:hover { background:var(--season-button-hover); }

html[data-season] .btn-ghost,
html[data-season] .btn-ghost:hover { background:transparent; }

html[data-season] .map-frame { background:var(--season-map-surface); }
html[data-season] .map-hint { background:var(--season-nav-bg); }
html[data-season] .ph {
  background:linear-gradient(160deg,var(--season-ridge-far) 0%,var(--season-ridge-mid) 60%,var(--season-map-surface) 100%);
}
html[data-season] .ph::before {
  background:linear-gradient(to top,var(--season-nav-bg),transparent 58%);
}
html[data-season] .field input::placeholder,
html[data-season] .field textarea::placeholder { color:var(--season-placeholder); }

html[data-season] .season[aria-current="true"] {
  border-top-color:var(--lantern);
  box-shadow:inset 0 2px 0 var(--lantern);
}
html[data-season] .season[aria-current="true"] .lab { color:var(--birch); }

/* The standalone links page uses a light companion palette. */
html[data-season] body.links-page {
  background:radial-gradient(circle at 50% 0,var(--season-light-glow),transparent 38rem),var(--bg);
}
html[data-season] .link-item:hover .link-btn,
html[data-season] .link-item:focus-within .link-btn { border-color:var(--btn-border); }
html[data-season] .share-btn:hover,
html[data-season] .share-btn:focus-visible,
html[data-season] .socials a:hover,
html[data-season] .socials a:focus-visible {
  background:rgba(var(--season-ink-rgb),.07);
}
html[data-season] .avatar {
  box-shadow:0 4px 14px rgba(var(--season-ink-rgb),.16);
}
html[data-season] .toast {
  box-shadow:0 8px 24px rgba(var(--season-ink-rgb),.26);
}
html[data-season] body.links-page .page { position:relative;z-index:1; }

/* Lightweight, decorative seasonal atmosphere. */
.seasonal-atmosphere {
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  contain:layout paint;
}
.hero > .seasonal-atmosphere { z-index:6;--season-travel:112vh;--season-travel-mid:54vh; }
.phead > .seasonal-atmosphere { z-index:1;--season-travel:430px;--season-travel-mid:210px; }
body > .seasonal-atmosphere {
  position:fixed;
  z-index:0;
  --season-travel:112vh;
  --season-travel-mid:54vh;
}
.seasonal-particle {
  position:absolute;
  left:var(--season-x);
  top:-12%;
  width:var(--season-size);
  height:var(--season-size);
  opacity:0;
  will-change:transform,opacity;
}

html[data-season="winter"] .seasonal-particle {
  border-radius:50%;
  background:var(--season-particle);
  box-shadow:0 0 5px rgba(255,255,255,.45);
  animation:season-snow var(--season-duration) linear var(--season-delay) infinite;
}

html[data-season="spring"] .seasonal-particle {
  height:calc(var(--season-size) + 4px);
  border-radius:80% 0 80% 0;
  background:linear-gradient(135deg,var(--season-particle),var(--season-particle-alt));
  animation:season-petal var(--season-duration) ease-in-out var(--season-delay) infinite;
}

html[data-season="summer"] .seasonal-particle {
  top:var(--season-y);
  border-radius:50%;
  background:var(--season-particle);
  box-shadow:0 0 8px 3px var(--season-ambient);
  animation:season-firefly var(--season-duration) ease-in-out var(--season-delay) infinite;
}

html[data-season="fall"] .seasonal-particle {
  height:calc(var(--season-size) + 6px);
  border-radius:85% 0 85% 0;
  background:linear-gradient(145deg,var(--season-particle),var(--season-particle-alt));
  animation:season-leaf var(--season-duration) ease-in-out var(--season-delay) infinite;
}

@keyframes season-snow {
  0% { transform:translate3d(0,-12px,0);opacity:0; }
  12% { opacity:.8; }
  100% { transform:translate3d(var(--season-drift),var(--season-travel),0);opacity:.12; }
}

@keyframes season-petal {
  0% { transform:translate3d(0,-12px,0) rotate(0deg);opacity:0; }
  14% { opacity:.68; }
  55% { transform:translate3d(var(--season-drift-soft),var(--season-travel-mid),0) rotate(180deg); }
  100% { transform:translate3d(var(--season-drift),var(--season-travel),0) rotate(var(--season-rotation));opacity:.08; }
}

@keyframes season-firefly {
  0%,100% { transform:translate3d(0,0,0) scale(.65);opacity:.1; }
  28% { transform:translate3d(var(--season-drift-soft),-14px,0) scale(1);opacity:.9; }
  63% { transform:translate3d(var(--season-drift),13px,0) scale(.78);opacity:.25; }
  82% { opacity:.82; }
}

@keyframes season-leaf {
  0% { transform:translate3d(0,-12px,0) rotate(0deg);opacity:0; }
  12% { opacity:.78; }
  48% { transform:translate3d(var(--season-drift-soft),var(--season-travel-mid),0) rotate(210deg); }
  100% { transform:translate3d(var(--season-drift),var(--season-travel),0) rotate(var(--season-rotation));opacity:.1; }
}

@media (prefers-reduced-motion:reduce) {
  .seasonal-atmosphere { display:none!important; }
}
