:root{
 --page:#F3F4F2;--tile:#FFFFFF;--ink:#000000;--sub:#5E6361;--line:#D3D6D4;--well:#E2E5E3;
 --blue:#2F5FD0;--btn:#000000;--btn-ink:#FFFFFF;--nav:rgba(243,244,242,.8);
 --black:#000000;--black-ink:#F3F4F2;--black-sub:#9EA3A1;--black-line:#2B2D2D;--black-link:#8FB0FF;
 --ok:#1F7A45;--ok-bg:#E3F3E9;--err:#B3261E;
 --logo-ink:#000;--logo-paper:#F3F4F2;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --page:#000000;--tile:#161717;--ink:#F3F4F2;--sub:#A3A8A6;--line:#2B2D2D;--well:#232525;
 --blue:#7EA2FF;--btn:#F3F4F2;--btn-ink:#000;--nav:rgba(0,0,0,.74);
 --black:#161717;--ok:#7FD3A2;--ok-bg:#143322;--err:#FF8A80;
 --logo-ink:#F3F4F2;--logo-paper:#000;color-scheme:dark}}
:root[data-theme="dark"]{
 --page:#000000;--tile:#161717;--ink:#F3F4F2;--sub:#A3A8A6;--line:#2B2D2D;--well:#232525;
 --blue:#7EA2FF;--btn:#F3F4F2;--btn-ink:#000;--nav:rgba(0,0,0,.74);
 --black:#161717;--ok:#7FD3A2;--ok-bg:#143322;--err:#FF8A80;
 --logo-ink:#F3F4F2;--logo-paper:#000;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--page);color:var(--ink);font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.47;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
button,input,select,textarea{font:inherit;color:inherit}
.x{font-stretch:125%;font-weight:800;letter-spacing:-.02em;line-height:1.04;margin:0;text-wrap:balance}
.sub{color:var(--sub);text-wrap:pretty}
.wrap{max-width:1180px;margin:0 auto;padding-inline:22px}
.narrow{max-width:760px}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;border-radius:999px;background:var(--btn);color:var(--btn-ink);font-weight:600;font-size:16px;padding:12px 22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.pill:hover{text-decoration:none;opacity:.88}
.links{display:flex;gap:14px 28px;flex-wrap:wrap;justify-content:center;align-items:center}
.arrow::after{content:" ›"}
.eyebrow{display:block;font-size:15px;font-weight:600;color:var(--sub);margin-bottom:12px}

/* nav */
.gnav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--nav);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.gnav .wrap{height:52px;display:flex;align-items:center;gap:28px}
.gnav .logo{height:17px;width:auto}
.gnav .nl{list-style:none;display:flex;gap:26px;margin:0 auto;padding:0;align-items:center}
.gnav .nl>li>a,.gnav .dd>button{color:var(--ink);font-size:13px;opacity:.82;background:none;border:0;padding:0;cursor:pointer}
.gnav .nl>li>a:hover,.gnav .dd>button:hover{opacity:1;text-decoration:none}
.gnav .nl a[aria-current="page"]{opacity:1;font-weight:600}
.gnav .pill{font-size:13px;padding:6px 14px}
.dd{position:relative}
.dd>button::after{content:"";display:inline-block;width:5px;height:5px;border-right:1.3px solid currentColor;border-bottom:1.3px solid currentColor;transform:translateY(-3px) rotate(45deg);margin-left:7px}
.ddm{position:absolute;top:34px;left:50%;transform:translateX(-50%);min-width:300px;background:var(--tile);border:1px solid var(--line);border-radius:18px;padding:10px;list-style:none;margin:0;box-shadow:0 20px 50px rgba(0,0,0,.12);display:none}
.dd.open .ddm{display:block}
.ddm a{display:block;padding:10px 12px;border-radius:10px;color:var(--ink);font-size:14px;font-weight:600}
.ddm a small{display:block;font-weight:400;color:var(--sub);font-size:12.5px}
.ddm a:hover{background:var(--page);text-decoration:none}
.ddm hr{border:0;border-top:1px solid var(--line);margin:6px 10px}
.menu{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:-8px}
.menu span{display:block;width:18px;height:1.5px;background:var(--ink);margin:4px 0;transition:transform .2s}

/* hero */
.hero{text-align:center;padding-block:72px 0;overflow:hidden}
.hero h1{font-size:clamp(42px,7.6vw,92px);max-width:15ch;margin:0 auto}
.hero .sub{font-size:clamp(19px,2.2vw,24px);max-width:38ch;margin:18px auto 28px;line-height:1.3}
.hero .links{margin-bottom:48px}
.hero figure{margin:0 auto;max-width:1040px;border-radius:36px 36px 0 0;overflow:hidden;background:var(--well)}
.hero figure img{width:100%;aspect-ratio:700/460;object-fit:cover;object-position:center 45%}
.hero.solo{padding-block:88px 72px}
.play-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:16px;background:none;border:0;color:var(--blue);cursor:pointer;padding:12px 4px}
.play-link i{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor;position:relative}
.play-link i::after{content:"";position:absolute;left:10px;top:8px;border-left:8px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent}
@media (prefers-reduced-motion:no-preference){
 .hero h1,.hero .sub,.hero .links{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
 .hero .sub{animation-delay:.08s}.hero .links{animation-delay:.16s}
 .hero figure{animation:lift 1.3s .2s cubic-bezier(.2,.7,.2,1) both}
 @keyframes rise{from{transform:translateY(14px)}}
 @keyframes lift{from{transform:translateY(60px) scale(.96)}}
}

/* sections */
.sec{padding-block:110px}
.sec.t{background:var(--tile)}
.sec.d{background:var(--black);color:var(--black-ink)}
.sec.d .sub{color:var(--black-sub)}
.sec.d a{color:var(--black-link)}
.head{text-align:center;margin-bottom:56px}
.head h2{font-size:clamp(34px,5.2vw,60px)}
.head .sub{font-size:clamp(18px,2vw,21px);max-width:40ch;margin:14px auto 0}
.head.left{text-align:left}
.head.left .sub{margin-left:0}

/* narrative (use case) */
.tale{font-size:clamp(22px,2.6vw,30px);line-height:1.35;font-weight:500;letter-spacing:-.01em}
.tale p{margin:0 0 .9em;text-wrap:pretty}
.tale p:last-child{margin-bottom:0}
.tale .dim{color:var(--sub)}
.sec.d .tale .dim{color:var(--black-sub)}
.tale strong{font-weight:700}

/* audio clips */
.clips{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.clip{background:var(--page);border-radius:28px;padding:26px;display:flex;flex-direction:column;gap:16px}
.sec:not(.t) .clip{background:var(--tile)}
.clip h3{font-size:15px;font-weight:600;margin:0;color:var(--sub)}
.clip .row{display:flex;align-items:center;gap:14px}
.pbtn{width:52px;height:52px;border-radius:50%;border:0;background:var(--btn);color:var(--btn-ink);cursor:pointer;flex:none;position:relative}
.pbtn::after{content:"";position:absolute;left:21px;top:17px;border-left:14px solid currentColor;border-top:9px solid transparent;border-bottom:9px solid transparent}
.pbtn[aria-pressed="true"]::after{left:19px;top:18px;border:0;width:14px;height:16px;background:linear-gradient(90deg,currentColor 0 5px,transparent 5px 9px,currentColor 9px)}
.wave{flex:1;height:34px;display:flex;align-items:center;gap:3px;position:relative}
.wave b{flex:1;background:var(--line);border-radius:2px;min-width:2px}
.wave .fill{position:absolute;inset:0;display:flex;align-items:center;gap:3px;clip-path:inset(0 calc(100% - var(--p,0%)) 0 0)}
.wave .fill b{background:var(--ink)}
.clip time{font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums;width:34px;text-align:right}
.say{display:flex;flex-direction:column;gap:10px;font-size:15.5px;line-height:1.42}
.say p{margin:0;transition:opacity .4s}
.clip.playing .say p{opacity:.4}
.clip.playing .say p.on{opacity:1}
.say .who{display:block;font-size:12px;color:var(--sub);margin-bottom:2px}
.say .y{font-weight:600}
.cap{text-align:center;color:var(--sub);font-size:13.5px;margin-top:22px}

/* use-case tiles */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tile{background:var(--tile);border-radius:32px;overflow:hidden;text-align:center;padding:52px 28px 0;display:flex;flex-direction:column;align-items:center;min-height:600px}
.tile h3{font-size:clamp(28px,3.4vw,40px);max-width:14ch}
.tile .sub{font-size:18px;max-width:30ch;margin:12px 0 18px}
.tile .links{margin-bottom:30px;font-size:16px}
.tile .shot{margin-top:auto;width:min(420px,100%);border-radius:24px 24px 0 0;overflow:hidden}
.tile .shot img{width:100%;aspect-ratio:1/1;object-fit:cover}
.tile.dark{background:var(--black);color:var(--black-ink)}
.tile.dark .sub{color:var(--black-sub)}
.tile.dark a{color:var(--black-link)}
.convo{margin-top:auto;width:min(360px,100%);background:#000;border-radius:28px 28px 0 0;padding:26px 22px 40px;text-align:left;display:flex;flex-direction:column;gap:10px;border:1px solid #2B2D2D;border-bottom:0}
.convo p{margin:0;padding:11px 15px;border-radius:18px;font-size:15px;line-height:1.35;max-width:88%}
.convo .q{background:#232525;color:#F3F4F2;border-bottom-left-radius:5px}
.convo .a{background:#F3F4F2;color:#000;align-self:flex-end;border-bottom-right-radius:5px}
.convo small{color:#7C8280;font-size:12px;text-align:center}
.convo.full{border-radius:28px;border-bottom:1px solid #2B2D2D;margin:0 auto;padding-bottom:26px;width:min(460px,100%)}
.more{text-align:center;margin-top:36px;font-size:18px}

/* sticky story (home) */
.story{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.stick{position:sticky;top:90px;height:calc(100vh - 130px);max-height:680px;display:grid;place-items:center}
.dev{position:relative;width:min(380px,100%);container-type:inline-size}
.dev svg{width:100%;height:auto}
.screen{position:absolute;left:32.78%;top:18.57%;width:34.44%;height:41.9%;border-radius:9cqw;overflow:hidden;color:#F3F4F2}
.st{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3cqw;padding:5cqw;text-align:center;opacity:0;transition:opacity .45s}
.st.on{opacity:1}
.st small{font-size:3.4cqw;letter-spacing:.02em;color:#A3A8A6}
.st .big{font-size:4.4cqw;font-weight:600;line-height:1.25}
.st svg{width:15cqw;height:auto}
.files{list-style:none;margin:0;padding:0;width:100%;display:grid;gap:2cqw;text-align:left;font-size:3.2cqw}
.files li{background:#1A1B1B;border-radius:2cqw;padding:2cqw 2.4cqw;display:flex;justify-content:space-between}
.files li::after{content:"✓";color:#7EA2FF}
.eq{display:flex;gap:1.4cqw;align-items:center;height:12cqw}
.eq i{width:1.8cqw;background:#F3F4F2;border-radius:1cqw;height:30%}
@media (prefers-reduced-motion:no-preference){
 .st.on .eq i{animation:eq 1s ease-in-out infinite}
 .eq i:nth-child(2){animation-delay:-.2s!important}.eq i:nth-child(3){animation-delay:-.5s!important}.eq i:nth-child(4){animation-delay:-.7s!important}.eq i:nth-child(5){animation-delay:-.35s!important}
 @keyframes eq{50%{height:100%}}
}
.steps{list-style:none;margin:0;padding:0}
.steps li{min-height:64vh;display:flex;flex-direction:column;justify-content:center;opacity:.3;transition:opacity .4s}
.steps li.on{opacity:1}
.steps .n{font-size:15px;font-weight:600;color:var(--sub);margin-bottom:10px}
.steps h3{font-size:clamp(30px,3.8vw,46px);max-width:13ch}
.steps p{font-size:19px;max-width:30ch;margin:14px 0 0}
.steps a{font-size:17px;margin-top:14px;display:inline-block}

/* platform mock */
.dash{max-width:980px;margin:0 auto;background:#F3F4F2;color:#000;border-radius:22px;overflow:hidden;display:grid;grid-template-columns:190px 1fr 240px;min-height:440px;box-shadow:0 30px 80px rgba(0,0,0,.35);--logo-ink:#000;--logo-paper:#E2E5E3}
.dash aside{background:#E2E5E3;padding:20px 14px;display:flex;flex-direction:column;gap:4px;font-size:14px}
.dash aside .logo{height:14px;width:auto;margin:0 8px 18px}
.dash aside span{padding:8px 10px;border-radius:10px;color:#3F4442}
.dash aside .on{background:#fff;color:#000;font-weight:600}
.dash main{padding:24px;background:#fff}
.dash h4{margin:0 0 4px;font-size:18px;font-stretch:112%;font-weight:700}
.dash main>p{margin:0 0 16px;font-size:13.5px;color:#5E6361}
.doc{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #E2E5E3;font-size:14px}
.doc i{width:34px;height:40px;border-radius:6px;background:#E2E5E3;position:relative}
.doc i::after{content:attr(data-t);position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:9px;font-weight:700;font-style:normal;color:#5E6361}
.doc small{display:block;color:#5E6361;font-size:12px}
.ok{font-size:12px;font-weight:600;color:#1F7A45;background:#E3F3E9;padding:3px 9px;border-radius:999px;white-space:nowrap}
.ok.busy{color:#2F5FD0;background:#E6ECFB}
.drop{margin-top:16px;border:1.5px dashed #C9CCCB;border-radius:14px;padding:16px;text-align:center;font-size:13.5px;color:#5E6361}
.dash .pre{padding:24px 20px;background:#F3F4F2;border-left:1px solid #E2E5E3}
.field{margin-top:14px;font-size:13px}
.field span{display:block;color:#5E6361;margin-bottom:6px}
.seg{display:flex;background:#E2E5E3;border-radius:999px;padding:3px}
.seg b{flex:1;text-align:center;font-weight:600;padding:5px 0;border-radius:999px;font-size:12.5px}
.seg b.on{background:#000;color:#fff}
.mini-screen{margin-top:16px;background:#000;border-radius:16px;aspect-ratio:3/4;display:grid;place-items:center;padding:18px;text-align:center;color:#F3F4F2;font-size:13px;font-weight:600;--logo-ink:#000;--logo-paper:#F3F4F2}
.mini-screen .ico{width:54px;margin:0 auto 10px;box-shadow:0 0 0 1px #333;border-radius:50%}
.sec .dash+.links{margin-top:48px}

/* devices */
.models{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.model{background:var(--tile);border-radius:28px;padding:30px 26px 32px;text-align:center;display:flex;flex-direction:column;align-items:center}
.sec.t .model{background:var(--page)}
.model .pic{width:100%;aspect-ratio:1/1;border-radius:20px;overflow:hidden;background:var(--well);display:grid;place-items:center;margin-bottom:24px}
.model .pic img{width:100%;height:100%;object-fit:cover}
.pending{background:repeating-linear-gradient(135deg,var(--well) 0 12px,var(--page) 12px 24px)!important;color:var(--sub);font-size:14px;gap:10px;align-content:center;padding:20px;text-align:center}
.pending .ico{width:64px;margin:0 auto;--logo-ink:var(--ink);--logo-paper:var(--well)}
.model h3{font-size:30px}
.model .sub{margin:8px 0 18px;font-size:16px;max-width:24ch}
.facts{list-style:none;margin:0 0 22px;padding:16px 0 0;border-top:1px solid var(--line);width:100%;display:grid;gap:8px;font-size:15px}
.model .links{margin-top:auto;font-size:16px}
.specs{display:grid;grid-template-columns:repeat(4,1fr);margin-top:56px;border-block:1px solid var(--line)}
.specs div{padding:26px 20px;text-align:center;border-left:1px solid var(--line)}
.specs div:first-child{border-left:0}
.specs b{display:block;font-stretch:125%;font-weight:800;font-size:clamp(24px,3vw,36px);letter-spacing:-.02em}
.specs span{color:var(--sub);font-size:14px}
.specs-cap{text-align:center;color:var(--sub);font-size:14px;margin-top:14px}
.price{margin-top:56px;text-align:center}
.price b{display:block;font-stretch:125%;font-weight:800;font-size:clamp(30px,4vw,44px);letter-spacing:-.02em}
.price p{margin:6px auto 0;color:var(--sub);max-width:46ch}

/* card rail */
.rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 22px 24px;scroll-padding:22px;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
@media (min-width:1224px){.rail{padding-left:calc((100vw - 1180px)/2 + 22px);scroll-padding:calc((100vw - 1180px)/2 + 22px)}}
.card{flex:0 0 300px;scroll-snap-align:start;background:var(--tile);border-radius:26px;padding:30px 28px;min-height:290px;display:flex;flex-direction:column}
.sec.t .card{background:var(--page)}
.glyph{width:44px;height:44px;color:var(--blue);flex:none}
.card h3{font-size:25px;margin-top:44px}
.card p{margin:10px 0 0;color:var(--sub);font-size:16px}
.card a{margin-top:auto;padding-top:14px;font-size:15px}
.rail-ctl{display:flex;justify-content:flex-end;gap:10px;margin-top:-20px;margin-bottom:10px}
.rail-ctl button{width:40px;height:40px;border-radius:50%;border:0;background:var(--well);cursor:pointer;font-size:18px;color:var(--ink)}

/* generic grids */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.box{background:var(--tile);border-radius:26px;padding:30px 28px}
.sec.t .box{background:var(--page)}
.box h3{font-size:22px;font-stretch:112%;font-weight:700;margin:18px 0 8px;letter-spacing:-.01em}
.box p{margin:0;color:var(--sub);font-size:16px}
.box .glyph{width:36px;height:36px}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:center}
.trio h3{font-size:22px;font-stretch:112%;font-weight:700;margin:16px 0 8px}
.trio p{margin:0 auto;color:var(--sub);max-width:28ch}
.trio .glyph{margin:0 auto}

/* checklist */
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.checks li{padding:14px 0 14px 34px;border-bottom:1px solid var(--line);position:relative;font-size:17px}
.checks li::before{content:"";position:absolute;left:4px;top:19px;width:14px;height:8px;border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg)}
.note{margin-top:34px;font-size:19px;text-align:center;max-width:44ch;margin-inline:auto;text-wrap:balance}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}

/* callout */
.callout{max-width:760px;margin:44px auto 0;background:var(--tile);border-radius:24px;padding:26px 30px;display:flex;gap:20px;align-items:flex-start}
.sec.t .callout{background:var(--page)}
.callout .glyph{width:36px;height:36px;margin-top:2px}
.callout b{display:block;font-size:18px;margin-bottom:4px}
.callout p{margin:0;color:var(--sub)}

/* key/value table */
.kv{max-width:760px;margin:0 auto;border-top:1px solid var(--line)}
.kv div{display:grid;grid-template-columns:220px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.kv dt{color:var(--sub);margin:0}
.kv dd{margin:0;font-weight:600}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--black-line)}
.stats div{padding:34px 20px;text-align:center;border-left:1px solid var(--black-line)}
.stats div:first-child{border-left:0}
.stats b{display:block;font-stretch:125%;font-weight:800;font-size:clamp(34px,5vw,64px);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.stats span{display:block;color:var(--black-sub);font-size:15px;margin-top:10px}
.source{text-align:center;font-size:13px;color:var(--black-sub);margin-top:16px}

/* flow (how it works) */
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:f}
.flow li{background:var(--tile);border-radius:26px;padding:28px 24px;position:relative}
.sec.t .flow li{background:var(--page)}
.flow li::before{counter-increment:f;content:counter(f);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--btn);color:var(--btn-ink);font-weight:700;font-size:15px}
.flow h3{font-size:22px;font-stretch:112%;font-weight:700;margin:22px 0 8px}
.flow p{margin:0;color:var(--sub);font-size:16px}
.flow .ex{display:block;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:14.5px;color:var(--ink);font-style:italic}

/* compare table */
.tablewrap{overflow-x:auto;margin:0 -4px}
.cmp{width:100%;min-width:640px;border-collapse:collapse;font-size:16px}
.cmp th,.cmp td{padding:16px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.cmp thead th{font-stretch:125%;font-weight:800;font-size:22px;letter-spacing:-.01em;border-bottom:1.5px solid var(--ink)}
.cmp tbody th{color:var(--sub);font-weight:400;width:24%}
.tbc{color:var(--sub);font-style:italic;font-weight:400}

/* faq */
.faq{max-width:820px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;font-size:19px;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:18px;font-size:26px;font-weight:300;color:var(--sub);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 22px;color:var(--sub);max-width:64ch}

/* lead form */
.lead{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start}
.lead h2{font-size:clamp(34px,4.6vw,56px)}
.lead .intro>.sub{font-size:19px;margin:16px 0 30px;max-width:34ch}
.next{list-style:none;margin:0;padding:0;counter-reset:n;display:grid;gap:18px}
.next li{display:grid;grid-template-columns:32px 1fr;gap:14px;align-items:start}
.next li::before{counter-increment:n;content:counter(n);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--ink);font-weight:700;font-size:14px}
.next b{display:block}
.next span{color:var(--sub);font-size:15.5px}
.from{margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}
.from b{font-stretch:125%;font-weight:800;font-size:28px;letter-spacing:-.02em;display:block}
.from span{color:var(--sub);font-size:15px}
form.lf{background:var(--tile);border-radius:30px;padding:34px;display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.sec.t form.lf{background:var(--page)}
.lf .full{grid-column:1/-1}
.lf label{display:block;font-size:14px;font-weight:600;margin-bottom:7px}
.lf label em{font-style:normal;font-weight:400;color:var(--sub)}
.lf input,.lf select,.lf textarea{width:100%;border:1.5px solid var(--line);background:var(--page);border-radius:14px;padding:12px 14px;font-size:16px;appearance:none;-webkit-appearance:none}
.sec.t .lf input,.sec.t .lf select,.sec.t .lf textarea{background:var(--tile)}
.lf select{background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(135deg,var(--sub) 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 15px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.lf textarea{min-height:96px;resize:vertical}
.lf input:focus-visible,.lf select:focus-visible,.lf textarea:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 25%,transparent)}
.lf .bad{border-color:var(--err)}
.lf .hint{font-size:13.5px;color:var(--sub);margin-top:7px}
.lf .personal{background:var(--well);border-radius:14px;padding:14px 16px;font-size:15px}
.lf .consent{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--sub);font-weight:400}
.lf .consent input{width:20px;height:20px;padding:0;border-radius:6px;flex:none;margin-top:1px;appearance:auto;-webkit-appearance:auto;accent-color:var(--btn)}
.lf .send{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.lf .msg{font-size:15px;color:var(--err);min-height:1px}
.done{background:var(--tile);border-radius:30px;padding:48px 34px;text-align:center}
.sec.t .done{background:var(--page)}
.done .tick{width:56px;height:56px;border-radius:50%;background:var(--ok-bg);margin:0 auto 20px;position:relative}
.done .tick::after{content:"";position:absolute;left:18px;top:19px;width:20px;height:10px;border-left:3px solid var(--ok);border-bottom:3px solid var(--ok);transform:rotate(-45deg)}
.done h3{font-size:30px}
.done p{color:var(--sub);max-width:40ch;margin:12px auto 0}

/* footer */
footer{padding-block:36px 50px;font-size:12.5px;color:var(--sub);border-top:1px solid var(--line)}
footer .disc{padding-bottom:18px;border-bottom:1px solid var(--line);max-width:90ch;margin:0}
.fcols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-block:26px;border-bottom:1px solid var(--line)}
.fcols h4{margin:0 0 10px;font-size:12.5px;color:var(--ink);font-weight:600}
.fcols ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fcols a{color:var(--sub)}
.legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:18px;align-items:center}
.legal .logo{height:14px;width:auto}
.legal .lang a{color:var(--sub)}
.legal .lang b{color:var(--ink)}

@media (max-width:980px){
 .gnav .nl{display:none}
 .menu{display:block}
 .gnav .logo{margin:0 auto}
 .gnav.open .nl{display:flex;flex-direction:column;align-items:stretch;position:absolute;top:52px;left:0;right:0;background:var(--page);padding:10px 22px 24px;gap:0;border-bottom:1px solid var(--line);max-height:calc(100vh - 52px);overflow:auto}
 .gnav.open .nl>li>a,.gnav.open .dd>button{display:block;font-size:22px;font-weight:600;opacity:1;padding:10px 0;font-stretch:112%;text-align:left;width:100%}
 .gnav.open .dd>button::after{display:none}
 .gnav.open .ddm{display:block;position:static;transform:none;box-shadow:none;border:0;background:none;padding:0 0 8px;min-width:0}
 .gnav.open .ddm a{padding:7px 0;font-size:16px}
 .gnav.open .ddm hr{margin:6px 0}
 .gnav.open .menu span:first-child{transform:translateY(2.75px) rotate(45deg)}
 .gnav.open .menu span:last-child{transform:translateY(-2.75px) rotate(-45deg)}
 .clips,.models,.g3,.trio{grid-template-columns:1fr}
 .g4,.flow{grid-template-columns:1fr 1fr}
 .tiles,.g2,.split,.lead{grid-template-columns:1fr}
 .lead{gap:40px}
 .tile{min-height:0}
 .dash{grid-template-columns:1fr}
 .dash aside{flex-direction:row;overflow-x:auto;align-items:center}
 .dash aside .logo{margin:0 10px 0 4px}
 .dash .pre{border-left:0;border-top:1px solid #E2E5E3}
 .mini-screen{max-width:200px;margin-inline:auto}
 .specs{grid-template-columns:1fr 1fr}
 .specs div:nth-child(3){border-left:0}
 .specs div:nth-child(n+3){border-top:1px solid var(--line)}
 .fcols{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
 .sec{padding-block:80px}
 .story{grid-template-columns:1fr;gap:0}
 .stick{top:52px;height:auto;max-height:none;z-index:2;background:linear-gradient(var(--tile) 82%,transparent);padding:16px 0 28px}
 .dev{width:min(190px,52vw)}
 .steps li{min-height:62vh;justify-content:flex-start;padding-top:10px}
 .checks{grid-template-columns:1fr}
 .g4,.flow{grid-template-columns:1fr}
 .stats{grid-template-columns:1fr}
 .stats div{border-left:0;border-top:1px solid var(--black-line)}
 .stats div:first-child{border-top:0}
 .kv div{grid-template-columns:1fr;gap:4px}
 form.lf{grid-template-columns:1fr;padding:24px 20px}
 .callout{flex-direction:column;gap:12px}
}

/* ---- añadidos fase 2-3 ---- */
.hero figure.fconvo{background:var(--black);padding:56px 22px 0;display:flex;justify-content:center}
.hero figure.fconvo .convo{margin-top:0}
.hero figure.fpend{aspect-ratio:16/9;display:grid;place-items:center;border-radius:36px 36px 0 0}
.hero figure.fpend .ico{width:72px}
/* hub */
.hub{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.hubc{background:var(--tile);border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 160px;min-height:220px;color:var(--ink)}
.hubc:hover{text-decoration:none}
.hubc:hover h3{text-decoration:underline;text-underline-offset:4px}
.hubc .tx{padding:28px 26px;display:flex;flex-direction:column}
.hubc .eyebrow{margin-bottom:8px}
.hubc h3{font-size:clamp(22px,2.4vw,28px)}
.hubc p{color:var(--sub);margin:10px 0 0;font-size:15.5px}
.hubc .go{margin-top:auto;padding-top:16px;color:var(--blue);font-weight:600;font-size:15px}
.hubc .im{background:var(--well);display:grid;place-items:center}
.hubc .im img{width:100%;height:100%;object-fit:cover}
.hubc .im .glyph{width:52px;height:52px;color:var(--sub)}
.fit{counter-reset:q;list-style:none;margin:0 auto;padding:0;max-width:760px;display:grid;gap:14px}
.fit li{background:var(--tile);border-radius:22px;padding:22px 26px;display:grid;grid-template-columns:40px 1fr;gap:16px;align-items:center;font-size:19px;font-weight:600}
.sec.t .fit li{background:var(--page)}
.fit li::before{counter-increment:q;content:counter(q);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--btn);color:var(--btn-ink);font-size:16px}
.fit li span{display:block;font-weight:400;color:var(--sub);font-size:15.5px;margin-top:2px}
/* setup timeline */
.setup{list-style:none;margin:0 auto;padding:0;max-width:860px;counter-reset:s}
.setup li{display:grid;grid-template-columns:56px 1fr auto;gap:20px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.setup li:first-child{border-top:1px solid var(--line)}
.setup li::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--btn);color:var(--btn-ink);font-weight:700}
.setup h3{font-size:24px;font-stretch:112%;font-weight:700;margin:6px 0 6px;letter-spacing:-.01em}
.setup p{margin:0;color:var(--sub);max-width:56ch}
.setup .tm{font-size:14px;font-weight:600;color:var(--sub);background:var(--well);border-radius:999px;padding:5px 12px;white-space:nowrap;margin-top:8px}
.use3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:56px}
.use3 div{text-align:center}
.use3 b{display:block;font-stretch:125%;font-weight:800;font-size:clamp(26px,3vw,34px);letter-spacing:-.02em}
.use3 span{color:var(--sub)}
/* anatomy */
.anat{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:center}
.anat .dev{margin:0 auto}
.parts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.parts li{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:190px 1fr;gap:20px}
.parts b{font-weight:700}
.parts span{color:var(--sub)}
.states{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.states span{display:inline-flex;align-items:center;gap:8px;background:var(--tile);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600}
.sec.t .states span{background:var(--page)}
.states i{width:9px;height:9px;border-radius:50%;background:var(--sub)}
.states .l i{background:var(--blue)}.states .p i{background:#C98A00}.states .r i{background:var(--ok)}
/* architecture */
.arch{display:grid;grid-template-columns:1fr 40px 1.3fr 40px 1fr;align-items:stretch;gap:0}
.node{background:var(--tile);border-radius:24px;padding:24px 22px;border:1px solid var(--line)}
.sec.t .node{background:var(--page)}
.node.core{background:var(--black);color:var(--black-ink);border-color:var(--black)}
.node.core small,.node.core li{color:var(--black-sub)}
.node b{display:block;font-stretch:112%;font-weight:700;font-size:19px;margin-bottom:6px}
.node small{display:block;color:var(--sub);font-size:14px}
.node ul{margin:12px 0 0;padding-left:18px;font-size:14.5px;color:var(--sub);display:grid;gap:4px}
.link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--sub);font-size:11px;text-align:center}
.link::before{content:"";width:100%;height:1.5px;background:var(--sub)}
.link::after{content:"";width:0;height:0;border-left:6px solid var(--sub);border-top:4px solid transparent;border-bottom:4px solid transparent;margin-top:-7px;align-self:flex-end}
.side{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.chips span{background:var(--tile);border:1px solid var(--line);border-radius:999px;padding:10px 18px;font-weight:600}
.sec.t .chips span{background:var(--page)}
/* platform mocks */
.mock{background:#fff;color:#000;border-radius:22px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.14);font-size:14px}
.mock h4{margin:0 0 14px;font-size:17px;font-stretch:112%;font-weight:700}
.mock .row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px 0;border-bottom:1px solid #E2E5E3;align-items:center}
.mock .row:last-child{border-bottom:0}
.mock small{display:block;color:#5E6361;font-size:12px}
.mock .n{font-variant-numeric:tabular-nums;font-weight:700}
.mock .warn{font-size:12px;font-weight:600;color:#8A5A00;background:#FFF1D6;padding:3px 9px;border-radius:999px;white-space:nowrap}
.mock .add{font-size:12px;font-weight:600;color:#fff;background:#000;padding:4px 10px;border-radius:999px;white-space:nowrap}
.mock .rule{padding:12px 14px;background:#F3F4F2;border-radius:12px;margin-bottom:8px}
.mock .rule b{display:block;font-size:13px;margin-bottom:2px}
.mock .bar{height:6px;border-radius:3px;background:#E2E5E3;margin-top:6px;overflow:hidden}
.mock .bar i{display:block;height:100%;background:#2F5FD0}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding-block:40px}
.feat+.feat{border-top:1px solid var(--line)}
.sec.d .feat+.feat{border-color:var(--black-line)}
.feat h3{font-size:clamp(28px,3.4vw,40px)}
.feat p{font-size:18px;margin:14px 0 0;max-width:40ch}
.feat .checks{grid-template-columns:1fr;margin-top:20px}
.feat .checks li{font-size:16px;padding-block:10px}
/* prose (legal, about) */
.prose{max-width:720px;margin:0 auto}
.prose h2{font-size:clamp(28px,3.6vw,40px);margin:0 0 20px;padding-top:24px}
.prose h3{font-size:19px;font-stretch:112%;font-weight:700;margin:30px 0 8px}
.prose p,.prose li{color:var(--sub);text-wrap:pretty}
.prose p{margin:0 0 14px}
.prose ul{padding-left:20px;margin:0 0 14px;display:grid;gap:6px}
.prose strong{color:var(--ink)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;margin:10px 0 20px}
.prose th,.prose td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{color:var(--ink)}
.toc{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.toc a{background:var(--tile);border-radius:999px;padding:10px 18px;font-weight:600;color:var(--ink)}
.toc a:hover{text-decoration:none;opacity:.8}
.lsec+.lsec{margin-top:64px;padding-top:40px;border-top:1px solid var(--line)}
.stamp{font-size:14px;color:var(--sub)}
.big-quote{font-size:clamp(26px,3.4vw,40px);font-stretch:112%;font-weight:700;letter-spacing:-.015em;line-height:1.2;text-wrap:balance;max-width:26ch;margin:0 auto;text-align:center}
.faqg+.faqg{margin-top:56px}
.faqg h2{font-size:clamp(24px,3vw,32px);max-width:820px;margin:0 auto 14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.two .box ul{margin:14px 0 0;padding-left:20px;color:var(--sub);display:grid;gap:8px}
.yes h3::before{content:"✓ ";color:var(--ok)}
.no h3::before{content:"✕ ";color:var(--err)}

@media (max-width:980px){
 .hub,.anat,.feat,.side,.two{grid-template-columns:1fr}
 .feat{gap:32px}
 .arch{grid-template-columns:1fr;gap:0}
 .link{height:44px;flex-direction:row}
 .link::before{width:1.5px;height:100%}
 .link::after{display:none}
 .use3{grid-template-columns:1fr}
}
@media (max-width:760px){
 .hubc{grid-template-columns:1fr}
 .hubc .im{height:160px;order:-1}
 .setup li{grid-template-columns:44px 1fr;gap:14px}
 .setup .tm{grid-column:2;justify-self:start;margin-top:0}
 .parts li{grid-template-columns:1fr;gap:4px}
}
.sec.t .hubc{background:var(--page)}
.hub.slim{grid-template-columns:repeat(3,1fr)}
.hub.slim .hubc{grid-template-columns:1fr;min-height:0}
.hub.slim .hubc .tx{padding:24px}
.hub.slim h3{font-size:21px}
@media (max-width:980px){.hub.slim{grid-template-columns:1fr}}
