/* Landing adaptations: kit tokens and background remain unchanged. */
html{scroll-behavior:smooth} .landing-content{position:relative;z-index:1;max-width:1184px;margin:auto;padding:0 40px} .topbar{min-height:106px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:24px;font-weight:700;letter-spacing:-1px;line-height:1.1}.brand span{display:block;font-size:10px;letter-spacing:.24em;font-weight:400;margin-top:7px}.edition,.top-link{font-size:12px;letter-spacing:.05em}.top-link{border-bottom:1px solid var(--border);padding-bottom:6px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;display:block;color:var(--primary)}.announcement{display:flex;justify-content:space-between;align-items:center;gap:32px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0}.announcement strong{display:block;font-size:18px;margin:5px 0}.announcement p{font-size:12px;color:var(--muted-foreground)}.countdown{display:flex;gap:12px;align-items:center}.countdown div{min-width:49px;text-align:center}.countdown b{font-size:30px;font-weight:600;line-height:1}.countdown span{display:block;font-size:9px;letter-spacing:.1em;margin-top:8px;color:var(--muted-foreground)}.countdown i{font-style:normal;color:var(--accent);margin-top:-15px}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:64px;align-items:center;padding:64px 0 80px}.hero h1{font-size:clamp(1.875rem,3.2vw,2.25rem);line-height:1.1;letter-spacing:-.035em;margin-top:20px}.lead{font-size:15px;line-height:1.65;color:var(--muted-foreground);margin-top:24px}.cta-wrap{margin-top:28px}.cta{display:inline-flex;justify-content:center;align-items:center;gap:24px;background:var(--primary);color:var(--primary-foreground);border:1px solid var(--primary);border-radius:10px;padding:18px 24px;font-size:12px;font-weight:600;letter-spacing:.035em;cursor:pointer;transition:background .18s,transform .18s,box-shadow .18s;box-shadow:var(--shadow-card)}.cta span{font-size:20px;line-height:1}.cta:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 22px 52px oklch(18% .02 165/.13)}.cta:active{transform:translateY(0)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--ring);outline-offset:3px}.fine{font-size:11px;line-height:1.6;color:var(--muted-foreground);margin-top:12px}.hero-foot{display:flex;gap:16px;align-items:center;margin-top:32px;font-size:11px;color:var(--muted-foreground)}.hero-foot span:first-child{font-weight:600;color:var(--primary);border-right:1px solid var(--border);padding-right:16px;white-space:nowrap}.hero-visual{position:relative}.photo-placeholder{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:32px;border:1px solid var(--border);border-radius:16px;background:oklch(from var(--card) l c h / 40%);color:var(--muted-foreground);font-size:13px}.photo-mark{font-size:40px;color:var(--accent);font-weight:400}.photo-placeholder small{font-size:10px;letter-spacing:.1em;text-transform:uppercase}.visual-caption{margin:20px 0 0 24px;border-left:2px solid var(--accent);padding-left:16px;font-size:18px;line-height:1.4}.visual-caption span,.visual-caption strong{display:block}.visual-caption strong{color:var(--primary);font-weight:600}.section{padding:64px 0;border-top:1px solid var(--border)}.section-label{display:flex;align-items:center;gap:20px;margin-bottom:32px}.section-label span{font-size:11px;letter-spacing:.1em;font-weight:600;color:var(--primary);flex-shrink:0}.section-label i{height:1px;flex:1;background:linear-gradient(90deg,var(--accent),transparent);opacity:.4}h2{font-weight:600;font-size:clamp(25px,3vw,34px);line-height:1.2;letter-spacing:-.025em;text-wrap:balance;max-width:850px}.section-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}.section-intro p,.section-description,.benefit p,.date-card p,.about p,.faq p,.results-close p,.final-cta p{font-size:14px;line-height:1.65;color:var(--muted-foreground)}p+p{margin-top:12px}.section-description{max-width:710px;margin-top:20px}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}.benefit{border:1px solid var(--border);border-radius:10px;background:oklch(from var(--card) l c h / 72%);box-shadow:var(--shadow-card);padding:24px}.number{font-size:12px;color:var(--primary);display:inline-block;border-bottom:1px solid var(--accent);padding-bottom:8px;margin-bottom:20px}.benefit h3{font-size:1rem;font-weight:600;line-height:1.5rem;margin-bottom:8px}.benefit p{font-size:.875rem;line-height:1.25rem}.benefit:last-child{grid-column:span 3;display:grid;grid-template-columns:40px 1fr 2fr;gap:20px;align-items:start}.benefit:last-child .number{margin:0}.closing{font-size:18px;line-height:1.5;color:var(--primary);max-width:740px;margin:32px auto 0;text-align:center}.date-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:32px;border:1px solid var(--border);border-radius:10px;background:oklch(from var(--card) l c h / 50%);overflow:hidden}.date-card{padding:32px}.date-card+.date-card{border-left:1px solid var(--border)}.day{display:block;font-size:72px;letter-spacing:-.06em;line-height:1.2;color:var(--primary);font-weight:600;margin:16px 0 0}.month{display:block;font-weight:600;font-size:11px;letter-spacing:.1em;margin-bottom:20px}.results-placeholder{border:1px dashed oklch(42% .09 165/.3);border-radius:16px;margin-top:32px;min-height:280px;padding:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;background:oklch(from var(--card) l c h / 35%)}.results-placeholder p{max-width:540px;font-size:13px;color:var(--muted-foreground)}.comparison{display:flex;align-items:center;gap:40px;font-size:11px;letter-spacing:.1em;color:var(--primary)}.comparison i{font-size:28px;font-style:normal}.results-close{max-width:740px;margin:32px auto 0;text-align:center}.results-close p:first-child{font-size:22px;color:var(--foreground);font-weight:600}.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start;margin-top:40px}.about-grid .photo-placeholder{position:sticky;top:24px}.expert-name{font-size:32px;font-weight:600;letter-spacing:-.04em;margin:8px 0 24px}.about-close{max-width:740px;text-align:center;margin:40px auto 0}.faq{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px}.faq-list details{border-bottom:1px solid var(--border)}.faq-list summary{list-style:none;display:flex;justify-content:space-between;gap:24px;cursor:pointer;font-size:15px;font-weight:600;padding:22px 0;line-height:1.45}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:var(--primary);font-size:22px;font-weight:400}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details>div{padding:0 24px 24px 0}.final-cta{text-align:center;padding:64px 32px;border:1px solid var(--border);border-radius:24px;background:oklch(from var(--card) l c h / 60%);box-shadow:var(--shadow-card);margin:16px 0 64px}.final-cta h2{margin:20px auto 24px;max-width:720px}.final-cta>p{max-width:640px;margin-left:auto;margin-right:auto}footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:32px 0 48px;border-top:1px solid var(--border)}footer p,footer>a{font-size:11px;color:var(--muted-foreground)}dialog{margin:auto;padding:40px;max-width:440px;width:calc(100% - 32px);border:1px solid var(--border);border-radius:16px;background:var(--card);color:var(--foreground);box-shadow:var(--shadow-card)}dialog::backdrop{background:oklch(18% .02 165/.3);backdrop-filter:blur(4px)}dialog h2{margin:16px 0}dialog p{font-size:14px;color:var(--muted-foreground);margin-bottom:24px}.dialog-close{position:absolute;right:16px;top:10px;font-size:28px;background:transparent;color:var(--primary);cursor:pointer}
@media(max-width:900px){.landing-content{padding:0 24px}.hero{gap:32px}.edition{display:none}.section-intro,.about-grid,.faq{gap:32px}.benefits{grid-template-columns:repeat(2,1fr)}.benefit:last-child{grid-column:span 2;display:block}.benefit:last-child .number{margin-bottom:20px}.date-card{padding:24px}}
@media(max-width:639px){.landing-content{padding:0 16px}.topbar{min-height:88px}.brand{font-size:22px}.top-link{font-size:11px}.announcement{flex-direction:column;text-align:center;gap:20px;padding:20px 0}.announcement strong{font-size:16px}.announcement p{font-size:11px}.countdown b{font-size:26px}.hero{grid-template-columns:1fr;padding:40px 0 48px;gap:32px}.hero h1{font-size:clamp(1.875rem,8vw,2.25rem)}.lead{font-size:14px}.hero .cta{width:100%;padding:18px 12px;font-size:11px;gap:16px}.hero-foot{font-size:10px}.hero-visual{max-width:420px;width:100%;margin:auto}.visual-caption{font-size:17px}.section{padding:48px 0}.section-intro,.about-grid,.faq{grid-template-columns:1fr;gap:24px}.section-label{margin-bottom:24px}.section-label span{font-size:10px}.benefits{grid-template-columns:1fr;gap:12px;margin-top:24px}.benefit{padding:24px}.benefit:last-child{grid-column:auto}.number{margin-bottom:12px}.date-grid{grid-template-columns:1fr}.date-card{padding:24px}.date-card+.date-card{border-left:0;border-top:1px solid var(--border)}.day{font-size:64px}.closing{font-size:16px}.results-placeholder{padding:24px;min-height:300px}.about-grid .photo-placeholder{position:static}.final-cta{padding:40px 20px;margin-bottom:40px;border-radius:16px}.cta{font-size:11px;padding:18px 16px;gap:12px}footer{flex-wrap:wrap;padding-bottom:max(32px,env(safe-area-inset-bottom))}footer p{width:100%;order:3}.section-description{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cta:hover{transform:none}}
/* Benefit symbols: 72px brand-green tiles with restrained motion. */
.benefit-icon{width:72px;height:72px;flex:0 0 72px;display:grid;place-items:center;background:var(--primary);color:#fff;border-radius:var(--radius-md);margin-bottom:20px}
.benefit-icon svg{width:34px;height:34px;animation:benefit-float 4s ease-in-out infinite;transform-origin:center}
.benefit:nth-child(2n) .benefit-icon svg{animation-delay:-1.3s}.benefit:nth-child(3n) .benefit-icon svg{animation-delay:-2.6s}
.benefit:last-child{grid-template-columns:72px 1fr 2fr}.benefit:last-child .benefit-icon{margin-bottom:0}
@keyframes benefit-float{0%,100%{transform:translateY(1px) rotate(-2deg)}50%{transform:translateY(-2px) rotate(2deg)}}
@media(max-width:900px){.benefit:last-child .benefit-icon{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.benefit-icon svg{animation:none}}
/* Individual date cards, with calendar symbols and paired date labels. */
.date-grid{gap:16px;border:0;border-radius:0;background:transparent;overflow:visible;align-items:stretch}
.date-card{border:1px solid var(--border);border-radius:var(--radius-md);background:oklch(from var(--card) l c h / 72%);box-shadow:var(--shadow-card);display:flex;flex-direction:column;align-items:flex-start}
.calendar-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--primary);color:#fff;margin-top:24px;flex:none}
.calendar-icon svg{width:34px;height:34px}
.date-display{display:flex;align-items:center;gap:16px;margin:20px 0}
.date-display .day{margin:0;line-height:1;font-size:72px}
.date-meta{display:flex;flex-direction:column;gap:6px}
.date-meta span{font-size:11px;line-height:1.4;letter-spacing:.06em;font-weight:600;color:var(--primary)}
.date-time{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--primary);margin:0 0 16px}
.date-card p{margin-top:auto}
@media(max-width:639px){.date-card+.date-card{border:1px solid var(--border)}.date-display .day{font-size:64px}.date-grid{gap:16px}}
/* Opening banner and countdown contrast. */
.announcement{background:var(--primary);color:#fff;border:0;padding:24px 32px;margin-inline:-40px}
.announcement .eyebrow,.announcement p,.countdown span,.countdown i{color:#fff}
.countdown b{display:grid;place-items:center;width:56px;height:56px;background:#fff;color:var(--primary);border-radius:var(--radius-md);font-size:30px}
.countdown div{min-width:56px}.countdown i{margin-top:-20px}
@media(max-width:900px){.announcement{margin-inline:-24px;padding:24px}}
@media(max-width:639px){.announcement{margin-inline:-16px;padding:24px 16px}.countdown b{width:52px;height:52px;font-size:26px}.countdown div{min-width:52px}}
.date-heading{display:flex;align-items:center;gap:16px;width:100%;margin:24px 0}
.date-heading .calendar-icon{margin:0}
.date-heading-copy{min-width:0}
.date-heading .date-display{margin:0;gap:12px}
.date-heading .day{font-size:56px}
.date-heading .date-meta span{font-size:10px}
.date-heading .date-time{display:block;margin:8px 0 0;font-size:10px}
@media(min-width:901px){.date-card{padding:24px}.date-heading{gap:12px}.date-heading .day{font-size:48px}.date-heading .date-display{gap:8px}.date-heading .date-meta span{font-size:9px;letter-spacing:.03em}}
/* CTA red follows the challenge palette (#8F1B1D), with tonal gradients. */
:root{--cta-red:#8f1b1d;--cta-red-light:oklch(from var(--cta-red) calc(l + .08) c h);--cta-red-dark:oklch(from var(--cta-red) calc(l - .04) c h)}
.cta{background:linear-gradient(135deg,var(--cta-red-light),var(--cta-red) 55%,var(--cta-red-dark));border-color:var(--cta-red);color:#fff;animation:cta-pulse 2.8s ease-in-out infinite;transition:transform .18s,filter .18s,box-shadow .18s,border-color .18s}
.cta:hover{background:linear-gradient(135deg,var(--cta-red-light),var(--cta-red) 55%,var(--cta-red-dark));border-color:var(--cta-red-light);filter:brightness(1.12);transform:translateY(-2px);animation:none;box-shadow:0 12px 28px oklch(from var(--cta-red) l c h / .3)}
.cta:active{transform:translateY(0);filter:brightness(.98)}
.cta:focus-visible{outline-color:var(--cta-red)}
@keyframes cta-pulse{0%,100%{box-shadow:0 6px 18px oklch(from var(--cta-red) l c h / .18),0 0 0 0 oklch(from var(--cta-red) l c h / .16)}60%{box-shadow:0 8px 24px oklch(from var(--cta-red) l c h / .26),0 0 0 7px oklch(from var(--cta-red) l c h / 0)}}
@media(prefers-reduced-motion:reduce){.cta{animation:none}.cta:hover{transform:none}}
/* Date labels as compact tags. */
.date-card>.eyebrow{display:inline-flex;align-items:center;padding:5px 10px;border:1px solid oklch(42% .09 165/.28);border-radius:var(--radius-full);background:oklch(42% .09 165/.08);color:var(--primary);line-height:1.4;max-width:100%}
/* Expert photo precedes the opening headline at every viewport. */
.hero{grid-template-columns:1fr;gap:32px;max-width:800px;margin-inline:auto}
.hero-visual{width:100%;max-width:420px;margin-inline:auto}
.hero-copy{width:100%}
.hero h1{margin-top:0}
@media(max-width:639px){.hero{gap:32px}}
/* User-approved typography, consistent across mobile and desktop. */
.hero h1{font-size:28px}
h2{font-size:24px}
.lead,.section-intro p,.section-description,.benefit p,.date-card p,.about p,.faq p,.results-close p,.final-cta p,dialog p{font-size:16px}
.cta,.hero .cta{font-size:14px}
.results-close p:first-child{font-size:16px}
.benefit p{line-height:1.5}
.challenge-logo-header{display:flex;justify-content:center;align-items:center;background:var(--primary);margin-inline:-40px;padding:28px 24px 8px}
.challenge-logo-header img{width:240px;max-width:100%;height:auto}
@media(max-width:900px){.challenge-logo-header{margin-inline:-24px}}
@media(max-width:639px){.challenge-logo-header{margin-inline:-16px;padding-top:24px}.challenge-logo-header img{width:220px}}
/* Center the opening hero content across all screen sizes. */
.hero-copy{text-align:center}
.hero-copy .cta-wrap{text-align:center}
.hero-copy .lead{margin-inline:auto}
/* Alternating full-width surfaces. Original light kit background is retained. */
.themed-section{position:relative;isolation:isolate;border-top:0}
.themed-section::before{content:"";position:absolute;z-index:-1;inset:0;left:50%;width:100vw;transform:translateX(-50%);pointer-events:none}
.section-light::before{background:radial-gradient(circle at 10% 12%,oklch(55% .13 162/.13),transparent 34%),radial-gradient(circle at 92% 78%,oklch(42% .09 165/.1),transparent 38%),linear-gradient(145deg,var(--background),var(--muted));animation:24s ease-in-out infinite alternate background-drift}
.section-green{color:#fff;--foreground:#fff;--muted-foreground:oklch(96% .012 160);--border:oklch(99% 0 0/.22)}
.section-green::before{background:radial-gradient(ellipse at 15% 20%,#46b390aa,transparent 58%),radial-gradient(ellipse at 85% 80%,#118b6499,transparent 56%),linear-gradient(135deg,#13654b,#247d60 50%,#13654b);background-size:150% 150%,160% 160%,160% 160%;animation:green-section-drift 20s ease-in-out infinite alternate}
.section-green h2,.section-green h3,.section-green p,.section-green .eyebrow{color:#fff}
.section-green .benefit{background:oklch(99% 0 0/.09);border-color:oklch(99% 0 0/.22);box-shadow:0 18px 44px oklch(18% .02 165/.12)}
.section-green .benefit-icon{background:oklch(25% .065 165/.55)}
.section-green .photo-placeholder,.section-green .results-placeholder{background:oklch(99% 0 0/.07);color:#fff;border-color:oklch(99% 0 0/.3)}
.section-green .photo-mark,.section-green .comparison{color:#fff}
.section-green .fine{color:oklch(96% .012 160)}
.final-cta.themed-section{border:0;border-radius:0;background:transparent;box-shadow:none;margin-top:0;margin-bottom:0}
.hero.themed-section{padding-top:48px}
.grain{z-index:2}.landing-content{z-index:auto}
footer{position:relative}
@keyframes green-section-drift{0%{background-position:0% 0%,100% 100%,0% 50%}100%{background-position:65% 35%,25% 60%,100% 50%}}
@media(prefers-reduced-motion:reduce){.themed-section::before{animation:none}}
/* Shared moving green gradient across the opening logo and banner. */
.challenge-logo-header,.announcement{background:linear-gradient(120deg,#13654b,#118b64,#319a76,#13654b);background-size:300% 300%;animation:top-gradient-drift 18s ease-in-out infinite alternate}
@keyframes top-gradient-drift{from{background-position:0% 50%}to{background-position:100% 50%}}
@media(prefers-reduced-motion:reduce){.challenge-logo-header,.announcement{animation:none}}
/* White benefit cards preserve original kit text and icon colors. */
.section-green .benefit{--foreground:oklch(18% .02 165);--muted-foreground:oklch(48% .02 165);--border:oklch(18% .02 165/.1);background:#fff;border-color:var(--border);box-shadow:var(--shadow-card)}
.section-green .benefit h3{color:var(--foreground)}
.section-green .benefit p{color:var(--muted-foreground)}
.section-green .benefit .benefit-icon{background:var(--primary);color:#fff}
/* Center section introductions while preserving left-aligned card content. */
.themed-section>h2,.themed-section>.section-description{text-align:center;margin-inline:auto}
.section-intro{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.section-intro>div{max-width:710px}
.faq>div:first-child{text-align:center}
.faq>div:first-child h2{margin-inline:auto}
.benefit,.date-card{text-align:left}
/* FAQ: white controls and light-gray answers on the green surface. */
.faq.section-green .faq-list summary span{color:#fff}
.faq.section-green .faq-list details>div p{color:#e0e4e2}
/* Icon tiles share the second section's animated green gradient. */
.benefit-icon,.calendar-icon,.section-green .benefit .benefit-icon{background:radial-gradient(ellipse at 15% 20%,#46b390aa,transparent 58%),radial-gradient(ellipse at 85% 80%,#118b6499,transparent 56%),linear-gradient(135deg,#13654b,#247d60 50%,#13654b);background-size:150% 150%,160% 160%,160% 160%;animation:green-section-drift 20s ease-in-out infinite alternate;color:#fff}
.calendar-icon svg{animation:benefit-float 4s ease-in-out infinite;transform-origin:center}
.date-card:nth-child(2) .calendar-icon svg{animation-delay:-1.3s}
.date-card:nth-child(3) .calendar-icon svg{animation-delay:-2.6s}
@media(prefers-reduced-motion:reduce){.benefit-icon,.calendar-icon,.section-green .benefit .benefit-icon,.calendar-icon svg{animation:none}}
.challenge-logo-header{flex-direction:column;gap:16px}
.limited-tag{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border-radius:var(--radius-full);background:var(--cta-red);border:1px solid oklch(99% 0 0/.2);color:#fff;font-size:11px;font-weight:600;line-height:1.4;letter-spacing:.08em}
.alert-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#fff;animation:alert-blink 1.6s ease-in-out infinite}
@keyframes alert-blink{0%,100%{opacity:1;box-shadow:0 0 0 0 #ffffff55}50%{opacity:.35;box-shadow:0 0 0 4px #ffffff00}}
@media(prefers-reduced-motion:reduce){.alert-dot{animation:none}}
/* Date tags match the CTA red gradient. */
.date-card>.eyebrow{background:linear-gradient(135deg,var(--cta-red-light),var(--cta-red) 55%,var(--cta-red-dark));border-color:var(--cta-red);color:#fff}
/* Benefit icon tiles follow the current CTA gradient. */
.section-green .benefit .benefit-icon{background:linear-gradient(135deg,var(--cta-red-light),var(--cta-red) 55%,var(--cta-red-dark));background-size:160% 160%;animation:top-gradient-drift 18s ease-in-out infinite alternate;color:#fff}
@media(prefers-reduced-motion:reduce){.section-green .benefit .benefit-icon{animation:none}}
.date-card>.date-tag{background:linear-gradient(135deg,var(--cta-red-light),var(--cta-red) 55%,var(--cta-red-dark));border:1px solid var(--cta-red);color:#fff}
/* Footer matches the animated green section surface. */
footer{isolation:isolate;border-top:0;color:#fff}
footer::before{content:"";position:absolute;z-index:-1;inset:0;left:50%;width:100vw;transform:translateX(-50%);background:radial-gradient(ellipse at 15% 20%,#46b390aa,transparent 58%),radial-gradient(ellipse at 85% 80%,#118b6499,transparent 56%),linear-gradient(135deg,#13654b,#247d60 50%,#13654b);background-size:150% 150%,160% 160%,160% 160%;animation:green-section-drift 20s ease-in-out infinite alternate;pointer-events:none}
footer .brand,footer .brand span,footer p,footer>a{color:#fff}
@media(prefers-reduced-motion:reduce){footer::before{animation:none}}
/* One continuous animated background for the entire opening strip. */
.opening-banner{margin-inline:-40px;background:linear-gradient(120deg,#13654b,#118b64,#319a76,#13654b);background-size:300% 300%;animation:top-gradient-drift 18s ease-in-out infinite alternate}
.opening-banner .challenge-logo-header,.opening-banner .announcement{margin-inline:0;background:transparent;animation:none;box-shadow:none;border:0}
@media(max-width:900px){.opening-banner{margin-inline:-24px}}
@media(max-width:639px){.opening-banner{margin-inline:-16px}}
@media(prefers-reduced-motion:reduce){.opening-banner{animation:none}}
/* Expandable benefit cards with icons to the left of their headings. */
.benefits{align-items:start}
.benefit,.benefit:last-child{display:block;grid-column:auto;padding:20px}
.benefit summary{display:flex;align-items:center;gap:16px;cursor:pointer;list-style:none;text-align:left}
.benefit summary::-webkit-details-marker{display:none}
.benefit .benefit-icon,.benefit:last-child .benefit-icon{margin:0}
.benefit-heading{flex:1;min-width:0}
.benefit-title{display:block;font-size:16px;font-weight:600;line-height:1.5;color:var(--foreground)}
.benefit-hint{display:block;font-size:12px;line-height:1.5;color:var(--muted-foreground);margin-top:4px}
.benefit-toggle{color:var(--cta-red);font-size:22px;flex:none;transition:transform .18s}
.benefit[open] .benefit-toggle{transform:rotate(45deg)}
.benefit-description{padding-top:20px;margin-top:20px;border-top:1px solid var(--border)}
@media(min-width:901px){.benefits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.benefits{grid-template-columns:1fr}}
@media(max-width:639px){.benefit,.benefit:last-child{padding:20px 16px}.benefit summary{gap:12px}}
/* Date cards use the animated green section palette. */
.date-card{background:radial-gradient(ellipse at 15% 20%,#46b390aa,transparent 58%),radial-gradient(ellipse at 85% 80%,#118b6499,transparent 56%),linear-gradient(135deg,#13654b,#247d60 50%,#13654b);background-size:150% 150%,160% 160%,160% 160%;animation:green-section-drift 20s ease-in-out infinite alternate;color:#fff;border-color:oklch(99% 0 0/.22)}
.date-card .day,.date-card .date-meta span,.date-card .date-time,.date-card p{color:#fff}
.date-card .calendar-icon{background:var(--primary);animation:none;color:#fff}
@media(prefers-reduced-motion:reduce){.date-card{animation:none}}
/* Tighten the gap below the limited-spots tag by about 70% (32px to 10px). */
.opening-banner .challenge-logo-header{padding-bottom:0}
.opening-banner .announcement{padding-top:10px}
/* Calendar tiles match the red date tags. */
.date-card .calendar-icon{background:linear-gradient(135deg,var(--cta-red-light),var(--cta-red) 55%,var(--cta-red-dark));color:#fff}
/* Footer uses the CTA red gradient with white text. */
footer::before{background:linear-gradient(135deg,var(--cta-red-light),var(--cta-red) 55%,var(--cta-red-dark));background-size:300% 300%;animation:top-gradient-drift 18s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){footer::before{animation:none}}
