
.root-colors{
  /* legacy class removed; define variables on :root for global use */
}
:root{
  --bg: #111827; /* modern dark grey */
  --bg-2: #0f1724; /* slightly deeper */
  --muted: #9aa6b2;
  --header-height: 64px;
}
@property --field-x{syntax:'<percentage>';inherits:true;initial-value:0%}
@property --field-y{syntax:'<percentage>';inherits:true;initial-value:0%}
@property --field-angle{syntax:'<angle>';inherits:true;initial-value:130deg}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;color:#fff;background:var(--bg)}

body{
  isolation:isolate;
  --field-x:0%;
  --field-y:0%;
  --field-angle:130deg;
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 82% 58% at 50% 112%,rgba(71,85,105,.58),transparent 100%),
    linear-gradient(var(--field-angle),#0f172a,#1e293b,#090d16,#111827);
  background-attachment:fixed,fixed;
  transition:--field-x .9s ease,--field-y .9s ease,--field-angle .9s ease;
}
.aurora-clouds{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}
.aurora-cloud{
  position:absolute;
  display:block;
  opacity:0;
  background-image:radial-gradient(ellipse var(--cloud-glow-width,52%) var(--cloud-glow-height,56%) at var(--cloud-center,50% 50%),var(--cloud-color) 0%,var(--cloud-color) 40%,var(--cloud-edge-color) 68%,transparent 100%);
  background-size:125% 125%;
  background-position:center;
  background-repeat:no-repeat;
  transform:translate3d(var(--cloud-shift-x,0px),var(--cloud-shift-y,0px),0) rotate(var(--cloud-angle,0deg));
  transition:transform 1.8s cubic-bezier(.2,.7,.25,1);
  animation:aurora-appear 3.6s ease-out forwards;
}
.aurora-purple{
  --cloud-color:rgba(139,92,246,.78);
  --cloud-edge-color:rgba(139,92,246,.42);
  --cloud-glow-width:54%;
  --cloud-glow-height:58%;
  --cloud-center:42% 55%;
  --cloud-angle:-2deg;
  left:-5%;
  top:25%;
  width:67vw;
  height:71vh;
  background-size:115% 115%;
}
.aurora-blue{
  --cloud-color:rgba(59,130,246,.72);
  --cloud-edge-color:rgba(96,165,250,.38);
  --cloud-center:54% 46%;
  --cloud-angle:3deg;
  left:calc(50% - min(22vw, 400px));
  top:calc(50% - min(22vw, 400px));
  width:min(44vw, 800px);
  height:min(44vw, 800px);
}
.aurora-teal{
  --cloud-color:rgba(20,184,166,.66);
  --cloud-edge-color:rgba(45,212,191,.36);
  --cloud-center:46% 52%;
  --cloud-angle:-1.5deg;
  left:61%;
  top:3%;
  width:50vw;
  height:60vh;
}
.aurora-pink{
  --cloud-color:rgba(236,72,153,.6);
  --cloud-edge-color:rgba(244,114,182,.32);
  --cloud-center:55% 48%;
  --cloud-angle:2deg;
  left:16%;
  top:50%;
  width:57vw;
  height:53vh;
}
@keyframes aurora-appear{
  from{opacity:0}
  to{opacity:1}
}
/* hero & branding */
.hero{
  min-height:100vh;
  position:relative;
  z-index:1;
  background:transparent;
}
@media (prefers-reduced-motion:reduce){
  body{transition:none}
  .aurora-cloud{opacity:1;animation:none;transition:none}
}
/* center the logo and make it large */
.branding{position:fixed;left:var(--branding-left,40px);top:var(--branding-top,8px);display:flex;align-items:center;justify-content:flex-start;z-index:400;/* no transition to avoid movement during scroll */transition:none}
.branding.fixed{z-index:400}

.branding .logo{width:180px;height:auto;max-width:26vw;display:block;transform-origin:0 0;will-change:transform}
.brand-row{display:flex;align-items:center;gap:12px}
.site-name{color:#fff;font-family:'Montserrat', 'Patrick Hand', Inter, system-ui, Arial, sans-serif;font-weight:300;font-size:36px;letter-spacing:0.6px;white-space:nowrap}
.motto{color:#ff7a18;font-weight:700;font-size:14px;letter-spacing:0.4px;margin-top:8px;display:block}

.center{max-width:820px;padding:42px 20px}
.brand{margin:0;font-size:36px;letter-spacing:0.4px}
.tag{margin:12px 0 26px;color:rgba(255,255,255,0.9);font-size:18px}
.btn{display:inline-block;padding:12px 22px;border-radius:10px;background:#fff;color:var(--bg);text-decoration:none;font-weight:700}

.main{background:var(--bg-2)}

/* Keep the content area solid so the interactive background stays in the hero. */
.main{background:var(--bg-2)}
main{position:relative;z-index:30;background:var(--bg-2)}
.panel{padding:64px 20px;max-width:880px;margin:0 auto;border-bottom:1px solid rgba(255,255,255,0.04);opacity:0;transform:translateY(10px);transition:opacity .6s ease, transform .6s ease}
.panel h2{margin:0 0 12px;font-size:20px;color:#fff}
.panel p, .panel ul{margin:0;color:var(--muted);line-height:1.6}
.panel ul{padding-left:20px;margin-top:8px}

.panel.in-view{opacity:1;transform:none}

.site-footer{position:relative;z-index:1;padding:20px;text-align:center;color:var(--muted);font-size:14px}

/* topbar that transitions from transparent to solid */
.topbar{position:fixed;left:0;right:0;top:0;height:var(--header-height);z-index:200;background:transparent;pointer-events:none;transition:height .22s ease}
/* overlay is present but fully transparent (opacity 0) at top; we fade the overlay in when `.solid` is added */
.topbar::before{content:'';position:absolute;left:0;right:0;top:0;bottom:0;background:rgba(245,245,245,0.30);opacity:var(--topbar-progress,0);pointer-events:none;transition:opacity .15s linear}
.topbar.solid{height:var(--header-height);pointer-events:auto}
.site-menu{position:fixed;top:60px;right:20px;z-index:401;display:flex;flex-direction:column;width:220px;padding:8px;background:rgba(15,23,36,.97);border:1px solid rgba(255,255,255,.16);border-radius:8px;box-shadow:0 16px 40px rgba(0,0,0,.3);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;pointer-events:none}
.site-menu.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.site-menu a{display:block;padding:13px 14px;color:rgba(255,255,255,.84);border-radius:5px;text-decoration:none;font:700 12px 'Montserrat',sans-serif;letter-spacing:1px;text-transform:uppercase;transition:background .16s ease,color .16s ease}
.site-menu a:hover,.site-menu a:focus-visible{color:#fff;background:rgba(20,184,166,.18);outline:none}

/* Left-aligned, vertically centered hero stripe (30% width) */
.hero-stripe{position:fixed;left:0;top:53%;transform:translateY(-45%);width:30vw;max-width:520px;z-index:20;pointer-events:none;padding-left:40px}
.huge-left{margin:0;padding:0;text-align:left;line-height:0.9;font-family:'Montserrat', system-ui, Arial, sans-serif;font-weight:900}
.huge-left .huge-line-1,.huge-left .huge-line-2{display:block;color:#fff;opacity:0;transform:translateX(-8vw);will-change:transform,opacity;white-space:nowrap}
/* make the first line slightly smaller and keep the second line larger for emphasis */
.huge-left .huge-line-1{font-size:clamp(52px, 9.5vw, 140px);letter-spacing:-1px;animation:stripeIn 760ms cubic-bezier(.2,.8,.2,1) forwards;animation-delay:120ms}
.huge-left .huge-line-2{font-size:clamp(64px, 12vw, 180px);letter-spacing:-1px;animation:stripeIn 760ms cubic-bezier(.2,.8,.2,1) forwards;animation-delay:340ms}

@keyframes stripeIn{
  from{transform:translateX(-8vw);opacity:0}
  to{transform:translateX(0);opacity:1}
}

/* typing / typewriter small caption under hero */
.typing{display:inline-block;color:#14b8a6;font-family:'Montserrat', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;font-weight:800;font-size:clamp(18px,2.2vw,32px);margin-top:12px;line-height:1;white-space:nowrap;text-transform:uppercase;margin-left:6px;transform:translateX(-4px);will-change:transform}
.typing .typing-text{display:inline-block;vertical-align:bottom;visibility:hidden}
.typing .typing-text.is-visible{visibility:visible}
.typing .typing-text::after{content:'';display:inline-block;width:1px;height:1em;background:#14b8a6;margin-left:8px;vertical-align:bottom;animation:blink 1s steps(1) infinite}
.typing .typing-text.is-complete::after{animation:blinkThenHide 3s steps(1) forwards}

.hero-cta{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:22px 0 0 6px;pointer-events:auto;opacity:0;transform:translateY(12px);visibility:hidden}
.hero-cta.is-visible{visibility:visible;animation:ctaReveal 700ms cubic-bezier(.2,.8,.2,1) 400ms forwards}
.cta-button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border:1px solid transparent;border-radius:8px;background:linear-gradient(rgba(17,24,39,.72),rgba(17,24,39,.72)) padding-box,linear-gradient(110deg,rgba(20,184,166,.9),rgba(255,255,255,.55),rgba(20,184,166,.45)) border-box;color:#fff;text-decoration:none;font-family:'Montserrat',system-ui,sans-serif;font-size:13px;font-weight:700;letter-spacing:.2px;backdrop-filter:blur(8px);box-shadow:0 8px 22px rgba(2,6,23,.18);transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease}
.cta-button:hover{transform:translateY(-3px);filter:brightness(1.12);box-shadow:0 11px 26px rgba(20,184,166,.24)}
.cta-button:focus-visible{outline:2px solid #14b8a6;outline-offset:4px}
.cta-trust{color:rgba(255,255,255,.62);font-family:'Montserrat',system-ui,sans-serif;font-size:11px;letter-spacing:.2px}

@keyframes ctaReveal{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}

@keyframes blink{50%{opacity:0}}

@keyframes blinkThenHide{
  0%, 16.66%{opacity:1}
  16.67%, 33.33%{opacity:0}
  33.34%, 50%{opacity:1}
  50.01%, 66.66%{opacity:0}
  66.67%, 83.33%{opacity:1}
  83.34%, 100%{opacity:0}
}

@media (max-width:920px){
  .hero-stripe{width:36vw;left:28px}
  .huge-left .huge-line-1{font-size:clamp(48px, 12vw, 160px)}
  .huge-left .huge-line-2{font-size:clamp(36px, 8.5vw, 96px)}
}

@media (max-width:720px){
  .aurora-purple{left:-14%;width:110vw;top:25%;height:60vh;background-size:125% 125%}
  .aurora-blue{left:32%;top:-10%;width:54vw;height:44vh;--cloud-angle:1.5deg}
  .aurora-teal{left:62%;top:3%;width:48vw;height:50vh}
  .aurora-pink{left:40%;top:72%;width:72vw;height:34vh}
  .hero-stripe{position:fixed;left:0;top:42%;transform:none;width:92vw;padding:0 12px}
  .huge-left{text-align:left}
  .huge-left .huge-line-1{font-size:clamp(32px, 10vw, 56px)}
  .huge-left .huge-line-2{font-size:clamp(22px, 8vw, 36px)}
  .typing{display:block;width:100%;white-space:normal;line-height:1.15;transform:none;margin-left:0}
  .hero-cta{margin-left:0}
}

@media (max-width:880px){
  .branding .logo{width:64vw;max-width:260px}
  .site-name{font-size:20px}
  .center{padding:36px}
  .brand{font-size:28px}
}

.burger{position:fixed;right:20px;top:calc((var(--header-height) - 40px)/2);width:46px;height:40px;background:transparent;border-radius:8px;border:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:400;transition:none;will-change:auto}
.burger span{display:block;width:20px;height:2px;background:rgba(255,255,255,0.95);position:relative;border-radius:2px}
.burger span::before,.burger span::after{content:'';position:absolute;left:0;right:0;height:2px;background:rgba(255,255,255,0.95);border-radius:2px}
.burger span::before{top:-6px}
.burger span::after{top:6px}
.burger.is-open span{background:transparent}.burger.is-open span::before{top:0;transform:rotate(45deg)}.burger.is-open span::after{top:0;transform:rotate(-45deg)}
.burger:focus{outline:2px solid rgba(255,122,24,0.25);outline-offset:3px}

@media (max-width:600px){
  .branding .logo{width:64vw;max-width:360px}
  .burger span{width:18px}
  .site-menu{top:58px;right:12px;width:calc(100vw - 24px)}
}



/* ensure burger stays above other elements */
.burger{z-index:400 !important}
