#assistantWelcomeDialog.assistant-welcome{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;box-sizing:border-box;border:0;border-radius:0;padding:max(1.25rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));background:#f26835;color:#fffdf5;overflow-x:hidden;overflow-y:auto;font-family:system-ui,sans-serif}
#assistantWelcomeDialog:not([open]){display:none}
#assistantWelcomeDialog::backdrop{background:#f26835}
.welcome-copy{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:.85rem;min-height:100%;max-width:27rem;margin:auto}
.welcome-logo-stage{width:min(21rem,100%);aspect-ratio:1;margin-block:-.75rem -1.25rem;flex-shrink:0}
.welcome-brand{margin:0;font-size:1.125rem;font-weight:700;letter-spacing:.01em}
.welcome-copy h1{font-size:clamp(1.7rem,7vw,2.5rem);line-height:1.16;letter-spacing:-.035em;margin:0;max-width:22rem}
.welcome-copy>p:last-of-type{font-size:1rem;line-height:1.5;margin:0;max-width:23rem;text-wrap:pretty}
.welcome-copy button{margin-top:.7rem;min-height:50px;min-width:10rem;padding:.8rem 1.5rem;border:0;border-radius:999px;background:#fffdf5;color:#84360f;font:700 1rem/1.3 system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.welcome-copy button:focus-visible{outline:3px solid #84360f;outline-offset:4px}
@keyframes welcome-leaves-white{0%,76%{fill:#39874a}93%,100%{fill:#fffdf5}}
@keyframes welcome-circle-settle{0%,63%{opacity:.55}89%,100%{opacity:1}}
@media(max-height:700px){.welcome-logo-stage{width:min(16rem,100%);margin-block:-1rem -1.5rem}.welcome-copy{gap:.7rem}.welcome-copy button{margin-top:.5rem}}

/* A brief first-arrival celebration above the usable home screen. */
#onboardingCelebration{position:fixed;z-index:1000;top:max(5rem,22dvh);left:50%;translate:-50% 0;width:min(19rem,calc(100vw - 2rem));box-sizing:border-box;padding:1rem 1.25rem 1.5rem;border:1px solid #d9e4cf;border-radius:2rem;background:#fffdf5;color:#263a2a;text-align:center;pointer-events:none;box-shadow:0 12px 48px #263a2a20;animation:celebration-arrive 340ms ease-out both}
#onboardingCelebration strong{display:block;font:750 1.4rem/1.25 system-ui,sans-serif;letter-spacing:-.025em}
#onboardingCelebration p{margin:.45rem 0 0;font:400 .95rem/1.4 system-ui,sans-serif;color:#47634c}
#onboardingCelebration .celebration-art{position:relative;width:14rem;max-width:100%;margin:0 auto -.2rem;aspect-ratio:330/265}
#onboardingCelebration .celebration-check{display:grid;place-items:center;width:2.2rem;height:2.2rem;margin:0 auto .7rem;border-radius:50%;background:#3d8748;color:#fffdf5}
#onboardingCelebration .celebration-check svg{width:1.45rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
#onboardingCelebration .celebration-confetti{position:absolute;left:calc(50% + var(--side)*85px);top:32%;width:7px;height:11px;border-radius:2px;background:var(--color);opacity:0;animation:celebration-burst 2600ms var(--delay) cubic-bezier(.2,.65,.4,1) both}
#onboardingCelebration .celebration-confetti:nth-of-type(3n){width:6px;height:6px;border-radius:50%}
#onboardingCelebration .celebration-confetti:nth-of-type(5n){width:5px;height:15px}
@keyframes celebration-arrive{from{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:none}}
@keyframes celebration-burst{0%{opacity:0;transform:translate(0,0) rotate(0)}8%{opacity:1}38%{opacity:1;transform:translate(var(--x),var(--up)) rotate(var(--spin))}100%{opacity:0;transform:translate(var(--x),var(--down)) rotate(calc(var(--spin)*2))}}
@media(prefers-reduced-motion:reduce){#onboardingCelebration,#onboardingCelebration *{animation:none!important}#onboardingCelebration .celebration-confetti{display:none}}
@media(max-height:600px){#onboardingCelebration{top:1rem;padding:.5rem 1rem 1rem}#onboardingCelebration .celebration-art{width:10rem}}
