      :root {
        color-scheme: light;
        --snow: #f7f7f3;
        --paper: #ffffff;
        --ink: #111820;
        --ink-soft: #3a4650;
        --muted: #6d7680;
        --line: rgba(17, 24, 32, 0.14);
        --line-strong: rgba(17, 24, 32, 0.28);
        --navy: #10283a;
        --blue: #1d6f93;
        --ice: #dcecf2;
        --red: #b94734;
        --amber: #d99b31;
        --green: #4b7f61;
        --shadow: 0 24px 70px rgba(16, 40, 58, 0.16);
      }

      * {
        box-sizing: border-box;
      }

      html {
        min-height: 100%;
        scroll-behavior: smooth;
        background: var(--snow);
      }

      body {
        min-height: 100%;
        margin: 0;
        color: var(--ink);
        background: var(--snow);
        font-family:
          "Helvetica Neue",
          Arial,
          "Hiragino Kaku Gothic ProN",
          "Yu Gothic",
          Meiryo,
          sans-serif;
        letter-spacing: 0;
      }

      img {
        display: block;
        max-width: 100%;
      }

      a {
        color: inherit;
        text-decoration: none;
      }

      button {
        font: inherit;
        letter-spacing: 0;
      }

      .skip-link {
        position: fixed;
        z-index: 100;
        top: 12px;
        left: 12px;
        padding: 10px 14px;
        transform: translateY(-150%);
        border: 1px solid var(--ink);
        background: var(--paper);
        color: var(--ink);
      }

      .skip-link:focus {
        transform: translateY(0);
      }

      .site-header {
        position: fixed;
        z-index: 60;
        top: 0;
        left: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-height: 74px;
        padding: 0 44px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.24);
        color: #fff;
        transition:
          background 260ms ease,
          color 260ms ease,
          border-color 260ms ease,
          box-shadow 260ms ease;
      }

      .site-header.is-scrolled,
      .site-header.menu-active {
        border-color: var(--line);
        background: rgba(247, 247, 243, 0.94);
        color: var(--ink);
        box-shadow: 0 12px 38px rgba(17, 24, 32, 0.08);
        backdrop-filter: blur(16px);
      }

      .brand {
        display: inline-flex;
        align-items: center;
        min-width: 220px;
      }

      .brand-logo {
        width: clamp(188px, 17vw, 252px);
        height: 58px;
        object-fit: contain;
        object-position: left center;
      }

      .desktop-nav {
        display: flex;
        align-items: center;
        gap: 26px;
        color: currentColor;
        font-size: 13px;
        font-weight: 800;
      }

      .desktop-nav a {
        position: relative;
        padding: 28px 0;
      }

      .desktop-nav a::after {
        position: absolute;
        right: 0;
        bottom: 19px;
        left: 0;
        height: 2px;
        transform: scaleX(0);
        transform-origin: right;
        background: currentColor;
        content: "";
        transition: transform 220ms ease;
      }

      .desktop-nav a:hover::after,
      .desktop-nav a:focus-visible::after {
        transform: scaleX(1);
        transform-origin: left;
      }

      .header-actions {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 12px;
        min-width: 212px;
      }

      .language-pill {
        display: inline-flex;
        overflow: hidden;
        border: 1px solid currentColor;
      }

      .language-pill a {
        display: grid;
        min-width: 38px;
        height: 38px;
        place-items: center;
        border-right: 1px solid currentColor;
        font-size: 12px;
        font-weight: 800;
      }

      .language-pill a:last-child {
        border-right: 0;
      }

      .language-pill a.is-active {
        background: var(--ink);
        color: #fff;
      }

      .button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 0 18px;
        border: 1px solid var(--ink);
        background: var(--paper);
        color: var(--ink);
        font-size: 13px;
        font-weight: 900;
        text-align: center;
        transition:
          transform 180ms ease,
          background 180ms ease,
          color 180ms ease,
          border-color 180ms ease;
      }

      .button:hover,
      .button:focus-visible {
        transform: translateY(-2px);
      }

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

      .button-dark {
        border-color: var(--ink);
        background: var(--ink);
        color: #fff;
      }

      .button-light {
        border-color: rgba(255, 255, 255, 0.82);
        background: rgba(255, 255, 255, 0.9);
        color: var(--ink);
      }

      .header-actions .button-light {
        border-color: #d43324;
        background: #d43324;
        color: #fff;
        box-shadow: 0 12px 28px rgba(180, 44, 29, 0.32);
      }

      .header-actions .button-light:hover,
      .header-actions .button-light:focus-visible {
        border-color: #f0b33a;
        background: #f0b33a;
        color: #101820;
        box-shadow: 0 16px 34px rgba(217, 155, 49, 0.34);
      }

      .button-ghost {
        border-color: currentColor;
        background: transparent;
        color: currentColor;
      }

      .menu-toggle {
        display: none;
        width: 46px;
        height: 46px;
        border: 1px solid currentColor;
        background: transparent;
        color: currentColor;
        cursor: pointer;
      }

      .menu-toggle span {
        display: block;
        width: 20px;
        height: 2px;
        margin: 5px auto;
        background: currentColor;
        transition:
          transform 220ms ease,
          opacity 220ms ease;
      }

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

      .menu-open .menu-toggle span:nth-child(2) {
        opacity: 0;
      }

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

      .mobile-panel {
        position: fixed;
        z-index: 50;
        inset: 74px 0 auto 0;
        display: none;
        max-height: calc(100svh - 74px);
        overflow-y: auto;
        padding: 24px;
        border-bottom: 1px solid var(--line);
        background: rgba(247, 247, 243, 0.98);
        color: var(--ink);
        box-shadow: var(--shadow);
        overscroll-behavior: contain;
      }

      .mobile-panel.is-open {
        display: block;
      }

      .mobile-panel nav {
        display: grid;
        gap: 2px;
      }

      .mobile-language {
        margin-bottom: 18px;
      }

      .mobile-panel a {
        padding: 15px 0;
        border-bottom: 1px solid var(--line);
        font-weight: 800;
      }

      .mobile-language a {
        min-width: 48px;
        height: 42px;
        padding: 0;
        border-bottom: 0;
      }

      .hero {
        position: relative;
        display: grid;
        min-height: 92svh;
        overflow: hidden;
        color: #fff;
        isolation: isolate;
      }

      .hero-media {
        position: absolute;
        inset: 0;
        z-index: -2;
        background: var(--navy);
      }

      .hero-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 57% center;
        opacity: 0.98;
        transform: scale(1.03);
        transition:
          opacity 760ms ease,
          transform 6400ms ease;
      }

      .hero-media img.is-changing {
        opacity: 0;
        transform: scale(1.08);
      }

      .hero::before {
        position: absolute;
        inset: 0;
        z-index: -1;
        background:
          linear-gradient(90deg, rgba(9, 18, 26, 0.86) 0%, rgba(9, 18, 26, 0.5) 47%, rgba(9, 18, 26, 0.14) 100%),
          linear-gradient(0deg, rgba(9, 18, 26, 0.68) 0%, rgba(9, 18, 26, 0.02) 42%);
        content: "";
      }

      #snow-canvas {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        opacity: 0.62;
        pointer-events: none;
      }

      .hero-inner {
        display: grid;
        width: min(1180px, calc(100% - 48px));
        margin: 0 auto;
        padding: 140px 0 76px;
        grid-template-columns: minmax(0, 700px);
        align-content: end;
      }

      .eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        margin: 0 0 18px;
        color: rgba(255, 255, 255, 0.82);
        font-size: 13px;
        font-weight: 900;
      }

      .eyebrow::before {
        display: inline-block;
        width: 34px;
        height: 2px;
        background: var(--amber);
        content: "";
      }

      .hero h1 {
        max-width: 780px;
        margin: 0;
        font-size: 64px;
        font-weight: 900;
        line-height: 1.02;
      }

      .hero-copy {
        max-width: 680px;
      }

      .hero-copy p:not(.eyebrow) {
        max-width: 600px;
        margin: 24px 0 0;
        color: rgba(255, 255, 255, 0.84);
        font-size: 18px;
        line-height: 1.8;
      }

      .hero-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 32px;
      }

      .hero-meta {
        display: grid;
        max-width: 940px;
        margin-top: 54px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        border-top: 1px solid rgba(255, 255, 255, 0.34);
        border-bottom: 1px solid rgba(255, 255, 255, 0.28);
      }

      .hero-meta li {
        display: grid;
        min-height: 104px;
        padding: 18px 22px;
        align-content: center;
        border-right: 1px solid rgba(255, 255, 255, 0.24);
        list-style: none;
      }

      .hero-meta li:last-child {
        border-right: 0;
      }

      .hero-meta strong {
        display: block;
        font-size: clamp(34px, 3vw, 46px);
        font-weight: 900;
        line-height: 1;
      }

      .hero-meta span {
        display: block;
        margin-top: 6px;
        color: rgba(255, 255, 255, 0.72);
        font-size: 12px;
        font-weight: 800;
        line-height: 1.5;
      }

      .hero-meta strong [data-count] {
        display: inline-block;
        margin: 0 6px 0 0;
        color: #fff;
        font-size: 1.2em;
        font-weight: 900;
        line-height: 0.9;
        vertical-align: baseline;
      }

      .slider-status {
        position: absolute;
        right: 44px;
        bottom: 42px;
        display: flex;
        align-items: center;
        gap: 12px;
      }

      .slide-label {
        min-width: 180px;
        color: rgba(255, 255, 255, 0.82);
        font-size: 12px;
        font-weight: 900;
        text-align: right;
      }

      .slide-dots {
        display: inline-flex;
        gap: 8px;
      }

      .slide-dot {
        width: 34px;
        height: 3px;
        padding: 0;
        border: 0;
        background: rgba(255, 255, 255, 0.38);
        cursor: pointer;
      }

      .slide-dot.is-active {
        background: #fff;
      }

      .quick-book {
        position: relative;
        z-index: 5;
        width: min(1180px, calc(100% - 48px));
        margin: -32px auto 0;
        border: 1px solid var(--line);
        background: var(--paper);
        box-shadow: var(--shadow);
      }

      .quick-book-grid {
        display: grid;
        grid-template-columns: 1.1fr 0.82fr 0.82fr auto;
        align-items: stretch;
      }

      .quick-item {
        display: grid;
        min-height: 102px;
        padding: 22px 24px;
        align-content: center;
        border-right: 1px solid var(--line);
      }

      .quick-item:last-child {
        border-right: 0;
      }

      .quick-item small {
        color: var(--muted);
        font-size: 11px;
        font-weight: 900;
      }

      .quick-item strong {
        margin-top: 6px;
        font-size: 18px;
        font-weight: 900;
      }

      .quick-item span {
        margin-top: 4px;
        color: var(--muted);
        font-size: 13px;
        line-height: 1.5;
      }

      .quick-action {
        display: grid;
        min-width: 172px;
        padding: 16px;
        place-items: center;
      }

      .section {
        padding: 110px 0;
      }

      .section-tight {
        padding-top: 82px;
      }

      .container {
        width: min(1180px, calc(100% - 48px));
        margin: 0 auto;
      }

      .section-heading {
        display: grid;
        gap: 18px;
        max-width: 780px;
        margin-bottom: 44px;
      }

      .label {
        color: var(--blue);
        font-size: clamp(14px, 1.25vw, 18px);
        font-weight: 900;
        letter-spacing: 0;
      }

      .section-heading h2 {
        margin: 0;
        font-size: 48px;
        font-weight: 900;
        line-height: 1.16;
      }

      .section-heading p {
        margin: 0;
        color: var(--muted);
        font-size: 17px;
        line-height: 1.9;
      }

      .service-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
      }

      .service-card {
        position: relative;
        display: grid;
        min-height: 430px;
        overflow: hidden;
        align-content: end;
        border: 1px solid var(--line);
        background: var(--ink);
        color: #fff;
      }

      .service-card img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 520ms ease;
      }

      .service-card:hover img {
        transform: scale(1.05);
      }

      .service-card::after {
        position: absolute;
        inset: 0;
        background: linear-gradient(0deg, rgba(8, 16, 22, 0.9) 0%, rgba(8, 16, 22, 0.48) 47%, rgba(8, 16, 22, 0.08) 100%);
        content: "";
      }

      .service-content {
        position: relative;
        z-index: 1;
        padding: 24px;
      }

      .service-content small {
        color: rgba(255, 255, 255, 0.74);
        font-size: 11px;
        font-weight: 900;
      }

      .service-content h3 {
        margin: 10px 0 10px;
        font-size: 24px;
        font-weight: 900;
      }

      .service-content p {
        margin: 0;
        color: rgba(255, 255, 255, 0.78);
        font-size: 14px;
        line-height: 1.7;
      }

      .split-feature {
        display: grid;
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
        gap: 44px;
        align-items: center;
      }

      .image-stack {
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
        gap: 14px;
        align-items: end;
      }

      .image-stack img {
        width: 100%;
        object-fit: cover;
        border: 1px solid var(--line);
      }

      .image-stack img:first-child {
        height: 440px;
      }

      .image-stack img:last-child {
        height: 560px;
      }

      .feature-copy h2 {
        margin: 0;
        font-size: 46px;
        font-weight: 900;
        line-height: 1.18;
      }

      .feature-copy p {
        margin: 22px 0 0;
        color: var(--muted);
        font-size: 17px;
        line-height: 1.9;
      }

      .feature-list {
        display: grid;
        gap: 12px;
        margin: 28px 0 0;
        padding: 0;
      }

      .feature-list li {
        display: grid;
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 14px;
        align-items: start;
        padding: 18px;
        border: 1px solid var(--line);
        background: var(--paper);
        list-style: none;
      }

      .feature-list b {
        display: grid;
        width: 46px;
        height: 46px;
        place-items: center;
        background: var(--ice);
        color: var(--blue);
        font-size: 12px;
        font-weight: 900;
      }

      .feature-list strong {
        display: block;
        font-size: 16px;
        font-weight: 900;
      }

      .feature-list span {
        display: block;
        margin-top: 4px;
        color: var(--muted);
        font-size: 13px;
        line-height: 1.6;
      }

      .process {
        background: var(--navy);
        color: #fff;
      }

      .process .section-heading p,
      .process .label {
        color: rgba(255, 255, 255, 0.72);
      }

      .process-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        border: 1px solid rgba(255, 255, 255, 0.2);
      }

      .process-step {
        min-height: 286px;
        padding: 28px;
        border-right: 1px solid rgba(255, 255, 255, 0.2);
      }

      .process-step:last-child {
        border-right: 0;
      }

      .process-step span {
        color: var(--amber);
        font-size: clamp(34px, 4.4vw, 58px);
        font-weight: 900;
        line-height: 1;
      }

      .process-step h3 {
        margin: 32px 0 12px;
        font-size: 22px;
        font-weight: 900;
      }

      .process-step p {
        margin: 0;
        color: rgba(255, 255, 255, 0.74);
        font-size: 14px;
        line-height: 1.8;
      }

      .profile {
        background: var(--paper);
      }

      .profile-grid {
        display: grid;
        grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
        gap: 46px;
        align-items: center;
      }

      .profile-photo {
        border: 1px solid var(--line);
        background: var(--snow);
      }

      .profile-photo img {
        width: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
      }

      .profile-copy h2 {
        margin: 0;
        font-size: 46px;
        font-weight: 900;
        line-height: 1.18;
      }

      .profile-copy p {
        margin: 22px 0 0;
        color: var(--muted);
        font-size: 16px;
        line-height: 1.9;
      }

      .signature {
        display: flex;
        align-items: center;
        gap: 14px;
        margin-top: 28px;
        padding-top: 24px;
        border-top: 1px solid var(--line);
        color: var(--ink);
        font-weight: 900;
      }

      .signature span {
        display: grid;
        width: 48px;
        height: 48px;
        place-items: center;
        border: 1px solid var(--ink);
        font-family: serif;
        font-size: 26px;
      }

      .location-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
      }

      .location-card {
        display: grid;
        overflow: hidden;
        border: 1px solid var(--line);
        background: var(--paper);
      }

      .location-card img {
        width: 100%;
        height: 310px;
        object-fit: cover;
      }

      .location-body {
        display: grid;
        gap: 18px;
        padding: 26px;
      }

      .location-body h3 {
        margin: 0;
        font-size: 27px;
        font-weight: 900;
      }

      .location-meta {
        display: grid;
        gap: 12px;
        margin: 0;
      }

      .location-meta div {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 12px;
        padding-bottom: 12px;
        border-bottom: 1px solid var(--line);
      }

      .location-meta dt {
        color: var(--muted);
        font-size: 12px;
        font-weight: 900;
      }

      .location-meta dd {
        margin: 0;
        color: var(--ink-soft);
        font-size: 14px;
        line-height: 1.6;
      }

      .faq {
        background: #eef3f5;
      }

      .faq-grid {
        display: grid;
        grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
        gap: 42px;
      }

      .faq-list {
        display: grid;
        gap: 10px;
      }

      details {
        border: 1px solid var(--line);
        background: var(--paper);
      }

      summary {
        display: flex;
        min-height: 72px;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        padding: 0 22px;
        cursor: pointer;
        font-weight: 900;
        list-style: none;
      }

      summary::-webkit-details-marker {
        display: none;
      }

      summary::after {
        content: "+";
        color: var(--blue);
        font-size: 24px;
        line-height: 1;
      }

      details[open] summary::after {
        content: "-";
      }

      details p {
        margin: 0;
        padding: 0 22px 22px;
        color: var(--muted);
        font-size: 14px;
        line-height: 1.8;
      }

      .cta {
        position: relative;
        overflow: hidden;
        background: var(--ink);
        color: #fff;
      }

      .cta img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: 0.28;
      }

      .cta::after {
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, rgba(17, 24, 32, 0.92), rgba(17, 24, 32, 0.62));
        content: "";
      }

      .cta-content {
        position: relative;
        z-index: 1;
        display: grid;
        min-height: 430px;
        max-width: 720px;
        align-content: center;
      }

      .cta-content h2 {
        margin: 0;
        font-size: 54px;
        font-weight: 900;
        line-height: 1.12;
      }

      .cta .label {
        color: #fff;
        font-size: clamp(26px, 3.4vw, 46px);
        line-height: 1.05;
      }

      .cta-content p {
        margin: 22px 0 0;
        color: rgba(255, 255, 255, 0.78);
        font-size: 17px;
        line-height: 1.8;
      }

      .cta-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 30px;
      }

      .site-footer {
        padding: 46px 0;
        background: #0a1118;
        color: rgba(255, 255, 255, 0.72);
      }

      .footer-grid {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
      }

      .footer-logo {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        color: #fff;
        font-weight: 900;
      }

      .footer-logo img {
        width: 42px;
        height: 42px;
        padding: 5px;
        background: #fff;
      }

      .footer-links {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 18px;
        font-size: 13px;
        font-weight: 800;
      }

      .floating-book {
        position: fixed;
        z-index: 55;
        right: 18px;
        bottom: 18px;
        display: none;
        box-shadow: 0 18px 50px rgba(17, 24, 32, 0.22);
      }

      [data-reveal] {
        opacity: 0;
        transform: translateY(24px);
        transition:
          opacity 700ms ease,
          transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
      }

      [data-reveal].is-visible {
        opacity: 1;
        transform: translateY(0);
      }

      .hero [data-reveal] {
        transition-delay: 180ms;
      }

      @media (max-width: 1080px) {
        .site-header {
          padding: 0 24px;
        }

        .desktop-nav,
        .header-actions .language-pill {
          display: none;
        }

        .header-actions {
          min-width: 0;
        }

        .menu-toggle {
          display: inline-block;
        }

        .hero h1 {
          font-size: 50px;
        }

        .service-grid,
        .process-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .process-step:nth-child(2) {
          border-right: 0;
        }

        .process-step:nth-child(-n + 2) {
          border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        }

        .split-feature,
        .profile-grid,
        .faq-grid {
          grid-template-columns: 1fr;
        }

        .quick-book-grid {
          grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        .quick-action {
          grid-column: 1 / -1;
          min-height: 84px;
          border-top: 1px solid var(--line);
        }
      }

      @media (max-width: 760px) {
        .site-header {
          min-height: 68px;
          padding: 0 16px;
        }

        .brand {
          min-width: 0;
        }

        .brand-logo {
          width: 178px;
          height: 46px;
        }

        .header-actions .button {
          display: none;
        }

        .mobile-panel {
          top: 68px;
        }

        .hero {
          min-height: 90svh;
        }

        .hero-inner,
        .container,
        .quick-book {
          width: min(100% - 32px, 1180px);
        }

        .hero-inner {
          padding: 118px 0 72px;
        }

        .hero h1 {
          font-size: 36px;
          line-height: 1.08;
        }

        .hero-copy p:not(.eyebrow) {
          font-size: 15px;
          line-height: 1.75;
        }

        .hero-actions {
          align-items: stretch;
          flex-direction: column;
        }

        .hero-meta {
          grid-template-columns: 1fr;
          margin-top: 36px;
        }

        .hero-meta li {
          min-height: 82px;
          border-right: 0;
          border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        }

        .hero-meta li:last-child {
          border-bottom: 0;
        }

        .slider-status {
          right: 16px;
          bottom: 18px;
        }

        .slide-label {
          display: none;
        }

        .quick-book {
          margin-top: -22px;
        }

        .quick-book-grid,
        .service-grid,
        .process-grid,
        .location-grid {
          grid-template-columns: 1fr;
        }

        .quick-item,
        .process-step,
        .process-step:nth-child(2) {
          border-right: 0;
        }

        .quick-item {
          min-height: 92px;
          border-bottom: 1px solid var(--line);
        }

        .quick-action {
          border-top: 0;
        }

        .section {
          padding: 78px 0;
        }

        .section-tight {
          padding-top: 62px;
        }

        .section-heading h2,
        .feature-copy h2,
        .profile-copy h2 {
          font-size: 34px;
          line-height: 1.2;
        }

        .section-heading p,
        .feature-copy p,
        .profile-copy p {
          font-size: 15px;
        }

        .service-card {
          min-height: 340px;
        }

        .image-stack {
          grid-template-columns: 1fr;
        }

        .image-stack img:first-child,
        .image-stack img:last-child {
          height: 340px;
        }

        .process-step {
          min-height: 220px;
          border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        }

        .process-step:last-child {
          border-bottom: 0;
        }

        .location-card img {
          height: 240px;
        }

        .location-meta div {
          grid-template-columns: 1fr;
        }

        .cta-content {
          min-height: 390px;
        }

        .cta-content h2 {
          font-size: 36px;
        }

        .footer-grid {
          align-items: flex-start;
          flex-direction: column;
        }

        .footer-links {
          justify-content: flex-start;
        }

        .floating-book {
          display: inline-flex;
        }
      }

      body.admin-bar .site-header {
        top: 32px;
      }

      body.admin-bar .mobile-panel {
        top: 106px;
      }

      .archive-hero {
        padding: 150px 0 76px;
        background:
          linear-gradient(90deg, rgba(16, 40, 58, 0.94), rgba(16, 40, 58, 0.68)),
          url("../img/ogp-image.jpg") center / cover;
        color: #fff;
      }

      .archive-hero h1 {
        max-width: 860px;
        margin: 0;
        font-size: 56px;
        font-weight: 900;
        line-height: 1.12;
      }

      .archive-hero p {
        max-width: 680px;
        margin: 18px 0 0;
        color: rgba(255, 255, 255, 0.78);
        font-size: 16px;
        line-height: 1.8;
      }

      .post-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
      }

      .post-card {
        display: grid;
        overflow: hidden;
        border: 1px solid var(--line);
        background: var(--paper);
        color: var(--ink);
        transition:
          transform 180ms ease,
          box-shadow 180ms ease;
      }

      .post-card:hover,
      .post-card:focus-visible {
        transform: translateY(-3px);
        box-shadow: var(--shadow);
      }

      .post-card-media {
        position: relative;
        overflow: hidden;
        aspect-ratio: 16 / 10;
        background: var(--ice);
      }

      .post-card-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 420ms ease;
      }

      .post-card:hover .post-card-media img,
      .post-card:focus-visible .post-card-media img {
        transform: scale(1.04);
      }

      .post-card-media .no-image {
        display: grid;
        width: 100%;
        height: 100%;
        place-items: center;
        color: var(--blue);
        font-size: 13px;
        font-weight: 900;
      }

      .post-card-body {
        display: grid;
        gap: 12px;
        padding: 22px;
      }

      .post-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        align-items: center;
        color: var(--muted);
        font-size: 12px;
        font-weight: 900;
      }

      .post-category {
        padding: 5px 8px;
        background: var(--ice);
        color: var(--blue);
      }

      .post-card h2,
      .post-card h3 {
        margin: 0;
        font-size: 22px;
        font-weight: 900;
        line-height: 1.35;
      }

      .post-card p {
        margin: 0;
        color: var(--muted);
        font-size: 14px;
        line-height: 1.7;
      }

      .empty-state {
        padding: 36px;
        border: 1px solid var(--line);
        background: var(--paper);
        color: var(--muted);
      }

      .pagination {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 42px;
      }

      .pagination .page-numbers {
        display: grid;
        min-width: 42px;
        height: 42px;
        place-items: center;
        border: 1px solid var(--line);
        background: var(--paper);
        color: var(--ink);
        font-size: 13px;
        font-weight: 900;
      }

      .pagination .current {
        border-color: var(--ink);
        background: var(--ink);
        color: #fff;
      }

      .single-layout {
        display: grid;
        max-width: 860px;
        margin: 0 auto;
      }

      .single-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 18px;
      }

      .single-title {
        margin: 0;
        font-size: 48px;
        font-weight: 900;
        line-height: 1.18;
      }

      .single-thumbnail {
        margin: 38px 0 0;
        border: 1px solid var(--line);
      }

      .single-thumbnail img {
        width: 100%;
        max-height: 540px;
        object-fit: cover;
      }

      .entry-content {
        margin-top: 42px;
        color: var(--ink-soft);
        font-size: 16px;
        line-height: 1.95;
      }

      .entry-content > *:first-child {
        margin-top: 0;
      }

      .entry-content h2,
      .entry-content h3,
      .entry-content h4 {
        margin: 2em 0 0.7em;
        color: var(--ink);
        font-weight: 900;
        line-height: 1.35;
      }

      .entry-content h2 {
        padding-bottom: 12px;
        border-bottom: 1px solid var(--line);
        font-size: 30px;
      }

      .entry-content h3 {
        font-size: 24px;
      }

      .entry-content p,
      .entry-content ul,
      .entry-content ol {
        margin: 1.15em 0;
      }

      .entry-content a {
        color: var(--blue);
        font-weight: 800;
        text-decoration: underline;
        text-underline-offset: 0.18em;
      }

      .entry-content img {
        height: auto;
        border: 1px solid var(--line);
      }

      .entry-content .yoshi-legal-i18n {
        display: grid;
        gap: 28px;
      }

      .entry-content .yoshi-legal-lang[hidden] {
        display: none !important;
      }

      .entry-content .yoshi-legal-lang {
        display: grid;
        gap: 8px;
      }

      .entry-content .yoshi-legal-lang ul {
        padding-left: 1.25em;
      }

      .back-link {
        margin-top: 44px;
      }

      @media screen and (max-width: 782px) {
        body.admin-bar .site-header {
          top: 46px;
        }

        body.admin-bar .mobile-panel {
          top: 114px;
        }
      }

      @media (max-width: 1080px) {
        .post-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }
      }

      @media (max-width: 760px) {
        .archive-hero {
          padding: 124px 0 58px;
        }

        .archive-hero h1,
        .single-title {
          font-size: 36px;
        }

        .post-grid {
          grid-template-columns: 1fr;
        }
      }

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

        *,
        *::before,
        *::after {
          animation-duration: 0.001ms !important;
          animation-iteration-count: 1 !important;
          scroll-behavior: auto !important;
          transition-duration: 0.001ms !important;
        }

        #snow-canvas {
          display: none;
        }
      }
