*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{color:#333;background-color:#fff;width:100%;min-height:100dvh}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}#root{width:100%;min-height:100dvh}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:1rem;display:flex;position:relative;overflow:hidden}.app--finale{cursor:default}.birthday-text{color:#333;text-align:center;word-break:break-word;font-weight:700;line-height:1.1;transition:font-size .8s cubic-bezier(.25,.46,.45,.94)}.quip{color:#999;text-align:center;opacity:0;max-width:80%;margin-top:2rem;font-size:clamp(.85rem,3vw,1.1rem);font-style:italic;font-weight:300;transition:opacity .4s}.quip--visible{opacity:1}.hint{color:#ccc;letter-spacing:.15em;text-transform:uppercase;font-size:.75rem;animation:2s ease-in-out infinite pulse;position:absolute;bottom:2rem}.birthday-text--fade-out{animation:.8s forwards fadeOut}.closing{color:#333;text-align:center;opacity:0;font-size:clamp(1rem,4vw,1.4rem);font-weight:300;line-height:1.6;animation:1.5s forwards fadeSlideUp}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}
