/* =====================================================================
   PathoHub Pop — Gen-Z theme for pathohub.co.in (Oct 2026)
   Loads after style.css. Take this file's <link> out of a page to get the old look back.
   gz* pieces work on every page; the home-page restyle is scoped to body.gzHome.
===================================================================== */
:root{
  --gz-ink:#0a2230; --gz-ink2:#123448; --gz-paper:#fffdf8; --gz-cream:#f5f9ec;
  --gz-blue:#0e5b78; --gz-teal:#0e7490; --gz-green:#1fa855;
  --gz-lime:#b8ef45; --gz-lime-soft:#ecfbc9; --gz-sky:#3cc4f5; --gz-sky-soft:#dcf3fd;
  --gz-violet:#7c5cff; --gz-violet-soft:#ece7ff; --gz-pink:#ff5ca8; --gz-pink-soft:#ffe3f0;
  --gz-sun:#ffd23f; --gz-sun-soft:#fff3c4;
  --gz-pop:4px 4px 0 var(--gz-ink); --gz-pop-sm:2px 2px 0 var(--gz-ink); --gz-pop-lg:8px 8px 0 var(--gz-ink);
  --gz-bounce:cubic-bezier(.34,1.56,.64,1);
  --gz-display:"Bricolage Grotesque","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gz-grad:linear-gradient(92deg,#0e7490 0%,#7c5cff 34%,#ff5ca8 66%,#0e7490 100%);
  --gz-grad-dark:linear-gradient(92deg,#b8ef45 0%,#3cc4f5 34%,#ff8fc4 66%,#b8ef45 100%);
}

/* ---------- keyframes ---------- */
@keyframes gzHue{ to{ background-position:250% 0; } }
@keyframes gzMarq{ to{ transform:translateX(-50%); } }
@keyframes gzMarqR{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
@keyframes gzSpin{ to{ transform:rotate(360deg); } }
@keyframes gzBob{ 0%,100%{ transform:translateY(0) rotate(var(--r,0deg)); } 50%{ transform:translateY(-14px) rotate(calc(var(--r,0deg) * -1)); } }
@keyframes gzWiggle{ 0%,100%{ transform:rotate(var(--r,0deg)); } 20%{ transform:rotate(calc(var(--r,0deg) - 12deg)); } 40%{ transform:rotate(calc(var(--r,0deg) + 9deg)); } 60%{ transform:rotate(calc(var(--r,0deg) - 5deg)); } 80%{ transform:rotate(var(--r,0deg)); } }
@keyframes gzWord{ from{ opacity:0; transform:translateY(.6em) rotate(4deg) scale(.94); } to{ opacity:1; transform:none; } }
@keyframes gzPopIn{ 0%{ opacity:0; transform:scale(.7) rotate(-4deg); } 70%{ opacity:1; transform:scale(1.04) rotate(1deg); } 100%{ opacity:1; transform:none; } }
@keyframes gzConf{ 0%{ opacity:1; transform:translate(0,0) rotate(0) scale(1); } 100%{ opacity:0; transform:translate(var(--x),var(--y)) rotate(var(--rot)) scale(.5); } }
@keyframes gzRipple{ from{ transform:translate(-50%,-50%) scale(0); opacity:.32; } to{ transform:translate(-50%,-50%) scale(1); opacity:0; } }
@keyframes gzDots{ 0%,80%,100%{ transform:translateY(0); opacity:.35; } 40%{ transform:translateY(-5px); opacity:1; } }
@keyframes gzPulse{ 0%{ box-shadow:0 0 0 0 rgba(31,168,85,.55); } 70%{ box-shadow:0 0 0 9px rgba(31,168,85,0); } 100%{ box-shadow:0 0 0 0 rgba(31,168,85,0); } }
@keyframes gzSwapIn{ from{ opacity:0; transform:translateY(80%); } to{ opacity:1; transform:none; } }
@keyframes gzAurora{ 0%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(3%,-4%) scale(1.08); } 100%{ transform:translate(-3%,3%) scale(.96); } }
@keyframes gzShow{ to{ opacity:1; transform:none; } }

/* ---------- headings: words pop in when the heading scrolls into view ---------- */
.gzW{ display:inline-block; }
.reveal:not(.is-visible) .gzW, .gzRv:not(.is-visible) .gzW{ opacity:0; }
.reveal.is-visible .gzW, .gzRv.is-visible .gzW{ animation:gzWord .75s var(--gz-bounce) both; animation-delay:calc(var(--i,0) * 65ms + var(--d,0) * 90ms + 80ms); }
.gzG{ background:var(--gz-grad); background-size:250% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; padding-right:.06em; }
.accent-serif.gzSplit{ background:none !important; -webkit-text-fill-color:currentColor; animation:none !important; }

/* reveal helper for pages without main.js (hidden only once genz.js is running) */
.gzJs .gzRv{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--gz-bounce), transform .8s var(--gz-bounce); transition-delay:calc(var(--d,0) * 90ms); }
.gzJs .gzRv.is-visible{ opacity:1; transform:none; }
.gzJs:not(.gzOk) .gzRv{ animation:gzShow 0s 3s forwards; }

/* ---------- ticker ribbons ---------- */
.gzTicks{ position:relative; z-index:6; display:flex; flex-direction:column; gap:14px; margin:-62px 0; padding:36px 0; overflow:hidden; pointer-events:none; }
.gzBand{ position:relative; left:-4%; width:108%; padding:13px 0; border-block:2.5px solid var(--gz-ink); overflow:hidden; white-space:nowrap; transform:rotate(-2deg); }
.gzBand--a{ background:var(--gz-lime); color:var(--gz-ink); box-shadow:0 6px 0 rgba(10,34,48,.16); }
.gzBand--b{ background:var(--gz-violet); color:#fff; }
.gzTicks--flat{ display:block; margin:0; padding:0; }
.gzTicks--flat .gzBand{ left:0; width:100%; transform:none; }
.gzTrack{ display:inline-flex; align-items:center; width:max-content; animation:gzMarq 38s linear infinite;
  font-family:var(--gz-display); font-weight:800; font-size:20px; letter-spacing:-.01em; text-transform:uppercase; }
.gzTrack > *{ margin-right:26px; flex:none; }
.gzTrack b{ font-size:17px; color:var(--gz-pink); }
.gzBand--b .gzTrack{ animation-name:gzMarqR; animation-duration:46s; }
.gzBand--b .gzTrack b{ color:var(--gz-lime); }
@media (max-width:720px){
  .gzTicks{ margin:-46px 0; padding:26px 0; gap:10px; }
  .gzBand{ padding:9px 0; }
  .gzTrack{ font-size:15px; } .gzTrack > *{ margin-right:18px; } .gzTrack b{ font-size:13px; }
}

/* ---------- floating Lab Studio pill ---------- */
.gzPill{ position:fixed; left:20px; bottom:22px; z-index:460; display:flex; align-items:center; gap:10px; padding:7px 18px 7px 7px;
  background:var(--gz-lime); color:var(--gz-ink); border:2.5px solid var(--gz-ink); border-radius:999px; box-shadow:var(--gz-pop);
  font-family:var(--gz-display); text-decoration:none; opacity:0; transform:translateY(150%) scale(.8); pointer-events:none;
  transition:transform .55s var(--gz-bounce), opacity .3s, box-shadow .15s, translate .15s var(--gz-bounce); }
.gzPill.on{ opacity:1; transform:none; pointer-events:auto; }
.gzPill:hover{ translate:-2px -2px; box-shadow:6px 6px 0 var(--gz-ink); }
.gzPill:active{ translate:3px 3px; box-shadow:0 0 0 var(--gz-ink); }
.gzPillIc{ width:40px; height:40px; flex:none; border-radius:50%; background:#fff; border:2px solid var(--gz-ink); display:grid; place-items:center; font-size:20px; animation:gzWiggle 3s ease-in-out infinite; }
.gzPill b{ display:block; font-size:15px; font-weight:800; line-height:1.1; }
.gzPill small{ display:block; font-family:Inter,system-ui,sans-serif; font-size:11.5px; font-weight:600; opacity:.8; }
@media (max-width:720px){
  .gzPill{ left:12px; bottom:76px; padding:4px; gap:0; }
  .gzPill > span:last-child{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .gzPillIc{ width:44px; height:44px; font-size:21px; border:0; }
}

/* ---------- sound on/off ---------- */
.gzHeadTools{ display:flex; align-items:center; gap:8px; flex:none; }
.gzSnd, .gzPal{ flex:none; width:42px; height:42px; padding:0; display:grid; place-items:center; border-radius:50%; background:#fff; border:2px solid var(--gz-ink);
  box-shadow:var(--gz-pop-sm); font-size:18px; line-height:1; cursor:pointer; transition:translate .15s var(--gz-bounce), box-shadow .15s, background .2s; }
.gzSnd:hover, .gzPal:hover{ translate:-1px -1px; box-shadow:3px 3px 0 var(--gz-ink); background:var(--gz-sun-soft); }
.gzSnd:active, .gzPal:active{ translate:2px 2px; box-shadow:0 0 0 var(--gz-ink); }
.gzPal[aria-expanded="true"]{ background:var(--gz-lime); }

/* ---------- colour theme picker ---------- */
.gzPalPanel{ position:fixed; z-index:9500; width:min(330px, calc(100vw - 20px)); padding:12px; display:flex; flex-direction:column; gap:8px; background:#fff; border:2.5px solid var(--gz-ink); border-radius:20px;
  box-shadow:var(--gz-pop-lg); transform-origin:90% 0; animation:gzPopIn .35s var(--gz-bounce); }
.gzPalPanel[hidden]{ display:none; }
.gzPalHead{ font:800 15px/1.2 var(--gz-display); color:var(--gz-ink); padding:2px 8px 8px; }
.gzPalGrid{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.gzPalOpt{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:8px; width:100%; padding:10px; border:2px solid rgba(10,34,48,.12); border-radius:14px; background:transparent; cursor:pointer;
  font:700 13px/1.2 Inter,system-ui,sans-serif; color:var(--gz-ink); text-align:left; transition:background .15s, border-color .15s, translate .2s var(--gz-bounce); }
.gzPalOpt:hover{ background:var(--gz-cream); translate:0 -2px; }
.gzPalOpt .gzPalTick{ position:absolute; top:8px; right:10px; }
.gzPalOpt em{ position:absolute; top:-8px; right:8px; font:800 9.5px/1 Inter,system-ui,sans-serif; font-style:normal; letter-spacing:.06em; background:var(--gz-sun); color:#2b1406; border:1.5px solid var(--gz-ink); border-radius:999px; padding:3px 6px; }
.gzPalOpt.on{ border-color:var(--gz-ink); background:var(--gz-lime-soft); }
.gzPalDots{ display:flex; flex:none; }
.gzPalDots i{ width:22px; height:22px; border-radius:50%; border:2px solid var(--gz-ink); margin-left:-7px; }
.gzPalDots i:first-child{ margin-left:0; }
.gzPalOpt:hover .gzPalDots i:nth-child(2){ translate:3px 0; } .gzPalOpt:hover .gzPalDots i:nth-child(3){ translate:6px 0; }
.gzPalDots i{ transition:translate .25s var(--gz-bounce); }
.gzPalName{ flex:1; }
.gzPalTick{ opacity:0; font-weight:900; } .gzPalOpt.on .gzPalTick{ opacity:1; }
.gzPalNote{ font-size:11.5px; color:var(--ink-70, #4b6270); padding:6px 8px 0; }
html.gzSwapping, html.gzSwapping *{ transition:background-color .45s ease, border-color .45s ease, color .45s ease !important; }
.gzSnd[aria-pressed="false"]{ background:#eef0ea; }

/* ---------- press feedback ---------- */
.gzRip{ position:absolute; border-radius:50%; background:currentColor; pointer-events:none; animation:gzRipple .55s ease-out forwards; }
.gzConf{ position:fixed; z-index:10002; width:8px; height:13px; border-radius:2px; pointer-events:none; animation:gzConf 1s cubic-bezier(.15,.7,.3,1) forwards; }
.gzCursor{ position:fixed; left:0; top:0; z-index:10001; width:34px; height:34px; margin:-17px 0 0 -17px; border:2px solid #fff; border-radius:50%;
  pointer-events:none; mix-blend-mode:difference; opacity:0; transition:width .2s var(--gz-bounce), height .2s var(--gz-bounce), margin .2s var(--gz-bounce), opacity .2s; }
.gzCursor.on{ opacity:.9; }
.gzCursor.big{ width:62px; height:62px; margin:-31px 0 0 -31px; }

/* ---------- spinning sticker badge ---------- */
.gzBadge{ position:absolute; top:-52px; left:-52px; z-index:5; width:118px; height:118px; display:grid; place-items:center; border-radius:50%;
  background:var(--gz-sun); border:2.5px solid var(--gz-ink); box-shadow:var(--gz-pop); color:var(--gz-ink); text-decoration:none;
  transition:translate .2s var(--gz-bounce), box-shadow .2s, scale .25s var(--gz-bounce); }
.gzBadge svg{ position:absolute; inset:5px; width:calc(100% - 10px); height:calc(100% - 10px); animation:gzSpin 14s linear infinite; }
.gzBadge text{ font-family:var(--gz-display); font-weight:800; font-size:12px; letter-spacing:1.4px; fill:var(--gz-ink); }
.gzBadge > span{ font-size:34px; line-height:1; animation:gzWiggle 2.6s ease-in-out infinite; }
.gzBadge:hover{ scale:1.08; box-shadow:6px 6px 0 var(--gz-ink); }
.gzBadge:hover svg{ animation-duration:4s; }
.gzBadge:active{ translate:3px 3px; box-shadow:0 0 0 var(--gz-ink); }
@media (max-width:1180px){ .gzBadge{ left:auto; right:-12px; top:-48px; width:98px; height:98px; } .gzBadge > span{ font-size:28px; } .gzBadge text{ font-size:11.5px; } }

/* =====================================================================
   HOME PAGE
===================================================================== */
.gzHome{
  --ink:var(--gz-ink); --ink-soft:var(--gz-ink2); --teal:var(--gz-teal); --teal-dark:var(--gz-blue); --teal-deep:#083b4f;
  --green:var(--gz-green); --green-soft:var(--gz-lime); --sand:var(--gz-cream); --sand-dark:#e5f3d2; --paper:var(--gz-paper);
  --ink-70:rgba(10,34,48,.74); --ink-50:rgba(10,34,48,.5);
  background:var(--gz-paper);
}
.gzHome ::selection{ background:var(--gz-lime); color:var(--gz-ink); }
.gzHome .scroll-progress{ height:5px; background:linear-gradient(90deg,var(--gz-lime),var(--gz-sky),var(--gz-violet),var(--gz-pink)); }

/* type */
.gzHome .section-head h2, .gzHome .proof-content h2, .gzHome .final-cta h2, .gzHome .process-panel h3, .gzHome .offer-card h3{
  font-family:var(--gz-display); font-weight:800; letter-spacing:-.035em; }
.gzHome .section-head h2{ font-size:clamp(34px,5.2vw,62px); line-height:1.02; }
.gzHome .proof-content h2{ font-size:clamp(32px,4.2vw,54px); line-height:1.04; }
.gzHome .accent-serif{ font-family:var(--serif); font-style:italic; font-weight:500; letter-spacing:-.02em;
  background:var(--gz-grad); background-size:250% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; padding-right:.06em; }
.gzHome .final-cta .accent-serif, .gzHome .final-cta .gzG, .gzHome .slogan-banner .gzG{ background-image:var(--gz-grad-dark); }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .gzHome .accent-serif:not(.gzSplit){ animation:gzHue 8s linear infinite; }
  .reveal.is-visible .gzW.gzG, .gzRv.is-visible .gzW.gzG{ animation:gzWord .75s var(--gz-bounce) both, gzHue 8s linear infinite; animation-delay:calc(var(--i,0) * 65ms + var(--d,0) * 90ms + 80ms), 0s; }
}
.gzHome .eyebrow{ display:inline-flex; align-items:center; gap:8px; background:#fff; color:var(--gz-ink); border:2px solid var(--gz-ink); border-radius:999px;
  padding:7px 15px 7px 12px; box-shadow:var(--gz-pop-sm); font-weight:800; font-size:11.5px; letter-spacing:.12em; }
.gzHome .eyebrow::before{ content:""; flex:none; width:9px; height:9px; border-radius:50%; background:var(--gz-green); animation:gzPulse 2s infinite; }
.gzHome .eyebrow.center{ display:flex; width:max-content; max-width:calc(100% - 2 * var(--gutter)); margin-left:auto; margin-right:auto; }
.gzHome .section-lede{ color:var(--ink-70); }
.gzHome .gzLink{ color:var(--gz-ink); font-weight:700; background:linear-gradient(transparent 58%, var(--gz-lime) 58%); padding:0 2px; }

/* neo-pop buttons: lift on hover, squash on press */
.gzHome .btn, .gzHome .btn-spec, .gzHome .btn-quote, .gzHome .brochure-links a, .gzHome .header-cta, .gzHome .hero-calc-link{
  border:2px solid var(--gz-ink); box-shadow:var(--gz-pop-sm); font-weight:700;
  transition:translate .15s var(--gz-bounce), box-shadow .15s, background .2s, color .2s; }
.gzHome .btn:hover, .gzHome .btn-spec:hover, .gzHome .btn-quote:hover, .gzHome .brochure-links a:hover, .gzHome .header-cta:hover, .gzHome .hero-calc-link:hover{
  transform:none; translate:-2px -2px; box-shadow:4px 4px 0 var(--gz-ink); }
.gzHome .btn:active, .gzHome .btn-spec:active, .gzHome .btn-quote:active, .gzHome .brochure-links a:active, .gzHome .header-cta:active, .gzHome .hero-calc-link:active{
  translate:2px 2px; box-shadow:0 0 0 var(--gz-ink); }
.gzHome .btn{ font-family:var(--gz-display); font-weight:700; letter-spacing:0; }
.gzHome .btn-solid{ background:var(--gz-lime); color:var(--gz-ink); }
.gzHome .btn-solid:hover{ background:var(--gz-lime); }
.gzHome .btn-ghost, .gzHome .btn-line{ background:#fff; color:var(--gz-ink); border-color:var(--gz-ink); }
.gzHome .btn-ghost:hover, .gzHome .btn-line:hover{ background:var(--gz-sun); color:var(--gz-ink); border-color:var(--gz-ink); }
.gzHome .btn-spec{ background:#fff; color:var(--gz-ink); border-color:var(--gz-ink); }
.gzHome .btn-spec:hover{ background:var(--gz-sky-soft); color:var(--gz-ink); border-color:var(--gz-ink); }
.gzHome .btn-quote{ background:var(--gz-lime); color:var(--gz-ink); }
.gzHome .btn-quote:hover{ background:var(--gz-lime); }

/* header: floating pill */
.gzHome .site-header{ top:10px; left:12px; right:12px; padding:8px 0; border:2px solid var(--gz-ink); border-radius:22px; background:rgba(255,255,255,.94); box-shadow:var(--gz-pop); }
.gzHome .site-header.is-scrolled{ top:6px; padding:5px 0; background:rgba(255,255,255,.97); box-shadow:var(--gz-pop); }
.gzHome .header-inner{ padding:0 clamp(14px,2.4vw,30px); gap:18px; }
.gzHome .brand-mark{ height:68px; }
.gzHome .site-header.is-scrolled .brand-mark{ height:56px; }
.gzHome .main-nav{ gap:26px; }
.gzHome .main-nav a{ font-weight:600; color:var(--gz-ink); }
.gzHome .main-nav a::after{ height:9px; bottom:3px; border-radius:4px; background:var(--gz-lime); z-index:-1; }
.gzHome .header-cta.phHeadBtn{ background:var(--gz-lime); color:var(--gz-ink); border-color:var(--gz-ink); box-shadow:var(--gz-pop-sm); font-family:var(--gz-display); font-size:14px; }
.gzHome .header-cta.phHeadBtn:hover{ background:var(--gz-lime); color:var(--gz-ink); transform:none; }
.gzHome .nav-toggle span{ height:2.5px; border-radius:2px; }
.gzHome .mobile-nav{ background:transparent; }
.gzHome .mobile-nav.is-open{ max-height:480px; }
.gzHome .mobile-nav a{ font-family:var(--gz-display); font-weight:700; color:var(--gz-ink); }
.gzHome .mobile-nav a.phMobPlan{ margin-top:8px; padding:12px 16px; border:2px solid var(--gz-ink); border-radius:16px; background:var(--gz-lime); color:var(--gz-ink); box-shadow:var(--gz-pop-sm); }
.gzHome .brand{ flex:none; }
@media (max-width:1120px){ .gzHome .main-nav{ gap:16px; } .gzHome .main-nav a{ font-size:13px; } }
@media (max-width:980px){
  .gzHome .main-nav{ display:none; }
  .gzHome .nav-toggle{ display:block; }
  .gzHome .mobile-nav{ display:flex; }
  .gzHome .gzHeadTools{ margin-left:auto; }
}
@media (max-width:720px){
  .gzHome .site-header{ top:8px; left:8px; right:8px; border-radius:18px; }
  .gzHome .brand-mark{ height:54px; } .gzHome .site-header.is-scrolled .brand-mark{ height:48px; }
  .gzHome .gzHeadTools{ margin-left:auto; gap:6px; }
  .gzHome .gzSnd, .gzHome .gzPal{ width:38px; height:38px; font-size:16px; }
}

/* hero */
.gzHome .hero{ padding-bottom:130px;
  background:radial-gradient(60% 55% at 92% 6%, rgba(184,239,69,.45), transparent 62%), radial-gradient(55% 50% at 0% 100%, rgba(60,196,245,.28), transparent 62%),
             radial-gradient(45% 45% at 45% 45%, rgba(124,92,255,.10), transparent 70%), var(--gz-paper); }
.gzHome .blob-a{ background:radial-gradient(circle, var(--gz-lime) 0%, transparent 70%); opacity:.5; }
.gzHome .blob-b{ background:radial-gradient(circle, var(--gz-sky) 0%, transparent 70%); opacity:.35; }
.gzHome .blob-c{ background:radial-gradient(circle, var(--gz-violet) 0%, transparent 70%); opacity:.2; }
.gzHome .hero-grid{ grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr); }
@media (max-width:1180px){ .gzHome .hero-grid{ grid-template-columns:minmax(0,1fr); } }
.gzHome .hero-inner, .gzHome .hero-foot{ min-width:0; }
.gzHome .eyebrow{ max-width:100%; }
@media (max-width:520px){ .gzHome .eyebrow{ letter-spacing:.07em; font-size:10.5px; padding:6px 12px 6px 10px; } }
.gzHome .hero-title .line{ font-family:var(--gz-display); font-weight:800; font-size:clamp(36px,calc(4.6vw + 22px),94px); line-height:.96; letter-spacing:-.045em; }
.gzHome .hero-title .line.accent-serif{ font-family:var(--serif); font-weight:500; letter-spacing:-.03em; line-height:1.02; }
.gzHome .hero-gu-line{ color:var(--gz-ink); font-weight:700; }
.gzHome .hero-sub strong{ background:linear-gradient(transparent 58%, rgba(184,239,69,.9) 58%); padding:0 2px; }
.gzHome .scroll-cue{ display:none; }
.gzHome .cell-drift .c1, .gzHome .cell-drift .c4{ background:radial-gradient(circle at 32% 32%, rgba(184,239,69,.85), rgba(184,239,69,.15) 70%, transparent 75%); }
.gzHome .cell-drift .c2, .gzHome .cell-drift .c5{ background:radial-gradient(circle at 32% 32%, rgba(124,92,255,.6), rgba(124,92,255,.12) 70%, transparent 75%); }
.gzHome .cell-drift .c3, .gzHome .cell-drift .c6{ background:radial-gradient(circle at 32% 32%, rgba(255,92,168,.55), rgba(255,92,168,.12) 70%, transparent 75%); }

/* the big Lab Studio button */
.gzHome .phStudioBtn{ background:var(--gz-lime); color:var(--gz-ink); border:2.5px solid var(--gz-ink); box-shadow:6px 6px 0 var(--gz-ink); animation:none;
  transition:translate .18s var(--gz-bounce), box-shadow .18s; padding:12px 14px 12px 12px; }
.gzHome .phStudioBtn:hover{ transform:none; translate:-3px -3px; box-shadow:9px 9px 0 var(--gz-ink); }
.gzHome .phStudioBtn:active{ transform:none; translate:5px 5px; box-shadow:1px 1px 0 var(--gz-ink); }
.gzHome .phStudioBtn::after{ background:linear-gradient(100deg, transparent, rgba(255,255,255,.75), transparent); }
.gzHome .phStudioBtn .ic{ background:#fff; border:2px solid var(--gz-ink); animation:gzWiggle 3.2s ease-in-out infinite; }
.gzHome .phStudioBtn .tx b{ font-family:var(--gz-display); font-weight:800; font-size:24px; letter-spacing:-.025em; }
.gzHome .phStudioBtn .tx{ min-width:0; }
.gzHome .phStudioBtn .tx small{ display:block; height:1.35em; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-weight:600; opacity:1; }
.gzHome .phStudioBtn .tx small.gzSwap{ animation:gzSwapIn .45s var(--gz-bounce); }
.gzHome .phStudioBtn .ar{ flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--gz-ink); color:var(--gz-lime); font-size:21px; margin-left:6px; }
.gzHome .phStudioHelp .av{ background:var(--gz-sun); border:2px solid var(--gz-ink); box-shadow:none; }
.gzHome .phStudioHelp p{ position:relative; border:2px solid var(--gz-ink); box-shadow:var(--gz-pop-sm); border-radius:4px 18px 18px 18px; color:var(--gz-ink); }
.gzHome .phStudioHelp em{ color:var(--gz-green); }
.gzHome .phStudioHelp.gzTyping p, .gzHome .phStudioHelp.gzTyping p *{ color:transparent; }
.gzDotsW{ position:absolute; left:14px; top:12px; display:flex; gap:5px; }
.gzDotsW i{ width:8px; height:8px; border-radius:50%; background:var(--gz-ink); animation:gzDots 1s infinite; }
.gzDotsW i:nth-child(2){ animation-delay:.15s; } .gzDotsW i:nth-child(3){ animation-delay:.3s; }
@media (max-width:640px){ .gzHome .phStudioBtn .tx b{ font-size:20px; } .gzHome .phStudioBtn .ar{ width:38px; height:38px; font-size:18px; } }

/* hero stats as stickers */
.gzHome .hero-stats-bar{ border-top:0; gap:12px; padding-top:8px; }
.gzHome .stat-sep{ display:none; }
.gzHome .hero-stats-bar .stat{ padding:9px 13px 8px; border:2px solid var(--gz-ink); border-radius:16px; background:#fff; box-shadow:var(--gz-pop-sm);
  transition:rotate .25s var(--gz-bounce), translate .25s var(--gz-bounce), box-shadow .2s; }
.gzHome .hero-stats-bar .stat:nth-child(1){ background:var(--gz-lime-soft); rotate:-1.5deg; }
.gzHome .hero-stats-bar .stat:nth-child(3){ background:var(--gz-sky-soft); rotate:1.2deg; }
.gzHome .hero-stats-bar .stat:nth-child(5){ background:var(--gz-violet-soft); rotate:-1deg; }
.gzHome .hero-stats-bar .stat:nth-child(7){ background:var(--gz-pink-soft); rotate:1.4deg; }
.gzHome .hero-stats-bar .stat:hover{ rotate:0deg; translate:-1px -3px; box-shadow:var(--gz-pop); }
.gzHome .hero-stats-bar .num{ font-family:var(--gz-display); font-weight:800; font-size:27px; letter-spacing:-.03em; }
.gzHome .hero-stats-bar .lbl{ font-weight:700; font-size:10px; letter-spacing:.03em; color:var(--gz-ink); }

/* calculators */
.gzHome .hero-calc{ border:2.5px solid var(--gz-ink); border-radius:26px; box-shadow:var(--gz-pop-lg); }
.gzHome .hero-calc-eyebrow{ align-self:flex-start; background:var(--gz-ink); color:var(--gz-lime); padding:6px 12px; border-radius:999px; }
.gzHome .hero-calc-link{ display:block; padding:10px; border-radius:999px; background:#fff; color:var(--gz-ink); font-family:var(--gz-display); }
.gzHome .calc-value, .gzHome .calc-result-figure{ font-family:var(--gz-display); font-weight:800; letter-spacing:-.03em; color:var(--gz-ink); }
.gzHome .calc-range{ height:14px; border:2px solid var(--gz-ink); background:#fff linear-gradient(var(--gz-lime), var(--gz-lime)) no-repeat; background-size:var(--fill,50%) 100%; }
.gzHome .calc-range::-webkit-slider-thumb{ width:26px; height:26px; background:#fff; border:3px solid var(--gz-ink); box-shadow:2px 2px 0 var(--gz-ink); transition:scale .15s var(--gz-bounce); }
.gzHome .calc-range:active::-webkit-slider-thumb{ scale:1.18; }
.gzHome .calc-range::-moz-range-thumb{ width:22px; height:22px; background:#fff; border:3px solid var(--gz-ink); box-shadow:2px 2px 0 var(--gz-ink); }
.gzHome .calc-result{ border:2.5px solid var(--gz-ink); box-shadow:var(--gz-pop); }
.gzHome .calc-result--risk{ background:var(--gz-pink-soft); }
.gzHome .calc-result--risk .calc-result-figure{ color:#c0265e; }
.gzHome .calc-result--safe{ background:var(--gz-lime-soft); }
.gzHome .calc-badge{ border:2px solid var(--gz-ink); }
.gzHome .calc-result--risk .calc-badge--risk{ background:var(--gz-pink); color:#fff; }
.gzHome .calc-result--safe .calc-badge--safe{ background:var(--gz-lime); color:var(--gz-ink); }
.gzHome .calculator{ background:var(--gz-paper); }
.gzHome .calc-inputs{ background:var(--gz-sky-soft); border:2.5px solid var(--gz-ink); box-shadow:var(--gz-pop-lg); }

/* slogan */
.gzHome .slogan-banner{ background:var(--gz-ink); padding-top:130px; }
.gzHome .slogan-mesh{ background:radial-gradient(circle at 18% 30%, rgba(184,239,69,.22), transparent 55%), radial-gradient(circle at 85% 80%, rgba(124,92,255,.38), transparent 55%), radial-gradient(circle at 62% 8%, rgba(60,196,245,.18), transparent 50%);
  animation:gzAurora 16s ease-in-out infinite alternate; }
.gzHome .slogan-quote{ color:#fff; text-shadow:4px 4px 0 var(--gz-violet); }
.gzHome .slogan-sub strong{ color:var(--gz-ink); background:var(--gz-lime); padding:1px 8px; border-radius:8px; }
.gzHome .slogan-bottom{ border-top-color:rgba(255,255,255,.18); }

/* products */
.gzHome .portfolio{ background-color:var(--gz-cream); background-image:radial-gradient(rgba(10,34,48,.085) 1.2px, transparent 1.2px); background-size:22px 22px; padding-top:150px; }
.gzFind{ max-width:var(--container); margin:0 auto 18px; padding:0 var(--gutter); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 18px; }
.gzFind > label{ display:flex; align-items:center; gap:10px; flex:1 1 300px; max-width:560px; background:#fff; border:2px solid var(--gz-ink); border-radius:999px;
  padding:5px 6px 5px 16px; box-shadow:var(--gz-pop); transition:box-shadow .15s, translate .15s var(--gz-bounce); }
.gzFind > label:focus-within{ translate:-2px -2px; box-shadow:6px 6px 0 var(--gz-ink); }
.gzFind > label > span{ font-size:18px; }
.gzFind input{ flex:1; min-width:0; border:0; outline:0; background:transparent; font:600 15px/1.4 Inter,system-ui,sans-serif; color:var(--gz-ink); padding:8px 0; }
.gzFind input::placeholder{ color:rgba(10,34,48,.5); }
.gzFind input::-webkit-search-cancel-button{ display:none; }
.gzClr{ flex:none; border:2px solid var(--gz-ink); background:var(--gz-sun); border-radius:999px; font:800 12px Inter,sans-serif; padding:6px 12px; cursor:pointer; color:var(--gz-ink); }
.gzClr[hidden]{ display:none; }
.gzModes{ position:relative; display:inline-flex; gap:2px; padding:4px; background:#fff; border:2px solid var(--gz-ink); border-radius:999px; box-shadow:var(--gz-pop); }
.gzModes button{ position:relative; z-index:1; display:inline-flex; align-items:center; gap:6px; border:0; background:transparent; padding:9px 15px; border-radius:999px;
  font:800 13px/1 var(--gz-display); color:var(--gz-ink); cursor:pointer; transition:color .25s; }
.gzModes button b{ font-size:14px; transition:transform .3s var(--gz-bounce); }
.gzModes button:hover b{ transform:rotate(-12deg) scale(1.2); }
.gzModes button.on{ color:var(--gz-lime); }
.gzThumb{ position:absolute; z-index:0; top:4px; bottom:4px; left:4px; width:0; border-radius:999px; background:var(--gz-ink); transition:left .45s var(--gz-bounce), width .45s var(--gz-bounce); }
.gzNote{ max-width:var(--container); margin:0 auto 14px; padding:0 var(--gutter); font-weight:700; font-size:13.5px; color:var(--gz-ink); }
.gzNote[hidden], .gzStage[hidden], .gzHome .portfolio-grid[hidden], .gzEmpty[hidden]{ display:none !important; }
@media (max-width:560px){
  .gzFind > label{ flex-basis:100%; max-width:none; }
  .gzModes{ width:100%; justify-content:space-between; }
  .gzModes button{ flex:1; justify-content:center; padding:9px 6px; font-size:12px; gap:4px; }
}
.gzHome .portfolio-tabs{ gap:9px; align-items:center; }
.gzHome .pf-tab{ background:#fff; color:var(--gz-ink); font-weight:700; font-size:13px; padding:8px 13px; border:2px solid var(--gz-ink); box-shadow:var(--gz-pop-sm);
  transition:translate .15s var(--gz-bounce), box-shadow .15s, background .2s, color .2s; }
.gzHome .pf-tab i{ font-style:normal; font-size:16px; line-height:1; display:inline-block; }
.gzHome .pf-tab:hover{ translate:-1px -2px; box-shadow:3px 4px 0 var(--gz-ink); border-color:var(--gz-ink); color:var(--gz-ink); }
.gzHome .pf-tab:active{ translate:2px 2px; box-shadow:0 0 0 var(--gz-ink); }
.gzHome .pf-tab.is-active{ background:var(--gz-ink); color:#fff; }
.gzHome .pf-tab.is-active i{ animation:gzWiggle 1.4s ease-in-out infinite; }
.gzHome .pf-tab span{ background:var(--gz-lime-soft); color:var(--gz-ink); border:1.5px solid var(--gz-ink); padding:1px 7px; }
.gzHome .pf-tab.is-active span{ background:var(--gz-lime); color:var(--gz-ink); }
.gzHome .gzTabs.gzDim .pf-tab.is-active{ background:#fff; color:var(--gz-ink); }
.gzHome .pf-tab b{ font-weight:inherit; }
/* phones: every department visible at once as a 3-column grid of tiles (no sideways scrolling) */
@media (max-width:720px){
  .gzHome .portfolio-tabs.gzTabs{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding-top:2px; }
  .gzHome .gzTabs .pf-tab{ flex-direction:column; justify-content:center; gap:4px; min-height:66px; padding:8px 5px; border-radius:16px; font-size:11.5px; line-height:1.2; text-align:center; white-space:normal; }
  .gzHome .gzTabs .pf-tab i{ font-size:19px; }
  .gzHome .gzTabs .pf-tab span{ display:inline-block; font-size:9.5px; padding:0 5px; margin-left:2px; vertical-align:1px; }
}
@media (max-width:340px){ .gzHome .portfolio-tabs.gzTabs{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.gzHome .portfolio-grid{ gap:22px; }
.gzHome .product-card{ position:relative; border:2px solid var(--gz-ink); border-radius:22px; box-shadow:var(--gz-pop);
  opacity:0; transform:translateY(34px) rotate(-3deg) scale(.93);
  transition:opacity .45s var(--ease), transform .6s var(--gz-bounce), box-shadow .2s, translate .2s var(--gz-bounce), rotate .2s var(--gz-bounce), scale .25s var(--gz-bounce); }
.gzHome .product-card.is-shown{ opacity:1; transform:none; }
.gzHome button.btn-spec{ font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; }
.gzHome .product-media[data-qv]{ cursor:zoom-in; }
.gzHome .product-media::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(115deg, transparent 35%, rgba(255,255,255,.7) 50%, transparent 65%);
  translate:-130% 0; transition:translate .8s ease; }
.gzHome .product-card:hover .product-media::after{ translate:130% 0; }
.gzPeek{ position:absolute; left:50%; bottom:10px; z-index:2; translate:-50% 160%; opacity:0; background:var(--gz-ink); color:#fff; border-radius:999px; padding:6px 12px;
  font:800 12px/1 Inter,system-ui,sans-serif; white-space:nowrap; pointer-events:none; transition:translate .35s var(--gz-bounce), opacity .2s; }
.gzHome .product-card:hover .gzPeek, .gzHome .product-media:focus-visible .gzPeek{ translate:-50% 0; opacity:1; }

/* Tilt view: the grid floats as a 3D wall that leans toward the mouse */
.gzWrap.gzTiltOn{ perspective:1800px; perspective-origin:50% 0%; }
.gzHome .portfolio-grid.gzTilt{ transform-style:preserve-3d; transform-origin:50% 0%; will-change:transform; }
.gzHome .gzTilt .product-card.is-shown{ animation:gzFloatZ 5.6s ease-in-out infinite; animation-delay:var(--bd,0s); }
.gzHome .gzTilt .product-card:hover{ animation-play-state:paused; scale:1.035; rotate:0deg; box-shadow:10px 10px 0 var(--gz-ink); }
.gzHome .gzTilt.gzLite .product-card.is-shown{ animation:none; }
@keyframes gzFloatZ{ 0%,100%{ translate:0 0 var(--z,0px); } 50%{ translate:0 -14px var(--z,0px); } }

/* Ring view: drag-to-spin 3D carousel */
.gzStage--ring{ max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
.gzRingView{ position:relative; height:clamp(380px,46vw,560px); overflow:hidden; perspective:1500px; perspective-origin:50% 38%; cursor:grab; touch-action:pan-y;
  -webkit-user-select:none; user-select:none; outline:none; border:2.5px solid var(--gz-ink); border-radius:30px; box-shadow:var(--gz-pop-lg);
  background:radial-gradient(80% 60% at 50% 115%, rgba(124,92,255,.22), transparent 60%), radial-gradient(60% 50% at 50% -12%, rgba(184,239,69,.38), transparent 60%), #fff; }
.gzRingView:active{ cursor:grabbing; }
.gzRingView:focus-visible{ box-shadow:var(--gz-pop-lg), 0 0 0 4px var(--gz-sky); }
.gzRing{ position:absolute; left:50%; top:48%; width:var(--w); height:calc(var(--w) * 1.2); margin:calc(var(--w) * -.6) 0 0 calc(var(--w) / -2); transform-style:preserve-3d; }
.gzRItem{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; gap:10px; cursor:pointer; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.gzRCard{ width:100%; aspect-ratio:1/1; display:grid; place-items:center; padding:14px; background:#fff; border:2px solid var(--gz-ink); border-radius:22px; box-shadow:var(--gz-pop);
  transition:scale .35s var(--gz-bounce), box-shadow .3s, background .3s; }
.gzRCard img{ width:100%; height:100%; object-fit:contain; pointer-events:none; -webkit-user-drag:none; }
.gzRCard .gzNoPh b{ font-size:52px; }
.gzRItem.front .gzRCard{ scale:1.08; background:#fffef4; box-shadow:7px 7px 0 var(--gz-ink); }
.gzRName{ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center; font:800 13px/1.25 var(--gz-display); color:var(--gz-ink);
  background:#fff; border:1.5px solid var(--gz-ink); border-radius:999px; padding:4px 10px; }
.gzRItem.front .gzRName{ background:var(--gz-lime); }
.gzRingFloor{ position:absolute; left:50%; bottom:5%; width:min(70%,760px); height:64px; translate:-50% 0; pointer-events:none; background:radial-gradient(closest-side, rgba(10,34,48,.24), transparent); }
.gzRingHint{ position:absolute; left:50%; bottom:14px; translate:-50% 0; font:800 11px var(--gz-display); letter-spacing:.14em; text-transform:uppercase; color:rgba(10,34,48,.55); pointer-events:none; animation:gzBob 2.4s ease-in-out infinite; }
.gzRingBar{ display:flex; align-items:center; gap:14px; margin-top:20px; }
.gzRB{ flex:none; width:52px; height:52px; border-radius:50%; border:2.5px solid var(--gz-ink); background:var(--gz-lime); color:var(--gz-ink); box-shadow:var(--gz-pop);
  font:800 20px/1 var(--gz-display); cursor:pointer; transition:translate .15s var(--gz-bounce), box-shadow .15s; }
.gzRB:hover{ translate:-2px -2px; box-shadow:6px 6px 0 var(--gz-ink); }
.gzRB:active{ translate:3px 3px; box-shadow:0 0 0 var(--gz-ink); }
.gzRingInfo{ flex:1; min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; background:#fff; border:2px solid var(--gz-ink); border-radius:20px; padding:12px 16px; box-shadow:var(--gz-pop-sm); }
.gzRingInfo.gzSwap{ animation:gzSwapIn .4s var(--gz-bounce); }
.gzRIdx{ font:800 12px var(--gz-display); background:var(--gz-ink); color:var(--gz-lime); border-radius:999px; padding:4px 9px; }
.gzRingInfo b{ font:800 19px/1.2 var(--gz-display); letter-spacing:-.02em; color:var(--gz-ink); }
.gzRingInfo small{ flex-basis:100%; color:var(--ink-70); font-weight:600; font-size:13px; }
.gzRActs{ margin-left:auto; display:flex; gap:8px; flex:none; white-space:nowrap; }
.gzRActs .btn-spec, .gzRActs .btn-quote{ flex:none; padding:8px 14px; }
@media (max-width:560px){ .gzRingBar{ gap:8px; } .gzRB{ width:42px; height:42px; font-size:17px; } .gzRActs{ margin-left:0; width:100%; } .gzRActs > *{ flex:1 !important; } .gzRingInfo b{ font-size:16px; } }

/* Explore view: scroll flies the camera through the products */
.gzExp{ position:relative; }
.gzExpView{ position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; perspective:1000px; perspective-origin:50% 46%; border-block:2.5px solid var(--gz-ink);
  background:radial-gradient(70% 55% at 50% 45%, #ffffff 0%, #f5f9ec 55%, #e4eedd 100%); }
.gzExpScene{ position:absolute; left:50%; top:52%; width:0; height:0; transform-style:preserve-3d; }
.gzEItem{ --ew:min(300px,24vw); position:absolute; left:0; top:0; width:max-content; display:flex; align-items:center; gap:18px;
  transform:translate3d(calc(-50% + var(--x)), calc(-50% + var(--y)), var(--z)); }
.gzEItem.gzEl{ flex-direction:row-reverse; text-align:right; }
.gzECard{ flex:none; width:var(--ew); aspect-ratio:1/1; padding:16px; display:grid; place-items:center; background:#fff; border:2.5px solid var(--gz-ink); border-radius:24px;
  box-shadow:var(--gz-pop-lg); cursor:zoom-in; transition:scale .3s var(--gz-bounce), rotate .3s var(--gz-bounce); }
.gzECard:hover{ scale:1.05; rotate:-2deg; }
.gzECard img{ width:100%; height:100%; object-fit:contain; pointer-events:none; }
.gzELabel{ display:flex; flex-direction:column; gap:4px; max-width:240px; }
.gzEl .gzELabel{ align-items:flex-end; }
.gzELabel i{ font-style:normal; font:800 12px var(--gz-display); letter-spacing:.06em; color:var(--gz-violet); }
.gzELabel b{ font:800 22px/1.12 var(--gz-display); letter-spacing:-.03em; color:var(--gz-ink); }
.gzELabel small{ font-size:13.5px; line-height:1.4; color:var(--ink-70); font-weight:600; }
.gzExpFog{ position:absolute; inset:0; z-index:2; pointer-events:none; background:radial-gradient(65% 55% at 50% 50%, transparent 55%, rgba(228,238,221,.85) 100%); }
.gzExpHud{ position:absolute; left:0; right:0; top:92px; z-index:3; display:flex; align-items:center; gap:14px; padding:0 var(--gutter); font-family:var(--gz-display); font-weight:800; }
.gzExpCount{ font-size:15px; background:var(--gz-ink); color:var(--gz-lime); border-radius:999px; padding:7px 13px; }
.gzExpHint{ font-size:12.5px; text-transform:uppercase; letter-spacing:.14em; color:var(--gz-ink); transition:opacity .3s; animation:gzBob 2.2s ease-in-out infinite; }
.gzExpBar{ flex:1; height:8px; border-radius:999px; background:rgba(10,34,48,.12); border:1.5px solid var(--gz-ink); overflow:hidden; }
.gzExpBar i{ display:block; height:100%; background:linear-gradient(90deg,var(--gz-lime),var(--gz-sky),var(--gz-violet),var(--gz-pink)); transform-origin:left; transform:scaleX(0); }
@media (max-width:700px){
  .gzEItem{ --ew:56vw; flex-direction:column !important; text-align:center !important; gap:12px; }
  .gzEl .gzELabel, .gzELabel{ align-items:center; max-width:70vw; }
  .gzELabel b{ font-size:18px; }
  .gzExpHud{ top:78px; }
}

/* quick view */
.gzQV{ position:fixed; inset:0; z-index:9000; display:none; align-items:center; justify-content:center; padding:16px; }
.gzQV.on{ display:flex; }
.gzQVBg{ position:absolute; inset:0; background:rgba(10,34,48,.55); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); animation:gzFade .3s ease both; }
.gzQVCard{ position:relative; display:grid; grid-template-columns:1.05fr 1fr; width:min(960px,100%); max-height:calc(100vh - 32px); max-height:calc(100svh - 32px); overflow:auto;
  background:#fff; border:2.5px solid var(--gz-ink); border-radius:28px; box-shadow:10px 10px 0 var(--gz-lime); }
.gzQVCard.gzIn{ animation:gzQVIn .55s var(--gz-bounce) both; }
.gzQV.off .gzQVCard{ animation:gzQVOut .22s ease-in both; }
.gzQV.off .gzQVBg{ animation:gzFadeOut .22s ease-in both; }
@keyframes gzQVIn{ from{ opacity:0; transform:scale(.25) rotate(-4deg); } to{ opacity:1; transform:none; } }
@keyframes gzQVOut{ to{ opacity:0; transform:scale(.88) translateY(18px); } }
@keyframes gzFade{ from{ opacity:0; } }
@keyframes gzFadeOut{ to{ opacity:0; } }
@keyframes gzFromR{ from{ opacity:0; transform:translateX(60px) rotate(4deg); } }
@keyframes gzFromL{ from{ opacity:0; transform:translateX(-60px) rotate(-4deg); } }
.gzQVMedia{ position:relative; min-height:340px; display:grid; place-items:center; padding:34px; background:var(--tint, var(--gz-lime-soft)); border-right:2.5px solid var(--gz-ink); overflow:hidden; }
.gzQVMedia.gzFromR > img, .gzQVMedia.gzFromR > .gzNoPh{ animation:gzFromR .45s var(--gz-bounce) both; }
.gzQVMedia.gzFromL > img, .gzQVMedia.gzFromL > .gzNoPh{ animation:gzFromL .45s var(--gz-bounce) both; }
.gzQVMedia img{ width:100%; height:100%; max-height:430px; object-fit:contain; mix-blend-mode:multiply; }
.gzQVCard.gzIn .gzQVMedia img{ animation:gzPopIn .7s var(--gz-bounce) .12s both; }
.gzQVMedia .gzNoPh b{ font-size:96px; } .gzQVMedia .gzNoPh em{ font-size:34px; } .gzQVMedia .gzNoPh small{ font-size:15px; }
.gzQVBody{ padding:30px 30px 24px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.gzQVBody h3{ font:800 31px/1.06 var(--gz-display); letter-spacing:-.035em; color:var(--gz-ink); padding-right:40px; }
.gzQVSub{ color:var(--gz-teal); font-weight:700; font-size:14.5px; }
.gzQVBody ul li{ font-size:14px; line-height:1.5; padding:9px 0; border-top:1.5px dashed rgba(10,34,48,.2); color:var(--gz-ink); }
.gzQVActs{ display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; padding-top:12px; }
.gzHome .gzQVActs a{ flex:1 1 150px; text-align:center; padding:12px 14px; font-size:14px; border-radius:999px; }
.gzQVX{ position:absolute; top:14px; right:14px; z-index:3; width:42px; height:42px; border-radius:50%; border:2px solid var(--gz-ink); background:#fff; color:var(--gz-ink);
  box-shadow:var(--gz-pop-sm); font:800 16px/1 Inter,system-ui,sans-serif; cursor:pointer; transition:rotate .3s var(--gz-bounce); }
.gzQVX:hover{ rotate:90deg; background:var(--gz-pink-soft); }
.gzQVNav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:6px; font:800 13px var(--gz-display); color:var(--gz-ink); }
.gzQVNav button{ width:44px; height:44px; border-radius:50%; border:2px solid var(--gz-ink); background:var(--gz-sun); color:var(--gz-ink); box-shadow:var(--gz-pop-sm); font:800 16px/1 Inter,system-ui,sans-serif; cursor:pointer;
  transition:translate .15s var(--gz-bounce), box-shadow .15s; }
.gzQVNav button:hover{ translate:-1px -2px; box-shadow:3px 4px 0 var(--gz-ink); }
.gzQVNav button:active{ translate:2px 2px; box-shadow:0 0 0 var(--gz-ink); }
.gzChip--flat{ position:static; align-self:flex-start; max-width:100%; }
html.gzLock{ overflow:hidden; }
@media (max-width:760px){
  .gzQVCard{ grid-template-columns:1fr; border-radius:22px; box-shadow:6px 6px 0 var(--gz-lime); }
  .gzQVMedia{ min-height:220px; padding:22px; border-right:0; border-bottom:2.5px solid var(--gz-ink); }
  .gzQVMedia img{ max-height:250px; }
  .gzQVBody{ padding:20px 18px 18px; } .gzQVBody h3{ font-size:24px; }
}
.gzHome .product-card:hover, .gzHome .product-card.is-shown:hover{ transform:none; translate:-3px -4px; rotate:-.6deg; box-shadow:8px 8px 0 var(--gz-ink); }
.gzHome .product-media{ position:relative; overflow:hidden; background:var(--tint, var(--gz-lime-soft)); border-bottom:2px solid var(--gz-ink); }
.gzHome .product-card:nth-child(4n+2) .product-media{ --tint:var(--gz-sky-soft); }
.gzHome .product-card:nth-child(4n+3) .product-media{ --tint:var(--gz-violet-soft); }
.gzHome .product-card:nth-child(4n+4) .product-media{ --tint:var(--gz-pink-soft); }
.gzHome .product-media img{ mix-blend-mode:multiply; transition:transform .4s var(--gz-bounce); }
.gzHome .product-card:hover .product-media img{ transform:scale(1.07) rotate(-2deg); }
.gzHome .product-body h3{ font-family:var(--gz-display); font-weight:700; font-size:19px; letter-spacing:-.02em; }
.gzHome .product-tag{ color:var(--gz-teal); font-weight:700; }
.gzHome .product-body ul li{ border-top:1.5px dashed rgba(10,34,48,.2); }
.gzHome .product-actions{ flex-wrap:wrap; }
.gzHome .btn-spec, .gzHome .btn-quote{ flex:1 1 104px; padding:9px 8px; }
.gzChip{ position:absolute; top:10px; left:10px; z-index:2; max-width:calc(100% - 20px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  background:#fff; color:var(--gz-ink); border:1.5px solid var(--gz-ink); border-radius:999px; padding:3px 9px; font:800 11px/1.3 Inter,system-ui,sans-serif; }
.gzSticker{ position:absolute; top:10px; right:10px; z-index:3; background:var(--gz-sun); color:var(--gz-ink); border:2px solid var(--gz-ink); border-radius:999px;
  padding:4px 10px; font:800 11px/1.2 Inter,system-ui,sans-serif; letter-spacing:.04em; box-shadow:var(--gz-pop-sm); --r:8deg; transform:rotate(8deg); animation:gzWiggle 2.6s ease-in-out infinite; }
.gzNoPh{ width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center;
  background:radial-gradient(circle at 30% 25%, rgba(255,255,255,.85), transparent 55%); border-radius:14px; }
.gzNoPh b{ font-size:58px; line-height:1; filter:drop-shadow(3px 3px 0 rgba(10,34,48,.18)); animation:gzBob 3.6s ease-in-out infinite; }
.gzNoPh em{ font-family:var(--gz-display); font-style:normal; font-weight:800; font-size:22px; letter-spacing:-.03em; color:var(--gz-ink); }
.gzNoPh small{ font:700 12px/1.3 Inter,system-ui,sans-serif; color:var(--gz-ink); opacity:.75; max-width:90%; }
.gzEmpty{ grid-column:1/-1; text-align:center; padding:40px 20px; border:2px dashed var(--gz-ink); border-radius:22px; background:#fff; font-weight:600; }
.gzEmpty a{ font-weight:800; background:linear-gradient(transparent 58%, var(--gz-lime) 58%); }
.gzStudioCta{ max-width:calc(var(--container) - 2 * var(--gutter)); margin:34px auto 0; display:flex; align-items:center; gap:16px; padding:16px 18px;
  width:calc(100% - 2 * var(--gutter)); background:var(--gz-ink); color:#fff; border:2.5px solid var(--gz-ink); border-radius:22px; box-shadow:6px 6px 0 var(--gz-lime);
  transition:translate .18s var(--gz-bounce), box-shadow .18s; }
.gzStudioCta:hover{ translate:-2px -3px; box-shadow:9px 9px 0 var(--gz-lime); }
.gzStudioCta:active{ translate:4px 4px; box-shadow:0 0 0 var(--gz-lime); }
.gzStudioCta .e{ flex:none; width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:var(--gz-lime); border:2px solid #fff; font-size:26px; animation:gzWiggle 3s ease-in-out infinite; }
.gzStudioCta b{ display:block; font-family:var(--gz-display); font-weight:800; font-size:20px; letter-spacing:-.02em; }
.gzStudioCta small{ display:block; font-size:14px; opacity:.82; margin-top:2px; }
.gzStudioCta .ar{ margin-left:auto; flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:var(--gz-lime); color:var(--gz-ink); font-size:20px; font-weight:800; }
.gzHome .brochure-row{ border-top:2px dashed rgba(10,34,48,.25); }
.gzHome .brochure-label{ color:var(--gz-ink); font-weight:800; }
.gzHome .brochure-links a{ background:#fff; color:var(--gz-ink); }
.gzHome .brochure-links a:hover{ background:var(--gz-lime-soft); border-color:var(--gz-ink); color:var(--gz-ink); }
.gzHome .portfolio-foot strong{ color:var(--gz-ink); background:linear-gradient(transparent 58%, var(--gz-lime) 58%); }

/* proof */
.gzHome .proof-visual{ border:2.5px solid var(--gz-ink); border-radius:26px; box-shadow:var(--gz-pop-lg); rotate:-1.5deg; transition:rotate .35s var(--gz-bounce); }
.gzHome .proof-visual:hover{ rotate:0deg; }
.gzHome .proof-visual-caption{ left:14px; right:auto; bottom:14px; padding:8px 14px; border:2px solid var(--gz-ink); border-radius:999px; background:#fff; color:var(--gz-ink); font-weight:700; font-size:12.5px; }
.gzHome .proof-stats{ gap:16px; }
.gzHome .proof-stat{ border:2px solid var(--gz-ink); border-radius:22px; padding:20px 20px 18px; background:var(--gz-lime-soft); box-shadow:var(--gz-pop);
  transition:opacity .9s var(--ease), transform .9s var(--ease), rotate .25s var(--gz-bounce), translate .25s var(--gz-bounce), box-shadow .2s; rotate:-1.2deg; }
.gzHome .proof-stat:nth-child(2){ background:var(--gz-sky-soft); rotate:1.2deg; }
.gzHome .proof-stat:nth-child(3){ background:var(--gz-violet-soft); rotate:-.8deg; }
.gzHome .proof-stat:nth-child(4){ background:var(--gz-pink-soft); rotate:1deg; }
.gzHome .proof-stat:hover{ rotate:0deg; translate:-2px -3px; box-shadow:var(--gz-pop-lg); }
.gzHome .proof-stat .num{ font-family:var(--gz-display); font-weight:800; font-size:54px; letter-spacing:-.05em; color:var(--gz-ink); }
.gzHome .proof-stat .lbl{ color:var(--gz-ink); font-weight:600; }

/* partners */
.gzHome .partners{ background:var(--gz-paper); padding:30px 0 110px; }
.gzHome .marquee-track{ gap:0; padding:8px 0 12px; animation-duration:55s; }
.gzHome .marquee-track img{ box-sizing:content-box; height:38px; max-width:128px; padding:12px 20px; margin-right:16px; background:#fff; border:2px solid var(--gz-ink); border-radius:16px;
  box-shadow:var(--gz-pop-sm); opacity:1; filter:none; transition:rotate .25s var(--gz-bounce), scale .25s var(--gz-bounce); }
.gzHome .marquee-track img:hover{ rotate:-4deg; scale:1.08; }
.gzHome .marquee.gzRow2{ margin-top:10px; }
.gzHome .marquee.gzRow2 .marquee-track{ animation-direction:reverse; animation-duration:66s; }
@keyframes gzChipBob{ 0%,100%{ translate:0 0; } 50%{ translate:0 -6px; } }
.gzHome .marquee-track img{ cursor:pointer; animation:gzChipBob 3.4s ease-in-out infinite; animation-delay:calc(var(--k,0) * -.38s); }
.gzHome .marquee-track img:active{ animation:gzWiggle .5s ease; }

/* process */
.gzHome .process{ background-color:var(--gz-violet-soft); background-image:radial-gradient(rgba(10,34,48,.075) 1.2px, transparent 1.2px); background-size:22px 22px; }
.gzHome .process-tabs{ gap:12px; }
.gzHome .process-tab{ border:2px solid var(--gz-ink); border-radius:18px; background:#fff; padding:14px 16px; box-shadow:var(--gz-pop-sm); color:var(--gz-ink);
  transition:translate .15s var(--gz-bounce), box-shadow .15s, background .2s, color .2s; }
.gzHome .process-tab:last-child{ border-bottom:2px solid var(--gz-ink); }
.gzHome .process-tab:hover{ translate:-2px -2px; box-shadow:4px 4px 0 var(--gz-ink); }
.gzHome .process-tab:active{ translate:2px 2px; box-shadow:0 0 0 var(--gz-ink); }
.gzHome .process-tab.is-active{ background:var(--gz-ink); color:#fff; }
.gzHome .pt-num{ flex:none; width:36px; height:36px; display:grid; place-items:center; border-radius:50%; background:var(--gz-lime); border:2px solid var(--gz-ink);
  font-family:var(--gz-display); font-weight:800; font-size:13px; color:var(--gz-ink); opacity:1; }
.gzHome .process-tab.is-active .pt-num{ color:var(--gz-ink); background:var(--gz-sun); }
.gzHome .pt-label{ font-family:var(--gz-display); font-weight:700; }
.gzHome .process-panel{ background:#fff; border:2.5px solid var(--gz-ink); border-radius:26px; padding:34px 36px; box-shadow:var(--gz-pop-lg); }
.gzHome .process-panel.is-active{ animation:gzPopIn .5s var(--gz-bounce); }
.gzHome .panel-num{ display:block; font-family:var(--gz-display); font-style:normal; font-weight:800; font-size:84px; letter-spacing:-.05em; color:transparent; -webkit-text-stroke:2px var(--gz-ink); }
.gzHome .process-panel h3{ font-size:34px; }

/* offers */
.gzHome .offers{ background-color:var(--gz-cream); }
.gzHome .offer-card{ border:2.5px solid var(--gz-ink); border-radius:26px; box-shadow:var(--gz-pop); }
.gzHome .offer-card:hover{ box-shadow:var(--gz-pop-lg); }
.gzHome .offer-card--featured{ background:var(--gz-lime); border:2.5px solid var(--gz-ink); }
.gzHome .offer-tag{ top:-16px; left:28px; background:var(--gz-sun); color:var(--gz-ink); border:2px solid var(--gz-ink); box-shadow:var(--gz-pop-sm); --r:-4deg; transform:rotate(-4deg); }
.gzHome .offer-card:hover .offer-tag{ animation:gzWiggle .9s ease-in-out; }
.gzHome .offer-index{ font-family:var(--gz-display); font-style:normal; font-weight:800; font-size:44px; line-height:1; color:transparent; -webkit-text-stroke:1.6px var(--gz-ink); }
.gzHome .offer-card--featured .offer-index{ color:transparent; }
.gzHome .offer-desc, .gzHome .offer-includes li{ color:var(--gz-ink); }
.gzHome .offer-includes li{ padding-left:30px; border-top:1.5px dashed rgba(10,34,48,.22); }
.gzHome .offer-includes li::before{ content:"✓"; left:0; top:11px; width:19px; height:19px; display:grid; place-items:center; border-radius:50%;
  background:var(--gz-lime); border:1.5px solid var(--gz-ink); color:var(--gz-ink); font-size:11px; font-weight:900; }
.gzHome .offer-card--featured .offer-includes li::before{ background:#fff; }
.gzHome .offer-card--featured .btn-solid{ background:var(--gz-ink); color:#fff; }
.gzHome .offer-card--featured .btn-solid:hover{ background:var(--gz-ink); }

/* final CTA: dark aurora */
.gzHome .final-cta{ background:var(--gz-ink); color:#fff; }
.gzHome .fc-mesh{ inset:-10%; background:radial-gradient(40% 50% at 15% 20%, rgba(184,239,69,.28), transparent 70%), radial-gradient(40% 50% at 85% 75%, rgba(124,92,255,.42), transparent 70%),
  radial-gradient(30% 40% at 60% 8%, rgba(255,92,168,.24), transparent 70%); animation:gzAurora 14s ease-in-out infinite alternate; }
.gzHome .final-cta h2{ color:#fff; }
.gzHome .final-cta .eyebrow{ background:var(--gz-lime); }
.gzHome .fc-sub{ color:rgba(255,255,255,.8); }
.gzHome .final-cta .btn-solid{ box-shadow:4px 4px 0 #fff; }
.gzHome .final-cta .btn-solid:hover{ box-shadow:6px 6px 0 #fff; }
.gzHome .final-cta .btn-ghost{ background:transparent; color:#fff; border-color:#fff; box-shadow:4px 4px 0 var(--gz-lime); }
.gzHome .final-cta .btn-ghost:hover{ background:#fff; color:var(--gz-ink); box-shadow:6px 6px 0 var(--gz-lime); }
.gzHome .final-cta .btn:active{ box-shadow:0 0 0 #fff; }
.gzHome .fc-details{ border-top:2px dashed rgba(255,255,255,.22); }
.gzHome .fc-label{ color:var(--gz-lime); font-weight:800; }
.gzHome .fc-detail span, .gzHome .fc-detail a{ color:rgba(255,255,255,.86); }
.gzHome .fc-detail a:hover{ color:var(--gz-lime); }

/* footer */
.gzHome .site-footer{ background:var(--gz-cream); border-top:2.5px solid var(--gz-ink); overflow:hidden; }
.gzHome .footer-brand img{ height:72px; }
.gzHome .footer-heading{ color:var(--gz-ink); font-weight:800; letter-spacing:.1em; }
.gzHome .footer-col a, .gzHome .footer-col span{ color:var(--gz-ink); }
.gzHome .footer-col a:hover{ color:var(--gz-ink); background:linear-gradient(transparent 58%, var(--gz-lime) 58%); }
.gzWord{ font-family:var(--gz-display); font-weight:800; font-size:clamp(70px,17vw,250px); letter-spacing:-.06em; line-height:.82; text-align:center; white-space:nowrap;
  margin:26px 0 -.06em; color:transparent; -webkit-text-fill-color:transparent; user-select:none; filter:drop-shadow(5px 5px 0 var(--gz-ink));
  background:var(--gz-grad) no-repeat; background-size:0% 100%; -webkit-background-clip:text; background-clip:text; transition:background-size 1.8s cubic-bezier(.6,0,.2,1) .2s; }
.gzWord.is-visible{ background-size:100% 100%; }

/* mobile bar + WhatsApp */
.gzHome .sticky-bar{ border-top:2.5px solid var(--gz-ink); }
.gzHome .sticky-btn{ font-family:var(--gz-display); font-weight:800; }
.gzHome .sticky-call{ background:var(--gz-ink); }
.gzHome .sticky-wa{ background:var(--gz-lime); color:var(--gz-ink); }
.gzHome .whatsapp-fab{ border:2.5px solid var(--gz-ink); box-shadow:var(--gz-pop); animation:gzBob 3.4s ease-in-out infinite; }
.gzHome .whatsapp-fab:hover{ box-shadow:6px 6px 0 var(--gz-ink); }

@media (max-width:980px){ .gzHome .proof-visual{ rotate:0deg; } }
@media (max-width:720px){
  .gzHome .hero{ padding-bottom:96px; }
  .gzHome .slogan-banner{ padding-top:100px; }
  .gzHome .portfolio{ padding-top:110px; }
  .gzHome .process-panel{ padding:26px 22px; }
  .gzHome .panel-num{ font-size:64px; }
  .gzHome .proof-stat .num{ font-size:40px; }
  .gzStudioCta{ padding:14px; gap:12px; } .gzStudioCta .e{ width:44px; height:44px; font-size:22px; } .gzStudioCta b{ font-size:17px; } .gzStudioCta small{ font-size:12.5px; }
  .gzStudioCta .ar{ width:36px; height:36px; }
}
@media (max-width:520px){
  .gzHome .portfolio-grid{ gap:14px; }
  .gzHome .product-card{ border-radius:18px; box-shadow:3px 3px 0 var(--gz-ink); }
  .gzHome .product-body{ padding:14px 12px 14px; }
  .gzHome .product-body h3{ font-size:16px; }
  .gzHome .product-body ul li{ font-size:12px; padding:6px 0; }
  .gzChip{ font-size:10px; padding:2px 7px; top:7px; left:7px; }
  .gzSticker{ font-size:9.5px; padding:3px 7px; top:7px; right:7px; }
  .gzNoPh b{ font-size:42px; } .gzNoPh em{ font-size:17px; } .gzNoPh small{ font-size:10.5px; }
}

/* ---------- RBC theme: live red blood cells ---------- */
.gzRbc{ position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none; }
.gzHome .hero .gzRbc{ z-index:1; }
.gzHome .cell-drift{ display:none; }
.gzHome .slogan-banner .gzRbc{ z-index:0; }
.gzHome .slogan-banner::after{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(10,34,48,.88) 0%, rgba(10,34,48,.6) 42%, rgba(10,34,48,.14) 100%); }
.gzHome .final-cta .gzRbc{ z-index:0; }
.gzHome .fc-inner{ z-index:1; }

/* ---------- spotlight: our analyzers department by department, each with its own tint, accent and particles ---------- */
@property --sb2{ syntax:'<color>'; inherits:false; initial-value:#fff3f3; }
@property --sb3{ syntax:'<color>'; inherits:false; initial-value:#ffe3e6; }
.gzSpot{ --sb2:#fff3f3; --sb3:#ffe3e6; --sacc:#d4141c; position:relative; overflow:hidden; padding:110px var(--gutter) 96px; border-block:2.5px solid var(--gz-ink);
  background:radial-gradient(60% 80% at 28% 55%, #ffffff 0%, var(--sb2) 52%, var(--sb3) 100%); transition:--sb2 .9s ease, --sb3 .9s ease; }
.gzSpot[data-fam="bio"]{ --sb2:#eefaff; --sb3:#d6eefc; --sacc:#0077b6; }
.gzSpot[data-fam="imm"]{ --sb2:#f6f1ff; --sb3:#e6daff; --sacc:#7b2ff7; }
.gzSpot[data-fam="a1c"]{ --sb2:#fff8ec; --sb3:#ffe6bf; --sacc:#c2410c; }
.gzSpot[data-fam="ele"]{ --sb2:#eefff7; --sb3:#d2f4e4; --sacc:#0a7f7f; }
.gzSpot[data-fam="coa"]{ --sb2:#fff3f1; --sb3:#f7dbe6; --sacc:#a4167f; }
.gzSpot .gzRbc{ z-index:0; transition:opacity .26s ease; }
.gzSpot .gzRbc--front{ z-index:4; inset:auto; top:-8%; left:-10%; width:120%; height:108%; }
.gzSpotIn{ position:relative; z-index:2; max-width:var(--container); margin:0 auto; display:grid; grid-template-columns:1.05fr 1fr; gap:40px; align-items:center; }
.gzSpotStage{ position:relative; height:clamp(340px,40vw,520px); touch-action:pan-y; }
.gzSpotHalo{ position:absolute; left:50%; top:50%; width:84%; aspect-ratio:1/1; translate:-50% -50%; border-radius:50%; pointer-events:none;
  background:radial-gradient(closest-side, rgba(255,255,255,.96), rgba(255,255,255,.72) 58%, rgba(255,255,255,0)); }
.gzPedestal{ position:absolute; left:50%; bottom:8%; width:min(76%,440px); height:78px; translate:-50% 0; }
.gzPedestal::before{ content:""; position:absolute; left:0; right:0; top:24px; bottom:0; border:2.5px solid var(--gz-ink); border-top:0; border-radius:0 0 50% 50% / 0 0 34px 34px;
  background:linear-gradient(90deg, #e7ece4, #ffffff 38%, #f4f7f1 62%, #dce4d9); }
.gzPedestal::after{ content:""; position:absolute; left:0; right:0; top:0; height:48px; border:2.5px solid var(--gz-ink); border-radius:50%;
  background:radial-gradient(60% 70% at 50% 40%, #ffffff, #f2fbe2 70%, #e0f5c0); animation:gzGlow 3s ease-in-out infinite; }
@keyframes gzGlow{ 0%,100%{ box-shadow:0 0 0 6px rgba(184,239,69,.32), 0 0 36px 8px color-mix(in srgb, var(--sacc) 14%, transparent); } 50%{ box-shadow:0 0 0 12px rgba(184,239,69,.12), 0 0 64px 18px color-mix(in srgb, var(--sacc) 26%, transparent); } }
.gzSpotMachines{ position:absolute; left:10%; right:10%; top:3%; bottom:calc(8% + 50px); animation:gzBob 5.5s ease-in-out infinite; }
.gzSpotMachines img{ position:absolute; left:50%; bottom:0; max-width:100%; max-height:100%; width:auto; height:auto; translate:-50% 0; opacity:0; pointer-events:none;
  transform:translateY(60px) scale(.6) rotate(8deg); transform-origin:50% 100%; filter:drop-shadow(0 26px 22px rgba(10,34,48,.26));
  transition:opacity .4s ease, transform .75s var(--gz-bounce); }
.gzSpotMachines img.on{ opacity:1; transform:none; }
.gzSpotMachines img.off{ opacity:0; transform:translateY(10px) scale(.82) rotate(-10deg); transition-duration:.35s; }
.gzSpotPart{ position:absolute; top:5%; right:3%; z-index:3; width:118px; height:118px; border-radius:50%; display:grid; place-items:center; align-content:center; gap:2px;
  background:var(--gz-sun); color:var(--gz-ink); border:2.5px solid var(--gz-ink); box-shadow:var(--gz-pop); rotate:10deg; }
.gzSpotPart b{ font:800 56px/.9 var(--gz-display); letter-spacing:-.05em; }
.gzSpotPart span{ font:800 12px/1 var(--gz-display); letter-spacing:.24em; padding-left:.24em; }
.gzSpotPart.gzFlip{ animation:gzFlip .7s var(--gz-bounce); }
.gzSpotPart.long b{ font-size:30px; letter-spacing:-.03em; }
@keyframes gzFlip{ 0%{ transform:rotateY(0) scale(1); } 40%{ transform:rotateY(90deg) scale(.8); } 100%{ transform:rotateY(0) scale(1); } }
.gzSpotText{ position:relative; z-index:2; background:rgba(255,255,255,.86); border:2.5px solid var(--gz-ink); border-radius:28px; padding:30px 30px 28px; box-shadow:var(--gz-pop-lg); }
.gzSpotText h2{ font-family:var(--gz-display); font-weight:800; font-size:clamp(42px,5.8vw,80px); line-height:.98; letter-spacing:-.045em; color:var(--gz-ink); margin:4px 0 18px; }
.gzSpot .accent-serif, .gzSpot .gzG{ background-image:linear-gradient(92deg, var(--sacc) 0%, #ff4d6d 45%, #7c5cff 85%, var(--sacc) 100%); }
.gzSpotLede.gzSwap{ animation:gzSwapIn .45s var(--gz-bounce); }
.gzSpotLede{ font-size:17px; line-height:1.6; color:var(--ink-70); max-width:480px; }
.gzSpotTabs{ display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 16px; }
.gzSpotTabs button{ display:inline-flex; align-items:center; gap:6px; border:2px solid var(--gz-ink); background:#fff; border-radius:999px; padding:8px 13px; box-shadow:var(--gz-pop-sm);
  font:800 13px/1 var(--gz-display); color:var(--gz-ink); cursor:pointer; transition:background .25s, color .25s, translate .15s var(--gz-bounce), box-shadow .15s; }
.gzSpotTabs button i{ font-style:normal; font-size:15px; line-height:1; }
.gzSpotTabs button:hover{ translate:-1px -2px; box-shadow:3px 4px 0 var(--gz-ink); }
.gzSpotTabs button:active{ translate:2px 2px; box-shadow:0 0 0 var(--gz-ink); }
.gzSpotTabs button.on{ background:var(--sacc); color:#fff; }
.gzSpotInfo{ display:flex; flex-direction:column; gap:3px; margin-bottom:22px; min-height:52px; }
.gzSpotInfo.gzSwap{ animation:gzSwapIn .45s var(--gz-bounce); }
.gzSpotName{ font:800 25px/1.15 var(--gz-display); letter-spacing:-.025em; color:var(--gz-ink); }
.gzSpotSub{ font-weight:700; color:var(--sacc); font-size:14px; }
.gzSpotActs{ display:flex; flex-wrap:wrap; gap:12px; }
.gzHome .gzSpot .btn-solid{ background:var(--sacc); color:#fff; }
.gzHome .gzSpot .btn-solid:hover{ background:var(--sacc); }
@media (max-width:900px){
  .gzSpot{ padding:84px var(--gutter) 70px; }
  .gzSpotIn{ grid-template-columns:1fr; gap:6px; }
  .gzSpotStage{ order:-1; height:clamp(290px,80vw,420px); }
  .gzSpotPart{ width:90px; height:90px; } .gzSpotPart b{ font-size:42px; } .gzSpotPart span{ font-size:10px; } .gzSpotPart.long b{ font-size:22px; }
  .gzSpotTabs button{ padding:7px 10px; font-size:12px; }
  .gzSpotText{ padding:22px 18px 20px; border-radius:22px; box-shadow:var(--gz-pop); }
}

/* ---------- colour themes (🎨 in the header; Lime Pop is the default) ---------- */
html[data-gz-theme="whatsapp"]{
  --gz-ink:#111b21; --gz-ink2:#1f2c33; --gz-paper:#fbfaf6; --gz-cream:#efeae2; --gz-teal:#075e54; --gz-blue:#075e54; --gz-green:#25d366;
  --gz-lime:#25d366; --gz-lime-soft:#dcf8c6; --gz-sky:#34b7f1; --gz-sky-soft:#e1f3fb; --gz-violet:#075e54; --gz-violet-soft:#d9efea;
  --gz-pink:#ff6b6b; --gz-pink-soft:#ffe3e1; --gz-sun:#ffd279; --gz-sun-soft:#fff4d6;
  --gz-grad:linear-gradient(92deg,#075e54 0%,#128c7e 36%,#25d366 70%,#075e54 100%); --gz-grad-dark:linear-gradient(92deg,#dcf8c6 0%,#25d366 40%,#34b7f1 75%,#dcf8c6 100%); }
html[data-gz-theme="instagram"]{
  --gz-ink:#2a0f2e; --gz-ink2:#43173f; --gz-paper:#fffafc; --gz-cream:#fff1f6; --gz-teal:#c13584; --gz-blue:#833ab4; --gz-green:#22c55e;
  --gz-lime:#fdbb5c; --gz-lime-soft:#ffefd6; --gz-sky:#4f5bd5; --gz-sky-soft:#e5e8ff; --gz-violet:#d62976; --gz-violet-soft:#fde1ee;
  --gz-pink:#962fbf; --gz-pink-soft:#f3e2fb; --gz-sun:#feda75; --gz-sun-soft:#fff6d6;
  --gz-grad:linear-gradient(92deg,#fa7e1e 0%,#d62976 35%,#962fbf 65%,#4f5bd5 100%); --gz-grad-dark:linear-gradient(92deg,#feda75 0%,#fa7e1e 35%,#d62976 70%,#962fbf 100%); }
html[data-gz-theme="bubblegum"]{
  --gz-ink:#2b0b2b; --gz-ink2:#4a1a4a; --gz-paper:#fffaff; --gz-cream:#fff0fa; --gz-teal:#d6338a; --gz-blue:#a3216a; --gz-green:#22c55e;
  --gz-lime:#ff9ad5; --gz-lime-soft:#ffe3f3; --gz-sky:#8fd3ff; --gz-sky-soft:#e3f4ff; --gz-violet:#3d7bff; --gz-violet-soft:#e5ecff;
  --gz-pink:#ff3fa4; --gz-pink-soft:#ffd9ee; --gz-sun:#fff36b; --gz-sun-soft:#fffbd1;
  --gz-grad:linear-gradient(92deg,#ff3fa4 0%,#a855f7 36%,#3d7bff 70%,#ff3fa4 100%); --gz-grad-dark:linear-gradient(92deg,#ff9ad5 0%,#8fd3ff 40%,#fff36b 75%,#ff9ad5 100%); }
html[data-gz-theme="cyber"]{
  --gz-ink:#14002e; --gz-ink2:#2a0a52; --gz-paper:#fbfaff; --gz-cream:#f1f0ff; --gz-teal:#7b2ff7; --gz-blue:#5a14c9; --gz-green:#00c49a;
  --gz-lime:#5ef2ff; --gz-lime-soft:#dcfcff; --gz-sky:#00b3ff; --gz-sky-soft:#dff4ff; --gz-violet:#ff2bd6; --gz-violet-soft:#ffe0f8;
  --gz-pink:#ff5c8a; --gz-pink-soft:#ffe3ec; --gz-sun:#fff35c; --gz-sun-soft:#fffbd6;
  --gz-grad:linear-gradient(92deg,#7b2ff7 0%,#ff2bd6 36%,#00b3ff 70%,#7b2ff7 100%); --gz-grad-dark:linear-gradient(92deg,#5ef2ff 0%,#ff8bea 40%,#fff35c 75%,#5ef2ff 100%); }
html[data-gz-theme="lavender"]{
  --gz-ink:#241a3a; --gz-ink2:#3a2c5c; --gz-paper:#fdfcff; --gz-cream:#f5f1ff; --gz-teal:#7048e8; --gz-blue:#5b3cc4; --gz-green:#2fb380;
  --gz-lime:#cdb8ff; --gz-lime-soft:#f0e9ff; --gz-sky:#9ad8ff; --gz-sky-soft:#e6f6ff; --gz-violet:#8a5cff; --gz-violet-soft:#ece5ff;
  --gz-pink:#ff9ecd; --gz-pink-soft:#ffe6f2; --gz-sun:#ffd6a5; --gz-sun-soft:#fff2e0;
  --gz-grad:linear-gradient(92deg,#7048e8 0%,#c45cff 36%,#ff7eb6 70%,#7048e8 100%); --gz-grad-dark:linear-gradient(92deg,#cdb8ff 0%,#9ad8ff 40%,#ffd6a5 75%,#cdb8ff 100%); }
html[data-gz-theme="peach"]{
  --gz-ink:#2e1510; --gz-ink2:#4d261c; --gz-paper:#fffaf6; --gz-cream:#fff1e8; --gz-teal:#e8573f; --gz-blue:#b8432f; --gz-green:#2bb39a;
  --gz-lime:#ffbe98; --gz-lime-soft:#ffe9dc; --gz-sky:#7fd8be; --gz-sky-soft:#e0f7ef; --gz-violet:#ff6f61; --gz-violet-soft:#ffe3df;
  --gz-pink:#ff8fab; --gz-pink-soft:#ffe4ec; --gz-sun:#ffe29a; --gz-sun-soft:#fff6dc;
  --gz-grad:linear-gradient(92deg,#ff6f61 0%,#ff8fab 36%,#2bb39a 70%,#ff6f61 100%); --gz-grad-dark:linear-gradient(92deg,#ffbe98 0%,#7fd8be 40%,#ffe29a 75%,#ffbe98 100%); }
html[data-gz-theme="cherry"]{
  --gz-ink:#2a0a12; --gz-ink2:#4a1622; --gz-paper:#fffaf8; --gz-cream:#fff0ee; --gz-teal:#c1121f; --gz-blue:#8f0f22; --gz-green:#e01e5a;
  --gz-lime:#ff8a8a; --gz-lime-soft:#ffe2e2; --gz-sky:#ff9e7a; --gz-sky-soft:#ffece4; --gz-violet:#e01e5a; --gz-violet-soft:#fde3ec;
  --gz-pink:#ff4f9a; --gz-pink-soft:#ffe0ee; --gz-sun:#ffd166; --gz-sun-soft:#fff3d1;
  --gz-grad:linear-gradient(92deg,#c1121f 0%,#ff4f9a 36%,#ff8a3d 68%,#c1121f 100%); --gz-grad-dark:linear-gradient(92deg,#ffb3c1 0%,#ffd166 40%,#ff8a8a 75%,#ffb3c1 100%); }
html[data-gz-theme="ocean"]{
  --gz-ink:#062635; --gz-ink2:#0d3a4f; --gz-paper:#fbfdfe; --gz-cream:#eef7fa; --gz-teal:#0e5b78; --gz-blue:#0a4660; --gz-green:#1fa855;
  --gz-lime:#8cc63f; --gz-lime-soft:#e8f5d8; --gz-sky:#2aa3c8; --gz-sky-soft:#dcf1f8; --gz-violet:#0e5b78; --gz-violet-soft:#e1edf3;
  --gz-pink:#ff7a59; --gz-pink-soft:#ffe7df; --gz-sun:#ffd23f; --gz-sun-soft:#fff4cc;
  --gz-grad:linear-gradient(92deg,#0e5b78 0%,#2aa3c8 38%,#1fa855 72%,#0e5b78 100%); --gz-grad-dark:linear-gradient(92deg,#b8ef45 0%,#5fd3f3 42%,#8cc63f 76%,#b8ef45 100%); }
html[data-gz-theme="grape"]{
  --gz-ink:#1b1035; --gz-ink2:#2e1f56; --gz-paper:#fdfbff; --gz-cream:#f5f0ff; --gz-teal:#6d28d9; --gz-blue:#4c1d95; --gz-green:#10b981;
  --gz-lime:#6ee7b7; --gz-lime-soft:#d9fbe9; --gz-sky:#60a5fa; --gz-sky-soft:#dbeafe; --gz-violet:#8b5cf6; --gz-violet-soft:#ede9fe;
  --gz-pink:#f472b6; --gz-pink-soft:#fce7f3; --gz-sun:#fde047; --gz-sun-soft:#fef9c3;
  --gz-grad:linear-gradient(92deg,#7c3aed 0%,#db2777 36%,#2563eb 70%,#7c3aed 100%); --gz-grad-dark:linear-gradient(92deg,#6ee7b7 0%,#c4b5fd 40%,#f9a8d4 75%,#6ee7b7 100%); }
html[data-gz-theme="sunset"]{
  --gz-ink:#2b1406; --gz-ink2:#4a250e; --gz-paper:#fffbf5; --gz-cream:#fff3e3; --gz-teal:#c2410c; --gz-blue:#9a3412; --gz-green:#16a34a;
  --gz-lime:#ffb347; --gz-lime-soft:#ffecd2; --gz-sky:#4cc9f0; --gz-sky-soft:#dff5fc; --gz-violet:#ff5f1f; --gz-violet-soft:#ffe4d6;
  --gz-pink:#ff4d8d; --gz-pink-soft:#ffe1ec; --gz-sun:#ffe066; --gz-sun-soft:#fff6cc;
  --gz-grad:linear-gradient(92deg,#ff5f1f 0%,#ff4d8d 36%,#7b2cbf 70%,#ff5f1f 100%); --gz-grad-dark:linear-gradient(92deg,#ffd166 0%,#ff9e5e 40%,#ff7eb3 75%,#ffd166 100%); }

/* glows that follow the theme (browsers without color-mix keep the Lime Pop glows above) */
.gzHome .hero{ background:radial-gradient(60% 55% at 92% 6%, color-mix(in srgb, var(--gz-lime) 45%, transparent), transparent 62%),
  radial-gradient(55% 50% at 0% 100%, color-mix(in srgb, var(--gz-sky) 28%, transparent), transparent 62%),
  radial-gradient(45% 45% at 45% 45%, color-mix(in srgb, var(--gz-violet) 10%, transparent), transparent 70%), var(--gz-paper); }
.gzHome .slogan-mesh{ background:radial-gradient(circle at 18% 30%, color-mix(in srgb, var(--gz-lime) 22%, transparent), transparent 55%),
  radial-gradient(circle at 85% 80%, color-mix(in srgb, var(--gz-violet) 38%, transparent), transparent 55%),
  radial-gradient(circle at 62% 8%, color-mix(in srgb, var(--gz-sky) 18%, transparent), transparent 50%); }
.gzHome .fc-mesh{ background:radial-gradient(40% 50% at 15% 20%, color-mix(in srgb, var(--gz-lime) 28%, transparent), transparent 70%),
  radial-gradient(40% 50% at 85% 75%, color-mix(in srgb, var(--gz-violet) 42%, transparent), transparent 70%),
  radial-gradient(30% 40% at 60% 8%, color-mix(in srgb, var(--gz-pink) 24%, transparent), transparent 70%); }
.gzHome .hero-sub strong{ background:linear-gradient(transparent 58%, color-mix(in srgb, var(--gz-lime) 90%, transparent) 58%); }
.gzRingView{ background:radial-gradient(80% 60% at 50% 115%, color-mix(in srgb, var(--gz-violet) 22%, transparent), transparent 60%),
  radial-gradient(60% 50% at 50% -12%, color-mix(in srgb, var(--gz-lime) 38%, transparent), transparent 60%), #fff; }
.gzExpView{ background:radial-gradient(70% 55% at 50% 45%, #ffffff 0%, var(--gz-cream) 55%, color-mix(in srgb, var(--gz-cream) 88%, var(--gz-ink)) 100%); }
.gzExpFog{ background:radial-gradient(65% 55% at 50% 50%, transparent 55%, color-mix(in srgb, var(--gz-cream) 85%, transparent) 100%); }

/* calm mode: keep it still for people who ask their device for less motion */
@media (prefers-reduced-motion:reduce){
  .gzW, .gzW.gzG{ animation:none !important; opacity:1 !important; }
  .gzTrack, .gzBadge svg, .gzBadge > span, .gzPillIc, .gzFloat, .gzSticker, .gzNoPh b, .gzHome .eyebrow::before, .gzHome .whatsapp-fab,
  .gzHome .phStudioBtn .ic, .gzHome .fc-mesh, .gzHome .slogan-mesh, .gzStudioCta .e, .gzHome .pf-tab.is-active i, .gzHome .process-panel.is-active,
  .gzHome .gzTilt .product-card.is-shown, .gzSpotMachines, .gzPedestal::after, .gzRingHint, .gzExpHint, .gzQVCard.gzIn, .gzQVCard.gzIn .gzQVMedia img{ animation:none !important; }
  .gzSpotMachines img{ transition:none; }
  .gzHome .marquee-track img{ animation:none !important; }
  .gzJs .gzRv{ opacity:1; transform:none; transition:none; }
  .gzWord{ background-size:100% 100%; transition:none; }
}

/* Ring / Explore: second half of the departments sits under the machines */
.portfolio-tabs.gzTabs2{ margin-top:18px; }
.portfolio-tabs.gzTabs2[hidden]{ display:none !important; }
/* machine photos never stretch their card: the picture is fitted inside a fixed square frame */
.gzRCard, .gzECard{ position:relative; overflow:hidden; min-height:0; }
.gzRCard > img{ position:absolute; inset:14px; width:calc(100% - 28px); height:calc(100% - 28px); }
.gzECard > img{ position:absolute; inset:16px; width:calc(100% - 32px); height:calc(100% - 32px); }
