/* Reference direction: architectural darkness, cyan glass, luminous controls. */
:root{--bg:#02070d;--dark:#02070d;--paper:#f0f6fa;--text:#f0f6fa;--muted:#a6bac7;--line:#284958;--mint:#42ecd3;--cyan:#09b7f4;--glass:linear-gradient(135deg,rgba(107,143,158,.24),rgba(7,26,38,.91) 35%,rgba(5,30,42,.88) 78%,rgba(15,105,119,.32));--glass-edge:rgba(123,189,210,.3)}
html{background:var(--bg)}
body{background:var(--bg);color:var(--paper);isolation:isolate}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('/assets/architecture.svg') center bottom/cover no-repeat,radial-gradient(ellipse at 50% 80%,#071923 0%,#02070d 70%)}
.site-header{background:rgba(2,7,13,.55);border:0;backdrop-filter:blur(16px)}
.nav{min-height:92px}.nav nav>a:not(.button),.menu{background:rgba(10,30,43,.65);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 #ffffff0d;color:var(--paper)}
.nav nav>a:not(.button):is(:hover,:focus-visible){background:#123e50;color:#75f7e8;border-color:var(--mint)}
.button,.button.small,.nav nav>a.button{border-radius:12px;border:1px solid #75e8ed;background:linear-gradient(105deg,#45efd3,#23dce7 55%,#049ff2);color:#021822;box-shadow:inset 0 1px 1px #dfffffb3,0 6px 26px #08bfd329;transition:box-shadow .2s,background .2s}
.button:hover,.nav nav>a.button:is(:hover,:focus-visible){background:linear-gradient(105deg,#84ffe9,#66ecf5 55%,#37bcff);border-color:#adffff;box-shadow:0 6px 32px #16dbe14d}
a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:5px}
.hero>.hero-brand .brand{transform:none;font-weight:600;letter-spacing:-.025em}.hero>.hero-brand .brand>span{text-shadow:0 2px 14px #06121d}.hero>.hero-brand .brand img{filter:drop-shadow(0 0 12px #06d7d94d)}
.hero .campaign-visual{background:transparent}.hero .campaign-canvas{mix-blend-mode:screen}.hero .campaign-poster{mix-blend-mode:screen}
.hero .campaign-canvas,.hero .campaign-poster{mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 82%,transparent)}
h1,h2,h3{color:var(--paper)}h2{font-size:clamp(34px,4.3vw,62px);line-height:1.1}
.hero-copy{text-shadow:0 2px 18px #02070d}.hero .lede{color:var(--paper)}
.product{padding-block:90px 110px}.product-tabs{gap:10px;margin-bottom:26px}.product-tabs button{background:rgba(5,24,36,.85);border:1px solid var(--glass-edge);border-radius:10px;color:var(--muted);transition:background .2s,color .2s}
.product-tabs button:hover{background:#123747;color:var(--paper)}.product-tabs button[aria-selected=true]{background:linear-gradient(110deg,#123e49,#0d2b40);color:#73f8e6;border-color:#38bdbb;box-shadow:inset 0 1px 0 #95fce84d,0 0 22px #0ccbd315}
.product-panel{padding:18px;background:var(--glass);border:1px solid var(--glass-edge);border-radius:24px;box-shadow:inset 0 1px 1px #d1f4ff38,0 28px 80px #0008;overflow:hidden}.screen-header{padding:4px 8px 20px;color:var(--muted)}.product-panel>img{border-radius:12px}
.control{padding-block:75px 110px}.control-intro{max-width:800px}.control-details{gap:22px}.control-details article,.control-details article:first-child{background:var(--glass);border:1px solid var(--glass-edge);border-radius:22px;padding:32px;text-align:left;box-shadow:inset 0 1px 1px #d1f4ff26,0 20px 50px #0005}.control-details h3{font-size:25px;line-height:1.2}.control-details p{color:var(--muted);font-size:16px;line-height:1.65}
.integrations{padding-block:70px 95px;background:transparent}.integration-layout h2{max-width:800px;margin:0 auto 42px}.integration-layout ul{gap:14px;max-width:1000px}.integration-layout li{background:rgba(7,28,40,.78);border:1px solid #254858;border-radius:12px;padding:18px 24px;font-size:19px;box-shadow:inset 0 1px 0 #bceaff0d}
.commercial{margin-block:35px 100px;padding:65px 45px;background:var(--glass);border:1px solid var(--glass-edge);border-radius:28px;box-shadow:inset 0 1px 1px #d1f4ff4d,0 30px 80px #0006}.commercial-action{margin-top:35px}.commercial-action .button{margin-top:24px}.commercial-action small{color:var(--muted)}
footer{background:rgba(3,14,23,.8);border-top:1px solid #193443;padding-block:55px 30px}footer a:hover{color:var(--mint)}.footer-bottom{color:var(--muted)}
.campaign-motion{background:#061a27d9;border-color:var(--glass-edge);border-radius:10px;color:var(--muted);backdrop-filter:blur(12px)}
.legal-nav{background:#03111ee6;border-color:var(--glass-edge)}.legal-main{margin:50px auto;padding:50px 42px;max-width:900px;background:var(--glass);border:1px solid var(--glass-edge);border-radius:24px;box-shadow:0 30px 80px #0006}.legal-main a,.legal-kicker{color:var(--mint)}.legal-main p,.legal-main li{color:var(--muted)}.legal-main h1,.legal-main h2,.legal-main h3{color:var(--paper)}
@media(max-width:800px){.nav{min-height:76px}.control-details{gap:18px}.commercial{padding:40px 24px}.legal-main{margin:25px 16px;padding:30px 22px}.product-panel{padding:10px;border-radius:16px}.screen-header{padding:7px 4px 16px}.control-details article,.control-details article:first-child{padding:26px}.integration-layout li{font-size:16px;padding:14px 18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Keep the architectural environment visible behind every section. */
body{background-image:url('/assets/architecture.svg'),radial-gradient(ellipse at 50% 80%,#071923 0%,#02070d 70%);background-position:center bottom;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}
body:before{display:none}
.hero>.hero-brand{top:12px}
@media(max-width:700px){.hero>.hero-brand{top:24px}}

/* Supplied operating-loop artwork, with a readable small-screen equivalent. */
.operating-diagram{padding-block:55px 80px}
.operating-diagram-frame{margin:0;padding:10px;border:1px solid var(--glass-edge);border-radius:24px;background:var(--glass);box-shadow:inset 0 1px 1px #d1f4ff38,0 24px 70px #0006;overflow:hidden}
.operating-diagram-frame img{display:block;width:100%;height:auto;border-radius:16px}
.operating-mobile{display:none}
@media(max-width:1000px){
  .operating-diagram-frame{display:none}
  .operating-mobile{display:block;width:100%;max-width:620px;margin-inline:auto;padding-inline:16px;box-sizing:border-box}
  .operating-mobile h2{text-align:center;margin-bottom:28px;padding-inline:8px}
  .operating-mobile ol{list-style:none;counter-reset:loop;position:relative;margin:0;padding:0 8px 0 44px;border-left:1px solid #32d6e7;box-sizing:border-box}
  .operating-mobile li{counter-increment:loop;position:relative;margin:0 0 14px;padding:20px;background:var(--glass);border:1px solid var(--glass-edge);border-radius:18px;box-sizing:border-box;max-width:100%}
  .operating-mobile li:before{content:counter(loop);position:absolute;left:-36px;top:20px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#61dcf6;color:#031722;font-weight:750;font-size:13px;box-shadow:0 0 16px #09c7dd40}
  .operating-mobile h3{font-size:clamp(18px,5vw,22px);margin-bottom:8px}
  .operating-mobile p{font-size:15px;line-height:1.55}
  .loop-feedback{text-align:center;color:var(--mint);padding-top:12px;padding-inline:8px}
  .operating-diagram{padding-block:40px 65px}
  .operating-diagram .panel-scroll{padding-inline:4px;box-sizing:border-box}
}
@media(max-width:420px){
  .operating-mobile{padding-inline:14px}
  .operating-mobile ol{padding:0 6px 0 40px}
  .operating-mobile li{padding:16px}
  .operating-mobile li:before{left:-34px;width:24px;height:24px;font-size:12px;top:18px}
}

/* Opening explanation with the live campaign circuit. */
.intro-hero{padding:72px 0 85px;min-height:700px;text-align:center}
.intro-hero>.hero-brand{position:static;transform:none;margin:0 auto 28px;display:inline-flex}
.intro-hero .brand{font-size:min(clamp(34px,4vw,54px),5.9vw);font-weight:600;letter-spacing:-.025em}
.intro-hero .brand img{filter:drop-shadow(0 0 12px #06d7d94d)}
.intro-copy{max-width:950px;margin-inline:auto;margin-block:0}
.intro-copy h1{font-size:clamp(38px,5vw,70px);font-weight:750;line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
.intro-copy p{max-width:790px;margin:28px auto 0;font-size:clamp(17px,1.5vw,21px);font-weight:400;line-height:1.65;color:var(--muted);text-wrap:pretty}
.intro-copy p+p{margin-top:18px}.intro-copy>.button{margin-top:96px}
.closing-demo h2{font-size:clamp(42px,4.8vw,74px);font-weight:780;line-height:1.06;letter-spacing:-.025em}.closing-demo h2 .accent{color:inherit}
@media(max-width:700px){.intro-hero{padding:40px 0 60px;min-height:0}.intro-hero>.hero-brand{margin-bottom:28px}.intro-copy h1{font-size:clamp(35px,8vw,48px)}.intro-copy p{font-size:17px}.closing-demo h2{font-size:clamp(35px,8.2vw,51px)}}

/* One continuous navigation surface, with a blended demo end. */
.site-header{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.site-header .nav{width:100%;max-width:none;min-height:88px;padding:0;gap:0}
.site-header .nav nav{width:100%;gap:0;align-items:stretch}
.site-header .nav nav>a,.site-header .nav nav>a.button{flex:1;min-height:88px;padding:22px 16px;border:0;border-radius:0;box-shadow:none;background:transparent;text-align:center}
.site-header .nav nav>a:not(.button){color:var(--paper)}
.site-header .nav nav>a.button{color:#021822;font-weight:750;flex:1.35}
.site-header .nav nav>a:not(.button):is(:hover,:focus-visible){background:#5ee8ed1a;color:#b5fff5;border:0;box-shadow:none}
.site-header .nav nav>a.button:is(:hover,:focus-visible){background:#d6fffa26;color:#021822;border:0;box-shadow:none}
.site-header .nav nav>a:focus-visible{outline-offset:-5px}
@media(max-width:800px){.site-header .nav{min-height:72px;padding:12px 20px}.site-header .nav nav{flex-direction:column;padding:8px 0}.site-header .nav nav>a,.site-header .nav nav>a.button{min-height:54px;padding:16px;justify-content:center;flex:auto}.site-header:has(nav.open){background:linear-gradient(180deg,#04101a,#082330 65%,#147c87 85%,#21cfc8)}.site-header .menu{border:0;background:#07192399;border-radius:8px;box-shadow:none}}

/* Blend the live scene into the same backdrop as the surrounding page (c951e64c closing look). */
.hero.closing-demo{isolation:auto;background:transparent;border:0;box-shadow:none}
.closing-demo .campaign-visual{isolation:isolate;background:transparent;border:0;box-shadow:none;z-index:0;pointer-events:none}
.closing-demo .campaign-canvas,.closing-demo .campaign-poster{border:0;border-radius:0;box-shadow:none;mix-blend-mode:screen;mask-image:none}
.closing-demo .campaign-poster{position:absolute;inset:0;z-index:1;opacity:1;visibility:visible;transition:opacity .4s ease,visibility 0s linear 0s}
.closing-demo .campaign-canvas{position:absolute;inset:0;z-index:0;opacity:1}
.closing-demo .campaign-canvas canvas{display:block;width:100%;height:100%;transform:translateZ(0)}
/* Poster stays fully opaque until the first good WebGL frame — no black hole mid-glide. */
.closing-demo .campaign-visual:not(.is-ready) .campaign-poster{
  opacity:1 !important;
  visibility:visible !important;
  transition:none;
  pointer-events:none;
}
.intro-hero .campaign-visual.is-ready .campaign-poster{opacity:0;visibility:hidden;transition:opacity .4s ease,visibility 0s linear .4s;pointer-events:none}
.closing-demo .campaign-visual,
.closing-demo .campaign-canvas{background:transparent}

/* A darker, longer navigation blend with consistent high-contrast labels. */
/* Color only — background/blur set on the fixed .site-header rule above. */
.site-header .nav nav>a,.site-header .nav nav>a.button{color:#f2f8fc}
.site-header .nav nav>a.button:is(:hover,:focus-visible){background:#b8f6ff14;color:#fff}
.site-header .nav nav>a:not(.button):is(:hover,:focus-visible){background:#90e9f012;color:#fff}
@media(max-width:800px){.site-header:has(nav.open){background:linear-gradient(180deg,rgba(2,7,13,.94) 0%,rgba(2,7,13,.94) 50%,rgba(6,20,29,.95) 62%,rgba(10,41,53,.96) 74%,rgba(16,75,91,.97) 86%,rgba(22,116,138,.98) 96%,rgba(25,133,155,.98) 100%)}}

/* Verified assets from app.adoperator.ai, captured September 29, 2026. */
:root{--platform-surface:#07111c;--platform-nested:#040d17;--platform-border:#1a3448;--platform-accent:#2997ff}
body{background-image:linear-gradient(#02070d26,#02070d26),url('/assets/brand/platform-background.webp');background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}
.product-panel,.operating-diagram-frame{background:linear-gradient(135deg,rgba(60,86,101,.5),rgba(7,17,28,.94) 35%,rgba(4,13,23,.96));border-color:var(--platform-border)}
.product-tabs button,.integration-layout li{background:var(--platform-nested);border-color:var(--platform-border)}

/* Supporting hero copy shares the headline typography at a smaller scale. */
.intro-copy p.intro-statement{max-width:950px;font-size:clamp(23px,2.8vw,38px);font-weight:750;line-height:1.25;letter-spacing:-.025em;color:var(--paper);text-wrap:balance}
.intro-copy p.intro-statement+p.intro-statement{margin-top:24px}

/* Full-width atmospheric discharges beside the hero wordmark. */
.intro-hero{position:relative;isolation:isolate}
.logo-lightning{position:absolute;left:50%;transform:translateX(-50%);width:100vw;max-width:100vw;pointer-events:none;z-index:-1;mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent)}

/* Product navigation shares the flat menu treatment, with a solid surface. */
.product-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;padding:0;background:#02070d;border:0;border-radius:0;box-shadow:none;margin-bottom:0}
.product-tabs button{min-height:80px;width:100%;padding:20px 12px;border:0;border-radius:0;background:transparent;color:#f2f8fc;box-shadow:none;text-align:center;font-weight:500}
.product-tabs button:hover{background:#0a202b;color:#fff}
.product-tabs button[aria-selected=true]{background:#10313e;color:#8ef6ee;border:0;box-shadow:none;font-weight:650}
.product-tabs button:focus-visible{outline:2px solid #73f8e6;outline-offset:-6px}
@media(max-width:600px){.product-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.product-tabs button{min-height:62px;padding:16px 10px;font-size:14px}}

/* Keep the closing headline on two deliberate lines inside the loop. */
.closing-demo .hero-copy{width:min(1000px,74vw)}
.closing-demo h2{font-size:clamp(28px,3.6vw,54px);line-height:1.12}
.closing-headline-line{display:block;white-space:nowrap}
@media(max-width:700px){.closing-demo .hero-copy{width:100%;max-width:none}.closing-demo h2{font-size:clamp(17px,4.7vw,32px)}}

/* Square preview frame joins the flat product navigation. */
.product-panel,.product-panel>img{border-radius:0}
.product-panel>img{width:100%;height:auto;aspect-ratio:auto}

/* Responsive layout and scroll-linked motion, without timed section entrances. */
html{scroll-padding-top:24px}
section{scroll-margin-top:0}
[data-scroll-part]{transition:none;transform-origin:50% 0}
.product-panel,.pricing-layout,.pricing-copy,.subscription{min-width:0}
.product-tabs button{overflow-wrap:anywhere}
.screen-header{flex-wrap:wrap;gap:8px 16px}
/* Product panel tab blurbs under the screen title. */
.screen-heading{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 auto}
.screen-lede{margin:0;max-width:56ch;font-size:13px;line-height:1.45;color:var(--muted);text-wrap:pretty}
.screen-title{font-weight:650;letter-spacing:.01em}
@media(max-width:800px){.screen-lede{font-size:12px;max-width:none}}

.footer-main>div>a:not(:has(.brand)){display:inline-flex;align-items:center;min-height:44px}
.footer-main>div{gap:6px}
@media(max-width:800px){
 body{background-attachment:scroll;background-size:auto 100svh;background-repeat:repeat-y}
 .site-header .nav nav.open{max-height:calc(100svh - 72px);overflow-y:auto;overscroll-behavior:contain}
 .product{padding-block:56px 64px}
 .product-panel{box-shadow:none}
 .integration-layout ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .integration-layout li{padding:14px 8px;font-size:clamp(13px,3.7vw,17px);overflow-wrap:anywhere}
 .closing-demo.hero.shell{min-height:760px;height:auto;padding:190px 20px}
 .closing-demo .hero-copy{width:100%;max-width:100%;transform:none}
 .closing-demo .lede{font-size:clamp(16px,2.5vw,20px);line-height:1.5}
 .intro-hero .brand{font-size:clamp(25px,5.9vw,40px)}
 .pricing-layout{backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media(max-width:360px){
 .intro-copy h1{font-size:32px}
 .pricing-layout{padding:24px 20px}
 .pricing-copy h1{font-size:27px}
 .screen-header{font-size:10px}
 .button{max-width:100%;padding-inline:20px}
 .footer-main{gap:24px}
}
@media(prefers-reduced-motion:reduce){[data-scroll-part]{opacity:1!important;translate:none!important;scale:none!important;will-change:auto!important}}

/* A compact scroll cue echoes the main demo action. */
/* The small cue sits in the hero's existing bottom padding, outside its layout flow. */
.intro-hero>.scroll-indicator{position:absolute;inset-inline:0;bottom:24px;display:flex;width:fit-content;min-height:26px;margin:0 auto;padding:4px 10px;gap:6px;border-radius:7px;font-size:11px;font-weight:650;line-height:16px;box-shadow:inset 0 1px 1px #dfffff80,0 3px 12px #08bfd31a}
.intro-hero>.scroll-indicator::after{content:"";position:absolute;inset:-9px -4px}
.intro-hero>.scroll-indicator svg{width:12px;height:12px}
@media(max-width:700px){.intro-hero>.scroll-indicator{bottom:17px}}
.scroll-indicator svg{flex:none;transition:transform .2s ease}
.scroll-indicator:is(:hover,:focus-visible) svg{transform:translateY(3px)}
@media(prefers-reduced-motion:reduce){.scroll-indicator:is(:hover,:focus-visible) svg{transform:none}}

/* Fit the closing circuit to the actual viewport and its readable copy. */
.closing-demo.hero.shell{height:auto;min-height:100svh;padding:clamp(96px,16svh,160px) 24px clamp(88px,14svh,144px);display:grid;grid-template-columns:minmax(0,1fr);place-items:center;gap:0}
.closing-demo .hero-copy{width:min(1000px,78vw,112svh);max-width:100%;margin:0;transform:none}
.closing-demo h2{font-size:clamp(28px,min(3.6vw,6.5svh),54px)}
.closing-demo .lede{max-width:860px;margin:24px auto 0;font-size:clamp(16px,1.25vw,19px);line-height:1.5}
.closing-demo .actions{margin-top:28px}
.closing-demo .campaign-visual{overflow:hidden}
.closing-demo .campaign-poster{object-fit:contain;object-position:center}
@media(max-width:800px){
 .closing-demo.hero.shell{padding:clamp(96px,16svh,140px) 20px clamp(88px,14svh,120px)}
 .closing-demo .hero-copy{width:min(78vw,112svh)}
 .closing-demo h2{font-size:clamp(22px,4.7vw,32px)}
 .closing-demo .closing-headline-line{white-space:normal}
 .closing-demo .lede{font-size:16px;max-width:560px}
}
@media(max-height:600px) and (min-width:701px){
 .closing-demo.hero.shell{padding-block:78px 68px}
 .closing-demo h2{font-size:clamp(24px,5svh,34px)}
 .closing-demo .lede{font-size:15px;margin-top:18px;max-width:650px}
 .closing-demo .actions{margin-top:20px}
}

/* Scroll light sits over the section seam without adding space to the page. */
.section-flow{min-width:0;width:100%}
.product .section-head{max-width:900px;margin-bottom:48px}
.product .section-head>.how-it-works-copy{max-width:790px;margin:26px auto 0;font-size:clamp(17px,1.65vw,22px);font-weight:500;line-height:1.6;color:var(--paper);text-wrap:pretty}
.section-transition{position:relative;height:0;width:100%;overflow:visible;pointer-events:none;z-index:1}
.transition-halo{position:absolute;left:0;right:0;top:-64px;height:128px;background:radial-gradient(ellipse at center,rgba(51,206,226,.24),rgba(10,130,159,.09) 38%,transparent 72%);mask-image:linear-gradient(to bottom,transparent,#000 35%,#000 65%,transparent);opacity:var(--boundary-glow,0);transform:scaleX(var(--boundary-spread,.45))}
.transition-halo::after{content:"";position:absolute;left:30%;top:calc(50% - 1px);width:40%;height:2px;background:linear-gradient(90deg,transparent,#4af4ee,#7fcaff,transparent);transform:translateX(var(--boundary-travel,0px)) scaleX(var(--boundary-spread,.45))}
.transition-piece{display:none}
/* Content keeps its natural document position as each section opens. */
.product{padding-block:48px 24px}
.operating-diagram{padding-block:16px 24px}
.integrations{padding-block:16px 20px}
.closing-demo.hero.shell{padding-top:clamp(68px,10svh,110px)}
@media(max-width:800px){
 .product .section-head{margin-bottom:32px}
 .product .section-head>.how-it-works-copy{margin-top:20px;font-size:17px}
 .product{padding-block:40px 20px}
 .operating-diagram{padding-block:16px 20px}
 .integrations{padding-block:16px 20px}
 .closing-demo.hero.shell{padding-top:clamp(68px,10svh,100px)}
}
@media(prefers-reduced-motion:reduce){.transition-halo{opacity:.16!important;transform:none!important}}

/* === Full-viewport panels, native scrolling === */
/* Four sections, each at least one viewport tall; the document scrolls normally. */
:root{
  --site-header-h:88px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --snap-pad-top:calc(var(--site-header-h) + var(--safe-top));
  --panel-h:100vh;
  --panel-h:100dvh;
  --panel-content-max:1120px;
  --panel-content-gutter:calc(100% - 96px);
}
@supports (height:100svh){
  :root{--panel-h:100svh}
}
@supports (height:100dvh){
  :root{--panel-h:100dvh}
}
@media (max-width:800px){:root{--site-header-h:72px}}

html{
  /* Panels carry their own header clearance (padding-top), so anchors land on the panel edge. */
  scroll-padding-top:0;
}
body{
  margin:0;
}

/* The page is the scrollport. */
main#main{
  position:relative;
  width:100%;
  overflow-x:clip;
  z-index:1;
}

/* Fixed nav overlays every panel so each section owns the full viewport. */
.site-header{
  position:fixed;
  inset-inline:0;
  top:0;
  z-index:50;
  padding-top:var(--safe-top);
  width:100%;
  overflow:visible;
  /* Translucent: avoid a solid #02070d guillotine over nav glyphs + scrolled titles. */
  background:linear-gradient(90deg,rgba(2,7,13,.82) 0%,rgba(2,7,13,.82) 46%,rgba(6,20,29,.88) 62%,rgba(10,41,53,.9) 74%,rgba(16,75,91,.92) 86%,rgba(22,116,138,.94) 96%,rgba(25,133,155,.95) 100%);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
@media (max-width:800px){
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(3,10,17,.94)}
}
.site-header .nav,
.site-header .nav nav,
.site-header .nav nav>a{
  overflow:visible;
}
.site-header .nav nav>a,
.site-header .nav nav>a.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.25;
  /* Vertical room comes from min-height; avoid pad that can clip ascenders. */
  padding-block:0;
  box-sizing:border-box;
}

/* Kill seam lights so they cannot bleed between panels. */
.section-transition{
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
  scroll-snap-align:none !important;
}

/* === The four panels === */
main#main > .snap-panel,
.snap-panel{
  box-sizing:border-box;
  width:100%;
  min-height:var(--panel-h);
  scroll-margin:0;
  position:relative;
  padding-top:var(--snap-pad-top);
  padding-bottom:max(16px,var(--safe-bottom));
  display:flex;
  flex-direction:column;
  justify-content:center;
}

/* Panel content flows with the page (no inner scrollers). */
.panel-scroll{
  flex:1 1 auto;
  min-height:0;
  width:100%;
}

/* Intro: brand + headline + CTA centered. */
.intro-hero.shell,
.intro-hero.snap-panel,
.intro-hero{
  text-align:center;
  justify-content:center;
  padding:var(--snap-pad-top) 0 max(48px,var(--safe-bottom)) !important;
  min-height:var(--panel-h) !important;
}
.intro-hero > .hero-brand{margin:0 auto clamp(12px,2.2vh,28px)}
.intro-hero .intro-copy{margin-inline:auto;margin-block:0}
.intro-hero .intro-copy > .button{margin-top:clamp(28px,6vh,72px)}
.intro-hero > .scroll-indicator{
  position:absolute;
  inset-inline:0;
  bottom:max(18px,calc(var(--safe-bottom) + 12px));
  z-index:2;
}

/* Product / How it works */
.product.shell,
.product.snap-panel,
.product{
  justify-content:flex-start;
  padding-block:var(--snap-pad-top) max(20px,var(--safe-bottom)) !important;
  min-height:var(--panel-h) !important;
}
.product .section-flow{
  flex:1 1 auto;
  min-height:0;
  width:min(var(--panel-content-max),var(--panel-content-gutter));
  max-width:var(--panel-content-max);
  margin-inline:auto;
  display:block;
}
.product .panel-scroll-main{
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:100%;
  box-sizing:border-box;
  padding-top:40px;
}
.product .section-head{flex:0 0 auto;margin-bottom:clamp(22px,3.5vh,44px)}
.product .product-tabs{flex:0 0 auto;margin-bottom:0}
.product .product-panel{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.product .product-panel > img,
.product #product-image{
  flex:0 0 auto;
  width:100%;
  height:auto;
  max-height:min(68vh,760px);
  object-fit:cover;
  object-position:top center;
  background:transparent;
}

/* Operating loop + folded integrations strip */
.operating-diagram.shell,
.operating-diagram.snap-panel,
.operating-diagram{
  justify-content:center;
  padding-block:calc(var(--snap-pad-top) + 4px) max(12px,var(--safe-bottom)) !important;
  min-height:var(--panel-h) !important;
}
.operating-diagram .section-flow{
  width:min(var(--panel-content-max),var(--panel-content-gutter));
  max-width:var(--panel-content-max);
  margin-inline:auto;
  flex:1 1 auto;
  min-height:0;
  display:block;
}
.operating-diagram .panel-scroll-main{
  display:flex;
  flex-direction:column;
  gap:clamp(10px,2vh,20px);
  justify-content:center;
  min-height:100%;
  box-sizing:border-box;
}
.operating-diagram-frame{
  flex:0 0 auto;
  min-height:auto;
}
.operating-diagram-frame img{
  max-height:calc(var(--panel-h) - var(--snap-pad-top) - 140px);
  width:100%;
  height:auto;
  object-fit:contain;
}
.integrations-inline{
  flex:0 0 auto;
  text-align:center;
  padding:0;
  margin:0;
}
.integrations-inline-title{
  margin:0 0 10px;
  font-size:clamp(14px,1.4vw,18px);
  font-weight:650;
  color:var(--muted);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.integrations-inline ul{
  list-style:none;
  margin:0 auto;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 10px;
  max-width:980px;
}
.integrations-inline li{
  background:rgba(7,28,40,.78);
  border:1px solid #254858;
  border-radius:10px;
  padding:8px 14px;
  font-size:clamp(12px,1.2vw,15px);
  box-shadow:inset 0 1px 0 #bceaff0d;
}
/* Legacy standalone integrations section (if any) must not snap. */
section.integrations:not(.snap-panel){
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  overflow:hidden !important;
  scroll-snap-align:none !important;
}

/* Closing demo + folded footer = last panel */
.closing-demo.hero.shell,
.hero.shell.closing-demo,
.closing-demo.snap-panel,
.closing-demo{
  width:100%;
  max-width:none;
  min-height:var(--panel-h) !important;
  padding:var(--snap-pad-top) 24px max(12px,var(--safe-bottom)) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:stretch !important;
  align-items:stretch !important;
  gap:0;
  place-items:unset;
  grid-template-columns:unset;
}
.closing-panel-body{
  flex:1 1 auto;
  min-height:0;
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  place-items:center;
  overflow:hidden;
  width:100%;
}
/* Isolate copy above the WebGL layer so text-fill never screen-blends into the loop (c951e64c). */
.closing-demo .hero-copy{z-index:2;position:relative;text-shadow:none;isolation:isolate;pointer-events:none}
.closing-demo .hero-copy .actions{pointer-events:auto}
/* Animated energy fill — no mix-blend-mode:screen (that ate glyphs once the canvas pulsed). */
.closing-demo .hero-copy h2{
  color:transparent;
  -webkit-text-fill-color:transparent;
  text-shadow:none;
  background-image:linear-gradient(105deg,#f4fbff 0%,#9af6ea 18%,#2ad7f2 36%,#ffffff 50%,#5ec8ff 68%,#dff7ff 84%,#7ef0e8 100%);
  background-size:240% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  animation:closingHeadlineFill 7.5s ease-in-out infinite alternate;
  mix-blend-mode:normal;
  filter:drop-shadow(0 0 22px rgba(40,190,220,.28));
}
@keyframes closingHeadlineFill{
  0%{background-position:0% 50%}
  100%{background-position:100% 50%}
}
@media (prefers-reduced-motion:reduce){
  .closing-demo .hero-copy h2{animation:none;background-position:40% 50%}
}
.closing-demo .closing-copy-rest{
  position:relative;
  z-index:2;
  isolation:isolate;
  text-shadow:0 2px 18px #02070d;
}
.closing-demo .closing-copy-rest .lede{color:var(--paper)}

.closing-demo .campaign-visual{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  overflow:hidden;
}
.closing-footer{
  flex:0 0 auto;
  width:100%;
  max-height:min(28vh,220px);
  overflow:hidden;
  background:rgba(3,14,23,.72);
  border-top:1px solid #193443;
  padding:12px 0 max(10px,var(--safe-bottom));
  scroll-snap-align:none !important;
  min-height:0 !important;
  height:auto !important;
}
.closing-footer .footer-main{
  gap:12px 24px;
  margin:0 auto;
}
.closing-footer .footer-main > div{gap:4px}
.closing-footer .footer-main p{margin-top:4px;font-size:12px;line-height:1.4}
.footer-main > .footer-brand{align-items:center;width:max-content;max-width:100%;gap:4px;text-align:center}
.footer-main > .footer-brand p,.closing-footer .footer-main > .footer-brand p{margin-top:0}
.closing-footer .footer-main > div > a:not(:has(.brand)){min-height:28px;font-size:13px}
.closing-footer .brand{
  display:inline-flex;
  align-items:center;
  font-size:18px;
  line-height:1;
  gap:0;
  letter-spacing:.015em;
}
.closing-footer .brand > span{
  display:inline-flex;
  align-items:center;
  line-height:1;
}
.closing-footer .brand img{
  width:1.18em;
  height:1.18em;
  margin:0 .03em;
  object-fit:contain;
  flex-shrink:0;
  transform:translateY(.07em);
}
.closing-footer .footer-bottom{margin-top:10px;font-size:10px}
/* No standalone footer snap panel. */
body > footer:not(.closing-footer){
  display:none !important;
  height:0 !important;
  min-height:0 !important;
  scroll-snap-align:none !important;
}

@media (max-width:800px){
  .intro-hero > .hero-brand{margin-bottom:clamp(14px,2.8vh,32px)}
  .product .section-head{margin-bottom:18px}
  .product .section-head > .how-it-works-copy{margin-top:12px;font-size:15px}
  .closing-demo.hero.shell,
  .hero.shell.closing-demo{
    padding:var(--snap-pad-top) 16px max(8px,var(--safe-bottom)) !important;
  }
  .closing-footer{max-height:min(32vh,240px)}
  .closing-footer .footer-main{grid-template-columns:1fr 1fr;gap:10px}
  .integrations-inline li{padding:6px 10px;font-size:12px}
  .operating-diagram-frame img{
    max-height:calc(var(--panel-h) - var(--snap-pad-top) - 180px);
  }
}

@media (max-width:480px){
  .shell{width:calc(100% - 40px)}
  .intro-copy h1{font-size:clamp(30px,7.5vw,42px)}
  .product-tabs button{min-height:48px;padding:10px 6px;font-size:12px}
  .integrations-inline-title{font-size:12px;margin-bottom:8px}
  .closing-footer .footer-main{grid-template-columns:1fr;gap:8px}
}

/* Restore balanced centered card composition inside full-bleed panels. */
.product .section-head{
  margin-inline:auto;
  text-align:center;
  width:100%;
}
.product .product-tabs{
  border-radius:14px 14px 0 0;
  overflow:hidden;
}
.product .product-panel{
  border-radius:0 0 18px 18px;
  overflow:hidden;
}
.product .product-panel > img{
  border-radius:0 0 12px 12px;
}
.intro-hero .intro-copy{
  width:min(var(--panel-content-max),var(--panel-content-gutter));
  max-width:var(--panel-content-max);
  margin-inline:auto;
}
@media (max-width:800px){
  :root{--panel-content-gutter:calc(100% - 40px);--panel-content-max:100%}
  .product .product-tabs{border-radius:12px 12px 0 0}
  .product .product-panel{border-radius:0 0 14px 14px}
}
@media (prefers-reduced-motion:reduce){
  [data-scroll-part]{
    opacity:1 !important;
    translate:none !important;
    scale:none !important;
    will-change:auto !important;
  }
}


/* Closing copy + folded footer. On very short viewports the body keeps a minimum
   height so the copy stays legible; the page simply scrolls. */
.closing-scroll{display:flex;flex-direction:column;align-items:stretch}
.closing-scroll>.closing-panel-body{flex:1 0 0px;min-height:0}
@media (max-height:560px){.closing-scroll>.closing-panel-body{min-height:410px}}

/* "Continuous learning" caption: crisp HTML text under the loop's front rail, placed
   from the live projection (or the poster's measured rail) by campaign-loop-fit.js. */
.intro-hero .loop-caption{
  position:absolute;z-index:2;margin:0;left:var(--cap-poster-x,50%);top:var(--cap-poster-y,92%);
  transform:translateX(-50%);padding:.28em 1.05em .3em;
  color:#bfefff;font-size:var(--cap-poster-size,13px);font-weight:650;line-height:1.2;
  letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;text-shadow:0 0 10px rgba(63,208,255,.4);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility 0s linear .4s;
}
.intro-hero .campaign-visual[data-caption-poster="on"]:not(.is-ready) .loop-caption,
.intro-hero .campaign-visual.is-ready[data-caption-live="on"] .loop-caption{opacity:1;visibility:visible;transition:opacity .4s ease,visibility 0s linear 0s}
.intro-hero .campaign-visual.is-ready .loop-caption{left:var(--cap-live-x,50%);top:calc(var(--cap-live-y,92%) + 4px);font-size:var(--cap-live-size,13px)}

/* The campaign loop belongs to the first panel; the final panel is static copy. */
.hero-loop-scroll{display:flex;flex-direction:column;align-items:stretch;width:100%;min-height:0;flex:1}
.hero-loop-scroll>.hero-brand{position:static;transform:none;flex:none;align-self:center;margin:12px auto 8px}
.hero-loop-body{position:relative;display:grid;place-items:center;width:100%;min-height:0;flex:1 0 0px;isolation:isolate}
.intro-hero .hero-loop-body .campaign-visual{position:absolute;inset:0;width:100%;height:100%;margin:0;overflow:hidden}
.intro-hero .hero-loop-body .hero-copy{position:relative;z-index:2;max-width:100%;margin:0;transform:none;isolation:isolate;text-align:center}
.intro-hero .hero-loop-body .actions{justify-content:center;margin-top:clamp(24px,4vh,48px)}
.intro-hero .hero-loop-body h1{font-size:clamp(32px,4.5vw,64px);line-height:1.12;text-wrap:balance}
.closing-demo .hero-copy{width:min(1000px,100%);max-width:100%;padding:32px 16px;left:auto;top:auto}
.closing-demo .hero-copy h2{animation:none;background:none;color:var(--paper);-webkit-text-fill-color:currentColor;filter:none;font-size:clamp(32px,4.5vw,64px);line-height:1.12;text-wrap:balance}
.closing-demo .closing-headline-line{white-space:normal}
@media(max-height:560px){.hero-loop-scroll>.hero-loop-body{min-height:410px}}
@media(max-width:700px){.intro-hero .hero-loop-body h1{font-size:clamp(28px,7vw,42px)}}

.intro-hero .hero-loop-body .campaign-visual{aspect-ratio:auto;padding:0;z-index:0;pointer-events:none;border:0;border-radius:0;box-shadow:none;background:transparent}
.intro-hero .campaign-canvas,.intro-hero .campaign-poster{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;box-shadow:none;mask-image:none;mix-blend-mode:normal}
.intro-hero .campaign-canvas{z-index:0;background:transparent}
.intro-hero .campaign-poster{z-index:1;object-fit:contain;opacity:1;visibility:visible;transition:opacity .4s ease,visibility 0s linear 0s}
.intro-hero .campaign-visual:not(.is-ready) .campaign-poster{opacity:1!important;visibility:visible!important;transition:none}
.intro-hero .campaign-visual.is-ready .campaign-poster{opacity:0;visibility:hidden;transition:opacity .4s ease,visibility 0s linear .4s}

/* Blend only the still poster's dark backdrop; the WebGL canvas and text stay normal. */
.intro-hero,.intro-hero .hero-loop-body{isolation:auto}
.intro-hero .hero-loop-body .campaign-visual{isolation:auto}
.intro-hero .campaign-poster{mix-blend-mode:normal;filter:url(#campaign-poster-alpha)}
.intro-hero .campaign-visual:not(.is-ready) .campaign-canvas{opacity:0;visibility:hidden}
.intro-hero .campaign-visual.is-ready .campaign-canvas{opacity:1;visibility:visible;mix-blend-mode:normal}

/* Phone layout: native subpage scrolling, usable touch targets and readable hero. */
body.demo-page main#main,body.pricing-page main#main{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
@media(max-width:600px){
 .hero-loop-scroll>.hero-brand{margin:8px auto 4px}
 .intro-hero .hero-loop-body .actions{margin-top:24px}
 .intro-hero .hero-loop-body .button{min-height:48px;font-size:16px;padding-inline:18px}
 .intro-hero .hero-loop-body{min-height:440px}
 .closing-demo .hero-copy{padding:24px 0}
 .closing-demo .hero-copy h2{font-size:clamp(28px,7.4vw,40px)}
 .closing-demo .lede{font-size:16px;line-height:1.55}
 .closing-demo .actions{margin-top:24px}
 .closing-footer{max-height:none;overflow:visible;flex-shrink:0}
 .closing-footer .footer-main>div>a:not(:has(.brand)){min-height:44px;font-size:14px}
 .closing-footer .footer-main{gap:12px}
 .closing-footer .footer-bottom{font-size:11px;line-height:1.5}
 .site-header .nav nav.open{max-height:calc(100dvh - var(--snap-pad-top));padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}
}
@media(max-height:500px) and (pointer:coarse){
 .hero-loop-scroll>.hero-loop-body{min-height:440px}
 .closing-footer{max-height:none;overflow:visible}
}

/* Static closing copy owns its natural height before the footer on short screens. */
.closing-scroll>.closing-panel-body{flex:1 0 auto;min-height:min-content}

.campaign-poster-filter{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
