/* A self-contained seasonal layer; only the landing page opts in. */
.seasonal-greeting, .seasonal-note, .holiday-art { display: none; }
.holiday-snow, .snow-toggle { display: none; }
@media (prefers-reduced-motion: no-preference) {
  [data-holiday="active"] .holiday-snow {
    display: block; position: absolute; inset: 0; overflow: hidden;
    pointer-events: none; z-index: 1;
    mask-image: linear-gradient(black 50%, transparent 94%);
  }
  .holiday-snow > span {
    position: absolute; top: 0; left: var(--x); height: 100%; width: var(--size);
    animation: holiday-snowfall var(--duration) linear var(--delay) infinite;
    will-change: transform;
  }
  .holiday-snow > span::before {
    content: ''; display: block; width: var(--size); height: var(--size);
    border-radius: 50%; background: #fff9e9; opacity: var(--alpha);
    box-shadow: 0 0 3px #fff9e925;
  }
  @keyframes holiday-snowfall {
    0% { transform: translate3d(0, -3%, 0); opacity: 0; }
    8%, 85% { opacity: 1; }
    100% { transform: translate3d(var(--drift), 103%, 0); opacity: 0; }
  }
  [data-snow-paused="true"] .holiday-snow > span,
  [data-snow-idle="true"] .holiday-snow > span { animation-play-state: paused; }
  [data-holiday="active"] .snow-toggle {
    display: block; position: absolute; right: 18px; bottom: 16px; z-index: 3;
    border: 1px solid #ead3a345; border-radius: 2px; padding: 5px 9px;
    color: #e9e1d1; background: #14213bc9; font-size: 11px; cursor: pointer;
  }
  .snow-toggle:hover { border-color: #ead3a3; }
}
[data-holiday="active"] .hero { background: #172440; }
[data-holiday="active"] .hero-copy {
  position: relative;
  background: radial-gradient(ellipse at 5% 5%, #b48c4815, transparent 55%), linear-gradient(135deg, #1c2b4b, #131e38);
  padding-top: 38px;
}
[data-holiday="active"] .seasonal-greeting {
  display: flex; align-items: center; gap: 13px; width: 100%;
  color: #ead3a3; font: italic 21px Georgia, serif; margin-bottom: 30px;
}
.seasonal-greeting > span:first-child { font-style: normal; font-size: 26px; }
.greeting-rule { height: 1px; flex: 1; max-width: 100px; background: linear-gradient(90deg, #d5b87880, transparent); }
[data-holiday="active"] .hero .eyebrow { color: #dfc691; }
[data-holiday="active"] .hero .eyebrow > span { background: #d6b577; }
[data-holiday="active"] .hero .button { background: linear-gradient(110deg, #e8d5ad, #cdaa6b); color: #172440; }
[data-holiday="active"] .hero .button:hover { background: #f6e4bd; }
[data-holiday="active"] .hero-foot { border-color: #bda16b55; }
[data-holiday="active"] .hero-photo > img { filter: saturate(.35) brightness(.62); }
[data-holiday="active"] .hero-photo:after { background: linear-gradient(0deg, #101b32ed, #17244022 70%), linear-gradient(90deg, #17244040, transparent); }
[data-holiday="active"] .holiday-art { display: block; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.holiday-art svg { width: 100%; height: 100%; }
[data-holiday="active"] .photo-caption { z-index: 2; }
[data-holiday="active"] .photo-caption > span { color: #ecd6a9; }
[data-holiday="active"] .seasonal-note {
  display: flex; align-items: center; justify-content: center; gap: 25px;
  background: #f6f2e9; color: #655437; padding: 17px 24px;
  border-bottom: 1px solid #e4d9c3;
}
.seasonal-note p { margin: 0; font-size: 13px; letter-spacing: .5px; text-align: center; }
.seasonal-note em { font-family: Georgia, serif; font-size: 16px; letter-spacing: 0; margin-left: 5px; }
.seasonal-note > span { color: #a17a3e; font-size: 24px; }
@media (prefers-reduced-motion: no-preference) {
  [data-holiday="active"] .holiday-ornaments { animation: holiday-reveal 1.8s ease-out both; }
  [data-holiday="active"] .holiday-starlight { animation: holiday-reveal 2.8s ease-out both; }
  @keyframes holiday-reveal { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
}
@media (max-width: 700px) {
  [data-holiday="active"] .hero-copy { padding-top: 30px; }
  [data-holiday="active"] .seasonal-greeting { font-size: 19px; margin-bottom: 24px; }
  .seasonal-note em { display: block; margin: 4px 0 0; }
  [data-holiday="active"] .holiday-art svg { width: 100%; height: 145%; }
}

/* Evergreen and warm lights scale within the existing skyline. */
.tree-toggle { display: none; }
[data-holiday="active"] .holiday-art .christmas-tree { position: absolute; right: 3%; top: 3%; width: 70%; height: 66%; overflow: visible; }
.tree-light { filter: drop-shadow(0 0 3px #ffd487) drop-shadow(0 0 6px #edb861); }
[data-holiday="active"] .tree-toggle { display: block; position: absolute; left: 18px; bottom: 16px; z-index: 3; border: 1px solid #ead3a370; border-radius: 2px; padding: 5px 9px; color: #f5e4be; background: #14213be8; font-size: 11px; cursor: pointer; }
.tree-toggle:hover { border-color: #ead3a3; }
.tree-toggle:focus-visible, .snow-toggle:focus-visible { outline: 2px solid #fff0c7; outline-offset: 4px; }
[data-tree-lit="false"] .tree-bulbs { fill: #a89166; opacity: .45; }
[data-tree-lit="false"] .tree-light { filter: none; animation: none; }
[data-tree-lit="false"] .tree-halo { opacity: 0; }
[data-tree-lit="false"] .tree-topper { opacity: .5; }
[data-tree-lit="false"] .tree-topper circle { display: none; }
@media (prefers-reduced-motion: no-preference) {
.tree-light { animation: tree-twinkle 3.6s ease-in-out var(--delay) infinite alternate; }
@keyframes tree-twinkle { from { opacity: .55; } to { opacity: 1; } }
[data-snow-paused="true"] .tree-light, [data-snow-idle="true"] .tree-light { animation-play-state: paused; }
}
@media (max-width: 800px) {
[data-holiday="active"] .holiday-art .christmas-tree { top: auto; bottom: 17px; right: 2%; width: 46%; height: 94%; }
[data-holiday="active"] .photo-caption { left: 5%; bottom: 65px; max-width: 44%; }
[data-holiday="active"] .photo-caption > span { font-size: 9px; line-height: 1.6; display: block; }
[data-holiday="active"] .photo-caption p { font-size: clamp(25px, 4.8vw, 36px); }
}
