/* Kisaka & Company — Shared by every page: tokens, global type and layout, header and nav, footer, buttons and the section handoffs. */
/* ===== Global ===== */
:root
   {
      --kisaka-font-family: 'Zalando Sans Expanded', sans-serif;
      --kisaka-font-accent: 'Google Sans Flex', sans-serif;
      --kisaka-btn-radius: 8px;

      /* Placeholder height under fixed navbar so content does not slide underneath */
      --kisaka-header-h: 72px;

      /* Kisaka red + harmonized hues (heroes, accents) */
      --kisaka-red: #cb1f34;

      /* The logo tile's own red, sampled from img/kisaka-favicon.png. Grounds painted
         in it (the footer) swallow the tile, so only the white K shows. */
      --kisaka-logo-red: #cc0033;
      --kisaka-red-700: #9e1829;
      --kisaka-red-800: #7a1220;
      --kisaka-red-900: #521a22;
      --kisaka-red-ink: #140809;
      --kisaka-red-dusk: #1f0d12;
      --kisaka-red-wine: #3d121a;
      --kisaka-red-burgundy: #4a1822;
      --kisaka-red-ember: #8c2434;
      --kisaka-red-glow: #e8485c;
      --kisaka-red-mist: rgba(203, 31, 52, 0.42);
      --kisaka-red-veil: rgba(169, 24, 43, 0.28);

      /* Who we serve / Careers / Contact hero band — same footprint */
      --kisaka-hero-band-min-h: min(46vh, 400px);
      --kisaka-hero-band-pt: calc(var(--kisaka-header-h) + 12px);
      --kisaka-hero-band-pb: clamp(72px, 12vh, 150px);

      /* Shared “curtain” (center scaleX) hover for buttons — same timing as `.btn:before` in normalize */
      --kisaka-btn-curtain-duration: 0.4s;
      --kisaka-btn-curtain-easing: ease;
      --kisaka-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
      --kisaka-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);

      /* Long-tail settle for large type rising out of a mask (footer wordmark). */
      --kisaka-ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
      --kisaka-dur-reveal: 520ms;
      --kisaka-dur-rail: 280ms;

      /* One "beat" — same tempo as the services panel snap (1300ms) and Forge's page enter. */
      --kisaka-dur-page: 1.2s;
      --kisaka-page-plate: #140809;
      --kisaka-header-pad-x: clamp(28px, 4vw, 64px);
      --kisaka-logo-shift: 100px;

      /* Header brand sits in a Bootstrap row (margin -15px) with pl-0, so the mark is 15px left of pad + shift. */
      --kisaka-logo-inset: calc(var(--kisaka-header-pad-x) + var(--kisaka-logo-shift) - 15px);
   }

@media (max-width: 767px)
   {
      :root
         {
            --kisaka-header-h: 96px;
         }
   }

html
   {
      scroll-padding-top: calc(var(--kisaka-header-h) + 8px);
      font-size: 100%;
   }

/* Cross-document page enter. Static HTML has no SPA wrapper, so the viewport-sized
   `root` snapshot is the page (naming `main`/`body` would capture the full document
   height and scale it). The old snapshot is cut, not crossfaded; the new one fades
   up over brand black. `mix-blend-mode: normal` is load-bearing — the UA default
   is `plus-lighter`, which washes the incoming page out.

   The fixed bar is pulled out of `root` so it does not fade with the body. A name
   must be unique per document; `.header-inner` is the painted chrome (`.header`
   itself has no height). Firefox ignores the at-rule and navigates as usual. */
@media (prefers-reduced-motion: no-preference)
   {
      @view-transition
         {
            navigation: auto;
         }

      .header .header-inner
         {
            view-transition-name: site-header;
         }

      ::view-transition
         {
            background-color: var(--kisaka-page-plate);
         }

      ::view-transition-group(root)
         {
            z-index: auto;
         }

      ::view-transition-image-pair(root)
         {
            background: var(--kisaka-page-plate);
            isolation: isolate;
            z-index: 1;
         }

      ::view-transition-old(root), ::view-transition-new(root)
         {
            mix-blend-mode: normal;
         }

      ::view-transition-old(root)
         {
            visibility: hidden;
            animation: none;
            z-index: 1;
         }

      ::view-transition-new(root)
         {
            animation: kisaka-page-fade-in var(--kisaka-dur-page) var(--kisaka-ease-out) both;
            z-index: 2;
         }

      ::view-transition-group(site-header)
         {
            z-index: 3;
         }

      ::view-transition-old(site-header)
         {
            visibility: hidden;
            animation: none;
         }

      ::view-transition-new(site-header)
         {
            animation: none;
         }
   }

@keyframes kisaka-page-fade-in
   {
      from
         {
            opacity: 0;
         }

      to
         {
            opacity: 1;
         }
   }

@media (prefers-reduced-motion: no-preference)
   {
      html
         {
            scroll-behavior: smooth;
         }
   }

.lenis, .lenis body
   {
      height: auto;
   }

.lenis.lenis-smooth
   {
      scroll-behavior: auto !important;
   }

.lenis.lenis-smooth [data-lenis-prevent]
   {
      overscroll-behavior: contain;
   }

.lenis.lenis-stopped
   {
      overflow: clip;
   }

.lenis.lenis-smooth iframe
   {
      pointer-events: none;
   }

/* While a JS-driven scroll animation runs, disable native smooth scrolling so
   the browser and jQuery don't fight over scrollTop (which causes janky scroll). */
html.kisaka-js-scrolling,
html.kisaka-js-scrolling body,
html.kisaka-home-scroll-animating,
html.kisaka-home-scroll-animating body,
html.kisaka-svc-scroll-animating,
html.kisaka-svc-scroll-animating body,
html.kisaka-careers-scroll-animating,
html.kisaka-careers-scroll-animating body
   {
      scroll-behavior: auto !important;
   }

a.btn, button.btn, input.btn, .btn
   {
      border-radius: var(--kisaka-btn-radius) !important;
   }

body
   {
      font-family: var(--kisaka-font-family);
      font-weight: 400;
      font-size: 16px;
      color: #888;
   }

#scrollUp
   {
      bottom: 15px;
      right: 15px;
      padding: 10px 20px;
      background: #CB1F34;
      color: #fff;
      font-size: 25px;
      width: 45px;
      height: 45px;
      text-align: center;
      line-height: 45px;
      padding: 0;
      border-radius: 3px;
      box-shadow: 0px 0px 10px #00000026;
   }

#scrollUp:hover
   {
      background: #2C2D3F;
   }

/* Color Plate */
.color-plate
   {
      position: fixed;
      display: block;
      z-index: 99998;
      padding: 20px;
      width: 245px;
      background: #fff;
      right: -245px;
      text-align: left;
      top: 30%;
      -webkit-transition: all 0.4s ease;
      -moz-transition: all 0.4s ease;
      transition: all 0.4s ease;
      -webkit-box-shadow: -3px 0px 25px -2px rgba(0, 0, 0, 0.2);
      -moz-box-shadow: -3px 0px 25px -2px rgba(0, 0, 0, 0.2);
      box-shadow: -3px 0px 25px -2px rgba(0, 0, 0, 0.2);
   }

.color-plate.active
   {
      right: 0;
   }

.color-plate .color-plate-icon
   {
      position: absolute;
      left: -48px;
      width: 48px;
      height: 45px;
      line-height: 45px;
      font-size: 21px;
      border-radius: 5px 0 0 5px;
      background: #CB1F34;
      text-align: center;
      color: #fff !important;
      top: 0;
      cursor: pointer;
      box-shadow: -4px 0px 5px #00000036;
   }

.color-plate h4
   {
      display: block;
      font-size: 15px;
      margin-bottom: 5px;
      font-weight: 500;
   }

.color-plate p
   {
      font-size: 13px;
      margin-bottom: 15px;
      line-height: 20px;
   }

.color-plate span
   {
      width: 42px;
      height: 35px;
      border-radius: 0;
      cursor: pointer;
      display: inline-block;
      margin-right: 3px;
   }

.color-plate span:hover
   {
      cursor: pointer;
   }

.color-plate span.color1
   {
      background: #CB1F34;
   }

.color-plate span.color2
   {
      background: #2196F3;
   }

.color-plate span.color3
   {
      background: #32B87D;
   }

.color-plate span.color4
   {
      background: #FE754A;
   }

.color-plate span.color5
   {
      background: #F82F56;
   }

.color-plate span.color6
   {
      background: #01B2B7;
   }

.color-plate span.color7
   {
      background: #6c5ce7;
   }

.color-plate span.color8
   {
      background: #85BA46;
   }

.color-plate span.color9
   {
      background: #273c75;
   }

.color-plate span.color10
   {
      background: #FD7272;
   }

.color-plate span.color11
   {
      background: #badc58;
   }

.color-plate span.color12
   {
      background: #44ce6f;
   }

/* ===== Header ===== */
/* No min-height: fixed `.header-inner` does not reserve flow; a min-height here left a white band under the navbar. */
.header
   {
      background-color: #fff;
      position: relative;
      min-height: 0;
   }

.header .header-inner
   {
      background: #ffffff;
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
      z-index: 999;
      width: 100%;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      border-bottom: 1px solid #e8eaef;
      -webkit-transition: background 0.25s ease, -webkit-box-shadow 0.25s ease, box-shadow 0.25s ease;
      -o-transition: background 0.25s ease, box-shadow 0.25s ease;
      transition: background 0.25s ease, box-shadow 0.25s ease, -webkit-box-shadow 0.25s ease;
      -webkit-box-shadow: none;
      box-shadow: none;
   }

.header .header-inner .container
   {
      max-width: none;
      padding-left: var(--kisaka-header-pad-x);
      padding-right: var(--kisaka-header-pad-x);
   }

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px)))
   {
      .header .header-inner
         {
            background: #ffffff;
         }
   }

.header .logo
   {
      /*float: left;
         margin-top: 18px;*/
   }

/* Kisaka header logo (mark + wordmark + tagline) */
.logo
   {
      display: flex;
      align-items: center;
      gap: 10px;
      justify-content: center;
      padding: 10px 0;
      text-decoration: none;
      color: inherit;
   }

.header .kisaka-header-brand .logo
   {
      justify-content: flex-start;
      text-align: left;
   }

.header .kisaka-header-brand
   {
      margin-left: var(--kisaka-logo-shift);
   }

.logo img
   {
      width: 50px;
      height: auto;
   }

.kisaka-logo-stack
   {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      line-height: 1.15;
      gap: 3px;
   }

.kisaka-logo-text
   {
      font-family: "Newsreader", Georgia, "Times New Roman", serif;
      font-optical-sizing: auto;
      font-size: 24px;
      font-weight: 500;
      color: #000;
      letter-spacing: -0.03em;
      margin: 0;
   }

.kisaka-logo-tagline
   {
      font-family: var(--kisaka-font-accent);
      font-size: 11px;
      font-weight: 500;
      color: #555;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      line-height: 1.25;
      margin: 0;
   }

/* Below desktop the tagline takes the name's width and wraps under it
   instead of shrinking below 11px or pushing the logo wider. */
@media (max-width: 1199px)
   {
      .header .kisaka-logo-text
         {
            white-space: nowrap;
         }

      .header .kisaka-logo-tagline
         {
            width: 0;
            min-width: 100%;
            letter-spacing: 0.06em;
            line-height: 1.2;
         }
   }

.logo:hover
   {
      cursor: pointer;
   }

.col-lg-3, .col-12
   {
      display: flex;
      flex-direction: column;

      /* Ensures contents stack if necessary */
      justify-content: center;

      /* Centers content vertically */
      align-items: center;

      /* Centers content horizontally */
      text-align: center;

      /* Ensures text is centered */
      height: 100%;

      /* Optional: Ensures full height */
   }

.header .navbar
   {
      background: none;
      box-shadow: none;
      border: none;
      margin: 0;
      height: 0px;
      min-height: 0px;
   }

.header .nav li
   {
      margin-right: 8px;
      float: left;
      position: relative;
   }

.header .nav li:last-child
   {
      margin-right: 0;
   }

.header .nav li a
   {
      color: #2C2D3F;
      font-family: var(--kisaka-font-accent);
      font-size: 13px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      padding: 12px 7px;
      position: relative;
      display: inline-block;
      position: relative;
      cursor: pointer;
   }

.header .nav li a::before
   {
      position: absolute;
      content: "";
      left: 0;
      bottom: 2px;
      height: 2px;
      width: 0%;
      background: #CB1F34;
      border-radius: 2px 2px 0 0;
      opacity: 0;
      visibility: hidden;
      -webkit-transition: all 0.4s ease;
      -moz-transition: all 0.4s ease;
      transition: all 0.4s ease;
   }

.header .nav li.active a:before
   {
      opacity: 1;
      visibility: visible;
      width: 100%;
   }

.header .nav li.active a
   {
      color: #CB1F34;
   }

.header .nav li:hover a:before
   {
      opacity: 1;
      width: 100%;
      visibility: visible;
   }

.header .nav li:hover a
   {
      color: #CB1F34;
   }

.header .nav li a i
   {
      display: inline-block;
      margin-left: 1px;
      font-size: 13px;
      cursor: pointer;
   }

/* Dropdown Menu */
.header .nav li .dropdown
   {
      background: #fff;
      width: 280px;
      max-width: min(320px, calc(100vw - 40px));
      position: absolute;
      left: -20px;
      top: 100%;
      z-index: 999;
      -webkit-box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
      -moz-box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
      box-shadow: 0px 3px 5px #3333334d;
      transform-origin: 0 0 0;
      transform: scaleY(0.2);
      -webkit-transition: all 0.3s ease 0s;
      -moz-transition: all 0.3s ease 0s;
      transition: all 0.3s ease 0s;
      opacity: 0;
      visibility: hidden;
      top: 100%;
      border-left: 3px solid #CB1F34;
   }

.header .nav li:hover .dropdown
   {
      opacity: 1;
      visibility: visible;
      transform: translateY(0px);
   }

.header .nav li .dropdown li
   {
      float: none;
      margin: 0;
      border-bottom: 1px dashed #eee;
   }

.header .nav li .dropdown li:last-child
   {
      border: none;
   }

.header .nav li .dropdown li a
   {
      padding: 12px 15px;
      color: #666;
      display: block;
      font-weight: 400;
      text-transform: capitalize;
      background: transparent;
      white-space: normal;
      overflow-wrap: break-word;
      word-wrap: break-word;
      cursor: pointer;
      -webkit-transition: all 0.2s ease;
      -moz-transition: all 0.2s ease;
      transition: all 0.2s ease;
   }

.header .nav li .dropdown li a:before
   {
      display: none;
   }

.header .nav li .dropdown li:last-child a
   {
      border-bottom: 0px;
   }

.header .nav li .dropdown li:hover a
   {
      color: #CB1F34;
   }

.header .nav li .dropdown li a:hover
   {
      border-color: transparent;
   }

.header .right-bar
   {
      float: right;
   }

.header .right-bar
   {
      padding-top: 20px;
   }

.header .right-bar
   {
      display: inline-block;
   }

.header .right-bar a
   {
      color: #fff;
      height: 35px;
      width: 35px;
      line-height: 35px;
      text-align: center;
      background: #CB1F34;
      border-radius: 4px;
      display: block;
      font-size: 12px;
   }

.header .right-bar li a:hover
   {
      color: #fff;
      background: #27AE60;
   }

.header .search-top.active .search i:before
   {
      content: "\eee1";
      font-size: 15px;
   }

/* Single-line header: flex row + nowrap nav (desktop / tablet) */
@media (min-width: 768px)
   {
      .header .header-inner .kisaka-header-row
         {
            flex-wrap: nowrap;
         }

      .header .kisaka-header-brand
         {
            flex: 0 0 auto;
            max-width: 38%;
         }

      .header .kisaka-header-brand .logo
         {
            padding: 8px 0;
         }

      .header .kisaka-header-nav-col
         {
            flex: 1 1 0;
            min-width: 0;
         }

      .header .kisaka-header-nav-col .main-menu, .header .kisaka-header-nav-col .navigation
         {
            width: 100%;
         }

      .header .navigation .nav.menu
         {
            display: flex;
            flex-wrap: nowrap;
            align-items: stretch;
            justify-content: flex-end;
            float: none;
            width: 100%;
            margin: 0;
            padding: 0;
            list-style: none;
            box-sizing: border-box;
         }

      .header .nav li
         {
            float: none;
            flex: 0 0 auto;
         }

      .header .nav.menu > li > a
         {
            white-space: nowrap;
         }
   }

@media (min-width: 768px) and (max-width: 1199px)
   {
      .header .nav li
         {
            margin-right: 3px;
         }

      .header .nav li a
         {
            padding: 12px 4px;
            font-size: 11px;
         }

      .header .kisaka-logo-text
         {
            font-size: 14px;
         }

      .header .logo img
         {
            width: 40px;
         }

      .header .nav li a i
         {
            font-size: 11px;
         }
   }

/* Scrolled: same solid bar, light depth */
.header.sticky .header-inner
   {
      background: #ffffff;
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
      -webkit-box-shadow: 0 4px 18px rgba(26, 27, 38, 0.06);
      box-shadow: 0 4px 18px rgba(26, 27, 38, 0.06);
   }

/* WOW / Animate.css: smoother glide (scroll-reveal on homepage) */
.wow.animated
   {
      animation-duration: 0.9s;
      animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
   }

@media (prefers-reduced-motion: reduce)
   {
      .wow
         {
            visibility: visible !important;
            animation: none !important;
            -webkit-animation: none !important;
         }
   }

/* ===== Hero Area ===== */
/* Hero: cross-fade (Owl Animate plugin; class names avoid clash with animate.min.css) */
.owl-carousel .owlHeroFadeOut
   {
      -webkit-animation-name: owlHeroFadeOut;
      animation-name: owlHeroFadeOut;
      -webkit-animation-timing-function: ease-in-out;
      animation-timing-function: ease-in-out;
   }

.owl-carousel .owlHeroFadeIn
   {
      -webkit-animation-name: owlHeroFadeIn;
      animation-name: owlHeroFadeIn;
      -webkit-animation-timing-function: ease-in-out;
      animation-timing-function: ease-in-out;
   }

@-webkit-keyframes owlHeroFadeOut
   {
      from
         {
            opacity: 1;
         }

      to
         {
            opacity: 0;
         }
   }

@keyframes owlHeroFadeOut
   {
      from
         {
            opacity: 1;
         }

      to
         {
            opacity: 0;
         }
   }

@-webkit-keyframes owlHeroFadeIn
   {
      from
         {
            opacity: 0;
         }

      to
         {
            opacity: 1;
         }
   }

@keyframes owlHeroFadeIn
   {
      from
         {
            opacity: 0;
         }

      to
         {
            opacity: 1;
         }
   }

.slider .hero-slider.owl-carousel .animated
   {
      -webkit-animation-duration: 800ms;
      animation-duration: 800ms;
   }

/* Fixed hero band: every slide fills this box (background-size: cover) */
.slider .hero-slider .owl-stage-outer
   {
      overflow: hidden;
      min-height: 600px;
   }

.slider .hero-slider .owl-item
   {
      min-height: 600px;
   }

.slider .owl-carousel .owl-nav
   {
      margin: 0;
      position: absolute;
      top: 50%;
      width: 100%;
      margin-top: -25px;
   }

.slider .owl-carousel .owl-nav div
   {
      height: 50px;
      width: 50px;
      line-height: 50px;
      text-align: center;
      background: #CB1F34;
      color: #fff;
      font-size: 26px;
      position: absolute;
      margin: 0;
      -webkit-transition: all 0.4s ease;
      -moz-transition: all 0.4s ease;
      transition: all 0.4s ease;
      padding: 0;
      border-radius: 50%;
   }

.slider .owl-carousel .owl-nav div:hover
   {
      background: #2C2D3F;
      color: #fff;
   }

.slider .owl-carousel .owl-controls .owl-nav .owl-prev
   {
      left: 20px;
   }

.slider .owl-carousel .owl-controls .owl-nav .owl-next
   {
      right: 20px;
   }

/* ===== Kisaka home — split hero + schedule band ===== */
/* Subtle ambient motion: two low-contrast conic layers, slow drift (boardroom, not nightclub). */
@-webkit-keyframes kisaka-hero-orbit-a
   {
      0%
         {
            -webkit-transform: rotate(0deg) translate3d(-2%, 1%, 0) scale(1);
            transform: rotate(0deg) translate3d(-2%, 1%, 0) scale(1);
         }

      25%
         {
            -webkit-transform: rotate(110deg) translate3d(5%, -4%, 0) scale(1.02);
            transform: rotate(110deg) translate3d(5%, -4%, 0) scale(1.02);
         }

      50%
         {
            -webkit-transform: rotate(230deg) translate3d(-4%, 5%, 0) scale(0.99);
            transform: rotate(230deg) translate3d(-4%, 5%, 0) scale(0.99);
         }

      75%
         {
            -webkit-transform: rotate(300deg) translate3d(4%, 3%, 0) scale(1.015);
            transform: rotate(300deg) translate3d(4%, 3%, 0) scale(1.015);
         }

      100%
         {
            -webkit-transform: rotate(360deg) translate3d(-2%, 1%, 0) scale(1);
            transform: rotate(360deg) translate3d(-2%, 1%, 0) scale(1);
         }
   }

@keyframes kisaka-hero-orbit-a
   {
      0%
         {
            transform: rotate(0deg) translate3d(-2%, 1%, 0) scale(1);
         }

      25%
         {
            transform: rotate(110deg) translate3d(5%, -4%, 0) scale(1.02);
         }

      50%
         {
            transform: rotate(230deg) translate3d(-4%, 5%, 0) scale(0.99);
         }

      75%
         {
            transform: rotate(300deg) translate3d(4%, 3%, 0) scale(1.015);
         }

      100%
         {
            transform: rotate(360deg) translate3d(-2%, 1%, 0) scale(1);
         }
   }

@-webkit-keyframes kisaka-hero-orbit-b
   {
      0%
         {
            -webkit-transform: rotate(12deg) translate3d(3%, -2%, 0) scale(1.01);
            transform: rotate(12deg) translate3d(3%, -2%, 0) scale(1.01);
         }

      30%
         {
            -webkit-transform: rotate(-100deg) translate3d(-5%, 4%, 0) scale(0.98);
            transform: rotate(-100deg) translate3d(-5%, 4%, 0) scale(0.98);
         }

      55%
         {
            -webkit-transform: rotate(-220deg) translate3d(4%, -5%, 0) scale(1.02);
            transform: rotate(-220deg) translate3d(4%, -5%, 0) scale(1.02);
         }

      80%
         {
            -webkit-transform: rotate(-310deg) translate3d(-3%, -3%, 0) scale(1.02);
            transform: rotate(-310deg) translate3d(-3%, -3%, 0) scale(1.02);
         }

      100%
         {
            -webkit-transform: rotate(-348deg) translate3d(3%, -2%, 0) scale(1.01);
            transform: rotate(-348deg) translate3d(3%, -2%, 0) scale(1.01);
         }
   }

@keyframes kisaka-hero-orbit-b
   {
      0%
         {
            transform: rotate(12deg) translate3d(3%, -2%, 0) scale(1.01);
         }

      30%
         {
            transform: rotate(-100deg) translate3d(-5%, 4%, 0) scale(0.98);
         }

      55%
         {
            transform: rotate(-220deg) translate3d(4%, -5%, 0) scale(1.02);
         }

      80%
         {
            transform: rotate(-310deg) translate3d(-3%, -3%, 0) scale(1.02);
         }

      100%
         {
            transform: rotate(-348deg) translate3d(3%, -2%, 0) scale(1.01);
         }
   }

/* Slow shift of the stacked hero gradients so the wash reads alive (not a flat poster). */
@-webkit-keyframes kisaka-hero-wash-bg-drift
   {
      0%, 100%
         {
            background-position: 12% 48%, 88% 52%, 0% 0%;
         }

      35%
         {
            background-position: 78% 28%, 22% 72%, 65% 35%;
         }

      70%
         {
            background-position: 35% 68%, 70% 32%, 30% 85%;
         }
   }

@keyframes kisaka-hero-wash-bg-drift
   {
      0%, 100%
         {
            background-position: 12% 48%, 88% 52%, 0% 0%;
         }

      35%
         {
            background-position: 78% 28%, 22% 72%, 65% 35%;
         }

      70%
         {
            background-position: 35% 68%, 70% 32%, 30% 85%;
         }
   }

/* Home / Who we serve: bar floats over hero (no solid strip behind it). */
.kisaka-home-page .header,
.kisaka-who-serve-page .header,
.kisaka-services-page .header,
.kisaka-contact-page .header,
.kisaka-it-scene-page .header
   {
      background-color: transparent;
   }

/* Full-bleed hero: deep burgundy base with Kisaka red as the focal hue (warm coral / ember accents). */
.kisaka-home-hero__wash
   {
      position: relative;
      z-index: 1;
      overflow: hidden;
      border-radius: 0;
      background-color: var(--kisaka-red-burgundy);
      background-image: radial-gradient(ellipse 115% 88% at 68% 32%, var(--kisaka-red-mist) 0%, transparent 52%), radial-gradient(ellipse 95% 72% at 10% 78%, var(--kisaka-red-veil) 0%, transparent 50%), linear-gradient( 125deg, var(--kisaka-red-ink) 0%, var(--kisaka-red-dusk) 9%, var(--kisaka-red-wine) 20%, var(--kisaka-red-burgundy) 32%, var(--kisaka-red-900) 42%, var(--kisaka-red-800) 47%, #cb1f34 52%, var(--kisaka-red-700) 58%, var(--kisaka-red-wine) 70%, var(--kisaka-red-dusk) 86%, var(--kisaka-red-ink) 100% );
      background-repeat: no-repeat;
      background-size: 135% 135%, 128% 128%, 100% 100%;
      background-position: 18% 45%, 82% 55%, 0 0;
      -webkit-animation: kisaka-hero-wash-bg-drift 32s ease-in-out infinite;
      animation: kisaka-hero-wash-bg-drift 32s ease-in-out infinite;
      will-change: background-position;
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-home-hero__wash
         {
            -webkit-animation: none !important;
            animation: none !important;
            background-size: 100% 100%, 100% 100%, 100% 100%;
            background-position: 50% 50%, 50% 50%, 0 0;
            will-change: auto;
         }
   }

/* ===== Schedule ===== */
.schedule
   {
      background: #fff;
      margin: 0;
      padding: 0;
      height: 230px;
   }

.schedule .single-schedule
   {
      --mouse-x: 50%;
      --mouse-y: 50%;
      position: relative;
      text-align: left;
      z-index: 3;
      border-radius: 22px;
      background: #CB1F34;
      overflow: hidden;
      -webkit-box-shadow: 0 10px 28px rgba(44, 45, 63, 0.1);
      box-shadow: 0 10px 28px rgba(44, 45, 63, 0.1);
      -webkit-transition: -webkit-transform 0.45s cubic-bezier(0.33, 0, 0.2, 1), -webkit-box-shadow 0.45s cubic-bezier(0.33, 0, 0.2, 1);
      transition: transform 0.45s cubic-bezier(0.33, 0, 0.2, 1), box-shadow 0.45s cubic-bezier(0.33, 0, 0.2, 1);
   }

/* Mouse-follow highlight (solid card; glow tracks pointer via --mouse-x / --mouse-y) */
.schedule .single-schedule::after
   {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: 22px;
      z-index: 1;
      pointer-events: none;
      opacity: 0;
      -webkit-transition: opacity 0.35s ease;
      -o-transition: opacity 0.35s ease;
      transition: opacity 0.35s ease;
      background: radial-gradient( ellipse 110% 95% at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255, 255, 255, 0.38) 0%, rgba(255, 220, 226, 0.22) 28%, rgba(203, 31, 52, 0) 58% );
   }

.schedule .single-schedule:hover::after
   {
      opacity: 1;
   }

.schedule .single-schedule .inner
   {
      overflow: hidden;
      position: relative;
      padding: 30px;
      z-index: 2;
      border-radius: 20px;
   }

/* Hover: stays fully opaque; lift + soft shadow only */
.schedule .single-schedule:hover
   {
      background: #CB1F34;
      -webkit-transform: translateY(-5px);
      -ms-transform: translateY(-5px);
      transform: translateY(-5px);
      -webkit-box-shadow: 0 16px 40px rgba(203, 31, 52, 0.32);
      box-shadow: 0 16px 40px rgba(203, 31, 52, 0.32);
   }

@media (prefers-reduced-motion: reduce)
   {
      .schedule .single-schedule::after
         {
            background: radial-gradient( ellipse 110% 95% at 50% 45%, rgba(255, 255, 255, 0.32) 0%, rgba(255, 220, 226, 0.16) 35%, rgba(203, 31, 52, 0) 60% );
         }
   }

.schedule .single-schedule .icon i
   {
      position: absolute;
      font-size: 110px;
      color: #fff;
      -webkit-transition: opacity 0.48s cubic-bezier(0.33, 0, 0.2, 1), -webkit-transform 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      -moz-transition: transform 0.48s cubic-bezier(0.33, 0, 0.2, 1), opacity 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      -ms-transition: transform 0.48s cubic-bezier(0.33, 0, 0.2, 1), opacity 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      -o-transition: transform 0.48s cubic-bezier(0.33, 0, 0.2, 1), opacity 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      transition: transform 0.48s cubic-bezier(0.33, 0, 0.2, 1), opacity 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      transition: transform 0.48s cubic-bezier(0.33, 0, 0.2, 1), opacity 0.48s cubic-bezier(0.33, 0, 0.2, 1), -webkit-transform 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      z-index: -1;
      visibility: visible;
      opacity: 0.2;
      right: -25px;
      bottom: -30px;
   }

.schedule .single-schedule:hover .icon i
   {
      opacity: 0.28;
      -webkit-transform: scale(1.03);
      -ms-transform: scale(1.03);
      transform: scale(1.03);
   }

.schedule .single-schedule span
   {
      display: block;
      color: #fff;
   }

.schedule .single-schedule h4
   {
      font-size: 20px;
      font-weight: 600;
      display: inline-block;
      text-transform: capitalize;
      color: #fff;
      margin-top: 13px;
   }

.schedule .single-schedule p
   {
      color: #fff;
      margin-top: 22px;
   }

.schedule .single-schedule a
   {
      color: #fff;
      margin-top: 25px;
      font-weight: 500;
      display: inline-block;
      position: relative;
   }

.schedule .single-schedule a:before
   {
      position: absolute;
      content: "";
      left: 0;
      bottom: 0;
      height: 1px;
      width: 0%;
      background: #fff;
      -webkit-transition: width 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      -o-transition: width 0.48s cubic-bezier(0.33, 0, 0.2, 1);
      transition: width 0.48s cubic-bezier(0.33, 0, 0.2, 1);
   }

.schedule .single-schedule a:hover:before
   {
      width: 100%;
      width: 100%;
   }

.schedule .single-schedule a i
   {
      margin-left: 10px;
   }

/* ===== service ===== */
/* Skip link: keyboard-first, visible on focus */
.kisaka-skip-link
   {
      position: absolute;
      left: -9999px;
      top: auto;
      width: 1px;
      height: 1px;
      overflow: hidden;
      z-index: 10000;
      padding: 12px 20px;
      background: #cb1f34;
      color: #fff !important;
      font-weight: 600;
      font-size: 14px;
      text-decoration: none;
      border-radius: 0 0 8px 0;
   }

.kisaka-skip-link:focus
   {
      left: 16px;
      top: 8px;
      width: auto;
      height: auto;
      overflow: visible;
      outline: 2px solid #fff;
      outline-offset: 2px;
   }

.kisaka-svc-pillar-breadcrumb__list a
   {
      color: #2c2d3f;
      text-decoration: none;
   }

.kisaka-svc-pillar-breadcrumb__list a:hover
   {
      color: #cb1f34;
      text-decoration: underline;
      text-underline-offset: 2px;
   }

/* Management consultancy pillar — edge photo */
.kisaka-mgmt-pillar-page .kisaka-svc-pillar-hero > .kisaka-hero-edge-photo
   {
      background-image: url("../img/services/consultancy.png");
      background-position: 82% 50%;
      background-size: min(1280px, 220%) auto;
      opacity: 0.9;
   }

.kisaka-svc-pillar-glance__card
   {
      height: 100%;
      background: #fff;
      border: 1px solid #ecedf1;
      border-radius: 16px;
      padding: 26px 24px 24px;
      box-shadow: 0 4px 22px rgba(44, 45, 63, 0.06);
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      text-align: left;
      -webkit-transition: box-shadow 0.25s ease, border-color 0.25s ease, -webkit-transform 0.25s ease;
      transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-svc-pillar-glance__card
         {
            -webkit-transition: none;
            transition: none;
         }
   }

.kisaka-svc-pillar-offer
   {
      background: #fff;
      border-radius: 16px;
      padding: 28px 26px 26px;
      height: 100%;
      border: 1px solid #ecedf1;
      box-shadow: 0 4px 20px rgba(44, 45, 63, 0.05);
      transition: box-shadow 0.25s ease, transform 0.25s ease;
   }

.kisaka-svc-pillar-think-card__title a
   {
      color: #2c2d3f;
      text-decoration: none;
   }

.kisaka-svc-pillar-think-card__title a:hover
   {
      color: #cb1f34;
   }

.kisaka-svc-pillar-impact.blog .single-news img
   {
      width: 100%;
      height: 140px;
      object-fit: cover;
      display: block;
   }

.kisaka-svc-pillar-lead__cta a
   {
      font-weight: 700;
      color: #cb1f34;
      text-decoration: none;
   }

.kisaka-svc-pillar-lead__cta a:hover
   {
      text-decoration: underline;
   }

.testimonials .owl-dots .owl-dot span
   {
      width: 10px;
      height: 10px;
      display: block;
      border-radius: 30px;
      -webkit-transition: all 0.3s ease;
      -moz-transition: all 0.3s ease;
      transition: all 0.3s ease;
      margin: 0;
      background: #fff;
      position: relative;
   }

.testimonials .owl-dots .owl-dot.active span
   {
      background: #fff;
      width: 20px;
   }

/* ===== Clients ===== */
.clients
   {
      background: #f4f5f7;
      background-size: cover;
      background-position: center;
      padding: 100px 0px;
      position: relative;
   }

.clients.overlay::before
   {
      z-index: 0;
      background: linear-gradient( 158deg, rgba(92, 14, 26, 0.88) 0%, rgba(203, 31, 52, 0.58) 42%, rgba(203, 31, 52, 0.5) 58%, rgba(58, 10, 18, 0.85) 100% );
      opacity: 1;
   }

/* Deeper “stage”: vignette + soft inner shadow on top of the red wash */
.clients.overlay::after
   {
      position: absolute;
      content: "";
      left: 0;
      top: 0;
      height: 100%;
      width: 100%;
      z-index: 1;
      pointer-events: none;
      background: radial-gradient( ellipse 85% 55% at 50% 38%, rgba(255, 255, 255, 0.07) 0%, transparent 52% );
      -webkit-box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.32), inset 0 -24px 48px rgba(0, 0, 0, 0.22);
      box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.32), inset 0 -24px 48px rgba(0, 0, 0, 0.22);
   }

.clients.overlay > .container
   {
      position: relative;
      z-index: 2;
   }

.clients-marquee__track
   {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -ms-flex-direction: row;
      flex-direction: row;
      -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
      will-change: transform;
      -webkit-animation: clients-marquee-scroll linear infinite;
      animation: clients-marquee-scroll linear infinite;
   }

@-webkit-keyframes clients-marquee-scroll
   {
      from
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }

      to
         {
            -webkit-transform: translate3d(-50%, 0, 0);
            transform: translate3d(-50%, 0, 0);
         }
   }

@keyframes clients-marquee-scroll
   {
      from
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }

      to
         {
            -webkit-transform: translate3d(-50%, 0, 0);
            transform: translate3d(-50%, 0, 0);
         }
   }

@media (prefers-reduced-motion: reduce)
   {
      .clients-marquee__track
         {
            -webkit-animation: none;
            animation: none;
            -webkit-transform: none;
            transform: none;
         }
   }

body.kisaka-about-page .header
   {
      background-color: transparent;
   }

body.kisaka-about-page .header .header-inner, body.kisaka-about-page .header.sticky .header-inner
   {
      background: transparent;
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
      border: 0;
      border-bottom: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
      -webkit-transition: background 0.28s ease, border-color 0.28s ease, -webkit-box-shadow 0.28s ease;
      transition: background 0.28s ease, border-color 0.28s ease, -webkit-box-shadow 0.28s ease;
      -o-transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
      transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
      transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, -webkit-box-shadow 0.28s ease;
   }

body.kisaka-about-page .header .logo
   {
      color: #fff;
   }

body.kisaka-about-page .header .kisaka-logo-text,
body.kisaka-about-page .header .kisaka-logo-tagline,
body.kisaka-about-page .header .nav.menu > li > a,
body.kisaka-about-page .header .slicknav_menu .slicknav_icon-bar
   {
      color: rgba(255, 255, 255, 0.86);
      -webkit-transition: color 0.28s ease, background-color 0.28s ease;
      -o-transition: color 0.28s ease, background-color 0.28s ease;
      transition: color 0.28s ease, background-color 0.28s ease;
   }

body.kisaka-about-page .header .kisaka-logo-tagline
   {
      color: rgba(255, 255, 255, 0.56);
   }

body.kisaka-about-page .header .nav li.active a, body.kisaka-about-page .header .nav li:hover > a
   {
      color: #fff;
   }

body.kisaka-about-page .header .nav li a::before
   {
      background: rgba(247, 240, 228, 0.86);
   }

body.kisaka-about-page .header .slicknav_menu .slicknav_icon-bar
   {
      background-color: rgba(255, 255, 255, 0.86);
   }

/* Adaptive nav, any page: the bar itself is transparent at rest so the white
   type reads against the dark band behind it. Without this the base opaque
   white .header-inner stayed put and the white type vanished into it. */
body.kisaka-nav-adaptive
   {
      --kisaka-nav-opaque: #11100d;
   }

body.kisaka-nav-adaptive .header
   {
      background-color: transparent;
   }

body.kisaka-nav-adaptive .header .header-inner,
body.kisaka-nav-adaptive .header.sticky .header-inner
   {
      background: transparent;
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
      border: 0;
      border-bottom: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
      -webkit-transition: background 0.28s ease, border-color 0.28s ease, -webkit-box-shadow 0.28s ease;
      -o-transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
      transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, -webkit-box-shadow 0.28s ease;
   }

/* Adaptive nav, any page: white type is the resting state, because an adaptive
   page always opens on a dark band. js/main.js adds .kisaka-nav-adaptive. */
body.kisaka-nav-adaptive .header .logo
   {
      color: #fff;
   }

body.kisaka-nav-adaptive .header .kisaka-logo-text,
body.kisaka-nav-adaptive .header .kisaka-logo-tagline,
body.kisaka-nav-adaptive .header .nav.menu > li > a,
body.kisaka-nav-adaptive .header .slicknav_menu .slicknav_icon-bar
   {
      color: rgba(255, 255, 255, 0.86);
      -webkit-transition: color 0.28s ease, background-color 0.28s ease;
      -o-transition: color 0.28s ease, background-color 0.28s ease;
      transition: color 0.28s ease, background-color 0.28s ease;
   }

body.kisaka-nav-adaptive .header .kisaka-logo-tagline
   {
      color: rgba(255, 255, 255, 0.56);
   }

body.kisaka-nav-adaptive .header .nav li.active a,
body.kisaka-nav-adaptive .header .nav li:hover > a
   {
      color: #fff;
   }

body.kisaka-nav-adaptive .header .nav li a::before
   {
      background: rgba(247, 240, 228, 0.86);
   }

body.kisaka-nav-adaptive .header .slicknav_menu .slicknav_icon-bar
   {
      background-color: rgba(255, 255, 255, 0.86);
   }

/* Past light sections: solid light nav. Over dark bands (hero, meet-team, footer) the white type shows through. */
body.kisaka-nav-on-light .header .header-inner,
body.kisaka-nav-on-light .header.sticky .header-inner
   {
      background: #ffffff;
      border-bottom: 1px solid #e8eaef;
      -webkit-box-shadow: 0 4px 18px rgba(26, 27, 38, 0.06);
      box-shadow: 0 4px 18px rgba(26, 27, 38, 0.06);
   }

body.kisaka-nav-on-light .header .header-inner .logo
   {
      color: #2C2D3F;
   }

body.kisaka-nav-on-light .header .header-inner .kisaka-logo-text,
body.kisaka-nav-on-light .header .header-inner .nav.menu > li > a,
body.kisaka-nav-on-light .header .header-inner .nav li.active a
   {
      color: rgba(19, 20, 24, 0.88);
   }

body.kisaka-nav-on-light .header .header-inner .kisaka-logo-tagline
   {
      color: rgba(19, 20, 24, 0.56);
   }

body.kisaka-nav-on-light .header .header-inner .nav li a::before
   {
      background: #CB1F34;
   }

body.kisaka-nav-on-light .header .header-inner .slicknav_menu .slicknav_icon-bar
   {
      background-color: rgba(19, 20, 24, 0.86);
   }

/* Over the footer, any page: the bar gives way to the footer's logo red, so the
   logo tile melts into it and the white K floats. js/main.js sets the class while
   the footer is behind the bar. !important because every page variant (home,
   About, adaptive, plain white) paints its own bar and none may win here. */
body.kisaka-nav-over-footer .header,
body.kisaka-nav-over-footer .header .header-inner,
body.kisaka-nav-over-footer .header.sticky .header-inner
   {
      background: transparent !important;
      -webkit-backdrop-filter: none !important;
      backdrop-filter: none !important;
      border-color: transparent !important;
      -webkit-box-shadow: none !important;
      box-shadow: none !important;
   }

body.kisaka-nav-over-footer .header .logo,
body.kisaka-nav-over-footer .header .kisaka-logo-text,
body.kisaka-nav-over-footer .header .nav.menu > li > a,
body.kisaka-nav-over-footer .header .nav li.active a,
body.kisaka-nav-over-footer .header .nav li:hover > a
   {
      color: #f7f2ee !important;
   }

body.kisaka-nav-over-footer .header .kisaka-logo-tagline
   {
      color: rgba(247, 242, 238, 0.7) !important;
   }

body.kisaka-nav-over-footer .header .nav li a::before,
body.kisaka-nav-over-footer .header .slicknav_menu .slicknav_icon-bar
   {
      background-color: #f7f2ee !important;
   }

/* The article reading-progress hairline is red on red here: let it go */
body.kisaka-nav-over-footer .header .header-inner::after
   {
      opacity: 0;
   }

/* About page: overlay the panels the way home does. The global light-nav rule
   paints a white bar and a hairline; that reads as a second header on the
   About Kisaka plate. Keep the type dark, drop the chrome. */
body.kisaka-about-page.kisaka-nav-on-light .header .header-inner,
body.kisaka-about-page.kisaka-nav-on-light .header.sticky .header-inner
   {
      background: transparent;
      border-bottom: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
   }

/* About, same as services: hovering a link never draws its underline. */
@media (hover: hover) and (pointer: fine)
   {
      body.kisaka-about-page .header .nav.menu > li:not(.active) > a:hover::before,
      body.kisaka-about-page .header .nav.menu > li:not(.active) > a:focus-visible::before
         {
            opacity: 0;
            visibility: hidden;
            width: 0;
         }
   }

/* --- Services + Insights + IT scene: selected is unique. Selected keeps the
   only loud treatment; other links get a quiet opacity nudge.
   Light bands: a white bar with a hairline. */
body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .header-inner,
body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header.sticky .header-inner
   {
      background: #ffffff;
      border-bottom: 1px solid #e8eaef;
      -webkit-box-shadow: 0 4px 18px rgba(26, 27, 38, 0.06);
      box-shadow: 0 4px 18px rgba(26, 27, 38, 0.06);
   }

/* IT scene plate is #f6f7f9, not white — keep the bar continuous with the page. */
body.kisaka-it-scene-page.kisaka-nav-on-light .header .header-inner,
body.kisaka-it-scene-page.kisaka-nav-on-light .header.sticky .header-inner
   {
      background: #f6f7f9;
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .header-inner .logo
   {
      color: #2C2D3F;
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .header-inner .kisaka-logo-text,
body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .header-inner .nav.menu > li > a
   {
      color: rgba(19, 20, 24, 0.62);
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .header-inner .kisaka-logo-tagline
   {
      color: rgba(19, 20, 24, 0.48);
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .header-inner .nav li a::before
   {
      background: #CB1F34;
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .header-inner .slicknav_menu .slicknav_icon-bar
   {
      background-color: rgba(19, 20, 24, 0.86);
   }

/* Shared motion — soft brand glow on hover, press on down. No pill chip. */
body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page) .header .nav.menu > li > a
   {
      background-color: transparent;
      text-shadow: 0 0 0 transparent;
      -webkit-transition: color 280ms ease, text-shadow 280ms ease, -webkit-transform 140ms var(--kisaka-ease-out, cubic-bezier(0.23, 1, 0.32, 1));
      transition: color 280ms ease, text-shadow 280ms ease, transform 140ms var(--kisaka-ease-out, cubic-bezier(0.23, 1, 0.32, 1));
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page) .header .nav.menu > li > a:active
   {
      -webkit-transform: scale(0.98);
      transform: scale(0.98);
   }

/* Dark hero: mute inactive links; selected alone carries weight + brand mark. */
body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li > a
   {
      color: rgba(255, 255, 255, 0.42);
      font-weight: 500;
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li.active > a
   {
      color: #fff;
      font-weight: 700;
      letter-spacing: 0.04em;
      background-color: transparent;
      text-shadow: none;
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li.active > a::before
   {
      opacity: 1;
      visibility: visible;
      width: 100%;
      height: 2px;
      bottom: 0;
      background: #CB1F34;
      border-radius: 1px;
   }

/* Soft Kisaka-red bloom — color warms in, glow blooms after. */
@media (hover: hover) and (pointer: fine)
   {
      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li:not(.active) > a:hover
         {
            color: rgba(255, 255, 255, 0.98);
            font-weight: 500;
            text-shadow: 0 0 10px rgba(203, 31, 52, 0.55), 0 0 24px rgba(203, 31, 52, 0.32), 0 0 40px rgba(203, 31, 52, 0.16);
         }

      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li:not(.active) > a:hover::before
         {
            opacity: 0;
            visibility: hidden;
            width: 0;
         }
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li:not(.active) > a:focus-visible
   {
      color: rgba(255, 255, 255, 0.98);
      font-weight: 500;
      text-shadow: 0 0 10px rgba(203, 31, 52, 0.55), 0 0 24px rgba(203, 31, 52, 0.32), 0 0 40px rgba(203, 31, 52, 0.16);
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li:not(.active) > a:focus-visible::before
   {
      opacity: 0;
      visibility: hidden;
      width: 0;
   }

/* Light bands: selected = brand red + weight; hover gets a quiet red bloom. */
body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li > a
   {
      font-weight: 500;
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li.active > a
   {
      color: #CB1F34;
      font-weight: 700;
      letter-spacing: 0.04em;
      background-color: transparent;
      text-shadow: none;
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li.active > a::before
   {
      opacity: 1;
      visibility: visible;
      width: 100%;
      height: 2px;
      bottom: 0;
      background: #CB1F34;
      border-radius: 1px;
   }

@media (hover: hover) and (pointer: fine)
   {
      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li:not(.active) > a:hover
         {
            color: #CB1F34;
            font-weight: 500;
            text-shadow: 0 0 12px rgba(203, 31, 52, 0.28), 0 0 28px rgba(203, 31, 52, 0.14);
         }

      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li:not(.active) > a:hover::before
         {
            opacity: 0;
            visibility: hidden;
            width: 0;
         }
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li:not(.active) > a:focus-visible
   {
      color: #CB1F34;
      font-weight: 500;
      text-shadow: 0 0 12px rgba(203, 31, 52, 0.28), 0 0 28px rgba(203, 31, 52, 0.14);
   }

body:is(.kisaka-services-page,
.kisaka-insights-page,
.kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li:not(.active) > a:focus-visible::before
   {
      opacity: 0;
      visibility: hidden;
      width: 0;
   }

@media (prefers-reduced-motion: reduce)
   {
      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page) .header .nav.menu > li > a
         {
            -webkit-transition: color 150ms ease;
            transition: color 150ms ease;
         }

      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page) .header .nav.menu > li > a:active
         {
            -webkit-transform: none;
            transform: none;
         }

      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page) .header .nav.menu > li:not(.active) > a:hover,
      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page) .header .nav.menu > li:not(.active) > a:focus-visible
         {
            text-shadow: none;
         }
   }

@media (prefers-reduced-transparency: reduce)
   {
      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li:not(.active) > a:hover,
      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-adaptive:not(.kisaka-nav-on-light) .header .nav.menu > li:not(.active) > a:focus-visible
         {
            text-shadow: 0 0 8px rgba(203, 31, 52, 0.35);
         }

      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li:not(.active) > a:hover,
      body:is(.kisaka-services-page,
      .kisaka-insights-page,
      .kisaka-it-scene-page).kisaka-nav-on-light .header .nav.menu > li:not(.active) > a:focus-visible
         {
            text-shadow: none;
         }
   }

.kisaka-about-hero__bg
   {
      position: absolute;
      inset: 0;
      z-index: 0;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
      -o-object-position: center 35%;
      object-position: center 35%;
      pointer-events: none;
   }

.kisaka-about-hero__overlay
   {
      position: absolute;
      inset: 0;
      z-index: 1;

      /* Stay dark through the headline band; brighten a little lower so the photo opens up. */
      background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.78)), color-stop(55%, rgba(0, 0, 0, 0.68)), color-stop(72%, rgba(0, 0, 0, 0.42)), to(rgba(0, 0, 0, 0.22)));
      background: -o-linear-gradient(top, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.68) 55%, rgba(0, 0, 0, 0.42) 72%, rgba(0, 0, 0, 0.22) 100%);
      background: linear-gradient(180deg, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.68) 55%, rgba(0, 0, 0, 0.42) 72%, rgba(0, 0, 0, 0.22) 100%);
      pointer-events: none;
   }

.kisaka-about-hero__content
   {
      position: relative;
      z-index: 2;
      width: 100%;
      padding-top: calc(var(--kisaka-header-h) + clamp(72px, 12vh, 160px));
      padding-bottom: clamp(48px, 9vh, 100px);
   }

/* --- About load intro (after akaru.fr/expertises) ------------------------ */
/* js/main.js splits eyebrow, headline and lead into one clip per rendered
   line, then puts the original markup back once the sequence lands. Headline
   lines alternate: up from below, down from above. */
.kisaka-about-hero__line
   {
      display: block;
      overflow: hidden;

      /* Room for descenders inside the clip, without moving the layout. */
      padding-bottom: 0.14em;
      margin-bottom: -0.14em;
   }

.kisaka-about-hero__line-inner
   {
      display: block;
   }

body.kisaka-about-intro-ready .kisaka-about-hero__line-inner
   {
      -webkit-transform: translate3d(0, 115%, 0);
      transform: translate3d(0, 115%, 0);
   }

body.kisaka-about-intro-playing .kisaka-about-hero__line-inner
   {
      will-change: transform;
      -webkit-transition: -webkit-transform 1.2s var(--kisaka-ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
      transition: transform 1.2s var(--kisaka-ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
      -webkit-transition-delay: calc(var(--kisaka-about-line, 0) * 110ms);
      transition-delay: calc(var(--kisaka-about-line, 0) * 110ms);
   }

body.kisaka-about-intro-playing .kisaka-about-hero__rule
   {
      -webkit-transition: -webkit-transform 1.4s var(--kisaka-ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
      transition: transform 1.4s var(--kisaka-ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
   }

body.kisaka-about-intro-playing .kisaka-about-hero__bg
   {
      -webkit-transition: opacity 1.1s var(--kisaka-ease-out, cubic-bezier(0.23, 1, 0.32, 1)), -webkit-transform 2.4s var(--kisaka-ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
      transition: opacity 1.1s var(--kisaka-ease-out, cubic-bezier(0.23, 1, 0.32, 1)), transform 2.4s var(--kisaka-ease-out-expo, cubic-bezier(0.16, 1, 0.3, 1));
   }

/* Scrolling out is painted inline by js/main.js on the scroll clock, which
   already smooths it; a transition on top would only lag behind the page. */
body.kisaka-about-hero-scrubbing .kisaka-about-hero__line-inner,
body.kisaka-about-hero-scrubbing .kisaka-about-hero__rule,
body.kisaka-about-hero-scrubbing .kisaka-about-hero__bg
   {
      -webkit-transition: none;
      transition: none;
   }

/* Resets before the entrance happen off the clock. */
body.kisaka-about-intro-snapping .kisaka-about-hero *,
body.kisaka-about-intro-snapping .kisaka-about-hero
   {
      -webkit-transition: none !important;
      transition: none !important;
   }

/* Kisaka Sustainability: fixed editorial copy with a horizontally scrolling theme rail. */
.kisaka-about-help
   {
      --kisaka-help-bg: #fff;
      --kisaka-help-title: #171822;
      --kisaka-help-body: #616570;
      --kisaka-help-accent: #CB1F34;
      --kisaka-help-button: #CB1F34;
      --kisaka-help-button-border: rgba(203, 31, 52, 0.55);
      --kisaka-help-button-fill: #CB1F34;
      --kisaka-help-button-hover: #fff;
      --kisaka-help-card-title: #242631;
      --kisaka-help-focus-ring: rgba(203, 31, 52, 0.18);
      position: relative;
      overflow: hidden;
      scroll-margin-top: calc(var(--kisaka-header-h, 72px) + 16px);
      padding: clamp(64px, 8vw, 112px) 0 clamp(58px, 7vw, 96px);
      background-color: var(--kisaka-help-bg);
      -webkit-transition: background-color var(--kisaka-dur-rail) var(--kisaka-ease-out);
      -o-transition: background-color var(--kisaka-dur-rail) var(--kisaka-ease-out);
      transition: background-color var(--kisaka-dur-rail) var(--kisaka-ease-out);
   }

body.kisaka-home-page .kisaka-about-help > .container
   {
      width: 100%;
      max-width: none;
      margin-left: 0;
      margin-right: 0;

      /* Match .kisaka-home-mission__copy left edge on the previous panel. */
      padding-left: clamp(24px, 3.4vw, 44px);
      padding-right: 0;
   }

.kisaka-about-help__intro
   {
      position: relative;
      z-index: 2;
      padding-top: 5px;
   }

.kisaka-about-help__eyebrow
   {
      margin: 0 0 18px;
      font-family: var(--kisaka-font-accent);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--kisaka-red);
      -webkit-transition: color 420ms ease;
      -o-transition: color 420ms ease;
      transition: color 420ms ease;
   }

/* Letter-by-letter reveal matched to Navbar Digital's hero heading, shortened
   for a quicker Sustainability theme change. */
.kisaka-about-help__letter-reveal
   {
      display: inline;
   }

.kisaka-about-help__letter-word
   {
      display: inline-block;
      white-space: nowrap;
   }

.kisaka-about-help__letter-shell
   {
      display: inline-block;
      will-change: transform;
   }

.kisaka-about-help__letter-clip
   {
      display: inline-block;
      overflow: hidden;
      padding-bottom: 0.08em;
      margin-bottom: -0.08em;
      vertical-align: bottom;
   }

.kisaka-about-help__letter
   {
      display: inline-block;
      -webkit-transform: translateY(110%);
      -ms-transform: translateY(110%);
      transform: translateY(110%);
      will-change: transform;
   }

@-webkit-keyframes kisaka-about-help-letter-reveal
   {
      to
         {
            -webkit-transform: translateY(0);
            transform: translateY(0);
         }
   }

@keyframes kisaka-about-help-letter-reveal
   {
      to
         {
            -webkit-transform: translateY(0);
            transform: translateY(0);
         }
   }

.kisaka-about-help__lead-reveal
   {
      display: inline;
   }

.kisaka-about-help__lead-word
   {
      display: inline-block;
      opacity: 0;
      -webkit-transform: translate3d(0, 0.55em, 0);
      transform: translate3d(0, 0.55em, 0);
      will-change: opacity, transform;
   }

@-webkit-keyframes kisaka-about-help-word-reveal
   {
      to
         {
            opacity: 1;
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

@keyframes kisaka-about-help-word-reveal
   {
      to
         {
            opacity: 1;
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

.kisaka-about-help__title, .kisaka-about-help__lead, .kisaka-about-help__all-label
   {
      -webkit-transition: opacity 160ms ease, color 420ms ease, -webkit-transform 160ms ease;
      transition: opacity 160ms ease, color 420ms ease, -webkit-transform 160ms ease;
      -o-transition: opacity 160ms ease, color 420ms ease, transform 160ms ease;
      transition: opacity 160ms ease, color 420ms ease, transform 160ms ease;
      transition: opacity 160ms ease, color 420ms ease, transform 160ms ease, -webkit-transform 160ms ease;
   }

/* Card-to-card changes happen in place: the outgoing copy only fades, the
   button is not touched (its label scrambles instead, js/main.js). */
.kisaka-about-help__intro.is-changing .kisaka-about-help__title,
.kisaka-about-help__intro.is-changing .kisaka-about-help__lead
   {
      opacity: 0;
   }

@-webkit-keyframes kisaka-about-help-letter-swap
   {
      to
         {
            opacity: 1;
            -webkit-filter: blur(0);
            filter: blur(0);
         }
   }

@keyframes kisaka-about-help-letter-swap
   {
      to
         {
            opacity: 1;
            -webkit-filter: blur(0);
            filter: blur(0);
         }
   }

@-webkit-keyframes kisaka-about-help-word-swap
   {
      to
         {
            opacity: 1;
         }
   }

@keyframes kisaka-about-help-word-swap
   {
      to
         {
            opacity: 1;
         }
   }

/* Transparent outline, same type and proportions as the home hero actions. */
.kisaka-about-help__all, .kisaka-about-help__all:visited
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      position: relative;
      overflow: hidden;
      z-index: 0;
      align-self: flex-start;
      margin-top: 18px;
      width: auto;
      max-width: 100%;
      min-height: 44px;
      padding: 12px 22px;
      border: 0.5px solid var(--kisaka-help-button-border);
      border-radius: 4px;
      background: transparent;
      color: var(--kisaka-help-title);
      font-family: var(--kisaka-font-accent), 'Google Sans Flex', sans-serif;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      text-decoration: none !important;
      white-space: nowrap;
      -webkit-transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease;
      -o-transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease;
      transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease;
   }

.kisaka-about-help__all .kisaka-home-launch__btn-arrow-box
   {
      z-index: 1;
   }

.kisaka-about-help__button-label-reveal, .kisaka-about-help__button-label-text
   {
      display: inline-block;
   }

.kisaka-about-help__button-label-text
   {
      -webkit-transform: translate3d(0, 120%, 0);
      transform: translate3d(0, 120%, 0);
      will-change: transform;
   }

.kisaka-about-help__all.is-button-prepared
   {
      opacity: 0;
      -webkit-transform: translate3d(0, 10px, 0);
      transform: translate3d(0, 10px, 0);
   }

.kisaka-about-help__all.is-button-revealing
   {
      -webkit-animation: kisaka-about-help-button-reveal 0.44s cubic-bezier(0.16, 1, 0.3, 1) 0.08s both;
      animation: kisaka-about-help-button-reveal 0.44s cubic-bezier(0.16, 1, 0.3, 1) 0.08s both;
   }

.kisaka-about-help__all.is-button-revealing .kisaka-home-launch__btn-arrow-box
   {
      -webkit-animation: kisaka-about-help-button-arrow-reveal 0.38s cubic-bezier(0.16, 1, 0.3, 1) 0.22s both;
      animation: kisaka-about-help-button-arrow-reveal 0.38s cubic-bezier(0.16, 1, 0.3, 1) 0.22s both;
   }

@-webkit-keyframes kisaka-about-help-button-reveal
   {
      from
         {
            opacity: 0;
            -webkit-transform: translate3d(0, 10px, 0);
            transform: translate3d(0, 10px, 0);
         }

      to
         {
            opacity: 1;
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

@keyframes kisaka-about-help-button-reveal
   {
      from
         {
            opacity: 0;
            -webkit-transform: translate3d(0, 10px, 0);
            transform: translate3d(0, 10px, 0);
         }

      to
         {
            opacity: 1;
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

@-webkit-keyframes kisaka-about-help-button-label-reveal
   {
      to
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

@keyframes kisaka-about-help-button-label-reveal
   {
      to
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

@-webkit-keyframes kisaka-about-help-button-arrow-reveal
   {
      from
         {
            opacity: 0;
            -webkit-transform: translate3d(-5px, 5px, 0) rotate(-12deg) scale(0.8);
            transform: translate3d(-5px, 5px, 0) rotate(-12deg) scale(0.8);
         }

      to
         {
            opacity: 1;
            -webkit-transform: translate3d(0, 0, 0) rotate(0) scale(1);
            transform: translate3d(0, 0, 0) rotate(0) scale(1);
         }
   }

@keyframes kisaka-about-help-button-arrow-reveal
   {
      from
         {
            opacity: 0;
            -webkit-transform: translate3d(-5px, 5px, 0) rotate(-12deg) scale(0.8);
            transform: translate3d(-5px, 5px, 0) rotate(-12deg) scale(0.8);
         }

      to
         {
            opacity: 1;
            -webkit-transform: translate3d(0, 0, 0) rotate(0) scale(1);
            transform: translate3d(0, 0, 0) rotate(0) scale(1);
         }
   }

.kisaka-about-help__media img
   {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
      -webkit-transition: -webkit-transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: -webkit-transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
      -o-transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), -webkit-transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
   }

.kisaka-about-help__number
   {
      margin: 0 0 12px;
      font-family: "Newsreader", Georgia, "Times New Roman", serif;
      font-optical-sizing: auto;
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 0.15em;
      color: var(--kisaka-red);
      -webkit-transition: color 420ms ease;
      -o-transition: color 420ms ease;
      transition: color 420ms ease;
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-about-help,
      .kisaka-about-help__media img,
      .kisaka-about-help__all span,
      .kisaka-about-help__title,
      .kisaka-about-help__lead
         {
            -webkit-transition: none;
            -o-transition: none;
            transition: none;
         }

      .kisaka-about-help__letter
         {
            -webkit-animation: none !important;
            animation: none !important;
            -webkit-transform: none;
            -ms-transform: none;
            transform: none;
         }

      .kisaka-about-help__lead-word
         {
            opacity: 1;
            -webkit-animation: none !important;
            animation: none !important;
            -webkit-transform: none;
            transform: none;
         }

      .kisaka-about-help__all.is-button-prepared,
      .kisaka-about-help__all.is-button-revealing,
      .kisaka-about-help__all.is-button-revealing .kisaka-about-help__button-label-text,
      .kisaka-about-help__all.is-button-revealing .kisaka-home-launch__btn-arrow-box
         {
            opacity: 1;
            -webkit-animation: none !important;
            animation: none !important;
            -webkit-transform: none;
            transform: none;
         }
   }

.kisaka-about-intro__quote p
   {
      margin: 0;
      font-family: var(--kisaka-font-accent);
      font-size: clamp(1.15rem, 1rem + 0.55vw, 1.625rem);
      font-weight: 500;
      line-height: 1.35;
      letter-spacing: -0.02em;
      color: #000;
   }

.kisaka-about-intro__swiper img
   {
      display: block;
      width: 100%;
      height: clamp(280px, 42vw, 610px);
      -o-object-fit: cover;
      object-fit: cover;
      -o-object-position: center;
      object-position: center;
      border-radius: 16px;
   }

@media (max-width: 991px)
   {
      .kisaka-about-intro__swiper img
         {
            height: min(72vw, 420px);
         }
   }

/* The theme gives headings and paragraphs a blanket 0.4s transition. */
.kisaka-about-intro.is-armed:not(.is-entering) :is( .kisaka-about-intro__word > span,
.kisaka-about-intro__par,
.kisaka-about-intro__quote p,
.kisaka-about-intro__quote,
.kisaka-about-intro__swiper,
.kisaka-about-intro__swiper img,
.kisaka-about-intro__pagination ),
.kisaka-about-intro.is-armed:not(.is-entering) .kisaka-about-intro__quote::before
   {
      transition: none;
   }

/* In. */
.kisaka-about-intro.is-entering .kisaka-about-intro__swiper
   {
      transition: clip-path 1100ms var(--kisaka-ease-out-expo);
   }

.kisaka-about-intro.is-entering .kisaka-about-intro__pagination
   {
      transition: opacity 400ms var(--kisaka-ease-out) 900ms;
   }

.kisaka-about-intro.is-entering .kisaka-about-intro__par
   {
      transition: opacity 600ms var(--kisaka-ease-out), transform 1000ms var(--kisaka-ease-out-expo);
      transition-delay: calc(300ms + (var(--kisaka-intro-i, 1) - 1) * 80ms);
   }

/* Out, back up: quicker, bottom first. */
.kisaka-about-intro.is-leaving :is(.kisaka-about-intro__par, .kisaka-about-intro__quote p)
   {
      transition: opacity 240ms var(--kisaka-ease-out), transform 320ms var(--kisaka-ease-in-out);
      transition-delay: calc(var(--kisaka-intro-o, 0) * 35ms);
   }

.kisaka-about-intro.is-leaving .kisaka-about-intro__swiper
   {
      transition: clip-path 420ms var(--kisaka-ease-in-out);
   }

.kisaka-about-intro.is-leaving .kisaka-about-intro__pagination
   {
      transition: opacity 150ms var(--kisaka-ease-out);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-about-intro:is(.is-entering,
      .is-leaving) :is( .kisaka-about-intro__word > span,
      .kisaka-about-intro__par,
      .kisaka-about-intro__quote p,
      .kisaka-about-intro__swiper,
      .kisaka-about-intro__swiper img ),
      .kisaka-about-intro:is(.is-entering,
      .is-leaving) .kisaka-about-intro__quote::before
         {
            transition: opacity 300ms var(--kisaka-ease-out);
            transition-delay: 0ms;
         }
   }

@keyframes kisaka-intro-part-out
   {
      from
         {
            opacity: 1;
            transform: none;
         }

      to
         {
            opacity: 0;
            transform: translate3d(0, -40px, 0);
         }
   }

@keyframes kisaka-intro-media-out
   {
      from
         {
            opacity: 1;
            transform: none;
         }

      to
         {
            opacity: 0;
            transform: translate3d(0, -32px, 0) scale(0.96);
         }
   }

.kisaka-about-mission__shape
   {
      position: absolute;
      inset: 0;
      z-index: -1;
      pointer-events: none;
   }

.kisaka-about-mission__k
   {
      position: absolute;
      left: 50%;
      top: 50%;
      height: min(calc(100vh - 120px), 118vw);
      height: min(calc(100svh - 120px), 118vw);
      width: auto;
      aspect-ratio: 121 / 119;
      fill: var(--kisaka-about-mission-shape);
      -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      pointer-events: none;
   }

/* Scripted: both statements share the centre of one screen and take turns.
   Every letter starts dim; the script lights them. */
.kisaka-about-mission.is-live .kisaka-about-mission__block
   {
      position: absolute;
      left: 50%;
      top: 50%;
      width: calc(100% - 2 * clamp(20px, 5vw, 52px));
      -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
      will-change: transform, opacity;
   }

.kisaka-about-mission.is-live .kisaka-about-mission__k
   {
      opacity: 0;
      -webkit-transform: translate(-50%, -50%) scale(0.85);
      transform: translate(-50%, -50%) scale(0.85);
      -webkit-transition: opacity 0.9s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 0.9s cubic-bezier(0.23, 1, 0.32, 1);
      transition: opacity 0.9s cubic-bezier(0.23, 1, 0.32, 1), transform 0.9s cubic-bezier(0.23, 1, 0.32, 1);
   }

/* The mission's entrance is played, not scrubbed: lines rise in from 85%
   a tenth of a second apart once the stage arrives, and sink back out if
   the reader turns round before reading. */
.kisaka-about-mission.is-live [data-side="mission"] .kisaka-about-mission__line,
.kisaka-about-mission.is-live [data-side="mission"] .kisaka-about-mission__label
   {
      opacity: 0;
      -webkit-transform: scale(0.85);
      transform: scale(0.85);
      -webkit-transition: opacity 0.55s cubic-bezier(0.23, 1, 0.32, 1), -webkit-transform 0.55s cubic-bezier(0.23, 1, 0.32, 1);
      transition: opacity 0.55s cubic-bezier(0.23, 1, 0.32, 1), transform 0.55s cubic-bezier(0.23, 1, 0.32, 1);
      -webkit-transition-delay: calc(var(--line, 0) * 0.1s);
      transition-delay: calc(var(--line, 0) * 0.1s);
   }

.kisaka-about-mission.is-live.is-entered .kisaka-about-mission__k,
.kisaka-about-mission.is-live.is-entered [data-side="mission"] .kisaka-about-mission__line,
.kisaka-about-mission.is-live.is-entered [data-side="mission"] .kisaka-about-mission__label
   {
      opacity: 1;
      -webkit-transform: none;
      transform: none;
   }

.kisaka-about-mission.is-live.is-entered .kisaka-about-mission__k
   {
      -webkit-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
   }

/* Arriving from below lands on the finished (white) state; nothing replays. */
.kisaka-about-mission.is-instant *, .kisaka-about-mission.is-instant .kisaka-about-mission__k
   {
      -webkit-transition: none !important;
      transition: none !important;
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-about-mission.is-live .kisaka-about-mission__k
         {
            -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
         }

      .kisaka-about-mission.is-live [data-side="mission"] .kisaka-about-mission__line,
      .kisaka-about-mission.is-live [data-side="mission"] .kisaka-about-mission__label
         {
            -webkit-transform: none;
            transform: none;
         }

      .kisaka-about-mission.is-live .kisaka-about-mission__k,
      .kisaka-about-mission.is-live [data-side="mission"] .kisaka-about-mission__line,
      .kisaka-about-mission.is-live [data-side="mission"] .kisaka-about-mission__label
         {
            -webkit-transition: opacity 0.3s linear;
            transition: opacity 0.3s linear;
         }
   }

.kisaka-about-stand__num
   {
      position: absolute;
      left: 6cqw;
      top: 6.4cqw;
      margin: 0;
      font-family: var(--kisaka-font-family);
      font-size: max(10px, 2.4cqw);
      font-weight: 600;
      letter-spacing: 0.04em;
      color: var(--tile-ink);
      opacity: 0.7;
   }

.kisaka-about-stand__mark svg
   {
      width: 100%;
      height: 100%;
   }

.kisaka-about-stand__note span
   {
      color: var(--kisaka-red);
   }

.kisaka-about-stand__eyebrow, .kisaka-about-stand__foot
   {
      -webkit-transition: opacity 0.6s linear;
      transition: opacity 0.6s linear;
   }

.kisaka-about-stand__foot
   {
      -webkit-transition-delay: 0.6s;
      transition-delay: 0.6s;
   }

.kisaka-about-stand__tile
   {
      -webkit-transition: opacity 0.45s linear, -webkit-transform 1.25s var(--kisaka-ease-out-expo);
      transition: opacity 0.45s linear, transform 1.25s var(--kisaka-ease-out-expo);
      -webkit-transition-delay: calc(var(--enter, 0) * 70ms + 0.05s);
      transition-delay: calc(var(--enter, 0) * 70ms + 0.05s);
   }

.kisaka-about-stand.is-armed:not(.is-in) .kisaka-about-stand__eyebrow,
.kisaka-about-stand.is-armed:not(.is-in) .kisaka-about-stand__foot
   {
      opacity: 0;
   }

.kisaka-about-stand.is-armed:not(.is-in) .kisaka-about-stand__tile
   {
      opacity: 0;
      -webkit-transform: translate3d(42vw, 0, 0);
      transform: translate3d(42vw, 0, 0);
   }

/* Exit, going back up to the mission: the entrance reversed and quicker.
   Tiles slide off the way they came, rightmost first; the title pales back
   to near-white; then the page cuts to the mission's white. */
.kisaka-about-stand.is-leaving .kisaka-about-stand__tile
   {
      opacity: 0;
      -webkit-transform: translate3d(24vw, 0, 0);
      transform: translate3d(24vw, 0, 0);
      -webkit-transition: opacity 0.28s linear, -webkit-transform 0.28s var(--kisaka-ease-out);
      transition: opacity 0.28s linear, transform 0.28s var(--kisaka-ease-out);
      -webkit-transition-delay: calc(var(--exit, 0) * 30ms);
      transition-delay: calc(var(--exit, 0) * 30ms);
   }

.kisaka-about-stand.is-leaving .kisaka-about-stand__eyebrow,
.kisaka-about-stand.is-leaving .kisaka-about-stand__foot
   {
      opacity: 0;
      -webkit-transition-duration: 0.2s;
      transition-duration: 0.2s;
      -webkit-transition-delay: 0s;
      transition-delay: 0s;
   }

.kisaka-about-stand.is-instant *
   {
      -webkit-transition: none !important;
      transition: none !important;
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-about-stand.is-leaving .kisaka-about-stand__tile,
      .kisaka-about-stand.is-armed:not(.is-in) .kisaka-about-stand__tile
         {
            -webkit-transform: none;
            transform: none;
         }

      .kisaka-about-stand__tile, .kisaka-about-stand__char
         {
            -webkit-transition-duration: 0.3s;
            transition-duration: 0.3s;
         }
   }

/* Phrases that travel with the drawing: they pick up the accent as the walk
   lights each component, and stay ordinary type until then. */
.kisaka-about-system__mark
   {
      color: inherit;
      transition: color 220ms ease-out;
   }

.kisaka-about-system__outcomes li
   {
      margin: 0;
      font-family: var(--kisaka-font-accent);

      /* Sized to the column so all three lines share one row, capped at 22px */
      font-size: clamp(13px, 2.95cqi, 22px);
      font-weight: 500;
      line-height: 1.4;
      letter-spacing: -0.02em;
      color: var(--kisaka-about-system-ink);
      white-space: nowrap;
   }

@media (max-width: 639px)
   {
      .kisaka-about-system__outcomes li
         {
            font-size: 18px;
         }
   }

.kisaka-qs__head-title span
   {
      color: var(--kisaka-qs-faint);
   }

.kisaka-qs__legend li
   {
      display: flex;
      align-items: center;
      gap: 7px;
      font-family: var(--kisaka-font-accent);
      font-size: 0.6875rem;
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--kisaka-qs-mute);
   }

.kisaka-qs__edge
   {
      fill: none;
      stroke: var(--kisaka-qs-wire);
      stroke-width: 1.5;
      marker-end: url(#kisaka-qs-arrow);
      transition: stroke 220ms ease-out, opacity 520ms var(--kisaka-ease-out) var(--kisaka-qs-delay, 0ms);
   }

/* A single dash per wire, looping. `pathLength="100"` normalises the dash so a
   short hop and a long leg travel at the same apparent speed, and one dash plus
   one gap is exactly one period, so the loop has no seam.
   The engagement spine keeps running on its own; selecting a component only
   changes which wires are worth watching. */
.kisaka-qs__flow
   {
      fill: none;
      stroke: var(--kisaka-qs-wire);
      stroke-width: 2;
      stroke-linecap: round;
      stroke-dasharray: 9 100;
      stroke-dashoffset: 109;
      opacity: 0;
      transition: opacity 220ms ease-out, stroke 220ms ease-out;
   }

@keyframes kisaka-qs-flow
   {
      from
         {
            stroke-dashoffset: 109;
         }

      to
         {
            stroke-dashoffset: 0;
         }
   }

.kisaka-qs__node-frame
   {
      fill: var(--kisaka-qs-node);
      stroke: var(--kisaka-qs-rule);
      stroke-width: 1;
      transition: fill 220ms ease-out, stroke 220ms ease-out;
   }

.kisaka-qs__node-name
   {
      font-family: var(--kisaka-font-accent);
      font-size: 16px;
      font-weight: 400;
      letter-spacing: -0.2px;
      text-anchor: middle;
      fill: var(--kisaka-qs-name);
      transition: fill 220ms ease-out;
   }

.kisaka-qs__node-badge
   {
      fill: rgba(10, 16, 26, 0.035);
      stroke: rgba(10, 16, 26, 0.1);
      stroke-width: 1;
      transition: stroke 220ms ease-out;
   }

.kisaka-qs__node-tag
   {
      font-family: var(--kisaka-font-accent);
      font-size: 11.5px;
      font-weight: 500;
      letter-spacing: 1.4px;
      text-transform: uppercase;
      text-anchor: middle;
      fill: var(--kisaka-qs-mute);
      transition: fill 220ms ease-out;
   }

.kisaka-qs__chip-frame
   {
      fill: rgba(10, 16, 26, 0.035);
      stroke: rgba(10, 16, 26, 0.1);
      stroke-width: 1;
      transition: fill 220ms ease-out, stroke 220ms ease-out;
   }

.kisaka-qs__chip-label
   {
      font-family: var(--kisaka-font-accent);
      font-size: 8.5px;
      font-weight: 500;
      letter-spacing: 0.02em;
      text-anchor: middle;
      fill: var(--kisaka-qs-mute);
      pointer-events: none;
      transition: fill 220ms ease-out;
   }

/* Line art, one weight throughout. It brightens along the engagement, so the
   drawing carries its own direction even before a wire is read. */
.kisaka-qs__node-icon
   {
      fill: none;
      stroke: var(--kisaka-qs-icon, var(--kisaka-qs-faint));
      stroke-width: 1.25;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: stroke 220ms ease-out;
   }

.kisaka-qs__list-chips span
   {
      padding: 4px 8px;
      border: 1px solid rgba(10, 16, 26, 0.12);
      background: rgba(10, 16, 26, 0.03);
      font-size: 0.6875rem;
      font-weight: 500;
      letter-spacing: 0.01em;
      line-height: 1.2;
      color: var(--kisaka-qs-mute);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-qs__edge,
      .kisaka-qs__flow,
      .kisaka-qs__node-frame,
      .kisaka-qs__node-name,
      .kisaka-qs__node-badge,
      .kisaka-qs__node-tag,
      .kisaka-qs__chip-frame,
      .kisaka-qs__chip-label,
      .kisaka-qs__node-icon
         {
            transition-duration: 1ms;
         }
   }

.kisaka-about-founder__letter p
   {
      margin: 0 0 1em;
      font-family: var(--kisaka-font-accent);
      font-size: clamp(1rem, 0.95rem + 0.2vw, 1.1rem);
      font-weight: 400;
      line-height: 1.7;
      color: #2b3038;
   }

.kisaka-about-founder__media img
   {
      position: relative;
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 4 / 5;
      object-fit: cover;
      border-radius: 20px;
      box-shadow: 0 18px 48px rgba(21, 33, 52, 0.12);
   }

.kisaka-about-meet-team__pic
   {
      position: absolute;
      inset: 0;
      z-index: 0;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 16%;
      -webkit-transform: scale(1.05);
      -ms-transform: scale(1.05);
      transform: scale(1.05);
      -webkit-transform-origin: center 18%;
      -ms-transform-origin: center 18%;
      transform-origin: center 18%;
      filter: saturate(0.92) contrast(1.04);
   }

.kisaka-about-meet-team__meta
   {
      position: relative;
      z-index: 3;
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 16px;
      width: 100%;
   }

.kisaka-about-meet-team__link
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 28px;
      min-height: 36px;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: none;
      box-shadow: none;
      color: #fff;
      font-size: 18px;
      line-height: 1;
      text-decoration: none;
      -webkit-transition: color 160ms ease, -webkit-transform 100ms ease-out;
      transition: color 160ms ease, transform 100ms ease-out;
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-about-meet-team__link
         {
            -webkit-transition: color 160ms ease;
            transition: color 160ms ease;
         }
   }

.kisaka-eng__rail-track
   {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      width: 1px;
      background: rgba(255, 255, 255, 0.12);
      overflow: hidden;
   }

.kisaka-eng__rail-progress
   {
      position: absolute;
      inset: 0;
      background: var(--kisaka-red);
      transform: scaleY(var(--kisaka-eng-progress, 0));
      transform-origin: top center;
      transition: transform 280ms var(--kisaka-ease-out);
   }

.kisaka-eng__step-index
   {
      font-size: 0.75rem;
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.08em;
      font-variant-numeric: tabular-nums;
      color: rgba(255, 255, 255, 0.28);
      transition: color 200ms ease-out;
   }

.kisaka-eng__step-note
   {
      max-width: 34ch;
      font-size: clamp(0.8125rem, 0.79rem + 0.15vw, 0.9375rem);
      line-height: 1.5;
      text-wrap: pretty;
      color: rgba(255, 255, 255, 0.42);
      transition: color 220ms ease-out;
   }

.kisaka-eng__head-title span
   {
      color: rgba(255, 255, 255, 0.38);
   }

.kisaka-eng__edge
   {
      fill: none;
      stroke: rgba(255, 255, 255, 0.18);
      stroke-width: 1.5;
      marker-end: url(#kisaka-eng-arrow);
      transition: stroke 220ms ease-out, opacity 520ms var(--kisaka-ease-out) var(--kisaka-eng-delay, 0ms);
   }

/* A single dash per lit wire, looping. `pathLength="100"` normalises the dash
   so a short hop and the long return leg travel at the same apparent speed,
   and one dash plus one gap is exactly one period, so the loop has no seam. */
.kisaka-eng__flow
   {
      fill: none;
      stroke: #fff;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-dasharray: 9 100;
      stroke-dashoffset: 109;
      opacity: 0;
      transition: opacity 220ms ease-out;
   }

@keyframes kisaka-eng-flow
   {
      from
         {
            stroke-dashoffset: 109;
         }

      to
         {
            stroke-dashoffset: 0;
         }
   }

.kisaka-eng__node-frame
   {
      fill: #151515;
      stroke: rgba(255, 255, 255, 0.12);
      stroke-width: 1;
      transition: fill 220ms ease-out, stroke 220ms ease-out;
   }

.kisaka-eng__node-name
   {
      font-family: var(--kisaka-font-accent);
      font-size: 16px;
      font-weight: 400;
      letter-spacing: -0.2px;
      text-anchor: middle;
      fill: rgba(255, 255, 255, 0.82);
      transition: fill 220ms ease-out;
   }

.kisaka-eng__node-badge
   {
      fill: rgba(255, 255, 255, 0.03);
      stroke: rgba(255, 255, 255, 0.08);
      stroke-width: 1;
      transition: stroke 220ms ease-out;
   }

.kisaka-eng__node-tag
   {
      font-family: var(--kisaka-font-accent);
      font-size: 11.5px;
      font-weight: 500;
      letter-spacing: 1.4px;
      text-transform: uppercase;
      text-anchor: middle;
      fill: rgba(255, 255, 255, 0.42);
      transition: fill 220ms ease-out;
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-eng__step-index,
      .kisaka-eng__step-note,
      .kisaka-eng__edge,
      .kisaka-eng__flow,
      .kisaka-eng__node-frame,
      .kisaka-eng__node-name,
      .kisaka-eng__node-badge,
      .kisaka-eng__node-tag,
      .kisaka-eng__rail-progress
         {
            transition-duration: 1ms;
         }
   }

.kisaka-about-meet-team__join-link
   {
      display: inline-flex;
      align-items: center;
      gap: 0.28em;
      margin: -8px;
      padding: 8px;
      color: inherit;
      text-decoration: none;
      cursor: pointer;
      touch-action: manipulation;
      transform: scale(1);
      transition: transform 100ms ease-out;
   }

.kisaka-about-meet-team__join-link:active
   {
      transform: scale(0.97);
   }

.kisaka-about-meet-team__join-title
   {
      margin: 0;
      font-family: var(--kisaka-font-family);
      font-size: clamp(1.5rem, 1.28rem + 0.7vw, 1.875rem);
      font-weight: 600;
      line-height: 1.1;
      letter-spacing: -0.03em;
      text-wrap: balance;
      color: var(--kisaka-meet-team-fg);
      transition: color 180ms ease-out;
   }

.kisaka-about-meet-team__join-accent
   {
      color: var(--kisaka-red);
      transition: color 180ms ease-out;
   }

.kisaka-about-meet-team__join-arrow-icon
   {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
   }

.kisaka-about-meet-team__join-arrow-icon--ghost
   {
      transform: translate(-115%, 115%);
   }

.kisaka-about-meet-team__join-link:hover .kisaka-about-meet-team__join-arrow-icon:not(.kisaka-about-meet-team__join-arrow-icon--ghost),
.kisaka-about-meet-team__join-link:focus-visible .kisaka-about-meet-team__join-arrow-icon:not(.kisaka-about-meet-team__join-arrow-icon--ghost),
.kisaka-about-meet-team__join-link:active .kisaka-about-meet-team__join-arrow-icon:not(.kisaka-about-meet-team__join-arrow-icon--ghost)
   {
      transform: translate(115%, -115%);
   }

.kisaka-about-meet-team__join-link:hover .kisaka-about-meet-team__join-arrow-icon--ghost,
.kisaka-about-meet-team__join-link:focus-visible .kisaka-about-meet-team__join-arrow-icon--ghost,
.kisaka-about-meet-team__join-link:active .kisaka-about-meet-team__join-arrow-icon--ghost
   {
      transform: translate(0, 0);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-about-meet-team__join-link, .kisaka-about-meet-team__join-link:active
         {
            transform: none;
            transition-duration: 1ms;
         }

      .kisaka-about-meet-team__join-title,
      .kisaka-about-meet-team__join-accent,
      .kisaka-about-meet-team__join-arrow-icon
         {
            transition-duration: 1ms;
         }

      .kisaka-about-meet-team__join-arrow-icon--ghost,
      .kisaka-about-meet-team__join-link:hover .kisaka-about-meet-team__join-arrow-icon:not(.kisaka-about-meet-team__join-arrow-icon--ghost),
      .kisaka-about-meet-team__join-link:focus-visible .kisaka-about-meet-team__join-arrow-icon:not(.kisaka-about-meet-team__join-arrow-icon--ghost),
      .kisaka-about-meet-team__join-link:active .kisaka-about-meet-team__join-arrow-icon:not(.kisaka-about-meet-team__join-arrow-icon--ghost),
      .kisaka-about-meet-team__join-link:hover .kisaka-about-meet-team__join-arrow-icon--ghost,
      .kisaka-about-meet-team__join-link:focus-visible .kisaka-about-meet-team__join-arrow-icon--ghost,
      .kisaka-about-meet-team__join-link:active .kisaka-about-meet-team__join-arrow-icon--ghost
         {
            transform: none;
         }
   }

/* Built for institutions — typographic directory */
.kisaka-about-industries
   {
      --kisaka-industries-ink: #080808;
      --kisaka-industries-muted: rgba(8, 8, 8, 0.58);
      --kisaka-industries-rule: rgba(8, 8, 8, 0.08);
      --kisaka-industries-material: rgba(8, 8, 8, 0.055);
      --kisaka-industries-material-press: rgba(8, 8, 8, 0.1);
      --kisaka-industries-radius: 12px;
      position: relative;
      z-index: 1;
      padding: clamp(72px, 10vh, 100px) 0 clamp(80px, 12vh, 120px);
      background: #fff;
      color: var(--kisaka-industries-ink);
      overflow: hidden;
   }

.kisaka-about-industries__inner
   {
      display: grid;
      grid-template-columns: 1fr;
      grid-template-areas: "intro" "dir" "foot";
      align-items: start;
      gap: clamp(28px, 4vw, 40px);
      width: 100%;
      max-width: 1440px;
      margin: 0 auto;
      padding: 0 clamp(20px, 5vw, 72px);
      box-sizing: border-box;
   }

.kisaka-about-industries__intro
   {
      grid-area: intro;
   }

.kisaka-about-industries__directory
   {
      grid-area: dir;
   }

.kisaka-about-industries__foot
   {
      grid-area: foot;
   }

@media (min-width: 992px)
   {
      .kisaka-about-industries__inner
         {
            grid-template-columns: minmax(420px, 0.45fr) minmax(0, 1fr);
            grid-template-areas: "intro dir" "foot dir";
            align-items: center;
            column-gap: clamp(40px, 6vw, 96px);
            row-gap: 20px;
         }

      .kisaka-about-industries__intro
         {
            align-self: end;
         }

      .kisaka-about-industries__foot
         {
            align-self: start;
         }
   }

.kisaka-about-industries__intro
   {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      max-width: 28rem;
   }

.kisaka-about-industries__foot
   {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      max-width: none;
   }

.kisaka-about-industries__title
   {
      margin: 0;
      max-width: 12ch;
      font-family: var(--kisaka-font-family);
      font-size: clamp(2.15rem, 1.35rem + 2.8vw, 4.25rem);
      font-weight: 600;
      line-height: 1.05;
      letter-spacing: -0.04em;
      font-optical-sizing: auto;
      text-wrap: balance;
      color: var(--kisaka-industries-ink);
   }

.kisaka-about-industries__lead
   {
      margin: 0.35em 0 0;
      font-family: var(--kisaka-font-accent);
      font-size: clamp(1.2rem, 1.05rem + 0.7vw, 1.85rem);
      font-weight: 500;
      line-height: 1.2;
      letter-spacing: -0.03em;
      color: var(--kisaka-industries-muted);
   }

.kisaka-about-industries__note
   {
      margin: 0;
      max-width: 38ch;
      font-family: var(--kisaka-font-accent);
      font-size: 15px;
      font-weight: 400;
      line-height: 1.55;
      letter-spacing: 0;
      color: #5a5d68;
   }

.kisaka-about-industries__note a, .kisaka-about-industries__note a:visited
   {
      display: inline-flex;
      align-items: center;
      gap: 0.32em;
      position: relative;
      color: var(--kisaka-red);
      font-weight: 500;
      text-decoration: none;
   }

.kisaka-about-industries__note-label
   {
      position: relative;
   }

.kisaka-about-industries__note-label:before
   {
      position: absolute;
      content: "";
      left: 0;
      bottom: 0;
      height: 1px;
      width: 0;
      background: currentColor;
      -webkit-transition: width var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing);
      -o-transition: width var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing);
      transition: width var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing);
   }

.kisaka-about-industries__note a:hover .kisaka-about-industries__note-label:before,
.kisaka-about-industries__note a:focus-visible .kisaka-about-industries__note-label:before,
.kisaka-about-industries__note a:active .kisaka-about-industries__note-label:before
   {
      width: 100%;
   }

.kisaka-about-industries__note-arrow
   {
      position: relative;
      display: inline-block;
      width: 0.85em;
      height: 0.85em;
      flex: none;
      overflow: hidden;
      color: currentColor;
   }

.kisaka-about-industries__note-arrow-icon
   {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
   }

.kisaka-about-industries__note-arrow-icon--ghost
   {
      transform: translate(-115%, 115%);
   }

.kisaka-about-industries__note a:hover .kisaka-about-industries__note-arrow-icon:not(.kisaka-about-industries__note-arrow-icon--ghost),
.kisaka-about-industries__note a:focus-visible .kisaka-about-industries__note-arrow-icon:not(.kisaka-about-industries__note-arrow-icon--ghost),
.kisaka-about-industries__note a:active .kisaka-about-industries__note-arrow-icon:not(.kisaka-about-industries__note-arrow-icon--ghost)
   {
      transform: translate(115%, -115%);
   }

.kisaka-about-industries__note a:hover .kisaka-about-industries__note-arrow-icon--ghost,
.kisaka-about-industries__note a:focus-visible .kisaka-about-industries__note-arrow-icon--ghost,
.kisaka-about-industries__note a:active .kisaka-about-industries__note-arrow-icon--ghost
   {
      transform: translate(0, 0);
   }

.kisaka-about-industries__note a:focus-visible
   {
      outline: 2px solid var(--kisaka-red);
      outline-offset: 3px;
   }

.kisaka-about-industries__btns
   {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: center;
      gap: 10px 12px;
      margin-top: 16px;
   }

.kisaka-about-industries__btns .kisaka-home-launch__btn
   {
      flex: 0 0 auto;
   }

.kisaka-about-industries__btns .kisaka-home-launch__btn:focus-visible
   {
      outline: 2px solid var(--kisaka-red);
      outline-offset: 3px;
   }

@media (max-width: 420px)
   {
      .kisaka-about-industries__btns
         {
            flex-wrap: wrap;
         }
   }

.kisaka-about-industries__directory
   {
      position: relative;
      min-width: 0;
      margin: 0 -10px;
   }

.kisaka-about-industries__highlight
   {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      height: 64px;
      border-radius: var(--kisaka-industries-radius);
      background: var(--kisaka-industries-material);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
      opacity: 0;
      pointer-events: none;
      transform: translate3d(0, 0, 0);
      will-change: transform, opacity;
   }

.kisaka-about-industries__directory.is-pressed .kisaka-about-industries__highlight
   {
      background: var(--kisaka-industries-material-press);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
   }

.kisaka-about-industries__list
   {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      list-style: none;
      margin: 0;
      padding: 0;
   }

.kisaka-about-industries__item
   {
      margin: 0;
   }

.kisaka-about-industries__link
   {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      min-height: 52px;
      padding: 14px 18px;
      border-radius: var(--kisaka-industries-radius);
      color: inherit;
      text-decoration: none;
      touch-action: manipulation;
   }

.kisaka-about-industries__link::after
   {
      content: "";
      position: absolute;
      left: 18px;
      right: 18px;
      bottom: 0;
      height: 1px;
      background: var(--kisaka-industries-rule);
      pointer-events: none;
      opacity: 1;
      transition: opacity 120ms ease-out;
   }

.kisaka-about-industries__item:last-child .kisaka-about-industries__link::after
   {
      content: none;
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover::after,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible::after,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__item:has( + .kisaka-about-industries__item .kisaka-about-industries__link:hover) .kisaka-about-industries__link::after,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__item:has( + .kisaka-about-industries__item .kisaka-about-industries__link:focus-visible) .kisaka-about-industries__link::after,
.kisaka-about-industries__link.is-hot::after,
.kisaka-about-industries__item:has( + .kisaka-about-industries__item .kisaka-about-industries__link.is-hot) .kisaka-about-industries__link::after,
.kisaka-about-industries__link:focus-visible::after
   {
      opacity: 0;
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible
   {
      background: var(--kisaka-industries-material);
   }

.kisaka-about-industries__defs
   {
      position: absolute;
      width: 0;
      height: 0;
      overflow: hidden;
   }

.kisaka-about-industries__icon
   {
      flex: none;
      display: block;
      line-height: 0;
      color: var(--kisaka-industries-ink);
   }

.kisaka-about-industries__icon svg
   {
      display: block;
   }

.kisaka-about-industries__icon-grid, .kisaka-about-industries__icon-glyph
   {
      -webkit-clip-path: inset(0 0 0 0);
      clip-path: inset(0 0 0 0);
      -webkit-transition: opacity 140ms var(--kisaka-ease-out, cubic-bezier(0.22, 1, 0.36, 1));
      transition: opacity 140ms var(--kisaka-ease-out, cubic-bezier(0.22, 1, 0.36, 1));
   }

.kisaka-about-industries__icon-grid
   {
      opacity: 0.14;
   }

.kisaka-about-industries__icon-glyph
   {
      opacity: 0.55;
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__icon-grid,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-grid,
.kisaka-about-industries__link.is-hot .kisaka-about-industries__icon-grid,
.kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-grid
   {
      opacity: 0.05;
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__icon-glyph,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-glyph,
.kisaka-about-industries__link.is-hot .kisaka-about-industries__icon-glyph,
.kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-glyph
   {
      opacity: 0.96;
   }

/* The icon lifts with a slight overshoot while its glyph prints in bottom to
   top over the dot grid, replaying each time a row becomes hot. */
.kisaka-about-industries__icon svg
   {
      overflow: visible;
      transform-origin: 50% 60%;
      -webkit-transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
      transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1);
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__icon svg,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon svg,
.kisaka-about-industries__link.is-hot .kisaka-about-industries__icon svg,
.kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon svg
   {
      transform: translateY(-1px) scale(1.12) rotate(-4deg);
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__icon-glyph,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-glyph,
.kisaka-about-industries__link.is-hot .kisaka-about-industries__icon-glyph,
.kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-glyph
   {
      -webkit-animation: kisaka-industries-glyph-print 520ms var(--kisaka-ease-out, cubic-bezier(0.22, 1, 0.36, 1)) both;
      animation: kisaka-industries-glyph-print 520ms var(--kisaka-ease-out, cubic-bezier(0.22, 1, 0.36, 1)) both;
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__icon-grid,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-grid,
.kisaka-about-industries__link.is-hot .kisaka-about-industries__icon-grid,
.kisaka-about-industries__link:focus-visible .kisaka-about-industries__icon-grid
   {
      -webkit-animation: kisaka-industries-grid-flash 520ms ease-out both;
      animation: kisaka-industries-grid-flash 520ms ease-out both;
   }

@-webkit-keyframes kisaka-industries-glyph-print
   {
      0%
         {
            -webkit-clip-path: inset(100% 0 0 0);
            clip-path: inset(100% 0 0 0);
         }

      100%
         {
            -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
         }
   }

@keyframes kisaka-industries-glyph-print
   {
      0%
         {
            -webkit-clip-path: inset(100% 0 0 0);
            clip-path: inset(100% 0 0 0);
         }

      100%
         {
            -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
         }
   }

@-webkit-keyframes kisaka-industries-grid-flash
   {
      0%
         {
            opacity: 0.14;
         }

      35%
         {
            opacity: 0.32;
         }

      100%
         {
            opacity: 0.05;
         }
   }

@keyframes kisaka-industries-grid-flash
   {
      0%
         {
            opacity: 0.14;
         }

      35%
         {
            opacity: 0.32;
         }

      100%
         {
            opacity: 0.05;
         }
   }

.kisaka-about-industries__copy
   {
      display: flex;
      flex: 1;
      flex-direction: column;
      gap: 3px;
      min-width: 0;
   }

.kisaka-about-industries__name
   {
      margin: 0;
      font-family: var(--kisaka-font-accent);
      font-size: clamp(1.02rem, 0.96rem + 0.28vw, 1.22rem);
      font-weight: 600;
      line-height: 1.25;
      letter-spacing: -0.025em;
      color: var(--kisaka-industries-ink);
      transition: color 120ms ease-out;
   }

.kisaka-about-industries__promise
   {
      margin: 0;
      font-family: var(--kisaka-font-accent);
      font-size: clamp(0.9rem, 0.86rem + 0.16vw, 1.02rem);
      font-weight: 400;
      line-height: 1.4;
      letter-spacing: 0;
      color: var(--kisaka-industries-muted);
      transition: color 120ms ease-out;
   }

.kisaka-about-industries__arrow
   {
      display: flex;
      flex: none;
      align-items: center;
      justify-content: center;
      width: 0.72em;
      height: 0.72em;
      color: var(--kisaka-red);
      opacity: 0;
      transition: opacity 120ms ease-out;
   }

.kisaka-about-industries__arrow svg
   {
      display: block;
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__name,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__name,
.kisaka-about-industries__link.is-hot .kisaka-about-industries__name
   {
      color: var(--kisaka-red);
   }

.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__promise,
.kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__promise,
.kisaka-about-industries__link.is-hot .kisaka-about-industries__promise
   {
      color: rgba(8, 8, 8, 0.72);
   }

.kisaka-about-industries__link.is-hot .kisaka-about-industries__arrow
   {
      opacity: 1;
   }

.kisaka-about-industries__link:focus-visible
   {
      outline: 2px solid var(--kisaka-red);
      outline-offset: 2px;
   }

@media (hover: none)
   {
      .kisaka-about-industries__arrow
         {
            opacity: 0.38;
            color: var(--kisaka-industries-ink);
         }

      .kisaka-about-industries__link.is-hot .kisaka-about-industries__arrow
         {
            color: var(--kisaka-red);
            opacity: 1;
         }

      .kisaka-about-industries__icon-glyph
         {
            opacity: 0.58;
         }
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-about-industries__btns .kisaka-home-launch__btn,
      .kisaka-about-industries__note-label:before,
      .kisaka-about-industries__note-arrow-icon,
      .kisaka-about-industries__name,
      .kisaka-about-industries__promise,
      .kisaka-about-industries__arrow,
      .kisaka-about-industries__icon-grid,
      .kisaka-about-industries__icon-glyph
         {
            transition: none;
         }

      .kisaka-about-industries__note-arrow-icon--ghost,
      .kisaka-about-industries__note a:hover .kisaka-about-industries__note-arrow-icon:not(.kisaka-about-industries__note-arrow-icon--ghost),
      .kisaka-about-industries__note a:focus-visible .kisaka-about-industries__note-arrow-icon:not(.kisaka-about-industries__note-arrow-icon--ghost),
      .kisaka-about-industries__note a:active .kisaka-about-industries__note-arrow-icon:not(.kisaka-about-industries__note-arrow-icon--ghost),
      .kisaka-about-industries__note a:hover .kisaka-about-industries__note-arrow-icon--ghost,
      .kisaka-about-industries__note a:focus-visible .kisaka-about-industries__note-arrow-icon--ghost,
      .kisaka-about-industries__note a:active .kisaka-about-industries__note-arrow-icon--ghost
         {
            transform: none;
         }

      .kisaka-about-industries__arrow
         {
            transform: none;
         }

      .kisaka-about-industries__icon-grid, .kisaka-about-industries__icon-glyph
         {
            -webkit-clip-path: none;
            clip-path: none;
            -webkit-animation: none !important;
            animation: none !important;
         }

      .kisaka-about-industries__icon svg
         {
            transition: none;
            transform: none !important;
         }
   }

@media (hover: none) and (prefers-reduced-motion: reduce)
   {
      .kisaka-about-industries__icon-glyph
         {
            opacity: 0.58;
         }
   }

@media (prefers-reduced-transparency: reduce)
   {
      .kisaka-about-industries
         {
            --kisaka-industries-material: #f0f0f0;
            --kisaka-industries-material-press: #e4e4e4;
         }

      .kisaka-about-industries__highlight
         {
            box-shadow: none;
         }
   }

@media (prefers-contrast: more)
   {
      .kisaka-about-industries
         {
            --kisaka-industries-muted: rgba(8, 8, 8, 0.82);
            --kisaka-industries-rule: rgba(8, 8, 8, 0.28);
            --kisaka-industries-material: #ececec;
            --kisaka-industries-material-press: #d8d8d8;
         }

      .kisaka-about-industries__icon-grid
         {
            opacity: 0.08;
         }

      .kisaka-about-industries__icon-glyph
         {
            opacity: 0.78;
         }
   }

/* ===== Team ===== */
.team
   {
      background: #f4f5f7;
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      position: relative;
   }

.blog .single-news .news-body h2 a:hover
   {
      color: #CB1F34;
   }

/* OAG card: entire tile is one <a.kisaka-news-card-hitarea> (avoids dead zones where inner <a> didn’t cover h2/p padding) */
.blog a.kisaka-news-card-hitarea
   {
      display: block;
      text-decoration: none;
      color: inherit;
      -webkit-tap-highlight-color: rgba(203, 31, 52, 0.15);
   }

.appointment .button .btn
   {
      font-weight: 500;
   }

/* ===== Login ===== */
.login .inner
   {
      box-shadow: 0px 0px 10px #00000024;
      border-radius: 5px;
      overflow: hidden;
   }

/* ===== Register ===== */
.register .inner
   {
      box-shadow: 0px 0px 10px #00000024;
      border-radius: 5px;
      overflow: hidden;
   }

.register .form
   {
      margin-top: 30px;
   }

.register .form button
   {
      border: none;
   }

.register .form .btn
   {
      display: inline-block;
      margin-right: 10px;
      color: #fff;
      line-height: 20px;
      width: 100%;
   }

.register .form .btn:hover
   {
      background: #CB1F34;
      color: #fff;
   }

/* ===== Faq ===== */
.accordion
   {
      padding-left: 0;
      margin: 0;
      padding: 0;
   }

.accordion p
   {
      font-size: 15px;
      display: none;
      padding: 20px 45px 15px 20px;
      margin-bottom: 0;
   }

.accordion a
   {
      font-size: 16px;
      width: 100%;
      display: block;
      cursor: pointer;
      font-weight: 400;
      padding: 15px 0 15px 18px;
      border-radius: 0;
      background: #fff;
      color: #333;
      border: 1px solid #eee;
   }

.accordion a:hover
   {
      color: #fff !important;
      background: #CB1F34 !important;
   }

.accordion a:after
   {
      position: absolute;
      right: 20px;
      content: "+";
      top: 16px;
      color: #232323;
      font-size: 25px;
      font-weight: 700;
   }

.accordion a:hover:after
   {
      color: #fff !important;
   }

.accordion li
   {
      position: relative;
      list-style-type: none;
      margin-bottom: 30px;
   }

.accordion li:first-child
   {
      border-top: 0;
   }

.accordion li:last-child
   {
      margin-bottom: 0;
   }

.accordion li a.active
   {
      color: #ffffff;
      background-color: #CB1F34;
      border: 1px solid #CB1F34;
   }

.accordion li a.active:after
   {
      content: "-";
      font-size: 25px;
      color: #ffffff;
   }

/* ===== Contact Us ===== */
.contact-us .inner
   {
      box-shadow: 0px 0px 10px #00000024;
      border-radius: 5px;

      /* visible so WOW fadeInUp isn’t clipped (was overflow:hidden) */
      overflow: visible;
   }

/*
   * Universal form validation (form-validate.js).
   *
   * Replaces native browser "Please fill out this field." popups with a small
   * red message that sits above the input. Each .kisaka-vfield-wrap reserves
   * a fixed 13px strip above its field via padding-top, into which the error
   * <span> is absolutely placed. Showing or hiding the error never shifts
   * any other content on the page.
   */
.kisaka-vfield-wrap
   {
      display: block;
      position: relative;
      padding-top: 13px;
      margin: 0;
      width: 100%;
   }

fieldset.kisaka-vfield-wrap
   {
      padding-top: 13px;
   }

.kisaka-vfield-error
   {
      display: block;
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      margin: 0;
      padding: 0;
      font-size: 10.5px !important;
      font-weight: 600 !important;
      line-height: 13px !important;
      letter-spacing: 0.01em;
      color: #cb1f34 !important;
      white-space: nowrap;
      overflow: hidden;
      -o-text-overflow: ellipsis;
      text-overflow: ellipsis;
      opacity: 0;
      pointer-events: none;
      -webkit-transition: opacity 0.12s ease;
      transition: opacity 0.12s ease;
      text-transform: none;
   }

.kisaka-vfield-wrap--error > .kisaka-vfield-error
   {
      opacity: 1;
   }

.kisaka-vfield-wrap--error input,
.kisaka-vfield-wrap--error textarea,
.kisaka-vfield-wrap--error select
   {
      border-color: #cb1f34 !important;
      box-shadow: 0 0 0 1px rgba(203, 31, 52, 0.22) !important;
   }

.kisaka-vfield-wrap--fieldset.kisaka-vfield-wrap--error > legend
   {
      color: #cb1f34 !important;
   }

.contact-us .form
   {
      margin-top: 30px;
   }

.contact-us .form button
   {
      border: none;
   }

.contact-us .form .btn
   {
      display: inline-block;
      margin-right: 10px;
      color: #fff;
      line-height: 20px;
      width: 100%;
   }

.contact-us .form .btn:hover
   {
      background: #CB1F34;
      color: #fff;
   }

.contact-us .form button.btn:disabled, .contact-us .form button.btn[disabled]
   {
      opacity: 0.5;
      cursor: not-allowed;
   }

/* 404 lives in css/kisaka-error.css */
/* End Our Mission CSS */
/* ===== Section handoffs (js/kisaka-motion.js: curtain, fillText) ===== */
/* Curtain: the held section is translated down by exactly the distance
   scrolled while the incoming one enters, so it stays put and the incoming
   panel slides over it with a hard edge. The timeline name, scope and travel
   are set inline per handoff; this only fires where scroll-driven animations
   are supported (the script checks before wiring anything).

   Holding for a full screen of scroll so the held section is gone before
   it lets go. Mission is shorter than the screen, so ending on `entry` let
   go of the hero while it still showed behind the header, and the photo
   jumped from its top to its bottom in one frame. */
.kisaka-curtain-held
   {
      animation: kisaka-curtain linear none;
      animation-range: cover 0% cover var(--kisaka-curtain-travel, 100vh);
   }

.kisaka-curtain-over
   {
      position: relative;
      z-index: 1;
   }

@keyframes kisaka-curtain
   {
      from
         {
            transform: translate3d(0, 0, 0);
         }

      to
         {
            transform: translate3d(0, var(--kisaka-curtain-travel, 100vh), 0);
         }
   }

/* Letter fill: words stay unbroken; each letter's opacity is scrubbed inline. */
.kisaka-fill__word
   {
      display: inline-block;
      white-space: nowrap;
   }

.kisaka-fill__char
   {
      display: inline-block;
   }

@supports (animation-timeline: view())
   {
      body.kisaka-home-page .kisaka-about-help.is-morph > .container
         {
            transition: opacity 240ms var(--kisaka-ease-out), transform 240ms var(--kisaka-ease-out);
         }

      body.kisaka-home-page .kisaka-about-help.is-morph.is-morphing > .container
         {
            opacity: 0;
         }

      /* Leaving up into the morph (js/main.js, smoothScrollTo): the copy and
         cards drop toward the bottom edge together, the edge the site's upward
         exits use, and are gone well before the fill starts to shrink (the
         first ~12% of the move, ~200ms into the 1s morph glide). The restage that
         follows is then invisible. */
      body.kisaka-home-page .kisaka-about-help.is-morph.is-leaving-to-mission > .container
         {
            opacity: 0;
            transform: translate3d(0, 24px, 0);
         }
   }

.kisaka-home-mission__fill
   {
      display: none;
   }

@keyframes kisaka-home-mission-out
   {
      to
         {
            opacity: 0;
            transform: translate3d(0, -24px, 0);
         }
   }

@keyframes kisaka-home-mission-fade
   {
      to
         {
            opacity: 0;
         }
   }

@keyframes kisaka-home-mission-fill
   {
      0%
         {
            opacity: 0;
            clip-path: inset(var(--hm-t) var(--hm-r) var(--hm-b) var(--hm-l));
         }

      10%
         {
            opacity: 1;
            clip-path: inset(var(--hm-t) var(--hm-r) var(--hm-b) var(--hm-l));
            animation-timing-function: ease-in-out;
         }

      78%, 100%
         {
            opacity: 1;
            clip-path: inset(0 0 0 0);
         }
   }

/* ===== Footer ===== */
/* Full-page footer: a single brand-red panel that carries the closing pitch,
   the sitemap, the legal line and the wordmark. */
.kisaka-footer
   {
      --kf-ink: #140809;
      --kf-cream: #f7f2ee;
      --kf-cream-70: rgba(247, 242, 238, 0.7);
      --kf-cream-45: rgba(247, 242, 238, 0.45);
      --kf-rule: rgba(247, 242, 238, 0.22);
      --kf-gutter: clamp(20px, 5vw, 88px);

      /* Fallback until js/kisaka-footer.js measures the exact width-filling size. */
      --kf-wordmark-size: clamp(26px, min(8.8vw, 11vh), 148px);
      --kf-block: clamp(18px, 3.4vh, 56px);

      /* Two faces: the article serif speaks (headline, wordmark),
         Google Sans Flex is for everything read at a glance. */
      --kf-serif: "Newsreader", Georgia, "Times New Roman", serif;
      --kisaka-font-family: var(--kisaka-font-accent);
      position: relative;
      isolation: isolate;
      background: var(--kisaka-logo-red);
      color: var(--kf-cream);
      font-family: var(--kisaka-font-accent);
      overflow: hidden;
   }

/* No wash: the panel is one flat logo red, so the logo tile disappears into it */
.kisaka-footer__bg
   {
      display: none;
   }

.kisaka-footer__inner
   {
      width: 100%;
      max-width: 1560px;
      margin: 0 auto;
      padding: 0 var(--kf-gutter);
   }

.kisaka-footer__content
   {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      gap: var(--kf-block);
      min-height: 100svh;
      padding-top: calc(var(--kisaka-header-h, 72px) + var(--kf-block));
      padding-bottom: clamp(16px, 2.2vh, 36px);
      box-sizing: border-box;
   }

/* ---- shared type ---- */
.kisaka-footer__eyebrow
   {
      display: block;
      margin: 0;
      font-family: var(--kisaka-font-accent);
      font-size: 11px;
      font-weight: 500;
      line-height: 1.4;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--kf-cream-70);
   }

.kisaka-footer__rule
   {
      height: 1px;
      background: var(--kf-rule);
   }

/* ---- top: closing pitch ---- */
.kisaka-footer__top
   {
      display: flex;
      justify-content: space-between;
      align-items: stretch;
      gap: clamp(20px, 3vh, 56px);
      flex-wrap: wrap;
   }

.kisaka-footer__lede
   {
      flex: 1 1 100%;
      max-width: 58rem;
   }

.kisaka-footer__headline
   {
      margin: 0 0 20px;
      max-width: none;
      color: var(--kf-cream);
      font-family: var(--kf-serif);
      font-optical-sizing: auto;

      /* A serif reads smaller than the sans at the same size: one step up */
      font-size: clamp(28px, min(3.8vw, 5.2vh), 58px);
      line-height: 1.04;
      letter-spacing: -0.02em;
      font-weight: 400;
      text-wrap: balance;
   }

/* Only the authored muted span, which carries no class; the spans the
   letter fill (js/kisaka-motion.js) adds all have one and must inherit. */
.kisaka-footer__headline span:not([class])
   {
      color: var(--kf-cream-45);
   }

.kisaka-footer__sub
   {
      margin: 0;
      max-width: 42ch;
      color: var(--kf-cream-70);
      font-size: 16px;
      line-height: 1.6;
      letter-spacing: 0.005em;
   }

/* ---- body: contact column + three sitemap columns ---- */
.kisaka-footer__body
   {
      display: grid;
      grid-template-columns: 1.75fr 1fr 1fr 1fr;
      gap: clamp(22px, min(3.4vw, 3.6vh), 52px);
   }

.kisaka-footer__col
   {
      display: flex;
      flex-direction: column;
      gap: clamp(12px, 2vh, 26px);
   }

.kisaka-footer__meta
   {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
      font-family: var(--kisaka-font-accent);
      font-size: 14px;
      line-height: 1.5;
      color: var(--kf-cream-70);
   }

.kisaka-footer__meta > li
   {
      display: flex;
      align-items: flex-start;
      gap: 10px;
   }

.kisaka-footer__meta a
   {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      color: var(--kf-cream);
      text-decoration: none;
      transition: opacity 240ms var(--kisaka-ease-out);
   }

.kisaka-footer__meta a:hover, .kisaka-footer__meta a:focus-visible
   {
      opacity: 0.6;
      color: var(--kf-cream);
   }

.kisaka-footer__meta-icon
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: none;
      width: 1.1em;
      margin-top: 0.15em;
      font-size: 15px;
      line-height: 1;
      color: var(--kf-cream-45);
   }

.kisaka-footer__meta-text
   {
      min-width: 0;
   }

/* Live open/closed indicator (js/kisaka-footer.js sets the state) */
.kisaka-footer__status
   {
      margin-top: 4px;
      color: var(--kf-cream-70);
   }

.kisaka-footer__status.is-open .kisaka-footer__status-clock
   {
      color: #6ee7a0;
      animation: kisakaFooterPulse 2.4s var(--kisaka-ease-out) infinite;
   }

@keyframes kisakaFooterPulse
   {
      0%, 100%
         {
            opacity: 1;
         }

      60%
         {
            opacity: 0.65;
         }
   }

.kisaka-footer__social
   {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      gap: 10px;
   }

.kisaka-footer__social a
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      border: 1px solid var(--kf-rule);
      color: var(--kf-cream);
      font-size: 15px;
      text-decoration: none;
      transition: background-color 280ms var(--kisaka-ease-out), color 280ms var(--kisaka-ease-out), border-color 280ms var(--kisaka-ease-out);
   }

.kisaka-footer__social-svg
   {
      width: 15px;
      height: 15px;
   }

.kisaka-footer__social a:hover, .kisaka-footer__social a:focus-visible
   {
      background: var(--kf-cream);
      border-color: var(--kf-cream);
      color: var(--kisaka-red);
   }

.kisaka-footer__links
   {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: clamp(8px, 1.2vh, 15px);
   }

/* ---- link: label rolls up, diagonal arrow flies out ---- */
.kisaka-footer__link
   {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding-bottom: 4px;
      color: var(--kf-cream);
      text-decoration: none;
      font-size: clamp(15px, 1.1vw, 18px);
      line-height: 1.3;
      letter-spacing: -0.01em;
   }

.kisaka-footer__link:focus-visible
   {
      color: var(--kf-cream);
   }

.kisaka-footer__link-col
   {
      position: relative;
      display: flex;
      flex-direction: column;
      height: 1.3em;
      overflow: hidden;
   }

.kisaka-footer__link-row
   {
      flex: none;
      height: 1.3em;
      line-height: 1.3em;
      transition: transform 260ms var(--kisaka-ease-out);
   }

.kisaka-footer__link:focus-visible .kisaka-footer__link-row
   {
      transform: translateY(-100%);
   }

.kisaka-footer__link-arrow-box
   {
      position: relative;
      display: inline-block;
      width: 0.92em;
      height: 0.92em;
      flex: none;
      overflow: hidden;
      color: var(--kf-cream-45);
   }

.kisaka-footer__link:focus-visible .kisaka-footer__link-arrow-box
   {
      color: var(--kf-cream);
   }

.kisaka-footer__link-arrow
   {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1);
   }

.kisaka-footer__link-arrow--ghost
   {
      transform: translate(-115%, 115%);
   }

.kisaka-footer__link:focus-visible .kisaka-footer__link-arrow:not(.kisaka-footer__link-arrow--ghost)
   {
      transform: translate(115%, -115%);
   }

.kisaka-footer__link:focus-visible .kisaka-footer__link-arrow--ghost
   {
      transform: translate(0, 0);
   }

.kisaka-footer__link-rule
   {
      position: absolute;
      left: calc(0.92em + 10px);
      right: 0;
      bottom: 0;
      width: auto;
      height: 1px;
      background: var(--kf-cream);
      transform: scaleX(0);
      transform-origin: 0% 50%;
      transition: transform 260ms var(--kisaka-ease-out);
   }

.kisaka-footer__link:focus-visible .kisaka-footer__link-rule
   {
      transform: scaleX(1);
   }

/* Hover only where there is a real pointer: on touch a tap would leave the
   roll stuck. Rolling in takes longer than rolling back out. */
@media (hover: hover) and (pointer: fine)
   {
      .kisaka-footer__link:hover
         {
            color: var(--kf-cream);
         }

      .kisaka-footer__link:hover .kisaka-footer__link-row
         {
            transform: translateY(-100%);
         }

      .kisaka-footer__link:hover .kisaka-footer__link-arrow-box
         {
            color: var(--kf-cream);
         }

      .kisaka-footer__link:hover .kisaka-footer__link-arrow:not(.kisaka-footer__link-arrow--ghost)
         {
            transform: translate(115%, -115%);
         }

      .kisaka-footer__link:hover .kisaka-footer__link-arrow--ghost
         {
            transform: translate(0, 0);
         }

      .kisaka-footer__link:hover .kisaka-footer__link-rule
         {
            transform: scaleX(1);
         }
   }

@media (prefers-reduced-motion: no-preference)
   {
      .kisaka-footer__link:focus-visible .kisaka-footer__link-row,
      .kisaka-footer__link:focus-visible .kisaka-footer__link-arrow,
      .kisaka-footer__link:focus-visible .kisaka-footer__link-rule
         {
            transition-duration: 420ms;
         }
   }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference)
   {
      .kisaka-footer__link:hover .kisaka-footer__link-row,
      .kisaka-footer__link:hover .kisaka-footer__link-arrow,
      .kisaka-footer__link:hover .kisaka-footer__link-rule
         {
            transition-duration: 420ms;
         }
   }

/* ---- bottom: legal row + oversized wordmark ---- */
.kisaka-footer__bottom
   {
      display: flex;
      flex-direction: column;
      gap: 0;
   }

.kisaka-footer__signature
   {
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
   }

.kisaka-footer__signature p
   {
      margin: 0;
      width: 100%;
      letter-spacing: 0.02em;
      text-align: center;
      text-transform: none;
   }

.kisaka-footer__signature a
   {
      color: var(--kf-cream);
      text-decoration: underline;
      text-underline-offset: 3px;
      transition: opacity 240ms var(--kisaka-ease-out);
   }

.kisaka-footer__signature a:hover, .kisaka-footer__signature a:focus-visible
   {
      opacity: 0.6;
      color: var(--kf-cream);
   }

.kisaka-footer__wordmark-box
   {
      height: calc(var(--kf-wordmark-size) * 1.3);
      margin-bottom: calc(var(--kf-wordmark-size) * -0.26);
      overflow: hidden;
   }

.kisaka-footer__wordmark-box.is-measuring
   {
      visibility: hidden;
   }

.kisaka-footer__wordmark
   {
      font-family: var(--kf-serif);
      font-optical-sizing: auto;
      font-size: var(--kf-wordmark-size);
      line-height: 1;
      font-weight: 400;
      letter-spacing: -0.035em;
      text-align: center;
      white-space: nowrap;
      color: var(--kf-cream);
      transform: translate3d(0, 140%, 0);
      will-change: transform;

      /* Exit: sinks back into its mask when the panel is scrolled away. */
      transition: transform 400ms var(--kisaka-ease-out);
   }

.kisaka-footer.is-revealed .kisaka-footer__wordmark
   {
      transform: translate3d(0, 0, 0);
      transition: transform 900ms var(--kisaka-ease-out-expo);
   }

/* Split by js/kisaka-footer.js: the block stays put and each letter is
   scrubbed out of the mask by scroll instead (inline transforms). */
.kisaka-footer__wordmark.is-split
   {
      transform: none;
      transition: none;
      will-change: auto;
   }

.kisaka-footer__wordmark-char
   {
      display: inline-block;
      transform: translate3d(0, 140%, 0);
      will-change: transform;
   }

/* ---- word cascade (js/kisaka-footer.js: wordCascade adds is-worded).
   Headline and subline move word by word, the columns line by line; the
   blocks around them stay put so only the words move.
   In: each piece rises half a line into place after its own --kf-in ms, slow
   and soft. Out, on the way back up (is-leaving): the same pieces drop and
   fade after --kf-w ms, quicker. ---- */
.kisaka-footer__word
   {
      display: inline-block;
   }

.kisaka-footer.is-worded.is-armed .kisaka-footer__sub,
.kisaka-footer.is-worded.is-armed .kisaka-footer__body > *
   {
      opacity: 1;
      transform: none;
      transition: none;
   }

.kisaka-footer.is-worded .kisaka-footer__headline .kisaka-fill__word,
.kisaka-footer.is-worded .kisaka-footer__word,
.kisaka-footer.is-worded .kisaka-footer__line
   {
      opacity: 0;
      transform: translate3d(0, 0.6em, 0);
   }

.kisaka-footer.is-worded.is-leaving .kisaka-footer__headline .kisaka-fill__word,
.kisaka-footer.is-worded.is-leaving .kisaka-footer__word,
.kisaka-footer.is-worded.is-leaving .kisaka-footer__line
   {
      transition: opacity 260ms var(--kisaka-ease-out), transform 420ms var(--kisaka-ease-out);
      transition-delay: calc(var(--kf-w, 0) * 1ms);
   }

.kisaka-footer.is-worded.is-entered .kisaka-footer__headline .kisaka-fill__word,
.kisaka-footer.is-worded.is-entered .kisaka-footer__word,
.kisaka-footer.is-worded.is-entered .kisaka-footer__line
   {
      opacity: 1;
      transform: translate3d(0, 0, 0);
      transition: opacity 700ms var(--kisaka-ease-out), transform 900ms var(--kisaka-ease-out-expo);
      transition-delay: calc(var(--kf-in, 0) * 1ms);
   }

/* ---- entrance / exit: pitch, rules and columns settle in each time the
   panel's top arrives and retreat when it is scrolled back out; the wordmark
   rise above stays the closing beat. Hidden states only apply once
   js/kisaka-footer.js arms the footer, so no-JS keeps it visible.
   Exit is quicker and unstaggered; transitions retarget mid-flight. ---- */
.kisaka-footer.is-armed .kisaka-footer__headline,
.kisaka-footer.is-armed .kisaka-footer__sub,
.kisaka-footer.is-armed .kisaka-footer__body > *
   {
      opacity: 0;
      transform: translate3d(0, 16px, 0);

      /* Named explicitly so normalize.css's blanket h2 0.4s transition never applies. */
      transition: opacity 240ms var(--kisaka-ease-out), transform 240ms var(--kisaka-ease-out);
   }

.kisaka-footer.is-armed .kisaka-footer__headline
   {
      transform: translate3d(0, 24px, 0);
   }

.kisaka-footer.is-armed .kisaka-footer__rule
   {
      transform: scaleX(0);
      transform-origin: left center;
      transition: transform 240ms var(--kisaka-ease-out);
   }

/* Exit, on the way back up: the reverse of the entrance while the panel is
   still on screen. Columns go last-to-first, then the lower rule, the upper
   rule and the subline, each dropping back the way it came. The is-entered
   rules below set their own delays, so these only shape the exit. */
.kisaka-footer.is-armed .kisaka-footer__headline,
.kisaka-footer.is-armed .kisaka-footer__sub,
.kisaka-footer.is-armed .kisaka-footer__body > *,
.kisaka-footer.is-armed .kisaka-footer__rule
   {
      transition-duration: 300ms;
   }

.kisaka-footer.is-armed .kisaka-footer__body > *
   {
      transition-delay: calc((3 - var(--kf-i, 0)) * 40ms);
   }

.kisaka-footer.is-armed .kisaka-footer__rule ~ .kisaka-footer__rule
   {
      transition-delay: 160ms;
   }

.kisaka-footer.is-armed .kisaka-footer__rule
   {
      transition-delay: 200ms;
   }

.kisaka-footer.is-armed .kisaka-footer__headline, .kisaka-footer.is-armed .kisaka-footer__sub
   {
      transition-delay: 240ms;
   }

.kisaka-footer.is-entered .kisaka-footer__headline,
.kisaka-footer.is-entered .kisaka-footer__sub,
.kisaka-footer.is-entered .kisaka-footer__body > *
   {
      opacity: 1;
      transform: translate3d(0, 0, 0);
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out);
   }

.kisaka-footer.is-entered .kisaka-footer__headline
   {
      transition-duration: 720ms;
   }

.kisaka-footer.is-entered .kisaka-footer__sub
   {
      transition-duration: 720ms;
      transition-delay: 180ms;
   }

/* Headline split into letters for the scroll fill (js/kisaka-motion.js
   scrubs each letter's opacity), so the block's own timed entrance is
   switched off rather than layered underneath. */
.kisaka-footer.is-armed .kisaka-footer__headline.is-split,
.kisaka-footer.is-entered .kisaka-footer__headline.is-split
   {
      opacity: 1;
      transform: none;
      transition: none;
   }

.kisaka-footer.is-entered .kisaka-footer__rule
   {
      transform: scaleX(1);
      transition: transform 900ms var(--kisaka-ease-out) 160ms;
   }

.kisaka-footer.is-entered .kisaka-footer__rule ~ .kisaka-footer__rule
   {
      transition-delay: 280ms;
   }

.kisaka-footer__body > :nth-child(1)
   {
      --kf-i: 0;
   }

.kisaka-footer__body > :nth-child(2)
   {
      --kf-i: 1;
   }

.kisaka-footer__body > :nth-child(3)
   {
      --kf-i: 2;
   }

.kisaka-footer__body > :nth-child(4)
   {
      --kf-i: 3;
   }

.kisaka-footer.is-entered .kisaka-footer__body > *
   {
      transition-duration: 760ms;
      transition-delay: calc(280ms + var(--kf-i, 0) * 90ms);
   }

/* ---- responsive ---- */
@media (max-width: 1199px)
   {
      .kisaka-footer__body
         {
            grid-template-columns: 1.4fr 1fr 1fr;
         }

      .kisaka-footer__col--contact
         {
            grid-column: 1 / -1;
         }
   }

@media (max-width: 767px)
   {
      /* Phones cannot hold the whole sitemap in one screen, so the type and
         rhythm compress as far as they legibly can. */
      .kisaka-footer
         {
            --kf-block: clamp(20px, 4.5vh, 44px);
         }

      .kisaka-footer__sub
         {
            font-size: 15px;
         }

      .kisaka-footer__top
         {
            flex-direction: column;
         }

      .kisaka-footer__body
         {
            grid-template-columns: 1fr 1fr;
         }

      .kisaka-footer__signature
         {
            flex-direction: column;
            align-items: flex-start;
            gap: 8px;
         }
   }

@media (max-width: 479px)
   {
      .kisaka-footer__body
         {
            grid-template-columns: 1fr;
         }
   }

/* Short viewports: the panel has to stay one page, so the rhythm and the
   display type step down rather than letting the bands spill under the fixed
   header. Values chosen against measured heights at 1280x800 and 1440x900. */
@media (max-height: 940px)
   {
      .kisaka-footer
         {
            --kf-block: clamp(14px, 2.4vh, 30px);
         }

      .kisaka-footer__headline
         {
            font-size: clamp(24px, 3.4vh, 36px);
            margin-bottom: 12px;
         }

      .kisaka-footer__sub
         {
            font-size: 15px;
            line-height: 1.5;
         }

      .kisaka-footer__col
         {
            gap: clamp(10px, 1.6vh, 18px);
         }

      .kisaka-footer__meta
         {
            gap: 7px;
            font-size: 13px;
         }

      .kisaka-footer__links
         {
            gap: clamp(6px, 1vh, 11px);
         }

      .kisaka-footer__link
         {
            font-size: 15px;
            padding-bottom: 2px;
         }

      .kisaka-footer__social a
         {
            width: 32px;
            height: 32px;
            font-size: 13px;
         }

      .kisaka-footer__bottom
         {
            gap: 0;
         }
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-footer__wordmark
         {
            transform: none;
         }

      .kisaka-footer.is-revealed .kisaka-footer__wordmark
         {
            transition: none;
         }

      .kisaka-footer__status.is-open .kisaka-footer__status-clock
         {
            animation: none;
         }

      .kisaka-footer__link-row, .kisaka-footer__link-arrow, .kisaka-footer__link-rule
         {
            transition-duration: 1ms;
         }

      .kisaka-footer__link-arrow--ghost
         {
            transform: none;
         }

      /* Entrance collapses to a short plain fade: no travel, no stagger, rules drawn. */
      .kisaka-footer.is-armed .kisaka-footer__headline,
      .kisaka-footer.is-armed .kisaka-footer__sub,
      .kisaka-footer.is-armed .kisaka-footer__body > *,
      .kisaka-footer.is-entered .kisaka-footer__headline,
      .kisaka-footer.is-entered .kisaka-footer__sub,
      .kisaka-footer.is-entered .kisaka-footer__body > *
         {
            transform: none;
            transition: opacity 200ms ease-out;
         }

      .kisaka-footer.is-armed .kisaka-footer__rule, .kisaka-footer.is-entered .kisaka-footer__rule
         {
            transform: none;
            transition: none;
         }
   }

.kisaka-careers-jobs__search-icon-btn
   {
      position: absolute;
      right: 6px;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      width: 40px;
      height: 40px;
      margin: 0;
      padding: 0;
      border: 0;
      border-radius: 50%;
      background: transparent;
      color: #9aa0ae;
      font-size: 15px;
      line-height: 1;
      cursor: pointer;
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -webkit-align-items: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -webkit-justify-content: center;
      -ms-flex-pack: center;
      justify-content: center;
      -webkit-transition: color 0.2s ease, background 0.2s ease;
      transition: color 0.2s ease, background 0.2s ease;
   }

.kisaka-careers-jobs__filters-clear
   {
      height: 50px;
      padding: 0 16px;
      border: 1px solid #d6dbe6;
      border-radius: 999px;
      background: #fff;
      font-size: 13px;
      font-weight: 600;
      color: #5a5d6b;
      white-space: nowrap;
      cursor: pointer;
      -webkit-transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
      transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
   }

.kisaka-careers-jobs__filters
   {
      display: block;
      margin: 0 0 8px;
      overflow: hidden;
      position: relative;
      z-index: 30;
      height: auto;
      opacity: 1;
      transition: height 0.4s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.28s ease, margin-bottom 0.28s ease;
      will-change: height, opacity;
   }

.kisaka-who-serve-filter-chip input
   {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
   }

.kisaka-who-serve-filter-chip__box
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 7px 13px;
      border: 1px solid #d8dde7;
      border-radius: 999px;
      background: #fff;
      line-height: 1;
      text-align: center;
      font-size: 12px;
      font-weight: 500;
      color: #6d7382;
      text-transform: capitalize;
      transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
   }

.sr-only
   {
      position: absolute !important;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
   }

/* ===== Kisaka — Minimal job posting page ===== */
html.kisaka-skip-preloader .preloader, body.kisaka-job-posting-page .preloader
   {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      -webkit-transition: none;
      transition: none;
   }

body.kisaka-job-posting-page .header .header-inner,
body.kisaka-job-posting-page .header.sticky .header-inner
   {
      background: #f6f7fb;
      border-bottom: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
   }

/* Same job as .kisaka-svc-index__item-rule: the posting's hairline parks on
   the header's underside and is the navbar's floor. Header paints none of its
   own chrome; this is the first document rule, in the section-separator colour. */
body.kisaka-job-posting-page .header .header-inner::after
   {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 1px;
      background: var(--job-rule, #e3e7ef);
      pointer-events: none;
   }

.kisaka-job-upload__label
   {
      display: flex !important;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 22px 16px;
      border-radius: 12px;

      /* Rest is neutral. It used to sit in red dashes on a red wash, which made
         it the loudest element on the page — louder than Submit — and left the
         error state (a red border) with no way to look different from normal. */
      /* Longhands, so the `border-color: … !important` that marks this field
         invalid overrides colour alone and keeps the dashes. */
      border-width: 1px;
      border-style: dashed;
      border-color: var(--job-line, #d8dde7);
      background: #fff;
      cursor: pointer;
      -webkit-transition: border-color 160ms ease, background-color 160ms ease, -webkit-box-shadow 160ms ease, -webkit-transform 120ms ease;
      -o-transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 120ms ease;
      transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 120ms ease;
   }

.kisaka-job-upload__icon
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: rgba(203, 31, 52, 0.1);
      color: var(--job-accent, #cb1f34);
      font-size: 16px;
      margin-bottom: 10px;
      -webkit-transition: background-color 160ms ease, color 160ms ease;
      -o-transition: background-color 160ms ease, color 160ms ease;
      transition: background-color 160ms ease, color 160ms ease;
   }

.kisaka-job-posting-page .nice-select
   {
      width: 100%;
      float: none;
      height: 48px;
      line-height: 46px;
      border: 1px solid #d8dde7;
      border-radius: 8px;
      padding-left: 14px;
      padding-right: 34px;
      color: #2C2D3F;
   }

.kisaka-job-posting-page .nice-select:after
   {
      border-bottom-color: #cb1f34;
      border-right-color: #cb1f34;
   }

.kisaka-job-posting-page .nice-select.open,
.kisaka-job-posting-page .nice-select:active,
.kisaka-job-posting-page .nice-select:focus
   {
      border-color: rgba(203, 31, 52, 0.55);
      box-shadow: 0 0 0 3px rgba(203, 31, 52, 0.1);
   }

.kisaka-job-posting-page .nice-select .option.selected,
.kisaka-job-posting-page .nice-select .option.focus,
.kisaka-job-posting-page .nice-select .option:hover
   {
      color: #cb1f34;
      background: rgba(203, 31, 52, 0.08);
   }

.kisaka-job-posting__apply
   {
      display: inline-block;
      padding: 13px 22px;
      border-radius: 8px;
      font-size: 13px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: #fff;
      background: var(--job-accent, #cb1f34);
      border: 0;
      cursor: pointer;
      -webkit-transition: background-color 160ms ease, -webkit-box-shadow 160ms ease, -webkit-transform 110ms ease;
      -o-transition: background-color 160ms ease, box-shadow 160ms ease, transform 110ms ease;
      transition: background-color 160ms ease, box-shadow 160ms ease, transform 110ms ease;
   }

/* Reduced motion keeps every signal, loses only the travel. */
@media (prefers-reduced-motion: reduce)
   {
      .kisaka-job-posting__apply, .kisaka-job-upload__label
         {
            -webkit-transition-duration: 1ms;
            -o-transition-duration: 1ms;
            transition-duration: 1ms;
         }
   }

.kisaka-who-serve-tabs__btn
   {
      background: none;
      border: none;
      font-family: inherit;
      font-size: 15px;
      font-weight: 600;
      color: #6b6f7a;
      padding: 12px 16px 14px;
      margin-bottom: -1px;
      border-bottom: 3px solid transparent;
      cursor: pointer;
      -webkit-transition: color 0.2s ease, border-color 0.2s ease;
      transition: color 0.2s ease, border-color 0.2s ease;
   }

/* --glow-rgb set from logo pixels in js/kisaka-who-serve.js; fallback until sampled */
.kisaka-serve-card
   {
      --glow-rgb: 203, 31, 52;
      position: relative;
      overflow: hidden;
      background: #fff;
      border: 1px solid #e8eaef;
      border-radius: 14px;
      padding: 20px 18px 18px;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      min-height: 240px;
      height: 100%;
      box-shadow: 0 4px 22px rgba(44, 45, 63, 0.045);
      -webkit-transition: box-shadow 0.6s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.55s cubic-bezier(0.22, 1, 0.36, 1);
      transition: box-shadow 0.6s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.55s cubic-bezier(0.22, 1, 0.36, 1);
      isolation: isolate;
   }

.kisaka-serve-card::before
   {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      z-index: 0;
      background: radial-gradient(100% 92% at 50% -28%, rgba(var(--glow-rgb), 0.16) 0%, rgba(var(--glow-rgb), 0.05) 48%, transparent 76%), radial-gradient(88% 78% at 96% 104%, rgba(var(--glow-rgb), 0.07) 0%, transparent 74%);
      opacity: 0;
      -webkit-transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
      transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-serve-card
         {
            -webkit-transition-duration: 0.01ms;
            transition-duration: 0.01ms;
         }

      .kisaka-serve-card::before
         {
            -webkit-transition-duration: 0.01ms;
            transition-duration: 0.01ms;
         }
   }

.kisaka-serve-card__logo--img img
   {
      max-width: 100%;
      max-height: 72px;
      width: auto;
      height: auto;
      object-fit: contain;
      object-position: center;
   }

.kisaka-legal-related__list a
   {
      display: inline-flex;
      align-items: center;
      padding: 10px 16px;
      border-radius: 999px;
      border: 1px solid #dce0e8;
      background: #fafbfc;
      font-size: 14px;
      font-weight: 600;
      color: #2c2d3f;
      text-decoration: none;
      -webkit-transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
      transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
   }

.kisaka-legal-related__list a:hover
   {
      border-color: rgba(203, 31, 52, 0.45);
      background: rgba(203, 31, 52, 0.06);
      color: #cb1f34;
   }

@keyframes kisaka-insights-caret
   {
      50%
         {
            opacity: 0;
         }
   }

.kisaka-insights-stage__year
   {
      line-height: 1;
   }

.kisaka-insights-stage__cue, .kisaka-insights-stage__cue:visited
   {
      display: flex;
      align-items: center;
      gap: 8px;
      flex: 0 0 auto;
      margin-right: var(--frame-rail);
      padding: 6px 0;
      font-family: var(--kisaka-font-accent, sans-serif);
      font-size: 0.8125rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      line-height: 1;
      color: rgba(243, 237, 230, 0.6);
      text-decoration: none;
      opacity: 0;
      animation: kisaka-insights-fade-up 0.65s ease forwards 0.9s;
      transition: color 160ms ease;
   }

@keyframes kisaka-insights-cue
   {
      0%
         {
            transform: translateY(-100%);
         }

      70%, 100%
         {
            transform: translateY(230%);
         }
   }

/* Bottom-left skip out of the scene pager onto the article shelf. */
.kisaka-insights-skip
   {
      display: inline-flex;
      align-items: center;
      gap: 0.45em;
      padding: 6px 0;
      margin: -6px 0;
      color: inherit;
      font: inherit;
      letter-spacing: inherit;
      line-height: 1;
      text-decoration: none;
      cursor: pointer;
      transition: color 160ms ease, transform 160ms var(--kisaka-ease-out);
   }

.kisaka-insights-skip::after
   {
      content: "";
      width: 6px;
      height: 6px;
      margin-top: -2px;
      border-right: 1.5px solid currentColor;
      border-bottom: 1.5px solid currentColor;
      opacity: 0.7;
      transform: rotate(45deg);
      transition: opacity 160ms ease, transform 160ms var(--kisaka-ease-out);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-insights-skip
         {
            transition: color 160ms ease;
         }
   }

.kisaka-insights-stage__portrait img
   {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 50% 28%;
   }

@keyframes kisaka-insights-word-in
   {
      to
         {
            opacity: 1;
            transform: none;
         }
   }

@keyframes kisaka-insights-fade-up
   {
      to
         {
            opacity: 1;
            transform: none;
         }
   }

@keyframes kisaka-insights-portrait-in
   {
      to
         {
            opacity: 1;
            transform: none;
         }
   }

@keyframes kisaka-insights-wash-drift
   {
      0%, 100%
         {
            transform: translate3d(8%, 6%, 0) rotate(2deg) scale(1.2);
         }

      33%
         {
            transform: translate3d(-10%, 10%, 0) rotate(-5deg) scale(1.26);
         }

      66%
         {
            transform: translate3d(12%, -4%, 0) rotate(4deg) scale(1.22);
         }
   }

/* Featured blog (single spotlight card) — tokens: --kisaka-featured-* */
.kisaka-insights-featured
   {
      --kisaka-featured-radius: 24px;
      --kisaka-featured-zoom: 1.12;
      --kisaka-featured-zoom-duration: 0.55s;
      margin-bottom: 40px;
   }

.kisaka-insights-featured--reduced-motion
   {
      --kisaka-featured-zoom: 1;
      --kisaka-featured-zoom-duration: 0.01ms;
   }

.kisaka-insights-filters__btn
   {
      position: relative;
      flex: 0 0 auto;
      border: none;
      background: transparent;
      padding: 10px 6px 12px;
      margin: 0;
      font-family: inherit;
      font-size: 14px;
      font-weight: 600;
      color: #4a4d58;
      cursor: pointer;
      white-space: nowrap;
      transition: color 0.2s ease;
   }

.kisaka-insights-filters__btn::after
   {
      content: "";
      position: absolute;
      left: 6px;
      right: 6px;
      bottom: 0;
      height: 3px;
      border-radius: 3px 3px 0 0;
      background: transparent;
      transition: background 0.2s ease;
   }

.kisaka-insights-filters__count
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 22px;
      height: 22px;
      margin-left: 6px;
      padding: 0 6px;
      font-size: 11px;
      font-weight: 700;
      border-radius: 999px;
      background: rgba(203, 31, 52, 0.12);
      color: #cb1f34;
      vertical-align: middle;
   }

/* ============================================
   Cookie consent — toast + preferences modal
   One surface at a time: opening the modal
   tucks the toast away behind the scrim, and
   closing it brings the toast back. On phones
   the modal is a sheet rising from the same
   bottom edge the toast sits on.
   ============================================ */
body.kisaka-cookie-modal-open
   {
      overflow: hidden;
   }

.kisaka-cookie
   {
      --kisaka-cookie-surface: #0c0c0d;
      --kisaka-cookie-edge: rgba(255, 255, 255, 0.1);
      --kisaka-cookie-rule: rgba(255, 255, 255, 0.08);
      --kisaka-cookie-text: rgba(255, 255, 255, 0.8);
      --kisaka-cookie-muted: rgba(255, 255, 255, 0.6);
      --kisaka-cookie-ease: cubic-bezier(0.22, 1, 0.36, 1);
      --kisaka-cookie-ease-out: cubic-bezier(0.4, 0, 1, 1);
      position: fixed;
      inset: 0;
      z-index: 999999;
      pointer-events: none;
      font-family: var(--kisaka-font-accent), 'Google Sans Flex', system-ui, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
   }

.kisaka-cookie__backdrop
   {
      position: fixed;
      inset: 0;
      z-index: 1;
      background: rgba(6, 7, 10, 0.6);
      -webkit-backdrop-filter: blur(6px);
      backdrop-filter: blur(6px);
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.24s ease, visibility 0s linear 0.24s;
      pointer-events: none;
   }

.kisaka-cookie__backdrop.is-open
   {
      opacity: 1;
      visibility: visible;
      transition: opacity 0.32s ease, visibility 0s linear 0s;
      pointer-events: auto;
   }

/* --- Modal --- */
.kisaka-cookie__modal
   {
      position: fixed;
      left: 50%;
      top: 50%;
      z-index: 3;
      width: min(520px, calc(100vw - 32px));
      max-height: min(88vh, 680px);
      max-height: min(88dvh, 680px);
      display: flex;
      flex-direction: column;
      box-sizing: border-box;
      padding: 0;
      margin: 0;
      border-radius: 8px;
      background: var(--kisaka-cookie-surface);
      border: 1px solid var(--kisaka-cookie-edge);
      box-shadow: 0 32px 90px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.06);
      color: var(--kisaka-cookie-text);
      opacity: 0;
      visibility: hidden;
      transform: translate3d(-50%, -48%, 0) scale(0.96);

      /* closing: quicker than opening */
      transition: opacity 0.2s var(--kisaka-cookie-ease-out), transform 0.24s var(--kisaka-cookie-ease-out), visibility 0s linear 0.24s;
      pointer-events: none;
   }

.kisaka-cookie__modal.is-open
   {
      opacity: 1;
      visibility: visible;
      transform: translate3d(-50%, -50%, 0) scale(1);
      transition: opacity 0.3s var(--kisaka-cookie-ease), transform 0.38s var(--kisaka-cookie-ease), visibility 0s linear 0s;
      pointer-events: auto;
   }

.kisaka-cookie__modal:focus
   {
      outline: none;
   }

.kisaka-cookie__modal-head
   {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 16px 16px 14px 24px;
      border-bottom: 1px solid var(--kisaka-cookie-rule);
      flex-shrink: 0;
   }

.kisaka-cookie__modal-title
   {
      margin: 0;
      font-family: inherit;
      font-size: 1.125rem;
      font-weight: 600;
      line-height: 1.3;
      letter-spacing: -0.01em;
      color: #fff;
   }

.kisaka-cookie__modal-close
   {
      flex-shrink: 0;
      width: 44px;
      height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 4px;
      background: transparent;
      color: rgba(255, 255, 255, 0.8);
      cursor: pointer;
      transition: background 0.2s ease, color 0.2s ease, transform 0.12s ease-out;
   }

.kisaka-cookie__modal-close svg
   {
      width: 18px;
      height: 18px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.6;
      stroke-linecap: square;
   }

.kisaka-cookie__modal-close:hover
   {
      background: rgba(255, 255, 255, 0.08);
      color: #fff;
   }

.kisaka-cookie__modal-close:active
   {
      transform: scale(0.92);
   }

.kisaka-cookie__modal-close:focus-visible
   {
      outline: 2px solid rgba(255, 255, 255, 0.75);
      outline-offset: 2px;
   }

/* --- Toast --- */
.kisaka-cookie__toast
   {
      pointer-events: auto;
      position: fixed;
      z-index: 2;
      left: max(20px, env(safe-area-inset-left));
      bottom: max(20px, env(safe-area-inset-bottom));
      width: min(560px, calc(100vw - 40px));
      transform: translate3d(0, 24px, 0) scale(0.96);
      transform-origin: 0 100%;
      opacity: 0;
      filter: blur(4px);
      transition: transform 0.45s var(--kisaka-cookie-ease), opacity 0.35s ease, filter 0.45s ease, visibility 0s linear 0.45s;
      visibility: hidden;
   }

.kisaka-cookie.is-visible .kisaka-cookie__toast:not([hidden])
   {
      transform: none;
      opacity: 1;
      filter: none;
      visibility: visible;
      transition: transform 0.45s var(--kisaka-cookie-ease), opacity 0.35s ease, filter 0.45s ease, visibility 0s linear 0s;
   }

/* The modal owns the screen: the toast steps back down and out of reach. */
.kisaka-cookie.is-visible.is-modal-open .kisaka-cookie__toast:not([hidden])
   {
      transform: translate3d(0, 16px, 0) scale(0.98);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: transform 0.24s var(--kisaka-cookie-ease-out), opacity 0.18s ease, visibility 0s linear 0.24s;
   }

.kisaka-cookie__shell
   {
      width: 100%;
      box-sizing: border-box;
      padding: 22px 22px 20px 24px;
      border-radius: 8px;
      background: var(--kisaka-cookie-surface);
      border: 1px solid var(--kisaka-cookie-edge);
      box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.06);
   }

.kisaka-cookie__inner
   {
      display: flex;
      flex-direction: column;
      gap: 18px;
   }

.kisaka-cookie__textblock
   {
      min-width: 0;
   }

.kisaka-cookie__text
   {
      margin: 0;
      font-size: 14px;
      line-height: 1.55;
      font-weight: 400;
      letter-spacing: -0.005em;
      color: var(--kisaka-cookie-text);
      text-wrap: pretty;
   }

.kisaka-cookie__link
   {
      color: #fff;
      font-weight: 500;
      text-decoration: underline;
      text-underline-offset: 3px;
      text-decoration-color: rgba(255, 255, 255, 0.35);
      transition: text-decoration-color 0.2s ease, color 0.2s ease;
   }

.kisaka-cookie__link:hover, .kisaka-cookie__link:focus-visible
   {
      text-decoration-color: rgba(255, 255, 255, 0.8);
      color: #fff;
   }

.kisaka-cookie__link:focus-visible
   {
      outline: 2px solid rgba(255, 255, 255, 0.75);
      outline-offset: 2px;
      border-radius: 2px;
   }

/* Customize sits apart on the left; the two decisions share the right edge
   so neither is the "hidden" choice. */
.kisaka-cookie__actions
   {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
   }

.kisaka-cookie__actions .kisaka-cookie__btn--quiet
   {
      margin-right: auto;
   }

.kisaka-cookie__actions .kisaka-cookie__btn--ghost,
.kisaka-cookie__actions .kisaka-cookie__btn--primary
   {
      flex: 0 0 auto;
   }

/* --- Buttons --- */
.kisaka-cookie__btn
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 44px;
      box-sizing: border-box;
      font-family: inherit;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      white-space: nowrap;
      padding: 0 20px;
      border-radius: 4px;
      cursor: pointer;
      border: 1px solid transparent;
      line-height: 1.2;
      touch-action: manipulation;
      -webkit-tap-highlight-color: transparent;
      transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease-out, box-shadow 0.2s ease;
   }

.kisaka-cookie__btn:active
   {
      transform: scale(0.97);
   }

.kisaka-cookie__btn:focus-visible
   {
      outline: 2px solid rgba(255, 255, 255, 0.85);
      outline-offset: 2px;
   }

.kisaka-cookie__btn--ghost
   {
      background: transparent;
      border-color: rgba(255, 255, 255, 0.7);
      color: #fff;
   }

.kisaka-cookie__btn--ghost:hover
   {
      background: #fff;
      border-color: #fff;
      color: #080808;
   }

.kisaka-cookie__btn--primary
   {
      background: var(--kisaka-red);
      border-color: var(--kisaka-red);
      color: #fff;
   }

.kisaka-cookie__btn--primary:hover
   {
      background: #fff;
      border-color: #fff;
      color: var(--kisaka-red);
   }

.kisaka-cookie__btn--quiet
   {
      background: rgba(255, 255, 255, 0.06);
      border-color: rgba(255, 255, 255, 0.14);
      color: rgba(255, 255, 255, 0.9);
   }

.kisaka-cookie__btn--quiet:hover
   {
      background: rgba(255, 255, 255, 0.12);
      border-color: rgba(255, 255, 255, 0.3);
      color: #fff;
   }

/* --- Preference rows --- */
.kisaka-cookie__details
   {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
      overscroll-behavior: contain;
      padding: 4px 24px;
      box-sizing: border-box;
      -webkit-overflow-scrolling: touch;
   }

.kisaka-cookie__rows
   {
      display: flex;
      flex-direction: column;
   }

.kisaka-cookie__row
   {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 16px 0;
   }

.kisaka-cookie__row + .kisaka-cookie__row
   {
      border-top: 1px solid var(--kisaka-cookie-rule);
   }

.kisaka-cookie__modal.is-open .kisaka-cookie__row
   {
      /* both: rows hold their start frame through the stagger delay, so they
         don't flash in at full opacity and then vanish before fading up */
      animation: kisaka-cookie-row-in 0.42s var(--kisaka-cookie-ease) both;
   }

.kisaka-cookie__modal.is-open .kisaka-cookie__row:nth-child(1)
   {
      animation-delay: 0.04s;
   }

.kisaka-cookie__modal.is-open .kisaka-cookie__row:nth-child(2)
   {
      animation-delay: 0.08s;
   }

.kisaka-cookie__modal.is-open .kisaka-cookie__row:nth-child(3)
   {
      animation-delay: 0.12s;
   }

.kisaka-cookie__modal.is-open .kisaka-cookie__row:nth-child(4)
   {
      animation-delay: 0.16s;
   }

@keyframes kisaka-cookie-row-in
   {
      from
         {
            opacity: 0;
            transform: translate3d(0, 8px, 0);
         }

      to
         {
            opacity: 1;
            transform: translate3d(0, 0, 0);
         }
   }

.kisaka-cookie__row-text
   {
      min-width: 0;
      flex: 1 1 auto;
   }

.kisaka-cookie__row-title
   {
      display: block;
      font-size: 12px;
      font-weight: 600;
      line-height: 1.3;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #fff;
   }

.kisaka-cookie__row-desc
   {
      display: block;
      margin-top: 6px;
      font-size: 14px;
      line-height: 1.5;
      color: var(--kisaka-cookie-muted);
      max-width: 36em;
      text-wrap: pretty;
   }

.kisaka-cookie__badge
   {
      flex-shrink: 0;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      white-space: nowrap;
      padding: 7px 10px;
      border-radius: 4px;
      border: 1px solid rgba(255, 255, 255, 0.18);
      color: rgba(255, 255, 255, 0.7);
   }

/* The label is 44px tall so the switch is easy to hit; the track stays 48×28. */
.kisaka-cookie__switch
   {
      flex-shrink: 0;
      position: relative;
      display: block;
      width: 52px;
      height: 44px;
      margin: -8px -2px -8px 0;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
   }

.kisaka-cookie__switch input
   {
      position: absolute;
      inset: 0;
      margin: 0;
      opacity: 0;
      cursor: pointer;
   }

.kisaka-cookie__switch-ui
   {
      position: absolute;
      left: 2px;
      top: 8px;
      width: 48px;
      height: 28px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.16);
      pointer-events: none;
      transition: background 0.24s var(--kisaka-cookie-ease);
   }

.kisaka-cookie__switch-ui::after
   {
      content: "";
      position: absolute;
      width: 24px;
      height: 24px;
      left: 2px;
      top: 2px;
      border-radius: 50%;
      background: #f4f4f5;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
      transition: transform 0.3s var(--kisaka-cookie-ease);
   }

.kisaka-cookie__switch input:checked + .kisaka-cookie__switch-ui
   {
      background: var(--kisaka-red);
   }

.kisaka-cookie__switch input:checked + .kisaka-cookie__switch-ui::after
   {
      transform: translate3d(20px, 0, 0);
   }

.kisaka-cookie__switch input:focus-visible + .kisaka-cookie__switch-ui
   {
      outline: 2px solid rgba(255, 255, 255, 0.75);
      outline-offset: 3px;
   }

.kisaka-cookie__details-actions
   {
      flex-shrink: 0;
      padding: 14px 24px 18px;
      margin: 0;
      border-top: 1px solid var(--kisaka-cookie-rule);
      display: flex;
      justify-content: flex-end;
   }

/* --- Phones --- */
@media (max-width: 600px)
   {
      .kisaka-cookie__toast
         {
            left: max(12px, env(safe-area-inset-left));
            right: max(12px, env(safe-area-inset-right));
            bottom: max(12px, env(safe-area-inset-bottom));
            width: auto;
            transform-origin: 50% 100%;
         }

      .kisaka-cookie__shell
         {
            padding: 18px 18px 16px;
         }

      .kisaka-cookie__inner
         {
            gap: 14px;
         }

      .kisaka-cookie__text
         {
            font-size: 14px;
            line-height: 1.5;
         }

      /* Too narrow for three across: the two decisions share a row at equal
         width, Customize takes the row beneath. */
      .kisaka-cookie__actions
         {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 8px;
         }

      .kisaka-cookie__actions .kisaka-cookie__btn
         {
            width: 100%;
            padding: 0 10px;
            letter-spacing: 0.08em;
            white-space: normal;
            text-align: center;
         }

      .kisaka-cookie__actions .kisaka-cookie__btn--quiet
         {
            grid-column: 1 / -1;
            grid-row: 2;
            margin: 0;
         }

      /* The modal becomes a sheet rising from the bottom edge. */
      .kisaka-cookie__modal
         {
            left: 0;
            right: 0;
            top: auto;
            bottom: 0;
            width: 100%;
            max-height: 88vh;
            max-height: 88dvh;
            border-radius: 10px 10px 0 0;
            border-bottom: none;
            transform: translate3d(0, 100%, 0);
            opacity: 1;
            transition: transform 0.26s var(--kisaka-cookie-ease-out), visibility 0s linear 0.26s;
         }

      .kisaka-cookie__modal.is-open
         {
            transform: translate3d(0, 0, 0);
            transition: transform 0.42s var(--kisaka-cookie-ease), visibility 0s linear 0s;
         }

      .kisaka-cookie__modal-head
         {
            padding: 12px 12px 10px 20px;
         }

      .kisaka-cookie__details
         {
            padding: 0 20px;
         }

      .kisaka-cookie__details-actions
         {
            padding: 12px 20px max(16px, env(safe-area-inset-bottom));
         }

      .kisaka-cookie__details-actions .kisaka-cookie__btn
         {
            width: 100%;
            min-height: 48px;
         }
   }

@media (max-width: 360px)
   {
      .kisaka-cookie__actions
         {
            grid-template-columns: minmax(0, 1fr);
         }

      .kisaka-cookie__actions .kisaka-cookie__btn--quiet
         {
            grid-row: auto;
         }
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-cookie__toast,
      .kisaka-cookie.is-visible .kisaka-cookie__toast:not([hidden]),
      .kisaka-cookie.is-visible.is-modal-open .kisaka-cookie__toast:not([hidden]),
      .kisaka-cookie__modal,
      .kisaka-cookie__modal.is-open
         {
            transform: none;
            filter: none;
            transition: opacity 0.2s ease, visibility 0s linear 0.2s;
         }

      .kisaka-cookie.is-visible .kisaka-cookie__toast:not([hidden]), .kisaka-cookie__modal.is-open
         {
            transition: opacity 0.2s ease, visibility 0s linear 0s;
         }

      .kisaka-cookie__modal
         {
            transform: translate3d(-50%, -50%, 0);
            opacity: 0;
         }

      .kisaka-cookie__modal.is-open
         {
            transform: translate3d(-50%, -50%, 0);
            opacity: 1;
         }

      .kisaka-cookie__switch-ui,
      .kisaka-cookie__switch-ui::after,
      .kisaka-cookie__btn,
      .kisaka-cookie__modal-close
         {
            transition-duration: 0.01ms !important;
         }

      .kisaka-cookie__btn:active, .kisaka-cookie__modal-close:active
         {
            transform: none;
         }

      .kisaka-cookie__modal.is-open .kisaka-cookie__row
         {
            animation: none;
         }
   }

@media (prefers-reduced-motion: reduce) and (max-width: 600px)
   {
      .kisaka-cookie__modal, .kisaka-cookie__modal.is-open
         {
            transform: none;
         }
   }

@media (prefers-reduced-transparency: reduce)
   {
      .kisaka-cookie__backdrop
         {
            background: rgba(6, 7, 10, 0.82);
            -webkit-backdrop-filter: none;
            backdrop-filter: none;
         }
   }

/* --- Article page (insights): left-set editorial head, cropped photograph,
   one reading column with the contents list in the left margin --- */
html.kisaka-article-scroll
   {
      scroll-behavior: smooth;
   }

@media (prefers-reduced-motion: reduce)
   {
      html.kisaka-article-scroll
         {
            scroll-behavior: auto;
         }
   }

.kisaka-blog-article
   {
      background: #fff;

      /* Zalando Sans Expanded is the site display face. It does not belong on an article. */
      --kisaka-font-family: "Google Sans Flex", sans-serif;
   }

.kisaka-article-page
   {
      --kisaka-article-measure: 42rem;
      --kisaka-article-rail: 13.5rem;
      --kisaka-article-gap: clamp(2.5rem, 5vw, 5rem);
      --kisaka-article-ink: #16171d;
      --kisaka-article-body: #2b2c33;
      --kisaka-article-quiet: #6b6e78;
      --kisaka-article-line: #e6e7eb;
      padding-bottom: clamp(64px, 9vw, 120px);
      color: var(--kisaka-article-body);
   }

.kisaka-article-page__back,
.kisaka-article-page__meta,
.kisaka-article-share__label,
.kisaka-article-toc__list a,
.kisaka-article-page__pager-link--prev
   {
      font-family: var(--kisaka-font-accent);
      letter-spacing: 0.005em;
   }

/* Page width: the contents rail, the gap, and the reading column */
.kisaka-article-page__top, .kisaka-article-page__split
   {
      max-width: calc(var(--kisaka-article-rail) + var(--kisaka-article-gap) + var(--kisaka-article-measure) + 30px);
   }

.kisaka-article-page__split
   {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
   }

@media (min-width: 1100px)
   {
      .kisaka-article-page__split
         {
            grid-template-columns: var(--kisaka-article-rail) minmax(0, var(--kisaka-article-measure));
            column-gap: var(--kisaka-article-gap);
            justify-content: center;
         }
   }

@media (max-width: 1099px)
   {
      .kisaka-article-page__split
         {
            max-width: calc(var(--kisaka-article-measure) + 30px);
         }
   }

/* Top: headline beside the photograph on wide screens, stacked on narrow ones */
.kisaka-article-page__top
   {
      padding-top: calc(var(--kisaka-header-h) + clamp(32px, 5vw, 64px));
   }

.kisaka-article-page__head
   {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      padding-bottom: clamp(28px, 3.5vw, 40px);
   }

@media (min-width: 992px)
   {
      .kisaka-article-page__top
         {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            column-gap: clamp(40px, 4.5vw, 72px);
         }

      .kisaka-article-page__head
         {
            padding-bottom: 0;
         }

      /* Back link at the top of the column; the headline settles to the photo's foot */
      .kisaka-article-page__head > .kisaka-article-page__back
         {
            margin-bottom: auto;
            padding-bottom: 40px;
         }
   }

@media (max-width: 991px)
   {
      .kisaka-article-page__top
         {
            max-width: calc(var(--kisaka-article-measure) + 30px);
         }
   }

.kisaka-article-page__back
   {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 clamp(24px, 4vw, 40px);
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--kisaka-article-quiet);
      text-decoration: none;
      transition: color 0.2s ease;
   }

.kisaka-article-page__arrow
   {
      width: 0.9em;
      height: 0.9em;
      flex: none;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: transform 0.2s var(--kisaka-ease-out);
   }

.kisaka-article-page__title
   {
      margin: 0;
      max-width: 24ch;
      font-family: "Newsreader", Georgia, "Times New Roman", serif;
      font-optical-sizing: auto;
      font-size: clamp(2.35rem, 1.5rem + 2.1vw, 3.25rem);
      font-weight: 450;
      line-height: 1.04;
      letter-spacing: -0.022em;
      color: var(--kisaka-article-ink);
      text-wrap: balance;
   }

.kisaka-article-page__byline
   {
      align-self: stretch;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 12px 24px;
      margin-top: clamp(24px, 3vw, 36px);
      padding-top: 16px;
      border-top: 1px solid var(--kisaka-article-line);
   }

.kisaka-article-page__meta
   {
      margin: 0;
      font-size: 14px;
      color: var(--kisaka-article-quiet);
   }

.kisaka-article-page__meta time
   {
      color: var(--kisaka-red);
      font-weight: 600;
   }

.kisaka-article-page__meta-sep
   {
      margin: 0 10px;
      opacity: 0.6;
   }

.kisaka-article-share__btn
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      border-radius: 0;
      background: transparent;
      color: var(--kisaka-article-quiet);
      font-size: 16px;
      text-decoration: none;
      transition: color 0.2s ease, transform 160ms var(--kisaka-ease-out);
   }

.kisaka-article-page__hero-figure img
   {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 50% 38%;
   }

.kisaka-article-page__split
   {
      padding-top: clamp(40px, 6vw, 72px);
   }

/* Contents list lives in the margin on wide screens; phones read straight through */
.kisaka-article-page__rail
   {
      display: none;
   }

@media (min-width: 1100px)
   {
      .kisaka-article-page__rail
         {
            display: block;
         }
   }

.kisaka-article-page__rail-sticky
   {
      position: -webkit-sticky;
      position: sticky;
      top: calc(var(--kisaka-header-h) + 32px);
   }

.kisaka-article-toc__heading
   {
      margin: 0 0 12px;
      font-family: var(--kisaka-font-family);
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0;
      color: var(--kisaka-article-ink);
   }

.kisaka-article-toc__list
   {
      list-style: none;
      margin: 0;
      padding: 0;
      border-left: 1px solid var(--kisaka-article-line);
   }

.kisaka-article-toc__list li
   {
      margin: 0;
   }

.kisaka-article-toc__list a
   {
      display: block;
      margin-left: -1px;
      padding: 7px 0 7px 16px;
      font-size: 14px;
      line-height: 1.4;
      color: var(--kisaka-article-quiet);
      text-decoration: none;
      border-left: 1px solid transparent;
      transition: color 0.2s ease, border-color 0.2s ease;
   }

.kisaka-article-toc__list a:hover
   {
      color: var(--kisaka-article-ink);
   }

.kisaka-article-toc__list a.is-active
   {
      color: var(--kisaka-article-ink);
   }

/* One red marker, placed by js/main.js, slides to the current link */
.kisaka-article-toc
   {
      position: relative;
   }

.kisaka-article-toc__marker
   {
      position: absolute;
      top: 0;
      left: 0;
      width: 1px;
      height: 1px;
      background: var(--kisaka-red);
      opacity: 0;
      pointer-events: none;
      transform-origin: 0 0;
      transform: translateY(var(--toc-y, 0)) scaleY(var(--toc-h, 0));
   }

.kisaka-article-toc__marker.is-placed
   {
      opacity: 1;
   }

.kisaka-article-toc__marker.is-live
   {
      transition: transform var(--kisaka-dur-rail) var(--kisaka-ease-out);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-article-toc__marker.is-live
         {
            transition: none;
         }
   }

/* Prose: a book face at reading size, one comfortable measure */
.kisaka-article-page__sheet
   {
      max-width: var(--kisaka-article-measure);
   }

.kisaka-article__prose
   {
      font-family: "Newsreader", Georgia, "Times New Roman", serif;
      font-optical-sizing: auto;
      font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
      line-height: 1.62;
      color: var(--kisaka-article-body);
      font-kerning: normal;
      hanging-punctuation: first;
   }

.kisaka-article__prose p
   {
      font: inherit;
      color: inherit;
      margin: 0 0 1.1em;
   }

.kisaka-article__prose > .kisaka-article__lead
   {
      font-size: 1.22em;
      line-height: 1.45;
      letter-spacing: -0.006em;
      color: var(--kisaka-article-ink);
      margin-bottom: 1.2em;
   }

.kisaka-article__prose h2
   {
      scroll-margin-top: calc(var(--kisaka-header-h) + 32px);
      margin: 2.4em 0 0.9em;
      padding-top: 1.2em;
      border-top: 1px solid var(--kisaka-article-line);
      font-family: var(--kisaka-font-family);
      font-size: 0.72em;
      font-weight: 600;
      letter-spacing: 0.08em;
      line-height: 1.3;
      text-transform: uppercase;
      color: var(--kisaka-article-ink);
   }

/* Arrival: a red rule draws over the hairline of the heading a jump landed on */
.kisaka-article__prose h2
   {
      position: relative;
   }

.kisaka-article__prose h2::before
   {
      content: "";
      position: absolute;
      top: -1px;
      left: 0;
      right: 0;
      height: 1px;
      background: var(--kisaka-red);
      pointer-events: none;
      transform: scaleX(0);
      transform-origin: left center;
   }

.kisaka-article__prose h2.is-arrived::before
   {
      transform: scaleX(1);
      transition: transform 700ms var(--kisaka-ease-out-expo);
   }

.kisaka-article__prose h2.is-leaving::before
   {
      opacity: 0;
      transition: opacity 400ms var(--kisaka-ease-out);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-article__prose h2::before
         {
            transform: none;
            opacity: 0;
         }

      .kisaka-article__prose h2.is-arrived::before
         {
            opacity: 1;
            transition: opacity 200ms var(--kisaka-ease-out);
         }

      .kisaka-article__prose h2.is-leaving::before
         {
            opacity: 0;
         }
   }

.kisaka-article__prose h2:first-child
   {
      margin-top: 0;
      padding-top: 0;
      border-top: 0;
   }

.kisaka-article__prose h3
   {
      margin: 1.8em 0 0.5em;
      font-family: inherit;
      font-size: 1.15em;
      font-weight: 550;
      color: var(--kisaka-article-ink);
   }

.kisaka-article__prose a
   {
      color: var(--kisaka-article-ink);
      font-weight: inherit;
      text-decoration: underline;
      text-decoration-color: var(--kisaka-red);
      text-decoration-thickness: 1px;
      text-underline-offset: 0.18em;
      border: 0;
      transition: color 0.2s ease, text-decoration-thickness 0.2s ease;
   }

.kisaka-article__prose a:hover
   {
      color: var(--kisaka-red);
      text-decoration-thickness: 2px;
   }

.kisaka-article__list, .kisaka-article__steps
   {
      list-style: none;
      margin: 0 0 1.3em;
      padding: 0;
   }

.kisaka-article__list li, .kisaka-article__steps li
   {
      position: relative;
      margin: 0 0 0.6em;
      padding-left: 1.4em;
      font: inherit;
      color: inherit;
   }

.kisaka-article__list strong, .kisaka-article__steps strong
   {
      font-weight: 600;
      color: var(--kisaka-article-ink);
   }

.kisaka-article__list li::before
   {
      content: "";
      position: absolute;
      left: 0.05em;
      top: 0.55em;
      width: 0.42em;
      height: 0.42em;
      border-radius: 50%;
      background: var(--kisaka-red);
   }

@keyframes kisaka-article-next-nudge
   {
      50%
         {
            transform: translateX(3px);
         }
   }

.kisaka-article-page__pager-link
   {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 14px;
      font-weight: 500;
      color: var(--kisaka-article-quiet);
      text-decoration: none;
      transition: color 0.2s ease, transform 160ms var(--kisaka-ease-out);
   }

/* Arrival: category, headline and byline rise in step while the photograph
   opens from the top, all under the fading red preloader (js/main.js). */
body.kisaka-article-intro-ready
   {
      --kisaka-article-intro-lead: 200ms;
   }

body.kisaka-article-intro-ready .kisaka-article-page__cat,
body.kisaka-article-intro-ready .kisaka-article-page__title,
body.kisaka-article-intro-ready .kisaka-article-page__byline,
body.kisaka-article-intro-ready .kisaka-article-page__hero-figure
   {
      opacity: 0;
   }

body.kisaka-article-intro-playing .kisaka-article-page__cat,
body.kisaka-article-intro-playing .kisaka-article-page__title,
body.kisaka-article-intro-playing .kisaka-article-page__byline,
body.kisaka-article-intro-playing .kisaka-article-page__hero-figure
   {
      opacity: 1;
      transition: opacity 200ms var(--kisaka-ease-out);
   }

@media (prefers-reduced-motion: no-preference)
   {
      body.kisaka-article-intro-ready .kisaka-article-page__cat,
      body.kisaka-article-intro-ready .kisaka-article-page__title,
      body.kisaka-article-intro-ready .kisaka-article-page__byline
         {
            transform: translateY(12px);
         }

      body.kisaka-article-intro-playing .kisaka-article-page__cat,
      body.kisaka-article-intro-playing .kisaka-article-page__title,
      body.kisaka-article-intro-playing .kisaka-article-page__byline
         {
            transform: none;
            transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--kisaka-article-intro-delay), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--kisaka-article-intro-delay);
         }

      body.kisaka-article-intro-playing .kisaka-article-page__title
         {
            --kisaka-article-intro-delay: calc(var(--kisaka-article-intro-lead) + 60ms);
         }

      body.kisaka-article-intro-playing .kisaka-article-page__byline
         {
            --kisaka-article-intro-delay: calc(var(--kisaka-article-intro-lead) + 120ms);
         }
   }

/* Phones and tablets have no contents rail, so reading progress rides the
   header's floor instead: a red hairline filled by the scroll itself. */
@supports (animation-timeline: scroll())
   {
      @media (max-width: 1099px) and (prefers-reduced-motion: no-preference)
         {
            body.kisaka-blog-article .header .header-inner::after
               {
                  content: "";
                  position: absolute;
                  left: 0;
                  right: 0;
                  bottom: -1px;
                  height: 2px;
                  background: var(--kisaka-red);
                  pointer-events: none;
                  transform-origin: left center;
                  transform: scaleX(0);
                  animation: kisaka-article-progress linear both;
                  animation-timeline: scroll(root block);
               }
         }
   }

@keyframes kisaka-article-progress
   {
      to
         {
            transform: scaleX(1);
         }
   }

.kisaka-home-page .header .header-inner, .kisaka-home-page .header.sticky .header-inner
   {
      top: 0;
      left: 50%;
      right: auto;
      width: 100%;
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      transform: translateX(-50%);
      background: transparent;
      -webkit-backdrop-filter: none;
      backdrop-filter: none;
      border: 0;
      border-bottom: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
      -webkit-transition: background 0.28s ease, border-color 0.28s ease, -webkit-box-shadow 0.28s ease;
      transition: background 0.28s ease, border-color 0.28s ease, -webkit-box-shadow 0.28s ease;
      -o-transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
      transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
      transition: background 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, -webkit-box-shadow 0.28s ease;
   }

.kisaka-home-page .header .container
   {
      max-width: none;
   }

.kisaka-home-page .header .logo
   {
      color: #fff;
   }

.kisaka-home-page .header .kisaka-logo-text,
.kisaka-home-page .header .kisaka-logo-tagline,
.kisaka-home-page .header .nav.menu > li > a,
.kisaka-home-page .header .slicknav_menu .slicknav_icon-bar
   {
      color: rgba(255, 255, 255, 0.86);
      -webkit-transition: color 0.28s ease, background-color 0.28s ease;
      -o-transition: color 0.28s ease, background-color 0.28s ease;
      transition: color 0.28s ease, background-color 0.28s ease;
   }

.kisaka-home-page .header .kisaka-logo-tagline
   {
      color: rgba(255, 255, 255, 0.56);
   }

.kisaka-home-page .header .nav li.active a, .kisaka-home-page .header .nav li:hover > a
   {
      color: #fff;
   }

.kisaka-home-page .header .nav li a::before
   {
      background: rgba(247, 240, 228, 0.86);
   }

body.kisaka-home-page.kisaka-home-nav-on-light .header .header-inner .logo
   {
      color: #171717;
   }

body.kisaka-home-page.kisaka-home-nav-on-light .header .header-inner .kisaka-logo-text,
body.kisaka-home-page.kisaka-home-nav-on-light .header .header-inner .nav.menu > li > a,
body.kisaka-home-page.kisaka-home-nav-on-light .header .header-inner .nav li.active a
   {
      color: rgba(19, 20, 24, 0.88);
   }

body.kisaka-home-page.kisaka-home-nav-on-light .header .header-inner .kisaka-logo-tagline
   {
      color: rgba(19, 20, 24, 0.56);
   }

body.kisaka-home-page.kisaka-home-nav-on-light .header .header-inner .nav li a::before
   {
      background: rgba(19, 20, 24, 0.7);
   }

body.kisaka-home-page.kisaka-home-nav-on-light .header .header-inner .slicknav_menu .slicknav_icon-bar
   {
      background-color: rgba(19, 20, 24, 0.86);
   }

.kisaka-what-do__rail
   {
      position: relative;
      z-index: 1;
      height: 100%;
      overflow-x: hidden;
      overflow-y: hidden;
      scrollbar-width: none;
      -ms-overflow-style: none;
      outline: none;
   }

.kisaka-what-do__rail::-webkit-scrollbar
   {
      display: none;
   }

@-webkit-keyframes kisaka-clients-left
   {
      from
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }

      to
         {
            -webkit-transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
            transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
         }
   }

@keyframes kisaka-clients-left
   {
      from
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }

      to
         {
            -webkit-transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
            transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
         }
   }

@-webkit-keyframes kisaka-clients-right
   {
      from
         {
            -webkit-transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
            transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
         }

      to
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

@keyframes kisaka-clients-right
   {
      from
         {
            -webkit-transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
            transform: translate3d(calc(-1 * var(--kisaka-clients-shift, 0px)), 0, 0);
         }

      to
         {
            -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
         }
   }

/* Every mark sits in one grey ink so thirty brand palettes read as one wall;
   the logo under the pointer takes its own colour back. Logos that shipped on
   a white box use the *-clear.png copies so no box shows on the grey paper. */
.kisaka-home-clients__logo img
   {
      display: block;
      width: auto;
      height: calc(var(--kisaka-clients-logo-h) * var(--logo-scale, 1));
      max-width: none;
      object-fit: contain;
      -webkit-filter: grayscale(1) contrast(1.1);
      filter: grayscale(1) contrast(1.1);
      opacity: 0.55;
      transition: filter 0.3s ease, -webkit-filter 0.3s ease, opacity 0.3s ease;
   }

/* Shares the red launch button; only the label type is local. */
.kisaka-home-clients__cta
   {
      flex: 0 0 auto;
      font-family: var(--kisaka-font-accent), 'Google Sans Flex', sans-serif;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
   }

.kisaka-home-testimonials__roll > :not(.is-current)
   {
      opacity: 0;
      pointer-events: none;
   }

.kisaka-home-testimonials__roll:not(.kisaka-home-testimonials__roll--quote) > :not(.is-current)
   {
      -webkit-transform: translateY(105%);
      transform: translateY(105%);
   }

.kisaka-home-testimonials__roll:not(.kisaka-home-testimonials__roll--quote) > .is-before
   {
      -webkit-transform: translateY(-105%);
      transform: translateY(-105%);
   }

/* The closing clause inks in once its quote has risen. */
.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__accent
   {
      color: var(--kisaka-tst-mute);
      -webkit-transition: color 480ms ease;
      transition: color 480ms ease;
   }

.kisaka-home-testimonials__nav
   {
      position: absolute;
      right: 0;
      bottom: 0;
      display: flex;
      align-items: center;
      gap: 1.25em;
   }

.kisaka-home-testimonials__arrow
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2.25em;
      height: 2.25em;
      padding: 0;
      border: 0;
      background: none;
      color: var(--kisaka-tst-ink);
      font-size: inherit;
      cursor: pointer;
      -webkit-transition: color 240ms ease, opacity 240ms ease;
      transition: color 240ms ease, opacity 240ms ease;
   }

.kisaka-home-testimonials__marquee-track
   {
      display: flex;
      align-items: center;
      gap: 5em;
      width: max-content;
      -webkit-animation: kisaka-tst-marquee 42s linear infinite;
      animation: kisaka-tst-marquee 42s linear infinite;
   }

.kisaka-home-testimonials__marquee-track img
   {
      display: block;
      width: auto;
      max-width: 7em;
      height: 1.75em;
      object-fit: contain;
   }

@-webkit-keyframes kisaka-tst-marquee
   {
      from
         {
            -webkit-transform: translateX(0);
            transform: translateX(0);
         }

      to
         {
            -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
         }
   }

@keyframes kisaka-tst-marquee
   {
      from
         {
            -webkit-transform: translateX(0);
            transform: translateX(0);
         }

      to
         {
            -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
         }
   }

/* Arrival: JS arms the panel hidden and draws it once when the page parks
   here (.is-tst-drawn). The frame (eyebrow, marks, labels, rule, arrows,
   trusted strip) draws only then and stays still between testimonials; the
   values roll in, and the quote rises line by line from its masks like the
   What we do headline. */
.kisaka-home-testimonials__word-clip
   {
      display: inline-block;
      overflow: hidden;
      vertical-align: bottom;
      padding-bottom: 0.1em;
      margin-bottom: -0.1em;
   }

.kisaka-home-testimonials__word
   {
      display: inline-block;
      white-space: nowrap;
   }

.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__roll:not(.kisaka-home-testimonials__roll--quote) > *
   {
      -webkit-transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out), -webkit-transform var(--kisaka-dur-reveal) var(--kisaka-ease-out);
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out);
      -webkit-transition-delay: calc(var(--tst-roll-lead) + var(--tst-roll-step, 0s));
      transition-delay: calc(var(--tst-roll-lead) + var(--tst-roll-step, 0s));
   }

/* The quote leaving fades and its words drop out of their masks at once;
   the quote arriving rises line by line. */
.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__roll--quote > *
   {
      -webkit-transition: opacity 360ms var(--kisaka-ease-out);
      transition: opacity 360ms var(--kisaka-ease-out);
   }

/* The frame. */
.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__eyebrow,
.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__mark,
.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__counter-total,
.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__specs dt
   {
      -webkit-transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out), -webkit-transform var(--kisaka-dur-reveal) var(--kisaka-ease-out);
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out);
   }

.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__nav
   {
      -webkit-transition: opacity 400ms var(--kisaka-ease-out);
      transition: opacity 400ms var(--kisaka-ease-out);
   }

.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__specs::before
   {
      -webkit-transition: -webkit-transform 720ms var(--kisaka-ease-out);
      transition: transform 720ms var(--kisaka-ease-out);
   }

.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__eyebrow,
.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__counter-total,
.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__specs dt
   {
      opacity: 0;
      -webkit-transform: translateY(12px);
      transform: translateY(12px);
   }

.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__mark
   {
      opacity: 0;
      -webkit-transform: scale(0.9);
      transform: scale(0.9);
   }

.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__mark--close
   {
      -webkit-transform: rotate(180deg) scale(0.9);
      transform: rotate(180deg) scale(0.9);
   }

.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__specs::before
   {
      -webkit-transform: scaleX(0);
      transform: scaleX(0);
   }

/* The labels land one line at a time: counter, the rule, then each spec row. */
.kisaka-home-testimonials.is-tst-drawn .kisaka-home-testimonials__counter-total
   {
      -webkit-transition-delay: 0.08s;
      transition-delay: 0.08s;
   }

.kisaka-home-testimonials.is-tst-drawn .kisaka-home-testimonials__specs::before
   {
      -webkit-transition-delay: 0.12s;
      transition-delay: 0.12s;
   }

/* The closing mark lands after the last line of the quote. */
.kisaka-home-testimonials.is-tst-drawn .kisaka-home-testimonials__mark--close
   {
      -webkit-transition-delay: 0.62s;
      transition-delay: 0.62s;
   }

.kisaka-home-testimonials.is-tst-drawn .kisaka-home-testimonials__nav
   {
      -webkit-transition-delay: 0.44s;
      transition-delay: 0.44s;
   }

/* The slider as a whole glides in and out along the carousel's own axis.
   Forward through the page it enters from the right and leaves to the left;
   heading back up mirrors both. JS sets --tst-rail-from while hidden and
   --tst-rail-to when a panel move leaves. */
.kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__viewport
   {
      -webkit-transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out), -webkit-transform 720ms var(--kisaka-ease-out);
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out), transform 720ms var(--kisaka-ease-out);
   }

.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__viewport
   {
      opacity: 0;
      -webkit-transform: translateX(var(--tst-rail-from, 6em));
      transform: translateX(var(--tst-rail-from, 6em));
   }

/* The arrival pass runs longer than a step between testimonials, so the
   cascade is still visibly landing once the page has parked. */
.kisaka-home-testimonials.is-tst-drawn:not(.is-tst-settled) .kisaka-home-testimonials__roll:not(.kisaka-home-testimonials__roll--quote) > *,
.kisaka-home-testimonials.is-tst-drawn:not(.is-tst-settled) .kisaka-home-testimonials__eyebrow,
.kisaka-home-testimonials.is-tst-drawn:not(.is-tst-settled) .kisaka-home-testimonials__mark,
.kisaka-home-testimonials.is-tst-drawn:not(.is-tst-settled) .kisaka-home-testimonials__counter-total,
.kisaka-home-testimonials.is-tst-drawn:not(.is-tst-settled) .kisaka-home-testimonials__specs dt
   {
      -webkit-transition-duration: 900ms;
      transition-duration: 900ms;
   }

.kisaka-home-testimonials.is-tst-drawn:not(.is-tst-settled) .kisaka-home-testimonials__nav
   {
      -webkit-transition-duration: 700ms;
      transition-duration: 700ms;
   }

.kisaka-home-testimonials.is-tst-drawn:not(.is-tst-settled) .kisaka-home-testimonials__specs::before
   {
      -webkit-transition-duration: 1000ms;
      transition-duration: 1000ms;
   }

.kisaka-home-testimonials.is-tst-armed:not(.is-tst-drawn) .kisaka-home-testimonials__eyebrow
   {
      -webkit-transform: translateY(20px);
      transform: translateY(20px);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-home-testimonials__marquee-track
         {
            -webkit-animation: none;
            animation: none;
            flex-wrap: wrap;
            width: auto;
            row-gap: 14px;
         }

      /* Reduced motion keeps every change as a short, still crossfade. */
      .kisaka-home-testimonials .kisaka-home-testimonials__roll > *,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__roll > *,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__word,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__viewport,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__eyebrow,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__mark:not(.kisaka-home-testimonials__mark--close),
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__counter-total,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__specs dt,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__specs::before,
      .kisaka-home-testimonials.is-tst-armed .kisaka-home-testimonials__nav
         {
            -webkit-transform: none !important;
            transform: none !important;
            -webkit-transition: opacity 200ms ease !important;
            transition: opacity 200ms ease !important;
         }
   }

@media (max-width: 479px)
   {
      .kisaka-home-testimonials__marquee-track img
         {
            height: 1.25em;
         }
   }

/* Responsive line masks for the What We Do headline. JavaScript groups the
   naturally wrapped words by row so each visible line rises in together. */
.kisaka-what-do__headline-word-clip
   {
      display: inline-block;
      overflow: hidden;
      vertical-align: bottom;
      padding-bottom: 0.1em;
      margin-bottom: -0.1em;
   }

.kisaka-what-do__headline-word
   {
      display: inline-block;
      white-space: nowrap;
      -webkit-transition: -webkit-transform 0.72s var(--kisaka-ease-out);
      -o-transition: transform 0.72s var(--kisaka-ease-out);
      transition: transform 0.72s var(--kisaka-ease-out);
      transition: transform 0.72s var(--kisaka-ease-out), -webkit-transform 0.72s var(--kisaka-ease-out);
      -webkit-transition-delay: var(--kisaka-what-do-headline-delay, 0.04s);
      -o-transition-delay: var(--kisaka-what-do-headline-delay, 0.04s);
      transition-delay: var(--kisaka-what-do-headline-delay, 0.04s);
      will-change: transform;
   }

/* Alternating editorial rules: the top rule enters from the left, then each
   service closes with a stroke travelling in the opposite direction. */
.kisaka-what-do__services::before, .kisaka-what-do__service::after
   {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      z-index: 3;
      height: 1px;
      background: rgba(243, 244, 236, 0.2);
      pointer-events: none;
      -webkit-transform: scaleX(1);
      -ms-transform: scaleX(1);
      transform: scaleX(1);
      -webkit-transition: background-color 260ms ease, -webkit-transform 3s cubic-bezier(0.16, 1, 0.3, 1);
      transition: background-color 260ms ease, -webkit-transform 3s cubic-bezier(0.16, 1, 0.3, 1);
      -o-transition: transform 3s cubic-bezier(0.16, 1, 0.3, 1), background-color 260ms ease;
      transition: transform 3s cubic-bezier(0.16, 1, 0.3, 1), background-color 260ms ease;
      transition: transform 3s cubic-bezier(0.16, 1, 0.3, 1), background-color 260ms ease, -webkit-transform 3s cubic-bezier(0.16, 1, 0.3, 1);
   }

.kisaka-what-do__service
   {
      position: relative;
      display: grid;
      grid-template-columns: 52px minmax(260px, 1fr) minmax(230px, 0.56fr) 32px;
      align-items: center;
      gap: clamp(16px, 2.4vw, 38px);
      min-height: 148px;
      padding: 28px max(24px, calc((100vw - 1140px) / 2));
      background: var(--kisaka-what-do-ink);
      color: var(--kisaka-what-do-paper);
      cursor: pointer;
      text-decoration: none !important;
      -webkit-transition: color 260ms ease, background-color 260ms ease, opacity 260ms ease;
      -o-transition: color 260ms ease, background-color 260ms ease, opacity 260ms ease;
      transition: color 260ms ease, background-color 260ms ease, opacity 260ms ease;
   }

.kisaka-scramble-word
   {
      display: inline-block;
      white-space: nowrap;
   }

.kisaka-scramble-char
   {
      display: inline-block;
   }

.kisaka-what-do__description-roll-word
   {
      display: inline-block;
      height: 1.5em;
      overflow: hidden;
      vertical-align: bottom;
   }

.kisaka-what-do__description-roll-track
   {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0);
      -webkit-transition: -webkit-transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
      transition: -webkit-transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
      -o-transition: transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
      transition: transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
      transition: transform 680ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
      -webkit-transition-delay: var(--kisaka-description-roll-delay, 0ms);
      -o-transition-delay: var(--kisaka-description-roll-delay, 0ms);
      transition-delay: var(--kisaka-description-roll-delay, 0ms);
   }

.kisaka-what-do__description-roll-copy
   {
      display: block;
      height: 1.5em;
      line-height: 1.5;
      white-space: nowrap;
   }

/* Material Symbols' arrow_outward has a balanced head and shaft. The glyph
   uses the same two-copy diagonal hover swap as the Explore button. */
.kisaka-what-do__service-arrow::before, .kisaka-what-do__service-arrow::after
   {
      content: "arrow_outward";
      position: absolute;
      inset: 0;
      display: block;
      font-family: 'Material Symbols Outlined';
      font-size: 30px;
      font-style: normal;
      font-weight: 400;
      font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 32;
      font-feature-settings: 'liga';
      line-height: 1;
      letter-spacing: normal;
      white-space: nowrap;
      -webkit-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0);
      -webkit-transition: -webkit-transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: -webkit-transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      -o-transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1), -webkit-transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
   }

.kisaka-what-do__rail:focus-visible
   {
      outline: 2px solid rgba(203, 31, 52, 0.72);
      outline-offset: -4px;
   }

@media (max-width: 767px)
   {
      .kisaka-what-do__rail
         {
            min-height: 620px;
         }
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-what-do__service-arrow::before, .kisaka-what-do__service-arrow::after
         {
            -webkit-transition: none;
            -o-transition: none;
            transition: none;
         }

      .kisaka-what-do__rail
         {
            height: auto;
            overflow: visible;
         }
   }

/* Home / What we do as a service directory: the About "Built for institutions"
   shape (claim, note and buttons beside a dotted-icon directory) on the What we
   do ink. Twelve services split into two columns so the panel holds one screen. */
.kisaka-what-do--directory .kisaka-about-industries__title
   {
      max-width: none;
      margin: 0 0 14px;
      font-family: var(--kisaka-font-accent);
      font-size: 12px;
      font-weight: 700;
      line-height: 1.2;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--kisaka-red);
   }

.kisaka-what-do--directory .kisaka-about-industries__lead
   {
      font-family: var(--kisaka-font-family);
   }

.kisaka-what-do--directory .kisaka-about-industries__highlight
   {
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
   }

.kisaka-what-do--directory .kisaka-about-industries__directory.is-pressed .kisaka-about-industries__highlight
   {
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
   }

.kisaka-what-do--directory .kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:hover .kisaka-about-industries__promise,
.kisaka-what-do--directory .kisaka-about-industries__directory:not(.is-live) .kisaka-about-industries__link:focus-visible .kisaka-about-industries__promise,
.kisaka-what-do--directory .kisaka-about-industries__link.is-hot .kisaka-about-industries__promise
   {
      color: rgba(243, 244, 236, 0.8);
   }

.kisaka-what-do--directory .kisaka-about-industries__note
   {
      color: rgba(243, 244, 236, 0.6);
   }

.kisaka-what-do--directory .kisaka-about-industries__note a,
.kisaka-what-do--directory .kisaka-about-industries__note a:visited,
.kisaka-what-do--directory .kisaka-about-industries__note a:hover,
.kisaka-what-do--directory .kisaka-about-industries__note a:focus-visible,
.kisaka-what-do--directory .kisaka-about-industries__note a:active
   {
      color: #fff;
   }

.kisaka-what-do--directory .kisaka-about-industries__btns .kisaka-home-launch__btn--primary:hover,
.kisaka-what-do--directory .kisaka-about-industries__btns .kisaka-home-launch__btn--primary:focus-visible
   {
      background: var(--kisaka-what-do-paper);
   }

@media (min-width: 992px)
   {
      .kisaka-what-do--directory .kisaka-about-industries__inner
         {
            grid-template-columns: minmax(300px, 0.36fr) minmax(0, 1fr);
            column-gap: clamp(28px, 4vw, 80px);
            row-gap: 16px;
         }

      .kisaka-what-do--directory .kisaka-about-industries__title
         {
            font-size: 12px;
         }

      .kisaka-what-do--directory .kisaka-about-industries__btns
         {
            margin-top: 10px;
         }

      .kisaka-what-do--directory .kisaka-about-industries__list
         {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            grid-template-rows: repeat(6, auto);
            grid-auto-flow: column;
            column-gap: 8px;
         }

      /* Rows share heights across the columns, so each link fills its row and the
         rules line up even when one service name wraps. */
      .kisaka-what-do--directory .kisaka-about-industries__item
         {
            display: flex;
         }

      .kisaka-what-do--directory .kisaka-about-industries__link
         {
            flex: 1;
         }

      .kisaka-what-do--directory .kisaka-about-industries__item:nth-child(6) .kisaka-about-industries__link::after
         {
            content: none;
         }

      .kisaka-what-do--directory .kisaka-about-industries__link
         {
            padding-top: clamp(8px, 1.3vh, 14px);
            padding-bottom: clamp(8px, 1.3vh, 14px);
         }
   }

/* Short laptop screens: the full service descriptions run to three lines, so
   the rows tighten to keep all six per column on one screen. */
@media (min-width: 992px) and (max-height: 800px)
   {
      .kisaka-what-do--directory .kisaka-about-industries__link
         {
            padding-top: 6px;
            padding-bottom: 6px;
         }

      .kisaka-what-do--directory .kisaka-about-industries__promise
         {
            font-size: 0.86rem;
            line-height: 1.32;
         }
   }

@keyframes kisaka-what-do-held-dim
   {
      to
         {
            opacity: 0.6;
         }
   }

@keyframes kisaka-what-do-held-sink
   {
      to
         {
            transform: translate3d(0, -3vh, 0) scale(0.94);
         }
   }

/* Home: What we do arrival (js/kisaka-about-industries.js). Armed hides
   everything with no transition; .is-wd-in plays the cascade as the panel
   lands, the same 520ms ease-out every home panel uses. Delays come in as
   --wd-d from the script. On phones each row reveals itself with
   .is-wd-row-in as it scrolls in. Reduced motion never arms, so it stays put. */
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__title,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-wd-word,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__item,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__icon,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__promise,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__link::after,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__note,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__btns
   {
      transition: none;
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__title
   {
      opacity: 0;
      transform: translate3d(0, 0.9em, 0);
      clip-path: inset(0 0 100% 0);
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__item
   {
      opacity: 0;
      transform: translate3d(0, 18px, 0);
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__icon
   {
      opacity: 0;
      transform: scale(0.82);
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__promise
   {
      opacity: 0;
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__link::after
   {
      transform: scaleX(0);
      transform-origin: 0 50%;
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__note
   {
      opacity: 0;
      transform: translate3d(0, 12px, 0);
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__btns
   {
      opacity: 0;
      transform: translate3d(0, 14px, 0);
   }

/* Shown. Bleeds the eyebrow's clip past its box so the settled line never
   shaves a letter. */
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-about-industries__title
   {
      opacity: 1;
      transform: translate3d(0, 0, 0);
      clip-path: inset(-0.3em -0.3em -0.3em -0.3em);
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--wd-d, 0ms), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--wd-d, 0ms), clip-path var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--wd-d, 0ms);
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-wd-word,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-about-industries__note,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-about-industries__btns,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__item.is-wd-row-in
   {
      opacity: 1;
      transform: translate3d(0, 0, 0);
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--wd-d, 0ms), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--wd-d, 0ms);
   }

body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__item.is-wd-row-in .kisaka-about-industries__icon
   {
      opacity: 1;
      transform: scale(1);
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 60ms), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 60ms);
   }

/* Keeps the hover colour change alongside the fade. */
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__item.is-wd-row-in .kisaka-about-industries__promise
   {
      opacity: 1;
      transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 90ms), color 120ms ease-out;
   }

/* Keeps the hover fade of the rule alongside the draw. */
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed .kisaka-about-industries__item.is-wd-row-in .kisaka-about-industries__link::after
   {
      transform: scaleX(1);
      transition: transform 640ms var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 40ms), opacity 120ms ease-out;
   }

/* Two columns from 992px: the panel holds one screen, so the rows ride the
   section's reveal as one diagonal wave. Below that each row has its own. */
@media (min-width: 992px)
   {
      body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-about-industries__item
         {
            opacity: 1;
            transform: translate3d(0, 0, 0);
            transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--wd-d, 0ms), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) var(--wd-d, 0ms);
         }

      body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-about-industries__item .kisaka-about-industries__icon
         {
            opacity: 1;
            transform: scale(1);
            transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 60ms), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 60ms);
         }

      body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-about-industries__item .kisaka-about-industries__promise
         {
            opacity: 1;
            transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 90ms), color 120ms ease-out;
         }

      body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in .kisaka-about-industries__item .kisaka-about-industries__link::after
         {
            transform: scaleX(1);
            transition: transform 640ms var(--kisaka-ease-out) calc(var(--wd-d, 0ms) + 40ms), opacity 120ms ease-out;
         }
   }

/* Leaving for Sustainability: the page heads up, so everything drops out
   the bottom, last in first out. Quicker than the arrival so it's cleared
   while the ink panel is still sliding off. Delays come in as --wd-x from
   the script. Turning back mid-exit just retargets to the shown state. */
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in.is-wd-leaving .kisaka-about-industries__title,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in.is-wd-leaving .kisaka-wd-word,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in.is-wd-leaving .kisaka-about-industries__item,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in.is-wd-leaving .kisaka-about-industries__note,
body.kisaka-home-page .kisaka-what-do--directory.is-wd-armed.is-wd-in.is-wd-leaving .kisaka-about-industries__btns
   {
      opacity: 0;
      transform: translate3d(0, 14px, 0);
      transition: opacity 280ms var(--kisaka-ease-out) var(--wd-x, 0ms), transform 280ms var(--kisaka-ease-out) var(--wd-x, 0ms);
   }

.kisaka-home-launch__cursor-field
   {
      position: absolute;
      inset: 0;
      z-index: 2;
      display: block;
      width: 100%;
      height: 100%;
      opacity: 0.72;
      -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 22%, rgba(0, 0, 0, 0.68) 34%, rgba(0, 0, 0, 0.16) 48%, transparent 62%);
      mask-image: linear-gradient(90deg, #000 0%, #000 22%, rgba(0, 0, 0, 0.68) 34%, rgba(0, 0, 0, 0.16) 48%, transparent 62%);
      mix-blend-mode: screen;
      pointer-events: none;
   }

.kisaka-home-launch__photo, .kisaka-home-launch__shade, .kisaka-home-launch__grid
   {
      position: absolute;
      inset: 0;
   }

.kisaka-home-launch__photo
   {
      z-index: 0;
      background-image: url("../img/home/kisaka-home-hero-walking-outside.png");
      background-size: cover;
      background-position: center center;
      -webkit-transform: scale(1.01);
      -ms-transform: scale(1.01);
      transform: scale(1.01);
   }

.kisaka-home-launch__grid
   {
      z-index: 2;
      background-image: linear-gradient(to bottom, transparent 0, transparent calc(66% - 1px), rgba(255, 255, 255, 0.1) calc(66% - 1px), rgba(255, 255, 255, 0.1) 66%, transparent 66%);
      pointer-events: none;
   }

.kisaka-home-launch__headline, .kisaka-home-launch__position, .kisaka-home-launch__brief
   {
      position: absolute;
      z-index: 4;
   }

.kisaka-home-scroll-cue
   {
      position: absolute;
      left: 50%;
      bottom: 18px;
      z-index: 6;
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      color: rgba(255, 255, 255, 0.68);
      font-family: var(--kisaka-font-accent);
      font-size: 11px;
      font-weight: 500;
      line-height: 1;
      letter-spacing: 0.05em;
      text-decoration: none !important;
      white-space: nowrap;
      opacity: 1;
      visibility: visible;
      -webkit-transform: translate3d(-50%, 0, 0);
      transform: translate3d(-50%, 0, 0);

      /* Returning: wait for the glide to land, then settle in. */
      -webkit-transition: color 220ms ease, opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) 0.15s, visibility 0s linear 0.15s, -webkit-transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) 0.15s;
      transition: color 220ms ease, opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) 0.15s, visibility 0s linear 0.15s, transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) 0.15s;
   }

@-webkit-keyframes kisaka-scroll-cue-float
   {
      0%, 100%
         {
            -webkit-transform: translateY(0);
            transform: translateY(0);
         }

      50%
         {
            -webkit-transform: translateY(6px);
            transform: translateY(6px);
         }
   }

@keyframes kisaka-scroll-cue-float
   {
      0%, 100%
         {
            -webkit-transform: translateY(0);
            transform: translateY(0);
         }

      50%
         {
            -webkit-transform: translateY(6px);
            transform: translateY(6px);
         }
   }

.kisaka-home-launch__btn
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      position: relative;
      overflow: hidden;
      z-index: 0;
      min-height: 44px;
      padding: 12px 22px;
      border-radius: 4px;
      background: transparent;
      font-size: 13px;
      font-weight: 400;
      text-decoration: none !important;
      -webkit-transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease;
      -o-transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease;
      transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease;
   }

/* Diagonal arrow lockup: the arrow flies out the top-right on hover while an
   identical copy slides in from the bottom-left along the same diagonal. */
.kisaka-home-launch__btn-arrow-box
   {
      position: relative;
      display: inline-block;
      width: 1.1em;
      height: 1.1em;
      overflow: hidden;
      -webkit-box-flex: 0;
      -ms-flex: none;
      flex: none;
   }

.kisaka-home-launch__btn-arrow
   {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      -webkit-transition: -webkit-transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: -webkit-transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      -o-transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
      transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1), -webkit-transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
   }

/* The incoming copy waits off-screen at the bottom-left. */
.kisaka-home-launch__btn-arrow--ghost
   {
      -webkit-transform: translate(-115%, 115%);
      -ms-transform: translate(-115%, 115%);
      transform: translate(-115%, 115%);
   }

.kisaka-home-launch__btn:hover .kisaka-home-launch__btn-arrow,
.kisaka-home-launch__btn:focus-visible .kisaka-home-launch__btn-arrow,
.kisaka-about-help__all:hover .kisaka-home-launch__btn-arrow,
.kisaka-about-help__all:focus-visible .kisaka-home-launch__btn-arrow,
.kisaka-home-mission__readmore:hover .kisaka-home-launch__btn-arrow,
.kisaka-home-mission__readmore:focus-visible .kisaka-home-launch__btn-arrow,
.kisaka-svc-index__item-btn:hover .kisaka-home-launch__btn-arrow,
.kisaka-svc-index__item-btn:focus-visible .kisaka-home-launch__btn-arrow,
.kisaka-careers-role__apply:hover .kisaka-home-launch__btn-arrow,
.kisaka-careers-role__apply:focus-visible .kisaka-home-launch__btn-arrow,
.contact-send:hover .kisaka-home-launch__btn-arrow,
.contact-send:focus-visible .kisaka-home-launch__btn-arrow,
.contact-rfp__action:hover .kisaka-home-launch__btn-arrow,
.contact-rfp__action:focus-visible .kisaka-home-launch__btn-arrow
   {
      -webkit-transform: translate(115%, -115%);
      -ms-transform: translate(115%, -115%);
      transform: translate(115%, -115%);
   }

.kisaka-home-launch__btn:hover .kisaka-home-launch__btn-arrow--ghost,
.kisaka-home-launch__btn:focus-visible .kisaka-home-launch__btn-arrow--ghost,
.kisaka-about-help__all:hover .kisaka-home-launch__btn-arrow--ghost,
.kisaka-about-help__all:focus-visible .kisaka-home-launch__btn-arrow--ghost,
.kisaka-home-mission__readmore:hover .kisaka-home-launch__btn-arrow--ghost,
.kisaka-home-mission__readmore:focus-visible .kisaka-home-launch__btn-arrow--ghost,
.kisaka-svc-index__item-btn:hover .kisaka-home-launch__btn-arrow--ghost,
.kisaka-svc-index__item-btn:focus-visible .kisaka-home-launch__btn-arrow--ghost,
.kisaka-careers-role__apply:hover .kisaka-home-launch__btn-arrow--ghost,
.kisaka-careers-role__apply:focus-visible .kisaka-home-launch__btn-arrow--ghost,
.contact-send:hover .kisaka-home-launch__btn-arrow--ghost,
.contact-send:focus-visible .kisaka-home-launch__btn-arrow--ghost,
.contact-rfp__action:hover .kisaka-home-launch__btn-arrow--ghost,
.contact-rfp__action:focus-visible .kisaka-home-launch__btn-arrow--ghost
   {
      -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
      transform: translate(0, 0);
   }

@media (prefers-reduced-motion: reduce)
   {
      .kisaka-home-launch__btn-arrow
         {
            -webkit-transition: none;
            -o-transition: none;
            transition: none;
         }
   }

.kisaka-home-launch__btn:before, .kisaka-home-launch__btn:after
   {
      content: none;
   }

.kisaka-home-launch__btn--primary, .kisaka-home-launch__btn--primary:visited
   {
      background: var(--kisaka-red);
      border: 0.5px solid var(--kisaka-red);
      color: #fff;
   }

.kisaka-home-launch__btn--primary:hover, .kisaka-home-launch__btn--primary:focus-visible
   {
      background: #fff;
      border-color: var(--kisaka-red);
      color: var(--kisaka-red);
   }

.kisaka-home-launch__btn--ghost > *
   {
      position: relative;
      z-index: 1;
   }

.kisaka-home-launch__actions .kisaka-home-launch__btn,
.kisaka-about-industries__btns .kisaka-home-launch__btn
   {
      font-family: var(--kisaka-font-accent), 'Google Sans Flex', sans-serif;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
   }

.kisaka-home-launch__actions .kisaka-home-launch__btn > span:first-child,
.kisaka-about-industries__btns .kisaka-home-launch__btn > span:first-child
   {
      white-space: nowrap;
   }

@-webkit-keyframes kisaka-home-type-caret
   {
      0%, 48%
         {
            opacity: 1;
         }

      49%, 100%
         {
            opacity: 0;
         }
   }

@keyframes kisaka-home-type-caret
   {
      0%, 48%
         {
            opacity: 1;
         }

      49%, 100%
         {
            opacity: 0;
         }
   }

body.kisaka-home-intro-ready .kisaka-home-launch__reveal
   {
      -webkit-transform: translate3d(0, 110%, 0);
      transform: translate3d(0, 110%, 0);
   }

body.kisaka-home-intro-playing .kisaka-home-launch__reveal
   {
      -webkit-transition: -webkit-transform 1s cubic-bezier(0.16, 1, 0.3, 1);
      transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
   }

/* "How we serve" keeps the short typed label. */
body.kisaka-home-intro-ready .kisaka-home-launch [data-kisaka-home-type]
   {
      display: grid;
      opacity: 0;
      visibility: hidden;
   }

/* The brief rises in word by word instead of being typed out. */
.kisaka-home-launch__word
   {
      display: inline-block;
   }

body.kisaka-home-intro-ready .kisaka-home-launch__word
   {
      opacity: 0;
      -webkit-transform: translate3d(0, 0.5em, 0);
      transform: translate3d(0, 0.5em, 0);
   }

body.kisaka-home-intro-playing .kisaka-home-launch__word
   {
      -webkit-transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
      transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
      -webkit-transition-delay: calc(var(--kisaka-hero-word, 0) * 14ms);
      transition-delay: calc(var(--kisaka-hero-word, 0) * 14ms);
   }

body.kisaka-home-intro-ready [data-kisaka-home-intro="brief"].is-visible .kisaka-home-launch__word
   {
      opacity: 1;
      -webkit-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0);
   }

body.kisaka-home-intro-ready .kisaka-home-launch__actions .kisaka-home-launch__btn
   {
      opacity: 0;
      visibility: hidden;
      -webkit-transform: translate3d(0, 14px, 0);
      transform: translate3d(0, 14px, 0);
   }

body.kisaka-home-intro-playing .kisaka-home-launch__actions .kisaka-home-launch__btn
   {
      -webkit-transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.9s, border-color var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing), color var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing), -webkit-transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
      transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1), transform 0.9s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0.9s, border-color var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing), color var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing);
   }

body.kisaka-home-intro-ready .kisaka-home-launch__actions .kisaka-home-launch__btn.is-visible
   {
      opacity: 1;
      visibility: visible;
      -webkit-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0);
      -webkit-transition-delay: 0s;
      transition-delay: 0s;
   }

/* Leaving the hero on scroll: the copy retracts upward through the same masks
   in reverse order (buttons, brief, label, then the headline bottom-up). JS
   resets the stages once the hero is out of view and replays the intro on the
   way back. Transitions, so a changed gesture returns from the live frame. */
@media (prefers-reduced-motion: no-preference)
   {
      body.kisaka-home-intro-ready .kisaka-home-launch.is-hero-exiting .kisaka-home-launch__actions .kisaka-home-launch__btn.is-visible
         {
            opacity: 0;
            visibility: hidden;
            transform: translate3d(0, -14px, 0);
            transition: opacity 300ms var(--kisaka-ease-out), transform var(--kisaka-dur-reveal) var(--kisaka-ease-out), visibility 0s linear var(--kisaka-dur-reveal), border-color var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing), color var(--kisaka-btn-curtain-duration) var(--kisaka-btn-curtain-easing);
         }
   }

@media (prefers-reduced-motion: reduce)
   {
      body.kisaka-home-intro-ready .kisaka-home-launch__reveal,
      body.kisaka-home-intro-ready .kisaka-home-launch__word,
      body.kisaka-home-intro-ready .kisaka-home-launch [data-kisaka-home-type],
      body.kisaka-home-intro-ready .kisaka-home-launch__actions .kisaka-home-launch__btn
         {
            opacity: 1;
            visibility: visible;
            -webkit-transform: none;
            transform: none;
            -webkit-transition: none;
            transition: none;
         }

      .kisaka-home-launch__btn:after, .kisaka-home-launch__btn-arrow
         {
            -webkit-transition: none;
            -o-transition: none;
            transition: none;
         }
   }

.kisaka-home-mission__readmore
   {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      position: relative;
      overflow: hidden;
      z-index: 0;
      align-self: flex-start;
      margin-top: clamp(28px, 3.5vw, 40px);
      min-height: 44px;
      padding: 12px 22px;
      border: 1px solid #201b1d;
      border-radius: 4px;
      background: transparent;
      color: #201b1d;
      -webkit-text-fill-color: #201b1d;
      font-family: var(--kisaka-font-accent), 'Google Sans Flex', sans-serif;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.04em;
      line-height: 1;
      text-transform: uppercase;
      text-decoration: none !important;
      -webkit-transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease, -webkit-transform 100ms ease-out;
      transition: border-color 200ms ease, color 200ms ease, background-color 200ms ease, transform 100ms ease-out;
   }

.kisaka-home-mission__visual::before,
.kisaka-home-mission__visual::after,
.kisaka-home-mission__line
   {
      content: "";
      position: absolute;
      display: block;
      background: rgba(203, 31, 52, 0.72);
      -webkit-transform-origin: center;
      -ms-transform-origin: center;
      transform-origin: center;
      -webkit-transform: rotate(var(--kh-rot, 0deg)) scaleY(var(--kh-draw, 1));
      -ms-transform: rotate(var(--kh-rot, 0deg)) scaleY(var(--kh-draw, 1));
      transform: rotate(var(--kh-rot, 0deg)) scaleY(var(--kh-draw, 1));
      -webkit-transition: -webkit-transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
      -o-transition: transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
      transition: transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
      transition: transform 1.05s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
      will-change: transform;
   }

/* Arming helper: lets JS snap an element (and its pseudo/child reveals)
   into the hidden state with no transition, so the draw always starts
   from fully collapsed — even right after a refresh. */
.kisaka-anim-off, .kisaka-anim-off::before, .kisaka-anim-off::after, .kisaka-anim-off *
   {
      -webkit-transition: none !important;
      -o-transition: none !important;
      transition: none !important;
   }

@media (max-width: 991px)
   {
      .kisaka-home-page .header .header-inner,
      .kisaka-home-page .header.sticky .header-inner,
      .kisaka-home-launch__frame,
      .kisaka-home-mission__frame
         {
            width: 100%;
         }

      .kisaka-home-page .header .header-inner, .kisaka-home-page .header.sticky .header-inner
         {
            top: 0;
         }
   }

@media (max-width: 767px)
   {
      .kisaka-home-page .header .header-inner,
      .kisaka-home-page .header.sticky .header-inner,
      .kisaka-home-launch__frame,
      .kisaka-home-mission__frame
         {
            width: 100%;
         }

      .kisaka-home-page .header .header-inner, .kisaka-home-page .header.sticky .header-inner
         {
            top: 0;
         }

      .kisaka-home-page .header .kisaka-logo-text
         {
            font-size: 14px;
         }

      .kisaka-home-page .header .logo img
         {
            width: 40px;
         }

      .kisaka-home-launch__btn
         {
            min-height: 42px;
            padding: 11px 16px;
            font-size: 12px;
         }

      .kisaka-home-launch__actions .kisaka-home-launch__btn,
      .kisaka-about-industries__btns .kisaka-home-launch__btn
         {
            font-size: 11px;
         }
   }

@-webkit-keyframes kisaka-svc-hero-chevron-dance
   {
      0%, 100%
         {
            opacity: 0.28;
            -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
         }

      45%
         {
            opacity: 1;
            -webkit-transform: translateY(2px);
            transform: translateY(2px);
         }
   }

@keyframes kisaka-svc-hero-chevron-dance
   {
      0%, 100%
         {
            opacity: 0.28;
            -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
         }

      45%
         {
            opacity: 1;
            -webkit-transform: translateY(2px);
            transform: translateY(2px);
         }
   }

@-webkit-keyframes kisaka-svc-hero-marquee
   {
      from
         {
            -webkit-transform: translate3d(0, 0, 0);
         }

      to
         {
            -webkit-transform: translate3d(-50%, 0, 0);
         }
   }

@keyframes kisaka-svc-hero-marquee
   {
      from
         {
            transform: translate3d(0, 0, 0);
         }

      to
         {
            transform: translate3d(-50%, 0, 0);
         }
   }

/* --- Arrival reveal ------------------------------------------------------ */
/* js/main.js adds .is-armed / .is-visible; everything below hangs off those two
   classes, so with no JS the stage is simply the finished picture rather than a
   blank screen. Transitions rather than keyframes throughout, because the
   observer takes .is-visible off again when the reader scrolls back up through
   the services — a reveal that is interrupted halfway has to retarget from
   where it is, not snap to the start and run again.

   Three things move, in this order, and the order is the point: the rule draws,
   the two headline lines ink in behind it, and only once the sentence is legible
   does the ask rise underneath it. Nothing arrives at the same time as anything
   else.

   These durations are long for UI — a second and more. That is the licence a
   closing stage gets and an interface control does not: the reader has stopped
   here, there is nothing to click yet, and the sentence is the content. */
@property --build-sweep
   {
      syntax: "<number>";
      inherits: false;
      initial-value: 112;
   }

@keyframes kisaka-cta-pen-rest
   {
      to
         {
            opacity: 0;
         }
   }

/* —— Insights scene pager (js/kisaka-insights-scenes.js) —— */
html.kisaka-scenes
   {
      scroll-behavior: auto !important;
   }

@media only screen and (min-width: 1200px) and (min-height: 780px)
   {
      /* The foot of a panel is the one band every block can spare, so it comes
         off first and by the same amount everywhere. */
      .kisaka-about-page .kisaka-about-intro,
      .kisaka-about-page .kisaka-about-system,
      .kisaka-about-page .kisaka-about-founder,
      .kisaka-about-page .kisaka-about-industries,
      .kisaka-about-page .kisaka-about-meet-team__panel
         {
            padding-bottom: clamp(40px, 4.8vh, 72px);
         }

      .kisaka-about-page .kisaka-about-industries__title
         {
            font-size: min(clamp(2.15rem, 1.35rem + 2.8vw, 4.25rem), 6vh);
         }

      /* --- Who we serve: claim beside the sector directory ----------------- */
      .kisaka-about-page .kisaka-about-industries
         {
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding-top: clamp(64px, 8vh, 100px);
         }

      .kisaka-about-page .kisaka-about-industries__inner
         {
            column-gap: clamp(28px, 4vw, 80px);
            row-gap: 16px;
         }

      .kisaka-about-page .kisaka-about-industries__btns
         {
            margin-top: 10px;
         }

      .kisaka-about-page .kisaka-about-industries__link
         {
            padding-top: clamp(10px, 1.4vh, 14px);
            padding-bottom: clamp(10px, 1.4vh, 14px);
         }
   }

@property --kisaka-glow-color
   {
      syntax: "<color>";
      inherits: false;
      initial-value: #e8485c;
   }

@-webkit-keyframes kisaka-careers-triangles-bg
   {
      from
         {
            background-position: 0% 0%;
         }

      to
         {
            background-position: 400% 400%;
         }
   }

@keyframes kisaka-careers-triangles-bg
   {
      from
         {
            background-position: 0% 0%;
         }

      to
         {
            background-position: 400% 400%;
         }
   }

@-webkit-keyframes kisaka-careers-triangles-glow
   {
      from
         {
            --kisaka-glow-color: #e8485c;
            -webkit-transform: translate(-50%, -50%) scale(0.5);
            transform: translate(-50%, -50%) scale(0.5);
         }

      to
         {
            --kisaka-glow-color: #cb1f34;
            -webkit-transform: translate(-50%, -50%) scale(1) rotate(90deg);
            transform: translate(-50%, -50%) scale(1) rotate(90deg);
         }
   }

@keyframes kisaka-careers-triangles-glow
   {
      from
         {
            --kisaka-glow-color: #e8485c;
            -webkit-transform: translate(-50%, -50%) scale(0.5);
            transform: translate(-50%, -50%) scale(0.5);
         }

      to
         {
            --kisaka-glow-color: #cb1f34;
            -webkit-transform: translate(-50%, -50%) scale(1) rotate(90deg);
            transform: translate(-50%, -50%) scale(1) rotate(90deg);
         }
   }

.kisaka-careers-role__apply .kisaka-home-launch__btn-arrow-box
   {
      width: 0.95em;
      height: 0.95em;
   }

/* Careers joins the services/insights family: the white bar stays put over
   the roles. Appended after those rules rather than
   added to their selector lists, so the cascade does the work. */
body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner,
body.kisaka-careers-page.kisaka-nav-on-light .header.sticky .header-inner
   {
      background: #ffffff;
      border-bottom: 0;
      -webkit-box-shadow: none;
      box-shadow: none;
      overflow: visible;
   }

/* The bar's floor is a dissolve, not a blade: titles going under the nav
   fade into it rather than being sliced. Hangs off the painted chrome, so
   it only exists while the bar is the white slab over the roles. */
body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner::after
   {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: 100%;
      height: clamp(56px, 8vh, 88px);
      background: -webkit-linear-gradient( top, #ffffff 0%, rgba(255, 255, 255, 0.92) 28%, rgba(255, 255, 255, 0.55) 58%, rgba(255, 255, 255, 0) 100% );
      background: linear-gradient( 180deg, #ffffff 0%, rgba(255, 255, 255, 0.92) 28%, rgba(255, 255, 255, 0.55) 58%, rgba(255, 255, 255, 0) 100% );
      pointer-events: none;
      z-index: 0;
   }

/* Parked panels: the dissolve belongs to the jobs screen, not the bar. Hung
   off the header it sat above everything, so the footer rising in wore it as
   a white glow; hung off the section it leaves with the roles and the footer
   comes up clean. Solid under the bar, then the same falloff below it. */
@media only screen and (min-width: 992px)
   {
      body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner::after
         {
            content: none;
         }
   }

body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner .logo
   {
      color: #2C2D3F;
   }

body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner .kisaka-logo-text,
body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner .nav.menu > li > a,
body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner .nav li.active a
   {
      color: rgba(19, 20, 24, 0.88);
   }

body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner .kisaka-logo-tagline
   {
      color: rgba(19, 20, 24, 0.56);
   }

body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner .nav li a::before
   {
      background: #CB1F34;
   }

body.kisaka-careers-page.kisaka-nav-on-light .header .header-inner .slicknav_menu .slicknav_icon-bar
   {
      background-color: rgba(19, 20, 24, 0.86);
   }
