/* Phone composition. Desktop keeps its existing layout and choreography. */
.kisaka-home-swipe-cue
   {
      display: none;
   }

@media (max-width: 767px)
   {
      html.kisaka-home-page
         {
            --kisaka-header-h: calc(72px + env(safe-area-inset-top, 0px));
            background: #070605;
         }

      body.kisaka-home-page
         {
            --kisaka-mobile-top: #070605;
            --kisaka-mobile-bottom: #070605;
            background: #070605;
         }

      body.kisaka-home-page.kisaka-home-nav-on-light
         {
            --kisaka-mobile-top: #fff;
         }

      /* Safari owns the toolbar inset. A fixed fade here washes out readable
         content above it, especially the last row of firm highlights. */
      body.kisaka-home-page::after
         {
            content: none;
         }

      /* Keep the narrow reading area clear of the floating desktop shortcut. */
      body.kisaka-home-page #scrollUp
         {
            display: none !important;
         }

      body.kisaka-home-page .header .header-inner,
      body.kisaka-home-page .header.sticky .header-inner
         {
            padding: env(safe-area-inset-top, 0px) 0 0;
            background: var(--kisaka-mobile-top);
            border: 0;
            box-shadow: none;
         }

      body.kisaka-home-page .header .header-inner::after
         {
            content: "";
            position: absolute;
            inset: 100% 0 auto;
            height: 32px;
            background: linear-gradient(to bottom, var(--kisaka-mobile-top), transparent);
            pointer-events: none;
         }

      body.kisaka-home-page .header .container
         {
            padding: 0 max(20px, env(safe-area-inset-right, 0px)) 0 max(20px, env(safe-area-inset-left, 0px));
         }

      body.kisaka-home-page .header .kisaka-header-row
         {
            margin: 0;
         }

      body.kisaka-home-page .header .kisaka-header-brand
         {
            position: static;
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex: 1 1 100%;
            max-width: 100%;
            min-width: 0;
            min-height: 72px;
            margin: 0;
            padding: 0 !important;
         }

      body.kisaka-home-page .header .kisaka-header-nav-col,
      body.kisaka-home-page .header .kisaka-logo-stack
         {
            display: none;
         }

      body.kisaka-home-page .header .logo
         {
            order: 1;
            min-width: 48px;
            min-height: 48px;
            padding: 4px;
            margin: 0;
         }

      body.kisaka-home-page .header .logo img
         {
            width: 40px;
            height: auto;
         }

      body.kisaka-home-page .header .mobile-nav
         {
            order: 2;
            position: static;
            width: 48px;
         }

      body.kisaka-home-page .header .slicknav_btn
         {
            display: flex;
            align-items: center;
            justify-content: center;
            float: none;
            width: 48px;
            height: 48px;
            margin: 0;
            padding: 12px;
            background: transparent;
         }

      body.kisaka-home-page .header .slicknav_icon
         {
            margin: 0;
            width: 24px;
            height: 18px;
         }

      body.kisaka-home-page .header .slicknav_icon-bar
         {
            width: 24px;
            height: 2px;
            border-radius: 1px;
            background: #fff;
         }

      body.kisaka-home-page .header .slicknav_icon-bar + .slicknav_icon-bar
         {
            margin-top: 6px;
         }

      body.kisaka-home-page.kisaka-home-nav-on-light .header .slicknav_menu .slicknav_icon-bar
         {
            background: #171717;
         }

      body.kisaka-home-page .header .slicknav_nav
         {
            position: absolute;
            z-index: 2;
            top: 100%;
            left: 0;
            right: 0;
            width: auto;
            max-height: calc(100svh - var(--kisaka-header-h));
            overflow-y: auto;
            overscroll-behavior: contain;
            margin: 0;
            padding: 8px 20px calc(24px + env(safe-area-inset-bottom, 0px));
            background: #070605;
            border: 0;
            border-radius: 0;
         }

      body.kisaka-home-page .header .slicknav_nav li > a
         {
            display: flex;
            align-items: center;
            justify-content: space-between;
            min-height: 48px;
            margin: 0;
            padding: 12px 8px;
            font-size: 16px;
            line-height: 1.5;
         }

      body.kisaka-home-page .header .slicknav_nav .slicknav_item > a
         {
            padding: 0;
            margin: 0;
         }

      body.kisaka-home-page .header a:focus-visible
         {
            outline: 2px solid var(--kisaka-red);
            outline-offset: 2px;
         }

      .kisaka-home-launch__frame
         {
            display: flex;
            flex-direction: column;
            justify-content: center;
            min-height: 100svh;
            padding: calc(var(--kisaka-header-h) + 32px) max(24px, env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) max(24px, env(safe-area-inset-left, 0px));
         }

      .kisaka-home-launch__frame::after,
      .kisaka-home-launch__grid,
      .kisaka-home-launch__cursor-field
         {
            display: none;
         }

      .kisaka-home-launch__photo
         {
            background-position: 76% top;
         }

      .kisaka-home-launch__shade
         {
            background: linear-gradient(180deg, #070605 0%, rgba(7, 6, 5, .18) 24%, rgba(7, 6, 5, .68) 48%, #070605 76%), linear-gradient(90deg, rgba(7, 6, 5, .65), rgba(7, 6, 5, .08));
         }

      .kisaka-home-launch__headline, .kisaka-home-launch__position, .kisaka-home-launch__brief
         {
            position: relative;
            inset: auto;
            width: 100%;
            max-width: 36rem;
         }

      .kisaka-home-launch__headline
         {
            margin: 0 0 24px;
         }

      .kisaka-home-launch__headline h1
         {
            font-size: clamp(1.875rem, 7.8vw, 3.25rem);
            line-height: 1.14;
            letter-spacing: -.035em;
            text-wrap: balance;
            overflow-wrap: anywhere;
         }

      .kisaka-home-launch__position
         {
            margin-bottom: 16px;
         }

      .kisaka-home-launch__position p
         {
            font-size: 12px;
            letter-spacing: .12em;
         }

      .kisaka-home-launch__brief [data-kisaka-home-intro="brief"]
         {
            font-size: 1rem;
            line-height: 1.55;
            color: rgba(255, 255, 255, .8);
         }

      .kisaka-home-launch__actions
         {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
            margin-top: 24px;
         }

      .kisaka-home-launch__actions .kisaka-home-launch__btn
         {
            min-height: 48px;
            padding: 12px 8px;
            font-size: .75rem;
            letter-spacing: .06em;
            white-space: normal;
         }

      .kisaka-home-launch__actions .kisaka-home-launch__btn > span:first-child
         {
            min-width: 0;
            overflow-wrap: anywhere;
         }

      .kisaka-home-scroll-cue
         {
            position: relative;
            inset: auto;
            align-self: center;
            justify-content: center;
            width: 112px;
            height: 56px;
            margin-top: 16px;
            transform: none !important;
         }

      .kisaka-home-scroll-cue > .kisaka-home-scroll-cue__arrow
         {
            display: none;
            animation: none;
         }

      .kisaka-home-swipe-cue
         {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 4px;
            color: rgba(255, 255, 255, .8);
            font-family: var(--kisaka-font-accent);
            text-transform: uppercase;
            font-size: 11px;
            line-height: 16px;
            letter-spacing: .08em;
         }

      .kisaka-home-swipe-cue__icon
         {
            width: 24px;
            height: 28px;
            fill: none;
            stroke: currentColor;
            stroke-width: 1.5;
            stroke-linecap: round;
            stroke-linejoin: round;
         }

      /* Two quiet upward gestures after the intro, then rest. The existing
         scroll-cue controller hides the whole prompt once scrolling begins. */
      body.kisaka-home-intro-complete .kisaka-home-launch .kisaka-home-swipe-cue__icon
         {
            animation: kisaka-swipe-up 2.2s cubic-bezier(.22, 1, .36, 1) 2;
         }

      body.kisaka-home-scroll-cue-hidden .kisaka-home-launch .kisaka-home-swipe-cue__icon
         {
            animation-play-state: paused;
         }

      @keyframes kisaka-swipe-up
         {
            0%, 12%, 100%
               {
                  transform: translateY(0);
                  opacity: 1;
               }

            52%, 64%
               {
                  transform: translateY(-8px);
                  opacity: 0;
               }

            65%
               {
                  transform: translateY(4px);
                  opacity: 0;
               }

            84%
               {
                  transform: translateY(0);
                  opacity: 1;
               }
         }

      @media (prefers-reduced-motion: reduce)
         {
            body.kisaka-home-intro-complete .kisaka-home-launch .kisaka-home-swipe-cue__icon
               {
                  animation: none;
               }
         }

      /* Content determines section height; enlarged text can keep scrolling. */
      .kisaka-home-mission__frame
         {
            position: relative;
            isolation: isolate;
            flex: 1 0 auto;
         }

      .kisaka-home-mission__frame::after
         {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 1;
            background: linear-gradient(to bottom, #070605 0%, #070605 72%, rgba(7, 6, 5, .94) 100%);
            pointer-events: none;
         }

      .kisaka-home-mission__copy
         {
            top: 0;
            z-index: 2;
            padding: 32px max(24px, env(safe-area-inset-right, 0px)) 24px max(24px, env(safe-area-inset-left, 0px));
         }

      .kisaka-home-mission__copy .kisaka-home-mission__eyebrow
         {
            margin-bottom: 16px;
            font-size: 12px;
            color: rgba(255, 255, 255, .85);
         }

      .kisaka-home-mission__copy h2
         {
            max-width: 28rem;
            color: #fff;
            font-size: clamp(1.375rem, 5.6vw, 1.5rem);
            line-height: 1.3;
            letter-spacing: -.025em;
            text-wrap: pretty;
         }

      .kisaka-home-mission__hl
         {
            color: var(--kisaka-red);
         }

      /* Desktop's five masked lines become one readable paragraph on phones. */
      .kisaka-home-mission__copy h2 span
         {
            display: inline;
            overflow: visible;
            padding: 0;
            margin: 0;
         }

      .kisaka-home-mission__copy h2 .kisaka-home-mission__reveal
         {
            transform: none;
            transition: none;
            will-change: auto;
         }

      /* The paragraph can't rise line by line, so it fades up as one block,
         landing between the eyebrow and Read more. Exit runs mid reverse order. */
      @media (prefers-reduced-motion: no-preference)
         {
            .kisaka-home-mission__copy.is-armed h2
               {
                  opacity: 0;
                  transform: translateY(16px);
                  transition: opacity .6s var(--kisaka-ease-out) .14s, transform .95s cubic-bezier(.22, 1, .36, 1) .14s;
               }

            html[data-kisaka-scroll-dir="up"] .kisaka-home-mission__copy.is-armed:not(.is-drawn) h2
               {
                  transform: translateY(-16px);
               }

            .kisaka-home-mission__copy.is-armed.is-drawn h2
               {
                  opacity: 1;
                  transform: none;
               }

            .kisaka-home-mission__copy.is-armed[data-kisaka-mission-motion] h2
               {
                  transition: opacity var(--kisaka-dur-reveal) var(--kisaka-ease-out) .1s, transform var(--kisaka-dur-reveal) var(--kisaka-ease-out) .1s;
               }

            .kisaka-home-mission__copy.is-armed[data-kisaka-mission-motion="restore"] h2
               {
                  transition-delay: 0s;
               }

            .kisaka-home-mission__copy.is-armed[data-kisaka-mission-motion^="exit"] h2
               {
                  opacity: 0;
                  transform: translateY(16px);
               }

            .kisaka-home-mission__copy.is-armed[data-kisaka-mission-motion="exit-down"] h2
               {
                  transform: translateY(-16px);
               }
         }

      a.kisaka-home-mission__readmore
         {
            min-height: 48px;
            margin-top: 24px;
            padding: 12px 20px;
            font-size: 13px;
            font-weight: 600;
            letter-spacing: .04em;
            color: #fff;
            -webkit-text-fill-color: #fff;
            background: #070605;
            border: 1px solid #fff;
         }

      .kisaka-home-mission__readmore .kisaka-home-mission__reveal
         {
            transform: none;
         }

      a.kisaka-home-mission__readmore:hover,
      a.kisaka-home-mission__readmore:focus-visible,
      a.kisaka-home-mission__readmore:active
         {
            color: #070605;
            -webkit-text-fill-color: #070605;
            background: #fff;
            border-color: #fff;
         }

      .kisaka-home-mission__visual
         {
            position: absolute;
            inset: 0;
            z-index: 0;
            min-height: 0;
            height: auto;
            pointer-events: none;
         }

      .kisaka-home-mission__stats
         {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0;
            margin-top: auto;
            padding: 16px max(24px, env(safe-area-inset-right, 0px)) 16px max(24px, env(safe-area-inset-left, 0px));
            border-top: 0;
            background: transparent;
         }

      .kisaka-home-mission__stat
         {
            align-items: center;
            text-align: center;
            gap: 8px;
            min-width: 0;
            padding: 12px 8px;
            background: transparent;
         }

      .kisaka-home-mission__stat:nth-child(odd)
         {
            border-right: 1px solid #ded6ce;
         }

      .kisaka-home-mission__stat:nth-child(-n + 2)
         {
            border-bottom: 1px solid #ded6ce;
         }

      .kisaka-home-mission__stat-value
         {
            font-size: 2.5rem;
         }

      .kisaka-home-mission__stat-label
         {
            max-width: 100%;
            font-size: .75rem;
            min-height: 2.8em;
            white-space: normal;
            overflow-wrap: anywhere;
            text-wrap: balance;
         }

      .kisaka-home-mission
         {
            background: #f6f3ef;
         }

      .kisaka-home-mission__scroll-cue
         {
            position: relative;
            inset: auto;
            align-self: center;
            flex: none;
            width: 112px;
            height: 48px;
            margin: 0 0 calc(16px + env(safe-area-inset-bottom, 0px));
            transform: none !important;
         }

      .kisaka-home-mission__scroll-cue > .kisaka-home-scroll-cue__arrow
         {
            display: none;
            animation: none;
         }

      .kisaka-home-mission__scroll-cue .kisaka-home-swipe-cue
         {
            color: var(--kisaka-red);
         }

      .kisaka-home-mission__inner
         {
            min-height: 0;
         }
   }

/* Short phones have less reading space after browser chrome and the navbar.
   Compact the content instead of treating every phone as a tall panel. */
@media (max-width: 767px) and (max-height: 740px), (max-width: 359px)
   {
      .kisaka-home-mission__copy
         {
            padding: 24px max(20px, env(safe-area-inset-right, 0px)) 20px max(20px, env(safe-area-inset-left, 0px));
         }

      .kisaka-home-mission__copy .kisaka-home-mission__eyebrow
         {
            margin-bottom: 12px;
         }

      .kisaka-home-mission__copy h2
         {
            font-size: 1.25rem;
            line-height: 1.3;
         }

      .kisaka-home-mission__readmore
         {
            min-height: 44px;
            margin-top: 16px;
            padding: 10px 16px;
         }

      .kisaka-home-mission__stats
         {
            padding: 12px max(20px, env(safe-area-inset-right, 0px)) calc(48px + env(safe-area-inset-bottom, 0px)) max(20px, env(safe-area-inset-left, 0px));
         }

      .kisaka-home-mission__stat
         {
            gap: 8px;
            padding: 12px 8px;
         }

      .kisaka-home-mission__stat-value
         {
            font-size: 2.25rem;
         }

      .kisaka-home-mission__stat-label
         {
            font-size: 11px;
            letter-spacing: .04em;
         }

      /* Native vertical scrolling provides the continuation on short screens;
         a separate arrow would consume another 96px of the reading area. */
      .kisaka-home-mission__scroll-cue
         {
            display: none;
         }
   }

@media (min-width: 560px) and (max-width: 767px) and (max-height: 500px)
   {
      .kisaka-home-mission__copy h2
         {
            max-width: none;
         }

      .kisaka-home-mission__stats
         {
            grid-template-columns: repeat(4, minmax(0, 1fr));
         }

      .kisaka-home-mission__stat:nth-child(-n + 2)
         {
            border-bottom: 0;
         }

      .kisaka-home-mission__stat:not(:last-child)
         {
            border-right: 1px solid #ded6ce;
         }
   }
