/* ============ AURORA · cinematic dark→light · gradient mesh + grain ============ */
:root{
  --night:#0D0E1F;--night-2:#14152B;--haze:rgba(255,255,255,.06);
  --day:#F7F7FB;--card:#FFFFFF;--line:#E7E7F1;
  --ink:#171827;--muted:#6E7089;--faint:#A9ABC4;
  --violet:#8B7CFF;--teal:#4FE0C2;--rose:#FF8FB2;--gold:#F5C97B;
  --wa:#25D366;
  --d:'Fraunces',serif;--b:'Inter',sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--b);background:var(--day);color:var(--ink);line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit}
h1,h2,h3{font-family:var(--d);font-weight:550;line-height:1.08;letter-spacing:-.015em}
.wrap{max-width:1000px;margin:0 auto;padding:0 20px}
::selection{background:var(--violet);color:#fff}

/* grain overlay */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.5;mix-blend-mode:overlay;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* motion primitives */
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.08s}.rv[data-d="2"]{transition-delay:.16s}.rv[data-d="3"]{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:650;font-size:.94rem;padding:16px 30px;border-radius:999px;min-height:54px;transition:transform .3s var(--ease),box-shadow .3s var(--ease);overflow:hidden;isolation:isolate;border:none;cursor:pointer;font-family:inherit}
.btn:active{transform:scale(.97)}
.btn-glow{background:linear-gradient(110deg,var(--violet),#6E8BFF 50%,var(--teal));color:#0B0C18;box-shadow:0 16px 40px -14px rgba(139,124,255,.65)}
.btn-glow::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);transform:translateX(-120%) skewX(-15deg);transition:transform .7s var(--ease);z-index:-0}
.btn-glow:hover{transform:translateY(-3px)}
.btn-glow:hover::after{transform:translateX(120%) skewX(-15deg)}
.btn-ghost{border:1px solid rgba(255,255,255,.25);color:#EDEDF8;backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn-light{background:var(--ink);color:#fff}
.btn-light:hover{transform:translateY(-3px);box-shadow:0 16px 36px -14px rgba(23,24,39,.5)}
.btn-wa{background:var(--wa);color:#fff}
.ic{width:18px;height:18px;flex-shrink:0}

/* ================= HERO — aurora mesh ================= */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;background:var(--night);color:#EDEDF8;overflow:hidden}
.mesh{position:absolute;inset:-20%;filter:blur(90px);opacity:.7}
.mesh i{position:absolute;border-radius:50%}
.mesh i:nth-child(1){width:52vw;height:52vw;min-width:380px;min-height:380px;background:var(--violet);top:-8%;left:-6%;animation:drift1 16s ease-in-out infinite alternate}
.mesh i:nth-child(2){width:44vw;height:44vw;min-width:320px;min-height:320px;background:var(--teal);bottom:-12%;right:-8%;opacity:.75;animation:drift2 19s ease-in-out infinite alternate}
.mesh i:nth-child(3){width:30vw;height:30vw;min-width:240px;min-height:240px;background:var(--rose);top:34%;right:26%;opacity:.5;animation:drift1 22s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate(6vw,8vh) scale(1.12)}}
@keyframes drift2{to{transform:translate(-7vw,-6vh) scale(.92)}}
.hero-nav{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:22px 20px;max-width:1000px;margin:0 auto;width:100%}
.mark{font-family:var(--d);font-style:italic;font-size:1.15rem;color:#fff}
.hero-body{position:relative;z-index:3;flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0 96px}
.stamp{display:inline-flex;align-items:center;gap:9px;font-size:.76rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:26px}
.stamp::before{content:"";width:34px;height:1px;background:var(--teal)}
.hero h1{font-size:clamp(2.9rem,10.5vw,6.4rem);color:#fff;max-width:14ch}
.hero h1 em{font-style:italic;font-weight:400;background:linear-gradient(100deg,var(--violet),var(--teal) 60%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:220% auto;animation:shimmer 6s linear infinite}
@keyframes shimmer{to{background-position:220% center}}
.hero .sub{max-width:52ch;color:var(--faint);font-size:clamp(1rem,1.7vw,1.12rem);margin:26px 0 36px}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-meta{position:relative;z-index:3;display:flex;gap:26px;flex-wrap:wrap;padding:0 20px 34px;max-width:1000px;margin:0 auto;width:100%;font-size:.8rem;color:var(--faint)}
.hero-meta b{color:#fff;font-weight:650}
.scroll-cue{position:absolute;bottom:28px;right:24px;z-index:3;width:44px;height:70px;border:1px solid rgba(255,255,255,.25);border-radius:999px;display:grid;place-items:center;color:var(--faint)}
.scroll-cue i{width:4px;height:10px;border-radius:4px;background:var(--teal);animation:cue 1.8s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-10px);opacity:0}40%{opacity:1}100%{transform:translateY(12px);opacity:0}}

/* marquee band */
.band{background:var(--night-2);color:#C9CAE6;border-top:1px solid var(--haze);border-bottom:1px solid var(--haze);overflow:hidden;padding:15px 0}
.band-track{display:flex;gap:44px;width:max-content;animation:mq 26s linear infinite;font-family:var(--d);font-style:italic;font-size:.98rem}
.band-track b{color:var(--gold);font-style:normal;font-family:var(--b);font-size:.7rem;letter-spacing:.15em;align-self:center}
@keyframes mq{to{transform:translateX(-50%)}}

/* ================= BODY ================= */
section{padding:clamp(64px,10vw,110px) 0}
.k{display:flex;align-items:baseline;gap:16px;margin-bottom:14px}
.k .no{font-family:var(--d);font-style:italic;color:var(--violet);font-size:1rem}
.k .lbl{font-size:.74rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
h2{font-size:clamp(1.8rem,5vw,2.8rem);max-width:20ch}
h2 em{font-style:italic;font-weight:400;color:var(--violet)}
.lead{color:var(--muted);max-width:56ch;margin-top:14px}

/* bento */
.bento{display:grid;gap:14px;margin-top:38px;grid-template-columns:repeat(2,1fr)}
.cell{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px 24px;position:relative;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.cell:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(23,24,39,.25)}
.cell .num{font-family:var(--d);font-size:clamp(2rem,6vw,3rem);letter-spacing:-.02em;display:block}
.cell .cap{font-size:.8rem;color:var(--muted);margin-top:2px}
.cell.big{grid-column:span 2;background:var(--night);color:#fff;border:none}
.cell.big::before{content:"";position:absolute;width:60%;height:140%;background:radial-gradient(closest-side,rgba(139,124,255,.4),transparent);top:-40%;right:-15%}
.cell.big .num{background:linear-gradient(100deg,var(--teal),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.cell.big .cap{color:var(--faint)}
.cell.tint-1{background:color-mix(in srgb,var(--violet) 9%,#fff)}
.cell.tint-2{background:color-mix(in srgb,var(--teal) 12%,#fff)}

/* subjects — pill flow */
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.pill{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:13px 22px;font-weight:650;font-size:.9rem;transition:.35s var(--ease)}
.pill:hover{border-color:var(--violet);transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(139,124,255,.6)}
.pill svg{width:17px;height:17px;color:var(--violet)}
.pill small{font-weight:500;color:var(--muted)}

/* timeline — drawn line */
.tlx{position:relative;margin-top:44px}
.tlx svg.spine{position:absolute;left:11px;top:0;height:100%;width:4px;overflow:visible}
.tlx svg.spine line{stroke:url(#lg);stroke-width:2.5;stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 2.4s var(--ease)}
.tlx.in svg.spine line{stroke-dashoffset:0}
.tlx-item{position:relative;padding:0 0 42px 46px}
.tlx-item::before{content:"";position:absolute;left:4px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--day);border:2.5px solid var(--violet);transition:.4s var(--ease)}
.tlx-item:hover::before{background:var(--violet);box-shadow:0 0 0 7px color-mix(in srgb,var(--violet) 18%,transparent)}
.tlx-item .yr{font-family:var(--d);font-style:italic;color:var(--violet);font-size:.94rem}
.tlx-item h3{font-size:1.25rem;margin:5px 0 2px}
.tlx-item .org{font-weight:650;font-size:.86rem;color:var(--muted);margin-bottom:8px}
.tlx-item p{color:var(--muted);font-size:.94rem;max-width:58ch}

/* results & awards — dark section */
.dark{background:var(--night);color:#EDEDF8;position:relative;overflow:hidden}
.dark::before{content:"";position:absolute;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(closest-side,rgba(79,224,194,.14),transparent);top:-30%;left:-20%}
.dark h2{color:#fff}
.dark h2 em{color:var(--teal)}
.dark .lead{color:var(--faint)}
.dark .k .lbl{color:var(--faint)}
.aw-list{margin-top:38px;position:relative}
.aw-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 6px;border-bottom:1px solid var(--haze);transition:padding .4s var(--ease);flex-wrap:wrap}
.aw-row:hover{padding-left:18px}
.aw-row .t{font-family:var(--d);font-size:clamp(1.05rem,3vw,1.4rem)}
.aw-row .n{color:var(--faint);font-size:.84rem;flex-basis:100%;order:3}
.aw-row .y{font-family:var(--d);font-style:italic;color:var(--gold);flex-shrink:0}

/* testimonial spotlight */
.spot{background:linear-gradient(160deg,color-mix(in srgb,var(--violet) 10%,#fff),color-mix(in srgb,var(--teal) 10%,#fff));border-radius:30px;padding:clamp(34px,6vw,64px);position:relative;margin-top:38px}
.spot blockquote{font-family:var(--d);font-size:clamp(1.25rem,3.6vw,1.9rem);line-height:1.35;max-width:26ch}
.spot cite{display:block;font-style:normal;margin-top:22px;font-size:.86rem;color:var(--muted)}
.spot cite b{color:var(--ink);font-weight:650}
.spot .q{position:absolute;top:22px;right:30px;font-family:var(--d);font-size:5rem;line-height:1;color:var(--violet);opacity:.25}
.mini-quotes{display:grid;gap:12px;margin-top:16px}
.mq2{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 22px;font-size:.9rem;color:var(--muted)}
.mq2 b{display:block;color:var(--ink);margin-top:8px;font-size:.84rem}

/* job prefs — glass on gradient */
.hireX{position:relative;border-radius:30px;overflow:hidden;padding:clamp(30px,5vw,52px);background:var(--night);color:#fff;margin-top:38px}
.hireX::before{content:"";position:absolute;inset:0;background:
 radial-gradient(420px 320px at 12% 0%,rgba(139,124,255,.5),transparent 65%),
 radial-gradient(420px 320px at 90% 100%,rgba(79,224,194,.4),transparent 65%)}
.hireX>*{position:relative}
.glass{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(14px);border-radius:20px;overflow:hidden;margin-top:26px}
.grow{display:flex;justify-content:space-between;gap:14px;padding:16px 22px;font-size:.9rem;flex-wrap:wrap}
.grow:not(:last-child){border-bottom:1px solid rgba(255,255,255,.1)}
.grow span{color:var(--faint)}.grow b{text-align:right;font-weight:650}
.grow .yes{color:var(--teal)}
.refs{display:grid;gap:12px;margin-top:16px}
.ref{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:17px 20px;font-size:.88rem;backdrop-filter:blur(10px)}
.ref b{font-family:var(--d);display:block}
.ref span{color:var(--faint);font-size:.78rem}

/* finale */
.fin{text-align:center;padding-bottom:clamp(70px,10vw,120px)}
.fin h2{margin:0 auto 12px;max-width:16ch}
.fin p{color:var(--muted);margin-bottom:6px}
.fin .ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
footer{border-top:1px solid var(--line);padding:22px;text-align:center;font-size:.76rem;color:var(--muted)}
footer a{color:var(--violet);font-weight:650}
.stick{position:fixed;left:0;right:0;bottom:0;z-index:40;background:color-mix(in srgb,var(--day) 92%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px;transform:translateY(110%);transition:transform .45s var(--ease)}
.stick.show{transform:none}
.stick .btn{flex:1;min-height:48px;padding:12px}

/* contact form */
.contact-form-wrap{margin-top:28px;text-align:left;max-width:520px;margin-left:auto;margin-right:auto}
.contact-form .form_group{margin-bottom:12px}
.contact-form input,.contact-form textarea{width:100%;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);font:inherit;background:var(--card);color:var(--ink)}
.contact-form textarea{min-height:110px;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet) 20%,transparent)}

@media(min-width:820px){
 .bento{grid-template-columns:repeat(4,1fr)}
 .cell.big{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column;justify-content:flex-end}
 .mini-quotes{grid-template-columns:1fr 1fr}
 .refs{grid-template-columns:1fr 1fr}
 .stick{display:none}
}
