[hidden]{display:none!important}
:root{
  --bg:#f6f3ee; --bg-2:#efebe4; --surface:#fff; --ink:#141414; --ink-2:#55524c; --ink-3:#6f6b64;
  --line:rgba(20,20,20,.09); --glass:rgba(255,255,255,.62);
  --g-blue:#4285f4; --g-red:#ea4335; --g-yellow:#fbbc04; --g-green:#34a853;
  --accent:#e0a526; --ok:#1e7a3c; --err:#b3261e;
  --r-sm:12px; --r:20px; --r-lg:28px;
  --shadow:0 1px 2px rgba(20,20,20,.04),0 12px 32px -12px rgba(20,20,20,.14);
  --shadow-lg:0 2px 4px rgba(20,20,20,.04),0 30px 60px -20px rgba(20,20,20,.22);
  --ease:cubic-bezier(.22,1,.36,1); --serif:"Instrument Serif",Georgia,serif;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1180px; --gut:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-weight:400;line-height:1.05;margin:0;letter-spacing:-.01em}
h1,h2{font-family:var(--serif)}
em{font-style:italic}
main{overflow-x:clip}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.eyebrow::before{content:"";width:18px;height:1px;background:currentColor}

/* buttons */
.btn{--h:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--h);padding:0 24px;border-radius:999px;border:1px solid transparent;font:500 15px/1 var(--sans);text-decoration:none;cursor:pointer;transition:transform .35s var(--ease),background .25s,box-shadow .35s var(--ease);touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.btn svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.btn-dark{background:var(--ink);color:#fff;box-shadow:0 8px 20px -8px rgba(20,20,20,.5)}
.btn-dark:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px rgba(20,20,20,.55)}
.btn-dark:hover svg{transform:translateX(3px) rotate(-45deg)}
.btn-ghost{background:var(--glass);border-color:var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.btn-ghost:hover{background:#fff;transform:translateY(-2px)}
.btn:active{transform:scale(.97)}

/* nav */
.nav{position:fixed;inset:12px 0 auto;z-index:50;pointer-events:none}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px}
.nav>*{pointer-events:auto}
.logo{font:600 17px/1 var(--sans);letter-spacing:-.02em;text-decoration:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px 0 11px;border-radius:999px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);pointer-events:auto}
.logo sup{font-size:10px;color:var(--ink-3)}
.logo-dot{width:22px;height:22px;border-radius:7px;background:var(--ink);display:grid;place-items:center}
.logo-dot svg{width:13px;height:13px}
.nav-links{display:none;gap:4px;padding:5px;border-radius:999px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);pointer-events:auto}
.nav-links a{font-size:14px;text-decoration:none;padding:9px 16px;border-radius:999px;color:var(--ink-2);transition:background .25s,color .25s}
.nav-links a:hover,.nav-links a.active{background:#fff;color:var(--ink)}
.nav .btn{--h:44px;padding:0 18px;font-size:14px;pointer-events:auto}
.nav.scrolled .logo,.nav.scrolled .nav-cta{filter:none}
@media(min-width:900px){.nav-links{display:flex}}

/* hero */
.hero{position:relative;padding:96px 0 28px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-20% -10% auto;height:120%;background:radial-gradient(closest-side at 50% 40%,#fff 0,transparent 70%),radial-gradient(400px 300px at 15% 70%,rgba(66,133,244,.10),transparent 70%),radial-gradient(420px 300px at 85% 60%,rgba(251,188,4,.12),transparent 70%);pointer-events:none}
.hero .wrap{position:relative}
.pill{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:999px;background:var(--glass);border:1px solid var(--line);font-size:13px;color:var(--ink-2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pill b{background:var(--ink);color:#fff;font-weight:500;padding:4px 10px;border-radius:999px;font-size:12px}
.hero h1{font-size:clamp(40px,5.6vw,80px);margin:16px 0 0;max-width:13ch}
.hero h1 em{display:block}
.hero p.lead{max-width:520px;margin:14px 0 0;color:var(--ink-2);font-size:clamp(15px,1.4vw,17px)}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hero-cta .btn{flex:1 1 0;padding:0 14px;white-space:nowrap}
@media(min-width:600px){.hero-cta .btn{flex:0 0 auto;padding:0 24px}}
.stage{position:relative;width:100%;aspect-ratio:804/706;display:none}
@media(min-width:900px){.stage{display:block}}
.stage-img{position:absolute;inset:6% 10% 0;mix-blend-mode:multiply}
.stage-img img{width:100%;height:100%;object-fit:contain}
.chip{position:absolute;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-align:left;font-size:13px;line-height:1.3;will-change:transform}
.chip strong{display:block;font-size:14px;font-weight:600}
.chip span{color:var(--ink-3)}
.chip .ic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--bg)}
.chip .ic svg{width:18px;height:18px}
.chip-1{left:0;top:14%}
.chip-2{right:0;top:6%}
.chip-3{right:2%;bottom:16%}
.chip-4{left:3%;bottom:8%}
.stars{color:var(--accent);letter-spacing:1px;font-size:13px}
@media(max-width:640px){.chip{padding:8px 10px;font-size:11px;border-radius:14px}.chip strong{font-size:12px}.chip .ic{width:28px;height:28px;border-radius:9px}.chip-3,.chip-4{display:none}.chip-1{top:2%}.chip-2{top:auto;bottom:6%}}
.badge-rot{position:absolute;right:max(var(--gut),calc(50% - 560px));top:150px;width:112px;height:112px;display:none}
.badge-rot svg{width:100%;height:100%;animation:spin 22s linear infinite}
.badge-rot .core{position:absolute;inset:0;display:grid;place-items:center}
.badge-rot .core svg{width:22px;height:22px;animation:none}
@keyframes spin{to{rotate:360deg}}
@media(min-width:1100px){.badge-rot{display:block}}
.trust{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;color:var(--ink-3);font-size:14px}
.avatars{display:flex}
.avatars i{width:30px;height:30px;border-radius:50%;border:2px solid var(--bg);margin-left:-8px;display:grid;place-items:center;font:600 11px/1 var(--sans);font-style:normal;color:#fff}
.avatars i:first-child{margin-left:0}

/* entrance */
.in{opacity:0;transform:translateY(18px);filter:blur(4px);animation:in .75s var(--ease) forwards}
@keyframes in{to{opacity:1;transform:none;filter:none}}



/* sections */
section{scroll-margin-top:80px}
.sec{padding:clamp(72px,11vw,140px) 0}
.sec-head{max-width:720px;margin-bottom:clamp(36px,5vw,64px)}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head h2{font-size:clamp(38px,6vw,72px);margin-top:14px}
.sec-head p{color:var(--ink-2);margin:16px 0 0;font-size:17px;max-width:560px}
.sec-head.center p{margin-inline:auto}

/* reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
.rv.show{opacity:1;transform:none}

/* steps */

/* products */
.prod-tabs{display:inline-flex;padding:5px;border-radius:999px;background:var(--surface);border:1px solid var(--line);margin-bottom:28px;box-shadow:var(--shadow)}
.prod-tabs button{min-height:44px;padding:0 20px;border:0;border-radius:999px;background:transparent;font:500 15px var(--sans);color:var(--ink-2);cursor:pointer;transition:background .3s,color .3s}
.prod-tabs button[aria-selected=true]{background:var(--ink);color:#fff}
.panel[hidden]{display:none}
.panel{animation:fade .6s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(12px)}}
.grid-prod{display:grid;gap:16px}
@media(min-width:720px){.grid-prod{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.grid-prod.three{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .5s var(--ease),transform .5s var(--ease);transform-style:preserve-3d}
.card:hover{box-shadow:var(--shadow-lg)}
.card-media{aspect-ratio:1/1;background:#fff;display:grid;place-items:center;padding:22px;overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:contain;transition:transform .8s var(--ease)}
.card:hover .card-media img{transform:scale(1.05)}
.card-media.photo{padding:0;background:#6d6e6c}
.card-media.photo img{object-fit:cover}
.card-body{padding:20px 22px 24px;border-top:1px solid var(--line)}
.card-body h3{font-size:18px;font-weight:600}
.card-body p{margin:6px 0 0;color:var(--ink-2);font-size:14px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tag{font-size:12px;padding:5px 10px;border-radius:999px;background:var(--bg);color:var(--ink-2)}

/* pricing */
.pricing{background:var(--ink);color:#f3f1ec;border-radius:clamp(28px,4vw,48px);margin-inline:clamp(8px,1.5vw,20px);position:relative;overflow:hidden}
.pricing::before{content:"";position:absolute;inset:auto -20% -40% auto;width:700px;height:700px;background:radial-gradient(closest-side,rgba(224,165,38,.10),transparent);pointer-events:none}
.pricing .sec-head p,.pricing .eyebrow{color:#b9b5ad}
.price-grid{display:grid;gap:16px;position:relative}
@media(min-width:760px){.price-grid{grid-template-columns:repeat(3,1fr)}}
.price{border-radius:var(--r-lg);padding:28px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;transition:transform .5s var(--ease),background .4s}
.price:hover{transform:translateY(-6px);background:rgba(255,255,255,.08)}
.price.hot{background:#f6f3ee;color:var(--ink);border-color:transparent}
.price.hot:hover{background:#fff}
.price .lbl{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#b9b5ad}
.price.hot .lbl{color:var(--ink-3)}
.price .badge{font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--accent);color:var(--ink)}
.price .amt{font-family:var(--serif);font-size:clamp(56px,7vw,76px);line-height:1;margin:22px 0 4px;font-variant-numeric:tabular-nums}
.price .amt small{font-family:var(--sans);font-size:16px;margin-left:4px}
.price .per{font-size:14px;color:#b9b5ad}
.price.hot .per{color:var(--ink-3)}
.price ul{list-style:none;padding:0;margin:24px 0 28px;display:grid;gap:10px;font-size:15px}
.price li{display:flex;gap:10px;align-items:flex-start}
.price li svg{flex:none;width:18px;height:18px;margin-top:3px;color:currentColor;opacity:.55}
.price .btn{margin-top:auto;width:100%}
.price:not(.hot) .btn{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.14)}
.price:not(.hot) .btn:hover{background:rgba(255,255,255,.18)}
.menu-price{margin-top:16px;display:grid;gap:24px;align-items:center;border-radius:var(--r-lg);padding:28px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);position:relative}
@media(min-width:760px){.menu-price{grid-template-columns:1.3fr 1fr auto}}
.menu-price h3{font-family:var(--serif);font-size:36px}
.menu-price p{margin:6px 0 0;color:#b9b5ad;font-size:15px}
.menu-price .amt{font-family:var(--serif);font-size:56px;line-height:1}
.menu-price .amt small{font-family:var(--sans);font-size:15px;color:#b9b5ad}

/* guarantee */
.guar{display:grid;gap:32px;align-items:center}
@media(min-width:900px){.guar{grid-template-columns:1fr 1fr}}
.guar ul{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}
.guar li{display:flex;gap:14px;padding:16px 18px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.guar li svg{flex:none;width:22px;height:22px;color:var(--ink);margin-top:2px}
.guar li b{display:block;font-weight:600}
.guar li span{color:var(--ink-2);font-size:15px}

/* faq */
.faq{max-width:820px;margin:0 auto;display:grid;gap:10px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:box-shadow .4s}
.faq details[open]{box-shadow:var(--shadow)}
.faq summary{list-style:none;cursor:pointer;padding:20px 22px;font-weight:500;font-size:17px;display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:56px}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:28px;height:28px;border-radius:50%;background:var(--bg);position:relative;transition:transform .4s var(--ease),background .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:var(--ink);translate:-50% -50%}
.faq summary i::after{rotate:90deg;transition:rotate .4s var(--ease)}
.faq details[open] summary i{background:var(--ink)}
.faq details[open] summary i::before,.faq details[open] summary i::after{background:#fff}
.faq details[open] summary i::after{rotate:0deg}
.faq .ans{padding:0 22px 22px;color:var(--ink-2);font-size:15px}
.faq .ans p{margin:0}

/* order form */
.order{display:grid;gap:24px}
@media(min-width:960px){.order{grid-template-columns:1.35fr .9fr;align-items:start}}
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(20px,3.5vw,36px);box-shadow:var(--shadow)}
fieldset{border:0;padding:0;margin:0 0 26px}
legend{font-weight:600;font-size:15px;margin-bottom:12px;padding:0}
.seg{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.seg.three{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt label{display:flex;flex-direction:column;gap:2px;min-height:56px;justify-content:center;padding:12px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg);cursor:pointer;transition:border-color .25s,background .25s,box-shadow .25s;font-size:15px;font-weight:500}
.opt label small{font-weight:400;color:var(--ink-3);font-size:13px}
.opt input:checked+label{border-color:var(--ink);background:#fff;box-shadow:0 0 0 1px var(--ink)}
.opt input:focus-visible+label{outline:2px solid var(--ink);outline-offset:2px}
.fields{display:grid;gap:14px}
@media(min-width:600px){.fields{grid-template-columns:1fr 1fr}.fields .full{grid-column:1/-1}}
.field label{display:block;font-size:14px;font-weight:500;margin-bottom:6px}
.field label .req{color:var(--err)}
.field input,.field textarea{width:100%;min-height:50px;padding:12px 14px;border-radius:var(--r-sm);border:1px solid rgba(20,20,20,.16);background:#fff;font:400 16px var(--sans);color:var(--ink);transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(20,20,20,.12)}
.field .hint{font-size:13px;color:var(--ink-3);margin-top:5px}
.field .error{font-size:13px;color:var(--err);margin-top:5px;display:none}
.field.invalid input,.field.invalid textarea{border-color:var(--err)}
.field.invalid .error{display:block}
.qty{display:flex;align-items:center;gap:6px;background:var(--bg);border-radius:999px;padding:5px;width:max-content;border:1px solid var(--line)}
.qty button{width:44px;height:44px;border-radius:50%;border:0;background:#fff;font-size:20px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.06);transition:transform .2s}
.qty button:active{transform:scale(.92)}
.qty button:disabled{opacity:.4;cursor:not-allowed}
.qty output{min-width:44px;text-align:center;font-weight:600;font-size:18px;font-variant-numeric:tabular-nums}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2);margin:20px 0}
.consent input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--ink);flex:none}
.form .btn{width:100%;--h:56px;font-size:16px}
.btn[aria-busy=true]{pointer-events:none;opacity:.8}
.spin{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;display:none}
.btn[aria-busy=true] .spin{display:block}
.btn[aria-busy=true] .arrow{display:none}
.status{margin-top:14px;font-size:15px;padding:0;border-radius:var(--r-sm)}
.status.ok{padding:14px 16px;background:#e7f4ec;color:var(--ok)}
.status.bad{padding:14px 16px;background:#fbeaea;color:var(--err)}
.summary{position:sticky;top:90px;background:var(--ink);color:#f3f1ec;border-radius:var(--r-lg);padding:28px;overflow:hidden}
.summary h3{font-family:var(--serif);font-size:32px}
.sum-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:15px}
.sum-row span:first-child{color:#b9b5ad}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px}
.sum-total b{font-family:var(--serif);font-weight:400;font-size:52px;line-height:1;font-variant-numeric:tabular-nums}
.sum-note{font-size:13px;color:#b9b5ad;margin-top:10px}
.sum-save{display:inline-block;margin-top:8px;font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--accent);color:var(--ink);transition:opacity .3s}
.sum-save:empty{opacity:0}
.contact-mini{margin-top:20px;display:grid;gap:8px;font-size:14px}
.contact-mini a{color:#fff;text-decoration:none;display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid rgba(255,255,255,.1);min-height:44px;align-items:center}
.contact-mini a:hover{color:var(--accent)}

/* footer */
.foot{display:grid;gap:32px}
@media(min-width:800px){.foot{grid-template-columns:1.4fr 1fr 1fr}}
.foot h4{margin:0 0 12px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:500}
.foot a{display:block;text-decoration:none;padding:6px 0;color:var(--ink-2)}
.foot a:hover{color:var(--ink)}
.foot-big{font-family:var(--serif);font-size:clamp(34px,5vw,52px);line-height:1.05}
.copy{margin-top:48px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;color:var(--ink-3)}

/* mobile sticky CTA */
.m-cta{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:40;display:flex;transform:translateY(140%);transition:transform .5s var(--ease)}
.m-cta.show{transform:none}
.m-cta .btn{width:100%;--h:54px}
@media(min-width:900px){.m-cta{display:none}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv,.in{opacity:1;transform:none;filter:none}
}

/* ---------- product page ---------- */
a.card{display:block;text-decoration:none;color:inherit}
.card-more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:14px;font-weight:500}
.card-more svg{width:14px;height:14px;transition:transform .35s var(--ease)}
a.card:hover .card-more svg{transform:translateX(4px)}
.pp{padding:104px 0 clamp(56px,8vw,96px)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--ink-3);margin-bottom:22px}
.crumbs a{text-decoration:none;color:var(--ink-2)}
.crumbs a:hover{color:var(--ink)}
.pp-grid{display:grid;gap:clamp(24px,4vw,56px);align-items:start}
@media(min-width:960px){.pp-grid{grid-template-columns:1.15fr 1fr}.viewer{position:sticky;top:88px}}
.viewer{position:relative;aspect-ratio:1/1;border-radius:var(--r-lg);overflow:hidden;background:radial-gradient(120% 90% at 50% 30%,#fff 0,var(--bg-2) 70%);border:1px solid var(--line);box-shadow:var(--shadow)}
.viewer canvas{display:block;width:100%!important;height:100%!important;cursor:grab;outline:none}
.viewer canvas:active{cursor:grabbing}
.v-tools{position:absolute;right:14px;bottom:14px;z-index:3;display:flex;gap:8px}
.v-tools button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid;place-items:center;cursor:pointer;transition:background .25s,transform .25s}
.v-tools button:hover{background:#fff}
.v-tools button:active{transform:scale(.92)}
.v-tools svg{width:18px;height:18px}
.v-hint{position:absolute;left:50%;bottom:20px;translate:-50% 0;z-index:2;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);padding:8px 14px;border-radius:999px;background:var(--glass);border:1px solid var(--line);pointer-events:none;transition:opacity .6s}
.v-hint svg{width:16px;height:16px;animation:nudge 2.4s var(--ease) infinite}
@keyframes nudge{0%,100%{translate:-3px 0}50%{translate:3px 0}}
.viewer.touched .v-hint{opacity:0}
@media(max-width:520px){.v-hint{left:14px;translate:none;bottom:22px}}
.v-stage{position:absolute;inset:0}
.info h1{font-size:clamp(42px,6vw,68px);margin-top:12px}
.info .lead{color:var(--ink-2);font-size:17px;margin:16px 0 0;max-width:52ch}
.p-price{display:flex;align-items:baseline;gap:12px;margin:26px 0 4px}
.p-price b{font-family:var(--serif);font-weight:400;font-size:clamp(48px,6vw,64px);line-height:1;font-variant-numeric:tabular-nums}
.p-price span{color:var(--ink-3);font-size:15px}
.info fieldset{margin:24px 0 0}
.seg.tiers{grid-template-columns:1fr}
@media(min-width:520px){.seg.tiers{grid-template-columns:repeat(3,1fr)}}
.tier label{flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px}
.tier label em{font-style:normal;font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--accent)}
.p-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.p-cta .btn{flex:1 1 220px}
.p-feats{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:12px}
.p-feats li{display:flex;gap:12px;font-size:15px;color:var(--ink-2)}
.p-feats svg{flex:none;width:20px;height:20px;color:var(--ink);margin-top:2px}
.specs{margin:32px 0 0;border-top:1px solid var(--line)}
.specs div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
.specs dt{color:var(--ink-3)}
.specs dd{margin:0}
.p-note{font-size:14px;color:var(--ink-3);margin-top:12px}

/* hero: everything important above the fold */
.hero-grid{display:grid;gap:24px;align-items:center}
@media(min-width:900px){.hero-grid{grid-template-columns:1.05fr 1fr;gap:32px}}
.hero-facts{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:10px;max-width:540px}
.hero-facts li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;color:var(--ink-2)}
.hero-facts b{color:var(--ink);font-weight:600;margin-right:4px}
.hero-facts svg{flex:none;width:18px;height:18px;margin-top:2px;color:var(--ink)}
.quick{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:22px}
@media(min-width:900px){.quick{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:8px}}
.q-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);text-decoration:none;box-shadow:var(--shadow);transition:transform .4s var(--ease),box-shadow .4s var(--ease);min-height:64px}
.q-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.q-item img{flex:none;width:48px;height:48px;border-radius:12px;object-fit:cover;background:#fff}
.q-item span{flex:1;min-width:0;display:grid;line-height:1.25}
.q-item b{font-weight:600;font-size:14px}
.q-item small{font-size:13px;color:var(--ink-3)}
.q-item>svg{flex:none;width:16px;height:16px;color:var(--ink-3);transition:transform .35s var(--ease)}
.q-item:hover>svg{transform:translateX(3px);color:var(--ink)}
@media(max-width:420px){.q-item>svg{display:none}.q-item img{width:40px;height:40px}}
@media(min-width:900px){.q-item{padding:10px 14px 10px 10px}.q-item img{width:56px;height:56px}.q-item b{font-size:15px}}

/* ---------- crafted details ---------- */
/* headings unveil from a mask instead of sliding the whole block */
.sec-head.rv{transform:none}
.sec-head.rv h2{clip-path:inset(0 0 105% 0);transform:translateY(28px);transition:clip-path 1.1s var(--ease) .08s,transform 1.1s var(--ease) .08s}
.sec-head.rv.show h2{clip-path:inset(0 0 -10% 0);transform:none}
.card.rv,.price.rv{transform:translateY(22px) scale(.985)}
.card.rv.show,.price.rv.show{transform:none}

/* process line, drawn by scroll */
.flow{list-style:none;padding:0 0 0 40px;margin:0;display:grid;gap:44px;position:relative;--p:0}
.flow::before,.flow::after{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:var(--line)}
.flow::after{background:var(--ink);transform:scaleY(var(--p));transform-origin:top}
.flow-step{position:relative}
.flow-step::before{content:"";position:absolute;left:-40px;top:7px;width:15px;height:15px;border-radius:50%;background:var(--bg);border:1px solid rgba(20,20,20,.25);transition:background .5s var(--ease),border-color .5s,transform .5s var(--ease)}
.flow-step.on::before{background:var(--ink);border-color:var(--ink);transform:scale(1.15)}
.flow-n{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(48px,6vw,72px);line-height:.9;color:rgba(20,20,20,.5);transition:color .8s var(--ease)}
.flow-step.on .flow-n{color:var(--ink)}
.flow h3{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-top:14px}
.flow p{margin:8px 0 0;color:var(--ink-2);font-size:15px;max-width:34ch}
@media(min-width:820px){
  .flow{grid-template-columns:repeat(3,1fr);gap:40px;padding:44px 0 0}
  .flow::before,.flow::after{left:0;right:0;top:7px;bottom:auto;width:auto;height:1px}
  .flow::after{transform:scaleX(var(--p));transform-origin:left}
  .flow-step::before{left:0;top:-44px}
}

/* "see product" link underline that draws in */
.card-more{position:relative;padding-bottom:3px}
.card-more::after{content:"";position:absolute;left:0;right:22px;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
a.card:hover .card-more::after,a.card:focus-visible .card-more::after{transform:scaleX(1)}
.card .tag{transition:background .4s,color .4s}
a.card:hover .tag{background:var(--ink);color:#fff}

/* pricing: light that follows the cursor */
.price{position:relative;isolation:isolate}
.price::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;opacity:0;transition:opacity .5s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.09),transparent 45%)}
.price:hover::after{opacity:1}
.price.hot::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(224,165,38,.16),transparent 45%)}

/* guarantee seal, turned by scroll */
.seal{position:relative;width:min(420px,78vw);aspect-ratio:1;margin:0 auto;border-radius:50%;background:#fff;box-shadow:var(--shadow-lg);display:grid;place-items:center;color:var(--ink-2)}
.seal::before{content:"";position:absolute;inset:22%;border-radius:50%;border:1px dashed rgba(20,20,20,.18)}
.seal-ring{position:absolute;inset:4%;width:92%;height:92%;rotate:calc(var(--r,0) * 1deg);will-change:rotate}
.seal-core{text-align:center;position:relative}
.seal-core b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(52px,8vw,76px);line-height:1;color:var(--ink)}
.seal-core span{font-size:13px;color:var(--ink-3)}
.seal-core b::after{content:"";display:block;width:28px;height:1px;background:var(--accent);margin:12px auto}

/* FAQ: numbered, eased open/close */
.faq{counter-reset:q}
.faq summary::before{counter-increment:q;content:counter(q,decimal-leading-zero);font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ink-3);margin-right:-2px;flex:none;width:28px}
.faq summary{justify-content:flex-start}
.faq summary i{margin-left:auto}
.faq summary:hover i{transform:scale(1.12)}
.faq details[open] summary:hover i{transform:none}
.faq .ans{overflow:hidden;padding-left:66px}
@media(max-width:520px){.faq .ans{padding-left:22px}}

/* list rows in guarantee: hairline that grows on hover */
.guar li{position:relative;overflow:hidden;transition:border-color .4s}
.guar li::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.guar li:hover::after{transform:scaleX(1)}

/* option press feedback */
.opt label:active{transform:scale(.985)}
.opt label{transition:border-color .25s,background .25s,box-shadow .25s,transform .2s var(--ease)}

.v-poster{pointer-events:none;position:absolute;inset:12%;width:76%;height:76%;object-fit:contain;mix-blend-mode:multiply;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.v-stage canvas{position:relative;z-index:1;opacity:0;transition:opacity .8s var(--ease)}
.v-stage.ready canvas{opacity:1}
.v-stage.ready .v-poster{opacity:0;transform:scale(.96)}

/* hand-drawn loop around a word */
.scribble{position:relative;white-space:nowrap}
.scribble svg{position:absolute;left:-14%;top:-18%;width:128%;height:142%;overflow:visible;pointer-events:none}
.scribble path{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s cubic-bezier(.65,0,.35,1) .7s}
.show .scribble path{stroke-dashoffset:0}
.sec-head.rv.show h2{clip-path:inset(-40% -30% -40% -30%)}

/* curtain footer: the page lifts away to reveal it */
main{position:relative;z-index:1;background:var(--bg);border-radius:0 0 clamp(28px,4vw,48px) clamp(28px,4vw,48px);box-shadow:0 40px 80px -40px rgba(20,20,20,.35)}
.curtain{position:sticky;bottom:0;z-index:0;background:#0f0f0f;color:#f3f1ec;padding:clamp(72px,10vw,120px) 0 0;margin-top:-48px;overflow:hidden}
.curtain .foot-cta{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1)}
.curtain .foot-big{font-size:clamp(40px,6vw,72px);margin:0}
.btn-light{background:#f3f1ec;color:var(--ink)}
.btn-light:hover{background:#fff;transform:translateY(-2px)}
.btn-light:hover svg{transform:translateX(3px) rotate(-45deg)}
.curtain .foot{display:grid;gap:32px;padding:48px 0 0}
@media(min-width:800px){.curtain .foot{grid-template-columns:1.3fr 1fr 1fr}}
.curtain .foot h4{color:#8d8981}
.curtain .foot a{color:#d6d2ca;position:relative;width:max-content;max-width:100%}
.curtain .foot a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--ease)}
.curtain .foot a:hover{color:#fff}
.curtain .foot a:hover::after{transform:scaleX(1);transform-origin:0 50%}
.curtain .copy{color:#8d8981;border-top:1px solid rgba(255,255,255,.1);padding-top:20px;margin-top:48px}
.curtain .copy a{color:inherit}
.wordmark{display:flex;justify-content:center;align-items:baseline;font-family:var(--serif);font-size:clamp(64px,19vw,300px);line-height:.78;letter-spacing:-.03em;white-space:nowrap;margin-top:24px;translate:0 calc(var(--wm,1) * 40%);opacity:calc(1 - var(--wm,1) * .6);user-select:none;color:#f3f1ec}
.wordmark em{color:var(--accent)}
.legal{padding-bottom:120px}

.at-footer .m-cta{transform:translateY(140%)}
@media(max-width:799px){.curtain .foot{grid-template-columns:1fr 1fr;gap:28px 16px}.curtain .foot>div:first-child{grid-column:1/-1}}

/* visible primary button over dark sections */
.nav .btn-dark{box-shadow:0 0 0 1px rgba(255,255,255,.16),0 8px 20px -8px rgba(20,20,20,.5)}
/* phone: compact pricing, order summary before the form */
@media(max-width:759px){
  .price{padding:22px}
  .price ul{display:none}
  .price .amt{margin:14px 0 2px}
  .price .btn{margin-top:18px}
  .menu-price{padding:22px}
}
@media(max-width:959px){
  .summary{order:-1;position:static;padding:22px}
  .summary .contact-mini,.summary .sum-note{display:none}
  .summary h3{font-size:26px}
  .sum-row{padding:9px 0}
  .sum-total b{font-size:40px}
}
@media(max-width:520px){.specs div{grid-template-columns:104px 1fr}}
