:root{
  --bg:#0a0a0f;--bg-2:#111119;--ink:#f5f5f7;--ink-dim:rgba(245,245,247,.64);--ink-faint:rgba(245,245,247,.36);
  --line:rgba(255,255,255,.09);--line-2:rgba(255,255,255,.18);
  --accent:#c5f54b;--accent-2:#89e8b6;--accent-3:#7affb9;
  --gradient:radial-gradient(60% 60% at 20% 10%,rgba(197,245,75,.18),transparent 60%),radial-gradient(50% 50% at 90% 20%,rgba(137,232,182,.15),transparent 60%),radial-gradient(60% 60% at 70% 90%,rgba(122,255,185,.1),transparent 60%);
  --serif:'Instrument Serif','Times New Roman',serif;--sans:'Manrope',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--accent);color:#0a0a0f}
img{max-width:100%;display:block}

.grain{position:fixed;inset:0;pointer-events:none;opacity:.05;z-index:9998;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/></svg>")}

/* Nav */
nav.top{position:fixed;top:0;left:0;right:0;z-index:100;padding:22px 40px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(10,10,15,.7),transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
nav.top .logo{display:flex;align-items:center;gap:12px;font-weight:700;font-size:15px;letter-spacing:-.01em}
nav.top .logo .mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:#0a0a0f;font-family:var(--serif);font-style:italic;font-size:20px}
nav.top .links{display:flex;gap:30px;font-size:14px;color:var(--ink-dim);align-items:center}
nav.top .links > a,nav.top .links > .has-dd > .dd-trigger{position:relative;padding:6px 0;transition:color .2s;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:inherit}
nav.top .links > a:hover,nav.top .links > a.active,nav.top .links > .has-dd:hover > .dd-trigger{color:var(--ink)}
nav.top .links > a::after,nav.top .links > .has-dd > .dd-trigger::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.6,0,.2,1)}
nav.top .links > a:hover::after,nav.top .links > a.active::after,nav.top .links > .has-dd:hover > .dd-trigger::after{transform:scaleX(1)}
nav.top .has-dd{position:relative;padding-bottom:20px;margin-bottom:-20px}
nav.top .has-dd .caret{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;transition:transform .2s}
nav.top .has-dd:hover .caret{transform:rotate(225deg);margin-top:3px}
nav.top .dd-panel{position:absolute;top:calc(100% - 6px);left:50%;transform:translateX(-50%) translateY(8px);min-width:560px;background:rgba(17,17,25,.98);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:16px;padding:22px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;z-index:120}
nav.top .has-dd:hover .dd-panel{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
nav.top .dd-panel a{display:block;padding:10px 12px;border-radius:8px;font-size:13.5px;color:var(--ink-dim);transition:background .2s,color .2s}
nav.top .dd-panel a:hover{background:rgba(255,255,255,.05);color:var(--ink)}
nav.top .dd-panel .dd-head{grid-column:1/-1;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);padding:6px 12px 2px}
nav.top .cta{font-size:13px;font-weight:600;padding:11px 20px;border:1px solid var(--line-2);border-radius:999px;display:flex;align-items:center;gap:8px;transition:background .25s,color .25s,border-color .25s}
nav.top .cta:hover{background:var(--ink);color:#0a0a0f;border-color:var(--ink)}
nav.top .cta .dot{width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.social{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid var(--line-2);border-radius:999px;font-size:12px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-dim);transition:all .25s;background:transparent}
.social:hover{background:var(--ink);color:#0a0a0f;border-color:var(--ink)}
nav.top .burger{display:none;width:44px;height:44px;border:1px solid var(--line-2);border-radius:999px;background:transparent;cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:4px;-webkit-tap-highlight-color:rgba(255,255,255,.2);touch-action:manipulation;appearance:none;-webkit-appearance:none}
nav.top .burger span{display:block;width:16px;height:1.5px;background:var(--ink);pointer-events:none;transition:transform .3s,opacity .3s}
nav.top .burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
nav.top .burger.open span:nth-child(2){opacity:0}
nav.top .burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
@media(max-width:900px){
  /* remove backdrop-filter on mobile so fixed-position menu children aren't trapped inside the nav's containing block */
  nav.top{padding:16px 20px;backdrop-filter:none;-webkit-backdrop-filter:none}
  nav.top .links{display:none}
  nav.top .links.open{display:flex;position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;height:100dvh;background:rgba(10,10,15,.98);flex-direction:column;justify-content:flex-start;align-items:stretch;padding:90px 30px 40px;gap:6px;font-size:20px;z-index:200;overflow-y:auto}
  nav.top .links.open > a,nav.top .links.open .dd-trigger{padding:14px 12px;text-align:left;color:var(--ink);justify-content:space-between;width:100%}
  nav.top .links.open .has-dd{position:static;padding:0;margin:0;border-top:1px solid var(--line);padding-top:4px;margin-top:4px}
  nav.top .links.open .has-dd .dd-trigger{display:flex;cursor:pointer}
  nav.top .links.open .has-dd .caret{display:inline-block;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;width:8px;height:8px;transform:rotate(45deg);margin-top:-3px;transition:transform .2s}
  nav.top .links.open .has-dd.expanded .caret{transform:rotate(225deg);margin-top:3px}
  nav.top .links.open .dd-panel{position:static;opacity:1;pointer-events:auto;transform:none;min-width:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;padding:0;display:none;flex-direction:column;gap:0;z-index:auto}
  nav.top .links.open .has-dd.expanded .dd-panel{display:flex;padding:4px 0 12px}
  nav.top .links.open .dd-panel a{font-size:15px;padding:10px 24px;color:var(--ink-dim)}
  nav.top .links.open .dd-panel .dd-head{padding:8px 24px 4px;font-size:9px}
  nav.top .links.open > a::after,nav.top .links.open .dd-trigger::after{display:none}
  nav.top .burger{display:flex;z-index:210;position:relative}
  nav.top .cta{display:none}
}

section{position:relative;padding:120px 40px}
@media(max-width:820px){section{padding:70px 20px}}
.container{max-width:1320px;margin:0 auto}
.eyebrow{font-family:var(--mono);font-size:12px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.18em;display:inline-flex;align-items:center;gap:10px}
.eyebrow .bullet{width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 12px var(--accent)}

.btn-primary{display:inline-flex;align-items:center;gap:14px;padding:18px 26px 18px 28px;border-radius:999px;background:var(--ink);color:#0a0a0f;font-weight:600;font-size:15px;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-primary .arrow{width:28px;height:28px;border-radius:999px;background:#0a0a0f;color:#fff;display:grid;place-items:center;transition:transform .3s}
.btn-primary:hover .arrow{transform:rotate(-45deg)}
.btn-ghost{display:inline-flex;align-items:center;gap:10px;padding:18px 24px;border-radius:999px;border:1px solid var(--line-2);font-weight:500;font-size:15px;transition:background .25s,border-color .25s}
.btn-ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.35)}

.sect-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:80px;flex-wrap:wrap}
.sect-head h2{font-size:clamp(44px,6.5vw,104px);font-weight:300;line-height:.95;letter-spacing:-.035em;margin:18px 0 0;max-width:1000px;text-wrap:balance}
.sect-head h2 .ital,.ital{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent-2)}
.sect-head .aside{max-width:380px;color:var(--ink-dim);font-size:16px;line-height:1.6}

/* Page hero (subpages) */
.phero{padding:180px 40px 100px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.phero::before{content:"";position:absolute;inset:0;background:var(--gradient);opacity:.7}
.phero .container{position:relative}
.phero h1{font-size:clamp(56px,9vw,140px);font-weight:300;line-height:.92;letter-spacing:-.035em;margin:20px 0 0;text-wrap:balance}
.phero h1 .ital{background:linear-gradient(90deg,#d9ffb0,#89e8b6 40%,#c5f54b);-webkit-background-clip:text;background-clip:text;color:transparent;font-family:var(--serif);font-style:italic;font-weight:400}
.phero .sub{font-size:18px;color:var(--ink-dim);line-height:1.55;max-width:640px;margin-top:36px}
.phero .crumbs{display:flex;gap:8px;color:var(--ink-faint);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.2em}
.phero .crumbs a:hover{color:var(--ink)}

/* Feature grid */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
@media(max-width:900px){.fgrid{grid-template-columns:1fr}}
.fcard{padding:36px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:16px;transition:background .25s}
.fcard:hover{background:rgba(255,255,255,.03)}
.fcard .fnum{font-family:var(--mono);font-size:11px;color:var(--ink-faint);letter-spacing:.2em}
.fcard h3{font-size:28px;font-weight:400;line-height:1.1;letter-spacing:-.02em;margin:0}
.fcard h3 .ital{font-family:var(--serif);font-style:italic;color:var(--accent-2)}
.fcard p{color:var(--ink-dim);font-size:14px;line-height:1.6;margin:0}

/* Two column */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
@media(max-width:900px){.two-col{grid-template-columns:1fr;gap:40px}}
.two-col h2{font-size:clamp(38px,5vw,72px);font-weight:300;letter-spacing:-.03em;line-height:1;margin:18px 0 24px;text-wrap:balance}
.two-col h2 .ital{font-family:var(--serif);font-style:italic;color:var(--accent-2)}
.two-col .rich{color:var(--ink-dim);font-size:16px;line-height:1.7}
.two-col .rich p{margin:0 0 18px}

/* Bullet list */
.blist{list-style:none;padding:0;margin:30px 0;display:flex;flex-direction:column;gap:14px}
.blist li{padding:16px 0;border-top:1px dashed var(--line);display:flex;gap:16px;color:var(--ink);font-size:16px}
.blist li:first-child{border-top:0}
.blist li::before{content:"→";color:var(--accent);flex-shrink:0}
.blist li strong{font-weight:500}
.blist li em{font-style:normal;display:block;color:var(--ink-dim);font-size:14px;margin-top:4px;font-weight:400}

/* CTA band */
.ctaband{padding:120px 40px;position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}
.ctaband::before{content:"";position:absolute;inset:0;background:var(--gradient);opacity:.5}
.ctaband .container{position:relative}
.ctaband h2{font-size:clamp(48px,7vw,112px);font-weight:300;line-height:.95;letter-spacing:-.035em;margin:0;text-wrap:balance}
.ctaband h2 .ital{font-family:var(--serif);font-style:italic;color:var(--accent-2)}
.ctaband .bts{display:flex;gap:14px;justify-content:center;margin-top:50px;flex-wrap:wrap}

/* Marquee */
.marquee{overflow:hidden;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(0,0,0,.2)}
.marquee-track{display:flex;gap:80px;animation:scroll 40s linear infinite;white-space:nowrap;align-items:center;width:max-content}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee-item{font-family:var(--serif);font-style:italic;font-size:38px;color:var(--ink-dim);display:flex;align-items:center;gap:80px;flex-shrink:0}
.marquee-item::after{content:"✦";font-size:14px;color:var(--accent)}

/* Footer */
footer{padding:60px 40px 40px;border-top:1px solid var(--line);background:#06060a}
.foot-main{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px;margin-bottom:60px}
@media(max-width:900px){.foot-main{grid-template-columns:1fr 1fr;gap:40px}}
.foot-main h5{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 20px}
.foot-main ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--ink-dim)}
.foot-main ul a:hover{color:var(--ink)}
.foot-main .brand p{color:var(--ink-dim);font-size:14px;line-height:1.6;max-width:320px;margin:20px 0 0}
.foot-big{font-family:var(--sans);font-weight:300;font-size:clamp(40px,11vw,180px);line-height:.9;letter-spacing:-.04em;color:var(--ink);margin:40px 0 30px;text-align:center;opacity:.08;pointer-events:none;user-select:none;white-space:nowrap;overflow:hidden}
.foot-big .ital{font-family:var(--serif);font-style:italic}
.foot-bot{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-faint);border-top:1px solid var(--line);padding-top:30px;flex-wrap:wrap;gap:16px}

.progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));z-index:200;transition:width .1s linear}

/* Reveal — JS adds .js-reveal to enable hidden state; without JS, content is visible */
.js-reveal .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js-reveal .reveal.in{opacity:1;transform:none}

/* Small utility */
.hero-mini h1 .word{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero-mini h1 .word span{display:inline-block;transform:translateY(110%);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{transform:translateY(0)}}

/* Simple form */
form.inline{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}
form.inline .full{grid-column:1/-1}
form.inline label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--ink-faint);display:block;margin-bottom:6px}
form.inline input,form.inline select,form.inline textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-2);padding:10px 0;color:var(--ink);font:inherit;outline:none;transition:border-color .25s}
form.inline input:focus,form.inline select:focus,form.inline textarea:focus{border-color:var(--ink)}
form.inline select option{background:#0a0a0f}
form.inline button{grid-column:1/-1;padding:16px;border-radius:999px;background:var(--ink);color:#0a0a0f;font-weight:600;font-size:14px;margin-top:10px}
@media(max-width:600px){form.inline{grid-template-columns:1fr;gap:18px}}

/* Mobile tightening — tighter horizontal padding on hero/CTA/phero at narrow widths */
@media(max-width:600px){
  .phero{padding:140px 20px 60px}
  .ctaband{padding:80px 20px}
  .hero-anim{padding:140px 20px 40px !important}
  .foot-main{grid-template-columns:1fr !important;gap:30px !important}
  footer{padding:60px 20px !important}
  .hero-mini{font-size:clamp(36px,9vw,64px) !important}
}

/* Quick form — embedded in CTA bands */
.qform{max-width:560px;margin:40px auto 0;display:flex;flex-direction:column;gap:12px;text-align:left;position:relative}
.qform .qrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.qform input,.qform textarea{width:100%;padding:14px 18px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(10,10,15,.55);color:var(--ink);font:inherit;outline:none;transition:border-color .2s,background .2s;backdrop-filter:blur(6px)}
.qform input::placeholder,.qform textarea::placeholder{color:rgba(245,245,247,.45)}
.qform input:focus,.qform textarea:focus{border-color:var(--accent);background:rgba(10,10,15,.75)}
.qform textarea{resize:vertical;min-height:90px}
.qform button{align-self:center;margin-top:6px;padding:14px 32px;border-radius:999px;background:var(--accent);color:#0a0a0f;font-weight:600;font-size:15px;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:transform .25s,background .25s}
.qform button:hover{background:#d9ff6a;transform:translateY(-1px)}
.qform .qnote{margin:12px 0 0;text-align:center;font-size:13px;color:var(--ink-faint)}
.qform .qnote a{color:var(--ink-dim);text-decoration:underline;text-underline-offset:3px}
.qform .qnote a:hover{color:var(--accent)}
@media(max-width:600px){.qform .qrow{grid-template-columns:1fr}}


/* =================== Animated hero: subtle aurora =================== */
.hero-anim{background:radial-gradient(ellipse at 50% 10%,#0d0d14 0%,#09090d 55%,#060608 100%)}
.aurora-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;isolation:isolate}
.aurora-svg{position:absolute;inset:-5%;width:110%;height:110%;mix-blend-mode:screen;opacity:.32}
.aurora-svg .ribbon{transform-origin:center;will-change:transform}
.aurora-svg .r1{animation:ribbonA 55s ease-in-out infinite}
.aurora-svg .r2{animation:ribbonB 72s ease-in-out infinite}
.aurora-svg .r3{animation:ribbonC 90s ease-in-out infinite;opacity:.6}
.aurora-glow{position:absolute;border-radius:50%;filter:blur(140px);mix-blend-mode:screen;pointer-events:none;opacity:.5}
.aurora-glow.g1{width:55vw;height:55vw;left:-20%;top:-20%;background:radial-gradient(circle,rgba(197,245,75,.12) 0%,rgba(197,245,75,0) 65%);animation:glowDrift 60s ease-in-out infinite}
.aurora-glow.g2{width:45vw;height:45vw;right:-15%;bottom:-25%;background:radial-gradient(circle,rgba(137,232,182,.08) 0%,rgba(137,232,182,0) 65%);animation:glowDrift 80s ease-in-out infinite reverse}
.aurora-bg .stars{display:none}
.hero-anim::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(to bottom,transparent,var(--bg));pointer-events:none;z-index:1}

@keyframes ribbonA{0%,100%{transform:translate3d(0,0,0) scaleY(1)}50%{transform:translate3d(-2%,1%,0) scaleY(1.04)}}
@keyframes ribbonB{0%,100%{transform:translate3d(0,0,0) scaleY(1)}50%{transform:translate3d(2%,-1%,0) scaleY(.96)}}
@keyframes ribbonC{0%,100%{transform:translate3d(0,0,0) scaleY(.98)}50%{transform:translate3d(-1%,2%,0) scaleY(1.03)}}
@keyframes glowDrift{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(3vw,2vh,0) scale(1.05)}}

@media (prefers-reduced-motion: reduce){
  .aurora-svg .ribbon,.aurora-glow{animation:none}
}
