/* site.css — зібрано з design-source helmet-стилів (tools/extract_css.py), дедупльовано. НЕ редагувати вручну — перегенерувати з дизайну. */

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; background: #060606; }

::selection { background: #E111F8; color: #060606; }

@keyframes gm-up {
    from { opacity: 0; transform: translateY(60px); }
    to   { opacity: 1; transform: translateY(0); }
  }

@keyframes gm-fade {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
  }

@keyframes gm-art {
    from { opacity: 0; transform: scale(0.96); }
    to   { opacity: 1; transform: scale(1); }
  }

@keyframes gm-splash {
    from { opacity: 0; transform: scale(1.12) rotate(-4deg); }
    to   { opacity: 0.85; transform: scale(1) rotate(0deg); }
  }

@keyframes gm-bob {
    0%,100% { transform: translateY(0); }
    50%     { transform: translateY(9px); }
  }

@keyframes gm-dot {
    0%,100% { transform: scale(1); }
    50%     { transform: scale(1.18); }
  }

/* nav underline — needs :hover::after, can't be inline */
  .gm-nav a { position: relative; text-decoration: none; }

.gm-nav a::after {
    content: ""; position: absolute; left: 0; bottom: -6px;
    height: 2px; width: 100%; background: #E111F8;
    transform: scaleX(0); transform-origin: left center;
    transition: transform .32s cubic-bezier(.2,.8,.2,1);
  }

.gm-nav a:hover { color: #fff; }

.gm-nav a:hover::after { transform: scaleX(1); }

.gm-header { transition: background .3s ease, backdrop-filter .3s ease; }

.gm-scrolled { background: rgba(9,9,9,0.82); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }

.gm-logo:hover .gm-dot { animation: gm-dot .5s cubic-bezier(.2,.8,.2,1); }

.gm-cta { transition: background .28s ease, color .28s ease, box-shadow .28s ease, transform .1s ease; }

.gm-cta:hover { background: #E111F8; color: #060606 !important; box-shadow: 0 0 40px rgba(225,17,248,.35); transform: scale(1.03); }

.gm-cta:active { transform: translateY(1px); }

.gm-primary { transition: filter .25s ease, box-shadow .25s ease, transform .12s cubic-bezier(.2,.8,.2,1); }

.gm-primary:hover { filter: brightness(1.12) saturate(1.08); box-shadow: 0 0 46px rgba(225,17,248,.42); }

.gm-secondary { transition: background .25s ease, border-color .25s ease, transform .12s cubic-bezier(.2,.8,.2,1); }

.gm-secondary:hover { background: rgba(255,255,255,.05); border-color: #6a6a6a; }

/* scroll reveal */
  .reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s cubic-bezier(.2,.8,.2,1), transform .75s cubic-bezier(.2,.8,.2,1); }

.reveal.rl { transform: translateX(-46px); }

.reveal[data-revealed] { opacity: 1; transform: none; }

/* client logos */
  .gm-logo-item { opacity: .45; transition: opacity .25s ease, transform .25s ease; }

.gm-logo-item:hover { opacity: 1; transform: scale(1.03); filter: drop-shadow(0 0 14px rgba(225,17,248,.55)); }

/* services list rows */
  .gm-srow { transition: background .25s ease, padding-left .25s ease; }

.gm-srow:hover { background: rgba(255,255,255,.03); padding-left: 30px !important; }

.gm-arrow { transform: translateX(-14px); opacity: 0; transition: transform .32s cubic-bezier(.2,.8,.2,1), opacity .3s ease; }

.gm-srow:hover .gm-arrow { transform: translateX(0); opacity: 1; }

.gm-srow:hover .gm-stitle { color: #fff; }

/* character crossfade */
  .gm-pose { opacity: 0; transition: opacity .55s cubic-bezier(.2,.8,.2,1); }

.gm-pose.on { opacity: 1; }

/* case posters */
  .gm-poster { transition: transform .38s cubic-bezier(.2,.8,.2,1), box-shadow .38s ease, border-color .38s ease; }

.gm-poster:hover { transform: translateY(-8px); box-shadow: 0 20px 60px rgba(225,17,248,.15); border-color: rgba(225,17,248,.4); }

.gm-poster-img { transition: transform .55s cubic-bezier(.2,.8,.2,1); }

.gm-poster:hover .gm-poster-img { transform: scale(1.05); }

.gm-poster:hover .gm-view { color: #E111F8; gap: 12px; }

.gm-view { transition: color .25s ease, gap .25s ease; }

/* process comic */
  .gm-comic { transition: transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s ease; }

.gm-comic:hover { transform: translateY(-8px) rotate(-2deg); border-color: rgba(225,17,248,.4); }

/* value rows */
  .gm-value { transition: transform .25s ease; }

.gm-value:hover { transform: translateX(4px); }

.gm-value:hover .gm-vring { border-color: #E111F8; }

/* final CTA button on gradient */
  .gm-cta-dark { transition: transform .12s ease, box-shadow .28s ease; }

.gm-cta-dark:hover { box-shadow: 0 0 50px rgba(0,0,0,.45); transform: translateY(-2px) scale(1.03); }

.gm-cta-dark:active { transform: translateY(1px); }

/* footer links */
  .gm-flink { transition: color .22s ease; }

.gm-flink:hover { color: #E111F8 !important; }

.gm-social { transition: background .22s ease, border-color .22s ease, color .22s ease; }

.gm-social:hover { background: #E111F8; border-color: #E111F8; color: #090909 !important; }

@keyframes gm-head {
    0%,100% { transform: rotate(0deg); }
    50% { transform: rotate(-2.5deg); }
  }

@keyframes gm-steam {
    0% { opacity: 0; transform: translateY(6px) scaleY(.9); }
    40% { opacity: 1; }
    100% { opacity: 0; transform: translateY(-24px) scaleY(1.2); }
  }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    .reveal { opacity: 1 !important; transform: none !important; }
  }

/* CTA channels */
  .gm-chan { transition: transform .18s ease, box-shadow .25s ease, filter .2s ease; }

.gm-chan:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,.35); }

.gm-chan-primary:hover { filter: brightness(1.08) saturate(1.05); box-shadow: 0 12px 34px rgba(225,17,248,.4); }

@media (max-width: 1024px) {
    [data-screen-label="Final CTA"] > div:nth-child(3) { grid-template-columns: 1fr !important; gap: 40px !important; }
  }

@media (max-width: 768px) { .gm-cta-arrow { display: none !important; } }

/* cases carousel */
  [data-screen-label="Featured cases"]::before,
  [data-screen-label="Featured cases"]::after {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    background-repeat: no-repeat;
    background-size: contain;
  }

  [data-screen-label="Featured cases"]::before {
    left: -118px;
    top: 96px;
    width: 250px;
    height: 360px;
    background-image: url('/static/icons/drops-a.svg');
    opacity: .34;
  }

  [data-screen-label="Featured cases"]::after {
    right: -130px;
    bottom: 56px;
    width: 320px;
    height: 460px;
    background-image: url('/static/icons/drops-b.svg');
    opacity: .32;
    transform: scaleX(-1);
  }

  [data-screen-label="Featured cases"] > div {
    position: relative;
    z-index: 1;
  }

  .gm-case-track { scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth; }

.gm-case-track::-webkit-scrollbar { display: none; }

.gm-case-slide { flex: 0 0 40%; scroll-snap-align: center; transition: opacity .35s ease; }

.gm-case-slide .gm-poster { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }

.gm-case-slide:not(.is-active) { opacity: .88; }

.gm-case-slide.is-active .gm-poster { transform: scale(1.03); box-shadow: 0 20px 60px rgba(225,17,248,.18); }

.gm-carousel-btn { width: 56px; height: 56px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: transparent; color: #F5F5F5; font-size: 26px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color .2s ease, background .2s ease, transform .15s ease; }

.gm-carousel-btn:hover { border-color: #E111F8; background: rgba(225,17,248,.12); }

.gm-carousel-btn:active { transform: scale(.94); }

@media (max-width: 900px) { .gm-case-slide { flex: 0 0 62% !important; } }

@media (max-width: 1024px) {
    [data-screen-label="Featured cases"]::before { left: -150px; opacity: .24; }
    [data-screen-label="Featured cases"]::after { right: -180px; opacity: .22; }
  }

@media (max-width: 560px) { .gm-case-slide { flex: 0 0 86% !important; } }

/* testimonials carousel */
  .gm-tst-track { transition: transform .55s cubic-bezier(.2,.8,.2,1); }

.gm-tst-stage { cursor: grab; }

.gm-tst-stage.grabbing { cursor: grabbing; }

.gm-tst-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; width: 52px; height: 52px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: #0B0B0D; color: #F5F5F5; font-size: 24px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: border-color .2s ease, background .2s ease, color .2s ease, transform .15s ease; }

.gm-tst-arrow:hover { border-color: #E111F8; background: rgba(225,17,248,.14); color: #fff; }

.gm-tst-arrow:active { transform: translateY(-50%) scale(.92); }

.gm-tst-dot { width: 9px; height: 9px; padding: 0; border: none; border-radius: 999px; background: #3a3a40; cursor: pointer; transition: background .25s ease, width .3s cubic-bezier(.2,.8,.2,1); }

.gm-tst-dot:hover { background: #6a6a72; }

.gm-tst-dot.on { background: #E111F8; width: 26px; }

.gm-tst-ico { flex: none; width: 26px; height: 26px; display: block; }

.gm-tst-ico svg { width: 26px; height: 26px; display: block; }

.gm-tst-info { transition: transform .2s ease; }

.gm-view-all { position: relative; }

.gm-view-all::after { content: ""; position: absolute; left: 0; bottom: -4px; height: 1.5px; width: 100%; background: #E111F8; transform: scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }

.gm-view-all:hover::after { transform: scaleX(1); }

.gm-view-case { position: relative; transition: gap .2s ease; }

.gm-view-case:hover { gap: 12px; }

.gm-view-case::after { content: ""; position: absolute; left: 0; bottom: -4px; height: 1.5px; width: calc(100% - 22px); background: currentColor; transform: scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }

.gm-view-case:hover::after { transform: scaleX(1); }

.gm-typing-bubble { display: inline-flex; align-items: center; gap: 5px; background: #1C1C21; border-radius: 16px 16px 16px 6px; padding: 15px 18px; }

.gm-typing-bubble span { width: 7px; height: 7px; border-radius: 999px; background: rgba(245,245,245,.55); animation: gm-typing 1.2s ease-in-out infinite; }

.gm-typing-bubble span:nth-child(2) { animation-delay: .18s; }

.gm-typing-bubble span:nth-child(3) { animation-delay: .36s; }

@keyframes gm-typing { 0%,60%,100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-5px); opacity: 1; } }

.gm-reply { animation: gm-reply-in .45s cubic-bezier(.2,.8,.2,1) both; }

@keyframes gm-reply-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ===================== RESPONSIVE ===================== */
  html, body { overflow-x: hidden; max-width: 100%; }

img, svg, video { max-width: 100%; }

.gm-hero-title { font-size: clamp(64px, 13vw, 150px); }

@media (max-width: 1440px) {
    [data-screen-label="Hero"] > div:first-child { right: -210px !important; width: 900px !important; }
  }

@media (max-width: 1280px) {
    [data-screen-label="Hero"] { height: 840px !important; }
    [data-screen-label="Hero"] > div:first-child { width: 780px !important; height: 700px !important; right: -150px !important; }
  }

@media (max-width: 1024px) {
    /* ---- header / burger ---- */
    .gm-nav { display: none !important; }
    .gm-header > .gm-cta { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav {
      display: flex !important; position: fixed; left: 0; right: 0; top: 96px; z-index: 60;
      flex-direction: column; align-items: flex-start; gap: 22px;
      background: rgba(9,9,9,.97); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
      padding: 28px clamp(20px,5vw,48px); border-bottom: 1px solid rgba(255,255,255,.08);
    }
    /* ---- hero stack ---- */
    [data-screen-label="Hero"] { height: auto !important; display: flex; flex-direction: column; padding-top: 32px !important; padding-bottom: 56px !important; }
    [data-screen-label="Hero"] > div:first-child { position: relative !important; right: auto !important; top: auto !important; order: 2; width: 100% !important; height: min(84vw, 560px) !important; margin-top: 8px; }
    [data-screen-label="Hero"] > div:last-child { position: relative !important; order: 1; width: 100% !important; padding-top: 8px !important; }
    /* ---- services ---- */
    [data-screen-label="What we do"] > div { grid-template-columns: 1fr !important; gap: 36px !important; }
    [data-screen-label="What we do"] > div > div:last-child { min-height: 0 !important; }
    [data-screen-label="What we do"] img { display: none !important; }
    /* ---- about / testimonials ---- */
    [data-screen-label="About"] > div { grid-template-columns: 1fr !important; gap: 8px !important; }
    /* ---- testimonials: TABLET = 2 rows (left+carousel / trust) ---- */
    [data-screen-label="Testimonials"] > div { grid-template-columns: 0.82fr 1.5fr !important; gap: 40px 48px !important; align-items: start !important; }
    [data-screen-label="Testimonials"] > div > div:nth-child(3) { grid-column: 1 / -1 !important; padding-left: 0 !important; border-left: none !important; border-top: 1px solid rgba(255,255,255,.08); padding-top: 30px !important; }
    [data-screen-label="Testimonials"] > div > div:nth-child(3) > div:first-child { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px 40px !important; }
    /* ---- process 2x2 ---- */
    [data-screen-label="Process"] > div > div:last-child { flex-wrap: wrap !important; }
    [data-screen-label="Process"] > div > div:last-child > .gm-comic { flex: 1 1 44% !important; min-width: 240px; }
    [data-screen-label="Process"] > div > div:last-child > svg { display: none !important; }
    [data-screen-label="Featured cases"] > div > div:last-child { grid-template-columns: 1fr 1fr !important; }
  }

@media (max-width: 768px) {
    .gm-header { height: 72px !important; }
    .gm-burger-cb:checked ~ .gm-nav { top: 72px; }
    [data-screen-label="Featured cases"] > div > div:last-child { grid-template-columns: 1fr 1fr !important; }
    footer > div:nth-child(2) { grid-template-columns: 1fr 1fr !important; row-gap: 32px !important; }
    footer [aria-hidden="true"] { font-size: 300px !important; }
    [data-screen-label="About"] [style*="1fr 1fr"] { grid-template-columns: 1fr 1fr !important; }
    /* ---- testimonials: MOBILE = single column ---- */
    [data-screen-label="Testimonials"] > div { grid-template-columns: 1fr !important; gap: 40px !important; }
    [data-screen-label="Testimonials"] > div > div:nth-child(1) { order: 1; }
    [data-screen-label="Testimonials"] > div > div:nth-child(2) { order: 2; }
    [data-screen-label="Testimonials"] > div > div:nth-child(3) { order: 3; }
    [data-screen-label="Testimonials"] > div > div:nth-child(3) > div:first-child { grid-template-columns: 1fr 1fr !important; }
    [data-screen-label="Testimonials"] .gm-tst-doodle { display: none !important; }
    /* arrows move below the carousel, flanking the dots */
    [data-screen-label="Testimonials"] .gm-tst-arrow { top: auto !important; bottom: 0 !important; transform: none !important; width: 46px !important; height: 46px !important; }
    [data-screen-label="Testimonials"] .gm-tst-arrow-prev { left: 4px !important; }
    [data-screen-label="Testimonials"] .gm-tst-arrow-next { right: 4px !important; }
    [data-screen-label="Testimonials"] .gm-tst-dots { margin-top: 32px !important; }
  }

@media (max-width: 480px) {
    [data-screen-label="Featured cases"] > div > div:last-child { grid-template-columns: 1fr !important; }
    [data-screen-label="Process"] > div > div:last-child > .gm-comic { flex: 1 1 100% !important; }
    footer > div:nth-child(2) { grid-template-columns: 1fr !important; }
    footer [aria-hidden="true"] { font-size: 180px !important; }
    [data-screen-label="Final CTA"] .gm-hero-title, [data-screen-label="Final CTA"] h2 { font-size: clamp(52px, 15vw, 96px) !important; }
    .gm-lets-talk { width: 100% !important; max-width: 320px !important; }
    [data-screen-label="Final CTA"] > div:nth-child(3) > div { display: block; }
  }

img, svg { max-width: 100%; }

@keyframes gm-art { from { opacity: 0; transform: scale(0.97); } to { opacity: 1; transform: scale(1); } }

.gm-nav a { position: relative; text-decoration: none; }

.gm-cta-nav { transition: background .28s ease, color .28s ease, box-shadow .28s ease, transform .1s ease; }

.gm-cta-nav:hover { background: #E111F8; color: #060606 !important; box-shadow: 0 0 40px rgba(225,17,248,.35); transform: scale(1.03); }

.gm-primary:hover { filter: brightness(1.1) saturate(1.06); box-shadow: 0 0 40px rgba(225,17,248,.38); transform: translateY(-2px) scale(1.01); }

.gm-outline { transition: border-color .25s ease, transform .12s cubic-bezier(.2,.8,.2,1); }

.gm-outline:hover { border-color: #E111F8; transform: translateY(-2px) scale(1.02); }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s cubic-bezier(.2,.8,.2,1), transform 1s cubic-bezier(.2,.8,.2,1); }

.reveal.rl { transform: translateX(-42px); }

/* interactive 404 */
  .gm-404 { display: inline-flex; align-items: flex-start; line-height: 0.8; cursor: default; }

.gm-404 span { font-family: 'Bebas Neue', sans-serif; font-size: clamp(150px, 20vw, 300px); line-height: 0.8; display: inline-block; transition: transform .5s cubic-bezier(.2,.8,.2,1); }

.gm-404 .d1 { color: #F5F5F5; }

.gm-404 .d0 { color: #E111F8; }

.gm-404 .d2 { color: #F5F5F5; }

.gm-404:hover .d1 { transform: translateX(-14px) translateY(-4px) rotate(-3deg); }

.gm-404:hover .d0 { transform: rotate(3deg) scale(1.04); }

.gm-404:hover .d2 { transform: translateX(14px) translateY(-4px) rotate(3deg); }

/* nav cards (paper) */
  .gm-navcard { transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease; }

.gm-navcard:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,.1); }

.gm-navcard-link { position: relative; display: inline-flex; align-items: center; gap: 8px; }

.gm-navcard-link::after { content: ""; position: absolute; left: 0; bottom: -4px; height: 2px; width: 100%; background: #E111F8; transform: scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }

.gm-navcard:hover .gm-navcard-link::after { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    .reveal { opacity: 1 !important; transform: none !important; }
    .gm-404:hover span { transform: none !important; }
  }

/* responsive */
  @media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta-nav { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art { order: -1; margin: 0 auto !important; }
    .gm-cards { grid-template-columns: 1fr 1fr !important; }
    .gm-cards > div { border-left: none !important; }
    .gm-cta-grid { grid-template-columns: 1fr !important; text-align: center; }
    .gm-cta-art { order: -1; margin: 0 auto !important; }
    .gm-cta-btns { justify-content: center; }
  }

@media (max-width: 640px) {
    .gm-cards { grid-template-columns: 1fr !important; }
    .gm-cta-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns a { justify-content: center !important; }
  }

.gm-primary:hover { filter: brightness(1.12) saturate(1.08); box-shadow: 0 0 46px rgba(225,17,248,.42); transform: translateY(-2px) scale(1.03); }

.gm-outline { transition: border-color .25s ease, color .25s ease, transform .12s cubic-bezier(.2,.8,.2,1); }

.gm-outline:hover { border-color: #E111F8; transform: translateY(-2px) scale(1.03); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); }

/* sticky side nav (reading progress) */
  .gm-snav-link { position: relative; display: flex; align-items: center; gap: 13px; text-decoration: none; padding: 7px 0; transition: color .25s ease; color: rgba(245,245,245,.4); }

.gm-snav-mark { flex: none; width: 16px; height: 16px; border-radius: 999px; border: 1.5px solid rgba(245,245,245,.28); display: flex; align-items: center; justify-content: center; background: transparent; transition: border-color .25s ease, background .25s ease, box-shadow .25s ease; }

.gm-snav-fill { width: 7px; height: 7px; border-radius: 999px; background: #E111F8; opacity: 0; transform: scale(0); transition: opacity .25s ease, transform .25s ease; }

.gm-snav-check { width: 10px; height: 10px; opacity: 0; transition: opacity .2s ease; }

.gm-snav-link:hover { color: rgba(245,245,245,.82); }

.gm-snav-link.is-active { color: #E111F8; }

.gm-snav-link.is-active .gm-snav-mark { border-color: #E111F8; box-shadow: 0 0 0 4px rgba(225,17,248,.16); }

.gm-snav-link.is-active .gm-snav-fill { opacity: 1; transform: scale(1); }

.gm-snav-link.is-passed { color: rgba(245,245,245,.7); }

.gm-snav-link.is-passed .gm-snav-mark { border-color: #E111F8; background: #E111F8; }

.gm-snav-link.is-passed .gm-snav-check { opacity: 1; }

.gm-snav::before { content: ""; position: absolute; left: 7.25px; top: 16px; bottom: 16px; width: 1.5px; background: rgba(245,245,245,.12); z-index: -1; }

/* problem cards */
  .gm-pcard { transition: transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s ease, background .3s ease; }

.gm-pcard:hover { transform: translateY(-6px); border-color: rgba(225,17,248,.42); background: rgba(225,17,248,.04); }

.gm-pcard:hover .gm-pico { box-shadow: 0 0 24px rgba(225,17,248,.4); border-color: rgba(225,17,248,.65); }

.gm-pico { transition: box-shadow .3s ease, border-color .3s ease; }

/* framework */
  .gm-fw-line { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1); }

[data-drawn] .gm-fw-line { stroke-dashoffset: 0; }

.gm-fwstep { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1); }

[data-drawn] .gm-fwstep { opacity: 1; transform: none; }

.gm-fwstep:hover .gm-fwico { box-shadow: 0 0 26px rgba(225,17,248,.42); border-color: rgba(225,17,248,.7); }

.gm-fwico { transition: box-shadow .3s ease, border-color .3s ease; }

/* chart draw */
  .gm-line { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.9s cubic-bezier(.2,.8,.2,1); }

[data-drawn] .gm-line { stroke-dashoffset: 0; }

.gm-area { opacity: 0; transition: opacity 1.1s ease .5s; }

[data-drawn] .gm-area { opacity: 1; }

.gm-dot2 { opacity: 0; transition: opacity .5s ease; }

[data-drawn] .gm-dot2 { opacity: 1; }

/* checkpoints */
  .gm-check { position: relative; transition: transform .25s ease; }

.gm-check::before { content: ""; position: absolute; left: -14px; top: 3px; bottom: 3px; width: 2px; background: #E111F8; transform: scaleY(0); transform-origin: top center; transition: transform .28s cubic-bezier(.2,.8,.2,1); }

.gm-check:hover { transform: translateX(6px); }

.gm-check:hover::before { transform: scaleY(1); }

.gm-check:hover .gm-check-ico { box-shadow: 0 0 20px rgba(225,17,248,.45); border-color: rgba(225,17,248,.7); }

.gm-check-ico { transition: box-shadow .3s ease, border-color .3s ease; }

/* faq */
  .gm-faq { transition: border-color .3s ease; }

.gm-faq[data-faq-open] { border-color: rgba(225,17,248,.4) !important; }

.gm-faq-a { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .3s cubic-bezier(.2,.8,.2,1), opacity .3s ease; }

.gm-faq[data-faq-open] .gm-faq-a { max-height: 340px; opacity: 1; }

.gm-faq-plus { transition: transform .3s cubic-bezier(.2,.8,.2,1), color .3s ease; }

.gm-faq[data-faq-open] .gm-faq-plus { transform: rotate(45deg); color: #E111F8; }

.gm-faq:hover .gm-faq-q { color: #fff; }

.gm-case-btn { transition: border-color .25s ease, background .25s ease, transform .12s ease; }

.gm-case-btn:hover { border-color: #E111F8; background: rgba(225,17,248,.06); transform: translateY(-2px); }

.gm-chan { transition: transform .18s ease, box-shadow .25s ease, filter .2s ease, border-color .2s ease; }

.gm-chan-out:hover { border-color: #E111F8; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    html, body { scroll-behavior: auto; }
    .reveal, .gm-fwstep { opacity: 1 !important; transform: none !important; }
    .gm-fw-line, .gm-line { stroke-dashoffset: 0 !important; }
    .gm-area, .gm-dot2 { opacity: 1 !important; }
  }

/* responsive */
  @media (max-width: 1280px) { .gm-snav { display: none !important; } }

@media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta-nav { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid, .gm-problem-grid, .gm-fw-grid, .gm-why-grid, .gm-case-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art, .gm-case-photo { order: -1; margin: 0 auto !important; }
    .gm-pcards { grid-template-columns: 1fr 1fr !important; }
    .gm-pcards > div:first-child { grid-column: 1 / -1; }
    .gm-fw-row { grid-template-columns: 1fr 1fr !important; gap: 34px 20px !important; }
    .gm-fw-hline { display: none !important; }
    .gm-checks { grid-template-columns: 1fr !important; }
    .gm-faq-grid { grid-template-columns: 1fr !important; }
    .gm-case-metrics { flex-direction: row !important; justify-content: flex-start !important; gap: 44px !important; }
    .gm-cta-grid { grid-template-columns: 1fr !important; text-align: center; }
    .gm-cta-art { order: -1; margin: 0 auto !important; }
  }

@media (max-width: 640px) {
    .gm-pcards, .gm-fw-row, .gm-faq-list2 { grid-template-columns: 1fr !important; }
    .gm-hero-h1 { font-size: clamp(52px, 13vw, 84px) !important; }
    .gm-cta-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns a { justify-content: center !important; }
    .gm-hero-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-hero-btns a { justify-content: center !important; }
    .gm-case-metrics { flex-direction: column !important; gap: 24px !important; }
  }

.gm-primary:hover { filter: brightness(1.12) saturate(1.08); box-shadow: 0 0 46px rgba(225,17,248,.42); transform: translateY(-2px) scale(1.02); }

/* slower, softer reveal for an editorial feel */
  .reveal { opacity: 0; transform: translateY(26px); transition: opacity 1.3s cubic-bezier(.2,.8,.2,1), transform 1.3s cubic-bezier(.2,.8,.2,1); }

.reveal.rl { transform: translateX(-44px); }

.gm-bw image-slot { filter: grayscale(1) contrast(1.03) brightness(.94); transition: filter .6s ease; }

.gm-bw:hover image-slot { filter: grayscale(0.72) contrast(1.03) brightness(.98); }

.gm-belief { position: relative; }

.gm-belief::after { content: ""; display: block; width: 46px; height: 3px; background: #E111F8; margin-top: 18px; }

/* responsive */
  @media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta-nav { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid, .gm-story-grid, .gm-team-grid, .gm-cta-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art, .gm-story-art, .gm-team-art, .gm-cta-art { order: -1; }
    .gm-method { grid-template-columns: 1fr 1fr !important; }
    .gm-method > div { border-left: none !important; padding-left: 0 !important; }
    .gm-gallery { grid-template-columns: 1fr 1fr !important; }
    .gm-cta-art { order: -1; margin: 0 auto !important; }
  }

@media (max-width: 640px) {
    .gm-method { grid-template-columns: 1fr !important; }
    .gm-hero-h1 { font-size: clamp(52px, 14vw, 90px) !important; }
    .gm-cta-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns a { justify-content: center !important; }
    .gm-gallery { grid-auto-flow: column !important; grid-template-columns: none !important; grid-template-rows: none !important; grid-auto-columns: 82% !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; }
    .gm-gallery > div { scroll-snap-align: center; grid-row: auto !important; height: 300px !important; }
  }

.gm-header { transition: background .3s ease, backdrop-filter .3s ease, height .3s cubic-bezier(.2,.8,.2,1); }

.gm-primary:hover { filter: brightness(1.1) saturate(1.06); box-shadow: 0 0 40px rgba(225,17,248,.38); transform: translateY(-2px) scale(1.02); }

/* reading progress bar */
  .gm-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0%; background: #E111F8; z-index: 70; transition: width .1s linear, height .3s ease, box-shadow .3s ease; }

html.gm-reading .gm-header { height: 64px; }

html.gm-reading .gm-progress { height: 5px; box-shadow: 0 0 12px rgba(225,17,248,.55); }

html.gm-reading .gm-toc-link { padding-top: 5px; padding-bottom: 5px; }

/* article images B&W */
  .gm-figure image-slot { filter: grayscale(1) contrast(1.03); }

/* TOC */
  .gm-toc-link { display: block; position: relative; padding: 8px 0 8px 16px; text-decoration: none; color: #6b655c; font-family: 'Montserrat', sans-serif; font-size: 14px; line-height: 1.4; transition: color .22s ease; border-left: 2px solid transparent; }

.gm-toc-link:hover { color: #14110E; }

.gm-toc-link.is-active { color: #B00C86; border-left-color: #E111F8; font-weight: 600; }

.gm-toc-num { color: #B00C86; font-family: 'JetBrains Mono', monospace; font-size: 12px; margin-right: 8px; }

.gm-share { transition: border-color .22s ease, background .22s ease, color .22s ease; }

.gm-share:hover { border-color: #E111F8; background: #E111F8; color: #fff; }

.gm-relcard { transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease; }

.gm-relcard:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,.12); }

.gm-relcard:hover .gm-relimg image-slot { transform: scale(1.05); }

.gm-relimg image-slot { transition: transform .5s cubic-bezier(.2,.8,.2,1); }

.gm-relart { transition: transform .22s ease; }

.gm-relart:hover { transform: translateX(4px); }

.gm-relart:hover .gm-relart-t { color: #B00C86; }

.gm-downlink { transition: gap .22s ease; }

.gm-downlink:hover { gap: 12px; }

.gm-more { transition: gap .22s ease; }

.gm-more:hover { gap: 11px; }

/* faq (light) */
  .gm-faq { transition: border-color .3s ease; }

.gm-faq[data-faq-open] { border-color: rgba(225,17,248,.45) !important; }

.gm-faq[data-faq-open] .gm-faq-a { max-height: 320px; opacity: 1; }

.gm-faq[data-faq-open] .gm-faq-plus { transform: rotate(45deg); color: #B00C86; }

.gm-faq:hover .gm-faq-q { color: #B00C86; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    html, body { scroll-behavior: auto; }
    .reveal { opacity: 1 !important; transform: none !important; }
  }

/* responsive */
  @media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta-nav { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art { order: -1; margin: 0 auto !important; }
    .gm-article-grid { grid-template-columns: 1fr !important; }
    .gm-sidebar { position: static !important; margin-top: 60px; }
    .gm-cta-grid { grid-template-columns: 1fr !important; text-align: center; }
    .gm-cta-art { order: -1; margin: 0 auto !important; }
  }

@media (max-width: 640px) {
    .gm-hero-h1 { font-size: clamp(42px, 11vw, 64px) !important; }
    .gm-checklist { grid-template-columns: 1fr !important; }
    .gm-meta { flex-direction: column !important; align-items: flex-start !important; gap: 16px !important; }
    .gm-cta-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns a { justify-content: center !important; }
  }

@keyframes gm-cardin { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }

.gm-search { transition: border-color .25s ease, background .25s ease; }

.gm-search:focus-within { border-color: #E111F8; background: rgba(255,255,255,.05); }

.gm-search input::placeholder { color: rgba(245,245,245,.4); }

.gm-pill { transition: border-color .22s ease, background .22s ease, color .22s ease, transform .12s ease; cursor: pointer; }

.gm-pill:hover { border-color: rgba(225,17,248,.7) !important; color: #fff; }

.gm-pill.is-active { background: #E111F8 !important; border-color: #E111F8 !important; color: #090909 !important; }

.gm-sel select { appearance: none; -webkit-appearance: none; background: transparent; border: none; outline: none; color: #F5F5F5; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 13px; cursor: pointer; padding-right: 20px; letter-spacing: 0.04em; }

.gm-sel select option { background: #141414; color: #F5F5F5; }

/* cards (light) */
  .gm-card { animation: gm-cardin .55s cubic-bezier(.2,.8,.2,1) both; transition: transform .32s cubic-bezier(.2,.8,.2,1), box-shadow .32s ease, border-color .32s ease; }

.gm-card:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(0,0,0,.14); border-color: rgba(225,17,248,.35); }

.gm-card:nth-child(1){animation-delay:.03s}

.gm-card:nth-child(2){animation-delay:.09s}

.gm-card:nth-child(3){animation-delay:.15s}

.gm-card:nth-child(4){animation-delay:.21s}

.gm-card:nth-child(5){animation-delay:.27s}

.gm-card:nth-child(6){animation-delay:.33s}

.gm-card-img image-slot { transition: transform .5s cubic-bezier(.2,.8,.2,1); filter: grayscale(1) contrast(1.03); }

.gm-card:hover .gm-card-img image-slot { transform: scale(1.03); }

.gm-card:hover .gm-readmore { gap: 11px; }

.gm-readmore { transition: gap .22s ease; }

.gm-feat { transition: box-shadow .32s ease, border-color .32s ease; }

.gm-feat:hover { box-shadow: 0 24px 50px rgba(0,0,0,.14); border-color: rgba(225,17,248,.35); }

.gm-feat:hover .gm-feat-img image-slot { transform: scale(1.03); }

.gm-feat-img image-slot { transition: transform .6s cubic-bezier(.2,.8,.2,1); filter: grayscale(1) contrast(1.03); }

.gm-feat:hover .gm-readmore { gap: 11px; }

.gm-topic { transition: color .2s ease; }

.gm-topic:hover { color: #B00C86 !important; }

.gm-topic .gm-topic-count { opacity: 0; transition: opacity .2s ease; }

.gm-topic:hover .gm-topic-count { opacity: 1; }

.gm-pop { transition: transform .22s ease; }

.gm-pop:hover { transform: translateX(4px); }

.gm-pop:hover .gm-pop-t { color: #B00C86; }

.gm-pop-img image-slot { filter: grayscale(1) contrast(1.03); }

.gm-page { transition: border-color .22s ease, background .22s ease, color .22s ease; cursor: pointer; }

.gm-page:hover { border-color: #E111F8; color: #14110E; }

.gm-page.is-active { background: #E111F8; border-color: #E111F8; color: #fff; }

.gm-page.is-ellipsis { cursor: default; border-color: transparent; }

.gm-page.is-disabled { opacity: .35; pointer-events: none; }

.gm-sub-btn { transition: filter .2s ease, box-shadow .2s ease, transform .12s ease; }

.gm-sub-btn:hover { filter: brightness(1.08) saturate(1.05); box-shadow: 0 10px 26px rgba(225,17,248,.35); transform: translateY(-1px); }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    .reveal { opacity: 1 !important; transform: none !important; }
    .gm-card { opacity: 1 !important; transform: none !important; }
  }

/* responsive */
  .gm-grid { grid-template-columns: 1fr 1fr; }

@media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta-nav { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art { order: -1; margin: 0 auto !important; }
    .gm-main-grid { grid-template-columns: 1fr !important; }
    .gm-sidebar { position: static !important; margin-top: 20px; }
    .gm-feat-grid { grid-template-columns: 1fr !important; }
    .gm-feat-img-wrap { order: -1; }
    .gm-cta-grid { grid-template-columns: 1fr !important; text-align: center; }
    .gm-cta-art { order: -1; margin: 0 auto !important; }
  }

@media (max-width: 640px) {
    .gm-grid { grid-template-columns: 1fr !important; }
    .gm-hero-h1 { font-size: clamp(48px, 13vw, 76px) !important; }
    .gm-pills { flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
    .gm-pill { flex: none !important; }
    .gm-cta-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns a { justify-content: center !important; }
  }

@keyframes gm-cardin { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s cubic-bezier(.2,.8,.2,1), transform .75s cubic-bezier(.2,.8,.2,1); }

/* filter pills */
  .gm-fpill { transition: border-color .22s ease, background .22s ease, color .22s ease, transform .12s ease; cursor: pointer; }

.gm-fpill:hover { border-color: rgba(225,17,248,.7) !important; color: #fff; }

.gm-fpill.is-active { background: #E111F8 !important; border-color: #E111F8 !important; color: #090909 !important; }

.gm-sel { transition: border-color .22s ease; }

.gm-sel:hover { border-color: rgba(225,17,248,.55); }

.gm-sel select { appearance: none; -webkit-appearance: none; background: transparent; border: none; outline: none; color: #F5F5F5; font-family: 'Outfit', sans-serif; font-weight: 500; font-size: 14px; width: 100%; cursor: pointer; padding-right: 22px; }

/* cards */
  .gm-case { animation: gm-cardin .6s cubic-bezier(.2,.8,.2,1) both; transition: transform .34s cubic-bezier(.2,.8,.2,1), box-shadow .34s ease, border-color .34s ease; }

.gm-case:hover { transform: translateY(-8px); box-shadow: 0 26px 60px rgba(225,17,248,.18); border-color: rgba(225,17,248,.4); }

.gm-case:nth-child(1){animation-delay:.02s}

.gm-case:nth-child(2){animation-delay:.09s}

.gm-case:nth-child(3){animation-delay:.16s}

.gm-case:nth-child(4){animation-delay:.23s}

.gm-case:nth-child(5){animation-delay:.30s}

.gm-case:nth-child(6){animation-delay:.37s}

.gm-case-img { transition: transform .5s cubic-bezier(.2,.8,.2,1); }

.gm-case:hover .gm-case-img { transform: scale(1.05); }

.gm-case-more { transition: gap .22s ease, color .22s ease; }

.gm-case:hover .gm-case-more { gap: 12px; color: #E111F8; }

.gm-case-arrow { display: inline-block; transition: transform .22s cubic-bezier(.2,.8,.2,1); }

.gm-case:hover .gm-case-arrow { transform: translateX(5px); }

.gm-fcount { opacity: .5; font-size: .88em; margin-left: 3px; }

/* pagination */
  .gm-page { transition: border-color .22s ease, background .22s ease, color .22s ease, box-shadow .22s ease; cursor: pointer; }

.gm-page:hover { border-color: rgba(225,17,248,.6); box-shadow: 0 0 22px rgba(225,17,248,.28); color: #fff; }

.gm-page.is-active { background: #E111F8; border-color: #E111F8; color: #090909; }

.gm-page.is-ellipsis { cursor: default; border-color: transparent; box-shadow: none; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    .reveal { opacity: 1 !important; transform: none !important; }
    .gm-case { opacity: 1 !important; transform: none !important; }
  }

/* responsive */
  .gm-grid { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art { order: -1; margin: 0 auto !important; }
    .gm-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .gm-filterbar-inner { flex-wrap: wrap !important; }
    .gm-selrow { width: 100% !important; justify-content: flex-start !important; }
    .gm-cta-grid { grid-template-columns: 1fr !important; text-align: center; }
    .gm-cta-art { order: -1; margin: 0 auto !important; }
  }

@media (max-width: 640px) {
    .gm-grid { grid-template-columns: 1fr !important; }
    .gm-hero-h1 { font-size: clamp(58px, 16vw, 100px) !important; }
    .gm-stats { gap: 24px 30px !important; }
    .gm-fpills { flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
    .gm-fpill { flex: none !important; }
    .gm-selrow { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns a { justify-content: center !important; }
  }

.gm-outline-d { transition: border-color .25s ease, color .25s ease, transform .12s cubic-bezier(.2,.8,.2,1); }

.gm-outline-d:hover { border-color: #E111F8; color: #B00C86 !important; transform: translateY(-2px) scale(1.02); }

/* form inputs (paper) */
  .gm-input { width: 100%; font-family: 'Montserrat', sans-serif; font-size: 15px; color: #14110E; background: #FBFAF7; border: 1px solid rgba(0,0,0,.16); border-radius: 8px; padding: 15px 18px; outline: none; transition: border-color .25s ease, box-shadow .25s ease, background .25s ease; }

.gm-input::placeholder { color: #9a948a; }

.gm-input:hover { border-color: rgba(0,0,0,.28); }

.gm-input:focus { border-color: #E111F8; box-shadow: 0 0 0 3px rgba(225,17,248,.14); background: #fff; }

.gm-input[data-invalid] { border-color: #d33; box-shadow: 0 0 0 3px rgba(221,51,51,.12); }

select.gm-input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314110E' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; padding-right: 44px; cursor: pointer; }

.gm-err { display: none; font-family: 'Montserrat', sans-serif; font-size: 12.5px; color: #c62828; margin-top: 6px; }

.gm-field[data-invalid] .gm-err { display: block; }

.gm-check-cta { transition: transform .1s ease; }

.gm-msgcard { transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease; }

.gm-msgcard:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,.1); }

.gm-msgcard:hover .gm-msg-link { gap: 11px; }

.gm-msg-link { transition: gap .22s ease; }

.gm-softcta image-slot { filter: grayscale(1) contrast(1.03); }

/* responsive */
  @media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta-nav { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art { order: -1; margin: 0 auto !important; }
    .gm-contact-grid { grid-template-columns: 1fr !important; }
    .gm-steps { order: 2; }
    .gm-formwrap { order: 1; }
    .gm-cta-grid { grid-template-columns: 1fr !important; text-align: center; }
    .gm-cta-art { order: -1; margin: 0 auto !important; }
    .gm-softcta-grid { grid-template-columns: 1fr !important; }
  }

@media (max-width: 760px) {
    .gm-msg-grid { grid-template-columns: 1fr 1fr !important; }
    .gm-msg-grid > div:last-child { grid-column: 1 / -1; }
  }

@media (max-width: 640px) {
    .gm-hero-h1 { font-size: clamp(46px, 12vw, 74px) !important; }
    .gm-form-row { grid-template-columns: 1fr !important; }
    .gm-trust { flex-direction: column !important; align-items: flex-start !important; gap: 16px !important; }
    .gm-msg-grid { grid-template-columns: 1fr !important; }
    .gm-msg-grid > div:last-child { grid-column: auto; }
    .gm-cta-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-cta-btns a { justify-content: center !important; }
    .gm-softcta-img { height: 220px !important; }
  }

@keyframes gm-slideup { from { opacity: 0; transform: translate(0, 40px); } to { opacity: 1; transform: translate(0,0); } }

@keyframes gm-crumb { 0% { opacity: 1; transform: translate(0,0) rotate(0deg); } 100% { opacity: 0; transform: translate(6px, 26px) rotate(80deg); } }

.gm-cbtn { transition: transform .12s cubic-bezier(.2,.8,.2,1), filter .2s ease, border-color .2s ease, background .2s ease, color .2s ease; cursor: pointer; }

.gm-cbtn:hover { transform: scale(1.03); }

.gm-cbtn-primary:hover { filter: brightness(1.08) saturate(1.05); box-shadow: 0 0 30px rgba(225,17,248,.36); }

.gm-cbtn-out:hover { border-color: #E111F8; }

.gm-cbtn:focus-visible { outline: 2px solid #E111F8; outline-offset: 2px; }

.gm-link { position: relative; text-decoration: none; }

.gm-link::after { content: ""; position: absolute; left: 0; bottom: -3px; height: 1.5px; width: 100%; background: #E111F8; transform: scaleX(1); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }

.gm-link:hover::after { transform: scaleX(0); }

/* toggle */
  .gm-toggle { position: relative; width: 46px; height: 26px; border-radius: 999px; background: rgba(255,255,255,.18); border: none; padding: 0; cursor: pointer; transition: background .25s cubic-bezier(.2,.8,.2,1); flex: none; }

.gm-toggle.gm-on { background: linear-gradient(135deg,#FF38D2,#C400C7); }

.gm-toggle[data-locked] { cursor: not-allowed; }

.gm-toggle .knob { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 999px; background: #fff; transition: transform .25s cubic-bezier(.2,.8,.2,1); }

.gm-toggle.gm-on .knob { transform: translateX(20px); }

.gm-toggle:focus-visible { outline: 2px solid #E111F8; outline-offset: 2px; }

.gm-cat-caret { transition: transform .3s cubic-bezier(.2,.8,.2,1); cursor: pointer; }

.gm-cat[data-open] .gm-cat-caret { transform: rotate(180deg); }

.gm-cat-detail { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .3s cubic-bezier(.2,.8,.2,1), opacity .3s ease; }

.gm-cat[data-open] .gm-cat-detail { max-height: 140px; opacity: 1; }

.gm-x { transition: color .2s ease, transform .2s ease; cursor: pointer; }

.gm-x:hover { color: #E111F8; transform: rotate(90deg); }

.gm-reset { transition: border-color .2s ease, color .2s ease; }

.gm-reset:hover { border-color: #E111F8; color: #E111F8; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    .gm-crumb { display: none !important; }
  }

/* desktop banner hidden on mobile, mobile sheet hidden on desktop */
  .gm-desktop-banner { display: block; }

.gm-mobile-sheet { display: none; }

@media (max-width: 720px) {
    .gm-desktop-banner { display: none !important; }
    .gm-mobile-sheet { display: block !important; }
  }

.gm-flink { transition: color .22s ease; }

@media (max-width: 900px) {
    .gm-footer-grid { grid-template-columns: 1fr 1fr 1fr !important; row-gap: 40px !important; }
    .gm-footer-grid > div:last-child { grid-column: 1 / -1; justify-self: center !important; }
  }

@media (max-width: 620px) {
    .gm-footer-grid { grid-template-columns: 1fr 1fr !important; }
    .gm-footer-watermark { font-size: 300px !important; }
    .gm-footer-bottom { flex-direction: column !important; align-items: flex-start !important; gap: 14px !important; }
  }

@media (max-width: 400px) {
    .gm-footer-grid { grid-template-columns: 1fr !important; }
    .gm-footer-watermark { font-size: 180px !important; }
  }

@keyframes gm-up { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }

@keyframes gm-fade { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

@keyframes gm-art { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: scale(1); } }

/* sidebar nav */
  .gm-lnav { display: block; position: relative; text-decoration: none; padding: 15px 16px 15px 0; border-bottom: 1px solid rgba(0,0,0,.08); font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 13.5px; letter-spacing: 0.02em; color: #14110E; transition: color .22s ease; display: flex; align-items: center; gap: 12px; }

.gm-lnav .gm-lnav-t { position: relative; flex: 1; }

.gm-lnav .gm-lnav-t::after { content: ""; position: absolute; left: 0; bottom: -3px; height: 1.5px; width: 100%; background: #E111F8; transform: scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }

.gm-lnav:hover { color: #B00C86; }

.gm-lnav:hover .gm-lnav-t::after { transform: scaleX(1); }

.gm-lnav.is-active { color: #B00C86; }

.gm-lnav.is-active .gm-lnav-caret { color: #B00C86; }

.gm-lnav-caret { color: rgba(0,0,0,.3); transition: transform .22s ease; }

.gm-lnav:hover .gm-lnav-caret { transform: translateX(3px); }

.gm-contact-link { position: relative; text-decoration: none; }

.gm-contact-link .u { position: relative; }

.gm-contact-link .u::after { content: ""; position: absolute; left: 0; bottom: -2px; height: 1.5px; width: 100%; background: #E111F8; transform: scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }

.gm-contact-link:hover .u::after { transform: scaleX(1); }

.gm-contact-link:hover .arr { transform: translateX(4px); }

.gm-contact-link .arr { display: inline-block; transition: transform .22s ease; }

/* legal body content */
  .gm-legal-body a { color: #B00C86; text-decoration: none; border-bottom: 1px solid rgba(176,12,134,.35); transition: border-color .2s ease; }

.gm-legal-body a:hover { border-color: #B00C86; }

.gm-skip { position: absolute; left: -999px; top: 8px; z-index: 200; background: #E111F8; color: #fff; padding: 10px 18px; border-radius: 6px; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 13px; text-decoration: none; }

.gm-skip:focus { left: 8px; }

a:focus-visible, button:focus-visible { outline: 2px solid #E111F8; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; }
    html, body { scroll-behavior: auto; }
  }

@media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta-nav { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art { order: -1; margin: 0 auto !important; max-width: 380px; }
    .gm-legal-grid { grid-template-columns: 1fr !important; gap: 44px !important; }
    .gm-sidebar { position: static !important; }
    .gm-lnav-list { display: flex !important; flex-wrap: wrap; gap: 6px 20px; }
    .gm-lnav { border-bottom: none !important; padding: 8px 0 !important; }
    .gm-helper { margin-top: 26px !important; }
  }

@media (max-width: 640px) {
    .gm-hero-h1 { font-size: clamp(48px, 13vw, 76px) !important; }
    .gm-legal-body h2 { font-size: 20px !important; }
  }

.gm-nl-input::placeholder { color: rgba(245,245,245,.4); }

.gm-nl-btn:hover:not(:disabled) { filter: brightness(1.08) saturate(1.05); box-shadow: 0 0 34px rgba(225,17,248,.34); }

.gm-nl-btn:active:not(:disabled) { transform: translateY(1px); }

.gm-nl-input:focus-visible { outline: none; }

@media (prefers-reduced-motion: reduce) { .gm-nl-card * { animation: none !important; } }

.gm-primary:hover { filter: brightness(1.12) saturate(1.08); box-shadow: 0 0 46px rgba(225,17,248,.42); transform: translateY(-2px); }

.reveal.ru { transform: translateY(16px); }

.gm-logo-item { opacity: .5; transition: opacity .25s ease, transform .25s ease; text-decoration: none; }

.gm-logo-item:hover { opacity: 1; transform: scale(1.03); }

.gm-view-all::after { content: ""; position: absolute; left: 0; bottom: -4px; height: 1.5px; width: 100%; background: currentColor; transform: scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }

/* service cards */
  .gm-svc { background: #080808; box-shadow: inset 0 0 0 1px rgba(255,255,255,.015); transition: transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s ease, background .3s ease, box-shadow .3s ease; }

.gm-svc:hover { transform: translateY(-6px); border-color: rgba(225,17,248,.4); background: #0d0a0d; box-shadow: inset 0 0 0 1px rgba(225,17,248,.05), 0 18px 46px rgba(0,0,0,.24); }

.gm-svc:hover .gm-svc-ico { box-shadow: 0 0 26px rgba(225,17,248,.4); border-color: rgba(225,17,248,.6); }

.gm-svc-ico { transition: box-shadow .3s ease, border-color .3s ease; }

.gm-svc-more { transition: gap .25s ease; }

.gm-svc:hover .gm-svc-more { gap: 12px; }

/* value rows (why grandma) */
  .gm-val { transition: background .25s ease, transform .25s ease; }

.gm-val:hover { background: rgba(255,255,255,.03); transform: translateX(4px); }

.gm-val:hover .gm-val-ico { box-shadow: 0 0 22px rgba(225,17,248,.45); border-color: rgba(225,17,248,.6); }

.gm-val-ico { transition: box-shadow .3s ease, border-color .3s ease; }

/* timeline steps */
  .gm-step { transition: transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s ease, background .3s ease; cursor: pointer; }

.gm-step:hover, .gm-step[data-step-active] { transform: translateY(-6px); border-color: rgba(225,17,248,.5) !important; background: rgba(225,17,248,.05); }

.gm-step-desc { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .4s cubic-bezier(.2,.8,.2,1), opacity .3s ease, margin-top .3s ease; }

.gm-step:hover .gm-step-desc, .gm-step[data-step-active] .gm-step-desc { max-height: 90px; opacity: 1; margin-top: 12px; }

.gm-step:hover .gm-step-num, .gm-step[data-step-active] .gm-step-num { color: #E111F8; }

/* industries */
  .gm-ind { position: relative; overflow: hidden; transition: border-color .3s ease, background .3s ease; }

.gm-ind:hover { border-color: rgba(225,17,248,.45); background: rgba(225,17,248,.05); }

.gm-ind-note { opacity: 0; transform: translateY(8px); transition: opacity .3s ease, transform .3s ease; }

.gm-ind:hover .gm-ind-note { opacity: 1; transform: none; }

.gm-ind:hover .gm-ind-title { color: #fff; }

.gm-faq-a { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .45s cubic-bezier(.2,.8,.2,1), opacity .35s ease; }

.gm-faq[data-faq-open] .gm-faq-a { max-height: 260px; opacity: 1; }

.gm-faq-plus { transition: transform .35s cubic-bezier(.2,.8,.2,1), color .3s ease; }

/* channels */
  .gm-chan { transition: transform .18s ease, box-shadow .25s ease, filter .2s ease, border-color .2s ease; }

/* section number rail */
  .gm-sec { border-top: 0; }

.gm-num { font-family:'JetBrains Mono',monospace; font-size:15px; letter-spacing:0.1em; color:#E111F8; padding-top:4px; }

.gm-secgrid { display:grid; grid-template-columns:56px 1fr; gap:32px; max-width:1320px; margin:0 auto; padding:0 48px; }

/* quiz */
  .gm-quiz-opt,
  .gm-rec-card,
  .gm-cmp-scroll,
  .gm-combo,
  .gm-pcard,
  .gm-val,
  .gm-step,
  .gm-ind,
  .gm-chan-out {
    background: #080808 !important;
  }

  .gm-quiz-opt,
  .gm-rec-card,
  .gm-cmp-scroll,
  .gm-combo,
  .gm-pcard {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.015);
  }

  .gm-quiz-opt { cursor:pointer; transition: border-color .2s ease, background .2s ease, transform .2s ease; }

.gm-quiz-opt:hover { border-color: rgba(225,17,248,.6) !important; transform: translateY(-2px); }

.gm-quiz-opt.is-sel { border-color: #E111F8 !important; background: rgba(225,17,248,.12) !important; }

.gm-quiz-opt.is-sel .gm-quiz-check { opacity:1 !important; }

.gm-quiz-opt .gm-quiz-check { opacity:0; transition: opacity .2s ease; }

.gm-rec-body { transition: opacity .3s ease; }

.gm-rec-why { max-height:0; opacity:0; overflow:hidden; transition: max-height .4s cubic-bezier(.2,.8,.2,1), opacity .3s ease; }

.gm-rec-why.is-open { max-height:240px; opacity:1; }

/* compare table */
  .gm-cmp-scroll { box-shadow: 0 18px 48px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.015); }

  .gm-cmp-col { transition: background .2s ease; }

.gm-cmp-col:hover { background: #0d0a0d; }

.gm-cmp-col:hover .gm-cmp-head { color:#fff; }

.gm-cmp-more { transition: gap .2s ease; }

.gm-cmp-col:hover .gm-cmp-more { gap:11px; }

/* combos */
  .gm-combo { transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease; }

.gm-combo:hover { transform: translateY(-8px); background: #0d0a0d !important; box-shadow: 0 20px 50px rgba(225,17,248,.16); border-color: rgba(225,17,248,.4); }

.gm-combo:hover .gm-combo-more { gap:11px; }

.gm-combo-more { transition: gap .2s ease; }

/* spotlight */
  .gm-spot-btn { transition: filter .2s ease, box-shadow .2s ease, transform .12s ease; }

.gm-spot-btn:hover { filter: brightness(1.1) saturate(1.06); box-shadow: 0 0 40px rgba(225,17,248,.4); transform: translateY(-2px); }

/* case cards */
  .gm-case { transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease; }

.gm-case:hover { transform: translateY(-8px); box-shadow: 0 20px 60px rgba(225,17,248,.15); border-color: rgba(225,17,248,.4); }

.gm-case:hover .gm-case-more { gap:11px; color:#E111F8; }

.gm-case-more { transition: gap .2s ease, color .2s ease; }

/* ============ RESPONSIVE ============ */
  .gm-svc-grid { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 1200px) { .gm-svc-grid { grid-template-columns: repeat(3, 1fr) !important; } }

@media (max-width: 1024px) {
    .gm-nav, .gm-header > .gm-cta { display: none !important; }
    .gm-burger { display: flex !important; }
    .gm-burger-cb:checked ~ .gm-nav { display: flex !important; position: fixed; left: 0; right: 0; top: 88px; z-index: 60; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(9,9,9,.97); backdrop-filter: blur(20px); padding: 26px 24px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .gm-hero-grid { grid-template-columns: 1fr !important; }
    .gm-hero-art { order: 2; margin: 0 auto !important; }
    .gm-hero-side { order: 3; }
    .gm-trust { flex-wrap: wrap !important; gap: 28px 40px !important; }
    /* section grids stack */
    .gm-where-grid { grid-template-columns: 1fr !important; }
    .gm-where-art { order: -1; }
    .gm-cmp-grid, .gm-combo-grid, .gm-case-grid, .gm-faq-grid { grid-template-columns: 1fr !important; }
    .gm-spot-grid { grid-template-columns: 1fr 1fr !important; }
    .gm-spot-art { grid-column: 1 / -1; order: -1; }
    .gm-talk-grid { grid-template-columns: 1fr !important; text-align: center; }
    .gm-talk-btns { flex-wrap: wrap !important; }
    .gm-combo-cards, .gm-case-cards { grid-template-columns: 1fr 1fr !important; }
    .gm-cmp-scroll { overflow-x: auto !important; }
  }

@media (max-width: 720px) {
    .gm-svc-grid { grid-template-columns: 1fr !important; }
    .gm-where-grid { grid-template-columns: 1fr !important; }
    .gm-spot-grid { grid-template-columns: 1fr !important; }
    .gm-spot-art { order: -1; }
    .gm-combo-cards, .gm-case-cards { grid-template-columns: 1fr !important; }
    .gm-secgrid { grid-template-columns: 34px 1fr !important; gap: 16px !important; }
    .gm-talk-btns { flex-direction: column !important; align-items: stretch !important; }
    .gm-talk-btns a { justify-content: center !important; }
    .gm-hero-h1 { font-size: clamp(56px, 15vw, 96px) !important; }
    .gm-chan-row { flex-direction: column !important; }
  }

/* фонові краплі й патьоки (bg_layers, base.html.j2) */
.gm-bg-drops { position: fixed; inset: 0; pointer-events: none; z-index: 2; overflow: hidden; }
.gm-bg-drops > div { position: absolute; background-repeat: no-repeat; background-size: contain; }
.gm-drops-a1 { top: 110px; left: -120px; width: 250px; height: 360px; background-image: url('/static/icons/drops-a.svg'); opacity: .5; }
.gm-drops-b1 { top: 32%; right: -132px; width: 320px; height: 460px; background-image: url('/static/icons/drops-b.svg'); opacity: .46; transform: scaleX(-1); }
.gm-drops-a2 { bottom: -112px; left: -72px; width: 270px; height: 390px; background-image: url('/static/icons/drops-a.svg'); opacity: .38; transform: rotate(7deg); }
.gm-drops-b2 { bottom: -84px; right: -82px; width: 210px; height: 300px; background-image: url('/static/icons/drops-b.svg'); opacity: .34; transform: rotate(-5deg); }
@media (max-width: 768px) {
    .gm-drops-a2, .gm-drops-b2 { display: none; }
    .gm-drops-a1 { left: -80px; opacity: .45; }
    .gm-drops-b1 { right: -110px; opacity: .4; }
  }


/* torch: бабуля-фонарик підсвічує послугу на ховер (головна, What we do) */
.gm-torch-dim { position: fixed; inset: 0; background: rgba(4,3,6,.82); opacity: 0; transition: opacity .32s ease; pointer-events: none; z-index: 60; }
.gm-torch-beam { position: fixed; inset: 0; opacity: 0; transition: opacity .32s ease; pointer-events: none; z-index: 65; mix-blend-mode: screen; }
.gm-torch-on .gm-torch-dim, .gm-torch-on .gm-torch-beam { opacity: 1; }
.gm-srow.gm-lit { position: relative; z-index: 70; background: rgba(255,255,255,.035); }
.gm-torch-hand { position: fixed; right: 0; width: 340px; z-index: 66; pointer-events: none; opacity: 0; transition: opacity .3s ease; will-change: transform; }
.gm-torch-on .gm-torch-hand { opacity: 1; }
.gm-torch-hand img { display: block; width: 100%; height: auto; }
