/* beto.sh landing, next: Beto, and private AI for your company (docs/landing-plan.md).
   Light warm paper, one dark ink band, Betopia orange as glow and fill (never
   body text). Bengal Modern: one bilingual family, Anek Bangla, for English and
   Bangla alike (wide for headings, normal for text), on jute paper, with a
   textile palette: terracotta, jute gold, river green and indigo, and Betopia
   orange. The 3D Betos are drawn by js/stage.js into .stage
   boxes from one fixed canvas. */
:root{
  --paper:#F4ECDF; --cream:#EFE3CF; --sand:#E8DBC5; --white:#FFFBF4;
  --ink:#22264F; --ink-2:#2E336A; --slate:#454A75; --dim:#5D6186; --line:#E1D4BE; --line-2:#D1C1A6;
  --orange:#F79549; --orange-2:#ef7f2c; --orange-ink:#A8432E; --peach:#F5D9C6;
  --terra:#C8553D; --gold:#D9A441; --gold-soft:#F1E1BC; --river:#2E7D6B; --river-soft:#D3E7DF; --terra-soft:#F5D9C6;
  --display:'Sora','Anek Bangla',system-ui,sans-serif;
  --sans:'Sora','Anek Bangla',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'Sora','Anek Bangla',system-ui,sans-serif;
  --bn:'Anek Bangla',sans-serif;
  --max:1240px; --gutter:clamp(18px,4.5vw,48px); --r:26px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:17.5px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
:lang(bn),[lang="bn"]{font-family:var(--bn)}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:10px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;border-radius:10px;background:var(--ink);color:#fff}
.skip:focus{top:12px}
.beto-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}
.stage{position:relative;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
.stage .still{display:none;position:absolute;left:50%;bottom:6%;height:86%;width:auto;transform:translateX(-50%);pointer-events:none}
.stage.fallback .still,.no-webgl .stage .still{display:block}

/* type */
.kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:13.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terra)}
.kicker .dot{width:9px;height:9px;border-radius:2px;transform:rotate(45deg);background:var(--terra);box-shadow:0 0 0 4px var(--terra-soft)}
h1,h2,h3{font-family:var(--display);letter-spacing:-.035em;line-height:1.06}
h1{font-size:clamp(38px,4.9vw,70px);font-weight:700;margin-top:18px}
h2{font-size:clamp(29px,3.5vw,50px);font-weight:700;margin-top:14px}
h3{font-size:20px;font-weight:700;letter-spacing:-.005em;line-height:1.2;}
/* Highlighted words: gradient text, the hero's treatment, never a block behind the words. */
.mark{background:linear-gradient(100deg,var(--terra) 0%,#E8742F 55%,#D99A2B 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.tc{color:var(--terra)}
.lede{font-size:clamp(17px,1.5vw,20px);color:var(--slate);max-width:34em;margin-top:18px}
.head{max-width:820px;margin-bottom:clamp(36px,5vw,60px)}
.head.c{margin-left:auto;margin-right:auto;text-align:center}
.head.c .lede{margin-left:auto;margin-right:auto}
.section{padding:clamp(76px,10vw,136px) 0;position:relative}
.tint{background:var(--cream)}
/* The weave: a textile border along the top of the tinted sections. */
.tint::before,.weave{content:"";position:absolute;left:0;right:0;top:0;height:30px;opacity:.5;background:repeating-linear-gradient(45deg,transparent 0 13px,var(--terra) 13px 15px,transparent 15px 28px),repeating-linear-gradient(-45deg,transparent 0 13px,var(--gold) 13px 15px,transparent 15px 28px)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:700;font-size:16px;white-space:nowrap;transition:transform .15s,background .15s,box-shadow .15s;box-shadow:0 12px 26px -16px rgba(34,38,79,.7)}
.btn:hover{transform:translateY(-1px);background:var(--ink-2)}
.btn:active{transform:none}
.btn.ghost{background:transparent;color:var(--ink);border:2px solid var(--ink);box-shadow:none}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.lg{min-height:56px;padding:0 28px;font-size:17px}
.btn.sm{min-height:42px;padding:0 18px;font-size:15px}
.glass{background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);box-shadow:0 1px 0 rgba(15,23,41,.04),0 24px 50px -28px rgba(15,23,41,.35);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}

/* nav: a floating pill, readable over the dark hero and the light page alike */
.nav{position:sticky;top:0;z-index:50;padding:14px var(--gutter) 0;margin-bottom:-90px}
.nav-in{display:flex;align-items:center;gap:20px;min-height:62px;max-width:var(--max);margin:0 auto;padding:0 10px 0 22px;border-radius:999px;background:rgba(244,236,223,.9);border:1px solid rgba(255,255,255,.5);box-shadow:0 18px 40px -24px rgba(10,12,40,.6);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3)}
.nav.scrolled .nav-in{background:rgba(250,245,236,.94)}
.brand{display:inline-flex;align-items:center;min-height:44px}
.brand img{height:28px;width:auto}
.brand .logo-light{display:none}
.links{display:flex;gap:2px;margin-left:auto}
.links a{padding:10px 14px;border-radius:999px;font-size:15px;font-weight:600;color:var(--slate)}
.links a:hover{background:rgba(34,38,79,.07);color:var(--ink)}
.nav-cta{display:flex;align-items:center;gap:8px}
.menu-btn{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:#fff;position:relative}
.menu-btn i{position:absolute;left:13px;right:13px;height:2px;border-radius:2px;background:var(--ink);transition:transform .2s,top .2s}
.menu-btn i:first-child{top:17px}.menu-btn i:last-child{top:25px}
.menu-btn[aria-expanded="true"] i:first-child{top:21px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] i:last-child{top:21px;transform:rotate(-45deg)}

/* hero: a night scene in indigo and river green, gold light, a dot grid */
.hero{position:relative;min-height:max(100vh,720px);min-height:max(100svh,720px);display:flex;align-items:center;padding:120px 0 72px;color:#F6EEE0;overflow:hidden;background:linear-gradient(180deg,#15183a 0%,#1d2150 58%,#231e45 100%)}
/* No stacking context on .hero, so the console and chips can sit above the 3D canvas. */
.hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
/* Beto's own night: deep indigo, a warm light where he stands, a faint dot grid. */
.sky{position:absolute;inset:0;background:radial-gradient(90% 70% at var(--bx-page,70%) 92%,rgba(247,149,73,.2),transparent 60%),radial-gradient(70% 60% at 8% 0%,rgba(92,104,200,.28),transparent 70%)}
.grid{position:absolute;inset:0;background-image:radial-gradient(rgba(246,238,224,.14) 1px,transparent 1.2px);background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%);opacity:.5}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:28px;opacity:.35;background:repeating-linear-gradient(45deg,transparent 0 13px,var(--terra) 13px 15px,transparent 15px 28px),repeating-linear-gradient(-45deg,transparent 0 13px,var(--gold) 13px 15px,transparent 15px 28px)}
.hero-in{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;position:relative;width:100%;--bx:63%}
.hero-copy{grid-column:1;grid-row:1}
.hero .kicker{color:var(--gold)}
.hero .kicker .dot{background:var(--gold);box-shadow:0 0 0 4px rgba(217,164,65,.22)}
.hero h1{color:#F6EEE0}
.hero h1 .tc{color:#EE8B6E}
/* The agent-native accent: a slow gold-to-terracotta shimmer and a typing caret. */
.glowtext{background:linear-gradient(100deg,#F4C76A 0%,#F79549 30%,#EE8B6E 50%,#F4C76A 70%,#F79549 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite;filter:drop-shadow(0 6px 26px rgba(247,149,73,.35))}
@keyframes shimmer{to{background-position:-250% 0}}
.caret{display:inline-block;width:.07em;height:.82em;margin-left:.08em;vertical-align:-.06em;border-radius:3px;background:#F4C76A;box-shadow:0 0 18px rgba(244,199,106,.8);animation:blink 1.05s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.hero .lede{color:#CFD3E6}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn.gold{background:linear-gradient(135deg,#F4C76A,#F79549);color:#1b1e42;box-shadow:0 14px 34px -14px rgba(247,149,73,.8)}
.btn.gold:hover{filter:brightness(1.05);background:linear-gradient(135deg,#F4C76A,#F79549)}
.btn.line{background:rgba(246,238,224,.06);color:#F6EEE0;border:1.5px solid rgba(246,238,224,.45);box-shadow:none;backdrop-filter:blur(8px)}
.btn.line:hover{background:rgba(246,238,224,.14)}
.chips-row{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.chips-row li{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:999px;background:rgba(246,238,224,.07);border:1px solid rgba(246,238,224,.16);font-size:14.5px;font-weight:500;color:#E3E0E8}
.chips-row svg{width:16px;height:16px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Beto's stage: his visor's warm light behind him, a lit floor in perspective
   and a pedestal under his feet. --bx is where Beto stands in the stage box. */
.hero-stage{position:relative;grid-column:2;grid-row:1;height:clamp(500px,52vw,660px)}
.hero-stage .stage{position:absolute;inset:0 0 0 26%}
.halo{position:absolute;left:var(--bx);top:44%;width:min(640px,115%);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(247,149,73,.5),rgba(244,199,106,.16) 45%,transparent 72%);animation:breathe 6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.75;transform:translate(-50%,-50%) scale(.94)}}
.floor{position:absolute;left:var(--bx);bottom:2%;width:170%;height:44%;transform:translateX(-50%) perspective(380px) rotateX(62deg);transform-origin:50% 100%;background-image:linear-gradient(rgba(244,199,106,.6) 1.5px,transparent 1.5px),linear-gradient(90deg,rgba(244,199,106,.6) 1.5px,transparent 1.5px);background-size:46px 46px;background-position:center bottom;-webkit-mask-image:radial-gradient(60% 100% at 50% 100%,#000 35%,transparent 100%);mask-image:radial-gradient(60% 100% at 50% 100%,#000 35%,transparent 100%);opacity:.75}
.pedestal{position:absolute;left:var(--bx);bottom:9%;width:46%;height:60px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(244,199,106,.7),rgba(247,149,73,.25) 55%,transparent 75%);filter:blur(3px)}
.say{position:absolute;left:var(--bx);top:4%;transform:translateX(-50%) translateY(6px);max-width:260px;padding:10px 16px;border-radius:18px;background:#F6EEE0;color:var(--ink);font-size:15px;line-height:1.35;text-align:center;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:45}
.say.on{opacity:1;transform:translateX(-50%)}
.voice{position:absolute;right:0;bottom:24%;z-index:44;display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:999px;background:rgba(20,24,58,.55);border:1px solid rgba(246,238,224,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:13.5px;color:#E3E0E8}
.bars{display:flex;gap:3px;align-items:center;height:18px}
.bars i{width:3px;border-radius:3px;background:#2fb391;animation:eq 1s ease-in-out infinite}
.bars i:nth-child(1){height:6px}.bars i:nth-child(2){height:14px;animation-delay:-.2s}.bars i:nth-child(3){height:18px;animation-delay:-.5s}.bars i:nth-child(4){height:10px;animation-delay:-.7s}.bars i:nth-child(5){height:6px;animation-delay:-.3s}
@keyframes eq{50%{transform:scaleY(.35)}}

/* the agent console: a sample company AI at work, step by step */
/* It shares Beto's grid cell, at his lower left, so it never covers the copy. */
.console{position:relative;grid-column:2;grid-row:1;align-self:end;justify-self:start;margin-bottom:6%;z-index:44;width:min(330px,56%);padding:14px 16px 16px;border-radius:22px;background:rgba(18,22,54,.62);border:1px solid rgba(246,238,224,.16);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);color:#E8E5EE;font-size:14px;line-height:1.4;transition:opacity .35s}
.console.fade{opacity:0}
.c-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px}
.ci{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:var(--c,#F79549);color:#fff;font-style:normal;font-size:12px}
.c-head small{margin-left:auto;font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9da3c4}
.c-q{margin-top:10px;padding:8px 11px;border-radius:12px 12px 12px 4px;background:rgba(246,238,224,.09);color:#F6EEE0}
.c-steps{list-style:none;margin:10px 0 0;display:grid;gap:6px;font-size:13px;color:#B9BED9}
.c-steps li{display:flex;align-items:center;gap:8px;animation:stepin .3s ease-out}
.c-steps li::before{content:"";flex-shrink:0;width:14px;height:14px;border-radius:50%;border:2px solid rgba(246,238,224,.25);border-top-color:#F4C76A;animation:spin .8s linear infinite}
.c-steps li.ok::before{animation:none;border:0;background:#2fb391 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/10px no-repeat}
.c-steps li.ok{color:#DADDEE}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes stepin{from{opacity:0;transform:translateY(4px)}}
.c-a{margin-top:10px;padding:9px 12px;border-radius:12px 12px 4px 12px;background:linear-gradient(135deg,rgba(244,199,106,.95),rgba(247,149,73,.95));color:#1b1e42;font-weight:600;min-height:0}
.c-a:empty{display:none}
.scroll-cue{position:absolute;left:50%;bottom:44px;width:26px;height:42px;margin-left:-13px;border-radius:14px;border:1.5px solid rgba(246,238,224,.4)}
.scroll-cue i{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#F4C76A;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{60%{transform:translateY(12px);opacity:0}}

/* meet Beto */
.meet{padding-top:clamp(40px,6vw,80px)}
.meet-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,64px);align-items:center;padding:clamp(24px,4vw,48px);border-radius:36px;background:linear-gradient(135deg,#fff 0%,var(--cream) 100%);border:1px solid var(--line);box-shadow:0 40px 80px -60px rgba(15,23,41,.45)}
.meet .head{margin-bottom:24px}
.meet-stage{height:clamp(320px,34vw,460px)}
.asks{display:flex;flex-wrap:wrap;gap:8px}
.ask{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);background:#fff;font-size:15px;font-weight:500;color:var(--ink-2);transition:background .15s,border-color .15s,transform .15s}
.ask:hover{background:var(--peach);border-color:#f2c9a4;transform:translateY(-1px)}
.ask::before{content:"↗";margin-right:8px;color:var(--orange-ink)}
.facts{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}
.facts li{padding:16px 18px;border-radius:20px;background:rgba(255,255,255,.75);border:1px solid var(--line)}
.facts b{display:block;font-family:var(--display);font-size:26px;font-weight:760;letter-spacing:-.01em;color:var(--terra)}
.facts li:nth-child(2) b{color:var(--river)}.facts li:nth-child(3) b{color:var(--ink)}
.facts span{display:block;font-size:14px;color:var(--dim);margin-top:2px;line-height:1.35}

/* the offer */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.plan-card{display:flex;flex-direction:column;padding:30px 28px;border-radius:30px;background:var(--white);border:1px solid var(--line);transition:transform .2s,box-shadow .2s}
.plan-card:hover{transform:translateY(-3px);box-shadow:0 30px 60px -40px rgba(15,23,41,.45)}
.plan-card.hot{background:radial-gradient(130% 90% at 90% 0%,#2E7D6B 0,#22264F 62%);color:#F6EEE0;border-color:transparent;box-shadow:0 40px 80px -40px rgba(34,38,79,.75)}
.plan-card .pk{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-ink)}
.plan-card.hot .pk{color:var(--gold)}
.plan-card h3{font-size:28px;margin-top:8px}
.plan-card .pd{font-size:16px;color:var(--dim);margin-top:10px}
.plan-card.hot .pd{color:#c9cfdb}
.plan-card ul{list-style:none;display:grid;gap:10px;margin:22px 0 28px;font-size:15.5px}
.plan-card li{display:flex;gap:10px;align-items:flex-start}
.plan-card li::before{content:"";flex-shrink:0;width:18px;height:18px;margin-top:3px;border-radius:50%;background:var(--peach) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b4500f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/11px no-repeat}
.plan-card.hot li::before{background:rgba(247,149,73,.22) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fbbf8a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/11px no-repeat}
.plan-card .btn{margin-top:auto}
.plan-card.hot .btn{background:var(--gold);color:var(--ink);border:0}
.plan-card.hot .btn:hover{background:#e6b55a}

/* proof band */
.proof{padding:0 0 clamp(40px,6vw,72px)}
.proof-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(22px,3vw,30px) clamp(22px,3vw,36px);border-radius:var(--r);background:var(--white);border:1px solid var(--line);box-shadow:0 24px 50px -40px rgba(15,23,41,.4)}
.proof-in p{font-size:clamp(16px,1.4vw,19px);color:var(--slate);max-width:46em}
.proof-in b{color:var(--ink)}

/* what it does */
.does-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:end}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{padding:24px;border-radius:var(--r);background:var(--white);border:1px solid var(--line);transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-3px);border-color:#e6d6c4;box-shadow:0 30px 50px -36px rgba(15,23,41,.45)}
.card .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--terra-soft);margin-bottom:18px;--k:var(--terra)}
.card:nth-child(3n+2) .ic{background:var(--gold-soft);--k:#8a6114}
.card:nth-child(3n) .ic{background:var(--river-soft);--k:var(--river)}
.card svg{width:22px;height:22px;fill:none;stroke:var(--k);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.card p{font-size:15.5px;color:var(--dim);margin-top:8px}
.side-stage{height:440px}

/* channels */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;background:var(--sand);isolation:isolate}
.tile video{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.tile:hover video{transform:scale(1.04)}
.tile figcaption{position:absolute;left:10px;right:10px;bottom:10px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.tile b{display:block;font-family:var(--display);font-size:15px;font-weight:600;letter-spacing:-.01em}
.tile span{display:block;font-size:14px;color:var(--dim);margin-top:2px;line-height:1.35}

/* samples */
.samples{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.sample{display:flex;flex-direction:column;gap:4px;padding:22px;border-radius:var(--r);background:var(--white);border:1px solid var(--line);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.sample::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:var(--c);opacity:.09;transition:transform .3s}
.sample:hover{transform:translateY(-3px);box-shadow:0 30px 50px -34px rgba(15,23,41,.45)}
.sample:hover::after{transform:scale(1.35)}
.sample .si{width:44px;height:44px;border-radius:13px;background:var(--c);display:grid;place-items:center;margin-bottom:12px}
.sample svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sample b{font-family:var(--display);font-size:20px;font-weight:600}
.sample small{font-size:14px;color:var(--dim)}
.sample q{display:block;margin:16px 0 18px;padding:10px 13px;border-radius:14px 14px 4px 14px;background:var(--sand);font-size:15px;color:var(--ink-2);quotes:none}
.sample .go{margin-top:auto;font-size:15px;font-weight:600;color:var(--ink)}

/* how */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;left:12%;right:12%;top:34px;height:2px;background:repeating-linear-gradient(90deg,var(--line-2) 0 8px,transparent 8px 16px)}
.step{position:relative;padding:22px;border-radius:var(--r);background:rgba(255,255,255,.7);border:1px solid var(--line)}
.step .n{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--terra);color:#fff;font-family:var(--display);font-size:16px;font-weight:700;margin-bottom:16px;box-shadow:0 0 0 6px var(--cream)}
.step:nth-child(2) .n{background:var(--gold);color:var(--ink)}.step:nth-child(3) .n{background:var(--river)}.step:nth-child(4) .n{background:var(--ink)}
.step p{font-size:15.5px;color:var(--dim);margin-top:8px}

/* private (dark band) */
.dark{background:radial-gradient(120% 90% at 88% 8%,#2E7D6B 0,#22264F 58%);color:#F6EEE0;border-radius:clamp(0px,3vw,40px);margin:0 clamp(0px,2vw,24px)}
.dark .lede{color:#c9cfdb}
.dark .kicker{color:var(--gold)}
.dark .kicker .dot{background:var(--gold);box-shadow:0 0 0 4px rgba(217,164,65,.25)}
.dark .mark{background:linear-gradient(100deg,#F4C76A,#F79549 60%,#EE8B6E);-webkit-background-clip:text;background-clip:text;color:transparent}
.private{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:center}
.rules{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rules li{padding:20px 22px;border-radius:22px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.rules b{display:block;font-family:var(--display);font-size:16px;font-weight:600;color:#fff}
.rules span{display:block;font-size:15px;color:#c9cfdb;margin-top:6px}
.dark-stage{height:460px}

/* industries */
.inds{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:880px;margin:0 auto}
.inds li{padding:12px 20px;border-radius:999px;border:1px solid var(--line-2);background:var(--white);font-weight:500;font-size:16px;transition:background .2s,border-color .2s}
.inds li:hover{background:var(--gold-soft);border-color:var(--gold)}

/* faq */
.faq{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,72px);align-items:start}
.faq .head{margin-bottom:0;position:sticky;top:100px}
.qa{display:grid;gap:10px}
.qa details{border-radius:20px;background:var(--white);border:1px solid var(--line);transition:box-shadow .2s}
.qa details[open]{box-shadow:0 24px 40px -32px rgba(15,23,41,.4)}
.qa summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;font-weight:600;font-size:17px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--sand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f1729' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/14px no-repeat;transition:transform .2s}
.qa details[open] summary::after{transform:rotate(45deg)}
.qa p{padding:0 22px 20px;color:var(--dim);font-size:16px}

/* plan + form */
.lf-sec{--lf-card:rgba(255,251,244,.92);--lf-ink:#22264F;--lf-dim:#5D6186;--lf-line:#D1C1A6;--lf-field:#F8F1E5;--lf-accent:#22264F;--lf-on-accent:#F4ECDF;--lf-hint:#A8432E;--lf-tick:#D9A441;--lf-radius:28px;--lf-field-radius:14px}
.plan{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,72px);align-items:start}
.plan-copy .btn{margin-top:26px}
.cta-stage{height:300px;margin-top:8px}
.lead-card{position:relative}

/* footer */
.foot{padding:48px 0 calc(48px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.foot-in{display:flex;justify-content:space-between;gap:32px;align-items:flex-start}
.foot p{max-width:440px;margin-top:14px;color:var(--dim);font-size:15px}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:15px;font-weight:500}
.foot nav a:hover{color:var(--orange-ink)}

/* Ask Beto */
.launcher{position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:55;display:flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:600;font-size:15px;box-shadow:0 18px 40px -16px rgba(15,23,41,.7);transition:transform .2s}
.launcher:hover{transform:translateY(-2px)}
.launcher img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#fff;animation:nod 4s ease-in-out infinite}
@keyframes nod{0%,80%,100%{transform:none}86%{transform:translateY(-3px) rotate(-6deg)}92%{transform:translateY(0) rotate(4deg)}}
.chatbox{position:fixed;inset:0;z-index:60;background:rgba(15,23,41,.28);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:flex-end;padding:22px;animation:fade .2s}
.chatbox[hidden]{display:none}
.chatbox-in{width:min(430px,100%);height:min(720px,calc(100vh - 44px));height:min(720px,calc(100dvh - 44px));border-radius:26px;overflow:hidden;background:#fff;display:flex;flex-direction:column;box-shadow:0 40px 80px -30px rgba(15,23,41,.6);animation:rise .28s cubic-bezier(.2,.8,.2,1)}
.chatbox-bar{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 18px;border-bottom:1px solid var(--line);background:var(--paper)}
.chatbox-bar b{font-family:var(--display);font-size:15px}
.chatbox-bar a{margin-left:auto;font-size:14px;font-weight:600;color:var(--orange-ink)}
.chatbox-bar .x{width:40px;height:40px;border-radius:50%;display:grid;place-items:center}
.chatbox-bar .x:hover{background:var(--sand)}
.chatbox-bar svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.chatbox iframe{flex:1;width:100%;border:0}
@keyframes fade{from{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(24px) scale(.98)}}

/* the phone's sticky bar */
.dockbar{display:none}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.halo,.glowtext,.caret,.bars i,.scroll-cue i,.launcher img{animation:none}}

/* ---- tablet ---- */
@media (max-width:1080px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .does-grid{grid-template-columns:minmax(0,1fr) 220px}
  .tiles,.samples{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plans{grid-template-columns:minmax(0,1fr);max-width:560px;margin:0 auto}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps::before{display:none}
  .links a{padding:10px}
}
@media (max-width:940px){
  .links{position:fixed;inset:72px 12px auto 12px;flex-direction:column;gap:2px;padding:10px;border-radius:22px;background:rgba(255,255,255,.96);border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(15,23,41,.5);backdrop-filter:blur(14px);opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s,transform .2s}
  .links.open{opacity:1;transform:none;pointer-events:auto}
  .links a{padding:14px 16px;font-size:17px}
  .menu-btn{display:block}
  .hide-sm{display:none}
  .hero{min-height:0;padding:110px 0 64px}
  .hero-in{grid-template-columns:minmax(0,1fr);--bx:58%}
  .hero-stage{grid-column:1;grid-row:2;height:min(80vw,520px);margin-top:8px}
  .hero-stage .stage{inset:0 6% 0 22%}
  .console{grid-column:1;grid-row:2;width:min(360px,46%)}
  .nav-cta{margin-left:auto}
  .scroll-cue{display:none}
  .nav{margin-bottom:-82px}
  .does-grid{grid-template-columns:minmax(0,1fr)}
  .side-stage{display:none}
  .private{grid-template-columns:minmax(0,1fr)}
  .meet-in{grid-template-columns:minmax(0,1fr)}
  .meet-stage{height:300px;order:2}
  .faq,.plan{grid-template-columns:minmax(0,1fr)}
  .faq .head{position:static}
  .proof-in{flex-direction:column;align-items:flex-start}
  .cta-stage{height:240px}
}
/* ---- upright big screens: a 1080x1920 signage kiosk, a tablet held upright ----
   The hero fills the screen: headline on top, Beto large under it with the
   console at his side, and the chat opens as a tall panel, not a phone card. */
@media (orientation:portrait) and (min-width:700px) and (min-height:1000px){
  .hero{min-height:max(100vh,720px);min-height:max(100svh,720px);padding:150px 0 96px;align-items:stretch}
  .hero-in{grid-template-columns:minmax(0,1fr);align-content:space-between;gap:20px;--bx:58%}
  .hero-stage{grid-column:1;grid-row:2}
  .hero h1{font-size:clamp(56px,8vw,96px)}
  .hero .lede{font-size:clamp(18px,2.1vw,24px);max-width:34em}
  .hero-stage{height:min(90vw,56vh,1000px);margin-top:0}
  .hero-stage .stage{inset:0 6% 0 22%}
  .console{grid-column:1;grid-row:2;margin-bottom:8%;width:min(420px,44%);font-size:16px}
  .voice{right:4%;bottom:26%}
  .scroll-cue{display:block}
  .chatbox-in{width:min(820px,100%);height:min(1240px,calc(100vh - 120px))}
  /* The two main buttons stay on screen once the hero's own scroll away. */
  .launcher{display:none}
  .dockbar{position:fixed;left:50%;bottom:28px;z-index:55;display:flex;gap:12px;width:min(760px,calc(100% - 64px));padding:10px;border-radius:999px;background:rgba(255,251,244,.92);border:1px solid var(--line);box-shadow:0 24px 50px -20px rgba(34,38,79,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translate(-50%,160%);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
  .dockbar.on{transform:translateX(-50%)}
  .dockbar .btn{flex:1;min-height:64px;font-size:19px}
  .foot{padding-bottom:140px}
}
/* ---- phone ---- */
@media (max-width:620px){
  body{font-size:17px}
  .nav-in{min-height:64px;gap:12px}
  .links{inset:64px 10px auto 10px}
  /* A clean header: the logo and the menu, on the night until the page scrolls;
     the main buttons live in the bar at the bottom. */
  .nav{padding:10px 10px 0;margin-bottom:-76px}
  .nav-in{min-height:56px;padding:0 6px 0 16px;transition:background .25s,border-color .25s,box-shadow .25s}
  .nav-cta .btn{display:none}
  .nav:not(.scrolled) .nav-in{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav:not(.scrolled) .brand .logo-dark{display:none}
  .nav:not(.scrolled) .brand .logo-light{display:block}
  .nav:not(.scrolled) .menu-btn{background:rgba(246,238,224,.1);border-color:rgba(246,238,224,.3)}
  .nav:not(.scrolled) .menu-btn i{background:#F6EEE0}
  /* The headline and buttons first, then Beto on his stage, then the console
     under him on the copy's left edge. */
  .hero{padding:92px 0 36px}
  .hero-in{--bx:50%;gap:0}
  .hero-stage{grid-row:2;height:min(80vw,310px);margin:14px 0 0}
  .hero-stage .stage{inset:0 10%}
  .pedestal{width:58%;bottom:6%}
  .voice,.chips-row{display:none}
  .console{grid-row:3;justify-self:stretch;width:auto;margin:-18px 0 0;padding:12px 14px 14px;border-radius:18px;font-size:13.5px}
  .c-steps{font-size:13px}
  .c-a{font-size:13.5px}
  .say{top:2%}
  h1{font-size:clamp(32px,9vw,40px);margin-top:12px}
  .ctas{margin-top:24px;flex-direction:column;gap:10px}
  .ctas .btn{width:100%;min-height:52px;font-size:16px}
  .chips-row{gap:8px;margin-top:20px}
  .chips-row li{min-height:34px;font-size:13.5px;padding:0 12px}
  .cards,.samples,.rules{grid-template-columns:minmax(0,1fr)}
  .meet-in{padding:22px;border-radius:28px}
  .meet-stage{height:260px}
  .facts{grid-template-columns:minmax(0,1fr)}
  .facts li{display:flex;align-items:baseline;gap:10px}
  .facts b{font-size:20px}
  .plan-card{padding:24px 22px}
  .cta-stage{height:190px;margin-top:0}
  .tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter) 6px;scrollbar-width:none}
  .tiles::-webkit-scrollbar{display:none}
  .tile{flex:0 0 76%;scroll-snap-align:center}
  .steps{grid-template-columns:minmax(0,1fr)}
  .card,.sample,.step{padding:20px}
  .dark{border-radius:28px;margin:0 8px}
  .launcher{display:none}
  .dockbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:55;display:flex;gap:8px;padding:8px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid var(--line);box-shadow:0 18px 40px -18px rgba(15,23,41,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateY(140%);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
  .dockbar.on{transform:none}
  .dockbar .btn{flex:1;min-height:48px}
  .foot{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
  .chatbox{padding:0}
  .chatbox-in{width:100%;height:100vh;height:100dvh;border-radius:0}
}
