/* Optional, non-interactive celebration layers. Never included in printed documents. */
.holiday-settings { display: grid; gap: var(--ds-gap-block); min-width: 0; }
.holiday-settings h3, .holiday-settings p { margin: 0; }
.holiday-date-row { display: flex; flex-wrap: wrap; align-items: end; gap: var(--ds-gap-control); }
.holiday-date-row > label { flex: 0 1 auto; min-width: 0; }
.holiday-date-row input { width: var(--ds-holiday-day-width); }
.holiday-date-row select { width: var(--ds-holiday-month-width); max-width: 100%; }
.holiday-settings .ds-toolbar { flex-wrap: wrap; margin: 0; }
.holiday-settings fieldset { display: grid; gap: var(--ds-gap-control); min-width: 0; margin: 0; padding: var(--ds-gap-block); border: var(--ds-border-default); border-radius: var(--ds-radius-control); }
.holiday-settings legend { font-weight: var(--ds-font-weight-bold); }
.holiday-personal-card { display: grid; gap: var(--ds-gap-control); padding: var(--ds-gap-block); border: var(--ds-border-default); border-radius: var(--ds-radius-control); background: var(--ds-surface-subtle); }
.holiday-header-art { position: absolute; inset: 0 0 auto; height: var(--ds-holiday-header-height); overflow: hidden; pointer-events: none; }
[data-holiday-new-year] .site-header { padding-block-start: var(--ds-holiday-header-height); }
.holiday-header-art svg { display: block; width: 100%; height: 100%; }
.holiday-wire { fill: none; stroke: var(--ds-holiday-evergreen); stroke-width: 2; }
.holiday-lamp { fill: var(--ds-holiday-gold); }
.holiday-lamp circle:nth-child(3n) { fill: var(--ds-holiday-coral); }
.holiday-lamp circle:nth-child(3n + 1) { fill: var(--ds-holiday-ice); }
.holiday-greeting { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--ds-holiday-scene-width)); align-items: center; gap: var(--ds-gap-block); padding: var(--ds-gap-block); margin-block: var(--ds-gap-block); border: var(--ds-border-default); border-radius: var(--ds-radius-surface); background: var(--ds-surface); color: var(--ds-text); }
.holiday-greeting-copy { display: grid; gap: var(--ds-gap-control); min-width: 0; }
.holiday-greeting h2 { margin: var(--ds-space-1) 0; font-size: var(--ds-font-size-heading-section); }
.holiday-greeting p { margin: 0; overflow-wrap: anywhere; }
#holiday-greeting-copy, #holiday-personal-copy { white-space: pre-line; }
.holiday-greeting h2 { overflow-wrap: anywhere; }
.holiday-greeting .ds-toolbar { flex-wrap: wrap; justify-content: start; margin: var(--ds-gap-control) 0 0; }
.holiday-scene { position: relative; width: 100%; height: var(--ds-holiday-scene-height); overflow: hidden; border-radius: var(--ds-radius-control); background: var(--ds-holiday-night); pointer-events: none; }
.holiday-scene > svg { display: block; width: 100%; height: 100%; }
.holiday-scene-symbol { position: absolute; inset: 0; display: grid; place-items: center; font-size: 64px; color: var(--ds-holiday-gold); }
.holiday-scene-symbol:empty { display: none; }
.holiday-winter-art, .holiday-birthday-art { position: absolute; inset: 0; }
.holiday-greeting:not([data-kind="new_year"]) .holiday-winter-art, .holiday-greeting:not([data-kind="birthday"]) .holiday-birthday-art, .holiday-greeting:not([data-kind="radio"]) .holiday-radio-art { display: none; }
.holiday-radio-waves { fill: none; stroke: var(--ds-holiday-ice); stroke-width: 1.2; opacity: .45; transform-origin: center; }
.holiday-radio-hills { fill: var(--ds-holiday-evergreen); opacity: .6; }
.holiday-radio-towers, .holiday-radio-antenna, .holiday-radio-notes { fill: none; stroke: var(--ds-holiday-gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.holiday-radio-handle { fill: none; stroke: var(--ds-holiday-coral); stroke-width: 5; }
.holiday-radio-body, .holiday-radio-note-heads { fill: var(--ds-holiday-gold); }
.holiday-radio-face, .holiday-radio-knob { fill: var(--ds-holiday-coral); stroke: var(--ds-holiday-night); stroke-width: 2; }
.holiday-radio-dial, .holiday-radio-speaker { fill: var(--ds-holiday-night); }
.holiday-radio-scale, .holiday-radio-grille { fill: none; stroke: var(--ds-holiday-ice); stroke-width: 1; opacity: .85; }
.holiday-radio-header { position: absolute; height: 100%; width: var(--ds-holiday-scene-width); left: calc(50% - var(--ds-holiday-scene-width) / 2); opacity: .5; }
:root:not([data-holiday-event="radio"]) .holiday-radio-header { display: none; }
[data-holiday-event="radio"][data-holiday-ambient-motion] .holiday-radio-waves { animation: holiday-radio-signal 5s ease-in-out infinite alternate; }
@keyframes holiday-radio-signal { from { opacity: .25; transform: scale(.96); } to { opacity: .7; transform: scale(1.03); } }
.holiday-tree { fill: var(--ds-holiday-evergreen); }
.holiday-tree-snow { fill: none; stroke: var(--ds-holiday-ice); stroke-width: 3; stroke-linecap: round; }
.holiday-moon, .holiday-snow-ground, .holiday-static-snow { fill: var(--ds-holiday-ice); }
.holiday-snow-ground { opacity: .8; }
.holiday-star, .holiday-tree-lights, .holiday-ribbon { fill: var(--ds-holiday-gold); }
.holiday-frost { fill: none; stroke: var(--ds-holiday-frost); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.holiday-gift-box { fill: var(--ds-holiday-coral); stroke: var(--ds-holiday-night); stroke-width: 2; }
.holiday-bow { fill: none; stroke: var(--ds-holiday-gold); stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.holiday-fireworks { position: absolute; inset: 0; pointer-events: none; opacity: var(--ds-holiday-spark-opacity); }
.holiday-burst { position: absolute; left: 20%; top: 42%; width: 1px; height: 1px; }
.holiday-burst:nth-child(2) { left: 50%; }
.holiday-burst:nth-child(3) { left: 80%; }
.holiday-burst i { position: absolute; width: var(--ds-space-1); height: var(--ds-space-2); border-radius: var(--ds-radius-pill); background: var(--ds-holiday-gold); opacity: 0; transform: rotate(var(--holiday-ray)) translateY(var(--ds-space-2)); }
.holiday-burst:nth-child(2) i { background: var(--ds-holiday-coral); animation-delay: .4s; }
.holiday-burst:nth-child(3) i { background: var(--ds-holiday-ice); animation-delay: .8s; }
[data-holiday-motion="animated"] .holiday-burst i { animation-name: holiday-burst; animation-duration: 3.6s; animation-timing-function: ease-out; animation-iteration-count: 1; }
[data-holiday-header-burst] #holiday-header-fireworks .holiday-burst i { animation-name: holiday-burst; animation-duration: 3.6s; animation-timing-function: ease-out; animation-iteration-count: 1; }
@keyframes holiday-burst { 0% { opacity: 1; } 35% { opacity: 1; } 100% { opacity: 0; transform: rotate(var(--holiday-ray)) translateY(calc(-1 * var(--ds-holiday-burst-radius))) scale(.4); } }
.holiday-snow { position: absolute; inset: 0; overflow: hidden; pointer-events: none; --holiday-snow-distance: var(--ds-holiday-scene-height); }
.holiday-header-art .holiday-snow { --holiday-snow-distance: var(--ds-holiday-header-height); }
.holiday-snow i { position: absolute; left: var(--holiday-snow-x); top: 0; width: var(--ds-space-1); height: var(--ds-space-1); border-radius: var(--ds-radius-pill); background: var(--ds-holiday-ice); animation: holiday-snowfall var(--holiday-snow-duration) linear var(--holiday-snow-delay) infinite; }
.holiday-snow i:nth-child(3n) { width: 2px; height: 2px; }
.holiday-settings-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--ds-gap-block); }
.holiday-weather-fields { display: flex; flex-wrap: wrap; gap: var(--ds-gap-control); align-items: end; }
.holiday-weather-fields > label { flex: 1 1 150px; min-width: 0; }
.holiday-preferences-compact { align-self: start; }
.holiday-preferences-compact .check { margin: 0; }
.holiday-preferences-compact [role="status"]:empty { display: none; }
.holiday-custom-events { display: grid; gap: var(--ds-gap-block); margin-block: var(--ds-gap-block); }
.holiday-custom-event { display: flex; flex-wrap: wrap; align-items: end; gap: var(--ds-gap-control); padding: var(--ds-gap-control); border: var(--ds-border-default); border-radius: var(--ds-radius-control); }
.holiday-custom-event > label { flex: 1 1 120px; min-width: 0; }
.holiday-custom-event > label:first-child { flex-basis: 240px; }
.holiday-custom-event > .holiday-event-text, .holiday-custom-event > .holiday-event-actions { flex-basis: 100%; }
.holiday-custom-event input, .holiday-custom-event select, .holiday-custom-event textarea { max-width: 100%; width: 100%; }
.holiday-custom-event input[type="checkbox"] { width: auto; }
.holiday-event-actions { justify-content: flex-end; }
.holiday-viewport-effects { position: fixed; inset: 0; z-index: var(--ds-holiday-overlay-z); pointer-events: none; overflow: hidden; contain: strict; }
.holiday-viewport-effects .holiday-snow { --holiday-snow-distance: 100vh; opacity: .5; }
.holiday-viewport-effects .holiday-fireworks { --ds-holiday-burst-radius: var(--ds-holiday-viewport-burst-radius); }
.holiday-viewport-effects .holiday-burst:nth-child(2) { top: 72%; }
.holiday-viewport-effects .holiday-burst:nth-child(3) { top: 24%; }
.holiday-header-effects { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.holiday-header-effects .holiday-snow { --holiday-snow-distance: 120px; }
.holiday-header-effects .holiday-burst { top: 60%; }
.holiday-corner-frost { position: absolute; inset: 0; opacity: var(--holiday-frost-opacity, 0); pointer-events: none; }
.holiday-ice-crystal { position: absolute; width: var(--ds-holiday-frost-size); height: var(--ds-holiday-frost-size); fill: none; stroke: var(--ds-holiday-ice); stroke-linecap: round; opacity: .9; }
.holiday-frost-stem { stroke: var(--ds-holiday-frost); stroke-width: 1.3; }
.holiday-frost-feather { stroke-width: .7; }
[data-theme="light"] .holiday-frost-feather { stroke: var(--ds-holiday-frost); }
.holiday-ice-nw { top: 0; left: 0; }
.holiday-ice-ne { top: 0; right: 0; transform: scaleX(-1); }
.holiday-ice-sw { bottom: 0; left: 0; transform: scaleY(-1); }
.holiday-ice-se { bottom: 0; right: 0; transform: rotate(180deg); }
[data-holiday-new-year] .site-brand strong, [data-holiday-new-year] .header-tools > button, #current-user-label { position: relative; }
[data-holiday-new-year] .header-tools > button, [data-holiday-new-year] #site-mark { box-shadow: inset 0 0 calc(var(--holiday-frost-level, 0) * 3px) var(--ds-holiday-frost); }
[data-holiday-new-year] #site-mark { overflow: visible; }
[data-holiday-new-year] .site-brand strong { width: fit-content; }
[data-holiday-new-year] #site-mark::after, [data-holiday-new-year] .site-brand strong::after { z-index: 1; }
[data-holiday-new-year] #site-mark::after, [data-holiday-new-year] .site-brand strong::after, [data-holiday-new-year] .header-tools > button::after { content: ''; position: absolute; pointer-events: none; top: calc(-1 * var(--ds-holiday-snow-cap-height) / 2); left: 0; right: 0; height: var(--ds-holiday-snow-cap-height); background: radial-gradient(ellipse 15px 4px at 16px 55%, var(--ds-holiday-ice) 95%, transparent 100%), radial-gradient(ellipse 9px 3px at 39px 70%, var(--ds-holiday-ice) 95%, transparent 100%); background-size: 58px 100%; background-repeat: repeat-x; opacity: var(--holiday-snow-cap-opacity, .8); transform-origin: bottom; }
[data-holiday-new-year] .site-brand strong::after { top: calc(-1 * var(--ds-holiday-snow-cap-height) * .7); background-position: 5px 0, 5px 0; }
[data-holiday-new-year] .header-tools > button:nth-of-type(2n)::after { background-position: -11px 0, -11px 0; }
[data-holiday-new-year][data-holiday-ambient-motion] #site-mark::after, [data-holiday-new-year][data-holiday-ambient-motion] .site-brand strong::after, [data-holiday-new-year][data-holiday-ambient-motion] .header-tools > button::after { animation: holiday-snow-cap var(--ds-holiday-snow-cap-duration) ease-out both; }
[data-holiday-new-year] .header-tools > button:nth-of-type(2n)::after { animation-delay: 2s; }
[data-holiday-new-year] .header-tools > button:nth-of-type(3n)::after { animation-delay: 4s; }
@keyframes holiday-snow-cap { from { transform: scaleY(0); opacity: 0; } to { transform: scaleY(1); opacity: var(--holiday-snow-cap-opacity, .8); } }
#current-user-label { display: inline-block; }
[data-holiday-birthday] #current-user-label::before { content: ''; position: absolute; left: -.2em; top: -.65em; width: .8em; height: 1em; background: repeating-linear-gradient(25deg, var(--ds-holiday-coral) 0 3px, var(--ds-holiday-gold) 3px 5px); clip-path: polygon(50% 0, 100% 100%, 0 100%); transform: rotate(-18deg); pointer-events: none; }
.holiday-event-mark { position: absolute; right: 40%; top: 20%; color: var(--ds-holiday-gold); font-size: var(--ds-font-size-heading-section); opacity: .75; }
[data-holiday-event="cosmonautics"][data-holiday-ambient-motion] .holiday-event-mark { animation: holiday-orbit 16s ease-in-out infinite alternate; }
[data-holiday-event="radio"][data-holiday-ambient-motion] .holiday-event-mark { animation: holiday-radio 5s ease-in-out infinite alternate; }
@keyframes holiday-orbit { from { transform: translateX(-8vw) rotate(-12deg); } to { transform: translateX(8vw) rotate(12deg); } }
@keyframes holiday-radio { from { transform: scale(.85); } to { transform: scale(1.05); } }
.holiday-viewport-effects[hidden], .holiday-header-effects[hidden], .holiday-event-mark:empty { display: none !important; }
@keyframes holiday-snowfall { from { opacity: .8; transform: translate(0, -8px); } to { opacity: .2; transform: translate(8px, var(--holiday-snow-distance)); } }
#holiday-gift[hidden], .holiday-header-art[hidden], .holiday-greeting[hidden], .holiday-fireworks[hidden], .holiday-snow[hidden], #holiday-motion-toggle[hidden], .holiday-personal-card[hidden], [data-holiday-stop][hidden] { display: none !important; }
@media (max-width: 760px) { .holiday-greeting { grid-template-columns: minmax(0, 1fr); } .holiday-scene { max-width: var(--ds-holiday-scene-width); justify-self: center; } .holiday-radio-header { display: none; } }
@media (prefers-reduced-motion: reduce) { .holiday-burst i, .holiday-snow i, .holiday-event-mark, .holiday-radio-waves, [data-holiday-new-year] #site-mark::after, [data-holiday-new-year] .site-brand strong::after, [data-holiday-new-year] .header-tools > button::after { animation: none !important; } .holiday-fireworks, .holiday-snow { display: none !important; } }
@media print { #holiday-greeting, #holiday-header-art, #holiday-gift, .holiday-settings, .holiday-header-effects, .holiday-viewport-effects { display: none !important; } [data-holiday-new-year] #site-mark::after, [data-holiday-new-year] .site-brand strong::after, [data-holiday-new-year] .header-tools > button::after, [data-holiday-birthday] #current-user-label::before { display: none; } [data-holiday-new-year] .site-header { padding-block-start: 0; } }
