/*
  Design plan
  -----------
  Layout: fixed brand bar + full-height 50/50 split; each half is a single
          recessed "tray" (inset shadow) holding raised neumorphic cards —
          the inset/outset contrast IS the hierarchy, no borders anywhere.
  Color:  --bg (base surface everything is carved from), --text/--text-dim,
          --accent (royal violet, primary interactive), --accent-2 (brighter
          electric violet — "live"/energy accent, no green anywhere), --danger.
          Dark mode goes near-OLED-black so the purple glows do the work
          screen-blended highlights need a true-dark canvas to read as light.
  Type:   Fraunces (display, for names/headings) + Plus Jakarta Sans (UI/body)
          + JetBrains Mono (timestamps, masked emails, data-y bits).
*/

:root{
  --bg:#e6e9f0;
  --shadow-dark:#b7bdcc;
  --shadow-light:#ffffff;
  --text:#272b3a;
  --text-dim:#6b7384;
  --accent:#6a5bdb;
  --accent-ink:#ffffff;
  --accent-2:#9333ea;
  --danger:#e5595f;
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:12px;
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Plus Jakarta Sans', system-ui, sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, monospace;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#09090e;
    --shadow-dark:#000000;
    --shadow-light:#1a1a26;
    --text:#eeeef5;
    --text-dim:#92929f;
    --accent:#9f8bff;
    --accent-ink:#0c0714;
    --accent-2:#c77dff;
    --danger:#ff7a7f;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#09090e;
  --shadow-dark:#000000;
  --shadow-light:#1a1a26;
  --text:#eeeef5;
  --text-dim:#92929f;
  --accent:#9f8bff;
  --accent-ink:#0c0714;
  --accent-2:#c77dff;
  --danger:#ff7a7f;
  color-scheme:dark;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:74px;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  min-height:100%;
  overflow-x:clip;
  animation:pageIn .6s ease both;
}
@keyframes pageIn{ from{opacity:0;} to{opacity:1;} }
@media (prefers-reduced-motion: reduce){ body{animation:none;} }

/* ---------- accessibility: skip link + focus rings ---------- */
.skip-link{
  position:fixed; top:-60px; left:16px; z-index:1000;
  background:var(--accent); color:var(--accent-ink);
  padding:10px 18px; border-radius:999px; font-weight:600; font-size:14px;
  text-decoration:none; transition:top .2s;
}
.skip-link:focus-visible{top:16px;}

:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-radius:4px;
}
.btn:focus-visible, .tech-badge:focus-visible, .send-btn:focus-visible{outline-offset:2px;}


/* ---------- film grain overlay ---------- */
.grain{
  position:fixed; inset:-200px; z-index:2; pointer-events:none;
  opacity:.03; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  animation:grainShift 1.2s steps(4) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0);} 25%{transform:translate(-2%,2%);}
  50%{transform:translate(2%,-1%);} 75%{transform:translate(-1%,-2%);} 100%{transform:translate(0,0);}
}
@media (prefers-reduced-motion: reduce){ .grain{animation:none;} }

/* ---------- scroll reveal ---------- */
.reveal{
  opacity:1; transform:none;
}
@media (prefers-reduced-motion: no-preference){
  .reveal{
    opacity:0; transform:translateY(22px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .reveal.is-visible{opacity:1; transform:none;}
}
.process-row .reveal:nth-child(2){transition-delay:.06s;}
.process-row .reveal:nth-child(3){transition-delay:.12s;}
.process-row .reveal:nth-child(4){transition-delay:.18s;}
.proof-grid .reveal:nth-child(2){transition-delay:.06s;}
.proof-grid .reveal:nth-child(3){transition-delay:.12s;}

/* ---------- tilt cards ---------- */
[data-tilt]{
  transform-style:preserve-3d; will-change:transform;
  transition:transform .15s ease, box-shadow .15s ease;
}

/* ---------- magnetic buttons ---------- */
.magnetic{will-change:transform;}

/* ---------- aurora glow blobs ---------- */
.aurora{
  position:absolute; border-radius:50%; filter:blur(60px);
  pointer-events:none; z-index:0;
  opacity:.55; mix-blend-mode:screen;
}
@media (prefers-color-scheme: light){ .aurora{mix-blend-mode:multiply; opacity:.35;} }
:root[data-theme="light"] .aurora{mix-blend-mode:multiply; opacity:.35;}
.aurora-1{
  width:420px; height:420px; top:-140px; right:-80px;
  background:radial-gradient(circle, var(--accent), transparent 70%);
  animation:drift1 16s ease-in-out infinite;
}
.aurora-2{
  width:360px; height:360px; bottom:-160px; left:-100px;
  background:radial-gradient(circle, var(--accent-2), transparent 70%);
  animation:drift2 20s ease-in-out infinite;
}
.aurora-3{
  width:320px; height:320px; top:50%; left:50%; transform:translate(-50%,-50%);
  background:radial-gradient(circle, var(--accent), transparent 70%);
  opacity:.4;
}
@keyframes drift1{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(-30px, 24px) scale(1.08);}
}
@keyframes drift2{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(26px, -20px) scale(1.1);}
}
@media (prefers-reduced-motion: reduce){ .aurora{animation:none;} }

/* ---------- hero canvas (particle network) ---------- */
.hero-canvas{
  position:absolute; inset:0; width:100%; height:100%;
  z-index:0; opacity:.55; pointer-events:none;
}
.wrap{max-width:1160px; margin-inline:auto; padding-inline:clamp(16px,4vw,32px);}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  color:var(--accent); margin-bottom:10px;
}
.section-head{max-width:62ch; margin-bottom:clamp(22px,4vw,36px);}
.section-head h2{font-family:var(--font-display); font-weight:600; font-size:clamp(24px,3.6vw,34px); margin:0 0 8px; text-wrap:balance;}
.section-head p{margin:0; color:var(--text-dim); font-size:15px; line-height:1.55;}
main > section{padding-block:clamp(44px,7vw,88px);}

/* ---------- buttons ---------- */
.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:600; font-size:14.5px; text-decoration:none;
  padding:14px 24px; border-radius:999px; cursor:pointer; border:none;
  transition:transform .12s;
}
.ripple{
  position:absolute; border-radius:50%; pointer-events:none;
  background:color-mix(in srgb, currentColor 35%, transparent);
  transform:translate(-50%,-50%) scale(0); opacity:.6;
  animation:rippleOut .55s ease-out forwards;
}
@keyframes rippleOut{ to{ transform:translate(-50%,-50%) scale(1); opacity:0; } }
@media (prefers-reduced-motion: reduce){ .ripple{display:none;} }
.btn:active{transform:scale(.97);}
.btn-primary{
  position:relative; overflow:hidden;
  color:var(--accent-ink); background:var(--accent);
  box-shadow: 5px 5px 11px var(--shadow-dark), -5px -5px 11px var(--shadow-light);
}
.btn-primary::after{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background:linear-gradient(115deg, transparent 30%, color-mix(in srgb, var(--accent-ink) 35%, transparent) 50%, transparent 70%);
  transform:translateX(-120%);
}
.btn-primary:hover::after{transition:transform .65s ease;}
.btn-primary:hover::after{transform:translateX(120%);}
.btn-ghost{
  color:var(--text); background:var(--bg);
  box-shadow: inset 4px 4px 9px var(--shadow-dark), inset -4px -4px 9px var(--shadow-light);
}
.btn-sm{padding:9px 18px; font-size:13px;}
.btn-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}
.btn-row.center{justify-content:center;}

/* ---------- raised / inset primitives ---------- */
.raised{
  background:var(--bg);
  box-shadow: 7px 7px 14px var(--shadow-dark), -7px -7px 14px var(--shadow-light);
}
.inset{
  background:var(--bg);
  box-shadow: inset 5px 5px 10px var(--shadow-dark), inset -5px -5px 10px var(--shadow-light);
}

/* ---------- nav ---------- */
.nav{
  position:sticky; top:env(safe-area-inset-top,0px); z-index:20;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px clamp(16px,3vw,32px);
  background:var(--bg);
  box-shadow:0 10px 24px -18px var(--shadow-dark);
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text);}
.brand-mark{
  width:36px; height:36px; flex:0 0 auto; border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
  color:var(--accent); font-size:16px;
  background:var(--bg);
  box-shadow: 4px 4px 9px var(--shadow-dark), -4px -4px 9px var(--shadow-light);
}
.brand-name{font-family:var(--font-display); font-weight:600; font-size:16px;}
.brand-by{
  display:block; font-family:var(--font-body); font-weight:400; font-size:10.5px;
  letter-spacing:.01em; color:var(--text-dim); margin-top:-2px;
}
@media (max-width:560px){ .brand-by{display:none;} }
.nav-links{display:flex; gap:26px; font-size:14px; font-weight:500;}
.nav-links a{color:var(--text-dim); text-decoration:none;}
.nav-links a:hover{color:var(--text);}
@media (max-width:700px){.nav-links{display:none;}}

/* ---------- hero ---------- */
.hero{
  position:relative; overflow:hidden; isolation:isolate;
  padding-block:clamp(48px,9vw,96px) clamp(36px,6vw,64px);
}
.hero > :not(.hero-canvas):not(.aurora){position:relative; z-index:1;}
.hero h1{
  font-family:var(--font-display); font-weight:700; letter-spacing:-.01em;
  font-size:clamp(32px,6vw,58px); line-height:1.08; margin:0 0 18px; text-wrap:balance;
  max-width:16ch;
  font-variant-ligatures:none;
}
.scroll-dare{
  display:inline-flex; align-items:center; gap:8px; margin:14px 0 24px;
  font-family:var(--font-mono); font-size:13.5px; color:var(--accent);
  text-decoration:none; border-bottom:1px dashed color-mix(in srgb, var(--accent) 45%, transparent);
  padding-bottom:2px;
}
.scroll-dare:hover{color:var(--accent-2);}
.dare-arrow{display:inline-block; animation:dareBounce 1.6s ease-in-out infinite;}
@keyframes dareBounce{
  0%,100%{transform:translateY(0);} 50%{transform:translateY(5px);}
}
@media (prefers-reduced-motion: reduce){ .dare-arrow{animation:none;} }
.hero-sub{margin:0; max-width:56ch; color:var(--text-dim); font-size:clamp(15px,1.6vw,17px); line-height:1.6;}
.badge-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:34px;}
.tech-badge{
  font-family:var(--font-mono); font-size:12px; color:var(--text-dim);
  padding:8px 14px; border-radius:999px; background:var(--bg);
  box-shadow: inset 3px 3px 7px var(--shadow-dark), inset -3px -3px 7px var(--shadow-light);
}
.pulse{
  width:7px; height:7px; border-radius:50%; background:var(--accent-2);
  box-shadow:0 0 0 0 color-mix(in srgb, var(--accent-2) 60%, transparent);
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent-2) 55%, transparent);}
  70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent-2) 0%, transparent);}
  100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent-2) 0%, transparent);}
}

/* ---------- demo section ---------- */
.demo-section{
  padding-block:clamp(36px,6vw,64px);
  background:var(--bg);
  box-shadow: inset 0 1px 0 var(--shadow-light), inset 0 -1px 0 var(--shadow-dark);
}
.split{
  display:flex;
  gap:clamp(12px,2vw,22px);
  height:min(640px, 72vh);
}
.panel{
  flex:1 1 0;
  min-width:0;
  display:flex;
  flex-direction:column;
  border-radius:var(--radius-lg);
  padding:18px;
  min-height:0;
  background:var(--bg);
  box-shadow: inset 7px 7px 16px var(--shadow-dark), inset -7px -7px 16px var(--shadow-light);
}
.panel-head{
  flex:0 0 auto;
  display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
  padding:4px 6px 14px;
}
.panel-head h3{
  font-family:var(--font-display); font-weight:600; font-size:19px; margin:0 0 2px;
}
.panel-sub{margin:0; font-size:12.5px; color:var(--text-dim);}
.dot{
  width:10px; height:10px; border-radius:50%; flex:0 0 auto; margin-top:6px;
  background:var(--danger);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light);
  transition:background .25s;
}
.dot.ok{background:var(--accent-2);}

/* ---------- live interpretation panel (left) ---------- */
@keyframes riseIn{
  from{opacity:0; transform:translateY(6px) scale(.98); filter:blur(4px);}
  to{opacity:1; transform:none; filter:blur(0);}
}
.memory-panel{
  flex:1 1 auto; min-height:0; overflow-y:auto;
  display:flex; flex-direction:column; gap:14px;
  padding:4px 4px 10px 2px;
}
.memory-row{display:flex; flex-direction:column; gap:5px;}
.memory-label{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--text-dim);
}
.memory-value{
  font-size:15px; font-weight:600; color:var(--text);
  transition:color .2s;
}
.memory-value.is-empty{font-weight:400; color:var(--text-dim);}
.memory-value.just-updated{animation:memFlash 1.4s ease;}
@keyframes memFlash{
  0%{color:var(--accent-2); text-shadow:0 0 14px color-mix(in srgb, var(--accent-2) 60%, transparent);}
  100%{color:var(--text); text-shadow:none;}
}

.memory-chips{display:flex; flex-wrap:wrap; gap:6px;}
.memory-chip{
  font-family:var(--font-mono); font-size:11.5px; color:var(--text);
  padding:4px 10px; border-radius:999px; background:var(--bg);
  box-shadow: 2px 2px 5px var(--shadow-dark), -2px -2px 5px var(--shadow-light);
  animation:riseIn .3s ease;
}
.memory-chip-empty{font-size:14px; color:var(--text-dim); font-weight:400;}

.memory-divider{height:1px; background:linear-gradient(90deg, transparent, var(--shadow-light), transparent); margin:2px 0;}

.memory-row-score{flex-direction:row; align-items:center; gap:12px;}
.memory-row-score .memory-label{flex:0 0 auto; min-width:104px;}
.memory-meter{
  flex:1 1 auto; height:7px; border-radius:999px; overflow:hidden;
  background:var(--bg);
  box-shadow: inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light);
}
.memory-meter-fill{
  height:100%; width:0%; border-radius:999px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  transition:width .6s cubic-bezier(.3,1,.4,1);
}
.memory-score{
  font-family:var(--font-mono); font-size:12.5px; color:var(--text-dim); flex:0 0 auto; min-width:34px; text-align:right;
}

.memory-status{
  align-self:flex-start; font-size:12.5px; font-weight:600; letter-spacing:.02em;
  padding:5px 12px; border-radius:999px; color:var(--text-dim);
  background:var(--bg);
  box-shadow: inset 2px 2px 5px var(--shadow-dark), inset -2px -2px 5px var(--shadow-light);
  transition:color .3s;
}
.memory-status[data-status="warm"]{color:var(--accent);}
.memory-status[data-status="qualified"]{color:var(--accent-2); text-shadow:0 0 10px color-mix(in srgb, var(--accent-2) 45%, transparent);}

.feed-footnote{
  flex:0 0 auto; margin:0; padding-top:10px; font-size:11px; color:var(--text-dim); text-align:center;
}

/* ---------- chat (right) ---------- */
.chat-log{
  flex:1 1 auto; min-height:0; overflow-y:auto;
  display:flex; flex-direction:column; gap:10px;
  padding:4px 6px;
}
.bubble{
  max-width:78%; padding:10px 14px; border-radius:var(--radius-md); font-size:14px; line-height:1.45;
  animation:riseIn .3s ease;
}
.bubble.assistant{
  align-self:flex-start;
  background:var(--bg); color:var(--text);
  box-shadow: 4px 4px 9px var(--shadow-dark), -4px -4px 9px var(--shadow-light);
  border-left:2px solid var(--accent);
}
.bubble.user{
  align-self:flex-end;
  background:var(--accent); color:var(--accent-ink); font-weight:500;
  box-shadow: 3px 3px 8px var(--shadow-dark);
}
.bubble.typing{display:flex; gap:4px; align-items:center; padding:12px 16px;}
.bubble.typing span{width:6px; height:6px; border-radius:50%; background:var(--text-dim); animation:blink 1.1s infinite;}
.bubble.typing span:nth-child(2){animation-delay:.15s;}
.bubble.typing span:nth-child(3){animation-delay:.3s;}
@keyframes blink{0%,80%,100%{opacity:.25;} 40%{opacity:1;}}

.chat-input-row{flex:0 0 auto; display:flex; gap:10px; padding-top:10px;}
.chat-input-row input{
  flex:1 1 auto; min-width:0; border:none; outline:none; font:inherit; font-size:14px;
  color:var(--text); padding:13px 16px; border-radius:var(--radius-md);
  background:var(--bg);
  box-shadow: inset 4px 4px 9px var(--shadow-dark), inset -4px -4px 9px var(--shadow-light);
}
.chat-input-row input::placeholder{color:var(--text-dim);}
.send-btn{
  position:relative; overflow:hidden;
  flex:0 0 auto; width:46px; border:none; border-radius:var(--radius-md); cursor:pointer;
  color:var(--accent); background:var(--bg);
  box-shadow: 4px 4px 9px var(--shadow-dark), -4px -4px 9px var(--shadow-light);
  display:flex; align-items:center; justify-content:center;
  transition:transform .12s;
}
.send-btn:active{
  box-shadow: inset 3px 3px 7px var(--shadow-dark), inset -3px -3px 7px var(--shadow-light);
  transform:scale(.97);
}

/* ---------- toast ---------- */
.toast{
  position:fixed; left:50%; bottom:24px; transform:translate(-50%, 16px);
  padding:12px 20px; border-radius:999px; font-size:13px; font-weight:500;
  background:var(--bg); color:var(--text);
  box-shadow: 6px 6px 14px var(--shadow-dark), -6px -6px 14px var(--shadow-light);
  border-left:3px solid var(--accent-2);
  opacity:0; pointer-events:none; transition:opacity .25s, transform .25s;
  max-width:min(90vw,340px); text-align:center;
}
.toast.show{opacity:1; transform:translate(-50%, 0);}

/* ---------- services / capabilities carousel ---------- */
.carousel{display:flex; align-items:center; gap:12px;}
.carousel-track{
  display:flex; gap:18px; flex:1 1 auto; min-width:0;
  overflow-x:auto; scroll-snap-type:x proximity; scroll-behavior:smooth;
  overflow-anchor:none;
  padding:6px 2px 16px; margin:-6px -2px -16px;
  scrollbar-width:none; cursor:grab;
}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track.is-dragging{cursor:grabbing; scroll-snap-type:none;}
.carousel-btn{
  flex:0 0 auto; width:44px; height:44px; border-radius:50%; border:none; cursor:pointer;
  font-size:20px; line-height:1; color:var(--text);
  background:var(--bg);
  box-shadow: 5px 5px 11px var(--shadow-dark), -5px -5px 11px var(--shadow-light);
  transition:transform .12s, color .2s;
}
.carousel-btn:hover{color:var(--accent);}
.carousel-btn:active{
  box-shadow: inset 3px 3px 7px var(--shadow-dark), inset -3px -3px 7px var(--shadow-light);
  transform:scale(.95);
}
@media (max-width:680px){ .carousel-btn{display:none;} }
.carousel-dots{display:flex; justify-content:center; gap:7px; margin-top:20px;}
.carousel-dot{
  width:7px; height:7px; border-radius:999px; background:var(--shadow-dark); border:none; padding:0; cursor:pointer;
  transition:width .25s, background .25s;
}
.carousel-dot.is-active{width:24px; background:var(--accent);}

.service-card{
  position:relative; overflow:hidden; flex:0 0 auto;
  width:min(300px, 80vw); scroll-snap-align:start;
  border-radius:var(--radius-lg); padding:28px;
  background:var(--bg);
  box-shadow: 7px 7px 15px var(--shadow-dark), -7px -7px 15px var(--shadow-light);
  opacity:.55; transform:scale(.95);
  transition:opacity .35s ease, transform .35s ease;
}
.service-card.is-active{opacity:1; transform:scale(1);}
[data-tilt]::before{
  content:""; position:absolute; inset:0; border-radius:inherit; z-index:0;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--accent) 16%, transparent), transparent 60%);
  opacity:0; transition:opacity .25s ease; pointer-events:none;
}
[data-tilt]:hover::before{opacity:1;}
[data-tilt] > *{position:relative; z-index:1;}
.card-mark{
  width:44px; height:44px; font-size:19px; margin-bottom:16px;
  animation:iconFloat 4.5s ease-in-out infinite;
}
.carousel-track article:nth-child(2) .card-mark{animation-delay:.3s;}
.carousel-track article:nth-child(3) .card-mark{animation-delay:.6s;}
.carousel-track article:nth-child(4) .card-mark{animation-delay:.9s;}
.carousel-track article:nth-child(5) .card-mark{animation-delay:1.2s;}
.carousel-track article:nth-child(6) .card-mark{animation-delay:1.5s;}
@keyframes iconFloat{
  0%,100%{transform:translateY(0);} 50%{transform:translateY(-5px);}
}
@media (prefers-reduced-motion: reduce){ .card-mark{animation:none;} }
.service-card h3{font-family:var(--font-display); font-weight:600; font-size:21px; margin:0 0 14px;}
.service-card ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px;}
.service-card li{
  position:relative; padding-left:18px; color:var(--text-dim); font-size:14px; line-height:1.5;
}
.service-card li::before{content:"–"; position:absolute; left:0; color:var(--accent);}
@media (prefers-reduced-motion: reduce){
  .service-card{opacity:1; transform:none;}
}

/* ---------- process ---------- */
.process-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:22px;}
.process-step{display:flex; flex-direction:column; gap:10px;}
.step-num{
  width:34px; height:34px; border-radius:50%; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:13px; color:var(--accent);
  background:var(--bg);
  box-shadow: inset 3px 3px 7px var(--shadow-dark), inset -3px -3px 7px var(--shadow-light);
}
.process-step h4{font-family:var(--font-display); font-weight:600; font-size:16.5px; margin:2px 0 0;}
.process-step p{margin:0; color:var(--text-dim); font-size:13.5px; line-height:1.55;}

/* ---------- proof ---------- */
.proof-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px;}
.proof-card{
  border-radius:var(--radius-md); padding:22px 24px;
  background:var(--bg); border-left:2px solid var(--accent-2);
  box-shadow: 5px 5px 12px var(--shadow-dark), -5px -5px 12px var(--shadow-light);
}
.proof-card h4{font-family:var(--font-display); font-weight:600; font-size:16px; margin:0 0 8px;}
.proof-card p{margin:0; color:var(--text-dim); font-size:13.5px; line-height:1.55;}

/* ---------- final CTA ---------- */
.cta-final-wrap{padding-block:clamp(36px,6vw,64px) clamp(60px,9vw,110px);}
.cta-final{
  position:relative; overflow:hidden; isolation:isolate;
  text-align:center; padding:clamp(36px,6vw,56px) clamp(20px,5vw,48px);
  border-radius:var(--radius-lg);
  background:var(--bg);
  box-shadow: inset 8px 8px 18px var(--shadow-dark), inset -8px -8px 18px var(--shadow-light);
}
.cta-final > :not(.aurora){position:relative; z-index:1;}
.cta-final .eyebrow{justify-content:center;}
.cta-final h2{font-family:var(--font-display); font-weight:600; font-size:clamp(23px,3.4vw,32px); margin:0 auto 12px; max-width:28ch; text-wrap:balance;}
.cta-final p{margin:0 auto; max-width:50ch; color:var(--text-dim); font-size:14.5px;}

/* ---------- footer ---------- */
.footer{
  padding-block:28px calc(28px + env(safe-area-inset-bottom,0px));
  display:flex; flex-wrap:wrap; gap:8px; justify-content:center;
  font-size:12.5px; color:var(--text-dim);
}
.footer-sep{opacity:.5;}

/* scrollbars (webkit) */
.memory-panel::-webkit-scrollbar, .chat-log::-webkit-scrollbar{width:6px;}
.memory-panel::-webkit-scrollbar-thumb, .chat-log::-webkit-scrollbar-thumb{
  background:var(--shadow-dark); border-radius:999px;
}

/* ---------- responsive ---------- */
@media (max-width: 760px){
  .split{flex-direction:column; height:auto;}
  .panel{min-height:420px;}
  .hero h1{max-width:none;}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important;}
  html{scroll-behavior:auto;}
  .hero-canvas{display:none !important;}
  [data-tilt]{transform:none !important;}
}
