/* Fidelka landing — ultramarine stamp ink, one family (Bricolage Grotesque), red rubber-stamp accent. */
html:has(body.landing){scroll-behavior:smooth;scroll-padding-top:84px}
body.landing{
  --u:#2B28E3;--u2:#2320C4;--u3:#1B18A3;--u4:#120F74;--night:#0C0A45;
  --on-u:#FFFFFF;--on-u2:#CFCEFF;--on-u3:#9B99F2;--u-line:rgba(255,255,255,.16);
  --stamp:#FF5A36;--stamp2:#FF8466;--ok:#17A061;
  --ice:#F2F2FF;--tx:#12113F;--tx2:#57567F;--ln:#E1E1F6;
  --ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.2,1.35,.35,1);
  margin:0;padding:0;background:#fff;color:var(--tx);overflow-x:hidden;
  font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:17px;line-height:1.5;font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
}
body.landing > .langbar{display:none}
:where(.landing) :is(h1,h2,h3,p){margin:0}
:where(.landing) a{color:inherit}
.landing :focus-visible{outline:3px solid var(--stamp);outline-offset:3px;border-radius:8px}
.lw{max-width:1220px;margin:0 auto;padding:0 24px}
.h1{font-size:clamp(3rem,7vw,6.4rem);font-weight:800;font-stretch:78%;line-height:.9;letter-spacing:-.035em;text-wrap:balance}
.h2{font-size:clamp(2.3rem,4.8vw,4.1rem);font-weight:800;font-stretch:80%;line-height:.94;letter-spacing:-.03em;text-wrap:balance}
.lead{font-size:clamp(1.08rem,1.5vw,1.3rem);line-height:1.45;color:var(--on-u2);max-width:33em}
.lead-l{font-size:1.15rem;line-height:1.5;color:var(--tx2);max-width:34em}

/* ---------- buttons ---------- */
.landing .cta{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:999px;
  padding:13px 22px;font:inherit;font-weight:700;font-size:1rem;line-height:1.1;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .15s var(--ease),box-shadow .2s var(--ease),background .2s;box-shadow:none;width:auto}
.landing .cta:hover{transform:translateY(-2px)}
.landing .cta:active{transform:translateY(0) scale(.98)}
.landing .cta svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.landing .cta.lg{padding:17px 28px;font-size:1.06rem}
.landing .cta.sm{padding:10px 16px;font-size:.92rem}
.landing .cta.xs{padding:7px 12px;font-size:.78rem}
.landing .cta.wide{width:100%}
.landing .cta.light{background:#fff;color:var(--u4);box-shadow:0 10px 30px -10px rgba(10,8,70,.55)}
.landing .cta.light:hover{box-shadow:0 16px 40px -12px rgba(10,8,70,.65)}
.landing .cta.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4)}
.landing .cta.ghost:hover{box-shadow:inset 0 0 0 1.5px #fff}
.landing .cta.ink{background:var(--u);color:#fff;box-shadow:0 12px 30px -12px rgba(43,40,227,.8)}
.landing .cta.ink:hover{background:#3A37F0}
.landing .cta.green{background:var(--ok);color:#fff;box-shadow:0 12px 30px -12px rgba(23,160,97,.8)}
.landing .cta.stamp{background:var(--stamp);color:#fff;box-shadow:0 12px 30px -12px rgba(255,90,54,.9);white-space:normal;text-align:left}
.landing .cta.stamp:hover{background:#FF6B4A}
.landing .cta[hidden]{display:none}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;color:#fff;transition:background .3s,box-shadow .3s,backdrop-filter .3s}
.nav.solid{background:rgba(35,32,196,.82);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 1px 0 rgba(255,255,255,.1)}
.nav-in{max-width:1220px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:28px}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.35rem;letter-spacing:-.02em;text-decoration:none;font-stretch:90%}
.logo-mark{width:34px;height:34px;border-radius:11px;background:var(--stamp);display:inline-grid;place-items:center;color:#fff;box-shadow:0 6px 18px -6px rgba(255,90,54,.9)}
.logo-mark svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.nav-links{display:flex;gap:24px;margin-left:8px}
.nav-links a{text-decoration:none;font-weight:600;font-size:.96rem;color:var(--on-u2);transition:color .2s}
.nav-links a:hover{color:#fff}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.nav-login{text-decoration:none;font-weight:600;font-size:.96rem;color:var(--on-u2)}
.nav-login:hover{color:#fff}
.lang{position:relative}
.lang summary{list-style:none;cursor:pointer;font-weight:700;font-size:.85rem;padding:7px 11px;border-radius:999px;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3)}
.lang summary::-webkit-details-marker{display:none}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;color:var(--tx);border-radius:14px;padding:6px;display:grid;min-width:80px;box-shadow:0 20px 50px -15px rgba(10,8,70,.5)}
.lang-menu a{text-decoration:none;font-weight:700;font-size:.9rem;padding:8px 12px;border-radius:9px}
.lang-menu a:hover,.lang-menu a[aria-current]{background:var(--ice);color:var(--u)}
@media (max-width:1020px){.nav-links{display:none}}
@media (max-width:640px){.nav-login{display:none}.nav-in{padding:12px 16px;gap:10px}.nav-cta{display:none!important}}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--u);color:#fff;padding:128px 0 72px;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(60% 55% at 72% 48%,rgba(120,118,255,.55),transparent 70%),radial-gradient(80% 60% at 0% 100%,rgba(12,10,69,.6),transparent 70%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.14;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-in{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:32px;align-items:center}
.hero-copy{position:relative;z-index:3}
.hero-copy .lead{margin:26px 0 34px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.proof{list-style:none;padding:0;margin:34px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.proof li{font-size:.92rem;font-weight:600;color:#fff;padding:7px 13px 7px 30px;border-radius:999px;background:rgba(255,255,255,.1);position:relative}
.proof li::before{content:"";position:absolute;left:12px;top:50%;width:10px;height:6px;border-left:2px solid var(--stamp2);border-bottom:2px solid var(--stamp2);transform:translateY(-70%) rotate(-45deg)}
.sim-note{margin-top:14px;font-size:.88rem;color:var(--on-u3);max-width:40em}
.rise{animation:rise .9s var(--ease) both;animation-delay:var(--rd,0s)}
@keyframes rise{from{opacity:0;transform:translateY(26px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 -20% 0)}}

/* ---------- 3D diorama ---------- */
.hero-visual{position:relative}
.stage-wrap{position:relative}
.stage{position:relative;aspect-ratio:10/7.4;perspective:2000px;perspective-origin:50% 10%;margin-right:-4%}
.world{position:absolute;left:50%;top:48%;width:720px;height:540px;margin:-270px 0 0 -360px;transform-style:preserve-3d;
  --rx:56deg;--rz:-34deg;
  transform:translateY(var(--wy,0px)) scale(var(--s,.6)) rotateX(var(--rx)) rotateZ(var(--rz));
  transition:transform 1.4s var(--ease),opacity .8s;opacity:0;--wy:80px}
.world.in{opacity:1;--wy:0px}
.world > *{position:absolute}
.ground{inset:0;background:#1D1AAE;border-radius:10px;transform-style:preserve-3d;box-shadow:0 0 0 1px rgba(255,255,255,.06)}
.edge-s{position:absolute;left:0;top:100%;width:100%;height:26px;background:linear-gradient(#15127F,#0E0B5C);transform-origin:top;transform:rotateX(-90deg)}
.edge-w{position:absolute;top:0;right:100%;width:26px;height:100%;background:linear-gradient(90deg,#0E0B5C,#120F6E);transform-origin:right;transform:rotateY(-90deg)}
.world .shadow{left:6%;top:8%;width:92%;height:92%;background:rgba(6,4,50,.55);filter:blur(34px);transform:translateZ(-60px);border-radius:40px}
.blk{background:#2A27CF;border-radius:7px;transform:translateZ(.4px)}
.blk.park{background:#1F8F84}
.blk.plaza{background:#3330D9}
.fountain{width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:radial-gradient(circle,#7FD8FF 0 35%,#3B9BEA 36% 55%,#2C2AD0 56%);transform:translateZ(1px)}
.lane{transform:translateZ(.6px)}
.lane.h{left:0;width:100%;height:0;border-top:2px dashed rgba(255,255,255,.2)}
.lane.v{top:0;height:100%;width:0;border-left:2px dashed rgba(255,255,255,.2)}
.bld{transform-style:preserve-3d;transform:scaleZ(.01);transition:transform 1s var(--spring);transition-delay:var(--d,0ms)}
.world.in .bld{transform:scaleZ(1)}
.bld i{position:absolute;display:block}
.bld .roof{inset:0;background:#4F4CFA;transform:translateZ(var(--h));border-radius:2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.bld .fs{left:0;right:0;top:100%;height:var(--h);transform-origin:top;transform:rotateX(90deg);background-color:#3532E4;
  background-image:repeating-linear-gradient(0deg,#3532E4 0 4px,transparent 4px 10px),repeating-linear-gradient(90deg,transparent 0 4px,rgba(255,255,255,.2) 4px 8px)}
.bld .fw{top:0;bottom:0;right:100%;width:var(--h);transform-origin:right;transform:rotateY(90deg);background-color:#2522BE;
  background-image:repeating-linear-gradient(90deg,#2522BE 0 4px,transparent 4px 10px),repeating-linear-gradient(0deg,transparent 0 4px,rgba(255,255,255,.12) 4px 8px)}
.bld.venue .roof{background:#FF7A58}
.bld.venue .fs{background:#FF5A36;background-image:linear-gradient(transparent 45%,rgba(255,255,255,.85) 45% 58%,transparent 58%)}
.bld.venue .fw{background:#D9401F;background-image:none}
.bb{position:absolute;left:0;top:0;width:0;height:0;transform:rotateZ(calc(var(--rz) * -1)) rotateX(calc(var(--rx) * -1))}
.bbz{transform-style:preserve-3d}
.tree .bb svg{position:absolute;left:-11px;bottom:0;width:22px;height:30px}
.pin{transform-style:preserve-3d}
.pin .bb{transform:translateZ(var(--z,40px)) rotateZ(calc(var(--rz) * -1)) rotateX(calc(var(--rx) * -1))}
.pin-lbl{position:absolute;left:0;bottom:0;transform:translateX(-50%);white-space:nowrap;background:#fff;color:var(--stamp);
  font-weight:800;font-size:calc(12px * var(--inv,1.6));padding:.35em .75em .35em .55em;border-radius:999px;display:flex;align-items:center;gap:.4em;
  box-shadow:0 10px 24px -8px rgba(6,4,50,.7)}
.pin-lbl::before{content:"";width:.75em;height:.75em;border-radius:50%;background:var(--stamp);box-shadow:0 0 0 .25em rgba(255,90,54,.25)}
.pin-lbl::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:calc(10px * var(--inv,1.6));background:#fff;transform:translateX(-50%)}
.radius{width:0;height:0;transform:translateZ(1px);transform-style:preserve-3d}
.radius .disc,.radius .ring{position:absolute;border-radius:50%;left:calc(var(--r) * -1);top:calc(var(--r) * -1);width:calc(var(--r) * 2);height:calc(var(--r) * 2);transition:all .35s var(--ease)}
.radius .disc{background:radial-gradient(circle,rgba(255,90,54,.34),rgba(255,90,54,.12) 62%,rgba(255,90,54,.2) 100%);box-shadow:0 0 0 2px rgba(255,132,102,.9),0 0 40px 4px rgba(255,90,54,.35)}
.radius .ring{box-shadow:0 0 0 2px rgba(255,160,140,.9);animation:ring 3s var(--ease) infinite;opacity:0}
.radius .ring.r2{animation-delay:1.5s}
@keyframes ring{0%{transform:scale(.12);opacity:.9}100%{transform:scale(1);opacity:0}}
.walker{left:0;top:0;transform-style:preserve-3d;will-change:transform}
.walker .sh{position:absolute;left:-7px;top:-3.5px;width:14px;height:7px;border-radius:50%;background:rgba(6,4,50,.5);transform:translateZ(1.2px)}
.walker .halo{position:absolute;left:-15px;top:-15px;width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 2px #fff;opacity:.9;transform:translateZ(1.4px);animation:halo 1.6s var(--ease) infinite}
@keyframes halo{0%{transform:translateZ(1.4px) scale(.5);opacity:.9}100%{transform:translateZ(1.4px) scale(1.4);opacity:0}}
.walker .fig{position:absolute;left:-8px;bottom:0;width:16px;height:32px;animation:bob .44s ease-in-out infinite alternate;transform-origin:bottom}
.walker .fig .hd,.walker .fig .bd{fill:rgba(190,189,255,.75)}
.walker.holder .fig .hd,.walker.holder .fig .bd{fill:#fff}
.walker.holder .fig .cd{fill:var(--stamp)}
.walker:not(.holder) .fig .cd{display:none}
@keyframes bob{from{transform:translateY(0)}to{transform:translateY(-2px)}}
.bubble,.tagname{position:absolute;left:0;bottom:calc(40px);transform:translateX(-50%) scale(.6);transform-origin:50% 100%;opacity:0;
  font-size:calc(12px * var(--inv,1.6));line-height:1;white-space:nowrap;transition:opacity .25s,transform .45s var(--spring)}
.bubble{display:flex;align-items:center;gap:.45em;background:#fff;color:var(--tx);font-weight:700;padding:.5em .75em .5em .5em;border-radius:1.1em;box-shadow:0 12px 26px -8px rgba(6,4,50,.75)}
.bubble i{width:1.5em;height:1.5em;border-radius:.45em;background:#6B3E26;display:grid;place-items:center;color:#fff}
.bubble i svg{width:1em;height:1em;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.bubble.promo{background:var(--stamp);color:#fff}
.bubble.promo i{background:rgba(255,255,255,.25)}
.bubble::after{content:"";position:absolute;left:50%;top:100%;border:.4em solid transparent;border-top-color:#fff;transform:translateX(-50%)}
.bubble.promo::after{border-top-color:var(--stamp)}
.walker.show .bubble{opacity:1;transform:translateX(-50%) scale(1)}
.tagname{opacity:1;transform:translateX(-50%);background:var(--u4);color:#fff;font-weight:700;padding:.35em .6em;border-radius:.7em;box-shadow:0 0 0 1.5px rgba(255,255,255,.7)}
.walker.show .tagname{opacity:0}
.stage-keys{position:absolute;left:0;top:0;display:flex;flex-wrap:wrap;gap:8px;z-index:2}
.badge{font-size:.76rem;font-weight:700;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(6px)}
.key{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:600;color:var(--on-u2);padding:5px 10px 5px 8px;border-radius:999px;background:rgba(12,10,69,.28)}
.key i{width:9px;height:9px;border-radius:50%;background:rgba(190,189,255,.75)}
.key.holder i{background:#fff;box-shadow:0 0 0 2px var(--stamp)}

/* hero phone */
.phone{--pw:280px;position:relative;width:var(--pw);aspect-ratio:9/19.4;border-radius:calc(var(--pw) * .165);background:#0A0A12;padding:calc(var(--pw) * .032);
  box-shadow:inset 0 0 0 1.5px #3A3A52,0 0 0 1px rgba(255,255,255,.05),0 60px 90px -40px rgba(6,4,50,.8),0 30px 60px -30px rgba(6,4,50,.6)}
.phone .screen{position:relative;height:100%;border-radius:calc(var(--pw) * .135);overflow:hidden;background:#000;container-type:inline-size}
.island{position:absolute;z-index:9;top:2.6%;left:50%;width:31%;height:3.4%;transform:translateX(-50%);background:#000;border-radius:999px}
.hero-phone{--pw:clamp(150px,27%,244px);position:absolute;right:-1%;top:24%;z-index:4;transform:translateY(40px) rotate(4deg);opacity:0;transition:transform 1.2s var(--spring) .7s,opacity .8s .7s}
.hero-phone.in{transform:rotate(4deg);opacity:1}
.lock{position:absolute;inset:0;color:#fff;filter:brightness(.5) saturate(.8);transition:filter .7s var(--ease);
  background:radial-gradient(90% 60% at 15% 12%,#FF9F80 0%,transparent 60%),radial-gradient(90% 70% at 100% 100%,#8A6BFF 0%,transparent 60%),linear-gradient(165deg,#4535E8,#1B137E)}
.hero-phone.awake .lock{filter:none}
.lock-ic{position:absolute;top:9%;left:50%;width:6cqw;height:6cqw;transform:translateX(-50%);fill:none;stroke:#fff;stroke-width:2}
.lock-date{position:absolute;top:15%;width:100%;text-align:center;font-size:5.4cqw;font-weight:600;opacity:.92}
.lock-time{position:absolute;top:19%;width:100%;text-align:center;font-size:25cqw;font-weight:700;font-stretch:78%;letter-spacing:-.02em;line-height:1}
.lock-notif{position:absolute;left:4.5%;right:4.5%;bottom:21%;display:flex;gap:3.4cqw;padding:3.6cqw;border-radius:6.5cqw;
  background:rgba(250,250,255,.78);backdrop-filter:blur(14px) saturate(1.6);-webkit-backdrop-filter:blur(14px) saturate(1.6);color:#111;
  opacity:0;transform:translateY(40%) scale(.9);transition:opacity .35s,transform .6s var(--spring)}
.hero-phone.awake .lock-notif{opacity:1;transform:none}
.lock-notif.flash{animation:flash .6s var(--ease)}
@keyframes flash{50%{transform:scale(1.04)}}
.ln-icon{flex:none;width:9.5cqw;height:9.5cqw;border-radius:2.4cqw;background:var(--pc,#6B3E26);display:grid;place-items:center;color:#fff;font-weight:800;font-size:4.6cqw}
.ln-body{min-width:0}
.ln-head{display:flex;justify-content:space-between;gap:2cqw;align-items:baseline}
.ln-head b{font-size:4.4cqw}
.ln-head small{font-size:3.4cqw;color:#666}
.ln-body p{font-size:4.1cqw;line-height:1.28;margin-top:.8cqw}
.lock-bottom{position:absolute;left:10%;right:10%;bottom:7%;display:flex;justify-content:space-between}
.lock-bottom span{width:13cqw;height:13cqw;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(8px)}
.home-ind{position:absolute;bottom:2%;left:50%;width:36%;height:1.3%;transform:translateX(-50%);background:#fff;border-radius:999px;opacity:.85}

/* stage controls */
.stage-ctl{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:10px;padding:16px 18px;border-radius:20px;
  background:rgba(12,10,69,.28);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);max-width:680px;position:relative;z-index:5}
.rng{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 12px;font-weight:600;font-size:.92rem;margin:0}
.stage-ctl .rng{flex:1 1 240px}
.stage-ctl .send-row{flex:0 1 auto}
.landing .rng{color:inherit}
.rng output{font-weight:800;font-variant-numeric:tabular-nums}
.rng input{grid-column:1/-1;width:100%;appearance:none;-webkit-appearance:none;height:6px;border-radius:999px;padding:0;border:0;box-shadow:none;
  background:linear-gradient(90deg,var(--stamp) var(--fill,40%),rgba(255,255,255,.22) var(--fill,40%));cursor:pointer}
.rng input::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 5px rgba(255,90,54,.35),0 4px 12px rgba(0,0,0,.35)}
.rng input::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 5px rgba(255,90,54,.35),0 4px 12px rgba(0,0,0,.35)}
.rng input:focus{box-shadow:none;border:0}
.hero .rng{color:#fff}
.send-row{display:grid;gap:6px;justify-items:start}
.send-out{font-size:.86rem;color:var(--on-u2);min-height:0;max-width:30em}
.send-out:empty{display:none}


/* ---------- sections ---------- */
.sec{padding:120px 0}
.sec .h2{margin-bottom:22px}

/* story */
.story{background:#fff}
.story .h2{max-width:12em}
.story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;margin-top:30px}
.story-steps{list-style:none;padding:0;margin:0}
.step{min-height:68vh;display:flex;flex-direction:column;justify-content:center;padding:20px 0;opacity:.28;transition:opacity .5s var(--ease)}
.step.on{opacity:1}
.step .num{font-size:clamp(4rem,8vw,7rem);font-weight:800;font-stretch:75%;line-height:.8;color:transparent;-webkit-text-stroke:2px var(--u);margin-bottom:18px}
.step.on .num{color:var(--u);-webkit-text-stroke:0}
.step h3{font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:800;font-stretch:85%;letter-spacing:-.02em;line-height:1.05;margin-bottom:12px}
.step p{font-size:1.12rem;color:var(--tx2);max-width:26em}
.story-visual{position:relative}
.story-sticky{position:sticky;top:calc(50vh - 290px);height:580px;display:grid;place-items:center}
.story-sticky::before{content:"";position:absolute;inset:6% 4%;border-radius:50%;background:radial-gradient(circle,rgba(43,40,227,.18),transparent 65%);z-index:0}
.story-phone{--pw:272px;z-index:1}
.scr{position:absolute;inset:0;opacity:0;transition:opacity .45s var(--ease);background:#F2F2F7}
.story-phone[data-step="1"] .scr-1,.story-phone[data-step="2"] .scr-2,.story-phone[data-step="3"] .scr-3,.story-phone[data-step="4"] .scr-4{opacity:1}
/* step 1: camera */
.scr-1{background:#1a1410}
.cam-bg{position:absolute;inset:0;background:radial-gradient(40% 25% at 25% 20%,rgba(255,196,120,.55),transparent 70%),radial-gradient(35% 22% at 80% 30%,rgba(255,150,90,.4),transparent 70%),
  radial-gradient(60% 40% at 50% 90%,rgba(120,70,40,.9),transparent 70%),linear-gradient(#3b2a20,#1c140f);filter:blur(2px)}
.qr-stand{position:absolute;left:50%;top:44%;width:52%;transform:translate(-50%,-50%) rotate(-3deg);background:#fff;border-radius:4cqw;padding:5cqw 5cqw 4cqw;display:grid;gap:3cqw;justify-items:center;box-shadow:0 20px 40px rgba(0,0,0,.5)}
.qr-stand .qr{width:100%;aspect-ratio:1}
.qr-stand small{font-size:3.6cqw;font-weight:700;color:var(--tx);text-align:center;line-height:1.2}
.finder{position:absolute;left:50%;top:40%;width:44%;aspect-ratio:1;transform:translate(-50%,-50%) scale(1.5);opacity:0}
.finder i{position:absolute;width:24%;height:24%;border:1.2cqw solid #FFD60A}
.finder i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:3cqw 0 0 0}
.finder i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 3cqw 0 0}
.finder i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 3cqw}
.finder i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 3cqw 0}
.scr-1.play .finder{animation:lockon .7s var(--spring) .35s forwards}
@keyframes lockon{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.cam-pill{position:absolute;left:50%;top:66%;transform:translate(-50%,20px);opacity:0;display:flex;align-items:center;gap:2cqw;background:#FFD60A;color:#1a1a1a;font-weight:700;font-size:3.9cqw;padding:2.6cqw 4.2cqw;border-radius:999px;white-space:nowrap}
.cam-pill svg{width:4.5cqw;height:4.5cqw;fill:none;stroke:currentColor;stroke-width:2}
.scr-1.play .cam-pill{animation:pill .5s var(--spring) 1s forwards}
@keyframes pill{to{opacity:1;transform:translate(-50%,0)}}
.cam-shutter{position:absolute;bottom:6%;left:50%;width:17cqw;height:17cqw;transform:translateX(-50%);border-radius:50%;background:#fff;box-shadow:0 0 0 1.2cqw #1a1410,0 0 0 2cqw #fff}
/* step 2: add */
.sf-bar{position:absolute;top:0;left:0;right:0;height:16%;background:#F7F7FA;display:flex;align-items:flex-end;justify-content:center;padding-bottom:3cqw;border-bottom:1px solid #e3e3ea}
.sf-bar span{font-size:3.8cqw;font-weight:600;background:#E9E9EF;padding:1.6cqw 6cqw;border-radius:2.4cqw;color:#333}
.sf-page{position:absolute;top:16%;left:0;right:0;bottom:0;display:grid;align-content:start;justify-items:center;gap:5cqw;padding:7cqw 8cqw}
.sf-pass{width:100%;transition:transform .8s var(--ease),opacity .6s}
.sf-add{display:flex;align-items:center;gap:2.4cqw;background:#000;color:#fff;font-weight:700;font-size:4.2cqw;padding:3.6cqw 6cqw;border-radius:3cqw}
.sf-add svg{width:5cqw;height:5cqw;fill:none;stroke:#fff;stroke-width:2}
.sf-done{display:flex;align-items:center;gap:2cqw;color:var(--ok);font-weight:800;font-size:4.4cqw;opacity:0}
.sf-done svg,.tb-ok svg,.lead-ok svg{width:5cqw;height:5cqw;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.scr-2.play .sf-add{animation:press .5s ease 1s}
.scr-2.play .sf-pass{animation:fly 1s var(--ease) 1.3s forwards}
.scr-2.play .sf-done{animation:fadein .4s ease 2.1s forwards}
@keyframes press{50%{transform:scale(.93);opacity:.8}}
@keyframes fly{to{transform:translateY(-8%) scale(1.06)}}
@keyframes fadein{to{opacity:1}}
/* step 3/4: wallet */
.scr-3,.scr-4{background:#F2F2F7}
.wl-top{position:absolute;top:10%;left:7%;font-size:8cqw;font-weight:800;color:#111}
.wl-pass{position:absolute;top:20%;left:6%;right:6%}
.wl-banner{position:absolute;top:4.5%;left:4%;right:4%;display:flex;gap:3cqw;align-items:center;padding:3cqw;border-radius:5cqw;background:#fff;box-shadow:0 8px 24px -8px rgba(0,0,0,.3);color:#111;z-index:10;
  transform:translateY(-140%);opacity:0}
.wl-banner b{display:block;font-size:4.3cqw}.wl-banner span{font-size:4cqw;color:#444}
.scr-3.play .wl-banner{animation:drop .6s var(--spring) 1.35s forwards}
@keyframes drop{to{transform:none;opacity:1}}
.story-stamp .slot:nth-child(5) svg{opacity:0}
.scr-3.play .story-stamp .slot:nth-child(5){animation:slotOn .01s linear 1.05s forwards}
.scr-3.play .story-stamp .slot:nth-child(5) svg{animation:stampIn .5s var(--spring) 1.05s forwards}
@keyframes slotOn{to{background:#fff;box-shadow:none}}
.story-stamp .wp-count{position:relative}
.scr-3.play .story-stamp .wp-count{animation:countUp .01s linear 1.05s forwards}
@keyframes countUp{to{color:transparent}}
.scr-3.play .story-stamp .wp-count::after{content:"5/7";position:absolute;right:0;top:0;color:#fff;animation:fadein .01s linear 1.05s both}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;left:50%;top:38%;width:2.4cqw;height:3.6cqw;border-radius:1px;opacity:0;
  background:hsl(calc(var(--i) * 47),90%,62%)}
.scr-4.play .confetti i{animation:conf 1.6s var(--ease) calc(.2s + var(--i) * .02s) forwards}
@keyframes conf{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(calc((var(--i) - 9) * 5.5cqw),calc(40cqw + (var(--i) * 7 % 5) * 9cqw)) rotate(calc(var(--i) * 80deg))}}
/* tablet */
.tablet{position:absolute;left:-2%;bottom:6%;z-index:2;width:230px;aspect-ratio:4/3;background:#0A0A12;border-radius:22px;padding:9px;box-shadow:inset 0 0 0 1.5px #3A3A52,0 40px 70px -30px rgba(6,4,50,.6);
  opacity:0;transform:translateX(-30px) rotate(-4deg);transition:opacity .5s var(--ease),transform .7s var(--spring);pointer-events:none}
.story-visual.s3 .tablet{opacity:1;transform:rotate(-4deg)}
.tb-screen{height:100%;border-radius:14px;background:#12113F;color:#fff;display:grid;align-content:center;justify-items:center;gap:10px;padding:12px;container-type:inline-size}
.tb-ok{display:flex;align-items:center;gap:6px;color:#6BE3A4;font-weight:700;font-size:6cqw}
.tb-ok svg{width:7cqw;height:7cqw}
.tb-card{display:flex;align-items:center;gap:8px;font-size:9cqw;font-weight:800}
.tb-card .ln-icon{width:13cqw;height:13cqw;font-size:6cqw;border-radius:3cqw}
.tb-btn{position:relative;background:var(--u);border-radius:999px;font-weight:800;font-size:6.2cqw;padding:3.4cqw 7cqw;min-width:70%;text-align:center}
.tb-btn .b{position:absolute;inset:0;display:grid;place-items:center;opacity:0;background:var(--ok);border-radius:inherit}
.story-visual.s3 .tb-btn{animation:press .5s ease .55s}
.story-visual.s3 .tb-btn .b{animation:fadein .2s ease .95s forwards}

/* ---------- Wallet pass ---------- */
.wpass{container-type:inline-size;position:relative;background:var(--pc);color:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 24px 50px -24px rgba(12,10,69,.55);transition:background .5s var(--ease)}
.wpass::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,.16),transparent 40%,rgba(0,0,0,.18));pointer-events:none}
.wp-head{position:relative;display:flex;align-items:center;gap:3cqw;padding:5cqw 5.5cqw 4cqw}
.wp-logo{width:11cqw;height:11cqw;border-radius:3cqw;background:rgba(255,255,255,.2);display:grid;place-items:center;font-weight:800;font-size:5.6cqw}
.wp-name{flex:1;font-size:5.4cqw;font-weight:700;letter-spacing:-.01em;line-height:1.1}
.wp-hf{text-align:right;display:grid}
.wp-hf small,.wp-fields small{font-size:2.9cqw;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75}
.wp-count{font-size:6.4cqw;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.05}
.wp-strip{position:relative;margin:0;padding:7cqw 5cqw;background:linear-gradient(120deg,rgba(0,0,0,.28),rgba(0,0,0,.05) 60%),radial-gradient(60% 120% at 90% 0%,rgba(255,255,255,.25),transparent 60%)}
.wp-slots{display:grid;grid-template-columns:repeat(7,1fr);gap:2.2cqw}
.slot{aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 .5cqw rgba(255,255,255,.55);display:grid;place-items:center;color:var(--pc);background:rgba(255,255,255,.06);transition:background .2s}
.slot svg{width:62%;height:62%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(1.8) rotate(-18deg)}
.slot.on{background:#fff;box-shadow:none}
.slot.on svg{opacity:1;transform:none}
.slot.pop svg{animation:stampIn .5s var(--spring) both}
.slot.pop{animation:thud .35s var(--ease)}
@keyframes stampIn{0%{opacity:0;transform:scale(1.9) rotate(-18deg)}60%{opacity:1;transform:scale(.9) rotate(4deg)}100%{opacity:1;transform:none}}
@keyframes thud{40%{transform:scale(.86)}}
.wp-ready{position:absolute;inset:0;display:grid;place-items:center;font-size:8cqw;font-weight:800;letter-spacing:-.02em;background:linear-gradient(120deg,#139A5C,#2FCB82);opacity:0;transition:opacity .4s var(--ease)}
.wpass.ready .wp-ready{opacity:1}
.wp-fields{position:relative;display:grid;grid-template-columns:1fr auto;gap:4cqw;padding:4.5cqw 5.5cqw}
.wp-fields b{display:block;font-size:4.6cqw;font-weight:700;line-height:1.2}
.wp-fields .r{text-align:right}
.wp-code{position:relative;display:grid;place-items:center;padding:1cqw 0 6cqw}
.wp-code .qr{width:32cqw;aspect-ratio:1;background-color:#fff;border-radius:2.5cqw;border:2.2cqw solid #fff}
.qr{display:block;background-image:var(--qr);background-size:100% 100%;background-repeat:no-repeat;image-rendering:pixelated}
.wpass.sm{border-radius:10px}
.wpass.sm .wp-code .qr{width:26cqw}

/* ---------- play ---------- */
.play{background:var(--ice);overflow:hidden;padding-bottom:0}
.play-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:70px;align-items:center}
.play-copy .lead-l{margin-bottom:28px}
.chipset{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:28px}
.landing .chip{appearance:none;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:10px 16px 10px 12px;font:inherit;font-weight:600;font-size:.95rem;
  background:#fff;color:var(--tx);cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--ln);transition:box-shadow .2s,background .2s,color .2s;width:auto}
.landing .chip:hover{box-shadow:inset 0 0 0 1.5px var(--u)}
.landing .chip.on{background:var(--tx);color:#fff;box-shadow:none}
.landing .chip:active{transform:scale(.97)}
.chip-dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 2px #fff}
.play-btns{display:flex;flex-wrap:wrap;gap:12px}
.demo-hint{margin-top:14px;color:var(--tx2);font-size:.95rem}
.pass-stage{position:relative;perspective:1100px;display:grid;justify-items:center;padding:92px 0 40px}
.tilt{position:relative;width:min(380px,84vw);transform-style:preserve-3d;transform:rotateX(var(--tx,6deg)) rotateY(var(--ty,-10deg));transition:transform .5s var(--ease)}
.tilt.live{transition:transform .08s linear}
.tilt .wpass{border-radius:22px;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 50px 80px -30px rgba(12,10,69,.55),0 20px 40px -20px rgba(12,10,69,.4)}
.glare{position:absolute;inset:0;border-radius:22px;pointer-events:none;background:radial-gradient(circle at var(--gx,30%) var(--gy,20%),rgba(255,255,255,.38),transparent 45%);mix-blend-mode:soft-light}
.rubber{position:absolute;left:0;top:0;width:64px;height:86px;margin:-78px 0 0 -32px;pointer-events:none;opacity:0;z-index:5;filter:drop-shadow(0 14px 12px rgba(6,4,50,.35))}
.rubber svg{width:100%;height:100%}
.rubber.go{animation:slam .62s var(--ease)}
@keyframes slam{0%{opacity:0;transform:translateY(-70px) rotate(-8deg)}35%{opacity:1;transform:translateY(-8px) rotate(-4deg)}48%{transform:translateY(6px) scaleY(.9)}62%{transform:translateY(4px)}100%{opacity:0;transform:translateY(-80px) rotate(4deg)}}
.p-banner{position:absolute;top:0;left:50%;width:min(340px,80vw);display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:20px;background:rgba(255,255,255,.94);
  box-shadow:0 20px 40px -18px rgba(12,10,69,.45);transform:translate(-50%,-30px) scale(.95);opacity:0;transition:opacity .3s,transform .5s var(--spring);container-type:inline-size;z-index:6}
.p-banner.show{opacity:1;transform:translate(-50%,0)}
.p-banner .ln-icon{width:40px;height:40px;border-radius:11px;font-size:18px}
.p-banner b{display:block;font-size:.95rem}.p-banner span{font-size:.9rem;color:var(--tx2)}
.burst{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:7}
.burst i{position:absolute;width:9px;height:14px;border-radius:2px;animation:burst 1.2s var(--ease) forwards}
@keyframes burst{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--bx),var(--by)) rotate(var(--br));opacity:0}}
.ribbon{margin-top:80px;padding:34px 0 110px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ribbon-track{display:flex;gap:26px;width:max-content;animation:marq 48s linear infinite}
.ribbon:hover .ribbon-track{animation-play-state:paused}
.rb-item{width:250px;transform:rotate(var(--rot,-2deg))}
.rb-item:nth-child(3n){--rot:2deg}.rb-item:nth-child(3n+1){--rot:-1deg}
@keyframes marq{to{transform:translateX(calc(-50% - 13px))}}

/* ---------- owner panel ---------- */
.panel{background:#fff}
.panel-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:center}
.ticks{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:14px}
.ticks li{position:relative;padding-left:36px;font-size:1.05rem;line-height:1.45}
.ticks li::before{content:"";position:absolute;left:0;top:.1em;width:24px;height:24px;border-radius:50%;background:var(--u)}
.ticks li::after{content:"";position:absolute;left:7px;top:.42em;width:9px;height:5px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg)}
.dash{border-radius:18px;background:#fff;box-shadow:0 0 0 1px var(--ln),0 60px 100px -50px rgba(12,10,69,.45),0 30px 60px -40px rgba(12,10,69,.3);overflow:hidden;transform:perspective(1600px) rotateY(-7deg) rotateX(3deg);transform-origin:left center}
.dash-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#F6F6FB;border-bottom:1px solid var(--ln)}
.dash-bar i{width:11px;height:11px;border-radius:50%;background:#DADAEA}
.dash-bar span{margin-left:12px;font-size:.78rem;color:var(--tx2);background:#fff;padding:4px 12px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--ln)}
.dash-body{display:grid;grid-template-columns:170px 1fr;min-height:360px}
.dash-side{background:#FAFAFE;border-right:1px solid var(--ln);padding:14px 10px;display:grid;align-content:start;gap:3px;font-size:.84rem;color:var(--tx2)}
.ds-brand{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--tx);font-size:.84rem;padding:4px 6px 12px}
.ds-brand .ln-icon{width:26px;height:26px;border-radius:7px;font-size:13px}
.dash-side span{padding:7px 10px;border-radius:9px}
.dash-side span.on{background:var(--ice);color:var(--u);font-weight:700}
.dash-main{padding:16px;display:grid;gap:14px}
.kp4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.kp{border-radius:12px;box-shadow:inset 0 0 0 1px var(--ln);padding:11px 12px;display:grid;gap:3px}
.kp small{font-size:.7rem;color:var(--tx2);line-height:1.2;min-height:2.4em}
.kp b{font-size:1.55rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.kp em{font-style:normal;font-size:.72rem;font-weight:700;color:var(--ok)}
.dchart{border-radius:12px;box-shadow:inset 0 0 0 1px var(--ln);padding:12px 12px 6px}
.dchart b{font-size:.8rem}
.dchart svg{display:block;width:100%;height:auto;margin-top:6px;overflow:visible}
#d-line{stroke-dasharray:var(--len,1000);stroke-dashoffset:var(--len,1000);transition:stroke-dashoffset 1.8s var(--ease)}
#d-area{opacity:0;transition:opacity 1s var(--ease) .8s}
.dash.on #d-line{stroke-dashoffset:0}
.dash.on #d-area{opacity:1}
.ai-note{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:start;border-radius:12px;padding:12px;background:linear-gradient(120deg,#F1F0FF,#FFF3EF)}
.ai-badge{font-size:.7rem;font-weight:800;color:#fff;background:linear-gradient(120deg,var(--u),var(--stamp));padding:4px 7px;border-radius:7px}
.ai-note p{font-size:.84rem;line-height:1.4;min-height:2.8em}
.ai-note p::after{content:"";display:inline-block;width:2px;height:1em;background:var(--u);margin-left:2px;vertical-align:-2px;animation:caret .8s steps(1) infinite}
.ai-note p.done::after{display:none}
@keyframes caret{50%{opacity:0}}
.ai-note .cta{grid-column:2;justify-self:start}

/* ---------- bento ---------- */
.feats{background:var(--ice)}
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:10px}
.bt{background:#fff;border-radius:26px;padding:26px;display:flex;flex-direction:column;gap:10px;box-shadow:0 0 0 1px var(--ln)}
.bt h3{font-size:1.3rem;font-weight:800;font-stretch:88%;letter-spacing:-.015em;line-height:1.15}
.bt p{color:var(--tx2);line-height:1.5}
.bt-vis{position:relative;flex:1;min-height:150px;margin-bottom:10px;border-radius:18px;overflow:hidden}
.bt-msg{grid-column:span 4;background:var(--u);color:#fff;box-shadow:none}
.bt-msg p{color:var(--on-u2)}
.bt-msg .bt-vis{min-height:230px;background:radial-gradient(70% 90% at 80% 0%,#FF9F80,transparent 60%),radial-gradient(80% 90% at 0% 100%,#8A6BFF,transparent 60%),#3A2BD8;display:grid;align-content:center;justify-items:center;gap:12px;padding:20px;container-type:inline-size}
.mini-notif{width:min(420px,92%);display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:18px;background:rgba(250,250,255,.85);backdrop-filter:blur(10px);color:#111}
.mini-notif .ln-icon{width:38px;height:38px;border-radius:10px;font-size:17px}
.mini-notif b{display:block;font-size:.92rem}.mini-notif span{font-size:.9rem;color:#333}
.mini-notif.two{width:min(390px,86%);opacity:.8;transform:scale(.97)}
.bt-loc{grid-column:span 2}
.bt-loc .bt-vis{background:#EEF0FF repeating-linear-gradient(0deg,transparent 0 34px,#fff 34px 40px),#EEF0FF;background-image:repeating-linear-gradient(0deg,transparent 0 34px,#fff 34px 40px),repeating-linear-gradient(90deg,transparent 0 44px,#fff 44px 50px)}
.pins span{position:absolute;left:var(--x);top:var(--y);display:grid;background:var(--u);color:#fff;font-weight:800;font-size:1rem;padding:6px 11px;border-radius:12px;line-height:1.15;box-shadow:0 10px 20px -8px rgba(43,40,227,.8)}
.pins span b{font-size:.72rem;font-weight:600;opacity:.8}
.pins span::after{content:"";position:absolute;left:12px;top:100%;border:6px solid transparent;border-top-color:var(--u)}
.bt-kiosk,.bt-ai,.bt-priv{grid-column:span 2}
.bt-kiosk .bt-vis{display:grid;place-items:center;background:var(--ice)}
.mini-tab{width:62%;aspect-ratio:4/3;border-radius:16px;background:#12113F;box-shadow:0 0 0 7px #0A0A12;display:grid;place-items:center;align-content:center;gap:10px;color:#fff;font-weight:700;font-size:.82rem}
.mt-cam{position:relative;width:74px;height:74px}
.mt-cam i{position:absolute;width:22px;height:22px;border:3px solid #6BE3A4}
.mt-cam i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.mt-cam i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.mt-cam i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.mt-cam i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.bt-ai .bt-vis{display:grid;align-content:center;gap:12px;padding:16px;background:var(--ice)}
.prompt{background:#fff;border-radius:14px;padding:10px 12px;font-size:.88rem;box-shadow:inset 0 0 0 1.5px var(--ln);color:var(--tx)}
.prompt::before{content:"AI";font-size:.66rem;font-weight:800;color:#fff;background:linear-gradient(120deg,var(--u),var(--stamp));padding:2px 5px;border-radius:5px;margin-right:8px;vertical-align:1px}
.gen-strip{position:relative;height:74px;border-radius:14px;overflow:hidden;background:linear-gradient(120deg,#5A2E18,#9C5B32 55%,#E2A36B)}
.gen-strip i{position:absolute;border-radius:50%;background:rgba(255,235,210,.35)}
.gen-strip i:nth-child(1){width:60px;height:60px;right:18px;top:-14px;background:rgba(255,230,190,.5);filter:blur(6px)}
.gen-strip i:nth-child(2){width:16px;height:22px;left:30px;top:30px;background:#3A1D0E;border-radius:50%/60%}
.gen-strip i:nth-child(3){width:14px;height:20px;left:56px;top:18px;background:#3A1D0E;border-radius:50%/60%;transform:rotate(30deg)}
.bt-priv .bt-vis{display:grid;align-content:center;gap:10px;padding:18px;background:var(--ice)}
.nofields span{display:block;position:relative;background:#fff;border-radius:10px;padding:9px 12px;font-size:.88rem;color:var(--tx2);box-shadow:inset 0 0 0 1.5px var(--ln);margin-bottom:8px}
.nofields span::after{content:"";position:absolute;left:8px;right:8px;top:50%;height:2.5px;background:var(--stamp);border-radius:2px;transform:rotate(-2deg)}

/* ---------- calculator ---------- */
.calc-sec{background:#fff;padding-bottom:60px}
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:stretch;background:var(--u);color:#fff;border-radius:34px;padding:56px;position:relative;overflow:hidden}
.calc::before{content:"";position:absolute;right:-10%;top:-40%;width:60%;height:140%;background:radial-gradient(circle,rgba(140,138,255,.5),transparent 65%);pointer-events:none}
.calc .h2{color:#fff}
.lead-c{color:var(--on-u2);font-size:1.08rem;margin-bottom:34px;max-width:30em}
.calc .rng{margin-bottom:26px;font-size:1rem}
.calc-out{position:relative;background:rgba(255,255,255,.08);border-radius:26px;padding:30px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);display:flex;flex-direction:column}
.calc-out > small{color:var(--on-u2);font-weight:600;font-size:1rem}
.big-num{font-size:clamp(3.2rem,7vw,5.8rem);font-weight:800;font-stretch:78%;letter-spacing:-.04em;line-height:1;margin:8px 0 22px;font-variant-numeric:tabular-nums}
.calc-rows{margin:0;display:grid;gap:0}
.calc-rows div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid rgba(255,255,255,.14)}
.calc-rows dt{color:var(--on-u2)}
.calc-rows dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums}
.calc-note{margin-top:auto;padding-top:14px;color:var(--on-u2);font-size:.95rem}

/* ---------- pricing ---------- */
.pricing{background:#fff;padding-top:60px}
.plans{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:18px;margin-top:10px}
.plan{border-radius:28px;padding:32px;display:flex;flex-direction:column;gap:16px;box-shadow:inset 0 0 0 1.5px var(--ln);background:#fff}
.plan h3{font-size:1.2rem;font-weight:800}
.plan.pilot{background:var(--tx);color:#fff;box-shadow:none;position:relative;overflow:hidden}
.plan.pilot::after{content:"";position:absolute;right:-70px;top:-70px;width:200px;height:200px;border-radius:50%;box-shadow:inset 0 0 0 16px rgba(255,90,54,.85)}
.plan.pilot > *{position:relative;z-index:1}
.plan.pilot p{color:#D9D8F5;line-height:1.5}
.plan.pilot .cta{margin-top:auto}
.price{font-size:3.4rem;font-weight:800;font-stretch:80%;letter-spacing:-.035em;line-height:1}
.price small{display:block;font-size:.95rem;font-weight:600;letter-spacing:0;color:var(--tx2);margin-top:8px;font-stretch:100%}
.plan.pilot .price small{color:#B9B8E8}
.plan ul{list-style:none;padding:0;margin:0;display:grid;gap:11px}
.plan li{position:relative;padding-left:28px;line-height:1.4;color:var(--tx)}
.plan li::before{content:"";position:absolute;left:0;top:.15em;width:18px;height:18px;border-radius:50%;background:var(--ice)}
.plan li::after{content:"";position:absolute;left:5px;top:.42em;width:7px;height:4px;border-left:2px solid var(--u);border-bottom:2px solid var(--u);transform:rotate(-45deg)}

/* ---------- faq ---------- */
.faq-sec{background:var(--ice)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:60px;align-items:start}
.faq details{background:#fff;border-radius:20px;margin-bottom:10px;box-shadow:0 0 0 1px var(--ln);transition:box-shadow .2s}
.faq details[open]{box-shadow:0 0 0 1.5px var(--u)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;font-weight:700;font-size:1.08rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;background:var(--ice) no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M7 1v12M1 7h12' stroke='%232B28E3' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 22px 20px;color:var(--tx2);line-height:1.55;max-width:60ch}

/* ---------- contact ---------- */
.contact{background:var(--u);color:#fff;padding:120px 0;position:relative;overflow:hidden}
.contact::before{content:"";position:absolute;left:-10%;bottom:-40%;width:60%;height:120%;background:radial-gradient(circle,rgba(140,138,255,.45),transparent 65%)}
.contact-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:center}
.contact .lead{margin-top:22px}
.contacts{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:8px;font-weight:700;font-size:1.1rem}
.contacts a{color:#fff}
.lead-box{background:#fff;color:var(--tx);border-radius:28px;padding:30px;box-shadow:0 60px 100px -50px rgba(6,4,50,.7)}
.lead-form{display:grid;gap:14px}
.landing .fld{display:grid;gap:6px;margin:0;font-weight:600;font-size:.9rem;color:var(--tx)}
.landing .fld input,.landing .fld select,.landing .fld textarea{font:inherit;padding:13px 14px;border:0;border-radius:14px;background:var(--ice);color:var(--tx);width:100%;box-shadow:inset 0 0 0 1.5px transparent;transition:box-shadow .2s,background .2s}
.landing .fld input:focus,.landing .fld select:focus,.landing .fld textarea:focus{outline:none;background:#fff;box-shadow:inset 0 0 0 2px var(--u),0 0 0 4px rgba(43,40,227,.12)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{color:#D93A1A;font-weight:600}
.form-note{color:var(--tx2);font-size:.85rem;text-align:center}
.lead-sent{text-align:center;padding:40px 10px;display:grid;justify-items:center;gap:10px}
.lead-sent b{font-size:1.8rem;font-weight:800}
.lead-ok{width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;animation:pop .6s var(--spring)}
.lead-ok svg{width:32px;height:32px}
@keyframes pop{from{transform:scale(.3);opacity:0}}

/* ---------- footer ---------- */
.foot{background:var(--night);color:#C9C8F2;padding:56px 0 80px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}
.foot .logo{color:#fff;margin-bottom:12px}
.foot a{display:block;color:#fff;text-decoration:none;font-weight:600;margin-bottom:8px}
.foot .logo{display:inline-flex}
.foot-h{font-weight:700;color:#fff;margin-bottom:10px}
.sticky-cta{position:fixed!important;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;display:none!important;transform:translateY(140%);transition:transform .45s var(--spring)!important}
.sticky-cta.show{transform:none}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .hero{padding-top:104px}
  .hero-in{grid-template-columns:1fr;gap:26px}
  .stage{margin-right:0}
  .hero-phone{--pw:clamp(118px,30vw,220px);right:-1%;top:auto;bottom:-16%}
  .stage-wrap{margin-bottom:17vw}
  .world{left:44%}
  .story-grid{grid-template-columns:1fr;gap:0}
  .story-visual{order:-1;position:sticky;top:64px;z-index:3;background:linear-gradient(#fff 88%,rgba(255,255,255,0))}
  .story-sticky{position:relative;top:0;height:min(430px,52vh)}
  .story-phone{--pw:min(176px,22vh)}
  .tablet{width:150px;left:4%;bottom:4%}
  .step{min-height:56vh;justify-content:flex-start;padding-top:30px}
  .step .num{font-size:3.4rem}
  .play-grid,.panel-grid,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
  .dash{transform:none}
  .calc{grid-template-columns:1fr;padding:34px 24px}
  .plans{grid-template-columns:1fr}
  .bento{grid-template-columns:1fr 1fr}
  .bt-msg{grid-column:span 2}.bt-loc,.bt-kiosk,.bt-ai,.bt-priv{grid-column:span 1}
}
@media (max-width:640px){
  body.landing{font-size:16px}
  .lw{padding:0 16px}
  .sec{padding:84px 0}
  .hero{padding:92px 0 56px}
  .stage-ctl{grid-template-columns:1fr;padding:14px}
  .hero-copy .lead{margin:20px 0 26px}
  .proof{margin-top:24px}
  .stage-keys{gap:6px}
  .key,.badge{font-size:.7rem}
  .dash-body{grid-template-columns:1fr}
  .dash-side{display:none}
  .kp4{grid-template-columns:1fr 1fr}
  .bento{grid-template-columns:1fr}
  .bt-msg,.bt-loc,.bt-kiosk,.bt-ai,.bt-priv{grid-column:auto}
  .f2{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .sticky-cta{display:flex!important}
  .rb-item{width:210px}
}
@media (prefers-reduced-motion:reduce){
  html:has(body.landing){scroll-behavior:auto}
  .landing *,.landing *::before,.landing *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .ribbon{overflow-x:auto;mask-image:none}
}
