.vis{display:block}.vis.pulse{animation:1s ease-in-out infinite v-pulse}@keyframes v-pulse{50%{transform:scale(1.04)}}.v-ring .ring-arc{transition:stroke-dashoffset .25s linear}.v-hourglass .hg-stream{transition:opacity .3s}.v-egg .egg-body{transform-origin:100px 198px}.v-egg.wobble .egg-body{animation:.35s ease-in-out infinite alternate egg-wobble}@keyframes egg-wobble{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.v-egg .egg-bubbles circle{opacity:0}.v-egg.boiling .egg-bubbles circle{animation:2.4s ease-in infinite bubble}@keyframes bubble{0%{opacity:0;transform:translateY(0)}20%{opacity:.9}to{opacity:0;transform:translateY(-150px)}}.v-egg .egg-crack,.v-egg .egg-yolk{opacity:0;transition:opacity .3s}.v-egg.cracked .egg-crack{opacity:1}.v-egg.cracked .egg-yolk{opacity:1;animation:.6s ease-out yolk-pop}.v-egg.cracked .egg-face{opacity:0}@keyframes yolk-pop{0%{transform:translateY(30px)scale(.4)}}.v-egg .egg-yolk{transform-origin:100px 104px}.v-candle .c-flame{transform-box:fill-box}.v-candle .c-flame path{transform-origin:100px 50px;animation:1.1s ease-in-out infinite alternate flicker}.v-candle .c-flame path+path{animation-duration:.7s}@keyframes flicker{0%{transform:scale(1)skew(0)}50%{transform:scale(.94,1.08)skew(2deg)}to{transform:scale(1.04,.95)skew(-2deg)}}.v-candle .c-glow{animation:2s ease-in-out infinite alternate glow}@keyframes glow{to{opacity:.6}}.v-candle .c-smoke,.v-candle.out .c-flame,.v-candle.out .c-glow{opacity:0}.v-candle.out .c-smoke{opacity:.8;animation:3s ease-out forwards smoke}@keyframes smoke{to{opacity:0;transform:translateY(-30px)}}.v-bomb .b-spark{animation:.25s linear infinite alternate spark}@keyframes spark{to{opacity:.55}}.v-bomb .b-boom{opacity:0;transform-origin:110px 108px}.v-bomb.exploded .b-body,.v-bomb.exploded .b-spark{opacity:0}.v-bomb.exploded .b-boom{opacity:1;animation:.5s cubic-bezier(.2,1.6,.4,1) boom}@keyframes boom{0%{transform:scale(.1)rotate(-30deg)}}.v-race .racer.win text{animation:.45s ease-in-out infinite alternate hop}@keyframes hop{to{transform:translateY(-8px)}}.v-balloon .bl-float{animation:3s ease-in-out infinite alternate float}@keyframes float{to{transform:translateY(-6px)}}.v-balloon.shake .bl-ball{animation:.12s linear infinite shake}@keyframes shake{50%{translate:2px -1px}}.v-balloon .bl-burst{opacity:0;transform-origin:100px 100px}.v-balloon.popped .bl-ball,.v-balloon.popped .bl-float path{opacity:0}.v-balloon.popped .bl-burst{opacity:1;animation:.45s ease-out forwards burst}@keyframes burst{0%{transform:scale(.3)}to{opacity:.2;transform:scale(1.1)}}.v-rocket .r-stars circle{animation:2.5s ease-in-out infinite alternate twinkle}@keyframes twinkle{to{opacity:.25}}.v-rocket .r-flame,.v-rocket .r-smoke{opacity:0}.v-rocket.ignite .r-flame{opacity:1;transform-origin:100px 196px;animation:.12s linear infinite alternate flame}@keyframes flame{to{transform:scaleY(1.25)}}.v-rocket.ignite .r-smoke{opacity:1;animation:1.4s ease-in-out infinite alternate puff}@keyframes puff{to{transform:scale(1.08)}}.v-rocket.ignite .r-ship{animation:80ms linear infinite rumble}@keyframes rumble{50%{transform:translate(1.5px)}}.v-rocket.launch .r-flame{opacity:1;transform-origin:100px 196px;transform:scaleY(1.6)}.v-rocket.launch .r-smoke{opacity:1}.v-rocket.launch .r-ship{transition:transform 2.6s cubic-bezier(.55,0,.9,.4);transform:translateY(-420px)}.stage-visual.chalkbar{aspect-ratio:16/3;width:min(100%,520px)}.v-traffic .lamp{opacity:.22;transition:opacity .3s}.v-traffic .lamp .glow{opacity:0}.v-traffic .lamp.on,.v-traffic .lamp.on .glow{opacity:1}.v-traffic.blink .lamp.on{animation:1s steps(2,start) infinite blink-l}@keyframes blink-l{to{opacity:.2}}.stage.v-chalk{box-shadow:inset 0 0 40px #00000059, var(--shadow);border:14px solid #8b5a2b}.stage.v-chalk .stage-time{text-shadow:0 0 2px #fff9,2px 2px #ffffff14;font-family:Segoe Print,Chalkboard SE,Comic Sans MS,Bradley Hand,cursive;font-size:clamp(4rem,18vw,9.5rem);font-weight:700}.v-dial .hand,.v-clock .hand{transform-origin:100px 100px}.v-clock.ringing{animation:.1s linear infinite ring-shake}@keyframes ring-shake{25%{transform:rotate(4deg)}75%{transform:rotate(-4deg)}}.v-tomato .ring-arc{transition:stroke-dashoffset .25s linear}.deco{pointer-events:none;z-index:-1;position:absolute;inset:0;overflow:hidden}.deco span{opacity:.85;font-size:1.4rem;animation:linear infinite fall;position:absolute;top:-10%}@keyframes fall{to{transform:translateY(120vh)rotate(360deg)}}.deco.rise span{animation-name:rise;top:auto;bottom:-10%}@keyframes rise{to{transform:translateY(-120vh)rotate(-20deg)}}.deco.still span{animation:4s ease-in-out infinite alternate sway}@keyframes sway{to{transform:translateY(-10px)rotate(6deg)}}.fw{pointer-events:none;position:absolute;inset:0}.event-stage{align-items:center;min-height:380px;display:grid}.ev-icon{filter:drop-shadow(0 4px 10px #00000040);font-size:clamp(3rem,10vw,4.5rem);line-height:1}.dhms{direction:ltr;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(6px,2vw,16px);width:min(100%,640px);display:grid}.dhms>div{background:color-mix(in srgb, var(--s-fg) 12%, transparent);border-radius:18px;gap:2px;padding:12px 4px;display:grid}.dhms b{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(2rem,9vw,4.4rem);line-height:1.05}.dhms span{text-transform:uppercase;letter-spacing:.04em;opacity:.9;font-size:clamp(.75rem,2.4vw,.95rem);font-weight:700}.ev-on{margin:0;font-size:1.1rem;font-weight:700}.celebrate{text-align:center;z-index:2;justify-items:center;gap:10px;padding:8px 0 4px;display:grid;position:relative}.cel-icon{filter:drop-shadow(0 8px 18px #0000004d);font-size:clamp(5rem,18vw,8.5rem);line-height:1;animation:1.3s ease-in-out infinite cel-bounce}@keyframes cel-bounce{50%{transform:translateY(-14px)rotate(-4deg)scale(1.06)}}.cel-title{margin:0;font-size:clamp(2rem,7.5vw,3.8rem);line-height:1.1}.cel-enjoy{max-width:30ch;margin:0;font-size:clamp(1.1rem,3.6vw,1.55rem);font-weight:700}.cel-date{opacity:.9;margin:0;font-weight:600}.event-stage.is-today .dhms,.event-stage.is-today .ev-icon,.event-stage.is-today .ev-on{display:none}.event-stage.is-today{animation:3s ease-in-out infinite alternate cel-glow}@keyframes cel-glow{to{box-shadow:0 0 0 6px color-mix(in srgb, var(--s-acc) 45%, transparent), var(--shadow)}}.fw.confetti{z-index:1}.cel-title,.cel-enjoy{text-shadow:0 2px 10px #0000004d}.ev-extra{margin-top:24px}.ev-upcoming{padding-inline-start:1.2em}.stage:fullscreen .dhms{width:min(92vw,150vh)}.stage:fullscreen .dhms b{font-size:min(13vw,22vh)}
