@font-face{font-family:'DM Sans';font-style:normal;font-weight:300 700;font-display:swap;src:url('/app/assets/fonts/dmsans.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('/app/assets/fonts/spacegrotesk.woff2') format('woff2')}
@font-face{font-family:'SG Fallback';src:local('Arial');size-adjust:104%;ascent-override:90%;descent-override:22%;line-gap-override:0%}
@font-face{font-family:'DM Fallback';src:local('Arial');size-adjust:102%;ascent-override:92%;descent-override:26%;line-gap-override:0%}

/* ===== LIT App public site. Dark default: warm LIT black + the gold trifecta (champagne / amber / gold). ===== */
:root{
  --g1:#C9A84C;--g2:#F59E0B;--g3:#FFD700;
  --bg:#080807;--bg-2:#0E0D0B;--card:#12110E;--card-2:#181612;--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);
  --fg:#F6F2E9;--muted:#A79F91;--dim:#8F887A;--gold-text:#F5B331;--on-gold:#140D00;
  --gold-dim:rgba(245,158,11,.12);--gold-glow:rgba(245,158,11,.38);--gold-line:rgba(245,170,40,.34);
  --ok:#3DD68C;--bad:#F87171;--wa:#25D366;--track:rgba(255,255,255,.08);--focus:#FFC531;
  --glass:rgba(255,255,255,.035);--glass-hi:rgba(255,255,255,.08);
  --trif:linear-gradient(120deg,var(--g1) 0%,var(--g2) 48%,var(--g3) 100%);
  --cta:linear-gradient(180deg,#FFC440,#F59E0B);
  --sh-1:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px -18px rgba(0,0,0,.9);
  --sh-2:0 1px 0 rgba(255,255,255,.06) inset,0 30px 70px -30px rgba(0,0,0,.95);
  --sh-cta:0 0 0 1px rgba(255,215,0,.22) inset,0 12px 40px -8px var(--gold-glow);
  --grain-a:.07;--aur-a:.5;--spot-a:.08;
  --ff-h:'Space Grotesk','SG Fallback',system-ui,sans-serif;--ff-b:'DM Sans','DM Fallback',system-ui,sans-serif;
  --r-1:10px;--r-2:16px;--r-3:24px;--r-4:32px;--pill:999px;
  --d1:140ms;--d2:240ms;--d3:420ms;--d4:700ms;--ease:cubic-bezier(.16,1,.3,1);--io:cubic-bezier(.65,0,.35,1);
  --sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);
  --hdr:68px;
  color-scheme:dark;
}
:root:not([data-theme=dark]){
  --bg:#F7F3EA;--bg-2:#F1EBDE;--card:#FFFDF8;--card-2:#F3EDE0;--line:rgba(40,30,10,.10);--line-2:rgba(40,30,10,.18);
  --fg:#15120C;--muted:#625A4B;--dim:#6E6657;--gold-text:#8A5300;--on-gold:#140D00;
  --gold-dim:rgba(201,140,20,.12);--gold-glow:rgba(245,158,11,.28);--gold-line:rgba(170,115,20,.40);
  --ok:#0B7A4B;--bad:#B42318;--track:rgba(40,30,10,.09);--focus:#8A5300;
  --glass:rgba(255,253,248,.72);--glass-hi:rgba(255,255,255,.9);
  --sh-1:0 1px 1px rgba(60,40,10,.04),0 8px 24px -14px rgba(60,40,10,.18);
  --sh-2:0 2px 4px rgba(60,40,10,.05),0 30px 70px -30px rgba(60,40,10,.3);
  --sh-cta:0 1px 0 rgba(255,255,255,.5) inset,0 12px 36px -10px rgba(217,119,6,.55);
  --grain-a:.045;--aur-a:.32;--spot-a:.05;
  color-scheme:light;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font:16px/1.6 var(--ff-b);min-height:100dvh;overflow-x:clip;position:relative;isolation:isolate}
h1,h2,h3,h4{font-family:var(--ff-h);font-weight:600;line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
p,li{text-wrap:pretty}
a{color:var(--gold-text);text-underline-offset:3px}
img,svg,canvas,video{max-width:100%;display:block}
button{cursor:pointer;border:0;background:none;font:inherit;color:inherit;touch-action:manipulation}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}
::selection{background:var(--g2);color:var(--on-gold)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}.small{font-size:.875rem}.mt12{margin-top:1.2rem}.pb4{padding-bottom:4rem}.jc{justify-content:center}
.wrap{width:min(1200px,100% - 2*max(20px,var(--sal)));margin-inline:auto}
.skip{position:fixed;left:1rem;top:-4rem;z-index:100;padding:.6rem 1rem;border-radius:var(--pill);background:var(--g2);color:var(--on-gold);font-weight:600;text-decoration:none}
.skip:focus{top:1rem}

/* atmosphere: aurora blobs, film grain, cursor spotlight */
.aura{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;background:radial-gradient(80vmax 50vmax at 50% -20%,rgba(201,168,76,.10),transparent 60%)}
.aura::before,.aura::after{content:"";position:absolute;width:72vmax;height:72vmax;border-radius:50%;filter:blur(80px);opacity:var(--aur-a);animation:aur 26s var(--io) infinite;will-change:transform}
.aura::before{left:-22vmax;top:-34vmax;background:radial-gradient(closest-side,rgba(245,158,11,.30),transparent 70%)}
.aura::after{right:-28vmax;top:8vmax;background:radial-gradient(closest-side,rgba(255,215,0,.16),transparent 70%);animation-delay:-13s}
@keyframes aur{0%{transform:translate3d(-5%,-4%,0) scale(1)}50%{transform:translate3d(5%,7%,0) scale(1.14)}100%{transform:translate3d(-5%,-4%,0) scale(1)}}
.grain{position:fixed;inset:-50%;z-index:60;pointer-events:none;opacity:var(--grain-a);mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") repeat;background-size:220px 220px}
.spot{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .6s;background:radial-gradient(520px 520px at var(--mx,50%) var(--my,30%),rgba(255,196,64,var(--spot-a)),transparent 70%)}
.js.fine .spot{opacity:1}

/* ---------- buttons ---------- */
.btn{position:relative;isolation:isolate;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.35rem;font:600 .9rem var(--ff-h);letter-spacing:-.005em;border-radius:var(--pill);white-space:nowrap;min-height:46px;color:var(--fg);transition:transform var(--d2) var(--ease),box-shadow var(--d2) var(--ease),border-color var(--d2),background-color var(--d2),color var(--d2);will-change:transform}
.btn:active{transform:scale(.97)}
.btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btn-primary{background:var(--cta);color:var(--on-gold);box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 2px 8px -2px rgba(120,70,0,.35);overflow:hidden}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-130%);transition:transform .8s var(--ease)}
.btn-ghost{border:1px solid var(--line-2);background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.btn-wa{background:#0E7A40;color:#fff}
.btn-lg{min-height:54px;font-size:1rem;padding:.85rem 1.7rem}
.btn-sm{min-height:44px;padding:.4rem 1rem;font-size:.85rem}
.btn-arrow svg{transition:transform var(--d2) var(--ease)}
@media(hover:hover){
  .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--sh-cta)}.btn-primary:hover::after{transform:translateX(130%)}
  .btn-ghost:hover{border-color:var(--gold-line);background:var(--gold-dim);color:var(--fg)}
  .btn-wa:hover{filter:brightness(1.1);transform:translateY(-2px)}
  .btn-arrow:hover svg{transform:translateX(4px)}
}
.mag{transform:translate(var(--tx,0),var(--ty,0))}
.mag:active{transform:translate(var(--tx,0),var(--ty,0)) scale(.97)}

/* ---------- header ---------- */
.site-h{position:sticky;top:0;z-index:50;transition:background-color var(--d3),box-shadow var(--d3),border-color var(--d3);border-bottom:1px solid transparent}
.site-h.cond{background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(1.4) blur(18px);-webkit-backdrop-filter:saturate(1.4) blur(18px);border-color:var(--line)}
.hbar{display:flex;align-items:center;gap:1rem;min-height:var(--hdr);transition:min-height var(--d3) var(--ease)}
.site-h.cond .hbar{min-height:58px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--fg);min-height:44px}
.brand .mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(145deg,var(--card-2),var(--card));border:1px solid var(--line-2);box-shadow:var(--sh-1);position:relative;overflow:hidden}
.brand .mark::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 50% 0%,rgba(255,215,0,.25),transparent 70%)}
.brand img{width:26px;height:26px;filter:drop-shadow(0 0 10px var(--gold-glow));position:relative;z-index:1}
.brand b{font:700 1.2rem/1 var(--ff-h);letter-spacing:.16em}
.brand i,.lock i{font:600 .68rem/1 var(--ff-h);letter-spacing:.18em;font-style:normal;color:var(--gold-text);border:1px solid var(--gold-line);background:var(--gold-dim);padding:.32rem .62rem;border-radius:var(--pill);white-space:nowrap}
.main{display:flex;gap:.1rem;margin-left:1.2rem}
.main a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;border-radius:var(--pill);color:var(--muted);text-decoration:none;font:500 .9rem var(--ff-h);transition:color var(--d2),background-color var(--d2)}
.main a:hover{color:var(--fg);background:var(--glass-hi)}
.main a[aria-current=page]{color:var(--fg)}
.main a[aria-current=page]::after{content:"";position:absolute;left:50%;bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--g2);transform:translateX(-50%);box-shadow:0 0 10px var(--g2)}
.hact{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--glass);transition:border-color var(--d2),background-color var(--d2),transform var(--d2) var(--ease)}
.icon-btn:hover{border-color:var(--gold-line);background:var(--gold-dim)}
.icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-btn .moon{display:none}:root[data-theme=dark] .theme-btn .moon{display:block}:root[data-theme=dark] .theme-btn .sun{display:none}
.theme-btn svg{transition:transform var(--d3) var(--ease)}.theme-btn:hover svg{transform:rotate(25deg)}
.menu-btn{display:none}
@media(max-width:880px){
  .menu-btn{display:grid}
  .hact .login{display:none}
  .js .main{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;margin:0;padding:.6rem 20px 1rem;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--line);box-shadow:var(--sh-2)}
  .js .main.open{display:flex;animation:drop .3s var(--ease)}
  .main a{min-height:50px;font-size:1.05rem}
  .main a[aria-current=page]::after{left:auto;right:1rem;bottom:50%;transform:translateY(50%)}
  .hbar{position:relative}
  .site-h{background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
}
@keyframes drop{from{opacity:0;transform:translateY(-8px)}}
@media(max-width:480px){.brand i{display:none}.hact .start{display:none}}
html:not(.js) .main{flex-wrap:wrap}
@media(max-width:880px){html:not(.js) .hbar{flex-wrap:wrap;padding-bottom:.5rem}}

/* ---------- section scaffolding ---------- */
.sec{position:relative;padding-block:clamp(4rem,9vw,8rem)}
.sec.alt{background:linear-gradient(180deg,transparent,var(--bg-2) 14%,var(--bg-2) 86%,transparent)}
.sec.tight{padding-block:clamp(2.5rem,6vw,4.5rem)}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font:600 .7rem/1 var(--ff-h);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--trif)}
.eyebrow.pill{border:1px solid var(--gold-line);background:var(--gold-dim);padding:.5rem .9rem;border-radius:var(--pill)}
.eyebrow.pill::before{width:7px;height:7px;border-radius:50%;background:var(--g2);box-shadow:0 0 12px var(--g2)}
.sec h2,.h2{font-size:clamp(2rem,4.6vw,3.6rem);margin-top:1rem;letter-spacing:-.035em;max-width:22ch}
.sec .lede,.page-h .lede{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--muted);max-width:58ch;margin-top:1rem;line-height:1.6}
.sec-h{margin-bottom:clamp(2.2rem,4.5vw,3.6rem)}
.sec-h.c{text-align:center}.sec-h.c h2,.sec-h.c .lede,.sec-h.c .eyebrow{margin-inline:auto}
.grad{background:var(--trif);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em;background-size:200% 100%}
.sheen{animation:sheen 7s linear infinite}
@keyframes sheen{to{background-position:-200% 0}}

/* kinetic headline: words rise in with a stagger */
.kin .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.kin .w>span{display:inline-block;transform:translateY(110%);animation:wup .9s var(--ease) forwards;animation-delay:calc(var(--i,0)*70ms + 80ms)}
@keyframes wup{to{transform:none}}
html:not(.js) .kin .w>span{transform:none;animation:none}

/* ---------- hero ---------- */
.hero{position:relative;padding-block:clamp(3rem,8vw,6.5rem) clamp(3rem,7vw,5.5rem);min-height:calc(100dvh - var(--hdr));display:grid;align-items:center;overflow:clip}
.hero .wrap{display:grid;gap:clamp(2.5rem,5vw,4rem);align-items:center}
@media(min-width:980px){.hero .wrap{grid-template-columns:1.05fr .95fr}}
.hero h1{font-size:clamp(2.9rem,7.6vw,6.4rem);line-height:.98;letter-spacing:-.05em;margin-top:1.2rem;font-weight:700}
.hero .lede{font-size:clamp(1.08rem,1.7vw,1.3rem);color:var(--muted);margin-top:1.4rem;max-width:46ch;line-height:1.6}
.ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.trust{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:2rem;color:var(--muted);font-size:.9rem}
.trust span{display:inline-flex;align-items:center;gap:.5rem}
.trust svg{width:18px;height:18px;fill:none;stroke:var(--gold-text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rise{animation:rise .9s var(--ease) both}
.rise.d1{animation-delay:.15s}.rise.d2{animation-delay:.3s}.rise.d3{animation-delay:.45s}.rise.d4{animation-delay:.6s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
@keyframes rise-t{from{transform:translateY(16px)}}
.lede.rise{animation:rise-t .6s var(--ease) both;animation-delay:0s}

/* hero stage: canvas particle stream + layered glass mocks */
.stage{position:relative;min-height:clamp(440px,52vw,620px);perspective:1200px}
.stage canvas{position:absolute;inset:-14% -8% -10% -16%;width:124%;height:124%;z-index:3;pointer-events:none;mix-blend-mode:screen}
:root:not([data-theme=dark]) .stage canvas{mix-blend-mode:multiply;opacity:.7}
.stage .mock{position:absolute;inset:5% 14% auto 2%;z-index:2;transform-style:preserve-3d;transition:transform .35s var(--ease);will-change:transform;box-shadow:var(--sh-2),0 0 100px -30px var(--gold-glow)}
.stage .phone{position:absolute;right:-2%;bottom:-5%;z-index:4;width:clamp(150px,22vw,215px);transform:rotate(5deg);animation:flt 7s var(--io) infinite;box-shadow:var(--sh-2),0 0 70px -20px var(--gold-glow)}
.stage .stand{position:absolute;left:-6%;bottom:-7%;z-index:4;width:clamp(110px,14vw,150px);transform:rotate(-7deg);animation:flt 8s var(--io) -3s infinite}
@keyframes flt{0%,100%{transform:translate3d(0,0,0) rotate(var(--rot,5deg))}50%{transform:translate3d(0,-12px,0) rotate(var(--rot,5deg))}}
.stage .phone{--rot:5deg}.stage .stand{--rot:-7deg}
.fchip{position:absolute;z-index:4;display:inline-flex;align-items:center;gap:.5rem;padding:.48rem .8rem;border-radius:var(--pill);font:600 .74rem/1 var(--ff-h);color:var(--fg);background:color-mix(in srgb,var(--card) 70%,transparent);border:1px solid var(--gold-line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--sh-2);animation:flt 6s var(--io) infinite;--rot:0deg}
.fchip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 50%,transparent);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
.fchip.c1{top:-2%;right:16%}.fchip.c2{top:30%;right:-6%;animation-delay:-2s}.fchip.c3{bottom:12%;left:34%;animation-delay:-4s}
@media(max-width:979px){.stage{min-height:460px}.fchip.c2{right:2%}}
@media(max-width:600px){.stage{min-height:400px}.stage .stand{display:none}.fchip.c3{left:4%}.fchip.c1{right:4%}}

/* proof strip */
.proof{border-block:1px solid var(--line);background:color-mix(in srgb,var(--card) 60%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.proof .wrap{display:flex;flex-wrap:wrap;gap:1.2rem 3rem;align-items:center;justify-content:center;padding-block:1.5rem;text-align:center}
.proof .n{display:inline-flex;align-items:baseline;gap:.2rem}
.proof b{font:700 clamp(2.2rem,5vw,3.4rem)/1 var(--ff-h);letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:var(--trif);-webkit-background-clip:text;background-clip:text;color:transparent}
.proof span{color:var(--muted);font-size:.92rem}
.proof .logos{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.pill-t{display:inline-flex;align-items:center;padding:.4rem .9rem;border:1px solid var(--line);border-radius:var(--pill);font:500 .85rem var(--ff-h);color:var(--muted);background:var(--glass)}

/* marquee */
.marq{overflow:hidden;padding-block:1.2rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marq ul{display:flex;gap:3rem;width:max-content;list-style:none;animation:mq 40s linear infinite}
.marq li{font:600 clamp(1.1rem,2.4vw,1.7rem)/1 var(--ff-h);letter-spacing:-.02em;color:var(--dim);white-space:nowrap;display:inline-flex;align-items:center;gap:3rem}
.marq li::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--g2);box-shadow:0 0 10px var(--g2)}
.marq:hover ul{animation-play-state:paused}
@keyframes mq{to{transform:translate3d(-50%,0,0)}}

/* in-page sticky nav */
.subnav{position:sticky;top:var(--hdr);z-index:40;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:top var(--d3) var(--ease)}
.cond~main .subnav,.site-h.cond+main .subnav{top:58px}
.subnav .wrap{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;padding-block:.45rem}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 .95rem;border-radius:var(--pill);color:var(--muted);text-decoration:none;font:500 .88rem var(--ff-h);transition:color var(--d2),background-color var(--d2)}
.subnav a:hover{color:var(--fg)}
.subnav a.on{color:var(--gold-text);background:var(--gold-dim)}

/* ---------- cards ---------- */
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--sh-1);padding:clamp(1.3rem,2.6vw,2rem)}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,var(--glass-hi),transparent 40%);opacity:.5}
.card>*{position:relative}
.card h3{font-size:1.25rem}
.card p{color:var(--muted);margin-top:.5rem}
.glass{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
@media(hover:hover){.card.hov{transition:transform var(--d3) var(--ease),border-color var(--d3),box-shadow var(--d3)}.card.hov:hover{transform:translateY(-5px);border-color:var(--gold-line);box-shadow:var(--sh-2),0 0 60px -24px var(--gold-glow)}}
.ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--gold-dim);border:1px solid var(--gold-line);color:var(--gold-text);margin-bottom:1.1rem;box-shadow:0 0 30px -12px var(--gold-glow)}
.ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ticks{list-style:none;display:grid;gap:.6rem;margin-top:1.1rem}
.ticks li{position:relative;padding-left:1.8rem;color:var(--fg)}
.ticks li::before{content:"";position:absolute;left:0;top:.35em;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--gold-dim) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8.5 2.6 2.6L12 5.5' fill='none' stroke='%23F5B331' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat;box-shadow:inset 0 0 0 1px var(--gold-line)}
:root:not([data-theme=dark]) .ticks li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8.5 2.6 2.6L12 5.5' fill='none' stroke='%238A5300' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.ticks small{display:block;color:var(--muted)}
.lock{display:inline-flex;align-items:center;gap:.6rem}
.lock img{width:26px;height:26px}
.lock b{font:700 1rem/1 var(--ff-h);letter-spacing:.16em}
.plink{display:inline-flex;margin-top:1.4rem;gap:.8rem;flex-wrap:wrap}

/* ---------- scroll story (sticky scene that morphs) ---------- */
.story .wrap{display:grid;gap:clamp(1.5rem,4vw,5rem);align-items:start}
.story .sec-h{grid-column:1/-1;grid-row:1;margin-bottom:0}
.s-stage{grid-row:2}.s-steps{grid-row:3}
@media(min-width:900px){.story .wrap{grid-template-columns:.9fr 1.1fr}.s-steps{grid-row:2;grid-column:1}.s-stage{grid-column:2}}
.s-steps{display:grid;gap:clamp(3rem,18vh,10rem);padding-block:clamp(1rem,10vh,6rem)}
.s-step{opacity:.42;transition:opacity var(--d3);scroll-margin-top:30vh}
.s-step.on{opacity:1}
.s-step .n{font:600 .72rem var(--ff-h);letter-spacing:.2em;color:var(--gold-text)}
.s-step h3{font-size:clamp(1.5rem,2.8vw,2.3rem);margin-top:.5rem;letter-spacing:-.03em}
.s-step p{color:var(--muted);margin-top:.7rem;max-width:40ch;font-size:1.05rem}
.s-stage{position:sticky;top:calc(var(--hdr) + 2rem);height:min(560px,calc(100dvh - var(--hdr) - 4rem));display:grid;place-items:center;overflow:visible}
@media(max-width:899px){.s-stage{top:var(--hdr);height:46vh;z-index:5;background:linear-gradient(180deg,var(--bg) 70%,transparent)}.s-stage .scene{width:min(100%,46vh)}.s-steps{gap:40vh;padding-block:4vh 30vh}.s-step{opacity:.25}}
.s-stage .scene{position:relative;width:min(100%,520px);aspect-ratio:1;display:grid;place-items:center}
.s-stage .ring{position:absolute;inset:6%;border-radius:50%;border:1px dashed var(--gold-line);opacity:.5;animation:spin 60s linear infinite}
.s-stage .ring.r2{inset:18%;animation-direction:reverse;animation-duration:45s;opacity:.3}
@keyframes spin{to{transform:rotate(1turn)}}
.s-stage .glow{position:absolute;inset:20%;border-radius:50%;background:radial-gradient(closest-side,var(--gold-glow),transparent);filter:blur(30px);opacity:.6;transition:opacity var(--d4)}
.lay{position:absolute;transition:opacity var(--d4) var(--ease),transform var(--d4) var(--ease);opacity:0;transform:translateY(24px) scale(.94)}
.lay.on{opacity:1;transform:none}
.lay.cam{width:54%}
.lay.up{width:78%}
.lay.ai{width:68%}
.lay.wa{width:60%}
.cam-ill{aspect-ratio:1.1;border-radius:28px;background:linear-gradient(160deg,var(--card-2),var(--card));border:1px solid var(--line-2);box-shadow:var(--sh-2);display:grid;place-items:center;position:relative;overflow:hidden}
.cam-ill .lens{width:46%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 35%,#3a3630,#0b0a09 65%);border:6px solid #23201b;box-shadow:0 0 0 10px rgba(255,255,255,.04),0 0 60px -10px var(--gold-glow)}
.cam-ill .lens::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.35),transparent 30%)}
.cam-ill .flash{position:absolute;inset:0;background:#fff;opacity:0;animation:flash 5s infinite}
@keyframes flash{0%,100%{opacity:0}2%{opacity:.7}6%{opacity:0}}
.cam-ill .sh{position:absolute;left:0;right:0;top:0;height:3px;background:var(--trif)}
.wa-card{border-radius:24px;background:#0b141a;border:1px solid rgba(255,255,255,.1);box-shadow:var(--sh-2);padding:1rem;display:grid;gap:.7rem;color:#e9edef;font-size:.85rem}
.wa-card .b{max-width:85%;padding:.6rem .8rem;border-radius:14px;background:#1f2c34;line-height:1.4}
.wa-card .b.me{justify-self:end;background:#005c4b}
.wa-card .b small{display:block;color:#8696a0;font-size:.7rem;text-align:right;margin-top:.2rem}
.wa-card .link{display:flex;gap:.6rem;align-items:center;padding:.5rem;border-radius:10px;background:rgba(255,255,255,.06);margin-top:.3rem}
.wa-card .link i{width:38px;height:38px;border-radius:9px;background:var(--trif);flex:none}
.wa-card .link b{font:600 .8rem var(--ff-h)}.wa-card .link span{display:block;color:#8696a0;font-size:.7rem}
.lay.on .wa-card .b{animation:popin .5s var(--ease) both}.lay.on .wa-card .b:nth-child(2){animation-delay:.5s}.lay.on .wa-card .b:nth-child(3){animation-delay:1s}
@keyframes popin{from{opacity:0;transform:translateY(10px) scale(.96)}}

/* ---------- mock UI (decorative; aria-hidden) ---------- */
.mock{border:1px solid var(--line-2);border-radius:var(--r-3);background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--sh-2);overflow:hidden;pointer-events:none;user-select:none}
.mock .bar-t{display:flex;align-items:center;gap:.4rem;padding:.75rem 1rem;border-bottom:1px solid var(--line);background:var(--card-2)}
.mock .bar-t i{width:10px;height:10px;border-radius:50%;background:var(--dim);opacity:.6}
.mock .bar-t span{margin-left:.6rem;font:500 .74rem var(--ff-h);color:var(--muted)}
.mock .body{padding:1rem;display:grid;gap:.8rem}
.m-row{display:grid;grid-template-columns:38px 1fr auto;gap:.75rem;align-items:center;padding:.6rem .7rem;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.m-row b{font:600 .85rem var(--ff-h);display:block}
.m-row small{color:var(--muted);font-size:.74rem}
.m-th{width:38px;height:38px;border-radius:10px}
.m-bar{height:6px;border-radius:9px;background:var(--track);overflow:hidden;margin-top:.4rem}
.m-bar i{display:block;height:100%;border-radius:9px;background:var(--trif);width:var(--w,40%)}
.w25{--w:25%}.w40{--w:40%}.w55{--w:55%}.w70{--w:70%}.w85{--w:85%}.w100{--w:100%}
.anim .m-bar i{animation:fill 6s var(--io) infinite;animation-delay:calc(var(--i,0)*-1.3s)}
@keyframes fill{0%{width:8%}60%{width:100%}100%{width:100%}}
.m-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:99px;font:600 .72rem/1.2 var(--ff-h);background:var(--gold-dim);color:var(--gold-text);border:1px solid var(--gold-line);white-space:nowrap}
.m-chip.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.m-chip.bad{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.m-stat{display:flex;gap:1.4rem;flex-wrap:wrap;font:500 .74rem var(--ff-h);color:var(--muted)}
.m-stat b{color:var(--fg);font-size:.85rem}
.grid-t{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.tile{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;transition:filter var(--d3),transform var(--d3) var(--ease)}
.tile .m-chip{position:absolute;left:.3rem;bottom:.3rem;font-size:.6rem;padding:.12rem .4rem;background:var(--card)}
.tile.dim{filter:saturate(.25) brightness(.7)}
.t1{background:linear-gradient(135deg,#F3C98B,#C9784B)}.t2{background:linear-gradient(135deg,#E9D5B4,#8E6A4B)}.t3{background:linear-gradient(135deg,#A9C4D6,#3F5F7C)}.t4{background:linear-gradient(135deg,#F2B8B0,#9C4A55)}
.t5{background:linear-gradient(135deg,#C9D9B0,#4F7345)}.t6{background:linear-gradient(135deg,#D9C2E8,#6A4F8C)}.t7{background:linear-gradient(135deg,#FFE29A,#D9822B)}.t8{background:linear-gradient(135deg,#C7D2DA,#53606B)}
.tile::after{content:"";position:absolute;left:30%;top:22%;width:40%;height:40%;border-radius:50%;background:rgba(255,255,255,.28);box-shadow:0 26px 0 6px rgba(255,255,255,.2)}
/* cull loop: tiles get judged one by one, rejects dim */
.cull .tile{animation:judge 8s var(--io) infinite;animation-delay:calc(var(--i,0)*.45s)}
.cull .tile .m-chip{opacity:0;animation:chipin 8s var(--io) infinite;animation-delay:calc(var(--i,0)*.45s)}
.cull .tile.rej{animation-name:judgeRej}
@keyframes judge{0%,8%{filter:none;transform:none}12%,85%{transform:scale(1.03);filter:none}92%,100%{transform:none}}
@keyframes judgeRej{0%,8%{filter:none}12%,85%{filter:saturate(.2) brightness(.55);transform:scale(.96)}92%,100%{filter:none;transform:none}}
@keyframes chipin{0%,8%{opacity:0;transform:translateY(4px)}12%,85%{opacity:1;transform:none}92%,100%{opacity:0}}
.m-slide{display:grid;gap:.3rem;font:500 .74rem var(--ff-h);color:var(--muted)}
.m-slide .tr{height:6px;border-radius:9px;background:var(--track);position:relative}
.m-slide .tr i{position:absolute;left:0;top:0;bottom:0;border-radius:9px;background:var(--trif);width:var(--w)}
.m-slide .tr u{position:absolute;top:-5px;width:16px;height:16px;border-radius:50%;background:var(--card);border:2px solid var(--g2);left:calc(var(--w) - 8px);box-shadow:0 0 12px var(--gold-glow)}
.anim .m-slide .tr i,.anim .m-slide .tr u{animation:slide 7s var(--io) infinite alternate;animation-delay:calc(var(--i,0)*-2s)}
@keyframes slide{to{--w:80%}}
.kan{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;position:relative}
.kan>div{display:grid;gap:.5rem;align-content:start;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:.6rem;min-height:150px}
.kan h4{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.kan p{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:.5rem;font:500 .74rem var(--ff-h);color:var(--fg)}
.kan p small{display:block;color:var(--muted);font-weight:400}
.kan .mv{border-color:var(--gold-line);box-shadow:0 0 24px -8px var(--gold-glow);animation:kanmv 9s var(--io) infinite}
@keyframes kanmv{0%,18%{transform:translateX(0)}30%,55%{transform:translateX(calc(100% + .6rem))}67%,88%{transform:translateX(calc(200% + 1.2rem))}100%{transform:translateX(0);opacity:1}92%{opacity:0}96%{opacity:0;transform:translateX(0)}}
.inv{display:flex;justify-content:space-between;gap:1rem;padding:.8rem;border:1px dashed var(--gold-line);border-radius:12px;background:var(--gold-dim);font:600 .85rem var(--ff-h)}
.inv .m-chip.ok{animation:stamp 9s var(--io) infinite}
@keyframes stamp{0%,66%{opacity:0;transform:scale(1.6) rotate(-8deg)}72%,100%{opacity:1;transform:none}}
.phone{position:relative;width:min(260px,100%);margin-inline:auto;border:8px solid #1A1816;border-radius:38px;background:var(--card);box-shadow:var(--sh-2);overflow:hidden;pointer-events:none;user-select:none}
.phone::after{content:"";position:absolute;inset:0;border-radius:30px;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.12),transparent 30%)}
:root[data-theme=dark] .phone{border-color:#2A2722}
.phone .notch{height:22px;background:#1A1816;width:90px;margin:-1px auto 0;border-radius:0 0 14px 14px}
.phone .scr{padding:.9rem;display:grid;gap:.7rem}
.phone h4{font-size:1rem}
.scan{position:relative;width:120px;height:120px;margin:.2rem auto;border-radius:50%;border:2px dashed var(--g2);display:grid;place-items:center;background:var(--gold-dim);overflow:hidden}
.scan svg{width:56px;height:56px;fill:none;stroke:var(--gold-text);stroke-width:1.5}
.scan::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px solid var(--gold-line)}
.scan::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--g3);box-shadow:0 0 18px 4px var(--gold-glow);animation:sweep 2.6s var(--io) infinite}
@keyframes sweep{0%{top:4%;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:94%;opacity:0}}
.anim .grid-t.found .tile{opacity:0;animation:found 5.2s var(--io) infinite;animation-delay:calc(var(--i,0)*.18s + 2.2s)}
@keyframes found{0%{opacity:0;transform:scale(.6)}10%,80%{opacity:1;transform:none}100%{opacity:0}}
.stand{position:relative;display:grid;gap:.8rem;justify-items:center;text-align:center;padding:1.6rem 1.2rem;border-radius:var(--r-3);background:linear-gradient(160deg,#1B1712,#2B2216);color:#F5EBD3;box-shadow:var(--sh-2);width:min(300px,100%);margin-inline:auto;border:1px solid rgba(255,215,0,.3);overflow:hidden}
.stand::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 40% at 50% 0%,rgba(255,215,0,.18),transparent 70%)}
.stand h4{font-size:1.4rem;color:#FFD27A;position:relative}
.stand p{color:#CDBF9E;font-size:.85rem;position:relative}
.stand .qr{width:140px;height:140px;background:#fff;padding:8px;border-radius:12px;position:relative}
.anim .stand .qr{-webkit-mask-image:linear-gradient(135deg,#000 var(--q,0%),transparent calc(var(--q,0%) + 12%));mask-image:linear-gradient(135deg,#000 var(--q,0%),transparent calc(var(--q,0%) + 12%));animation:qr 5s steps(14) infinite}
@keyframes qr{0%{--q:-12%}60%,100%{--q:112%}}
@property --q{syntax:'<percentage>';inherits:false;initial-value:0%}
@property --w{syntax:'<percentage>';inherits:false;initial-value:40%}
.brand-board{display:grid;gap:.8rem}
.wm-photo{position:relative;height:150px;border-radius:12px;overflow:hidden}
.wm-photo span{position:absolute;right:.7rem;bottom:.6rem;font:700 .85rem var(--ff-h);letter-spacing:.14em;color:rgba(255,255,255,.9);text-shadow:0 1px 4px rgba(0,0,0,.4)}
.anim .wm-photo span{animation:wm 5s var(--io) infinite}
@keyframes wm{0%,30%{opacity:0;transform:translateY(6px)}45%,100%{opacity:1;transform:none}}
.sw{display:flex;gap:.4rem}.sw i{width:28px;height:28px;border-radius:50%;border:1px solid var(--line)}
.s1{background:#F59E0B}.s2{background:#FFD700}.s3{background:#17140F}.s4{background:#F5F0E6}

/* ---------- product scenes (home tabs + /products) ---------- */
.seg{display:flex;gap:.3rem;overflow-x:auto;scrollbar-width:none;padding:.35rem;border:1px solid var(--line);border-radius:var(--pill);background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);width:max-content;max-width:100%;margin-inline:auto}
.seg::-webkit-scrollbar{display:none}
.seg button{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 1.15rem;border-radius:var(--pill);font:600 .88rem var(--ff-h);color:var(--muted);white-space:nowrap;transition:background-color var(--d2),color var(--d2),box-shadow var(--d2)}
.seg button:hover{color:var(--fg)}
.seg button[aria-selected=true]{background:var(--gold-dim);color:var(--gold-text);box-shadow:inset 0 0 0 1px var(--gold-line)}
.panels{margin-top:clamp(1.8rem,3vw,2.8rem)}
.panel{display:grid;gap:clamp(1.6rem,4vw,3.5rem);align-items:center}
.js .panel[hidden]{display:none}
@media(min-width:900px){.panel{grid-template-columns:.9fr 1.1fr}.panel.flip>div:first-child{order:2}}
.panel h3{font-size:clamp(1.6rem,3.2vw,2.4rem);margin-top:.9rem;letter-spacing:-.03em}
.panel .lede{margin-top:.9rem}
.panels .panel:not([hidden]){animation:tabin var(--d4) var(--ease)}
@keyframes tabin{from{opacity:0;transform:translateY(14px) scale(.985)}}
.scene{position:relative}
.scene::before{content:"";position:absolute;inset:10% -8% 10% -8%;border-radius:50%;background:radial-gradient(closest-side,var(--gold-glow),transparent);filter:blur(40px);opacity:.45;z-index:-1}
.prod{padding-block:clamp(3rem,7vw,6rem);border-top:1px solid var(--line)}
.prod .wrap{display:grid;gap:clamp(1.6rem,4vw,3.5rem);align-items:center}
@media(min-width:900px){.prod .wrap{grid-template-columns:.9fr 1.1fr}.prod.flip .wrap>div:first-child{order:2}}
.prod h2{font-size:clamp(1.9rem,3.8vw,3rem);margin-top:.9rem;letter-spacing:-.035em}
.prod .lede{color:var(--muted);font-size:clamp(1.02rem,1.4vw,1.18rem);margin-top:.9rem;max-width:50ch}
.dl{display:grid;gap:.6rem;margin-top:1.2rem}
.dl a{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--r-2);background:var(--glass);text-decoration:none;color:var(--fg);font:600 .9rem var(--ff-h);transition:border-color var(--d2),transform var(--d2) var(--ease),background-color var(--d2)}
.dl a:hover{border-color:var(--gold-line);transform:translateX(4px);background:var(--gold-dim)}
.dl a small{display:block;color:var(--muted);font:400 .78rem var(--ff-b)}
.dl svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.store-b{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem}
.store-b a{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1rem .6rem .8rem;border-radius:12px;background:#111;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.18);font:600 .9rem var(--ff-h);transition:transform var(--d2) var(--ease),border-color var(--d2)}
.store-b a:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.4)}
.store-b a small{display:block;font:400 .66rem var(--ff-b);letter-spacing:.04em;opacity:.8}
.store-b svg{width:24px;height:24px;fill:currentColor}

/* ---------- bento features ---------- */
.bento{display:grid;gap:1rem}
@media(min-width:700px){.bento{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.bento{grid-template-columns:repeat(3,1fr)}.bento .big{grid-column:span 2}}
.bento .card{display:flex;flex-direction:column;overflow:hidden}
.bento .card h3{font-size:1.3rem;margin-top:auto}
.bento .vis{position:relative;height:130px;margin:-.2rem -.2rem 1rem;border-radius:16px;overflow:hidden;background:var(--bg);border:1px solid var(--line)}
.bento .big .vis{height:170px}
.vis .faces{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:10px}
.vis .faces i{border-radius:8px;background:var(--card-2);position:relative;overflow:hidden}
.vis .faces i::after{content:"";position:absolute;left:30%;top:22%;width:40%;height:40%;border-radius:50%;background:rgba(255,255,255,.12);box-shadow:0 22px 0 6px rgba(255,255,255,.08)}
.vis .faces i.hit{background:linear-gradient(135deg,#F3C98B,#C9784B);box-shadow:0 0 0 2px var(--g2),0 0 20px var(--gold-glow)}
.anim .vis .faces i.hit{animation:hit 6s var(--io) infinite;animation-delay:calc(var(--i,0)*.3s)}
@keyframes hit{0%,30%{background:var(--card-2);box-shadow:none}40%,90%{background:linear-gradient(135deg,#F3C98B,#C9784B);box-shadow:0 0 0 2px var(--g2),0 0 20px var(--gold-glow)}100%{background:var(--card-2);box-shadow:none}}
.vis .sweepline{position:absolute;left:0;right:0;top:0;height:2px;background:var(--g3);box-shadow:0 0 16px 3px var(--gold-glow);animation:sweep 6s var(--io) infinite}
.vis .wave{position:absolute;inset:auto 0 0 0;height:60%;background:linear-gradient(180deg,transparent,var(--gold-dim))}
.vis .bars{position:absolute;inset:0;display:flex;align-items:flex-end;gap:5px;padding:12px}
.vis .bars i{flex:1;border-radius:4px 4px 0 0;background:var(--trif);height:var(--h,30%);opacity:.85}
.anim .vis .bars i{animation:bars 4s var(--io) infinite alternate;animation-delay:calc(var(--i,0)*-.35s)}
@keyframes bars{to{height:calc(var(--h,30%) + 30%)}}
.vis .qrs{position:absolute;inset:0;display:grid;place-items:center}
.vis .qrs svg{width:84px;height:84px;background:#fff;padding:6px;border-radius:10px}
.vis .lockv{position:absolute;inset:0;display:grid;place-items:center}
.vis .lockv svg{width:56px;height:56px;fill:none;stroke:var(--gold-text);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 16px var(--gold-glow))}
.vis .hearts{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px}
.vis .hearts i{border-radius:8px;position:relative}
.vis .hearts i::after{content:"\2665";position:absolute;right:6px;bottom:4px;font-size:14px;color:#fff;opacity:0;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.anim .vis .hearts i::after{animation:heart 5s var(--io) infinite;animation-delay:calc(var(--i,0)*.5s)}
@keyframes heart{0%,20%{opacity:0;transform:scale(.4)}30%,80%{opacity:1;transform:none}100%{opacity:0}}
.vis .brandv{position:absolute;inset:0;display:grid;place-items:center}
.vis .brandv .wm-photo{width:70%;height:70%}

/* use cases */
.uses{display:grid;gap:1rem}
@media(min-width:640px){.uses{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.uses{grid-template-columns:repeat(4,1fr)}}
.use{display:flex;flex-direction:column;overflow:hidden;padding:0}
.use .art{height:140px;position:relative;transition:transform var(--d4) var(--ease)}
.use .art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,var(--card))}
.use:hover .art{transform:scale(1.04)}
.use .tx{padding:1.1rem 1.3rem 1.4rem}
.use h3{font-size:1.2rem}
.a1{background:linear-gradient(135deg,#F3C98B,#C9784B 60%,#7B3F2A)}.a2{background:linear-gradient(135deg,#A9C4D6,#3F5F7C 60%,#233A52)}.a3{background:linear-gradient(135deg,#FFE29A,#D9822B 60%,#8C4A12)}.a4{background:linear-gradient(135deg,#C9D9B0,#4F7345 60%,#27422A)}

/* ---------- pricing ---------- */
.teaser{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.9rem;perspective:1200px}
.tz{position:relative;display:grid;gap:.25rem;padding:1.25rem 1.3rem;border:1px solid var(--line);border-radius:var(--r-3);background:var(--card);text-decoration:none;color:var(--fg);transition:transform var(--d2) var(--ease),border-color var(--d2),box-shadow var(--d2);transform:rotateX(var(--rx,0)) rotateY(var(--ry,0));transform-style:preserve-3d}
.tz:hover{border-color:var(--gold-line);box-shadow:var(--sh-2),0 0 50px -20px var(--gold-glow)}
.tz.feat{border-color:var(--gold-line);background:linear-gradient(160deg,var(--card),color-mix(in srgb,var(--card) 80%,var(--g2) 8%))}
.tz b{font:600 1rem var(--ff-h)}.tz .tp{font:700 1.7rem/1.1 var(--ff-h);letter-spacing:-.03em}.tz .tp small{font:500 .85rem var(--ff-b);color:var(--muted)}.tz .ts{color:var(--muted);font-size:.85rem}
.plans{display:grid;gap:1rem;align-items:stretch;perspective:1400px}
@media(min-width:700px){.plans{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.plans{grid-template-columns:repeat(3,1fr)}.plans.two{grid-template-columns:repeat(2,1fr)}}
.plan{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.8rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--sh-1);transform:rotateX(var(--rx,0)) rotateY(var(--ry,0));transition:transform var(--d2) var(--ease),border-color var(--d3),box-shadow var(--d3);transform-style:preserve-3d}
.plan::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(400px 200px at var(--px,50%) var(--py,0%),rgba(255,215,0,.10),transparent 60%);opacity:0;transition:opacity var(--d3)}
.plan:hover::before{opacity:1}
.plan:hover{border-color:var(--gold-line);box-shadow:var(--sh-2),0 0 60px -24px var(--gold-glow)}
.plan.feat{border-color:var(--gold-line);box-shadow:var(--sh-2),0 0 70px -24px var(--gold-glow);background:linear-gradient(160deg,var(--card),color-mix(in srgb,var(--card) 82%,var(--g2) 8%))}
.plan h3{font-size:1.5rem}
.plan .tag{color:var(--muted);font-size:.9rem;min-height:2.6em}
.plan .price b{font:700 clamp(2.2rem,3.6vw,2.9rem)/1 var(--ff-h);letter-spacing:-.045em}
.plan .price span{color:var(--muted);margin-left:.35rem}
.plan .stor{font:600 .85rem var(--ff-h);color:var(--gold-text)}
.plan .ticks{flex:1;margin-block:.7rem 1.2rem}
.plan .ticks li{font-size:.95rem}
.plan .btn{margin-top:auto}
.ribbon{position:absolute;top:1.1rem;right:1.1rem;padding:.3rem .75rem;border-radius:99px;font:700 .7rem var(--ff-h);letter-spacing:.08em;text-transform:uppercase;background:var(--cta);color:var(--on-gold);box-shadow:0 6px 20px -8px var(--gold-glow)}
.hero-f small{font-size:.75rem}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-3);background:var(--card)}
.cmp{width:100%;border-collapse:collapse;min-width:680px;font-size:.9rem}
.cmp th,.cmp td{padding:.8rem 1rem;text-align:center;border-bottom:1px solid var(--line)}
.cmp thead th{font-family:var(--ff-h);position:sticky;top:0;background:var(--card-2);font-size:1rem}
.cmp tbody th{text-align:left;font-weight:500}
.cmp .grp th{text-align:left;background:var(--card-2);font:600 .7rem var(--ff-h);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cmp tbody tr:hover td,.cmp tbody tr:hover th{background:var(--gold-dim)}
.yes{color:var(--ok);font-weight:700}.no{color:var(--dim)}
.note-box,.warn{border-color:var(--gold-line)!important;background:var(--gold-dim)}

/* ---------- faq ---------- */
.faq{display:grid;gap:.7rem;max-width:860px;margin-inline:auto}
.faq details{border:1px solid var(--line);border-radius:var(--r-2);background:var(--card);padding:0 1.25rem;transition:border-color var(--d2),background-color var(--d2)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:60px;cursor:pointer;font:600 1.02rem var(--ff-h);padding-block:.6rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--gold-line);background:var(--gold-dim) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%23F5B331' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/50% no-repeat;transition:transform var(--d3) var(--ease)}
:root:not([data-theme=dark]) .faq summary::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%238A5300' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}
.faq details[open] summary::after{transform:rotate(135deg)}
.faq details p,.faq details ul{padding-bottom:1.2rem;color:var(--muted);animation:rise .4s var(--ease)}
.faq details ul{padding-left:2.2rem}
.faq details[open]{border-color:var(--gold-line)}

/* ---------- final cta ---------- */
.final{padding-block:clamp(3rem,8vw,6rem)}
.final .box{position:relative;text-align:center;padding:clamp(2.5rem,7vw,5rem) 1.4rem;border-radius:var(--r-4);background:radial-gradient(120% 140% at 50% 120%,rgba(245,158,11,.22),transparent 60%),linear-gradient(160deg,var(--card),var(--card-2));border:1px solid var(--gold-line);box-shadow:var(--sh-2),0 0 120px -40px var(--gold-glow);overflow:hidden}
.final .box::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:var(--trif);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;pointer-events:none}
.final .box::after{content:"";position:absolute;left:50%;bottom:-40%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--gold-glow),transparent);filter:blur(40px);transform:translateX(-50%);opacity:.5;pointer-events:none}
.final .box>*{position:relative;z-index:1}
.final h2{font-size:clamp(2rem,5vw,3.8rem);margin:0 auto;max-width:18ch;letter-spacing:-.04em}
.final p{color:var(--muted);margin:1rem auto 0;max-width:46ch;font-size:1.05rem}
.final .ctas{justify-content:center}

/* ---------- inner pages ---------- */
.page-h{position:relative;padding-block:clamp(3rem,7vw,5.5rem) 1.8rem}
.page-h h1{font-size:clamp(2.4rem,6vw,4.4rem);letter-spacing:-.045em;margin-top:1rem;max-width:20ch;line-height:1}
.page-h.c{text-align:center}.page-h.c h1,.page-h.c .lede,.page-h.c .eyebrow{margin-inline:auto}
.prose{max-width:780px;padding-bottom:5rem}
.prose h2{font-size:1.5rem;margin:2.4rem 0 .6rem;letter-spacing:-.02em}
.prose p,.prose li{color:var(--muted);margin-top:.7rem;font-size:1.02rem}
.prose ul,.prose ol{padding-left:1.3rem}
.prose strong{color:var(--fg)}
.prose .meta{font-size:.9rem;color:var(--dim);padding:.8rem 1rem;border-left:2px solid var(--gold-line);background:var(--gold-dim);border-radius:0 10px 10px 0}
.legal-wrap{display:grid;gap:3rem;padding-bottom:5rem}
@media(min-width:900px){.legal-wrap{grid-template-columns:220px minmax(0,1fr)}.legal-wrap .prose{padding-bottom:0}}
.toc{position:sticky;top:calc(var(--hdr) + 1.5rem);align-self:start;display:grid;gap:.1rem;font-size:.9rem}
.toc a{color:var(--muted);text-decoration:none;padding:.4rem .7rem;border-left:1px solid var(--line);transition:color var(--d2),border-color var(--d2)}
.toc a:hover{color:var(--fg);border-color:var(--g2)}
@media(max-width:899px){.toc{display:none}}
.cgrid{display:grid;gap:1rem;padding-bottom:4rem}
@media(min-width:760px){.cgrid{grid-template-columns:repeat(3,1fr)}}
.steps4{display:grid;gap:1rem;padding-bottom:2rem;counter-reset:s}
@media(min-width:800px){.steps4{grid-template-columns:repeat(3,1fr)}}
.steps4 .card{counter-increment:s}
.steps4 .card::after{content:counter(s,decimal-leading-zero);position:absolute;top:1.1rem;right:1.3rem;font:700 2.4rem/1 var(--ff-h);letter-spacing:-.05em;background:var(--trif);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.5}
.rcpt{max-width:600px;margin:0 auto 3rem;display:grid;gap:1rem}
.rcpt dl{display:grid;grid-template-columns:auto 1fr;gap:.7rem 1.4rem;margin-top:1rem}
.rcpt dt{color:var(--muted)}.rcpt dd{font-weight:600;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.okmark{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);margin-bottom:.6rem;box-shadow:0 0 40px -10px color-mix(in srgb,var(--ok) 60%,transparent)}
.okmark svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .6s .3s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.conf{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.conf i{position:absolute;top:-10px;left:var(--x,50%);width:8px;height:14px;border-radius:2px;background:var(--c,var(--g2));animation:conf 2.6s var(--io) forwards;animation-delay:var(--d,0s);opacity:0}
@keyframes conf{0%{transform:translateY(0) rotate(0);opacity:1}100%{transform:translateY(420px) rotate(600deg);opacity:0}}
.nf{position:relative;text-align:center;padding-block:clamp(4rem,12vw,9rem) 4rem;overflow:clip}
.nf .big{font:700 clamp(7rem,28vw,18rem)/.85 var(--ff-h);letter-spacing:-.07em;background:var(--trif);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.16;position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);user-select:none;pointer-events:none;white-space:nowrap}
.nf h1{font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.04em;position:relative}
.nf .lede{position:relative;margin-inline:auto}
.nf .plink{justify-content:center;display:flex;position:relative}
.contact-h{display:grid;gap:2rem;align-items:center;padding-bottom:3rem}
@media(min-width:900px){.contact-h{grid-template-columns:1fr 1fr}}
.cgrid .card{display:flex;flex-direction:column}
.cgrid .card .plink{margin-top:auto}

/* ---------- footer ---------- */
.site-f{position:relative;border-top:1px solid var(--line);background:linear-gradient(180deg,var(--bg),var(--bg-2));padding-block:4rem 0;margin-top:3rem;overflow:clip}
.fgrid4{display:grid;gap:2.2rem}
@media(min-width:760px){.fgrid4{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.site-f h4{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:.9rem}
.site-f ul{list-style:none;display:grid;gap:.1rem}
.site-f li a{display:inline-flex;min-height:44px;align-items:center;color:var(--muted);text-decoration:none;transition:color var(--d2),transform var(--d2) var(--ease)}
.site-f li a:hover{color:var(--gold-text);transform:translateX(3px)}
.site-f .legal{margin-top:2.5rem;padding-block:1.4rem;border-top:1px solid var(--line);color:var(--dim);font-size:.85rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;position:relative;z-index:1}
.locks{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}
.fnote{max-width:34ch;margin-top:.8rem}
.fword{font:700 clamp(6rem,22vw,17rem)/.8 var(--ff-h);letter-spacing:-.06em;text-align:center;margin-top:2rem;margin-bottom:-.25em;background:linear-gradient(180deg,color-mix(in srgb,var(--fg) 12%,transparent),transparent 90%);-webkit-background-clip:text;background-clip:text;color:transparent;user-select:none;pointer-events:none}
.fab{position:fixed;right:max(1.1rem,var(--sar));bottom:max(1.1rem,var(--sab));z-index:45;display:inline-flex;align-items:center;gap:.5rem;min-height:50px;padding:0 1.2rem;border-radius:var(--pill);background:#128C4A;color:#fff;font:600 .9rem var(--ff-h);text-decoration:none;box-shadow:0 10px 30px -8px rgba(0,0,0,.5),0 0 0 0 rgba(37,211,102,.4);animation:fab 3s infinite}
@keyframes fab{70%{box-shadow:0 10px 30px -8px rgba(0,0,0,.5),0 0 0 14px transparent}100%{box-shadow:0 10px 30px -8px rgba(0,0,0,.5),0 0 0 0 transparent}}
.fab svg{width:20px;height:20px;fill:currentColor}
.fab:hover{transform:translateY(-2px)}
body:has(.plans) .fab,body:has(.contact-h) .fab{display:none}
@media(max-width:480px){.fab span{display:none}.fab{width:54px;height:54px;padding:0;justify-content:center}}

/* loops pause when the block is off screen (site.js toggles .off) */
.anim.off *,.anim.off *::before,.anim.off *::after{animation-play-state:paused!important}

/* ---------- reveal + transitions ---------- */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity var(--d4) var(--ease),transform var(--d4) var(--ease);transition-delay:calc(var(--i,0)*80ms)}
.js .rv.in{opacity:1;transform:none}
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .18s ease both}
::view-transition-new(root){animation:vt-in .32s var(--ease) both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}
.site-h{view-transition-name:hdr}
::view-transition-group(hdr){animation-duration:0s}

/* ---------- reduced motion: one rule, everything calm ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .kin .w>span{transform:none;animation:none}
  .stage canvas,.spot{display:none}
  .lay{transition:opacity var(--d2)}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
@media(forced-colors:active){.grad,.proof b,.fword,.steps4 .card::after,.nf .big{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:CanvasText}}
@media(max-width:600px){.fab{width:46px;height:46px}.fab svg{width:18px;height:18px}main{padding-bottom:5rem}}

/* r4: light-mode gradient text needs >=3:1 on cream */
:root:not([data-theme=dark]) :is(.grad,.grad-anim){background-image:linear-gradient(120deg,#8F6A12 0%,#B06800 50%,#9A5A00 100%)}
