#morinouguisu-home,
#morinouguisu-home *,
#morinouguisu-home *::before,
#morinouguisu-home *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    #morinouguisu-home {
      --yellow: #f3c53c;
      --yellow-lt: #f8dd8a;
      --yellow-pale: #fdf4d8;
      --uguisu: #74752b;
      --dark: #36302a;
      --dark-2: #2b2620;
      --white: #ffffff;
      --ink: #36302a;
      --ink-soft: #8b8478;
      --line: #ece7dc;
      --maru: "Zen Maru Gothic", sans-serif;
    }

    html {
      scroll-behavior: smooth;
    }

    #morinouguisu-home {
      font-family: var(--maru);
      color: var(--ink);
      background: var(--white);
      line-height: 1.95;
      font-size: 16px;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    #morinouguisu-home img {
      max-width: 100%;
      height: auto;
      display: block;
    }

    #morinouguisu-home a {
      color: inherit;
      text-decoration: none;
    }

    #morinouguisu-home .wrap {
      max-width: 1080px;
      margin: 0 auto;
      padding: 0 32px;
      position: relative;
      z-index: 3;
    }

    #morinouguisu-home .fade {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity .8s ease, transform .8s ease;
    }

    #morinouguisu-home .fade.in {
      opacity: 1;
      transform: none;
    }

    @media (prefers-reduced-motion:reduce) {
      #morinouguisu-home .fade {
        opacity: 1;
        transform: none;
        transition: none;
      }

      html {
        scroll-behavior: auto;
      }
    }

    /* 巨大背景英字 */
    #morinouguisu-home .bigen {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      top: 36px;
      font-weight: 900;
      font-size: clamp(64px, 15vw, 190px);
      letter-spacing: .06em;
      line-height: 1;
      white-space: nowrap;
      z-index: 0;
      pointer-events: none;
      user-select: none;
    }

    #morinouguisu-home .bigen.on-white {
      color: #f4f0e6;
    }

    #morinouguisu-home .bigen.on-yellow {
      color: rgba(255, 255, 255, .42);
    }

    #morinouguisu-home .bigen.on-dark {
      color: rgba(255, 255, 255, .06);
    }

    #morinouguisu-home .section-curve {
      position: absolute;
      top: -1px;
      left: 0;
      width: 100%;
      height: 72px;
      z-index: 2;
      pointer-events: none;
    }

    #morinouguisu-home .section-curve path {
      fill: var(--curve-color);
    }

    /* 見出し */
    #morinouguisu-home .sec-h {
      text-align: center;
      position: relative;
      z-index: 3;
      margin-bottom: 72px;
    }

    #morinouguisu-home .sec-h .jp {
      font-weight: 900;
      font-size: clamp(24px, 4vw, 36px);
      line-height: 1.5;
      letter-spacing: .03em;
    }

    #morinouguisu-home .sec-h .sub {
      margin-top: 14px;
      font-size: 15px;
      color: var(--ink);
    }

    @media (max-width:640px) {
      #morinouguisu-home .sec-h {
        margin-bottom: 44px;
      }
    }

    #morinouguisu-home .on-dark-txt .jp {
      color: #fff;
    }

    #morinouguisu-home .on-dark-txt .sub {
      color: rgba(255, 255, 255, .62);
    }

    /* ボタン */
    #morinouguisu-home .btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-weight: 900;
      font-size: 16px;
      padding: 18px 46px;
      border-radius: 999px;
      transition: transform .16s, box-shadow .16s;
    }

    #morinouguisu-home .btn::after {
      content: "▶";
      font-size: 10px;
    }

    #morinouguisu-home .btn-y {
      background: var(--yellow);
      color: var(--dark);
      box-shadow: 0 5px 0 #cfa524;
    }

    #morinouguisu-home .btn-y:hover {
      transform: translateY(3px);
      box-shadow: 0 2px 0 #cfa524;
    }

    #morinouguisu-home .btn-d {
      background: var(--dark);
      color: #fff;
      box-shadow: 0 5px 0 #1c1813;
    }

    #morinouguisu-home .btn-d:hover {
      transform: translateY(3px);
      box-shadow: 0 2px 0 #1c1813;
    }

    /* header */
    #morinouguisu-home header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 80;
      background: #fff;
      border-bottom: 1px solid var(--line);
    }

    #morinouguisu-home .hd {
      max-width: 1220px;
      margin: 0 auto;
      padding: 13px 30px;
      display: flex;
      align-items: center;
      gap: 22px;
    }

    #morinouguisu-home .brand {
      font-weight: 900;
      font-size: 19px;
      color: var(--dark);
      display: flex;
      align-items: center;
      gap: 10px;
    }

    #morinouguisu-home .brand>img {
      width: 52px;
      height: 48px;
      object-fit: contain;
      flex: 0 0 auto;
    }

    #morinouguisu-home .brand small {
      display: block;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .16em;
      color: var(--ink);
      margin-top: -4px;
    }

    #morinouguisu-home .hd nav {
      margin-left: auto;
      display: flex;
      gap: 26px;
      font-size: 14px;
      font-weight: 700;
      color: var(--ink);
    }

    #morinouguisu-home .hd nav a:hover {
      color: var(--dark);
    }

    #morinouguisu-home .header-menu-toggle,
    #morinouguisu-home .header-menu-mobile-logo,
    #morinouguisu-home .header-menu-mobile-actions {
      display: none;
    }

    #morinouguisu-home .hd .hcta {
      background: var(--yellow);
      color: var(--dark);
      font-size: 14px;
      font-weight: 900;
      padding: 11px 22px;
      border-radius: 999px;
    }

    /* Keep the two header CTAs aligned when the shared LINE button is injected. */
    #morinouguisu-home .hd .morinouguisu-line-header-button,
    #morinouguisu-home .hd .hcta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      box-sizing: border-box;
      min-height: 44px;
      line-height: 1.4;
      white-space: nowrap;
      overflow: visible;
    }

    #morinouguisu-home .hd .morinouguisu-line-header-button {
      min-width: 112px;
      margin-left: 0;
      padding: 10px 18px;
      font-size: 14px;
    }

    #morinouguisu-home .hd .hcta {
      min-width: 128px;
    }

    @media (min-width:901px) {
      #morinouguisu-home .hd {
        max-width: 1280px;
        gap: 16px;
      }

      #morinouguisu-home .hd nav {
        gap: 22px;
      }
    }

    @media (max-width:900px) {
      #morinouguisu-home .hd {
        position: relative;
      }

      #morinouguisu-home .header-menu-toggle {
        display: inline-flex;
        flex: 0 0 auto;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        width: 46px;
        height: 44px;
        margin-left: auto;
        padding: 0;
        border: 1px solid rgba(77,96,55,.24);
        border-radius: 14px;
        background: rgba(255,253,246,.88);
        box-shadow: 0 4px 12px rgba(37,54,27,.10);
        cursor: pointer;
      }

      #morinouguisu-home .header-menu-toggle span {
        display: block;
        width: 21px;
        height: 2px;
        border-radius: 999px;
        background: #34432c;
        transition: transform .25s ease, opacity .2s ease;
      }

      #morinouguisu-home header.is-menu-open .header-menu-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
      }

      #morinouguisu-home header.is-menu-open .header-menu-toggle span:nth-child(2) {
        opacity: 0;
      }

      #morinouguisu-home header.is-menu-open .header-menu-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
      }

      #morinouguisu-home .hd nav {
        position: absolute;
        top: calc(100% + 8px);
        right: 14px;
        left: 14px;
        z-index: 95;
        display: flex;
        flex-direction: column;
        gap: 0;
        margin: 0;
        padding: 12px;
        border: 1px solid rgba(89,112,69,.18);
        border-radius: 18px;
        background: rgba(255,253,247,.98);
        box-shadow: 0 15px 35px rgba(38,52,28,.17);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-8px);
        transition: opacity .24s ease, visibility .24s ease, transform .24s ease;
      }

      #morinouguisu-home header.is-menu-open .hd nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
      }

      #morinouguisu-home .hd nav > a {
        padding: 13px 10px;
        border-bottom: 1px solid rgba(89,112,69,.13);
        color: #222;
        font-size: 15px;
      }

      #morinouguisu-home .hd nav > .header-menu-mobile-logo {
        display: flex;
        align-items: center;
        gap: 9px;
        margin-bottom: 5px;
        padding: 8px 10px 13px;
        color: var(--dark);
        font-size: 16px;
        font-weight: 900;
      }

      #morinouguisu-home .header-menu-mobile-logo img {
        flex: 0 0 auto;
        width: 42px;
        height: 38px;
        object-fit: contain;
      }

      #morinouguisu-home .header-menu-mobile-logo small {
        display: block;
        margin-top: -2px;
        color: var(--ink);
        font-size: 8px;
        font-weight: 700;
        letter-spacing: .14em;
      }

      #morinouguisu-home .header-menu-mobile-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        padding-top: 12px;
      }

      #morinouguisu-home .header-menu-mobile-line,
      #morinouguisu-home .header-menu-mobile-contact {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 10px 12px;
        border-radius: 999px;
        color: #fff;
        font-size: 14px;
        font-weight: 900;
        text-align: center;
      }

      #morinouguisu-home .header-menu-mobile-line {
        background: #06c755;
        box-shadow: 0 3px 0 #049b43;
      }

      #morinouguisu-home .header-menu-mobile-contact {
        background: var(--yellow);
        box-shadow: 0 3px 0 #cfa524;
        color: var(--dark);
      }

      #morinouguisu-home .hd > .morinouguisu-line-header-button,
      #morinouguisu-home .hd > .hcta {
        display: none !important;
      }
    }

    @media (max-width:640px) {
      #morinouguisu-home .hd {
        gap: 8px;
        padding: 10px 14px;
      }

      #morinouguisu-home .brand {
        gap: 6px;
        font-size: 15px;
      }

      #morinouguisu-home .brand>img {
        width: 42px;
        height: 38px;
      }

      #morinouguisu-home .brand small {
        font-size: 8px;
      }

      #morinouguisu-home .hd .morinouguisu-line-header-button {
        min-width: 58px;
        min-height: 42px;
        padding: 8px 10px;
        font-size: 13px;
      }

      #morinouguisu-home .hd .hcta {
        min-width: 96px;
        min-height: 42px;
        padding: 8px 12px;
        font-size: 13px;
      }
    }

    /* The shared LINE block is moved inside this page after load. Reapply its
       spacing with home-page specificity so the scoped reset cannot flatten it. */
    #morinouguisu-home .morinouguisu-line-contact {
      width: 100%;
      padding: 72px 24px;
      background: linear-gradient(180deg, #f4faef 0%, #e3efdc 100%);
      color: #111;
      text-align: center;
    }

    #morinouguisu-home .morinouguisu-line-contact__inner {
      width: min(760px, 100%);
      margin: 0 auto;
      padding: 42px 32px;
      background: #fff;
      border: 2px solid #cfe3c7;
      border-radius: 28px;
      box-shadow: 0 8px 0 rgba(127, 174, 114, .18);
    }

    #morinouguisu-home .morinouguisu-line-contact__label {
      margin: 0 0 10px;
      color: #4e7c4a;
      font-size: 16px;
      font-weight: 900;
      letter-spacing: .12em;
    }

    #morinouguisu-home .morinouguisu-line-contact h2 {
      margin: 0;
      color: #111;
      font-size: clamp(24px, 3.5vw, 34px);
      font-weight: 900;
      line-height: 1.55;
    }

    #morinouguisu-home .morinouguisu-line-contact__lead {
      max-width: 580px;
      margin: 14px auto 24px;
      color: #111;
      font-size: 16px;
      line-height: 1.9;
    }

    #morinouguisu-home .morinouguisu-line-contact__qr {
      display: block;
      width: 180px;
      height: 180px;
      margin: 0 auto 22px;
      border: 1px solid #e3efdc;
      border-radius: 14px;
    }

    #morinouguisu-home .morinouguisu-line-contact__button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 300px;
      min-height: 54px;
      padding: 15px 28px;
      border-radius: 999px;
      background: #06c755;
      box-shadow: 0 5px 0 #049b43;
      color: #fff;
      font-size: 18px;
      font-weight: 900;
      line-height: 1.5;
      text-decoration: none;
    }

    #morinouguisu-home .morinouguisu-line-contact__note {
      margin: 16px 0 0;
      color: #111;
      font-size: 14px;
      line-height: 1.8;
    }

    @media (max-width:640px) {
      #morinouguisu-home .morinouguisu-line-contact {
        padding: 52px 18px;
      }

      #morinouguisu-home .morinouguisu-line-contact__inner {
        padding: 34px 20px;
      }

      #morinouguisu-home .morinouguisu-line-contact__qr {
        width: 150px;
        height: 150px;
      }

      #morinouguisu-home .morinouguisu-line-contact__button {
        width: 100%;
        min-width: 0;
        font-size: 16px;
      }
    }

    /* General Contact Form 7 form used on the TOP page. */
    #morinouguisu-home .morinouguisu-general-contact {
      width: min(760px, 100%);
      margin: 38px auto 22px;
      padding: 42px 38px;
      border: 2px solid rgba(54, 48, 42, .14);
      border-radius: 28px;
      background: #fff;
      box-shadow: 0 8px 0 rgba(54, 48, 42, .12);
      color: var(--dark);
      text-align: left;
    }

    #morinouguisu-home .morinouguisu-general-contact__label {
      margin: 0;
      color: var(--uguisu);
      font-size: 22px;
      font-weight: 900;
      text-align: center;
    }

    #morinouguisu-home .morinouguisu-general-contact__lead {
      margin: 8px 0 28px;
      color: var(--ink);
      font-size: 15px;
      line-height: 1.8;
      text-align: center;
    }

    #morinouguisu-home .general-contact-form .form-field {
      margin: 0 0 22px;
    }

    #morinouguisu-home .general-contact-form label,
    #morinouguisu-home .general-contact-form legend {
      display: block;
      margin: 0 0 8px;
      color: var(--dark);
      font-size: 15px;
      font-weight: 900;
      line-height: 1.7;
    }

    #morinouguisu-home .general-contact-form .required,
    #morinouguisu-home .general-contact-form .optional {
      display: inline-block;
      margin-left: 6px;
      padding: 2px 8px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 900;
      line-height: 1.5;
      vertical-align: middle;
    }

    #morinouguisu-home .general-contact-form .required {
      background: #f7d6df;
      color: #8e3851;
    }

    #morinouguisu-home .general-contact-form .optional {
      background: #eef2e9;
      color: #5d6655;
    }

    #morinouguisu-home .general-contact-form input[type="text"],
    #morinouguisu-home .general-contact-form input[type="email"],
    #morinouguisu-home .general-contact-form input[type="url"],
    #morinouguisu-home .general-contact-form textarea {
      display: block;
      width: 100%;
      max-width: 100%;
      margin: 7px 0 0;
      padding: 13px 14px;
      border: 1px solid #d9d2c4;
      border-radius: 10px;
      outline: none;
      background: #fffdf8;
      color: var(--dark);
      font: inherit;
      font-size: 16px;
      line-height: 1.6;
    }

    #morinouguisu-home .general-contact-form input[type="text"],
    #morinouguisu-home .general-contact-form input[type="email"],
    #morinouguisu-home .general-contact-form input[type="url"] {
      min-height: 50px;
    }

    #morinouguisu-home .general-contact-form textarea {
      min-height: 170px;
      resize: vertical;
    }

    #morinouguisu-home .general-contact-form input:focus,
    #morinouguisu-home .general-contact-form textarea:focus {
      border-color: var(--uguisu);
      box-shadow: 0 0 0 3px rgba(116, 117, 43, .14);
    }

    #morinouguisu-home .general-contact-form fieldset {
      min-width: 0;
      border: 0;
    }

    #morinouguisu-home .general-contact-form .wpcf7-list-item {
      display: block;
      margin: 0;
    }

    #morinouguisu-home .general-contact-form .wpcf7-list-item label,
    #morinouguisu-home .general-contact-form .form-acceptance label {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      min-height: 44px;
      margin: 0;
      padding: 8px 0;
      cursor: pointer;
      font-weight: 500;
    }

    #morinouguisu-home .general-contact-form input[type="checkbox"] {
      flex: 0 0 auto;
      width: 22px;
      height: 22px;
      margin: 1px 0 0;
      accent-color: var(--uguisu);
    }

    #morinouguisu-home .general-contact-form .form-acceptance {
      margin: 4px 0 22px;
      padding: 12px 14px;
      border-radius: 10px;
      background: #f7f5ee;
    }

    #morinouguisu-home .general-contact-form .factory-privacy-link {
      color: #456b42;
      font-weight: 900;
      text-decoration: underline;
    }

    #morinouguisu-home .general-contact-form input[type="submit"] {
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: 220px;
      min-height: 54px;
      margin: 0 auto;
      padding: 13px 30px;
      border: 0;
      border-radius: 999px;
      background: var(--dark);
      box-shadow: 0 5px 0 #1c1813;
      color: #fff;
      font: inherit;
      font-size: 16px;
      font-weight: 900;
      cursor: pointer;
    }

    #morinouguisu-home .general-contact-form .wpcf7-spinner {
      display: block;
      margin: 12px auto 0;
    }

    #morinouguisu-home .general-contact-form .wpcf7-not-valid-tip {
      display: block;
      margin-top: 5px;
      color: #b42345;
      font-size: 13px;
    }

    #morinouguisu-home .general-contact-form .wpcf7-response-output {
      margin: 20px 0 0;
      padding: 12px 14px;
      border-radius: 10px;
      font-size: 14px;
      line-height: 1.7;
    }

    @media (max-width:640px) {
      #morinouguisu-home .morinouguisu-general-contact {
        margin-top: 30px;
        padding: 32px 18px;
        border-radius: 20px;
      }

      #morinouguisu-home .morinouguisu-general-contact__label {
        font-size: 20px;
      }

      #morinouguisu-home .general-contact-form input[type="submit"] {
        width: 100%;
        min-width: 0;
      }
    }

    /* ===== HERO：黄色ベタ・中央寄せ ===== */
    #morinouguisu-home .hero {
      position: relative;
      background: var(--yellow);
      height: 100vh;
      height: 100svh;
      padding: 122px 0 0;
      overflow: hidden;
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
    }

    #morinouguisu-home .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      background: url("/images/home/hero-forest-lineart.png") center bottom / 100% 100% no-repeat;
      opacity: .16;
      pointer-events: none;
    }

    #morinouguisu-home .hero-in {
      position: relative;
      z-index: 3;
      text-align: center;
    }

    #morinouguisu-home .hero h1 {
      position: relative;
      font-weight: 900;
      font-size: clamp(34px, 7vw, 76px);
      line-height: 1.32;
      letter-spacing: .04em;
      color: #fff;
      text-shadow: 3px 3px 0 rgba(54, 48, 42, .14);
    }

    #morinouguisu-home .hero h1 .hero-line-wrap {
      position: relative;
      display: inline-block;
    }

    #morinouguisu-home .hero-copy-sp {
      display: none;
    }

    #morinouguisu-home .hero h1 .hero-line {
      display: inline-block;
      opacity: 0;
      clip-path: inset(0 100% 0 0);
      transform: translateY(14px);
      animation: hero-title-reveal 1.35s cubic-bezier(.22, .7, .25, 1) forwards;
      animation-delay: .28s;
    }

    #morinouguisu-home .hero h1 .line-2 .hero-line {
      animation-delay: 2.5s;
    }

    #morinouguisu-home .hero-title-bird-flight {
      position: absolute;
      z-index: 2;
      top: 22%;
      left: 8%;
      width: clamp(50px, 7vw, 82px);
      aspect-ratio: 1;
      opacity: 0;
      pointer-events: none;
      filter: drop-shadow(0 4px 3px rgba(54, 48, 42, .16));
      animation: hero-bird-carry 4.5s cubic-bezier(.25, .55, .35, 1) forwards;
    }

    #morinouguisu-home .hero-title-bird {
      position: absolute;
      inset: 0;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: contain;
      transform: scaleX(-1);
    }

    #morinouguisu-home .hero-title-bird.wing-up {
      animation: hero-wing-up .28s steps(1, end) infinite;
    }

    #morinouguisu-home .hero-title-bird.wing-down {
      animation: hero-wing-down .28s steps(1, end) infinite;
    }

    @keyframes hero-wing-up {

      0%,
      49.9% {
        opacity: 1;
      }

      50%,
      100% {
        opacity: 0;
      }
    }

    @keyframes hero-wing-down {

      0%,
      49.9% {
        opacity: 0;
      }

      50%,
      100% {
        opacity: 1;
      }
    }

    @keyframes hero-title-reveal {
      0% {
        opacity: 0;
        clip-path: inset(0 100% 0 0);
        transform: translateY(14px);
      }

      15% {
        opacity: 1;
      }

      100% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
        transform: translateY(0);
      }
    }

    @keyframes hero-bird-carry {
      0% {
        top: 22%;
        left: 8%;
        opacity: 0;
        transform: translateY(-50%) rotate(-7deg) scale(.9);
      }

      12% {
        opacity: 1;
      }

      22% {
        transform: translateY(-68%) rotate(3deg) scale(1);
      }

      42% {
        top: 22%;
        left: 90%;
        opacity: 1;
      }

      45% {
        top: 22%;
        left: 94%;
        opacity: 0;
      }

      48% {
        top: 72%;
        left: 28%;
        opacity: 0;
        transform: translateY(-50%) rotate(-7deg) scale(.9);
      }

      52% {
        top: 72%;
        left: 31%;
        opacity: 1;
      }

      76% {
        transform: translateY(-68%) rotate(3deg) scale(1);
      }

      100% {
        top: 72%;
        left: 68%;
        opacity: 1;
        transform: translateY(-50%) rotate(-2deg) scale(.92);
      }
    }

    @media (prefers-reduced-motion:reduce) {
      #morinouguisu-home .hero h1 .hero-line {
        opacity: 1;
        transform: none;
        clip-path: none;
        animation: none;
      }

      #morinouguisu-home .hero-title-bird-flight {
        display: none;
      }

      #morinouguisu-home .final-bird,
#morinouguisu-home .final-bird img {
        animation: none !important;
      }

      #morinouguisu-home .final-bird .wing-down {
        display: none;
      }
    }

    #morinouguisu-home .hero-logo {
      display: block;
      width: clamp(130px, 14vw, 165px);
      height: auto;
      margin: 22px auto 0;
    }

    #morinouguisu-home .hero .sub {
      margin: 18px auto 0;
      max-width: 620px;
      font-size: 16px;
      color: rgba(54, 48, 42, .78);
      line-height: 2;
    }

    #morinouguisu-home .hero .btnrow {
      margin-top: 34px;
    }

    #morinouguisu-home .hero-art {
      position: absolute;
      bottom: 82px;
      left: 2%;
      width: min(25%, 290px);
      z-index: 2;
      opacity: .95;
    }

    #morinouguisu-home .hero-art2 {
      position: absolute;
      bottom: 104px;
      right: 3%;
      width: min(18%, 200px);
      z-index: 2;
      opacity: .9;
    }

    #morinouguisu-home .hero-wave {
      display: block;
      width: 100%;
      height: 90px;
      margin-top: auto;
      position: relative;
      z-index: 1;
      flex: 0 0 90px;
    }

    @media (max-width:900px) {
      #morinouguisu-home .hero {
        padding: 104px 0 0;
      }

      #morinouguisu-home .hero h1 {
        font-size: clamp(30px, 8.7vw, 38px);
        line-height: 1.34;
        letter-spacing: .02em;
      }

      #morinouguisu-home .hero h1 .hero-line-wrap {
        white-space: nowrap;
      }

      #morinouguisu-home .hero-copy-pc {
        display: none;
      }

      #morinouguisu-home .hero-copy-sp {
        display: block;
      }

      #morinouguisu-home .hero h1 .hero-copy-sp .line-2 .hero-line {
        font-size: 1em;
        animation-delay: .72s;
      }

      #morinouguisu-home .hero h1 .hero-copy-sp .line-3 .hero-line {
        font-size: 1em;
        animation-delay: 1.08s;
      }

      #morinouguisu-home .hero::before {
        background-size: auto 86%;
        opacity: .13;
      }

      #morinouguisu-home .hero-art {
        display: none;
      }

      #morinouguisu-home .hero-art2 {
        display: none;
      }

      #morinouguisu-home .hero-title-bird-flight {
        display: none;
      }

      #morinouguisu-home .hero .sub {
        padding: 0 6px;
      }
    }

    /* ===== ABOUT ===== */
    #morinouguisu-home .about {
      position: relative;
      z-index: 2;
      background: #fff;
      padding: 110px 0 100px;
      overflow: hidden;
    }

    #morinouguisu-home .about-in {
      display: grid;
      grid-template-columns: 1fr .9fr;
      gap: 52px;
      align-items: center;
      position: relative;
      z-index: 3;
    }

    #morinouguisu-home .about-title {
      position: relative;
      z-index: 3;
      text-align: center;
      font-weight: 900;
      font-size: clamp(22px, 3.4vw, 32px);
      line-height: 1.6;
      margin-bottom: 72px;
      color: var(--uguisu);
    }

    #morinouguisu-home .about-body p {
      font-size: 16px;
      color: #000;
      margin-top: 18px;
    }

    #morinouguisu-home .about-body strong {
      color: var(--dark);
    }

    #morinouguisu-home .about-art {
      position: relative;
    }

    #morinouguisu-home .about-art .pl {
      position: absolute;
      inset: 6%;
      background: var(--yellow-pale);
      border-radius: 50%;
    }

    #morinouguisu-home .about-art img {
      position: relative;
      max-width: 300px;
      margin: 0 auto;
    }

    @media (max-width:900px) {
      #morinouguisu-home .about-in {
        grid-template-columns: 1fr;
        gap: 30px;
      }

      #morinouguisu-home .about-art {
        order: -1;
        max-width: 240px;
        margin: 0 auto;
      }
    }

    /* ===== REASON：左右交互 ===== */
    #morinouguisu-home .reason {
      position: relative;
      background: var(--yellow-pale);
      padding: 140px 0 110px;
      overflow: hidden;
    }

    #morinouguisu-home .rrow {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      align-items: center;
      position: relative;
      z-index: 3;
    }

    #morinouguisu-home .rrow+.rrow {
      margin-top: 70px;
    }

    #morinouguisu-home .rrow:nth-child(even) .rtxt {
      order: 2;
    }

    #morinouguisu-home .rnum {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-weight: 900;
      font-size: 13px;
      color: #b8901c;
      letter-spacing: .12em;
    }

    #morinouguisu-home .rnum b {
      background: var(--yellow);
      color: var(--dark);
      width: 34px;
      height: 34px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
    }

    #morinouguisu-home .rtxt h3 {
      font-weight: 900;
      font-size: clamp(19px, 2.6vw, 25px);
      line-height: 1.6;
      margin: 14px 0 12px;
    }

    #morinouguisu-home .rtxt p {
      font-size: 16px;
      color: #000;
    }

    #morinouguisu-home .rart {
      position: relative;
      text-align: center;
      min-height: 430px;
      display: flex;
      align-items: center;
      justify-content: center;
      isolation: isolate;
    }

    #morinouguisu-home .rart .pl {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      width: min(96%, 430px);
      aspect-ratio: 1;
      border-radius: 50%;
      transform: translate(-50%, -50%);
      background: #f8dfa0;
      z-index: 0;
      pointer-events: none;
    }

    #morinouguisu-home .rrow:nth-of-type(3) .rart .pl {
      background: #dfe7c8;
    }

    #morinouguisu-home .rrow:nth-of-type(4) .rart .pl {
      background: #dbe9ef;
    }

    #morinouguisu-home .rart img {
      position: relative;
      z-index: 2;
      width: 100%;
      max-width: 480px;
      max-height: 360px;
      object-fit: contain;
      margin: 0 auto;
      mix-blend-mode: multiply;
    }

    #morinouguisu-home .rart img.no-blend {
      mix-blend-mode: normal;
    }

    @media (max-width:900px) {
      #morinouguisu-home .rrow {
        grid-template-columns: 1fr;
        gap: 24px;
      }

      #morinouguisu-home .rrow:nth-child(even) .rtxt {
        order: 0;
      }

      #morinouguisu-home .rart img {
        max-width: 340px;
        max-height: 280px;
      }

      #morinouguisu-home .rart {
        min-height: 370px;
      }

      #morinouguisu-home .rart .pl {
        width: min(90%, 360px);
      }
    }

    /* ===== WORK：黄色 ===== */
    #morinouguisu-home .work {
      position: relative;
      z-index: 2;
      background: var(--yellow);
      padding: 140px 0 80px;
      overflow: hidden;
    }

    #morinouguisu-home .work::before {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--yellow);
    }

    #morinouguisu-home .work .sec-h .sub {
      color: #000;
    }

    #morinouguisu-home .work-carousel {
      position: relative;
      z-index: 3;
      max-width: 840px;
      margin: 0 auto;
    }

    #morinouguisu-home .work-viewport {
      overflow: hidden;
    }

    #morinouguisu-home .wtrack {
      display: flex;
      transition: transform .65s cubic-bezier(.22, .7, .28, 1);
      will-change: transform;
    }

    #morinouguisu-home .wcard {
      flex: 0 0 100%;
      padding: 0 80px 28px;
      text-align: center;
    }

    #morinouguisu-home .work-shot {
      position: relative;
      aspect-ratio: 21/9;
      margin: 0 auto 30px;
      border: 3px solid var(--dark);
      border-radius: 16px;
      background: #fff;
      box-shadow: 0 18px 35px rgba(54, 48, 42, .2);
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #aaa397;
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .08em;
    }

    #morinouguisu-home .work-shot::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 24px;
      background: #fff;
      border-bottom: 1px solid rgba(54, 48, 42, .12);
    }

    #morinouguisu-home .work-shot::after {
      content: "●  ●  ●";
      position: absolute;
      top: 3px;
      left: 10px;
      color: #d9d4ca;
      font-size: 9px;
      letter-spacing: 3px;
    }

    #morinouguisu-home .work-shot span {
      padding-top: 24px;
    }

    #morinouguisu-home .work-shot img {
      width: 100%;
      height: 100%;
      padding-top: 24px;
      object-fit: contain;
      background: #fff;
    }

    #morinouguisu-home .wcard .tag {
      display: inline-block;
      font-size: 13px;
      font-weight: 900;
      padding: 5px 14px;
      border-radius: 999px;
      background: var(--yellow-pale);
      color: #b8901c;
      margin-bottom: 14px;
    }

    #morinouguisu-home .wcard .n {
      font-weight: 900;
      font-size: clamp(22px, 2.9vw, 30px);
      line-height: 1.35;
      color: var(--dark);
    }

    #morinouguisu-home .wcard .c {
      font-size: 15px;
      color: var(--dark);
      margin-top: 12px;
      line-height: 1.85;
    }

    #morinouguisu-home .work-arrow {
      position: absolute;
      top: 40%;
      transform: translateY(-50%);
      width: 52px;
      height: 52px;
      border: 0;
      border-radius: 50%;
      background: #fff;
      color: var(--dark);
      font-size: 28px;
      font-family: inherit;
      font-weight: 900;
      cursor: pointer;
      box-shadow: 0 5px 16px rgba(54, 48, 42, .15);
      z-index: 4;
      transition: transform .2s, background .2s;
    }

    #morinouguisu-home .work-arrow:hover {
      background: var(--yellow-pale);
      transform: translateY(-50%) scale(1.06);
    }

    #morinouguisu-home .work-prev {
      left: 0;
    }

    #morinouguisu-home .work-next {
      right: 0;
    }

    #morinouguisu-home .work-dots {
      display: flex;
      justify-content: center;
      gap: 10px;
      margin-top: 4px;
    }

    #morinouguisu-home .work-dot {
      width: 10px;
      height: 10px;
      padding: 0;
      border: 0;
      border-radius: 50%;
      background: rgba(54, 48, 42, .28);
      cursor: pointer;
      transition: width .25s, background .25s;
    }

    #morinouguisu-home .work-dot.is-active {
      width: 30px;
      border-radius: 999px;
      background: var(--dark);
    }

    @media (max-width:700px) {
      #morinouguisu-home .wcard {
        padding: 0 8px 24px;
      }

      #morinouguisu-home .work-arrow {
        top: 32%;
        width: 42px;
        height: 42px;
        font-size: 22px;
      }

      #morinouguisu-home .work-prev {
        left: 6px;
      }

      #morinouguisu-home .work-next {
        right: 6px;
      }
    }

    /* ===== CAPABILITY ===== */
    #morinouguisu-home .capability {
      position: relative;
      z-index: 2;
      background: #fff9e8;
      padding: 140px 0 110px;
      overflow: hidden;
    }

    #morinouguisu-home .capability>.bigen {
      top: 66px;
    }

    #morinouguisu-home .capability-grid {
      position: relative;
      z-index: 3;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 22px;
    }

    #morinouguisu-home .capability-card {
      position: relative;
      min-height: 190px;
      padding: 30px 42% 30px 30px;
      border: 2px solid rgba(116, 117, 43, .48);
      border-radius: 18px;
      background: #fff;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      justify-content: center;
      transition: transform .2s, box-shadow .2s;
    }

    #morinouguisu-home .capability-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 12px 28px rgba(54, 48, 42, .1);
    }

    #morinouguisu-home .capability-card .cap-no {
      position: relative;
      z-index: 2;
      margin-bottom: 6px;
      color: var(--uguisu);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .14em;
    }

    #morinouguisu-home .capability-card h3 {
      position: relative;
      z-index: 2;
      color: var(--dark);
      font-size: clamp(22px, 2.4vw, 30px);
      font-weight: 900;
      line-height: 1.35;
    }

    #morinouguisu-home .capability-card p {
      position: relative;
      z-index: 2;
      margin-top: 10px;
      color: #000;
      font-size: 14px;
      line-height: 1.8;
    }

    #morinouguisu-home .capability-card img {
      position: absolute;
      z-index: 1;
      right: -2%;
      bottom: -12%;
      width: 42%;
      height: 112%;
      object-fit: contain;
      object-position: center bottom;
    }

    #morinouguisu-home .capability-controls {
      display: none;
    }

    #morinouguisu-home .capability-carousel {
      position: relative;
    }

    @media (max-width:900px) {
      #morinouguisu-home .capability {
        padding: 120px 0 90px;
      }

      #morinouguisu-home .capability-grid {
        display: flex;
        gap: 14px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
        padding: 4px 0 12px;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        touch-action: pan-x;
        width: calc(100% + 30px);
        margin-right: -30px;
      }

      #morinouguisu-home .capability-grid::-webkit-scrollbar {
        display: none;
      }

      #morinouguisu-home .capability-card {
        flex: 0 0 calc(100% - 30px);
        width: calc(100% - 30px);
        min-height: 170px;
        padding: 26px 40% 26px 24px;
        scroll-snap-align: center;
        scroll-snap-stop: always;
        opacity: 1;
        transform: none;
      }

      #morinouguisu-home .capability-card img {
        right: 1%;
        bottom: 0;
        width: 38%;
        height: 100%;
        object-fit: contain;
        object-position: center;
      }

      #morinouguisu-home .capability-controls {
        display: flex;
        position: absolute;
        inset: 0 -14px;
        align-items: center;
        justify-content: space-between;
        pointer-events: none;
        z-index: 5;
      }

      #morinouguisu-home .capability-arrow {
        position: relative;
        width: 40px;
        height: 40px;
        border-radius: 50%;
        border: 0;
        background: var(--yellow);
        color: transparent;
        font-size: 0;
        box-shadow: 0 5px 14px rgba(54, 48, 42, .18);
        pointer-events: auto;
        transition: transform .2s, box-shadow .2s;
      }

      #morinouguisu-home .capability-arrow::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        width: 9px;
        height: 9px;
        border-top: 2px solid var(--dark);
        border-right: 2px solid var(--dark);
      }

      #morinouguisu-home .capability-prev::before {
        transform: translate(-35%, -50%) rotate(-135deg);
      }

      #morinouguisu-home .capability-next::before {
        transform: translate(-65%, -50%) rotate(45deg);
      }

      #morinouguisu-home .capability-arrow:active {
        transform: scale(.92);
        box-shadow: 0 2px 8px rgba(54, 48, 42, .15);
      }
    }

    /* ===== SERVICE：濃茶 ===== */
    #morinouguisu-home .service {
      position: relative;
      z-index: 1;
      background-color: #f8f4e8;
      background-image: url("/images/home/service-forest-entrance-lineart.png");
      background-position: center bottom;
      background-size: cover;
      background-repeat: no-repeat;
      padding: 140px 0 110px;
      overflow: hidden;
    }

    #morinouguisu-home .service>.bigen,
#morinouguisu-home .reason>.bigen,
#morinouguisu-home .work>.bigen,
#morinouguisu-home .trouble>.bigen,
#morinouguisu-home .faq>.bigen {
      top: 66px;
    }

    #morinouguisu-home .sgrid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 22px;
      position: relative;
      z-index: 3;
    }

    #morinouguisu-home .scard {
      background: #fff;
      border: 2px solid rgba(116, 117, 43, .48);
      border-radius: 20px;
      padding: 34px 28px 30px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      transition: transform .2s;
    }

    #morinouguisu-home .scard:hover {
      transform: translateY(-6px);
    }

    #morinouguisu-home .scard .ic {
      width: 60px;
      height: 60px;
      border-radius: 16px;
      background: var(--yellow-pale);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 28px;
      margin-bottom: 16px;
    }

    #morinouguisu-home .scard .ic.has-image {
      width: calc(100% + 56px);
      height: auto;
      aspect-ratio: 16/9;
      margin: -34px -28px 22px;
      border-radius: 20px 20px 0 0;
      background: #f7f5ef;
      overflow: hidden;
    }

    #morinouguisu-home .scard .ic.has-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    #morinouguisu-home .scard h3 {
      text-align: center;
      font-weight: 900;
      font-size: 18.5px;
      color: var(--uguisu);
    }

    #morinouguisu-home .scard .p {
      font-size: 15px;
      color: var(--ink);
      margin-top: 10px;
      flex: 1;
    }

    #morinouguisu-home .scard .pr {
      font-weight: 900;
      font-size: 14.5px;
      color: #b8901c;
      margin-top: 16px;
    }

    #morinouguisu-home .scard .go {
      width: 100%;
      margin-top: 20px;
      padding: 12px 16px;
      border-radius: 8px;
      background: var(--yellow);
      color: var(--dark);
      font-weight: 900;
      font-size: 15px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
    }

    #morinouguisu-home .scard .go::after {
      content: "→";
      transition: transform .2s;
    }

    #morinouguisu-home .scard:hover .go::after {
      transform: translateX(4px);
    }

    @media (max-width:900px) {
      #morinouguisu-home .service {
        background-color: #e9ecd8;
        background-image: url("/images/home/service-forest-lineart-light.png");
        background-position: center bottom;
        background-size: 900px auto;
        background-repeat: no-repeat;
        background-blend-mode: multiply;
      }

      #morinouguisu-home .sgrid {
        grid-template-columns: 1fr;
      }
    }

    /* ===== TROUBLE：チャット ===== */
    #morinouguisu-home .trouble {
      position: relative;
      background: #f1f4f5;
      padding: 140px 0 100px;
      overflow: hidden;
    }

    #morinouguisu-home .trouble::before,
#morinouguisu-home .trouble::after {
      content: "";
      position: absolute;
      border: 2px solid rgba(116, 117, 43, .12);
      border-radius: 50%;
    }

    #morinouguisu-home .trouble::before {
      width: 230px;
      height: 230px;
      left: -100px;
      top: 260px;
    }

    #morinouguisu-home .trouble::after {
      width: 180px;
      height: 180px;
      right: -70px;
      bottom: 170px;
    }

    #morinouguisu-home .chat {
      max-width: 960px;
      margin: 0 auto;
      position: relative;
      z-index: 3;
    }

    #morinouguisu-home .msg {
      display: flex;
      gap: 14px;
      width: 60%;
      margin: 0 auto 34px 0;
      align-items: flex-start;
    }

    #morinouguisu-home .msg.rep {
      flex-direction: row-reverse;
      margin-left: auto;
      margin-right: 0;
    }

    #morinouguisu-home .ava {
      position: relative;
      z-index: 2;
      flex-shrink: 0;
      width: 68px;
      height: 68px;
      border-radius: 50%;
      overflow: hidden;
      background: var(--dark);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 28px;
      border: 2px solid #fff;
      box-shadow: 0 3px 10px rgba(54, 48, 42, .14);
    }

    #morinouguisu-home .msg.rep .ava {
      background: #fff;
      border-color: var(--uguisu);
    }

    #morinouguisu-home .ava img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    #morinouguisu-home .msg.ask .ava img {
      transform: scaleX(-1);
    }

    #morinouguisu-home .msg.rep .ava img {
      transform: scaleX(-1);
    }

    #morinouguisu-home .ava.owl-avatar {
      width: 96px;
      height: 96px;
      border: 2px solid var(--dark);
      border-radius: 50%;
      background: transparent;
      box-shadow: 0 3px 10px rgba(54, 48, 42, .14);
      overflow: hidden;
    }

    #morinouguisu-home .ava.owl-avatar img {
      object-fit: contain;
    }

    #morinouguisu-home .msg.ask .ava.owl-avatar img {
      transform: translateX(9px) scaleX(-1);
    }

    #morinouguisu-home .msg.owl-msg {
      align-items: center;
    }

    #morinouguisu-home .msg.owl-msg .bl {
      max-width: calc(100% - 110px);
    }

    #morinouguisu-home .msg.rep .ava {
      width: 96px;
      height: 96px;
      background: transparent;
    }

    #morinouguisu-home .msg.rep .bl {
      max-width: calc(100% - 110px);
    }

    #morinouguisu-home .bl {
      max-width: calc(100% - 82px);
    }

    #morinouguisu-home .bl .t {
      position: relative;
      padding: 22px 26px;
      font-size: 18px;
      font-weight: 500;
      line-height: 2;
      border-radius: 19px;
      background: #fff;
      color: #000;
      box-shadow: 0 4px 10px rgba(54, 48, 42, .1);
    }

    #morinouguisu-home .msg.ask .t {
      border: 1.5px solid var(--dark);
    }

    #morinouguisu-home .msg.rep .t {
      border: 1.5px solid var(--uguisu);
    }

    #morinouguisu-home .msg.ask .t::before,
#morinouguisu-home .msg.rep .t::before {
      content: "";
      position: absolute;
      top: 20px;
      width: 18px;
      height: 18px;
      background: #fff;
      transform: rotate(45deg);
    }

    #morinouguisu-home .msg.ask .t::before {
      left: -10px;
      border-left: 1.5px solid var(--dark);
      border-bottom: 1.5px solid var(--dark);
    }

    #morinouguisu-home .msg.rep .t::before {
      right: -10px;
      border-right: 1.5px solid var(--uguisu);
      border-top: 1.5px solid var(--uguisu);
    }

    #morinouguisu-home .bl .tm {
      font-size: 12px;
      color: #b6b9bb;
      margin-top: 5px;
      font-weight: 700;
    }

    #morinouguisu-home .msg.rep .tm {
      text-align: right;
    }

    #morinouguisu-home .bl .go {
      display: inline-block;
      margin-top: 10px;
      font-size: 14px;
      font-weight: 900;
      color: var(--dark);
      background: var(--yellow);
      padding: 7px 16px;
      border-radius: 999px;
    }

    #morinouguisu-home .bl .go::after {
      content: " →";
    }

    #morinouguisu-home .svc-mark {
      font-weight: 900;
      background: linear-gradient(transparent 58%, rgba(243, 197, 60, .72) 58%, rgba(243, 197, 60, .72) 94%, transparent 94%);
    }

    #morinouguisu-home .trouble .close {
      text-align: center;
      margin-top: 40px;
      font-weight: 900;
      font-size: clamp(17px, 2.4vw, 21px);
      position: relative;
      z-index: 3;
    }

    #morinouguisu-home .trouble .close .mk {
      background: linear-gradient(transparent 62%, var(--yellow) 62%, var(--yellow) 92%, transparent 92%);
    }

    @media (max-width:760px) {
      #morinouguisu-home .msg {
        width: 94%;
        margin-bottom: 26px;
      }

      #morinouguisu-home .ava {
        width: 56px;
        height: 56px;
        font-size: 24px;
      }

      #morinouguisu-home .bl {
        max-width: calc(100% - 68px);
      }

      #morinouguisu-home .ava.owl-avatar {
        width: 76px;
        height: 76px;
      }

      #morinouguisu-home .msg.owl-msg .bl {
        max-width: calc(100% - 88px);
      }

      #morinouguisu-home .msg.rep .ava {
        width: 76px;
        height: 76px;
      }

      #morinouguisu-home .msg.rep .bl {
        max-width: calc(100% - 88px);
      }

      #morinouguisu-home .bl .t {
        padding: 17px 18px;
        font-size: 16px;
        line-height: 1.85;
      }
    }

    /* ===== FAQ ===== */
    #morinouguisu-home .faq {
      position: relative;
      background: #fff;
      padding: 140px 0 110px;
      overflow: hidden;
    }

    #morinouguisu-home .faq-list {
      max-width: 820px;
      margin: 0 auto;
      position: relative;
      z-index: 3;
    }

    #morinouguisu-home details {
      border: 2px solid var(--line);
      border-radius: 14px;
      margin-bottom: 12px;
      background: #fff;
    }

    #morinouguisu-home summary {
      cursor: pointer;
      list-style: none;
      font-weight: 900;
      font-size: 16px;
      padding: 18px 52px 18px 22px;
      position: relative;
    }

    #morinouguisu-home summary::-webkit-details-marker {
      display: none;
    }

    #morinouguisu-home summary::after {
      content: "+";
      position: absolute;
      right: 20px;
      top: 50%;
      transform: translateY(-50%);
      width: 26px;
      height: 26px;
      background: var(--yellow);
      color: var(--dark);
      border-radius: 50%;
      font-size: 16px;
      font-weight: 900;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    #morinouguisu-home details[open] summary::after {
      content: "−";
    }

    #morinouguisu-home details p {
      padding: 0 22px 20px;
      font-size: 15px;
      color: var(--ink);
    }

    /* ===== 最終CTA ===== */
    #morinouguisu-home .final {
      background: var(--yellow);
      padding: 142px 0 110px;
      text-align: center;
      position: relative;
      z-index: 2;
      overflow: hidden;
    }

    #morinouguisu-home .final-bird {
      position: relative;
      width: min(150px, 34vw);
      aspect-ratio: 1;
      margin: 0 auto 10px;
      animation: final-bird-hover 2.8s ease-in-out infinite;
    }

    #morinouguisu-home .final-bird img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      opacity: .92;
    }

    #morinouguisu-home .final-bird .wing-up {
      animation: hero-wing-up .34s steps(1, end) infinite;
    }

    #morinouguisu-home .final-bird .wing-down {
      animation: hero-wing-down .34s steps(1, end) infinite;
    }

    @keyframes final-bird-hover {

      0%,
      100% {
        transform: translateY(0) rotate(-1deg);
      }

      50% {
        transform: translateY(-9px) rotate(1deg);
      }
    }

    #morinouguisu-home .final h2 {
      font-weight: 900;
      font-size: clamp(24px, 3.8vw, 36px);
      color: #000;
      line-height: 1.55;
    }

    #morinouguisu-home .final h2 .y {
      color: #000;
    }

    #morinouguisu-home .final p {
      margin-top: 18px;
      font-size: 16px;
      color: rgba(54, 48, 42, .82);
    }

    #morinouguisu-home .final .btn {
      margin-top: 30px;
      background: var(--dark);
      color: #fff;
      box-shadow: 0 5px 0 #1c1813;
    }

    #morinouguisu-home .final .note {
      margin-top: 16px;
      font-size: 12.5px;
      color: rgba(54, 48, 42, .7);
    }

    #morinouguisu-home footer {
      background: var(--dark-2);
      color: rgba(255, 255, 255, .72);
      padding: 50px 0 46px;
    }

    #morinouguisu-home footer .ft {
      display: flex;
      justify-content: space-between;
      gap: 32px;
      flex-wrap: wrap;
    }

    #morinouguisu-home footer .fb {
      font-weight: 900;
      font-size: 19px;
      color: #fff;
    }

    #morinouguisu-home footer .fg {
      font-size: 14px;
      margin-top: 8px;
    }

    #morinouguisu-home footer .fn {
      display: flex;
      gap: 24px;
      font-size: 14px;
      font-weight: 700;
    }

    #morinouguisu-home footer .fn a {
      color: rgba(255, 255, 255, .82);
    }

    #morinouguisu-home footer .fn a:hover {
      color: var(--yellow);
    }

    #morinouguisu-home footer .fi {
      margin-top: 36px;
      padding-top: 22px;
      border-top: 1px solid rgba(255, 255, 255, .14);
      font-size: 11.5px;
      line-height: 2;
      color: rgba(255, 255, 255, .52);
    }

    #morinouguisu-home footer .fi a {
      color: rgba(255, 255, 255, .72);
      border-bottom: 1px solid rgba(255, 255, 255, .28);
    }

    @media (max-width:640px) {
      #morinouguisu-home footer .fn {
        width: 100%;
        flex-wrap: wrap;
        gap: 14px 24px;
      }
    }

/* WordPress固定ページの器を無効化 */
html, body { margin: 0; padding: 0; width: 100%; }
body { background: #fff; overflow-x: hidden; }
body.admin-bar #morinouguisu-home header { top: 32px; }
@media (max-width: 782px) { body.admin-bar #morinouguisu-home header { top: 46px; } }

/* ===== Immersive forest main visual ===== */
#morinouguisu-home header {
  background: rgba(255,252,243,.20);
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: blur(1.5px);
  -webkit-backdrop-filter: blur(1.5px);
  transition: background .32s ease, box-shadow .32s ease, border-color .32s ease, backdrop-filter .32s ease;
}

#morinouguisu-home header .brand,
#morinouguisu-home header nav {
  text-shadow: 0 1px 8px rgba(255,255,255,.72);
}

#morinouguisu-home.is-forest-past header {
  background: rgba(255,255,255,.96);
  border-bottom-color: var(--line);
  box-shadow: 0 8px 24px rgba(54,48,42,.08);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#morinouguisu-home .hero.hero--forest {
  --forest-scroll-scale: 1;
  --forest-copy-opacity: 1;
  isolation: isolate;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: auto;
  min-height: 100vh;
  min-height: 100svh;
  padding: 0;
  overflow: hidden;
  background: #e8edcf;
}

#morinouguisu-home .hero--forest::before {
  display: none;
}

#morinouguisu-home .hero-forest-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  opacity: 0;
  transform: scale(var(--forest-scroll-scale));
  transform-origin: 66% 58%;
  animation: forest-scene-reveal .4s ease-out forwards;
}

#morinouguisu-home .hero-forest-media,
#morinouguisu-home .hero-forest-img {
  display: block;
  width: 100%;
  height: 100%;
}

#morinouguisu-home .hero-forest-media {
  transform: none;
}

#morinouguisu-home .hero-forest-img {
  object-fit: cover;
  object-position: center center;
  transform: scale(1.004) translate3d(var(--forest-x, 0), var(--forest-y, 0), 0);
  animation:
    forest-camera-settle 9s cubic-bezier(.2,.65,.25,1) both,
    forest-camera-breathe 14s ease-in-out 9s infinite alternate;
}

#morinouguisu-home .hero-forest-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(ellipse at 22% 46%, rgba(255,255,255,.66) 0%, rgba(255,255,255,.36) 30%, rgba(255,255,255,.11) 48%, transparent 66%),
    linear-gradient(90deg, rgba(255,252,243,.26) 0%, rgba(255,252,243,.10) 38%, transparent 56%);
  pointer-events: none;
}

#morinouguisu-home .hero-forest-lightwash {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: radial-gradient(circle at 64% 57%, rgba(242,193,78,.13), transparent 18%);
  opacity: .24;
  transform: translate3d(var(--ambient-x, 0), var(--ambient-y, 0), 0);
  pointer-events: none;
  animation: forest-light-breathe 8s ease-in-out -2s infinite alternate;
}

#morinouguisu-home .hero-forest-voice {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  transform: translate3d(var(--voice-x, 0), var(--voice-y, 0), 0);
  pointer-events: none;
}

#morinouguisu-home .hero-voice-lines path {
  --voice-opacity: .34;
  fill: none;
  stroke: #f0ce69;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0;
  filter: drop-shadow(0 0 2px rgba(242,193,78,.38));
  animation: forest-voice-travel 1.75s cubic-bezier(.18,.68,.22,1) forwards;
}

#morinouguisu-home .hero-voice-lines path:nth-child(1) { animation-delay: 1.45s; }
#morinouguisu-home .hero-voice-lines path:nth-child(2) { --voice-opacity: .26; animation-delay: 1.55s; }
#morinouguisu-home .hero-voice-lines path:nth-child(3) { --voice-opacity: .20; animation-delay: 1.65s; }
#morinouguisu-home .hero-voice-mobile { display: none; }

#morinouguisu-home .hero-town-lights circle {
  fill: #ffd66b;
  opacity: 0;
  filter: drop-shadow(0 0 3px rgba(255,211,94,.68));
  animation: forest-town-light .82s ease-out forwards;
}

#morinouguisu-home .hero-town-lights circle:nth-child(1) { animation-delay: 2.82s; }
#morinouguisu-home .hero-town-lights circle:nth-child(2) { animation-delay: 3.02s; }
#morinouguisu-home .hero-town-lights circle:nth-child(3) { animation-delay: 3.22s; }
#morinouguisu-home .hero-town-lights circle:nth-child(4) { animation-delay: 3.42s; }
#morinouguisu-home .hero-town-lights circle:nth-child(5) { animation-delay: 3.62s; }

#morinouguisu-home .hero-forest-layout {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: minmax(0, 44%) minmax(0, 56%);
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
  max-width: 1220px;
  min-height: 100vh;
  min-height: 100svh;
  padding: 118px 34px 112px;
}

#morinouguisu-home .hero-forest-copy {
  grid-column: 1;
  max-width: 570px;
  color: var(--dark);
  text-align: left;
  opacity: var(--forest-copy-opacity);
  transform: translate3d(var(--forest-copy-x, 0), var(--forest-copy-y, 0), 0);
}

#morinouguisu-home .hero-forest-kicker {
  margin: 0 0 14px;
  color: #58602b;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .1em;
  opacity: 0;
  transform: translateY(8px);
  animation: forest-copy-reveal .55s ease-out .34s forwards;
}

#morinouguisu-home .hero--forest h1 {
  margin: 0;
  color: #25251d;
  font-size: clamp(40px, 3.4vw, 52px);
  font-weight: 900;
  line-height: 1.34;
  letter-spacing: .035em;
  text-shadow: none;
  opacity: 0;
  transform: translateY(14px);
  animation: forest-copy-reveal .7s cubic-bezier(.2,.7,.2,1) .45s forwards;
}

#morinouguisu-home .hero--forest h1 span {
  display: block;
  white-space: nowrap;
}

#morinouguisu-home .hero-forest-lead {
  max-width: 520px;
  margin: 24px 0 0;
  color: #35352b;
  font-size: 17px;
  font-weight: 700;
  line-height: 2;
  opacity: 0;
  transform: translateY(12px);
  animation: forest-copy-reveal .65s ease-out .82s forwards;
}

#morinouguisu-home .hero-forest-cta {
  margin: 30px 0 0;
  opacity: 0;
  transform: translateY(12px);
  animation: forest-copy-reveal .65s ease-out 1.04s forwards;
}

#morinouguisu-home .hero-forest-cta .btn {
  min-height: 56px;
  padding: 16px 36px;
  font-size: 16px;
}

#morinouguisu-home .hero-foreground-layer {
  position: absolute;
  inset: 0;
  z-index: 4;
  overflow: hidden;
  pointer-events: none;
}

#morinouguisu-home .hero-foreground {
  position: absolute;
  display: block;
  overflow: visible;
  opacity: .66;
  filter: blur(.8px) saturate(.78) drop-shadow(0 10px 16px rgba(25,48,21,.12));
}

#morinouguisu-home .hero-foreground--left {
  bottom: -8%;
  left: -4%;
  width: clamp(240px, 25vw, 390px);
  transform: translate3d(var(--leaf-left-x, 0), var(--leaf-left-y, 0), 0);
}

#morinouguisu-home .hero-foreground--right {
  top: -5%;
  right: -3%;
  width: clamp(250px, 24vw, 380px);
  transform: translate3d(var(--leaf-right-x, 0), var(--leaf-right-y, 0), 0);
}

#morinouguisu-home .hero-foreground-art {
  display: block;
  width: 100%;
  height: auto;
  transform-origin: 50% 50%;
  animation: forest-leaves-breathe 8s ease-in-out -1.6s infinite alternate;
}

#morinouguisu-home .hero-foreground--right .hero-foreground-art {
  animation-delay: -4.1s;
  animation-duration: 9.5s;
}

#morinouguisu-home .hero-scroll-indicator {
  position: absolute;
  bottom: 42px;
  left: 50%;
  z-index: 8;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  color: rgba(54,48,42,.68);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .22em;
  transform: translateX(-50%);
}

#morinouguisu-home .hero-scroll-indicator i {
  display: block;
  width: 1px;
  height: 28px;
  background: linear-gradient(180deg, rgba(54,48,42,.62), transparent);
  transform-origin: top;
  animation: forest-scroll-hint 2.8s ease-in-out 4s infinite;
}

#morinouguisu-home .hero-about-guide {
  position: absolute;
  right: 25.5%;
  bottom: 42%;
  left: auto;
  z-index: 12;
  display: grid;
  grid-template-columns: auto clamp(66px,6.2vw,92px);
  align-items: end;
  color: #29251f;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: none;
  transition: transform .25s ease, filter .25s ease;
}

#morinouguisu-home.is-loader-complete .hero-about-guide.is-ready {
  animation: hero-about-guide-reveal .46s ease-out .2s forwards;
}

#morinouguisu-home .hero-about-guide__bubble,
#morinouguisu-home .hero-about-guide__action {
  opacity: 0;
  visibility: hidden;
}

#morinouguisu-home.is-loader-complete .hero-about-guide.is-ready .hero-about-guide__bubble,
#morinouguisu-home.is-loader-complete .hero-about-guide.is-ready .hero-about-guide__action {
  animation: hero-about-guide-reveal .46s ease-out 1.8s forwards;
}

#morinouguisu-home .hero-about-guide__bubble {
  position: relative;
  z-index: 2;
  align-self: center;
  margin: 0 -5px 40px 0;
  padding: 13px 18px;
  border: 2px solid #789b5c;
  border-radius: 999px;
  background: rgba(255,253,246,.96);
  box-shadow: 0 7px 0 rgba(74,101,52,.12), 0 10px 22px rgba(41,62,28,.12);
  font-size: clamp(14px,1.2vw,17px);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: .03em;
  white-space: nowrap;
  transition: transform .25s ease, box-shadow .25s ease;
}

#morinouguisu-home .hero-about-guide__bubble::after {
  content: "";
  position: absolute;
  right: -9px;
  bottom: 9px;
  width: 17px;
  height: 17px;
  border-right: 2px solid #789b5c;
  border-bottom: 2px solid #789b5c;
  border-radius: 0 0 5px 0;
  background: #fffdf6;
  transform: rotate(-28deg) skew(-8deg);
}

#morinouguisu-home .hero-about-guide__action {
  position: absolute;
  top: -10px;
  left: 8px;
  z-index: 3;
  color: #e98f2f;
  font-family: 'Zen Maru Gothic', 'M PLUS Rounded 1c', cursive;
  font-size: clamp(14px,1.35vw,19px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: .05em;
  text-shadow: 0 2px 0 #fffdf6;
  transform: rotate(-8deg);
}

#morinouguisu-home .hero-about-guide__action-sp { display: none; }

#morinouguisu-home .hero-about-guide__bird-wrap {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  aspect-ratio: 1;
}

#morinouguisu-home .hero-about-guide__bird {
  display: none;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 9px 7px rgba(40,56,27,.18));
  transform-origin: 58% 82%;
  animation: hero-about-guide-bob 3.2s ease-in-out infinite;
}

#morinouguisu-home .hero-about-guide:focus-visible {
  outline: 3px solid #efbd3d;
  outline-offset: 6px;
  border-radius: 18px;
}

#morinouguisu-home .about#about {
  scroll-margin-top: 86px;
}

@media (hover: hover) {
  #morinouguisu-home .hero-about-guide:hover {
    filter: brightness(1.02);
    transform: translateY(-5px);
  }

  #morinouguisu-home .hero-about-guide:hover .hero-about-guide__bubble {
    box-shadow: 0 9px 0 rgba(74,101,52,.13), 0 13px 25px rgba(41,62,28,.14);
    transform: rotate(-1deg);
  }
}

@keyframes hero-about-guide-bob {
  0%, 100% { transform: translateY(1px) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
}

@keyframes hero-about-guide-reveal {
  0% {
    opacity: 0;
    visibility: hidden;
  }
  1% {
    visibility: visible;
  }
  100% {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

#morinouguisu-home .hero-forest-transition {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  z-index: 7;
  height: 104px;
  background: linear-gradient(180deg, transparent 0%, rgba(255,253,248,.38) 42%, #fffdf8 100%);
  clip-path: polygon(0 15%, 10% 21%, 22% 13%, 35% 20%, 48% 12%, 61% 18%, 74% 11%, 88% 19%, 100% 13%, 100% 100%, 0 100%);
  pointer-events: none;
}

@keyframes forest-scene-reveal {
  to { opacity: 1; }
}

@keyframes forest-camera-settle {
  from { transform: scale(1.03) translate3d(var(--forest-x, 0), var(--forest-y, 0), 0); }
  to { transform: scale(1.004) translate3d(var(--forest-x, 0), var(--forest-y, 0), 0); }
}

@keyframes forest-camera-breathe {
  from { transform: scale(1.004) translate3d(var(--forest-x, 0), var(--forest-y, 0), 0); }
  to { transform: scale(1.018) translate3d(var(--forest-x, 0), var(--forest-y, 0), 0); }
}

@keyframes forest-camera-breathe-mobile {
  from { transform: scale(1.004); }
  to { transform: scale(1.014); }
}

@keyframes forest-copy-reveal {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes forest-voice-travel {
  0% { stroke-dashoffset: 1; opacity: 0; }
  14%, 82% { opacity: var(--voice-opacity); }
  100% { stroke-dashoffset: 0; opacity: .04; }
}

@keyframes forest-town-light {
  0% { opacity: 0; transform: scale(.65); transform-origin: center; }
  100% { opacity: .9; transform: scale(1); transform-origin: center; }
}

@keyframes forest-light-breathe {
  from { opacity: .18; }
  to { opacity: .34; }
}

@keyframes forest-leaves-breathe {
  from { transform: translate3d(-5px, 3px, 0) rotate(-1.45deg); }
  to { transform: translate3d(5px, -3px, 0) rotate(1.55deg); }
}

@keyframes forest-scroll-hint {
  0%, 100% { opacity: .34; transform: scaleY(.72); }
  48% { opacity: .72; transform: scaleY(1); }
}

@media (max-width: 980px) and (min-width: 701px) {
  #morinouguisu-home .hero.hero--forest {
    min-height: 100svh;
  }

  #morinouguisu-home .hero-forest-layout {
    grid-template-columns: minmax(0, 48%) minmax(0, 52%);
    min-height: 100svh;
    padding-right: 26px;
    padding-left: 26px;
  }

  #morinouguisu-home .hero--forest h1 {
    font-size: clamp(30px, 4vw, 38px);
  }

  #morinouguisu-home .hero-forest-scene::after {
    background:
      radial-gradient(ellipse at 24% 46%, rgba(255,255,255,.70) 0%, rgba(255,255,255,.38) 34%, rgba(255,255,255,.09) 55%, transparent 72%),
      linear-gradient(90deg, rgba(255,252,243,.22), transparent 62%);
  }
}

@media (max-width: 700px) {
  #morinouguisu-home header {
    background: rgba(255,252,243,.48);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }

  #morinouguisu-home.is-forest-past header {
    background: rgba(255,255,255,.97);
  }

  #morinouguisu-home .hero.hero--forest {
    display: flex;
    min-height: 100svh;
    padding: 0;
    background: var(--yellow-pale);
  }

  #morinouguisu-home .hero-forest-layout {
    order: 1;
    display: block;
    min-height: 0;
    padding: 96px 20px 30px;
    background: linear-gradient(180deg, #fdf8ec 0%, #faf3df 100%);
  }

  #morinouguisu-home .hero-forest-copy {
    max-width: 430px;
    margin: 0 auto;
  }

  #morinouguisu-home .hero-forest-kicker {
    margin-bottom: 10px;
    font-size: 13px;
    letter-spacing: .06em;
  }

  #morinouguisu-home .hero--forest h1 {
    font-size: clamp(30px, 8.2vw, 34px);
    line-height: 1.38;
  }

  #morinouguisu-home .hero--forest h1 span {
    white-space: normal;
  }

  #morinouguisu-home .hero-forest-lead {
    margin-top: 18px;
    font-size: 16px;
    line-height: 1.9;
  }

  #morinouguisu-home .hero-forest-lead br {
    display: none;
  }

  #morinouguisu-home .hero-forest-cta {
    margin-top: 22px;
  }

  #morinouguisu-home .hero-forest-cta .btn {
    width: 100%;
    min-height: 54px;
    justify-content: center;
    padding: 14px 22px;
  }

  #morinouguisu-home .hero-forest-scene {
    position: relative;
    inset: auto;
    order: 2;
    width: 100%;
    aspect-ratio: 1672 / 941;
    min-height: 0;
    transform: none;
  }

  #morinouguisu-home .hero-forest-img {
    object-fit: contain;
    object-position: center;
    transform: scale(1.004);
    transition: none;
    animation: forest-camera-breathe-mobile 13s ease-in-out -3s infinite alternate;
    will-change: auto;
  }

  #morinouguisu-home .hero-forest-scene::after {
    display: none;
  }

  #morinouguisu-home .hero-forest-lightwash {
    opacity: .24;
    animation: forest-light-breathe 10s ease-in-out -3s infinite alternate;
  }

  #morinouguisu-home .hero-foreground-layer {
    top: auto;
    bottom: 36px;
    height: calc(100vw * .5628);
    max-height: 250px;
  }

  #morinouguisu-home .hero-foreground--left {
    bottom: -20%;
    left: -12%;
    width: 42vw;
    min-width: 150px;
    opacity: .58;
  }

  #morinouguisu-home .hero-foreground--right {
    top: -20%;
    right: -14%;
    width: 36vw;
    min-width: 140px;
    opacity: .5;
  }

  #morinouguisu-home .hero-foreground-art {
    animation-duration: 9s;
    animation-delay: -2s;
  }

  #morinouguisu-home .hero-foreground--right .hero-foreground-art {
    animation-duration: 10.5s;
    animation-delay: -5s;
  }

  #morinouguisu-home .hero-voice-lines path:not(.hero-voice-mobile),
  #morinouguisu-home .hero-town-lights circle:nth-child(n+4) {
    display: none;
  }

  #morinouguisu-home .hero-voice-lines .hero-voice-mobile {
    --voice-opacity: .28;
    display: block;
    stroke-width: 2;
    animation-duration: 1.35s;
    animation-delay: 1.45s;
  }

  #morinouguisu-home .hero-scroll-indicator {
    bottom: 26px;
    font-size: 9px;
  }

  #morinouguisu-home .hero-scroll-indicator i {
    height: 20px;
  }

  #morinouguisu-home .hero-forest-transition {
    height: 58px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #morinouguisu-home .hero-forest-scene,
  #morinouguisu-home .hero-forest-kicker,
  #morinouguisu-home .hero--forest h1,
  #morinouguisu-home .hero-forest-lead,
  #morinouguisu-home .hero-forest-cta {
    opacity: 1;
    transform: none;
    animation: none;
  }

  #morinouguisu-home .hero-forest-img {
    transform: scale(1.004);
    transition: none;
    animation: none;
    will-change: auto;
  }

  #morinouguisu-home .hero-voice-lines path {
    stroke-dashoffset: 0;
    opacity: .10;
    animation: none;
  }

  #morinouguisu-home .hero-town-lights circle {
    opacity: .85;
    animation: none;
  }

  #morinouguisu-home .hero-forest-lightwash {
    opacity: .3;
    animation: none;
    transform: none;
  }

  #morinouguisu-home .hero-foreground-art,
  #morinouguisu-home .hero-scroll-indicator i {
    animation: none;
  }

  #morinouguisu-home .hero-forest-media,
  #morinouguisu-home .hero-forest-copy,
  #morinouguisu-home .hero-foreground,
  #morinouguisu-home .hero-forest-voice {
    transform: none;
  }
}

#morinouguisu-home .about {
  background: #fffdf8;
}

/* =========================================================
   Layered forest hero
   Independent far / mid / hut / ground / birds / foreground
   ========================================================= */
html.morinouguisu-is-loading,
html.morinouguisu-is-loading body {
  overflow: hidden;
}

#morinouguisu-home .forest-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 28px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 43%, rgba(255,241,174,.72), transparent 35%),
    linear-gradient(145deg, #fffaf0 0%, #f3f7e8 58%, #e6f0d9 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity .55s ease, visibility .55s ease;
}

#morinouguisu-home .forest-loader::before,
#morinouguisu-home .forest-loader::after {
  content: "";
  position: absolute;
  width: min(46vw, 560px);
  aspect-ratio: 1;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(2px);
}

#morinouguisu-home .forest-loader::before {
  top: -28%;
  right: -14%;
  background: radial-gradient(circle, rgba(116,153,76,.17), transparent 68%);
}

#morinouguisu-home .forest-loader::after {
  bottom: -34%;
  left: -12%;
  background: radial-gradient(circle, rgba(240,190,66,.16), transparent 70%);
}

#morinouguisu-home .forest-loader.is-leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

#morinouguisu-home .forest-loader__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, 360px);
  color: #315f31;
  text-align: center;
}

#morinouguisu-home .forest-loader__logo {
  display: block;
  width: clamp(128px, 15vw, 168px);
  height: auto;
  margin: 0 auto -8px;
  object-fit: contain;
  animation: forest-loader-logo 1.8s ease-in-out infinite alternate;
}

#morinouguisu-home .forest-loader__bird {
  position: relative;
  display: block;
  width: clamp(88px, 9vw, 112px);
  aspect-ratio: 1;
  margin: -4px auto 4px;
  animation: forest-loader-bird-float 1.7s ease-in-out infinite;
}

#morinouguisu-home .forest-loader__bird-frame {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 100%;
  height: auto;
  transform: translate(-50%,-50%);
  filter: drop-shadow(0 8px 9px rgba(50,74,29,.14));
}

#morinouguisu-home .forest-loader__bird-frame--up {
  animation: forest-loader-wing-up .66s ease-in-out infinite;
}

#morinouguisu-home .forest-loader__bird-frame--down {
  width: 104%;
  animation: forest-loader-wing-down .66s ease-in-out infinite;
}

#morinouguisu-home .forest-loader__text {
  display: flex;
  align-items: flex-end;
  min-width: 112px;
  margin: 0;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .14em;
}

#morinouguisu-home .forest-loader__dots {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  height: 1em;
  margin: 0 0 1px 5px;
}

#morinouguisu-home .forest-loader__dots i {
  display: block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #efbd3d;
  animation: forest-loader-dot .9s ease-in-out infinite;
}

#morinouguisu-home .forest-loader__dots i:nth-child(2) { animation-delay: .14s; }
#morinouguisu-home .forest-loader__dots i:nth-child(3) { animation-delay: .28s; }

#morinouguisu-home:not(.is-loader-complete) .hero--layered,
#morinouguisu-home:not(.is-loader-complete) .hero--layered * {
  animation-play-state: paused !important;
}

@keyframes forest-loader-logo {
  from { transform: translateY(0); opacity: .92; }
  to { transform: translateY(-3px); opacity: 1; }
}

@keyframes forest-loader-bird-float {
  0%, 100% { transform: translate3d(0,2px,0) rotate(-1deg); }
  50% { transform: translate3d(0,-5px,0) rotate(1deg); }
}

@keyframes forest-loader-wing-up {
  0%, 35% { opacity: 1; transform: translate(-50%,-50%) translateY(-1px); }
  52%, 82% { opacity: 0; transform: translate(-50%,-50%) translateY(1px); }
  100% { opacity: 1; transform: translate(-50%,-50%) translateY(-1px); }
}

@keyframes forest-loader-wing-down {
  0%, 35% { opacity: 0; transform: translate(-50%,-50%) scale(.94) translateY(-1px); }
  52%, 82% { opacity: 1; transform: translate(-50%,-50%) scale(.94) translateY(1px); }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(.94) translateY(-1px); }
}

@keyframes forest-loader-dot {
  0%, 100% { opacity: .28; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-3px); }
}

#morinouguisu-home .hero.hero--layered {
  --far-x: 0px;
  --far-y: 0px;
  --far-scale: 1;
  --mid-x: 0px;
  --mid-y: 0px;
  --mid-scale: 1;
  --hut-x: 0px;
  --hut-y: 0px;
  --hut-scale: 1;
  --ground-x: 0px;
  --ground-y: 0px;
  --ground-scale: 1;
  --ambient-x: 0px;
  --ambient-y: 0px;
  --birds-x: 0px;
  --birds-y: 0px;
  --main-bird-duration: 4.4s;
  --main-bird-x1: -5vw;
  --main-bird-y1: -6vh;
  --main-bird-x2: -12vw;
  --main-bird-y2: -13vh;
  --main-bird-x3: -19vw;
  --main-bird-y3: -18vh;
  --main-bird-x4: -27vw;
  --main-bird-y4: -20vh;
  --copy-opacity: 1;
  --copy-y: 0px;
  isolation: isolate;
  position: relative;
  display: block;
  min-height: 100vh;
  min-height: 100svh;
  padding: 0;
  overflow: hidden;
  background: #dce9a8;
}

#morinouguisu-home .hero--layered::before,
#morinouguisu-home .hero--layered::after {
  content: "";
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
}

#morinouguisu-home .hero--layered::before {
  z-index: 7;
  background:
    radial-gradient(ellipse 50% 62% at 20% 48%, rgba(255,253,244,.76) 0%, rgba(255,253,244,.48) 35%, rgba(255,253,244,.14) 62%, transparent 78%),
    linear-gradient(90deg, rgba(255,250,236,.20), transparent 52%);
}

#morinouguisu-home .hero--layered::after {
  z-index: 5;
  background:
    radial-gradient(circle at 69% 55%, rgba(255,222,112,.15), transparent 18%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(49,91,29,.08));
  mix-blend-mode: screen;
}

#morinouguisu-home .hero-layer,
#morinouguisu-home .hero-ambient-layer,
#morinouguisu-home .hero-birds-layer,
#morinouguisu-home .hero-foreground-layer {
  position: absolute;
  pointer-events: none;
}

#morinouguisu-home .hero-layer img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#morinouguisu-home .hero-layer--far {
  inset: -2.2%;
  z-index: 1;
  opacity: 0;
  transform: translate3d(var(--far-x), var(--far-y), 0) scale(var(--far-scale));
  transform-origin: 62% 58%;
  animation: layered-forest-reveal .5s ease-out forwards;
}

#morinouguisu-home .hero-layer--far img,
#morinouguisu-home .hero-layer--mid img {
  object-fit: cover;
}

#morinouguisu-home .hero-layer--mid {
  inset: -3%;
  z-index: 2;
  opacity: .92;
  transform: translate3d(var(--mid-x), var(--mid-y), 0) scale(var(--mid-scale));
  transform-origin: 64% 60%;
  -webkit-mask-image: radial-gradient(ellipse 58% 65% at 62% 52%, transparent 0 34%, rgba(0,0,0,.18) 49%, rgba(0,0,0,.68) 67%, #000 84%);
  mask-image: radial-gradient(ellipse 58% 65% at 62% 52%, transparent 0 34%, rgba(0,0,0,.18) 49%, rgba(0,0,0,.68) 67%, #000 84%);
}

#morinouguisu-home .hero-layer--mid img {
  transform: scale(1.008);
  transform-origin: 62% 56%;
  animation: layered-mid-breathe 16s ease-in-out -5s infinite alternate;
}

#morinouguisu-home .hero-layer--hut {
  right: 8.5%;
  bottom: 11.5%;
  z-index: 3;
  width: clamp(330px, 32vw, 470px);
  transform: translate3d(var(--hut-x), var(--hut-y), 0) scale(var(--hut-scale));
  transform-origin: 54% 88%;
  filter: drop-shadow(0 18px 22px rgba(40,58,23,.18));
}

#morinouguisu-home .hero-layer--hut-ground {
  right: 4.5%;
  bottom: 6.2%;
  z-index: 4;
  width: clamp(470px, 45vw, 690px);
  transform: translate3d(var(--ground-x), var(--ground-y), 0) scale(var(--ground-scale));
  transform-origin: 56% 72%;
  filter: drop-shadow(0 13px 14px rgba(37,57,22,.15));
}

#morinouguisu-home .hero-ambient-layer {
  inset: 0;
  z-index: 5;
  overflow: hidden;
  transform: translate3d(var(--ambient-x), var(--ambient-y), 0);
}

#morinouguisu-home .hero--layered .hero-forest-lightwash {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 70% 55%, rgba(255,212,92,.26), transparent 12%),
    radial-gradient(ellipse at 63% 63%, rgba(255,248,202,.17), transparent 28%);
  opacity: .50;
  transform: none;
  animation: layered-light-breathe 8s ease-in-out -2s infinite alternate;
}

#morinouguisu-home .hero--layered .hero-forest-voice {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: none;
}

#morinouguisu-home .hero--layered .hero-voice-lines path {
  --voice-opacity: .34;
  fill: none;
  stroke: #f4d468;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0;
  filter: drop-shadow(0 0 2px rgba(255,218,100,.48));
  animation: layered-voice-travel 1.75s cubic-bezier(.18,.68,.22,1) forwards;
}

#morinouguisu-home .hero--layered .hero-voice-lines path:nth-child(1) { animation-delay: 2s; }
#morinouguisu-home .hero--layered .hero-voice-lines path:nth-child(2) { --voice-opacity: .27; animation-delay: 2.10s; }
#morinouguisu-home .hero--layered .hero-voice-lines path:nth-child(3) { --voice-opacity: .21; animation-delay: 2.20s; }
#morinouguisu-home .hero--layered .hero-voice-mobile { display: none; }

#morinouguisu-home .hero--layered .hero-town-lights circle {
  fill: #ffd263;
  opacity: 0;
  filter: drop-shadow(0 0 3px rgba(255,208,76,.72));
  animation: layered-town-light .76s ease-out forwards;
}

#morinouguisu-home .hero--layered .hero-town-lights circle:nth-child(1) { animation-delay: 3.02s; }
#morinouguisu-home .hero--layered .hero-town-lights circle:nth-child(2) { animation-delay: 3.22s; }
#morinouguisu-home .hero--layered .hero-town-lights circle:nth-child(3) { animation-delay: 3.42s; }
#morinouguisu-home .hero--layered .hero-town-lights circle:nth-child(4) { animation-delay: 3.62s; }
#morinouguisu-home .hero--layered .hero-town-lights circle:nth-child(5) { animation-delay: 3.82s; }

#morinouguisu-home .hero--layered .hero-birds-layer {
  inset: 0;
  z-index: 6;
  overflow: hidden;
  transform: translate3d(var(--birds-x), var(--birds-y), 0);
}

#morinouguisu-home .hero-bird-depth,
#morinouguisu-home .hero-bird-flight,
#morinouguisu-home .hero-bird-frames {
  position: absolute;
  display: block;
}

#morinouguisu-home .hero-bird-depth--rest,
#morinouguisu-home .hero-bird-depth--main {
  right: 25.5%;
  bottom: 42%;
}

#morinouguisu-home .hero-bird-depth--rest {
  z-index: 2;
  width: clamp(66px, 6.2vw, 92px);
  opacity: 0;
  visibility: hidden;
}

#morinouguisu-home.is-loader-complete.is-about-guide-ready .hero-bird-depth--rest {
  animation: hero-about-guide-reveal .46s ease-out .2s forwards;
}

#morinouguisu-home .hero-bird-rest {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 7px 6px rgba(32,46,19,.18));
  transition: opacity .16s ease, transform .2s ease;
}

#morinouguisu-home .hero-birds-layer.is-main-flying .hero-bird-rest {
  opacity: 1;
  transform: none;
}

#morinouguisu-home .hero-bird-depth--main {
  z-index: 3;
  width: clamp(74px, 7vw, 104px);
  aspect-ratio: 1.2;
}

#morinouguisu-home .hero-bird-flight--main {
  inset: 0;
  opacity: 0;
}

#morinouguisu-home .hero-birds-layer.is-main-flying .hero-bird-flight--main {
  animation: layered-bird-main var(--main-bird-duration) cubic-bezier(.28,.58,.38,1) forwards;
}

#morinouguisu-home .hero-bird-frames--main {
  inset: 0;
}

#morinouguisu-home .hero-bird-frame {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
  transform: translate(-50%,-50%) scaleX(-1);
  filter: drop-shadow(0 6px 7px rgba(32,46,19,.16));
}

#morinouguisu-home .hero-bird-frame--one { animation: layered-wing-one .96s ease-in-out infinite; }
#morinouguisu-home .hero-bird-frame--two { animation: layered-wing-two .96s ease-in-out infinite; }
#morinouguisu-home .hero-bird-frame--three { animation: layered-wing-three .96s ease-in-out infinite; }
#morinouguisu-home .hero-bird-frame--footer-up {
  transform: translate(-50%,-50%);
  animation: layered-footer-wing-up .58s ease-in-out infinite;
}

#morinouguisu-home .hero-bird-frame--footer-down {
  transform: translate(-50%,-51%) scale(.94);
  animation: layered-footer-wing-down .58s ease-in-out infinite;
}

#morinouguisu-home .hero-bird-depth--mid {
  top: 28%;
  left: 95%;
  width: clamp(34px, 3.1vw, 48px);
  opacity: .98;
  filter: blur(.05px) saturate(1);
}

#morinouguisu-home .hero-bird-flight--mid {
  inset: 0;
  opacity: 0;
  animation: layered-bird-mid 24s linear 2.8s infinite;
}

#morinouguisu-home .hero-bird-depth--mid-two {
  top: 43%;
  left: -7%;
  width: clamp(30px, 2.75vw, 43px);
}

#morinouguisu-home .hero-bird-depth--mid-two .hero-bird-flight--mid {
  animation-name: layered-bird-mid-right;
  animation-duration: 27s;
  animation-delay: 9s;
}

#morinouguisu-home .hero-bird-depth--mid-two img { transform: scaleX(-1); }

#morinouguisu-home .hero-bird-depth--mid-three {
  top: 18%;
  left: 92%;
  width: clamp(29px, 2.55vw, 40px);
}

#morinouguisu-home .hero-bird-depth--mid-three .hero-bird-flight--mid {
  animation-duration: 31s;
  animation-delay: 16s;
}

#morinouguisu-home .hero-bird-depth--far {
  top: 17%;
  left: 58%;
  width: clamp(20px, 1.75vw, 28px);
  opacity: .90;
  filter: blur(.15px) saturate(.95);
}

#morinouguisu-home .hero-bird-flight--far {
  inset: 0;
  opacity: 0;
  animation: layered-bird-far 22s linear 9.5s infinite;
}

#morinouguisu-home .hero-bird-depth--far-two {
  top: 36%;
  left: -5%;
  width: clamp(18px, 1.55vw, 25px);
}

#morinouguisu-home .hero-bird-depth--far-two .hero-bird-flight--far {
  animation-duration: 29s;
  animation-delay: 4.5s;
}

#morinouguisu-home .hero-bird-depth--far-three {
  top: 12%;
  left: 95%;
  width: clamp(17px, 1.45vw, 23px);
}

#morinouguisu-home .hero-bird-depth--far-three .hero-bird-flight--far {
  animation-name: layered-bird-far-left;
  animation-duration: 34s;
  animation-delay: 15s;
}

#morinouguisu-home .hero-bird-flight--mid img,
#morinouguisu-home .hero-bird-flight--far img {
  display: block;
  width: 100%;
  height: auto;
}

#morinouguisu-home .hero-bird-flight--far img { transform: scaleX(-1); }
#morinouguisu-home .hero-bird-depth--far-three .hero-bird-flight--far img { transform: none; }

#morinouguisu-home .hero--layered .hero-forest-layout {
  position: relative;
  z-index: 8;
  display: grid;
  grid-template-columns: minmax(0, 45%) minmax(0, 55%);
  align-items: center;
  width: 100%;
  max-width: 1260px;
  min-height: 100vh;
  min-height: 100svh;
  padding: 116px 38px 108px;
  background: none;
}

#morinouguisu-home .hero--layered .hero-forest-copy {
  grid-column: 1;
  max-width: 560px;
  opacity: var(--copy-opacity);
  transform: translate3d(0,var(--copy-y),0);
}

#morinouguisu-home .hero--layered .hero-forest-kicker {
  color: #4f6329;
  text-shadow: 0 1px 10px rgba(255,255,255,.56);
}

#morinouguisu-home .hero--layered h1,
#morinouguisu-home .hero--layered .hero-forest-lead {
  text-shadow: 0 1px 14px rgba(255,255,255,.62);
}

#morinouguisu-home .hero--layered .hero-foreground-layer {
  inset: 0;
  z-index: 9;
  height: auto;
  max-height: none;
  overflow: hidden;
}

#morinouguisu-home .hero--layered .hero-foreground {
  opacity: .84;
  filter: blur(.75px) saturate(.90) drop-shadow(0 12px 18px rgba(24,43,18,.15));
}

#morinouguisu-home .hero--layered .hero-foreground--left {
  bottom: -19%;
  left: -7%;
  width: clamp(290px, 28vw, 430px);
  transform: translate3d(var(--leaf-left-x,0),var(--leaf-left-y,0),0);
}

#morinouguisu-home .hero--layered .hero-foreground--right {
  top: -7%;
  right: -4%;
  width: clamp(300px, 29vw, 455px);
  transform: translate3d(var(--leaf-right-x,0),var(--leaf-right-y,0),0);
}

#morinouguisu-home .hero--layered .hero-foreground-art {
  transform-origin: 50% 50%;
  animation: layered-leaves-left 8.5s ease-in-out -2s infinite alternate;
}

#morinouguisu-home .hero--layered .hero-foreground--right .hero-foreground-art {
  animation-name: layered-leaves-right;
  animation-duration: 10s;
  animation-delay: -5s;
}

#morinouguisu-home .hero--layered .hero-scroll-indicator {
  z-index: 10;
}

#morinouguisu-home .hero--layered .hero-forest-transition {
  z-index: 11;
  height: 118px;
  background: linear-gradient(180deg, transparent 0%, rgba(255,253,248,.25) 32%, rgba(255,253,248,.75) 72%, #fffdf8 100%);
  clip-path: none;
}

#morinouguisu-home header {
  z-index: 40;
}

@keyframes layered-forest-reveal {
  to { opacity: 1; }
}

@keyframes layered-mid-breathe {
  from { transform: scale(1.008); }
  to { transform: scale(1.018); }
}

@keyframes layered-light-breathe {
  from { opacity: .38; }
  to { opacity: .62; }
}

@keyframes layered-voice-travel {
  0% { stroke-dashoffset: 1; opacity: 0; }
  15%, 82% { opacity: var(--voice-opacity); }
  100% { stroke-dashoffset: 0; opacity: .035; }
}

@keyframes layered-town-light {
  0% { opacity: 0; transform: scale(.58); transform-origin: center; }
  100% { opacity: .9; transform: scale(1); transform-origin: center; }
}

@keyframes layered-rest-takeoff {
  0%, 20% { opacity: 1; transform: translateY(0) scale(1); }
  23% { opacity: 0; transform: translateY(-4px) scale(.96); }
  23.1%, 91% { opacity: 0; }
  96%, 100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes layered-wing-one {
  0%, 25% { opacity: 1; }
  31%, 100% { opacity: 0; }
}

@keyframes layered-wing-two {
  0%, 29% { opacity: 0; }
  34%, 61% { opacity: 1; }
  67%, 100% { opacity: 0; }
}

@keyframes layered-wing-three {
  0%, 64% { opacity: 0; }
  69%, 92% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes layered-footer-wing-up {
  0%, 32% { opacity: 1; transform: translate(-50%,-50%) translateY(-1px); }
  50%, 82% { opacity: 0; transform: translate(-50%,-50%) translateY(1px); }
  100% { opacity: 1; transform: translate(-50%,-50%) translateY(-1px); }
}

@keyframes layered-footer-wing-down {
  0%, 32% { opacity: 0; transform: translate(-50%,-51%) scale(.94) translateY(-1px); }
  50%, 82% { opacity: 1; transform: translate(-50%,-51%) scale(.94) translateY(1px); }
  100% { opacity: 0; transform: translate(-50%,-51%) scale(.94) translateY(-1px); }
}

@keyframes layered-bird-main {
  0% { opacity: 0; transform: translate3d(0,0,0) scale(.82) rotate(5deg); }
  7% { opacity: .96; }
  25% { opacity: .96; transform: translate3d(var(--main-bird-x1),var(--main-bird-y1),0) scale(.91) rotate(9deg); }
  55% { opacity: .90; transform: translate3d(var(--main-bird-x2),var(--main-bird-y2),0) scale(.84) rotate(2deg); }
  81% { opacity: .70; transform: translate3d(var(--main-bird-x3),var(--main-bird-y3),0) scale(.74) rotate(-5deg); }
  100% { opacity: 0; transform: translate3d(var(--main-bird-x4),var(--main-bird-y4),0) scale(.62) rotate(-8deg); }
}

@keyframes layered-bird-mid {
  0%, 5% { opacity: 0; transform: translate3d(0,0,0) scale(.78) rotate(-2deg); }
  9% { opacity: .98; }
  27% { opacity: .96; transform: translate3d(-12vw,2vh,0) scale(.84) rotate(2deg); }
  45% { opacity: .86; transform: translate3d(-26vw,-1vh,0) scale(.77) rotate(-2deg); }
  58% { opacity: 0; transform: translate3d(-42vw,3vh,0) scale(.68) rotate(3deg); }
  100% { opacity: 0; transform: translate3d(-42vw,3vh,0) scale(.68); }
}

@keyframes layered-bird-far {
  0%, 12% { opacity: 0; transform: translate3d(0,0,0) scale(.66) rotate(2deg); }
  17% { opacity: .94; }
  34% { opacity: .90; transform: translate3d(11vw,-1.5vh,0) scale(.72) rotate(-2deg); }
  49% { opacity: .72; transform: translate3d(23vw,1vh,0) scale(.64) rotate(2deg); }
  57% { opacity: 0; transform: translate3d(32vw,-1vh,0) scale(.56); }
  100% { opacity: 0; transform: translate3d(32vw,-1vh,0) scale(.56); }
}

@keyframes layered-bird-mid-right {
  0%, 5% { opacity: 0; transform: translate3d(0,0,0) scale(.76) rotate(2deg); }
  9% { opacity: .96; }
  27% { opacity: .94; transform: translate3d(13vw,-2vh,0) scale(.82) rotate(-2deg); }
  45% { opacity: .84; transform: translate3d(28vw,1vh,0) scale(.75) rotate(2deg); }
  58% { opacity: 0; transform: translate3d(45vw,-2vh,0) scale(.66) rotate(-3deg); }
  100% { opacity: 0; transform: translate3d(45vw,-2vh,0) scale(.66); }
}

@keyframes layered-bird-far-left {
  0%, 12% { opacity: 0; transform: translate3d(0,0,0) scale(.64) rotate(-2deg); }
  17% { opacity: .92; }
  34% { opacity: .88; transform: translate3d(-12vw,1.5vh,0) scale(.70) rotate(2deg); }
  49% { opacity: .70; transform: translate3d(-24vw,-1vh,0) scale(.62) rotate(-2deg); }
  57% { opacity: 0; transform: translate3d(-34vw,1vh,0) scale(.54); }
  100% { opacity: 0; transform: translate3d(-34vw,1vh,0) scale(.54); }
}

@keyframes layered-leaves-left {
  from { transform: translate3d(-5px,3px,0) rotate(-1.4deg); }
  to { transform: translate3d(6px,-3px,0) rotate(1.6deg); }
}

@keyframes layered-leaves-right {
  from { transform: translate3d(5px,-2px,0) rotate(1.2deg); }
  to { transform: translate3d(-6px,4px,0) rotate(-1.5deg); }
}

@keyframes layered-bird-main-mobile {
  0% { opacity: 0; transform: translate3d(0,0,0) scale(.72) rotate(4deg); }
  9% { opacity: .92; }
  54% { opacity: .84; transform: translate3d(var(--main-bird-x2),var(--main-bird-y2),0) scale(.70) rotate(3deg); }
  100% { opacity: 0; transform: translate3d(var(--main-bird-x4),var(--main-bird-y4),0) scale(.56) rotate(-5deg); }
}

@media (max-width: 980px) and (min-width: 701px) {
  #morinouguisu-home .hero--layered .hero-forest-layout {
    grid-template-columns: minmax(0, 48%) minmax(0, 52%);
    padding-right: 28px;
    padding-left: 28px;
  }

  #morinouguisu-home .hero-layer--hut {
    right: 4%;
    width: min(43vw,430px);
  }

  #morinouguisu-home .hero-layer--hut-ground {
    right: 0;
    width: min(56vw,590px);
  }

  #morinouguisu-home .hero-bird-depth--rest,
  #morinouguisu-home .hero-bird-depth--main {
    right: 23%;
  }
}

@media (max-width: 700px) {
  #morinouguisu-home .hero.hero--layered {
    min-height: 100svh;
    background: #e9edc5;
  }

  #morinouguisu-home .hero--layered::before {
    background:
      linear-gradient(180deg, rgba(255,252,241,.92) 0%, rgba(255,252,241,.76) 37%, rgba(255,252,241,.20) 57%, transparent 72%),
      radial-gradient(ellipse 90% 50% at 35% 28%, rgba(255,253,244,.75), transparent 70%);
  }

  #morinouguisu-home .hero--layered::after {
    background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(43,85,25,.10));
  }

  #morinouguisu-home .hero-layer--far {
    inset: -1.5%;
    transform: none;
  }

  #morinouguisu-home .hero-layer--far img {
    object-position: 62% center;
  }

  #morinouguisu-home .hero-layer--mid {
    inset: -2%;
    opacity: .80;
    transform: none;
    -webkit-mask-image: radial-gradient(ellipse 86% 63% at 54% 68%, transparent 0 38%, rgba(0,0,0,.25) 54%, #000 78%);
    mask-image: radial-gradient(ellipse 86% 63% at 54% 68%, transparent 0 38%, rgba(0,0,0,.25) 54%, #000 78%);
  }

  #morinouguisu-home .hero-layer--mid img {
    object-position: 52% center;
    animation-duration: 18s;
  }

  #morinouguisu-home .hero-layer--hut {
    right: -7%;
    bottom: 8.5%;
    width: min(79vw,345px);
    transform: none;
  }

  #morinouguisu-home .hero-layer--hut-ground {
    right: -11%;
    bottom: 4.6%;
    width: min(116vw,500px);
    transform: none;
  }

  #morinouguisu-home .hero--layered .hero-forest-layout {
    display: block;
    min-height: 100svh;
    padding: 94px 20px 350px;
    background: none;
  }

  #morinouguisu-home .hero--layered .hero-forest-copy {
    max-width: 390px;
    margin: 0 auto;
    transform: none;
  }

  #morinouguisu-home .hero--layered .hero-forest-kicker {
    font-size: 13px;
  }

  #morinouguisu-home .hero--layered h1 {
    font-size: clamp(30px,8.2vw,35px);
    text-align: center;
  }

  #morinouguisu-home .hero--layered .hero-forest-lead {
    margin-top: 17px;
    font-size: 16px;
    line-height: 1.82;
  }

  #morinouguisu-home .hero--layered .hero-forest-lead br {
    display: none;
  }

  #morinouguisu-home .hero--layered .hero-forest-cta {
    display: none;
  }

  #morinouguisu-home .hero--layered .hero-forest-cta .btn {
    width: 100%;
    min-height: 54px;
    justify-content: center;
  }

  #morinouguisu-home .hero--layered .hero-ambient-layer,
  #morinouguisu-home .hero--layered .hero-birds-layer {
    transform: none;
  }

  #morinouguisu-home .hero-bird-depth--rest,
  #morinouguisu-home .hero-bird-depth--main {
    right: 21%;
    bottom: 29%;
  }

  #morinouguisu-home .hero-bird-depth--rest {
    width: clamp(54px,15vw,66px);
  }

  #morinouguisu-home .hero-bird-depth--main {
    width: clamp(58px,17vw,74px);
  }

  #morinouguisu-home .hero-birds-layer.is-main-flying .hero-bird-flight--main {
    animation-name: layered-bird-main-mobile;
  }

  #morinouguisu-home .hero-bird-depth--mid {
    display: none;
  }

  #morinouguisu-home .hero-bird-depth--far {
    width: 22px;
  }

  #morinouguisu-home .hero-bird-depth--far-one {
    top: 61%;
    left: 54%;
  }

  #morinouguisu-home .hero-bird-depth--far-two {
    top: 67%;
    left: 16%;
  }

  #morinouguisu-home .hero-bird-depth--far-three {
    display: none;
  }

  #morinouguisu-home .hero-bird-depth--far-one .hero-bird-flight--far {
    animation-duration: 24s;
    animation-delay: 7s;
  }

  #morinouguisu-home .hero--layered .hero-voice-lines path:not(.hero-voice-mobile),
  #morinouguisu-home .hero--layered .hero-town-lights circle:nth-child(n+4) {
    display: none;
  }

  #morinouguisu-home .hero--layered .hero-voice-lines .hero-voice-mobile {
    --voice-opacity: .27;
    display: block;
    stroke-width: 2;
    animation-duration: 1.3s;
    animation-delay: 1.95s;
  }

  #morinouguisu-home .hero--layered .hero-foreground--left {
    bottom: -11%;
    left: -23%;
    width: 56vw;
    min-width: 230px;
    opacity: .56;
    transform: none;
  }

  #morinouguisu-home .hero--layered .hero-foreground--right {
    display: none;
  }

  #morinouguisu-home .hero--layered .hero-scroll-indicator {
    bottom: 23px;
  }

  #morinouguisu-home .hero-about-guide {
    right: 21%;
    bottom: 29%;
    left: auto;
    grid-template-columns: auto clamp(54px,15vw,66px);
    width: auto;
    transform: none;
  }

  #morinouguisu-home .hero-about-guide__bubble {
    margin-bottom: 30px;
    padding: 10px 13px;
    font-size: 13px;
  }

  #morinouguisu-home .hero-about-guide__action {
    top: -7px;
    left: 7px;
    font-size: 15px;
  }

  #morinouguisu-home .hero-about-guide__action-pc { display: none; }
  #morinouguisu-home .hero-about-guide__action-sp { display: inline; }

  #morinouguisu-home .hero-about-guide__bird { display: none; }

  #morinouguisu-home .hero--layered .hero-forest-transition {
    height: 72px;
  }
}

@media (max-width: 390px) {
  #morinouguisu-home .forest-loader {
    padding: 20px;
  }

  #morinouguisu-home .forest-loader__logo {
    width: 124px;
  }

  #morinouguisu-home .forest-loader__bird {
    width: 88px;
  }

  #morinouguisu-home .hero--layered .hero-forest-layout {
    padding-bottom: 325px;
  }

  #morinouguisu-home .hero-layer--hut {
    bottom: 9%;
    width: 76vw;
  }

  #morinouguisu-home .hero-layer--hut-ground {
    bottom: 5%;
  }
}

@media (prefers-reduced-motion: reduce) {
  #morinouguisu-home .forest-loader {
    transition-duration: .15s;
  }

  #morinouguisu-home .forest-loader__logo,
  #morinouguisu-home .forest-loader__bird,
  #morinouguisu-home .forest-loader__bird-frame,
  #morinouguisu-home .forest-loader__dots i {
    animation: none;
  }

  #morinouguisu-home .forest-loader__bird-frame--up { opacity: 1; }
  #morinouguisu-home .forest-loader__bird-frame--down { opacity: 0; }

  #morinouguisu-home .hero-about-guide__bird {
    animation: none;
  }

  #morinouguisu-home.is-loader-complete .hero-about-guide.is-ready {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    animation: none;
  }

  #morinouguisu-home.is-loader-complete .hero-about-guide.is-ready .hero-about-guide__bubble,
  #morinouguisu-home.is-loader-complete .hero-about-guide.is-ready .hero-about-guide__action {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    animation: none;
  }

  #morinouguisu-home.is-loader-complete.is-about-guide-ready .hero-bird-depth--rest {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    animation: none;
  }

  #morinouguisu-home .hero--layered .hero-layer,
  #morinouguisu-home .hero--layered .hero-ambient-layer,
  #morinouguisu-home .hero--layered .hero-birds-layer,
  #morinouguisu-home .hero--layered .hero-foreground,
  #morinouguisu-home .hero--layered .hero-forest-copy {
    transform: none;
  }

  #morinouguisu-home .hero--layered .hero-layer--far {
    opacity: 1;
    animation: none;
  }

  #morinouguisu-home .hero--layered .hero-layer--mid img,
  #morinouguisu-home .hero--layered .hero-forest-lightwash,
  #morinouguisu-home .hero--layered .hero-foreground-art,
  #morinouguisu-home .hero--layered .hero-bird-rest,
  #morinouguisu-home .hero--layered .hero-bird-flight,
  #morinouguisu-home .hero--layered .hero-bird-frame {
    animation: none;
  }

  #morinouguisu-home .hero--layered .hero-bird-rest {
    opacity: 1;
  }

  #morinouguisu-home .hero--layered .hero-bird-depth--main,
  #morinouguisu-home .hero--layered .hero-bird-depth--mid,
  #morinouguisu-home .hero--layered .hero-bird-depth--far {
    display: none;
  }

  #morinouguisu-home .hero--layered .hero-voice-lines path {
    stroke-dashoffset: 0;
    opacity: .08;
    animation: none;
  }

  #morinouguisu-home .hero--layered .hero-town-lights circle {
    opacity: .82;
    animation: none;
  }
}
