/* Layout: bright white canvas with a living "universe" — orbiting roles, drifting constellation, vivid gradient accents per role/step */
:root{
  --blue:#2563EB; --violet:#7C3AED; --pink:#DB2777; --orange:#EA580C; --teal:#0D9488; --amber:#B45309;
  --t-blue:#EAF0FF; --t-violet:#F2ECFF; --t-pink:#FDEBF4; --t-orange:#FFF0E6; --t-teal:#E3F7F4; --t-amber:#FFF4DE;
  --white:#FFFFFF; --wash:#F6F7FC; --fg:#0B1020; --mute:#5A6374; --line:#E6E8F1; --line-2:#D3D7E4;
  --night:#0A0F24; --on-night:#FFFFFF; --on-night-mute:#B4BCD6; --night-line:rgba(255,255,255,.14);
  --grad:linear-gradient(110deg,#2563EB 0%,#7C3AED 40%,#DB2777 72%,#F97316 100%);
  --grad-btn:linear-gradient(110deg,#2563EB,#7C3AED 55%,#DB2777);
  --f-display:"Sora", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --f-body:"Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --r:20px;
  --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--white);color:var(--fg);font-family:var(--f-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--white)}
a{color:inherit}
h1,h2,h3{font-family:var(--f-display);font-weight:700;line-height:1.08;text-wrap:balance;margin:0;letter-spacing:-.03em}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.gt{background:var(--grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shift 6s ease-in-out infinite alternate}
@keyframes shift{to{background-position:100% 0}}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 8px;border-radius:999px;background:var(--wash);border:1px solid var(--line);color:var(--fg)}
.eyebrow i{width:18px;height:18px;border-radius:50%;background:var(--grad);flex:none;box-shadow:0 0 0 3px rgba(124,58,237,.12)}
.night .eyebrow{background:rgba(255,255,255,.06);border-color:var(--night-line);color:#fff}
:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:8px}

.progress{position:fixed;left:0;top:env(safe-area-inset-top,0px);height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--grad);z-index:70}
.glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:45;background:radial-gradient(circle,rgba(124,58,237,.16),rgba(37,99,235,.08) 40%,transparent 70%);mix-blend-mode:multiply;transition:opacity .4s;opacity:0}
.glow{display:none}
@media (pointer:fine){.glow{display:block;opacity:1}}
html{overflow-x:clip}
[hidden]{display:none!important}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.78);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
header.top.scrolled{border-bottom-color:var(--line);box-shadow:0 10px 30px -20px rgba(11,16,32,.25)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand-mark{width:38px;height:38px;flex:none}
.brand-mark .orb{transform-origin:20px 20px;animation:spin 12s linear infinite}
.brand b{font-family:var(--f-display);font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.1;display:block}
.brand small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--mute)}
nav.links{display:flex;gap:6px;font-size:14px;font-weight:600}
nav.links a{text-decoration:none;color:var(--mute);padding:8px 14px;border-radius:999px;transition:color .2s,background .2s}
nav.links a:hover{color:var(--fg);background:var(--wash)}
.btn{--bg:var(--grad-btn);--c:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;border-radius:999px;background:var(--bg);background-size:160% 100%;color:var(--c);font-weight:700;font-size:15px;text-decoration:none;border:0;cursor:pointer;font-family:inherit;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-position .6s;position:relative;overflow:hidden;box-shadow:0 10px 24px -12px rgba(124,58,237,.7)}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{background-position:100% 0;box-shadow:0 18px 36px -14px rgba(124,58,237,.8)}
.btn.ghost{--bg:var(--white);--c:var(--fg);box-shadow:inset 0 0 0 1.5px var(--line-2)}
.btn.ghost:hover{box-shadow:inset 0 0 0 1.5px var(--violet),0 10px 24px -16px rgba(124,58,237,.6)}
.btn.sm{padding:10px 18px;font-size:14px}
.btn svg{width:18px;height:18px}
.menu-btn{display:none;background:var(--wash);border:1px solid var(--line);border-radius:12px;color:var(--fg);padding:8px;cursor:pointer}
@media (max-width:920px){nav.links{display:none}.menu-btn{display:block}header.top .btn.sm{display:none}}
.mobile-nav{display:grid;gap:4px;padding-block:6px 18px}
.mobile-nav a{padding:13px 14px;border-radius:12px;text-decoration:none;font-family:var(--f-display);font-weight:600;font-size:18px;background:var(--wash)}

/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;z-index:-2;animation:drift 18s ease-in-out infinite alternate}
.blob.b1{width:420px;height:420px;background:#B9CCFF;right:-80px;top:-60px}
.blob.b2{width:360px;height:360px;background:#E3D2FF;right:22%;bottom:-120px;animation-delay:-6s}
.blob.b3{width:280px;height:280px;background:#FFD3E6;left:-80px;top:30%;animation-delay:-12s}
.blob.b4{width:240px;height:240px;background:#FFE1C7;right:8%;top:42%;animation-delay:-3s}
@keyframes drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-30px) scale(1.12)}100%{transform:translate(-30px,30px) scale(.95)}}
.hero .wrap.hero-grid{padding-block:56px 48px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:center}
@media (max-width:960px){.hero .wrap.hero-grid{grid-template-columns:1fr;padding-block:40px 36px}}
.hero-copy{display:grid;gap:26px;min-width:0}
.hero-tag{display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 8px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--fg);width:max-content;max-width:100%;box-shadow:0 8px 20px -14px rgba(11,16,32,.3);animation:fadeUp .9s var(--ease) both}
.hero-tag b{background:var(--grad);color:#fff;font-size:11px;padding:3px 9px;border-radius:999px;letter-spacing:.06em}
.hero h1{font-size:clamp(42px,6.6vw,84px);font-weight:800;letter-spacing:-.045em;line-height:1.02}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .line>span{display:inline-block;animation:rise 1.1s var(--ease) both}
.hero h1 .line:nth-child(2)>span{animation:rise 1.1s .1s var(--ease) both,shift 6s ease-in-out infinite alternate}
.hero h1 .line:nth-child(3)>span{animation-delay:.2s}
@keyframes rise{from{transform:translateY(105%) rotate(3deg)}to{transform:none}}
.hero-sub{max-width:52ch;font-size:clamp(16px,1.5vw,18.5px);color:var(--mute);animation:fadeUp 1s .4s var(--ease) both}
.hero-sub strong{color:var(--fg)}
.rotator{display:inline-grid;vertical-align:bottom;font-weight:700}
.rotator span{grid-area:1/1;white-space:nowrap;background:var(--grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform .6s var(--ease),opacity .6s,visibility 0s .6s}
.rotator span.on{visibility:visible;transition-delay:0s}
.rotator span:not(.on){opacity:0;visibility:hidden;transform:translateY(70%)}
.rotator span.out{opacity:0;transform:translateY(-70%)}
@keyframes fadeUp{from{transform:translateY(20px)}to{transform:none}}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;animation:fadeUp 1s .55s var(--ease) both}
.trust{display:flex;align-items:center;gap:14px;animation:fadeUp 1s .7s var(--ease) both;flex-wrap:wrap}
.faces{display:flex}
.faces span{width:36px;height:36px;border-radius:50%;border:3px solid #fff;margin-left:-10px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff}
.faces span:first-child{margin-left:0}
.trust p{font-size:14px;color:var(--mute)}
.trust p b{color:var(--fg)}

/* orbit */
.orbit-wrap{position:relative;width:min(540px,100%);margin-inline:auto;aspect-ratio:1/1;max-width:100%}
.orbit{position:absolute;inset:6%}
.ring{position:absolute;border-radius:50%;border:1.5px dashed var(--line-2);animation:spin var(--d,40s) linear infinite}
.ring.r1{inset:0;--d:46s}
.ring.r2{inset:17%;--d:32s;animation-direction:reverse;border-style:solid;border-color:rgba(124,58,237,.2)}
.ring.r3{inset:31%;--d:22s}
@keyframes spin{to{transform:rotate(360deg)}}
.sat{position:absolute;transform:translate(-50%,-50%)}
.sat-in{animation:spin var(--d,40s) linear infinite reverse}
.ring.r2 .sat-in{animation-direction:normal}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;background:#fff;box-shadow:0 12px 30px -12px rgba(11,16,32,.35),0 0 0 1px var(--line);font-size:13px;font-weight:700;white-space:nowrap;color:var(--fg)}
.pill i{width:22px;height:22px;border-radius:50%;background:var(--c);display:grid;place-items:center;flex:none}
.pill i::after{content:"";width:7px;height:7px;border-radius:50%;background:#fff}
.dotp{display:block;width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 18%,transparent)}
.core{position:absolute;inset:38%;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0%,#C7B5FF 18%,#7C3AED 48%,#2563EB 78%,#1E2A78 100%);box-shadow:0 30px 60px -20px rgba(124,58,237,.65),inset -10px -14px 30px rgba(11,16,32,.35);display:grid;place-items:center;animation:breathe 5s ease-in-out infinite}
.core::before{content:"";position:absolute;inset:-22%;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.28),transparent 65%);z-index:-1}
.core b{font-family:var(--f-display);font-weight:800;color:#fff;font-size:clamp(24px,4.6vw,38px);letter-spacing:-.04em}
@keyframes breathe{50%{transform:scale(1.06)}}
.fcard{position:absolute;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:16px;padding:12px 14px;box-shadow:0 22px 44px -18px rgba(11,16,32,.35),0 0 0 1px var(--line);display:flex;gap:11px;align-items:center;animation:bob 6s ease-in-out infinite;z-index:2;max-width:70%}
.fcard .ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;color:#fff}
.fcard .ic svg{width:18px;height:18px}
.fcard small{display:block;font-size:11px;color:var(--mute);font-weight:600}
.fcard strong{font-family:var(--f-display);font-size:16px;font-weight:700;letter-spacing:-.02em;display:block;line-height:1.25;white-space:nowrap}
.fcard.c1{left:0;top:10%}
.fcard.c2{right:0;bottom:8%;animation-delay:-3s}
.fcard.c3{right:0;top:0;animation-delay:-1.5s;padding:9px 12px}
@keyframes bob{50%{transform:translateY(-12px)}}
.spark{display:block;width:64px;height:26px;flex:none}
.fcard strong.swap{display:grid;overflow:hidden}
.swap span{grid-area:1/1;transition:transform .5s var(--ease),opacity .5s}
.swap span:not(.on){transform:translateY(100%);opacity:0}
@media (max-width:520px){.orbit{inset:15% 13%}.orbit-wrap{margin-top:8px}.pill{font-size:10.5px;padding:5px 9px 5px 5px;gap:5px}.pill i{width:15px;height:15px}.pill i::after{width:5px;height:5px}.fcard.c1{top:2%}.fcard.c2{bottom:2%}.fcard{padding:9px 11px;gap:8px}.fcard strong{font-size:13.5px}.fcard .ic{width:30px;height:30px}.fcard.c3,.spark{display:none}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-bottom:28px}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat{border-radius:var(--r);padding:22px 20px;background:var(--ct);position:relative;overflow:hidden;transition:transform .4s var(--ease)}
.stat:hover{transform:translateY(-4px)}
.stat::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:var(--c);opacity:.12;animation:breathe 6s ease-in-out infinite}
.stat b{display:block;font-family:var(--f-display);font-size:clamp(32px,4vw,46px);font-weight:800;letter-spacing:-.04em;color:var(--c);line-height:1.1;font-variant-numeric:tabular-nums}
.stat>span{font-size:14px;font-weight:600;color:var(--fg)}
.stat b span{font:inherit;color:inherit}

/* marquee */
.marquee{padding-block:30px;display:grid;gap:12px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq{display:flex;gap:12px;width:max-content;animation:scroll 50s linear infinite}
.mq.rev{animation-direction:reverse;animation-duration:60s}
.mq span{display:inline-flex;align-items:center;gap:10px;padding:11px 20px;border-radius:999px;font-weight:700;font-size:15px;white-space:nowrap;background:var(--ct);color:var(--c)}
.mq span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}
.marquee:hover .mq{animation-play-state:paused}
@keyframes scroll{to{transform:translateX(-50%)}}

/* sections */
section{scroll-margin-top:74px}
.band{padding-block:clamp(72px,10vw,120px)}
.wash{background:var(--wash)}
.night{background:var(--night);color:var(--on-night)}
.sec-head{display:grid;justify-items:center;text-align:center;gap:16px;margin:0 auto 52px;max-width:760px}
.sec-head h2{font-size:clamp(34px,5vw,58px);font-weight:800;letter-spacing:-.045em}
.sec-head p{color:var(--mute);font-size:17px;max-width:56ch}
.words .w{display:inline-block;transition:transform .9s var(--ease)}
.js .words.pre .w{transform:translateY(.5em)}

.rv{transition:transform 1s var(--ease)}
.js .rv.pre{transform:translateY(40px) scale(.98)}

/* roles */
.filters-c{display:flex;justify-content:center}
.filters{position:relative;display:inline-flex;flex-wrap:wrap;gap:4px;padding:5px;border-radius:999px;background:var(--white);border:1px solid var(--line);margin:0 auto 32px;box-shadow:0 10px 30px -24px rgba(11,16,32,.5)}
.chip{position:relative;z-index:1;font:700 14px var(--f-body);padding:10px 18px;border-radius:999px;border:0;background:transparent;color:var(--mute);cursor:pointer;transition:color .3s}
.chip[aria-pressed="true"]{color:#fff}
.chip .n{font-size:11px;opacity:.7;margin-left:6px}
.pillbg{position:absolute;z-index:0;top:5px;left:5px;height:calc(100% - 10px);border-radius:999px;background:var(--grad-btn);transition:left .5s var(--ease),width .5s var(--ease),top .5s var(--ease);box-shadow:0 8px 20px -10px rgba(124,58,237,.8)}
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;perspective:1000px}
@media (max-width:980px){.roles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.roles{grid-template-columns:1fr}}
.role{position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px 22px;display:flex;flex-direction:column;gap:14px;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s;min-width:0}
.role::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--c);transform:scaleX(.18);transform-origin:left;transition:transform .7s var(--ease);z-index:2}
.role::after{content:"";position:absolute;inset:0;background:radial-gradient(300px circle at var(--mx,50%) var(--my,0%),var(--ct),transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:0}
.role>*{position:relative;z-index:1}
.role:hover{box-shadow:0 30px 60px -30px color-mix(in srgb,var(--c) 60%,transparent);border-color:color-mix(in srgb,var(--c) 35%,var(--line))}
.role:hover::before{transform:scaleX(1)}
.role:hover::after{opacity:1}
.role.hide{display:none}
.role-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.role-ic{width:52px;height:52px;border-radius:16px;background:var(--ct);color:var(--c);display:grid;place-items:center;flex:none;transition:transform .5s var(--ease),background .4s,color .4s}
.role:hover .role-ic{background:var(--c);color:#fff;transform:rotate(-8deg) scale(1.06)}
.role-ic svg{width:24px;height:24px}
.tag{font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--wash);color:var(--mute)}
.role h3{font-size:24px}
.role p{color:var(--mute);font-size:15px}
.modes{display:flex;flex-wrap:wrap;gap:6px}
.mode{font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;background:var(--ct);color:var(--c)}
.role-pay{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:16px;border-top:1px dashed var(--line-2);margin-top:auto}
.role-pay small{display:block;font-size:12px;color:var(--mute);font-weight:600}
.role-pay b{font-family:var(--f-display);font-size:17px;font-weight:700}
.role-pay a{font-weight:700;font-size:14px;text-decoration:none;color:#fff;background:var(--c);display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:9px 14px;border-radius:999px;transition:transform .3s var(--ease)}
.role-pay a:hover{transform:scale(1.06)}

.opp{margin-top:24px;border-radius:28px;background:var(--grad);background-size:200% 100%;animation:shift 10s ease-in-out infinite alternate;color:#fff;padding:clamp(28px,4.4vw,52px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;align-items:center;position:relative;overflow:hidden}
.opp::before,.opp::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.28);animation:spin 30s linear infinite}
.opp::before{width:340px;height:340px;right:-90px;top:-120px;border-style:dashed}
.opp::after{width:200px;height:200px;right:-20px;top:-50px}
.opp>*{position:relative;z-index:1}
.opp .eyebrow{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.25);color:#fff}
.opp .eyebrow i{background:#fff}
.opp h3{font-size:clamp(28px,3.8vw,44px);font-weight:800;margin-top:16px}
.opp p{color:rgba(255,255,255,.9);margin-top:12px;max-width:52ch}
.opp ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.opp li{display:flex;gap:12px;align-items:flex-start;font-size:15px;font-weight:600;background:rgba(255,255,255,.15);padding:12px 14px;border-radius:14px;transition:transform .3s var(--ease),background .3s}
.opp li:hover{transform:translateX(6px);background:rgba(255,255,255,.22)}
.opp li::before{content:"";flex:none;width:20px;height:20px;margin-top:1px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C3AED' stroke-width='3'%3E%3Cpath d='M6 12l4 4 8-9'/%3E%3C/svg%3E") center/12px no-repeat}
.opp .btn{--bg:#fff;--c:var(--violet);box-shadow:0 14px 30px -14px rgba(0,0,0,.4)}
@media (max-width:800px){.opp{grid-template-columns:1fr}}

/* work modes */
.modes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media (max-width:860px){.modes-grid{grid-template-columns:1fr}}
.wm{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:14px 14px 26px;display:flex;flex-direction:column;gap:16px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.wm:hover{transform:translateY(-8px);box-shadow:0 30px 60px -32px color-mix(in srgb,var(--c) 70%,transparent)}
.wm:nth-child(1){--c:var(--blue);--ct:var(--t-blue)}.wm:nth-child(2){--c:var(--teal);--ct:var(--t-teal)}.wm:nth-child(3){--c:var(--pink);--ct:var(--t-pink)}
.wm-art{height:150px;border-radius:14px;background:var(--ct);position:relative;overflow:hidden;color:var(--c)}
.wm-art svg{position:absolute;inset:0;width:100%;height:100%}
.wm-art .float{animation:bob 4s ease-in-out infinite}
.wm-body{padding-inline:10px;display:grid;gap:12px}
.wm h3{font-size:26px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.wm h3 span{font-size:12px;font-family:var(--f-body);font-weight:700;letter-spacing:.02em;padding:4px 10px;border-radius:999px;background:var(--c);color:#fff}
.wm p{color:var(--mute);font-size:15px}
.wm dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0;font-size:14px;padding-top:14px;border-top:1px dashed var(--line-2)}
.wm dt{font-size:12px;font-weight:700;color:var(--c)}
.wm dd{margin:0;font-weight:600}
.draw path,.draw rect,.draw line,.draw circle{stroke-dasharray:var(--len,400);stroke-dashoffset:0;transition:stroke-dashoffset 2.2s var(--ease)}
.js .draw.pre path,.js .draw.pre rect,.js .draw.pre line,.js .draw.pre circle{stroke-dashoffset:var(--len,400)}

/* calculator */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
@media (max-width:900px){.calc{grid-template-columns:1fr}}
.calc-in{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3.2vw,36px);display:grid;gap:28px;min-width:0;box-shadow:0 20px 50px -40px rgba(11,16,32,.4)}
.field{--c:var(--blue)}
.field label,.field .lbl{display:flex;justify-content:space-between;align-items:center;gap:10px;font-weight:700;font-size:15px;margin-bottom:12px}
.field output{font-family:var(--f-display);font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);padding:4px 10px;border-radius:8px;font-variant-numeric:tabular-nums;font-size:14px}
.field .hint{font-size:13px;color:var(--mute);margin-top:10px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:8px;background:linear-gradient(90deg,var(--c) var(--p,50%),var(--line) var(--p,50%));outline-offset:6px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:6px solid var(--c);cursor:grab;box-shadow:0 6px 16px -4px color-mix(in srgb,var(--c) 70%,transparent);transition:transform .2s}
input[type=range]::-webkit-slider-thumb:active{transform:scale(1.2)}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:6px solid var(--c);cursor:grab}
.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:5px;border-radius:14px;background:var(--wash);border:1px solid var(--line)}
.seg button{font:700 13px var(--f-body);padding:11px 6px;border-radius:10px;border:0;background:transparent;color:var(--mute);cursor:pointer;transition:all .3s var(--ease)}
.seg button[aria-pressed="true"]{background:var(--grad-btn);color:#fff;box-shadow:0 8px 18px -8px rgba(124,58,237,.8)}
.calc-out{background:linear-gradient(150deg,#2563EB 0%,#7C3AED 55%,#DB2777 100%);color:#fff;border-radius:var(--r);padding:clamp(24px,3.2vw,38px);display:flex;flex-direction:column;gap:22px;position:relative;overflow:hidden;min-width:0;box-shadow:0 40px 80px -40px rgba(124,58,237,.8)}
.calc-out::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(180deg,#000,transparent 75%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 75%);pointer-events:none}
.calc-out::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.12);right:-90px;top:-90px;animation:breathe 6s ease-in-out infinite}
.calc-out>*{position:relative;z-index:1}
.lbl-w{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.big{font-family:var(--f-display);font-size:clamp(46px,7vw,82px);font-weight:800;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:10px}
.big.bump{animation:bump .4s var(--ease)}
@keyframes bump{40%{transform:scale(1.04)}}
.big-lbl{font-size:14px;color:rgba(255,255,255,.88);margin-top:10px}
.rows{display:grid;gap:8px}
.rows div{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.13);font-size:15px}
.rows span{color:rgba(255,255,255,.88)}
.rows b{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.bars{display:flex;align-items:flex-end;gap:6px;height:90px}
.bars i{flex:1;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#FFE08A,#FF8FB1);transition:height .7s var(--ease);min-height:4px}
.bars i:nth-child(3n+2){background:linear-gradient(180deg,#9FF0E1,#7CC4FF)}
.bars i:nth-child(3n){background:linear-gradient(180deg,#fff,rgba(255,255,255,.55))}
.bars-lbl{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:rgba(255,255,255,.85);margin-top:8px;font-weight:600}
.note{font-size:12.5px;color:rgba(255,255,255,.8)}

/* ladder */
.ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;position:relative;padding-top:12px}
.ladder::before{content:"";position:absolute;left:4%;right:4%;top:0;height:4px;border-radius:4px;background:var(--line)}
.ladder .fill{position:absolute;left:4%;top:0;height:4px;border-radius:4px;background:var(--grad);width:var(--w,0%);max-width:92%;transition:width 2.2s var(--ease)}
.step{position:relative;display:grid;gap:12px;align-content:start;justify-items:start;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:22px 20px;min-width:0;transition:transform .4s var(--ease),box-shadow .4s}
.step:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px color-mix(in srgb,var(--c) 70%,transparent)}
.step:nth-child(2){--c:var(--blue);--ct:var(--t-blue)}.step:nth-child(3){--c:var(--violet);--ct:var(--t-violet)}.step:nth-child(4){--c:var(--pink);--ct:var(--t-pink)}.step:nth-child(5){--c:var(--orange);--ct:var(--t-orange)}
.step .dot{width:46px;height:46px;border-radius:14px;background:var(--c);display:grid;place-items:center;font-family:var(--f-display);font-size:15px;font-weight:800;color:#fff;box-shadow:0 10px 20px -8px var(--c)}
.step h3{font-size:21px}
.step p{font-size:14.5px;color:var(--mute)}
.step .tm{font-size:11.5px;font-weight:700;color:var(--c);background:var(--ct);padding:4px 10px;border-radius:999px}
@media (max-width:860px){.ladder{grid-template-columns:1fr;gap:16px;padding-top:0;padding-left:26px}.ladder::before,.ladder .fill{left:0;right:auto;top:10px;bottom:10px;width:4px;height:auto;max-width:none}.ladder .fill{height:var(--w,0%);bottom:auto;max-height:calc(100% - 20px);transition-property:height}}

/* process */
.proc{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
@media (max-width:960px){.proc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.proc{grid-template-columns:1fr}}
.pstep{position:relative;border-radius:var(--r);padding:22px 20px;background:var(--ct);display:grid;gap:10px;align-content:start;overflow:hidden;transition:transform .4s var(--ease)}
.pstep:hover{transform:translateY(-6px) rotate(-1deg)}
.pstep:nth-child(1){--c:var(--blue);--ct:var(--t-blue)}.pstep:nth-child(2){--c:var(--violet);--ct:var(--t-violet)}.pstep:nth-child(3){--c:var(--pink);--ct:var(--t-pink)}.pstep:nth-child(4){--c:var(--orange);--ct:var(--t-orange)}.pstep:nth-child(5){--c:var(--teal);--ct:var(--t-teal)}
.pstep .num{font-family:var(--f-display);font-size:68px;font-weight:800;line-height:.8;color:var(--c);opacity:.18;position:absolute;right:14px;top:16px;letter-spacing:-.05em;transition:opacity .3s,transform .5s var(--ease)}
.pstep:hover .num{opacity:.35;transform:scale(1.1)}
.pstep .k{font-size:12px;font-weight:700;color:var(--c)}
.pstep h3{font-size:21px}
.pstep p{font-size:14px;color:var(--mute)}

/* perks bento */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
@media (max-width:900px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.bento{grid-template-columns:1fr}}
.perk{border-radius:var(--r);padding:24px;background:var(--white);border:1px solid var(--line);display:grid;gap:12px;align-content:start;position:relative;overflow:hidden;transition:transform .45s var(--ease),box-shadow .45s}
.perk:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px color-mix(in srgb,var(--c) 70%,transparent)}
.perk.wide{grid-column:span 2;background:var(--ct);border-color:transparent}
@media (max-width:560px){.perk.wide{grid-column:auto}}
.perk:nth-child(1){--c:var(--blue);--ct:var(--t-blue)}.perk:nth-child(2){--c:var(--violet);--ct:var(--t-violet)}.perk:nth-child(3){--c:var(--teal);--ct:var(--t-teal)}.perk:nth-child(4){--c:var(--orange);--ct:var(--t-orange)}.perk:nth-child(5){--c:var(--pink);--ct:var(--t-pink)}.perk:nth-child(6){--c:var(--amber);--ct:var(--t-amber)}
.perk .pi{width:50px;height:50px;border-radius:15px;background:var(--c);color:#fff;display:grid;place-items:center;transition:transform .5s var(--ease)}
.perk:hover .pi{transform:rotate(-10deg) scale(1.08)}
.perk .pi svg{width:24px;height:24px}
.perk h3{font-size:20px}
.perk p{color:var(--mute);font-size:15px}
.perk.wide h3{font-size:26px}

/* FAQ */
.faq{display:grid;gap:12px;max-width:860px;margin:0 auto}
.faq details{border:1px solid var(--line);border-radius:18px;background:var(--white);transition:box-shadow .3s,border-color .3s}
.faq details[open]{border-color:rgba(124,58,237,.35);box-shadow:0 20px 40px -30px rgba(124,58,237,.7)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;font-family:var(--f-display);font-weight:600;font-size:clamp(16px,2vw,19px);letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:32px;height:32px;border-radius:50%;background:var(--wash);position:relative;transition:background .3s,transform .4s var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;border-radius:2px;background:var(--fg);transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .4s var(--ease)}
.faq details[open] summary i{background:var(--grad-btn);transform:rotate(180deg)}
.faq details[open] summary i::before,.faq details[open] summary i::after{background:#fff}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq .ans{padding:0 22px 22px;color:var(--mute);max-width:66ch}

/* apply */
#apply{position:relative;overflow:hidden;isolation:isolate}
.aurora{position:absolute;inset:-20%;z-index:-1;background:
  radial-gradient(30% 40% at 15% 20%,rgba(124,58,237,.55),transparent 70%),
  radial-gradient(28% 38% at 85% 80%,rgba(219,39,119,.45),transparent 70%),
  radial-gradient(26% 34% at 70% 15%,rgba(37,99,235,.5),transparent 70%),
  radial-gradient(22% 30% at 30% 90%,rgba(13,148,136,.4),transparent 70%);animation:aur 16s ease-in-out infinite alternate;filter:blur(20px)}
@keyframes aur{to{transform:rotate(12deg) scale(1.1)}}
.apply{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);align-items:center}
@media (max-width:900px){.apply{grid-template-columns:1fr}}
.apply h2{font-size:clamp(38px,5.6vw,68px);font-weight:800;letter-spacing:-.045em;margin-top:18px}
.apply h2 .gt{background:linear-gradient(110deg,#9DB9FF,#D4BCFF 45%,#FFB3D2 75%,#FFC59E);background-size:220% 100%;-webkit-background-clip:text;background-clip:text}
.contact-list{display:grid;gap:12px;margin-top:32px}
.contact{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid var(--night-line)}
.contact .ci{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--grad-btn)}
.contact svg{width:20px;height:20px;color:#fff}
.contact small{display:block;font-size:12px;color:var(--on-night-mute)}
.contact b{font-family:var(--f-display);font-weight:700;font-size:17px;user-select:all}
.copy{margin-left:auto;font:700 12px var(--f-body);color:#fff;background:rgba(255,255,255,.1);border:1px solid var(--night-line);border-radius:999px;padding:7px 14px;cursor:pointer}
form.card{background:var(--white);color:var(--fg);border-radius:26px;padding:clamp(22px,3.4vw,40px);display:grid;gap:18px;box-shadow:0 50px 100px -40px rgba(0,0,0,.7);min-width:0;position:relative;outline:2px solid transparent}
form.card::before{content:"";position:absolute;inset:-2px;border-radius:28px;background:var(--grad);background-size:200% 100%;animation:shift 6s ease-in-out infinite alternate;z-index:-1}
.form-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.form-h h3{font-size:24px}
.steps{display:flex;gap:6px}
.steps i{width:26px;height:6px;border-radius:6px;background:var(--line);transition:background .4s}
.steps i.on{background:var(--grad-btn)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:560px){.form-grid{grid-template-columns:1fr}}
.in label,.lbl-sm{display:block;font-size:13px;font-weight:700;margin-bottom:7px}
.in input,.in select{width:100%;font:500 16px var(--f-body);padding:14px 15px;border-radius:14px;border:1.5px solid var(--line);background:var(--wash);color:var(--fg);transition:border-color .2s,box-shadow .2s,background .2s;appearance:none;-webkit-appearance:none}
.in select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6374' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px}
.in input:focus,.in select:focus{outline:none;border-color:var(--violet);background:#fff;box-shadow:0 0 0 4px rgba(124,58,237,.14)}
.in .err{display:none;font-size:12.5px;color:#C0392B;margin-top:6px;font-weight:600}
.in.bad input,.in.bad select{border-color:#E05A4F;animation:shake .4s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.in.bad .err{display:block}
.pick{display:flex;flex-wrap:wrap;gap:8px}
.pick label{margin:0}
.pick input{position:absolute;opacity:0;pointer-events:none}
.pick span{display:inline-block;padding:9px 15px;border-radius:999px;border:1.5px solid var(--line);font-size:14px;font-weight:600;cursor:pointer;transition:all .25s var(--ease);background:#fff}
.pick span:hover{border-color:var(--violet)}
.pick input:checked+span{background:var(--grad-btn);color:#fff;border-color:transparent;box-shadow:0 8px 18px -10px rgba(124,58,237,.9)}
.pick input:focus-visible+span{outline:2px solid var(--violet);outline-offset:2px}
form.card .btn{width:100%;padding:17px}
.fine{font-size:12.5px;color:var(--mute);text-align:center}
.done{display:grid;gap:16px;text-align:left}
.done .tick{width:60px;height:60px;border-radius:50%;background:var(--grad-btn);display:grid;place-items:center;animation:pop .7s var(--ease);box-shadow:0 0 0 10px rgba(124,58,237,.12)}
.done .tick svg{width:28px;height:28px;color:#fff}
@keyframes pop{0%{transform:scale(.3) rotate(-30deg)}70%{transform:scale(1.1)}100%{transform:none}}
.done h3{font-size:28px}
.summary{display:grid;border-radius:14px;background:var(--wash);padding:4px 16px}
.summary div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.summary div:last-child{border-bottom:0}
.summary span{color:var(--mute)}
.summary b{text-align:right;min-width:0;overflow-wrap:anywhere}
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:80}

footer{background:var(--night);color:var(--on-night-mute);font-size:14px;border-top:1px solid var(--night-line)}
footer .wrap.foot{padding-block:56px calc(28px + 70px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:32px}
@media (max-width:760px){footer .wrap.foot{grid-template-columns:1fr}}
.foot-brand p{margin-top:10px;max-width:40ch}
.foot-col{display:grid;gap:8px;align-content:start;min-width:0;overflow-wrap:anywhere}
.foot-col h4{margin:0 0 4px;color:#fff;font-family:var(--f-display);font-size:15px}
.foot-col a{color:var(--on-night-mute);font-weight:500}
.foot-col a:hover{color:#fff}
.socials{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.socials a{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid var(--night-line);transition:background .3s,transform .3s}
.socials a:hover{background:var(--grad-btn);transform:translateY(-3px)}
.socials svg{width:18px;height:18px;color:#fff}
.foot-bottom{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;border-top:1px solid var(--night-line);font-size:13px}
footer b{color:#fff;font-family:var(--f-display)}
footer a{text-decoration:none;font-weight:700}
footer a span{background:linear-gradient(110deg,#9DB9FF,#D4BCFF,#FFB3D2);-webkit-background-clip:text;background-clip:text;color:transparent}

.fab{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:40;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 14px 30px -10px rgba(11,16,32,.45);text-decoration:none;transition:transform .3s var(--ease)}
.fab:hover{transform:scale(1.1) rotate(-8deg)}
.fab svg{width:30px;height:30px}
.fab::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:ring 2.4s infinite}
@keyframes ring{from{transform:scale(1);opacity:.7}to{transform:scale(1.7);opacity:0}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .mq{animation:none}
}

/* founder */
.founder-chip{display:flex;align-items:center;gap:12px;padding:8px 16px 8px 8px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid var(--line);box-shadow:0 14px 30px -18px rgba(11,16,32,.4);text-decoration:none;width:max-content;max-width:100%;animation:fadeUp 1s .7s var(--ease) both;transition:transform .35s var(--ease),box-shadow .35s}
.founder-chip:hover{transform:translateY(-3px);box-shadow:0 20px 40px -18px rgba(124,58,237,.5)}
.fc-ph{position:relative;width:54px;height:54px;flex:none;border-radius:50%;padding:3px;background:var(--grad);background-size:200% 100%;animation:shift 4s ease-in-out infinite alternate}
.fc-in{display:block;width:100%;height:100%;border-radius:50%;background:#fff;padding:2px}
.fc-ph img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid #fff;display:block}
.founder-chip b{display:block;font-family:var(--f-display);font-size:15px;letter-spacing:-.02em;line-height:1.2}
.founder-chip small{display:block;font-size:12px;color:var(--mute);font-weight:600}
.founder-chip .go{font-size:12.5px;font-weight:700;color:var(--violet);margin-left:6px;white-space:nowrap}
@media (max-width:520px){.founder-chip .go{display:none}}
.about{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,80px);align-items:center}
@media (max-width:900px){.about{grid-template-columns:1fr}}
.portrait{position:relative;width:min(400px,86%);aspect-ratio:1/1;margin:0 auto 30px}
.portrait .halo{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#2563EB,#7C3AED,#DB2777,#F97316,#0D9488,#2563EB);animation:spin 10s linear infinite}
.portrait .halo::after{content:"";position:absolute;inset:-9%;border-radius:50%;border:1.5px dashed var(--line-2);animation:spin 40s linear infinite reverse}
.portrait img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);border-radius:50%;object-fit:cover;border:8px solid #fff;box-shadow:0 30px 60px -24px rgba(11,16,32,.45)}
.portrait .nm{position:absolute;left:50%;bottom:-8%;translate:-50% 0;background:#fff;border-radius:16px;padding:12px 18px;box-shadow:0 22px 44px -18px rgba(11,16,32,.35),0 0 0 1px var(--line);text-align:center;white-space:nowrap;animation:bob 6s ease-in-out infinite}
.portrait .nm b{display:block;font-family:var(--f-display);font-size:17px;letter-spacing:-.02em}
.portrait .nm small{font-size:12px;font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.portrait .orb1,.portrait .orb2{position:absolute;border-radius:50%;animation:bob 5s ease-in-out infinite}
.portrait .orb1{width:22px;height:22px;background:#F59E0B;right:6%;top:8%;box-shadow:0 0 0 8px rgba(245,158,11,.18)}
.portrait .orb2{width:14px;height:14px;background:var(--teal);left:4%;bottom:22%;animation-delay:-2s;box-shadow:0 0 0 7px rgba(13,148,136,.16)}
.about-copy{display:grid;gap:18px;min-width:0}
.about-copy h2{font-size:clamp(32px,4.6vw,54px);font-weight:800;letter-spacing:-.045em}
.about-copy>p{color:var(--mute);font-size:16.5px;max-width:58ch}
.quote{position:relative;border-radius:var(--r);padding:24px 24px 22px 26px;background:var(--wash);border:1px solid var(--line);overflow:hidden}
.quote::before{content:"\201C";position:absolute;right:16px;top:-14px;font-family:var(--f-display);font-size:110px;line-height:1;font-weight:800;color:var(--violet);opacity:.14}
.quote p{font-size:16.5px;line-height:1.7;color:var(--fg);position:relative}
.quote cite{display:block;margin-top:12px;font-style:normal;font-weight:700;font-family:var(--f-display)}
.quote cite span{display:block;font-family:var(--f-body);font-weight:600;font-size:13px;color:var(--mute)}
.values{display:flex;flex-wrap:wrap;gap:8px}
.values span{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:700;background:var(--ct);color:var(--c)}
.values span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}

/* illustrations */
.team-art{position:absolute;inset:10px;border-radius:50%;overflow:hidden;border:8px solid #fff;background:linear-gradient(160deg,#EEF2FF,#F6EEFF 55%,#FFF0F6);box-shadow:0 30px 60px -24px rgba(11,16,32,.45)}
.team-art svg,.role-art svg,.opp-art svg{display:block;width:100%;height:100%}
.role-art{height:150px;margin:-8px -6px 2px;border-radius:16px;background:var(--ct);overflow:hidden;position:relative}
.role-art::after{content:"";position:absolute;inset:auto 0 0;height:36%;background:linear-gradient(transparent,rgba(255,255,255,.35));pointer-events:none}
.opp-art{width:150px;height:130px;margin-bottom:6px;border-radius:18px;background:rgba(255,255,255,.16);overflow:hidden}
.art .fig{transform-box:fill-box;transform-origin:50% 100%;animation:sway 6s ease-in-out infinite}
.art .fl{animation:bob 4s ease-in-out infinite}
.art .fl2{animation:bob 5s ease-in-out infinite -2s}
.art .eye{transform-box:fill-box;transform-origin:center;animation:blink 5s infinite}
.art .pop{transform-box:fill-box;transform-origin:0 100%;animation:pop2 3.6s ease-in-out infinite}
.art .pop.d2{animation-delay:1.2s}
.art .bar{transform-box:fill-box;transform-origin:50% 100%;animation:grow 3s ease-in-out infinite alternate}
.art .bar.d2{animation-delay:.4s}.art .bar.d3{animation-delay:.8s}
@keyframes sway{50%{transform:rotate(1.4deg)}}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes pop2{0%,100%{transform:scale(.85);opacity:.6}40%,70%{transform:scale(1);opacity:1}}
@keyframes grow{from{transform:scaleY(.55)}to{transform:scaleY(1)}}
.fab-call{position:fixed;right:calc(24px + env(safe-area-inset-right,0px));bottom:calc(88px + env(safe-area-inset-bottom,0px));z-index:40;width:46px;height:46px;border-radius:50%;background:var(--grad-btn);color:#fff;display:grid;place-items:center;box-shadow:0 12px 26px -10px rgba(124,58,237,.7);transition:transform .3s var(--ease)}
.fab-call:hover{transform:scale(1.1)}
.fab-call svg{width:22px;height:22px}

/* ---- live site additions ---- */
.open-badge{font-size:12px;font-weight:800;padding:5px 11px;border-radius:999px;background:var(--c);color:#fff;white-space:nowrap;box-shadow:0 6px 14px -8px var(--c)}
.open-badge.closed{background:var(--line-2);color:var(--mute);box-shadow:none}
.role .modes .tag{background:var(--wash);color:var(--mute);font-size:12px;font-weight:700;padding:5px 11px}
.role-city{display:flex;gap:6px;align-items:flex-start;font-size:13.5px!important;font-weight:600;color:var(--fg)!important}
.role-city svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--c)}
.role-more{border-radius:12px;background:var(--wash);padding:0 14px;font-size:14px}
.role-more summary{cursor:pointer;padding:10px 0;font-weight:700;color:var(--c);list-style:none}
.role-more summary::-webkit-details-marker{display:none}
.role-more summary::after{content:" +";}
.role-more[open] summary::after{content:" −"}
.role-more b{display:block;font-size:13px;margin-top:4px}
.role-more ul{margin:4px 0 12px;padding-left:18px;color:var(--mute)}

.about{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:center}
@media (max-width:900px){.about{grid-template-columns:1fr}}
.about-copy{display:grid;gap:16px;min-width:0}
.about-copy h2{font-size:clamp(32px,4.6vw,52px);font-weight:800;letter-spacing:-.045em}
.about-copy p{color:var(--mute);font-size:16.5px;max-width:60ch}
.about-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.about-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:480px){.about-tiles{grid-template-columns:1fr}}
.atile{background:var(--ct);border-radius:var(--r);padding:20px;display:grid;gap:12px;align-content:start;transition:transform .4s var(--ease)}
.atile:hover{transform:translateY(-5px)}
.atile .pi{width:46px;height:46px;border-radius:14px;background:var(--c);color:#fff;display:grid;place-items:center}
.atile .pi svg{width:22px;height:22px}
.atile h3{font-size:19px}
.atile p{font-size:14.5px;color:var(--mute);margin-top:4px}

.seg{display:flex;flex-wrap:wrap}
.seg button{flex:1 1 30%;min-width:0}

.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:760px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gi{margin:0;border-radius:18px;overflow:hidden;position:relative;aspect-ratio:4/3;max-width:100%;background:var(--wash)}
.gi img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gi:hover img{transform:scale(1.06)}
.gi figcaption{position:absolute;left:10px;bottom:10px;right:10px;background:rgba(255,255,255,.92);border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600}

.visit{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:20px;align-items:stretch}
@media (max-width:900px){.visit{grid-template-columns:1fr}}
.map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);min-height:340px;background:var(--wash);box-shadow:0 30px 60px -40px rgba(11,16,32,.45)}
.map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.visit-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:grid;gap:16px;align-content:start}
.vrow{display:flex;gap:14px;align-items:flex-start}
.vi{width:42px;height:42px;border-radius:12px;background:var(--c);color:#fff;display:grid;place-items:center;flex:none}
.vi svg{width:20px;height:20px}
.vrow small{font-size:12px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.vrow p{font-weight:600;margin-top:2px;overflow-wrap:anywhere}
.vbtns{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.vbtns .btn{flex:1 1 auto}

#formBody{display:grid;gap:18px}
.fstep{display:grid;gap:18px}
.fstep[hidden]{display:none!important}
.in.full{grid-column:1/-1}
.check{display:flex!important;gap:10px;align-items:flex-start;font-size:14px!important;font-weight:500!important;cursor:pointer;margin:0!important}
.check input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:#7C3AED}
.check a{color:var(--violet)}
.pick input[type=checkbox]+span{}
.form-btns{display:grid;grid-template-columns:auto 1fr;gap:10px}
.form-btns .btn.ghost{width:auto}
.form-err{color:#C0392B;font-weight:600;font-size:14px;min-height:0}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.btn[disabled]{opacity:.6;pointer-events:none}
.hero-ctas .btn svg{flex:none}
.in .check input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;width:18px;height:18px;padding:0;border:0;background:none;box-shadow:none;border-radius:4px;flex:none}
.rotator{display:inline-block;position:relative;white-space:nowrap}
.rotator span:not(.on){position:absolute;left:0;top:0}
