/* BroInTheAir · landing v3 — scene nuove sopra la base v2 (landing-v2.css resta caricata) */
.hero .hgrid{align-items:center}
.hlead b{color:var(--tx);font-weight:400}
.qhead{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;max-width:720px}
.qhead .q{margin:0;font-size:clamp(30px,3.6vw,52px);line-height:1.02;letter-spacing:-.035em;font-weight:500;color:var(--tx);text-wrap:balance}
.qhead .q em{font-style:normal;color:var(--tx3)}
.qa{margin:0;font-size:clamp(16px,1.25vw,18px);line-height:1.6;color:var(--tx2);max-width:46ch;text-wrap:pretty}
.qa b{color:var(--tx);font-weight:400}
.intro{padding:clamp(56px,7vw,110px) 0 clamp(20px,3vw,40px)}
.intro h2{margin:0;font-size:clamp(34px,4.6vw,68px);line-height:1;letter-spacing:-.04em;font-weight:500;max-width:18ch;text-wrap:balance}
.intro h2 em{font-style:normal;color:var(--mint)}
.isub{margin:22px 0 0;max-width:none;font-size:clamp(16px,1.3vw,19px);line-height:1.55;color:var(--tx2);text-wrap:pretty}
.scene{min-width:0}
@media (max-width:640px){.prev{height:min(150vw,760px);margin-top:-30px;overflow:visible;mask-image:linear-gradient(to bottom,#000 55%,transparent 96%);-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 96%)}
.pglobe{top:0;left:50%;width:196vw;height:196vw;max-width:none;max-height:none;transform:translateX(-50%)}}
@media (max-width:560px){.form input{height:56px;padding:0 18px;font-size:16px;line-height:56px;text-align:left}.form .btn.lg{height:56px}}
.split.rev>*:first-child{order:0}
.split.rev{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}
@media (max-width:1000px){.split.rev{grid-template-columns:minmax(0,1fr)}.split.rev>*:first-child{order:0}.split>.scene{order:-1}.qhead .kick{display:none}}
.scene-pause *{animation-play-state:paused!important}

/* ---- hero: mazzo 3D ---- */
.deck{position:relative;height:clamp(380px,42vw,480px);perspective:1400px;perspective-origin:50% 40%}
.deck-in{position:absolute;inset:0;transform-style:preserve-3d;animation:dfloat 8s ease-in-out infinite}
@keyframes dfloat{0%,100%{transform:rotateX(9deg) rotateY(-14deg) translateY(0)}50%{transform:rotateX(6deg) rotateY(-9deg) translateY(-12px)}}
.dk{position:absolute;left:50%;top:50%;width:min(370px,92%);display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px;border-radius:18px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--ln),0 40px 60px -28px rgba(0,0,0,.95);transform:translate(-50%,-50%) translate3d(calc(var(--z)*18px),calc(var(--z)*-58px),calc(var(--z)*-90px));opacity:calc(1 - var(--z)*.16);transition:transform 1.1s var(--e),opacity 1.1s var(--e);will-change:transform}
.dk[style*="--z:0"]{background:var(--s2)}
.dk.fly{transform:translate(-50%,-50%) translate3d(-46%,72%,120px) rotateZ(-9deg);opacity:0;transition-duration:.75s}
.dk .tile{width:44px;height:44px;border-radius:14px}
.dk .tile svg{width:17px;height:17px}
.dk b{display:block;font-size:16px;font-weight:500;letter-spacing:-.015em}
.dk small{display:none;font-size:12.5px;color:var(--tx2);margin-top:3px;font-variant-numeric:tabular-nums}
.dk .code{font-family:'Geist Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.1em;color:var(--tx3);padding:6px 9px;border-radius:8px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--ln)}
.dk .code.ok{color:var(--mint);background:var(--mint9);box-shadow:none}
.dbro{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:9px;height:36px;padding:0 14px 0 10px;border-radius:99px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--ln2);font-size:13px;color:var(--tx2);white-space:nowrap}
.dbro svg{height:16px;width:auto;color:var(--mint)}
.dbro b{color:var(--tx);font-weight:500}

/* ---- 01 caos → ordine ---- */
.chaos{position:relative;width:100%;height:340px;max-width:440px;margin:0 auto}
.ck{position:absolute;left:0;top:0;display:flex;align-items:center;gap:11px;width:min(300px,84%);padding:12px 14px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--ln),0 30px 50px -28px rgba(0,0,0,.9);font-size:13.5px;color:var(--tx2);white-space:nowrap;overflow:hidden;transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(.96);transition:transform 1.15s var(--e),opacity .8s ease,box-shadow .8s ease;transition-delay:calc(var(--i)*70ms)}
.ck svg{width:16px;height:16px;flex:none;color:var(--tx3)}
.ck .ct{display:none;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--tx);width:44px;text-align:right}
.ck .tile{display:none;width:34px;height:34px;border-radius:11px;flex:none}
.ck .tile svg{width:14px;height:14px}
.ck span.ttl{overflow:hidden;text-overflow:ellipsis}
.ck .clean{display:none;color:var(--tx);font-weight:500}
.chaos.order .ck{left:50%;width:min(400px,100%);color:var(--tx);box-shadow:inset 0 0 0 1px var(--ln)}
.chaos.order .ck>svg,.chaos.order .ck .ttl{display:none}
.chaos.order .ck .ct,.chaos.order .ck .clean{display:block}
.chaos.order .ck .tile{display:grid}
.chaos.order .ck{transform:translate(-50%,calc(var(--i)*64px)) rotate(0) scale(1)}
.cbro{position:absolute;left:50%;bottom:-6px;transform:translate(-50%,10px);display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px 0 9px;border-radius:99px;background:var(--mint9);color:var(--mint);font-family:'Geist Mono',ui-monospace,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;opacity:0;transition:opacity .6s ease .9s,transform .6s var(--e) .9s;white-space:nowrap}
.cbro svg{height:13px;width:auto}
.chaos.order .cbro{opacity:1;transform:translate(-50%,0)}

/* ---- 02 a che ora ---- */
.when{width:100%;max-width:440px;margin:0 auto;position:relative}
.when .row{opacity:0;transform:translateY(8px);transition:opacity .6s var(--e),transform .6s var(--e)}
.when.on .row{opacity:1;transform:none}
.when.on .row:nth-child(2){transition-delay:.35s}
.when .brk{position:absolute;left:calc(18px + 44px + 12px + 19px);top:72px;width:1.5px;height:0;background:linear-gradient(to bottom,var(--mint),rgba(77,227,161,.15));border-radius:2px;transition:height .9s var(--e) .8s}
.when.on .brk{height:52px}
.hint{margin-top:14px;align-items:center;display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:start;padding:14px 16px;border-radius:14px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--ln);font-size:14px;line-height:1.5;color:var(--tx2);opacity:0;transform:translateY(8px);transition:opacity .6s var(--e) 1.5s,transform .6s var(--e) 1.5s}
.when.on .hint{opacity:1;transform:none}
.hint svg{height:18px;width:auto;color:var(--mint)}
.hint b{color:var(--tx);font-weight:500}
.hint .big{display:block;font-size:26px;font-weight:500;letter-spacing:-.03em;color:var(--tx);font-variant-numeric:tabular-nums}
.hint .big em{font-style:normal;color:var(--mint)}

/* ---- 03 imprevisti: tabellone → controllo → avviso ---- */
.watch{position:relative;width:100%;max-width:440px;margin:0 auto;display:grid;gap:0}
.board{padding:14px 16px 16px;border-radius:18px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--ln),0 30px 60px -30px rgba(0,0,0,.9)}
.board .cap{margin-bottom:12px}
.brow{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:16px;align-items:center}
.brow>span:first-child b{display:block;font-size:15px;font-weight:500;letter-spacing:-.012em}
.brow>span:first-child small{display:block;font-size:12px;color:var(--tx3);margin-top:2px}
.bcell small{display:block;font-family:'Geist Mono',ui-monospace,monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--tx3);margin-bottom:4px}
.bcell b{display:inline-block;min-width:44px;padding:5px 8px;border-radius:8px;background:#08080A;box-shadow:inset 0 0 0 1px var(--ln);font-size:17px;font-weight:500;letter-spacing:-.01em;color:var(--tx);text-align:center;transition:color .3s ease,box-shadow .3s ease,background .3s ease}
.bcell b.hot{color:var(--amber);background:var(--amber9);box-shadow:inset 0 0 0 1px rgba(245,166,35,.4);animation:flap .2s linear}
.bst{font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--mint);align-self:end;padding-bottom:7px;transition:color .3s ease}
.bst.hot{color:var(--amber)}
.scan{position:relative;width:100%;height:110px;display:grid;place-items:center;margin:4px 0}
.scan>svg{height:30px;width:auto;color:var(--mint);position:relative;z-index:1}
.scan::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1.5px;background:linear-gradient(to bottom,var(--ln2),transparent 30%,transparent 70%,var(--ln2));transform:translateX(-50%)}
.ring{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;border:1.5px solid var(--mint);opacity:0;animation:ring 3.6s cubic-bezier(.2,.6,.3,1) infinite}
.ring:nth-child(2){animation-delay:1.2s}.ring:nth-child(3){animation-delay:2.4s}
@keyframes ring{0%{transform:scale(.4);opacity:.7}100%{transform:scale(2.2);opacity:0}}
.watch.chg .ring{border-color:var(--amber)}
.wl{margin:0 0 12px;text-align:center;font-family:'Geist Mono',ui-monospace,monospace;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--tx3);display:flex;justify-content:center;align-items:center;gap:8px}
.ntf{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px 16px;border-radius:18px;background:var(--s2);box-shadow:inset 0 0 0 1px var(--ln2),0 30px 60px -20px rgba(0,0,0,.95);opacity:0;transform:translateY(24px) scale(.97);transition:opacity .55s var(--e),transform .75s var(--e);min-height:96px}
.ntf+.ntf{position:absolute;left:0;right:0;bottom:0}
.ntf.on{opacity:1;transform:none}
.ntf .nk{width:38px;height:38px;border-radius:11px;background:var(--bg);display:grid;place-items:center}
.ntf .nk svg{height:17px;width:auto;color:var(--mint)}
.ntf .nh{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--tx3)}
.ntf .nh b{color:var(--tx2);font-weight:500}
.ntf p{margin:4px 0 0;font-size:14.5px;line-height:1.45;color:var(--tx2)}
.ntf p b{color:var(--tx);font-weight:500}
.ntf.warn .nk{background:var(--amber9)}.ntf.warn .nk svg{color:var(--amber)}

/* ---- 04 meteo + valigia ---- */
.wx{width:100%;max-width:440px;margin:0 auto;display:grid;gap:10px}
.wxd{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--ln);position:relative;overflow:hidden}
.wxd .ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--s2)}
.wxd .ic svg{width:19px;height:19px;color:var(--amber)}
.wxd.rain .ic svg{color:var(--info)}
.wxd .c{display:block;font-size:15px;font-weight:500;letter-spacing:-.012em}
.wxd .m{display:block;font-size:12.5px;color:var(--tx2);margin-top:2px}
.wxd .t{font-size:26px;font-weight:500;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.wxd.rain .t{color:var(--info)}
.drops{position:absolute;right:82px;top:0;bottom:0;width:70px;pointer-events:none}
.drops i{position:absolute;top:-14px;width:1.5px;height:12px;border-radius:2px;background:var(--info);opacity:.55;animation:drop 1.3s linear infinite;left:calc(var(--k)*16px);animation-delay:calc(var(--k)*-.31s)}
@keyframes drop{to{transform:translateY(90px);opacity:0}}
.wxd.ev{background:transparent;box-shadow:inset 0 0 0 1px var(--ln2)}
.wxd.ev .m em{font-style:normal;color:var(--amber)}
.wxs{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:13px 16px;border-radius:16px;background:var(--mint9);box-shadow:inset 0 0 0 1px rgba(77,227,161,.28);opacity:0;transform:translateY(14px);transition:opacity .6s var(--e),transform .7s var(--e)}
.wx.on .wxs{opacity:1;transform:none}
.wxs .box{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--bg);color:var(--mint)}
.wxs .box svg{width:14px;height:14px}
.wxs .k{display:block;font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mint)}
.wxs .n2{display:block;font-size:14.5px;font-weight:500;color:var(--tx);margin-top:2px}
.wxs .w{font-size:12px;color:var(--mint4);text-align:right;max-width:14ch}
.wx.on .wxs.done .box{background:var(--mint);color:#0A0A0B}

/* ---- 04 spese: stesso formato delle altre scene ---- */
.pay{width:100%;max-width:440px;margin:0 auto;padding:16px 18px;border-radius:18px;box-shadow:inset 0 0 0 1px var(--ln),0 40px 70px -30px rgba(0,0,0,.9)}
.phd{padding:0 0 10px}
.ptot{font-size:28px;margin-top:6px}
.prow{grid-template-columns:40px minmax(0,1fr) auto;padding:11px 0}
.prow .tile{width:40px;height:40px;border-radius:13px}
.prow .nm{font-size:15px;font-weight:500;letter-spacing:-.012em}
.prow .sb{font-size:12.5px;color:var(--tx2);margin-top:1px}
.pvp{height:262px}
.pagain{display:none}
.prow .sb,.pmove .sb,.pnote{display:none}
.pmove{padding:16px 0}
.psimp em{display:none}
/* ---- come funziona (semplice) ---- */
.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:48px}
.how>div{padding:24px 22px 26px;border-radius:20px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--ln)}
.how .num{margin:0 0 14px;font-family:'Geist Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.14em;color:var(--mint)}
.how h3{margin:0;font-size:20px;font-weight:500;letter-spacing:-.02em}
.how p{margin:10px 0 0;font-size:14.5px;line-height:1.55;color:var(--tx2)}
.how p b{color:var(--tx);font-weight:400}

/* ---- passaporto CTA ---- */
#swall .stp.locked{color:rgba(255,255,255,.35)!important}
#swall .stp.locked svg text,#swall .stp.locked .stp-ic{color:rgba(255,255,255,.35);fill:rgba(255,255,255,.35)}
#swall .stp.locked svg g[stroke-dasharray]{stroke-dasharray:none}
#swall .stp.locked .stp-lm{opacity:.35}
#swall .stp.locked .stp-ic{position:absolute;left:50%;top:44%;width:24%;height:24%;translate:-50% -50%;color:#fff!important;opacity:.45;z-index:2}
.pass{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:center}
.pass .form{margin-top:28px}
.pcta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.pcta .pill{cursor:default}

/* ---- responsive ---- */
@media (max-width:900px){
  .how{grid-template-columns:minmax(0,1fr)}
  .pass{grid-template-columns:minmax(0,1fr)}
  .deck{height:360px}
  .dk{width:min(330px,94%)}
}
@media (max-width:640px){
  .deck{height:330px;perspective:1000px}
  .chaos{height:320px}
  .ck{width:min(260px,80%)}
}

/* chat: scheda ristorante con azioni */
.geo{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:11.5px;color:var(--tx3)}
.geo svg{width:12px;height:12px;color:var(--mint)}
.rest{display:grid;gap:0;margin:12px -4px 0;border-radius:16px;overflow:hidden;background:var(--bg);color:var(--tx)}
.rest .rimg{position:relative;height:120px;display:grid;place-items:center;background:linear-gradient(135deg,#2A1F14,#1A1410 60%,#141416);color:rgba(255,255,255,.18)}
.rest .rimg svg{width:44px;height:44px}
.rest .rimg span{position:absolute;left:14px;bottom:12px;font-size:17px;font-weight:500;letter-spacing:-.02em;color:var(--tx)}
.rest .rimg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,11,.75),transparent 60%)}
.rest .rimg span{z-index:1}
.rest .rbody{display:grid;gap:6px;padding:12px 14px 12px}
.rest .rmeta{font-size:13px;color:var(--tx2)}
.rest .rmeta em{font-style:normal;color:var(--mint);font-weight:500}
.rest small{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--tx3)}
.rest small svg{width:12px;height:12px;flex:none}
#chat .bro .bub:has(.rest){max-width:100%;padding:12px 12px 12px}
.acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 10px 10px}
.acts a{display:flex;align-items:center;justify-content:center;gap:7px;height:40px;border-radius:10px;background:var(--s2);color:var(--tx);font-size:13.5px;font-weight:500;box-shadow:inset 0 0 0 1px var(--ln)}
.acts a:first-child{background:var(--mint);color:var(--bg);box-shadow:none}
.acts a:hover{filter:brightness(1.08)}
.acts svg{width:15px;height:15px}
/* chat: quattro usi, uno alla volta — messaggi sul nero, come prima */
#chat{width:100%;max-width:440px;margin:0 auto;min-height:380px;display:grid;align-items:center}
#chat .log{display:flex;flex-direction:column;justify-content:flex-end;gap:10px;overflow:hidden;transition:transform .6s var(--e),opacity .5s ease}
#chat .log.out{transform:translateY(-40px);opacity:0}
#chat .msg{opacity:0;transform:translateY(10px);transition:opacity .4s var(--e),transform .5s var(--e)}
#chat .msg.in{opacity:1;transform:none}
#chat .you .bub::after{content:"";display:inline-block;width:1.5px;height:.95em;margin-left:2px;vertical-align:-2px;background:var(--bg);animation:beat .9s steps(2) infinite}
#chat .you.done .bub::after{display:none}
#chat .typing{display:inline-flex;gap:4px;padding:2px 0}
#chat .typing i{width:6px;height:6px;border-radius:50%;background:var(--tx3);animation:tdot 1s ease-in-out infinite}
#chat .typing i:nth-child(2){animation-delay:.15s}#chat .typing i:nth-child(3){animation-delay:.3s}
@keyframes tdot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
#chat .rest{background:var(--bg)}
#chat .bro .bub .geo{display:flex}
#chat .bro .bub{transition:height .45s var(--e)}
#chat .bro .bub.grow{overflow:hidden}
#chat .bro .bub .ans,#chat .bro .bub .src,#chat .bro .bub .rest{opacity:0;transform:translateY(8px);transition:opacity .45s var(--e),transform .5s var(--e)}
#chat .bro .bub .ans{display:block}
#chat .bro .bub .src{transition-delay:.18s}#chat .bro .bub .rest{transition-delay:.18s}
#chat .bro .bub .src a{opacity:0;transform:translateY(6px);transition:opacity .4s var(--e),transform .45s var(--e);transition-delay:calc(.25s + var(--n,0)*90ms)}
#chat .bro .bub .src a:nth-child(2){--n:1}
#chat .bro .bub .acts a{opacity:0;transform:translateY(6px);transition:opacity .4s var(--e),transform .45s var(--e),filter .2s ease;transition-delay:calc(.35s + var(--n,0)*70ms)}
#chat .bro .bub .acts a:nth-child(2){--n:1}#chat .bro .bub .acts a:nth-child(3){--n:2}
#chat .bro .bub.show .ans,#chat .bro .bub.show .src,#chat .bro .bub.show .rest,#chat .bro .bub.show .src a,#chat .bro .bub.show .acts a{opacity:1;transform:none}

/* footer */
.fbar{padding-block:40px;font-family:'Geist',ui-sans-serif,system-ui,sans-serif;font-size:13.5px;color:var(--tx2);gap:14px 28px}
.fbar a,.fbar span:last-child{color:var(--tx2)}
@media (max-width:640px){.fbar{flex-direction:column;align-items:flex-start;padding-block:44px 56px;gap:18px}}
