/* Rembrr — landing. Tokens claros en :root, oscuros por preferencia del sistema o por [data-theme]. */
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
:root{
  --indigo:#4655E0; --indigo-deep:#323FA8; --indigo-soft:#EEF2FE;
  --mint:#20B98C; --mint-soft:#DDF7EC; --mint-text:#14805F; --ul:#DDF7EC;
  --amber:#E9A23B; --amber-soft:#FEF3DC; --amber-text:#8A5A0A;
  --coral:#EF5A4C;
  --ink:#111422; --muted:#62687F; --faint:#9AA0B4;
  --bg:#FFFFFF; --frame:#E7E9F6; --surface:#F6F7FC; --surface-2:#EEF0F8;
  --card:#FFFFFF; --line:#E4E7F1; --grid:rgba(70,85,224,.06);
  --phone:#14172A; --screen:#FFFFFF; --chip-shadow:0 10px 30px -12px rgba(28,34,90,.28);
  --on-indigo:#FFFFFF; --logo:#265AC0;
  --display:"Bricolage Grotesque", "Avenir Next", "Helvetica Neue", system-ui, sans-serif;
  --body:"Figtree", "Helvetica Neue", system-ui, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --indigo:#7583FF; --indigo-deep:#4655E0; --indigo-soft:#1E2447;
    --mint:#34D3A6; --mint-soft:#12352A; --mint-text:#6EE7B7; --ul:rgba(52,211,166,.32);
    --amber:#F5C36A; --amber-soft:#3D2F10; --amber-text:#F5C36A;
    --ink:#F2F3F8; --muted:#A0A6BD; --faint:#6E7590;
    --bg:#0F1220; --frame:#080A14; --surface:#161A2C; --surface-2:#1C2036;
    --card:#1A1E33; --line:#272C45; --grid:rgba(117,131,255,.07);
    --phone:#05060C; --screen:#10131F; --chip-shadow:0 12px 30px -12px rgba(0,0,0,.7);
    --on-indigo:#0F1220; --logo:#8FA8FF;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --indigo:#7583FF; --indigo-deep:#4655E0; --indigo-soft:#1E2447;
  --mint:#34D3A6; --mint-soft:#12352A; --mint-text:#6EE7B7; --ul:rgba(52,211,166,.32);
  --amber:#F5C36A; --amber-soft:#3D2F10; --amber-text:#F5C36A;
  --ink:#F2F3F8; --muted:#A0A6BD; --faint:#6E7590;
  --bg:#0F1220; --frame:#080A14; --surface:#161A2C; --surface-2:#1C2036;
  --card:#1A1E33; --line:#272C45; --grid:rgba(117,131,255,.07);
  --phone:#05060C; --screen:#10131F; --chip-shadow:0 12px 30px -12px rgba(0,0,0,.7);
  --on-indigo:#0F1220; --logo:#8FA8FF;
}

*{box-sizing:border-box}
body{background:var(--frame);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;padding-inline:16px;padding-block:16px}
a{color:inherit}
:focus-visible{outline:2px solid var(--indigo);outline-offset:3px;border-radius:8px}
.sheet{max-width:1240px;margin:0 auto;background:var(--bg);border-radius:32px;overflow:hidden}
.wrap{padding-inline:clamp(20px,5vw,72px)}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.025em;line-height:1.02;margin:0;text-wrap:balance}
h1{font-size:clamp(44px,7vw,86px);font-weight:800;letter-spacing:-.04em}
h2{font-size:clamp(34px,4.6vw,58px);letter-spacing:-.035em}
h3{font-size:clamp(21px,2vw,25px);line-height:1.15;letter-spacing:-.02em}
p{margin:0}
.lede{font-size:clamp(17px,1.5vw,19px);color:var(--muted);max-width:34ch}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--indigo)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.hl{color:var(--indigo)}
.ul{background:linear-gradient(transparent 62%, var(--ul) 62%);padding-inline:.06em}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;border:0;cursor:pointer;font:600 15px/1 var(--body);padding:15px 22px;border-radius:999px;text-decoration:none;transition:transform .2s ease, background .2s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--indigo);color:var(--on-indigo)}
.btn-primary:hover{background:var(--indigo-deep);color:#fff}
.btn-ghost{background:var(--surface-2);color:var(--ink)}
.btn-ink{background:var(--ink);color:var(--bg)}
.btn svg{width:18px;height:18px;flex:none}

/* nav */
nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:24px}
.brand{display:flex;align-items:center;gap:10px;font:800 24px/1 var(--display);letter-spacing:-.03em;text-decoration:none}
.brand-dot{width:34px;height:34px;display:grid;place-items:center;color:var(--logo)}
.brand-dot .logo{width:100%;height:100%}

.nav-links{display:flex;gap:28px;font-size:15px;color:var(--muted)}
.nav-links a{text-decoration:none}
.nav-links a:hover{color:var(--ink)}
.nav-cta{display:flex;gap:8px}
@media (max-width:860px){.nav-links{display:none}}
@media (max-width:480px){.nav-cta .btn-ghost{display:none}.nav-cta .btn-primary{padding:12px 16px}}
@media (max-width:380px){nav .lang-switch{display:none}}

/* hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:center;padding-block:24px 64px;position:relative}
.hero-copy{display:grid;gap:28px;align-content:start}
.hero-copy .live{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;background:var(--indigo-soft);color:var(--indigo);border-radius:999px;padding:8px 14px 8px 10px;font-weight:600;font-size:14px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 0 var(--mint);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hero h1 .say{display:inline-block;color:var(--indigo);position:relative}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.proof{display:flex;align-items:center;gap:18px 37px;flex-wrap:wrap;color:var(--muted);font-size:14px;overflow:hidden}
.proof b{color:var(--ink);font-family:var(--display);font-size:22px;letter-spacing:-.02em;display:block;line-height:1.1}
/* separator before each item; the one at the start of a row falls outside the box and is clipped */
.proof > div{position:relative}
.proof > div::before{content:"";position:absolute;left:-19px;top:50%;width:1px;height:34px;margin-top:-17px;background:var(--line)}

.stage{position:relative;min-height:600px;display:grid;place-items:center;container-type:inline-size}
.stage::before{content:"";position:absolute;inset:6% 0 0 4%;border-radius:40px;background:
   radial-gradient(60% 55% at 78% 78%, rgba(70,85,224,.55), transparent 70%),
   radial-gradient(45% 45% at 18% 90%, rgba(32,185,140,.35), transparent 70%),
   linear-gradient(var(--surface),var(--surface));
   -webkit-mask:linear-gradient(#000,#000);}
.stage::after{content:"";position:absolute;inset:6% 0 0 4%;border-radius:40px;background-image:radial-gradient(var(--grid) 1.2px, transparent 1.3px);background-size:18px 18px;pointer-events:none}

/* phone */
.phone{position:relative;z-index:2;width:300px;max-width:100%;aspect-ratio:300/620;background:var(--phone);border-radius:48px;padding:10px;box-shadow:0 40px 80px -30px rgba(20,24,60,.55), inset 0 0 0 2px rgba(255,255,255,.08)}
.screen{position:relative;height:100%;border-radius:39px;background:var(--screen);overflow:hidden;display:flex;flex-direction:column}
.status{display:flex;justify-content:space-between;align-items:center;padding:14px 24px 6px;font:600 13px/1 var(--body)}
.island{width:88px;height:24px;border-radius:20px;background:#000}
.appbar{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 10px;border-bottom:1px solid var(--line)}
.ico{width:32px;height:32px;border-radius:10px;background:var(--surface);display:grid;place-items:center;color:var(--muted)}
.ico svg{width:16px;height:16px}
.appbar .t{text-align:center}
.appbar .t b{display:block;font:800 16px/1.1 var(--display);color:var(--indigo)}
.appbar .t span{font-size:10px;color:var(--muted)}
.avatar{width:32px;height:32px;border-radius:10px;background:var(--indigo-soft);color:var(--indigo);display:grid;place-items:center;font-weight:700;font-size:11px}

.call{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:10px 16px;text-align:center;
   background:linear-gradient(var(--screen), var(--surface))}
.orb{width:190px;height:190px;max-width:100%}
.call .q{font:700 19px/1.15 var(--display);letter-spacing:-.02em}
.state-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--indigo);background:var(--indigo-soft);padding:5px 10px;border-radius:99px}
.state-pill .pulse{width:6px;height:6px}
.caption{font-size:12px;color:var(--muted);min-height:36px;max-width:220px}
.controls{display:flex;justify-content:space-between;padding:10px 16px 18px}
.ctl{width:40px;height:40px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;color:var(--muted)}
.ctl svg{width:17px;height:17px}
.ctl.end{background:var(--coral);color:#fff}

/* chips */
.chip{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;background:var(--card);border-radius:18px;padding:10px 14px 10px 10px;box-shadow:var(--chip-shadow);font-size:14px;font-weight:600;white-space:nowrap;animation:float 6s ease-in-out infinite}
.chip small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.chip .badge{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:none}
.chip .badge svg{width:18px;height:18px}
.c1,.c3{left:min(calc(50% + 90px),calc(100% - 160px))}
.c2,.c4{right:min(calc(50% + 90px),calc(100% - 150px))}
.c1{top:120px}.c4{top:190px}.c3{top:260px}.c2{top:300px}
/* narrow stage: no room beside the phone, so the chips go in bands above and below it */
@container (max-width:519px){
  .phone{margin-block:64px}
  .c1,.c2,.c3,.c4{left:auto;right:auto;top:auto;bottom:auto}
  .c4{top:0;left:0}.c1{top:0;right:0}.c2{bottom:0;left:0}.c3{bottom:0;right:0}
}
@container (max-width:399px){
  .c1{left:0;right:auto}.c2{left:auto;right:0}.c3,.c4{display:none}
}
@keyframes float{50%{transform:translateY(-8px)}}
.b-mint{background:var(--mint-soft);color:var(--mint-text)}
.b-indigo{background:var(--indigo-soft);color:var(--indigo)}
.b-amber{background:var(--amber-soft);color:var(--amber-text)}
.cal-ico{font:800 9px/1 var(--body);text-align:center;color:#fff;background:var(--indigo);border-radius:9px;width:34px;height:34px;display:grid;place-content:center}
.cal-ico span{font:800 14px/1 var(--display)}

@media (max-width:980px){
  .hero{grid-template-columns:1fr}
  .stage{min-height:560px}
}
@media (max-width:560px){
  .chip{font-size:12px;padding:8px 10px 8px 8px}
  .chip .badge,.cal-ico{width:28px;height:28px}
  .stage{min-height:520px}
  .phone{width:260px}
  .orb{width:150px;height:150px}
}

/* integrations */
.connect{padding-block:40px 24px;text-align:center;display:grid;gap:24px;border-top:1px solid var(--line)}
.connect p{font-size:17px;color:var(--muted)}
.connect p b{color:var(--ink);font-weight:600}
.logos{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(20px,5vw,56px);align-items:center;color:var(--faint);font:700 22px/1 var(--display);letter-spacing:-.02em}
.logos span{display:inline-flex;align-items:center;gap:8px}
.logos svg{width:22px;height:22px}

/* bento */
section{padding-block:clamp(56px,8vw,104px)}
.sec-head{display:grid;gap:16px;margin-bottom:44px}
.sec-head.center{text-align:center;justify-items:center}
.sec-head .lede{max-width:52ch}
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.tile{background:var(--surface);border-radius:28px;padding:clamp(22px,3vw,36px);display:grid;gap:14px;align-content:start;position:relative;overflow:hidden}
.tile::after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--grid) 1px, transparent 1px),linear-gradient(90deg,var(--grid) 1px, transparent 1px);background-size:36px 36px;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom, transparent 20%, #000);mask-image:linear-gradient(to bottom, transparent 20%, #000)}
.tile > *{position:relative;z-index:1}
.tile p{color:var(--muted);max-width:44ch}
.t-a{grid-column:span 3}.t-b{grid-column:span 3}.t-c{grid-column:span 6}
@media (max-width:860px){.t-a,.t-b,.t-c{grid-column:span 6}}
.demo{margin-top:18px;display:grid;gap:10px}
.bubble{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px 14px;font-size:14.5px;max-width:92%}
.bubble.me{justify-self:end;background:var(--indigo);color:#fff;border-color:transparent;border-top-right-radius:4px}
.bubble.ai{border-top-left-radius:4px}
.who{font:600 11px/1 var(--mono);letter-spacing:.06em;color:var(--indigo);margin-bottom:6px}
.who.r{text-align:right;color:var(--muted)}
.event{display:flex;gap:12px;align-items:center;background:var(--card);border-radius:18px;padding:12px;border:1px solid var(--line)}
.event b{display:block;font-size:14.5px}
.event small{color:var(--muted);font-size:12.5px}
.tag{margin-left:auto;font-size:11px;font-weight:700;padding:4px 8px;border-radius:8px;white-space:nowrap}

.tasks{margin-top:18px;background:var(--card);border-radius:20px;border:1px solid var(--line);padding:6px 14px}
.task{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line);font-size:14.5px}
.task:last-child{border-bottom:0}
.task .n{font:700 13px/1 var(--mono);color:var(--indigo)}
.task small{display:block;color:var(--muted);font-size:12px}
.task-summary{display:flex;gap:10px;flex-wrap:wrap}
.stat{background:var(--card);border-radius:16px;padding:12px 16px;border:1px solid var(--line)}
.stat small{color:var(--muted);font-size:12px;display:block}
.stat b{font:800 26px/1.1 var(--display);letter-spacing:-.03em}

/* translator tile */
.t-c{grid-template-columns:1fr 1.15fr;gap:32px;align-items:center}
@media (max-width:860px){.t-c{grid-template-columns:1fr}}
.pair{display:inline-flex;align-items:center;gap:8px;font:600 13px/1 var(--mono);background:var(--card);border:1px solid var(--line);padding:8px 12px;border-radius:99px;width:max-content}
.feed{display:grid;gap:12px}
.turn{background:var(--card);border-radius:20px;border:1px solid var(--line);padding:14px 16px;display:grid;gap:8px}
.turn .orig{color:var(--muted);font-size:14px}
.turn .tr{font-weight:600;font-size:16px}
.lang{font:600 10.5px/1 var(--mono);letter-spacing:.06em;padding:4px 7px;border-radius:6px;margin-right:6px;vertical-align:1px}
.l-es{background:var(--amber-soft);color:var(--amber-text)}
.l-en{background:var(--indigo-soft);color:var(--indigo)}
.turn-ind{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mint-text);font-weight:600}
.bars{display:inline-flex;gap:2px;align-items:center;height:14px}
.bars i{width:3px;background:var(--mint);border-radius:2px;animation:eq 1s ease-in-out infinite}
.bars i:nth-child(2){animation-delay:-.2s}.bars i:nth-child(3){animation-delay:-.4s}.bars i:nth-child(4){animation-delay:-.6s}
@keyframes eq{0%,100%{height:4px}50%{height:14px}}

/* flow */
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.step{all:unset;box-sizing:border-box;cursor:pointer;display:grid;gap:12px;align-content:start;padding:0 0 4px;opacity:.5;transition:opacity .45s ease}
.step:focus-visible{outline:2px solid var(--indigo);outline-offset:6px;border-radius:12px}
.step.on,.flow.static .step{opacity:1}
.track{height:3px;border-radius:3px;background:var(--line);overflow:hidden;margin-bottom:8px}
.track i{display:block;height:100%;background:var(--indigo);transform-origin:left;transform:scaleX(0)}
.step.done .track i,.flow.static .track i{transform:scaleX(1)}
.step.on .track i{animation:fill var(--dur,4.2s) linear forwards}
@keyframes fill{to{transform:scaleX(1)}}
.step .k{font:500 12px/1 var(--mono);color:var(--muted);letter-spacing:.06em}
.step.on .k{color:var(--indigo)}
.step p{color:var(--muted)}
.step q{font-family:var(--display);font-size:22px;line-height:1.2;letter-spacing:-.02em;quotes:"“" "”";min-height:2.4em}
.step q .cur{display:inline-block;width:2px;height:.9em;background:var(--indigo);margin-left:2px;vertical-align:-.08em;animation:blink .8s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.vis{height:92px;border-radius:20px;background:var(--surface);display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px;position:relative;overflow:hidden}
/* 1 · habla */
.mic{width:44px;height:44px;border-radius:50%;background:var(--indigo);color:#fff;display:grid;place-items:center;flex:none;position:relative}
.mic svg{width:20px;height:20px}
.mic::before,.mic::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--indigo);opacity:0}
.step.on .mic::before{animation:ring 1.6s ease-out infinite}
.step.on .mic::after{animation:ring 1.6s ease-out .8s infinite}
@keyframes ring{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.9);opacity:0}}
.wave{display:flex;align-items:center;gap:3px;height:40px}
.wave i{width:4px;height:8px;border-radius:3px;background:var(--indigo);opacity:.35;transition:height .3s}
.step.on .wave i{opacity:1;animation:eq .9s ease-in-out infinite}
.wave i:nth-child(2n){animation-delay:-.3s!important}.wave i:nth-child(3n){animation-delay:-.55s!important}.wave i:nth-child(5n){animation-delay:-.15s!important}
.step.on .wave i{animation-name:eq2}
@keyframes eq2{0%,100%{height:6px}50%{height:34px}}
/* 2 · confirma */
.ask{display:grid;gap:8px;width:100%;max-width:260px}
.ask .bub{background:var(--card);border:1px solid var(--line);border-radius:14px;border-top-left-radius:4px;padding:8px 12px;font-size:13px;font-weight:600;transform:translateY(6px);opacity:.6;transition:all .4s ease}
.ask .opts{display:flex;gap:6px}
.ask .opts span{flex:1;text-align:center;font-size:12px;font-weight:600;padding:7px;border-radius:10px;background:var(--card);border:1px solid var(--line);color:var(--muted);transition:all .3s ease}
.step.on .ask .bub,.flow.static .ask .bub{transform:none;opacity:1}
.step.on .ask .opts span.yes{animation:pick .4s ease 1.6s forwards}
.flow.static .ask .opts span.yes,.step.done .ask .opts span.yes{background:var(--indigo);color:#fff;border-color:transparent}
@keyframes pick{50%{transform:scale(.94)}100%{background:var(--indigo);color:#fff;border-color:transparent;transform:none}}
/* 3 · listo */
.done-card{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 12px;width:100%;max-width:280px;position:relative}
.done-card b{font-size:13.5px;display:block}
.done-card small{font-size:11.5px;color:var(--muted)}
.check{margin-left:auto;width:28px;height:28px;border-radius:50%;background:var(--mint);color:#fff;display:grid;place-items:center;flex:none;transform:scale(.4);opacity:0}
.check svg{width:15px;height:15px}
.check path{stroke-dasharray:24;stroke-dashoffset:24}
.step.on .check{animation:pop .45s cubic-bezier(.3,1.6,.5,1) .5s forwards}
.step.on .check path{animation:draw .4s ease .8s forwards}
.flow.static .check,.step.done .check{transform:none;opacity:1}
.flow.static .check path,.step.done .check path{stroke-dashoffset:0}
@keyframes pop{to{transform:scale(1);opacity:1}}
@keyframes draw{to{stroke-dashoffset:0}}
.step.on .done-card{animation:land .6s cubic-bezier(.2,.9,.3,1)}
@keyframes land{from{transform:translateY(-14px) scale(.96);opacity:0}}
@media (max-width:760px){.flow{grid-template-columns:1fr;gap:28px}}

/* explorer */
.explore{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}
@media (max-width:900px){.explore{grid-template-columns:1fr}}
.tabs{display:grid;gap:6px;margin-top:32px}
.tab{all:unset;cursor:pointer;display:grid;grid-template-columns:36px 1fr;gap:4px 14px;align-items:center;padding:16px 18px;border-radius:20px;color:var(--muted);transition:background .2s}
.tab:focus-visible{outline:2px solid var(--indigo)}
.tab svg{width:22px;height:22px}
.tab .ti{font-weight:600;color:var(--ink);font-size:16px}
.tab .td{grid-column:2;font-size:14.5px;display:none;max-width:40ch}
.tab[aria-selected="true"]{background:var(--surface)}
.tab[aria-selected="true"] .td{display:block}
.tab[aria-selected="true"] svg{color:var(--indigo)}
.showcase{background:var(--surface);border-radius:32px;min-height:600px;display:grid;place-items:center;padding:40px 16px;position:relative;overflow:hidden}
.showcase::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle, rgba(70,85,224,.28), transparent 65%);right:-120px;bottom:-140px}
.showcase .phone{transform:rotate(-4deg)}
.panel{display:none;flex:1;flex-direction:column;padding:14px;gap:10px;overflow:hidden;font-size:12.5px;background:linear-gradient(var(--screen), var(--surface))}
.panel.on{display:flex}
.panel .bubble{font-size:12.5px;padding:10px 12px}
.mini-live{display:flex;justify-content:space-between;align-items:center;font-size:11px}
.mini-live .state-pill{font-size:10.5px}
.mini-agent{margin-top:auto;display:flex;align-items:center;gap:10px;background:var(--indigo-soft);border-radius:16px;padding:10px}
.mini-agent .dot{width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 30%, #9aa5ff, var(--indigo) 50%, var(--indigo-deep));flex:none}
.mini-agent b{font-size:13px;display:block}
.mini-agent small{color:var(--indigo);font-size:11px}
.search{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 10px;color:var(--muted)}
.search svg{width:14px;height:14px}
.filters{display:flex;gap:6px}
.filters span{padding:5px 10px;border-radius:99px;background:var(--surface-2);font-size:11px;font-weight:600;color:var(--muted)}
.filters span.on{background:var(--ink);color:var(--bg)}
.grp{font:600 10px/1 var(--mono);color:var(--faint);letter-spacing:.08em;margin-top:4px}
.res{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 10px}
.res b{display:block;font-size:12.5px}
.res small{color:var(--muted);font-size:11px}
mark{background:var(--amber-soft);color:inherit;border-radius:3px;padding:0 2px}
.perm{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;display:grid;gap:8px}
.perm .row{display:flex;gap:10px;align-items:center}
.perm .actions{display:flex;gap:6px}
.perm .actions span{flex:1;text-align:center;padding:8px;border-radius:10px;font-weight:600;font-size:12px;background:var(--surface-2)}
.perm .actions span.go{background:var(--indigo);color:#fff}

/* scenarios */
.scen{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media (max-width:900px){.scen{grid-template-columns:1fr}}
.scen blockquote{margin:28px 0 0;font-size:clamp(19px,1.8vw,22px);line-height:1.45;color:var(--ink);max-width:36ch;min-height:6.6em}
.scen .role{color:var(--muted);font-size:14px;margin-top:10px}
.arrows{display:flex;gap:8px;margin-top:24px;align-items:center}
.arrow{width:46px;height:46px;border-radius:50%;border:0;background:var(--surface-2);color:var(--ink);cursor:pointer;display:grid;place-items:center}
.arrow svg{width:18px;height:18px}
.dots{display:flex;gap:6px;margin-left:10px}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.dots i.on{background:var(--indigo);width:20px;border-radius:4px}
.day{background:var(--surface);border-radius:32px;padding:clamp(20px,3vw,32px);display:grid;gap:10px}
.day-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.day-head b{font:700 20px/1 var(--display)}
.slot{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:center}
.slot .h{font:500 13px/1 var(--mono);color:var(--faint)}
.slot .e{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--indigo);border-radius:14px;padding:10px 14px;font-size:14.5px;font-weight:600}
.slot .e small{display:block;font-weight:500;color:var(--muted);font-size:12.5px}
.slot .e.m{border-left-color:var(--mint)}.slot .e.a{border-left-color:var(--amber)}
.slot .e.ghost{border-style:dashed;border-left-style:solid;background:transparent;color:var(--muted)}

/* cta */
.cta{position:relative;border-radius:36px;overflow:hidden;background:var(--surface);text-align:center;padding:clamp(48px,7vw,88px) clamp(20px,4vw,48px);display:grid;justify-items:center;gap:20px}
.cta canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.cta > :not(canvas){position:relative;z-index:1}
.cta .lede{max-width:44ch;color:var(--muted)}
.store{display:inline-flex;align-items:center;gap:12px;background:var(--ink);color:var(--bg);border-radius:16px;padding:12px 20px;text-decoration:none;text-align:left}
.store svg{width:26px;height:26px}
.store small{display:block;font-size:11px;opacity:.75}
.store b{font:700 18px/1.1 var(--display)}
.stores{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
@media (max-width:800px){.stores{flex-direction:column;width:min(100%,280px)}}
.store.alt{background:var(--card);color:var(--ink);border:1px solid var(--line)}
.platforms{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;font-size:13px;color:var(--muted)}
.platforms span{background:var(--card);border:1px solid var(--line);border-radius:99px;padding:6px 12px}

/* newsletter */
.news{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}
@media (max-width:860px){.news{grid-template-columns:1fr}}
.news .ic{width:52px;height:52px;border-radius:50%;background:var(--mint);color:#fff;display:grid;place-items:center;margin-bottom:22px}
.news .ic svg{width:24px;height:24px}
.news h2{font-size:clamp(34px,4vw,50px)}
.news p.sub{color:var(--muted);margin-top:18px}
form{display:grid;gap:12px}
form label{font-weight:600}
.field{display:flex;gap:8px;flex-wrap:wrap}
.field input{flex:1 1 220px;min-width:0;font:500 16px var(--body);padding:16px 22px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.field input::placeholder{color:var(--faint)}
.fine{font-size:13px;color:var(--muted)}
.ok{color:var(--mint-text);font-weight:600;font-size:14px}
.err{color:var(--coral);font-weight:600;font-size:14px}

/* footer */
footer{border-top:1px solid var(--line);padding-block:48px 32px;display:grid;gap:48px}
.cols{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:32px}
@media (max-width:760px){.cols{grid-template-columns:1fr 1fr}.cols > :first-child{grid-column:1/-1}}
.cols h4{margin:0 0 14px;font-size:15px}
.cols ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:var(--muted);font-size:14.5px}
.cols a{text-decoration:none}.cols a:hover{color:var(--ink)}
.cols .blurb{color:var(--muted);font-size:14.5px;margin-top:14px;max-width:32ch}
.base{display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted);font-size:13px;flex-wrap:wrap}
.theme{display:inline-flex;background:var(--surface-2);border-radius:99px;padding:4px;gap:2px}
.theme button{all:unset;cursor:pointer;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.theme button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:0 2px 8px -2px rgba(0,0,0,.2)}
.theme button:focus-visible{outline:2px solid var(--indigo)}
.theme svg{width:16px;height:16px}


/* ===== motion layer ===== */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes popIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes navIn{from{opacity:0;transform:translateY(-14px)}}
@keyframes stageIn{from{opacity:0;transform:scale(.92) translateY(30px)}}
@keyframes chipIn{from{opacity:0;transform:scale(.5) translateY(20px)}}
@keyframes drawX{from{transform:scaleX(0)}}
@keyframes glow{to{background-position:30% 20%, 70% 10%, 0 0}}
@keyframes drift{to{transform:translate(-120px,-90px) scale(1.25)}}
@keyframes sway{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(-1.5deg) translateY(-12px)}}
@keyframes marq{to{transform:translateX(-50%)}}
@keyframes buzz{20%,60%{transform:translateX(-3px)}40%,80%{transform:translateX(3px)}}
@keyframes halo{50%{box-shadow:0 0 0 7px var(--indigo-soft)}}
@keyframes bob{50%{transform:translateY(-6px) rotate(-6deg)}}
@keyframes shim{to{background-position:200% 0}}
@keyframes nowMove{from{top:14%}to{top:94%}}
@keyframes shine{0%,70%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
@keyframes dotty{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

.progress{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;height:3px;z-index:60;transform-origin:left;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--indigo),var(--mint));pointer-events:none}
nav{animation:navIn .7s cubic-bezier(.2,.8,.2,1) both}
.logo .eyes{animation:look 7s ease-in-out infinite}
@keyframes look{0%,30%{transform:translateX(0)}36%,48%{transform:translateX(-30px)}54%,66%{transform:translateX(30px)}72%,100%{transform:translateX(0)}}
.brand:hover .logo{animation:wiggle .6s ease}
@keyframes wiggle{25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}
.app-tile{width:84px;height:84px;border-radius:24px;background:#fff;color:#265AC0;display:grid;place-items:center;box-shadow:0 20px 40px -18px rgba(38,90,192,.55),0 0 0 1px rgba(38,90,192,.08);animation:bob 4s ease-in-out infinite}
.app-tile .logo{width:64%;height:64%}
.mini-logo{display:inline-grid;width:16px;height:16px;vertical-align:-2px;margin-right:5px;color:var(--logo)}
.mini-logo .logo{width:100%;height:100%}
.logos img{width:22px;height:22px;flex:none}
.lang-switch{display:inline-flex;background:var(--surface-2);border-radius:99px;padding:4px;gap:2px}
.lang-switch button{all:unset;cursor:pointer;font:600 12px/1 var(--mono);letter-spacing:.06em;padding:9px 11px;border-radius:99px;color:var(--muted);transition:background .2s,color .2s}
.lang-switch button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:0 2px 8px -2px rgba(0,0,0,.2)}
.lang-switch button:focus-visible{outline:2px solid var(--indigo)}
.base .right{display:flex;gap:10px;align-items:center}
.lang-fade{transition:opacity .25s ease!important;opacity:0!important}

/* word reveal */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.wi{display:inline-block;transform:translateY(110%);transition:transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--wd,0ms)}
.in .wi,.in.wi{transform:none}
.say{isolation:isolate}
.say::after{content:"";position:absolute;left:.02em;right:.02em;bottom:.02em;height:.1em;border-radius:.1em;background:var(--mint);transform-origin:left;animation:drawX .8s cubic-bezier(.2,.8,.2,1) 1.1s both;z-index:-1}

/* generic reveal */
.rv.rv{opacity:0;transform:translateY(32px);transition:opacity .9s ease var(--rd,0ms),transform .9s cubic-bezier(.2,.8,.2,1) var(--rd,0ms),translate .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,background .2s}
.rv.rv.zoom{transform:scale(.94) translateY(20px)}
.rv.rv.in{opacity:1;transform:none}

/* hero */
.chip{--d:.8s;animation:chipIn .7s cubic-bezier(.3,1.5,.5,1) var(--d) both,float 6s ease-in-out calc(var(--d) + .7s) infinite;transition:translate .4s ease-out}
.c4{--d:.7s}.c1{--d:.9s}.c2{--d:1.1s}.c3{--d:1.3s}
.stage::before{background-size:130% 130%,130% 130%,auto;animation:glow 9s ease-in-out infinite alternate}
.hero .phone{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.caption{transition:opacity .3s}
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-130%);pointer-events:none}
.btn-primary:hover::after{transition:transform .7s;transform:translateX(130%)}
.hero-actions .btn-primary::after{animation:shine 4.5s ease-in-out 2s infinite}
.btn,.store{transition:transform .2s ease,background .2s ease,translate .25s ease-out}

/* logos marquee */
.mq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.logos.marquee{flex-wrap:nowrap;justify-content:flex-start;width:max-content;gap:64px;padding-right:64px;animation:marq 32s linear infinite}
.mq:hover .logos.marquee{animation-play-state:paused}
.logos span{transition:color .3s}
.logos span:hover{color:var(--indigo)}

/* bento */
.tile{transition:translate .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.tile:hover{translate:0 -6px;box-shadow:0 30px 60px -40px rgba(40,50,140,.45)}
.tile::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-30%),rgba(70,85,224,.14),transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:0}
.tile:hover::before{opacity:1}
.hid{opacity:0!important;transform:translateY(10px) scale(.98)!important}
.anim-ok .demo > *,.anim-ok .turn,.anim-ok .tag,.anim-ok .task .n{transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.anim-ok .demo .event.hid{transform:translateX(-24px)!important}
.pop{animation:popIn .45s cubic-bezier(.3,1.6,.5,1) both}
.typing{display:inline-flex;gap:4px;padding:4px 2px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:dotty 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
.caret{display:inline-block;width:2px;height:1em;background:currentColor;margin-left:1px;vertical-align:-.15em;animation:blink .8s steps(1) infinite}
.turn-ind.buzz{animation:buzz .35s 2}
.task{background:var(--card);position:relative}
.sorting{font:600 11px/1 var(--mono);color:var(--indigo);letter-spacing:.06em;display:flex;align-items:center;gap:6px;padding:10px 0 4px;transition:opacity .3s}

/* explorer */
.tab{position:relative}
.tab .bar{position:absolute;left:18px;right:18px;bottom:8px;height:2px;border-radius:2px;background:var(--line);overflow:hidden;display:none}
.tab.auto[aria-selected="true"] .bar{display:block}
.tab .bar i{display:block;height:100%;background:var(--indigo);transform-origin:left;transform:scaleX(0)}
.tab.run .bar i{animation:fill 5s linear forwards}
.tab svg{transition:transform .3s}
.tab[aria-selected="true"] svg{transform:scale(1.12)}
.showcase .phone{animation:sway 7s ease-in-out infinite}
.showcase::before{animation:drift 11s ease-in-out infinite alternate}

/* scenarios */
.day{position:relative;overflow:hidden}
.now{position:absolute;left:14px;right:14px;height:2px;background:var(--coral);opacity:.75;z-index:2;pointer-events:none;animation:nowMove 7s linear infinite}
.now::before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--coral)}
.now span{position:absolute;right:0;top:-18px;font:600 10px/1 var(--mono);color:var(--coral);letter-spacing:.08em}
.dots i{transition:all .35s ease}
.slot .e{transition:translate .25s}
.slot .e:hover{translate:4px 0}

/* cta + news + footer */
.shim{background:linear-gradient(90deg,var(--indigo),var(--mint),var(--indigo));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shim 4s linear infinite}
.cta.in .store{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.cta.in .store:nth-child(2){animation-delay:.12s}.cta.in .store:nth-child(3){animation-delay:.24s}
.store:hover{transform:translateY(-3px)}
.news .ic{animation:bob 3s ease-in-out infinite}
.field input{transition:box-shadow .3s,border-color .3s}
.field input:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 5px var(--indigo-soft)}
.burst{position:fixed;width:8px;height:8px;border-radius:50%;pointer-events:none;z-index:70}
.cols a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s,color .3s}
.cols a:hover{background-size:100% 1px}
:root.theming *,:root.theming *::before,:root.theming *::after{transition:background-color .5s,color .5s,border-color .5s!important}

@media (prefers-reduced-motion: reduce){
  .rv.rv{opacity:1;transform:none}
  .wi{transform:none}
  .hid{opacity:1!important;transform:none!important}
  .now{display:none}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
