:root{font-family:Arial,sans-serif;color:#14112e;background:#fcfbff;--purple:#7428f5;--muted:#736b83;--line:#e8dff4}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #f08b59;outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(1280px,calc(100% - 64px));margin-inline:auto}.preview-banner{text-align:center;font-size:13px;background:#eee5ff;padding:10px 16px;line-height:1.4}.header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:24px;border-bottom:1px solid var(--line);position:relative}.brand{font-size:30px;font-weight:800;letter-spacing:-1.5px;text-decoration:none;display:flex;align-items:center;gap:9px}.mark{color:var(--purple);letter-spacing:-8px;padding-right:7px;font-size:38px}.header nav{display:flex;align-items:center;gap:30px}.header nav a{text-decoration:none;font-size:15px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:15px 26px;border-radius:28px;background:var(--purple);color:white;border:1px solid var(--purple);font-weight:700;text-decoration:none;text-align:center;line-height:1.35;min-height:48px}.outline{background:transparent;color:var(--purple)}.menu-toggle{display:none}.hero{text-align:center;padding-top:50px}.hero h1{font-size:clamp(34px,5vw,70px);letter-spacing:-2px;margin:0 0 18px;line-height:1.06}.hero h1 span{color:var(--purple)}.lead{font-size:clamp(19px,2vw,27px);line-height:1.4;margin:0 auto 22px;max-width:850px}.characters{position:relative;aspect-ratio:1024/860;overflow:hidden;width:min(850px,100%);margin:-8px auto 0;border-radius:30px}.characters img{position:absolute;width:100%;height:auto;left:0;top:-39.535%;max-width:none}.hero-link{margin:20px auto 24px;min-width:300px}.demo{display:flex;align-items:center;gap:20px;width:min(550px,100%);background:#091c39;padding:16px;border-radius:24px;color:white;text-align:left;text-decoration:none;margin:auto}.demo-image{position:relative;overflow:hidden;aspect-ratio:248/127;width:46%;flex-shrink:0;border-radius:13px}.demo-image img{position:absolute;width:412.903%;height:auto;max-width:none;left:-106.05%;top:-1044.882%}.demo strong{color:#a477ff;display:block;font-size:20px;margin-bottom:8px}.demo span span,.demo small{display:block;font-size:17px;line-height:1.5}.demo small{color:#c5c9dc}.entries{padding-block:90px 75px;text-align:center;scroll-margin-top:24px}h2{font-size:clamp(26px,3vw,40px);letter-spacing:-.8px;line-height:1.15;margin:0 0 18px}.muted{color:var(--muted);line-height:1.6}.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:35px}.tile{display:block;background:white;border:1px solid var(--line);border-radius:24px;padding:25px;text-decoration:none;text-align:left;transition:transform .15s,border-color .15s}.tile:hover{transform:translateY(-3px);border-color:#a773f9}.tile-icon{display:inline-grid;place-items:center;background:#efe5ff;color:var(--purple);width:45px;height:45px;border-radius:14px;font-size:25px}.tile h3{font-size:21px;line-height:1.35;margin:20px 0 10px}.tile h3 span{color:var(--purple)}.tile p{margin:0;color:var(--muted);line-height:1.5}.waitlist{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:45px 50px;border-radius:30px;background:#0b1c3c;color:white;scroll-margin-top:30px}.waitlist p{line-height:1.6;color:#d2c9e4}.waitlist-fields{display:grid;gap:12px;align-content:center}.waitlist-fields>label:not(.check){font-size:15px}.waitlist-fields input[type=email]{width:100%;border-radius:25px;background:#152849;border:1px solid #a979ff;color:#e4def0;padding:13px 18px;opacity:1}.waitlist-fields input::placeholder{color:#bcb6d0}.check{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.4}.check input{margin:0;width:18px;height:18px;flex-shrink:0}.status-light{font-size:13px;margin:0}.waitlist .privacy{font-size:13px;color:#e2d8f3}.waitlist button:disabled{opacity:.65}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:25px;padding-block:45px 25px}.footer nav{display:flex;gap:28px;flex-wrap:wrap}.footer nav a{font-size:14px;color:var(--muted)}.badge{color:var(--purple);background:#efe5ff;padding:10px 22px;border-radius:25px;font-weight:bold}.footer>p{flex-basis:100%;border-top:1px solid var(--line);padding-top:22px;color:var(--muted);font-size:14px}.subpage{padding-block:35px 70px;min-height:65vh;max-width:1000px}.back{display:inline-block;margin-bottom:40px;color:var(--purple);text-decoration:none;padding:10px 0}.eyebrow{color:var(--purple);font-size:14px;font-weight:bold;letter-spacing:1px}.subpage h1{font-size:clamp(32px,5vw,55px);line-height:1.1;letter-spacing:-1.5px;margin:15px 0 28px}.subpage .lead{margin-left:0}.detail{background:white;border:1px solid var(--line);border-radius:25px;padding:32px;margin-top:28px}.detail p{font-size:18px;line-height:1.7;max-width:730px}.detail h2{font-size:29px}.detail .button{margin-top:12px}.topic-buttons{display:flex;gap:12px;flex-wrap:wrap}.topic-buttons button{border:1px solid #d4bcec;background:#f4edff;border-radius:24px;padding:14px 25px;color:var(--purple);min-height:48px}.topic-buttons button[aria-pressed=true]{background:var(--purple);color:white}.skip{position:absolute;left:16px;top:-90px;z-index:5;background:white;padding:15px}.skip:focus{top:5px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.noscript{padding:20px;background:#fff0cc}h1:focus,h2:focus,main:focus{outline:none}
@media(max-width:900px){.wrap{width:calc(100% - 40px)}.header nav{gap:18px}.tiles{gap:12px}.tile{padding:20px}.tile h3{font-size:19px}.waitlist{padding:35px;gap:30px}.characters{max-width:720px}.hero{padding-top:38px}.entries{padding-block:65px}.header .brand{font-size:27px}.header nav .button{padding:12px 20px}}
@media(max-width:640px){.wrap{width:calc(100% - 32px)}.header{padding-block:15px;flex-wrap:wrap;gap:12px}.header .brand{font-size:26px}.mark{font-size:32px}.menu-toggle{display:flex;align-items:center;gap:12px;border:1px solid #dac9ed;border-radius:22px;background:white;padding:12px 16px;color:var(--purple);min-height:44px}.header nav{flex-basis:100%;display:flex;flex-direction:column;align-items:stretch;gap:3px;border-top:1px solid var(--line);padding-top:12px}.header nav>a{padding:14px 15px}.hero{padding-top:30px}.hero h1{letter-spacing:-1.2px;font-size:37px}.desktop-break{display:none}.lead{font-size:19px}.characters{border-radius:20px;aspect-ratio:1024/860}.characters img{top:-39.535%}.hero-link{min-width:0;width:100%;font-size:16px;margin-top:14px}.demo{padding:12px;gap:12px;border-radius:18px}.demo strong{font-size:17px;margin-bottom:4px}.demo span span,.demo small{font-size:13px}.tiles{grid-template-columns:1fr;gap:14px}.tile{padding:22px}.tile h3{font-size:21px;margin-top:12px}.entries{padding-block:55px 45px}.waitlist{grid-template-columns:1fr;gap:18px;padding:27px 23px;border-radius:24px}.waitlist h2{font-size:32px}.footer{gap:22px;padding-top:35px}.footer nav{order:3;flex-basis:100%;gap:18px}.footer>p{order:4;line-height:1.5;margin:0}.detail{padding:22px}.detail .button{width:100%;padding-inline:18px}.topic-buttons{gap:8px}.topic-buttons button{padding:12px 17px}.subpage{padding-block:20px 40px}.back{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.logo-art{display:block;position:relative;overflow:hidden;width:240px;aspect-ratio:302/64}.logo-art img{position:absolute;width:339.073%;height:auto;max-width:none;left:-12.583%;top:-87.5%}@media(max-width:640px){.logo-art{width:190px}}

@media(max-width:360px){.logo-art{width:160px}}

/* Separate full-body poses dissolve in; the original couple is never split. */
.character-explorer{max-width:850px;margin-inline:auto}
.character-hint{color:var(--muted);font-size:15px;margin:24px 0 16px}
#character-stage{isolation:isolate;background:radial-gradient(ellipse at 45% 35%,#fcf8ff 0,#e7d5ff 58%,#c8b1ef 100%)}
#character-stage .couple-art{transition:opacity .35s ease;z-index:1}
#character-stage[data-selection]:not([data-selection=both]) .couple-art{opacity:0}
.initial-target{position:absolute;z-index:3;top:5%;height:91%;border:0;border-radius:45%;background:transparent;padding:0;touch-action:manipulation}
.initial-woman{left:24%;width:25%}.initial-man{left:50%;width:29%}
.initial-target:hover{background:#ffffff12}
.initial-target:focus-visible{outline-offset:-5px;background:#ffffff18}
#character-stage .person{position:absolute;top:1%;height:98%;width:65%;padding:0;border:0;background:transparent;opacity:0;pointer-events:none;transform-origin:50% 95%;transition:transform .5s ease,opacity .35s ease;z-index:2;touch-action:manipulation;border-radius:30%}
#character-stage .person img{position:static;display:block;width:100%;height:100%;object-fit:contain;max-width:100%;user-select:none}
.person-woman{left:7%;transform:scale(.88)}.person-man{left:29%;transform:scale(.96)}
#character-stage:not([data-selection=both]) .person{opacity:1;pointer-events:auto}
#character-stage[data-selection=woman] .person-woman{transform:translateX(-2%) scale(1);z-index:4}
#character-stage[data-selection=woman] .person-man{transform:translateX(31%) scale(.67);opacity:.6;z-index:2}
#character-stage[data-selection=man] .person-man{transform:translateX(-1%) scale(1);z-index:4}
#character-stage[data-selection=man] .person-woman{transform:translateX(-29%) scale(.64);opacity:.6;z-index:2}
.person:focus-visible{outline-offset:-12px}
.character-controls{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:18px}
.character-controls button,.explore-options button{min-height:44px;padding:11px 20px;background:white;border:1px solid #d4bcec;border-radius:24px;color:#6521cb;font-weight:600;line-height:1.3;touch-action:manipulation}
.character-controls button[aria-pressed=true],.explore-options button[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:white}
.character-controls button:disabled{opacity:.5}
.character-status{font-size:14px;color:var(--muted);min-height:2.8em;line-height:1.4;margin:13px 10px 0}
.explore-panel{text-align:left;margin:20px 0 26px;padding:30px;background:white;border:1px solid var(--line);border-radius:24px}
.explore-panel h2{font-size:27px;margin-bottom:10px}.explore-panel>p{color:var(--muted);line-height:1.5}
.explore-options{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.explore-options[aria-label=Topics]{padding-top:14px;border-top:1px solid var(--line)}
.explore-options button{font-size:15px;font-weight:400}
.explore-response{margin-top:22px;border-radius:16px;background:#f5efff;padding:20px}.explore-response h3{font-size:19px;margin:0 0 8px}.explore-response p{margin:0;line-height:1.6;font-size:16px;color:#514466}
.explore-panel .explore-note{font-size:13px;margin:18px 0 0}
@media(max-width:640px){
 .character-hint{font-size:14px;margin:20px 0 16px}
 .character-controls{gap:7px}.character-controls button{padding:11px 16px;font-size:14px}
 .character-status{font-size:13px}
 #character-stage[data-selection=woman] .person-man{transform:translateX(39%) scale(.55)}
 #character-stage[data-selection=man] .person-woman{transform:translateX(70%) scale(.53)}
 #character-stage[data-selection=man] .person-man{transform:translateX(-34%) scale(1)}
 .explore-panel{padding:20px}.explore-panel h2{font-size:24px}.explore-options button{padding:11px 14px;font-size:14px}
}

/* Numbered callouts share the selected pose's geometry, with 44 px hit areas. */
.hotspot-layer{position:absolute;top:1%;height:98%;width:65%;z-index:6;pointer-events:none;transform-origin:50% 95%}
.hotspot-layer[data-for=woman]{left:7%;transform:translateX(-2%)}
.hotspot-layer[data-for=man]{left:29%;transform:translateX(-1%)}
.pose-map{position:absolute;height:100%;aspect-ratio:2/3;left:50%;transform:translateX(-50%)}
.pose-map svg{width:100%;height:100%;overflow:visible;fill:white;stroke:#7428f5;stroke-width:5;vector-effect:non-scaling-stroke}
.pose-map svg path{fill:none}
.body-hotspot{position:absolute;left:95%;width:44px;height:44px;padding:0;transform:translate(-50%,-50%);border:2px solid white;border-radius:50%;color:white;background:#6521cb;font-size:16px;font-weight:700;box-shadow:0 1px 7px #27144730;pointer-events:auto;touch-action:manipulation}
.spot-face{top:12%}.spot-shoulders{top:33%}.spot-hands{top:56%}
.zoom-view{position:absolute;inset:0;z-index:10;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:12px;background:radial-gradient(ellipse at 45% 35%,#fcf8ff,#e7d5ff);text-align:left}
.zoom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.zoom-toolbar button{min-height:44px;flex-shrink:0;padding:10px 14px;border:1px solid #ccb6e9;background:white;color:#6521cb;border-radius:24px;font-size:14px;touch-action:manipulation}
.zoom-toolbar h3{font-size:17px;line-height:1.2;margin:0;color:#35204e}
.zoom-space{display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;overflow:hidden}
.zoom-window{position:relative;overflow:hidden;border-radius:14px;flex-shrink:0}
#character-stage .zoom-window img{position:absolute;height:auto;max-width:none;display:block}
@media(max-width:640px){.hotspot-layer[data-for=man]{transform:translateX(-34%)}.zoom-toolbar h3{font-size:14px}.zoom-toolbar button{padding-inline:12px}}

/* Direct body regions complement the large numbered and text controls. */
.body-region{position:absolute;z-index:1;pointer-events:auto;background:transparent;border:0;border-radius:40%;padding:0;touch-action:manipulation}
.region-face{left:29%;top:0;width:46%;height:18%}
.region-shoulders{left:26%;top:19%;width:52%;height:18%}
.region-hand{left:52%;top:38%;width:32%;height:23%}
.body-region:hover,.body-region:focus-visible{background:#ffffff20}
.pose-map svg{pointer-events:none;position:relative;z-index:2}
.body-hotspot{z-index:3}
.related-lesson{display:inline-block;color:#6521cb;font-weight:600;padding:14px 0 2px;min-height:44px}
.safety-note{max-width:850px;text-align:center;padding:0 16px 42px}
.safety-note h2{font-size:24px}.safety-note p{color:var(--muted);line-height:1.6;margin:0}
@media(min-width:641px) and (max-width:900px){.header nav{gap:12px}.header nav a{font-size:14px}.logo-art{width:190px}}

.light-scene-wide{width:100vw;position:relative;left:50%;margin-left:-50vw;background:linear-gradient(180deg,#cbb8f3 0%,#d6c6f5 45%,#ece5fb 100%)}
#character-stage{border-radius:0;background:transparent;margin-top:0}
#character-stage .couple-art{mask-image:linear-gradient(to right,transparent,#000 18%,#000 82%,transparent)}

/* Coherent wide environment; gradients affect scenery, never the characters. */
:root,body{background:#f7f3ff}
.header{border-bottom-color:#e5daf3}
.light-scene-wide{background:linear-gradient(to bottom,#f7f3ff 0%,#f7f3ff00 20%,#f7f3ff00 85%,#f7f3ff 100%),url('assets/light-wide.webp') center center/cover no-repeat}
#character-stage{background:transparent;border-radius:0}
#character-stage .couple-art{top:auto;bottom:0;left:0;width:100%;height:100%;object-fit:contain;mask-image:none}
.preview-banner a{display:inline-block;padding:10px 8px;min-height:44px}
.logo-art{mix-blend-mode:multiply}

/* Reviewed V4 polish: quiet scenery, grounded feet, one primary instruction. */
.light-scene-wide{background:linear-gradient(to bottom,#f7f3ff 0%,#f7f3ff26 20%,#f7f3ff26 85%,#f7f3ff 100%),url('assets/light-wide.webp') center center/cover no-repeat}
.character-hint{font-weight:600;color:#514064}
.character-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0;min-height:0}
.character-controls [hidden]{display:none!important}
#character-stage::before{content:"";position:absolute;z-index:0;pointer-events:none;left:33%;width:34%;bottom:2.5%;height:3%;background:radial-gradient(ellipse at 20% 50%,#49325740,transparent 30%),radial-gradient(ellipse at 78% 50%,#49325740,transparent 30%);filter:blur(3px)}
#character-stage:not([data-selection=both])::before{display:none}
.availability{display:inline-block;margin-top:10px;padding:5px 9px;border-radius:12px;background:#eee5fc;color:#614383;font-size:12px;font-weight:600}
.demo{margin-top:28px}

/* Direct, non-overlapping areas replace detached numbered callouts. */
.region-shoulders{left:63%;top:18%;width:18%;height:12%}
.region-chest{left:35%;top:22%;width:28%;height:14%}
.region-abdomen{left:35%;top:36%;width:28%;height:14%}
.region-hand{left:65%;top:40%;width:19%;height:20%}
.region-knee{left:32%;top:62%;width:36%;height:17%}
.body-region{cursor:zoom-in;border:1px solid transparent;transition:background .18s,box-shadow .18s}
.body-region:hover,.body-region:focus-visible{background:#d8b7ff55;border-color:#fff;box-shadow:0 0 18px #a163ee88;outline:2px solid #7e36ce}
.body-region::after{content:attr(data-label);position:absolute;left:50%;bottom:100%;transform:translateX(-50%);padding:6px 10px;border-radius:12px;background:#34204d;color:white;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none}
.body-region:hover::after,.body-region:focus-visible::after{opacity:1}
.initial-target{cursor:pointer}
.initial-target:hover{background:#cab1ed18;box-shadow:inset 0 0 30px #b48de633}
.anatomy-note{font-size:13px;color:#736b83;line-height:1.5}
@keyframes discover-area{50%{background:#d8b7ff44;box-shadow:0 0 15px #a163ee66}}
.region-shoulders{animation:discover-area 1.2s ease-in-out 2}
@media(prefers-reduced-motion:reduce){.region-shoulders{animation:none}.body-region{transition:none}}

#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 32px));padding:18px;background:#101e3b;color:#fff;border-radius:16px;z-index:100;display:none}#toast.show{display:block}.security-overlay,.verify-overlay{position:fixed;inset:0;background:#101329aa;z-index:90;display:grid;place-items:center;padding:20px}.security-card,.verify-card{background:white;border-radius:24px;padding:28px;width:min(480px,100%);max-height:90vh;overflow:auto}.security-card p,.verify-card p{line-height:1.6}.security-close{margin-top:20px;padding:12px 24px}.signup-success{display:grid;gap:12px;line-height:1.5}.legal{max-width:850px;padding-block:35px}.legal p,.legal li{line-height:1.7}.legal h2{font-size:25px;margin-top:32px}.legal h1{font-size:40px}.character-explorer{pointer-events:none}.characters{cursor:default}.waitlist-fields{margin:0}.check{align-items:flex-start}.check input{margin-top:2px}

/* Reviewed pre-launch actions and accessible native dialogs. */
.route-cta{margin-top:28px}.form-error{color:#fff;background:#682947;border-left:4px solid #ffbda9;padding:12px;line-height:1.5;text-align:left}.waitlist [aria-invalid="true"]{outline:2px solid #ffbda9;outline-offset:3px}
dialog.verify-overlay,dialog.security-overlay{border:0;margin:0;max-width:none;max-height:none;width:100%;height:100%;color:#14112e}dialog:not([open]){display:none!important}dialog::backdrop{background:rgba(5,12,31,.65)}

/* Compact opening: remove whitespace only; preserve all character/image dimensions. */
.header{padding-block:4px}
.hero{padding-top:0}
.hero>.eyebrow{margin-block:0}
.hero>h1{margin-bottom:0}
.hero>.lead{margin-bottom:0}

/* Dedicated clean demo artwork and direct mobile signup. */
.demo-image img{position:static;width:100%;height:100%;object-fit:cover;max-width:100%}
.mobile-waitlist{display:none}
@media(max-width:640px){
.header{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;gap:8px}
.header .logo-art{width:min(150px,100%)}
.header .mobile-waitlist{display:inline-flex;font-size:12px;padding:10px 12px;min-height:44px;white-space:nowrap}
.header .menu-toggle{font-size:0;padding:10px;gap:0;justify-content:center;min-width:44px}
.header .menu-toggle span{font-size:18px}
.header nav{grid-column:1/-1}
.header nav>a[href="#waitlist"]{display:none}
}

/* Tighten desktop text spacing without resizing the figures or type. */
@media(min-width:901px){
.header{padding-block:0}
.hero>h1{line-height:.98}
.hero>.lead{line-height:1.05}
}
/* Keep the arrow beside its heading, even when the title wraps. */
.tile h3{display:flex;align-items:baseline;gap:6px}
.tile h3>span{flex-shrink:0}

/* Sticky navigation: preserve the existing hero and figure dimensions. */
html{scroll-padding-top:76px}
.header{position:sticky;top:0;z-index:30;background:#f7f3ff;isolation:isolate}
.header::before{content:"";position:absolute;z-index:-1;inset-block:0;left:50%;width:100vw;transform:translateX(-50%);background:#f7f3ff;border-bottom:1px solid var(--line);pointer-events:none}
.skip{z-index:40}
@media(max-width:640px){
 .header nav{position:absolute;top:100%;left:0;right:0;background:#f7f3ff;padding:12px;border:1px solid var(--line);border-radius:0 0 18px 18px;max-height:calc(100dvh - 76px);overflow-y:auto;box-shadow:0 12px 20px #24113d14}
}
