:root{
    --void:#000; --white:#fff; --ash:#9a9a9a; --silver:#bdbdbd;
    --iris:#8052ff; --saffron:#ffb829; --verdant:#15846e;
    --radius:24px; --maxw:1280px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }
  body{
    margin:0; background:var(--void); color:var(--white);
    font-family:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    font-feature-settings:"ss01" on;
    font-weight:200; font-size:18px; line-height:1.5;
    -webkit-font-smoothing:antialiased; overflow-x:hidden;
  }
  h1,h2,h3{font-weight:400; margin:0; color:var(--white);}
  p{margin:0;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  a:focus-visible, button:focus-visible, .rail-item:focus-visible{outline:2px solid var(--saffron); outline-offset:4px; border-radius:6px;}

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  .eyebrow{
    font-size:14px; font-weight:600; letter-spacing:0.025em; text-transform:uppercase;
    color:var(--saffron); margin-bottom:24px;
  }
  .lead{color:var(--silver); max-width:480px;}
  h2{font-size:clamp(34px,4.4vw,48px); line-height:1.1; letter-spacing:-0.04em;}

  /* nav */
  header.nav{position:fixed; top:0; left:0; right:0; z-index:100; padding:24px 0; transition:background .3s ease, padding .3s ease;}
  header.nav.scrolled{background:rgba(0,0,0,0.92); padding:14px 0;}
  .nav-inner{max-width:var(--maxw); margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between;}
  .brand{display:flex; align-items:center; gap:12px;}
  .brand img{height:30px; width:auto; filter:hue-rotate(40deg);}
  .brand span{font-weight:600; font-size:15px; letter-spacing:0.05em;}
  nav.links{display:flex; align-items:center; gap:36px;}
  nav.links a{font-size:14px; font-weight:600; letter-spacing:0.025em; text-transform:uppercase; color:var(--ash); transition:color .2s ease;}
  nav.links a:hover{color:var(--white);}
  .btn{
    display:inline-flex; align-items:center; font:600 14px/1 'Inter',sans-serif; letter-spacing:0.025em; text-transform:uppercase;
    padding:15px 24px; border-radius:var(--radius); border:0; background:var(--iris); color:var(--white); cursor:pointer;
    transition:background .2s ease, transform .2s ease;
  }
  .btn:hover{background:#9470ff; transform:translateY(-1px);}
  .link{font-weight:400; font-size:15px; color:var(--ash); text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; transition:color .2s ease;}
  .link:hover{color:var(--white);}

  /* hero */
  section{position:relative; padding:120px 0;}
  .hero{min-height:100svh; display:flex; align-items:center; padding:140px 0 80px; overflow:hidden;}
  #field{position:absolute; inset:0; width:100%; height:100%; pointer-events:none;}
  .hero .wrap{position:relative; z-index:1; width:100%;}
  .hero-grid{display:grid; grid-template-columns:1.2fr 0.8fr; gap:40px; align-items:center;}
  .hero h1{font-size:clamp(44px,7vw,88px); line-height:0.98; letter-spacing:-0.04em; margin-bottom:32px;}
  .hero .lead{margin-bottom:40px;}
  .hero-ctas{display:flex; gap:28px; align-items:center; flex-wrap:wrap;}
  .visual{display:flex; justify-content:center;}
  .bolt-svg{height:min(62vh,470px); aspect-ratio:220/420; overflow:visible;}
  .bolt-path{
    stroke:url(#boltGrad); stroke-width:3; fill:none; stroke-linejoin:round; stroke-linecap:round;
    filter:drop-shadow(0 0 10px rgba(128,82,255,0.85)) drop-shadow(0 0 26px rgba(128,82,255,0.45));
  }

  /* thesis */
  .thesis-grid{display:grid; grid-template-columns:1.25fr 1fr; gap:80px; align-items:end;}
  blockquote{margin:0; font-size:clamp(28px,3.4vw,42px); line-height:1.2; letter-spacing:-0.04em; font-weight:400;}
  .thesis .lead{color:var(--silver); max-width:520px;}

  /* services */
  .services-layout{display:grid; grid-template-columns:1fr 1.15fr; gap:80px; align-items:start;}
  .services-intro{position:sticky; top:130px;}
  .rail{margin-top:48px; display:flex; flex-direction:column; gap:6px;}
  .rail-item{position:relative; padding:8px 0 8px 26px; font-size:15px; font-weight:400; color:var(--ash); cursor:pointer; transition:color .3s ease;}
  .rail-item::before{
    content:""; position:absolute; left:0; top:15px; width:8px; height:8px; border-radius:50%;
    background:transparent; box-shadow:inset 0 0 0 1px var(--ash); transition:all .3s ease;
  }
  .rail-item.active{color:var(--white);}
  .rail-item.active::before{background:var(--iris); box-shadow:none;}
  .service-card{padding:0 0 96px; opacity:0.3; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease;}
  .service-card:last-child{padding-bottom:0;}
  .service-card.active{opacity:1; transform:none;}
  .service-card h3{font-size:36px; line-height:1.2; letter-spacing:-0.02em; margin-bottom:18px;}
  .service-card p{color:var(--silver); max-width:540px; margin-bottom:24px;}
  .tags{display:flex; flex-wrap:wrap; gap:10px 24px;}
  .tag{font-size:14px; font-weight:400; color:var(--ash); display:inline-flex; align-items:center; gap:8px;}
  .tag::before{
    content:""; width:9px; height:9px; flex-shrink:0;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 1 9 9H1Z' fill='none' stroke='%238052ff' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  }

  /* process + why */
  .section-head{max-width:700px; margin-bottom:72px;}
  .process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:40px;}
  .step-num{font-size:14px; font-weight:600; letter-spacing:0.025em; color:var(--saffron); margin-bottom:18px;}
  .process-step h3, .why-card h3{font-size:27px; line-height:1.1; letter-spacing:-0.02em; margin-bottom:14px;}
  .process-step p, .why-card p{color:var(--silver); font-size:17px;}
  .why-grid{display:grid; grid-template-columns:1fr 1fr; gap:72px 80px;}
  .why-card p{max-width:460px;}

  /* cta */
  .cta{padding:140px 0;}
  .cta-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:80px; align-items:end;}
  .cta h2{font-size:clamp(44px,7vw,88px); line-height:0.98;}
  .cta .lead{margin-bottom:36px;}
  .cta-contacts{display:flex; gap:48px; flex-wrap:wrap; margin-top:48px;}
  .cta-contact .eyebrow{font-size:12px; font-weight:400; margin-bottom:8px;}
  .cta-contact a{font-weight:400; font-size:17px; text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; transition:color .2s ease;}
  .cta-contact a:hover{color:var(--saffron);}

  footer{padding:48px 0;}
  .footer-inner{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;}
  .footer-inner .brand img{height:24px;}
  footer p{font-size:14px; color:var(--ash);}

  .reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.is-visible{opacity:1; transform:none;}

  @media (max-width:920px){
    .hero-grid, .thesis-grid, .services-layout, .cta-grid{grid-template-columns:1fr; gap:48px;}
    .services-intro{position:static;}
    .rail{display:none;}
    .service-card{padding-bottom:64px; opacity:1; transform:none;}
    .process-grid{grid-template-columns:1fr 1fr; row-gap:56px;}
    .why-grid{grid-template-columns:1fr; gap:48px;}
    .bolt-svg{height:300px;}
  }
  @media (max-width:640px){
    .wrap, .nav-inner{padding:0 22px;}
    nav.links{gap:0;}
    nav.links a:not(.keep){display:none;}
    section{padding:80px 0;}
    .hero{min-height:auto; align-items:flex-start; padding:110px 0 60px;}
    .process-grid{grid-template-columns:1fr;}
    .cta{padding:90px 0;}
  }

.page-hero{padding:170px 0 90px}
.page-hero h1{font-size:clamp(38px,5.6vw,68px);line-height:1.02;letter-spacing:-0.04em;margin-bottom:28px;max-width:900px}
.page-hero .lead{margin-bottom:40px;max-width:620px}
.faq-list{max-width:820px}
details{border-top:1px solid #222}details:last-child{border-bottom:1px solid #222}
summary{cursor:pointer;list-style:none;padding:24px 44px 24px 0;font-size:21px;font-weight:400;letter-spacing:-0.01em;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:8px;top:30px;width:9px;height:9px;border-right:1.5px solid var(--ash);border-bottom:1.5px solid var(--ash);transform:rotate(45deg);transition:transform .25s ease}
details[open] summary::after{transform:rotate(-135deg);top:36px}
summary:focus-visible{outline:2px solid var(--saffron);outline-offset:2px}
details p{color:var(--silver);padding:0 44px 28px 0;max-width:700px}
.more{display:flex;flex-wrap:wrap;gap:14px 32px;margin-top:8px}
.service-card .link{display:inline-block;margin-top:24px}
.foot-links{display:flex;flex-wrap:wrap;gap:10px 24px;margin:0;padding:0;list-style:none}
.foot-links a{font-size:14px;color:var(--ash);transition:color .2s ease}.foot-links a:hover{color:var(--white)}
.case{border-top:1px solid #222;padding:48px 0;display:grid;grid-template-columns:1fr 1.4fr;gap:60px}
.case h3{font-size:30px;letter-spacing:-0.02em}.case dt{color:var(--saffron);font-size:14px;font-weight:600;margin-top:20px}.case dd{margin:6px 0 0;color:var(--silver)}
@media(max-width:640px){nav.links{gap:22px}}
@media(max-width:920px){.case{grid-template-columns:1fr;gap:24px}}