:root{--blue:#002fa7;--blue-ink:#002fa7;--yellow:#ffd33d;--ink:#152139;--muted:#556074;--line:#e2e7ef;--white:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--ink);background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a,button,summary,select{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue-ink);outline-offset:5px}p,h1,h2,h3{margin:0}img{display:block;width:100%;height:100%;object-fit:cover}picture{display:block}button,summary{cursor:pointer}button{border:0}p{line-height:1.65}h1,h2,h3{text-wrap:balance}h1,h2{letter-spacing:-.04em}h2{font-size:clamp(2.3rem,4.1vw,3.6rem);line-height:1.1;font-weight:650}h3{font-size:1.25rem;line-height:1.3;letter-spacing:-.025em}strong{font-weight:650}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.blue{color:var(--blue-ink)}.section{padding-block:104px}.eyebrow{font-size:.82rem;font-weight:700;letter-spacing:.02em;margin-bottom:22px}.section-intro{font-size:1.125rem;color:var(--muted);margin-top:24px;max-width:580px}.skip{position:fixed;top:-100px;left:16px;z-index:20;padding:16px;background:var(--yellow);border-radius:8px}.skip:focus{top:12px}.header{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:10}.nav{height:92px;display:flex;align-items:center;gap:45px}.brand{display:inline-flex;align-items:center;gap:11px;font-size:1.45rem;font-weight:750;letter-spacing:-.055em;white-space:nowrap}.brand-period{color:var(--blue)}.brand-mark{display:block;flex:none;width:36px;height:36px;object-fit:contain}.nav-links{display:flex;gap:30px;margin-left:auto;font-size:.875rem;font-weight:550}.nav-links a{display:inline-flex;align-items:center;min-height:44px}.nav-links a:hover{color:var(--blue-ink)}.language{position:relative;margin-left:auto;font-size:.875rem}.nav-links+.language{margin-left:0}.language summary{list-style:none;display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 0 8px 10px}.language summary::-webkit-details-marker{display:none}.chevron{width:6px;height:6px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg);margin-left:7px;margin-top:-4px}.language-menu{position:absolute;right:0;top:calc(100% + 8px);width:160px;max-height:min(70vh,440px);overflow-y:auto;overscroll-behavior:contain;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px #15213913}.language-menu a{display:flex;justify-content:space-between;padding:12px;border-radius:7px}.language-menu a:hover,.language-menu a[aria-current]{background:#f0f5ff;color:var(--blue-ink)}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:60px;align-items:center;padding-block:58px 64px}.hero-copy{padding-block:12px}.hero .eyebrow{display:flex;align-items:center;gap:10px;letter-spacing:.02em;font-size:.75rem;margin-bottom:24px}.small-sun{font-size:28px;line-height:1;color:var(--blue);background:var(--yellow);border-radius:50%;width:31px;height:31px;display:grid;place-items:center}.hero h1{font-size:clamp(3.4rem,5.8vw,5.45rem);line-height:1.015;font-weight:680;margin-bottom:30px}.hero h1>span{color:var(--blue)}.tagline{font-size:clamp(1.3rem,2vw,1.65rem);font-weight:600;line-height:1.38;letter-spacing:-.025em;margin-bottom:18px}.hero-intro{max-width:490px;font-size:1.05rem;color:var(--muted);line-height:1.7;margin-bottom:27px}.button{min-height:54px;display:inline-flex;justify-content:center;align-items:center;border-radius:100px;padding:15px 27px;font-size:.94rem;font-weight:650;line-height:1.4;text-align:center;transition:background .18s,transform .18s}.button:hover{transform:translateY(-2px)}.primary{color:#fff;background:var(--blue-ink)}.primary:hover{background:#002585}.dark{background:var(--ink);color:#fff}.dark:hover{background:#253f67}.button:disabled{opacity:.7;cursor:wait;transform:none}.hero-note{font-size:.8rem;color:var(--muted);margin-top:15px}.hero-visual{position:relative;min-width:0;align-self:stretch;min-height:550px}.hero-visual picture{height:100%;overflow:hidden;border-radius:24px 24px 100px 24px}.hero-visual img{object-position:62% 50%;position:absolute;inset:0;border-radius:24px 24px 100px 24px}.photo-note{position:absolute;bottom:28px;left:-27px;background:var(--yellow);display:flex;align-items:center;gap:13px;padding:18px 22px;border-radius:15px;transform:rotate(-3deg);box-shadow:0 4px 15px #1521390d}.photo-note>span{font-size:43px;line-height:1}.photo-note p{font-size:.84rem;line-height:1.5}.facts{border-block:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding-block:27px}.facts>div{display:flex;flex-direction:column;gap:5px;padding-left:42px;border-left:1px solid var(--line)}.facts>div:first-child{padding-left:0;border:0}.facts strong{font-size:1.35rem;letter-spacing:-.03em}.facts span{font-size:.86rem;color:var(--muted)}.familiar{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.familiar-visual{height:590px}.familiar-visual picture{height:100%;border-radius:24px;overflow:hidden}.familiar-visual img{object-position:54% 50%}.familiar h2{font-size:clamp(2.25rem,3.2vw,3.1rem)}.struggles{margin-top:30px}.struggles>div{display:flex;gap:18px;margin-top:24px}.little-line{width:22px;flex:none;height:4px;background:var(--yellow);margin-top:12px;border-radius:3px}.struggles h3{font-size:1.12rem;margin-bottom:5px}.struggles p{color:var(--muted);font-size:.95rem}.bridge{padding-block:76px;background:var(--blue);text-align:center;color:#fff}.bridge-mark{font-size:53px;line-height:1;color:var(--yellow);margin-bottom:25px}.bridge h2{font-size:clamp(2.6rem,5.3vw,4.75rem)}.bridge h2 span{color:var(--yellow)}.bridge .wrap>p:last-child{max-width:555px;margin:26px auto 0;font-size:1.15rem;line-height:1.7}.how{padding-bottom:88px}.how>h2{max-width:670px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;margin-top:52px}.step-number{color:var(--blue-ink);font-size:.9rem;font-weight:650;display:block;border-top:2px solid var(--blue);padding-top:20px;margin-bottom:27px}.steps h3{font-size:1.5rem;margin-bottom:16px}.steps p{color:var(--muted);font-size:1rem}.program{display:grid;grid-template-columns:1.3fr 1fr;gap:110px;border-top:1px solid var(--line);align-items:center}.includes{list-style:none;padding:0;margin:30px 0;display:grid;gap:16px}.includes li{display:flex;align-items:baseline;gap:13px;line-height:1.6;font-size:1rem}.includes li span{color:var(--blue-ink);font-weight:700}.commitment{font-size:.88rem;color:var(--muted);max-width:550px}.price-card{background:var(--yellow);border-radius:24px;padding:38px;text-align:center;position:relative}.price-sun{font-size:56px;display:block;line-height:1;margin-bottom:28px}.price-card .eyebrow{font-size:.72rem;margin-bottom:12px}.price{font-size:5.3rem;letter-spacing:-.07em;font-weight:650;line-height:1.2}.price-note{font-size:.98rem;margin:9px 0 24px}.currency-control{display:flex;justify-content:center;align-items:center;gap:12px;font-size:.8rem}.currency-control select{background:transparent;border:1px solid #7e6717;padding:8px;border-radius:7px;min-height:44px;color:var(--ink)}.currency-note{font-size:.75rem;margin-top:10px}.price-card .button{width:100%;margin-top:28px}.price-help{font-size:.8rem;margin-top:15px}.team{border-top:1px solid var(--line)}.section-heading{max-width:800px}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:42px}.portrait{aspect-ratio:3/4;background:#eef0f3;border-radius:14px;display:flex;align-items:flex-end;padding:0;overflow:hidden;color:#647083}.portrait span{font-size:.8rem;padding:18px}.portrait img{object-position:center center}.team-grid article{min-width:0}.team-grid h3{margin-top:23px;font-size:1.35rem}.team-grid p{color:var(--muted);font-size:.88rem;margin-top:12px}.faq{border-top:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.2fr;gap:75px}.faq .eyebrow{max-width:250px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;font-size:1.08rem;font-weight:600;line-height:1.4}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:1.5rem;font-weight:400;color:var(--blue-ink);flex:none}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{padding:0 28px 25px 0;color:var(--muted);font-size:1rem}.join-section{background:var(--blue);color:white;padding-block:88px;scroll-margin-top:0}.join{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.join-star{display:block;font-size:65px;line-height:1;color:var(--yellow);margin-bottom:30px}.join-copy h2{font-size:clamp(2.7rem,4.2vw,4rem);margin-bottom:25px}.join-copy>p:not(.eyebrow){font-size:1.1rem;max-width:500px}.join-price{display:flex;gap:20px;align-items:center;margin-top:34px}.join-price strong{font-size:2.7rem;letter-spacing:-.06em;color:var(--yellow)}.join-price>span{font-size:.8rem;line-height:1.6}.form-shell{background:#fff;color:var(--ink);border-radius:22px;padding:34px}.field{margin-bottom:22px}.field>label{display:block;font-size:.88rem;font-weight:600;line-height:1.5;margin-bottom:9px}.field>label span{font-weight:400;color:var(--muted)}.field input,.field select,.field textarea{display:block;width:100%;padding:13px 14px;min-height:50px;background:#fff;border:1px solid #a8b1c0;border-radius:8px;color:var(--ink);font-size:1rem}.field textarea{resize:vertical;min-height:104px;line-height:1.5}.field input::placeholder,.field textarea::placeholder{color:#667184;opacity:1}.field textarea::placeholder{font-size:.875rem}.form-shell .button{width:100%}.form-note{font-size:.78rem;text-align:center;margin-top:14px;color:var(--muted)}.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-error{font-size:.88rem;color:#a32020;margin-bottom:20px}.success{padding-block:45px}.success>span{display:grid;place-items:center;background:var(--yellow);width:65px;height:65px;border-radius:50%;font-size:30px;margin-bottom:24px}.success h3{font-size:2.1rem;margin-bottom:20px}.success p{color:var(--muted)}[hidden]{display:none!important}.footer{display:flex;justify-content:space-between;align-items:center;padding-block:42px;gap:25px}.footer p{font-size:.8rem;color:var(--muted);margin-top:10px}.footer>div:last-child{text-align:right}.footer>div:last-child>a{font-size:.9rem;font-weight:550}.footer a:hover{color:var(--blue-ink)}html:not([lang=en]) .hero h1{font-size:clamp(3.1rem,4.7vw,4.6rem)}
@media(min-width:1600px){.hero{padding-block:75px}.hero-visual{min-height:610px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{gap:35px}.hero h1{font-size:4.2rem}.nav-links{gap:22px}.familiar{gap:45px}.program{gap:55px}.join{gap:55px}.price-card{padding:28px}.steps{gap:30px}.team-grid{gap:20px}.faq{gap:45px}}
@media(max-width:899px){.wrap{width:calc(100% - 48px)}.nav{height:78px}.nav-links{display:none}.nav-links+.language{margin-left:auto}.hero{grid-template-columns:1fr;gap:35px;padding-top:37px;padding-bottom:40px}.hero-copy{max-width:640px}.hero h1{font-size:clamp(3.5rem,8vw,5rem);margin-bottom:25px}.hero-intro{max-width:600px}.hero-visual{min-height:0;height:auto;aspect-ratio:auto;display:flex;flex-direction:column;align-self:start;overflow:hidden;border-radius:20px}.hero-visual picture{height:auto;width:100%;border-radius:0}.hero-visual img{position:static;width:100%;height:auto;aspect-ratio:3/2;border-radius:0;object-position:50% 55%}.photo-note{position:static;transform:none;flex:none;width:100%;max-width:100%;justify-content:center;padding:16px 20px;border-radius:0;box-shadow:none}.photo-note>span{font-size:32px;flex:none}.photo-note p{font-size:.875rem}.facts>div{padding-left:22px}.facts span{max-width:160px;font-size:.8rem}.facts strong{font-size:1.2rem}.section{padding-block:72px}.familiar{gap:38px}.familiar-visual{height:510px}.familiar h2{font-size:2.2rem}.struggles p{font-size:.9rem}.program{grid-template-columns:1fr 1fr;gap:32px}.program h2{font-size:2.35rem}.price-card{padding:26px 20px}.price-card .button{font-size:.85rem;padding-inline:18px}.team-grid{grid-template-columns:repeat(2,1fr);gap:35px 25px}.faq{grid-template-columns:1fr;gap:32px}.faq .eyebrow{max-width:none}.join{grid-template-columns:1fr;gap:40px;max-width:640px}.join-copy>p:not(.eyebrow){max-width:100%}.join-copy h2{font-size:3.3rem}.join-section{padding-block:65px}.join-star{font-size:45px}.form-shell{padding:30px}html:not([lang=en]) .hero h1{font-size:clamp(3.1rem,7vw,4.6rem)}}
@media(max-width:600px){.wrap{width:calc(100% - 40px)}.nav{height:73px;gap:15px}.brand{font-size:1.3rem;gap:9px}.header .brand{line-height:1.08}.brand-family{display:block}.brand-mark{width:32px;height:32px}.language{font-size:.8rem}.language summary{gap:7px;padding-left:4px}.language summary svg{width:16px}.chevron{margin-left:3px}.hero{padding-top:27px;gap:28px}.hero .eyebrow{font-size:.68rem;margin-bottom:24px;letter-spacing:.02em}.hero h1{font-size:clamp(3.25rem,11vw,4.15rem);margin-bottom:22px}.tagline{font-size:1.28rem}.hero-intro{font-size:1rem;line-height:1.7;margin-bottom:24px}.hero .button{width:100%;max-width:370px}.hero-note{font-size:.74rem}.hero-visual img{aspect-ratio:4/3;object-position:57% 50%}.facts{padding-block:22px;gap:15px}.facts>div{padding-left:14px;gap:7px}.facts strong{font-size:1rem}.facts span{font-size:.73rem;line-height:1.5}.section{padding-block:60px}.eyebrow{font-size:.72rem;margin-bottom:18px}h2{font-size:2.45rem}.familiar{grid-template-columns:1fr;gap:32px}.familiar-visual{height:auto;aspect-ratio:1.14;order:2}.familiar-copy{order:1}.familiar h2{font-size:2.3rem}.section-intro{font-size:1rem;margin-top:20px}.struggles h3{font-size:1.06rem}.struggles p{font-size:.95rem}.struggles>div{margin-top:23px}.bridge{padding-block:55px}.bridge h2{font-size:2.6rem}.bridge .wrap>p:last-child{font-size:1.02rem;max-width:355px}.bridge-mark{font-size:43px;margin-bottom:20px}.steps{grid-template-columns:1fr;gap:32px;margin-top:35px}.step-number{margin-bottom:18px;padding-top:16px}.steps h3{font-size:1.4rem;margin-bottom:12px}.steps p{font-size:1rem}.program{grid-template-columns:minmax(0,1fr);gap:35px}.program h2{font-size:2.4rem}.includes li{font-size:.97rem}.price-card{padding:30px 25px}.price-card .eyebrow{font-size:.76rem}.price-card .button{font-size:.94rem}.price-sun{font-size:48px;margin-bottom:22px}.price{font-size:clamp(3rem,15vw,5rem)}.team-grid{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:30px}.team-grid h3{font-size:1.35rem;margin-top:20px}.team-grid p{font-size:1rem;line-height:1.65}.portrait{border-radius:14px}.faq-list summary{font-size:1rem;padding-block:22px}.faq-list details p{font-size:.95rem}.join-section{padding-block:55px}.join-copy h2{font-size:2.8rem}.join-copy>p:not(.eyebrow){font-size:1rem}.join-price{gap:15px}.join-price>span{font-size:.75rem}.form-shell{padding:25px 20px;border-radius:18px}.form-note{font-size:.74rem}.footer{align-items:flex-start;flex-direction:column;padding-block:30px;gap:20px}.footer>div:last-child{text-align:left}.footer .brand{font-size:1.2rem}.footer p{font-size:.72rem;max-width:160px}.footer>div:last-child>a{font-size:.8rem}html:not([lang=en]) .hero h1{font-size:clamp(2.8rem,9.3vw,3.7rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Let translated copy reflow without widening grid tracks. */
.hero-copy,.program>div,.price-card,.join-copy,.form-shell,.steps article,.facts>div{min-width:0}h1,h2,h3{overflow-wrap:anywhere;hyphens:auto}.join-price{flex-wrap:wrap}html[lang=zh] h1,html[lang=zh] h2,html[lang=zh] h3,html[lang=ko] h1,html[lang=ko] h2,html[lang=ko] h3{letter-spacing:-.02em;line-height:1.2}html[lang=ko]{word-break:keep-all;overflow-wrap:anywhere}

/* Tapered, eight-point starburst inspired by mid-century graphics. */
.starburst{display:block;width:1em;height:1em;flex:none}.small-sun .starburst{width:24px;height:24px}.bridge-mark .starburst,.price-sun .starburst{margin-inline:auto}

/* Keep sign-in and language choices reachable at every screen size. */
.nav{gap:24px}.sign-in{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:8px 4px;color:var(--blue);font-size:.875rem;font-weight:600;white-space:nowrap;flex:none}.sign-in:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){.nav-links{display:none}.nav-links+.language{margin-left:auto}}
@media(max-width:600px){.nav{height:auto;min-height:104px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:0;padding-block:8px}.header .brand{grid-column:1;grid-row:1/3;font-size:1.15rem;min-height:44px}.nav .sign-in{grid-column:2;grid-row:1;justify-self:end}.nav .language{grid-column:2;grid-row:2;margin-left:0;justify-self:end}.nav .language summary{padding-block:8px}}
/* Native currency controls stay comfortably readable on touch screens. */
#currency{font-size:1rem;min-height:44px}

/* Scroll-linked decoration. Nothing is hidden or delayed while entering the page. */
.motion-enabled .motion-photo{transform:scale(1.24);border-radius:0}
.motion-enabled .portrait .motion-photo{transform:scale(1.06)}
@media(max-width:1099px),(pointer:coarse){.motion-enabled .motion-photo{transform:scale(1.192)}.motion-enabled .portrait .motion-photo{transform:scale(1.048)}}
@media(max-width:599px){.motion-enabled .motion-photo{transform:scale(1.132)}.motion-enabled .portrait .motion-photo{transform:scale(1.033)}}
.motion-enabled .motion-star{transform-origin:center}
.motion-enabled .step-number{position:relative;border-top-color:transparent}
.motion-enabled .step-number::before{content:"";position:absolute;top:-2px;left:0;width:100%;height:2px;background:var(--blue);transform:scaleX(var(--line-scale,1));transform-origin:left center}
@media(min-width:900px){.motion-enabled .hero-visual picture{position:absolute;inset:0;height:auto}}
@media(prefers-reduced-motion:reduce){
  .motion-photo,.motion-star{transform:none!important}
  .step-number::before{transform:none!important}
}

/* A little weather, with native radio controls and no layout shift on selection. */
.weather{padding-block:88px 0;text-align:center}
.weather h2{font-size:clamp(2rem,3.5vw,3rem);max-width:780px;margin-inline:auto;hyphens:none}
.weather>p{margin:20px auto 0;color:var(--muted);font-size:1.1rem;max-width:620px}
.weather-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:650px;margin:36px auto 0;border:0;padding:0;min-width:0}
.weather-choice{position:relative;cursor:pointer;min-width:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.weather-choice input{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.weather-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:210px;padding:16px 14px 28px;border:2px solid #e7edf7;border-radius:26px;background:#fff;transition:border-color .25s,background .25s,box-shadow .25s,transform .25s}
.weather-art{display:block;width:min(100%,160px);height:auto;overflow:visible;flex:none}
.weather-label{font-weight:650;font-size:1.05rem;line-height:1.4;overflow-wrap:anywhere}
.weather-selected{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:13px;opacity:0;transform:scale(.5);transition:opacity .2s,transform .3s}
.weather-choice input:checked+.weather-card{border-color:var(--blue);background:#f5f8ff;box-shadow:0 8px 24px #002fa710}
.weather-choice input:checked+.weather-card .weather-selected{opacity:1;transform:scale(1)}
.weather-choice input:focus-visible+.weather-card{outline:3px solid var(--blue);outline-offset:5px}
@media(hover:hover){.weather-choice:hover .weather-card{border-color:#96afe8;transform:translateY(-4px)}}
.weather-choice:active .weather-card{transform:scale(.98)}
.weather-replies{display:grid;max-width:760px;margin:27px auto 0;font-size:clamp(1.25rem,2.2vw,1.5rem);line-height:1.4;color:var(--blue);font-weight:700;text-wrap:balance}
.weather-replies p{grid-area:1/1;visibility:hidden;opacity:0;transform:translateY(8px);transition:none}
.weather:has(input[value="sun"]:checked) [data-weather-reply="sun"],.weather:has(input[value="cloud"]:checked) [data-weather-reply="cloud"],.weather:has(input[value="storm"]:checked) [data-weather-reply="storm"]{visibility:visible;opacity:1;transform:translateY(0);transition:opacity .3s,transform .4s cubic-bezier(.2,.8,.2,1)}
.weather-rays,.weather-sun,.weather-halo,.weather-peek,.weather-bolt,.weather-cloud-storm{transform-box:fill-box;transform-origin:center}
.weather-play .weather-rays{animation:weather-rays 2s cubic-bezier(.16,1,.3,1)}
.weather-play .weather-sun{animation:weather-sun 1.3s ease-out}
.weather-play .weather-halo{animation:weather-glow 1.8s ease-out}
.weather-play .weather-cloud-front{animation:weather-cloud 1.8s cubic-bezier(.2,.8,.2,1)}
.weather-play .weather-cloud-back{animation:weather-drift 2s ease-out}
.weather-play .weather-peek{animation:weather-peek 1.8s ease-out}
.weather-play .weather-cloud-storm{animation:weather-rumble .9s ease-in-out}
.weather-play .weather-bolt{animation:weather-bolt 1.5s ease-out}
.weather-play .weather-rain path{animation:weather-rain .7s ease-in-out 2}
.weather-play .weather-rain path:nth-child(2){animation-delay:.12s}
.weather-play .weather-rain path:nth-child(3){animation-delay:.24s}
@keyframes weather-rays{from{transform:rotate(-75deg)}to{transform:rotate(0)}}
@keyframes weather-sun{0%{transform:scale(.85)}45%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes weather-glow{0%{transform:scale(.82);opacity:.5}55%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes weather-cloud{0%{transform:translate(-9px,14px)}50%{transform:translate(6px,14px)}100%{transform:translate(0,14px)}}
@keyframes weather-drift{0%{transform:translate(24px,-5px) scale(.84)}100%{transform:translate(15px,-5px) scale(.84)}}
@keyframes weather-peek{0%{transform:translate(-7px,6px)}50%{transform:translate(2px,-3px)}100%{transform:translate(0,0)}}
@keyframes weather-rumble{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}65%{transform:translateX(3px)}}
@keyframes weather-bolt{0%{transform:scale(.6) translateY(-5px);opacity:.3}40%{transform:scale(1.08);opacity:1}65%{transform:scale(.95)}100%{transform:scale(1);opacity:1}}
@keyframes weather-rain{0%{transform:translate(2px,-4px);opacity:0}35%{opacity:1}100%{transform:translate(-3px,6px);opacity:0}}
@media(max-width:600px){.weather{padding-top:60px}.weather h2{font-size:2rem}.weather>p{font-size:1rem;margin-top:16px}.weather-options{gap:9px;margin-top:28px}.weather-card{border-radius:18px;min-height:150px;padding:16px 6px 20px;gap:6px}.weather-label{font-size:.88rem}.weather-selected{width:17px;height:17px;font-size:10px;top:7px;right:7px}.weather-replies{margin-top:22px}.weather-art{max-width:110px}}
@media(prefers-reduced-motion:reduce){.weather-card,.weather-replies p{transform:none!important}.weather-art *{animation:none!important}}

/* Visible illustrations, with the choice names retained for screen readers. */
.weather-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.weather-card{min-height:190px;padding-block:16px;gap:0}
@media(max-width:600px){.weather-card{min-height:130px;padding-block:10px}}

/* Brief, non-blocking atmosphere. All effects disappear without user action. */
.weather-atmosphere{position:absolute;top:0;left:0;z-index:30;pointer-events:none;overflow:hidden;contain:strict}
.weather-effect{position:absolute;inset:0;overflow:hidden}
/* Feather both the glow and rays together, so scaling never reveals a rectangular edge. */
.weather-atmosphere-sun{inset:-30% -40%;background:radial-gradient(ellipse closest-side at 50% 45%,#fff6bdb3 0%,#ffd33d50 45%,#ffd33d00 100%);-webkit-mask-image:radial-gradient(ellipse 50% 48% at 50% 45%,#000 0%,#000 45%,transparent 100%);mask-image:radial-gradient(ellipse 50% 48% at 50% 45%,#000 0%,#000 45%,transparent 100%);transform-origin:50% 45%;animation:weather-page-sun 2s cubic-bezier(.2,.7,.3,1) both}
.weather-atmosphere-sun::after{content:"";position:absolute;inset:-50%;background:conic-gradient(from 15deg at 50% 47.5%,transparent 0deg,#fff4b333 18deg,transparent 35deg,transparent 60deg,#ffe88938 83deg,transparent 105deg,transparent 155deg,#fff4b333 177deg,transparent 200deg,transparent 250deg,#ffe88938 270deg,transparent 295deg);animation:weather-page-rays 2s ease-out both}
.weather-atmosphere-cloud{animation:weather-atmosphere-fade 3.6s ease both}
.weather-atmosphere-cloud .weather-atmosphere-cloud-shape,.weather-atmosphere-storm .weather-atmosphere-cloud-shape{position:absolute;top:calc(4% + var(--cloud-index)*29%);left:-10%;width:clamp(320px,55vw,950px);height:auto;fill:#dfeaff;opacity:.52;animation:weather-page-cloud 3.6s cubic-bezier(.22,.6,.4,1) both;animation-delay:calc(var(--cloud-index)*.08s)}
.weather-atmosphere-cloud svg:nth-child(2){left:auto;right:-10%;fill:#e9effa;opacity:.7;animation-name:weather-page-cloud-back}
.weather-atmosphere-cloud svg:nth-child(3){width:clamp(250px,42vw,750px);opacity:.4}
.weather-atmosphere-storm{animation:weather-atmosphere-fade 4s ease both}
.weather-atmosphere-storm .weather-atmosphere-cloud-shape{fill:#263957;opacity:.42;animation-duration:4s;top:calc(-4% + var(--cloud-index)*25%);width:clamp(400px,65vw,1100px)}
.weather-atmosphere-storm .weather-atmosphere-cloud-shape:nth-child(2){left:auto;right:-15%;fill:#3d4e6b;opacity:.38;animation-name:weather-page-cloud-back}
.weather-atmosphere-storm .weather-atmosphere-cloud-shape:nth-child(3){fill:#192a4c;opacity:.3;width:clamp(340px,52vw,900px)}
.weather-atmosphere-storm::before,.weather-atmosphere-storm::after{content:"";position:absolute;inset:0;opacity:0;pointer-events:none;background:radial-gradient(ellipse at 26% 17%,#eef3ff99 0%,#dae7ff38 24%,transparent 54%);animation:weather-lightning-glow .85s .7s ease-out both}
.weather-atmosphere-storm::after{background:radial-gradient(ellipse at 74% 38%,#eef3ff99 0%,#dae7ff38 24%,transparent 54%);animation-delay:2.2s}
.weather-atmosphere-lightning{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.weather-atmosphere-lightning path{fill:none;stroke:#f2f6ff;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 5px #c6daff);opacity:0;animation:weather-lightning-bolt .7s var(--lightning-delay) ease-out both}
@keyframes weather-lightning-glow{0%{opacity:0}20%{opacity:.65}100%{opacity:0}}
@keyframes weather-lightning-bolt{0%{opacity:0}16%{opacity:.95}100%{opacity:0}}
.weather-atmosphere-storm span{position:absolute;top:-60px;left:var(--rain-x);width:2px;height:var(--rain-length);border-radius:4px;background:linear-gradient(transparent,#477ed7);opacity:0;animation:weather-page-rain var(--rain-duration) linear 2;animation-delay:var(--rain-delay)}
@keyframes weather-page-sun{0%{opacity:0;transform:scale(.8)}30%{opacity:.8}100%{opacity:0;transform:scale(1.2)}}
@keyframes weather-page-rays{from{transform:rotate(-8deg)}to{transform:rotate(8deg)}}
@keyframes weather-atmosphere-fade{0%,100%{opacity:0}18%,70%{opacity:1}}
@keyframes weather-page-cloud{from{transform:translateX(-35%)}to{transform:translateX(65vw)}}
@keyframes weather-page-cloud-back{from{transform:translateX(35%)}to{transform:translateX(-65vw)}}
@keyframes weather-page-rain{0%{transform:translate(0,-30px) rotate(12deg);opacity:0}12%{opacity:.78}88%{opacity:.78}100%{transform:translate(-22vw,110vh) rotate(12deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.weather-atmosphere{display:none!important}}
