/* V55 progressive enhancement. Controls remain native, accessible and keyboard reachable. */
#welcome .v47-secret-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(7px,1.7vw,15px);position:relative;z-index:8}
#welcome .v47-secret-bar button,#welcome .secret-note{min-height:44px;min-width:44px;border:1px solid rgba(239,209,151,.43)!important;border-radius:999px!important;background:linear-gradient(135deg,rgba(64,42,35,.69),rgba(22,36,53,.76))!important;color:#fff0cf!important;box-shadow:inset 0 1px rgba(255,239,193,.18),0 3px 13px rgba(11,19,35,.18)!important;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:transform .2s ease,background-color .2s ease,border-color .2s ease!important;touch-action:manipulation}
#welcome .v47-secret-bar button:active,#welcome .secret-note:active{transform:scale(.96)!important}
#welcome .v47-secret-bar button:focus-visible,#welcome .secret-note:focus-visible,#welcome #sleigh:focus-visible{outline:3px solid #ffe3a2;outline-offset:4px}
#welcome .sleigh-label{border:1px solid rgba(246,219,156,.48);background:linear-gradient(110deg,rgba(41,33,31,.7),rgba(26,44,56,.66));border-radius:999px;box-shadow:0 4px 22px #101b3033;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.v55-scenery{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1;contain:layout style}
.v55-window{position:absolute;left:var(--x);top:var(--y);width:clamp(3px,.6vw,7px);height:clamp(5px,1vw,10px);background:#f9cb72;border-radius:2px;opacity:.24;animation:v55Window var(--duration) ease-in-out var(--delay) infinite alternate;box-shadow:0 0 8px 2px #ffc56a55}
@keyframes v55Window{from{opacity:.12}to{opacity:.66}}
.v55-spark{position:absolute;left:var(--x);top:var(--y);height:3px;width:3px;background:#ffe6ae;border-radius:50%;opacity:0;animation:v55Spark 8s ease-in-out var(--delay) infinite}
@keyframes v55Spark{0%,76%,100%{opacity:0;transform:scale(.5)}82%{opacity:.8;transform:scale(1.5)}90%{opacity:.2;transform:scale(.8)}}
.v55-comet{position:absolute;left:75%;top:14%;height:2px;width:65px;border-radius:100%;background:linear-gradient(90deg,transparent,#f5cf84,#fff9dd);opacity:0;transform:translate3d(0,0,0) rotate(-25deg);pointer-events:none}
.v55-comet.v55-play{animation:v55Comet 1.3s ease-out 1 both}
@keyframes v55Comet{0%{opacity:0;transform:translate3d(0,0,0) rotate(-25deg)}18%{opacity:.8}100%{opacity:0;transform:translate3d(-170px,95px,0) rotate(-25deg)}}
#days .day .gift-box{will-change:auto;transition:transform .28s ease,opacity .28s ease!important}
#days .day:active .gift-box{transform:translateY(2px) scale(.97)}
#modal:not(.hidden) .letter{animation-duration:.55s}
#modal .letter{max-height:min(90dvh,850px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#modal .letter h2{letter-spacing:.015em;line-height:1.14}
#modal .letter p{line-height:1.65}
#calendar .memory-actions button,#calendar #extras-toggle{min-height:44px;touch-action:manipulation}
.v55-finale-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 18%,rgba(255,211,121,.24),transparent 60%);opacity:0;transition:opacity 3s ease}
#finale:not(.hidden) .v55-finale-light{opacity:1}
@media (orientation:portrait){.v55-window{top:calc(var(--y) + 9%)}}
@media (max-width:520px){#welcome .v47-secret-bar{gap:7px}#welcome .v47-secret-bar button{font-size:clamp(11px,3vw,14px);padding:8px 10px}}
@media (prefers-reduced-motion:reduce){.v55-window,.v55-spark,.v55-comet{animation:none!important}.v55-window{opacity:.22}.v55-spark,.v55-comet{display:none}#modal:not(.hidden) .letter{animation:none!important}}
body.reduced .v55-window,body.reduced .v55-spark,body.reduced .v55-comet{animation:none!important}body.reduced .v55-spark,body.reduced .v55-comet{display:none}
body.v55-paused .v55-window,body.v55-paused .v55-spark,body.v55-paused .v55-comet{animation-play-state:paused!important}
