/* Notice · Stillness. Fonts and colours follow the app (Theme.swift): Fraunces for headings,
   Cormorant Garamond for verses, Inter for everything else; deep green accent, mint, ivory. */
@font-face{font-family:Fraunces;src:url('fonts/Fraunces.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Inter;src:url('fonts/Inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url('fonts/CormorantGaramond.woff2') format('woff2');font-weight:300 700;font-display:swap}

:root{
  --ivory:#FAF9F4;--paper:#FAF9F4;--paper-2:#F3F6F1;
  --ink:#244B45;           /* deep green: headings and verses (share card ink) */
  --text:#3A4A46;          /* body copy */
  --muted:#60756F;         /* supporting text */
  --accent:#2F756D;--accent-top:#397F75;--accent-deep:#255F58;
  --mint:#D7F1E9;--mint-deep:#78BDA9;--hairline:#DCE5E0;
  --frost:rgba(255,255,255,.78);--frost-edge:rgba(255,255,255,.92);
  --sans:Inter,system-ui,-apple-system,sans-serif;--serif:Fraunces,Georgia,serif;--reading:"Cormorant Garamond",Georgia,serif;
  --gutter:clamp(24px,6vw,96px);--measure:1120px;--radius:28px;
  --ease-out:cubic-bezier(.22,.8,.26,1);--ease-soft:cubic-bezier(.45,0,.2,1);
  --h1:clamp(50px,6.4vw,100px);--portrait:min(200px,22svh);--h2:clamp(34px,3.8vw,54px);--lead:clamp(17px,1.35vw,19px);
}
/* Fraunces as the app draws it (its named instances use opsz 9). The font shorthand resets this, so set it everywhere. */
*,*::before,*::after{box-sizing:border-box;font-optical-sizing:none}
html{-webkit-text-size-adjust:100%;font-optical-sizing:none}
body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit}
p{text-wrap:pretty}
h1,h2{color:var(--ink);font-family:var(--serif);font-weight:400;text-wrap:balance;margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;top:-80px;left:16px;z-index:50;background:#fff;color:var(--ink);padding:12px 18px;border-radius:999px;text-decoration:none;font-weight:500}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:12px}

/* ── Buttons: the app's capsules. Primary = Begin (green gradient, hairline light, soft shadow);
      secondary = frosted pill. Press scales to .97 as in the app. ─────────────────────────── */
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;border:0;
  font:500 16px/1 var(--sans);letter-spacing:-.005em;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:transform 280ms cubic-bezier(.2,.9,.3,1),opacity 280ms cubic-bezier(.2,.9,.3,1),box-shadow 220ms var(--ease-out),background-color 220ms ease,color 220ms ease}
.button:active{transform:scale(.97)}
.button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.button-primary{color:#FCFCF8;background:linear-gradient(180deg,var(--accent-top),var(--accent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 20px -8px rgba(47,117,109,.55)}
.button-primary:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 26px -10px rgba(47,117,109,.6);transform:translateY(-1px)}
.button-primary:active{transform:scale(.97)}
.button-secondary{color:var(--accent);background:var(--frost);box-shadow:inset 0 0 0 1px var(--frost-edge),0 6px 18px -10px rgba(36,75,69,.28)}
.button-secondary:hover{background:#fff}
.button-secondary:active{opacity:.75}
.button-small{min-height:40px;padding:0 18px;font-size:15px}
.store-badge{display:inline-block;line-height:0;border-radius:11px;transition:transform 180ms var(--ease-out)}
.store-badge img{display:block;width:162px;height:auto}
.store-badge:hover{transform:translateY(-1px)}
.store-badge:active{transform:scale(.97)}
.store-badge:focus-visible{outline-offset:5px}

/* ── Header ────────────────────────────────────────────────────────────────────────────── */
.site-header,header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px var(--gutter);min-height:72px;background:var(--paper)}
/* The app's wordmark (OpeningView): lowercase Fraunces with open spacing (3 pt at 56 pt), in the app's ink. */
.wordmark{display:inline-flex;align-items:center;gap:11px;color:#30313A;text-decoration:none;font:400 30px/1 var(--serif);letter-spacing:.054em;white-space:nowrap;min-height:44px}

/* ── Opening, verse and meaning ─────────────────────────────────────────────────────────── */
.scene{position:relative;overflow:clip;background:radial-gradient(ellipse 70% 60% at 80% 45%,rgba(215,241,233,.75),transparent 70%),var(--paper)}
.opening{position:relative;z-index:2;padding:clamp(48px,9vh,110px) var(--gutter) 96px;min-height:640px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.opening h1{font-size:var(--h1);line-height:1.02;letter-spacing:-.025em;max-width:9.5em}
.opening-lead{margin:28px 0 0;max-width:24em;font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--text);text-wrap:balance}
.opening-badge{margin-top:36px}
.opening-badge img{display:block;width:180px;height:auto}
.opening-meta{margin:18px 0 0;font:500 14px/1.4 var(--sans);color:var(--muted);letter-spacing:.01em}
.flower{position:absolute;pointer-events:none;z-index:1;right:-12%;top:12%;width:min(78vw,980px)}
.flower img{display:block;width:100%;height:auto}
.card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:72px 24px 96px;color:var(--ink);
  background:radial-gradient(ellipse 70% 50% at 50% 100%,rgba(215,241,233,.8),transparent 70%),linear-gradient(180deg,#F4F7F2,#ECF4EF)}
/* The teacher, as on the Teachings screen: a breathing mint light behind the figure. */
.portrait{position:relative;width:var(--portrait);aspect-ratio:600/640;flex:none}
.portrait img{position:relative;display:block;width:100%;height:auto;transform-origin:50% 100%}
.halo{position:absolute;left:50%;top:46%;width:150%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(255,255,255,.95) 0,rgba(215,241,233,.85) 34%,rgba(215,241,233,0) 68%)}
.words{display:grid;width:100%;margin-top:24px}
.wisdom{grid-area:1/1;position:relative;align-self:center}
.wisdom blockquote{margin:0 auto;max-width:17em;font:500 clamp(30px,3.4vw,48px)/1.22 var(--reading);letter-spacing:-.005em;text-wrap:balance}
.wisdom blockquote span{display:block}
.meaning blockquote{max-width:18em}
.label{margin:0 0 16px;font:600 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.attribution{display:flex;flex-direction:column;align-items:center;gap:10px;margin:28px 0 0}
.attribution .rule{width:24px;height:1px;background:var(--hairline)}
.attribution .teacher{font:600 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#464650}
.attribution .source{font:400 17px/1.3 var(--sans);color:var(--muted)}
.motes{position:absolute;inset:-24px;pointer-events:none}
.motes i{position:absolute;left:0;top:0;border-radius:50%;background:radial-gradient(circle,rgba(118,188,169,.9) 0 18%,rgba(214,241,233,.5) 19%,rgba(214,241,233,0) 70%);opacity:0;will-change:transform,opacity}
/* Without scroll motion the verse and its meaning sit one after the other. */
:root:not(.enhanced) .words{display:flex;flex-direction:column;gap:56px}
:root:not(.enhanced) .meaning{order:2}
:root:not(.enhanced) .attribution{order:1}
.reader-controls[hidden]{display:none}

/* Segmented control, as the app's length picker: a frosted track with a white sliding thumb. */
.reader-controls{position:relative;display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));width:320px;max-width:calc(100% - 32px);padding:4px;border-radius:999px;
  background:rgba(255,255,255,.5);box-shadow:inset 0 0 0 1px var(--frost-edge)}
.reader-controls button{position:relative;z-index:1;min-width:0;min-height:44px;padding:0 12px;border:0;border-radius:999px;background:none;cursor:pointer;
  color:var(--muted);font:500 15px/1 var(--sans);white-space:nowrap;transition:color 260ms ease}
.reader-controls button[aria-pressed=true]{color:var(--accent)}
.reader-controls button:hover{color:var(--ink)}
.reader-controls button:active{transform:scale(.97)}
.segment-thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:#fff;
  box-shadow:0 4px 14px -6px rgba(36,75,69,.3);transform:translateX(calc(var(--thumb,0) * 100%));transition:transform 550ms cubic-bezier(.22,1,.36,1)}

/* ── Scroll-driven version (enabled by stillness.js when motion is allowed) ──────────────── */
.enhanced .site-header{position:fixed;inset:0 0 auto;background:transparent;transition:background-color 300ms ease,box-shadow 300ms ease}
.enhanced .site-header.solid{background:rgba(250,249,244,.86);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 var(--hairline)}
.enhanced .sequence{height:380svh}
.enhanced .scene{position:sticky;top:0;height:100svh}
.enhanced .opening{position:absolute;inset:0;min-height:0;padding-top:72px;padding-bottom:calc(64px + 6svh);opacity:var(--intro,1);transform:translate3d(0,var(--intro-y,0px),0);will-change:opacity,transform}
.enhanced .flower{left:0;top:0;right:auto;width:var(--flower-base);transform-origin:0 0;transform:translate3d(var(--flower-tx,0px),var(--flower-ty,0px),0) scale(var(--flower-scale,1));will-change:transform}
.enhanced .flower-turn{transform:rotate(var(--turn,0deg))}
.lotus{display:block;width:100%;height:auto;aspect-ratio:1;overflow:visible}
.hero-breath.live img,.breath-art.live img{display:none}
.enhanced .card{position:absolute;inset:0;justify-content:center;padding:calc(72px + 2svh) 24px calc(96px + 4svh);background:none;pointer-events:none}
.enhanced .portrait{opacity:var(--figure,0);filter:blur(calc((1 - var(--figure,0)) * 16px));transform:scale(calc(.97 + .03 * var(--figure,0)));transform-origin:50% 100%}
.enhanced .portrait img{-webkit-mask:radial-gradient(circle at 50% 45%,#000 0,#000 calc(var(--reveal,1) * 60%),transparent calc(var(--reveal,1) * 95%));mask:radial-gradient(circle at 50% 45%,#000 0,#000 calc(var(--reveal,1) * 60%),transparent calc(var(--reveal,1) * 95%));transform:translate3d(0,var(--rise,0px),0) scale(var(--grow,1))}
.enhanced .halo{opacity:var(--halo,0);transform:translate(-50%,-50%) scale(calc(var(--halo-scale,1) * var(--halo-breath,1)))}
.wisdom .wd{display:inline-block;white-space:nowrap}
.wisdom .ch{display:inline-block;opacity:0}
:root:not(.enhanced) .wisdom .ch{opacity:1}
.enhanced .attribution{opacity:var(--attr,0);filter:blur(calc((1 - var(--attr,0)) * 4px))}
.enhanced .label{opacity:var(--label,0);transform:translate3d(0,calc((1 - var(--label,0)) * 5px),0)}
.enhanced .reader-controls{position:absolute;left:50%;bottom:max(28px,4svh);transform:translate3d(-50%,var(--controls-y,8px),0);opacity:var(--controls,0)}
.enhanced .scene{background:var(--paper)}
.enhanced .scene::after{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse 70% 60% at 80% 45%,rgba(215,241,233,.75),transparent 70%);opacity:var(--intro,1);pointer-events:none}
.enhanced .scene::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 55% at 50% 100%,rgba(215,241,233,.9),transparent 70%),linear-gradient(180deg,#F4F7F2,#ECF4EF);opacity:var(--tone,0);pointer-events:none}

/* Without scroll motion the flower shares the opening's cell, so it can never cover the teaching. */
:root:not(.enhanced) .scene{display:grid;grid-template-columns:minmax(0,1fr)}
:root:not(.enhanced) .opening,:root:not(.enhanced) .flower{grid-area:1/1}
:root:not(.enhanced) .flower{position:relative;inset:auto;justify-self:end;align-self:center;width:min(56vw,760px);margin-right:-8%}

/* ── Sections after the opening ─────────────────────────────────────────────────────────── */
.product,.breathing,.reflection-story,.practical{padding:clamp(88px,12vh,140px) var(--gutter)}
.section-intro{max-width:640px;margin:0 auto;text-align:center}
.section-intro h2,.product h2,.practical h2,.closing h2{font-size:var(--h2);line-height:1.1;letter-spacing:-.02em}
.section-intro p{margin:20px auto 0;max-width:34em;font-size:var(--lead);line-height:1.6}

.product{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(40px,7vw,110px);max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto}
.product-copy{max-width:500px}
.product .lead{font-size:var(--lead);margin:24px 0 0;color:var(--text)}
.product-copy p{margin:16px 0 0;font-size:16px;color:var(--muted)}
.product .store-badge{margin-top:36px}
.phone{margin:0;justify-self:center;width:min(100%,300px)}
.phone img{display:block;width:100%;height:auto;border-radius:38px;box-shadow:0 0 0 1px rgba(36,75,69,.06),0 30px 60px -30px rgba(36,75,69,.35)}

.breathing{min-height:100svh;padding-top:96px;padding-bottom:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:radial-gradient(ellipse 70% 50% at 50% 58%,rgba(215,241,233,.95),transparent 70%),linear-gradient(180deg,#EEF6F2 0%,#F1EFF7 62%,#F4EAF1 100%)}
.breath-demo{max-width:100%;min-width:0;margin:clamp(8px,2svh,28px) auto 0;display:flex;flex-direction:column;align-items:center}
.breath-art{max-width:100%;width:min(60svh,90vw,700px);aspect-ratio:1;margin:-10% 0 -8%}
.breath-art img{display:block;width:62%;height:auto;margin:19%}
.breath-phase{position:relative;height:1.3em;margin:0 0 4px;font:400 clamp(30px,3vw,44px)/1.3 var(--serif);color:var(--ink);letter-spacing:-.02em}
.breath-phase span{display:block;transition:opacity 450ms cubic-bezier(0,0,.58,1),filter 450ms cubic-bezier(0,0,.58,1),transform 450ms cubic-bezier(0,0,.58,1)}
.breath-phase span.leaving{opacity:0;filter:blur(4px);transform:translateY(-4px);transition-duration:230ms;transition-timing-function:cubic-bezier(.42,0,1,1)}
.breath-caption{margin:0 0 24px;font:500 14px/1.4 var(--sans);letter-spacing:.04em;color:var(--muted)}
.preview-toggle[hidden]{display:none}
.preview-toggle{min-width:132px}
.preview-toggle .icon-play{display:none}
.preview-toggle[data-paused=true] .icon-play{display:block}
.preview-toggle[data-paused=true] .icon-pause{display:none}
.preview-toggle:disabled{cursor:default;opacity:.6}

.reflection-story{background:var(--paper)}
.reflect-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);align-items:center;gap:clamp(40px,8vw,140px);max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto}
.reflect-copy h2{font-size:var(--h2);line-height:1.1;letter-spacing:-.02em;max-width:9em}
.reflect-steps{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:4px;counter-reset:step;max-width:30em}
.reflect-steps li{position:relative;counter-increment:step;padding:14px 0 14px 52px;font-size:var(--lead);line-height:1.45;color:var(--muted);transition:color 450ms ease}
.reflect-steps li::before{content:counter(step);position:absolute;left:0;top:11px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  font:600 13px/1 var(--sans);color:var(--muted);background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px var(--hairline);transition:background-color 450ms ease,color 450ms ease,box-shadow 450ms ease}
.reflect-steps li.on{color:var(--ink)}
.reflect-steps b{display:block;font:400 clamp(20px,1.7vw,23px)/1.3 var(--serif);letter-spacing:-.01em;color:var(--ink);opacity:.8;transition:opacity 450ms ease}
.reflect-steps li.on b{opacity:1}
.reflect-steps span{display:block;margin-top:4px;font-size:16px;line-height:1.5}
.reflect-steps li.on::before{color:#FCFCF8;background:linear-gradient(180deg,var(--accent-top),var(--accent));box-shadow:0 6px 14px -6px rgba(47,117,109,.6)}
.reflect-phone{position:relative;width:100%;max-width:320px;justify-self:center}
.reflect-phone img{display:block;width:100%;height:auto}
.spot{position:absolute;left:4%;right:4%;top:var(--spot-top,13%);height:var(--spot-h,11%);border-radius:18px;pointer-events:none;
  box-shadow:0 0 0 2px rgba(47,117,109,.55),0 0 0 9999px rgba(250,249,244,.0);background:rgba(215,241,233,.12);opacity:var(--spot-o,0);
  transition:top 650ms cubic-bezier(.22,1,.36,1),height 650ms cubic-bezier(.22,1,.36,1),opacity 450ms ease}
.enhanced .reflection-story{height:260svh;padding:0 var(--gutter)}
.enhanced .reflect-stage{position:sticky;top:0;height:100svh;padding-top:72px}
.practical{max-width:calc(820px + 2 * var(--gutter));margin:0 auto}
.practical h2{margin-bottom:28px}
.questions{display:block;border-top:1px solid var(--hairline)}
.questions details{border-bottom:1px solid var(--hairline)}
.questions summary{list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;
  font:400 clamp(20px,1.8vw,24px)/1.3 var(--serif);letter-spacing:-.015em;color:var(--ink);transition:color 200ms ease}
.questions summary::-webkit-details-marker{display:none}
.questions summary:hover{color:var(--accent)}
.questions summary i{position:relative;flex:none;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px var(--hairline);transition:background-color 300ms ease,transform 280ms cubic-bezier(.2,.9,.3,1)}
.questions summary i::before,.questions summary i::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:1.6px;margin:-.8px 0 0 -6px;border-radius:2px;background:var(--accent);transition:transform 450ms cubic-bezier(.22,1,.36,1)}
.questions summary i::after{transform:rotate(90deg)}
.questions details[open] summary i{background:var(--mint)}
.questions details[open] summary i::after{transform:rotate(0deg)}
.questions summary:active i{transform:scale(.92)}
.questions summary:focus-visible{outline-offset:6px}
.questions details>div{overflow:hidden}
.questions details>div p{margin:0;padding:0 64px 28px 0;font-size:var(--lead);line-height:1.6;color:var(--text);max-width:40em}
.questions details>div a{color:var(--accent);font-weight:500;text-underline-offset:3px;white-space:nowrap}

/* ── Sections arrive as in the app: context first, then the rest, each a beat apart ───────── */
.js-reveal [data-write] .w{display:inline-block;white-space:pre;opacity:0;filter:blur(5px);transform:translate3d(0,.18em,0);
  transition:opacity 700ms cubic-bezier(.22,1,.36,1),filter 900ms cubic-bezier(.22,1,.36,1),transform 900ms cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i) * 60ms)}
.js-reveal [data-write].in .w{opacity:1;filter:none;transform:none}
.js-reveal [data-rise]{opacity:0;transform:translate3d(0,22px,0);transition:opacity 800ms cubic-bezier(.22,1,.36,1),transform 1000ms cubic-bezier(.22,1,.36,1);transition-delay:calc(180ms + var(--order,0) * 60ms)}
.js-reveal [data-rise].in{opacity:1;transform:none}
.parallax{will-change:transform}

.closing{text-align:center;padding:clamp(96px,14vh,150px) 24px clamp(88px,12vh,130px);background:radial-gradient(ellipse 60% 70% at 50% 100%,rgba(215,241,233,.9),transparent 75%),var(--paper-2)}
.closing-flower{width:72px;height:auto;display:block;margin:0 auto 28px}
.closing h2{margin:0 auto 32px;max-width:10em}
.closing .store-badge img{width:176px}
.closing-device{margin:18px 0 0;font-size:15px;color:var(--muted)}

footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:22px var(--gutter);background:var(--paper-2);border-top:1px solid var(--hairline);font-size:15px;color:var(--muted)}
footer a{color:var(--ink);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
footer a:hover{text-decoration:underline;text-underline-offset:4px}
footer a:last-child{justify-self:end}
footer span{text-align:center}

/* ── Phones ─────────────────────────────────────────────────────────────────────────────── */
@media (max-width:760px){
  :root{--gutter:24px}
  .site-header,header{min-height:64px;padding:12px 20px}
  .wordmark{font-size:26px;gap:8px}  .opening{min-height:600px;padding-top:48px}
  .opening h1{font-size:clamp(50px,14vw,72px)}
  .opening{justify-content:flex-start}
  .opening-lead{font-size:17px;margin-top:20px}
  .opening-badge{margin-top:28px}
  .opening-meta{margin-top:14px}
  .flower{width:120vw;right:-42%;top:34%}
  :root:not(.enhanced) .flower{width:82vw;margin-right:-26vw;align-self:center;margin-top:12%}
  .wisdom blockquote{font-size:clamp(24px,6.7vw,30px);line-height:1.24;max-width:none}
  .enhanced .card{padding:calc(64px + 1svh) 18px calc(88px + 3svh)}
  .attribution{margin-top:20px;gap:8px}.attribution .source{font-size:16px}
  .meaning blockquote{max-width:none}
  .enhanced .opening{padding-top:calc(64px + 5svh);padding-bottom:6svh}
  .enhanced .sequence{height:340svh}
  :root{--portrait:min(150px,19svh)}
  .reader-controls button{padding:0 16px;font-size:15px}
  .product{grid-template-columns:1fr;gap:48px}
  .product-copy{max-width:none}
  .phone{width:min(76%,280px)}
  .breath-demo{margin-top:8px}.breath-art{width:min(96vw,52svh,440px)}
  .reflect-stage{grid-template-columns:1fr;gap:28px;align-content:center}
  .reflect-steps{margin-top:20px;gap:0}
  .reflect-steps li{padding:8px 0 8px 44px;font-size:16px}
  .reflect-steps li::before{width:28px;height:28px;top:6px;font-size:12px}
  .reflect-phone{width:min(64vw,250px);justify-self:center}
  .enhanced .reflect-stage{padding-top:84px;gap:16px;align-content:start}
  .enhanced .reflect-copy h2{font-size:30px}
  .enhanced .reflect-steps{margin-top:12px}
  .enhanced .reflect-steps li{padding:5px 0 5px 40px;font-size:15px}
  .enhanced .reflect-steps b{font-size:18px}
  .enhanced .reflect-steps span{display:none}
  .enhanced .reflect-steps li::before{top:4px}
  .enhanced .reflect-phone{width:min(52vw,215px,calc(100svh - 470px) * .4875)}
}
@media (max-width:760px) and (max-height:740px){
  .enhanced .reflection-story{height:auto;padding:88px var(--gutter)}
  .enhanced .reflect-stage{position:static;height:auto;padding-top:0}
  .enhanced .reflect-phone{width:min(64vw,250px)}
  .questions summary{padding:20px 0;font-size:19px}
  .questions details>div p{padding-right:0;font-size:16px}
  .card{padding-top:56px}
  footer{grid-template-columns:1fr 1fr;row-gap:4px}
  footer span{grid-column:1/-1;grid-row:2}
}
@media (max-width:370px){
  .wisdom blockquote{font-size:23px}
  .reader-controls button{padding:0 12px;font-size:14px}
}
@media (max-height:700px) and (min-width:761px){
  .wisdom blockquote{font-size:clamp(28px,3vw,40px)}
}

/* ── Reduced motion: one readable page, nothing moves ───────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .button,.store-badge,.continue,.segment-thumb,.questions summary i,.breath-phase span{transition:none}
}
@media (max-height:760px) and (min-width:761px){.breath-art{width:min(50svh,640px)}}

/* Static layouts must keep all reading steps fully legible, including after a system setting changes. */
:root:not(.enhanced) .reflect-steps b{opacity:1}
.static-motion [data-write] .w,.static-motion [data-rise]{opacity:1;filter:none;transform:none;transition:none}
.static-motion .product .phone,.static-motion .closing-flower{translate:none!important}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Reserve the same header space before enhancement, avoiding the measured first-paint shift. */
.site-header{position:absolute;inset:0 0 auto}
:root:not(.enhanced) .opening{min-height:716px;padding-top:calc(clamp(48px,9vh,110px) + 76px)}
@media(max-width:760px){:root:not(.enhanced) .opening{min-height:668px;padding-top:116px}}

/* Compact browser windows need reading room, not an intrinsic-width image track. */
@media (min-width:761px){
  .enhanced .reflect-phone{max-width:min(320px,calc((100svh - 120px) * .4875))}
}
@media (min-width:761px) and (max-height:800px){
  .enhanced .reflection-story{height:auto;padding:88px var(--gutter)}
  .enhanced .reflect-stage{position:relative;height:auto;padding-top:0;gap:40px}
  .enhanced .reflect-phone{max-width:280px}
}
@media (max-width:900px){
  footer{grid-template-columns:auto auto;justify-content:center;gap:8px 32px;text-align:center}
  footer a,footer a:last-child{justify-self:center}
  footer span{grid-column:1/-1;grid-row:2}
}

/* A phone gets a readable, naturally scrolling walkthrough, not a tiny pinned screen. */
@media (max-width:760px){
  .enhanced .reflection-story{height:auto;padding:72px var(--gutter)}
  .enhanced .reflect-stage{position:relative;height:auto;padding:0;gap:32px;align-content:start}
  .enhanced .reflect-phone{width:min(100%,300px);max-width:300px}
  .enhanced .reflect-steps{margin-top:24px;gap:12px}
  .enhanced .reflect-steps li{padding-top:6px;padding-bottom:6px}
  .enhanced .reflect-steps span{display:block;font-size:16px}
  .enhanced .reflect-phone .spot{display:none}
}
