﻿/* ============================================================
   ASTRAEA — design system v3
   deep space · midnight glass · warm ivory · luminous gold
   ============================================================ */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 500;font-display:swap;src:url(fonts/cormorant.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300;font-display:swap;src:url(fonts/cormorant-italic.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/instrument.woff2) format('woff2')}

:root{
  --space:#030509;
  --space-2:#060a14;
  --midnight:#0c1226;
  --glass:rgba(12,18,38,.52);
  --glass-2:rgba(17,25,52,.62);
  --ink:#f4f1e9;
  --silver:#9aa2b8;
  --silver-dim:#5d6680;
  --gold:#e2c48e;
  --gold-2:#f2dcac;
  --gold-deep:#c9a96a;
  --gold-soft:rgba(226,196,142,.12);
  --line:rgba(244,241,233,.08);
  --line-strong:rgba(244,241,233,.18);
  --light-top:inset 0 1px 0 rgba(255,255,255,.07);
  --good:#93dcab;
  --serif:'Cormorant Garamond',Palatino,'Palatino Linotype',Georgia,serif;
  --sans:'Instrument Sans','Segoe UI',-apple-system,'Helvetica Neue',Arial,sans-serif;
  --mono:'Cascadia Mono',Consolas,'SF Mono',Menlo,monospace;
  --max:1200px;
  --r:20px;
  --ease:cubic-bezier(.22,.68,.22,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip;scrollbar-color:#2a3350 var(--space)}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--space)}
::-webkit-scrollbar-thumb{background:#232c48;border-radius:6px;border:3px solid var(--space)}
::-webkit-scrollbar-thumb:hover{background:#33406a}
body{
  background:var(--space);color:var(--ink);
  font-family:var(--sans);font-size:16.5px;line-height:1.65;
  font-feature-settings:"ss01" on,"cv01" on;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
/* film grain — the difference between flat and expensive */
body::after{
  content:"";position:fixed;inset:-50%;z-index:98;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 9s steps(8) infinite;
}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,3%)}}
::selection{background:rgba(226,196,142,.3);color:var(--ink)}
img,svg{max-width:100%}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid rgba(226,196,142,.7);outline-offset:3px;border-radius:4px}

/* ---------- type ---------- */
h1,h2,h3,.serif{font-family:var(--serif);font-weight:300;letter-spacing:.01em;text-wrap:balance}
h1{font-size:clamp(3.1rem,8.5vw,7.2rem);line-height:.99}
h2{font-size:clamp(2.1rem,4.8vw,3.8rem);line-height:1.06}
h3{font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.2}
.accent-i{font-style:italic;background:linear-gradient(120deg,var(--ink) 20%,var(--gold-2) 55%,var(--gold) 80%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.eyebrow{
  display:inline-flex;align-items:center;gap:.9em;
  font-family:var(--mono);font-size:.64rem;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem;
}
.eyebrow::before{content:"";width:2.2em;height:1px;background:linear-gradient(90deg,transparent,var(--gold-deep))}
.eyebrow::after{content:"";width:2.2em;height:1px;background:linear-gradient(90deg,var(--gold-deep),transparent)}
.lead{color:var(--silver);font-size:1.1rem;max-width:36em;font-weight:400}
.mono{font-family:var(--mono);letter-spacing:.08em}
.em{font-style:italic}
.center{text-align:center}
.center .lead{margin-inline:auto}

/* ---------- layout ---------- */
section{position:relative;padding:clamp(4.5rem,10vh,9rem) 1.5rem}
.wrap{max-width:var(--max);margin:0 auto}
#sky{position:fixed;inset:0;z-index:0;pointer-events:none}
main,header,footer,.sticky-bar{position:relative;z-index:1}

/* ---------- glass ---------- */
.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--light-top)}

/* ---------- buttons ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--sans);font-size:.78rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
  padding:1.05rem 2.4rem;border-radius:3rem;cursor:pointer;border:1px solid transparent;background:transparent;
  transition:transform .3s var(--ease),box-shadow .35s,background .3s,color .3s,border-color .3s;
  white-space:nowrap;overflow:hidden;will-change:transform;
}
.btn:active{transform:scale(.97)}
.btn.solid{
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep) 60%,#b8965a);color:#171207;
  box-shadow:0 4px 26px rgba(226,196,142,.22),inset 0 1px 0 rgba(255,255,255,.4);
}
.btn.solid::after{
  content:"";position:absolute;top:0;bottom:0;left:-40%;width:35%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg);transition:left .7s var(--ease);
}
.btn.solid:hover::after,.btn.solid:focus-visible::after{left:120%}
.btn.solid:hover,.btn.solid:focus-visible{box-shadow:0 8px 46px rgba(226,196,142,.45),inset 0 1px 0 rgba(255,255,255,.4);transform:translateY(-2px);outline:none}
.btn.line{border-color:rgba(226,196,142,.55);color:var(--gold)}
.btn.line:hover,.btn.line:focus-visible{background:var(--gold-soft);color:var(--ink);border-color:var(--gold);outline:none}
.btn.ghost{border-color:var(--line-strong);color:var(--silver)}
.btn.ghost:hover,.btn.ghost:focus-visible{color:var(--ink);border-color:var(--ink);outline:none}
.btn.big{padding:1.3rem 3.1rem;font-size:.86rem}
.btn:disabled{opacity:.4;pointer-events:none}

/* ---------- nav ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .45s,border-color .45s,backdrop-filter .45s;border-bottom:1px solid transparent}
header.scrolled{background:rgba(3,5,9,.78);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom-color:var(--line)}
.nav{max-width:var(--max);margin:0 auto;padding:1.05rem 1.5rem;display:flex;align-items:center;gap:2rem}
.brand{font-family:var(--serif);font-size:1.32rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink);text-decoration:none;transition:opacity .3s;display:inline-flex;align-items:baseline;gap:.7em;white-space:nowrap}
.brand:hover{opacity:.85}
.brand .dot{color:var(--gold)}
.brand-sub{font-family:var(--mono);font-size:.46em;letter-spacing:.32em;color:var(--silver-dim);text-transform:uppercase;transform:translateY(-.15em)}
@media(max-width:560px){.brand-sub{display:none}}
.nav-links{display:flex;gap:2rem;margin-left:auto;align-items:center}
.nav-links a:not(.nav-cta){
  position:relative;color:var(--silver);text-decoration:none;font-size:.72rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;transition:color .3s;padding:.2rem 0;
}
.nav-links a:not(.nav-cta)::after{
  content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease);
}
.nav-links a:not(.nav-cta):hover{color:var(--ink)}
.nav-links a:not(.nav-cta):hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{padding:.68rem 1.55rem!important;font-size:.68rem!important}
@media(max-width:900px){.nav-links a:not(.nav-cta){display:none}}

/* ---------- social proof ---------- */
.proof-row{display:flex;gap:1.1rem 2.4rem;justify-content:center;flex-wrap:wrap;align-items:center;font-size:.86rem;color:var(--silver)}
.proof-row .rate{color:var(--gold);letter-spacing:.16em;text-shadow:0 0 14px rgba(226,196,142,.5)}
.proof-row b{color:var(--ink);font-weight:600}

/* ---------- ticker ---------- */
.ticker-band{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(6,10,20,.55);overflow:hidden;padding:.9rem 0;position:relative;z-index:1;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.ticker{display:flex;gap:3.5rem;width:max-content;animation:tick 70s linear infinite}
.ticker-band:hover .ticker{animation-play-state:paused}
.ticker span{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--silver-dim);white-space:nowrap}
.ticker span b{color:var(--gold);font-weight:400}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- hero = the price list ----------
   Deliberately short: the headline earns roughly a third of the first screen,
   the three packages take the rest. Nobody scrolls to reach a price. */
.hero{
  display:flex;flex-direction:column;justify-content:center;text-align:center;
  padding-top:6.2rem;padding-bottom:2.6rem;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(58% 46% at 50% 26%,rgba(30,42,90,.3),transparent 72%);
}
.hero .wrap{position:relative;width:100%}
.hero-top{max-width:50rem;margin:0 auto 2.2rem}
.hero h1{font-size:clamp(2.05rem,4.3vw,3.45rem);line-height:1.05;letter-spacing:-.015em}
.hero .lead{margin:1.05rem auto 0;font-size:clamp(.95rem,1.35vw,1.08rem);max-width:34em}
.hero .lead b{color:var(--ink);font-weight:600}
.hero-ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}
.hero-foot{
  display:flex;gap:.7rem 2rem;justify-content:center;flex-wrap:wrap;margin-top:2.4rem;
  font-family:var(--mono);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--silver-dim);
}
@media(min-width:1001px){.hero{min-height:100svh}}
@media(max-width:760px){
  .hero{padding-top:5.4rem}
  .hero-badge{margin-bottom:1.6rem}
  .hero-top{margin-bottom:2rem}
}
.hero-badge{
  display:inline-flex;align-items:center;gap:.75em;margin:0 auto 2.6rem;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold);border:1px solid rgba(226,196,142,.28);border-radius:2rem;padding:.55rem 1.4rem;
  background:linear-gradient(180deg,rgba(226,196,142,.09),rgba(226,196,142,.02));
  box-shadow:var(--light-top);max-width:92vw;text-align:center;line-height:1.5;
}
@media(max-width:420px){.hero-badge{letter-spacing:.14em;font-size:.58rem}}
.hero-badge i{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px var(--gold);animation:blink 2.6s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.scroll-hint{position:absolute;bottom:1.8rem;left:50%;transform:translateX(-50%);color:var(--silver-dim);font-size:1.3rem;animation:hint 2.8s ease-in-out infinite}
@keyframes hint{0%,100%{transform:translate(-50%,0);opacity:.45}50%{transform:translate(-50%,10px);opacity:1}}

/* hero entrance orchestration */
.hi{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
body.loaded .hi{opacity:1;transform:none}
body.loaded .hi-1{transition-delay:.1s}
body.loaded .hi-2{transition-delay:.28s}
body.loaded .hi-3{transition-delay:.5s}
body.loaded .hi-4{transition-delay:.68s}
body.loaded .hi-5{transition-delay:.86s}

/* ---------- reveal on scroll ---------- */
.rv{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.on{opacity:1;transform:none}
.rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.22s}.rv-d3{transition-delay:.34s}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.stats>div{background:rgba(6,10,20,.78);padding:2.4rem 1.6rem;text-align:center;position:relative}
.stats>div::before{content:"";position:absolute;inset:0;box-shadow:var(--light-top);pointer-events:none}
.stats .n{font-family:var(--serif);font-size:clamp(2.3rem,4.2vw,3.4rem);color:var(--ink);font-variant-numeric:tabular-nums}
.stats .n small{font-size:.5em;color:var(--gold)}
.stats .l{font-family:var(--mono);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--silver-dim);margin-top:.55rem}

/* ---------- occasions — the centerpiece index ---------- */
.occ-band{
  background:linear-gradient(180deg,rgba(9,13,28,.72),rgba(4,6,12,.28));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.occ-head{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:end;margin-bottom:3.2rem;text-align:left}
.occ-head .lead{margin:0 0 .6rem;max-width:30em}
@media(max-width:820px){.occ-head{grid-template-columns:1fr;align-items:start;gap:1.2rem}}
.occ-index{display:flex;flex-direction:column;border-bottom:1px solid var(--line-strong)}
.occ3{
  position:relative;display:grid;grid-template-columns:auto 1fr minmax(170px,235px) auto;align-items:center;gap:1.6rem;
  padding:1.15rem 1rem;border-top:1px solid var(--line-strong);text-decoration:none;color:var(--ink);
  cursor:pointer;background:transparent;border-left:none;border-right:none;border-bottom:none;
  text-align:left;transition:background .4s;overflow:hidden;width:100%;
}
.o3-sym{
  width:52px;height:52px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;color:var(--gold);border:1px solid rgba(226,196,142,.32);
  background:radial-gradient(circle at 35% 30%,rgba(226,196,142,.14),rgba(226,196,142,.02));
  text-shadow:0 0 14px rgba(226,196,142,.5);transition:border-color .4s,box-shadow .4s,transform .5s var(--ease);
}
.occ3:hover .o3-sym,.occ3.chosen .o3-sym{
  border-color:rgba(226,196,142,.6);box-shadow:0 0 22px rgba(226,196,142,.22);transform:scale(1.06);
}
.occ3::before{
  content:"";position:absolute;inset:0;opacity:0;transition:opacity .45s;pointer-events:none;
  background:linear-gradient(90deg,rgba(226,196,142,.1),transparent 65%);
}
.occ3:hover::before,.occ3.chosen::before{opacity:1}
.o3-label{
  display:block;font-family:var(--serif);font-weight:300;
  font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.05;letter-spacing:.03em;
  transition:transform .5s var(--ease),color .35s;
}
.occ3:hover .o3-label,.occ3.chosen .o3-label{transform:translateX(12px);color:var(--gold-2)}
.o3-line{display:block;color:var(--silver);font-size:.98rem;margin-top:.35rem;transition:transform .5s var(--ease)}
.occ3:hover .o3-line{transform:translateX(12px)}
.o3-viz{height:68px;opacity:.52;transition:opacity .55s;justify-self:end}
.o3-viz svg{height:100%;width:auto;display:block}
.occ3:hover .o3-viz,.occ3.chosen .o3-viz{opacity:1}
.occ3 .o2p{stroke-dasharray:560;stroke-dashoffset:560;transition:stroke-dashoffset 1.2s var(--ease)}
.occ3:hover .o2p,.occ3.chosen .o2p{stroke-dashoffset:0}
.o3-cta{
  display:flex;align-items:center;gap:.9em;justify-self:end;
  font-family:var(--mono);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold);white-space:nowrap;
}
.o3-arrow{font-family:var(--sans);font-size:1.35rem;color:var(--gold);transition:transform .45s var(--ease)}
.occ3:hover .o3-arrow{transform:translateX(7px)}
.occ3.pop{opacity:0;transform:translateY(16px);animation:popIn .7s var(--ease) forwards}
.occ3.chosen{background:rgba(226,196,142,.08)}
@media(max-width:760px){
  .occ3{grid-template-columns:auto 1fr auto;gap:1rem;padding:1.15rem .3rem}
  .o3-viz{display:none}
  .o3-sym{width:44px;height:44px;font-size:1.1rem}
  .o3-label{font-size:clamp(1.35rem,5.6vw,1.7rem)}
  .o3-line{font-size:.84rem;margin-top:.25rem}
}
@media(max-width:380px){
  .occ3{gap:.8rem}
  .o3-sym{width:38px;height:38px;font-size:1rem}
  .o3-line{font-size:.78rem}
}

/* ---------- product cards ---------- */
.prod-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1.3rem;margin-top:3.4rem;perspective:1400px}
.prod{
  position:relative;border-radius:var(--r);
  padding:2.6rem 2.1rem 2.1rem;display:flex;flex-direction:column;
  background:linear-gradient(170deg,var(--glass-2),rgba(5,8,16,.55)) padding-box,
             linear-gradient(155deg,rgba(244,241,233,.14),rgba(244,241,233,.03) 40%,rgba(226,196,142,.06)) border-box;
  border:1px solid transparent;
  backdrop-filter:blur(14px);overflow:hidden;box-shadow:var(--light-top);
  transition:transform .5s var(--ease),box-shadow .45s;
  transform:rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(var(--ty,0));
  transform-style:preserve-3d;will-change:transform;
}
.prod::before{
  content:"";position:absolute;inset:0;opacity:0;transition:opacity .45s;pointer-events:none;
  background:radial-gradient(440px circle at var(--mx,50%) var(--my,0%),rgba(226,196,142,.1),transparent 60%);
}
.prod:hover{--ty:-6px;box-shadow:0 24px 60px rgba(0,0,0,.5),var(--light-top)}
.prod:hover::before{opacity:1}
.prod.popular{
  background:linear-gradient(170deg,var(--glass-2),rgba(5,8,16,.55)) padding-box,
             linear-gradient(155deg,rgba(226,196,142,.55),rgba(226,196,142,.12) 50%,rgba(226,196,142,.4)) border-box;
}
.prod .flag{
  position:absolute;top:1.15rem;right:1.15rem;font-family:var(--mono);font-size:.56rem;
  letter-spacing:.22em;text-transform:uppercase;color:#171207;background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));
  padding:.34rem .8rem;border-radius:2rem;font-weight:600;box-shadow:0 2px 12px rgba(226,196,142,.35);
}
.prod .stars{font-size:.95rem;color:var(--gold);letter-spacing:.42em;margin-bottom:1.25rem;text-shadow:0 0 16px rgba(226,196,142,.45)}
.prod h3{margin-bottom:.6rem}
.prod .d{color:var(--silver);font-size:.93rem;flex:1}
.prod .meta{margin-top:1.6rem;padding-top:1.35rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.prod .price{display:flex;flex-direction:column}
.prod .price .amt{font-family:var(--serif);font-size:1.75rem;line-height:1}
.prod .price .from{font-family:var(--mono);font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:.32rem}
.prod .go{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);text-decoration:none;display:inline-flex;align-items:center;gap:.5em;transition:gap .3s var(--ease)}
.prod .go:hover{gap:.95em}
.more-prods{display:none}
.more-prods.open{display:grid}

/* ---------- how ---------- */
.how-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:1.2rem;margin-top:3.4rem}
.how-card{border:1px solid var(--line);border-radius:var(--r);padding:2.3rem 1.9rem;background:var(--glass);backdrop-filter:blur(10px);box-shadow:var(--light-top);transition:border-color .35s,transform .35s var(--ease)}
.how-card:hover{border-color:var(--line-strong);transform:translateY(-4px)}
.how-card .num{font-family:var(--mono);font-size:.62rem;letter-spacing:.32em;color:var(--gold);display:block;margin-bottom:1.1rem}
.how-card h3{font-size:1.28rem;margin-bottom:.55rem}
.how-card p{color:var(--silver);font-size:.9rem}

/* ---------- inputs ---------- */
input[type=text],input[type=date],input[type=email],input[type=time],textarea,select{
  background:rgba(3,5,9,.72);border:1px solid var(--line-strong);border-radius:14px;
  color:var(--ink);font-family:var(--sans);font-size:1rem;padding:1rem 1.2rem;min-width:0;
  transition:border-color .3s,box-shadow .3s,background .3s;box-shadow:inset 0 2px 8px rgba(0,0,0,.35);
}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold-deep);box-shadow:0 0 0 4px rgba(226,196,142,.12),inset 0 2px 8px rgba(0,0,0,.35);background:rgba(3,5,9,.9)}
input::placeholder,textarea::placeholder{color:#525a72}

/* ---------- demo ---------- */
.demo-panel{
  position:relative;border-radius:calc(var(--r) + 8px);margin-top:3.2rem;
  background:linear-gradient(175deg,var(--glass),rgba(4,7,14,.5)) padding-box,
             linear-gradient(160deg,rgba(244,241,233,.16),rgba(244,241,233,.03) 45%,rgba(226,196,142,.12)) border-box;
  border:1px solid transparent;backdrop-filter:blur(18px);
  padding:clamp(2.2rem,5vw,4.2rem);box-shadow:0 40px 100px rgba(0,0,0,.4),var(--light-top);
}
.demo-input-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.demo-input-row input{width:min(330px,70vw)}
.demo-result{margin-top:3rem;display:none;text-align:center}
.demo-result.on{display:block;animation:fadeUp .9s var(--ease) both}
.star-card{
  position:relative;display:inline-block;border-radius:var(--r);
  padding:2.5rem 2.7rem;max-width:440px;width:100%;
  background:radial-gradient(130% 130% at 50% 0%,rgba(18,26,54,.96),rgba(3,5,9,.98)) padding-box,
             linear-gradient(160deg,rgba(226,196,142,.4),rgba(244,241,233,.06) 50%,rgba(226,196,142,.25)) border-box;
  border:1px solid transparent;
  box-shadow:0 40px 100px rgba(0,0,0,.6),0 0 60px rgba(226,196,142,.06),var(--light-top);
}
.star-card svg{width:100%;height:auto;display:block;margin-bottom:1.6rem}
.star-card .sc-name{font-family:var(--serif);font-size:2.2rem;letter-spacing:.16em;text-transform:uppercase}
.star-card .sc-const{color:var(--silver);font-size:.9rem;margin-top:.3rem}
.star-card .sc-coords{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;color:var(--gold);margin-top:1.1rem}
.demo-caption{color:var(--silver);margin-top:2rem;font-style:italic;font-family:var(--serif);font-size:1.3rem}

/* ---------- reviews ---------- */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:1.3rem;margin-top:3.2rem}
.review{border:1px solid var(--line);border-radius:var(--r);padding:2.1rem 2rem;background:var(--glass);backdrop-filter:blur(10px);box-shadow:var(--light-top);transition:border-color .35s,transform .35s var(--ease)}
.review:hover{border-color:var(--line-strong);transform:translateY(-4px)}
.review .r-stars{color:var(--gold);letter-spacing:.22em;font-size:.85rem;margin-bottom:1.1rem;text-shadow:0 0 14px rgba(226,196,142,.4)}
.review blockquote{font-family:var(--serif);font-style:italic;font-size:1.2rem;line-height:1.5}
.review figcaption{margin-top:1.4rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--silver-dim)}
.review figcaption b{color:var(--gold);font-weight:400}
.verified{color:var(--good);font-size:.88em}

/* ---------- guarantee ---------- */
.guarantee{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:1rem;margin-top:3.2rem}
.g-item{display:flex;gap:1rem;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem 1.55rem;background:rgba(6,10,20,.5);box-shadow:var(--light-top);text-align:left}
.g-item .ic{font-size:1.2rem;color:var(--gold);text-shadow:0 0 14px rgba(226,196,142,.5)}
.g-item b{display:block;font-size:.92rem;font-weight:600}
.g-item span{font-size:.8rem;color:var(--silver)}
.pay-icons{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:2.6rem}
.pay-icons i{
  font-style:normal;font-family:var(--sans);font-weight:600;font-size:.74rem;color:var(--silver);
  border:1px solid var(--line);border-radius:10px;padding:.5rem 1.05rem;background:rgba(244,241,233,.03);box-shadow:var(--light-top);
}

/* ---------- faq ---------- */
.faq{max-width:790px;margin:3.2rem auto 0}
.faq details{border:1px solid var(--line);border-radius:16px;margin-bottom:.85rem;background:var(--glass);backdrop-filter:blur(8px);overflow:hidden;box-shadow:var(--light-top);transition:border-color .3s}
.faq details[open]{border-color:var(--line-strong)}
.faq summary{cursor:pointer;list-style:none;padding:1.4rem 1.7rem;display:flex;align-items:baseline;gap:1rem;font-family:var(--serif);font-size:1.28rem;transition:color .3s}
.faq summary:hover{color:var(--gold-2)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;color:var(--gold);font-family:var(--mono);transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 1.7rem 1.6rem;color:var(--silver);font-size:.94rem;max-width:62ch}

/* ---------- final ---------- */
.final{min-height:74vh;display:flex;align-items:center;text-align:center}
.final h2{font-size:clamp(2.4rem,6vw,4.8rem)}
.final .lead{margin:1.7rem auto 2.8rem}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:5rem 1.5rem 7rem;background:rgba(3,5,9,.92);backdrop-filter:blur(10px);overflow:hidden}
.foot-mark{
  max-width:var(--max);margin:0 auto 3.5rem;font-family:var(--serif);font-weight:300;
  font-size:clamp(3.4rem,11vw,9rem);letter-spacing:.3em;text-transform:uppercase;line-height:1;
  background:linear-gradient(180deg,rgba(244,241,233,.32),rgba(244,241,233,.02));
  -webkit-background-clip:text;background-clip:text;color:transparent;user-select:none;white-space:nowrap;
}
.foot{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem}
@media(max-width:840px){.foot{grid-template-columns:1fr 1fr}}
.foot h4{font-family:var(--mono);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:1.15rem;font-weight:400}
.foot ul{list-style:none}
.foot li{margin-bottom:.6rem}
.foot a{color:var(--silver);text-decoration:none;font-size:.87rem;transition:color .25s}
.foot a:hover{color:var(--ink)}
.foot .tagline{color:var(--silver-dim);font-size:.86rem;margin-top:1rem;max-width:26em}
.foot-legal{max-width:var(--max);margin:3.5rem auto 0;padding-top:1.7rem;border-top:1px solid var(--line);color:var(--silver-dim);font-size:.75rem;display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}

/* ---------- sticky bar ---------- */
.sticky-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  background:rgba(5,8,16,.92);backdrop-filter:blur(20px);border-top:1px solid var(--line-strong);
  padding:.85rem 1.15rem calc(.85rem + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:1rem;justify-content:space-between;
  transform:translateY(110%);transition:transform .5s var(--ease);box-shadow:0 -20px 60px rgba(0,0,0,.5);
}
.sticky-bar.on{transform:none}
.sticky-bar .sb-txt{font-size:.8rem;color:var(--silver);line-height:1.35}
.sticky-bar .sb-txt b{display:block;color:var(--ink);font-size:.93rem;font-weight:600}
.sticky-bar .btn{padding:.85rem 1.7rem;font-size:.68rem}
@media(min-width:901px){.sticky-bar{display:none}footer{padding-bottom:3.5rem}}

/* ---------- toast ---------- */
#toast{
  position:fixed;bottom:5.5rem;left:50%;transform:translate(-50%,20px);z-index:200;
  background:linear-gradient(180deg,var(--midnight),#0a0f22);border:1px solid var(--line-strong);border-radius:16px;
  color:var(--ink);font-size:.88rem;padding:1rem 1.8rem;opacity:0;pointer-events:none;
  transition:opacity .4s,transform .4s var(--ease);max-width:90vw;text-align:center;
  box-shadow:0 24px 60px rgba(0,0,0,.6),var(--light-top);
}
#toast.on{opacity:1;transform:translate(-50%,0)}
@media(min-width:901px){#toast{bottom:2.5rem}}

/* ============================================================
   FUNNEL
   ============================================================ */
.funnel-shell{min-height:100svh;display:flex;flex-direction:column;padding:5.6rem 1.3rem 6rem;position:relative;z-index:1}
.funnel-head{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(3,5,9,.85);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.funnel-head .fh-in{max-width:780px;margin:0 auto;padding:.9rem 1.3rem;display:flex;align-items:center;gap:1.2rem}
.funnel-head .brand{font-size:1rem}
.fh-back{
  background:none;border:1px solid var(--line-strong);border-radius:50%;width:30px;height:30px;flex:none;
  color:var(--silver);font-size:.95rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
  visibility:hidden;opacity:0;transition:opacity .3s,color .25s,border-color .25s;
}
.fh-back.on{visibility:visible;opacity:1}
.fh-back:hover{color:var(--ink);border-color:rgba(226,196,142,.5)}
/* segmented quiz progress — one pill per question */
.fh-progress.seg{flex:1;display:flex;gap:5px;background:none;height:3px;overflow:visible;transition:opacity .4s}
.fh-progress.seg i{
  flex:1;display:block;height:100%;border-radius:99px;background:rgba(244,241,233,.12);
  transition:background .45s,box-shadow .45s;
}
.fh-progress.seg i.done{background:linear-gradient(90deg,var(--gold-deep),var(--gold-2));box-shadow:0 0 10px rgba(226,196,142,.5)}
.fh-progress.seg i.cur{background:rgba(226,196,142,.45)}
.fh-step{font-family:var(--mono);font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--silver-dim);white-space:nowrap}
.fh-exit{color:var(--silver-dim);text-decoration:none;font-size:1.15rem;line-height:1;transition:color .25s}
.fh-exit:hover{color:var(--ink)}

.fstep{max-width:740px;margin:0 auto;width:100%;flex:1;display:none;flex-direction:column;justify-content:center;padding:2rem 0}
.fstep.on{display:flex;animation:stepIn .55s var(--ease) both}
@keyframes stepIn{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}
.fstep h1{font-size:clamp(2rem,5.2vw,3.1rem);text-align:center;margin-bottom:.8rem}
.fstep .hint{text-align:center;color:var(--silver);margin-bottom:2.6rem;font-size:.96rem;max-width:36em;margin-inline:auto}
.f-field{margin:0 auto 1.35rem;width:min(450px,100%)}
.f-field label{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:.6rem}
.f-field input,.f-field textarea,.f-field select{width:100%}
.f-field textarea{min-height:116px;resize:vertical;font-family:var(--serif);font-size:1.2rem;font-style:italic;line-height:1.5}
.chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:.75rem;width:min(620px,100%);margin:0 auto}
.chip{
  border:1px solid var(--line);border-radius:16px;padding:1.2rem .6rem;text-align:center;
  background:var(--glass);color:var(--ink);font-size:.9rem;font-weight:500;cursor:pointer;box-shadow:var(--light-top);
  transition:border-color .3s,background .3s,transform .25s var(--ease),box-shadow .3s;
}
.chip:hover{border-color:var(--silver);transform:translateY(-3px)}
.chip.sel{border-color:var(--gold-deep);background:var(--gold-soft);box-shadow:0 0 28px rgba(226,196,142,.14),var(--light-top)}
.chip .c-sym{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--gold);margin-bottom:.4rem;text-shadow:0 0 16px rgba(226,196,142,.4)}

.fprod-list{display:grid;gap:.95rem;width:min(580px,100%);margin:0 auto}
.fprod{
  display:flex;align-items:center;gap:1.25rem;border:1px solid var(--line);border-radius:18px;
  padding:1.3rem 1.55rem;background:var(--glass);cursor:pointer;text-align:left;box-shadow:var(--light-top);
  transition:border-color .3s,background .3s,transform .25s var(--ease);position:relative;
}
.fprod:hover{border-color:var(--silver);transform:translateY(-2px)}
.fprod.sel{border-color:var(--gold-deep);background:var(--gold-soft)}
.fprod .fp-stars{color:var(--gold);letter-spacing:.3em;font-size:.85rem;min-width:4.2em;text-shadow:0 0 14px rgba(226,196,142,.4)}
.fprod .fp-n{font-size:1.02rem;font-weight:600}
.fprod .fp-d{display:block;color:var(--silver);font-size:.8rem;font-weight:400;margin-top:.18rem}
.fprod .fp-p{margin-left:auto;font-family:var(--serif);font-size:1.4rem;color:var(--ink);white-space:nowrap}
.fprod .fp-flag{position:absolute;top:-9px;right:1.2rem;font-family:var(--mono);font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;font-weight:600;padding:.24rem .75rem;border-radius:2rem;box-shadow:0 2px 10px rgba(226,196,142,.35)}

.tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(218px,1fr));gap:1rem;width:100%;margin:0 auto}
.tier{
  position:relative;border-radius:var(--r);padding:2rem 1.6rem 1.7rem;
  background:var(--glass) padding-box,linear-gradient(160deg,rgba(244,241,233,.12),rgba(244,241,233,.02)) border-box;
  border:1px solid transparent;cursor:pointer;text-align:left;display:flex;flex-direction:column;box-shadow:var(--light-top);
  transition:transform .35s var(--ease),box-shadow .35s,background .35s;
}
.tier:hover{transform:translateY(-4px)}
.tier.sel{
  background:linear-gradient(170deg,rgba(226,196,142,.1),var(--glass)) padding-box,
             linear-gradient(160deg,rgba(226,196,142,.65),rgba(226,196,142,.15) 55%,rgba(226,196,142,.5)) border-box;
  box-shadow:0 0 46px rgba(226,196,142,.16),var(--light-top);
}
.tier .t-flag{position:absolute;top:-10px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;font-weight:600;padding:.28rem .85rem;border-radius:2rem;white-space:nowrap;box-shadow:0 2px 12px rgba(226,196,142,.4)}
.tier .t-n{font-family:var(--serif);font-size:1.5rem;margin-bottom:.1rem}
.tier .t-tag{display:block;font-family:var(--serif);font-style:italic;font-size:.92rem;color:var(--silver);margin-bottom:.2rem}
.tier .t-price{display:flex;align-items:baseline;gap:.6rem;margin:.7rem 0 .2rem}
.tier .t-price .now{font-family:var(--serif);font-size:2.4rem;line-height:1}
.tier .t-price .was{color:var(--silver-dim);text-decoration:line-through;font-size:.98rem}
.tier .t-save{font-family:var(--mono);font-size:.54rem;letter-spacing:.18em;text-transform:uppercase;color:var(--good)}
.tier .t-kit{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 .3rem}
.kitc{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--mono);font-size:.53rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.36rem .62rem;border-radius:2rem;border:1px solid var(--line);
  color:var(--silver-dim);background:rgba(244,241,233,.02);transition:border-color .3s,color .3s;
}
.kitc i{font-style:normal;font-size:.95em}
.kitc.on{border-color:rgba(226,196,142,.5);color:var(--gold);background:var(--gold-soft)}
.kitc.on i{text-shadow:0 0 10px rgba(226,196,142,.6)}
.tier.sel::after{
  content:"✓";position:absolute;top:.85rem;right:.85rem;width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#171207;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));box-shadow:0 2px 12px rgba(226,196,142,.4);
}
.tier ul{list-style:none;margin-top:.85rem;flex:1}
.tier li{font-size:.82rem;color:var(--silver);padding:.34rem 0;display:flex;gap:.6em}
.tier li::before{content:"✦";color:var(--gold);font-size:.7em;margin-top:.35em}
.tier li.mut{opacity:.35}
.tier li.mut::before{content:"—";color:var(--silver-dim)}

.addon-list{display:grid;gap:.85rem;width:min(580px,100%);margin:0 auto}
.addon{
  display:flex;align-items:center;gap:1.15rem;border:1px solid var(--line);border-radius:16px;
  padding:1.15rem 1.35rem;background:var(--glass);cursor:pointer;text-align:left;box-shadow:var(--light-top);
  transition:border-color .3s,background .3s,transform .25s var(--ease);
}
.addon:hover{border-color:var(--silver);transform:translateY(-2px)}
.addon.sel{border-color:var(--gold-deep);background:var(--gold-soft)}
.addon .a-check{
  width:23px;height:23px;border-radius:8px;border:1px solid var(--line-strong);flex:none;
  display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#171207;font-weight:700;
  transition:background .25s,border-color .25s,transform .25s var(--ease);
}
.addon.sel .a-check{background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));border-color:var(--gold);transform:scale(1.06)}
.addon .a-n{font-size:.94rem;font-weight:600}
.addon .a-d{display:block;color:var(--silver);font-size:.78rem;font-weight:400;margin-top:.12rem}
.addon .a-p{margin-left:auto;font-family:var(--mono);font-size:.78rem;color:var(--gold);white-space:nowrap}

/* ============================================================
   PACKAGES — the podium.
   Three cards, always side by side, stepping upward to the right.
   Eternal is taller, gold-bordered, glowing and flagged, so the eye
   lands on it before a single word is read.
   ============================================================ */
.pkg-podium{display:grid;grid-template-columns:1fr 1.06fr 1.18fr;gap:1.1rem;align-items:stretch;margin-top:2.6rem;padding-top:1.2rem}
.pk{
  position:relative;display:flex;flex-direction:column;min-width:0;
  border:1px solid var(--line);border-radius:var(--r);
  padding:1.5rem 1.35rem 1.35rem;
  background:rgba(8,12,24,.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:var(--light-top);
  transition:transform .4s var(--ease),border-color .4s,box-shadow .4s;
}
/* the literal step upward — equal heights, rising lift */
.pk-essential{opacity:.92}
.pk:hover{transform:translateY(-5px);border-color:rgba(226,196,142,.32)}
.pk-essential:hover{opacity:1}

/* --- the top tier owns every visual signal --- */
/* The padding-box layer must stay near-opaque, otherwise the gold border
   gradient beneath it floods the card and swallows the text. */
.pk.best{
  padding:2.1rem 1.6rem 1.6rem;
  background:linear-gradient(172deg,rgba(43,34,20,.97),rgba(8,12,25,.975) 58%) padding-box,
             linear-gradient(165deg,var(--gold-2),var(--gold-deep) 48%,rgba(226,196,142,.55)) border-box;
  border:1.5px solid transparent;
  box-shadow:0 0 0 1px rgba(226,196,142,.1),0 24px 70px rgba(0,0,0,.5),
             0 0 60px rgba(226,196,142,.16),var(--light-top);
}
.pk.best::after{
  content:"";position:absolute;inset:-1px;border-radius:var(--r);pointer-events:none;
  background:radial-gradient(120% 60% at 50% 0%,rgba(226,196,142,.16),transparent 70%);
}
.pk.best:hover{transform:translateY(-7px);box-shadow:0 0 0 1px rgba(226,196,142,.18),0 30px 90px rgba(0,0,0,.55),0 0 90px rgba(226,196,142,.26),var(--light-top)}
.pk-flag{
  position:absolute;top:0;left:50%;transform:translate(-50%,-50%);
  display:inline-flex;align-items:center;white-space:nowrap;
  font-family:var(--mono);font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;
  padding:.4rem .95rem;border-radius:2rem;
  box-shadow:0 4px 20px rgba(226,196,142,.5);z-index:2;
}
.pk-head{position:relative;z-index:1}
.pk-name{font-family:var(--serif);font-size:1.65rem;line-height:1;font-weight:300}
.pk.best .pk-name{font-size:1.95rem;color:var(--gold-2)}
.pk-tag{font-family:var(--serif);font-style:italic;color:var(--silver);font-size:.9rem;margin-top:.2rem}

/* --- price: the anchor --- */
.pk-priceline{display:flex;align-items:flex-end;gap:.75rem;margin:.9rem 0 .1rem;position:relative;z-index:1}
.pk-price{font-family:var(--serif);line-height:.85;font-variant-numeric:tabular-nums;display:inline-flex;align-items:flex-start;color:var(--ink)}
.pk-price i{font-style:normal;font-size:1.1rem;margin-top:.35em;margin-right:.1em;color:var(--silver)}
.pk-price b{font-size:3.1rem;font-weight:300}
.pk.best .pk-price b{font-size:4rem;color:var(--gold-2);text-shadow:0 0 40px rgba(226,196,142,.35)}
.pk.best .pk-price i{color:var(--gold)}
.pk-was{display:flex;flex-direction:column;gap:.15rem;padding-bottom:.4rem;line-height:1.2}
.pk-was s{color:var(--silver);font-size:1.05rem;font-family:var(--serif);text-decoration-color:rgba(226,196,142,.7)}
.pk.best .pk-was s{font-size:1.25rem;color:var(--ink)}
.pk-was em{
  font-style:normal;font-family:var(--mono);font-size:.5rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--good);font-weight:600;
}
.pk.best .pk-was em{
  background:rgba(147,220,171,.14);border:1px solid rgba(147,220,171,.35);
  border-radius:2rem;padding:.16rem .5rem;text-align:center;
}
.pk-line{color:var(--silver);font-size:.82rem;line-height:1.5;margin:.5rem 0 1rem;position:relative;z-index:1}
.pk.best .pk-line{color:var(--ink)}

/* --- what this tier adds --- */
.pk-list{list-style:none;margin:0 0 1.25rem;display:flex;flex-direction:column;gap:.42rem;flex:1;position:relative;z-index:1}
.pk-list li{display:flex;gap:.6em;font-size:.83rem;line-height:1.4;color:var(--ink);align-items:baseline}
.pk-list li b{color:var(--gold);font-weight:400;font-size:.72rem;flex-shrink:0}
.pk-list li i{font-style:italic;color:var(--gold);font-weight:500}
.pk-list .pk-inherit{color:var(--silver);font-style:italic;padding-bottom:.28rem;margin-bottom:.15rem;border-bottom:1px dashed var(--line-strong)}
.pk-list .pk-inherit b{color:var(--silver-dim)}
.pk .pk-cta{width:100%;position:relative;z-index:1;padding:.95rem 1rem;font-size:.66rem}
.pk.best .pk-cta{padding:1.15rem 1rem;font-size:.74rem}
.pk-note{
  display:block;text-align:center;margin-top:.7rem;position:relative;z-index:1;
  font-family:var(--mono);font-size:.5rem;letter-spacing:.13em;text-transform:uppercase;color:var(--silver-dim);
}
.pk.best .pk-note{color:var(--gold-deep)}

@media(max-width:1000px){
  .pk-list li{font-size:.79rem}
  .pk-price b{font-size:2.6rem}
  .pk.best .pk-price b{font-size:3.2rem}
  .pk-name{font-size:1.4rem}
  .pk.best .pk-name{font-size:1.65rem}
}
/* label swapping: long copy on wide screens, short copy when the three cards
   have to share a phone's width */
.pk-flag em,.pk-cta em{font-style:normal}
.lb-sm{display:none}

/* Phones keep all three packages side by side. Three feature lists cannot fit
   at this width, so they drop out and the matrix below carries the detail. */
@media(max-width:760px){
  .pkg-podium{grid-template-columns:repeat(3,1fr);gap:.4rem;align-items:end}
  .lb-lg{display:none}
  .lb-sm{display:inline}
  .pk-essential{opacity:1}
  .pk,.pk.best{padding:1.4rem .5rem .6rem;border-radius:12px;text-align:center;align-items:center;margin-bottom:0}
  .pk.best{padding-top:1.7rem}
  .pk-premium{margin-bottom:.7rem}
  .pk-eternal{margin-bottom:1.5rem}
  .pk:hover,.pk.best:hover{transform:none}
  .pk-list,.pk-tag,.pk-line,.pk-note{display:none}
  .pk-head{text-align:center}
  .pk-name{font-size:.95rem}
  .pk.best .pk-name{font-size:1.05rem}
  .pk-priceline{flex-direction:column;align-items:center;gap:.1rem;margin:.5rem 0 .7rem}
  .pk-price{align-items:baseline}
  .pk-price i{font-size:.7rem;margin-top:0}
  .pk-price b{font-size:1.6rem}
  .pk.best .pk-price b{font-size:2rem}
  .pk-was{align-items:center;padding-bottom:0}
  .pk-was s{font-size:.72rem}
  .pk.best .pk-was s{font-size:.78rem}
  .pk-was em{font-size:.42rem;letter-spacing:.06em}
  .pk.best .pk-was em{padding:.12rem .3rem}
  .pk-flag{font-size:.4rem;letter-spacing:.07em;padding:.26rem .45rem;width:max-content;max-width:96%}
  .pk .pk-cta,.pk.best .pk-cta{padding:.62rem .2rem;font-size:.5rem;letter-spacing:.09em}
  /* two columns instead of four stacked lines, so the comparison sits higher */
  .hero-foot{
    display:grid;grid-template-columns:1fr 1fr;gap:.35rem .8rem;
    margin-top:1.6rem;font-size:.48rem;letter-spacing:.1em;text-align:left;
  }
}
/* very narrow phones: shave pixels rather than stack */
@media(max-width:400px){
  .pkg-podium{gap:.3rem}
  .pk,.pk.best{padding-inline:.32rem}
  .pk-name{font-size:.84rem}
  .pk.best .pk-name{font-size:.92rem}
  .pk-price b{font-size:1.42rem}
  .pk.best .pk-price b{font-size:1.75rem}
  .pk-flag{font-size:.36rem;letter-spacing:.04em;padding:.24rem .32rem}
  .pk .pk-cta,.pk.best .pk-cta{font-size:.46rem;letter-spacing:.05em}
}

/* Short laptop screens: compress the hero so all three prices stay above
   the fold. Nothing is removed — only tightened. */
@media(min-width:761px) and (max-height:1000px){
  .hero{padding-top:5rem;padding-bottom:1.5rem}
  .hero-badge{margin-bottom:1.3rem;padding:.42rem 1.1rem;font-size:.55rem}
  .hero h1{font-size:clamp(1.8rem,3.3vw,2.45rem)}
  .hero .lead{font-size:.93rem;margin-top:.75rem}
  .hero-top{margin-bottom:1.5rem}
  .hero-foot{margin-top:1.4rem}
  .pk{padding:1.15rem 1.05rem 1.1rem}
  .pk.best{padding:1.65rem 1.25rem 1.15rem}
  .pk-name{font-size:1.35rem}
  .pk.best .pk-name{font-size:1.6rem}
  .pk-tag{font-size:.8rem}
  .pk-priceline{margin:.6rem 0 0}
  .pk-price b{font-size:2.4rem}
  .pk.best .pk-price b{font-size:3rem}
  .pk-line{font-size:.76rem;margin:.35rem 0 .7rem}
  .pk-list{gap:.28rem;margin-bottom:.9rem}
  .pk-list li{font-size:.75rem;line-height:1.32}
  .pk .pk-cta{padding:.8rem}
  .pk.best .pk-cta{padding:.95rem}
  .pk-premium{margin-bottom:.9rem}
  .pk-eternal{margin-bottom:1.8rem}
}

/* ---------- the line-by-line matrix (secondary, folded away) ---------- */
.compare-band{padding-top:0;padding-bottom:clamp(2.5rem,5vh,4rem)}
.pkg-detail{border-top:1px solid var(--line);padding-top:1.6rem}
.pkg-detail>summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--silver);
  transition:color .3s;
}
.pkg-detail>summary::-webkit-details-marker{display:none}
.pkg-detail>summary::after{content:"↓";transition:transform .4s var(--ease)}
.pkg-detail[open]>summary::after{transform:rotate(180deg)}
.pkg-detail>summary:hover{color:var(--gold)}
.pkg-matrix{
  display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(3,1fr);
  border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;
  background:rgba(6,10,20,.62);backdrop-filter:blur(14px);
  box-shadow:0 30px 80px rgba(0,0,0,.4),var(--light-top);margin-top:1.8rem;
}
.pm-corner{padding:1.1rem;display:flex;align-items:flex-end;font-family:var(--mono);font-size:.54rem;letter-spacing:.24em;text-transform:uppercase;color:var(--silver-dim);line-height:1.7}
.pm-top{padding:1.1rem .8rem;display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center;position:relative;border-left:1px solid var(--line)}
.pm-top.best{background:linear-gradient(180deg,rgba(226,196,142,.18),rgba(226,196,142,.04))}
.pm-top.best::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold-2),var(--gold-deep));box-shadow:0 0 14px rgba(226,196,142,.6)}
.pm-name{font-family:var(--serif);font-size:1.1rem;line-height:1.1}
.pm-top.best .pm-name{color:var(--gold-2)}
.pm-price{font-family:var(--mono);font-size:.78rem;color:var(--silver);font-variant-numeric:tabular-nums}
.pm-top.best .pm-price{color:var(--gold)}
.pm-group{
  grid-column:1/-1;padding:.85rem 1.1rem .5rem;border-top:1px solid var(--line-strong);
  background:rgba(226,196,142,.035);
  font-family:var(--mono);font-size:.54rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep);
}
.pm-label{padding:.75rem 1.1rem;border-top:1px solid var(--line);color:var(--silver);font-size:.84rem;display:flex;align-items:center;flex-wrap:wrap;gap:.4em}
.pm-label.hi{color:var(--ink);font-weight:600}
.pm-cell{padding:.75rem .55rem;border-top:1px solid var(--line);border-left:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-align:center}
.pm-cell.best{background:rgba(226,196,142,.07)}
.pm-cell.hi.best{background:rgba(226,196,142,.12)}
.pm-yes{color:var(--gold);font-size:.95rem;text-shadow:0 0 12px rgba(226,196,142,.5)}
.pm-yes i{font-style:italic;color:var(--silver);font-size:.74rem;margin-left:.35em}
.pm-no{color:var(--silver-dim);opacity:.4}
.pm-txt{color:var(--ink);font-size:.75rem;line-height:1.3}
.pm-cell.best .pm-txt{color:var(--gold-2)}
.pm-cell select{font-size:.74rem;padding:.4rem .5rem;width:100%;max-width:150px}
@media(max-width:760px){
  .pkg-matrix{grid-template-columns:minmax(112px,1.3fr) repeat(3,1fr)}
  .pm-label{padding:.6rem .6rem;font-size:.72rem}
  .pm-corner{padding:.7rem .6rem;font-size:.46rem}
  .pm-name{font-size:.82rem}
  .pm-price{font-size:.62rem}
  .pm-txt{font-size:.6rem}
  .pm-cell{padding:.6rem .25rem}
  .pm-group{padding:.6rem}
}

/* checkout order bump */
.bump{
  display:flex;align-items:center;gap:.9rem;width:100%;padding:1rem 1.55rem;
  border:none;border-top:1px dashed rgba(226,196,142,.45);border-bottom:1px solid var(--line);
  background:rgba(226,196,142,.05);color:var(--ink);font-size:.86rem;cursor:pointer;text-align:left;
  transition:background .3s;
}
.bump:hover{background:rgba(226,196,142,.11)}
.bump b{margin-left:auto;font-family:var(--mono);color:var(--gold);font-weight:400;white-space:nowrap}
.bump .a-check{
  width:21px;height:21px;border-radius:7px;border:1px solid var(--line-strong);flex:none;
  display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#171207;font-weight:700;
  transition:background .25s,border-color .25s;
}
.bump.sel .a-check{background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));border-color:var(--gold)}
.co-sec{padding:1.15rem 1.55rem;border-bottom:1px solid var(--line)}
.share-box{margin:2.6rem auto 0;width:min(600px,100%);text-align:left}
.share-box .shb-l{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:.7rem}
.share-box .shb-row{display:flex;gap:.6rem;flex-wrap:wrap}
.share-box input{flex:1;min-width:220px;font-family:var(--mono);font-size:.76rem;letter-spacing:.02em;color:var(--gold)}
.share-box .btn{padding:.85rem 1.4rem;font-size:.64rem}
.f-nav{display:flex;justify-content:center;gap:1rem;margin-top:2.7rem;flex-wrap:wrap}
.f-err{text-align:center;color:#e5a0a0;font-size:.85rem;min-height:1.4em;margin-top:1rem}
.f-back{background:none;border:none;color:var(--silver-dim);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:color .25s;font-weight:500}
.f-back:hover{color:var(--ink)}


/* searching */
.searching{text-align:center;padding:3rem 0}
.searching .orbit{width:158px;height:158px;margin:0 auto 3.4rem;border-radius:50%;border:1px solid var(--line-strong);position:relative;animation:spin 8s linear infinite}
.searching .orbit::before{content:"";position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle,#fff,rgba(226,196,142,.15));box-shadow:0 0 20px rgba(244,241,233,.95)}
.searching .orbit::after{content:"";position:absolute;inset:30px;border-radius:50%;border:1px solid var(--line)}
.searching .orbit .o2{position:absolute;inset:60px;border-radius:50%;border:1px dashed rgba(244,241,233,.15)}
@keyframes spin{to{transform:rotate(360deg)}}
.searching .msg{font-family:var(--serif);font-size:1.6rem;font-style:italic;color:var(--silver);min-height:2.2em;transition:opacity .4s}

/* reveal — staged cinematic sequence */
.f-reveal{text-align:center}
.f-reveal .found{font-family:var(--mono);font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:1.7rem;animation:fadeUp .7s var(--ease) both}
.f-reveal .rev-name{font-family:var(--serif);font-size:clamp(3rem,10vw,5.6rem);letter-spacing:.15em;text-transform:uppercase;line-height:1}
.rev-ch{display:inline-block;opacity:0;transform:translateY(.35em);animation:chIn .8s var(--ease) forwards;animation-delay:calc(.25s + var(--i)*.05s)}
@keyframes chIn{to{opacity:1;transform:none}}
.f-reveal .rev-sub{color:var(--silver);margin-top:1rem;animation:fadeUp .8s var(--ease) .9s both}
.f-reveal svg{width:min(390px,82vw);margin:2.3rem auto 0;display:block;filter:drop-shadow(0 0 30px rgba(226,196,142,.12))}
.rev-data{display:flex;gap:2.3rem;justify-content:center;flex-wrap:wrap;margin-top:2.3rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;color:var(--silver)}
.rev-data span{animation:fadeUp .7s var(--ease) both}
.rev-data span:nth-child(1){animation-delay:1.3s}
.rev-data span:nth-child(2){animation-delay:1.45s}
.rev-data span:nth-child(3){animation-delay:1.6s}
.rev-data span:nth-child(4){animation-delay:1.75s}
.rev-data b{display:block;color:var(--ink);font-weight:400;margin-top:.32rem;font-size:.8rem}
.f-reveal .f-nav{animation:fadeUp .8s var(--ease) 2.05s both}

/* checkout */
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;width:100%;align-items:start}
@media(max-width:720px){.co-grid{grid-template-columns:1fr}}
.co-box{border:1px solid var(--line);border-radius:var(--r);background:var(--glass);overflow:hidden;box-shadow:var(--light-top);backdrop-filter:blur(12px)}
.co-box .co-h{padding:1.15rem 1.55rem;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--silver-dim)}
.co-box .row{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.55rem;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--silver)}
.co-box .row b{color:var(--ink);font-weight:400;font-variant-numeric:tabular-nums}
.co-box .row.save b{color:var(--good)}
.co-box .row.total{background:rgba(226,196,142,.08);color:var(--ink);border-bottom:none}
.co-box .row.total b{font-family:var(--serif);font-size:1.55rem;color:var(--gold)}
.pay-stack{display:grid;gap:.75rem;padding:1.35rem 1.55rem}
.co-consent{display:flex;align-items:flex-start;gap:.7rem;color:var(--silver);font-size:.7rem;line-height:1.45;text-align:left;cursor:pointer}
.co-consent input{width:1rem;height:1rem;min-width:1rem;margin:.12rem 0 0;accent-color:var(--gold)}
.pay-btn{
  border:1px solid var(--line-strong);border-radius:14px;background:rgba(244,241,233,.05);
  color:var(--ink);font-size:.95rem;font-weight:600;padding:1rem 1.2rem;cursor:pointer;box-shadow:var(--light-top);
  transition:border-color .3s,background .3s,transform .25s var(--ease);
}
.pay-btn:hover{border-color:var(--ink);background:rgba(244,241,233,.1);transform:translateY(-1px)}
.pay-btn.apple{background:#f4f1e9;color:#0b0d14;border-color:#f4f1e9}
.pay-btn.apple:hover{background:#fff}
.co-note{padding:0 1.55rem 1.35rem;color:var(--silver-dim);font-size:.74rem;text-align:center}
.co-trust{display:flex;gap:1.3rem;justify-content:center;flex-wrap:wrap;margin-top:1.7rem;font-size:.74rem;color:var(--silver-dim)}
.co-trust span::before{content:"✓";color:var(--good);margin-right:.5em}

/* success */
.success{text-align:center}
.success .big-check{
  width:74px;height:74px;margin:0 auto 1.8rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:1.7rem;color:var(--good);
  border:1px solid rgba(147,220,171,.4);background:radial-gradient(circle,rgba(147,220,171,.12),transparent 70%);
  box-shadow:0 0 50px rgba(147,220,171,.15);animation:checkIn .8s var(--ease) both;
}
@keyframes checkIn{from{transform:scale(.5);opacity:0}to{transform:none;opacity:1}}
.cross-sell{
  margin:2.8rem auto 0;width:min(540px,100%);border-radius:var(--r);
  padding:1.6rem 1.8rem;text-align:left;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;
  background:linear-gradient(170deg,rgba(226,196,142,.12),rgba(226,196,142,.04)) padding-box,
             linear-gradient(160deg,rgba(226,196,142,.5),rgba(226,196,142,.15)) border-box;
  border:1px solid transparent;box-shadow:var(--light-top);
}
.cross-sell .cs-t{flex:1;min-width:200px}
.cross-sell b{font-size:.96rem}
.cross-sell span{display:block;color:var(--silver);font-size:.8rem;margin-top:.2rem}

/* ============================================================
   STAR PAGE
   ============================================================ */
.sp-hero{min-height:88svh;display:flex;flex-direction:column;justify-content:center;text-align:center;padding-top:6.5rem}
.sp-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(55% 40% at 50% 42%,rgba(30,42,90,.25),transparent 70%)}
.sp-hero .wrap{position:relative}
.sp-hero .sp-pre{font-family:var(--mono);font-size:.62rem;letter-spacing:.42em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:2.2rem}
.sp-hero .sp-name{font-family:var(--serif);font-size:clamp(3.4rem,11vw,7.4rem);letter-spacing:.16em;text-transform:uppercase;line-height:1}
.sp-hero .sp-sub{color:var(--silver);margin-top:1.3rem;font-size:1.05rem}
.sp-hero .sp-date{font-family:var(--mono);font-size:.68rem;letter-spacing:.32em;color:var(--gold);margin-top:1.2rem;text-transform:uppercase}
.sp-hero svg{width:min(430px,85vw);margin:3rem auto 0;filter:drop-shadow(0 0 34px rgba(226,196,142,.12))}
.sp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:1.3rem}
.sp-card{border:1px solid var(--line);border-radius:var(--r);background:var(--glass);backdrop-filter:blur(12px);padding:2rem 1.8rem;box-shadow:var(--light-top)}
.sp-card h4{font-family:var(--mono);font-size:.58rem;letter-spacing:.32em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:1.15rem;font-weight:400}
.sp-card dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem;font-size:.88rem}
.sp-card dt{color:var(--silver)}
.sp-card dd{text-align:right;font-family:var(--mono);font-size:.75rem;letter-spacing:.05em;color:var(--ink)}
.sp-card .story{font-family:var(--serif);font-style:italic;font-size:1.24rem;line-height:1.55}
.sp-share{display:flex;gap:.6rem;flex-wrap:wrap}
.sp-share button{
  border:1px solid var(--line-strong);background:transparent;color:var(--silver);
  font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:.6rem 1.05rem;border-radius:2rem;cursor:pointer;transition:color .25s,border-color .25s,transform .25s var(--ease);
}
.sp-share button:hover{color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}

/* ---------- registry ---------- */
.reg-hero{padding-top:9.5rem;text-align:center}
.reg-search{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:2.6rem}
.reg-search input{width:min(410px,78vw)}
.reg-results{margin-top:2.8rem;display:grid;gap:.85rem;max-width:680px;margin-inline:auto}
.reg-row{
  display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;border:1px solid var(--line);
  border-radius:16px;padding:1.2rem 1.55rem;background:var(--glass);text-align:left;box-shadow:var(--light-top);
  transition:border-color .3s,transform .3s var(--ease);
}
.reg-row:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.reg-row .rname{font-family:var(--serif);font-size:1.28rem;letter-spacing:.08em;min-width:7em}
.reg-row .rmeta{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;color:var(--silver);flex:1}
.reg-row .rmeta b{color:var(--gold);font-weight:400}
.reg-empty{color:var(--silver-dim);text-align:center;font-style:italic;font-family:var(--serif);font-size:1.18rem}

@keyframes popIn{to{opacity:1;transform:none}}

/* ============================================================
   DELIVERABLES — what they actually receive
   ============================================================ */
.deliv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(242px,1fr));gap:1.3rem;margin-top:3.4rem}
.deliv{
  border:1px solid var(--line);border-radius:var(--r);background:var(--glass);backdrop-filter:blur(12px);
  padding:1.9rem 1.7rem 1.8rem;display:flex;flex-direction:column;align-items:center;text-align:center;
  box-shadow:var(--light-top);transition:border-color .35s,transform .35s var(--ease);
}
.deliv:hover{border-color:var(--line-strong);transform:translateY(-4px)}
.deliv .d-view{width:100%;min-height:172px;display:flex;align-items:center;justify-content:center;margin-bottom:1.4rem}
.deliv b{font-size:.96rem;font-weight:600}
.deliv .d-sub{color:var(--silver-dim);font-size:.78rem;margin:.25rem 0 1.2rem}
.deliv .btn{padding:.7rem 1.5rem;font-size:.64rem}
/* mini certificate */
.cert-mock{
  width:min(228px,88%);aspect-ratio:1.414/1;position:relative;border-radius:6px;
  background:linear-gradient(170deg,#0a1020,#060a15);
  border:1px solid rgba(226,196,142,.55);box-shadow:0 18px 44px rgba(0,0,0,.55),var(--light-top);
  padding:1rem .95rem;text-align:left;transform:rotate(-2deg);transition:transform .4s var(--ease);
}
.deliv:hover .cert-mock{transform:rotate(0deg) scale(1.03)}
.cert-mock::before{content:"";position:absolute;inset:5px;border:1px solid rgba(226,196,142,.22);border-radius:3px}
.cert-mock .cm-eyebrow{font-family:var(--mono);font-size:.36rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.cert-mock .cm-title{font-family:var(--sans);font-weight:700;font-size:.5rem;letter-spacing:.24em;color:var(--silver);text-transform:uppercase;margin-top:.3rem}
.cert-mock .cm-name{font-family:var(--serif);font-style:italic;font-size:1.5rem;letter-spacing:.1em;margin-top:.55rem}
.cert-mock .cm-line{font-family:var(--mono);font-size:.4rem;letter-spacing:.12em;color:var(--silver-dim);margin-top:.5rem;line-height:1.8}
.cert-mock .cm-seal{position:absolute;right:.8rem;bottom:.7rem;width:26px;height:26px;border-radius:50%;border:1px solid rgba(226,196,142,.7)}
.cert-mock .cm-seal::before{content:"";position:absolute;inset:4px;border-radius:50%;border:1px solid rgba(226,196,142,.3)}
/* phone wallpaper mock */
.phone-mock{
  width:92px;aspect-ratio:9/19;border-radius:16px;position:relative;overflow:hidden;
  border:1px solid var(--line-strong);
  background:radial-gradient(1.2px 1.2px at 18% 22%,#fff,transparent),
             radial-gradient(1px 1px at 72% 12%,#fff,transparent),
             radial-gradient(1.4px 1.4px at 58% 38%,#e2c48e,transparent),
             radial-gradient(1px 1px at 32% 55%,#fff,transparent),
             radial-gradient(1.1px 1.1px at 80% 64%,#fff,transparent),
             radial-gradient(1px 1px at 45% 80%,#fff,transparent),
             linear-gradient(180deg,#0c1226,#04060c);
  box-shadow:0 16px 40px rgba(0,0,0,.55);transform:rotate(3deg);transition:transform .4s var(--ease);
}
.deliv:hover .phone-mock{transform:rotate(0deg) scale(1.05)}
.phone-mock::after{
  content:"EMMA";position:absolute;left:0;right:0;top:56%;
  font-family:var(--serif);font-size:.62rem;letter-spacing:.28em;text-align:center;color:var(--ink);
}
/* journey orb */
.play-orb{
  width:86px;height:86px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.35rem;color:var(--gold);border:1px solid rgba(226,196,142,.5);
  background:radial-gradient(circle,rgba(226,196,142,.14),transparent 70%);
  box-shadow:0 0 46px rgba(226,196,142,.2);transition:transform .4s var(--ease),box-shadow .4s;
}
.deliv:hover .play-orb{transform:scale(1.09);box-shadow:0 0 70px rgba(226,196,142,.35)}
/* star page mini */
.sp-mini{width:min(210px,88%);border:1px solid var(--line-strong);border-radius:12px;padding:1rem;background:radial-gradient(120% 120% at 50% 0%,rgba(17,25,52,.95),rgba(3,5,9,.97));box-shadow:0 18px 44px rgba(0,0,0,.5)}
.sp-mini svg{width:100%}
.sp-mini .sm-n{font-family:var(--serif);font-size:1rem;letter-spacing:.2em;margin-top:.4rem}
.sp-mini .sm-c{font-family:var(--mono);font-size:.42rem;letter-spacing:.2em;color:var(--gold);margin-top:.25rem}

/* ============================================================
   STAR JOURNEY OVERLAY
   ============================================================ */
.journey{
  position:fixed;inset:0;z-index:96;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;
  background:radial-gradient(75% 60% at 50% 45%,rgba(3,5,9,.25),rgba(3,5,9,.94));
  opacity:0;transition:opacity .8s;pointer-events:none;padding:2rem;
}
.journey.on{opacity:1;pointer-events:auto}
body.journey-on main,body.journey-on header,body.journey-on footer,body.journey-on .sticky-bar{opacity:0;transition:opacity .6s}
.j-txt{
  font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,4.5vw,2.5rem);color:var(--silver);
  text-align:center;opacity:0;transition:opacity .8s;min-height:2em;text-wrap:balance;
}
.j-txt.on{opacity:1}
.j-name{display:block;font-style:normal;font-size:clamp(2.8rem,9vw,5rem);letter-spacing:.15em;text-transform:uppercase;color:var(--ink);line-height:1.05}
.j-date{display:block;font-family:var(--mono);font-style:normal;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:1rem}
.j-chart{width:min(400px,84vw);opacity:0;transition:opacity 1.1s}
.j-chart.on{opacity:1}
.j-chart svg{filter:drop-shadow(0 0 34px rgba(226,196,142,.15))}
.j-close{
  position:fixed;top:1.3rem;right:1.5rem;background:none;border:none;color:var(--silver);
  font-size:1.4rem;cursor:pointer;transition:color .3s;line-height:1;z-index:97;
}
.j-close:hover{color:var(--ink)}

/* ============================================================
   ONE-PAGER (conversion-first home)
   ============================================================ */
section.tight{padding-block:clamp(3.2rem,7vh,5.5rem)}
.hero.compact{min-height:78svh;padding-top:7rem;padding-bottom:3rem}
.hero-demo{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin:2.5rem 0 1.1rem}
.hero-demo input{width:min(330px,70vw);text-align:center;font-size:1.05rem}
.hero-more{display:inline-block;margin:0 0 2.4rem;color:var(--silver-dim);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:1px dotted var(--silver-dim);transition:color .3s,border-color .3s}
.hero-more:hover{color:var(--gold);border-color:var(--gold)}
/* sample tiles above the matrix — what you receive, tap to try */
.kits-row{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2.8rem}
@media(max-width:900px){.kits-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.kits-row{grid-template-columns:repeat(2,1fr)}}
.poster-mock{
  width:78px;aspect-ratio:1/1.414;border-radius:4px;position:relative;
  border:1px solid rgba(226,196,142,.5);
  background:radial-gradient(1px 1px at 24% 18%,#fff,transparent),
             radial-gradient(1.3px 1.3px at 62% 30%,#e2c48e,transparent),
             radial-gradient(1px 1px at 40% 44%,#fff,transparent),
             radial-gradient(1px 1px at 74% 56%,#fff,transparent),
             linear-gradient(180deg,#0b1126,#04060c);
  box-shadow:0 14px 34px rgba(0,0,0,.5);transform:rotate(2deg);transition:transform .4s var(--ease);
}
.kit-tile:hover .poster-mock{transform:rotate(0) scale(1.05)}
.poster-mock::before{content:"";position:absolute;inset:4px;border:1px solid rgba(226,196,142,.22);border-radius:2px}
.poster-mock span{position:absolute;left:0;right:0;bottom:16%;text-align:center;font-family:var(--serif);font-size:.5rem;letter-spacing:.26em;color:var(--ink)}
.poster-mock::after{
  content:"EMMA";position:absolute;left:0;right:0;top:60%;text-align:center;
  font-family:var(--serif);font-size:.5rem;letter-spacing:.2em;color:var(--ink);
}
.kit-tile{
  position:relative;text-align:center;
  border:1px solid var(--line);border-radius:var(--r);background:var(--glass);backdrop-filter:blur(10px);
  padding:2.7rem 1rem 1.1rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.9rem;
  cursor:pointer;box-shadow:var(--light-top);transition:border-color .35s,transform .35s var(--ease);
}
.kit-tile:hover{border-color:rgba(226,196,142,.5);transform:translateY(-4px)}
.kit-tile .kt-l{font-family:var(--mono);font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);line-height:1.7}
.kit-tile .kt-l b{
  display:block;font-family:var(--serif);font-size:1rem;letter-spacing:.02em;
  text-transform:none;color:var(--ink);font-weight:400;margin-bottom:.2rem;
}
/* which packages include this deliverable — answers "where do I get what"
   on the object itself, not in a table somewhere else */
.kt-tag{
  position:absolute;top:.75rem;left:50%;transform:translateX(-50%);white-space:nowrap;
  font-family:var(--mono);font-size:.45rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--silver-dim);border:1px solid var(--line);border-radius:2rem;padding:.24rem .65rem;
  background:rgba(3,5,9,.6);
}
.kt-tag.gold{color:var(--gold);border-color:rgba(226,196,142,.35)}
.kt-tag.best{
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;
  border-color:transparent;font-weight:700;box-shadow:0 2px 12px rgba(226,196,142,.4);
}
.kit-tile .cert-mock{width:min(170px,92%);transform:rotate(-2deg)}
.kit-tile:hover .cert-mock{transform:rotate(0) scale(1.03)}
.kit-tile .cert-mock .cm-name{font-size:1.1rem}
.kit-tile .sp-mini{width:min(160px,92%);padding:.7rem}
.kit-tile .phone-mock{width:74px}
.kit-tile .play-orb{width:72px;height:72px;font-size:1.15rem}
/* try-it links inside the matrix */
.pm-sample{
  background:none;border:none;padding:0;margin-left:.7em;cursor:pointer;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);border-bottom:1px dotted rgba(226,196,142,.5);transition:color .3s;white-space:nowrap;
}
.pm-sample:hover{color:var(--gold-2)}
/* compact how strip */
.how-flow.mini{margin-top:2.6rem}
.how-flow.mini .how-card{padding:1.5rem 1.4rem}
.how-flow.mini .how-card h3{font-size:1.1rem}
.how-flow.mini .how-card p{font-size:.84rem}
/* the twelve experiences as quiet chips */
.x-chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:2.2rem}
.xchip{
  border:1px solid var(--line);border-radius:2rem;padding:.55rem 1.15rem;
  font-size:.8rem;color:var(--silver);text-decoration:none;background:rgba(244,241,233,.02);
  transition:color .3s,border-color .3s,transform .25s var(--ease);
}
.xchip:hover{color:var(--ink);border-color:rgba(226,196,142,.55);transform:translateY(-2px)}


/* ============================================================
   VISUAL LAYER — sky windows, live artwork, cinema
   ============================================================ */
.pk-sky{display:block;width:100%;height:auto;border-radius:12px;margin:1.05rem 0 .2rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 26px rgba(0,0,0,.35)}
.pk.best .pk-sky{box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 34px rgba(0,0,0,.45),0 0 34px rgba(226,196,142,.12)}
/* live-rendered artwork fills the mocks */
.phone-mock,.poster-mock{background-position:center;background-size:cover}
.phone-mock.loaded::after,.poster-mock.loaded span{display:none}
.phone-mock.loaded,.poster-mock.loaded{border-color:rgba(226,196,142,.45)}
.cm-chart{position:absolute;right:.55rem;top:.5rem;width:42%;opacity:.9;pointer-events:none}
.cm-chart svg{display:block}
/* aurora behind the podium */
.pkg-host{position:relative}
.pkg-host::before{
  content:"";position:absolute;inset:-10% -8%;z-index:-1;pointer-events:none;
  background:radial-gradient(58% 55% at 50% 44%,rgba(36,52,108,.4),transparent 70%),
             radial-gradient(30% 36% at 70% 24%,rgba(226,196,142,.09),transparent 70%),
             radial-gradient(26% 30% at 26% 70%,rgba(90,70,130,.14),transparent 70%);
}
/* cinema band */
.cinema{position:relative;padding-block:clamp(3.5rem,8vh,6rem);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(5,8,16,.4);overflow:hidden}
.cinema::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(55% 80% at 50% 50%,rgba(30,44,96,.3),transparent 75%)}
.cine-play{
  position:relative;width:118px;height:118px;margin:2rem auto 0;border-radius:50%;
  border:1px solid rgba(226,196,142,.55);background:radial-gradient(circle,rgba(226,196,142,.16),rgba(226,196,142,.02) 70%);
  color:var(--gold);font-size:1.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 60px rgba(226,196,142,.22);transition:transform .4s var(--ease),box-shadow .4s;
}
.cine-play:hover{transform:scale(1.07);box-shadow:0 0 90px rgba(226,196,142,.4)}
.cine-play .cp-core{transform:translateX(3px)}
.cine-play .cp-ring{position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(226,196,142,.5);animation:cineRipple 2.6s var(--ease) infinite}
.cine-play::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(226,196,142,.5);animation:cineRipple 2.6s var(--ease) 1.3s infinite}
@keyframes cineRipple{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.85);opacity:0}}
.cine-cap{margin-top:1.6rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--silver-dim)}
/* occasion constellations visible by default */
.o3-viz{opacity:.88}


/* deep-space nebula ground — depth behind everything */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221200%22%20height%3D%221200%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.0035%22%20numOctaves%3D%224%22%20seed%3D%2211%22%2F%3E%3CfeColorMatrix%20type%3D%22matrix%22%20values%3D%220%200%200%200%200.075%20%200%200%200%200%200.115%20%200%200%200%200%200.28%20%200.85%200.4%200%200%20-0.38%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%221200%22%20height%3D%221200%22%20filter%3D%22url%28%23n%29%22%2F%3E%3C%2Fsvg%3E");background-size:cover;background-position:center;
  opacity:.55;mix-blend-mode:screen;
}
.hero-top .lead{text-wrap:balance;max-width:46em;margin-inline:auto}

/* staged lift — calm shared bottom edge, rising top edge */
.pk-premium{transform:translateY(-9px)}
.pk.best{transform:translateY(-20px)}
.pk-premium:hover{transform:translateY(-14px)}
.pk.best:hover{transform:translateY(-25px)}
@media(max-width:880px){.pk-premium,.pk.best,.pk-premium:hover,.pk.best:hover{transform:none}}
.pk-list{margin-top:.2rem}
.pk .pk-cta{margin-top:1.2rem}
.pk-note{margin-bottom:auto}
.pk-premium{border-color:rgba(226,196,142,.22)}

/* star page keepsakes + grand chart */
.sp-keeps{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.sp-keeps .btn{width:100%;padding:.72rem .4rem;font-size:.58rem;letter-spacing:.12em;white-space:nowrap;background:transparent}
.sp-more{width:100%;margin-top:.6rem;padding:.72rem .4rem;font-size:.58rem;letter-spacing:.12em}
.sp-hero svg{width:min(680px,92vw);filter:drop-shadow(0 0 44px rgba(226,196,142,.16))}
.sp-hero .sp-name{text-shadow:0 0 60px rgba(226,196,142,.25)}
.sp-hero .sp-pre{color:var(--gold);opacity:.8}

/* mobile: podium stacks (best first), matrix scrolls in place */
.pkg-detail{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pkg-detail .pkg-matrix{min-width:680px}
@media(max-width:640px){
  .pkg-podium{grid-template-columns:1fr!important;gap:1.6rem!important;align-items:stretch!important;padding-top:1.6rem}
  .pk.best{order:-1}
  .pk-premium,.pk.best,.pk-premium:hover,.pk.best:hover{transform:none!important}
  .pk,.pk.best{text-align:left!important;align-items:stretch!important;padding:1.7rem 1.4rem!important;border-radius:18px!important}
  .pk .pk-cta,.pk.best .pk-cta{font-size:.68rem!important;letter-spacing:.16em!important;padding:.95rem!important}
  .hero-top{padding-inline:.2rem}
}

/* capture mode — stable full-page screenshots */
html.cap .hero{min-height:auto!important;padding-top:7rem!important;padding-bottom:4rem!important}
html.cap .rv,html.cap .hi,html.cap .pop,html.cap .occ3,html.cap .pkg-card{opacity:1!important;transform:none!important;transition:none!important}
html.cap *,html.cap *::before,html.cap *::after{animation:none!important;transition:none!important}
html.cap .sp-hero{min-height:auto!important;padding-top:7rem!important}
html.cap .funnel-shell{min-height:auto!important}
html.cap .draw{stroke-dashoffset:0!important}
html.cap .rev-ch{opacity:1!important;transform:none!important}
html.cap section{padding-block:4.5rem!important}
html.cap .final{min-height:auto!important}
html.cap .cinema{padding-block:4.5rem!important}

/* ============================================================
   V4 — mockup layouts: mast, live bar, showcase, star page, registry
   ============================================================ */
:root{--blue:#3b6fe0;--blue-2:#6f96ec;--paper:#f1ead8;--paper-ink:#1a2542}
/* --- ceremonial mast --- */
.mast{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:1rem;max-width:1280px;margin:0 auto;padding:1.6rem 1.8rem 0}
.mast-l,.mast-r{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--silver-dim);line-height:1.9}
.mast-r{text-align:right;color:var(--gold);opacity:.75}
.mast-c{text-align:center;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:.15rem}
.mast-star{color:var(--gold);font-size:1rem;text-shadow:0 0 18px rgba(226,196,142,.8)}
.mast-word{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,3.4vw,2.7rem);letter-spacing:.42em;margin-right:-.42em}
.mast-sub{font-family:var(--mono);font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
@media(max-width:720px){.mast-l,.mast-r{display:none}.mast{grid-template-columns:1fr;padding-top:1.2rem}}
.hero .hero-top h1{margin-top:1.6rem}
/* --- podium centre-stage (mockup) --- */
.pkg-podium{grid-template-columns:1fr 1.24fr 1fr;align-items:stretch;gap:1.2rem}
.pk{align-items:center;text-align:center}
.pk-name{font-size:1.35rem;letter-spacing:.2em;text-transform:uppercase;font-family:var(--serif)}
.pk.best .pk-name{font-size:1.7rem;color:var(--ink)}
.pk-priceline{justify-content:center;margin:.4rem 0 .9rem}
.pk-price b{color:var(--gold-2)}
.pk .pk-sky{margin:.2rem 0 1rem}
.pk-list{width:100%;text-align:left;border-top:none;padding-top:.2rem}
.pk-list li{font-size:.88rem;padding:.38rem 0}
.pk-list li b{
  width:19px;height:19px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;font-size:.6rem;font-weight:700;
  text-shadow:none;box-shadow:0 1px 6px rgba(226,196,142,.4);transform:translateY(2px);
}
/* --- live bar --- */
.live-bar{
  display:flex;align-items:center;gap:1rem;max-width:1200px;margin:0 auto;
  border:1px solid var(--line);border-radius:14px;background:rgba(8,12,24,.7);backdrop-filter:blur(10px);
  padding:.75rem 1.3rem;position:relative;z-index:1;
}
.lb-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);animation:blink 2.2s infinite}
.lb-live{font-family:var(--mono);font-size:.62rem;letter-spacing:.26em;color:var(--gold);font-weight:600}
.lb-t{font-size:.88rem;color:var(--silver);transition:opacity .35s}
.lb-t b{color:var(--ink);font-weight:600}
.lb-deco{margin-left:auto;color:var(--silver-dim);letter-spacing:.5em;font-size:.7rem}
/* --- made panel (keepsake showcase) --- */
.made-panel{
  border:1px solid var(--line-strong);border-radius:calc(var(--r) + 6px);
  background:rgba(7,11,22,.6);backdrop-filter:blur(14px);box-shadow:0 34px 90px rgba(0,0,0,.45),var(--light-top);
  padding:clamp(1.8rem,4vw,3rem);text-align:center;margin-top:2.4rem;
}
.made-h{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.made-s{color:var(--silver);margin-top:.4rem}
.made-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,3vw,2.4rem);margin-top:2.2rem;align-items:end}
@media(max-width:860px){.made-row{grid-template-columns:1fr;max-width:400px;margin-inline:auto}}
.mk-card{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:0}
.mk-l{font-family:var(--mono);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--silver)}
.mk-try{
  border:1px solid rgba(226,196,142,.5);border-radius:10px;background:transparent;color:var(--gold);
  font-size:.74rem;letter-spacing:.08em;padding:.6rem 1.6rem;cursor:pointer;transition:background .3s,color .3s;
}
.mk-try:hover{background:var(--gold-soft);color:var(--ink)}
/* parchment certificate preview */
.cert-lite{
  width:min(300px,100%);aspect-ratio:1/1.32;position:relative;border-radius:4px;
  background:linear-gradient(175deg,#f4eeda,#e9e0c6);color:var(--paper-ink);
  box-shadow:0 26px 60px rgba(0,0,0,.55),inset 0 0 40px rgba(160,140,90,.18);
  padding:9% 8%;text-align:center;
}
.cert-lite::before{content:"";position:absolute;inset:9px;border:1px solid rgba(140,110,55,.55);border-radius:2px}
.cert-lite::after{content:"";position:absolute;inset:14px;border:1px solid rgba(140,110,55,.28);border-radius:2px}
.cl-head{font-family:var(--serif);font-size:1rem;letter-spacing:.4em;text-transform:uppercase;margin-right:-.4em}
.cl-head span{display:block;font-family:var(--sans);font-size:.5rem;letter-spacing:.16em;color:#6b6350;margin-top:.7em;text-transform:none;font-style:italic}
.cl-name{font-family:var(--serif);font-size:clamp(1.5rem,2.2vw,1.9rem);letter-spacing:.18em;text-transform:uppercase;margin-top:.85rem}
.cl-for{font-family:var(--serif);font-style:italic;font-size:.78rem;color:#4c4636;margin-top:.5rem}
.cl-date{font-size:.68rem;color:#6b6350;margin-top:.3rem}
.cl-id{font-size:.5rem;letter-spacing:.1em;color:#6b6350;margin-top:.8rem}
.cl-seal{
  position:absolute;left:50%;transform:translateX(-50%);bottom:7%;width:44px;height:44px;border-radius:50%;
  background:radial-gradient(circle at 40% 35%,#27355c,#141d38);box-shadow:0 3px 10px rgba(0,0,0,.35);
}
.cl-seal::before{content:"";position:absolute;inset:4px;border-radius:50%;border:1px solid rgba(214,186,120,.8)}
.cl-seal::after{content:"✦";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#d6ba78;font-size:.8rem}
/* phone + framed poster with real art */
.mk-phone{
  width:min(190px,60vw);aspect-ratio:9/19;border-radius:26px;padding:8px;position:relative;
  background:linear-gradient(160deg,#2a3040,#0c0f18);box-shadow:0 26px 60px rgba(0,0,0,.55),inset 0 1px 1px rgba(255,255,255,.14);
}
.mk-phone::before{content:"";position:absolute;top:14px;left:50%;transform:translateX(-50%);width:34%;height:9px;border-radius:6px;background:#05070d;z-index:2}
.mk-phone .mk-art{width:100%;height:100%;border-radius:19px;background:#0a1020 center/cover}
.mk-frame{
  width:min(240px,72vw);aspect-ratio:1/1.414;background:linear-gradient(160deg,#b9bcc4,#7e838e);
  padding:10px;box-shadow:0 26px 60px rgba(0,0,0,.55);position:relative;
}
.mk-frame::before{content:"";position:absolute;inset:10px;background:#efeee9;box-shadow:inset 0 0 8px rgba(0,0,0,.2)}
.mk-frame .mk-art{position:absolute;inset:26px;background:#0a1020 center/cover;box-shadow:0 2px 10px rgba(0,0,0,.35)}
.mk-art{transition:opacity .6s;opacity:.35}
.mk-art.loaded{opacity:1}
.made-f{margin-top:2rem;color:var(--silver-dim);font-size:.82rem}
/* round download chip on star page keepsakes */
.dlc{
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(226,196,142,.55);background:rgba(226,196,142,.08);
  color:var(--gold);font-size:1.05rem;cursor:pointer;transition:background .3s,transform .3s var(--ease);
}
.dlc:hover{background:var(--gold-soft);transform:translateY(-2px)}

/* ============================================================
   STAR PAGE V2
   ============================================================ */
.s2-hero{position:relative;padding:6.5rem 1.5rem 2.5rem;min-height:78svh;display:flex;align-items:center}
.s2-grid{display:grid;grid-template-columns:minmax(300px,430px) 1fr;gap:2.5rem;align-items:center;position:relative;width:100%}
@media(max-width:960px){.s2-grid{grid-template-columns:1fr}}
.s2-eyebrow{font-family:var(--mono);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);line-height:2}
.s2-eyebrow b{color:var(--ink);font-size:.78rem;letter-spacing:.42em}
.s2-name{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,7.5vw,5.6rem);letter-spacing:.12em;text-transform:uppercase;line-height:1;margin-top:.6rem;text-shadow:0 0 60px rgba(226,196,142,.22)}
.s2-sub{font-family:var(--serif);font-size:clamp(1.05rem,2vw,1.4rem);color:var(--gold-2);margin-top:.7rem}
.s2-meta{display:flex;align-items:center;gap:1.1rem;margin:1.5rem 0 1.9rem;color:var(--ink);font-size:.88rem}
.s2-mi{display:inline-flex;align-items:center;gap:.6em;line-height:1.25}
.s2-mi svg{width:17px;height:17px;color:var(--gold);flex:none}
.s2-mi .mono{font-size:.74rem;color:var(--ink)}
.s2-div{width:1px;height:30px;background:var(--line-strong)}
.s2-chart-wrap{position:relative}
.s2-chart svg{width:100%;height:auto;filter:drop-shadow(0 0 40px rgba(226,196,142,.14))}
.s2-coords{
  display:flex;gap:1rem;align-items:baseline;justify-content:center;flex-wrap:wrap;margin-top:.6rem;
  padding:.7rem 1.2rem;border-inline:1px solid var(--line-strong);position:relative;color:var(--silver);
}
.s2-coords::before,.s2-coords::after{content:"";position:absolute;width:12px;height:1px;background:var(--line-strong);top:0}
.s2-coords::before{left:0}.s2-coords::after{right:0}
.s2-coords .mono{font-size:.72rem;letter-spacing:.1em}
.s2-coords b{color:var(--ink);font-weight:400}
.s2-coords em{font-size:.58rem;letter-spacing:.22em;color:var(--silver-dim);width:100%;text-align:center;font-style:normal}
.s2-cdiv{color:var(--silver-dim)}
.s2-const{
  position:absolute;right:0;top:0;width:230px;padding:1.2rem 1.3rem;
  border:1px solid var(--line);border-radius:14px;background:rgba(6,10,20,.66);backdrop-filter:blur(10px);
}
@media(max-width:1180px){.s2-const{position:static;width:auto;max-width:430px}}
.s2-const h3{font-family:var(--sans);font-weight:600;font-size:.86rem;letter-spacing:.3em}
.s2-alias{color:var(--silver);font-size:.8rem;margin-top:.15rem}
.s2-const hr{border:0;border-top:1px solid var(--line);margin:.7rem 0}
.s2-const p{color:var(--silver);font-size:.78rem;line-height:1.6}
/* data strip */
.s2-strip-wrap{padding:0 1.5rem 1rem}
.s2-strip{display:grid;grid-template-columns:1.25fr 1.25fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;max-width:var(--max);margin:0 auto}
@media(max-width:1020px){.s2-strip{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.s2-strip{grid-template-columns:1fr}}
.s2-card{background:rgba(6,10,20,.8);padding:1.35rem 1.5rem}
.s2-card h4{font-family:var(--mono);font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;font-weight:400}
.s2-two{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.2rem}
.s2-card .k{font-size:.68rem;color:var(--silver-dim);letter-spacing:.06em}
.s2-card .v{font-size:.8rem;color:var(--ink);margin-top:.2rem;letter-spacing:.04em}
.s2-note{font-size:.74rem;color:var(--silver);margin-top:1rem;line-height:1.6}
.s2-note a{color:var(--blue-2);text-decoration:none}
.s2-share{display:flex;gap:.6rem;flex-wrap:wrap}
.s2-share button{
  display:flex;flex-direction:column;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;
  color:var(--silver);font-size:.56rem;letter-spacing:.04em;transition:color .3s;
}
.s2-share button span{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;
  font-size:.95rem;color:var(--ink);transition:border-color .3s,background .3s;
}
.s2-share button:hover{color:var(--ink)}
.s2-share button:hover span{border-color:var(--gold);background:var(--gold-soft)}
.s2-keep-t{font-size:.8rem;color:var(--silver);line-height:1.6}
.s2-keep-l{display:inline-block;margin-top:.8rem;color:var(--blue-2);font-size:.8rem;text-decoration:none}
/* story + keepsakes */
.s2-story{display:grid;grid-template-columns:minmax(240px,330px) 1fr;gap:2.4rem;align-items:stretch;margin-bottom:3rem}
@media(max-width:820px){.s2-story{grid-template-columns:1fr}}
.s2-vista{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);min-height:250px}
.s2-vista svg{width:100%;height:100%;display:block}
.s2-ded h2{font-size:clamp(2rem,4.4vw,3.1rem);margin:.5rem 0 1.1rem}
.s2-ded h2::after{content:"";display:block;width:56px;height:2px;background:var(--gold-deep);margin-top:.9rem}
.s2-ded-txt{color:var(--silver);font-size:1.02rem;max-width:34em;line-height:1.8}
.s2-ded-by{color:var(--gold-2);margin-top:1.2rem;font-family:var(--serif);font-size:1.05rem}
.s2-keeps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,3vw,2.2rem);align-items:end}
@media(max-width:860px){.s2-keeps{grid-template-columns:1fr;max-width:380px;margin-inline:auto}}
.s2-keeps.s2-keeps--duo{grid-template-columns:repeat(2,minmax(0,300px));justify-content:center}
@media(max-width:860px){.s2-keeps.s2-keeps--duo{grid-template-columns:1fr}}
.s2-tierline{
  display:inline-block;margin:.5rem 0 0;font-family:var(--mono);font-size:.58rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--silver);border:1px solid var(--line-strong);
  border-radius:999px;padding:.38rem .85rem;
}
.s2-tierline--gold{color:var(--gold);border-color:rgba(226,196,142,.45);box-shadow:0 0 18px rgba(226,196,142,.14)}
.s2-keep{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin:0;position:relative}
.s2-keep .cert-lite{width:min(260px,88%)}
/* Emma's example page shows her mock photography in place of the live previews */
.s2-keep-photo{
  display:block;width:min(260px,88%);aspect-ratio:3/4;object-fit:cover;border-radius:14px;
  border:1px solid rgba(244,241,233,.12);box-shadow:0 14px 34px rgba(0,0,0,.45);
}
.s2-keep figcaption{text-align:center}
.s2-keep figcaption b{display:block;font-size:.92rem}
.s2-keep figcaption span{font-size:.7rem;color:var(--silver-dim);font-family:var(--mono);letter-spacing:.08em}
.s2-legal{text-align:center;color:var(--silver-dim);font-size:.76rem;margin-top:2.6rem}

/* ============================================================
   REGISTRY INDEX V2
   ============================================================ */
.reg-body header{background:rgba(3,5,9,.7);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.reg-tabs{gap:1.4rem}
.reg-tabs .rt{
  display:inline-flex;flex-direction:column;align-items:center;gap:.3rem;text-decoration:none;
  color:var(--silver);font-size:.68rem;letter-spacing:.08em;padding-bottom:.35rem;border-bottom:2px solid transparent;
}
.reg-tabs .rt i{font-style:normal;font-size:1rem;opacity:.9}
.reg-tabs .rt.on{color:var(--ink);border-bottom-color:var(--blue-2)}
.reg2{padding-top:6.5rem;position:relative;z-index:1}
.reg2-head{text-align:center;margin-bottom:2.2rem}
.reg2-head h1{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,4.2vw,3rem);letter-spacing:.3em;margin-right:-.3em}
.reg2-sub{color:var(--silver);font-size:.9rem;margin-top:.5rem}
.reg2-star{color:var(--gold);margin-top:.7rem;text-shadow:0 0 14px rgba(226,196,142,.8)}
.reg2-layout{display:grid;grid-template-columns:1fr minmax(300px,390px);gap:1.4rem;align-items:start}
@media(max-width:1060px){.reg2-layout{grid-template-columns:1fr}}
.reg2-panel{border:1px solid var(--line);border-radius:16px;background:rgba(7,11,22,.72);backdrop-filter:blur(10px);padding:1.3rem 1.5rem}
.reg2-panel .k{font-family:var(--mono);font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:.9rem}
.reg2-controls{display:flex;gap:.8rem;flex-wrap:wrap;align-items:stretch}
.rm-toggle{display:flex;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden}
.rm-btn{
  border:none;background:transparent;color:var(--silver);font-size:.82rem;padding:.85rem 1.2rem;cursor:pointer;
  display:inline-flex;align-items:center;gap:.5em;transition:background .3s,color .3s;
}
.rm-btn i{font-style:normal;opacity:.8}
.rm-btn.on{background:rgba(59,111,224,.16);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(111,150,236,.6);border-radius:11px}
.rq-wrap{flex:1;min-width:220px;position:relative}
.rq-wrap .rq-ic{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--silver-dim)}
#regQ{width:100%;padding-left:2.5rem}
.btn.reg-blue{
  background:linear-gradient(135deg,#4c7ceb,#3159c2);color:#eef2ff;border:1px solid rgba(111,150,236,.6);
  border-radius:12px;padding:.85rem 1.6rem;font-size:.72rem;box-shadow:0 6px 22px rgba(59,111,224,.35);
}
.btn.reg-blue:hover{box-shadow:0 8px 30px rgba(59,111,224,.5);transform:translateY(-1px)}
.reg2-hint{color:var(--silver-dim);font-size:.76rem;margin-top:.8rem}
.reg2-meta{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--silver);font-size:.82rem;margin:1.2rem .2rem .7rem}
.reg2-tablewrap{border:1px solid var(--line);border-radius:16px;overflow:auto;background:rgba(6,10,20,.72);backdrop-filter:blur(8px)}
.reg2-table{width:100%;border-collapse:collapse;min-width:720px}
.reg2-table th{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--silver);
  text-align:left;padding:.95rem 1rem;border-bottom:1px solid var(--line-strong);cursor:pointer;white-space:nowrap;
}
.reg2-table th i{font-style:normal;opacity:.5}
.reg2-table td{padding:.9rem 1rem;border-bottom:1px solid var(--line);font-size:.86rem;color:var(--ink);white-space:nowrap}
.reg2-table td.mono{font-size:.74rem;letter-spacing:.06em;color:var(--silver)}
.reg2-table tr[data-id]{cursor:pointer;transition:background .25s}
.reg2-table tr[data-id]:hover{background:rgba(59,111,224,.07)}
.reg2-table tr.sel{background:rgba(59,111,224,.14);box-shadow:inset 0 0 0 1px rgba(111,150,236,.5)}
.reg2-table tr.sel .rg-name{color:#dfe8ff;font-weight:600}
.rg-fav .fav{background:none;border:none;color:var(--silver-dim);cursor:pointer;font-size:.95rem}
.rg-fav .fav.on{color:var(--gold)}
.pill{font-size:.7rem;padding:.28rem .7rem;border-radius:2rem;letter-spacing:.03em}
.pill.public{color:#7fd8e8;background:rgba(97,200,220,.12);border:1px solid rgba(97,200,220,.35)}
.pill.review{color:var(--gold-2);background:rgba(226,196,142,.1);border:1px solid rgba(226,196,142,.4)}
.pill::before{content:"●";font-size:.5rem;margin-right:.5em;vertical-align:1px}
.rg-empty{text-align:center;color:var(--silver-dim);font-style:italic;padding:2rem!important}
.reg2-pages{display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:1.1rem}
.reg2-pages button{width:32px;height:32px;border-radius:9px;border:1px solid var(--line-strong);background:transparent;color:var(--silver);cursor:pointer}
.reg2-pages button:disabled{opacity:.3;cursor:not-allowed}
.reg2-pages .cur{width:32px;height:32px;border-radius:9px;border:1px solid rgba(111,150,236,.6);background:rgba(59,111,224,.16);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:.8rem}
/* detail panel */
.reg2-detail{
  border:1px solid var(--line-strong);border-radius:18px;background:rgba(8,12,26,.85);backdrop-filter:blur(14px);
  padding:1.5rem 1.6rem;box-shadow:0 30px 80px rgba(0,0,0,.45),var(--light-top);position:sticky;top:5.5rem;
}
.rd-k{font-family:var(--mono);font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--silver-dim);margin-bottom:.35rem}
.rd-name{font-family:var(--serif);font-weight:300;font-size:1.9rem}
.rd-id{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;color:var(--blue-2);margin-top:.2rem}
.rd-sep{text-align:center;color:var(--gold);margin:1rem 0;position:relative}
.rd-sep::before,.rd-sep::after{content:"";position:absolute;top:50%;width:38%;height:1px;background:var(--line)}
.rd-sep::before{left:0}.rd-sep::after{right:0}
.rd-v{font-size:.85rem;color:var(--ink);line-height:1.55}
.rd-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem 1.2rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
.rd-ded-t{font-family:var(--serif);font-size:1.6rem;color:var(--gold-2);text-align:center}
.rd-ded{text-align:center;color:var(--gold);opacity:.8;margin:.15rem 0}
.rd-ded-q{font-family:var(--serif);font-style:italic;color:var(--silver);text-align:center;font-size:.92rem;line-height:1.7;max-width:26em;margin:0 auto}
.rd-sky{display:grid;grid-template-columns:1fr 86px;gap:1rem;align-items:center;margin-top:.6rem}
.rd-map{border:1px solid var(--line);border-radius:12px;background:rgba(4,7,14,.8);padding:.5rem}
.rd-map svg{width:100%;height:auto}
.rd-side{text-align:center}
.rd-compass{width:56px;height:56px;margin:0 auto .6rem;display:block}
.rd-dim{color:var(--silver-dim);font-size:.72rem}
.btn.reg-cta{
  display:flex;width:100%;margin-top:1.3rem;justify-content:center;
  background:linear-gradient(135deg,#4c7ceb,#3159c2);color:#eef2ff;border-radius:12px;
  border:1px solid rgba(111,150,236,.6);padding:.95rem;font-size:.72rem;box-shadow:0 6px 22px rgba(59,111,224,.35);
}
.btn.reg-cta:hover{box-shadow:0 8px 30px rgba(59,111,224,.5)}
.rd-created{text-align:center;color:var(--silver-dim);font-size:.72rem;margin-top:.8rem;font-style:italic}
.rd-priv{
  text-align:center;color:var(--silver);font-size:.8rem;margin-top:1.4rem;
  border:1px dashed var(--line-strong);border-radius:12px;padding:.85rem 1rem;
}
/* trust footer */
.reg2-trust{border-top:1px solid var(--line);background:rgba(4,6,12,.8);margin-top:3rem;padding:2.2rem 1.5rem;position:relative;z-index:1}
.reg2-trust-in{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:start}
@media(max-width:900px){.reg2-trust-in{grid-template-columns:1fr}}
.rt-main{display:flex;gap:1rem}
.rt-main b{font-size:.95rem}
.rt-main p{color:var(--silver);font-size:.82rem;margin-top:.35rem;line-height:1.65;font-style:italic}
.rt-ic{
  width:34px;height:34px;flex:none;border-radius:50%;border:1px solid var(--line-strong);
  display:inline-flex;align-items:center;justify-content:center;color:var(--silver);font-size:.9rem;
}
.rt-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:560px){.rt-cols{grid-template-columns:1fr}}
.rt-cols>div{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;align-items:center}
.rt-cols .rt-ic{grid-row:span 2}
.rt-cols b{font-size:.85rem}
.rt-cols p{grid-column:2;color:var(--silver-dim);font-size:.74rem}
html.cap .s2-hero{min-height:auto!important;padding-top:6.5rem!important}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .rv,.hi{opacity:1;transform:none}
  .ticker{animation:none}
  body::after{animation:none}
  .rev-ch{opacity:1;transform:none}
}

/* Verified-service states */
.co-capability{margin:.7rem 0 0;color:var(--muted);font-size:.72rem;line-height:1.45}
.pay-btn:disabled{cursor:not-allowed;filter:grayscale(.55);opacity:.58;transform:none!important}
.manage-box{border-color:rgba(226,196,142,.4);background:rgba(226,196,142,.055)}
.manage-box .shb-l{color:var(--gold)}
.s2-load-error{min-height:70vh;display:grid;place-content:center;text-align:center;gap:1rem;padding:4rem 1.5rem}
.s2-load-error h1{font-size:clamp(2rem,6vw,4rem);max-width:760px}
.s2-load-error p{color:var(--muted);max-width:600px;margin-inline:auto}
.s2-load-error .btn{justify-self:center}

/* ============================================================
   REDESIGN v6 — sections supporting the one-pager
   ============================================================ */

/* section heads: title left, supporting line right — never a centred column of prose */
.sec-head{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:end;margin-bottom:2.6rem;text-align:left}
.sec-head .lead{margin:0 0 .5rem;max-width:32em}
@media(max-width:820px){.sec-head{grid-template-columns:1fr;gap:1.2rem}}

/* ---------- the shareable page: our differentiator ---------- */
.page-band{
  background:linear-gradient(180deg,transparent,rgba(10,16,34,.55) 18%,rgba(10,16,34,.55) 82%,transparent);
  border-block:1px solid var(--line);
}
.page-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,5rem);align-items:center}
@media(max-width:900px){.page-split{grid-template-columns:1fr;gap:3rem}}
.page-copy h2{font-size:clamp(2rem,4.4vw,3.3rem)}
.page-list{list-style:none;margin:1.8rem 0 2.2rem;display:flex;flex-direction:column;gap:.6rem}
.page-list li{display:flex;gap:.75em;font-size:.92rem;color:var(--ink);align-items:baseline;line-height:1.5}
.page-list li b{color:var(--gold);font-weight:400;font-size:.8rem;flex-shrink:0}
.gold-t{color:var(--gold);font-weight:600}
.page-ctas{display:flex;gap:.8rem;flex-wrap:wrap}

/* browser frame — makes the link feel like a real destination */
.browser{
  border:1px solid var(--line-strong);border-radius:14px;overflow:hidden;
  background:rgba(4,7,14,.9);box-shadow:0 40px 100px rgba(0,0,0,.6),var(--light-top);
}
.br-bar{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem;background:rgba(17,25,52,.75);border-bottom:1px solid var(--line)}
.br-dots{display:flex;gap:.34rem;flex-shrink:0}
.br-dots i{width:8px;height:8px;border-radius:50%;background:var(--silver-dim);opacity:.5}
.br-url{
  flex:1;min-width:0;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--silver);
  background:rgba(3,5,9,.7);border:1px solid var(--line);border-radius:2rem;padding:.4rem .9rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.br-url b{color:var(--gold);font-weight:400}
.br-copy{
  flex-shrink:0;background:none;border:1px solid rgba(226,196,142,.5);color:var(--gold);cursor:pointer;
  font-family:var(--mono);font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;
  padding:.42rem .9rem;border-radius:2rem;transition:background .3s,color .3s;
}
.br-copy:hover{background:var(--gold-soft);color:var(--ink)}
.br-body{padding:2rem 1.6rem 1.8rem;text-align:center;cursor:pointer;background:radial-gradient(130% 90% at 50% 0%,rgba(17,25,52,.9),rgba(3,5,9,.98))}
.brb-pre{font-family:var(--mono);font-size:.46rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.brb-name{font-family:var(--serif);font-size:clamp(2.2rem,5vw,3.1rem);font-weight:300;letter-spacing:.08em;margin-top:.5rem;line-height:1}
.brb-date{font-family:var(--mono);font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--silver);margin-top:.5rem}
.brb-viz{margin:.9rem auto .3rem;max-width:290px}
.brb-viz svg{width:100%}
.brb-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1rem;text-align:left}
.brb-grid span{
  display:flex;flex-direction:column;gap:.18rem;
  font-family:var(--mono);font-size:.44rem;letter-spacing:.18em;text-transform:uppercase;color:var(--silver-dim);
  border-top:1px solid var(--line);padding-top:.45rem;
}
.brb-grid b{font-family:var(--sans);font-size:.7rem;letter-spacing:.02em;text-transform:none;color:var(--ink);font-weight:500}
.brb-story{
  font-family:var(--serif);font-style:italic;font-size:.9rem;color:var(--silver);
  margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line);line-height:1.6;
}
.page-cap{
  text-align:center;margin-top:1rem;
  font-family:var(--mono);font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;color:var(--silver-dim);
}

/* ---------- proof strip ---------- */
.proof-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;
  background:var(--line);margin-bottom:3rem;
}
.ps-item{
  display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:1.7rem 1rem;
  background:rgba(6,10,20,.7);text-align:center;
}
.ps-item b{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.3rem);font-weight:300;color:var(--gold-2);line-height:1}
.ps-item b i{font-style:normal;font-size:.5em;color:var(--silver-dim)}
.ps-item span{font-family:var(--mono);font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--silver)}
@media(max-width:700px){.proof-strip{grid-template-columns:1fr 1fr}}

/* ---------- final CTA ---------- */
.final{min-height:60vh}
.final-price{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2.4rem}
.final-note{
  margin-top:1.4rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--silver-dim);
}

/* ---------- footer package emphasis ---------- */
.fl-best{
  font-family:var(--mono);font-size:.44rem;letter-spacing:.14em;text-transform:uppercase;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;
  padding:.14rem .45rem;border-radius:2rem;margin-left:.4em;font-weight:700;
}

/* ---------- sticky bar carries the anchor price ---------- */
.sticky-bar .sb-txt s{color:var(--silver-dim);margin-right:.4em}

/* ============================================================
   V15 — photographic layer: story hero, concept cards, cinema,
   keepsake photography, navy certificate
   ============================================================ */

/* --- story hero — the invitation --- */
.story-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;overflow:clip;z-index:1}
.sh-bg{
  position:absolute;inset:0;z-index:-1;background:#05070f url("img/hero.jpg") center 32%/cover no-repeat;
}
.sh-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(3,5,9,.62),rgba(3,5,9,.1) 26%,rgba(3,5,9,.06) 52%,rgba(3,5,9,.55) 82%,var(--space) 100%),
             radial-gradient(70% 55% at 50% 88%,rgba(3,5,9,.55),transparent 70%);
}
.story-hero .mast{position:relative;z-index:2}
.sh-content{margin:auto;text-align:center;position:relative;z-index:2;padding:3.5rem 1.5rem 5.5rem;width:100%}
.sh-kicker{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);
  text-shadow:0 1px 18px rgba(0,0,0,.9);margin-bottom:1.6rem;
}
.story-hero h1{
  font-size:clamp(2.7rem,6.2vw,5.1rem);line-height:1.03;letter-spacing:-.01em;
  text-shadow:0 2px 18px rgba(0,0,0,.65),0 12px 60px rgba(0,0,0,.8);
}
.story-hero h1 .em{color:var(--gold-2)}
.sh-lead{
  max-width:40em;margin:1.5rem auto 0;font-size:clamp(.98rem,1.4vw,1.16rem);line-height:1.7;
  color:rgba(244,241,233,.94);text-shadow:0 1px 14px rgba(0,0,0,.85),0 6px 40px rgba(0,0,0,.9);
  text-wrap:balance;
}
.sh-ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2.4rem}
.sh-ctas .btn{box-shadow:0 14px 44px rgba(0,0,0,.55)}
.sh-ctas .btn.ghost{background:rgba(5,8,16,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sh-note{
  margin-top:1.4rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--silver);text-shadow:0 1px 12px rgba(0,0,0,.9);
}
.story-hero .scroll-hint{z-index:2;text-decoration:none;color:var(--ink);text-shadow:0 1px 10px rgba(0,0,0,.9)}
@media(max-width:720px){
  .story-hero{min-height:96svh}
  .sh-content{padding-bottom:4.5rem}
}

/* --- packages band (podium moved out of the hero) --- */
.pkg-band{position:relative;text-align:center;padding-top:clamp(4rem,9vh,6.5rem);padding-bottom:2.4rem}
.pkg-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(58% 46% at 50% 20%,rgba(30,42,90,.28),transparent 72%);
}
.pkg-band .wrap{position:relative}
.pkg-band .hero-top{max-width:50rem;margin:0 auto 2.4rem}
.pkg-band .hero-top h2{font-size:clamp(2.05rem,4.3vw,3.3rem);letter-spacing:-.015em}

/* --- package concept photographs --- */
.pk-photo{
  display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;margin:.2rem 0 1.05rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 26px rgba(0,0,0,.4);
  border:1px solid rgba(244,241,233,.1);
}
.pk.best .pk-photo{border-color:rgba(226,196,142,.3);box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 34px rgba(226,196,142,.14)}

/* --- what you get, at a glance --- */
.pk-gets{
  width:100%;display:grid;grid-template-columns:1fr 1fr;gap:.6rem .65rem;
  margin:0 0 .5rem;flex:1;position:relative;z-index:1;text-align:left;align-content:start;
}
.pk-get{display:flex;gap:.55rem;align-items:flex-start;min-width:0}
.pk-get svg{width:21px;height:21px;flex:none;color:var(--gold);margin-top:.05rem;filter:drop-shadow(0 0 6px rgba(226,196,142,.35))}
.pk-get b{display:block;font-size:.8rem;font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:.01em}
.pk-get span{display:block;font-size:.67rem;color:var(--silver);line-height:1.35;margin-top:.1rem}
.pk.best .pk-get span{color:#b9bfd2}
.pk-plus{
  grid-column:1/-1;display:flex;align-items:center;gap:.7rem;margin:.25rem 0 .05rem;
  font-family:var(--mono);font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);white-space:nowrap;
}
.pk-plus::before,.pk-plus::after{content:"";height:1px;background:var(--line-strong);flex:1}
.pk.best .pk-plus{color:var(--gold)}
@media(max-width:1000px){
  .pk-get b{font-size:.75rem}
  .pk-get span{font-size:.63rem}
}
/* 641–760px: three cards share a phone row — price-only cards, matrix carries detail */
@media(max-width:760px){.pk-photo,.pk-gets{display:none}}
@media(max-width:640px){.pk-photo{display:block}.pk-gets{display:grid}}

/* --- cinema: the reveal you can feel --- */
.cinema{
  border-top:0;border-bottom:0;
  background:#05080f url("img/reveal.jpg") center 30%/cover no-repeat;
  min-height:clamp(460px,72vh,640px);display:flex;align-items:center;justify-content:center;
}
.cinema::before{
  background:linear-gradient(180deg,var(--space),rgba(3,5,9,.18) 24%,rgba(3,5,9,.12) 55%,rgba(3,5,9,.5) 85%,var(--space) 100%),
             radial-gradient(48% 60% at 50% 52%,rgba(3,5,9,.42),transparent 78%);
}
.cine-inner{position:relative;z-index:1}
.cinema .eyebrow,.cinema h2{text-shadow:0 2px 16px rgba(0,0,0,.8),0 10px 50px rgba(0,0,0,.9)}
.cinema h2 .em{color:var(--gold-2)}
.cine-cap{color:var(--ink);opacity:.85;text-shadow:0 1px 12px rgba(0,0,0,.9)}
.cine-play{background:radial-gradient(circle,rgba(8,12,24,.55),rgba(226,196,142,.06) 70%);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

/* --- keepsake photography --- */
.made-row{align-items:start}
.mk-shot{
  width:100%;border-radius:18px;overflow:hidden;position:relative;
  border:1px solid var(--line-strong);box-shadow:0 26px 60px rgba(0,0,0,.55),var(--light-top);
}
.mk-shot img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .9s var(--ease)}
.mk-card:hover .mk-shot img{transform:scale(1.045)}
.mk-shot::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),inset 0 -46px 60px -30px rgba(3,5,9,.55);
}
.mk-l span{
  display:block;font-family:var(--serif);font-style:italic;font-size:.86rem;letter-spacing:.02em;
  text-transform:none;color:var(--silver);margin-top:.35em;
}

/* --- certificate preview, midnight edition (star page) --- */
.cert-lite{
  background:linear-gradient(175deg,#0e1531,#070b1c 70%,#05080f);color:var(--ink);
  box-shadow:0 26px 60px rgba(0,0,0,.6),inset 0 0 60px rgba(16,26,64,.55);
}
.cert-lite::before{border-color:rgba(226,196,142,.55)}
.cert-lite::after{border-color:rgba(226,196,142,.22)}
.cl-head{color:var(--gold)}
.cl-head span{color:var(--silver)}
.cl-name{color:var(--ink);text-shadow:0 0 24px rgba(226,196,142,.25)}
.cl-for{color:var(--silver)}
.cl-date{color:var(--silver-dim)}
.cl-id{color:var(--gold-deep)}
.cl-seal{
  background:radial-gradient(circle at 38% 30%,#e9d09a,#b8914d 62%,#7d5c26);
  box-shadow:0 4px 12px rgba(0,0,0,.55),inset 0 1px 2px rgba(255,255,255,.35),inset 0 -2px 4px rgba(0,0,0,.3);
  transform:translateX(-50%) rotate(-8deg);
}
.cl-seal::before{border-color:rgba(70,52,18,.45)}
.cl-seal::after{color:#3a2c10;text-shadow:0 1px 1px rgba(255,255,255,.25)}

/* --- capture mode for the new bands --- */
html.cap .story-hero{min-height:auto!important;padding-bottom:3rem!important}
html.cap .cinema{min-height:auto!important;padding-block:4.5rem!important}

/* narrow cards (funnel column widths): stack the benefit chips */
.pk{container-type:inline-size}
@container (max-width: 370px){
  .pk-gets{grid-template-columns:1fr;gap:.5rem}
}

/* --- journey landing: the way onward --- */
.j-act{
  position:absolute;left:50%;bottom:clamp(3rem,9vh,5.5rem);transform:translate(-50%,14px);
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
  opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease);z-index:3;
}
.j-act.on{opacity:1;transform:translate(-50%,0)}
.j-act .j-go{box-shadow:0 14px 44px rgba(0,0,0,.6),0 0 60px rgba(226,196,142,.3)}
.j-count{
  font-family:var(--mono);font-size:.54rem;letter-spacing:.24em;text-transform:uppercase;color:var(--silver-dim);
  animation:jcount 2s linear forwards;
}
@keyframes jcount{from{opacity:.9}to{opacity:.35}}

/* --- homepage certificate tile: the actual PDF, full-bleed --- */

/* --- private Eternal editing (star page) --- */
.s2-edit{margin-top:1.4rem;font-size:.62rem;letter-spacing:.16em}
.edit-ov{
  position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;
  background:rgba(3,5,9,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;transition:opacity .35s var(--ease);padding:1.2rem;
}
.edit-ov.on{opacity:1}
.edit-card{
  width:min(480px,94vw);max-height:88svh;overflow:auto;border:1px solid var(--line-strong);
  border-radius:20px;background:rgba(9,13,26,.97);box-shadow:0 40px 120px rgba(0,0,0,.6),var(--light-top);
  padding:1.8rem 1.7rem;
}
.edit-card h3{font-family:var(--serif);font-weight:300;font-size:1.5rem}
.ed-hint{color:var(--silver);font-size:.82rem;line-height:1.55;margin:.5rem 0 1.2rem}
.edit-card label{
  display:block;margin-bottom:.85rem;
  font-family:var(--mono);font-size:.54rem;letter-spacing:.2em;text-transform:uppercase;color:var(--silver-dim);
}
.edit-card input,.edit-card textarea{
  display:block;width:100%;margin-top:.4rem;
  font-family:var(--sans);font-size:.92rem;color:var(--ink);letter-spacing:normal;
  background:rgba(5,8,16,.7);border:1px solid var(--line-strong);border-radius:10px;padding:.7rem .85rem;
}
.edit-card input:focus,.edit-card textarea:focus{outline:none;border-color:rgba(226,196,142,.5)}
.ed-nav{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem}

/* --- footer newsletter --- */
.nl{margin-top:1.4rem}
.nl-l{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.55rem}
.nl-row{display:flex;gap:.5rem;max-width:340px}
.nl-row input{
  flex:1;min-width:0;font-family:var(--sans);font-size:.85rem;color:var(--ink);
  background:rgba(5,8,16,.7);border:1px solid var(--line-strong);border-radius:10px;padding:.65rem .8rem;
}
.nl-row input:focus{outline:none;border-color:rgba(226,196,142,.5)}
.nl-row .btn{padding:.65rem 1rem;font-size:.58rem;white-space:nowrap}

/* --- star journey flight canvas --- */
.journey{background:radial-gradient(75% 60% at 50% 45%,rgba(4,6,12,.9),rgba(2,3,7,.99))}
.j-cv{position:absolute;inset:0;width:100%;height:100%}
.j-txt{position:relative;z-index:2;text-shadow:0 2px 24px rgba(0,0,0,.85)}

/* --- filmed flight intro (Seedance) ---
   invisible until frames actually flow; the canvas carries the scene until then */
.j-vid{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  opacity:0;transition:opacity .7s var(--ease);pointer-events:none;
}
.j-vid.in{opacity:1}
.j-vid.out{opacity:0;transition-duration:1.5s}

/* --- rebrand: Star Designation Institute --- */
.mast-word{font-size:clamp(1.05rem,2.1vw,1.55rem);letter-spacing:.32em;margin-right:-.32em}
.mast-sub{font-size:.5rem}
.foot-mark{letter-spacing:.18em}


/* ============================================================
   FUNNEL v2 — experience pill (story step) + the star chooser
   ============================================================ */
.fx-wrap{margin:-.5rem auto 1.5rem;display:flex;flex-direction:column;align-items:center;gap:.7rem;width:min(560px,100%)}
.fx-pill{
  display:inline-flex;align-items:center;gap:.55em;border:1px solid var(--line-strong);border-radius:999px;
  background:rgba(244,241,233,.05);color:var(--silver);font-size:.78rem;padding:.55rem 1.15rem;cursor:pointer;
  transition:border-color .3s,color .3s;
}
.fx-pill u{color:var(--gold);text-underline-offset:3px;margin-left:.2em}
.fx-pill:hover{border-color:rgba(226,196,142,.4);color:var(--ink)}
.fx-s{color:var(--gold);letter-spacing:.18em;font-size:.6rem}
.fx-list{display:grid;gap:.5rem;width:100%;animation:fadeUp .45s var(--ease) both}
.fx-opt{
  display:flex;flex-direction:column;gap:.15rem;text-align:left;border:1px solid var(--line);border-radius:12px;
  background:rgba(244,241,233,.04);padding:.75rem 1rem;cursor:pointer;color:var(--silver);
  transition:border-color .25s,background .25s;
}
.fx-opt b{color:var(--ink);font-weight:600;font-size:.85rem}
.fx-opt span{font-size:.74rem;line-height:1.4}
.fx-opt:hover{border-color:rgba(226,196,142,.35)}
.fx-opt.sel{border-color:rgba(226,196,142,.5);background:rgba(226,196,142,.07)}

/* --- the chooser: a walk through tonight's sky --- */
.choose{text-align:center}
.ch-sky{
  width:min(860px,100%);margin:1.7rem auto 1.1rem;border-radius:18px;overflow:hidden;
  border:1px solid var(--line-strong);
  box-shadow:0 24px 70px rgba(0,0,0,.5),0 0 70px rgba(226,196,142,.07);
}
.ch-sky svg{display:block;width:100%;height:auto}
.chs{cursor:pointer;outline:none}
.chs-hit{fill:transparent}
.chs-ring{fill:none;stroke:rgba(244,241,233,.22);stroke-width:1;transition:stroke .3s}
.chs-core{fill:#fff}
.chs-t{fill:rgba(170,178,200,.85);font-size:10.5px;text-anchor:middle;letter-spacing:.14em;text-transform:uppercase;font-family:var(--mono,monospace)}
.chs-n{fill:#e8c98f;font-size:13px;font-style:italic;text-anchor:middle;font-family:Georgia,serif}
.chs:hover .chs-ring,.chs:focus-visible .chs-ring{stroke:rgba(226,196,142,.65)}
.chs.on .chs-ring{stroke:rgba(226,196,142,.95);stroke-width:1.5}
.chs.on .chs-t{fill:#e8c98f}
.ch-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:.85rem;width:min(860px,100%);margin:0 auto}
.cand{
  position:relative;display:flex;flex-direction:column;gap:.32rem;text-align:left;
  border:1px solid var(--line);border-radius:14px;background:rgba(9,12,24,.65);
  padding:1.05rem 1.05rem .9rem;cursor:pointer;color:var(--silver);
  transition:border-color .3s,transform .3s var(--ease),box-shadow .3s;
}
.cand:hover{transform:translateY(-3px);border-color:rgba(226,196,142,.35)}
.cand.sel{
  border-color:rgba(226,196,142,.65);
  box-shadow:0 0 0 1px rgba(226,196,142,.25),0 14px 40px rgba(0,0,0,.4),0 0 40px rgba(226,196,142,.12);
}
.cand-flag{
  position:absolute;top:-.55rem;left:.9rem;background:#141a30;border:1px solid rgba(226,196,142,.5);
  color:var(--gold);font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;
  padding:.22rem .55rem;border-radius:999px;
}
.cand-con{font-family:var(--serif);font-size:1.08rem;color:var(--ink)}
.cand-con i{color:var(--gold);font-size:.85rem}
.cand-b{font-size:.76rem;line-height:1.45}
.cand-meta{font-size:.63rem;color:var(--silver-dim)}
.cand-pick{margin-top:.5rem;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.cand.sel .cand-pick{color:var(--good)}
.ch-pair{margin:1.1rem auto 0;font-size:.78rem;color:var(--gold);font-style:italic;font-family:var(--serif)}
.ch-tools{display:flex;gap:.9rem;align-items:center;justify-content:center;margin-top:1.2rem;flex-wrap:wrap}
.ch-conlab{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--silver-dim)}
.ch-tools select{width:auto;min-width:190px;font-size:.8rem;padding:.55rem .8rem}
.ch-reroll{
  background:none;border:none;color:var(--silver);font-size:.74rem;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;transition:color .3s;
}
.ch-reroll:hover{color:var(--gold)}
.choose .btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}
@media(max-width:640px){
  .ch-cards{grid-template-columns:1fr 1fr;gap:.55rem}
  .cand{padding:.85rem .8rem .75rem}
  .cand-con{font-size:.95rem}
  .chs-t{font-size:13px}
}
@media(max-width:400px){.ch-cards{grid-template-columns:1fr}}

/* stacked mobile cards get the redesign's identity back:
   tier tagline + Eternal's value note (hidden only in the 641-760 compact grid) */
@media(max-width:640px){
  .pk-tag{display:block!important;font-size:.82rem;margin:.15rem 0 0}
  .pk-note{display:block!important;font-size:.48rem}
}

/* ============================================================
   FUNNEL v3 — the conversion layer.
   The flow is the landing page for ad traffic: trust at first
   glance, one thumb-reachable CTA, proof beside every decision.
   ============================================================ */

/* --- entry step: the ad's promise, confirmed in one line --- */
.f-star-row{
  text-align:center;margin-bottom:1.4rem;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--silver);
}
.f-star-row b{color:var(--gold-2);font-weight:400}
.f-star-row .fsr-stars{letter-spacing:.18em;text-shadow:0 0 12px rgba(226,196,142,.45)}

/* --- occasion kicker: deep-linked ads see their promise echoed --- */
.f-kicker{
  text-align:center;margin:0 auto 1.1rem;width:fit-content;
  font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-2);background:rgba(226,196,142,.08);border:1px solid rgba(226,196,142,.28);
  border-radius:2rem;padding:.45rem 1.05rem;
}

/* --- live registry preview: the entry forms while they type --- */
.live-prev{display:none;text-align:center;margin:.4rem auto 1.2rem;width:min(450px,100%)}
.live-prev.on{display:block;animation:fadeUp .5s var(--ease) both}
.live-prev .lp-k{
  display:block;font-family:var(--mono);font-size:.52rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--silver-dim);margin-bottom:.45rem;
}
.live-prev .lp-k::before,.live-prev .lp-k::after{content:" ✦ ";color:var(--gold-deep)}
.live-prev .lp-n{
  display:block;font-family:var(--serif);font-weight:300;font-size:clamp(1.5rem,4.5vw,2rem);
  letter-spacing:.22em;color:var(--gold-2);text-shadow:0 0 26px rgba(226,196,142,.35);
}
.live-prev .lp-s{display:block;margin-top:.4rem;font-size:.68rem;color:var(--silver-dim);font-style:italic;font-family:var(--serif)}

/* --- micro social proof beside decisions --- */
.f-review{
  margin:2.2rem auto 0;width:min(520px,100%);text-align:center;
  padding:1.3rem 1.5rem;border:1px solid var(--line);border-radius:var(--r);
  background:var(--glass);backdrop-filter:blur(8px);
}
.f-review .r-stars{display:block;color:var(--gold);letter-spacing:.22em;font-size:.72rem;margin-bottom:.55rem;text-shadow:0 0 12px rgba(226,196,142,.4)}
.f-review blockquote{font-family:var(--serif);font-style:italic;font-size:1.02rem;line-height:1.5;color:var(--silver)}
.f-review figcaption{margin-top:.7rem;font-family:var(--mono);font-size:.54rem;letter-spacing:.2em;text-transform:uppercase;color:var(--silver-dim)}
.f-review figcaption b{color:var(--gold);font-weight:400}
.f-review.entry{margin-top:2.6rem}

/* --- trust microline under the primary CTA --- */
.f-trust{
  display:flex;gap:1.15rem;justify-content:center;flex-wrap:wrap;
  margin-top:1rem;font-size:.66rem;color:var(--silver-dim);
}
.f-trust span::before{content:"✓";color:var(--good);margin-right:.45em}

/* --- compact proof row (package step) --- */
.f-proof{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:1.6rem auto 0;
  width:min(680px,100%);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;background:var(--line);
}
.f-proof span{
  display:flex;flex-direction:column;gap:.2rem;align-items:center;justify-content:center;
  padding:.85rem .5rem;background:rgba(6,10,20,.72);text-align:center;
  font-family:var(--mono);font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;color:var(--silver-dim);
}
.f-proof b{font-family:var(--serif);font-weight:300;font-size:1.05rem;color:var(--gold-2);letter-spacing:.02em;text-transform:none}
@media(max-width:520px){.f-proof{grid-template-columns:1fr 1fr}}

/* --- checkout: wallet marks --- */
.co-marks{margin:1rem 0 0;gap:.45rem}
.co-marks i{font-size:.6rem;padding:.28rem .6rem;opacity:.75}
.fstep .co-trust+.f-review{margin-top:1.6rem}

/* --- mobile: the primary CTA rides with the thumb --- */
@media(max-width:640px){
  .f-nav.sticky-m{position:sticky;bottom:.85rem;z-index:6}
  .f-nav.sticky-m .btn{
    width:100%;
    box-shadow:0 12px 34px rgba(0,0,0,.6),0 0 0 7px rgba(3,5,9,.55);
  }
  .f-review{margin-top:1.8rem}
}

/* --- assigned package: the current card is unmistakably "yours" --- */
.pk.cur{border-color:rgba(226,196,142,.5)}
.pk-flag.cur{background:linear-gradient(135deg,#b8e0c2,#93dcab);color:#0d1f14}
.pk .pk-cta.ghost{border-color:var(--line-strong);color:var(--silver)}
.pk .pk-cta.ghost:hover{border-color:var(--silver);color:var(--ink)}

/* --- the switch popup: the loss stands in the room --- */
.sw-ov{
  position:fixed;inset:0;z-index:140;display:flex;align-items:center;justify-content:center;
  padding:1.2rem;background:rgba(3,5,9,.74);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  animation:swIn .28s var(--ease) both;
}
@keyframes swIn{from{opacity:0}to{opacity:1}}
.sw-card{
  position:relative;width:min(500px,100%);max-height:88svh;overflow:auto;
  background:linear-gradient(170deg,var(--glass-2),rgba(5,8,16,.94));
  border:1px solid rgba(226,196,142,.42);border-radius:var(--r);
  padding:2.2rem 2rem 2rem;box-shadow:0 40px 110px rgba(0,0,0,.65),0 0 70px rgba(226,196,142,.09);
  animation:swCard .34s var(--ease) both;
}
@keyframes swCard{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.sw-kick{font-family:var(--mono);font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-2);margin-bottom:.9rem}
.sw-card h2{font-size:clamp(1.4rem,4vw,1.8rem);line-height:1.15;margin-bottom:.9rem}
.sw-body{color:var(--silver);font-size:.92rem;line-height:1.6}
.sw-lose{list-style:none;margin:1.3rem 0 1.6rem;padding:1.05rem 1.2rem;border:1px solid var(--line);border-radius:14px;background:rgba(150,60,60,.06)}
.sw-lose li{font-size:.84rem;color:var(--silver);padding:.32rem 0}
.sw-lose li::before{content:"✕";color:#dfa3a3;margin-right:.7em;font-size:.8em}
.sw-actions{display:flex;flex-direction:column;gap:.65rem;align-items:center}
.sw-actions .btn{width:100%}
.sw-note{font-family:var(--mono);font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;color:var(--silver-dim);text-align:center}
.sw-go{
  background:none;border:none;cursor:pointer;color:var(--silver-dim);font-size:.74rem;
  text-decoration:underline;text-underline-offset:3px;padding:.5rem;transition:color .25s;
}
.sw-go:hover{color:var(--silver)}
.sw-x{
  position:absolute;top:.9rem;right:1rem;background:none;border:none;cursor:pointer;
  color:var(--silver-dim);font-size:1.05rem;line-height:1;padding:.4rem;transition:color .25s;
}
.sw-x:hover{color:var(--ink)}

/* --- named companion stars: every promised light has an identity --- */
.co-sub{display:block;font-style:normal;font-size:.62rem;color:var(--gold-2);opacity:.85;margin-top:.25rem;letter-spacing:.06em}
.f-pairline{
  text-align:center;margin:-1.2rem auto 1.8rem;font-size:.62rem;letter-spacing:.12em;
  color:var(--gold-2);opacity:.9;
}
#s2Comp{margin-top:1.05rem;padding-top:.95rem;border-top:1px dashed var(--line)}
.s2-comp-row{padding:.3rem 0}
.s2-comp-row+.s2-comp-row{margin-top:.5rem}
.s2-comp-row .k{color:var(--gold-2)}
.s2-comp-c{font-size:.62rem;color:var(--silver-dim);margin-top:.15rem;letter-spacing:.03em}
.f-subnote{margin-top:.5rem;font-size:.64rem;color:var(--silver-dim);line-height:1.5}

/* ============================================================
   OVERFLOW GUARDS — long names, long labels, small phones.
   Text may shrink or wrap; it must never clip or push the page
   sideways.
   ============================================================ */
.live-prev .lp-n{overflow-wrap:anywhere}
.live-prev.long .lp-n{font-size:clamp(1.05rem,3.6vw,1.5rem);letter-spacing:.12em}
.f-kicker{max-width:100%;line-height:1.6}
.f-pairline{padding:0 1.1rem;line-height:1.7;overflow-wrap:anywhere}
.co-sub{overflow-wrap:anywhere;line-height:1.6}
.fstep h1{overflow-wrap:break-word}
.sw-card h2,.sw-body{overflow-wrap:break-word}
@media(max-width:640px){
  /* .btn is nowrap+hidden globally — on phones long CTAs wrap instead of clipping */
  .btn{white-space:normal;line-height:1.35}
  .sw-actions .btn{padding:1rem 1.2rem}
  .pk-cta{padding-left:.9rem;padding-right:.9rem}
  .f-star-row{font-size:.54rem;letter-spacing:.1em;padding:0 .4rem}
  .f-kicker{font-size:.52rem;letter-spacing:.14em}
}
@media(max-width:380px){
  .funnel-head .brand-sub{display:none}
  .funnel-head .fh-in{gap:.8rem}
}
@media(max-width:380px){
  .fh-step{display:none}
  .funnel-head .fh-in{padding:.9rem 1rem}
}
/* star page on narrow phones: grid children may not force the column wider
   than the wrap (min-width:auto trap), coordinate rows wrap instead */
.s2-grid>*{min-width:0}
@media(max-width:520px){
  .s2-coords{flex-wrap:wrap;justify-content:center;row-gap:.25rem}
  .s2-coords .s2-cdiv{display:none}
  .s2-meta{flex-wrap:wrap;row-gap:.6rem}
}
/* package-card CTAs carry long labels ("Continue to checkout — €89") —
   they wrap inside the card at every size instead of clipping */
.pk .pk-cta{white-space:normal;line-height:1.4;padding-left:1rem;padding-right:1rem}
/* home "page" section on narrow phones: the browser mockup shrinks with the
   column instead of forcing it wider than the screen */
.page-split>*{min-width:0}
.browser{max-width:100%}
.br-bar{min-width:0}
.br-bar .br-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:380px){.brb-grid{grid-template-columns:1fr}}
/* registry on phones: the results table scrolls inside its card instead of
   stretching the whole layout past the screen */
.reg2-layout>*{min-width:0}
.reg2-tablewrap table{min-width:560px}
/* small phones: the switch popup tightens so "Keep" is visible without scrolling */
@media(max-width:380px){
  .sw-card{padding:1.4rem 1.15rem 1.2rem}
  .sw-card h2{font-size:1.22rem;margin-bottom:.7rem}
  .sw-kick{margin-bottom:.6rem}
  .sw-body{font-size:.83rem;line-height:1.5}
  .sw-lose{margin:.95rem 0 1.05rem;padding:.75rem .85rem}
  .sw-lose li{font-size:.76rem;padding:.2rem 0}
  .sw-actions .btn{padding:.9rem 1rem;font-size:.62rem}
}

/* ============================================================
   ONEPAGER — every funnel step behaves like one app screen on
   phones: the decision + CTA fit the viewport, nothing important
   lives below the fold. Desktop keeps the wide layouts.
   ============================================================ */

/* --- checkout order accordion (all sizes; open by default on desktop) --- */
.co-acc>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:.8rem;
  padding:1.05rem 1.55rem;border-bottom:1px solid var(--line);
}
.co-acc>summary::-webkit-details-marker{display:none}
.co-acc .cs-t{font-family:var(--mono);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--silver-dim)}
.co-acc .cs-sub{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--silver)}
.co-acc .cs-total{font-family:var(--serif);font-size:1.25rem;color:var(--gold);white-space:nowrap}
.co-acc .cs-arrow{color:var(--silver-dim);font-size:.65rem;transition:transform .3s}
.co-acc[open] .cs-arrow{transform:rotate(180deg)}
.co-acc[open]>summary{background:rgba(226,196,142,.04)}

@media(max-width:760px){
  /* shell: tighter frame, app rhythm */
  .funnel-shell{padding:4.9rem .95rem 1.6rem}
  .fstep h1{font-size:clamp(1.55rem,6.4vw,2.1rem);margin-bottom:.55rem}
  .fstep .hint{font-size:.86rem;margin-bottom:1.5rem}
  .f-kicker{margin-bottom:.8rem}

  /* occasion: 2×4 tap grid instead of 8 tall rows */
  .occ-index{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
  .occ3{
    grid-template-columns:auto 1fr;align-items:center;gap:.55rem;
    padding:.85rem .8rem;border:1px solid var(--line);border-radius:14px;
    background:var(--glass);
  }
  .occ3 .o3-line,.occ3 .o3-viz,.occ3 .o3-cta{display:none}
  .occ3 .o3-label{font-size:.92rem}
  .occ3 .o3-sym{font-size:1rem}
  .occ3:hover .o3-label,.occ3.chosen .o3-label{transform:none}
  .occ3::before{display:none}
  .f-star-row{margin-bottom:1rem}
  .f-review.entry{margin-top:1.2rem;padding:.75rem .95rem}
  .f-review.entry blockquote{font-size:.83rem;line-height:1.45}
  .f-review.entry .r-stars{font-size:.56rem;margin-bottom:.3rem}
  .f-review.entry figcaption{margin-top:.35rem;font-size:.46rem}
  /* deeper social proof lives on desktop; phones keep one compact voice */
  .fstep .f-review:not(.entry){display:none}

  /* choose: sky capped, candidates swipe side-to-side */
  .ch-sky svg{display:block;width:100%;height:auto;max-height:31svh}
  .ch-cards{
    display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
    gap:.55rem;margin:0 -.95rem;padding:.15rem .95rem .45rem;
    scrollbar-width:none;
  }
  .ch-cards::-webkit-scrollbar{display:none}
  .cand{min-width:74%;scroll-snap-align:center}
  .ch-tools{margin-top:.6rem}
  .choose .hint{margin-bottom:1rem}

  /* package: your card full, the others collapse to slim switch rows */
  .pkg-podium{gap:.6rem}
  .fstep .pk.cur .pk-photo{display:none}
  .fstep .pk:not(.cur){
    display:grid;grid-template-columns:1fr auto;align-items:center;gap:.15rem .8rem;
    padding:.85rem .95rem;
  }
  .fstep .pk:not(.cur) .pk-photo,.fstep .pk:not(.cur) .pk-gets,.fstep .pk:not(.cur) .pk-plus,
  .fstep .pk:not(.cur) .pk-priceline,.fstep .pk:not(.cur) .pk-note,.fstep .pk:not(.cur) .pk-tag{display:none!important}
  .fstep .pk:not(.cur) .pk-name{font-size:1rem;margin:0}
  .fstep .pk:not(.cur) .pk-cta{margin:0;padding:.62rem .85rem;font-size:.52rem;width:auto}
  .fstep .pk.cur .pk-gets{gap:.5rem}
  .fstep .f-proof{margin-top:.9rem}
  .fstep .f-proof span{padding:.6rem .4rem}
  .fstep .pkg-detail{margin-top:1rem}

  /* reveal: chart breathes less, data tightens */
  .f-reveal svg{max-height:24svh;width:auto;max-width:100%;margin-inline:auto}
  .rev-data{gap:.5rem .9rem}

  /* checkout boxes tighten */
  .co-grid{gap:.8rem}
  .co-box .co-h{padding:.9rem 1.15rem}
  .co-box .row{padding:.75rem 1.15rem;font-size:.82rem}
  .co-acc>summary{padding:.95rem 1.15rem}
  .co-sec{padding:.9rem 1.15rem}
  .co-acc .cs-sub{display:none}
}
@media(max-width:380px){
  .occ3{padding:.7rem .6rem}
  .occ3 .o3-label{font-size:.84rem}
}
/* one-pager rhythm: trim the air between blocks on phones */
@media(max-width:760px){
  .funnel-shell{padding-top:4.3rem}
  .fstep{padding:.55rem 0}
  .fstep .hint{margin-bottom:1.05rem}
  .f-field{margin-bottom:.85rem}
  .f-field label{margin-bottom:.4rem}
  .fx-wrap{margin-bottom:.9rem!important}
  .live-prev{margin:.2rem auto .7rem}
  .live-prev .lp-n{font-size:clamp(1.15rem,4vw,1.5rem);letter-spacing:.16em}
  .live-prev .lp-k{margin-bottom:.25rem}
  .f-nav{margin-top:1.15rem}
  .f-nav+.f-nav{margin-top:.45rem!important}
  .f-trust{gap:.65rem;font-size:.56rem;margin-top:.7rem}
  .f-err:empty{display:none}
  .f-err{margin-top:.6rem}
  .f-subnote{font-size:.58rem;margin-top:.35rem}
  .chip{padding:.7rem .5rem;font-size:.78rem}
}
/* choose screen: fit sky + swipe cards + tools + CTA into one phone view */
@media(max-width:760px){
  .ch-sky{margin:0 0 .55rem}
  .ch-sky svg{max-height:23.5svh}
  .cand{padding:.7rem .75rem .6rem;gap:.18rem}
  .cand .cand-meta:last-of-type{display:none}
  .cand-b{font-size:.7rem;line-height:1.3}
  .cand-pick{margin-top:.3rem}
  .ch-pair{margin-top:.6rem;font-size:.72rem}
  .ch-tools{margin-top:.5rem;gap:.5rem;flex-wrap:nowrap}
  .ch-conlab{display:none}
  .ch-tools select{flex:1;min-width:0;font-size:.72rem;padding:.5rem .6rem}
  .ch-reroll{font-size:.66rem;white-space:nowrap}
  .choose .hint{margin-bottom:.7rem}
  .choose .f-nav{margin-top:.8rem}
}
/* assigned package: one focused card, switches folded behind one line */
.pkg-assigned{max-width:440px;margin:0 auto}
.pkg-assigned .pk{width:100%}
.pk-switch{margin:1rem auto 0;max-width:640px;text-align:center}
.pk-switch>summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.45em;
  font-size:.74rem;color:var(--silver);text-decoration:underline;text-underline-offset:3px;
  padding:.4rem .6rem;
}
.pk-switch>summary::-webkit-details-marker{display:none}
.pk-switch>summary:hover{color:var(--ink)}
.pk-switch>summary i{font-style:normal;font-size:.6rem;transition:transform .3s}
.pk-switch[open]>summary i{transform:rotate(180deg)}
.pk-switch-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:.9rem;text-align:left}
@media(max-width:640px){.pk-switch-grid{grid-template-columns:1fr}}
.pk-switch-note{margin-top:.7rem;font-size:.62rem;color:var(--silver-dim)}

@media(max-width:760px){
  /* the assigned card itself tightens on phones */
  .fstep .pk.cur{padding:1.15rem 1.05rem 1rem}
  .fstep .pk.cur .pk-note{display:none}
  .fstep .pk.cur .pk-gets .pk-get span{display:none}
  .fstep .pk.cur .pk-gets{gap:.4rem}
  .fstep .pk.cur .pk-price b{font-size:2.6rem}
  .fstep .pk.cur .pk-name{font-size:1.5rem}
  /* checkout compresses to one view */
  .co-trust{gap:.6rem;font-size:.58rem;margin-top:.8rem}
  .co-note{font-size:.6rem;padding:0 1rem .8rem}
  .co-marks{margin-top:.55rem}
  .co-marks i{font-size:.5rem;padding:.2rem .45rem}
  .bump{font-size:.78rem}
  .pay-btn{padding:1rem .9rem}
}
/* the old stacked-card identity rules (display:block!important) must lose
   against the one-pager assigned card */
@media(max-width:760px){
  .fstep .pk.cur .pk-note{display:none!important}
  .fstep .pk.cur .pk-tag{display:block!important;font-size:.74rem!important;margin:.05rem 0 0}
  .fstep .pk.cur .pk-cta{padding:.85rem .8rem;font-size:.6rem}
  .fstep .pk.cur .pk-priceline{margin:.25rem 0 .45rem}
  .fstep .f-proof{grid-template-columns:repeat(4,1fr)}
  .fstep .f-proof span{padding:.5rem .15rem;font-size:.4rem;letter-spacing:.06em;gap:.1rem}
  .fstep .f-proof b{font-size:.8rem}
  .fstep .pkg-detail{margin-top:.7rem;padding-top:.9rem}
}
/* flex-column children with auto margins collapse to min-content — give the
   assigned card and the switch fold an explicit width */
.pkg-assigned{width:100%}
.pk-switch{width:100%}
@media(max-width:760px){
  .fstep .pkg-detail{display:none}
  .fstep .pk-switch-note{display:none}
  .fstep>.fstep-inner .f-nav:last-child{margin-top:.7rem}
}
/* declutter: candidate cards drop the mythology alias on phones */
@media(max-width:760px){
  .cand-con i{display:none}
}

/* ============================================================
   ALIGNMENT PASS — the whole funnel sits on one centre axis.
   (Never center via flex align-items on .fstep — min-content
   collapse. Centering happens with text-align + auto margins.)
   ============================================================ */
.f-field{text-align:center}
.f-field label{text-align:center}
.f-field input,.f-field select{text-align:center}
.f-field textarea{text-align:center}
#giftFields input{text-align:center}
.f-subnote{text-align:center}
.co-h{text-align:center}

/* candidate cards: centred content, badge on the axis */
.cand{text-align:center;align-items:center}
.cand-flag{left:50%;transform:translateX(-50%)}

/* assigned package card + folded cards: ceremonial centre */
.pkg-assigned .pk,.pk-switch-grid .pk{text-align:center}
.pkg-assigned .pk .pk-priceline,.pk-switch-grid .pk .pk-priceline{justify-content:center}
.pkg-assigned .pk .pk-gets,.pk-switch-grid .pk .pk-gets{width:fit-content;max-width:100%;margin-inline:auto;text-align:left}
.pkg-assigned .pk .pk-photo{margin-inline:auto}

/* switch popup: centred, the loss list as a neat centred block */
.sw-card{text-align:center}
.sw-lose{width:fit-content;max-width:100%;margin-inline:auto;text-align:left}

/* occasion cards on phones: symbol over label, dead centre */
@media(max-width:760px){
  .occ3{grid-template-columns:1fr;justify-items:center;text-align:center;gap:.3rem;padding:.8rem .4rem}
  .occ3 .o3-main{text-align:center}
}
/* slim switch rows stay a list: name left, action right */
@media(max-width:760px){
  .fstep .pk:not(.cur){text-align:left}
}
.pkg-assigned .pk .pk-name,.pkg-assigned .pk .pk-tag,
.pk-switch-grid .pk .pk-name,.pk-switch-grid .pk .pk-tag{text-align:center}

/* ============================================================
   INTRO — three value screens before the first question
   ============================================================ */
.in-slide{text-align:center;animation:fadeUp .5s var(--ease) both}
.in-star{
  font-size:3.4rem;color:var(--gold-2);line-height:1;margin-bottom:1.4rem;
  text-shadow:0 0 34px rgba(226,196,142,.75),0 0 90px rgba(226,196,142,.35);
  animation:inPulse 3.2s ease-in-out infinite;
}
@keyframes inPulse{0%,100%{opacity:1}50%{opacity:.72}}
.in-list{width:fit-content;max-width:100%;margin:1.6rem auto 0;display:grid;gap:.95rem;text-align:left}
.in-item{display:flex;align-items:center;gap:.85rem;font-size:.95rem;color:var(--silver)}
.in-item svg{width:21px;height:21px;color:var(--gold);flex:none}
.in-rating{display:flex;align-items:baseline;justify-content:center;gap:.6rem;margin-bottom:1rem}
.in-rating .r-stars{color:var(--gold);letter-spacing:.22em;font-size:.95rem;text-shadow:0 0 14px rgba(226,196,142,.45)}
.in-rating b{font-family:var(--serif);font-weight:300;font-size:1.25rem;color:var(--gold-2)}
.in-dots{display:flex;justify-content:center;gap:.5rem;margin-top:1.9rem}
.in-dots i{width:6px;height:6px;border-radius:50%;background:rgba(244,241,233,.22);transition:background .3s,transform .3s}
.in-dots i.on{background:var(--gold);transform:scale(1.25);box-shadow:0 0 10px rgba(226,196,142,.6)}
.in-slide .f-review{margin-top:1.5rem}
@media(max-width:760px){
  .in-item{font-size:.88rem}
  .in-slide h1{margin-bottom:.7rem}
}
/* single intro screen: compact list + one proof line */
.in-proof{
  margin-top:1.5rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--silver-dim);text-align:center;
}
.in-proof .r-stars{color:var(--gold);letter-spacing:.2em;margin-right:.35em}
.in-list{margin-top:1.3rem}

/* ============================================================
   PACKAGE ROW — three packages side by side, yours lit in gold
   ============================================================ */
.fstep .occ-index{border-bottom:0}
.pk-row{
  display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:.55rem;align-items:stretch;
  width:min(480px,100%);margin:0 auto;
}
.pk-mini{
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.15rem;padding:1.15rem .4rem .95rem;cursor:pointer;
  border:1px solid var(--line);border-radius:16px;background:var(--glass);
  color:var(--silver);transition:border-color .3s,transform .3s var(--ease),box-shadow .3s;
}
.pk-mini:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.pk-mini.cur{
  border-color:rgba(226,196,142,.75);
  background:linear-gradient(170deg,rgba(226,196,142,.12),rgba(8,12,24,.6));
  box-shadow:0 0 0 1px rgba(226,196,142,.25),0 14px 44px rgba(0,0,0,.45),0 0 44px rgba(226,196,142,.18);
  transform:translateY(-4px);
}
.pkm-flag{
  position:absolute;top:-9px;left:50%;transform:translateX(-50%);white-space:nowrap;
  font-family:var(--mono);font-size:.44rem;letter-spacing:.12em;text-transform:uppercase;
  background:linear-gradient(135deg,#b8e0c2,#93dcab);color:#0d1f14;font-weight:700;
  padding:.2rem .5rem;border-radius:2rem;
}
.pkm-n{font-family:var(--serif);font-weight:300;font-size:.98rem;color:var(--ink);letter-spacing:.06em}
.pk-mini.cur .pkm-n{color:var(--gold-2);font-size:1.12rem}
.pkm-p{font-family:var(--serif);font-size:1.3rem;color:var(--ink)}
.pk-mini.cur .pkm-p{font-size:1.7rem;color:var(--gold-2);text-shadow:0 0 22px rgba(226,196,142,.4)}
.pkm-was{font-size:.66rem;color:var(--silver-dim)}
.pk-incl{
  width:fit-content;max-width:100%;margin:1.3rem auto 0;display:grid;gap:.6rem;text-align:left;
}
.pki-plus{
  font-family:var(--mono);font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);text-align:center;margin-bottom:.15rem;
}
.pki-item{display:flex;align-items:center;gap:.7rem;font-size:.88rem;color:var(--silver)}
.pki-item svg{width:18px;height:18px;color:var(--gold);flex:none}
@media(max-width:760px){
  .pk-row{gap:.45rem}
  .pk-mini{padding:.95rem .3rem .75rem;border-radius:13px}
  .pkm-p{font-size:1.15rem}
  .pk-mini.cur .pkm-p{font-size:1.45rem}
  .pkm-n{font-size:.84rem}
  .pk-mini.cur .pkm-n{font-size:.95rem}
  .pk-incl{margin-top:1rem;gap:.5rem}
  .pki-item{font-size:.82rem}
  .fstep .f-proof{margin-top:.8rem}
}

/* choose: ONE detail card for the ringed star — the sky is the picker */
.cand-view{
  position:relative;width:min(400px,100%);margin:1rem auto 0;
  display:flex;flex-direction:column;gap:.3rem;align-items:center;text-align:center;
  border:1px solid rgba(226,196,142,.55);border-radius:14px;
  background:linear-gradient(170deg,rgba(226,196,142,.07),rgba(9,12,24,.65));
  box-shadow:0 0 30px rgba(226,196,142,.1);
  padding:1.15rem 1rem 1rem;animation:fadeUp .35s var(--ease) both;
}
.cand-view .cand-flag{position:absolute;top:-.55rem;left:50%;transform:translateX(-50%)}
.cand-view .cand-con{font-family:var(--serif);font-size:1.08rem;color:var(--ink)}
.cand-view .cand-con i{color:var(--gold);font-size:.85rem}
.cand-view .cand-b{font-size:.76rem;color:var(--silver)}
.cand-view .cand-meta{font-size:.63rem;color:var(--silver-dim)}

/* package: the selected package as a real card — photo + what's inside */
.pk-view{
  width:min(440px,100%);margin:.95rem auto 0;overflow:hidden;
  border:1px solid rgba(226,196,142,.5);border-radius:var(--r);
  background:linear-gradient(170deg,rgba(226,196,142,.06),rgba(8,12,24,.6));
  box-shadow:0 14px 44px rgba(0,0,0,.4),0 0 44px rgba(226,196,142,.12);
}
.pkv-photo{display:block;width:100%;height:clamp(110px,19svh,180px);object-fit:cover}
.pk-view .pk-incl{margin:0;padding:1rem 1.2rem 1.1rem;width:100%}
@media(max-width:760px){
  .choose .ch-tools{margin-top:.7rem}
  .cand-view{margin-top:.8rem;padding:1rem .85rem .85rem}
  .pk-view .pk-incl{padding:.85rem 1rem .95rem}
  /* the mini row + photo card + CTA must share one screen */
  .fstep .f-proof{display:none}
  .fstep .pk-row{margin-top:.2rem}
}
/* package screen fits exactly: smaller photo, no duplicate back link on phones */
@media(max-width:760px){
  .pkv-photo{height:clamp(100px,16.5svh,150px)}
  .pk-view{margin-top:.7rem}
  .pk-view .pk-incl{gap:.45rem;padding:.8rem 1rem .85rem}
  .fstep .pk-back{display:none} /* header arrow covers back on phones */
  .fstep .pk-row~.f-nav.sticky-m{margin-top:.85rem}
}
/* unified include list: gold ticks for what's in, dimmed unlock tags for the rest */
.pk-view .pk-incl{width:100%;display:grid;gap:.42rem;text-align:left}
.pki-item{width:100%}
.pki-item .pki-ok{margin-left:auto;color:var(--good);font-weight:400;font-size:.8rem}
.pki-lock{
  margin-left:auto;flex:none;font-family:var(--mono);font-size:.46rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-2);border:1px solid rgba(226,196,142,.4);
  border-radius:2rem;padding:.16rem .5rem;opacity:.9;
}
.pki-item.off{opacity:.42;cursor:pointer;transition:opacity .25s}
.pki-item.off:hover{opacity:.75}
.pki-item.off svg{color:var(--silver-dim)}
@media(max-width:760px){
  .pkv-photo{height:clamp(88px,12.5svh,120px)}
  .pki-item{font-size:.78rem;gap:.55rem}
  .pki-item svg{width:15px;height:15px}
  .pk-view .pk-incl{gap:.34rem;padding:.7rem .9rem .8rem}
  .fstep h1{margin-bottom:.35rem}
}
@media(max-width:760px){
  .pk-view .pk-incl{gap:.3rem;padding:.65rem .85rem .75rem}
  .fstep .pk-row~.f-nav.sticky-m{margin-top:.6rem}
}

/* ============================================================
   CHOOSE v3 — pannable sky + swipeable star cards (deliberate
   carousel look: edge fades, snap, selected in view)
   ============================================================ */
.ch-skywrap{
  overflow:auto;scrollbar-width:none;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.ch-skywrap::-webkit-scrollbar{display:none}
.ch-skywrap svg{display:block}
@media(min-width:761px){
  .ch-skywrap svg{width:100%;height:auto}
}
@media(max-width:760px){
  .ch-sky{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent);
    mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent);
  }
  .ch-skywrap{height:clamp(200px,32svh,250px)}
  /* the sky renders half again larger than its window — pan any direction */
  .ch-skywrap svg{height:calc(clamp(200px,32svh,250px)*1.55);width:auto;max-width:none;max-height:none}
  /* labels stay readable at the panned-down scale */
  .chs-t{font-size:16px}
  .chs-n{font-size:20px}
  .ch-cards{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent);
    mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent);
  }
}

/* ============================================================
   PACKAGE CARDS v4 — the mockup: tall gold cards, photo on top,
   ✓ Yours pill, serif name + price, circled checks, All features
   ============================================================ */
.pk-car{display:flex;gap:.9rem;align-items:stretch}
.pk-card3{
  position:relative;flex:none;display:flex;flex-direction:column;overflow:hidden;
  border:1px solid rgba(226,196,142,.45);border-radius:24px;
  background:linear-gradient(175deg,rgba(13,19,38,.92),rgba(6,9,19,.94));
  cursor:pointer;transition:opacity .35s,transform .35s var(--ease),border-color .35s,box-shadow .35s;
}
.pk-card3:not(.cur){opacity:.72;transform:scale(.965)}
.pk-card3.cur{
  border-color:rgba(226,196,142,.8);
  box-shadow:0 0 0 1px rgba(226,196,142,.25),0 22px 60px rgba(0,0,0,.5),0 0 60px rgba(226,196,142,.16);
}
.pkc-photo{position:relative;overflow:hidden}
.pkc-photo img{display:block;width:100%;height:100%;object-fit:cover}
.pkc-yours{
  position:absolute;top:.8rem;right:.8rem;
  font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;
  background:linear-gradient(135deg,#b8e0c2,#93dcab);color:#0d1f14;font-weight:700;
  padding:.34rem .7rem;border-radius:2rem;box-shadow:0 4px 14px rgba(0,0,0,.35);
}
.pkc-body{display:flex;flex-direction:column;padding:1.05rem 1.15rem 1rem;text-align:left;flex:1}
.pkc-name{font-family:var(--serif);font-weight:300;font-size:1.75rem;letter-spacing:.04em;color:var(--gold-2);margin:0 0 .15rem}
.pkc-price{font-family:var(--serif);font-weight:300;font-size:1.6rem;color:var(--ink);margin-bottom:.85rem}
.pkc-price s{font-size:.95rem;color:var(--silver-dim);margin-left:.5rem}
.pkc-list{display:grid;gap:.55rem}
.pkc-row{display:flex;align-items:center;gap:.65rem;font-size:.88rem;color:var(--silver)}
.pkc-row.off{opacity:.45}
.pkc-ok{
  flex:none;width:21px;height:21px;border-radius:50%;
  border:1px solid rgba(226,196,142,.65);color:var(--gold);
  display:inline-flex;align-items:center;justify-content:center;
  font-style:normal;font-size:.62rem;
}
.pkc-row.off .pkc-ok{border-color:rgba(154,162,184,.4);color:transparent}
.pkc-row .pki-lock{margin-left:auto}
.pkc-all{margin-top:auto;padding-top:.85rem}
.pkc-all>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  border-top:1px solid var(--line);padding-top:.85rem;
  font-size:.82rem;color:var(--silver);
}
.pkc-all>summary::-webkit-details-marker{display:none}
.pkc-all>summary i{font-style:normal;font-size:.62rem;color:var(--silver-dim);transition:transform .3s}
.pkc-all[open]>summary i{transform:rotate(180deg)}
.pkc-all>.pkc-list{margin-top:.7rem}

/* phone: snap carousel, neighbours peeking, edge fade */
@media(max-width:760px){
  .pk-car{
    overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
    margin:0 -.95rem;padding:.6rem 66px .9rem;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent);
    mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent);
  }
  .pk-car::-webkit-scrollbar{display:none}
  .pk-card3{width:calc(100vw - 132px);scroll-snap-align:center}
  .pkc-photo{height:clamp(96px,14.5svh,130px)}
}
/* desktop: all three in view, the chosen one lifted */
@media(min-width:761px){
  .pk-car{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:min(880px,100%);margin:0 auto}
  .pk-card3{width:auto}
  .pkc-photo{height:200px}
  .pk-card3.cur{transform:translateY(-6px)}
}

/* all 7 features visible — compact rows, no fold */
.pkc-list{gap:.4rem}
.pkc-row{font-size:.8rem;gap:.55rem}
.pkc-ok{width:18px;height:18px;font-size:.56rem}
.pkc-name{font-size:1.5rem}
.pkc-price{font-size:1.4rem;margin-bottom:.65rem}
.pkc-body{padding:.9rem 1rem .95rem}

/* the reference tilt: neighbours lean toward the chosen card */
.pk-card3{will-change:transform}
.pk-card3:has(~ .pk-card3.cur){
  transform:perspective(750px) rotateY(22deg) scale(.94);
  transform-origin:right center;opacity:.75;
}
.pk-card3.cur ~ .pk-card3{
  transform:perspective(750px) rotateY(-22deg) scale(.94);
  transform-origin:left center;opacity:.75;
}
.pk-card3.cur{transform:none;opacity:1}
@media(min-width:761px){
  .pk-card3.cur{transform:translateY(-6px)}
  .pkc-photo{height:170px}
}
@media(max-width:760px){
  .fstep .pk-car~.f-nav.sticky-m{margin-top:.55rem}
  .pkc-yours{top:.6rem;right:.6rem;font-size:.5rem;padding:.28rem .55rem}
}
/* hard one-screen fit for the package carousel */
@media(max-width:760px){
  .fstep .pk-car{padding-top:.3rem;padding-bottom:.7rem}
  .pkc-photo{height:clamp(90px,13svh,118px)}
  .pkc-body{padding:.8rem .95rem .85rem}
  .pkc-name{font-size:1.35rem}
  .pkc-price{font-size:1.3rem;margin-bottom:.5rem}
  .pkc-list{gap:.34rem}
  .pkc-row{font-size:.78rem}
  .fstep .pk-car~.f-nav.sticky-m{margin-top:.4rem}
  .fstep .pk-car~.f-nav .btn{padding-top:.95rem;padding-bottom:.95rem}
}
/* locked Continue: clearly inert until the field is filled */
.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none;box-shadow:none}

/* sky v4: no panning — the whole sky always fits, every label in frame */
@media(max-width:760px){
  .ch-sky{-webkit-mask-image:none;mask-image:none}
  .ch-skywrap{height:auto;overflow:visible}
  .ch-skywrap svg{height:auto;width:100%;max-width:100%}
  .ch-sky svg{height:auto;width:100%;max-height:none}
  .chs-t{font-size:12px}
  .chs-n{font-size:15px}
}
/* the pair, felt: caption under the duo chart */
.rev-duo{
  margin-top:.15rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-2);text-align:center;
  animation:fadeUp .8s var(--ease) 1.6s both;
}
@media(max-width:760px){
  .rev-data{margin-top:1.1rem}
  .f-reveal .rev-sub{margin-bottom:.3rem}
}

/* occasion-matched social proof under the naming step — slim enough for one screen */
@media(max-width:760px){
  .fstep .f-review.compact{
    display:block;margin:.75rem auto 0;padding:.6rem .85rem;
  }
  .f-review.compact .r-stars{font-size:.52rem;margin-bottom:.25rem}
  .f-review.compact blockquote{
    font-size:.8rem;line-height:1.4;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .f-review.compact figcaption{margin-top:.3rem;font-size:.44rem}
}
@media(max-width:760px){
  .fstep .f-review.compact{margin-top:.55rem;padding:.5rem .8rem}
  .f-review.compact blockquote{font-size:.78rem;line-height:1.35}
  .chip-grid .chip{padding:.55rem .4rem;font-size:.74rem}
  .f-nav+.f-nav .f-back{font-size:.68rem}
}

/* ============================================================
   v56 — feedback round: simple choose list (no sky map),
   rotating proof, aggregate rating
   ============================================================ */
/* the options, plainly: one slim row per star, tap to pick */
.ch-list{display:flex;flex-direction:column;gap:.6rem;width:min(520px,100%);margin:.5rem auto 0}
.ch-list .cand{
  flex-direction:row;align-items:center;justify-content:space-between;gap:.4rem 1rem;
  text-align:left;padding:.85rem 1.05rem;width:100%;min-width:0;
}
.ch-list .cand-main{display:flex;flex-direction:column;gap:.22rem;min-width:0;align-items:flex-start}
.ch-list .cand-con{font-size:1.02rem;line-height:1.2}
.cand-tag{
  font-style:normal;font-family:var(--mono);font-size:.48rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);border:1px solid rgba(226,196,142,.45);border-radius:999px;
  padding:.14rem .45rem;margin-left:.4rem;vertical-align:middle;white-space:nowrap;
}
.ch-list .cand-meta{display:flex;align-items:center;gap:.34rem;font-size:.56rem;white-space:nowrap}
.ch-list .cand-meta>span+span::before{content:"·";margin-right:.34rem;color:rgba(154,162,184,.48)}
.ch-list .cand-light{display:inline-flex;align-items:center;gap:.28rem}
.ch-list .cand-light i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--star-color);box-shadow:0 0 8px color-mix(in srgb,var(--star-color) 72%,transparent)}
.ch-list .cand-pick{margin:0;white-space:nowrap;flex-shrink:0}
.ch-tools{margin-top:.9rem}
@media(max-width:760px){
  .ch-list{gap:.45rem;margin-top:.3rem}
  .ch-list .cand{padding:.68rem .85rem}
  .ch-list .cand .cand-meta{display:flex;font-size:.53rem;gap:.26rem}
  .ch-list .cand-meta>span+span::before{margin-right:.26rem}
  .ch-list .cand-con{font-size:.95rem}
  .choose .ch-pair{margin-top:.5rem}
  .choose .ch-tools{margin-top:.45rem}
  .choose .f-nav.sticky-m{margin-top:.7rem}
}
/* aggregate rating rides beside the stars — proof without extra height */
.f-review .r-stars{display:inline-block;margin-bottom:.3rem;vertical-align:middle}
.f-review .r-agg{
  font-family:var(--mono);font-size:.54rem;letter-spacing:.1em;color:var(--silver-dim);
  margin-left:.55rem;vertical-align:middle;
}
@media(max-width:760px){.f-review .r-agg{font-size:.48rem}}
/* rotating reviews cross-fade in place */
.f-review blockquote,.f-review figcaption{transition:opacity .28s}
.f-review.fade blockquote,.f-review.fade figcaption{opacity:0}
.f-review.compact blockquote{min-height:2.2em}

/* ============================================================
   FLOW v57 — true viewport screens.
   The funnel behaves like a responsive app: the document and each step stay
   inside the current viewport, with no sideways carousel or page scrolling.
   ============================================================ */
body.funnel-page{
  width:100%;height:100dvh;min-height:0;overflow:hidden;
  overscroll-behavior:none;touch-action:manipulation;
}
.f-proof-kicker{
  display:flex;align-items:center;justify-content:center;gap:.55rem;
  width:min(560px,100%);padding:.72rem 1.15rem;margin-bottom:1rem;
  font-size:.72rem;font-weight:600;line-height:1.3;letter-spacing:.045em;
  text-transform:none;color:var(--ink);background:linear-gradient(135deg,rgba(226,196,142,.18),rgba(226,196,142,.07));
  border-color:rgba(226,196,142,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 32px rgba(0,0,0,.24),0 0 24px rgba(226,196,142,.06);
}
.f-proof-kicker i{flex:none;color:var(--gold);font-style:normal;text-shadow:0 0 10px rgba(226,196,142,.45)}
.f-proof-kicker strong{flex:none;font-family:var(--serif);font-size:1.42rem;font-weight:500;line-height:1;color:var(--gold-2);letter-spacing:.015em}
.f-proof-kicker span{text-align:left}
.f-proof-kicker.is-live i{color:#77d992;text-shadow:0 0 10px rgba(119,217,146,.65)}
.funnel-page .funnel-shell{
  width:100%;height:100dvh;min-height:0;max-height:100dvh;
  padding:4.65rem 1.3rem .85rem;overflow:hidden;
}
.funnel-page #fsteps,.funnel-page .fstep{
  width:100%;height:100%;min-height:0;max-height:100%;overflow:hidden;
}
.funnel-page .fstep{padding:.45rem 0;justify-content:center}
.funnel-page .fstep-inner{width:100%;max-height:100%;margin-inline:auto}

/* The occasion decision uses a fixed 2 × 4 grid at every width. The full
   cinematic rows still live on the homepage; inside the flow they must fit. */
.step-occasion .occ-index{
  display:grid;grid-template-columns:1fr 1fr;gap:.55rem;
  width:min(720px,100%);margin:0 auto;border:0;
}
.step-occasion .occ3{
  grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;
  min-width:0;padding:.72rem .75rem;border:1px solid var(--line);
  border-radius:14px;background:var(--glass);
}
.step-occasion .occ3::before,.step-occasion .o3-viz{display:none}
.step-occasion .o3-sym{width:38px;height:38px;font-size:1rem}
.step-occasion .o3-label{font-size:1.08rem}
.step-occasion .o3-line{font-size:.7rem;margin-top:.14rem}
.step-occasion .occ3:hover .o3-label,.step-occasion .occ3.chosen .o3-label,
.step-occasion .occ3:hover .o3-line{transform:none}
.step-occasion .o3-arrow{font-size:1rem}

/* One honest, occasion-matched voice on screen two. */
.occasion-proof{
  width:min(500px,100%);margin:.8rem auto 0;padding:.78rem .95rem .68rem;
  text-align:left;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(145deg,rgba(226,196,142,.07),rgba(7,11,23,.62));
  color:var(--silver);box-shadow:var(--light-top);
}
.occasion-proof .op-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.occasion-proof .op-avatar{
  width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-family:var(--serif);font-size:.95rem;color:#191307;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));
}
.occasion-proof .op-person{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.occasion-proof .op-person b{font-size:.76rem;color:var(--ink);font-weight:600}
.occasion-proof .op-person i{font-size:.58rem;color:var(--silver-dim);font-style:normal}
.occasion-proof .op-stars{
  margin-left:auto;white-space:nowrap;color:var(--gold);font-size:.68rem;
  letter-spacing:.12em;text-shadow:0 0 12px rgba(226,196,142,.4);
}
.occasion-proof blockquote{
  font-family:var(--serif);font-size:.92rem;line-height:1.36;font-style:italic;color:var(--ink);
}
.occasion-proof figcaption{
  margin-top:.38rem;font-family:var(--mono);font-size:.4rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--silver-dim);
}

/* Package choice is three fixed tabs plus one detail card; nothing swipes. */
.step-package .pk-row{margin-top:.15rem}
.step-package .pk-view{margin-top:.65rem}
.step-package .pkv-photo{height:clamp(82px,13svh,122px)}
.step-package .pk-incl{gap:.28rem;padding:.62rem .85rem .7rem}
.step-package .pki-item{font-size:.76rem;gap:.5rem}
.step-package .pki-item svg{width:15px;height:15px}
.step-package .pki-ok{font-style:normal;margin-left:auto;color:var(--good)}
.step-package .f-nav{margin-top:.65rem}
.step-package .pk-switch-note{text-align:center;margin:.45rem auto 0}

/* The old swipe surfaces must never reintroduce lateral movement in the flow. */
.funnel-page .pk-car,.funnel-page .ch-cards,.funnel-page .ch-skywrap{
  overflow:hidden;scroll-snap-type:none;
}

/* Checkout keeps the transactional essentials in view; the repeated public
   data note is omitted here because the provider/privacy link remains above. */
.step-checkout .fstep-inner>.co-note,.step-checkout .co-trust{display:none}
.step-checkout .co-grid{gap:.7rem}

@media(max-width:760px){
  .funnel-page .funnel-shell{padding:4.15rem .85rem .45rem}
  .funnel-page .fstep{padding:.2rem 0}
  .occasion-proof{margin-top:.48rem;padding:.52rem .68rem .46rem}
  .occasion-proof .op-head{margin-bottom:.35rem}
  .occasion-proof .op-avatar{width:24px;height:24px;font-size:.82rem}
  .occasion-proof .op-person b{font-size:.67rem}
  .occasion-proof .op-person i{font-size:.5rem}
  .occasion-proof .op-stars{font-size:.58rem}
  .occasion-proof blockquote{
    font-size:.78rem;line-height:1.32;display:-webkit-box;
    -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .occasion-proof figcaption{margin-top:.25rem;font-size:.36rem}
  .step-name .f-nav{margin-top:.65rem}
  .step-package h1{font-size:clamp(1.35rem,5.6vw,1.8rem)}
  .step-package .pk-mini{padding:.68rem .2rem .5rem}
  .step-package .pkm-n{font-size:.72rem}
  .step-package .pk-mini.cur .pkm-n{font-size:.8rem}
  .step-package .pkm-p,.step-package .pk-mini.cur .pkm-p{font-size:1.05rem}
  .step-package .pkm-was{font-size:.52rem}
  .step-package .pkv-photo{height:clamp(62px,9.5svh,92px)}
  .step-package .pk-incl{gap:.2rem;padding:.5rem .72rem .55rem}
  .step-package .pki-item{font-size:.69rem;line-height:1.18}
  .step-package .pk-switch-note{display:block;font-size:.5rem}
  .step-checkout h1{margin-bottom:.2rem}
  .step-checkout .hint{margin-bottom:.55rem}
  .step-checkout .co-grid{gap:.5rem}
  .step-checkout .co-acc>summary{padding:.68rem .85rem}
  .step-checkout .co-box .co-h{padding:.58rem .85rem}
  .step-checkout .co-sec{padding:.58rem .85rem}
  .step-checkout .chip{padding:.58rem .35rem!important;font-size:.7rem!important}
  .step-checkout .co-consent{font-size:.55rem;line-height:1.35}
  .step-checkout .pay-btn{padding:.72rem .7rem}
  .step-checkout .co-marks{display:none}
  .step-checkout .co-box .co-note{font-size:.48rem;padding:0 .65rem .45rem}

  /* Success actions become compact button rows; links still copy normally. */
  .step-success .big-check{margin-bottom:.35rem}
  .step-success .hint{margin-bottom:.45rem}
  .step-success .f-nav{margin-top:.55rem;gap:.45rem}
  .step-success .f-nav .btn{padding:.65rem .75rem;font-size:.52rem}
  .step-success .share-box{margin-top:.55rem}
  .step-success .share-box .shb-l{display:none}
  .step-success .share-box input{position:absolute;opacity:0;pointer-events:none}
  .step-success .shb-row{justify-content:center;gap:.4rem}
  .step-success .share-box .btn{padding:.6rem .7rem;font-size:.5rem}
}

/* Short devices receive the same complete layout at a reduced app scale.
   Width compensation keeps the visual content aligned to both screen edges. */
@media(max-height:720px){
  .funnel-page .fstep-inner{zoom:.88;width:100%;margin-inline:auto}
}
@media(max-height:620px){
  .funnel-page .fstep-inner{zoom:.76;width:100%;margin-inline:auto}
  .funnel-page .funnel-shell{padding-top:3.95rem}
  .funnel-page .fh-in{padding:.68rem .85rem}
}
@media(max-height:520px){
  .funnel-page .fstep-inner{zoom:.66;width:100%;margin-inline:auto}
}

/* Downgrade confirmation is also a fixed screen, never an inner scroller. */
.funnel-page .sw-card{max-height:calc(100dvh - 1rem);overflow:hidden}
@media(max-height:620px){
  .funnel-page .sw-card{zoom:.76;width:min(500px,128vw)}
  .funnel-page .sw-lose{margin:.65rem 0;padding:.55rem .7rem}
  .funnel-page .sw-lose li{font-size:.68rem}
}

/* ============================================================
   FLOW v59 — the full three-card comparison returns.
   Every image and every tier-specific feature stays inside its card; the two
   neighbours lean away from the selected centre card.
   ============================================================ */
.step-package .pk-car{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem;width:min(720px,100%);margin:.35rem auto 0;padding:0!important;
  overflow:visible!important;scroll-snap-type:none!important;
  -webkit-mask-image:none!important;mask-image:none!important;
}
.step-package .pk-card3{
  width:auto!important;min-width:0;transform-origin:center;
  appearance:none;padding:0;color:inherit;text-align:left;
}
.step-package .pk-card3:has(~ .pk-card3.cur){
  transform:perspective(760px) translateY(10px) rotateY(14deg) rotateZ(-4.5deg) scale(.94);
  transform-origin:right bottom;opacity:.86;
}
.step-package .pk-card3.cur~.pk-card3{
  transform:perspective(760px) translateY(10px) rotateY(-14deg) rotateZ(4.5deg) scale(.94);
  transform-origin:left bottom;opacity:.86;
}
.step-package .pk-card3.cur{transform:translateY(-5px);opacity:1}
.step-package .pkc-photo{display:block;height:clamp(110px,15svh,145px)}
.step-package .pkc-body{padding:.68rem .78rem .72rem;align-items:flex-start}
.step-package .pkc-name{font-size:1.22rem;margin:0}
.step-package .pkc-price{font-size:1.18rem;margin:.08rem 0 .48rem}
.step-package .pkc-price s{font-size:.7rem}
.step-package .pkc-list{display:grid;gap:.28rem;width:100%}
.step-package .pkc-row{font-size:.7rem;line-height:1.2;gap:.45rem;align-items:flex-start}
.step-package .pkc-row span{min-width:0}
.step-package .pkc-ok{width:16px;height:16px;font-size:.5rem;margin-top:.02rem}
.step-package .pkc-row.off{opacity:.48}

@media(max-width:760px){
  .step-package .pk-car{gap:.24rem;margin-top:.18rem}
  .step-package .pk-card3{border-radius:13px}
  .step-package .pk-card3:has(~ .pk-card3.cur){transform:perspective(620px) translateY(4px) rotateY(6deg) rotateZ(-2.4deg) scale(.975);opacity:.84}
  .step-package .pk-card3.cur~.pk-card3{transform:perspective(620px) translateY(4px) rotateY(-6deg) rotateZ(2.4deg) scale(.975);opacity:.84}
  .step-package .pk-card3.cur{transform:translateY(-2px)}
  .step-package .pkc-photo{height:clamp(46px,7.2svh,62px)}
  .step-package .pkc-yours{top:.28rem;right:.28rem;font-size:.34rem;padding:.16rem .3rem}
  .step-package .pkc-body{padding:.34rem .3rem .38rem;align-items:flex-start;text-align:left}
  .step-package .pkc-name{font-size:.68rem;letter-spacing:.01em;width:100%}
  .step-package .pkc-price{font-size:.76rem;width:100%;margin:.04rem 0 .25rem}
  .step-package .pkc-price s{display:none}
  .step-package .pkc-list{gap:.15rem}
  .step-package .pkc-row{font-size:.43rem;line-height:1.13;gap:.22rem}
  .step-package .pkc-ok{width:10px;height:10px;font-size:.34rem}
  .step-package .f-nav{margin-top:.42rem}
}

/* ============================================================
   FLOW v60 — legible phones, clean controls and richer proof.
   ============================================================ */
.funnel-page button{
  min-width:0;-webkit-tap-highlight-color:transparent;
}
.funnel-page button:focus:not(:focus-visible){outline:none}
.funnel-page .btn{
  max-width:100%;min-height:48px;white-space:normal;line-height:1.2;
  padding-inline:clamp(1rem,7vw,2.4rem);text-wrap:balance;
}
.funnel-page .btn.solid{border:0}
.funnel-page .btn.solid:focus-visible{outline:none}

/* Three concise examples read as one compact proof module. */
.occasion-proofs{
  width:min(720px,100%);margin:.7rem auto 0;padding:0;text-align:left;
}
html.cap .occasion-proofs{padding-block:0!important}
.occasion-proofs .op-summary{
  display:flex;align-items:center;justify-content:center;gap:.65rem;
  margin-bottom:.45rem;color:var(--silver);
}
.occasion-proofs .op-summary strong{
  font-size:.75rem;font-weight:600;color:var(--ink);
}
.occasion-proofs .op-stars{
  color:var(--gold);font-size:.7rem;letter-spacing:.1em;
  text-shadow:0 0 12px rgba(226,196,142,.4);white-space:nowrap;
}
.occasion-proofs .op-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.occasion-proofs .occasion-proof{
  width:auto;margin:0;padding:.62rem .7rem .58rem;border-radius:13px;
  background:linear-gradient(145deg,rgba(226,196,142,.09),rgba(7,11,23,.72));
}
.occasion-proofs .occasion-proof .op-head{margin-bottom:.3rem}
.occasion-proofs .occasion-proof blockquote{
  display:block;overflow:visible;font-size:.82rem;line-height:1.3;
  color:var(--ink);-webkit-line-clamp:unset;
}
.occasion-proofs .op-disclosure{
  margin-top:.32rem;text-align:center;font-family:var(--mono);font-size:.42rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--silver-dim);
}

/* One clear edge on cards and CTAs; no stacked focus ring after a tap. */
.step-package .pk-card3{outline:none;border-width:1px}
.step-package .pk-card3.cur{
  border-color:rgba(226,196,142,.85);
  box-shadow:0 22px 60px rgba(0,0,0,.48),0 0 40px rgba(226,196,142,.14);
}
.step-package .pk-card3:focus{outline:none}
.step-package .pk-card3:focus-visible{
  box-shadow:0 0 0 2px rgba(226,196,142,.72),0 22px 60px rgba(0,0,0,.48);
}
.step-package .f-nav .btn{width:min(420px,100%)}
.step-name .live-prev{display:none}

@media(max-width:760px){
  .occasion-proofs{margin-top:.48rem}
  .occasion-proofs .op-summary{justify-content:flex-start;margin-bottom:.35rem;gap:.45rem}
  .occasion-proofs .op-summary strong{font-size:.7rem}
  .occasion-proofs .op-stars{font-size:.64rem}
  .occasion-proofs .op-grid{grid-template-columns:1fr;gap:.28rem}
  .occasion-proofs .occasion-proof{
    display:grid;grid-template-columns:minmax(92px,.85fr) 1.65fr;
    align-items:center;gap:.48rem;padding:.38rem .52rem;
  }
  .occasion-proofs .occasion-proof .op-head{margin:0;gap:.4rem}
  .occasion-proofs .occasion-proof .op-avatar{width:24px;height:24px;font-size:.8rem}
  .occasion-proofs .occasion-proof .op-person b{font-size:.68rem}
  .occasion-proofs .occasion-proof .op-person i{font-size:.52rem}
  .occasion-proofs .occasion-proof blockquote{
    font-size:.76rem;line-height:1.25;display:-webkit-box;
    -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .occasion-proofs .op-disclosure{font-size:.4rem;margin-top:.25rem}

  .step-package .fstep-inner{width:min(100%,520px)}
  .step-package h1{
    font-size:clamp(1.65rem,7vw,2.05rem);line-height:1.04;margin-bottom:.55rem;
  }
  .step-package .pk-car{width:calc(100% - .65rem);gap:.32rem;margin-top:.28rem}
  .step-package .pk-card3{border-radius:15px}
  .step-package .pkc-photo{height:clamp(78px,11.5svh,100px)}
  .step-package .pkc-yours{top:.35rem;right:.35rem;font-size:.4rem;padding:.2rem .36rem}
  .step-package .pkc-body{padding:.58rem .46rem .62rem}
  .step-package .pkc-name{font-size:.9rem;line-height:1.12}
  .step-package .pkc-price{font-size:.98rem;margin:.08rem 0 .38rem}
  .step-package .pkc-list{gap:.25rem}
  .step-package .pkc-row{
    font-size:clamp(.58rem,2.55vw,.68rem);line-height:1.2;gap:.3rem;
  }
  .step-package .pkc-ok{width:14px;height:14px;font-size:.45rem}
  .step-package .f-nav{margin-top:.58rem}
  .step-package .f-nav .btn{font-size:.82rem;padding:1rem .9rem}
  .step-package .pk-switch-note{font-size:.58rem;margin-top:.42rem}
}

/* Short phones keep the package and proof readable instead of shrinking the
   entire screen to the previous tiny scale. */
@media(max-height:720px){
  .funnel-page .step-package .fstep-inner{zoom:.96}
  .funnel-page .step-name .fstep-inner{zoom:.92}
}
@media(max-height:620px){
  .funnel-page .step-package .fstep-inner{zoom:.9}
  .funnel-page .step-name .fstep-inner{zoom:.85}
  .occasion-proofs .occasion-proof:nth-child(3){display:none}
}
@media(max-height:520px){
  .funnel-page .step-package .fstep-inner{zoom:.74}
  .funnel-page .step-name .fstep-inner{zoom:.72}
}

/* FLOW v61 — clean mobile CTAs. The old sticky treatment painted a seven
   pixel charcoal ring around every gold button, which looked like a second
   rectangular background on real phones. */
@media(max-width:640px){
  .funnel-page .f-nav.sticky-m .btn{
    box-shadow:0 9px 24px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.38);
  }
}

/* FLOW v62 — compact three-card stage. Only placement changes: the selected
   package is wide and fully visible in front; both alternatives remain
   tappable as quieter cards behind its left and right edges. */
.step-package .pk-car{
  display:grid!important;grid-template-columns:1fr 1.45fr 1fr;
  grid-template-rows:auto;align-items:center;isolation:isolate;
}
.step-package .pk-car .pk-card3{grid-row:1;min-width:0}
.step-package .pk-car .pk-card3.stage-left{
  grid-column:1/3;justify-self:start;width:72%!important;z-index:1;
  transform:translateX(2%) rotateZ(-3.2deg) scale(.92)!important;
  transform-origin:right center;opacity:.68;
}
.step-package .pk-car .pk-card3.stage-center{
  grid-column:1/4;justify-self:center;width:54%!important;z-index:3;
  transform:translateY(-4px)!important;opacity:1;
}
.step-package .pk-car .pk-card3.stage-right{
  grid-column:2/4;justify-self:end;width:72%!important;z-index:1;
  transform:translateX(-2%) rotateZ(3.2deg) scale(.92)!important;
  transform-origin:left center;opacity:.68;
}
.step-package .pk-car .pk-card3.stage-left:hover,
.step-package .pk-car .pk-card3.stage-right:hover{opacity:.86}
.step-package .pk-car .pk-card3.stage-left .pkc-name,
.step-package .pk-car .pk-card3.stage-left .pkc-price,
.step-package .pk-car .pk-card3.stage-right .pkc-name,
.step-package .pk-car .pk-card3.stage-right .pkc-price{visibility:hidden}
.step-package .pk-car .pk-card3.stage-left::before,
.step-package .pk-car .pk-card3.stage-right::before,
.step-package .pk-car .pk-card3.stage-left::after,
.step-package .pk-car .pk-card3.stage-right::after{
  position:absolute;z-index:2;pointer-events:none;font-family:var(--serif);
  color:var(--gold-2);line-height:1;white-space:nowrap;
}
.step-package .pk-car .pk-card3.stage-left::before,
.step-package .pk-car .pk-card3.stage-right::before{
  content:attr(data-stage-name);top:calc(clamp(110px,15svh,145px) + .7rem);font-size:1rem;
}
.step-package .pk-car .pk-card3.stage-left::after,
.step-package .pk-car .pk-card3.stage-right::after{
  content:attr(data-stage-price);top:calc(clamp(110px,15svh,145px) + 2.2rem);font-size:.92rem;color:var(--ink);
}
.step-package .pk-car .pk-card3.stage-left::before,
.step-package .pk-car .pk-card3.stage-left::after{left:clamp(3.7rem,5.5vw,4.5rem)}
.step-package .pk-car .pk-card3.stage-right::before,
.step-package .pk-car .pk-card3.stage-right::after{right:clamp(3.7rem,5.5vw,4.5rem);text-align:right}

@media(max-width:760px){
  .step-package .pk-car{grid-template-columns:1fr 1.6fr 1fr;width:100%}
  .step-package .pk-car .pk-card3.stage-left,
  .step-package .pk-car .pk-card3.stage-right{width:76%!important;opacity:.64}
  .step-package .pk-car .pk-card3.stage-left{
    transform:translateX(-1%) rotateZ(-2.4deg) scale(.9)!important;
  }
  .step-package .pk-car .pk-card3.stage-center{
    width:60%!important;transform:translateY(-3px)!important;
  }
  .step-package .pk-car .pk-card3.stage-right{
    transform:translateX(1%) rotateZ(2.4deg) scale(.9)!important;
  }
  .step-package .pk-car .pk-card3.stage-left::before,
  .step-package .pk-car .pk-card3.stage-right::before{
    top:calc(clamp(78px,11.5svh,100px) + .45rem);font-size:.76rem;
  }
  .step-package .pk-car .pk-card3.stage-left::after,
  .step-package .pk-car .pk-card3.stage-right::after{
    top:calc(clamp(78px,11.5svh,100px) + 1.65rem);font-size:.72rem;
  }
  .step-package .pk-car .pk-card3.stage-left::before,
  .step-package .pk-car .pk-card3.stage-left::after{left:.52rem}
  .step-package .pk-car .pk-card3.stage-right::before,
  .step-package .pk-car .pk-card3.stage-right::after{right:.52rem}
}

/* FLOW v63 — fan the two alternative packages into real perspective. Their
   exposed faces remain readable while the active package stays in front. */
.step-package .pk-car{perspective:1000px;perspective-origin:50% 46%}
.step-package .pk-car .pk-card3.stage-left{
  width:86%!important;
  transform:perspective(900px) translateX(1%) rotateY(30deg) rotateZ(-1.4deg) scale(.94)!important;
  transform-origin:right center;opacity:.84;
}
.step-package .pk-car .pk-card3.stage-center{width:52%!important}
.step-package .pk-car .pk-card3.stage-right{
  width:86%!important;
  transform:perspective(900px) translateX(-1%) rotateY(-30deg) rotateZ(1.4deg) scale(.94)!important;
  transform-origin:left center;opacity:.84;
}

@media(max-width:760px){
  .step-package .pk-car .pk-card3.stage-left,
  .step-package .pk-car .pk-card3.stage-right{width:90%!important;opacity:.82}
  .step-package .pk-car .pk-card3.stage-left{
    transform:perspective(720px) translateX(1%) rotateY(28deg) rotateZ(-1deg) scale(.92)!important;
  }
  .step-package .pk-car .pk-card3.stage-center{width:56%!important}
  .step-package .pk-car .pk-card3.stage-right{
    transform:perspective(720px) translateX(-1%) rotateY(-28deg) rotateZ(1deg) scale(.92)!important;
  }
}

/* FLOW v64 — reference-style package deck. The selected package is the tall,
   calm hero card; smaller neighbours sit behind it with concise readable
   previews instead of distorted full feature lists. */
.step-package .pk-car{
  --pk-photo-h:clamp(110px,15svh,145px);
  height:clamp(360px,56svh,430px);
  grid-template-columns:1fr 1.5fr 1fr;
  align-items:center;perspective:1400px;perspective-origin:50% 48%;
}
.step-package .pk-car .pk-card3{
  align-self:center;height:100%;border-radius:24px;
  background:linear-gradient(176deg,rgba(13,20,40,.98),rgba(5,9,19,.98));
}
.step-package .pk-car .pkc-photo{height:var(--pk-photo-h)}
.step-package .pk-car .pk-card3.stage-center{
  width:56%!important;height:100%;z-index:3;
  transform:translateY(-2px)!important;opacity:1;
  border-color:rgba(226,196,142,.9);
  box-shadow:0 20px 54px rgba(0,0,0,.5),0 0 34px rgba(226,196,142,.16);
}
.step-package .pk-car .pk-card3.stage-left,
.step-package .pk-car .pk-card3.stage-right{
  width:68%!important;height:88%;z-index:1;opacity:.78;
  filter:saturate(.82) brightness(.86);
}
.step-package .pk-car .pk-card3.stage-left{
  transform:perspective(1400px) translateX(5%) rotateY(15deg) scale(.98)!important;
  transform-origin:right center;
}
.step-package .pk-car .pk-card3.stage-right{
  transform:perspective(1400px) translateX(-5%) rotateY(-15deg) scale(.98)!important;
  transform-origin:left center;
}
.step-package .pk-car .pk-card3.stage-left::before,
.step-package .pk-car .pk-card3.stage-left::after,
.step-package .pk-car .pk-card3.stage-right::before,
.step-package .pk-car .pk-card3.stage-right::after{content:none}
.step-package .pk-car .pk-card3.stage-left .pkc-body,
.step-package .pk-car .pk-card3.stage-right .pkc-body{visibility:hidden}
.step-package .pkc-side-summary{display:none}
.step-package .stage-left .pkc-side-summary,
.step-package .stage-right .pkc-side-summary{
  position:absolute;top:calc(var(--pk-photo-h) + .72rem);z-index:2;
  display:flex;flex-direction:column;width:clamp(118px,12vw,150px);
  color:var(--silver);text-align:left;pointer-events:none;
}
.step-package .stage-left .pkc-side-summary{left:.8rem}
.step-package .stage-right .pkc-side-summary{right:.25rem}
.step-package .pkc-side-summary>strong{
  font-family:var(--serif);font-size:1.35rem;font-weight:300;
  color:var(--gold-2);letter-spacing:.025em;
}
.step-package .pkc-side-price{
  margin-top:.12rem;font-family:var(--serif);font-size:1.25rem;color:var(--ink);
}
.step-package .pkc-side-rule{
  display:flex;align-items:center;gap:.35rem;margin:.58rem 0 .45rem;
  color:var(--gold);font-size:.66rem;
}
.step-package .pkc-side-rule::after{
  content:"";height:1px;flex:1;background:rgba(226,196,142,.34);
}
.step-package .pkc-side-row{
  display:flex;align-items:flex-start;gap:.42rem;margin:.27rem 0;
  font-size:.78rem;line-height:1.2;color:var(--silver);
}
.step-package .pkc-side-row i{font-style:normal;color:var(--gold);font-size:.9rem}
.step-package .pkc-tag{
  display:block;margin:-.14rem 0 .58rem;color:var(--silver);
  font-size:.72rem;line-height:1.25;letter-spacing:.015em;
}

@media(max-width:760px){
  .step-package .pk-car{
    --pk-photo-h:clamp(78px,11.5svh,100px);
    height:clamp(292px,43svh,358px);
    grid-template-columns:1fr 1.5fr 1fr;width:100%;
  }
  .step-package .pk-car .pk-card3{border-radius:18px}
  .step-package .pk-car .pk-card3.stage-center{width:56%!important;height:100%}
  .step-package .pk-car .pk-card3.stage-left,
  .step-package .pk-car .pk-card3.stage-right{
    width:68%!important;height:89%;opacity:.8;filter:saturate(.82) brightness(.88);
  }
  .step-package .pk-car .pk-card3.stage-left{
    transform:perspective(900px) translateX(5%) rotateY(13deg) scale(.985)!important;
  }
  .step-package .pk-car .pk-card3.stage-right{
    transform:perspective(900px) translateX(-5%) rotateY(-13deg) scale(.985)!important;
  }
  .step-package .stage-left .pkc-side-summary,
  .step-package .stage-right .pkc-side-summary{
    top:calc(var(--pk-photo-h) + .52rem);width:72px;
  }
  .step-package .stage-left .pkc-side-summary{left:.5rem}
  .step-package .stage-right .pkc-side-summary{right:.12rem}
  .step-package .pkc-side-summary>strong{font-size:.8rem;line-height:1}
  .step-package .pkc-side-price{font-size:.76rem;margin-top:.2rem}
  .step-package .pkc-side-rule{margin:.42rem 0 .34rem;font-size:.5rem}
  .step-package .pkc-side-row{gap:.28rem;margin:.2rem 0;font-size:.55rem;line-height:1.18}
  .step-package .pkc-side-row i{font-size:.67rem}
  .step-package .pkc-tag{margin:-.08rem 0 .42rem;font-size:.62rem;line-height:1.18}
}

/* FLOW v65 — every tier keeps the complete seven-row comparison shown in the
   approved card copy. The deck placement stays; tapping a neighbour brings
   its full card to the front. */
.step-package .pk-car .pk-card3.stage-left .pkc-body,
.step-package .pk-car .pk-card3.stage-right .pkc-body,
.step-package .pk-car .pk-card3.stage-left .pkc-name,
.step-package .pk-car .pk-card3.stage-left .pkc-price,
.step-package .pk-car .pk-card3.stage-right .pkc-name,
.step-package .pk-car .pk-card3.stage-right .pkc-price{visibility:visible}
.step-package .pkc-side-summary{display:none!important}

@media(max-width:760px){
  .step-package .pk-car .pk-card3.stage-left,
  .step-package .pk-car .pk-card3.stage-right{height:92%}
}

/* FLOW v66 — the right neighbour's title and price sit on its exposed outer
   face instead of disappearing beneath the selected centre card. */
.step-package .pk-car .pk-card3.stage-right .pkc-name,
.step-package .pk-car .pk-card3.stage-right .pkc-price{
  align-self:flex-end;width:clamp(112px,42%,150px);text-align:right;
}

@media(max-width:760px){
  .step-package .pk-car .pk-card3.stage-right .pkc-name,
  .step-package .pk-car .pk-card3.stage-right .pkc-price{width:72px}
}

/* FLOW v67 — compact occasion-matched proof on screen two. One voice and one
   factual activity signal replace the previous three-card wall. */
.step-name .name-proof-layout{
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(250px,.92fr);
  align-items:center;gap:1rem;width:min(760px,100%);margin:.65rem auto 0;
}
.step-name .name-inputs{min-width:0}
.step-name .name-inputs .f-field{width:100%;margin-top:.55rem}
.step-name .name-inputs .f-field:first-child{margin-top:0}
.occasion-signal{
  position:relative;min-width:0;padding:.86rem .92rem .68rem;text-align:left;
  border:1px solid rgba(226,196,142,.24);border-radius:16px;
  background:linear-gradient(145deg,rgba(226,196,142,.1),rgba(7,11,23,.78));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 14px 34px rgba(0,0,0,.25);
}
html.cap .occasion-signal{padding:.86rem .92rem .68rem!important}
.occasion-signal .os-top{display:flex;align-items:center;justify-content:space-between;gap:.65rem}
.occasion-signal .os-reviewer{display:flex;align-items:center;gap:.65rem;min-width:0}
.occasion-signal .os-reviewer>img{
  width:42px;height:42px;flex:none;border-radius:50%;object-fit:cover;
  border:1px solid rgba(226,196,142,.46);box-shadow:0 0 0 3px rgba(226,196,142,.07),0 7px 18px rgba(0,0,0,.3);
}
.occasion-signal .os-reviewer-copy{display:flex;flex-direction:column;gap:.13rem;min-width:0}
.occasion-signal .os-reviewer-copy .os-stars{font-size:.62rem;line-height:1;color:var(--gold);letter-spacing:.1em;text-shadow:0 0 10px rgba(226,196,142,.3)}
.occasion-signal .os-reviewer-copy>div{display:flex;align-items:baseline;gap:.38rem;min-width:0}
.occasion-signal .os-reviewer-copy strong{font-size:.7rem;color:var(--ink);font-weight:600;white-space:nowrap}
.occasion-signal .os-reviewer-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:.46rem;letter-spacing:.07em;text-transform:uppercase;color:var(--silver-dim)}
.occasion-signal .os-stars{
  color:var(--gold);font-size:.66rem;letter-spacing:.12em;white-space:nowrap;
  text-shadow:0 0 12px rgba(226,196,142,.35);
}
.occasion-signal .os-kicker{
  color:var(--gold);font-family:var(--mono);font-size:.47rem;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
}
.occasion-signal .os-context{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-family:var(--mono);font-size:.47rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--silver-dim);
}
.occasion-signal blockquote{
  margin:.58rem 0 0;font-family:var(--serif);font-size:1rem;
  line-height:1.34;font-style:italic;color:var(--ink);
}
.occasion-signal .os-foot{display:flex;align-items:center;gap:.46rem;min-width:0}
.occasion-signal .os-avatar{
  width:25px;height:25px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-family:var(--serif);font-size:.82rem;color:#191307;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));
}
.occasion-signal .os-person{display:flex;flex-direction:column;min-width:0;line-height:1.1}
.occasion-signal .os-person b{font-size:.67rem;color:var(--ink);font-weight:600}
.occasion-signal .os-person small{font-size:.48rem;color:var(--silver-dim);white-space:nowrap}
.occasion-signal .os-activity{
  margin-left:0;display:flex;align-items:center;justify-content:center;gap:.38rem;min-width:0;width:100%;
  padding:.42rem .62rem;border:1px solid rgba(226,196,142,.24);border-radius:999px;
  background:rgba(3,6,14,.42);font-family:var(--mono);font-size:.68rem;font-weight:600;
  line-height:1.25;letter-spacing:.035em;text-align:center;color:var(--ink);white-space:normal;
}
.occasion-signal .os-activity i{width:5px;height:5px;flex:none;border-radius:50%;background:var(--gold)}
.occasion-signal .os-activity.is-live i{background:#77d992;box-shadow:0 0 8px rgba(119,217,146,.75)}
.occasion-signal .os-disclosure{
  margin:.38rem 0 0;text-align:right;font-family:var(--mono);font-size:.35rem;
  letter-spacing:.09em;text-transform:uppercase;color:rgba(154,162,184,.55);
}

@media(max-width:760px){
  .step-name .name-proof-layout{grid-template-columns:1fr;gap:.48rem;margin-top:.48rem}
  .step-name .name-inputs .f-field{margin-top:.45rem}
  .occasion-signal{padding:.58rem .68rem .48rem;border-radius:14px}
  html.cap .occasion-signal{padding:.58rem .68rem .48rem!important}
  .occasion-signal blockquote{
    margin:.4rem 0 0;font-size:.82rem;line-height:1.28;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .occasion-signal .os-stars{font-size:.58rem}
  .occasion-signal .os-kicker{font-size:.41rem}
  .occasion-signal .os-context{font-size:.41rem}
  .occasion-signal .os-avatar{width:22px;height:22px;font-size:.72rem}
  .occasion-signal .os-person b{font-size:.61rem}
  .occasion-signal .os-person small{font-size:.43rem}
  .occasion-signal .os-activity{font-size:.59rem;padding:.34rem .46rem}
  .occasion-signal .os-disclosure{font-size:.31rem;margin-top:.28rem}
  .f-proof-kicker{font-size:.67rem;padding:.66rem .76rem;margin-bottom:.68rem;gap:.46rem}
  .f-proof-kicker strong{font-size:1.32rem}
  .occasion-signal .os-reviewer>img{width:42px;height:42px}
  .occasion-signal .os-reviewer-copy .os-stars{font-size:.62rem}
  .occasion-signal .os-reviewer-copy strong{font-size:.7rem}
  .occasion-signal .os-reviewer-copy small{font-size:.43rem}
  .step-name .f-nav{margin-top:.52rem}
}

@media(max-width:360px){
  .occasion-signal .os-person small{display:none}
  .occasion-signal .os-activity{font-size:.55rem}
  .f-proof-kicker{font-size:.62rem;letter-spacing:.035em}
  .f-proof-kicker strong{font-size:1.24rem}
}

/* ============================================================
   FLOW v68 — legibility pass (reference: songmade /create).
   Inside the flow: Outfit for text, Playfair Display for titles,
   a larger type scale, brighter secondary colour, no viewport
   zoom-shrink (the page scrolls when a step needs it, the CTA
   stays sticky), social proof as real modules, packages as a
   one-glance comparison matrix.
   ============================================================ */
@font-face{font-family:'Outfit';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/outfit-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Outfit';font-style:normal;font-weight:400 800;font-display:swap;src:url(fonts/outfit-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500 800;font-display:swap;src:url(fonts/playfair-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500 800;font-display:swap;src:url(fonts/playfair-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500 800;font-display:swap;src:url(fonts/playfair-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* --- tokens: the flow gets its own faces and a brighter secondary --- */
body.funnel-page{
  --sans:'Outfit','Segoe UI',-apple-system,'Helvetica Neue',Arial,sans-serif;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --mono:'Outfit','Segoe UI',Arial,sans-serif;
  --silver:#b9c1d6;
  --silver-dim:#8c96b1;
  font-family:var(--sans);font-size:17px;line-height:1.5;font-feature-settings:normal;
}

/* --- the page scrolls again: no fixed 100dvh cage, no zoom-shrink --- */
body.funnel-page{height:auto;min-height:100vh;min-height:100svh;max-height:none;overflow-x:clip;overflow-y:visible}
.funnel-page .funnel-shell{
  height:auto;min-height:100vh;min-height:100svh;max-height:none;overflow:visible;
  display:flex;flex-direction:column;padding:5rem 1.1rem 1.2rem;
}
.funnel-page #fsteps{display:flex;flex-direction:column;flex:1;height:auto;min-height:0;max-height:none;overflow:visible}
.funnel-page .fstep{height:auto;min-height:0;max-height:none;overflow:visible;flex:1;justify-content:center;padding:.6rem 0}
.funnel-page .fstep-inner{max-height:none;zoom:var(--fit-zoom,1)!important;width:100%}
.funnel-page .sw-card{zoom:1!important;max-height:calc(100dvh - 2rem);overflow:auto;width:min(520px,100%)}

/* --- type scale --- */
.funnel-page h1,.funnel-page h2,.funnel-page h3,.funnel-page .serif{font-family:var(--serif);font-weight:700;letter-spacing:-.005em;line-height:1.12}
.funnel-page .fstep h1{font-size:clamp(1.95rem,6.4vw,2.7rem);margin-bottom:.75rem;color:var(--ink)}
.funnel-page .in-slide h1{font-size:clamp(1.6rem,6.8vw,2.6rem)}
.funnel-page .step-package h1{font-size:clamp(1.45rem,6vw,2.3rem);margin-bottom:.4rem}
.funnel-page .fstep .hint{font-size:1.06rem;line-height:1.5;color:var(--silver);font-weight:400;margin-bottom:1.5rem;max-width:32em}
.funnel-page .in-star{font-size:2.6rem;margin-bottom:.9rem}

.funnel-page .btn{font-family:var(--sans);font-size:1.02rem;font-weight:700;letter-spacing:.01em;text-transform:none;min-height:52px;padding:.9rem 1.8rem;line-height:1.2}
.funnel-page .btn.big{font-size:1.12rem;padding:1.02rem 2.2rem;min-height:56px}
.funnel-page .btn.ghost,.funnel-page .btn.line{font-weight:600}
.funnel-page .fstep .f-nav .btn{font-size:1.12rem;padding:1.02rem 1.4rem}
.funnel-page .f-nav{margin-top:1.4rem}
.funnel-page .f-back{font-size:.95rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--silver)}
.funnel-page .f-back:hover{color:var(--ink)}
.funnel-page #fIdea{font-size:.95rem!important;padding:.75rem 1.4rem!important}

.funnel-page .fh-step{font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--silver)}
.funnel-page .funnel-head .brand{font-family:var(--serif);font-weight:700;letter-spacing:.2em;font-size:1rem}
.funnel-page .brand-sub{font-family:var(--sans);font-weight:600;letter-spacing:.16em;font-size:.52em}
.funnel-page .fh-back{width:36px;height:36px;font-size:1.05rem;color:var(--ink);border-color:rgba(244,241,233,.32)}

.funnel-page .f-field label{font-family:var(--sans);font-size:.98rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:.5rem;line-height:1.3}
.funnel-page .f-field label span{font-weight:400;color:var(--silver);font-size:.88rem;opacity:1!important}
.funnel-page input[type=text],.funnel-page input[type=date],.funnel-page input[type=email],.funnel-page input[type=time],.funnel-page textarea,.funnel-page select{
  font-family:var(--sans);font-size:1.12rem;font-weight:500;padding:.95rem 1.1rem;
  border-color:rgba(244,241,233,.24);background:rgba(3,5,9,.62);color:var(--ink);
}
.funnel-page input::placeholder,.funnel-page textarea::placeholder{color:#7f889c;font-weight:400}
.funnel-page .f-field textarea{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.15rem;line-height:1.5}
.funnel-page .f-subnote{font-size:.9rem;color:var(--silver);margin-top:.5rem}
.funnel-page .f-err{font-size:.92rem}
.funnel-page .chip{font-size:1rem;font-weight:600;padding:1rem .6rem}

.funnel-page .f-kicker{font-family:var(--sans);font-size:.86rem;font-weight:700;letter-spacing:.03em;text-transform:none;color:var(--gold-2);padding:.5rem 1.05rem;line-height:1.3;margin-bottom:1rem}
.funnel-page .f-proof-kicker{font-size:.96rem;font-weight:600;letter-spacing:0;color:var(--ink);padding:.7rem 1.1rem;gap:.6rem;width:min(520px,100%);margin-bottom:1rem}
.funnel-page .f-proof-kicker strong{font-family:var(--serif);font-size:1.45rem;font-weight:700;color:var(--gold-2)}
.funnel-page .f-proof-kicker span{line-height:1.25}

/* occasion index */
.funnel-page .step-occasion .o3-label{font-family:var(--serif);font-weight:700;font-size:1.15rem;letter-spacing:0}
.funnel-page .step-occasion .o3-line{font-size:.86rem;color:var(--silver)}
.funnel-page .step-occasion .o3-sym{width:40px;height:40px;font-size:1.05rem}
.funnel-page .step-occasion .occ3{padding:.85rem .8rem}

/* the star chooser */
.funnel-page .ch-list .cand-con{font-family:var(--serif);font-weight:700;font-size:1.18rem;letter-spacing:0}
.funnel-page .ch-list .cand-meta{font-family:var(--sans);font-size:.86rem!important;letter-spacing:0;color:var(--silver);white-space:normal;flex-wrap:wrap}
.funnel-page .cand-tag{font-family:var(--sans);font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:none;padding:.16rem .5rem}
.funnel-page .cand-pick{font-family:var(--sans);font-size:.88rem;font-weight:700;letter-spacing:.02em;text-transform:none}
.funnel-page .ch-conlab{font-size:.88rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--silver)}
.funnel-page .ch-tools select{font-size:.98rem;font-weight:500;padding:.6rem .9rem}
.funnel-page .ch-reroll{font-size:.95rem;font-weight:600}
.funnel-page .ch-pair{font-family:var(--sans);font-style:normal;font-size:.95rem;font-weight:500}

/* searching + reveal */
.funnel-page .searching .msg{font-family:var(--serif);font-weight:500;font-style:italic;font-size:1.35rem;color:var(--silver)}
.funnel-page .f-reveal .found{font-family:var(--sans);font-size:.85rem;font-weight:700;letter-spacing:.16em}
.funnel-page .f-reveal .rev-name{font-family:var(--serif);font-weight:700;letter-spacing:.06em}
.funnel-page .f-reveal .rev-sub{font-size:1.05rem}
.funnel-page .rev-duo{font-size:.95rem}
.funnel-page .rev-data{font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--silver)}
.funnel-page .rev-data b{font-family:var(--sans);font-size:1.05rem;font-weight:600;letter-spacing:0;text-transform:none}
.funnel-page .f-trust{font-size:.88rem;color:var(--silver);gap:.5rem 1.2rem}
.funnel-page .f-pairline{font-size:.88rem;letter-spacing:.02em}

/* checkout */
.funnel-page .co-box .co-h{font-family:var(--sans);font-size:.84rem;font-weight:700;letter-spacing:.06em;color:var(--silver)}
.funnel-page .co-acc .cs-t{font-family:var(--sans);font-size:.84rem;font-weight:700;letter-spacing:.06em;color:var(--silver)}
.funnel-page .co-acc .cs-sub{font-size:.95rem}
.funnel-page .co-acc .cs-total{font-family:var(--serif);font-weight:700;font-size:1.3rem}
.funnel-page .co-box .row{font-size:.95rem;color:var(--silver)}
.funnel-page .co-box .row b{font-weight:600}
.funnel-page .co-box .row.total b{font-family:var(--serif);font-weight:700;font-size:1.5rem}
.funnel-page .co-sub{font-family:var(--sans);font-size:.82rem;letter-spacing:.01em}
.funnel-page .step-checkout .chip{font-size:.92rem!important;padding:.85rem .45rem!important}
.funnel-page .co-consent{font-size:.88rem;line-height:1.45;color:var(--silver)}
.funnel-page .co-consent a{color:var(--gold-2)}
.funnel-page .co-capability{font-size:.86rem;line-height:1.45}
.funnel-page .pay-btn{font-family:var(--sans);font-size:1.1rem;font-weight:700;padding:1rem 1rem;min-height:54px}
.funnel-page .co-box .co-note,.funnel-page .co-note{font-size:.84rem;line-height:1.45;color:var(--silver-dim)}
.funnel-page .co-note a{color:var(--gold)}
.funnel-page .bump{font-size:.98rem}
.funnel-page .co-marks i{font-size:.78rem}
.funnel-page .f-err#coErr{font-size:.92rem}

/* success + share */
.funnel-page .share-box .shb-l{font-family:var(--sans);font-size:.88rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--silver)}
.funnel-page .share-box input{font-family:var(--sans);font-size:.92rem}
.funnel-page .share-box .btn{font-size:.92rem;padding:.8rem 1.2rem}
.funnel-page .step-success .f-nav .btn{font-size:.98rem!important;padding:.85rem 1.1rem!important}
.funnel-page .step-success .hint b{font-family:var(--sans);letter-spacing:0}

/* switch popup */
.funnel-page .sw-kick{font-family:var(--sans);font-size:.86rem;font-weight:700;letter-spacing:.03em;text-transform:none}
.funnel-page .sw-card h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.45rem,4.4vw,1.9rem)}
.funnel-page .sw-body{font-size:1rem;line-height:1.55;color:var(--silver)}
.funnel-page .sw-lose li{font-size:.94rem;color:var(--silver)}
.funnel-page .sw-note{font-family:var(--sans);font-size:.88rem;letter-spacing:0;text-transform:none;color:var(--silver)}
.funnel-page .sw-go{font-size:.94rem;color:var(--silver)}

/* --- intro: how it works + rating row (the reference's proof module) --- */
.in-how{
  width:min(560px,100%);margin:1.3rem auto 0;padding:.95rem .8rem .9rem;
  border:1px solid rgba(244,241,233,.16);border-radius:18px;
  background:rgba(9,14,28,.74);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:var(--light-top),0 14px 34px rgba(0,0,0,.28);text-align:center;
}
.in-how-t{font-family:var(--serif);font-weight:700;font-size:1.02rem;color:var(--ink);margin:0 0 .85rem;text-align:center}
.in-how-t i{font-style:normal;color:var(--gold);margin:0 .45rem;font-size:.9rem}
.in-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.in-how-step{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;padding:0 .15rem;min-width:0}
.in-how-step+.in-how-step::before{content:"→";position:absolute;left:-.72rem;top:.85rem;color:var(--gold);font-size:1rem;font-weight:700;line-height:1}
.in-how-ic{
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:rgba(226,196,142,.12);border:1px solid rgba(226,196,142,.38);color:var(--gold-2);
  box-shadow:0 0 18px rgba(226,196,142,.14);
}
.in-how-ic svg{width:22px;height:22px}
.in-how-n{
  width:22px;height:22px;border-radius:50%;margin-top:-.95rem;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;
  font-size:.78rem;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.45);
}
.in-how-l{font-size:.9rem;font-weight:700;color:var(--ink);line-height:1.2}
.in-how-s{font-size:.76rem;color:var(--silver);line-height:1.25}

.in-rate{
  width:min(560px,100%);margin:.6rem auto 0;padding:.65rem .95rem;
  display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  border:1px solid rgba(244,241,233,.16);border-radius:16px;
  background:rgba(9,14,28,.74);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:var(--light-top),0 10px 26px rgba(0,0,0,.24);text-align:left;
}
.in-rate-l{display:flex;align-items:center;gap:.6rem;min-width:0}
.in-rate .r-stars{color:var(--gold);font-size:1rem;letter-spacing:.08em;text-shadow:0 0 10px rgba(226,196,142,.5);white-space:nowrap;line-height:1}
.in-rate b{font-family:var(--serif);font-weight:700;font-size:1.15rem;color:var(--ink);line-height:1}
.in-rate-sep{width:1px;height:22px;background:rgba(244,241,233,.22);flex:none}
.in-rate-txt{font-size:.92rem;font-weight:600;color:var(--silver);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.in-rate-txt strong{color:var(--ink);font-weight:700}
.in-rate.is-live .in-rate-txt strong{color:#9fe3b6}
.in-avs{display:flex;flex:none}
.in-avs i{
  width:34px;height:34px;border-radius:50%;margin-left:-9px;display:grid;place-items:center;
  font-family:var(--serif);font-style:normal;font-weight:700;font-size:.9rem;color:#171207;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));border:2px solid #0b1020;
}
.in-avs i:first-child{margin-left:0}
.in-avs i:nth-child(2){background:linear-gradient(135deg,#d3dcf5,#8f9cc5)}
.in-avs i:nth-child(3){background:linear-gradient(135deg,#f3dfcf,#c9a48f)}
.in-trust{margin:.8rem auto 0;display:flex;justify-content:center;flex-wrap:wrap;gap:.3rem 1.2rem;font-size:.86rem;color:var(--silver)}
.in-trust span::before{content:"✓";color:var(--good);margin-right:.4em;font-weight:700}

/* --- screen two: a named voice, readable --- */
.funnel-page .occasion-signal{
  padding:1rem 1.05rem .95rem;border-radius:16px;border-color:rgba(226,196,142,.32);
  background:linear-gradient(145deg,rgba(226,196,142,.13),rgba(9,14,28,.88));
}
.funnel-page .occasion-signal .os-reviewer{gap:.75rem;align-items:center}
.funnel-page .occasion-signal .os-av{
  width:44px;height:44px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-family:var(--serif);font-weight:700;font-size:1.15rem;color:#171207;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));
  box-shadow:0 0 0 3px rgba(226,196,142,.14),0 6px 16px rgba(0,0,0,.3);
}
.funnel-page .occasion-signal .os-reviewer-copy{gap:.2rem}
.funnel-page .occasion-signal .os-reviewer-copy .os-stars{font-size:.82rem;letter-spacing:.08em}
.funnel-page .occasion-signal .os-reviewer-copy>div{flex-wrap:wrap;gap:.2rem .45rem}
.funnel-page .occasion-signal .os-reviewer-copy strong{font-size:1rem;font-weight:700;color:var(--ink);white-space:normal}
.funnel-page .occasion-signal .os-reviewer-copy small{font-family:var(--sans);font-size:.84rem;letter-spacing:0;text-transform:none;color:var(--silver);white-space:normal;overflow:visible}
.funnel-page .occasion-signal .os-reviewer-copy small::before{content:"· ";color:var(--silver-dim)}
.funnel-page .occasion-signal blockquote{
  margin:.7rem 0 0;font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.08rem;line-height:1.42;color:var(--ink);
  display:block;-webkit-line-clamp:unset;overflow:visible;
}

/* --- packages: one-glance matrix --- */
.pkx{
  width:min(760px,100%);margin:.9rem auto 0;overflow:hidden;
  border:1px solid rgba(244,241,233,.18);border-radius:20px;
  background:rgba(8,12,24,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:var(--light-top),0 18px 50px rgba(0,0,0,.36);
}
.pkx-head{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));align-items:stretch;border-bottom:1px solid rgba(244,241,233,.18)}
.pkx-corner{padding:.9rem;display:flex;align-items:flex-end;font-size:.86rem;font-weight:600;color:var(--silver);line-height:1.3;text-align:left}
.pkx-col{
  position:relative;appearance:none;-webkit-appearance:none;background:transparent;border:0;border-left:1px solid var(--line);
  padding:.65rem .5rem .7rem;display:flex;flex-direction:column;align-items:center;gap:.26rem;
  text-align:center;cursor:pointer;color:var(--ink);transition:background .3s,box-shadow .3s;border-radius:0;
}
.pkx-col:hover{background:rgba(226,196,142,.07)}
.pkx-col:focus-visible{outline:none;box-shadow:inset 0 0 0 2px rgba(226,196,142,.8)}
.pkx-col.cur{background:linear-gradient(180deg,rgba(226,196,142,.22),rgba(226,196,142,.09));box-shadow:inset 0 0 0 1.5px rgba(226,196,142,.8)}
.pkx-flag{
  font-size:.64rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1;
  padding:.28rem .55rem;border-radius:2rem;white-space:nowrap;margin-bottom:.1rem;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#171207;
}
.pkx-flag.pop{background:rgba(244,241,233,.16);color:var(--ink)}
.pkx-flag.yours{background:linear-gradient(135deg,#b8e0c2,#93dcab);color:#0d1f14}
.pkx-flag.ghost{visibility:hidden}
.pkx-photo{width:100%;height:84px;aspect-ratio:auto;object-fit:cover;display:block;border-radius:10px;border:1px solid rgba(244,241,233,.12);margin-bottom:.25rem}
.pkx-n{font-family:var(--serif);font-weight:700;font-size:1.08rem;line-height:1.1;color:var(--ink);letter-spacing:0}
.pkx-col.cur .pkx-n{color:var(--gold-2)}
.pkx-p{font-size:1.28rem;font-weight:800;line-height:1;color:var(--ink);letter-spacing:-.01em}
.pkx-p s{font-size:.8rem;font-weight:500;color:var(--silver-dim);margin-left:.3rem}
.pkx-tag{font-size:.76rem;color:var(--silver);line-height:1.2}
.pkx-rows{display:grid}
.pkx-row{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));align-items:stretch;border-top:1px solid var(--line)}
.pkx-row:first-child{border-top:0}
.pkx-lab{padding:.52rem .9rem;font-size:.94rem;font-weight:500;color:var(--ink);line-height:1.25;text-align:left;display:flex;align-items:center}
.pkx-row.hi .pkx-lab{font-weight:700}
.pkx-cell{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--line);min-height:38px}
.pkx-cell.cur{background:rgba(226,196,142,.09)}
.pkx-ok{
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;
  font-size:.72rem;font-weight:800;color:#171207;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));box-shadow:0 2px 8px rgba(226,196,142,.3);
}
.pkx-no{font-style:normal;color:var(--silver-dim);font-size:1rem;opacity:.75}
.funnel-page .step-package .pk-switch-note{display:block;font-size:.9rem;color:var(--silver);margin:.7rem auto 0;text-align:center;max-width:30em}
.funnel-page .step-package .fstep-inner{width:100%}
.funnel-page .step-package .f-nav{margin-top:1rem}
/* the checkout button rides along while the matrix scrolls — on every width */
.funnel-page .step-package .f-nav.sticky-m{position:sticky;bottom:1rem;z-index:6}
@media(min-width:641px){
  .funnel-page .step-package .f-nav.sticky-m .btn{box-shadow:0 14px 36px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.38)}
}

/* --- phones --- */
@media(max-width:760px){
  .funnel-page .funnel-shell{padding:4.7rem .85rem 1rem}
  .funnel-page .fstep{padding:.3rem 0}
  .funnel-page .fstep h1{font-size:clamp(1.85rem,7.4vw,2.2rem);margin-bottom:.6rem}
  .funnel-page .in-slide h1{font-size:clamp(1.55rem,7.2vw,2rem)}
  .funnel-page .step-package h1{font-size:clamp(1.4rem,6.4vw,1.8rem);margin-bottom:.3rem}
  .funnel-page .fstep .hint{font-size:1rem;margin-bottom:1.1rem}
  .funnel-page .f-nav{margin-top:1rem}
  .funnel-page .f-nav+.f-nav{margin-top:.5rem!important}
  .funnel-page .f-field{margin-bottom:.9rem}
  .funnel-page .f-kicker{margin-bottom:.8rem}
  .funnel-page .f-proof-kicker{font-size:.9rem;padding:.6rem .95rem;margin-bottom:.8rem}
  .funnel-page .f-proof-kicker strong{font-size:1.3rem}

  .in-how{margin-top:1rem;padding:.85rem .6rem .8rem}
  .in-how-t{font-size:.98rem;margin-bottom:.7rem}
  .in-how-grid{gap:.5rem}
  .in-how-step+.in-how-step::before{left:-.6rem;top:.8rem;font-size:.9rem}
  .in-how-ic{width:42px;height:42px}
  .in-how-ic svg{width:20px;height:20px}
  .in-how-l{font-size:.86rem}
  .in-how-s{font-size:.74rem}
  .in-rate{padding:.6rem .8rem;gap:.6rem}
  .in-rate .r-stars{font-size:.92rem;letter-spacing:.06em}
  .in-rate b{font-size:1.08rem}
  .in-rate-txt{font-size:.88rem}
  .in-avs i{width:31px;height:31px;font-size:.84rem;margin-left:-8px}
  .in-trust{font-size:.84rem;gap:.25rem 1rem;margin-top:.7rem}

  .funnel-page .step-name .name-proof-layout{gap:.75rem;margin-top:.5rem}
  .funnel-page .occasion-signal{order:-1;padding:.85rem .95rem .8rem;border-radius:14px}
  .funnel-page .occasion-signal .os-av{width:40px;height:40px;font-size:1.05rem}
  .funnel-page .occasion-signal .os-reviewer-copy strong{font-size:.98rem}
  .funnel-page .occasion-signal .os-reviewer-copy small{font-size:.82rem}
  .funnel-page .occasion-signal blockquote{font-size:1rem;line-height:1.38;margin-top:.6rem}
  .funnel-page .step-name .f-nav{margin-top:.9rem}

  .funnel-page .ch-list .cand{padding:.7rem .85rem}
  .funnel-page .ch-list .cand-con{font-size:1.08rem}
  .funnel-page .ch-list .cand-meta{font-size:.8rem!important}
  .funnel-page .ch-tools select{font-size:.9rem}
  .funnel-page .ch-reroll{font-size:.88rem}

  .pkx{margin-top:.6rem;border-radius:16px}
  .pkx-head,.pkx-row{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))}
  .pkx-corner{padding:.55rem .6rem;font-size:.74rem}
  .pkx-col{padding:.55rem .28rem .6rem;gap:.2rem}
  .pkx-photo{border-radius:7px;height:54px}
  .pkx-flag{font-size:.52rem;padding:.2rem .4rem;letter-spacing:.02em}
  .pkx-n{font-size:.84rem;letter-spacing:-.01em}
  .pkx-p{font-size:1.06rem}
  .pkx-p s{display:none}
  .pkx-tag{display:none}
  .pkx-lab{padding:.5rem .6rem;font-size:.84rem}
  .pkx-cell{min-height:36px}
  .pkx-ok{width:19px;height:19px;font-size:.62rem}
  .funnel-page .step-package .pk-switch-note{font-size:.84rem;margin-top:.6rem}
  .funnel-page .step-package .f-nav{margin-top:.8rem}

  .funnel-page .step-checkout .co-consent{font-size:.86rem;line-height:1.45}
  .funnel-page .step-checkout .co-box .co-note{font-size:.82rem;padding:0 .85rem .6rem}
  .funnel-page .step-checkout .pay-btn{padding:.95rem .8rem}
}
@media(max-width:360px){
  .pkx-head,.pkx-row{grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr))}
  .pkx-n{font-size:.78rem}
  .pkx-photo{height:46px}
  .pkx-p{font-size:.98rem}
  .pkx-lab{font-size:.8rem;padding:.45rem .5rem}
  .in-how-l{font-size:.8rem}
  .in-how-s{font-size:.7rem}
  .in-avs{display:none}
}

/* FLOW v68.1 — review fixes: wrap-safe proof row, data-driven package badge,
   extras line, labelled marks, visible focus rings, 14px floor on phones. */
.in-rate-txt{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2}
.in-rate-l{flex-wrap:wrap;row-gap:.2rem}
.in-rate-ic{color:var(--gold);font-size:1.1rem;line-height:1;text-shadow:0 0 10px rgba(226,196,142,.5)}
.pkx-flag-s{display:none}
.pkx-extra{margin:.6rem auto 0;text-align:center;font-size:.9rem;font-weight:600;color:var(--gold-2);max-width:32em}
.pkx-col:focus-visible,.pkx-col.cur:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.funnel-page .btn.solid:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.funnel-page .pay-btn:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
@media(max-width:760px){
  .pkx-flag-l{display:none}
  .pkx-flag-s{display:inline}
  .pkx-lab{font-size:.88rem}
  .pkx-corner{font-size:.8rem}
  .funnel-page .rev-data{font-size:.8rem}
  .funnel-page .ch-list .cand-meta{font-size:.84rem!important}
  .funnel-page .cand-tag{font-size:.72rem}
  .in-how-s{font-size:.78rem}
  .in-trust{font-size:.86rem}
  .funnel-page .occasion-signal .os-reviewer-copy small{font-size:.86rem}
  .funnel-page .co-sub{font-size:.84rem}
  .funnel-page .step-checkout .co-consent{font-size:.88rem}
  .funnel-page .step-package .pk-switch-note{font-size:.88rem}
  .funnel-page .fh-step{font-size:.82rem}
}

/* FLOW v68.2 — one screen per step on phones. Nothing zooms: spacing, photos
   and secondary lines give way first; text never drops below ~13.4px. Three
   height tiers: ≤820 (tall phones), ≤740 (iPhone SE/8 class), ≤660 (short). */
@media(max-width:760px) and (max-height:820px){
  .funnel-page .step-package .pk-switch-note{display:none}
  .pkx-lab{padding:.42rem .55rem;line-height:1.18}
  .funnel-page .step-package .f-nav{margin-top:.6rem}
}
@media(max-width:760px) and (max-height:740px){
  .funnel-page .funnel-shell{padding-top:4.35rem;padding-bottom:.6rem}
  .funnel-page .fstep{padding:.1rem 0}
  .funnel-page .fstep h1{font-size:clamp(1.6rem,6.6vw,1.9rem);margin-bottom:.45rem}
  .funnel-page .fstep .hint{margin-bottom:.7rem;font-size:.96rem}
  .funnel-page .f-nav{margin-top:.7rem}
  .funnel-page .f-kicker{margin-bottom:.6rem;padding:.42rem .9rem;font-size:.82rem}
  .funnel-page .f-proof-kicker{padding:.5rem .85rem;margin-bottom:.6rem;font-size:.86rem}
  .funnel-page .f-proof-kicker strong{font-size:1.2rem}
  .funnel-page .f-field{margin-bottom:.7rem}
  .funnel-page .f-field label{margin-bottom:.35rem}
  .funnel-page input[type=text],.funnel-page input[type=date],.funnel-page input[type=email],.funnel-page input[type=time],.funnel-page select{padding:.8rem 1rem}
  /* intro */
  .funnel-page .in-star{font-size:2.1rem;margin-bottom:.5rem}
  .in-how{margin-top:.7rem;padding:.7rem .55rem .65rem}
  .in-how-t{margin-bottom:.5rem}
  .in-how-ic{width:38px;height:38px}
  .in-rate{margin-top:.45rem;padding:.5rem .8rem}
  .in-trust{margin-top:.5rem}
  /* name */
  .funnel-page .step-name .name-proof-layout{gap:.55rem;margin-top:.3rem}
  .funnel-page .occasion-signal{padding:.7rem .85rem .65rem}
  .funnel-page .occasion-signal blockquote{margin-top:.45rem;font-size:.96rem;line-height:1.32;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .funnel-page .step-name .chip-grid{grid-template-columns:repeat(3,1fr)!important;gap:.5rem}
  .funnel-page .chip{padding:.78rem .4rem;font-size:.95rem}
  .funnel-page .step-name .f-nav{margin-top:.65rem}
  /* choose */
  .funnel-page .step-choose .f-kicker{display:none}
  .funnel-page .ch-list{gap:.35rem;margin-top:.2rem}
  .funnel-page .ch-list .cand{padding:.55rem .8rem}
  .funnel-page .ch-list .cand-con{font-size:1.02rem}
  .funnel-page .ch-list .cand-meta{font-size:.8rem!important}
  .funnel-page .choose .ch-tools{margin-top:.35rem}
  .funnel-page .choose .f-nav.sticky-m{margin-top:.5rem}
  /* reveal */
  .funnel-page .f-reveal .found{margin-bottom:1rem}
  .funnel-page .f-reveal svg{width:min(300px,66vw);margin-top:1.3rem}
  .funnel-page .rev-data{margin-top:1.3rem}
  .funnel-page .f-reveal .rev-sub{margin-top:.6rem}
  /* package */
  .funnel-page .step-package h1{font-size:clamp(1.25rem,5.6vw,1.5rem);margin-bottom:.25rem}
  .pkx{margin-top:.4rem}
  .pkx-photo{display:none}
  .pkx-col{padding:.5rem .28rem .5rem;gap:.16rem}
  .pkx-corner{padding:.45rem .55rem}
  .pkx-lab{padding:.38rem .55rem;font-size:.84rem;line-height:1.15}
  .pkx-cell{min-height:32px}
  .pkx-ok{width:18px;height:18px}
  .pkx-extra{margin-top:.4rem;font-size:.84rem}
  .funnel-page .step-package .f-nav{margin-top:.55rem}
  /* checkout */
  .funnel-page .step-checkout .f-kicker{display:none}
  .funnel-page .step-checkout .hint{margin-bottom:.5rem}
  .funnel-page .step-checkout .co-acc>summary{padding:.55rem .85rem}
  .funnel-page .step-checkout .co-box .co-h{padding:.45rem .85rem}
  .funnel-page .step-checkout .co-sec{padding:.45rem .85rem}
  .funnel-page .step-checkout .chip{padding:.7rem .4rem!important}
  .funnel-page .step-checkout .co-consent{font-size:.84rem;line-height:1.38}
  .funnel-page .step-checkout .pay-btn{padding:.85rem .8rem;min-height:50px}
  .funnel-page .step-checkout .co-box .co-note{font-size:.78rem;padding:0 .8rem .45rem}
  .funnel-page .co-capability{font-size:.8rem}
}
@media(max-width:760px) and (max-height:660px){
  .in-how-s{display:none}
  .funnel-page .step-name .f-proof-kicker{display:none}
  .funnel-page .step-choose .hint{display:none}
  .funnel-page .step-checkout .hint{display:none}
  .pkx-lab{font-size:.8rem;padding:.32rem .5rem}
  .pkx-cell{min-height:30px}
  .funnel-page .step-package h1{font-size:clamp(1.15rem,5.2vw,1.35rem)}
  .funnel-page .f-reveal svg{width:min(260px,60vw);margin-top:1rem}
  .funnel-page .rev-data{margin-top:1rem}
}
@media(max-width:760px) and (max-height:740px){.funnel-page .step-checkout .pay-stack{gap:.6rem;padding:.8rem .85rem}}

/* ============================================================
   FLOW v69 — fit to viewport (2026-09-03).
   Every step is measured right after it renders. <html> collects
   the cumulative classes fit1 → fit2 → fit3 (spacing, then
   secondary lines and photos, then hints and proof modules) until
   the document no longer scrolls. Only then .fstep-inner receives
   a mild zoom (--fit-zoom, floor .8), and only if even that is not
   enough the page is allowed to scroll — nothing is ever clipped.
   The levels are viewport-agnostic: a laptop with a short window
   gets the same treatment as a phone with its browser chrome.
   Every level is strictly tighter than the v68.2 height tiers, so
   a level never costs height on a phone.
   ============================================================ */
/* transforms of entrance animations must not inflate the measurement */
html.fit-measuring #fsteps,html.fit-measuring #fsteps *{transform:none!important}
/* when the step fits, the viewport must not offer a scrollbar for sub-pixel leftovers */
html.flow-fit{overflow-y:hidden}

/* ---- level 1: spacing gives way first ---- */
html.fit1 .funnel-page .funnel-head .fh-in{padding:.7rem 1rem!important}
html.fit1 .funnel-page .funnel-shell{padding-top:4rem!important;padding-bottom:.55rem!important}
html.fit1 .funnel-page .fstep{padding:0!important}
html.fit1 .funnel-page .fstep h1{margin-bottom:.4rem!important}
html.fit1 .funnel-page .fstep .hint{margin-bottom:.65rem!important}
html.fit1 .funnel-page .f-nav{margin-top:.65rem!important}
html.fit1 .funnel-page .f-nav+.f-nav{margin-top:.35rem!important}
html.fit1 .funnel-page .f-field{margin-bottom:.65rem!important}
html.fit1 .funnel-page .f-field label{margin-bottom:.35rem!important}
html.fit1 .funnel-page .f-field textarea{min-height:96px!important}
html.fit1 .funnel-page .f-kicker{margin-bottom:.55rem!important;padding:.42rem .9rem!important}
html.fit1 .funnel-page .f-proof-kicker{margin-bottom:.55rem!important;padding:.5rem .85rem!important}
html.fit1 .funnel-page .f-err:empty{display:none!important}
html.fit1 .funnel-page .f-err{margin-top:.5rem!important}
html.fit1 .funnel-page .f-trust,html.fit1 .funnel-page .co-trust{margin-top:.55rem!important}
html.fit1 .funnel-page .f-review{margin-top:1rem!important}
html.fit1 .funnel-page .chip{padding:.75rem .4rem!important}
/* intro */
html.fit1 .funnel-page .in-star{font-size:2.1rem!important;margin-bottom:.5rem!important}
html.fit1 .in-how{margin-top:.65rem!important;padding:.65rem .55rem .6rem!important}
html.fit1 .in-how-t{margin-bottom:.45rem!important}
html.fit1 .in-how-ic{width:38px!important;height:38px!important}
html.fit1 .in-rate{margin-top:.45rem!important;padding:.5rem .8rem!important}
html.fit1 .in-trust{margin-top:.45rem!important}
/* name */
html.fit1 .funnel-page .step-name .name-proof-layout{gap:.55rem!important;margin-top:.3rem!important}
html.fit1 .funnel-page .occasion-signal{padding:.7rem .85rem .65rem!important}
html.fit1 .funnel-page .occasion-signal blockquote{margin-top:.45rem!important;line-height:1.32!important}
/* choose */
html.fit1 .funnel-page .ch-list{gap:.3rem!important;margin-top:.2rem!important}
html.fit1 .funnel-page .ch-list .cand{padding:.5rem .75rem!important}
html.fit1 .funnel-page .ch-pair{margin-top:.4rem!important}
html.fit1 .funnel-page .ch-tools{margin-top:.35rem!important}
/* searching */
html.fit1 .funnel-page .searching{padding:1.2rem 0!important}
html.fit1 .funnel-page .searching .orbit{margin-bottom:1.8rem!important}
/* reveal */
html.fit1 .funnel-page .f-reveal .found{margin-bottom:.85rem!important}
html.fit1 .funnel-page .f-reveal svg{width:auto!important;max-width:min(300px,66vw)!important;max-height:22svh!important;margin-top:1rem!important}
html.fit1 .funnel-page .f-reveal .rev-sub{margin-top:.5rem!important}
html.fit1 .funnel-page .rev-duo{margin-top:.55rem!important}
html.fit1 .funnel-page .rev-data{margin-top:1rem!important;gap:.5rem 1.4rem!important}
/* package */
html.fit1 .pkx{margin-top:.4rem!important}
html.fit1 .pkx-corner{padding:.45rem .6rem!important}
html.fit1 .pkx-col{padding:.45rem .3rem!important;gap:.16rem!important}
html.fit1 .pkx-lab{padding:.36rem .6rem!important;line-height:1.18!important}
html.fit1 .pkx-cell{min-height:32px!important}
html.fit1 .funnel-page .step-package .pk-switch-note{display:none!important}
html.fit1 .funnel-page .step-package .f-nav{margin-top:.55rem!important}
/* checkout */
html.fit1 .funnel-page .step-checkout .co-grid{gap:.55rem!important}
html.fit1 .funnel-page .step-checkout .co-box .co-h{padding:.42rem .9rem!important}
html.fit1 .funnel-page .step-checkout .co-sec{padding:.45rem .9rem!important}
html.fit1 .funnel-page .step-checkout .co-acc>summary{padding:.5rem .9rem!important}
html.fit1 .funnel-page .step-checkout .co-box .row{padding:.45rem .9rem!important}
html.fit1 .funnel-page .step-checkout .pay-stack{gap:.5rem!important;padding:.65rem .9rem!important}
html.fit1 .funnel-page .step-checkout .pay-btn{padding:.8rem .8rem!important;min-height:50px!important}
html.fit1 .funnel-page .step-checkout .co-box .co-note{padding:0 .9rem .45rem!important}
html.fit1 .funnel-page .step-checkout .co-marks{margin-top:.4rem!important}
html.fit1 .funnel-page .step-checkout .chip{padding:.65rem .4rem!important}
html.fit1 .funnel-page .step-checkout .fstep-inner>.co-note{padding:0 .5rem!important;margin-top:.4rem!important}
html.fit1 .funnel-page .step-checkout .f-err{margin-top:.35rem!important}
/* success */
html.fit1 .funnel-page .success .big-check{margin-bottom:1rem!important}
html.fit1 .funnel-page .share-box{margin-top:1.2rem!important}
@media(min-width:761px){
  html.fit1 .funnel-page .ch-list{display:grid!important;grid-template-columns:1fr 1fr!important;width:min(720px,100%)!important}
}

/* ---- level 2: secondary lines and photos step aside ---- */
html.fit2 .funnel-page .funnel-head .fh-in{padding:.5rem 1rem!important}
html.fit2 .funnel-page .funnel-shell{padding-top:3.5rem!important;padding-bottom:.4rem!important}
html.fit2 .funnel-page .fstep h1{font-size:clamp(1.45rem,5.6vw,1.9rem)!important;margin-bottom:.3rem!important}
html.fit2 .funnel-page .in-slide h1{font-size:clamp(1.35rem,5.8vw,1.8rem)!important}
html.fit2 .funnel-page .step-package h1{font-size:clamp(1.2rem,5vw,1.5rem)!important}
html.fit2 .funnel-page .fstep .hint{font-size:.96rem!important;margin-bottom:.45rem!important}
html.fit2 .funnel-page .fstep .f-nav .btn{padding:.8rem 1.3rem!important;min-height:48px!important;font-size:1.05rem!important}
html.fit2 .funnel-page .f-nav{margin-top:.55rem!important}
html.fit2 .funnel-page .f-kicker{display:none!important}
html.fit2 .funnel-page .f-trust{display:none!important}
html.fit2 .funnel-page .co-trust{display:none!important}
html.fit2 .funnel-page .f-review:not(.compact){display:none!important}
html.fit2 .funnel-page .chip{padding:.65rem .4rem!important;font-size:.95rem!important}
/* intro */
html.fit2 .funnel-page .in-star{font-size:1.7rem!important;margin-bottom:.3rem!important}
html.fit2 .in-how-s{display:none!important}
html.fit2 .in-trust{display:none!important}
html.fit2 .in-how{margin-top:.5rem!important;padding:.55rem .5rem .5rem!important}
/* name */
html.fit2 .funnel-page .step-name .f-proof-kicker{display:none!important}
html.fit2 .funnel-page .occasion-signal blockquote{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important}
/* choose */
html.fit2 .funnel-page .ch-pair{display:none!important}
html.fit2 .funnel-page .ch-list{gap:.28rem!important}
html.fit2 .funnel-page .ch-list .cand{padding:.42rem .7rem!important}
/* searching */
html.fit2 .funnel-page .searching .orbit{width:110px!important;height:110px!important;margin-bottom:1.2rem!important}
html.fit2 .funnel-page .searching .orbit::after{inset:20px!important}
html.fit2 .funnel-page .searching .orbit .o2{inset:42px!important}
/* reveal */
html.fit2 .funnel-page .f-reveal .found{margin-bottom:.55rem!important}
html.fit2 .funnel-page .f-reveal .rev-name{font-size:clamp(2.2rem,8vw,4rem)!important}
html.fit2 .funnel-page .f-reveal svg{max-width:min(230px,54vw)!important;max-height:17svh!important;margin-top:.7rem!important}
html.fit2 .funnel-page .rev-data{margin-top:.75rem!important}
/* package */
html.fit2 .pkx-photo{display:none!important}
html.fit2 .pkx-tag{display:none!important}
html.fit2 .pkx-p s{display:none!important}
html.fit2 .pkx-cell{min-height:29px!important}
html.fit2 .pkx-lab{padding:.28rem .55rem!important;font-size:.84rem!important;line-height:1.15!important}
html.fit2 .pkx-col{padding:.4rem .28rem!important;gap:.12rem!important}
html.fit2 .pkx-corner{padding:.4rem .55rem!important}
/* checkout */
html.fit2 .funnel-page .step-checkout .co-marks{display:none!important}
html.fit2 .funnel-page .step-checkout .co-box .co-h{padding:.35rem .9rem!important}
html.fit2 .funnel-page .step-checkout .co-sec{padding:.4rem .9rem!important}
html.fit2 .funnel-page .step-checkout .co-acc>summary{padding:.45rem .9rem!important}
html.fit2 .funnel-page .step-checkout .co-acc .row{padding:.4rem .9rem!important;font-size:.88rem!important}
html.fit2 .funnel-page .step-checkout .chip{padding:.55rem .4rem!important}
html.fit2 .funnel-page .step-checkout .pay-stack{gap:.45rem!important;padding:.55rem .9rem!important}
html.fit2 .funnel-page .step-checkout .pay-btn{min-height:46px!important;padding:.7rem .8rem!important}
html.fit2 .funnel-page .step-checkout .co-consent{font-size:.8rem!important;line-height:1.3!important}
html.fit2 .funnel-page .step-checkout .co-box .co-note{font-size:.72rem!important;line-height:1.3!important;padding:0 .9rem .4rem!important}
html.fit2 .funnel-page .step-checkout .fstep-inner>.co-note{font-size:.74rem!important;line-height:1.3!important}
html.fit2 .funnel-page .step-checkout .f-err{font-size:.82rem!important;line-height:1.3!important}
/* misc */
html.fit2 .funnel-page .f-field textarea{min-height:84px!important}
html.fit2 .funnel-page .success .big-check{width:56px!important;height:56px!important;font-size:1.3rem!important;margin-bottom:.7rem!important}
html.fit2 .funnel-page .share-box{margin-top:.8rem!important}
@media(max-width:760px){
  html.fit2 .funnel-page .step-name .chip-grid{grid-template-columns:repeat(3,1fr)!important;gap:.45rem!important}
}
@media(min-width:640px) and (max-height:540px){
  html.fit2 .funnel-page .ch-list{display:grid!important;grid-template-columns:1fr 1fr!important;width:min(720px,100%)!important}
  html.fit2 .funnel-page .chip-grid{grid-template-columns:repeat(4,1fr)!important}
}

/* ---- level 3: hints and proof modules go, every control stays ---- */
html.fit3 .funnel-page .funnel-shell{padding-top:3.3rem!important;padding-bottom:.3rem!important}
html.fit3 .funnel-page .fstep h1{font-size:clamp(1.3rem,5vw,1.7rem)!important;margin-bottom:.25rem!important}
html.fit3 .funnel-page .in-slide h1{font-size:clamp(1.25rem,5.2vw,1.6rem)!important}
html.fit3 .funnel-page .step-package h1{font-size:clamp(1.1rem,4.6vw,1.35rem)!important}
html.fit3 .funnel-page .fstep .hint{display:none!important}
html.fit3 .funnel-page .fstep .f-nav .btn{min-height:44px!important;padding:.65rem 1.2rem!important;font-size:1rem!important}
html.fit3 .funnel-page .f-nav{margin-top:.45rem!important}
html.fit3 .in-how{display:none!important}
html.fit3 .funnel-page .in-star{display:none!important}
html.fit3 .funnel-page .occasion-signal{display:none!important}
html.fit3 .funnel-page .f-review{display:none!important}
html.fit3 .funnel-page .f-field{margin-bottom:.5rem!important}
html.fit3 .funnel-page .f-field textarea{min-height:70px!important}
html.fit3 .funnel-page .chip{padding:.5rem .4rem!important;font-size:.9rem!important}
/* choose */
html.fit3 .funnel-page .ch-list .cand-meta{display:none!important}
html.fit3 .funnel-page .ch-list .cand{padding:.38rem .7rem!important}
html.fit3 .funnel-page .ch-tools .ch-conlab{display:none!important}
/* searching */
html.fit3 .funnel-page .searching .orbit{width:80px!important;height:80px!important;margin-bottom:.9rem!important}
html.fit3 .funnel-page .searching .orbit::after{inset:14px!important}
html.fit3 .funnel-page .searching .orbit .o2{inset:30px!important}
html.fit3 .funnel-page .searching .msg{font-size:1.15rem!important}
/* reveal */
html.fit3 .funnel-page .f-reveal .found{display:none!important}
html.fit3 .funnel-page .f-reveal .rev-name{font-size:clamp(1.8rem,6.5vw,3rem)!important}
html.fit3 .funnel-page .f-reveal svg{max-width:min(170px,40vw)!important;max-height:12svh!important;margin-top:.45rem!important}
html.fit3 .funnel-page .rev-duo{display:none!important}
html.fit3 .funnel-page .rev-data{gap:.35rem .9rem!important;margin-top:.55rem!important}
html.fit3 .funnel-page .rev-data b{font-size:.92rem!important;margin-top:.15rem!important}
/* package */
html.fit3 .pkx-cell{min-height:26px!important}
html.fit3 .pkx-lab{padding:.2rem .5rem!important;font-size:.8rem!important}
html.fit3 .pkx-col{padding:.32rem .25rem!important}
html.fit3 .pkx-corner{padding:.32rem .5rem!important;font-size:.72rem!important}
html.fit3 .pkx-flag{font-size:.5rem!important;padding:.18rem .4rem!important}
html.fit3 .pkx-n{font-size:.9rem!important}
html.fit3 .pkx-p{font-size:1rem!important}
/* checkout */
html.fit3 .funnel-page .step-checkout .co-capability{display:none!important}
html.fit3 .funnel-page .step-checkout .fstep-inner>.co-note{display:none!important}
html.fit3 .funnel-page .step-checkout .co-box .co-h{padding:.3rem .85rem!important}
html.fit3 .funnel-page .step-checkout .co-sec{padding:.35rem .85rem!important}
html.fit3 .funnel-page .step-checkout .co-acc>summary{padding:.4rem .85rem!important}
html.fit3 .funnel-page .step-checkout .chip{padding:.5rem .4rem!important}
html.fit3 .funnel-page .step-checkout .co-consent{font-size:.76rem!important;line-height:1.25!important}
html.fit3 .funnel-page .step-checkout .pay-stack{gap:.4rem!important;padding:.45rem .85rem!important}
html.fit3 .funnel-page .step-checkout .pay-btn{min-height:44px!important;padding:.6rem .8rem!important}
html.fit3 .funnel-page .step-checkout .co-box .co-note{font-size:.68rem!important;padding:0 .85rem .35rem!important}
html.fit3 .funnel-page .step-checkout .f-err{font-size:.78rem!important;margin-top:.25rem!important}
/* success */
html.fit3 .funnel-page .success .big-check{display:none!important}
html.fit3 .funnel-page .share-box{margin-top:.5rem!important}
html.fit3 .funnel-page .share-box .shb-l{margin-bottom:.3rem!important}
@media(min-width:640px) and (max-height:540px){
  html.fit3 .funnel-page .f-reveal svg{display:none!important}
}

/* ================= FLOW v71 — honest proof + visible disclaimer =================
   No rating, testimonials or placeholder counters: the proof row and the
   name-step kicker stay hidden until /api/activity reports real paid entries.
   .f-disclaim is never hidden by the fit levels (it only gets smaller). */
[data-proof-activity][hidden]{display:none!important}
.funnel-page .step-name .name-proof-layout{grid-template-columns:1fr;width:min(520px,100%)}
.funnel-page .f-disclaim{margin:.75rem auto 0;max-width:34rem;font-size:.82rem;line-height:1.4;color:var(--silver-dim);text-align:center}
.funnel-page .pay-stack .f-disclaim{margin:0;max-width:none;text-align:left}
html.fit2 .funnel-page .f-disclaim{font-size:.76rem!important;line-height:1.3!important;margin-top:.45rem!important}
html.fit2 .funnel-page .pay-stack .f-disclaim{margin-top:0!important}
html.fit3 .funnel-page .f-disclaim{font-size:.72rem!important;line-height:1.25!important}

/* ================= v71 legal pages — readable links on terms / refunds / service ================= */
.legal-page main a:not(.btn){color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.legal-page main a:not(.btn):hover{color:var(--gold-2)}
.legal-page .page-list li b{min-width:6.5rem}
/* success: the pair line used to tuck under the hint with -1.2rem and touched it once the hint wrapped */
.funnel-page .success .f-pairline{margin-top:.35rem;margin-bottom:1rem}
.funnel-page .success .f-pairline+.f-subnote{margin-top:0}
/* consent banner (assets/prefs.js): only appears once analytics keys are configured.
   Decline and Accept carry equal weight. Up to 1300px it sits under the fixed header,
   clear of the funnel's sticky continue/checkout buttons; on wide screens it takes the
   bottom-left corner beside the centred column. It stays below full-screen overlays
   (Star Journey 96, modals 140+) and toasts. */
.cc{position:fixed;z-index:90;left:1rem;bottom:1rem;width:min(420px,calc(100vw - 2rem));
  padding:1.1rem 1.2rem 1rem;border-radius:16px;border:1px solid var(--line-strong);
  background:rgba(8,12,26,.96);box-shadow:0 18px 60px rgba(0,0,0,.55),var(--light-top);
  color:var(--ink);font-family:var(--sans);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.cc-t{font-size:.98rem;font-weight:600;margin-bottom:.35rem;color:var(--gold-2)}
.cc-d{font-size:.84rem;line-height:1.5;color:var(--silver)}
.cc-d a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.cc-b{display:flex;gap:.6rem;margin-top:.85rem}
.cc-b .btn{flex:1;justify-content:center;padding:.75rem 1rem;font-size:.78rem}
@media (max-width:1300px){
  .cc{bottom:auto;top:calc(4.6rem + env(safe-area-inset-top,0px))}
}
@media (max-width:720px){
  .cc{left:.75rem;right:.75rem;width:auto;padding:.95rem 1rem .9rem}
  .cc-d{font-size:.8rem}
  .cc-b{margin-top:.7rem}
  .cc-b .btn{padding:.65rem .9rem}
}
