/* fonts, served from this site */
@font-face{ font-family:'Krona One'; src:url(fonts/krona-one-latin-400-normal.woff2) format('woff2'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Inter'; src:url(fonts/inter-latin-400-normal.woff2) format('woff2'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Inter'; src:url(fonts/inter-latin-500-normal.woff2) format('woff2'); font-weight:500; font-display:swap; }
@font-face{ font-family:'Inter'; src:url(fonts/inter-latin-600-normal.woff2) format('woff2'); font-weight:600; font-display:swap; }
@font-face{ font-family:'Nanum Pen Script'; src:url(fonts/nanum-pen-script-latin-400-normal.woff2) format('woff2'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Space Mono'; src:url(fonts/space-mono-latin-400-normal.woff2) format('woff2'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Space Mono'; src:url(fonts/space-mono-latin-700-normal.woff2) format('woff2'); font-weight:700; font-display:swap; }
/* ---------- tokens ---------- */
:root{
  --navy:#0E1430; --bg:#0E1430; --bg-deep:#090D22;
  --blue:#3D6CFF; --violet:#8A5CFF; --coral:#FF7A59; --lilac:#D9D2FF; --cloud:#F5F7FC;
  --text:var(--cloud);
  --muted:rgba(217,210,255,.74);
  --faint:rgba(217,210,255,.5);
  --line:rgba(217,210,255,.13);
  --line-strong:rgba(217,210,255,.3);
  --surface:rgba(255,255,255,.035);
  --surface-2:rgba(255,255,255,.065);
  --font-display:'Krona One','Arial Black',Impact,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-hand:'Nanum Pen Script','Segoe Print','Bradley Hand',cursive;
  --container:1180px;
  --gutter:clamp(20px,5vw,48px);
  --nav-h:76px;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --radius:22px; --radius-sm:12px;
  --intro-bg:#0E1430; --nav-bg:rgba(14,20,48,.74); --menu-bg:rgba(14,20,48,.94); --chat-bg:rgba(9,13,34,.86); --dot-grid:rgba(217,210,255,.11); --toast-bg:rgba(245,247,252,.96); --toast-text:#0E1430;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ color-scheme:dark; } }
:root[data-theme="dark"]{ color-scheme:dark; }
html{ scroll-padding-top:calc(var(--nav-h) + 12px + env(safe-area-inset-top,0px)); background:var(--bg); overflow-x:clip; -webkit-text-size-adjust:100%; }
html.smooth{ scroll-behavior:smooth; }

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:inherit; margin:0; padding:0; }
body{ background:var(--bg); color:var(--text); font-family:var(--font-body); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:clip; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul{ list-style:none; }
:focus-visible{ outline:2px solid var(--coral); outline-offset:4px; border-radius:6px; }
.skip{ position:absolute; left:16px; top:-80px; z-index:300; padding:10px 16px; border-radius:999px; background:var(--cloud); color:var(--navy); font-weight:600; }
.skip:focus{ top:calc(16px + env(safe-area-inset-top,0px)); }
.container{ width:min(var(--container),100% - 2*var(--gutter)); margin-inline:auto; }
main{ position:relative; z-index:1; }
.hidden{ display:none !important; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- ambient background ---------- */
.bg{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.bg-orb{ position:absolute; border-radius:50%; opacity:.8; will-change:transform; }
.bg-orb.a{ width:70vmax; height:70vmax; left:-28vmax; top:-30vmax; background:radial-gradient(closest-side,rgba(61,108,255,.26),rgba(61,108,255,0) 72%); animation:drift-a 42s ease-in-out infinite alternate; }
.bg-orb.c{ width:46vmax; height:46vmax; left:30vw; bottom:-26vmax; background:radial-gradient(closest-side,rgba(255,122,89,.16),rgba(255,122,89,0) 72%); animation:drift-a 56s ease-in-out infinite alternate-reverse; }
.bg-orb.b{ width:64vmax; height:64vmax; right:-26vmax; top:28vh; background:radial-gradient(closest-side,rgba(138,92,255,.22),rgba(138,92,255,0) 72%); animation:drift-b 50s ease-in-out infinite alternate; }
.bg-dots{ position:absolute; inset:0; background-image:radial-gradient(var(--dot-grid) 1px,transparent 1.6px); background-size:30px 30px; -webkit-mask-image:radial-gradient(ellipse at 50% 15%,#000 10%,transparent 70%); mask-image:radial-gradient(ellipse at 50% 15%,#000 10%,transparent 70%); }
.bg-grain{ position:absolute; inset:0; opacity:.055; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size:200px 200px; }
@keyframes drift-a{ to{ transform:translate(10vmax,8vmax) scale(1.08); } }
@keyframes drift-b{ to{ transform:translate(-9vmax,-10vmax) scale(1.1); } }

/* ---------- intro ---------- */
.intro{ position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:var(--intro-bg); transition:transform .55s var(--ease-io); }
.intro.out{ transform:translateY(-101%); }
.intro-logo{ width:min(520px,78vw); }
.intro-logo .mark{ clip-path:inset(-10% 100% -10% -10%); }
.intro.play .mark{ animation:wipe .75s var(--ease) .05s forwards; }
.intro-logo .word{ opacity:0; transform:translateY(6px); }
.intro.play .word{ animation:fade-up .55s var(--ease) .5s forwards; }
@keyframes wipe{ to{ clip-path:inset(-10% -10% -10% -10%); } }
@keyframes fade-up{ to{ opacity:1; transform:none; } }

/* ---------- navigation ---------- */
.nav{ position:fixed; top:0; left:0; right:0; z-index:50; padding-top:env(safe-area-inset-top,0px); transition:background .4s,border-color .4s; border-bottom:1px solid transparent; }
.nav-inner{ height:var(--nav-h); display:flex; align-items:center; justify-content:space-between; gap:24px; transition:height .35s var(--ease); }
.nav.scrolled{ background:var(--nav-bg); -webkit-backdrop-filter:blur(16px) saturate(140%); backdrop-filter:blur(16px) saturate(140%); border-color:var(--line); }
.nav.scrolled .nav-inner{ height:64px; }
.brand{ display:inline-flex; align-items:center; border-radius:8px; }
.brand svg{ height:46px; width:auto; }
.nav-links{ display:flex; align-items:center; gap:4px; }
.nav-links a{ position:relative; padding:10px 14px; border-radius:999px; color:var(--muted); font-weight:500; font-size:.95rem; transition:color .25s,background .25s; overflow:hidden; }
.nav-links a:hover{ color:var(--text); background:var(--surface-2); }
.nav-cta{ margin-left:10px; padding:11px 18px; font-size:.9rem; }
.menu-btn{ display:none; width:44px; height:44px; border-radius:50%; place-items:center; position:relative; }
.menu-btn span{ position:absolute; left:12px; width:20px; height:1.5px; background:var(--text); transition:transform .35s var(--ease),top .35s var(--ease),opacity .3s; }
.menu-btn span:nth-child(1){ top:18px; } .menu-btn span:nth-child(2){ top:25px; }
body.menu-open .menu-btn span:nth-child(1){ top:21.5px; transform:rotate(45deg); }
body.menu-open .menu-btn span:nth-child(2){ top:21.5px; transform:rotate(-45deg); }
.mobile-menu{ position:fixed; inset:0; z-index:49; display:flex; flex-direction:column; justify-content:center; padding:0 var(--gutter); background:var(--menu-bg); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); opacity:0; visibility:hidden; transition:opacity .4s,visibility 0s .4s; }
body.menu-open .mobile-menu{ opacity:1; visibility:visible; transition:opacity .4s; }
body.menu-open{ overflow:hidden; }
.mobile-menu a{ display:block; font-family:var(--font-display); font-size:clamp(1.5rem,7vw,2.3rem); padding:16px 0; border-bottom:1px solid var(--line); opacity:0; transform:translateY(18px); transition:opacity .5s var(--ease),transform .55s var(--ease); }
body.menu-open .mobile-menu a{ opacity:1; transform:none; transition-delay:calc(.1s + var(--i,0)*.06s); }
.mobile-menu .mm-foot{ margin-top:28px; font-family:var(--font-mono); font-size:.8rem; color:var(--faint); }
@media (max-width:900px){ .nav-links{ display:none; } .menu-btn{ display:grid; } }

/* ---------- buttons ---------- */
.btn{ --tx:0px; --ty:0px; --s:1; position:relative; display:inline-flex; align-items:center; gap:10px; padding:17px 28px; border-radius:999px; font-weight:600; font-size:1rem; line-height:1; white-space:nowrap; overflow:hidden; isolation:isolate; transform:translate3d(var(--tx),var(--ty),0) scale(var(--s)); transition:transform .5s var(--ease),box-shadow .4s,background .3s,color .3s,border-color .3s; will-change:transform; }
.btn-primary{ color:#fff; background:linear-gradient(135deg,var(--blue),var(--violet)); box-shadow:0 12px 34px -12px rgba(61,108,255,.65); }
.btn-primary::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,0) 60%); opacity:0; transition:opacity .35s; }
.btn-primary:hover{ box-shadow:0 18px 44px -12px rgba(61,108,255,.8); }
.btn-primary:hover::after{ opacity:1; }
.btn-ghost{ color:var(--text); border:1px solid var(--line-strong); background:rgba(255,255,255,.02); }
.btn-ghost:hover{ border-color:rgba(217,210,255,.6); background:var(--surface-2); }
.btn .arrow{ width:18px; height:18px; flex:none; transition:transform .4s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }
.btn.pressed, .nav-links a.pressed{ --s:.96; transition-duration:.12s; }
.ripple{ position:absolute; z-index:1; width:24px; height:24px; border-radius:50%; pointer-events:none; background:rgba(255,255,255,.35); transform:translate(-50%,-50%) scale(0); animation:ripple .65s ease-out forwards; }
@keyframes ripple{ to{ transform:translate(-50%,-50%) scale(16); opacity:0; } }
.link{ position:relative; display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--text); }
.link::after{ content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:var(--blue); transform:scaleX(.35); transform-origin:left; transition:transform .4s var(--ease); }
.link:hover::after{ transform:scaleX(1); }

/* ---------- type ---------- */
.eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-mono); font-size:.8rem; letter-spacing:.02em; color:var(--faint); margin-bottom:22px; }
.eyebrow::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--coral); box-shadow:0 0 0 4px rgba(255,122,89,.16); flex:none; }
.h1{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.85rem,1.05rem + 3.3vw,3.55rem); line-height:1.12; letter-spacing:-.01em; }
.h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.4rem,.95rem + 1.8vw,2.45rem); line-height:1.2; letter-spacing:-.01em; }
.h3{ font-weight:600; font-size:1.15rem; line-height:1.3; letter-spacing:-.005em; }
.sub{ color:var(--muted); font-size:1.08rem; max-width:58ch; margin-top:18px; }
.mono{ font-family:var(--font-mono); font-size:.8rem; color:var(--faint); }
.hand{ font-family:var(--font-hand); color:var(--coral); line-height:1; }

/* word-mask reveal (used on h1 and h2) */
.w{ display:inline-block; vertical-align:top; padding:.02em .06em .16em 0; margin-bottom:-.16em; }
.wi{ display:inline-block; opacity:0; filter:blur(12px); transform:translateY(14px); transition:opacity .9s var(--ease),filter 1.1s var(--ease),transform 1.1s var(--ease); transition-delay:var(--d,0s); }
.split.in .wi, .hero-copy.in .wi{ opacity:1; filter:blur(0); transform:none; }

/* scroll reveals */
.reveal, .stagger > *{ --ry:22px; opacity:0; transform:translateY(var(--ry)); transition:opacity 1s var(--ease),transform 1s var(--ease); transition-delay:var(--d,0s); }
.reveal.in, .stagger.in > *{ opacity:1; --ry:0px; }

/* ---------- hero ---------- */
.hero{ position:relative; min-height:0; display:flex; align-items:center; padding:calc(var(--nav-h) + 56px + env(safe-area-inset-top,0px)) 0 48px; overflow:hidden; isolation:isolate; }
.hero-canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:40px; align-items:center; }
.hero-mark{ width:min(100%,540px); aspect-ratio:121.77/110.02; justify-self:center; pointer-events:none; }
.hero-copy .eyebrow{ opacity:0; transition:opacity .8s; }
.hero-copy.in .eyebrow{ opacity:1; }
.hand-line{ display:flex; align-items:center; gap:12px; margin:20px 0 22px; }
.ai-badge{ font-family:var(--font-mono); font-weight:700; font-size:.82rem; letter-spacing:.02em; color:#fff; background:var(--blue); border-radius:7px; padding:5px 8px 4px; line-height:1.1; opacity:0; transform:scale(.7); transition:opacity .5s var(--ease),transform .7s var(--ease); }
.hero-copy.in .ai-badge{ opacity:1; transform:none; transition-delay:.95s; }
.hero-hand{ font-size:clamp(1.7rem,1.2rem + 1.5vw,2.4rem); transform:rotate(-2deg); transform-origin:left center; clip-path:inset(-25% 100% -25% -2%); transition:clip-path 1.25s cubic-bezier(.45,0,.2,1); padding-right:.2em; }
.hero-copy.in .hero-hand{ clip-path:inset(-25% -4% -25% -2%); transition-delay:1.05s; }
.lead{ font-size:clamp(1rem,.95rem + .3vw,1.18rem); color:var(--muted); max-width:52ch; margin-bottom:34px; }
.fade{ opacity:0; transform:translateY(18px); transition:opacity .9s var(--ease),transform .9s var(--ease); transition-delay:var(--d,0s); }
.hero-copy.in .fade{ opacity:1; transform:none; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }
.hero-actions > .fade{ display:inline-flex; }
.scroll-cue{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:1; display:flex; flex-direction:column; align-items:center; gap:10px; font-family:var(--font-mono); font-size:.7rem; color:var(--faint); opacity:0; transition:opacity 1s 1.8s; }
.hero.in .scroll-cue{ opacity:1; }
.scroll-cue i{ display:block; width:1px; height:42px; background:var(--line-strong); position:relative; overflow:hidden; }
.scroll-cue i::after{ content:""; position:absolute; left:0; top:-40%; width:100%; height:40%; background:var(--coral); animation:cue 2.2s var(--ease-io) infinite; }
@keyframes cue{ to{ top:110%; } }
@media (max-width:900px){
  .hero{ min-height:0; padding-top:calc(var(--nav-h) + 8px + env(safe-area-inset-top,0px)); padding-bottom:56px; }
  .hero-grid{ grid-template-columns:1fr; gap:6px; }
  .hero-mark{ order:-1; width:min(66%,300px); margin-bottom:10px; }
  .scroll-cue{ display:none; }
}

/* ---------- sections ---------- */
.section{ position:relative; padding:clamp(60px,7.5vw,104px) 0; }
.section-head{ max-width:760px; margin-bottom:clamp(32px,5vw,60px); }
.glow{ position:absolute; border-radius:50%; pointer-events:none; z-index:-1; }
.section.clip{ overflow:clip; }

/* services bento */
.bento{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.card{ --mx:50%; --my:50%; --rotx:0deg; --roty:0deg; position:relative; display:flex; flex-direction:column; gap:16px; padding:30px 28px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); overflow:hidden; transform:translateY(var(--ry,0px)) perspective(1000px) rotateX(var(--rotx)) rotateY(var(--roty)); transition:transform .7s var(--ease),opacity 1s var(--ease),border-color .4s,background .4s; transition-delay:var(--d,0s); }
.card.tilting{ transition:transform .12s linear,border-color .4s,background .4s; transition-delay:0s; }
.card::before{ content:""; position:absolute; inset:0; background:radial-gradient(380px circle at var(--mx) var(--my),rgba(61,108,255,.2),rgba(61,108,255,0) 62%); opacity:0; transition:opacity .45s; pointer-events:none; }
.card:hover::before, .card.tilting::before{ opacity:1; }
.card:hover{ border-color:var(--line-strong); background:var(--surface-2); }
.card > *{ position:relative; }
.card p{ color:var(--muted); font-size:.97rem; }
.card .icon{ width:32px; height:32px; color:var(--lilac); }
.card .card-vis{ margin-bottom:4px; }
.card .icon .dot{ fill:var(--blue); }
.card .icon .acc{ fill:var(--coral); }
.card .icon .ln{ stroke:currentColor; stroke-opacity:.55; fill:none; stroke-width:1.2; stroke-linecap:round; }
.card .link{ margin-top:auto; align-self:flex-start; font-size:.95rem; }
.card.flagship{ grid-column:span 2; grid-row:span 2; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:24px; padding:36px; background:linear-gradient(135deg,rgba(61,108,255,.16),rgba(138,92,255,.09) 55%,rgba(255,255,255,.03)); }
.card.flagship::before{ background:radial-gradient(460px circle at var(--mx) var(--my),rgba(138,92,255,.22),rgba(138,92,255,0) 62%); }
.card.flagship .flag-body{ display:flex; flex-direction:column; gap:16px; }
.card.flagship .h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.3rem,1rem + 1.2vw,1.85rem); line-height:1.2; }
.tag{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.02em; color:var(--lilac); border:1px solid var(--line-strong); padding:5px 10px; border-radius:999px; }
.tag::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--coral); }
.orbit{ position:relative; width:min(100%,300px); aspect-ratio:1; margin:auto; display:grid; place-items:center; }
.orbit-ring{ position:absolute; border-radius:50%; border:1px dashed rgba(217,210,255,.22); }
.orbit-ring.r1{ inset:12%; animation:spin 30s linear infinite; }
.orbit-ring.r2{ inset:0; animation:spin 48s linear infinite reverse; border-style:solid; border-color:rgba(217,210,255,.1); }
.orbit-ring i{ position:absolute; width:8px; height:8px; border-radius:50%; background:var(--blue); box-shadow:0 0 14px 3px rgba(61,108,255,.55); left:50%; top:-4px; margin-left:-4px; }
.orbit-ring.r2 i{ background:var(--violet); box-shadow:0 0 14px 3px rgba(138,92,255,.55); }
.orbit-ring.r2 i:nth-child(2){ top:auto; bottom:-4px; width:6px; height:6px; background:var(--lilac); box-shadow:0 0 10px 2px rgba(217,210,255,.4); }
.orbit-icon{ width:46%; height:auto; filter:drop-shadow(0 0 18px rgba(61,108,255,.35)); }
.orbit.paused .orbit-ring{ animation-play-state:paused; }
@keyframes spin{ to{ transform:rotate(360deg); } }
@media (max-width:1100px){ .bento{ grid-template-columns:repeat(2,minmax(0,1fr)); } .card.flagship{ grid-row:span 1; } }
@media (max-width:700px){ .bento{ grid-template-columns:1fr; } .card.flagship{ grid-column:span 1; grid-template-columns:1fr; padding:30px 26px; } .orbit{ width:min(72%,240px); } }

/* private ai spotlight */
@keyframes chatin{ to{ opacity:1; transform:none; } }
@keyframes blink{ 50%{ opacity:0; } }
@media (max-width:900px){
}

/* how we work */
.steps{ position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
.steps-svg{ position:absolute; inset:0; pointer-events:none; overflow:visible; }
.steps-svg path{ fill:none; stroke:var(--blue); stroke-width:1.2; stroke-linecap:round; opacity:.8; transition:stroke-dashoffset 1.6s var(--ease-io); }
.step{ position:relative; display:flex; flex-direction:column; gap:14px; }
.badge{ width:46px; height:46px; border-radius:50%; border:1px solid var(--line-strong); display:grid; place-items:center; font-family:var(--font-mono); font-size:.8rem; color:var(--muted); background:var(--bg); position:relative; z-index:1; transition:background .5s,border-color .5s,box-shadow .5s,color .5s; }
.step.lit .badge{ background:var(--blue); border-color:var(--blue); color:#fff; box-shadow:0 0 0 7px rgba(61,108,255,.14),0 0 24px rgba(61,108,255,.5); }
.step h3{ font-weight:600; font-size:1.12rem; margin-top:10px; }
.step p{ color:var(--muted); font-size:.97rem; }
@media (max-width:900px){ .steps{ grid-template-columns:1fr; gap:36px; } .step{ display:grid; grid-template-columns:46px 1fr; column-gap:18px; } .step .badge{ grid-row:span 2; } .step h3{ margin-top:10px; } .step p{ grid-column:2; } }

/* who we serve */
.panels{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(28px,5vw,72px); }
.panel{ padding-top:28px; border-top:1px solid var(--line-strong); }
.panel h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.2rem,1rem + .9vw,1.6rem); line-height:1.25; margin-bottom:14px; }
.panel p{ color:var(--muted); margin-bottom:22px; max-width:46ch; }
.panel ul{ display:grid; gap:12px; }
.panel li{ display:flex; gap:14px; align-items:baseline; font-size:.98rem; }
.panel li::before{ content:""; flex:none; width:6px; height:6px; border-radius:50%; background:var(--blue); transform:translateY(-2px); box-shadow:0 0 10px rgba(61,108,255,.6); }
@media (max-width:700px){ .panels{ grid-template-columns:1fr; } }
.marquee-wrap{ margin-top:clamp(56px,8vw,96px); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.marquee-wrap .mono{ display:none; }
.marquee{ position:relative; overflow:hidden; padding:22px 0 26px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.marquee-track{ display:flex; width:max-content; animation:marquee 60s linear infinite; }
.marquee.paused .marquee-track, .marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee ul{ display:flex; align-items:center; }
.marquee li{ display:flex; align-items:center; gap:34px; padding-right:34px; white-space:nowrap; font-family:var(--font-mono); font-size:.98rem; color:var(--muted); }
.marquee li::after{ content:""; width:5px; height:5px; border-radius:50%; background:var(--violet); opacity:.8; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* why wistara */
.principles{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; }
.principle{ padding-top:24px; border-top:1px solid var(--line); }
.principle svg{ width:34px; height:34px; margin-bottom:18px; color:var(--lilac); }
.principle svg path, .principle svg circle.ln{ fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:120; stroke-dashoffset:120; transition:stroke-dashoffset 1.4s var(--ease-io) .2s; }
.principle svg .dot{ fill:var(--coral); transform-origin:center; transform-box:fill-box; transform:scale(0); transition:transform .5s var(--ease) 1.1s; }
.in .principle svg path, .in .principle svg circle.ln{ stroke-dashoffset:0; }
.in .principle svg .dot{ transform:none; }
.principle h3{ font-weight:600; font-size:1.08rem; margin-bottom:8px; }
.principle p{ color:var(--muted); font-size:.95rem; }
@media (max-width:900px){ .principles{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .principles{ grid-template-columns:1fr; } }
.counters{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:clamp(56px,8vw,88px); }
.counter{ padding:26px 26px 24px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); }
.counter .num{ display:block; font-family:var(--font-mono); font-size:clamp(2rem,1.4rem + 2.4vw,3.2rem); line-height:1; color:var(--text); margin-bottom:10px; font-variant-numeric:tabular-nums; }
.counter p{ color:var(--muted); font-size:.95rem; }
@media (max-width:700px){ .counters{ grid-template-columns:1fr; } }
.placeholder{ margin-top:22px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px; padding:22px 26px; border:1px dashed var(--line-strong); border-radius:var(--radius); color:var(--muted); font-size:.95rem; }
.placeholder .ptag{ font-family:var(--font-mono); font-size:.7rem; color:var(--coral); border:1px solid rgba(255,122,89,.45); padding:4px 9px; border-radius:999px; letter-spacing:.02em; }

/* final cta */
.cta{ position:relative; overflow:clip; text-align:center; padding:clamp(110px,15vw,190px) 0 clamp(100px,13vw,170px); }
.cta-trail{ position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.5; pointer-events:none; }
.trail-dots{ fill:none; stroke:var(--lilac); stroke-width:3.4; stroke-linecap:round; stroke-dasharray:0 13; }
#trailMaskPath{ transition:stroke-dashoffset 2.6s var(--ease-io); }
.trail-end{ fill:var(--coral); opacity:0; transition:opacity .6s var(--ease) 2.2s; }
.cta.in .trail-end{ opacity:1; }
.cta .container{ position:relative; z-index:1; }
.cta .h2{ max-width:16ch; margin-inline:auto; }
.cta-hand{ font-size:clamp(1.7rem,1.3rem + 1.5vw,2.5rem); margin:22px auto 34px; transform:translateY(var(--ry,0px)) rotate(-2deg); display:inline-block; }
.cta-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.cta .mono{ margin-top:28px; }

/* footer */
.footer{ position:relative; z-index:1; background:var(--bg-deep); border-top:1px solid var(--line); padding:64px 0 calc(28px + env(safe-area-inset-bottom,0px)); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; align-items:start; }
.footer-logo svg{ width:min(290px,72vw); height:auto; }
.footer-blurb{ color:var(--muted); font-size:.95rem; max-width:40ch; margin-top:20px; }
.footer h4{ font-family:var(--font-mono); font-size:.75rem; color:var(--faint); letter-spacing:.02em; margin-bottom:16px; font-weight:400; }
.footer ul{ display:grid; gap:10px; }
.footer li a{ color:var(--muted); transition:color .25s; }
.footer li a:hover{ color:var(--text); }
.footer-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-top:52px; padding-top:22px; border-top:1px solid var(--line); font-size:.85rem; color:var(--faint); }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } .footer-grid > :first-child{ grid-column:span 2; } }
@media (max-width:480px){ .footer-grid{ grid-template-columns:1fr; } .footer-grid > :first-child{ grid-column:auto; } }

/* toast + page veil */
.toast{ position:fixed; left:50%; bottom:calc(24px + env(safe-area-inset-bottom,0px)); transform:translate(-50%,16px); z-index:120; padding:12px 18px; border-radius:999px; background:var(--toast-bg); color:var(--toast-text); font-size:.9rem; font-weight:500; opacity:0; pointer-events:none; transition:opacity .35s,transform .45s var(--ease); white-space:nowrap; max-width:calc(100vw - 32px); }
.toast.show{ opacity:1; transform:translate(-50%,0); }
.veil{ position:fixed; inset:0; z-index:90; background:var(--intro-bg); transform:scaleY(0); transform-origin:bottom; pointer-events:none; transition:transform .55s var(--ease-io); }
.veil.on{ transform:scaleY(1); }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .bg-orb,.orbit-ring,.scroll-cue i::after{ animation:none !important; }
  .marquee{ -webkit-mask-image:none; mask-image:none; }
  .marquee-track{ animation:none !important; width:auto; }
  .marquee ul{ flex-wrap:wrap; row-gap:10px; }
  .marquee ul:nth-child(2){ display:none; }
  .steps-svg path{ stroke-dashoffset:0 !important; }
  .step .badge{ background:var(--blue); border-color:var(--blue); color:#fff; }
  .principle svg path, .principle svg circle.ln{ stroke-dashoffset:0 !important; }
  .principle svg .dot{ transform:none !important; }
  .card{ transform:none !important; }
  .card-vis *{ animation:none !important; }
  .mani .mw{ color:var(--text) !important; }
  .mani em{ background-position:0 0 !important; }
  .cursor{ display:none; }
}

/* if scripting fails, show everything */
html.no-anim .reveal, html.no-anim .stagger > *, html.no-anim .wi, html.no-anim .fade, html.no-anim .hero-hand, html.no-anim .ai-badge, html.no-anim .hero-copy .eyebrow, html.no-anim .scroll-cue{ opacity:1 !important; transform:none !important; clip-path:none !important; }
html.no-anim .intro{ display:none !important; }

/* ---------- light band ---------- */
.section.light{ --bg:#F5F7FC; --text:#0E1430; --muted:rgba(14,20,48,.7); --faint:rgba(14,20,48,.5); --line:rgba(14,20,48,.12); --line-strong:rgba(14,20,48,.3); --surface:rgba(14,20,48,.035); --surface-2:rgba(14,20,48,.06); --coral:#E85A3A; background:var(--cloud); color:var(--text); position:relative; }
.section.light + .section.light{ padding-top:0; }
.section.light::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(60vw 44vw at 100% 0%,rgba(138,92,255,.15),transparent 70%),radial-gradient(40vw 30vw at 0% 0%,rgba(61,108,255,.08),transparent 70%); }
.section.light + .section.light::before{ background:radial-gradient(50vw 40vw at 0% 100%,rgba(61,108,255,.13),transparent 70%),radial-gradient(34vw 30vw at 90% 100%,rgba(232,90,58,.12),transparent 70%); }
.section.light > .container{ position:relative; }
.light .badge{ background:var(--cloud); color:var(--muted); }
.light .step.lit .badge{ color:#fff; }
.light .marquee li{ color:rgba(14,20,48,.72); }
.light .marquee{ -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
/* gradient panels */
.panel{ border-top:0; padding:34px 32px 36px; border-radius:var(--radius); color:#fff; position:relative; overflow:hidden; }
.panel.sb{ background:linear-gradient(135deg,#3D6CFF 0%,#8A5CFF 100%); box-shadow:0 30px 60px -30px rgba(61,108,255,.6); }
.panel.ent{ background:linear-gradient(135deg,#8A5CFF 0%,#E85A3A 100%); box-shadow:0 30px 60px -30px rgba(232,90,58,.5); }
.panel::after{ content:""; position:absolute; right:-18%; top:-30%; width:70%; aspect-ratio:1; border-radius:50%; background:radial-gradient(closest-side,rgba(255,255,255,.22),transparent 72%); pointer-events:none; }
.panel p{ color:rgba(255,255,255,.86); }
.panel li::before{ background:#fff; box-shadow:0 0 10px rgba(255,255,255,.6); }
.panel .panel-mark{ position:absolute; right:22px; bottom:16px; width:92px; opacity:.4; }
/* service accents */
.card[style*="--acc"] .icon .dot{ fill:var(--acc); }
.card[style*="--acc"] .icon .ln{ stroke:var(--acc); stroke-opacity:.6; }
.card[style*="--acc"]::before{ background:radial-gradient(380px circle at var(--mx) var(--my),rgba(var(--acc-rgb),.24),rgba(var(--acc-rgb),0) 62%); }
.card[style*="--acc"]:hover{ border-color:rgba(var(--acc-rgb),.5); }
.card .icon-wrap{ width:54px; height:54px; border-radius:16px; display:grid; place-items:center; background:rgba(var(--acc-rgb,61,108,255),.12); border:1px solid rgba(var(--acc-rgb,61,108,255),.28); }
/* counters */
.counter{ border-top:3px solid var(--cacc,var(--blue)); border-radius:var(--radius-sm) var(--radius-sm) var(--radius) var(--radius); }
.counter .num{ color:var(--cacc,var(--text)); }
/* section accent line under light headings */
.light .section-head .h2::after{ content:""; display:block; width:72px; height:4px; border-radius:2px; margin-top:22px; background:linear-gradient(90deg,var(--blue),var(--violet),var(--coral)); }

/* ---------- animated service visuals ---------- */
.card-vis{ width:100%; border-radius:14px; background:radial-gradient(120% 90% at 50% 110%,rgba(var(--acc-rgb),.14),rgba(255,255,255,0) 60%),var(--bg-deep); border:1px solid rgba(var(--acc-rgb),.2); overflow:hidden; }
.card-vis svg{ width:100%; height:auto; display:block; }
.t-breathe{ animation:tbreathe 3.6s ease-in-out infinite; transform-origin:160px 52px; }
@keyframes tbreathe{ 50%{ transform:scale(1.18); opacity:.8; } }
.t-star{ animation:tstar 12s linear infinite; }
@keyframes tstar{ to{ transform:rotate(360deg); } }
.t-flow{ animation:tflow 1.6s linear infinite; }
.t-flow2{ animation-duration:1.1s; }
@keyframes tflow{ to{ stroke-dashoffset:-32; } }
.t-scan{ animation:tscan 9s linear infinite; }
@keyframes tscan{ 0%{ transform:translateX(0); opacity:0 } 8%{ opacity:1 } 92%{ opacity:1 } 100%{ transform:translateX(166px); opacity:0 } }
.t-comet{ stroke-dasharray:70 400; animation:tcomet 4s linear infinite; }
@keyframes tcomet{ to{ stroke-dashoffset:-470; } }
.t-nodes circle{ animation:tnode 4s linear infinite; animation-delay:calc(var(--i) * 1s); transform-origin:center; transform-box:fill-box; }
@keyframes tnode{ 0%,8%{ transform:scale(1); } 12%{ transform:scale(1.7); } 30%,100%{ transform:scale(1); } }
.t-check{ stroke-dasharray:24; stroke-dashoffset:24; animation:tcheck 4s var(--ease) infinite; }
@keyframes tcheck{ 0%,55%{ stroke-dashoffset:24 } 70%,92%{ stroke-dashoffset:0 } 100%{ stroke-dashoffset:24 } }
/* strategy: brain constellation */
.b-nodes circle{ animation:bnode 3.3s ease-in-out infinite; animation-delay:calc(var(--i) * .3s); transform-origin:center; transform-box:fill-box; }
@keyframes bnode{ 0%,100%{ opacity:.75; transform:scale(1) } 50%{ opacity:1; transform:scale(1.6); filter:drop-shadow(0 0 4px var(--violet)) } }
/* analytics: chart builds itself */
.v-bars rect{ transform-origin:bottom; transform:scaleY(0); animation:vgrow 5.2s var(--ease) infinite; }
.v-bars rect:nth-child(2){ animation-delay:.1s } .v-bars rect:nth-child(3){ animation-delay:.2s } .v-bars rect:nth-child(4){ animation-delay:.3s } .v-bars rect:nth-child(5){ animation-delay:.4s } .v-bars rect:nth-child(6){ animation-delay:.5s }
@keyframes vgrow{ 0%{ transform:scaleY(0) } 18%,82%{ transform:scaleY(1) } 92%,100%{ transform:scaleY(0) } }
.v-line{ stroke-dasharray:260; stroke-dashoffset:260; animation:vdraw 5.2s var(--ease-io) infinite; }
@keyframes vdraw{ 0%,18%{ stroke-dashoffset:260 } 48%,82%{ stroke-dashoffset:0 } 92%,100%{ stroke-dashoffset:260 } }
.v-area{ opacity:0; animation:varea 5.2s ease infinite; }
@keyframes varea{ 0%,40%{ opacity:0 } 55%,82%{ opacity:1 } 92%,100%{ opacity:0 } }
.v-end{ opacity:0; animation:vend 5.2s ease infinite; }
@keyframes vend{ 0%,46%{ opacity:0 } 50%,82%{ opacity:1 } 92%,100%{ opacity:0 } }
.v-endring{ opacity:0; transform-origin:187px 12px; animation:vendring 5.2s ease-out infinite; }
@keyframes vendring{ 0%,48%{ opacity:0; transform:scale(1) } 50%{ opacity:.9; transform:scale(1) } 70%,100%{ opacity:0; transform:scale(3) } }
/* automation: pulse travels, steps check off */
.v-track{ stroke-dasharray:172; stroke-dashoffset:172; animation:vtrack 4.4s linear infinite; }
@keyframes vtrack{ 0%{ stroke-dashoffset:172 } 70%,92%{ stroke-dashoffset:0 } 100%{ stroke-dashoffset:172 } }
.v-step circle{ fill-opacity:.15; stroke-opacity:.6; animation:vfill 4.4s linear infinite; }
.v-step.s0 circle{ fill-opacity:1; animation:none; }
.v-step.s1 circle{ animation-name:vf1 } .v-step.s2 circle{ animation-name:vf2 } .v-step.s3 circle{ animation-name:vf3 }
@keyframes vf1{ 0%,22%{ fill-opacity:.15 } 24%,92%{ fill-opacity:1 } 100%{ fill-opacity:.15 } }
@keyframes vf2{ 0%,45%{ fill-opacity:.15 } 47%,92%{ fill-opacity:1 } 100%{ fill-opacity:.15 } }
@keyframes vf3{ 0%,68%{ fill-opacity:.15 } 70%,92%{ fill-opacity:1 } 100%{ fill-opacity:.15 } }
.v-chk{ stroke-dasharray:16; stroke-dashoffset:16; animation:vchk 4.4s var(--ease) infinite; }
.v-step.s1 .v-chk{ animation-name:vc1 } .v-step.s2 .v-chk{ animation-name:vc2 } .v-step.s3 .v-chk{ animation-name:vc3 }
@keyframes vc1{ 0%,23%{ stroke-dashoffset:16 } 32%,92%{ stroke-dashoffset:0 } 100%{ stroke-dashoffset:16 } }
@keyframes vc2{ 0%,46%{ stroke-dashoffset:16 } 55%,92%{ stroke-dashoffset:0 } 100%{ stroke-dashoffset:16 } }
@keyframes vc3{ 0%,69%{ stroke-dashoffset:16 } 78%,92%{ stroke-dashoffset:0 } 100%{ stroke-dashoffset:16 } }
.v-pulse-dot{ animation:vpd 4.4s linear infinite; }
@keyframes vpd{ 0%,69%{ opacity:1 } 72%,100%{ opacity:0 } }
.card.paused .card-vis *{ animation-play-state:paused; }
/* ---------- manifesto ---------- */
.manifesto{ padding:clamp(8px,2vw,24px) 0 clamp(24px,4vw,56px); }
.mani{ font-weight:500; font-size:clamp(1.35rem,1rem + 2vw,2.5rem); line-height:1.3; letter-spacing:-.015em; max-width:30ch; margin-inline:auto; text-align:center; }
.mani .mw{ color:rgba(26,20,17,.28); transition:color .7s ease; transition-delay:var(--d,0s); }
.mani.in .mw{ color:var(--text); }
.mani em{ font-style:normal; display:inline; background-image:linear-gradient(90deg,#3D6CFF 0%,#8A5CFF 22%,#E85A3A 40%,rgba(26,20,17,.28) 40%,rgba(26,20,17,.28) 100%); background-size:250% 100%; background-position:100% 0; -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
.mani.in em{ animation:gradsweep 1.8s cubic-bezier(.65,0,.35,1) .9s forwards; }
@keyframes gradsweep{ to{ background-position:0 0; } }
@media (max-width:760px){ .mani{ text-align:left; margin-inline:0; } }

/* ---------- progress line, cursor, active nav ---------- */
.progress{ position:fixed; left:0; top:env(safe-area-inset-top,0px); height:2px; width:100%; z-index:60; background:linear-gradient(90deg,var(--blue),var(--violet),var(--coral)); transform:scaleX(0); transform-origin:left; pointer-events:none; }
.cursor{ position:fixed; left:0; top:0; z-index:200; width:10px; height:10px; margin:-5px 0 0 -5px; border-radius:50%; background:var(--coral); pointer-events:none; opacity:0; transition:opacity .3s,transform .18s var(--ease); mix-blend-mode:screen; }
.cursor i{ position:absolute; inset:-14px; border-radius:50%; border:1px solid rgba(255,122,89,.55); transform:scale(.5); opacity:0; transition:transform .35s var(--ease),opacity .3s; }
.cursor.show{ opacity:.9; }
.cursor.hover{ transform:scale(.6); }
.cursor.hover i{ transform:scale(1); opacity:1; }
.cursor.down{ transform:scale(1.6); }
@media (pointer:coarse){ .cursor{ display:none; } }
.nav-links a.active{ color:var(--text); }
.nav-links a.active::after{ content:""; position:absolute; left:50%; bottom:4px; width:4px; height:4px; margin-left:-2px; border-radius:50%; background:var(--coral); }

/* ---------- palette options (preview switcher) ---------- */
html[data-palette="ink"]{ --bg:#0A0B12; --bg-deep:#06070C; --navy:#0A0B12; --intro-bg:#0A0B12; --nav-bg:rgba(10,11,18,.76); --menu-bg:rgba(10,11,18,.95); --chat-bg:rgba(6,7,12,.9); }
html[data-palette="plum"]{ --bg:#170C2C; --bg-deep:#0F0720; --navy:#170C2C; --intro-bg:#170C2C; --nav-bg:rgba(23,12,44,.76); --menu-bg:rgba(23,12,44,.95); --chat-bg:rgba(15,7,32,.9); --lilac:#E6D9FF; }
html[data-palette="forest"]{ --bg:#07191C; --bg-deep:#041113; --navy:#07191C; --intro-bg:#07191C; --nav-bg:rgba(7,25,28,.76); --menu-bg:rgba(7,25,28,.95); --chat-bg:rgba(4,17,19,.9); --lilac:#D5EFEA; --muted:rgba(213,239,234,.74); --faint:rgba(213,239,234,.5); --line:rgba(213,239,234,.13); --line-strong:rgba(213,239,234,.3); --dot-grid:rgba(213,239,234,.1); }
html[data-light]{ --bg:#F5F7FC; --bg-deep:#E8ECF6; --navy:#0E1430; --text:#0E1430; --muted:rgba(14,20,48,.72); --faint:rgba(14,20,48,.5); --line:rgba(14,20,48,.12); --line-strong:rgba(14,20,48,.28); --surface:rgba(14,20,48,.035); --surface-2:rgba(14,20,48,.065); --coral:#E85A3A; --nav-bg:rgba(245,247,252,.78); --menu-bg:rgba(245,247,252,.96); --chat-bg:rgba(255,255,255,.92); --dot-grid:rgba(14,20,48,.12); --toast-bg:#0E1430; --toast-text:#F5F7FC; color-scheme:light; }
html[data-light] .bg-orb{ opacity:.55; }
html[data-light] .bg-grain{ opacity:.035; }
html[data-light] .btn-ghost{ background:rgba(14,20,48,.03); }
html[data-light] .ai-badge{ color:#fff; }
html[data-light] .card{ background:#fff; border-color:rgba(14,20,48,.1); box-shadow:0 20px 50px -30px rgba(14,20,48,.25); }
html[data-light] .card.flagship{ background:linear-gradient(135deg,rgba(61,108,255,.12),rgba(138,92,255,.08) 55%,#fff); }
html[data-light] .card-vis{ background:radial-gradient(120% 90% at 50% 110%,rgba(var(--acc-rgb),.14),rgba(255,255,255,0) 60%),#F7F3EC; }
html[data-light] .lock circle, html[data-light] .lock rect{ fill:#fff; }
html[data-light] .lock rect, html[data-light] .lock path{ stroke:#0E1430; }
html[data-light] .core-public path, html[data-light] .core-public circle{ stroke:#0E1430; }
html[data-light] .counter{ background:#fff; }
html[data-light] .section.light{ --bg:#0E1430; --text:#F5F7FC; --muted:rgba(217,210,255,.74); --faint:rgba(217,210,255,.5); --line:rgba(217,210,255,.13); --line-strong:rgba(217,210,255,.3); --coral:#FF7A59; background:#0E1430; color:#F5F7FC; }
html[data-light] .section.light::before{ background:radial-gradient(60vw 44vw at 100% 0%,rgba(138,92,255,.25),transparent 70%); }
html[data-light] .section.light + .section.light::before{ background:radial-gradient(50vw 40vw at 0% 100%,rgba(61,108,255,.22),transparent 70%); }
html[data-light] .light .badge{ background:#0E1430; }
html[data-light] .light .marquee li{ color:rgba(217,210,255,.74); }
html[data-light] .footer{ background:#0E1430; color:#F5F7FC; --muted:rgba(217,210,255,.74); --faint:rgba(217,210,255,.5); --line:rgba(217,210,255,.13); }
html[data-light] .cta-trail{ opacity:.35; }
html[data-light] .cursor{ mix-blend-mode:normal; }


html[data-light]{ --wordmark:#0E1430; --mark:#3D6CFF; --mark2:#8A5CFF; }
html[data-light] .intro, html[data-light] .footer, html[data-light] .core-private, html[data-light] .section.light{ --wordmark:#F5F7FC; --mark:#F5F7FC; --mark2:#D9D2FF; }
html[data-light] .cta-mark{ --mark:#3D6CFF; }

html[data-palette="graphite"]{ --bg:#121316; --bg-deep:#0C0D0F; --navy:#121316; --intro-bg:#121316; --nav-bg:rgba(18,19,22,.78); --menu-bg:rgba(18,19,22,.95); --chat-bg:rgba(12,13,15,.9); --lilac:#E4E2EE; --muted:rgba(228,226,238,.72); --faint:rgba(228,226,238,.48); --line:rgba(228,226,238,.12); --line-strong:rgba(228,226,238,.28); --dot-grid:rgba(228,226,238,.09); }
html[data-palette="mocha"]{ --bg:#1A1411; --bg-deep:#120D0B; --navy:#1A1411; --intro-bg:#1A1411; --nav-bg:rgba(26,20,17,.78); --menu-bg:rgba(26,20,17,.95); --chat-bg:rgba(18,13,11,.9); --lilac:#EFE4DA; --muted:rgba(239,228,218,.74); --faint:rgba(239,228,218,.5); --line:rgba(239,228,218,.12); --line-strong:rgba(239,228,218,.28); --dot-grid:rgba(239,228,218,.09); }
html[data-palette="wine"]{ --bg:#23101C; --bg-deep:#180A13; --navy:#23101C; --intro-bg:#23101C; --nav-bg:rgba(35,16,28,.78); --menu-bg:rgba(35,16,28,.95); --chat-bg:rgba(24,10,19,.9); --lilac:#F3DCE6; --muted:rgba(243,220,230,.74); --faint:rgba(243,220,230,.5); --line:rgba(243,220,230,.12); --line-strong:rgba(243,220,230,.28); --dot-grid:rgba(243,220,230,.09); }
html[data-palette="sand"]{ --bg:#F7F3EC; --bg-deep:#EEE7DC; --navy:#1A1411; --text:#1A1411; --muted:rgba(26,20,17,.72); --faint:rgba(26,20,17,.5); --line:rgba(26,20,17,.12); --line-strong:rgba(26,20,17,.28); --surface:rgba(26,20,17,.035); --surface-2:rgba(26,20,17,.065); --coral:#E85A3A; --nav-bg:rgba(247,243,236,.8); --menu-bg:rgba(247,243,236,.96); --chat-bg:rgba(255,255,255,.92); --dot-grid:rgba(26,20,17,.12); --toast-bg:#1A1411; --toast-text:#F7F3EC; --wordmark:#1A1411; --mark:#3D6CFF; --mark2:#8A5CFF; color-scheme:light; }
html[data-palette="sand"] .section.light, html[data-palette="sand"] .footer{ background:#1A1411; }
html[data-palette="sand"] .section.light{ --bg:#1A1411; }
html[data-palette="sand"] .light .badge{ background:#1A1411; }

/* sand base polish */
html[data-light] .tag{ color:var(--text); }
html[data-light] .principle svg{ color:var(--text); }
html[data-light] .eyebrow{ color:var(--muted); }
html[data-light] .mono{ color:var(--muted); }
html[data-light] .card p, html[data-light] .counter p, html[data-light] .principle p{ color:rgba(26,20,17,.76); }
html[data-palette="sand"]{ --intro-bg:#F7F3EC; }
html[data-palette="sand"] .intro{ --wordmark:#1A1411; --mark:#3D6CFF; --mark2:#8A5CFF; }

/* ---------- private ai comparison ---------- */
.bubble{ font-size:.9rem; line-height:1.45; padding:9px 12px; border-radius:12px; max-width:94%; min-height:1em; color:var(--text); }
.bubble.q{ justify-self:end; background:#fff; border:1px solid var(--line); border-bottom-right-radius:4px; }
.bubble.a{ background:var(--blue); color:#fff; border-bottom-left-radius:4px; }
.bubble.a:empty, .bubble.q:empty{ display:none; }
.bubble .caret{ display:inline-block; width:1px; height:1em; background:currentColor; vertical-align:-.15em; margin-left:2px; animation:blink 1s steps(2) infinite; }
.chips{ display:flex; flex-wrap:wrap; gap:6px; }
.chips span{ font-family:var(--font-mono); font-size:.66rem; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:3px 8px; background:#fff; }
.spot-end{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:28px; }

/* ---------- tighter rhythm ---------- */
.section{ padding:clamp(44px,6vw,84px) 0; }
.section-head{ margin-bottom:clamp(24px,4vw,44px); }
.marquee-wrap{ margin-top:clamp(36px,5vw,64px); }
.counters{ margin-top:clamp(32px,5vw,56px); }
.cta{ padding:clamp(72px,10vw,130px) 0 clamp(64px,9vw,110px); }
.hero{ padding-bottom:32px; }
@media (max-width:900px){
  .hero{ padding-bottom:24px; }
  .steps{ gap:22px; }
  .step{ grid-template-columns:40px 1fr; column-gap:14px; }
  .badge{ width:40px; height:40px; font-size:.74rem; }
  .step h3{ margin-top:6px; font-size:1.05rem; }
  .step p{ font-size:.94rem; }
  .panels{ gap:14px; }
  .panel{ padding:24px 22px 26px; }
  .principles{ gap:22px; }
  .counters{ gap:12px; }
  .counter{ padding:18px 20px; }
  .footer{ padding-top:44px; }
}

/* ---------- private ai story scene ---------- */
.bubble .caret{ display:inline-block; width:1px; height:1em; background:currentColor; vertical-align:-.15em; margin-left:2px; animation:blink 1s steps(2) infinite; }
/* how we work: compact 2x2 on phones */
@media (max-width:900px){
  .steps{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 14px; }
  .step{ display:flex; flex-direction:column; gap:8px; }
  .steps-svg{ display:none; }
  .step .badge{ background:var(--blue); border-color:var(--blue); color:#fff; width:36px; height:36px; font-size:.7rem; }
  .step h3{ margin-top:2px; }
}

/* ---------- private ai scene: the assistant, mocked up ---------- */
.scene{ position:relative; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(24px,4vw,56px); align-items:center; padding:clamp(28px,4vw,48px); border-radius:28px; background:linear-gradient(135deg,#ffffff 0%,#F6F7FF 60%,#FBF6F2 100%); border:1px solid rgba(61,108,255,.22); box-shadow:0 40px 90px -50px rgba(61,108,255,.45),0 1px 0 rgba(255,255,255,.8) inset; }
.scene::before{ content:""; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(60% 70% at 70% 30%,rgba(61,108,255,.08),transparent 70%),radial-gradient(40% 50% at 10% 90%,rgba(232,90,58,.07),transparent 70%); pointer-events:none; }
.scene-badge{ position:absolute; top:18px; right:18px; display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:999px; background:#fff; border:1px solid rgba(61,108,255,.3); color:var(--blue); font-family:var(--font-mono); font-size:.72rem; box-shadow:0 8px 20px -10px rgba(61,108,255,.5); z-index:3; }
.scene-badge svg{ width:14px; height:14px; }
.files{ position:relative; z-index:2; display:grid; gap:14px; }
.file{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:14px; background:#fff; border:1px solid rgba(26,20,17,.08); box-shadow:0 14px 30px -18px rgba(26,20,17,.35); animation:floaty 5s ease-in-out infinite; }
.file.f1{ animation-delay:0s; transform:translateX(-6px) } .file.f2{ animation-delay:-1.2s; transform:translateX(10px) } .file.f3{ animation-delay:-2.4s; transform:translateX(-2px) } .file.f4{ animation-delay:-3.6s; transform:translateX(14px) }
@keyframes floaty{ 50%{ translate:0 -5px; } }
.file b{ display:block; font-weight:600; font-size:.92rem; line-height:1.2; color:var(--text); }
.file small{ display:block; font-size:.76rem; color:var(--muted); margin-top:2px; }
.fi{ flex:none; width:38px; height:38px; border-radius:10px; display:grid; place-items:center; font-family:var(--font-mono); font-weight:700; font-size:.66rem; color:#fff; letter-spacing:.02em; }
.fi-pdf{ background:linear-gradient(135deg,#FF7A59,#E85A3A); } .fi-xls{ background:linear-gradient(135deg,#3D6CFF,#2F55D6); } .fi-db{ background:linear-gradient(135deg,#8A5CFF,#6A3FE0); } .fi-mail{ background:linear-gradient(135deg,#1A1411,#4A403A); }
.scene-links{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:3; overflow:visible; }
.lk-lines use{ fill:none; stroke:var(--blue); stroke-opacity:.4; stroke-width:1.5; stroke-dasharray:3 6; stroke-linecap:round; }
.lk-dots circle{ fill:var(--blue); r:4; filter:drop-shadow(0 2px 4px rgba(61,108,255,.4)); }
.lk-dots circle:nth-child(2){ fill:#FF7A59; } .lk-dots circle:nth-child(3){ fill:var(--violet); }
.chat{ position:relative; z-index:2; border-radius:20px; background:#fff; border:1px solid rgba(26,20,17,.08); box-shadow:0 30px 60px -30px rgba(26,20,17,.35); overflow:hidden; }
.chat-head{ display:flex; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid rgba(26,20,17,.07); background:linear-gradient(180deg,#fff,#F7F8FF); }
.avatar{ flex:none; width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,var(--blue),var(--violet)); box-shadow:0 0 0 4px rgba(61,108,255,.12); --mark:#fff; --mark2:#D9D2FF; }
.avatar svg{ width:24px; height:auto; }
.chat-title b{ display:block; font-size:.95rem; font-weight:600; color:var(--text); }
.chat-title small{ display:flex; align-items:center; gap:6px; font-size:.76rem; color:var(--muted); margin-top:2px; }
.chat-title small i{ width:7px; height:7px; border-radius:50%; background:#2BC48A; box-shadow:0 0 0 3px rgba(43,196,138,.2); }
.chat-lock{ margin-left:auto; font-family:var(--font-hand); color:#E85A3A; font-size:1.15rem; transform:rotate(-3deg); white-space:nowrap; }
.chat-body{ display:grid; gap:10px; padding:18px 16px; min-height:190px; align-content:start; }
.msg{ max-width:88%; padding:10px 13px; border-radius:14px; font-size:.92rem; line-height:1.45; }
.msg:empty{ display:none; }
.msg.user{ justify-self:end; background:#F1F2F7; color:var(--text); border-bottom-right-radius:4px; }
.msg.bot{ background:linear-gradient(135deg,var(--blue),#5A7DFF); color:#fff; border-bottom-left-radius:4px; box-shadow:0 10px 24px -14px rgba(61,108,255,.7); }
.msg .caret{ display:inline-block; width:1px; height:1em; background:currentColor; vertical-align:-.15em; margin-left:2px; animation:blink 1s steps(2) infinite; }
.sources{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; opacity:0; transition:opacity .5s; }
.sources em{ font-style:normal; font-family:var(--font-mono); font-size:.68rem; color:var(--muted); margin-right:2px; }
.sources span{ font-size:.74rem; padding:4px 9px; border-radius:999px; background:#fff; border:1px solid rgba(61,108,255,.3); color:var(--blue); }
.sources.on{ opacity:1; }
.chat-input{ display:flex; align-items:center; justify-content:space-between; margin:0 16px 16px; padding:10px 12px 10px 14px; border-radius:12px; border:1px solid rgba(26,20,17,.12); color:var(--faint); font-size:.9rem; background:#fff; }
.chat-input i{ width:28px; height:28px; border-radius:8px; background:var(--blue); position:relative; }
.chat-input i::after{ content:""; position:absolute; left:9px; top:8px; width:10px; height:10px; border-top:2px solid #fff; border-right:2px solid #fff; transform:rotate(45deg); }
@media (max-width:900px){
  .scene{ grid-template-columns:1fr; gap:22px; padding:20px 16px 16px; border-radius:22px; }
  .scene-badge{ position:static; justify-self:start; margin-bottom:-4px; }
  .files{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .file{ padding:10px; gap:9px; transform:none !important; }
  .file b{ font-size:.8rem; } .file small{ font-size:.68rem; }
  .fi{ width:32px; height:32px; font-size:.6rem; }
  .chat-body{ min-height:170px; padding:14px 12px; }
  .chat-head{ padding:12px; }
  .chat-lock{ font-size:1rem; }
}

/* light-base fixes: footer hover, ghost button feedback, focus ring shape */
html[data-light] .footer{ --text:#F5F7FC; }
html[data-light] .footer li a:hover{ color:#fff; }
html[data-light] .btn-ghost{ border-color:rgba(26,20,17,.3); background:rgba(255,255,255,.5); }
html[data-light] .btn-ghost:hover{ border-color:rgba(26,20,17,.55); background:#fff; }
html[data-light] .btn-ghost .ripple{ background:rgba(26,20,17,.1); }
html[data-light] .nav-links a:hover{ background:rgba(26,20,17,.06); }
html[data-light] .nav-links a.active{ color:var(--text); }
.btn:focus-visible, .nav-links a:focus-visible, .brand:focus-visible{ border-radius:999px; outline-offset:3px; }
.btn.pressed{ transition-duration:.1s; }

html[data-light] .trail-dots{ stroke:var(--blue); stroke-opacity:.55; }
html[data-light] .cta-trail{ opacity:.7; }

@media (max-width:900px){ .scene-links{ z-index:1; } .chat{ margin-top:30px; } }

/* ---------- contact page ---------- */
.contact-hero{ position:relative; overflow:clip; padding-top:calc(var(--nav-h) + 48px + env(safe-area-inset-top,0px)); }
.contact-trail{ opacity:.5; }
.contact-head{ max-width:720px; margin-bottom:clamp(28px,4vw,48px); position:relative; }
.contact-hand{ display:inline-block; font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem); margin:14px 0 6px; transform:rotate(-2deg); }
.contact-grid{ position:relative; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(20px,3vw,40px); align-items:start; }
.form-card{ position:relative; padding:clamp(22px,3vw,34px); border-radius:var(--radius); background:#fff; border:1px solid rgba(26,20,17,.1); box-shadow:0 30px 70px -45px rgba(26,20,17,.35); }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 18px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:.86rem; font-weight:600; color:var(--text); }
.field input, .field select, .field textarea{ font:inherit; font-size:.97rem; color:var(--text); padding:12px 14px; border-radius:12px; border:1px solid rgba(26,20,17,.16); background:#FBFAF7; transition:border-color .25s,box-shadow .25s,background .25s; width:100%; }
.field textarea{ resize:vertical; min-height:120px; }
.field select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231A1411' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--blue); background:#fff; box-shadow:0 0 0 4px rgba(61,108,255,.14); }
.field.err input, .field.err select, .field.err textarea{ border-color:#E85A3A; box-shadow:0 0 0 4px rgba(232,90,58,.12); }
.field .msg{ font-size:.78rem; color:#E85A3A; min-height:1em; }
.form-foot{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 20px; margin-top:22px; }
.form-note{ font-size:.82rem; color:var(--muted); max-width:30ch; }
.form-ok{ position:absolute; inset:0; display:none; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:32px; border-radius:inherit; background:#fff; }
.form-ok.show{ display:flex; animation:fade-up .5s var(--ease) both; }
.form-card.sent .form-grid, .form-card.sent .form-foot{ visibility:hidden; }
.ok-mark{ width:56px; height:56px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,var(--blue),var(--violet)); color:#fff; margin-bottom:16px; box-shadow:0 14px 30px -14px rgba(61,108,255,.7); }
.ok-mark svg{ width:26px; height:26px; }
.form-ok h3{ font-family:var(--font-display); font-weight:400; font-size:1.4rem; margin-bottom:8px; }
.form-ok p{ color:var(--muted); max-width:38ch; }
.contact-side{ display:grid; gap:18px; }
.side-block{ padding:clamp(20px,2.6vw,28px); border-radius:var(--radius); background:rgba(255,255,255,.6); border:1px solid rgba(26,20,17,.1); }
.side-block h3{ font-weight:600; font-size:1.05rem; margin-bottom:16px; }
.next-steps{ display:grid; gap:14px; }
.next-steps li{ display:flex; gap:14px; align-items:flex-start; }
.next-steps .badge{ width:34px; height:34px; font-size:.7rem; flex:none; background:var(--blue); border-color:var(--blue); color:#fff; }
.next-steps b{ display:block; font-weight:600; font-size:.95rem; }
.next-steps p{ color:var(--muted); font-size:.9rem; margin-top:2px; }
.side-btn{ width:100%; justify-content:center; margin-bottom:16px; }
.side-contact{ display:grid; gap:12px; }
.side-contact li{ display:flex; gap:12px; align-items:flex-start; font-size:.93rem; color:var(--muted); }
.side-contact a{ color:var(--text); font-weight:500; }
.sc-ico{ flex:none; width:30px; height:30px; border-radius:9px; display:grid; place-items:center; background:rgba(61,108,255,.1); color:var(--blue); }
.sc-ico svg{ width:16px; height:16px; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } .form-grid{ grid-template-columns:1fr; } .contact-hero{ padding-top:calc(var(--nav-h) + 20px + env(safe-area-inset-top,0px)); } }

/* ---------- inner pages ---------- */
.page-hero{ padding-top:calc(var(--nav-h) + 56px + env(safe-area-inset-top,0px)); padding-bottom:clamp(24px,4vw,48px); }
.page-hero .section-head{ margin-bottom:clamp(20px,3vw,36px); }
.page-hero .hero-actions{ margin-top:26px; }
@media (max-width:900px){ .page-hero{ padding-top:calc(var(--nav-h) + 24px + env(safe-area-inset-top,0px)); } }
.svc-index{ display:flex; flex-wrap:wrap; gap:8px; }
.svc-index a{ display:inline-block; padding:9px 14px; border-radius:999px; border:1px solid rgba(26,20,17,.18); background:rgba(255,255,255,.6); font-size:.9rem; font-weight:500; transition:border-color .25s,background .25s; }
.svc-index a:hover{ border-color:var(--blue); background:#fff; }
.svc{ padding:clamp(40px,6vw,80px) 0; }
.svc-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,5vw,72px); align-items:center; }
.svc:nth-of-type(odd) .svc-grid .svc-vis{ order:-1; }
.svc-copy .eyebrow{ color:var(--acc,var(--blue)); }
.svc-list{ display:grid; gap:12px; margin-top:22px; }
.svc-list li{ display:flex; gap:12px; align-items:flex-start; font-size:.98rem; line-height:1.5; }
.svc-list li::before{ content:""; flex:none; width:8px; height:8px; border-radius:50%; margin-top:9px; background:var(--acc,var(--blue)); box-shadow:0 0 0 4px rgba(var(--acc-rgb,61,108,255),.15); }
.svc-cta{ margin-top:26px; }
.svc-vis{ padding:clamp(16px,2.4vw,28px); border-radius:28px; background:#fff; border:1px solid rgba(var(--acc-rgb,61,108,255),.22); box-shadow:0 40px 90px -50px rgba(var(--acc-rgb,61,108,255),.45); }
.svc-vis .card-vis{ border-radius:18px; }
.svc-vis-orbit{ display:grid; place-items:center; background:linear-gradient(135deg,#fff,rgba(61,108,255,.06)); aspect-ratio:1.2; }
.svc-vis-orbit .orbit{ width:min(72%,340px); }
@media (max-width:900px){ .svc-grid{ grid-template-columns:1fr; } .svc:nth-of-type(odd) .svc-grid .svc-vis{ order:0; } .svc-vis-orbit{ aspect-ratio:1.6; } }
/* private ai page */
.psteps{ display:grid; gap:18px; max-width:860px; }
.pstep{ display:grid; grid-template-columns:46px 1fr; gap:18px; padding:22px 24px; border-radius:var(--radius); background:rgba(255,255,255,.05); border:1px solid var(--line); }
.pstep .badge{ background:var(--blue); border-color:var(--blue); color:#fff; }
.pstep h3{ font-weight:600; font-size:1.1rem; margin-bottom:6px; }
.pstep p{ color:var(--muted); font-size:.97rem; }
.where-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.where-card{ padding:28px; border-radius:var(--radius); background:#fff; border:1px solid rgba(26,20,17,.1); box-shadow:0 30px 60px -45px rgba(26,20,17,.3); }
.where-ico{ width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:rgba(61,108,255,.1); color:var(--blue); margin-bottom:16px; }
.where-ico svg{ width:24px; height:24px; }
.where-card h3{ font-weight:600; font-size:1.15rem; margin-bottom:8px; }
.where-card p{ color:var(--muted); font-size:.97rem; }
.uses-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.use{ padding:22px; border-radius:var(--radius); background:rgba(255,255,255,.05); border:1px solid var(--line); display:flex; flex-direction:column; gap:12px; }
.use h3{ font-weight:600; font-size:1.02rem; }
.use-q{ display:flex; }
.use-bubble{ display:inline-block; padding:9px 12px; border-radius:12px; border-bottom-left-radius:4px; background:var(--blue); color:#fff; font-size:.9rem; line-height:1.4; }
.use p{ color:var(--muted); font-size:.88rem; }
@media (max-width:900px){ .where-grid, .uses-grid{ grid-template-columns:1fr; } .pstep{ grid-template-columns:40px 1fr; gap:14px; padding:18px; } }
/* about page */
.philo-grid{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(24px,5vw,72px); align-items:center; }
.philo-mark{ display:grid; place-items:center; padding:clamp(20px,4vw,48px); border-radius:28px; background:linear-gradient(135deg,#fff,rgba(61,108,255,.07) 60%,rgba(232,90,58,.06)); border:1px solid rgba(61,108,255,.2); --mark:#3D6CFF; --mark2:#8A5CFF; }
.philo-mark svg{ width:min(100%,360px); height:auto; filter:drop-shadow(0 20px 40px rgba(61,108,255,.25)); }
.name-grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(24px,5vw,72px); align-items:start; }
.name-grid .sub{ margin-top:0; }
.founder{ display:grid; grid-template-columns:200px 1fr; gap:clamp(20px,4vw,48px); align-items:start; padding:clamp(22px,3vw,34px); border-radius:var(--radius); background:rgba(255,255,255,.05); border:1px dashed var(--line-strong); }
.founder-photo{ position:relative; aspect-ratio:1; border-radius:20px; background:rgba(255,255,255,.06); border:1px solid var(--line); display:grid; place-items:center; --mark:#F5F7FC; --mark2:#D9D2FF; }
.founder-photo svg{ width:60%; height:auto; opacity:.6; }
.founder-photo .ptag{ position:absolute; bottom:10px; left:50%; transform:translateX(-50%); }
.founder h3{ font-family:var(--font-display); font-weight:400; font-size:1.3rem; display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:4px; }
.founder-role{ color:var(--muted); font-family:var(--font-mono); font-size:.8rem; margin-bottom:14px; }
.founder p{ color:var(--muted); }
.founder .mono{ margin-top:14px; }
.ptag{ font-family:var(--font-mono); font-size:.66rem; color:#E85A3A; border:1px solid rgba(232,90,58,.5); padding:3px 8px; border-radius:999px; letter-spacing:.02em; white-space:nowrap; }
@media (max-width:900px){ .philo-grid, .name-grid{ grid-template-columns:1fr; } .founder{ grid-template-columns:1fr; } .founder-photo{ max-width:220px; } }

/* ---------- finishing touches ---------- */
.section-head .h2::after{ content:""; display:block; width:64px; height:4px; border-radius:2px; margin-top:20px; background:linear-gradient(90deg,var(--blue),var(--violet),var(--coral)); }
.cta .h2::after, .philo-copy .h2::after{ display:none; }
#services{ background:linear-gradient(180deg,rgba(61,108,255,0) 0%,rgba(61,108,255,.045) 25%,rgba(138,92,255,.05) 70%,rgba(61,108,255,0) 100%); }
#private-ai{ background:radial-gradient(70% 60% at 50% 45%,rgba(232,90,58,.05),transparent 72%); }
.card, .panel, .where-card, .counter, .use, .pstep, .side-block, .cmp{ transition-property:translate,box-shadow,border-color,background,transform,opacity; transition-duration:.45s; }
.card, .panel, .where-card, .counter{ translate:0 0; }
.card:hover, .panel:hover, .where-card:hover, .counter:hover{ translate:0 -4px; }
.panel:hover{ box-shadow:0 40px 70px -30px rgba(61,108,255,.55); }
.card[style*="--acc"]::after{ content:""; position:absolute; left:28px; right:28px; top:-1px; height:3px; border-radius:0 0 3px 3px; background:var(--acc); opacity:0; transition:opacity .35s; }
.card[style*="--acc"]:hover::after{ opacity:1; }
.btn-primary::before{ content:""; position:absolute; top:-10%; bottom:-10%; left:-70%; width:45%; z-index:-1; background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.38),rgba(255,255,255,0)); transform:skewX(-18deg); transition:left .7s var(--ease-io); }
.btn-primary:hover::before{ left:130%; }
.counter::after{ content:""; display:block; height:3px; border-radius:2px; margin-top:16px; background:linear-gradient(90deg,var(--cacc,var(--blue)),transparent); transform:scaleX(0); transform-origin:left; transition:transform 1.6s var(--ease-io) .3s; }
.stagger.in .counter::after{ transform:scaleX(1); }
.badge{ position:relative; }
.step.lit .badge::after{ content:""; position:absolute; inset:-3px; border-radius:50%; border:2px solid var(--blue); animation:badgering .9s ease-out forwards; }
@keyframes badgering{ to{ inset:-14px; opacity:0; } }
.marquee li{ gap:0; padding:8px 16px; margin-right:12px; border:1px solid var(--line); border-radius:999px; font-size:.9rem; }
.marquee li::after{ display:none; }
.light .marquee li{ background:rgba(255,255,255,.04); }
.footer::before{ content:""; position:absolute; top:-1px; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue),var(--violet),var(--coral)); }
@media (prefers-reduced-motion:reduce){ .card:hover,.panel:hover,.where-card:hover,.counter:hover{ translate:0 0; } .step.lit .badge::after{ animation:none; display:none; } }

/* services: first project strip + what we don't do */
.first-project{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:clamp(28px,4vw,44px); }
.fp-item{ padding:22px 24px; border-radius:var(--radius); background:#fff; border:1px solid rgba(26,20,17,.1); box-shadow:0 24px 50px -40px rgba(26,20,17,.3); }
.fp-k{ display:block; font-family:var(--font-mono); font-size:.72rem; color:var(--blue); margin-bottom:8px; }
.fp-item b{ display:block; font-weight:600; font-size:1.02rem; margin-bottom:8px; }
.fp-item p{ color:var(--muted); font-size:.92rem; }
.not-do{ margin-top:22px; color:var(--muted); font-size:.97rem; max-width:70ch; }
.not-do-hand{ font-size:1.5rem; margin-right:8px; display:inline-block; transform:rotate(-2deg); }
@media (max-width:900px){ .first-project{ grid-template-columns:1fr; } }

/* private ai: try an example */
.try{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 16px; }
.try-label{ font-family:var(--font-mono); font-size:.78rem; color:var(--muted); margin-right:4px; }
.try-chip{ padding:8px 14px; border-radius:999px; border:1px solid rgba(61,108,255,.35); background:#fff; font-size:.88rem; font-weight:500; color:var(--text); transition:background .25s,border-color .25s,translate .3s,box-shadow .3s; }
.try-chip:hover{ border-color:var(--blue); translate:0 -2px; box-shadow:0 10px 24px -14px rgba(61,108,255,.6); }
.try-chip.on{ background:var(--blue); border-color:var(--blue); color:#fff; }

.hp{ position:absolute; left:-9999px; opacity:0; pointer-events:none; }
.form-fail{ display:none; font-size:.86rem; color:#E85A3A; width:100%; }
.form-fail.show{ display:block; }
.btn.busy{ opacity:.7; pointer-events:none; }

/* no eyebrow above section heads anymore: tighten */
.section-head .h2{ margin-top:0; }

/* all headlines: each word rises and comes into focus */

/* spacing pass */
@media (min-width:901px){ .hero{ min-height:100vh; min-height:100svh; } }
.manifesto{ padding-top:0; }
#services{ padding-bottom:clamp(36px,5vw,64px); }
.cta{ padding-top:clamp(56px,8vw,104px); }
@media (max-width:900px){ .brand svg{ height:40px; } }

/* founder: warm, on sand, as a white card */
#founder{ background:radial-gradient(60vw 40vw at 100% 0%,rgba(138,92,255,.07),transparent 70%); }
.founder{ position:relative; overflow:hidden; grid-template-columns:220px 1fr; align-items:center; background:#fff; border:1px solid rgba(26,20,17,.1); box-shadow:0 40px 80px -50px rgba(26,20,17,.35); }
.founder::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,#3D6CFF,#8A5CFF 50%,#E85A3A); }
.founder-photo{ background:linear-gradient(135deg,rgba(61,108,255,.12),rgba(138,92,255,.1) 55%,rgba(232,90,58,.1)); border:1px solid rgba(61,108,255,.18); }
.founder-initials{ font-family:var(--font-display); font-size:3rem; line-height:1; color:#1A1411; letter-spacing:.02em; }
.founder h3{ font-size:1.6rem; color:var(--text); }
.founder-role{ color:var(--blue); }
.founder p{ color:rgba(26,20,17,.76); max-width:62ch; }
.founder-facts{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.founder-years{ display:flex; align-items:center; gap:10px; }
.founder-years b{ font-family:var(--font-display); font-weight:400; font-size:2rem; line-height:1; background:linear-gradient(90deg,#3D6CFF,#8A5CFF,#E85A3A); -webkit-background-clip:text; background-clip:text; color:transparent; }
.founder-years span{ font-size:.85rem; line-height:1.3; color:var(--muted); max-width:11ch; }
.founder-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.founder-chips span{ font-size:.84rem; padding:6px 12px; border-radius:999px; background:var(--bg); border:1px solid var(--line); color:var(--text); }
@media (max-width:900px){ .founder{ grid-template-columns:1fr; } .founder-photo{ max-width:160px; } }
.founder .founder-role{ color:var(--blue); }
.founder{ align-items:start; }
.founder{ grid-template-columns:200px minmax(0,1fr) 260px; }
.founder .founder-copy p{ max-width:none; }
.founder-facts{ flex-direction:column; align-items:flex-start; justify-content:center; align-self:stretch; gap:16px; margin-top:0; padding:0 0 0 clamp(20px,3vw,34px); border-top:0; border-left:1px solid var(--line); }
.founder-years{ flex-direction:column; align-items:flex-start; gap:6px; }
.founder-years b{ font-size:2.8rem; }
.founder-years span{ max-width:none; }
@media (max-width:1100px){ .founder{ grid-template-columns:200px minmax(0,1fr); } .founder-facts{ grid-column:2; border-left:0; padding:18px 0 0; border-top:1px solid var(--line); } .founder-years{ flex-direction:row; align-items:center; } .founder-years b{ font-size:2rem; } }
@media (max-width:900px){ .founder{ grid-template-columns:1fr; } .founder-facts{ grid-column:auto; } }

/* team + platforms */
.team{ display:grid; gap:18px; }
.platforms{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.plat{ padding:22px 22px 20px; border-radius:var(--radius); background:#fff; border:1px solid rgba(26,20,17,.1); }
.plat h3{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); margin-bottom:12px; font-weight:700; }
.plat ul{ display:grid; gap:7px; }
.plat li{ font-size:.95rem; color:var(--text); padding-left:14px; position:relative; }
.plat li::before{ content:""; position:absolute; left:0; top:.62em; width:5px; height:5px; border-radius:50%; background:var(--violet); }
@media (max-width:900px){ .platforms{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .platforms{ grid-template-columns:1fr; } }

/* ---------- services: icon cards (home) ---------- */
.ico{ width:50px; height:50px; border-radius:14px; display:grid; place-items:center; background:var(--g,linear-gradient(135deg,#3D6CFF,#8A5CFF)); color:#fff; flex:none; box-shadow:0 12px 26px -14px rgba(61,108,255,.6); }
.ico svg{ width:24px; height:24px; }
.scards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.scard{ display:flex; flex-direction:column; gap:12px; padding:26px 26px 24px; border-radius:20px; background:#fff; border:1px solid rgba(26,20,17,.1); color:var(--text); transition:translate .35s var(--ease),box-shadow .35s,border-color .35s; }
.scard:hover{ translate:0 -4px; box-shadow:0 30px 60px -40px rgba(26,20,17,.35); border-color:rgba(61,108,255,.35); }
.scard h3{ font-weight:600; font-size:1.12rem; line-height:1.3; margin-top:4px; }
.scard p{ color:var(--muted); font-size:.95rem; line-height:1.5; }
.scard .link{ margin-top:auto; font-size:.92rem; }
.scard.flag{ border:1px solid transparent; background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#3D6CFF,#8A5CFF 55%,#E85A3A) border-box; }
.scard.ask{ background:#1A1411; color:#F5F7FC; border-color:#1A1411; justify-content:space-between; }
.scard.ask h3{ font-family:var(--font-display); font-weight:400; font-size:1.25rem; line-height:1.25; }
.scard.ask p{ color:rgba(245,247,252,.78); }
.scard.ask .btn{ align-self:flex-start; margin-top:6px; }
@media (max-width:900px){ .scards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .scards{ grid-template-columns:1fr; } }
.svc-copy .ico{ margin-bottom:18px; }
.story-grid{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(24px,5vw,72px); align-items:start; }
.story-copy p{ color:var(--muted); font-size:1.05rem; line-height:1.65; }
.story-copy p + p{ margin-top:16px; }
@media (max-width:900px){ .story-grid{ grid-template-columns:1fr; } }
.founder-copy p + p{ margin-top:12px; }

/* ---------- space pass 2 ---------- */
.section{ padding:clamp(40px,5vw,72px) 0; }
.section-head{ margin-bottom:clamp(20px,3vw,36px); }
.page-hero{ padding-top:calc(var(--nav-h) + 40px + env(safe-area-inset-top,0px)); }
.cta{ padding:clamp(56px,7vw,96px) 0 clamp(48px,6vw,84px); }
.footer{ padding-top:48px; }
.footer-bottom{ margin-top:36px; }
.first-sec{ padding-top:0; }
.first-sec .first-project{ margin-top:0; }
.ask-strip{ display:flex; align-items:center; justify-content:space-between; gap:18px 32px; margin-top:16px; padding:22px 28px; border-radius:20px; background:#1A1411; color:#F5F7FC; }
.ask-strip h3{ font-family:var(--font-display); font-weight:400; font-size:1.15rem; line-height:1.25; }
.ask-strip p{ color:rgba(245,247,252,.78); font-size:.95rem; margin-top:6px; max-width:62ch; }
.ask-strip .btn{ flex:none; }
@media (max-width:700px){ .ask-strip{ flex-direction:column; align-items:flex-start; } }
.svc-rows{ display:grid; gap:14px; }
.svc-row{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 290px; gap:28px; align-items:center; padding:24px 26px; border-radius:20px; background:#fff; border:1px solid rgba(26,20,17,.1); scroll-margin-top:calc(var(--nav-h) + 16px); }
.svc-row.flag{ border:1px solid transparent; background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#3D6CFF,#8A5CFF 55%,#E85A3A) border-box; }
.svc-title{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.svc-h{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.1rem,.95rem + .6vw,1.4rem); line-height:1.2; }
.svc-main p{ color:var(--muted); font-size:.95rem; line-height:1.55; }
.svc-main .link{ margin-top:12px; font-size:.92rem; }
.svc-row .svc-list{ margin-top:0; gap:9px; }
.svc-row .svc-list li{ font-size:.92rem; line-height:1.45; }
.svc-row .svc-list li::before{ margin-top:7px; }
.svc-mini .card-vis{ border-radius:14px; }
@media (max-width:1100px){ .svc-row{ grid-template-columns:minmax(0,1fr) 260px; } .svc-row .svc-list{ grid-column:1; } .svc-mini{ grid-column:2; grid-row:1 / span 2; } }
@media (max-width:700px){ .svc-row{ grid-template-columns:1fr; gap:18px; padding:20px; } .svc-mini{ grid-column:auto; grid-row:auto; } }
.m-bar{ animation:malign 5s var(--ease-io) infinite; }
@keyframes malign{ 0%,8%{ transform:translateX(var(--from)); } 45%,88%{ transform:translateX(0); } 100%{ transform:translateX(var(--from)); } }
.m-check{ opacity:0; transform-origin:198px 55.5px; animation:mcheck 5s ease infinite; }
@keyframes mcheck{ 0%,48%{ opacity:0; transform:scale(.6); } 56%,88%{ opacity:1; transform:scale(1); } 96%,100%{ opacity:0; transform:scale(.6); } }
@media (prefers-reduced-motion:reduce){ .m-bar{ animation:none; transform:none; } .m-check{ animation:none; opacity:1; } }
.psteps{ grid-template-columns:repeat(5,minmax(0,1fr)); max-width:none; gap:14px; }
.pstep{ grid-template-columns:1fr; gap:12px; padding:20px; align-content:start; }
@media (max-width:1100px){ .psteps{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px){ .psteps{ grid-template-columns:1fr; } .pstep{ grid-template-columns:40px 1fr; } }
/* consecutive sand sections share one gap instead of two */
.section:not(.light) + .section:not(.light){ padding-top:clamp(8px,1.5vw,16px); }

/* =================== layered, colour-rich system =================== */
/* hero: fuller first screen */
.hero{ flex-direction:column; align-items:stretch; justify-content:center; }
.hero::before{ content:""; position:absolute; inset:-10%; z-index:-1; pointer-events:none; background:
  radial-gradient(34% 42% at 74% 36%, rgba(138,92,255,.30), transparent 70%),
  radial-gradient(30% 38% at 60% 74%, rgba(61,108,255,.24), transparent 70%),
  radial-gradient(24% 34% at 92% 78%, rgba(232,90,58,.24), transparent 70%),
  radial-gradient(36% 50% at 6% 8%, rgba(61,108,255,.12), transparent 70%);
  animation:meshshift 18s ease-in-out infinite alternate; }
@keyframes meshshift{ to{ transform:translate(-3%,2%) scale(1.06); } }
.hero .h1{ font-size:clamp(2.2rem,1.1rem + 3.8vw,4rem); }
@media (min-width:901px){
  .hero{ min-height:min(100svh,920px); padding-bottom:64px; }
  .hero-grid{ grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
}
@media (max-width:900px){ .hero{ padding-bottom:56px; } }
.hero-marquee{ position:relative; z-index:1; margin-top:clamp(24px,4vh,44px); opacity:0; transition:opacity 1s ease 1.2s; }
.hero.in .hero-marquee{ opacity:1; }
.hero-marquee .marquee{ padding:4px 0; }
html[data-light] .hero-marquee .marquee li{ background:rgba(255,255,255,.7); border-color:rgba(26,20,17,.1); color:var(--text); }
@media (prefers-reduced-motion:reduce){ .hero::before{ animation:none; } .hero-marquee{ opacity:1; } }

/* services: a white panel that rises over the hero */
#services.panel-white{ background:#fff; border-radius:32px; margin:-32px clamp(8px,1.5vw,20px) 0; position:relative; z-index:2; box-shadow:0 -24px 60px -40px rgba(26,20,17,.35); padding-top:clamp(44px,5vw,72px); }
#services .scard{ background:#FBF8F3; border-color:rgba(26,20,17,.07); }
.scard.flag{ background:linear-gradient(140deg,#3D6CFF 0%,#6A5CFF 50%,#8A5CFF 82%,#C25A9E 118%) !important; border:0; color:#fff; }
.scard.flag p{ color:rgba(255,255,255,.88); }
.scard.flag .link{ color:#fff; }
.scard.flag .link::after{ background:#fff; }
.scard.flag .ico{ background:rgba(255,255,255,.2); box-shadow:none; }

/* the statement: a colour band that pins while the next panel slides over it */
.stack{ position:relative; margin-top:16px; }
.mani-band{ position:sticky; top:0; z-index:0; min-height:min(76vh,700px); display:grid; place-items:center; padding:clamp(72px,9vw,120px) 0; margin:0 clamp(8px,1.5vw,20px); border-radius:32px 32px 0 0; overflow:hidden; color:#fff; background:linear-gradient(125deg,#2F55D6 0%,#3D6CFF 28%,#6A5CFF 58%,#8A5CFF 80%,#C25A9E 108%); }
.mani-band::before{ content:""; position:absolute; inset:0; background:radial-gradient(50% 60% at 86% 18%,rgba(255,122,89,.38),transparent 70%),radial-gradient(40% 50% at 8% 92%,rgba(255,255,255,.14),transparent 70%); }
.band-mark{ position:absolute; right:-3%; bottom:-14%; width:min(44vw,520px); height:auto; opacity:.13; --mark:#fff; --mark2:#fff; pointer-events:none; }
.mani-band .container{ position:relative; z-index:1; }
.mani-band .mani{ font-size:clamp(1.5rem,1rem + 2.4vw,2.9rem); line-height:1.25; max-width:24ch; margin-inline:auto; text-align:center; }
.mani-band .mani .mw{ color:rgba(255,255,255,.32); }
.mani-band .mani.in .mw{ color:#fff; }
.mani-band .mani em{ background:none; -webkit-text-fill-color:#FFE1D6; color:#FFE1D6; font-family:var(--font-hand); font-size:1.3em; letter-spacing:0; opacity:0; transition:opacity .9s ease 1.2s; }
.mani-band .mani.in em{ animation:none; opacity:1; }

/* overlapping panels as you scroll */
.section.light{ border-radius:32px 32px 0 0; margin-top:-32px; position:relative; z-index:1; overflow:hidden; box-shadow:0 -30px 60px -40px rgba(26,20,17,.55); }
.section.light + .section.light{ border-radius:0; margin-top:0; box-shadow:none; }
.section.light + .section:not(.light), .stack + .section{ border-radius:32px 32px 0 0; margin-top:-32px; position:relative; z-index:1; background:var(--bg); box-shadow:0 -30px 60px -40px rgba(26,20,17,.35); }
html[data-light] .light .principle p{ color:var(--muted); }

/* final call to action: a colour card */
.cta{ width:min(var(--container),100% - 2*var(--gutter)); margin:clamp(24px,4vw,48px) auto clamp(40px,5vw,64px); border-radius:32px; padding:clamp(48px,6vw,84px) 0; background:linear-gradient(120deg,#6A5CFF 0%,#8A5CFF 40%,#C25A9E 72%,#E85A3A 104%); color:#fff; --text:#fff; isolation:isolate; overflow:hidden; box-shadow:0 40px 80px -50px rgba(138,92,255,.7); }
.cta > .container{ width:auto; padding-inline:clamp(20px,4vw,56px); }
.cta .h2{ color:#fff; }
.cta .cta-hand{ color:#FFE1D6; }
html[data-light] .cta .trail-dots{ stroke:#fff; stroke-opacity:.45; }
html[data-light] .cta .cta-trail{ opacity:.6; }
.cta .trail-end{ fill:#fff; }
html[data-light] .cta .btn-primary{ background:#fff; color:#1A1411; box-shadow:0 14px 30px -14px rgba(0,0,0,.35); }
html[data-light] .cta .btn-ghost{ border-color:rgba(255,255,255,.6); background:rgba(255,255,255,.08); color:#fff; }
html[data-light] .cta .btn-ghost:hover{ background:rgba(255,255,255,.18); border-color:#fff; }

/* inner page heads get the same colour wash */
.page-hero{ position:relative; isolation:isolate; padding-bottom:clamp(56px,6vw,80px); }
.page-hero::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(40% 70% at 92% 8%,rgba(138,92,255,.16),transparent 70%),radial-gradient(30% 60% at 72% 92%,rgba(61,108,255,.12),transparent 70%),radial-gradient(24% 50% at 100% 70%,rgba(232,90,58,.12),transparent 70%); }

/* services page: one aligned grid */
.svc-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.svc-card{ display:flex; flex-direction:column; border-radius:22px; background:#fff; border:1px solid rgba(26,20,17,.1); overflow:hidden; transition:translate .35s var(--ease),box-shadow .35s; scroll-margin-top:calc(var(--nav-h) + 16px); }
.svc-card:hover{ translate:0 -4px; box-shadow:0 30px 60px -40px rgba(26,20,17,.4); }
.svc-vis{ height:128px; display:grid; place-items:center; background:radial-gradient(120% 100% at 50% 120%,rgba(var(--acc-rgb),.18),transparent 60%),#F7F3EC; border-bottom:1px solid rgba(26,20,17,.06); }
html[data-light] .svc-vis .card-vis{ width:100%; height:100%; border:0; border-radius:0; background:none; }
.svc-vis .card-vis svg{ width:100%; height:100%; }
.svc-body{ display:flex; flex-direction:column; gap:12px; padding:20px 22px 22px; flex:1; }
.svc-card .svc-title{ display:flex; align-items:center; gap:12px; margin:0; }
.svc-card .ico{ width:42px; height:42px; border-radius:12px; }
.svc-card .ico svg{ width:21px; height:21px; }
.svc-card .svc-h{ font-family:var(--font-display); font-weight:400; font-size:clamp(1rem,.9rem + .4vw,1.18rem); line-height:1.25; }
.svc-body p{ color:var(--muted); font-size:.95rem; line-height:1.5; }
.svc-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.svc-tags span{ font-size:.8rem; padding:5px 10px; border-radius:999px; background:rgba(var(--acc-rgb),.11); color:var(--text); }
.svc-body .link{ margin-top:auto; padding-top:2px; align-self:flex-start; font-size:.92rem; }
.svc-card.flag{ background:linear-gradient(140deg,#3D6CFF 0%,#6A5CFF 50%,#8A5CFF 82%,#C25A9E 118%); border:0; color:#fff; }
.svc-card.flag .svc-vis{ background:radial-gradient(70% 90% at 50% 50%,rgba(255,255,255,.2),transparent 70%); border-bottom-color:rgba(255,255,255,.15); }
.svc-card.flag .flag-mark{ height:84px; width:auto; --mark:#fff; --mark2:#E6DFFF; filter:drop-shadow(0 10px 20px rgba(0,0,0,.2)); }
.svc-card.flag p{ color:rgba(255,255,255,.88); }
.svc-card.flag .svc-tags span{ background:rgba(255,255,255,.18); color:#fff; }
.svc-card.flag .link{ color:#fff; }
.svc-card.flag .link::after{ background:#fff; }
.svc-card.flag .ico{ background:rgba(255,255,255,.2); box-shadow:none; }
@media (max-width:1000px){ .svc-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ .svc-grid{ grid-template-columns:1fr; } }
.page-hero .section-head{ max-width:1000px; }

/* =================== header: a floating glass capsule =================== */
.nav, .nav.scrolled{ background:transparent !important; border-bottom-color:transparent !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; }
.nav{ padding-top:calc(env(safe-area-inset-top,0px) + 12px); }
.nav-inner{ height:62px; padding:0 8px 0 20px; border-radius:999px; background:rgba(255,255,255,.66); border:1px solid rgba(26,20,17,.08); -webkit-backdrop-filter:blur(18px) saturate(160%); backdrop-filter:blur(18px) saturate(160%); box-shadow:0 12px 32px -20px rgba(26,20,17,.35); transition:height .35s var(--ease),background .35s,box-shadow .35s; }
.nav.scrolled .nav-inner{ height:56px; background:rgba(255,255,255,.86); box-shadow:0 18px 40px -22px rgba(26,20,17,.45); }
.brand svg{ height:40px; }
.nav-links{ position:relative; gap:2px; }
.nav-links a{ position:relative; z-index:1; font-size:.92rem; color:var(--text); opacity:.78; transition:opacity .25s,color .25s; }
.nav-links a:hover, .nav-links a.active{ opacity:1; }
html[data-light] .nav-links.has-pill a:hover{ background:transparent; }
.nav-links.has-pill a.active::after{ display:none; }
.nav-pill{ position:absolute; left:0; top:50%; height:38px; margin-top:-19px; border-radius:999px; background:linear-gradient(135deg,rgba(61,108,255,.12),rgba(138,92,255,.12)); opacity:0; pointer-events:none; transition:transform .4s var(--ease),width .4s var(--ease),opacity .25s; }
.nav-links .nav-cta{ margin-left:10px; padding:11px 18px; font-size:.9rem; opacity:1; color:#fff; }
.nav-cta .arrow{ width:16px; height:16px; }
@media (max-width:900px){ .nav-inner{ height:56px; padding:0 6px 0 16px; } .nav.scrolled .nav-inner{ height:52px; } .brand svg{ height:34px; } }
/* phone menu: a colour sheet */
html[data-light] .mobile-menu{ background:linear-gradient(155deg,#2F55D6 0%,#3D6CFF 25%,#6A5CFF 55%,#8A5CFF 78%,#C25A9E 112%); -webkit-backdrop-filter:none; backdrop-filter:none; justify-content:flex-start; padding-top:110px; }
html[data-light] .mobile-menu a{ color:#fff; border-color:rgba(255,255,255,.22); }
html[data-light] .mobile-menu .mm-cta{ display:inline-flex; align-self:flex-start; margin-top:30px; padding:16px 28px; border:0; border-radius:999px; background:#fff; color:#1A1411; font-family:var(--font-body); font-weight:600; font-size:1rem; }

/* =================== hero: proof strip instead of industries =================== */
.hero-stats-wrap{ position:relative; z-index:1; margin-top:clamp(24px,4vh,44px); opacity:0; transform:translateY(12px); transition:opacity .9s var(--ease) 1.1s,transform .9s var(--ease) 1.1s; }
.hero.in .hero-stats-wrap{ opacity:1; transform:none; }
.hero-stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-radius:24px; background:rgba(255,255,255,.62); border:1px solid rgba(26,20,17,.08); background:linear-gradient(to bottom,rgba(247,243,236,1) 0%,rgba(247,243,236,.96) 22%,rgba(247,243,236,.55) 55%,rgba(247,243,236,0) 100%); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); box-shadow:0 20px 50px -34px rgba(26,20,17,.35); overflow:hidden; }
.stat{ display:flex; align-items:center; gap:14px; padding:18px 24px; }
.stat + .stat{ border-left:1px solid rgba(26,20,17,.08); }
.stat .num{ flex:none; font-family:var(--font-display); font-size:clamp(1.5rem,1.1rem + 1.2vw,2.2rem); line-height:1.1; font-variant-numeric:tabular-nums; background:linear-gradient(90deg,#3D6CFF,#8A5CFF,#E85A3A); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat .lbl{ font-size:.86rem; line-height:1.3; color:var(--muted); max-width:16ch; }
@media (max-width:900px){ .hero-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); } .stat{ padding:14px 16px; gap:10px; } .stat:nth-child(3){ border-left:0; } .stat:nth-child(n+3){ border-top:1px solid rgba(26,20,17,.08); } }
@media (prefers-reduced-motion:reduce){ .hero-stats-wrap{ opacity:1; transform:none; } }

/* =================== more statement bands =================== */
.mani-band{ min-height:min(64vh,600px); }
.band-warm{ background:linear-gradient(125deg,#6A5CFF 0%,#8A5CFF 30%,#C25A9E 62%,#E85A3A 92%,#FF7A59 115%); }
.band-deep{ background:linear-gradient(125deg,#1E2A78 0%,#3D6CFF 45%,#8A5CFF 85%,#B05ACF 112%); }
.band-sub{ position:relative; z-index:1; max-width:58ch; margin:22px auto 0; text-align:center; color:rgba(255,255,255,.86); font-size:clamp(.98rem,.9rem + .3vw,1.1rem); line-height:1.6; }
.mani-band + .section:not(.light){ border-radius:32px 32px 0 0; margin-top:-32px; position:relative; z-index:1; background:var(--bg); box-shadow:0 -30px 60px -40px rgba(26,20,17,.35); }

/* =================== hero: position and polish =================== */
/* wider canvas on big screens */
@media (min-width:1600px){ :root{ --container:1320px; } }
/* always exactly one screen on desktop, content optically centred under the header */
@media (min-width:901px){
  .hero{ min-height:100vh; min-height:100svh; padding-top:calc(var(--nav-h) + clamp(20px,5vh,56px)); padding-bottom:calc(32px + clamp(20px,4.5vh,52px)); }
}
/* headline scales with the screen, height included, so it never floats or overflows */
.hero .h1{ font-size:clamp(2.2rem, min(4.6vw, 7.4vh), 5.2rem); }
@media (max-width:900px){ .hero .h1{ font-size:clamp(2.1rem, 9vw, 2.9rem); } }
.hero .h1 .wi.grad{ background:linear-gradient(95deg,#3D6CFF 0%,#8A5CFF 55%,#E85A3A 100%); -webkit-background-clip:text; background-clip:text; color:transparent; padding-right:.04em; }
/* room for descenders (the y in "yours") so the gradient is not clipped */
.hero .h1 .wi.grad{ padding-bottom:.22em; margin-bottom:-.22em; }
/* header capsule: the logo now lines up with the page content */
@media (min-width:901px){ .nav-inner{ width:min(calc(var(--container) + 40px), calc(100% - 2*var(--gutter) + 40px)); padding-left:20px; } .brand svg{ height:44px; } }
@media (max-width:900px){ .nav-inner{ width:calc(100% - 24px); padding-left:8px; } }
/* cursor light */
.hero-glow{ position:absolute; inset:0; z-index:0; pointer-events:none; opacity:0; transition:opacity .6s ease; background:radial-gradient(420px circle at var(--gx,70%) var(--gy,40%), rgba(138,92,255,.22), rgba(61,108,255,.08) 45%, transparent 70%); }
.hero-glow.on{ opacity:1; }
.hero .h1{ font-size:clamp(2.2rem, min(4.3vw, 7.2vh), 3.9rem); }
@media (min-width:1600px){ .hero .h1{ font-size:clamp(2.2rem, min(4.3vw, 7.2vh), 4.4rem); } }
@media (max-width:900px){ .hero .h1{ font-size:clamp(2.1rem, 9vw, 2.9rem); } }


/* reduced motion: everything is simply there, no fades */
@media (prefers-reduced-motion:reduce){
  .fade, .reveal, .stagger > *, .wi, .hero-hand, .ai-badge, .hero-copy .eyebrow, .mani .mw, .mani em{ transition:none !important; animation:none !important; opacity:1 !important; transform:none !important; filter:none !important; clip-path:none !important; }
}
/* footer: plain entries (technologies, location) match the link colour */
.footer li{ color:var(--muted); }
