.elementor-kit-15{--e-global-color-primary:#017db9;--e-global-color-secondary:#666666;--e-global-color-text:#666666;--e-global-color-accent:#ff4556;--e-global-color-4754c7d1:#f4f4f4;--e-global-color-4d53abc2:#23A455;--e-global-color-331f3735:#000;--e-global-color-3ea579f4:#FFF;--e-global-typography-primary-font-family:"Source Code Pro";--e-global-typography-primary-font-weight:600;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-secondary-font-family:"Source Code Pro";--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-text-font-family:"Source Code Pro";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Source Code Pro";--e-global-typography-accent-font-weight:600;}.elementor-kit-15 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:743px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --gyro-ink:#0f1b2d; --gyro-body:#4a5568; --gyro-muted:#8a94a6; --gyro-line:#e4e8ee; --gyro-paper:#f6f7f9; --gyro-blue:#017db9; --gyro-coral:#ff4556; --gyro-mono:Source Code Pro; }
/* Start custom CSS *//* Header menu (Site Header — Fixed Point): let clicks reach the logo, and make the mobile dropdown readable */
.elementor-location-header .gyro-nav-slot{ pointer-events:none; }
.elementor-location-header .gyro-nav-slot .elementor-menu-toggle,
.elementor-location-header .gyro-nav-slot .elementor-nav-menu--main,
.elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown{ pointer-events:auto; }
.elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown{
  background:#ffffff;
  border-radius:12px;
  box-shadow:0 18px 40px -16px rgba(15,27,45,.35);
  overflow:hidden;
  margin-top:10px;
  min-width:200px;
}
.elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown ul{ flex-direction:column !important; gap:0 !important; }
.elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown li{ opacity:1 !important; transform:none !important; animation:none !important; }
body .elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown a{
  display:block !important;
  color:#0f1b2d !important;
  opacity:1 !important;
  padding:14px 22px !important;
  font-size:13px !important;
  background:transparent !important;
}
body .elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown a::after{ display:none; }
.elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown li + li a{ border-top:1px solid #eef1f5; }
body .elementor-location-header .gyro-nav-slot .elementor-nav-menu--dropdown a:hover{ background:#f6f7f9 !important; }

/* Header: centre the menu / hamburger on the logo.
   Logo top is 18px on desktop and tablets, 14px on phones; the admin bar pushes both down. */
@media (min-width:1025px){
  .elementor-location-header .gyro-nav-slot{ top:14px !important; }
  body.admin-bar .elementor-location-header .gyro-nav-slot{ top:calc(14px + 32px) !important; }
}
@media (max-width:1024px){
  .elementor-location-header .gyro-nav-slot{ top:18.5px !important; }
  body.admin-bar .elementor-location-header .gyro-nav-slot{ top:calc(18.5px + 32px) !important; }
}
@media (max-width:782px){
  body.admin-bar .elementor-location-header .gyro-nav-slot{ top:calc(18.5px + 46px) !important; }
}
@media (max-width:743px){
  .elementor-location-header .gyro-nav-slot{ top:14.5px !important; }
  body.admin-bar .elementor-location-header .gyro-nav-slot{ top:calc(14.5px + 46px) !important; }
}

/* Homepage hero: clear space under the logo and under the devices at every size */
@media (min-width:744px){
  .elementor-11 .elementor-element.elementor-element-8ce2fce{ --min-height:510px !important; min-height:510px !important; }
  .elementor-11 .gflight-wrap{ min-height:500px !important; }
  .elementor-11 .gflight-stage{ padding-top:46px; box-sizing:border-box; }
}
@media (max-width:743px){
  .elementor-11 .elementor-element.elementor-element-8ce2fce{ --min-height:330px !important; min-height:330px !important; }
  .elementor-11 .gflight-wrap{ min-height:330px !important; }
  .elementor-11 .gflight-stage{ padding-top:30px; box-sizing:border-box; }
}
/* Phones held sideways: size the devices by screen height so the whole scene fits */
@media (orientation:landscape) and (max-height:500px){
  .elementor-11 .elementor-element.elementor-element-8ce2fce{ --min-height:340px !important; min-height:340px !important; }
  .elementor-11 .gflight-wrap{ min-height:340px !important; }
  .elementor-11 .gflight-stage{ padding-top:44px; }
  .elementor-11 .gflight-desktop{ width:min(470px, 62vh) !important; }
  .elementor-11 .gflight-mobile{ width:min(142px, 25vh) !important; }
  .elementor-11 .gflight-neck{ width:48px; height:34px; }
  .elementor-11 .gflight-foot{ width:96px; height:5px; }
}

/* Header: no horizon line under the header */
.gyro-horizon{ display:none !important; }

/* Header: full logo matches the scrolled icon — 34px tall, same top-left anchor.
   The black fill turns the white SVG into the boxed brand logo. */
.gyro-logo .gyro-logo-full{
  height:34px !important;
  width:auto !important;
  max-width:none !important;
  top:0 !important;
  left:0 !important;
  background:#010101;
}

/* Phones: a bigger logo (full and scrolled icon both 52px), the hamburger re-centred on it,
   and the hero given the same extra room so the gap above the devices stays ~45px */
@media (max-width:743px){
  .gyro-logo{ height:52px !important; width:220px !important; }
  .gyro-logo .gyro-logo-full{ height:52px !important; }
  .gyro-logo .gyro-logo-icon{ height:52px !important; width:52px !important; }
  .elementor-location-header .gyro-nav-slot{ top:23.5px !important; }
  body.admin-bar .elementor-location-header .gyro-nav-slot{ top:calc(23.5px + 46px) !important; }
  .elementor-11 .elementor-element.elementor-element-8ce2fce{ --min-height:348px !important; min-height:348px !important; }
  .elementor-11 .gflight-wrap{ min-height:348px !important; }
  .elementor-11 .gflight-stage{ padding-top:48px; }
}

/* Homepage testimonials: show three cards; the shuffle script reorders them on each visit */
.gyro-quote-grid > .gyro-card:nth-child(n+4){ display:none !important; }

/* Long-form text (project case studies, blog posts): match the site's body type */
.gyro-prose p{ font-size:16px; line-height:1.7; color:#4a5568; margin:0 0 18px; }
.gyro-prose h1, .gyro-prose h2{ font-family:"Source Code Pro", monospace; font-size:22px; line-height:1.35; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:#0f1b2d; margin:40px 0 18px; }
.gyro-prose h3, .gyro-prose h4{ font-family:"Source Code Pro", monospace; font-size:18px; line-height:1.4; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:#0f1b2d; margin:32px 0 16px; }
.gyro-prose > :first-child, .gyro-prose .elementor-widget-container > :first-child{ margin-top:0; }
.gyro-prose strong{ color:#0f1b2d; }
.gyro-prose a{ color:#017db9; text-decoration:underline; text-underline-offset:3px; }
.gyro-prose a:hover{ color:#ff4556; }
.gyro-prose hr{ border:0; border-top:1px solid #e4e8ee; margin:24px 0; }
.gyro-prose ul, .gyro-prose ol{ margin:0 0 18px; padding-left:20px; }
.gyro-prose li{ font-size:16px; line-height:1.7; color:#4a5568; margin-bottom:6px; }
.gyro-prose img{ max-width:100%; height:auto; border-radius:12px; }
.gyro-prose figure, .gyro-prose .wp-caption{ max-width:100% !important; margin:28px 0; }
.gyro-prose figcaption, .gyro-prose .wp-caption-text{ font-size:13px; color:#8a94a6; margin-top:8px; }
.gyro-prose blockquote:not(.instagram-media){ border-left:3px solid #ff4556; margin:28px 0; padding:4px 0 4px 22px; font-size:18px; color:#0f1b2d; }
.gyro-prose pre, .gyro-prose code{ font-family:"Source Code Pro", monospace; font-size:14px; background:#f6f7f9; border-radius:8px; }
.gyro-prose pre{ padding:16px 18px; overflow-x:auto; }
.gyro-prose iframe{ max-width:100%; }

/* Project pages: "next chapter" button linking an older project to its newer version */
.gyro-prose .gyro-next-chapter{ margin:32px 0 8px; }
.gyro-prose .gyro-next-chapter a{
  display:inline-block;
  background:#ff4556;
  color:#ffffff !important;
  text-decoration:none !important;
  font-family:"Source Code Pro", monospace;
  font-size:14px;
  font-weight:600;
  letter-spacing:.02em;
  padding:15px 26px;
  border-radius:8px;
  box-shadow:0 10px 24px -12px rgba(255,69,86,.8);
  transition:transform .25s ease, background-color .25s ease;
}
.gyro-prose .gyro-next-chapter a:hover{ background:#0f1b2d; color:#ffffff !important; transform:translateY(-2px); }/* End custom CSS */