/* =============================================================
   PosePal Pro Max — Editorial grid + Premium dark product system
   v2 · Müller-Brockmann 12-col · 8px baseline · 24px leading
   UI-UX Pro Max: Vibrant Block + Interactive Demo + Trust Authority
   Fixes vs v1: AAA contrast, responsive stacking (640/900/980),
   clamp masthead, 288 canvas, focus trap, scroll-spy, keyboard demo,
   progress bar, fade filters, live stars, LCP preload, JSON-LD
   ============================================================= */
:root{
  --cols:12; --bl:8px; --lh:24px; --gutter:24px; --margin:48px; --pad:72px; --maxw:1280px;
  --paper:#070B0A; --paper-2:#0E1413; --paper-3:#141E1C; --surface:#1B2422; --surface-2:#232F2D;
  --ink:#FFFFFF; --ink-dim:#B7C7C4; --ink-faint:#7A8D8B; --ink-2:#DDE6E4;
  --line:rgba(255,255,255,.10); --line-strong:rgba(255,255,255,.16); --line-2:rgba(255,255,255,.06);
  --teal:#00BFA5; --teal-2:#00D4B6; --teal-dark:#00796B; --teal-soft:rgba(0,191,165,.12); --teal-glow:rgba(0,191,165,.24);
  --yellow:#FFCB1F; --yellow-2:#FFD84D; --coral:#FF6B6B; --violet:#8B5CF6;
  --g-col:rgba(0,191,165,.06); --g-edge:rgba(0,191,165,.26); --g-base:rgba(0,191,165,.18); --g-base-min:rgba(0,191,165,.06);
  --radius:20px; --radius-md:16px; --radius-sm:12px; --radius-xs:10px; --radius-pill:999px;
  --ease-spring:cubic-bezier(.16,1,.3,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --z-nav:50; --z-grid:60; --z-modal:70; --z-toast:80;
  --shadow-soft:0 8px 32px rgba(0,0,0,.42); --shadow-lift:0 16px 48px rgba(0,0,0,.52);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:var(--surface-2) var(--paper)}
body{margin:0; background:var(--paper); color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,sans-serif;
  font-size:16px; line-height:var(--lh); -webkit-font-smoothing:antialiased; overflow-x:hidden;
  text-rendering:optimizeLegibility}
img{display:block; max-width:100%}
a{color:inherit; text-decoration:none}
::selection{background:var(--teal); color:#000}
:focus-visible{outline:2px solid var(--teal); outline-offset:2px; border-radius:4px}
.skip{position:absolute; left:-9999px; top:0; padding:10px 14px; background:var(--teal); color:#000; font:700 13px/1 "Space Mono",monospace; z-index:999}
.skip:focus{left:12px; top:12px}

/* scroll progress */
#scrollProgress{position:fixed; top:0; left:0; height:2px; width:0%; background:var(--teal); z-index:calc(var(--z-nav) + 5); transition:width 80ms linear; box-shadow:0 0 10px var(--teal-glow)}

/* grid scaffold — load-bearing, one source of truth */
.spread{position:relative; width:100%; border-bottom:1px solid var(--line)}
.spread.no-line{border-bottom:none}
.wrap{position:relative; max-width:var(--maxw); margin:0 auto; padding:var(--pad) var(--margin)}
.grid{display:grid; grid-template-columns:repeat(var(--cols),1fr); column-gap:var(--gutter); row-gap:var(--lh)}
.band{grid-column:1 / -1; display:grid; grid-template-columns:subgrid; column-gap:var(--gutter); row-gap:var(--lh); align-items:start}
@supports not (grid-template-columns:subgrid){ .band{grid-template-columns:repeat(var(--cols),1fr)} }
.guides{position:absolute; inset:0; pointer-events:none; z-index:var(--z-grid); opacity:0; transition:opacity .26s var(--ease-out)}
body.grid-on .guides{opacity:1}
.guides .cols{position:absolute; top:0; bottom:0; left:var(--margin); right:var(--margin); display:grid; grid-template-columns:repeat(var(--cols),1fr); column-gap:var(--gutter)}
.guides .col{background:var(--g-col); box-shadow:inset 1px 0 0 var(--g-edge), inset -1px 0 0 var(--g-edge); position:relative}
.guides .col span{position:absolute; top:32px; left:0; right:0; text-align:center; font-family:"Space Mono",monospace; font-size:10px; line-height:1; color:var(--teal)}
.guides .rows{position:absolute; left:var(--margin); right:var(--margin); top:var(--pad); bottom:0;
  background-image:repeating-linear-gradient(to bottom,var(--g-base) 0 1px,transparent 1px var(--lh)),repeating-linear-gradient(to bottom,var(--g-base-min) 0 1px,transparent 1px var(--bl))}
.guides .mline{position:absolute; top:0; bottom:0; width:1px; background:var(--g-edge)}
.guides .mline.l{left:var(--margin)} .guides .mline.r{right:var(--margin)}

/* type — Inter grotesque, flush-left, baseline-locked */
.kicker{font-family:"Space Mono",monospace; font-size:11px; line-height:16px; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); margin:0; font-weight:700}
.masthead{font-family:"Inter",sans-serif; font-weight:900; letter-spacing:-.045em; line-height:1.02; font-size:clamp(40px,6vw,74px); margin:0; color:var(--ink); text-wrap:balance}
.h2b{font-family:"Inter",sans-serif; font-weight:800; letter-spacing:-.035em; line-height:1.12; font-size:clamp(24px,3.2vw,34px); margin:0; text-wrap:balance}
.h3{font-size:16px; line-height:24px; font-weight:700; letter-spacing:-.02em; margin:0}
.eyebrow{font-family:"Space Mono",monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint)}
.lead{font-size:17px; line-height:28px; color:var(--ink-dim); margin:0; max-width:56ch; text-wrap:pretty}
.body{font-size:14px; line-height:24px; color:var(--ink-dim); margin:0; text-wrap:pretty}
.body-sm{font-size:13px; line-height:20px; color:var(--ink-dim)}
.mono{font-family:"Space Mono",monospace}
.mono-frag{font-family:"Fragment Mono",monospace}

/* buttons — 44px min, cursor-pointer, transform only, 200ms */
.btn{appearance:none; border:none; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:"Inter",sans-serif; font-weight:700; font-size:14px; letter-spacing:-.01em;
  min-height:44px; padding:12px 22px; border-radius:var(--radius-pill); line-height:1;
  transition:transform 200ms var(--ease-spring), background 200ms, border-color 200ms, box-shadow 200ms, opacity 200ms;
  white-space:nowrap}
.btn svg{width:18px; height:18px; flex-shrink:0}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--yellow); color:#0A0F0E; box-shadow:0 8px 24px rgba(255,203,31,.24)}
.btn-primary:hover{background:var(--yellow-2); transform:translateY(-1px); box-shadow:0 12px 32px rgba(255,203,31,.32)}
.btn-teal{background:var(--teal); color:#000}
.btn-teal:hover{background:var(--teal-2); transform:translateY(-1px); box-shadow:0 10px 28px var(--teal-glow)}
.btn-ghost{background:rgba(255,255,255,.06); color:var(--ink); border:1px solid var(--line-strong); backdrop-filter:blur(10px)}
.btn-ghost:hover{background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.24); transform:translateY(-1px)}
.btn-sm{min-height:40px; padding:10px 16px; font-size:13px}
.btn-icon{width:44px; height:44px; padding:0; border-radius:12px}
.pill{display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:var(--radius-pill);
  font-family:"Space Mono",monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  border:1px solid var(--line-strong); background:rgba(255,255,255,.04); color:var(--ink-dim)}

/* icon */
.card-icon{width:44px; height:44px; border-radius:12px; display:grid; place-items:center; flex-shrink:0}
.card-icon svg{width:22px; height:22px}

/* nav — 64px */
.nav{position:sticky; top:0; z-index:var(--z-nav); background:rgba(7,11,10,.72); backdrop-filter:blur(16px) saturate(180%); border-bottom:1px solid var(--line)}
.nav .wrap{padding-top:0; padding-bottom:0}
.nav-inner{display:flex; align-items:center; justify-content:space-between; height:64px; gap:24px}
.brand{display:flex; align-items:center; gap:12px; font-weight:800; letter-spacing:-.02em; cursor:pointer}
.brand-mark{width:36px; height:36px; border-radius:10px; background:var(--teal); display:grid; place-items:center; color:#000}
.brand-wordmark{font-size:18px; line-height:1}
.brand-wordmark span{color:var(--teal)}
.nav-links{display:flex; align-items:center; gap:28px; font-size:13px; font-weight:600; letter-spacing:-.01em; color:var(--ink-dim)}
.nav-links a{position:relative; padding:6px 0; cursor:pointer; transition:color 150ms}
.nav-links a:hover{color:var(--ink)}
.nav-links a.active{color:var(--ink)}
.nav-links a.active::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--teal); border-radius:2px}
.nav-actions{display:flex; align-items:center; gap:10px}
.hamburger{display:none; width:44px; height:44px; border-radius:10px; border:1px solid var(--line-strong); background:transparent; color:var(--ink); place-items:center; cursor:pointer}
.hamburger:hover{background:rgba(255,255,255,.06)}
.mobile-panel{display:none}
.grid-toggle{position:fixed; top:78px; right:18px; z-index:30; display:flex; align-items:center; gap:8px;
  background:#101414; color:#fff; border:1px solid var(--line-strong); cursor:pointer;
  font-family:"Space Mono",monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  min-height:36px; padding:8px 14px; border-radius:var(--radius-pill); transition:all 200ms var(--ease-out); box-shadow:var(--shadow-soft)}
.grid-toggle .dot{width:8px; height:8px; border-radius:50%; background:#333; transition:background 200ms}
body.grid-on .grid-toggle{background:var(--teal); color:#000; border-color:var(--teal)}
body.grid-on .grid-toggle .dot{background:#000}
@media(max-width:980px){
  .nav-links{display:none}
  .mobile-panel.open{display:flex; position:absolute; top:64px; left:0; right:0; flex-direction:column; background:var(--paper-2); border-bottom:1px solid var(--line); padding:8px var(--margin) 16px; gap:0; box-shadow:var(--shadow-soft)}
  .mobile-panel a{padding:14px 0; border-bottom:1px solid var(--line-2); color:var(--ink-dim); font-weight:600; cursor:pointer}
  .mobile-panel a:hover{color:var(--ink)}
  .hamburger{display:grid}
  .hide-m{display:none !important}
}

/* hero */
.hero{overflow:hidden}
.hero .wrap{padding-bottom:48px}
.hero-badge{display:inline-flex; align-items:center; gap:10px; padding:7px 14px; border-radius:var(--radius-pill);
  background:rgba(0,191,165,.10); border:1px solid rgba(0,191,165,.22); color:var(--teal);
  font-family:"Space Mono",monospace; font-size:11px; letter-spacing:.08em; font-weight:700}
.live{width:7px; height:7px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 6px rgba(0,191,165,.20); animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 6px rgba(0,191,165,.20)} 50%{box-shadow:0 0 0 2px rgba(0,191,165,.10)}}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:8px}
.hero-trust{display:flex; flex-wrap:wrap; gap:16px; margin-top:16px; color:var(--ink-faint); font-size:12px}
.hero-trust span{display:inline-flex; align-items:center; gap:6px}
.hero-trust svg{width:14px; height:14px; opacity:.9}
.phone-stack{position:relative; display:flex; flex-direction:column; align-items:center; gap:12px}
.phone{position:relative; width:min(340px, 86vw); aspect-ratio:9/19.5; background:#000; border-radius:36px;
  border:8px solid #1A1A1A; box-shadow:0 24px 64px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.06);
  overflow:hidden; isolation:isolate; transition:transform 200ms var(--ease-spring)}
.phone-screen{width:100%; height:100%; background:#0E1413; position:relative; overflow:hidden}
.phone-screen img{width:100%; height:100%; object-fit:cover}
.phone-notch{position:absolute; top:10px; left:50%; transform:translateX(-50%); width:96px; height:22px; background:#1A1A1A; border-radius:var(--radius-pill); z-index:2}
.phone-overlay{position:absolute; inset:0; background:linear-gradient(to bottom, transparent 56%, rgba(0,0,0,.68) 100%); pointer-events:none}
.score-card{position:absolute; background:rgba(20,20,20,.84); backdrop-filter:blur(16px) saturate(160%); border:1px solid rgba(255,255,255,.12);
  border-radius:16px; padding:12px 14px; box-shadow:var(--shadow-soft); transition:transform 200ms var(--ease-spring)}
.score-card:hover{transform:translateY(-2px)}
.score-card.score{top:18px; right:14px; display:flex; align-items:center; gap:10px; cursor:pointer}
.score-ring{width:48px; height:48px; border-radius:50%; display:grid; place-items:center;
  background:conic-gradient(var(--teal) 0 var(--pct,92%), rgba(255,255,255,.12) var(--pct,92%) 100%); position:relative; transition:background 300ms}
.score-ring::before{content:""; position:absolute; inset:4px; background:#1A1A1A; border-radius:50%}
.score-ring b{position:relative; z-index:1; font-size:13px; font-weight:800; color:var(--teal)}
.score-card.ghost{left:14px; bottom:92px; padding:10px 12px; display:flex; align-items:center; gap:10px; cursor:pointer}
.score-card.ghost i{width:36px; height:36px; border-radius:10px; background:rgba(0,191,165,.14); display:grid; place-items:center; color:var(--teal); font-style:normal}
.score-card.hint{left:14px; right:14px; bottom:14px; display:flex; align-items:center; gap:10px; font-size:12px; line-height:16px; cursor:pointer}
.score-card.hint i{width:28px; height:28px; border-radius:50%; background:var(--yellow); color:#000; display:grid; place-items:center; flex-shrink:0}

/* interactive demo */
.demo-bar{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px;
  background:rgba(255,255,255,.06); border:1px solid var(--line); border-radius:var(--radius-sm); backdrop-filter:blur(8px)}
.demo-canvas{width:100%; height:288px; background:linear-gradient(180deg, #0F1A19 0%, #0A0F0E 100%); border-radius:12px; border:1px solid var(--line); overflow:hidden; position:relative; cursor:grab; touch-action:none}
.demo-canvas:active{cursor:grabbing}
.demo-canvas:focus-visible{outline:2px solid var(--teal); outline-offset:2px}
.demo-canvas canvas{width:100%; height:100%; display:block}
.demo-legend{position:absolute; left:10px; bottom:10px; display:flex; gap:6px; flex-wrap:wrap}
.demo-legend span{padding:4px 8px; border-radius:var(--radius-pill); font:700 10px/1 "Space Mono",monospace; letter-spacing:.08em; text-transform:uppercase; border:1px solid var(--line-strong); background:rgba(0,0,0,.54); backdrop-filter:blur(8px)}
.legend-live{color:var(--teal)} .legend-ghost{color:var(--ink-faint)}
.demo-hint-pulse{position:absolute; top:12px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:8px;
  padding:6px 12px; border-radius:var(--radius-pill); background:rgba(0,191,165,.12); border:1px solid rgba(0,191,165,.24); color:var(--teal);
  font:700 10px/1 "Space Mono",monospace; letter-spacing:.08em; text-transform:uppercase; animation:hintPulse 2.2s infinite; pointer-events:none}
@keyframes hintPulse{0%,100%{opacity:1; transform:translateX(-50%) scale(1)} 50%{opacity:.78; transform:translateX(-50%) scale(.98)}}

/* stats */
.stats{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper-2)}
.numeral{font-family:"Space Mono",monospace; font-weight:700; letter-spacing:-.06em; line-height:1; font-size:clamp(32px,5vw,56px); margin:0; color:var(--ink); font-variant-numeric:tabular-nums}
.numeral small{font-size:.5em; letter-spacing:-.04em; color:var(--teal)}
.stat-label{font-family:"Space Mono",monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); margin-top:8px}
.stat-sub{font-size:12px; line-height:16px; color:var(--ink-dim); margin-top:4px}

/* bento & cards */
.card{background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid var(--line); border-radius:var(--radius); padding:22px; display:flex; flex-direction:column; gap:12px;
  min-height:216px; transition:transform 200ms var(--ease-spring), border-color 200ms, box-shadow 200ms; cursor:pointer}
.card:hover{border-color:rgba(0,191,165,.28); transform:translateY(-2px); box-shadow:var(--shadow-lift)}
.card:active{transform:translateY(0) scale(.99)}
.card h3{font-size:15px; line-height:24px; font-weight:700; letter-spacing:-.02em; margin:0}
.card p{font-size:13px; line-height:20px; color:var(--ink-dim); margin:0}
.meta-row{display:flex; flex-wrap:wrap; gap:6px; margin-top:auto}
.meta{font-family:"Space Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase;
  padding:4px 8px; border-radius:var(--radius-pill); background:rgba(255,255,255,.06); border:1px solid var(--line); color:var(--ink-faint)}
.bento-feature{background:linear-gradient(135deg, rgba(0,191,165,.14), rgba(255,203,31,.06) 55%, rgba(255,255,255,.03));
  border:1px solid rgba(0,191,165,.22); position:relative; overflow:hidden}
.bento-feature::before{content:""; position:absolute; top:-30%; right:-12%; width:420px; height:420px;
  background:radial-gradient(circle, rgba(0,191,165,.18) 0%, transparent 68%); pointer-events:none}

/* steps */
.step{position:relative; padding:22px; border-radius:var(--radius); background:var(--paper-2); border:1px solid var(--line); overflow:hidden; transition:transform 200ms var(--ease-spring), border-color 200ms; cursor:pointer}
.step:hover{transform:translateY(-2px); border-color:rgba(255,255,255,.14)}
.step-num{font-family:"Space Mono",monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); margin-bottom:8px; display:flex; align-items:center; gap:10px; font-weight:700}
.step-num::after{content:""; height:1px; flex:1; background:linear-gradient(to right, rgba(0,191,165,.30), transparent)}
.step h3{font-size:16px; line-height:24px; font-weight:800; margin:0}
.step p{font-size:13px; line-height:20px; color:var(--ink-dim); margin:0}
.step-connector{display:none}
@media(min-width:960px){
  .step-connector{display:block; position:absolute; top:50%; right:-12px; width:24px; height:2px; background:var(--line-strong); z-index:1}
  .step-connector::after{content:""; position:absolute; right:-6px; top:50%; transform:translateY(-50%); width:0; height:0; border-left:6px solid var(--line-strong); border-top:4px solid transparent; border-bottom:4px solid transparent}
}

/* pose grid */
.pose-filters{display:flex; flex-wrap:wrap; gap:8px}
.chip{appearance:none; border:1px solid var(--line-strong); background:transparent; color:var(--ink-dim);
  font-family:"Inter",sans-serif; font-size:13px; font-weight:600; min-height:36px; padding:8px 14px; border-radius:var(--radius-pill); cursor:pointer; transition:all 150ms}
.chip.active{background:var(--yellow); color:#111; border-color:var(--yellow)}
.chip:hover{border-color:rgba(255,255,255,.24); transform:translateY(-1px)}
.pose-card{background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:transform 200ms var(--ease-spring), border-color 200ms, box-shadow 200ms, opacity 260ms, filter 260ms; cursor:pointer}
.pose-card:hover{transform:translateY(-2px); border-color:rgba(255,255,255,.14); box-shadow:var(--shadow-soft)}
.pose-card:active{transform:translateY(0) scale(.99)}
.pose-card.is-hidden{opacity:0; transform:scale(.96); pointer-events:none}
.pose-thumb{aspect-ratio:4/5; background:var(--surface); position:relative; overflow:hidden}
.pose-thumb img{width:100%; height:100%; object-fit:cover; filter:saturate(1.05) contrast(1.02); transition:transform 400ms var(--ease-spring)}
.pose-card:hover .pose-thumb img{transform:scale(1.04)}
.pose-thumb::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 44%); pointer-events:none}
.pose-badge{position:absolute; top:10px; left:10px; z-index:1; padding:4px 8px; border-radius:var(--radius-pill);
  background:rgba(0,0,0,.62); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.14);
  font-family:"Space Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#fff}
.pose-info{padding:14px 14px 16px}
.pose-info h4{font-size:13px; line-height:16px; font-weight:700; margin:0; letter-spacing:-.01em}
.pose-info p{font-size:12px; line-height:16px; color:var(--ink-faint); margin:4px 0 0}
.pose-meta{display:flex; align-items:center; gap:8px; margin-top:10px}
.dot{width:6px; height:6px; border-radius:50%}
.pose-skel{position:absolute; inset:12% 10%; border:1px dashed rgba(255,255,255,.22); border-radius:12px; display:grid; place-items:center; color:rgba(255,255,255,.42); font-family:"Space Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; pointer-events:none}

/* comparison */
.compare-head{font-family:"Space Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); padding:12px 16px; border-bottom:1px solid var(--line)}
.compare-row{display:grid; grid-template-columns:1.2fr .9fr .9fr; gap:16px; padding:14px 16px; border-bottom:1px solid var(--line); align-items:center; font-size:13px; line-height:18px}
.compare-row:last-child{border-bottom:none}
.compare-good{color:var(--teal); font-weight:700}
.compare-bad{color:var(--ink-faint)}
.badge-yes{display:inline-flex; align-items:center; gap:6px; padding:3px 8px; border-radius:var(--radius-pill); background:rgba(0,191,165,.14); color:var(--teal); font-size:11px; font-weight:700}
.badge-no{padding:3px 8px; border-radius:var(--radius-pill); background:rgba(255,255,255,.06); color:var(--ink-faint); font-size:11px}

/* CTA */
.cta{position:relative; overflow:hidden; border-radius:24px; background:linear-gradient(135deg, #0F1A18 0%, #111B19 55%, #15302C 100%);
  border:1px solid rgba(0,191,165,.22); padding:40px}
.cta::before{content:""; position:absolute; top:-40%; right:-10%; width:520px; height:520px; background:radial-gradient(circle, rgba(0,191,165,.22) 0%, transparent 68%); pointer-events:none}
.cta-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:32px; align-items:center; position:relative; z-index:1}
.qr{width:148px; height:148px; border-radius:16px; background:#fff; padding:10px; display:grid; place-items:center; cursor:pointer; transition:transform 200ms var(--ease-spring); position:relative}
.qr:hover{transform:translateY(-2px) scale(1.02)}
.qr::after{content:"Copied!"; position:absolute; left:50%; bottom:-28px; transform:translateX(-50%) translateY(4px); background:#111; color:#fff; padding:6px 10px; border-radius:8px; font:700 11px/1 "Space Mono",monospace; opacity:0; pointer-events:none; transition:all 200ms}
.qr.copied::after{opacity:1; transform:translateX(-50%) translateY(0)}
.qr-inner{width:100%; height:100%; background:
  linear-gradient(#000 0 0) 0 0/18% 18% no-repeat, linear-gradient(#000 0 0) 100% 0/18% 18% no-repeat,
  linear-gradient(#000 0 0) 0 100%/18% 18% no-repeat, linear-gradient(#000 0 0) 100% 100%/18% 18% no-repeat,
  radial-gradient(circle at 22% 22%, #000 0 9%, transparent 9.5%),
  radial-gradient(circle at 78% 22%, #000 0 9%, transparent 9.5%),
  radial-gradient(circle at 22% 78%, #000 0 9%, transparent 9.5%);
  border:3px solid #000; border-radius:10px; position:relative}
.qr-inner::after{content:"POSEPAL"; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  font-family:"Space Mono",monospace; font-size:9px; letter-spacing:.18em; font-weight:700; background:#fff; padding:2px 6px; border:1px solid #000}

/* footer */
.footer{border-top:1px solid var(--line); background:var(--paper-2)}
.foot-link{font-size:13px; line-height:20px; color:var(--ink-dim); cursor:pointer; transition:color 150ms}
.foot-link:hover{color:var(--ink)}
.sep{height:1px; background:var(--line); grid-column:1 / -1}

/* reveal */
.reveal{opacity:0; transform:translateY(12px); transition:opacity .6s var(--ease-out), transform .6s var(--ease-out)}
.reveal.in{opacity:1; transform:none}

/* toast */
.toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(16px); background:#111; color:#fff;
  border:1px solid var(--line-strong); padding:12px 16px; border-radius:var(--radius-sm); font:600 13px/1 "Inter",sans-serif;
  box-shadow:var(--shadow-soft); opacity:0; pointer-events:none; transition:opacity 200ms, transform 200ms; z-index:var(--z-toast)}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

/* folio number */
.folio{font:400 10px/1 "Space Mono",monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); border-top:1px solid var(--line); padding-top:8px; margin-top:8px}

/* reduced motion */
@media(prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *, *::before, *::after{animation-duration:.01ms !important; transition-duration:.01ms !important}
  .reveal{opacity:1; transform:none}
  .demo-hint-pulse{animation:none}
}

/* ===== RESPONSIVE — pro-max stacking (the v1 gap) ===== */
@media(max-width:980px){
  :root{--margin:24px; --gutter:20px; --pad:48px}
  .hero .band > div:first-child{grid-column:1 / -1}
  .hero .band > div:last-child{grid-column:1 / -1}
  .phone-stack{margin-top:8px}
  #interactive .band > div:first-child{grid-column:1 / -1}
  #interactive .band > div:last-child{grid-column:1 / -1}
}
@media(max-width:900px){
  :root{--margin:20px; --gutter:16px; --pad:40px}
  .h2b{font-size:26px}
  .lead{font-size:16px}
  /* stats 4 -> 2 */
  .stats .band > div{grid-column:auto}
  .stats .band{grid-template-columns:repeat(2,1fr)}
  .stats .band > div:nth-child(1){grid-column:1}
  .stats .band > div:nth-child(2){grid-column:2}
  .stats .band > div:nth-child(3){grid-column:1}
  .stats .band > div:nth-child(4){grid-column:2}
  /* bento hero */
  #features .band:nth-of-type(2) > div:first-child{grid-column:1 / -1}
  #features .band:nth-of-type(2) > div:last-child{grid-column:1 / -1}
  /* 3 cards -> 1 */
  #features .band:nth-of-type(3) > div{grid-column:1 / -1}
  /* steps 4 -> 2 */
  #how .band:nth-of-type(2) > div{grid-column:span 6}
  /* pose cards 4 -> 2 */
  #poseGrid > div{grid-column:span 6 !important}
  /* scene-aware */
  .scene-split{grid-column:1 / -1 !important}
  /* tech grids */
  #tech .band > div:first-child{grid-column:1 / -1}
  #tech .band > div:last-child{grid-column:1 / -1}
  .cta-grid{grid-template-columns:1fr}
  .footer .band > div:nth-child(1){grid-column:1 / -1}
  .footer .band > div:nth-child(2){grid-column:1 / 4}
  .footer .band > div:nth-child(3){grid-column:4 / 7}
  .footer .band > div:nth-child(4){grid-column:7 / -1}
}
@media(max-width:640px){
  :root{--margin:16px; --pad:32px}
  .grid{gap:16px}
  .masthead{font-size:clamp(36px,10vw,42px); line-height:.98}
  .h2b{font-size:22px}
  .lead{font-size:15px; line-height:26px}
  .hero-actions .btn{flex:1 1 auto}
  .stats .band{grid-template-columns:1fr}
  .stats .band > div{grid-column:1 !important}
  #how .band:nth-of-type(2) > div{grid-column:1 / -1}
  #poseGrid > div{grid-column:1 / -1 !important}
  .compare-row{grid-template-columns:1fr; gap:8px}
  .compare-head{display:none}
  .scene-card{height:320px !important; grid-template-columns:1fr !important}
  .scene-card > div:last-child{min-height:180px}
  #tech .band > div:first-child{grid-column:1 / -1}
  .footer .band > div{grid-column:1 / -1 !important}
  .cta{padding:24px}
  .demo-canvas{height:264px}
}

