:root{
    --bg:#FFFFFF;
    --bg-2:#F3F2EC;
    --ink:#101010;
    --ink-2:#57564E;
    --lime:#CCFF00;
    --lime-deep:#5C7A00;
    --line: rgba(16,16,16,0.14);
    --grey-stripe:#CCCCCC;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'IBM Plex Sans',sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;}
  .wrap{max-width:1120px;margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--lime-deep);
    font-weight:500;
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:18px;height:3px;
    background:var(--lime);
    display:inline-block;
  }
  h1,h2,h3{
    font-family:'Archivo Black',sans-serif;
    font-weight:400;
    letter-spacing:0.005em;
    line-height:1.08;
    text-transform:uppercase;
    color:var(--ink);
  }
  h1{font-size:clamp(32px,5.6vw,58px);}
  h2{font-size:clamp(24px,3.4vw,36px);}
  h3{font-size:18px;letter-spacing:0.01em;}
  p{color:var(--ink-2);}
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    text-decoration:none;
    padding:14px 24px;
    border-radius:2px;
    cursor:pointer;
    border:1px solid transparent;
  }
  .btn-primary{background:var(--lime);color:#101010;font-weight:500;}
  .btn-primary:hover{background:#a8e600;}
  .btn-ghost{border-color:var(--line);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink);}

  header{
    position:sticky;top:0;z-index:50;
    background:rgba(255,255,255,0.94);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
  .logo{font-family:'Archivo Black',sans-serif;font-size:16px;letter-spacing:0.01em;display:flex;align-items:center;gap:12px;color:var(--ink);}
  .logo-img{height:42px;width:auto;display:block;}
  .navlinks{display:flex;align-items:center;gap:26px;}
  .navlinks a{font-size:14px;color:var(--ink-2);text-decoration:none;}
  .navlinks a:hover{color:var(--ink);}
  .navlinks .btn{padding:10px 18px;font-size:12px;}

  .hero{
    padding:96px 0 88px;
    background:
      radial-gradient(ellipse 900px 500px at 85% 10%, rgba(192,255,0,0.18), transparent 60%),
      var(--bg);
    border-bottom:1px solid var(--line);
  }
  .hero-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:56px;align-items:center;}
  .hero h1{margin:18px 0 22px;}
  .hero h1 .accent{color:var(--lime-deep);}
  .hero p.lead{font-size:18px;max-width:46ch;margin-bottom:32px;color:var(--ink-2);}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}

  .tag-wrap{display:flex;justify-content:center;}
  .tag{
    position:relative;
    width:280px;
    background:var(--ink);
    color:#F5F5F0;
    padding:28px 24px 24px;
    transform:rotate(4deg);
    box-shadow:0 24px 50px rgba(16,16,16,0.22);
    animation:sway 7s ease-in-out infinite;
  }
  .tag::before{content:"";position:absolute;top:-46px;left:50%;width:1px;height:46px;background:var(--line);transform:translateX(-50%);}
  .tag .hole{position:absolute;top:14px;left:50%;width:16px;height:16px;border-radius:50%;background:var(--bg);transform:translateX(-50%);box-shadow:inset 0 0 0 3px var(--ink);}
  .tag .tag-code{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.1em;color:var(--lime);text-transform:uppercase;margin-top:14px;}
  .tag .tag-title{font-family:'Archivo Black',sans-serif;font-size:22px;text-transform:uppercase;margin:8px 0 14px;line-height:1.1;color:#F5F5F0;}
  .tag .tag-row{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:11px;padding:6px 0;border-top:1px dashed rgba(245,245,240,0.2);color:#D8D8CE;}
  .tag .tag-status{margin-top:14px;display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.08em;color:var(--lime);text-transform:uppercase;}
  .tag .tag-status .dot{width:8px;height:8px;border-radius:50%;background:var(--lime);}
  @keyframes sway{0%,100%{transform:rotate(4deg);}50%{transform:rotate(1.5deg);}}
  @media (prefers-reduced-motion:reduce){.tag{animation:none;}}

  .strip{padding:64px 0;border-bottom:1px solid var(--line);background:var(--bg-2);}
  .strip blockquote{font-family:'Archivo Black',sans-serif;font-size:clamp(20px,2.8vw,30px);text-transform:uppercase;line-height:1.25;max-width:26ch;color:var(--ink);}
  .strip cite{display:block;margin-top:20px;font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--lime-deep);letter-spacing:0.06em;text-transform:uppercase;}

  .why{padding:56px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .stamp{border:1px solid var(--line);padding:22px 20px;position:relative;}
  .stamp .stamp-num{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--lime-deep);letter-spacing:0.08em;}
  .stamp h3{margin:10px 0 8px;font-size:17px;}
  .stamp p{font-size:14.5px;}

  .section{padding:88px 0;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;flex-wrap:wrap;}
  .section-head h2{margin-top:14px;max-width:16ch;}
  .section-head p{max-width:40ch;font-size:15px;}

  .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 22px;}
  .svc-tag{background:var(--bg);border:1px solid var(--line);padding:22px 20px 20px;position:relative;transform:rotate(var(--r,0deg));transition:transform 0.25s ease, border-color 0.25s ease;}
  .svc-tag:hover{transform:rotate(0deg);border-color:var(--lime-deep);}
  .svc-tag .hole-sm{width:10px;height:10px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 2px var(--line);margin-bottom:14px;}
  .svc-code{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--lime-deep);letter-spacing:0.1em;text-transform:uppercase;}
  .svc-tag h3{margin:8px 0 10px;}
  .svc-tag p{font-size:14px;}

  .about{padding:88px 0;border-top:1px solid var(--line);background:var(--bg-2);}
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
  .about h2{margin-top:14px;max-width:14ch;}
  .about p{font-size:15.5px;margin-bottom:16px;max-width:50ch;}
  .about-list{list-style:none;margin-top:24px;display:flex;flex-direction:column;gap:12px;}
  .about-list li{font-family:'IBM Plex Mono',monospace;font-size:13px;display:flex;gap:10px;color:var(--ink-2);align-items:flex-start;}
  .about-list li::before{content:"";width:6px;height:6px;background:var(--lime-deep);margin-top:6px;flex-shrink:0;}

  .industries{padding:80px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;}
  .chip{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:0.03em;padding:10px 16px;border:1px solid var(--line);color:var(--ink-2);}

  .resources{padding:88px 0;border-bottom:1px solid var(--line);background:var(--bg-2);}
  .resources-top{display:grid;grid-template-columns:1.2fr 0.8fr;gap:48px;align-items:start;margin-bottom:48px;}
  .resources-top h2{margin-top:14px;max-width:18ch;}
  .resources-top p{max-width:44ch;font-size:15px;}
  .newsletter-box{background:var(--bg);border:1px solid var(--line);padding:24px;}
  .newsletter-box h3{margin-bottom:6px;font-size:17px;}
  .newsletter-box p{font-size:13.5px;margin-bottom:16px;}
  .newsletter-form{display:flex;gap:10px;flex-wrap:wrap;}
  .newsletter-form input{flex:1;min-width:180px;}
  .newsletter-form .btn{white-space:nowrap;}
  .res-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
  .res-tag{background:var(--bg);border:1px solid var(--line);padding:22px 20px;transform:rotate(var(--r,0deg));transition:transform 0.25s ease, border-color 0.25s ease;display:flex;flex-direction:column;gap:10px;}
  .res-tag:hover{transform:rotate(0deg);border-color:var(--lime-deep);}
  .res-code{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--lime-deep);letter-spacing:0.1em;text-transform:uppercase;}
  .res-tag h3{font-size:17px;}
  .res-tag p{font-size:13.5px;flex-grow:1;}
  .res-dl{display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:0.05em;text-transform:uppercase;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);padding-top:12px;margin-top:4px;}
  .res-dl:hover{color:var(--lime-deep);}

  .contact{padding:96px 0;}
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
  .contact h2{margin-bottom:16px;max-width:14ch;}
  .contact-info{margin-top:28px;display:flex;flex-direction:column;gap:14px;}
  .contact-info div{font-family:'IBM Plex Mono',monospace;font-size:13.5px;display:flex;gap:10px;color:var(--ink-2);}
  .contact-info span.label{color:var(--lime-deep);min-width:64px;display:inline-block;}
  form{display:flex;flex-direction:column;gap:16px;}
  label{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px;display:block;}
  input,textarea,select{
    width:100%;background:var(--bg);border:1px solid var(--line);color:var(--ink);
    padding:12px 14px;font-family:'IBM Plex Sans',sans-serif;font-size:14.5px;border-radius:2px;
  }
  input:focus,textarea:focus,select:focus{outline:2px solid var(--lime-deep);outline-offset:1px;}
  textarea{resize:vertical;min-height:110px;}
  .field{display:flex;flex-direction:column;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .submit-note{font-size:12.5px;color:var(--ink-2);margin-top:-4px;}

  footer{border-top:1px solid var(--line);padding:40px 0;}
  .foot-grid{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
  .foot-logo{display:flex;align-items:center;gap:10px;font-family:'Archivo Black',sans-serif;font-size:15px;color:var(--ink);}
  .foot-logo-img{height:32px;width:auto;}
  .foot-note{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-2);letter-spacing:0.02em;}

  @media (max-width:860px){
    .hero-grid{grid-template-columns:1fr;}
    .tag-wrap{order:-1;margin-bottom:12px;}
    .why{grid-template-columns:1fr;}
    .services-grid{grid-template-columns:1fr 1fr;}
    .about-grid{grid-template-columns:1fr;gap:32px;}
    .resources-top{grid-template-columns:1fr;gap:28px;}
    .res-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;gap:40px;}
    .navlinks{gap:16px;}
  }
  @media (max-width:600px){
    .wrap{padding:0 20px;}
    .services-grid{grid-template-columns:1fr;}
    .field-row{grid-template-columns:1fr;}
    .navlinks a:not(.btn){display:none;}
    .foot-grid{flex-direction:column;align-items:flex-start;}
  }

.navlinks a.active{color:var(--ink);}
.page-head{padding:64px 0 48px;border-bottom:1px solid var(--line);background:var(--bg);}
.page-head h1{margin-top:14px;max-width:20ch;}
.page-head p{margin-top:14px;max-width:52ch;font-size:16px;}
.cta-band{padding:64px 0;text-align:center;background:var(--bg-2);border-top:1px solid var(--line);}
.cta-band h2{max-width:20ch;margin:14px auto 22px;}
.cta-band .btn{margin:0 6px;}

/* Photo + text rows, alternating layout */
.photo-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:56px 0;border-bottom:1px solid var(--line);}
.photo-row:last-of-type{border-bottom:none;}
.photo-row.reverse{direction:rtl;}
.photo-row.reverse > *{direction:ltr;}
.photo-block{width:100%;aspect-ratio:1/1;background:var(--bg-2);border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.photo-block img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-block .placeholder-label{padding:24px;text-align:center;color:var(--ink-2);font-family:'IBM Plex Mono',monospace;font-size:12px;line-height:1.5;}
.photo-block .placeholder-label .cam{font-size:22px;display:block;margin-bottom:10px;}
.photo-text .svc-code{margin-bottom:10px;display:block;}
.photo-text h3{font-size:24px;margin-bottom:14px;}
.photo-text p{font-size:15px;margin-bottom:20px;}
.services-intro{max-width:70ch;font-size:16px;margin-bottom:8px;}
.additional-services{padding:64px 0;background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.additional-services h2{margin-top:14px;max-width:20ch;}
.add-svc-list{list-style:none;margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:14px 40px;}
.add-svc-list li{font-size:15px;color:var(--ink-2);padding-left:22px;position:relative;}
.add-svc-list li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;background:var(--lime);}
.add-svc-list strong{color:var(--ink);}

@media (max-width:760px){
  .photo-row{grid-template-columns:1fr;padding:36px 0;}
  .photo-row.reverse{direction:ltr;}
  .add-svc-list{grid-template-columns:1fr;}
}

/* Mobile nav toggle + menu panel */
.nav-toggle{
  display:none;
  background:none;border:1px solid var(--line);color:var(--ink);
  width:40px;height:40px;align-items:center;justify-content:center;
  cursor:pointer;border-radius:2px;flex-shrink:0;
}
.nav-toggle svg{width:20px;height:20px;}
.nav-menu{
  position:fixed;top:0;left:0;right:0;bottom:0;
  background:var(--bg);
  display:none;
  flex-direction:column;
  padding:100px 32px 32px;
  z-index:200;
  gap:4px;
  overflow-y:auto;
}
.nav-menu.open{display:flex;}
.nav-menu a{
  font-family:'Archivo Black',sans-serif;
  text-transform:uppercase;
  font-size:22px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
}
.nav-menu a.active{color:var(--lime-deep);}
.nav-menu a.btn{
  margin-top:20px;
  display:inline-flex;
  border-bottom:none;
  width:fit-content;
}
.nav-close{
  position:absolute;top:20px;right:24px;
  background:none;border:none;font-size:32px;line-height:1;
  color:var(--ink);cursor:pointer;padding:4px 10px;
}

@media (max-width:600px){
  .nav-toggle{display:flex;}
}

/* Text-only service blocks (no photos) */
.svc-block{padding:36px 0;border-bottom:1px solid var(--line);max-width:720px;}
.svc-block:last-of-type{border-bottom:none;}
.svc-block .svc-code{display:block;margin-bottom:10px;}
.svc-block h3{font-size:23px;margin-bottom:12px;}
.svc-block p{font-size:15px;margin-bottom:20px;}
