/* Holiday modals. Type and shapes only. */
.hol-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:holfade .4s ease}
.hol{position:relative;width:min(640px,100%);max-height:92vh;overflow:hidden;border-radius:14px;color:var(--hfg,#F7F6F3);background:var(--hbg,#141414);box-shadow:0 20px 60px rgba(0,0,0,.5);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;animation:holin .5s cubic-bezier(.2,.8,.2,1)}
.hol .scene{position:relative;height:260px;overflow:hidden;background:var(--hscene,#1a1a1a)}
.hol .scene svg{width:100%;height:100%;display:block}
.hol .text{padding:18px 22px 22px}
.hol .kicker{font-family:"Courier New",monospace;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;opacity:.8}
.hol h2{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:2.2rem;letter-spacing:1px;margin:4px 0 8px;line-height:1.05;text-transform:uppercase}
.hol p{margin:0 0 6px;font-size:1rem;line-height:1.45}
.hol .note{font-size:.85rem;opacity:.75}
.hol .close{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.4);color:#fff;border:0;border-radius:50%;width:40px;height:40px;font-size:1.3rem;cursor:pointer;min-height:40px;min-width:40px}
.hol .bar{position:absolute;left:0;bottom:0;height:4px;background:var(--hacc,#E8590C);width:100%;transform-origin:left;animation:holbar var(--hdur,7s) linear forwards}
.hol.solemn .bar{background:#777}
.hol.solemn{--hbg:#1b1b1b;--hfg:#e8e6e1}
@keyframes holfade{from{opacity:0}to{opacity:1}}
@keyframes holin{from{transform:translateY(24px) scale(.97);opacity:0}to{transform:none;opacity:1}}
@keyframes holbar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
/* scenes */
@keyframes burst{0%{transform:scale(0);opacity:1}70%{opacity:1}100%{transform:scale(1);opacity:0}}
.fw{transform-box:fill-box;transform-origin:center;animation:burst 1.6s ease-out infinite}
@keyframes rise{from{transform:translateY(120px);opacity:0}to{transform:none;opacity:1}}
.rise{animation:rise 1.2s ease-out both}
@keyframes unfurl{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.unfurl{transform-origin:left;animation:unfurl 1.4s ease-out both}
@keyframes stamp{0%{transform:scale(3);opacity:0}60%{transform:scale(.95);opacity:1}100%{transform:scale(1);opacity:1}}
.stamp{transform-box:fill-box;transform-origin:center;animation:stamp .6s 1.3s ease-out both}
@keyframes sweep{from{transform:translateX(-700px)}to{transform:translateX(700px)}}
.sweep{animation:sweep 6s linear infinite}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.grow{transform-origin:bottom;animation:grow 2s ease-out both}
@keyframes dawn{from{opacity:0}to{opacity:1}}
.dawn{animation:dawn 4s ease-in both}
@keyframes hand{from{transform:rotate(0)}to{transform:rotate(108deg)}}
.hand{transform-box:fill-box;transform-origin:50% 100%;animation:hand 5s linear both}
@keyframes appear{from{opacity:0}to{opacity:1}}
.appear{animation:appear .5s both}
@keyframes lower{from{transform:translateY(0)}to{transform:translateY(70px)}}
.lower{animation:lower 4s 1s ease-in-out both}
@keyframes type{from{width:0}to{width:100%}}
.typewriter{font-family:"Courier New",monospace;white-space:nowrap;overflow:hidden;border-right:2px solid currentColor;animation:type 5s steps(60) both}
@keyframes fall{0%{transform:translateY(-30px) rotate(0)}100%{transform:translateY(300px) rotate(360deg)}}
.fall{animation:fall 5s linear infinite}
@keyframes snow{0%{transform:translateY(-20px)}100%{transform:translateY(290px)}}
.snow{animation:snow 6s linear infinite}
@keyframes wave{0%{transform:translateX(0)}100%{transform:translateX(-140px)}}
.wave{animation:wave 3s linear infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.bob{animation:bob 2.5s ease-in-out infinite}
@keyframes flicker{0%,100%{opacity:1}50%{opacity:.7}}
.flicker{animation:flicker 1.2s ease-in-out infinite}
@keyframes glow{0%{opacity:.2}100%{opacity:1}}
.glow{animation:glow 3s ease-in both}
@keyframes march{from{transform:translateX(-60px)}to{transform:translateX(520px)}}
.march{animation:march 7s linear both}
@keyframes assemble{from{transform:translate(var(--dx),var(--dy)) rotate(90deg);opacity:0}to{transform:none;opacity:1}}
.assemble{transform-box:fill-box;transform-origin:center;animation:assemble 1.2s ease-out both}
@media (prefers-reduced-motion:reduce){.hol *{animation:none!important}.hol .bar{display:none}}
