/* Shared typography, spacing and controls for the existing NEST sections. */
:root{
 --section-title-size:clamp(2rem,calc(1.25rem + 2.75vw),3.625rem);
 --subheading-size:clamp(1.5rem,calc(1.25rem + .6vw),1.75rem);
 --section-space:clamp(3rem,6vw,5.5rem);
 --page-gutter:clamp(1rem,3vw,3rem);
 --carousel-control-size:46px;
}
h2{font-size:var(--section-title-size);line-height:1.12;letter-spacing:-.035em}
.club-panel-copy h3{font-size:var(--section-title-size);line-height:1.12}
.audience-cards h3,.community-point h3,.opportunity-feedback h3{font-size:var(--subheading-size);line-height:1.25}
.proof-stories h3,.onboarding-grid h3,.opportunity-route-steps h3{font-size:var(--subheading-size);line-height:1.25}
.wrap,.section.wrap,.section .wrap,.community-scene.wrap{width:min(1280px,calc(100% - 2 * var(--page-gutter)))}
.section,.community-section,.mentor-screen.section,.school-results.section,.nest-backdrop .nest-section,#plans>.section{padding-block:var(--section-space)}
.section-heading .eyebrow,.section>.eyebrow,.section-kicker,.plans-heading>.eyebrow,.community-copy>.eyebrow,.school-proof>.eyebrow,.onboarding>.eyebrow,.faq-section .eyebrow{margin-bottom:16px}
.section-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px}
.section-kicker>.eyebrow{margin:0}
.section-heading{margin-bottom:32px}
.section .heading-note{padding-top:0}
.school-proof>h2,.onboarding>h2{max-width:1000px}
.faq-section h2{max-width:none}
.eyebrow,.section .eyebrow,.closing-surface .eyebrow{font-size:.75rem;line-height:1.5}
.opportunity-access-note{font-size:1rem;line-height:1.6;color:var(--studio-muted);margin-top:24px;max-width:760px}
.section .access-badge{font-size:.875rem;line-height:1.5}
.onboarding-grid p{font-size:1rem;line-height:1.6}
.section .text-link{font-size:.875rem}
.button{min-height:52px}
.community-details>.button,.mentor-bottom>.button,#plans .plan-card>.button,.closing-action .button{font-size:.875rem;min-height:52px;line-height:1.4}
.carousel-arrow{
 display:grid;place-items:center;flex:none;width:var(--carousel-control-size);height:var(--carousel-control-size);
 padding:0;border:1px solid #72869d;border-radius:50%;background:#101b2b;color:#f1f6ff;
 box-shadow:0 3px 12px #02070c55;cursor:pointer;
 transition:background .15s,color .15s,border-color .15s;
}
.carousel-arrow:not(:disabled):hover{background:var(--lime);border-color:var(--lime);color:#101905}
.carousel-arrow:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
.carousel-arrow:disabled{opacity:.4;cursor:default}
.carousel-arrow svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:16px}
.carousel-counter,.club-navigation>span,.community-gallery-caption [data-gallery-counter]{font-size:.875rem;color:var(--lime);font-variant-numeric:tabular-nums;white-space:nowrap}
.carousel-counter{min-width:72px;text-align:center}
.club-stage .club-panels{margin-inline:30px}
.club-stage [data-feature-prev]{left:-23px}
.club-stage [data-feature-next]{right:-23px}
.community-gallery-arrow.gallery-previous{left:-23px}
.community-gallery-arrow.gallery-next{right:-23px}
#plans .plans-heading{padding-right:0}
#plans .plans-heading>.eyebrow{margin-bottom:16px}
#plans .plans-heading>p:not(.eyebrow){font-size:1rem;line-height:1.6;margin-top:20px}
#plans .billing-control{position:static;margin-top:24px}
#plans .billing-control button{min-height:44px;padding:10px 16px}
#plans .plan-cards{margin-top:32px;scrollbar-width:thin;scrollbar-color:#72869d transparent}
#plans .plan-price-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:8px;min-height:118px}
#plans .plan-price{font-size:clamp(1.75rem,2.7vw,2.625rem);white-space:nowrap}
#plans .currency{font-size:.55em;padding-left:6px}
#plans .plan-card{isolation:isolate}
#plans .plan-mascot-stage{display:flex;align-items:center;justify-content:center;height:192px;margin:0 0 16px;flex:none}
#plans .plan-mascot{display:block;width:192px;height:192px;max-width:100%;object-fit:contain;image-rendering:pixelated;mix-blend-mode:lighten}
#plans .plan-period,#plans .plan-billed{font-size:.875rem;line-height:1.5}
#plans .plan-card-heading{min-height:138px}
#plans .plan-name{font-size:1.75rem}
#plans .plan-feature-caption{font-size:.875rem;line-height:1.5}
#plans .comparison summary{font-size:1rem;min-height:60px}
#plans .subscription-note p{font-size:.875rem;line-height:1.6}
.header-cta .header-cta-label,.header-cta .header-cta-short{font-size:inherit;line-height:inherit}
.header-cta-short{display:none}
.menu-toggle,.dialog-close{width:44px;height:44px;min-height:44px}
.dialog-close{font-size:26px}
dialog h2{font-size:var(--subheading-size);padding-right:28px}
#dialog-billing,#dialog-features li,.dialog-notice strong,.dialog-notice p,dialog>.fine-print{font-size:.875rem;line-height:1.6}
.site-footer{flex-wrap:wrap;gap:20px;font-size:.875rem}
.site-footer>.brand{white-space:normal;max-width:100%;font-size:1.25rem;line-height:1.3}
.site-footer>span{font-size:.75rem}
/* Three experience paths side by side; keep the original character assets. */
@media(min-width:951px){
 .who-section .audience-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,40px);align-items:stretch}
 .who-section .audience-cards article{display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0;padding:24px 0 0;border-bottom:0}
 .who-section .audience-character{width:100%;height:clamp(144px,13vw,176px);flex:none;margin-bottom:20px}
 .who-section .audience-character img{width:100%;height:100%;object-fit:contain}
 .who-section .audience-cards h3{max-width:none;min-height:2.5em;margin:0 0 16px}
 .who-section .audience-cards p{align-self:stretch;max-width:none;line-height:1.65;margin:0 0 24px}
 .who-section .audience-cards .text-link{align-self:flex-start;margin-top:auto}
}
@media(min-width:701px) and (max-width:950px){
 .audience-cards article{grid-template-columns:130px minmax(0,1fr);gap:16px 24px}
 .audience-character{grid-row:1 / 4}
 .audience-cards h3,.audience-cards p,.audience-cards .text-link{grid-column:2;grid-row:auto}
 .audience-cards h3{max-width:none}
 .mentor-opening{grid-template-columns:1fr;gap:20px}
 .mentor-opening>p{max-width:760px}
 .faq-section{grid-template-columns:1fr;gap:28px}
}
@media(max-width:900px){
 #plans .plan-cards{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;gap:16px;padding:2px 0 10px}
 #plans .plan-card,#plans .plan-card:first-child,#plans .plan-card:last-child{flex:0 0 min(88%,390px);padding:18px;scroll-snap-align:start}
 #plans .plan-description{min-height:0}
 #plans .plan-card-heading{min-height:128px}
 #plans .plan-price{font-size:2rem}
 #plans .plan-price-row{min-height:118px;grid-template-columns:minmax(0,1fr)}
 #plans .plan-mascot-stage{height:168px;margin-bottom:14px}
 #plans .plan-mascot{width:168px;height:168px}
 .club-tabs{display:flex;gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;border-bottom:1px solid var(--studio-line)}
 .club-tab{flex:none;min-height:64px;border:0;font-size:1.125rem}
 .club-tab:last-child{grid-column:auto}
 .club-tab:after{bottom:0}
}
@media(max-width:700px){
 :root{--carousel-control-size:44px}
 .club-stage .club-panels{margin-inline:20px}
 .club-stage [data-feature-prev]{left:-10px}
 .club-stage [data-feature-next]{right:-10px}
 .community-gallery-arrow.gallery-previous{left:8px}
 .community-gallery-arrow.gallery-next{right:8px}
 .club-stage .club-navigation button{width:var(--carousel-control-size);height:var(--carousel-control-size)}
 .site-footer>.brand{grid-column:1 / -1}
 .site-footer>span,.site-footer>a:last-child{text-align:left}
 .site-footer{grid-template-columns:1fr 1fr}
 .menu-toggle span{left:12px;top:17px}
 .menu-toggle span+span{top:24px}
}
@media(max-width:600px){
 .header-inner{gap:8px}
 .site-header .brand{font-size:14px;gap:6px;line-height:1.2}
 .site-header .brand-name{max-width:106px}
 .site-header .brand svg{width:24px;height:24px}
 .header-cta{font-size:12px;min-height:44px;padding:10px 12px;gap:0}
 .header-cta .header-cta-label,.header-cta>span[aria-hidden]{display:none}
 .header-cta .header-cta-short{display:inline}
 .room-purchase .button{font-size:14px}
}
@media(max-width:360px){
 #plans .plan-price{font-size:1.75rem}
 #plans .plan-card,#plans .plan-card:first-child,#plans .plan-card:last-child{padding:14px}
}
@media(prefers-reduced-motion:reduce){.carousel-arrow{transition:none}}

/* Original messages replace the artist illustration, with captions outside the images. */
.opportunity-with-evidence{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:40px}
.connection-evidence{min-width:0}
.connection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;min-width:0}
.connection-card{min-width:0;margin:0}
.connection-image{position:relative;display:flex;align-items:center;justify-content:center;height:clamp(104px,8vw,116px);overflow:hidden;border:1px solid #344450;border-radius:10px;background:#080a0b;cursor:default}
.connection-image>img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto}
.connection-card figcaption{display:grid;gap:4px;margin-top:10px;padding-left:10px;border-left:2px solid var(--lime);line-height:1.4}
.connection-card figcaption strong{font-family:var(--heading);font-size:1rem;font-weight:500;color:var(--text)}
.connection-card figcaption>span{font-size:.875rem;color:var(--studio-muted)}
@media(max-width:1100px) and (min-width:901px){.opportunity-with-evidence{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px}.connection-grid{gap:18px 14px}}
@media(max-width:900px){
 .opportunity-with-evidence{grid-template-columns:1fr;gap:28px}
 .opportunity-with-evidence h2{max-width:1000px}
 .connection-grid{max-width:720px;margin-inline:auto;gap:20px}
 .connection-image{height:150px}
}
@media(max-width:700px){
 .opportunity-with-evidence{gap:20px}
 .connection-grid{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;gap:16px;padding:6px 2px 10px;scroll-padding-left:2px;scrollbar-width:thin;scrollbar-color:#72869d transparent}
 .connection-card{flex:0 0 92%;scroll-snap-align:start}
 .connection-image{aspect-ratio:auto;height:clamp(136px,38vw,172px)}
 .connection-image>img{width:100%;height:100%;object-fit:contain}
}
