
  :root{
    --bg:#0A0E0D; --surface:#111715; --card:#141B19; --border:rgba(255,255,255,.08);
    --text:#ECEFEC; --muted:#9BA6A0; --green:#2BB673; --green-hover:#34C780; --green-ink:#06120D;
    --radius:18px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }
  body{
    margin:0; background:var(--bg); color:var(--text);
    font-family:'Inter',system-ui,sans-serif; font-weight:400; font-size:17px; line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{ font-family:'Inter Tight',system-ui,sans-serif; font-weight:600; letter-spacing:-0.03em; margin:0; color:var(--text); }
  p{margin:0}
  a{color:inherit; text-decoration:none}
  img{max-width:100%; display:block}
  ul{margin:0; padding:0; list-style:none}
  section{padding:120px 0}
  @media (max-width:900px){ section{padding:76px 0} }
  .wrap{max-width:1200px; margin:0 auto; padding:0 24px}
  @media (max-width:480px){ .wrap{padding:0 16px} }
  .eyebrow{color:var(--green); font-size:14px; font-weight:500}
  h2{font-size:clamp(2rem,4vw,3.25rem); line-height:1.08}
  .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:999px; padding:14px 24px; font-weight:600; font-size:15px; cursor:pointer; border:none; white-space:nowrap; transition:background .15s, border-color .15s, transform .1s;}
  .btn-primary{background:var(--green); color:var(--green-ink)}
  .btn-primary:hover{background:var(--green-hover)}
  .btn-secondary{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.2)}
  .btn-secondary:hover{border-color:rgba(255,255,255,.4)}
  .btn:hover{transform:translateY(-1px);}
  a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:2px solid var(--green); outline-offset:2px; border-radius:4px;
  }
  .card{background:var(--card); border:1px solid var(--border); border-radius:var(--radius)}

  /* reveal */
  html.js [data-reveal]{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
  html.js [data-reveal].in{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    html.js [data-reveal]{opacity:1!important; transform:none!important; transition:none!important;}
    .gauge-fill, .resolved-pill{transition:none!important; animation:none!important;}
  }

  /* header */
  header{position:fixed; top:0; left:0; right:0; z-index:100; padding:20px 0; transition:background .2s, border-color .2s, backdrop-filter .2s;}
  header.scrolled{background:rgba(10,14,13,.8); backdrop-filter:blur(12px); border-bottom:1px solid var(--border);}
  .nav-row{display:flex; align-items:center; justify-content:space-between; gap:20px;}
  .nav-row img.logo{height:30px; width:auto;}
  nav.primary-nav{display:flex; gap:22px; align-items:center;}
  nav.primary-nav a{font-size:14.5px; font-weight:500; color:var(--text); opacity:.85; white-space:nowrap;}
  nav.primary-nav a:hover{opacity:1; color:var(--green);}
  .nav-active{opacity:1!important; color:var(--green)!important;}
  .nav-right{display:flex; align-items:center; gap:12px;}
  .btn-pill-sm{padding:10px 18px; font-size:14px; white-space:nowrap;}
  .nav-support-btn svg{width:15px; height:15px;}

  /* services dropdown */
  .nav-services{position:relative; display:flex; align-items:center;}
  .nav-services-trigger{display:flex; align-items:center; gap:5px; background:none; border:none; padding:0; margin:0; font-family:inherit; font-size:14.5px; font-weight:500; color:var(--text); opacity:.85; cursor:pointer; white-space:nowrap;}
  .nav-services-trigger:hover{opacity:1; color:var(--green);}
  .nav-services-trigger .chev{transition:transform .18s ease; flex-shrink:0;}
  .nav-services-trigger[aria-expanded="true"] .chev{transform:rotate(180deg);}
  .services-dropdown{position:absolute; top:calc(100% + 18px); left:50%; transform:translate(-50%,6px); width:520px; max-width:calc(100vw - 32px); background:var(--card); border:1px solid var(--border); border-radius:16px; box-shadow:0 24px 48px -14px rgba(0,0,0,.55); padding:14px; opacity:0; visibility:hidden; transition:opacity .16s ease, transform .16s ease, visibility .16s; z-index:120;}
  .services-dropdown.open{opacity:1; visibility:visible; transform:translate(-50%,0);}
  .services-dropdown-grid{display:grid; grid-template-columns:1fr 1fr; gap:2px;}
  .services-dropdown-item{display:flex; gap:12px; align-items:flex-start; padding:10px; border-radius:10px; min-width:0;}
  nav.primary-nav .services-dropdown-item, nav.primary-nav .services-dropdown-item .desc{white-space:normal;}
  .services-dropdown-item:hover{background:rgba(255,255,255,.05);}
  .services-dropdown-item .icon{width:32px; height:32px; border-radius:8px; background:rgba(43,182,115,.14); color:var(--green); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .services-dropdown-item .icon svg{width:16px; height:16px;}
  .services-dropdown-item .txt{min-width:0;}
  .services-dropdown-item strong{display:block; font-size:14px; font-weight:600; color:var(--text);}
  .services-dropdown-item .desc{display:block; font-size:12px; color:var(--muted); margin-top:2px; line-height:1.45; overflow-wrap:break-word;}
  .services-dropdown-all{display:flex; align-items:center; gap:6px; margin-top:6px; padding:12px 10px 2px; border-top:1px solid var(--border); font-size:13px; font-weight:600; color:var(--green);}

  @media (max-width:1120px){ nav.primary-nav{display:none;} }
  .hamburger-details{display:none;}
  @media (max-width:1120px){
    .hamburger-details{display:block;}
    .hamburger-details summary{list-style:none; cursor:pointer; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:8px; border:1px solid var(--border);}
    .hamburger-details summary::-webkit-details-marker{display:none;}
    .mobile-panel{position:fixed; inset:0; top:70px; background:#0A0E0D; z-index:99; padding:24px; overflow-y:auto;}
    .mobile-panel>a{display:block; padding:16px 0; font-size:18px; border-bottom:1px solid var(--border);}
    .desktop-cta{display:none;}
  }
  @media (min-width:1121px){ .hamburger-details{display:none;} }
  .contact-chat{display:inline-flex; align-items:center; gap:10px; margin-top:18px; cursor:pointer; font:inherit; font-weight:600;}
  /* hide the live chat launcher while the mobile menu is open */
  body:has(.hamburger-details[open]) #itmsp-chat-root{display:none;}
  .founder{display:flex; align-items:center; gap:18px;}
  .founder img{width:96px; height:96px; border-radius:50%; object-fit:cover; border:2px solid rgba(43,182,115,.55); box-shadow:0 0 0 6px rgba(43,182,115,.08); flex-shrink:0;}
  .founder-name{font-family:'Inter Tight',sans-serif; font-weight:600; font-size:20px;}
  .founder-role{color:var(--green); font-size:14px; margin-top:2px;}
  .avatar-photo{width:160px; height:160px; border-radius:50%; object-fit:cover; border:2px solid rgba(43,182,115,.55); box-shadow:0 0 0 8px rgba(43,182,115,.08); display:block; margin:0 auto 18px;}

  /* mobile services accordion */
  .mobile-services{border-bottom:1px solid var(--border);}
  .mobile-services summary{list-style:none; cursor:pointer; padding:16px 0; font-size:18px; display:flex; align-items:center; justify-content:space-between; gap:10px;}
  .mobile-services summary::-webkit-details-marker{display:none;}
  .mobile-services .chev{transition:transform .2s ease; flex-shrink:0;}
  .mobile-services[open] .chev{transform:rotate(180deg);}
  .mobile-services-list{display:flex; flex-direction:column; padding:0 0 14px;}
  .mobile-services-list a{display:flex; align-items:center; gap:10px; padding:10px 2px; font-size:15px; color:var(--muted);}
  .mobile-services-list a:hover{color:var(--green);}
  .mobile-services-list .icon{width:26px; height:26px; border-radius:7px; background:rgba(43,182,115,.14); color:var(--green); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .mobile-services-list .icon svg{width:13px; height:13px;}
  .mobile-services-all{font-weight:600; color:var(--green);}
  .mobile-btns{display:flex; flex-direction:column; gap:12px; margin-top:20px;}
  .mobile-btns .btn{justify-content:center; border-bottom:0;}
  .mobile-panel>a.mobile-phone{border-bottom:0; padding:18px 0 0; text-align:center; font-size:15px; color:var(--muted);}
  .mobile-panel>a.mobile-phone:hover{color:var(--green);}

  /* hero */
  .hero{position:relative; min-height:min(100vh,940px); display:flex; align-items:flex-end; overflow:hidden;}
  .hero picture, .hero img.hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:right center; z-index:0;}
  .hero::before{content:''; position:absolute; inset:0; background:linear-gradient(90deg, #0A0E0D 0%, rgba(10,14,13,.9) 40%, rgba(10,14,13,.3) 60%, rgba(10,14,13,0) 76%); z-index:1;}
  .hero::after{content:''; position:absolute; left:0; right:0; bottom:0; height:140px; background:linear-gradient(180deg, rgba(10,14,13,0) 0%, var(--bg) 100%); z-index:1;}
  @media (min-width:701px){
    .hero picture{left:auto; right:0; width:60%; height:auto; top:0; bottom:170px; -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 30%),linear-gradient(180deg,transparent 0%,#000 22%,#000 80%,transparent 100%); -webkit-mask-composite:source-in; mask-image:linear-gradient(90deg,transparent 0%,#000 30%),linear-gradient(180deg,transparent 0%,#000 22%,#000 80%,transparent 100%); mask-composite:intersect;}
    .hero-blur{position:absolute; top:0; bottom:170px; right:0; width:60%; z-index:1; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 14%,transparent 36%); mask-image:linear-gradient(90deg,#000 0%,#000 14%,transparent 36%); pointer-events:none;}
    .hero img.hero-bg{object-position:22% center;}
    .hero::before{background:linear-gradient(90deg, #0A0E0D 0%, #0A0E0D 40%, rgba(10,14,13,.6) 50%, rgba(10,14,13,0) 64%);}
  }
  @media (max-width:700px){
    .hero::before{background:linear-gradient(180deg, rgba(10,14,13,.55) 0%, rgba(10,14,13,.88) 55%, #0A0E0D 100%);}
    .hero img.hero-bg{object-position:70% center;}
  }
  .hero-inner{position:relative; z-index:2; width:100%; padding-bottom:56px; padding-top:140px;}
  .hero-content{max-width:560px;}
  .hero-blur{display:none;}
  @media (min-width:701px){ .hero-blur{display:block;} }
  .hero h1{font-size:clamp(2.4rem,4.4vw,3.9rem); line-height:1.02; margin:16px 0 20px;}
  .hero-sub{color:#C5CEC9; font-size:18px; line-height:1.6; max-width:560px; margin-bottom:32px;}
  .hero-btns{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:28px;}
  .proof-row{display:flex; align-items:center; gap:24px; flex-wrap:wrap; font-size:14px; color:var(--muted);}
  .proof-row .stars{color:var(--green); letter-spacing:2px;}
  .proof-item{display:flex; align-items:center; gap:8px;}
  .proof-item img{height:36px; width:36px;}

  .stat-bar{position:relative; z-index:2; max-width:1152px; margin:40px auto 0; background:rgba(20,27,25,.6); backdrop-filter:blur(12px); border:1px solid var(--border); border-radius:var(--radius); display:flex;}
  .stat-cell{flex:1; padding:24px; text-align:center; border-right:1px solid var(--border);}
  .stat-cell:last-child{border-right:none;}
  .stat-num{font-family:'Inter Tight',sans-serif; font-weight:600; font-size:30px;}
  .stat-label{color:var(--muted); font-size:14px; margin-top:4px;}
  @media (max-width:700px){
    .stat-bar{position:static; margin:24px 24px 0; display:grid; grid-template-columns:1fr 1fr;}
    .stat-cell{border-right:1px solid var(--border); border-bottom:1px solid var(--border); padding:18px;}
    .stat-cell:nth-child(2n){border-right:none;}
    .stat-cell:nth-last-child(-n+2){border-bottom:none;}
    .hero{height:auto; min-height:0; max-height:none; padding-bottom:24px;}
    .hero-inner{padding-bottom:0;}
  }

  /* vendor strip */
  .vendor-strip{padding:64px 0; text-align:center;}
  .vendor-strip .eyebrow{display:block; margin-bottom:32px; text-align:center;}
  .vendor-row{display:flex; align-items:center; justify-content:center; gap:48px; flex-wrap:wrap;}
  .vendor-row img{height:24px; width:auto; max-width:120px; object-fit:contain; filter:brightness(0) invert(1); opacity:.55;}
  @media (max-width:600px){ .vendor-row{gap:28px 32px;} .vendor-row img{max-width:90px;} }

  /* client logos */
  .client-logos{padding:64px 0 120px;}
  @media (max-width:900px){ .client-logos{padding-bottom:76px;} }
  .client-logos-head{text-align:center; max-width:640px; margin:0 auto 40px;}
  .client-logos-head h2{margin-top:12px; font-size:clamp(1.6rem,2.8vw,2.2rem);}

  .client-logo-carousel{position:relative; max-width:960px; margin:0 auto;}
  .clc-viewport{overflow:hidden;}
  .clc-track{display:flex; flex-wrap:wrap; gap:14px; justify-content:center;}
  .client-logo-tile{background:#fff; border-radius:14px; height:120px; padding:20px; flex:1 1 160px; max-width:280px; display:flex; align-items:center; justify-content:center;}
  @media (max-width:600px){ .client-logo-tile{height:88px; padding:14px;} }
  .client-logo-tile img{max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; filter:grayscale(35%); transition:filter .2s;}
  .client-logo-tile:hover img{filter:grayscale(0);}
  .client-logo-tile a{position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:100%; transition:transform .18s ease;}
  .client-logo-tile a:hover{transform:translateY(-3px);}
  .client-logo-tile a::after{content:''; position:absolute; top:0; right:0; width:13px; height:13px; background:var(--muted); opacity:0; transition:opacity .18s ease; mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><path d="M15 3h6v6"/><path d="M10 14 21 3"/></svg>') no-repeat center/contain; -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23000" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><path d="M15 3h6v6"/><path d="M10 14 21 3"/></svg>') no-repeat center/contain;}
  .client-logo-tile a:hover::after{opacity:.55;}

  .clc-arrow, .clc-dots{display:none;}
  .client-logo-carousel.is-ready{padding:0 52px;}
  .client-logo-carousel.is-ready .clc-track{flex-wrap:nowrap; gap:0; justify-content:flex-start; transition:transform .6s ease;}
  .client-logo-carousel.is-ready .clc-track.no-anim{transition:none;}
  .client-logo-carousel.is-ready .clc-slide{display:flex; flex:0 0 auto; gap:14px; justify-content:center;}
  .client-logo-carousel.is-ready .clc-slide .client-logo-tile{flex:0 0 calc((100% - 28px)/3); max-width:280px;}
  .client-logo-carousel.is-ready .clc-arrow{display:flex; align-items:center; justify-content:center; position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:999px; background:var(--card); border:1px solid var(--border); color:var(--text); cursor:pointer; padding:0;}
  .client-logo-carousel.is-ready .clc-prev{left:0;}
  .client-logo-carousel.is-ready .clc-next{right:0;}
  .client-logo-carousel.is-ready .clc-arrow:hover{border-color:rgba(255,255,255,.3);}
  .client-logo-carousel.is-ready .clc-viewport{touch-action:pan-y;}
  .client-logo-carousel.is-ready .clc-dots{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:20px;}
  .clc-dots button{width:8px; height:8px; border-radius:999px; border:none; background:var(--border); padding:0; cursor:pointer;}
  .clc-dots button[aria-current="true"]{background:var(--green);}
  @media (max-width:600px){ .client-logo-carousel.is-ready{padding:0 40px;} .client-logo-carousel.is-ready .clc-arrow{width:32px; height:32px;} }

  /* two col generic */
  .two-col{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
  @media (max-width:900px){ .two-col{grid-template-columns:1fr; gap:40px;} }
  .check-list{margin-top:28px; display:flex; flex-direction:column; gap:16px;}
  .check-list li{display:flex; gap:12px; align-items:flex-start; font-size:16px; color:var(--text);}
  .check-list svg{flex-shrink:0; margin-top:2px; color:var(--green);}

  /* ticket card */
  .ticket-card{position:relative; overflow:hidden;}
  .ticket-card::before{content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);}
  .ticket-head{padding:20px 24px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}
  .ticket-head strong{font-size:15px; font-weight:600;}
  .tag-example{font-size:11px; color:var(--muted); background:rgba(255,255,255,.06); border:1px solid var(--border); padding:3px 10px; border-radius:999px;}
  .timeline{padding:20px 24px; display:flex; flex-direction:column; gap:18px;}
  .timeline-row{display:flex; gap:12px; align-items:flex-start; font-size:14px; color:var(--muted);}
  .timeline-dot{width:8px; height:8px; border-radius:50%; background:var(--green); margin-top:6px; flex-shrink:0;}
  .timeline-row.resolved{background:rgba(43,182,115,.08); margin:0 -24px; padding:12px 24px; border-radius:12px;}
  .timeline-row.resolved .timeline-text{color:var(--text);}
  .resolved-pill{display:inline-block; margin-top:8px; background:var(--green); color:var(--green-ink); font-size:12px; font-weight:600; padding:4px 12px; border-radius:999px;}
  @keyframes pillPulse{0%{box-shadow:0 0 0 0 rgba(43,182,115,.55);} 70%{box-shadow:0 0 0 8px rgba(43,182,115,0);} 100%{box-shadow:0 0 0 0 rgba(43,182,115,0);}}
  .resolved-pill.pulse{animation:pillPulse .9s ease-out 1;}
  .card-caption{color:var(--muted); font-size:13px; margin-top:14px; text-align:center;}

  /* services bento */
  .bento{display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:minmax(200px,auto); gap:20px; margin-top:48px;}
  .bento-tile{position:relative; isolation:isolate; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); background:var(--card); transition:border-color .2s;}
  .bento-tile:hover{border-color:rgba(43,182,115,.4);}
  .bento-tile.img-tile{grid-column:span 2; grid-row:span 2;}
  .bento-tile.img-tile.tall{grid-column:span 1;}
  .bento-tile img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease;}
  .bento-tile .img-overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,14,13,.92) 0%, rgba(10,14,13,.5) 45%, rgba(10,14,13,.1) 100%);}
  .bento-tile .tile-content{position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:24px;}
  .bento-tile.img-tile h3{font-size:22px; margin-bottom:8px;}
  .bento-tile.img-tile p{color:var(--muted); font-size:14px; margin-bottom:14px; max-width:340px;}
  .bento-tile.img-tile .tile-link{color:var(--green); font-size:14px; font-weight:600; display:inline-flex; align-items:center; gap:6px;}
  .bento-tile.plain{padding:24px; display:flex; flex-direction:column;}
  .bento-tile.plain svg{color:var(--green); margin-bottom:14px; flex-shrink:0; transform-origin:center;}
  .bento-tile.cta-tile{background:linear-gradient(135deg,rgba(43,182,115,.18),rgba(43,182,115,.04)), linear-gradient(115deg, transparent 40%, rgba(255,255,255,.12) 50%, transparent 60%); background-size:100% 100%, 250% 250%; background-position:0 0, -120% 0; background-repeat:no-repeat; border-color:rgba(43,182,115,.35);}
  .bento-tile.cta-tile h3{font-size:19px;}
  .bento-tile.plain h3{font-size:17px; margin-bottom:6px;}
  .bento-tile.plain p{color:var(--muted); font-size:14px; flex:1;}
  .bento-tile.plain .tile-link{color:var(--green); font-size:13px; font-weight:600; margin-top:12px; display:inline-flex; align-items:center; gap:4px;}
  .tile-link .arrow{display:inline-block; transition:transform .25s ease;}

  /* entrance: fade up + scale, stagger delay set by script (grid order) */
  html.js .bento .bento-tile[data-reveal]{transform:translateY(24px) scale(.98); transition:opacity .5s ease, transform .45s cubic-bezier(.22,1,.36,1), border-color .2s ease, box-shadow .25s ease;}

  /* cursor spotlight + border glow (pointer-fine only, see media query below) */
  .bento-tile.plain::before, .bento-tile.img-tile::before{content:''; position:absolute; inset:0; pointer-events:none; opacity:0; background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), rgba(43,182,115,.12), transparent 70%);}
  .bento-tile.plain::before{z-index:-1;}
  .bento-tile.img-tile::before{z-index:1;}
  .bento-tile.plain::after, .bento-tile.img-tile::after{content:''; position:absolute; inset:0; pointer-events:none; opacity:0; border-radius:inherit; padding:1px; background:radial-gradient(160px circle at var(--mx,50%) var(--my,50%), rgba(43,182,115,.6), transparent 70%); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;}
  .bento-tile.plain::after{z-index:-1;}
  .bento-tile.img-tile::after{z-index:1;}

  @keyframes kenburns{ from{transform:scale(1.02);} to{transform:scale(1.06);} }
  .bento-tile.img-tile img.kb-active{animation:kenburns 18s ease-in-out infinite alternate;}

  html.js .bento-tile.cta-tile{animation:cta-sheen 6s ease-in-out infinite;}
  @keyframes cta-sheen{
    0%{background-position:0 0, -120% 0;}
    22%{background-position:0 0, 120% 0;}
    100%{background-position:0 0, 120% 0;}
  }

  @media (hover:hover) and (pointer:fine){
    html.js .bento .bento-tile:hover{transform:translateY(-4px); box-shadow:0 24px 48px -24px rgba(0,0,0,.55);}
    html.js .bento-tile.plain:hover::before, html.js .bento-tile.img-tile:hover::before,
    html.js .bento-tile.plain:hover::after, html.js .bento-tile.img-tile:hover::after{opacity:1;}
    html.js .bento-tile.img-tile:hover img{animation-play-state:paused; transform:scale(1.05); transition:transform 1.2s ease;}
    html.js .bento-tile.plain:hover svg{transform:scale(1.08) rotate(-4deg);}
    html.js .bento .bento-tile:hover .tile-link .arrow{transform:translateX(4px);}
  }
  @media (hover:none){
    html.js .bento .bento-tile:active{transform:scale(.98);}
  }

  html.js .bento-tile.plain svg *{stroke-dasharray:220; stroke-dashoffset:220; transition:stroke-dashoffset 1s ease .1s;}
  html.js .bento-tile.plain[data-reveal].in svg *{stroke-dashoffset:0;}

  @media (max-width:900px){
    .bento{grid-template-columns:1fr; grid-auto-rows:auto;}
    .bento-tile.img-tile{grid-column:span 1; grid-row:span 1; aspect-ratio:4/3;}
    .bento-tile.plain{min-height:160px;}
  }

  /* it-check quiz */
  .quiz-card{padding:32px;}
  .quiz-progress-row{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;}
  .quiz-back{background:none; border:none; color:var(--muted); font-size:13px; cursor:pointer; padding:0; font-family:inherit;}
  .quiz-back:hover{color:var(--green);}
  .quiz-progress-label{font-size:13px; color:var(--muted);}
  .quiz-progress-track{height:6px; background:var(--surface); border-radius:999px; overflow:hidden; margin-bottom:24px;}
  .quiz-progress-fill{height:100%; background:var(--green); border-radius:999px; width:0%; transition:width .25s ease;}
  .quiz-q{font-size:19px; font-weight:600; font-family:'Inter Tight',sans-serif; margin-bottom:20px; line-height:1.35;}
  .quiz-answers{display:flex; flex-direction:column; gap:10px;}
  .quiz-ans{width:100%; text-align:left; padding:14px 18px; border-radius:12px; border:1px solid var(--border); background:var(--surface); color:var(--text); font-size:15px; font-weight:500; cursor:pointer; transition:border-color .15s, background .15s;}
  .quiz-ans:hover{border-color:rgba(43,182,115,.4); background:rgba(43,182,115,.06);}
  .quiz-result{text-align:center;}
  .quiz-gauge{position:relative; width:140px; height:140px; margin:0 auto 16px;}
  .quiz-gauge svg{transform:rotate(-90deg);}
  .gauge-track{fill:none; stroke:var(--border); stroke-width:10;}
  .gauge-fill{fill:none; stroke:var(--green); stroke-width:10; stroke-linecap:round; transition:stroke-dashoffset 1s cubic-bezier(.33,1,.68,1);}
  .quiz-score{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Inter Tight',sans-serif; font-weight:600; font-size:32px;}
  .quiz-band{font-size:16px; font-weight:600; margin-bottom:20px;}
  .quiz-priorities{text-align:left; margin-bottom:24px;}
  .quiz-priorities h4{font-size:14px; color:var(--muted); font-weight:500; margin-bottom:12px;}
  .quiz-priorities ul{display:flex; flex-direction:column; gap:12px;}
  .quiz-priorities li{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--text); line-height:1.5;}
  .quiz-priorities svg{flex-shrink:0; margin-top:2px; color:var(--green);}
  .quiz-result .btn{width:100%; margin-bottom:12px; white-space:normal;}
  .quiz-restart{display:block; margin:0 auto; background:none; border:none; color:var(--muted); font-size:14px; cursor:pointer; font-family:inherit;}
  .quiz-restart:hover{color:var(--green);}
  @media (max-width:480px){ .quiz-card{padding:24px;} }

  /* results */
  .results-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px;}
  @media (max-width:900px){ .results-grid{grid-template-columns:1fr;} }
  .result-card{padding:32px;}
  .result-tag{display:inline-block; font-size:12px; color:var(--green); background:rgba(43,182,115,.1); border:1px solid rgba(43,182,115,.25); padding:4px 12px; border-radius:999px; margin-bottom:16px;}
  .result-card h3{font-size:20px; margin-bottom:20px; line-height:1.3;}
  .result-figs{display:flex; gap:24px; margin-bottom:20px;}
  .result-fig .num{font-family:'Inter Tight',sans-serif; font-weight:600; font-size:26px; color:var(--green);}
  .result-fig .lbl{font-size:12px; color:var(--muted); margin-top:2px;}
  .result-card a{color:var(--text); font-weight:600; font-size:14px; border-bottom:1px solid rgba(255,255,255,.3);}
  .result-card a:hover{color:var(--green); border-color:var(--green);}

  /* people band */
  .people-band{position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden;}
  .people-band img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
  .people-band::before{content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(10,14,13,.95) 0%, rgba(10,14,13,.9) 45%, rgba(10,14,13,.55) 72%, rgba(10,14,13,.2) 100%);}
  @media (max-width:700px){ .people-band::before{background:linear-gradient(180deg, rgba(10,14,13,.5) 0%, rgba(10,14,13,.92) 60%, #0A0E0D 100%);} }
  .people-band .wrap{width:100%; position:relative; z-index:2;}
  .people-content{position:relative; z-index:2; max-width:560px;}
  .people-quote{font-size:24px; line-height:1.4; margin:20px 0 20px; font-family:'Inter Tight',sans-serif; font-weight:600; letter-spacing:-0.01em;}
  .people-author{color:var(--muted); font-size:15px;}
  .people-author strong{color:var(--text); display:block; margin-bottom:6px;}

  /* reviews */
  .reviews-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:24px; margin-top:48px; align-items:start;}
  @media (max-width:900px){ .reviews-grid{grid-template-columns:1fr;} }
  .review-featured{padding:150px 40px 40px; display:flex; flex-direction:column; justify-content:flex-end; position:relative;}
  .review-featured::before{content:'\201C'; position:absolute; top:8px; left:32px; font-family:'Inter Tight',sans-serif; font-size:180px; line-height:1; color:var(--green); opacity:.35;}
  .reviews-grid blockquote{margin-left:0; margin-right:0;}
  .review-featured blockquote{font-size:26px; line-height:1.4; font-family:'Inter Tight',sans-serif; font-weight:600; letter-spacing:-0.01em; margin:16px 0 20px;}
  .review-mini-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  @media (max-width:600px){ .review-mini-grid{grid-template-columns:1fr;} }
  .review-mini{padding:24px; display:flex; flex-direction:column;}
  .review-mini blockquote{margin-top:12px; font-size:14px; color:var(--muted); line-height:1.6; flex:1;}
  .review-name{font-size:14px; font-weight:600; margin-top:14px;}
  .review-role{font-size:12px; color:var(--muted);}
  .stars-row{color:var(--green); letter-spacing:2px; font-size:15px; margin-bottom:4px;}

  /* switching */
  .steps-row{display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:56px; position:relative;}
  @media (max-width:900px){ .steps-row{grid-template-columns:1fr; gap:40px;} }
  .step-item{position:relative; padding-top:24px; border-top:1px solid var(--border);}
  .step-num{font-family:'Inter Tight',sans-serif; font-weight:600; font-size:38px; color:var(--green); margin-bottom:12px;}
  .step-item h3{font-size:19px; margin-bottom:8px;}
  .step-item p{color:var(--muted); font-size:15px;}
  .switching-cta{text-align:center; margin-top:56px;}
  .switching-cta p{color:var(--muted); margin-bottom:20px;}

  /* about */
  .about-contact{margin-top:28px; display:flex; flex-direction:column; gap:14px; font-size:15px;}
  .about-contact a{color:var(--text);}
  .about-contact a:hover{color:var(--green);}
  .about-badge{display:flex; align-items:center; gap:10px; margin-top:6px;}
  .about-badge img{height:40px; width:40px;}
  .quote-card{padding:36px;}
  .quote-card blockquote{font-size:18px; line-height:1.6; margin:16px 0 16px;}
  .about-cards{display:flex; flex-direction:column; gap:20px;}
  .testimonial-eyebrow{margin-bottom:16px;}
  .sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
  .testimonial-carousel{position:relative;}
  .tc-track{position:relative;}
  .tc-slide{display:none;}
  .tc-slide:first-child{display:block;}
  .tc-slide blockquote{font-size:16px; line-height:1.6; margin:14px 0 16px;}
  .tc-meta{display:flex; align-items:center; gap:12px;}
  .tc-meta .review-name{margin-top:0;}
  .tc-avatar{width:36px; height:36px; border-radius:50%; background:rgba(43,182,115,.14); color:var(--green); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:600; flex-shrink:0;}
  .testimonial-carousel.is-ready .tc-track{overflow:hidden;}
  .testimonial-carousel.is-ready .tc-slide{display:block; position:absolute; top:0; left:0; right:0; width:100%; opacity:0; visibility:hidden; transition:opacity .45s ease; touch-action:pan-y;}
  .testimonial-carousel.is-ready .tc-slide.is-active{position:relative; opacity:1; visibility:visible; z-index:1;}
  .testimonial-carousel.is-ready .tc-slide.no-anim{transition:none;}
  .tc-controls{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:20px;}
  .tc-arrow{display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:999px; background:var(--surface); border:1px solid var(--border); color:var(--text); cursor:pointer; padding:0; flex-shrink:0;}
  .tc-arrow:hover{border-color:rgba(255,255,255,.3);}
  .tc-dots{display:flex; flex-wrap:wrap; justify-content:center; gap:8px;}
  .tc-dots button{width:8px; height:8px; border-radius:999px; border:none; background:var(--border); padding:0; cursor:pointer;}
  .tc-dots button[aria-current="true"]{background:var(--green);}

  /* faq */
  .faq-list{max-width:800px; margin:48px auto 0;}
  .faq-item{border-bottom:1px solid var(--border);}
  .faq-item summary{list-style:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:17px; font-weight:500;}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-plus{flex-shrink:0; width:20px; height:20px; position:relative; transition:transform .2s;}
  .faq-plus::before, .faq-plus::after{content:''; position:absolute; background:var(--green); top:50%; left:50%; transform:translate(-50%,-50%);}
  .faq-plus::before{width:14px; height:2px;}
  .faq-plus::after{width:2px; height:14px;}
  .faq-item[open] .faq-plus{transform:rotate(45deg);}
  .faq-item p{color:var(--muted); padding-bottom:22px; font-size:15px; line-height:1.7; max-width:680px;}
  .faq-item a{color:var(--green); font-weight:500;}

  /* contact */
  .contact-section{position:relative;}
  .contact-section::before{content:''; position:absolute; inset:0; background:radial-gradient(ellipse 600px 400px at 70% 30%, rgba(43,182,115,.08), transparent 70%); pointer-events:none;}
  .contact-grid{position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr; gap:40px;} }
  .contact-info p.sub{color:var(--muted); margin:16px 0 28px; font-size:17px;}
  .contact-big{font-size:22px; font-weight:600; font-family:'Inter Tight',sans-serif; display:block; margin-bottom:10px;}
  .contact-big:hover{color:var(--green);}
  .contact-email{color:var(--muted); font-size:16px;}
  .contact-email:hover{color:var(--green);}
  .form-card{padding:32px;}
  .form-row{margin-bottom:18px;}
  .form-row label{display:block; font-size:14px; font-weight:500; margin-bottom:8px; color:var(--muted);}
  .form-row input, .form-row textarea{width:100%; background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:12px 14px; color:var(--text); font-family:inherit; font-size:15px;}
  .form-row input:focus, .form-row textarea:focus{border-color:var(--green); outline:none;}
  .form-row textarea{resize:vertical; min-height:100px;}
  .form-submit{width:100%; margin-top:6px;}
  .form-note{margin-top:14px; text-align:center; color:var(--green); font-size:14px;}
  .form-fineprint{color:var(--muted); font-size:13px; text-align:center; margin-top:12px;}
  .trust-row{display:flex; flex-wrap:wrap; gap:14px 20px; justify-content:center; margin-top:18px;}
  .trust-row li{display:flex; align-items:center; gap:6px; font-size:13px; color:var(--muted);}
  .trust-row svg{color:var(--green); flex-shrink:0;}

  /* footer */
  footer{padding:80px 0 32px; border-top:1px solid var(--border);}
  .footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:56px;}
  @media (max-width:900px){ .footer-top{grid-template-columns:1fr 1fr; gap:32px;} }
  @media (max-width:520px){ .footer-top{grid-template-columns:1fr;} }
  .footer-brand img{height:30px; width:auto; margin-bottom:14px;}
  .footer-brand img.footer-badge{height:64px; width:64px; margin:16px 0 0;}
  .footer-brand p{color:var(--muted); font-size:14px; margin-bottom:20px;}
  .footer-badge{height:64px; width:64px;}
  .footer-col h4{font-size:13px; color:var(--muted); font-weight:500; margin-bottom:16px; text-transform:none;}
  .footer-col ul{display:flex; flex-direction:column; gap:10px;}
  .footer-col a{font-size:14px; color:var(--text); opacity:.85;}
  .footer-col li{font-size:14px; color:var(--text); opacity:.85; line-height:1.5;}
  button{font-family:inherit;}
  .footer-col a:hover{opacity:1; color:var(--green);}
  .footer-bottom{border-top:1px solid var(--border); padding-top:24px; color:var(--muted); font-size:13px;}

  /* mobile sticky bar */
  .mobile-sticky{display:none;}
  @media (max-width:600px){
    .mobile-sticky{position:fixed; bottom:0; left:0; right:0; z-index:90; display:flex; gap:10px; padding:12px 16px; background:rgba(10,14,13,.92); backdrop-filter:blur(10px); border-top:1px solid var(--border);}
    .mobile-sticky a{flex:1; text-align:center; padding:13px 10px; font-size:14px;}
    body{padding-bottom:76px;}
  }


/* ===================================================================== */
/* Inner-page additions (services / case studies / about / contact)      */
/* ===================================================================== */
.breadcrumb{font-size:13px; color:var(--muted); margin:132px 0 8px; display:block;}
.breadcrumb a{color:var(--muted);}
.breadcrumb a:hover{color:var(--green);}
.breadcrumb span{margin:0 6px;}
@media (max-width:900px){ .breadcrumb{margin-top:98px;} }

.page-hero{padding:40px 0 60px;}
.page-hero h1{font-size:clamp(2.1rem,4vw,3.2rem); line-height:1.08; margin:16px 0 20px;}
.page-hero .hero-sub{color:var(--muted); font-size:17px; line-height:1.65; max-width:620px;}
.page-hero .hero-btns{margin-top:28px;}
@media (max-width:900px){ .page-hero{padding:20px 0 40px;} }

.visual-card{padding:32px;}
.visual-card h3{font-size:15px; color:var(--muted); font-weight:500; margin-bottom:18px;}

.related-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:20px;}
.related-pill{padding:10px 18px; border-radius:999px; border:1px solid var(--border); font-size:14px;}
.related-pill:hover{border-color:var(--green); color:var(--green);}

.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:800px){ .grid-2{grid-template-columns:1fr;} }
.info-card{padding:26px;}
.info-card svg{color:var(--green);}
.info-card h3{font-size:17px; margin-bottom:10px;}
.info-card p{color:var(--muted); font-size:14px; line-height:1.65;}

.avatar-circle{width:88px; height:88px; border-radius:50%; background:linear-gradient(135deg,rgba(43,182,115,.35),rgba(43,182,115,.08)); border:1px solid rgba(43,182,115,.4); display:flex; align-items:center; justify-content:center; font-family:'Inter Tight',sans-serif; font-weight:600; font-size:32px; color:var(--green); margin-bottom:16px;}
.team-card{padding:28px; text-align:center;}
.team-card h3{font-size:18px; margin-bottom:4px;}
.team-card p{color:var(--muted); font-size:14px;}

.industry-tag{display:inline-block; font-size:12px; color:var(--green); background:rgba(43,182,115,.14); border:1px solid rgba(43,182,115,.3); padding:5px 14px; border-radius:999px; margin-bottom:16px;}

section{padding:88px 0;}
@media (max-width:860px){section{padding:60px 0;}}
.case-hero{position:relative; min-height:480px; display:flex; align-items:flex-end; overflow:hidden; margin-top:0;}
.case-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.42) saturate(.85);}
.case-hero::before{content:'';position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,13,.55) 0%, rgba(10,14,13,.4) 30%, rgba(10,14,13,.55) 60%, rgba(10,14,13,.92) 100%);}
.case-hero-content{position:relative; z-index:2; padding:160px 24px 48px; max-width:1200px; margin:0 auto; width:100%; box-sizing:border-box;}
@media (max-width:900px){ .case-hero-content{padding:118px 16px 36px;} }
.case-hero h1{font-size:clamp(1.8rem,3.6vw,2.8rem); line-height:1.1; margin-bottom:14px; max-width:820px; text-shadow:0 2px 20px rgba(0,0,0,.55);}
.case-hero .hero-sub{color:#C5CEC9; max-width:680px; font-size:17px; text-shadow:0 2px 16px rgba(0,0,0,.5);}
.case-hero .industry-tag{background:rgba(10,14,13,.75);}

.content-block{max-width:760px;}
.content-block p{color:var(--muted); font-size:16px; line-height:1.75; margin-bottom:16px;}

.filter-row{display:flex; flex-wrap:wrap; gap:10px; margin:8px 0 0;}
.filter-btn{padding:10px 18px; border-radius:999px; border:1px solid var(--border); background:transparent; color:var(--text); font-size:14px; font-weight:500; cursor:pointer; font-family:inherit;}
.filter-btn.active, .filter-btn:hover{border-color:var(--green); color:var(--green);}

.case-card{display:block; overflow:hidden;}
.case-card .case-img{position:relative; aspect-ratio:16/10; overflow:hidden;}
.case-card .case-img img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.case-card:hover .case-img img{transform:scale(1.04);}
.case-card .case-body{padding:22px;}
.case-card h3{font-size:16px; margin:12px 0 14px; line-height:1.35;}

.service-index-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:24px;}
@media (max-width:900px){ .service-index-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .service-index-grid{grid-template-columns:1fr;} }

.cta-band{text-align:center;}
.cta-band p{color:var(--muted); margin:16px 0 8px; font-size:17px; max-width:560px; margin-left:auto; margin-right:auto;}

.trust-row{display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:16px; font-size:13px; color:var(--muted);}
.trust-row span{display:flex; align-items:center; gap:6px;}
.trust-row svg{color:var(--green); flex-shrink:0;}

.form-row textarea#f-message{min-height:120px;}


/* Google reCAPTCHA's hidden challenge iframe (~407px wide) stretches the
   document on a 375px viewport (same root cause the React app fixed in
   src/index.css). overflow-x: clip, not hidden - hidden forces overflow-y:auto,
   which silently breaks position:sticky. */
html, body { overflow-x: clip; }

/* ===================================================================== */
/* Cookie consent banner (vanilla port of CookieConsent.tsx)              */
/* ===================================================================== */
.cookie-consent{position:fixed; left:16px; right:16px; bottom:16px; z-index:95; max-width:640px; margin:0 auto;}
.cookie-consent-inner{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:20px; display:flex; flex-direction:column; gap:16px; box-shadow:0 12px 40px rgba(0,0,0,.35);}
.cookie-consent-text strong{font-size:15px;}
.cookie-consent-text p{color:var(--muted); font-size:13px; line-height:1.6; margin-top:6px;}
.cookie-consent-text a{color:var(--green); text-decoration:underline;}
.cookie-consent-actions{display:flex; gap:10px;}
.cookie-consent-actions .btn{flex:1;}
@media (max-width:600px){ .cookie-consent{bottom:92px;} }

/* ===================================================================== */
/* Contact form submission states (recaptcha slot, status, spinner)       */
/* ===================================================================== */
.recaptcha-slot{display:flex; justify-content:center; margin:4px 0 6px;}
.form-status{margin-top:14px; text-align:center; font-size:14px;}
.form-status-success{color:var(--green);}
.form-status-error{color:#E0605A;}
.form-submit.is-loading{opacity:.7; pointer-events:none; position:relative; color:transparent;}
.form-submit.is-loading::after{content:''; position:absolute; left:50%; top:50%; width:16px; height:16px; margin:-8px 0 0 -8px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:itmsp-spin .7s linear infinite;}
@keyframes itmsp-spin{to{transform:rotate(360deg);}}

