/* PRD-173 Home breakpoints: 899px inline journey, 820px stacked levers/trust,
   640px stacked pricing, 600px rail without arrows. The 900–1023px band keeps
   the desktop journey; 1000px is the tablet-landscape verification point. */
/* PRD-170: static, motion-off Home v2 geometry. Brand values inherit tokens.css. */
.home h1,.home h2,.home h3{font-family:var(--font-display);font-weight:400;text-wrap:balance;letter-spacing:-.005em}
.home p{text-wrap:pretty}
.home .eyebrow{font:500 12px/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.home .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.home [hidden]{display:none!important}
.hero h1,.step h2{font-size:clamp(52px,8.6vw,138px);line-height:.94;letter-spacing:-.015em}
.hero h1 em{color:var(--ink-3)}

.hero{min-height:calc(100vh - 68px);display:grid;align-content:center;gap:34px;padding:8vh 0 10vh;max-width:760px}
.hero .lede{font:400 clamp(20px,1.7vw,24px)/1.45 var(--font-ui);color:var(--ink-2);max-width:560px}
.step{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px}
.step .txt{display:grid;gap:26px;max-width:540px}
.step h2{font-size:clamp(46px,5.6vw,92px);line-height:.98}
.step p{font-size:19px;line-height:1.6;color:var(--ink-2)}
.step .eyebrow b{color:var(--clay-500);font-weight:500}
.sdots,.journey-plus{display:none}
.inline-phone{display:none;justify-content:center}
.phone{--pw:min(300px,72vw);position:relative;width:var(--pw);padding:calc(var(--pw)*.034);border-radius:calc(var(--pw)*.175);background:var(--ink);box-shadow:var(--shadow-2)}
.phone::after{content:"";position:absolute;top:calc(var(--pw)*.064);left:50%;width:calc(var(--pw)*.29);height:calc(var(--pw)*.085);transform:translateX(-50%);background:var(--ink);border-radius:var(--r-pill);z-index:3}
.screen{position:relative;aspect-ratio:280/607;border-radius:calc(var(--pw)*.142);overflow:hidden;background:var(--paper-2);isolation:isolate}
.screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}
.screen.stack img{transition:opacity .55s var(--ease-out)}
.screen.stack img:not(.on){opacity:0}


.tileb{border-radius:clamp(28px,3.4vw,48px);background:var(--grad-maint);position:relative;overflow:hidden}
.tileb.sun{background:var(--grad-active)}
.h2{font-size:clamp(40px,4.6vw,68px);line-height:1.02}
.sub{font-size:19px;line-height:1.55;color:var(--ink-2)}
.sec{padding:clamp(88px,11vw,160px) 0}
.sec-h{display:grid;gap:16px;max-width:720px;margin-bottom:56px}
.glass{background:var(--glass-1-bg);border:1px solid var(--glass-3-border)}
.levers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:0}
.levers li{padding:32px;border-radius:32px;display:grid;gap:12px;align-content:start}
.levers .n{font:500 13px var(--font-mono);color:var(--clay-500)}
.levers h3{font-size:44px;line-height:1}
@media(max-width:820px){.levers{grid-template-columns:1fr;gap:10px}.levers li{padding:18px 22px;border-radius:22px;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:baseline}.levers .n{grid-row:1/span 2}.levers h3{font-size:28px}.levers p{font-size:15px}}
.coda{margin-top:28px;font-size:19px;text-align:center}

.rail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}
.rail-head .sec-h{margin:0}
.rail-nav{display:flex;gap:8px;flex:none}
.rail-nav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--hairline);background:var(--glass-3-bg);font:400 20px/1 var(--font-ui);cursor:pointer;color:var(--ink);transition:background .2s,opacity .2s}
.rail-nav button:hover:not([aria-disabled="true"]){background:var(--paper)}
.rail-nav button:disabled{opacity:.35;cursor:default}
.rail{--gut:max(clamp(20px,4vw,56px),calc((100vw - 1320px)/2 + clamp(20px,4vw,56px)));display:grid;grid-auto-flow:column;grid-auto-columns:min(340px,80vw);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);padding:4px var(--gut) 24px;scrollbar-width:none;overscroll-behavior-x:contain}
.rail::-webkit-scrollbar{display:none}
.rail article{scroll-snap-align:start;display:grid;grid-template-rows:auto 1fr;border-radius:36px;overflow:hidden}
.rail .t{padding:28px 28px 20px;display:grid;gap:8px;align-content:start;min-height:150px}
.rail h3{font-size:30px;line-height:1.1}
.rail p{color:var(--ink-2);font-size:16px}
.rail .tileb{border-radius:0;height:auto;min-height:360px;overflow:hidden;position:relative;display:flex;justify-content:center;padding-top:34px}
.rail .phone{--pw:236px;position:absolute;top:34px;left:calc(50% - 118px);-webkit-mask-image:linear-gradient(#000 38%,transparent 62%);mask-image:linear-gradient(#000 38%,transparent 62%);transition:transform .6s var(--ease-out)}
.rail article:hover .phone{transform:translateY(-10px)}
@media(max-width:600px){.rail-nav{display:none}}

.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px}
.trust div{padding:28px;border-radius:28px;font:400 26px/1.2 var(--font-display)}
@media(max-width:820px){.trust{grid-template-columns:1fr;gap:10px}.trust div{padding:18px 22px;border-radius:22px;font-size:20px}}

.pcard{contain:paint;padding:clamp(24px,4vw,56px);border-radius:40px;background:var(--glass-3-bg);border:1px solid var(--glass-3-border)}

.final{padding:clamp(56px,8vw,112px) clamp(24px,5vw,80px);display:grid;justify-items:center;text-align:center;gap:28px}
.final{grid-template-columns:minmax(0,1fr)}.final>*{min-width:0;max-width:100%}.final .cta{width:100%;justify-self:stretch;margin-inline:auto}.final .cta>div{justify-items:center}
@media(max-width:600px){.final{padding:48px 20px}}
.final h2{font-size:clamp(44px,5.6vw,84px);line-height:1;max-width:14ch}
.final .cta{justify-items:center}.final .cta>div{justify-items:center}
.final .cta-note,.final .cta-lede{color:var(--ink-2)}

/* pricing table */
/* Keep the below-fold pricing layout and its regular mono font off the hero's paint path. */
[data-home-section="pricing"]{content-visibility:auto;contain-intrinsic-size:auto 600px}
.price{width:100%;border-collapse:collapse;font-size:16px}
.price th,.price td{text-align:left;padding:22px 16px;border-bottom:1px solid var(--hairline);vertical-align:middle;font-weight:400}
.price thead th{font:500 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:0;padding-bottom:14px}
.price th:first-child,.price td:first-child{padding-left:0}
.price th:last-child,.price td:last-child{text-align:right;padding-right:0}
.price .plan{display:block;font:400 30px/1.05 var(--font-display)}
.price small{display:block;font:400 14px/1.3 var(--font-ui);color:var(--muted);margin-top:4px}
.price .num{font-family:var(--font-mono);font-size:17px;white-space:nowrap}
.price .wk{display:none}
.price-note{margin-top:18px;font-size:14px;color:var(--muted)}

.hero{min-height:0;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);max-width:none;align-items:center}
.hero .inline-phone{grid-row:1/span 4;grid-column:2}
/* The desktop screen must paint a larger area than the headline (PRD-170 AC-5). */
@media(min-width:1024px){.hero .phone{--pw:380px}}
.inline-phone{display:flex}
.step{min-height:0;padding:96px 0}
.centered{text-align:center;margin-inline:auto;justify-items:center}
.continued{padding-top:0}
.privacy-link{margin-top:var(--s-6)}
.trust p+p{margin-top:var(--s-5)}
.rail{display:block;outline-offset:-4px}
.rail:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.rail article:focus-within{outline:2px solid var(--ink);outline-offset:-2px}
.rail .plus:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.rail>ul{display:grid;grid-auto-flow:column;grid-auto-columns:min(340px,80vw);gap:0 var(--s-5);grid-template-rows:auto 360px auto;padding:0;margin:0;list-style:none;align-items:stretch}
.rail>ul>li{display:grid;grid-row:span 3;grid-template-rows:subgrid;min-width:0}
.rail article{position:relative;display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;width:100%;border-radius:36px;scroll-snap-align:start}
.rail .t{min-height:150px}
.rail .tileb{height:360px;min-height:360px;flex:none}
.rail .info{padding:28px}
.rail .info h4{font:600 24px/1.25 var(--font-ui);margin:var(--s-4) 0 var(--s-2)}
.rail .info ul{list-style:none;padding:0;margin:0}
.info li{padding:var(--s-4) 0;border-bottom:1px solid var(--hairline);font:400 16px/1.5 var(--font-ui);color:var(--ink-2)}
.enhanced .rail .info{display:none}
.enhanced article{cursor:pointer}
.rail .plus{position:absolute;right:18px;bottom:18px;width:46px;height:46px;border-radius:50%;border:0;background:var(--ink);color:var(--paper);font:300 26px/1 var(--font-ui);cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-2)}
.rail-nav button[aria-disabled="true"]{opacity:.35;cursor:default}
.home-dialog-open{overflow:hidden;scrollbar-gutter:stable}
.cm{position:fixed;inset:0;margin:auto;width:min(580px,calc(100% - 40px));max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--glass-3-border);border-radius:var(--r-6);background:var(--grad-maint);box-shadow:var(--shadow-2);color:var(--ink);transform-origin:0 0;overflow:hidden}
.cm[open]{display:flex;flex-direction:column}
.cm::backdrop{background:color-mix(in srgb,var(--ink) 28%,transparent);backdrop-filter:blur(6px)}
.cm-body{overflow:auto;padding:34px 34px 30px}
.cm-body h4{font:600 24px/1.25 var(--font-ui);letter-spacing:-.01em;margin:var(--s-4) 0 6px}
.cm-body ul{list-style:none;margin:0;padding:0}
.cm-eye{display:flex;align-items:center;gap:var(--s-3);padding-right:var(--s-8);font:500 13px/1 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.cm-eye i{width:11px;height:11px;flex:none;border-radius:50%;background:var(--accent)}
.cm-q{font:italic 400 30px/1.2 var(--font-display);margin:22px 0 18px}
.cm-foot{padding-top:var(--s-4);border-top:1px solid var(--hairline);color:var(--ink-3);font-size:16px}
.cm-x{position:absolute;z-index:1;top:18px;right:18px;width:44px;height:44px;border-radius:50%;border:0;background:var(--glass-3-bg);font:400 22px/1 var(--font-ui);color:var(--ink);cursor:pointer}
.price .wk{display:flex;gap:3px;height:14px;margin-bottom:var(--s-2)}
.price .wk i{display:block;width:9px;height:14px;background:var(--accent-soft);border-radius:2px}
.price .wk.inf{width:120px;background:repeating-linear-gradient(90deg,var(--accent-soft) 0 9px,transparent 9px 12px);mask-image:linear-gradient(to right,black 50%,transparent);opacity:.5}
.price thead th,.price small,.price-note{color:var(--ink-3)}
@media(max-width:899px){
  .band{display:none}
  .hero{grid-template-columns:1fr;padding:32px 0 24px;gap:var(--s-4)}
  .hero h1{font-size:clamp(44px,11vw,72px)}
  .hero .lede{font-size:clamp(16px,4.5vw,20px);line-height:1.35}
  .hero .inline-phone{grid-row:auto;grid-column:auto;margin-top:4px;height:min(330px,80vw);overflow:hidden;align-items:flex-start;-webkit-mask-image:linear-gradient(black 62%,transparent);mask-image:linear-gradient(black 62%,transparent)}
  .journey-band{background:var(--grad-maint);margin-inline:calc(-1 * clamp(var(--s-5),4vw,56px));padding-block:var(--s-5)}
  .journey-scroller{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding-inline:clamp(var(--s-5),4vw,56px);outline-offset:-3px}
  .journey-scroller::-webkit-scrollbar{display:none}
  .journey-scroller:focus-visible{outline:2px solid var(--ink)}
  .journey-scroller .step{position:relative;box-sizing:border-box;flex:0 0 84%;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:var(--s-5);padding:var(--s-5);scroll-snap-align:start;background:var(--glass-1-bg);border:1px solid var(--glass-1-border);backdrop-filter:var(--glass-1-blur);-webkit-backdrop-filter:var(--glass-1-blur);border-radius:var(--r-5);box-shadow:var(--shadow-1)}
  .journey-scroller .step .txt{gap:var(--s-3)}
  .journey-scroller .step h2{font-size:clamp(30px,8.4vw,38px);line-height:1.05;overflow-wrap:anywhere}
  .journey-scroller .step .inline-phone{padding:0;background:none;align-self:center;max-width:100%}
  .journey-scroller .step .phone{--pw:min(210px,52vw)}
  .journey-scroller .step .inline-phone .phone{max-width:100%}
  .journey.enhanced .step .txt>p:not(.eyebrow){display:none}
  .journey-plus{display:grid;place-items:center;position:absolute;right:var(--s-4);bottom:var(--s-4);width:44px;height:44px;border:0;border-radius:50%;background:var(--ink);color:var(--paper);font:400 28px/1 var(--font-ui);cursor:pointer}
  .journey-plus:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
  .sdots{display:flex;justify-content:center;align-items:center;gap:8px;padding-top:var(--s-4)}
  .sdots span{display:block;width:7px;height:7px;border-radius:var(--r-pill);background:var(--ink);opacity:.2}
  .sdots span.active{width:24px;opacity:.75}
  .journey .cm-body .txt{display:grid;gap:var(--s-4)}
  .journey .cm-body .eyebrow{margin-inline-end:calc(44px + var(--s-3));overflow-wrap:anywhere}
  .journey .cm-body .txt h2{font-size:clamp(30px,8.4vw,38px);line-height:1.05;padding-right:var(--s-7)}
  .journey .cm-body .txt p{font-size:19px;line-height:1.6}
  @media(prefers-reduced-transparency:reduce){.journey-scroller .step{background:var(--paper);border-color:var(--hairline);backdrop-filter:none;-webkit-backdrop-filter:none}}
  @supports not (backdrop-filter:blur(1px)){.journey-scroller .step{background:var(--paper);border-color:var(--hairline);backdrop-filter:none;-webkit-backdrop-filter:none}}
  .rail .t{min-height:180px}
  .price th,.price td{padding-inline:8px}
  .pcard{padding:var(--s-5)}
}
@media(max-width:640px){
  .price,.price tbody{display:block}
  .price thead,.coach-col{display:none}
  .price tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:20px 0;border-bottom:1px solid var(--hairline)}
  .price tr:first-child{padding-top:0}
  .price th,.price td{padding:0;border:0;min-width:0}
  .price th[scope="row"]{grid-column:1;grid-row:1;overflow-wrap:anywhere}
  .price .plan{font-size:clamp(22px,6vw,26px)}
  .price td.num{grid-column:2;grid-row:1;align-self:start;padding-top:6px;text-align:right;font-size:15px}
  .price [data-field="price"],.price [data-field="length"]{white-space:nowrap}
  .price td:nth-child(2){grid-column:1/-1;grid-row:2;display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:14px}
  .price .wk{margin:0;flex:none;gap:2px;height:10px}
  .price .wk i{width:6px;height:10px;background:var(--ink-3);opacity:.55}
  .price .wk.inf{width:70px;height:10px;background:repeating-linear-gradient(90deg,var(--ink-3) 0 5px,transparent 5px 7px);opacity:.55}
  .price-note{font-size:13px}
}
@media(max-width:600px){.cm{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:var(--r-6)}.cm-body{padding:26px 24px 24px}.rail{grid-auto-columns:80vw}.rail>ul{grid-auto-columns:80vw}}
@media(max-width:899px){
  .hero .cta,.final .cta{width:100%}
  .final .cta>a.btn,.final .cta>a.appstore,.final .cta>div{width:100%}
  .final .cta>a.appstore{justify-content:center}
  .site-header a,.site-footer a{min-width:44px}
  .site-header .logo,.site-header .menu-btn,.site-header .header-cta{min-height:44px;display:inline-flex;align-items:center}
  .site-footer a,.site-footer .footer-column--legal a{min-height:44px;display:inline-flex;align-items:center}
}
@media(prefers-reduced-motion:reduce){.home *, .home *::before,.home *::after{animation:none!important;transition:none!important}.rail article:hover .phone{transform:none}}

.final .cta-mail{width:100%}
@media(min-width:720px){.final .cta-mail>.btn{justify-self:center}.final .cta-fallback dl{justify-content:center}}

.rail-nav button[aria-disabled="true"]:focus-visible{opacity:1}

/* PRD-171 (ADR-062 §16): the desktop scroll journey. The stage and overlays are in the static HTML but
   render only while journey.ts holds the live class; attaching changes opacity and transforms, never a
   box — the stage is sticky with a net-zero flow height, pulled up under the 68px sticky header. */
.story{display:flow-root;--hdr:68px}
.story>section{position:relative;z-index:1}
.stage,.sky{display:none}
.sky{position:fixed;inset:0;z-index:-1;background:var(--grad-active);opacity:0;pointer-events:none;will-change:opacity}
.sky.dawn{background:var(--grad-maint)}
.stage{position:sticky;top:0;height:100vh;margin:calc(-1*var(--hdr)) 0 calc(var(--hdr) - 100vh);pointer-events:none;perspective:1700px;overflow:hidden}
.rig{position:absolute;z-index:1;left:73%;top:52%;transform-style:preserve-3d;will-change:transform;--pw:min(300px,23vw,32vh)}
.rig .phone{--pw:inherit;isolation:isolate}
.body3d{position:absolute;left:0;top:0;width:var(--pw);transform:translate(-50%,-50%);transform-style:preserve-3d}
.body3d>i{position:absolute;inset:0;border-radius:calc(var(--pw)*.175);background:linear-gradient(90deg,#5d5850 0%,#cfc7b8 9%,#8f887c 30%,#e3dccf 62%,#9a9386 88%,#5d5850 100%);transform:translateZ(calc(var(--pw)*var(--d)*-.0075))}
.body3d>i:nth-of-type(1){--d:1}.body3d>i:nth-of-type(2){--d:2}.body3d>i:nth-of-type(3){--d:3}.body3d>i:nth-of-type(4){--d:4}.body3d>i:nth-of-type(5){--d:5}.body3d>i:nth-of-type(6){--d:6}.body3d>i:nth-of-type(7){--d:7}.body3d>i:nth-of-type(8){--d:8}.body3d>i:nth-of-type(9){--d:9}.body3d>i:nth-of-type(10){--d:10}.body3d>i:nth-of-type(11){--d:11}.body3d>i:nth-of-type(12){--d:12}.body3d>i:nth-of-type(13){--d:13}.body3d>i:nth-of-type(14){--d:14}
.body3d>i:last-of-type{background:#2a2722;box-shadow:0 0 0 1px #6d675d}
.cast{position:absolute;left:0;top:0;width:calc(var(--pw)*1.1);height:calc(var(--pw)*2.15);transform-origin:50% 100%;background:radial-gradient(closest-side,rgba(90,40,16,.62),rgba(90,40,16,.18) 70%,rgba(90,40,16,0));filter:blur(20px);will-change:transform}
.sheen{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(105deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.12) 44%,rgba(255,255,255,0) 58%);pointer-events:none;z-index:4}
/* Live only when the module's own conditions hold, so a stale class can never show the stage (§16.4). */
@media(min-width:900px) and (prefers-reduced-motion:no-preference){
.story.is-live .stage,.story.is-live .sky{display:block}
.story.is-live .inline-phone{opacity:0;transition:none}
}
