  :root{
    --ink:#0A0A0A;
    --panel:#0E140F;
    --panel-2:#111A13;
    --green:#4FD77A;
    --green-deep:#2FA75B;
    --chalk:#EAF0EA;
    --muted:#8FA091;
    --line:rgba(255,255,255,.12);
    --line-strong:rgba(255,255,255,.22);
    --display:'Anton','Arial Narrow',system-ui,sans-serif;
    --body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
    --maxw:1120px;
  }

  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    background:var(--ink);
    color:var(--chalk);
    font-family:var(--body);
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

  .eyebrow{
    font-family:var(--body);
    font-weight:700;
    font-size:12px;
    letter-spacing:.24em;
    text-transform:uppercase;
    color:var(--green);
  }
  h2.section-title{
    font-family:var(--display);
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:.01em;
    line-height:.98;
    font-size:clamp(30px,7vw,52px);
    margin:.35em 0 .5em;
  }
  .section-lead{color:var(--muted);max-width:46ch;font-size:16px}

  /* ---------- header ---------- */
  .site-header{
    position:sticky;top:0;z-index:60;
    background:rgba(10,10,10,.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
  .brand{display:flex;align-items:center;gap:11px}
  .brand img{width:30px;height:30px}
  .brand .name{
    font-family:var(--display);
    font-size:24px;letter-spacing:.02em;
    color:var(--green);text-transform:uppercase;
    line-height:1;
  }
  .header-call{
    display:inline-flex;align-items:center;gap:8px;
    font-weight:700;font-size:14px;letter-spacing:.02em;
    border:1px solid var(--line-strong);
    padding:9px 14px;border-radius:2px;
    transition:border-color .2s,background .2s;
  }
  .header-call:hover{border-color:var(--green);background:rgba(79,215,122,.08)}
  .header-call .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(79,215,122,.6);animation:pulse 2.4s infinite}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(79,215,122,.5)}70%{box-shadow:0 0 0 7px rgba(79,215,122,0)}100%{box-shadow:0 0 0 0 rgba(79,215,122,0)}}

  /* ---------- hero ---------- */
  .hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden}
  .hero-media{position:absolute;inset:0;z-index:0}
  .hero-media img{width:100%;height:100%;object-fit:cover}
  .hero-media::after{
    content:"";position:absolute;inset:0;
    background:
      linear-gradient(180deg,rgba(10,10,10,.55) 0%,rgba(10,10,10,.25) 32%,rgba(10,10,10,.72) 74%,var(--ink) 100%),
      linear-gradient(90deg,rgba(10,10,10,.5),rgba(10,10,10,0) 60%);
  }
  .hero-inner{position:relative;z-index:2;width:100%;padding:0 0 46px}
  .hero h1{
    font-family:var(--display);font-weight:400;text-transform:uppercase;
    line-height:.86;letter-spacing:.005em;
    font-size:clamp(58px,17vw,142px);
    margin:.18em 0 .32em;
  }
  .hero h1 .ph{display:block;color:var(--green)}
  .hero p.tag{font-size:clamp(16px,2.4vw,20px);max-width:40ch;color:#dfe6df}
  .hero-loc{display:inline-flex;align-items:center;gap:9px;color:#cdd6cd;font-size:13px;font-weight:600;letter-spacing:.02em}
  .hero-loc svg{width:14px;height:14px;fill:var(--green)}

  .cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:9px;
    font-weight:700;font-size:16px;letter-spacing:.01em;
    padding:15px 24px;border-radius:2px;cursor:pointer;border:1px solid transparent;
    transition:transform .12s ease,background .2s,border-color .2s,color .2s;
  }
  .btn:active{transform:translateY(1px)}
  .btn-primary{background:var(--green);color:#06120A}
  .btn-primary:hover{background:#5ee089}
  .btn-ghost{background:rgba(255,255,255,.04);color:var(--chalk);border-color:var(--line-strong)}
  .btn-ghost:hover{border-color:var(--green);color:#fff}
  .btn svg{width:18px;height:18px}

  /* ---------- ticker ---------- */
  .ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);overflow:hidden}
  .ticker-track{display:flex;white-space:nowrap;gap:0;animation:scroll 26s linear infinite}
  .ticker span{
    font-family:var(--display);font-size:18px;text-transform:uppercase;letter-spacing:.06em;
    color:#c9d3ca;padding:14px 0;
  }
  .ticker .sep{color:var(--green);padding:0 20px}
  @keyframes scroll{to{transform:translateX(-50%)}}

  /* ---------- generic section ---------- */
  section.block{padding:74px 0}
  .panel{background:var(--panel)}

  /* services */
  .svc-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}
  .svc{background:var(--ink);padding:26px 24px;transition:background .25s}
  .panel .svc{background:var(--panel)}
  .svc:hover{background:var(--panel-2)}
  .svc .n{font-family:var(--display);font-size:15px;color:var(--green);letter-spacing:.08em}
  .svc h3{font-size:20px;font-weight:800;margin:12px 0 8px;letter-spacing:-.01em}
  .svc p{color:var(--muted);font-size:15px}

  /* pitch-line divider */
  .divider{padding:6px 0}
  .pitchline{position:relative;height:2px;background:var(--line-strong);max-width:var(--maxw);margin:34px auto;}
  .pitchline::before{content:"";position:absolute;left:50%;top:50%;width:74px;height:74px;border:2px solid var(--line-strong);border-radius:50%;transform:translate(-50%,-50%)}
  .pitchline::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;background:var(--green);border-radius:50%;transform:translate(-50%,-50%)}

  /* about */
  .about-grid{display:grid;grid-template-columns:1fr;gap:30px;align-items:center}
  .about-copy p{color:#cfd8cf;margin-top:16px}
  .about-media{position:relative;border:1px solid var(--line)}
  .about-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
  .about-media .stamp{
    position:absolute;left:0;bottom:0;background:var(--green);color:#06120A;
    font-weight:800;font-size:13px;letter-spacing:.03em;padding:8px 14px;
  }

  /* why */
  .why-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:34px}
  .why{background:var(--ink);padding:24px}
  .why .k{font-family:var(--display);font-size:34px;color:var(--green);line-height:1}
  .why h3{font-size:18px;font-weight:800;margin:12px 0 6px}
  .why p{color:var(--muted);font-size:15px}

  /* reviews */
  .rev-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
  .g-badge{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;font-weight:600}
  .g-badge b{color:var(--chalk)}
  .rev-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:30px}
  .rev{background:var(--panel);border:1px solid var(--line);padding:22px 22px 20px}
  .rev.feature{border-color:rgba(79,215,122,.4)}
  .stars{color:var(--green);letter-spacing:3px;font-size:15px}
  .rev p{margin:12px 0 16px;color:#dbe3db;font-size:15.5px}
  .rev .who{display:flex;align-items:center;gap:11px}
  .rev .av{width:34px;height:34px;border-radius:50%;background:var(--green-deep);color:#06120A;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
  .rev .who b{font-size:14px}
  .rev .who span{display:block;color:var(--muted);font-size:12px}

  /* gallery */
  .gal{display:grid;grid-template-columns:1fr;gap:14px;margin-top:30px}
  .gal figure{position:relative;border:1px solid var(--line);overflow:hidden}
  .gal img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;transition:transform .5s ease}
  .gal figure:hover img{transform:scale(1.04)}
  .gal figcaption{position:absolute;left:0;bottom:0;background:rgba(10,10,10,.78);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:7px 12px;color:#dfe6df}

  /* book */
  .book{background:linear-gradient(180deg,var(--panel),var(--ink))}
  .book-call{display:grid;grid-template-columns:1fr;gap:12px;margin:30px 0 14px;max-width:520px}
  .book-call .btn{width:100%;font-size:17px;padding:17px}
  .book-num{font-family:var(--display);font-size:clamp(30px,8vw,46px);color:#fff;letter-spacing:.02em;margin-top:4px}
  .book-num a{color:#fff}
  .or{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.14em;margin:30px 0 22px;max-width:520px}
  .or::before,.or::after{content:"";height:1px;background:var(--line);flex:1}
  form{max-width:520px;display:grid;gap:14px}
  .field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:7px;letter-spacing:.02em}
  .field input,.field select,.field textarea{
    width:100%;background:#0b120d;border:1px solid var(--line-strong);color:var(--chalk);
    font-family:var(--body);font-size:16px;padding:13px 14px;border-radius:2px;
  }
  .field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--green);outline-offset:1px;border-color:transparent}
  .field.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  form .btn{width:100%;margin-top:4px}
  .form-note{color:var(--muted);font-size:13px}
  .form-ok{display:none;border:1px solid var(--green);background:rgba(79,215,122,.08);padding:16px;border-radius:2px;color:#dff5e5;font-size:15px}
  .form-ok.show{display:block}

  /* find */
  .find-grid{display:grid;grid-template-columns:1fr;gap:26px;margin-top:30px}
  .addr{font-style:normal;font-size:18px;line-height:1.8;color:#dbe3db}
  .addr b{color:#fff}
  .find .btn{margin-top:20px}
  .find-note{color:var(--muted);font-size:14px;margin-top:18px;max-width:44ch}

  /* footer */
  footer{border-top:1px solid var(--line);padding:48px 0 120px;background:var(--panel)}
  .foot-grid{display:grid;grid-template-columns:1fr;gap:28px}
  .foot .name{font-family:var(--display);font-size:30px;color:var(--green);text-transform:uppercase;line-height:1}
  .foot p{color:var(--muted);font-size:14px;margin-top:12px}
  .foot nav{display:flex;flex-wrap:wrap;gap:18px;margin-top:6px}
  .foot nav a{color:#cfd8cf;font-size:14px;font-weight:600}
  .foot nav a:hover{color:var(--green)}
  .legal{border-top:1px solid var(--line);margin-top:34px;padding-top:20px;color:var(--muted);font-size:12.5px;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}

  /* sticky mobile cta */
  .sticky-cta{
    position:fixed;left:0;right:0;bottom:0;z-index:70;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:linear-gradient(180deg,rgba(10,10,10,0),rgba(10,10,10,.92) 30%);
    transform:translateY(120%);transition:transform .3s ease;
  }
  .sticky-cta.show{transform:translateY(0)}
  .sticky-cta .btn{width:100%;box-shadow:0 8px 30px rgba(0,0,0,.5)}

  /* reveal */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}

  :focus-visible{outline:2px solid var(--green);outline-offset:2px}

  /* ---------- responsive ---------- */
  @media(min-width:640px){
    .svc-grid{grid-template-columns:1fr 1fr}
    .why-grid{grid-template-columns:1fr 1fr}
    .rev-grid{grid-template-columns:1fr 1fr}
    .gal{grid-template-columns:1fr 1fr}
    .book-call{grid-template-columns:1fr 1fr}
  }
  @media(min-width:900px){
    body{font-size:18px}
    .svc-grid{grid-template-columns:repeat(3,1fr)}
    .why-grid{grid-template-columns:repeat(4,1fr)}
    .rev-grid{grid-template-columns:repeat(3,1fr)}
    .about-grid{grid-template-columns:1.05fr .95fr;gap:56px}
    .find-grid{grid-template-columns:1fr 1fr;align-items:start}
    .foot-grid{grid-template-columns:1.4fr 1fr}
    .sticky-cta{display:none}
    section.block{padding:96px 0}
    .rev-grid .rev.feature{grid-column:span 1}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
    .reveal{opacity:1;transform:none}
  }
