/* Shared typography and controls, after the editorial composition styles. */
:root{--muted:#6d656f;--text-secondary:#625a66}
body{font-size:16px;letter-spacing:0;font-weight:400}
h1,h2,h3{letter-spacing:-.035em;font-weight:500}
button,input,select{letter-spacing:0}
.brand{font-size:12px;letter-spacing:0}
.header nav{font-size:13px;gap:22px}
.header nav a{padding:8px 0}
.button,.button.small,.price-card .button,.program-intro .button{font-size:14px;min-height:48px}
.eyebrow,.hero-copy .eyebrow{font-size:12px;font-weight:500}
.tiny,.result-top .pill,.price-top .tiny{font-size:12px}
.hero h1,.motion-scene .hero h1{letter-spacing:-.04em;line-height:1.08}
.hero-copy p{font-size:14px;line-height:1.6;color:var(--text-secondary);max-width:440px}
.hero-meta{font-size:12px;gap:14px;flex-wrap:wrap}
.scroll-hint{font-size:12px;gap:16px}
.hero-word,.motion-word{font-weight:500;letter-spacing:-.075em}
.hero-word{bottom:auto;line-height:.72}
.motion-scene .hero-photo{width:min(54%,calc((100svh - 34px)*1.18));right:12%}
.floating-course{width:clamp(232px,18vw,276px);padding:22px;background:#fffffff2;backdrop-filter:blur(16px)}
.card-top{font-size:11px;gap:10px;color:#685e6b}
.card-top .pill{font-size:11px;padding:3px 8px}
.focus-kicker{font-size:11px;letter-spacing:.045em;color:#716675;margin-top:20px}
.floating-course h3{font-size:clamp(24px,2.1vw,30px);letter-spacing:-.035em;line-height:1.14;min-height:70px}
.floating-course>p{font-size:12px;line-height:1.55;color:#685e6d;min-height:56px;margin:12px 0 16px}
.focus-tags{font-size:11px;color:#6a5c6f;gap:5px;flex-wrap:wrap}
.focus-tags span{padding:4px 7px}
.focus-dots{gap:0}
.focus-dots button{width:28px;height:36px;padding:11px;flex-shrink:0}
.focus-dots button:before{width:6px;height:6px}
.floating-course .round,.focus-autoplay{width:36px;height:36px;flex-shrink:0}
.focus-autoplay{margin-right:6px}
.floating-caption{font-size:11px;line-height:1.55;top:auto!important;bottom:68px;max-width:230px}
.face-lines{opacity:.9}
.face-hotspot{width:30px;height:30px;background:#ffffff24;box-shadow:0 0 0 3px #ffffff12}
.face-hotspot[aria-pressed=true]{background:#bf0735;box-shadow:0 0 0 6px #ffffff45}
.result-top{font-size:12px;color:#6c5b73}
.result-card{min-height:410px;padding:24px}
.motion-scene .results .result-card{min-height:390px}
.result-card h3{font-size:clamp(24px,2.1vw,31px);line-height:1.16;letter-spacing:-.035em}
.result-card>p,.result-before{font-size:13px;line-height:1.55;color:#6d5f70}
.dark-result>p,.dark-result .result-before,.dark-result .result-top{color:#d4c9d6}
.check-diagram{font-size:12px;line-height:1.5;gap:8px}
.check-diagram>span{padding:8px;align-items:start}
.check-diagram i{flex-shrink:0;margin-top:2px}
.results-note,.cases-footnote,.pricing-note{font-size:12px;line-height:1.7;color:#706474}
.program-intro small,.program-numbers span{font-size:12px;color:#706474}
.modules summary{gap:16px;min-height:92px}
.modules summary h3{font-size:22px;line-height:1.3;letter-spacing:-.025em}
.module-no,.week{font-size:12px;color:#746279}
.module-body p{font-size:15px;line-height:1.7;max-width:480px;color:#64596a}
.tags span{font-size:12px;padding:6px 10px}
.practice-note{font-size:13px;gap:5px;line-height:1.6}
.practice-note>span{font-size:11px;color:#d0c5d3}
.case-navigation>span{font-size:12px;color:#706474}
.case-navigation .round{width:44px;height:44px}
.compare-label{font-size:12px;padding:6px 14px}
.comparison-caption span{font-size:12px;color:#655969}
.comparison-caption strong{font-size:15px;line-height:1.5}
.case-note{padding:26px}
.case-note-top{font-size:12px;color:#d4c6d8}
.case-note-content{padding-top:40px}
.case-note-content h3{font-size:clamp(25px,2.4vw,34px);line-height:1.2;letter-spacing:-.03em;overflow-wrap:anywhere}
.case-note-content p{font-size:14px;line-height:1.7;color:#d4c6d8}
.case-note-bottom{font-size:12px;line-height:1.6}
.case-note-bottom small{font-size:11px;color:#cbbacf}
.case-note .case-disclaimer{font-size:11px;color:#bcaec1;line-height:1.7}
.case-tabs button .thumb-number,.case-tabs button .thumb-label{font-size:12px;padding:3px 8px}
.payment-switch button{font-size:13px;min-height:44px;padding:10px 16px;color:#66576c}
.payment-switch{max-width:100%}
.pricing[data-payment=month] .price{font-size:clamp(27px,2.6vw,40px)}
.price-card{min-height:540px;padding:28px}
.price-card.featured{min-height:580px}
.price-top{font-size:12px;align-items:start;flex-wrap:wrap}
.popular{font-size:11px;padding:5px 9px}
.price-intro{font-size:14px;color:#675c6e}
.price{font-size:clamp(36px,3.5vw,52px);letter-spacing:-.04em!important;font-variant-numeric:lining-nums tabular-nums}
.price-sub{font-size:12px;color:#6e5e75;line-height:1.6}
.price-card ul{font-size:14px;line-height:1.6;gap:12px}
.featured .price-top,.featured .price-intro,.featured .price-sub{color:#fff0f4}
.vip .price-top,.vip .price-intro,.vip .price-sub{color:#d3c6d8}
.price-card .button{padding:13px 18px;gap:10px}
.signup{grid-template-columns:1fr 1fr;gap:6%;padding:64px 4.5%}
.signup h2{line-height:1.12;letter-spacing:-.035em}
.signup h2>span{color:#ffe1ea}
.countdown-label{font-size:14px!important}
.countdown-label>span,.countdown span{font-size:12px;color:#ffe0e9}
.countdown>div{width:72px;padding:12px 8px}
.signup-form{padding:32px;border-radius:24px;gap:0}
.signup-form .eyebrow{font-size:12px;color:#706075}
.signup-form h3{font-size:30px;line-height:1.2;margin:14px 0 26px;letter-spacing:-.035em}
.signup-form label,.signup-form legend{font-size:13px;font-weight:600;color:#4d4153;margin-bottom:8px}
.signup-form input:not([type=radio]),.signup-form select{font-size:16px;line-height:1.4;height:52px;padding:13px 16px;border:1px solid #c9bece;border-radius:12px;background:#faf8fb;margin:0;box-shadow:none;min-width:0}
.signup-form input::placeholder{color:#7d6f83;opacity:1}
.signup-form input[aria-invalid=true]{border-color:#b0002d;background:#fff6f8}
.field-hint,.field-error{font-size:12px;line-height:1.6;margin:6px 0 0}
.field-hint{color:#6c5b74}
.field-error{color:#a3002d;min-height:0}
.field-error:empty{display:none}
.form-field{display:flex;flex-direction:column;margin-bottom:20px;min-width:0}
.contact-choice{border:0;padding:0;margin:0 0 16px;min-width:0;display:flex;gap:10px;flex-wrap:wrap}
.contact-choice legend{padding:0;margin-bottom:10px}
.contact-choice label{display:flex;align-items:center;gap:8px;padding:8px 12px;min-height:44px;border:1px solid #cfc5d3;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;margin:0}
.contact-choice label:has(:checked){border-color:#bf0735;background:#fff0f4;color:#a3002d}
.contact-choice input[type=radio]{accent-color:#bf0735;width:16px;height:16px;margin:0;padding:0;flex-shrink:0}
.form-note{font-size:12px;line-height:1.7;color:#66566e;margin:0 0 20px}
.form-status{font-size:13px;line-height:1.7;color:#a3002d;margin-top:16px;overflow-wrap:anywhere}
.form-status[data-state=success]{color:#225f42;background:#edf7f0;padding:12px;border-radius:10px}
.signup-form .button{font-size:14px;min-height:52px}
.footer-top h2{font-size:30px;line-height:1.25}
.footer-links,.footer-links button{font-size:14px;line-height:1.6}
.footer-links>span,.footer-links p,.footer-bottom{font-size:12px;color:#716076}
.footer-links a,.footer-links button{padding:4px 0}
.toast{font-size:14px;line-height:1.6;border-radius:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;left:20px;top:-100px;padding:12px 20px;background:#fff;color:#171518;border:2px solid #bf0735;border-radius:10px;z-index:100}
.skip-link:focus{top:16px}
.scroll-hint{min-height:44px}
@media(max-width:1199px) and (min-width:701px){
 .hero-copy .eyebrow{font-size:11px;max-width:360px}
 .hero-copy p{font-size:13px}
 .hero-meta{font-size:11px}
 .floating-course{width:232px;padding:18px;right:3%}
 .floating-course h3{font-size:24px;min-height:56px}
 .floating-course>p{font-size:12px;min-height:54px}
 .floating-caption{display:none}
 .result-card{padding:18px}
 .result-card h3{font-size:24px}
 .result-card>p,.result-before{font-size:12px}
 .result-top .pill{font-size:11px}
 .check-diagram{font-size:11px}
 .price-card{padding:22px}
 .case-grid{grid-template-columns:1.55fr 1fr}
 .case-note-content h3{font-size:26px}
}
@media(max-height:720px) and (min-width:900px){
 .motion-scene .hero-copy{padding-top:115px}
 .motion-scene .hero h1{font-size:clamp(34px,3.2vw,50px);margin:16px 0}
 .motion-scene .hero-copy p{margin-bottom:16px}
 .motion-scene .floating-course{top:25%}
 .motion-hero-controls .floating-caption{display:none}
}
@media(max-width:700px){
 .header{left:29px;right:29px;top:20px}
 .header .button.small{font-size:12px;min-height:40px;padding:10px 12px}
 .header-cta{margin-right:8px}
 .menu-button{width:40px;height:44px;padding:12px 9px;justify-content:center;flex-shrink:0}
 .header nav{font-size:16px}
 .hero-inner{display:flex;flex-direction:column;min-height:0;height:auto;max-height:none;padding-bottom:22px}
 .hero-copy{padding-top:108px;margin-left:23px;width:calc(100% - 46px);pointer-events:auto}
 .hero-copy .eyebrow{font-size:11px;padding:7px 10px;max-width:100%}
 .hero h1{font-size:clamp(32px,8.5vw,43px);line-height:1.08;margin:20px 0}
 .hero h1>span{font-size:.88em}
 .hero-copy p{font-size:14px;max-width:100%;margin:0 0 20px}
 .hero-copy p br{display:none}
 .hero-copy .button{font-size:14px;min-height:48px}
 .hero-meta{font-size:11px;gap:4px;margin-top:14px}
 .hero-photo{position:relative;top:auto;right:auto;width:100%;height:450px;flex-shrink:0;margin-top:12px;mix-blend-mode:normal}
 .hero-photo img{position:relative;left:-25%;width:150%;max-width:none;object-position:50% 0%;mask-image:linear-gradient(to bottom,transparent 0%,black 8%,black 92%,transparent 100%)}
 .hero-photo .face-lines{display:block}
 .face-hotspot{display:grid;width:24px;height:24px}
 .hero-word{left:10%;font-size:52vw}
 .floating-course{position:relative;top:auto;right:auto;width:calc(100% - 40px);margin:0 20px;padding:22px;border-radius:20px;z-index:5;background:#fff}
 .floating-course h3{font-size:28px;min-height:0;max-width:100%;margin:8px 0 0}
 .floating-course h3 br{display:none}
 .floating-course>p{font-size:14px;min-height:0;margin:12px 0 18px}
 .focus-kicker{font-size:11px;margin-top:20px}
 .card-top,.card-top .pill{font-size:12px}
 .focus-tags{font-size:11px;margin-bottom:16px}
 .focus-dots button{width:36px;height:44px;padding:15px}
 .focus-autoplay,.floating-course .round{height:44px;width:44px}
 .floating-caption{position:relative;top:auto;right:auto;bottom:auto;margin:18px 24px 0;font-size:12px;background:none;padding:0;max-width:none;gap:10px}
 .mini-portraits span{width:27px;height:27px}
 .scroll-hint{position:relative;left:auto;bottom:auto;margin:20px 24px 0;align-self:start;font-size:12px}
 .results-heading .eyebrow{font-size:12px}
 .results-heading h2{font-size:36px;line-height:1.15}
 .results-stage{padding-top:105px}
 .result-card{min-height:350px;padding:18px 15px}
 .result-card h3{font-size:23px;line-height:1.2}
 .result-card>p,.result-before{font-size:12px}
 .result-top,.result-top .pill{font-size:11px}
 .check-diagram{font-size:11px;margin:24px 0;gap:8px}
 .check-diagram>span{padding:6px 5px;gap:5px}
 .results-note{font-size:12px}
 .program-intro h2{font-size:40px;line-height:1.14}
 .program-numbers span{font-size:12px}
 .modules summary{display:grid;grid-template-columns:24px minmax(0,1fr) 30px;column-gap:10px;row-gap:4px;padding:17px 0;min-height:94px}
 .modules summary h3{font-size:19px;line-height:1.3}
 .module-no{grid-column:1;grid-row:1;align-self:start;padding-top:3px}
 .week{grid-column:2;grid-row:2;font-size:12px;white-space:normal}
 .plus{grid-column:3;grid-row:1 / 3;width:30px;height:30px}
 .module-body{padding-left:34px;padding-right:0}
 .module-body p{font-size:14px}
 .tags span{font-size:11px;padding:6px 8px}
 .practice-note{font-size:12px}
 .case-note{padding:25px}
 .case-note-content h3{font-size:29px}
 .case-note-content p{font-size:14px;max-width:none}
 .case-note .case-disclaimer{font-size:12px}
 .comparison-caption{right:14px;left:14px}
 .comparison-caption strong{font-size:14px}
 .case-tabs button .thumb-number,.case-tabs button .thumb-label{font-size:12px}
 .cases-footnote,.pricing-note{font-size:12px}
 .price-grid{gap:20px}
 .price-card,.price-card.featured{padding:28px;min-height:520px}
 .price{font-size:48px}
 .pricing[data-payment=month] .price{font-size:clamp(30px,8vw,36px)}
 .price-intro,.price-card ul{font-size:14px}
 .price-sub,.popular{font-size:12px}
 .price-card .button{font-size:14px}
 .signup{grid-template-columns:1fr;padding:36px 20px;gap:35px}
 .signup h2{font-size:38px}
 .countdown-label{font-size:14px!important}
 .countdown-label>span,.countdown span{font-size:11px}
 .countdown>div{width:61px}
 .signup-form{padding:25px 20px;min-width:0}
 .signup-form h3{font-size:28px}
 .signup-form input:not([type=radio]),.signup-form select{font-size:16px}
 .signup-form .button{font-size:14px}
 .footer-top h2{font-size:28px}
 .footer-links,.footer-links button{font-size:14px}
 .footer-links>span,.footer-links p,.footer-bottom{font-size:12px}
 .footer-bottom{gap:12px;align-items:start}
 .toast{font-size:14px;max-width:calc(100% - 32px)}
}
@media(max-width:380px){
 .header .brand{font-size:11px;gap:6px}
 .header-cta{margin-right:3px}
 .header .button.small{font-size:11px;gap:8px}
 .result-cards{grid-template-columns:1fr}
 .result-card:nth-child(n){margin-top:0;min-height:340px}
 .check-diagram{font-size:13px}
 .signup{padding:32px 16px}
 .signup-form{padding:24px 16px}
 .signup-form .button{gap:10px;padding:13px 14px}
 .countdown{gap:5px}
 .countdown>div{width:58px}
}

/* Captions and comparison shortcuts live below the image, away from the face. */
.comparison-figure{margin:0;min-width:0}
.comparison-figure .comparison-caption{position:static;inset:auto;max-width:none;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:16px 4px 0;background:none;backdrop-filter:none;pointer-events:auto;border-radius:0}
.comparison-caption-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.comparison-presets{display:flex;gap:4px;padding:4px;background:#f0eef0;border-radius:14px;flex-shrink:0}
.comparison-presets button{min-height:44px;min-width:48px;padding:10px 12px;font-size:13px;border-radius:10px;white-space:nowrap;color:#66576c}
.comparison-presets button[aria-pressed=true]{background:#171518;color:#fff}
.comparison-help{font-size:12px;line-height:1.7;color:#706474;margin:10px 4px 0}
.comparison-swap{position:absolute;inset:0;z-index:2;pointer-events:none}
.comparison.comparing-preset>.comparison-overlay{transition:clip-path .32s cubic-bezier(.22,.7,.3,1)}
.comparison.comparing-preset>.divider{transition:left .32s cubic-bezier(.22,.7,.3,1)}
.case-tabs button:nth-child(2){background-image:url('assets/case-cheeks-after-v2.webp')}
@media(max-width:1100px){.comparison-figure .comparison-caption{align-items:start;flex-direction:column;gap:12px}}
@media(prefers-reduced-motion:reduce){.comparison.comparing-preset>.comparison-overlay,.comparison.comparing-preset>.divider{transition:none}}

.case-grid{overflow-anchor:none}
.comparison-caption-copy{min-height:52px}
.case-note-content h3{min-height:4.8em}
.case-note-content p{min-height:5.1em}

.comparison-handle{position:absolute;z-index:4;top:50%;left:clamp(26px,var(--split),calc(100% - 26px));transform:translate(-50%,-50%);width:47px;height:47px;display:grid;place-items:center;border-radius:50%;background:var(--red);color:white;box-shadow:0 0 25px #a9003130;font-size:22px;pointer-events:none}
.comparison.comparing-preset>.comparison-handle{transition:left .32s cubic-bezier(.22,.7,.3,1)}
@media(max-width:1100px){.comparison-figure .comparison{height:auto;min-height:0;max-height:none;aspect-ratio:1/1}}
@media(prefers-reduced-motion:reduce){.comparison.comparing-preset>.comparison-handle{transition:none}}
