﻿:root {
  --lp-max-width: 1728px;
  --surface: #f1f2ef;
  --surface-soft: #f8f9f7;
  --ink: #2c302e;
  --muted: #656a66;
  --gold: #a57f40;
  --gold-ink: #826432;
  --gold-soft: #c9a971;
  --teal: #307278;
  --story-ink: #082d31;
  --ending-red: #F89BA6;
  --jp-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  --en-serif: "Cormorant Garamond", "Times New Roman", serif;
  --sans: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--surface);
  color: var(--ink);
  font-family: var(--jp-serif);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

body.menu-open {
  overflow: hidden;
}

body.modal-open {
  overflow: hidden;
}

html.teaser-video-active,
body.teaser-video-active {
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
}

body.teaser-video-active .menu-toggle,
body.teaser-video-active .mobile-drawer,
body.teaser-video-active .section-dots,
body.teaser-video-active .news-float {
  display: none !important;
  opacity: 0;
  pointer-events: none;
}

img,
svg {
  display: block;
  max-width: 100%;
}

button,
a {
  font: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

.lacasta-lp {
  min-width: 320px;
  overflow: hidden;
  background: var(--surface);
}

.section {
  position: relative;
  overflow: hidden;
}

.section-inner {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
}

.section-title {
  margin: 0;
  color: var(--gold);
  font-family: var(--en-serif);
  font-size: 60px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.06em;
  text-align: center;
}

.section-subtitle {
  margin: 8px 0 0;
  color: var(--gold-ink);
  font-family: var(--jp-serif);
  font-size: 14px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.22em;
  text-align: center;
}

.aroma .aroma-subtitle {
  font-size: 15px;
}

.lead,
.body-copy {
  margin: 0;
  color: var(--muted);
  font-family: var(--jp-serif);
  font-size: 20.5px;
  font-weight: 400;
  line-height: 2.35;
  letter-spacing: 0.1em;
  text-align: center;
}

.pc-only {
  display: block;
}

.sp-only {
  display: none;
}

.asset-switch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.teaser-film {
  height: 100vh;
  height: 100dvh;
  background: #0a1310;
  opacity: 1;
  transition: opacity 1200ms ease;
}

.teaser-film.is-fading {
  opacity: 0;
  pointer-events: none;
}

.teaser-film.is-skipped {
  display: none;
}

.teaser-film__media {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: min(100%, var(--lp-max-width));
  height: 100%;
  object-fit: cover;
  transform: translateX(-50%);
}

.teaser-film__media img,
.teaser-film__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1727px) {
  .teaser-film__media {
    object-fit: contain;
  }
}

.teaser-film__scrim {
  position: absolute;
  inset: 0;
  background: rgba(6, 14, 11, 0.68);
}

.teaser-film__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
}

.play-button {
  display: grid;
  width: 96px;
  height: 96px;
  place-items: center;
  border: 1px solid rgba(239, 227, 200, 0.52);
  border-radius: 50%;
  background: rgba(10, 19, 16, 0.18);
}

.play-button img {
  width: 22px;
  height: 26px;
}

.teaser-film__heading {
  margin: 30px 0 0;
  color: #efe3c8;
  font-family: var(--en-serif);
  font-size: 34px;
  font-weight: 300;
  line-height: 1.2;
}

.teaser-film__note {
  margin: 18px 0 0;
  color: #b8bfb8;
  font-size: 14px;
  line-height: 1.8;
}

.teaser-film__placeholder {
  margin: 10px 0 0;
  color: #949e94;
  font-size: 12px;
  line-height: 1.8;
}

.teaser-film__controls {
  position: absolute;
  z-index: 3;
  right: max(56px, calc(50% - 808px));
  bottom: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.teaser-film__skip {
  min-width: 104px;
  min-height: 36px;
  border: 1px solid rgba(239, 227, 200, 0.6);
  border-radius: 999px;
  background: transparent;
  color: #efe3c8;
  cursor: pointer;
  font-family: var(--en-serif);
  font-size: 12px;
  font-weight: 600;
}

.teaser-film__sound {
  display: inline-flex;
  min-width: 104px;
  min-height: 24px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(239, 227, 200, 0.8);
  cursor: pointer;
  font-family: var(--en-serif);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
}

.teaser-film__sound-icon {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
}

.teaser-film__sound-icon img {
  width: 100%;
  height: 100%;
}

.teaser-film__sound[aria-pressed="false"] .teaser-film__sound-icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22px;
  height: 1px;
  background: rgba(239, 227, 200, 0.8);
  content: "";
  transform: translate(-50%, -50%) rotate(-45deg);
}

.teaser-film__sound:hover,
.teaser-film__sound:focus-visible {
  color: #efe3c8;
}

.teaser-film__sound:focus-visible,
.teaser-film__skip:focus-visible {
  outline: 2px solid rgba(239, 227, 200, 0.8);
  outline-offset: 3px;
}

.hero {
  height: 100vh;
  height: 100dvh;
  --hero-frame-left: calc(50% - 864px);
  --hero-side-gutter: max(54px, calc(var(--hero-frame-left) + 54px));
  background: #0a1310;
  isolation: isolate;
}

.hero__media {
  position: absolute;
  top: -40px;
  bottom: -40px;
  left: 50%;
  width: min(calc(100% + 192px), var(--lp-max-width));
  overflow: hidden;
  transform: translateX(-50%);
}

.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center center;
  will-change: transform;
}

.hero__title-art {
  position: absolute;
  top: 45.6%;
  left: max(24px, calc(var(--hero-frame-left) + 79px));
  width: 436px;
}

.hero__brand {
  position: absolute;
  top: 84%;
  left: calc(var(--hero-frame-left) + 762px);
  width: 201px;
  height: auto;
}

.hero__sigil {
  position: absolute;
  top: 3%;
  left: var(--hero-side-gutter);
  width: 124px;
  height: 124px;
  object-fit: contain;
}

.hero__badge {
  position: absolute;
  top: 43.2%;
  right: max(24px, calc(50% - 760px));
  left: auto;
  width: 354px;
  height: auto;
}

.hero__logo {
  position: absolute;
  top: 0;
  right: var(--hero-side-gutter);
  left: auto;
  width: 232px;
  height: 232px;
  object-fit: contain;
}

.hero__sp-copy {
  display: none;
}

.hero[data-hero-animation] .hero__media img {
  transform: scale(1.075);
}

.hero[data-hero-animation].is-visible .hero__media img {
  animation: hero-background-zoom 5200ms cubic-bezier(0.19, 1, 0.22, 1) 120ms both;
}

@keyframes hero-background-zoom {
  0% {
    transform: scale(1.075);
  }

  100% {
    transform: scale(1);
  }
}

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 26px;
  width: 1px;
  height: 54px;
  background: linear-gradient(to bottom, rgba(43, 104, 106, 0.1), rgba(43, 104, 106, 0.7));
}

.menu-toggle {
  position: fixed;
  z-index: 100;
  top: 20px;
  right: 20px;
  display: none;
  width: 29px;
  height: 29px;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.menu-toggle span,
.menu-toggle::before,
.menu-toggle::after {
  position: absolute;
  left: 0;
  display: block;
  width: 29px;
  height: 2.32px;
  background: var(--gold-soft);
  content: "";
  transition: background 240ms ease, height 240ms ease, left 240ms ease, opacity 240ms ease, top 240ms ease, transform 240ms ease, width 240ms ease;
}

.menu-toggle span {
  top: 13.34px;
}

.menu-toggle::before {
  top: 0;
}

.menu-toggle::after {
  top: 26.68px;
}

.menu-open .menu-toggle {
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(233, 200, 138, 0.38);
  border-radius: 50%;
  background: rgba(10, 19, 16, 0.52);
}

.menu-open .menu-toggle span {
  opacity: 0;
}

.menu-open .menu-toggle::before {
  top: 21px;
  left: 13px;
  width: 17px;
  height: 1px;
  background: #efe3c8;
  transform: rotate(45deg);
}

.menu-open .menu-toggle::after {
  top: 21px;
  left: 13px;
  width: 17px;
  height: 1px;
  background: #efe3c8;
  transform: rotate(-45deg);
}

.mobile-drawer {
  position: fixed;
  z-index: 90;
  inset: 0;
  display: none;
  padding: 0;
  background: #0a1310;
  color: #efe3c8;
  opacity: 0;
  pointer-events: none;
  transition: opacity 240ms ease;
}

.menu-open .mobile-drawer {
  opacity: 1;
  pointer-events: auto;
}

.drawer-menu {
  position: absolute;
  top: 130px;
  left: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}

.drawer-menu li {
  height: 70px;
}

.drawer-menu a {
  display: grid;
  height: 100%;
  align-content: start;
  justify-items: center;
  gap: 3px;
  padding: 0;
  color: inherit;
  text-decoration: none;
}

.drawer-menu .en {
  display: block;
  color: #efe3c8;
  font-family: var(--en-serif);
  font-size: 25px;
  font-weight: 300;
  line-height: normal;
}

.drawer-menu .jp {
  display: block;
  color: #e2e4dc;
  font-family: var(--jp-serif);
  font-size: 11.5px;
  font-weight: 400;
  line-height: normal;
}

.section-dots {
  position: fixed;
  top: 50%;
  right: max(18px, calc((100vw - var(--lp-max-width)) / 2 + 28px));
  z-index: 70;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
  transform: translateY(-50%);
  pointer-events: none;
}

.section-dots__link {
  position: relative;
  display: flex;
  width: 188px;
  min-height: 18px;
  align-items: center;
  justify-content: flex-end;
  color: var(--gold-ink);
  outline: none;
  pointer-events: auto;
}

.section-dots__dot {
  width: 6px;
  height: 6px;
  border: 1px solid rgba(130, 100, 50, 0.72);
  border-radius: 50%;
  background: rgba(241, 242, 239, 0.42);
  box-shadow: 0 0 0 1px rgba(241, 242, 239, 0.38);
  transition: background 280ms ease, border-color 280ms ease, box-shadow 280ms ease, transform 280ms ease;
}

.section-dots__label {
  position: absolute;
  top: 50%;
  right: 22px;
  color: var(--gold-ink);
  font-family: var(--en-serif);
  font-size: 16px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.14em;
  opacity: 0;
  text-align: right;
  text-shadow: 0 1px 10px rgba(241, 242, 239, 0.86), 0 0 8px rgba(10, 19, 16, 0.16);
  transform: translate(8px, -50%);
  transition: opacity 280ms ease, transform 280ms ease;
  white-space: nowrap;
}

.section-dots__link:hover .section-dots__label,
.section-dots__link:focus-visible .section-dots__label,
.section-dots__link.is-active .section-dots__label {
  opacity: 1;
  transform: translate(0, -50%);
}

.section-dots__link:hover .section-dots__dot,
.section-dots__link:focus-visible .section-dots__dot {
  border-color: var(--gold);
  background: rgba(165, 127, 64, 0.34);
  transform: scale(1.18);
}

.section-dots__link.is-active .section-dots__dot {
  border-color: var(--gold);
  background: var(--gold);
  box-shadow: 0 0 0 5px rgba(201, 169, 113, 0.2), 0 1px 10px rgba(10, 19, 16, 0.18);
  transform: scale(1.28);
}

.menu-open .section-dots {
  opacity: 0;
  pointer-events: none;
}

.modal-open .menu-toggle,
.modal-open .mobile-drawer,
.modal-open .section-dots {
  opacity: 0;
  pointer-events: none;
}

.story {
  min-height: 1888px;
  padding: 136px 0 120px;
  background: linear-gradient(180deg, #b8d7d5 0%, #a3cdcc 25%, #87bfbe 50%, #66aeb0 75%, #4a9fa3 100%);
}

.story__bloom {
  position: absolute;
  top: -279px;
  left: 50%;
  width: 2696px;
  max-width: none;
  transform: translateX(-50%);
  opacity: 0.9;
}

.story__content {
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
  text-align: center;
}

.story__eyebrow {
  margin: 0;
  color: #6b4a1c;
  font-family: var(--en-serif);
  font-size: 22px;
  font-weight: 300;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.story__artist {
  margin: 4px 0 0;
  color: #8a6024;
  font-family: var(--en-serif);
  font-size: 74px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.04em;
}

.story__credit {
  margin: 18px auto 0;
  color: var(--story-ink);
  font-size: 20.5px;
  line-height: 2.35;
  letter-spacing: 0.1em;
}

.story__lead {
  margin: 28px 0 0;
  color: #6b4a1c;
  font-size: 30px;
  line-height: 1.9;
  letter-spacing: 0.13em;
}

.story__spell {
  margin: 46px 0 0;
  color: var(--gold-ink);
  font-size: 26px;
  font-weight: 700;
  line-height: 2.2;
  letter-spacing: 0.1em;
}

.story__spell-sub {
  margin: 0;
  color: var(--story-ink);
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.08em;
}

.story__book {
  width: 353px;
  margin: 44px auto 96px;
  filter: drop-shadow(0 26px 40px rgba(12, 60, 62, 0.28));
}

.story__intro,
.story__body {
  width: min(992px, 100%);
  margin: 0 auto;
  color: var(--story-ink);
  font-size: 15.5px;
  line-height: 2.15;
  letter-spacing: 0.12em;
  text-align: center;
}

.story__intro {
  margin-bottom: 29px;
}

.story__body p {
  margin: 0 0 29px;
}

.story__body p:last-child {
  margin-bottom: 0;
}

.story__mirror {
  position: absolute;
  top: 1305px;
  left: max(96px, calc(50% - 496px));
  width: 170px;
}

.story__stump {
  position: absolute;
  right: max(96px, calc(50% - 466px));
  bottom: 156px;
  width: 240px;
}

.story__continue {
  margin: 100px 0 0;
  color: var(--story-ink);
  font-family: var(--en-serif);
  font-size: 30px;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-align: center;
}

.story__continue-note {
  width: min(992px, 100%);
  margin: 10px auto 0;
  color: var(--story-ink);
  font-family: var(--jp-serif);
  font-size: 11px;
  font-weight: 300;
  line-height: normal;
  letter-spacing: 1.08px;
  text-align: center;
  word-break: break-word;
}

[data-reveal] {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  transition:
    opacity 1800ms cubic-bezier(0.19, 1, 0.22, 1),
    filter 1800ms cubic-bezier(0.19, 1, 0.22, 1),
    transform 1800ms cubic-bezier(0.19, 1, 0.22, 1);
  will-change: opacity, filter, transform;
}

.reveal-ready [data-reveal] {
  opacity: 0;
}

.reveal-ready [data-reveal="text"] {
  filter: blur(18px);
  transform: translate3d(0, 28px, 0);
}

.reveal-ready [data-reveal="image"] {
  filter: blur(10px);
  transform: translate3d(0, 88px, 0);
}

.reveal-scroll [data-reveal] {
  transition: none;
}

.reveal-ready [data-reveal].is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
}

.story__eyebrow[data-reveal] {
  transition-delay: 0ms;
}

.story__artist[data-reveal] {
  transition-delay: 120ms;
}

.story__credit[data-reveal] {
  transition-delay: 260ms;
}

.story__lead[data-reveal],
.story__spell[data-reveal],
.story__spell-sub[data-reveal] {
  transition-delay: 140ms;
}

.story__book[data-reveal],
.story__mirror[data-reveal],
.story__stump[data-reveal] {
  transition-duration: 1900ms;
}

.illustration {
  height: 1235px;
  background: linear-gradient(180deg, #4a9fa3 0%, #f1f2ef 26%);
}

.illustration__frame {
  position: relative;
  width: min(100%, var(--lp-max-width));
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
  background: #f1f2ef;
}

.illustration__layer {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translate3d(0, 0, 0);
  will-change: opacity, transform;
}

.illustration__layer--primary {
  opacity: 1;
}

.illustration__layer img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: scale(1);
  transform-origin: center;
  will-change: transform;
}

.illustration__layer--secondary img {
  transform: scale(1);
}

.illustration.is-playing .illustration__layer--primary {
  animation: illustration-primary-layer 8000ms linear infinite both;
}

.illustration.is-playing .illustration__layer--primary img {
  animation: illustration-primary-image 8000ms linear infinite both;
}

.illustration.is-playing .illustration__layer--secondary {
  animation: illustration-secondary-layer 8000ms linear infinite both;
}

.illustration.is-playing .illustration__layer--secondary img {
  animation: illustration-secondary-image 8000ms linear infinite both;
}

.illustration__frame::before,
.illustration__frame::after {
  position: absolute;
  z-index: 3;
  left: 0;
  width: 100%;
  height: 136px;
  content: "";
  pointer-events: none;
}

.illustration__frame::before {
  top: 0;
  background: linear-gradient(180deg, #4a9fa3 0%, rgba(74, 159, 163, 0.82) 26%, rgba(74, 159, 163, 0.38) 58%, rgba(74, 159, 163, 0) 100%);
}

.illustration__frame::after {
  bottom: 0;
  background: linear-gradient(180deg, rgba(241, 242, 239, 0) 0%, rgba(241, 242, 239, 0.72) 62%, #f1f2ef 100%);
}

@keyframes illustration-primary-layer {

  0%,
  37.5% {
    opacity: 1;
  }

  50%,
  87.5% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes illustration-primary-image {
  0% {
    transform: scale(1);
  }

  37.5%,
  49.8% {
    transform: scale(1.13);
  }

  50%,
  100% {
    transform: scale(1);
  }
}

@keyframes illustration-secondary-layer {

  0%,
  37.5% {
    opacity: 0;
  }

  50%,
  87.5% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes illustration-secondary-image {

  0%,
  50% {
    transform: scale(1);
  }

  87.5%,
  99.8% {
    transform: scale(1.13);
  }

  100% {
    transform: scale(1);
  }
}

.products-intro {
  padding: 168px 0 128px;
  background: var(--surface);
}

.products-intro .lead {
  width: min(760px, 100%);
  margin: 42px auto 0;
}

.aroma {
  padding: 80px 0 182px;
  background: var(--surface);
  overflow: visible;
}

.aroma__pear {
  width: 156px;
  margin: 74px auto 44px;
}

.aroma .body-copy {
  width: min(760px, 100%);
  margin: 0 auto;
}

.aroma__lavender {
  width: 180px;
  margin: 82px auto 74px;
}

.oil-panel {
  position: relative;
  display: grid;
  grid-template-columns: 262px repeat(5, 99px);
  column-gap: 61px;
  align-items: start;
  width: min(1180px, calc(100% - 48px));
  min-height: 217px;
  margin: 0 auto;
  padding: 35px 65px 11px 53px;
  border-radius: 13px;
  background: var(--surface-soft);
}

.oil-panel__title {
  margin: 0;
  color: var(--gold-ink);
  font-size: 19px;
  line-height: 1.75;
  padding-top: 41px;
  text-align: center;
}

.oil-panel__mobile-list {
  display: none;
}

.oil-panel__note {
  position: absolute;
  bottom: -20px;
  right: 0;
  width: min(256px, 100%);
  margin: 0;
  color: var(--gold);
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 300;
  line-height: 1.4;
  letter-spacing: 0.4px;
  text-align: right;
  word-break: break-word;
}

.oil {
  display: grid;
  width: 157px;
  justify-items: center;
  gap: 10px;
  min-width: 0;
  text-align: center;
}

.oil__image {
  position: relative;
  width: 99px;
  height: 99px;
}

.oil__image .ring {
  position: absolute;
  inset: 0;
}

.oil__image .oil-img {
  position: absolute;
  inset: 11px;
  width: 77px;
  height: 77px;
  object-fit: contain;
}

.oil__image .oil-img--eucalyptus {
  transform: translateX(-4%);
}

.oil__jp {
  margin: 0;
  width: 100%;
  min-height: 3.1em;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.55;
}

.oil__en {
  width: 100%;
  margin: 11px 0 0;
  color: var(--gold);
  font-family: var(--en-serif);
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.lineup {
  padding: 168px 0 136px;
  background: var(--surface);
}

.lineup .section-title {
  color: var(--gold);
  font-family: var(--en-serif);
  font-size: 60px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.06em;
}

.lineup .section-subtitle {
  margin-top: 8px;
  color: var(--gold-ink);
  font-family: var(--jp-serif);
  font-size: 14px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.22em;
}

.lineup__lead {
  width: min(992px, 100%);
  margin: 48px auto 147px;
  color: var(--muted);
  font-family: var(--jp-serif);
  font-size: 20.5px;
  line-height: 2.35;
  letter-spacing: 0.1em;
}

.lineup__emulsion-lead {
  position: static;
  display: block;
  width: min(992px, calc(100% - 48px));
  margin: 0 auto 80px;
  color: var(--muted);
  font-family: var(--jp-serif);
  font-size: 20.5px;
  font-weight: 400;
  line-height: 2.35;
  letter-spacing: 2.05px;
  text-align: center;
}

.lineup__number {
  display: none;
}

.product-block {
  display: grid;
  grid-template-columns: 527px 552px;
  gap: 85px;
  align-items: start;
  width: min(1164px, calc(100% - 96px));
  margin: 0 auto 82px;
}

.product-block--coffret {
  grid-template-columns: 569px 552px;
  width: min(1206px, calc(100% - 96px));
}

.product-block--reverse {
  grid-template-columns: 522px 279px;
  gap: 108px;
  width: min(909px, calc(100% - 96px));
  margin-bottom: 0;
}

.product-block--reverse .product-visual {
  order: 2;
}

.product-visual {
  position: relative;
  min-height: 859px;
}

.product-visual__set {
  position: absolute;
  top: 118px;
  left: 0;
  width: 569px;
  height: auto;
  object-fit: contain;
}

.product-visual__emulsion-set {
  position: absolute;
  top: 128px;
  left: 0;
  display: block;
  width: 279px;
  height: auto;
  object-fit: contain;
}

.product-copy {
  width: 552px;
  min-height: 859px;
  padding: 115px 126px 0;
  background: url("../assets/desktop/bg-mirror-panel-01.png") center / 100% 100% no-repeat;
  color: var(--muted);
  text-align: center;
}

.product-block--reverse .product-copy {
  order: 1;
  width: 522px;
  padding: 138px 91px 0;
  background-image: url("../assets/desktop/bg-mirror-panel-02.png");
}

.product-copy__number {
  margin: 0 0 17px;
  color: var(--teal);
  font-family: var(--en-serif);
  font-size: 40px;
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: 0.06em;
}

.product-copy__name {
  margin: 0;
  color: var(--ink);
  font-family: var(--jp-serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.1em;
}

.product-copy__subname {
  margin: 13px 0 0;
  color: var(--ink);
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.08em;
}

.product-copy__price {
  margin: 17px 0 0;
  color: var(--ink);
  font-family: var(--en-serif);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.04em;
}

.product-copy__price span {
  color: #5c625e;
  font-family: var(--jp-serif);
  font-size: 12.6px;
  letter-spacing: 0.08em;
}

.product-copy__desc,
.product-copy__contents {
  margin: 17px 0 0;
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: 0.08em;
}

.product-copy__contents {
  color: #5c625e;
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.95;
}

.store-cta,
.coming-soon {
  display: inline-flex;
  min-width: 143px;
  min-height: 67px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 31px;
  padding: 13px 24px;
  border: 1px solid #937139;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 12.5px;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.store-cta {
  background: #937139;
  color: #fff;
}

.coming-soon {
  background: transparent;
  border-color: var(--gold-soft);
  color: var(--gold-ink);
}

.store-cta span:last-child,
.coming-soon span:last-child {
  font-family: var(--en-serif);
  font-size: 11px;
  line-height: 1.7;
  letter-spacing: 0.26em;
}

.storybook-feature {
  position: relative;
  display: grid;
  grid-template-columns: 327px 572px;
  gap: 63px;
  align-items: start;
  width: min(962px, calc(100% - 96px));
  min-height: 507px;
  margin: 0 auto 143px;
}

.storybook-feature::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 340px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(165, 127, 64, 0.45) 18%, rgba(165, 127, 64, 0.45) 82%, transparent);
  content: "";
  transform: translateX(-50%);
}

.storybook-feature__image {
  display: block;
  width: 327px;
}

.storybook-feature__image img {
  width: 100%;
  filter: none;
}

.storybook-feature__copy {
  padding-top: 68px;
  text-align: left;
}

.storybook-feature__label {
  margin: 0 0 29px;
  color: var(--gold);
  font-family: var(--en-serif);
  font-size: 30px;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 0.1em;
}

.storybook-feature__title {
  margin: 0;
  color: var(--gold-ink);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.1em;
}

.storybook-feature__meta {
  margin: 29px 0 0;
  color: var(--ink);
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: 0.08em;
}

.film {
  width: min(100%, var(--lp-max-width));
  margin: 0 auto;
  padding: 96px 0 120px;
  background: var(--surface);
}

.ornament-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin: 0 auto 56px;
  color: var(--gold);
  font-family: var(--en-serif);
  font-size: 30px;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 0.1em;
  text-align: center;
}

.ornament-heading::before,
.ornament-heading::after {
  display: block;
  width: 150px;
  height: 1px;
  background: rgba(201, 169, 113, 0.75);
  content: "";
}

.video-panel {
  position: relative;
  display: block;
  width: min(760px, calc(100% - 48px));
  aspect-ratio: 760 / 492;
  margin: 0 auto;
  padding: 0;
  border: 0;
  overflow: hidden;
  background: #0a1310;
  box-shadow: 0 22px 48px -34px rgba(44, 48, 46, 0.28);
  color: inherit;
  cursor: pointer;
}

.video-panel__thumb,
.video-panel__thumb img,
.video-panel__media {
  width: 100%;
  height: 100%;
}

.video-panel__thumb img,
.video-panel__media {
  display: block;
  object-fit: cover;
  opacity: 0.74;
  pointer-events: none;
}

.video-panel--film .video-panel__thumb img,
.video-panel--film .video-panel__media {
  opacity: 1;
}

.video-panel--film::after {
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background: linear-gradient(180deg, rgba(10, 19, 16, 0), rgba(10, 19, 16, 0.4));
  pointer-events: none;
  content: "";
}

.video-panel__play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: block;
  width: 66px;
  height: 66px;
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  background: rgba(44, 48, 46, 0.28);
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.video-panel__play::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 17px solid #fff;
  content: "";
  transform: translate(-36%, -50%);
}

.video-panel .play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 66px;
  height: 66px;
  transform: translate(-50%, -50%);
}

.video-modal {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 72px clamp(32px, 8vw, 132px);
  background: rgba(6, 14, 11, 0.78);
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 240ms ease, visibility 0s linear 240ms;
}

.video-modal.is-open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transition: opacity 240ms ease;
}

.video-modal__panel {
  position: relative;
  display: grid;
  grid-template: minmax(0, 1fr) / minmax(0, 1fr);
  width: 100%;
  height: calc(100vh - 144px);
  height: calc(100dvh - 144px);
  place-items: center;
  overflow: visible;
  background: transparent;
  pointer-events: none;
}

.video-modal__poster {
  display: block;
  width: min(1120px, 100%);
  height: 100%;
  max-height: 100%;
  min-width: 0;
  min-height: 0;
  justify-self: center;
  align-self: stretch;
  pointer-events: none;
}

.video-modal__poster source {
  display: none;
}

.video-modal__poster img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  object-fit: contain;
  object-position: center;
  opacity: 1;
}

.video-modal__media {
  display: block;
  width: min(1120px, 100%);
  height: auto;
  max-height: 100%;
  aspect-ratio: 16 / 9;
  background: #0a1310;
  object-fit: contain;
  opacity: 1;
  pointer-events: none;
}

.video-modal.is-open .video-modal__poster,
.video-modal.is-open .video-modal__media {
  pointer-events: auto;
}

.video-modal__media[hidden],
.video-modal__poster[hidden] {
  display: none;
}

.video-modal__close {
  position: fixed;
  top: 24px;
  right: clamp(22px, 5vw, 72px);
  z-index: 2;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.76);
  cursor: pointer;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 30px;
  font-weight: 300;
  line-height: 1;
  pointer-events: none;
  transition: color 200ms ease;
}

.video-modal.is-open .video-modal__close {
  pointer-events: auto;
}

.video-modal__close:hover,
.video-modal__close:focus-visible {
  color: #fff;
}

.video-modal__nav {
  position: fixed;
  top: 50%;
  z-index: 2;
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.56);
  border-radius: 50%;
  background: rgba(6, 14, 11, 0.36);
  color: rgba(255, 255, 255, 0.86);
  cursor: pointer;
  font-family: var(--en-serif);
  font-size: 24px;
  line-height: 1;
  pointer-events: none;
  touch-action: manipulation;
  transform: translateY(-50%);
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.video-modal__nav[hidden] {
  display: none;
}

.video-modal__nav--prev {
  left: clamp(18px, 3.5vw, 56px);
}

.video-modal__nav--next {
  right: clamp(18px, 3.5vw, 56px);
}

.video-modal.is-open.is-image .video-modal__nav {
  pointer-events: auto;
}

.video-modal__nav:hover,
.video-modal__nav:focus-visible {
  border-color: rgba(255, 255, 255, 0.92);
  background: rgba(6, 14, 11, 0.62);
  color: #fff;
}

.gallery {
  padding: 0 0 120px;
  background: var(--surface);
}

.gallery__intro {
  position: relative;
  z-index: 2;
  padding: 144px 24px;
  background: var(--surface);
  text-align: center;
}

.gallery__intro .section-title,
.gallery__intro .section-subtitle {
  width: min(992px, 100%);
  margin-right: auto;
  margin-left: auto;
}

.gallery__credit {
  width: min(992px, 100%);
  margin: 28px auto 0;
  color: var(--gold-ink);
  font-family: var(--jp-serif);
  font-size: 14px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 3.08px;
}

.gallery__lead {
  width: min(992px, 100%);
  margin: 57px auto 0;
}

.gallery__hero {
  width: min(100%, var(--lp-max-width));
  height: 820px;
  margin: 0 auto;
}

.gallery__hero picture,
.gallery__hero img {
  width: 100%;
  height: 100%;
}

.gallery__hero picture {
  cursor: zoom-in;
}

.gallery__hero img {
  object-fit: cover;
}

.gallery__rail-wrap {
  position: relative;
  width: min(100%, var(--lp-max-width));
  margin: 64px auto 0;
  overflow: hidden;
}

.gallery__rail {
  display: flex;
  height: 396px;
  align-items: center;
  gap: 24px;
  overflow: visible;
  padding: 0 0 0 64px;
  scroll-snap-type: none;
  scrollbar-width: none;
  transition: none;
  will-change: transform;
}

.gallery__rail.is-resetting {
  transition: none;
}

.gallery__rail::-webkit-scrollbar {
  display: none;
}

.gallery__rail picture {
  display: block;
  flex: 0 0 auto;
  width: calc(var(--slide-height, 300px) * var(--slide-ratio, 1.333333));
  height: var(--slide-height, 300px);
  box-shadow: 0 16px 34px -28px rgba(44, 48, 46, 0.8);
  cursor: zoom-in;
  scroll-snap-align: none;
}

.gallery__hero picture:focus-visible,
.gallery__slide:focus-visible {
  outline: 2px solid rgba(165, 127, 64, 0.8);
  outline-offset: 6px;
}

.gallery__slide--wide {
  --slide-height: 300px;
  --slide-ratio: 1.333333;
}

.gallery__slide--small {
  --slide-height: 168px;
  --slide-ratio: 1.333333;
}

.gallery__slide--medium {
  --slide-height: 232px;
  --slide-ratio: 1.331897;
}

.gallery__slide--tall {
  --slide-height: 232px;
  --slide-ratio: 0.668103;
}

.gallery__slide--portrait {
  --slide-height: 232px;
  --slide-ratio: 0.75;
}

.gallery__rail img {
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
}

.gallery__nav {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-top: 28px;
  margin-bottom: 64px;
}

.icon-button {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid rgba(165, 127, 64, 0.45);
  border-radius: 50%;
  background: transparent;
  color: var(--gold-ink);
  cursor: pointer;
  font-family: var(--en-serif);
  font-size: 24px;
  line-height: 1;
  transition: background 220ms ease, color 220ms ease;
}

.icon-button:hover {
  background: rgba(165, 127, 64, 0.08);
}

.gallery-toggle__icon {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
}

.gallery-toggle__icon::before,
.gallery-toggle__icon::after {
  position: absolute;
  top: 1px;
  width: 5px;
  height: 16px;
  border-radius: 999px;
  background: currentColor;
  content: "";
  transition: opacity 180ms ease, transform 180ms ease;
}

.gallery-toggle__icon::before {
  left: 3px;
}

.gallery-toggle__icon::after {
  right: 3px;
}

.gallery-toggle.is-paused .gallery-toggle__icon::before {
  top: 2px;
  left: 5px;
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 11px solid currentColor;
  border-radius: 0;
  background: transparent;
}

.gallery-toggle.is-paused .gallery-toggle__icon::after {
  opacity: 0;
  transform: scaleX(0);
}

.news-float {
  position: fixed;
  right: max(28px, calc((100vw - var(--lp-max-width)) / 2 + 28px));
  bottom: 38px;
  z-index: 80;
  --news-close-column: 32px;
  width: 320px;
  overflow: hidden;
  border-radius: 3px;
  background: linear-gradient(151.74197038529311deg, rgb(201, 169, 113) 14.644%, rgb(180, 139, 70) 85.356%);
  box-shadow: 0 20px 44px -22px rgba(44, 48, 46, 0.6);
  color: #fff;
}
.news-float a {display: flex;flex-direction: column;padding: 1em;gap: 0.7em;}
.news-float.is-hidden {
  display: none;
}

.news-float::after {
  position: absolute;
  top: 0;
  left: 288px;
  bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.3);
  content: "";
  pointer-events: none;
}

.news-float__close {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  width: var(--news-close-column);
  align-items: center;
  border: 0;
  background: transparent;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  font-family: Inter, Arial, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: normal;
  opacity: 0.85;
  padding: 0;
}

.news-float__label {
  width: 248px;
  margin: 0;
  color: #fff;
  font-family: var(--en-serif);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 2.86px;
  word-break: break-word;
}

.news-float__date,
.news-float__title,
.news-float__link {
  margin: 0;
}

.news-float__date {
  width: 248px;
  color: #fff;
  font-family: var(--en-serif);
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 1.15px;
  word-break: break-word;
}

.news-float__title {
  width: 248px;
  color: #fff;
  font-family: var(--jp-serif);
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.75px;
  word-break: break-word;
}

.news-float__link {
  display: block;
  width: 248px;
  margin: 0;
  color: #fff;
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 400;
  line-height: 1.95;
  letter-spacing: 1.26px;
  opacity: 0.85;
  text-decoration: none;
  word-break: break-word;
}

.anniversary {
  padding: 122px 0 72px;
  background: var(--surface);
  text-align: center;
}

.anniversary__title {
  width: min(760px, 100%);
  margin: 0 auto;
  color: var(--gold);
  font-family: var(--en-serif);
  font-size: 44px;
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: 0.07em;
}

.anniversary__script {
  position: relative;
  display: block;
  width: min(608px, 100%);
  aspect-ratio: 617.24755859375 / 47.25346755981445;
  margin: 40px auto 0;
}

.anniversary__script-part {
  position: absolute;
  display: block;
  max-width: none;
}

.anniversary__script-part--name {
  inset: 0 33.4% 5.16% 0;
  width: 66.6%;
  height: 94.84%;
}

.anniversary__script-part--mark {
  inset: 7.97% 23.67% 14.85% 69.49%;
  width: 6.84%;
  height: 77.18%;
}

.anniversary__script-part--la {
  inset: 3.83% 17.75% 11.48% 75.96%;
  width: 6.29%;
  height: 84.69%;
}

.anniversary__script-part--casta {
  inset: 3.83% -0.01% 0.04% 81.9%;
  width: 18.11%;
  height: 96.13%;
}

.anniversary__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 38px;
  margin: 50px 0 20px;
}

.anniversary__logos picture {
  display: block;
  flex: 0 0 auto;
}

.anniversary__logos img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.anniversary__logos picture:first-child {
  width: 168px;
  height: 41px;
}

.anniversary__logos picture:last-child {
  width: 76px;
  height: 79px;
}

.anniversary__label {
  margin: 0;
  color: var(--gold-ink);
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.08em;
}

.anniversary__lead {
  width: min(760px, 100%);
  margin: 55px auto 0;
  color: var(--gold-ink);
  font-size: 20px;
  font-weight: 600;
  line-height: 2.2;
  letter-spacing: 0.1em;
}

.anniversary .body-copy {
  width: min(760px, 100%);
  margin: 80px auto 0;
  color: #5c625e;
  letter-spacing: 0.1em;
}

.profile {
  display: grid;
  grid-template-columns: minmax(0, 751px) minmax(0, 577px);
  column-gap: 96px;
  align-items: start;
  width: min(100%, var(--lp-max-width));
  margin: 0 auto;
  background: var(--surface);
}

.profile__photo {
  display: block;
  width: 100%;
  height: 939px;
  margin-top: 132px;
}

.profile__photo picture,
.profile__photo img {
  width: 100%;
  height: 100%;
}

.profile__photo img {
  object-fit: cover;
}

.profile__copy {
  width: 577px;
  margin: 396px 0 0;
}

.profile__label {
  margin: 0 0 28px;
  color: #307278;
  font-family: var(--en-serif);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 4.76px;
}

.profile__name {
  margin: 0;
  color: #2c302e;
  font-family: var(--en-serif);
  font-size: 46px;
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: 7.36px;
}

.profile__script {
  display: block;
  width: 347px;
  margin: 29px 0 0;
}

.profile__script img {
  width: 100%;
  max-width: none;
}

.profile__rule {
  width: 92px;
  height: 1px;
  margin: 34px 0 32px;
  background: #937139;
}

.profile__bio {
  margin: 0;
  color: #5c625e;
  font-family: var(--jp-serif);
  font-size: 14px;
  font-weight: 400;
  line-height: 2.1;
  letter-spacing: 1.04px;
}

.making {
  width: min(100%, var(--lp-max-width));
  margin: 0 auto;
  padding: 120px 0 126px;
  background: var(--surface);
}

.making .video-panel {
  width: min(760px, calc(100% - 48px));
}

.news {
  width: min(100%, var(--lp-max-width));
  margin: 0 auto;
  padding: 168px 0 0;
  background: var(--surface);
}

.news-list {
  width: min(760px, calc(100% - 48px));
  margin: 70px auto 0;
  border-top: 1px solid #d9dbd7;
}

.news-row {
  display: grid;
  grid-template-columns: 113px minmax(0, 1fr);
  gap: 26px;
  padding: 20px 0 23px;
  border-bottom: 1px solid #d9dbd7;
}

.news-list:not(.is-open) .news-row:nth-child(n+4) {
  display: none;
}

.news-expand[aria-expanded="true"] {
  transform: rotate(180deg);
}

.news-row time {
  color: var(--gold);
  font-family: var(--en-serif);
  font-size: 14.5px;
  line-height: 1.7;
  letter-spacing: 0.1em;
}

.news-row p {
  margin: 0;
  color: var(--ink);
  font-family: var(--jp-serif);
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: 0.08em;
}

.news-expand {
  display: none;
  margin: 28px auto 0;
  border: 0;
  background: transparent;
  color: var(--gold-ink);
  cursor: pointer;
  font-family: var(--en-serif);
  font-size: 20px;
  font-weight: 300;
}

.news-expand.is-active {
  display: block;
}

.interview {
  width: min(100%, var(--lp-max-width));
  margin: 0 auto;
  padding: 80px 0 140px;
  background: var(--surface);
}

.article-list {
  display: grid;
  gap: 102px;
  width: min(992px, calc(100% - 48px));
  margin: 86px auto 0;
}

.article-card {
  display: grid;
  grid-template-columns: 456px minmax(0, 1fr);
  min-height: 367px;
  background: #fff;
  box-shadow: 0 24px 52px -42px rgba(44, 48, 46, 0.28);
}

.article-card:nth-child(even) {
  grid-template-columns: minmax(0, 1fr) 456px;
}

.article-card:nth-child(even) .article-card__image {
  order: 2;
}

.article-card__image {
  position: relative;
  min-height: 367px;
}

.article-card__image picture {
  display: block;
  width: 100%;
  height: 100%;
}

.article-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.article-card__flag {
  position: absolute;
  top: 0;
  left: 0;
  padding: 7px 22px;
  background: #bec1bc;
  color: #fff;
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.95;
  letter-spacing: 0.08em;
}

.article-card:nth-child(even) .article-card__flag {
  right: 0;
  left: auto;
}

.article-card__body {
  align-self: center;
  padding: 46px 40px;
}

.article-card__eyebrow {
  margin: 0 0 14px;
  color: var(--gold-soft);
  font-family: var(--en-serif);
  font-size: 20px;
  font-variant-numeric: lining-nums;
  line-height: 1.7;
  letter-spacing: 0.1em;
}

.article-card__title {
  margin: 0;
  color: var(--gold-ink);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.1em;
}

.article-card__excerpt {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.08em;
}

.article-card__cta {
  display: inline-block;
  margin-top: 20px;
  color: var(--gold-ink);
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.95;
  letter-spacing: 0.08em;
}

.phase-teaser .article-card__cta {
  color: #bec1bc;
}

.gift {
  width: min(100%, var(--lp-max-width));
  margin: 0 auto;
  padding: 96px 0 154px;
  background: var(--surface);
  text-align: center;
}

.gift__notice {
  margin: 0;
  color: var(--gold-ink);
  font-family: var(--jp-serif);
  font-size: 20px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 3.6px;
}

.gift__title {
  margin: 10px 0 0;
  color: var(--gold);
  font-family: var(--jp-serif);
  font-size: 34px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 2.72px;
}

.gift__date {
  margin: 14px 0 0;
  color: var(--gold-ink);
  font-family: var(--en-serif);
  font-size: 24px;
  font-weight: 300;
  line-height: 2;
  letter-spacing: 4.8px;
}

.gift__rule {
  width: 60px;
  height: 1px;
  margin: 24px auto 32px;
  background: rgba(165, 127, 64, 0.6);
}

.gift__image {
  width: 441px;
  margin: 0 auto 44px;
}

.gift__lead {
  width: min(927px, 100%);
  margin: 0 auto;
  color: var(--ink);
  font-family: var(--jp-serif);
  font-size: 22px;
  font-weight: 400;
  line-height: 2.15;
}

.gift__body {
  width: min(760px, 100%);
  margin: 36px auto 0;
  color: var(--muted);
  font-family: var(--jp-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 2.1;
}

.gift__caution {
  width: min(642px, 100%);
  margin: 42px auto 0;
  color: var(--muted);
  font-family: var(--jp-serif);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.95;
  text-align: left;
}

.gift__note {
  width: min(642px, 100%);
  margin: 4px auto 0;
  color: var(--muted);
  font-family: var(--jp-serif);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.95;
  text-align: left;
}

.ending {
  height: 1296px;
  background: var(--surface);
}

.ending picture,
.ending img,
.ending__video {
  width: 100%;
  height: 100%;
}

.ending img,
.ending__video {
  width: min(100%, var(--lp-max-width));
  margin: 0 auto;
  display: block;
  object-fit: cover;
}

.ending__copy {
  position: absolute;
  bottom: clamp(96px, 9.26vw, 160px);
  left: max(48px, calc(50% - 697px));
  margin: 0;
  color: var(--ending-red);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.18em;
  text-shadow: 0 0 10px #fff;
}

@media (min-width: 768px) {
  .hero__media {
    left: 50%;
    width: min(calc(100% + 137px), var(--lp-max-width));
  }

  .story {
    padding-top: 143px;
  }

  .story__artist {
    margin-top: 12px;
  }

  .story__credit {
    margin-top: 36px;
  }

  .story__lead {
    margin-top: 15px;
  }

  .story__spell {
    margin-top: 60px;
  }

  .story__spell-sub {
    margin-top: 26px;
  }

  .story__book {
    margin-top: 45px;
    margin-bottom: 105px;
  }

  .story__continue {
    margin-top: 123px;
  }

  .products-intro .lead {
    margin-top: 52px;
  }

  .phase-teaser .products-intro {
    height: 575px;
    padding: 168px 0 0;
  }

  .phase-launch .products-intro {
    height: 575px;
    padding: 168px 0 0;
  }

  .aroma {
    padding: 80px 0 20px;
  }

  .aroma__pear {
    margin-top: 96px;
  }

  .phase-teaser .aroma__lavender {
    margin-top: 78px;
  }

  .phase-launch .aroma__lavender {
    margin-top: 78px;
  }

  .lineup__lead {
    margin-top: 52px;
  }

  .phase-teaser .lineup {
    height: 3195px;
    padding: 168px 0 0;
  }

  .phase-launch .lineup {
    height: 3195px;
    padding: 168px 0 0;
  }

  .phase-launch .lineup__lead {
    margin-bottom: 151px;
  }

  .phase-teaser .product-block {
    width: min(1164px, calc(100% - 96px));
    margin-right: auto;
    margin-left: max(48px, calc(50% - 571px));
  }

  .phase-launch .product-block {
    width: min(1164px, calc(100% - 96px));
    margin-right: auto;
    margin-left: max(48px, calc(50% - 571px));
  }

  .phase-teaser .product-block--coffret,
  .phase-launch .product-block--coffret {
    width: min(1206px, calc(100% - 96px));
  }

  .phase-teaser .product-block--reverse {
    width: min(909px, calc(100% - 96px));
    margin-left: max(48px, calc(50% - 511px));
  }

  .phase-launch .product-block--reverse {
    width: min(909px, calc(100% - 96px));
    margin-left: max(48px, calc(50% - 511px));
  }

  .phase-teaser .product-visual__set {
    top: 124px;
    left: 0;
    width: 569px;
    height: auto;
    object-fit: contain;
    object-position: left top;
  }

  .phase-launch .product-visual__set {
    top: 124px;
    left: 0;
    width: 569px;
    height: auto;
    object-fit: contain;
    object-position: left top;
  }

  .phase-launch .product-block--reverse .product-copy__number {
    margin-bottom: 25px;
  }

  .phase-launch .product-block--reverse .product-copy__price {
    margin-top: 27px;
  }

  .phase-launch .product-block--reverse .product-copy__desc,
  .phase-launch .product-block--reverse .product-copy__contents {
    margin-top: 35px;
  }

  .phase-launch .product-block--reverse .store-cta {
    margin-top: 48px;
  }

  .ornament-heading {
    width: min(760px, calc(100% - 48px));
    gap: 0;
  }

  .ornament-heading::before,
  .ornament-heading::after {
    position: absolute;
    top: 50%;
    flex: none;
    transform: translateY(-50%);
  }

  .ornament-heading::before {
    left: 0;
  }

  .ornament-heading::after {
    right: 0;
  }

  .film .ornament-heading::before,
  .film .ornament-heading::after {
    width: 203px;
  }

  .making .ornament-heading,
  .interview .ornament-heading {
    font-family: var(--jp-serif);
    font-weight: 500;
  }

  .making .ornament-heading::before,
  .making .ornament-heading::after {
    width: 190px;
  }

  .interview .ornament-heading::before,
  .interview .ornament-heading::after {
    width: 150px;
  }

  .film {
    padding: 168px 0 0;
  }

  .film video {
    aspect-ratio: 1 / 0.65;
    max-width: 760px;
    margin: auto;
  }

  .phase-launch .film {
    height: 949px;
    padding: 168px 0 0;
  }

  .film .video-panel {
    aspect-ratio: 760 / 475;
  }

  .phase-teaser .gallery {
    height: 2369px;
    padding-bottom: 0;
  }

  .phase-launch .gallery {
    height: 2369px;
    padding-bottom: 0;
  }

  .gallery__hero {
    height: 1152px;
  }

  .gallery__rail-wrap {
    margin-top: 0;
    background: #e7e9e5;
  }

  .gallery__nav {
    gap: 14px;
    margin-top: 30px;
  }

  .icon-button {
    width: 57px;
    height: 57px;
    color: #5c625e;
    font-family: var(--jp-serif);
    font-size: 13px;
    font-weight: 400;
    line-height: 2.1;
  }

  .phase-teaser .anniversary {
    height: 940px;
    padding: 122px 0 0;
  }

  .phase-launch .anniversary {
    height: 940px;
    padding: 122px 0 0;
  }

  .phase-teaser .anniversary .body-copy {
    margin-top: 44px;
  }

  .phase-launch .anniversary .body-copy {
    margin-top: 44px;
  }

  .making {
    padding: 125px 0 0;
  }

  .making video {
    aspect-ratio: 1 / 0.6;
    max-width: 760px;
    margin: auto;
  }

  .phase-launch .making {
    height: 838px;
    padding: 125px 0 0;
  }

  news {
    padding: 168px 0 0;
  }

  .news .section-title {
    font-size: 44px;
    font-weight: 300;
    letter-spacing: 0.16em;
  }

  .phase-teaser .news-list {
    margin-top: 52px;
  }

  .phase-launch .news-list {
    margin-top: 52px;
  }

  .news-expand {
    margin-top: 34px;
  }

  .interview {
    padding: 168px 0;
  }

  .phase-teaser .article-list {
    margin-top: 146px;
  }

  .phase-launch .article-list {
    margin-top: 146px;
  }

  .phase-launch .gift {
    height: 1306px;
    padding: 96px 0 0;
  }

  .phase-launch .gift .section-inner {
    width: 100%;
  }

  .phase-launch .gift__title {
    width: min(964px, calc(100% - 96px));
    margin: 14px auto 0;
  }

  .phase-launch .gift__date {
    width: min(760px, calc(100% - 96px));
    margin: 6px auto 0;
  }

  .phase-launch .gift__rule {
    margin-top: 24px;
    margin-bottom: 33px;
  }

  .phase-launch .gift__image {
    width: 441px;
    height: 294px;
    margin-bottom: 56px;
    object-fit: contain;
    object-position: bottom center;
  }

  .phase-launch .gift__body {
    margin-top: 33px;
  }

  .phase-launch .gift__caution {
    margin-top: 43px;
  }

  .phase-launch .gift__note {
    margin-top: 13px;
  }
}

.scallop-band {
  height: min(360px, 20.833vw);
  background: var(--surface);
}

.scallop-band picture {
  display: block;
  width: min(100%, var(--lp-max-width));
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
}

.scallop-band img {
  width: 104.17%;
  max-width: none;
  height: 100%;
}

@media (min-width: 768px) and (max-width: 1280px) {
  .hero {
    --hero-side-gutter: clamp(28px, 4vw, 48px);
  }

  .hero__title-art {
    top: 45%;
    left: clamp(28px, 4vw, 48px);
    width: clamp(320px, 32vw, 390px);
  }

  .hero__badge {
    right: clamp(28px, 4vw, 48px);
    width: clamp(240px, 26vw, 300px);
  }

  .hero__brand {
    top: 86%;
    left: 50%;
    width: clamp(132px, 13vw, 170px);
    transform: translateX(-50%);
  }

  .hero__sigil {
    top: clamp(18px, 3vw, 30px);
    width: clamp(88px, 10vw, 112px);
    height: clamp(88px, 10vw, 112px);
  }

  .hero__logo {
    width: clamp(140px, 16vw, 184px);
    height: clamp(140px, 16vw, 184px);
  }
}

@media (min-width: 768px) and (max-width: 1300px) {

  .phase-teaser .lineup,
  .phase-launch .lineup {
    height: auto;
    padding: 120px 0 128px;
  }

  .lineup__lead,
  .phase-launch .lineup__lead {
    width: min(720px, calc(100% - 64px));
    margin: 44px auto 96px;
    font-size: 17px;
    line-height: 2.2;
  }

  .lineup__emulsion-lead {
    position: static;
    width: min(720px, calc(100% - 64px));
    margin: 0 auto 64px;
    font-size: 17px;
    line-height: 2.2;
    letter-spacing: 1.7px;
  }

  .phase-teaser .product-block,
  .phase-launch .product-block,
  .phase-teaser .product-block--coffret,
  .phase-launch .product-block--coffret,
  .phase-teaser .product-block--reverse,
  .phase-launch .product-block--reverse {
    grid-template-columns: 1fr;
    gap: 56px;
    width: min(640px, calc(100% - 64px));
    margin: 0 auto 104px;
  }

  .phase-teaser .product-block--reverse,
  .phase-launch .product-block--reverse {
    margin-bottom: 0;
  }

  .product-block--reverse .product-visual {
    order: 0;
  }

  .product-block--reverse .product-copy {
    order: 1;
  }

  .product-visual {
    min-height: 0;
  }

  .phase-teaser .product-visual__set,
  .phase-launch .product-visual__set {
    position: relative;
    top: auto;
    left: auto;
    width: min(569px, 100%);
    height: auto;
    margin: 0 auto;
    object-position: center;
    transform: none;
  }

  .product-block--reverse .product-visual {
    display: block;
  }

  .product-block--reverse .product-visual__emulsion-set {
    position: relative;
    top: auto;
    left: auto;
    width: min(279px, 100%);
    height: auto;
    margin: 0 auto;
    transform: none;
  }

  .product-copy,
  .product-block--reverse .product-copy {
    width: min(552px, 100%);
    margin: 0 auto;
  }

  .product-block--reverse .product-copy {
    width: min(522px, 100%);
  }

  .storybook-feature {
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: clamp(36px, 6vw, 56px);
    width: min(820px, calc(100% - 64px));
    min-height: auto;
    margin: 0 auto 112px;
    padding-bottom: clamp(48px, 6vw, 72px);
  }

  .storybook-feature__image {
    width: min(280px, 100%);
  }

  .storybook-feature__copy {
    min-width: 0;
    padding-top: clamp(24px, 5vw, 58px);
  }

  .storybook-feature__label {
    font-size: clamp(24px, 3.2vw, 30px);
  }

  .storybook-feature__title {
    font-size: clamp(17px, 2.2vw, 20px);
    overflow-wrap: anywhere;
  }
}

@media (min-width: 768px) and (max-width: 900px) {
  .storybook-feature {
    grid-template-columns: 1fr;
    width: min(560px, calc(100% - 64px));
    text-align: center;
  }

  .storybook-feature__image {
    margin: 0 auto;
  }

  .storybook-feature__copy {
    padding-top: 0;
    text-align: center;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .story {
    min-height: 0;
    padding-bottom: 150px;
  }

  .story__content {
    width: min(720px, calc(100% - 64px));
  }

  .story__content>picture {
    display: block;
  }

  .story__book {
    margin-bottom: 72px;
  }

  .story__mirror {
    position: static;
    top: auto;
    left: auto;
    width: 170px;
    margin: 0 auto 64px;
  }

  .story__intro,
  .story__body {
    width: min(560px, 100%);
    font-size: 14.5px;
    line-height: 2.25;
  }

  .story__intro {
    margin-bottom: 64px;
  }

  .story__intro .sp-only,
  .story__body .sp-only {
    display: block;
  }

  .story__intro .pc-only,
  .story__body .pc-only {
    display: none;
  }

  .story__body p {
    margin-bottom: 34px;
  }

  .story__stump {
    position: static;
    right: auto;
    bottom: auto;
    width: 240px;
    margin: 76px auto 0;
  }

  .story__continue {
    margin-top: 72px;
  }
}

@media (min-width: 768px) and (max-width: 1450px) {

  .phase-teaser .aroma,
  .phase-launch .aroma {
    height: auto;
    min-height: 1193px;
    padding-bottom: 120px;
  }

  .oil-panel {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: clamp(8px, 1.5vw, 34px);
    row-gap: 24px;
    width: min(1320px, calc(100% - 32px));
    min-height: auto;
    padding: 42px clamp(18px, 2.6vw, 56px) 34px;
  }

  .oil-panel__title {
    grid-column: 1 / -1;
    justify-self: center;
    padding-top: 0;
    white-space: nowrap;
  }

  .oil-panel__title .pc-only {
    display: none;
  }

  .oil {
    justify-self: center;
    width: 100%;
    max-width: none;
  }

  .oil__jp {
    font-size: clamp(10px, 1.25vw, 13px);
    white-space: nowrap;
  }

  .oil__en {
    margin-top: 0;
    white-space: nowrap;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .oil-panel {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    column-gap: clamp(8px, 1.5vw, 18px);
    row-gap: 22px;
    padding: 34px clamp(18px, 2.6vw, 28px) 30px;
  }

  .oil-panel__title {
    grid-column: 1 / -1;
    padding-top: 0;
  }
}

@media (min-width: 1200px) and (max-width: 1460px) {
  .profile {
    grid-template-columns: 751px minmax(0, 1fr);
    column-gap: clamp(32px, 4vw, 56px);
    width: 100%;
    min-height: auto;
    padding: 132px clamp(32px, 4vw, 64px) 132px 0;
  }

  .profile__photo {
    width: 751px;
    height: 939px;
    margin-top: 0;
  }

  .profile__copy {
    width: 100%;
    max-width: 577px;
    min-width: 0;
    margin-top: clamp(220px, 20vw, 292px);
  }

  .profile__name {
    font-size: clamp(38px, 3.2vw, 46px);
    letter-spacing: clamp(3.8px, 0.5vw, 7.36px);
  }

  .profile__script {
    width: min(347px, 100%);
  }

  .profile__bio {
    font-size: clamp(12.5px, 1vw, 14px);
    letter-spacing: 0.04em;
    overflow-wrap: anywhere;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .profile {
    display: block;
    width: 100%;
    min-height: auto;
    padding: 96px 0 120px;
  }

  .profile__photo {
    width: 100%;
    max-width: none;
    height: 939px;
    margin-top: 0;
  }

  .profile__copy {
    width: min(577px, calc(100% - 64px));
    margin: 64px auto 0;
  }

  .profile__script {
    width: min(347px, 100%);
  }

  .profile__bio {
    overflow-wrap: anywhere;
  }
}

@media (min-width: 768px) and (max-width: 789px) {
  .phase-launch .gift {
    height: auto;
    min-height: 1306px;
    padding-bottom: 154px;
  }

  .phase-launch .gift__title,
  .phase-launch .gift__date,
  .phase-launch .gift__lead,
  .phase-launch .gift__body,
  .phase-launch .gift__caution,
  .phase-launch .gift__note {
    width: min(642px, calc(100% - 64px));
  }
}

@media (min-width: 768px) and (max-width: 795px) {

  .phase-teaser .interview,
  .phase-launch .interview {
    height: auto;
    padding-bottom: 96px;
  }

  .phase-teaser .interview {
    min-height: 1464px;
  }

  .phase-launch .interview {
    min-height: 1400px;
  }
}

@media (min-width: 1729px) {

  .teaser-film::before,
  .hero::before,
  .illustration::before,
  .illustration::after,
  .gallery::before,
  .ending::before,
  .scallop-band::before {
    position: absolute;
    inset: -34px;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    filter: blur(24px) saturate(0.96);
    pointer-events: none;
    transform: scale(1.04);
  }

  .teaser-film::before {
    background-image: url("../assets/desktop/hero-film.webp");
    filter: blur(24px) brightness(0.55) saturate(0.9);
    opacity: 0.86;
  }

  .hero::before {
    background-image: url("../assets/desktop/hero-kv.webp");
    filter: blur(22px) brightness(0.58) saturate(0.9);
    opacity: 0.9;
  }

  .illustration::before {
    background-image: url("../assets/desktop/main-art.webp");
    opacity: 0.82;
  }

  .illustration::after {
    background-image: url("../assets/desktop/art-for-picture-book.webp");
    opacity: 0;
  }

  .illustration.is-playing::before {
    animation: illustration-primary-layer 8000ms linear infinite both;
  }

  .illustration.is-playing::after {
    animation: illustration-secondary-layer 8000ms linear infinite both;
  }

  .gallery::before {
    top: 503px;
    bottom: auto;
    height: 1152px;
    background-image: url("../assets/desktop/gallery-hero.webp");
    filter: blur(24px) brightness(0.84) saturate(0.95);
    opacity: 0.74;
  }

  .ending::before {
    background-image: url("../assets/desktop/ending.webp");
    filter: blur(24px) brightness(0.9) saturate(0.95);
    opacity: 0.82;
  }

  .scallop-band::before {
    inset: -24px;
    background-image: linear-gradient(rgba(61, 165, 173, 0.24), rgba(61, 165, 173, 0.24)), url("../assets/desktop/scallop-pattern-band.webp");
    background-repeat: repeat-x;
    background-size: auto 100%;
    filter: blur(18px) saturate(1.08);
    opacity: 0.9;
  }

  .illustration__frame,
  .gallery__hero,
  .gallery__rail-wrap,
  .scallop-band picture,
  .ending img,
  .ending__video {
    position: relative;
    z-index: 1;
  }

  .ending__copy {
    z-index: 2;
  }
}

@media (max-height: 620px) and (min-width: 768px) {
  .section-dots {
    gap: 6px;
  }

  .section-dots__link {
    min-height: 15px;
  }

  .section-dots__label {
    font-size: 14px;
  }
}

@media (max-width: 767px) {
  .pc-only {
    display: none;
  }

  .sp-only {
    display: block;
  }

  .section-inner {
    width: calc(100% - 42px);
  }

  .section-title {
    font-size: 34px;
    font-weight: 300;
  }

  .section-subtitle {
    margin-top: 8px;
    font-size: 12px;
    line-height: 2;
  }

  .lead,
  .body-copy {
    font-size: 12.5px;
    line-height: 2.35;
  }

  .menu-toggle {
    display: flex;
  }

  .mobile-drawer {
    display: block;
    height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .drawer-menu {
    position: relative;
    top: auto;
    left: auto;
    padding: 130px 0 max(42px, env(safe-area-inset-bottom));
  }

  .section-dots {
    display: none;
  }

  .teaser-film {
    height: 100vh;
    height: 100dvh;
  }

  .teaser-film__content {
    padding: 40px 20px;
  }

  .play-button {
    width: 60px;
    height: 60px;
  }

  .play-button img {
    width: 14px;
    height: 16px;
  }

  .teaser-film__heading {
    margin-top: 22px;
    font-size: 21px;
    line-height: 1.75;
  }

  .teaser-film__note {
    width: min(335px, 100%);
    margin-top: 10px;
    font-size: 11px;
  }

  .teaser-film__placeholder {
    width: min(335px, 100%);
    font-size: 9.5px;
  }

  .teaser-film__controls {
    right: 17px;
    bottom: 18px;
    gap: 12px;
  }

  .teaser-film__skip {
    min-width: 64px;
    min-height: 22px;
    font-size: 12px;
  }

  .teaser-film__sound {
    min-width: 92px;
  }

  .hero {
    height: 100vh;
    height: 100dvh;
    background: linear-gradient(180deg, #0a1310 0%, #0a1310 95%, #b8d7d5 100%);
  }

  .hero__media {
    inset: 0;
    width: 100%;
    transform: none;
  }

  .hero__title-art {
    top: 21.75%;
    right: 0;
    left: 0;
    width: min(277px, calc(100% - 42px));
    margin: 0 auto;
    transform: none;
  }

  .hero__brand {
    top: 85.65%;
    right: auto;
    left: calc(50% - 38.5px);
    width: 77px;
    height: 18px;
    object-fit: contain;
  }

  .hero__sigil {
    top: 21px;
    left: 13px;
    width: 48px;
    height: 49px;
  }

  .hero__badge {
    display: none;
  }

  .hero__logo {
    top: 12px;
    right: auto;
    left: 73px;
    width: 64px;
    height: 64px;
  }

  .hero__sp-copy {
    position: absolute;
    top: 78.25%;
    left: 50%;
    display: block;
    width: min(360px, calc(100% - 42px));
    margin: 0;
    color: var(--gold);
    font-size: 20px;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 0;
    text-align: center;
    transform: translateX(-50%);
  }

  .scroll-cue {
    bottom: 20px;
    height: 38px;
  }

  .story {
    height: 1925px;
    min-height: 0;
    padding: 0;
  }

  .story__bloom {
    top: -283px;
    left: calc(50% - 671px);
    width: 2696px;
    transform: none;
  }

  .story__content {
    position: static;
    width: 100%;
  }

  .story__eyebrow,
  .story__artist,
  .story__credit,
  .story__lead,
  .story__spell,
  .story__spell-sub,
  .story__intro,
  .story__body,
  .story__continue,
  .story__continue-note {
    position: absolute;
    left: max(21px, calc(50% - 180px));
    width: min(360px, calc(100% - 42px));
    margin: 0;
  }

  .story__eyebrow {
    top: 69px;
    font-size: 15px;
    line-height: 1.6;
    letter-spacing: 1.5px;
  }

  .story__artist {
    top: 95px;
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: 1.36px;
  }

  .story__credit {
    top: 173px;
    font-size: 11.5px;
    line-height: 2.35;
    letter-spacing: 1.15px;
  }

  .story__lead {
    top: 374px;
    font-size: 20px;
    line-height: 1.9;
    letter-spacing: 2.6px;
  }

  .story__spell {
    top: 484px;
    font-size: 16px;
    line-height: 2.2;
    letter-spacing: 1.6px;
  }

  .story__spell-sub {
    top: 529px;
    font-size: 11px;
    line-height: 2.1;
    letter-spacing: 0.88px;
  }

  .story__book {
    position: absolute;
    top: 591px;
    left: calc(50% - 101.5px);
    width: 203px;
    height: 254px;
    margin: 0;
  }

  .story__body {
    top: 1308px;
    font-size: 12.5px;
    line-height: 2.15;
    letter-spacing: 1.5px;
  }

  .story__intro {
    top: 901px;
    font-size: 12.5px;
    line-height: 2.15;
    letter-spacing: 1.5px;
  }

  .story__body p {
    margin-bottom: 24px;
  }

  .story__mirror {
    top: 989px;
    left: calc(50% - 66.5px);
    width: 122px;
    height: 261px;
    transform: none;
  }

  .story__stump {
    top: 1685px;
    right: auto;
    bottom: auto;
    left: calc(50% - 85.5px);
    width: 172px;
    height: 119px;
    transform: none;
  }

  .story__continue {
    top: 1852px;
    font-size: 14px;
    line-height: normal;
    letter-spacing: 1.68px;
  }

  .story__continue-note {
    top: 1884px;
  }

  .illustration {
    height: 268px;
  }

  .illustration__frame::before,
  .illustration__frame::after {
    height: 29px;
  }

  .products-intro {
    min-height: 450px;
    padding: 72px 0 0;
  }

  .products-intro .lead {
    width: min(360px, calc(100% - 42px));
    margin-top: 32px;
  }

  .aroma {
    position: relative;
    min-height: 0;
    padding: 48px 0 92px;
  }

  .aroma .section-inner {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  .aroma .section-title,
  .aroma .section-subtitle,
  .aroma .body-copy {
    position: static;
    width: min(360px, calc(100% - 42px));
  }

  .aroma .section-title {
    margin: 0;
  }

  .aroma .section-subtitle {
    margin: 6px 0 0;
  }

  .aroma__pear {
    position: static;
    width: 96px;
    margin: 66px 0 0;
  }

  .aroma .body-copy {
    margin: 40px 0 0;
  }

  .aroma__lavender {
    position: static;
    width: 110px;
    margin: 56px 0 0;
  }

  .oil-panel {
    position: relative;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    width: min(360px, calc(100% - 42px));
    min-height: 183px;
    margin: 40px auto 0;
    padding: 20px 20px 18px;
    border-radius: 10px;
  }

  .oil-panel__title {
    grid-column: 1 / -1;
    font-size: 12.5px;
    padding-top: 0px;
  }

  .oil__image {
    width: 48px;
    height: 48px;
  }

  .oil {
    width: auto;
  }

  .oil__image .oil-img {
    inset: 6px;
    width: 36px;
    height: 36px;
  }

  .oil__jp,
  .oil__en {
    display: none;
  }

  .oil-panel__mobile-list {
    display: block;
    grid-column: 1 / -1;
    margin: 4px 0 0;
    color: var(--ink);
    font-size: 10.5px;
    line-height: 1.9;
    text-align: center;
  }

  .lineup {
    padding: 72px 0 0;
    display: flex;
    flex-direction: column;
  }

  .lineup .section-inner {
    position: static;
    order: 0;
  }

  .lineup .section-title {
    font-size: 34px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: 2.04px;
  }

  .lineup .section-subtitle {
    margin-top: 6px;
    font-size: 12px;
    line-height: 2;
    letter-spacing: 2.64px;
  }

  .lineup__lead {
    margin: 120px 0 0;
    font-size: 12.5px;
    line-height: 2.35;
    letter-spacing: 1.25px;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .lineup__number {
    display: block;
    margin: 0;
    color: var(--teal);
    font-family: var(--en-serif);
    font-size: 54px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: 3.24px;
    text-align: center;
    order: 5;
  }

  .lineup__number--01 {
    order: 0;
    position: absolute;
    top: 160px;
    left: 0;
    right: 0;
  }

  .lineup__number--02 {
    top: 1972px;
  }

  .lineup__emulsion-lead {
    display: block;
    width: auto;
    margin: 40px 0 0;
    color: var(--muted);
    font-size: 12.5px;
    line-height: 2.35;
    letter-spacing: 1.25px;
    text-align: center;
    order: 6;
  }

  .product-block,
  .product-block--reverse {
    grid-template-columns: 1fr;
    gap: 47px;
    width: min(360px, calc(100% - 42px));
    margin: 47px auto 0;
    order: 6;
  }

  .product-block--coffret {
  order: 2;
  }

  .product-block--reverse {
    top: 2156px;
    gap: 32px;
  }

  .product-block--reverse .product-visual {
    order: 0;
  }

  .product-block--reverse .product-copy,
  .product-copy {
    position: relative;
    max-width: 358px;
    min-height: 597px;
    margin: auto;
    padding: 0;
    background: url("../assets/desktop/bg-mirror-panel-01.png") center / 100% 100% no-repeat;
  }

  .product-block--reverse .product-copy {
    background-image: url("../assets/desktop/bg-mirror-panel-02.png");
  }

  .product-visual {
    min-height: auto;
  }

  .product-visual__set {
    top: 9px;
    left: 50%;
    max-width: 333px;
    height: auto;
    transform: none;
    position: static;
    margin: auto;
  }

  .product-visual__emulsion-set {
    top: 0;
    left: 50%;
    width: 166px;
    height: auto;
    transform: none;
    position: static;
    margin: auto;
  }

  .product-copy {
    text-align: center;
  }

  .product-copy__number {
    display: none;
  }

  .product-copy__name {
    position: absolute;
    top: 87px;
    left: 50%;
    width: 300px;
    margin: 0;
    font-size: 13.5px;
    line-height: 1.85;
    letter-spacing: 1.35px;
    transform: translateX(-50%);
  }

  .product-block--reverse .product-copy__name {
    top: 115px;
  }

  .product-copy__subname {
    position: absolute;
    top: 137px;
    left: 50%;
    width: 300px;
    margin: 0;
    color: var(--ink);
    font-size: 11.5px;
    line-height: 1.85;
    letter-spacing: 1.35px;
    transform: translateX(-50%);
  }

  .product-copy__price {
    position: absolute;
    top: 177px;
    left: 50%;
    width: 300px;
    margin: 0;
    font-size: 21px;
    line-height: 1.3;
    letter-spacing: 0.84px;
    transform: translateX(-50%);
  }

  .product-block--reverse .product-copy__price {
    top: 179px;
  }

  .product-copy__price span {
    font-size: 8.8px;
    letter-spacing: 0.704px;
  }

  .product-copy__desc,
  .product-copy__contents {
    position: absolute;
    left: 50%;
    margin: 0;
    font-size: 12px;
    line-height: 2.1;
    letter-spacing: 0.88px;
    overflow-wrap: anywhere;
    word-break: normal;
    transform: translateX(-50%);
  }

  .product-copy__desc {
    top: 220px;
    width: 300px;
  }

  .product-block--reverse .product-copy__desc {
    top: 224px;
    width: 271px;
  }

  .product-copy__contents {
    top: 353px;
    width: 300px;
    font-size: 10.5px;
    line-height: 1.95;
    letter-spacing: 0.84px;
  }

  .product-block--reverse .product-copy__contents {
    top: 357px;
  }

  .store-cta,
  .coming-soon {
    position: absolute;
    top: 443px;
    left: 50%;
    min-width: 143px;
    min-height: 67px;
    margin: 0;
    font-size: 12.5px;
    transform: translateX(-50%);
  }

  .product-block--reverse .store-cta,
  .product-block--reverse .coming-soon {
    top: 432px;
  }

  .storybook-feature {
    display: block;
    min-height: auto;
    margin: 50px 0 50px;
    padding: 0 0 70px;
    width: auto;
    order: 5;
  }

  .storybook-feature::after {
    bottom: 0;
    display: block;
    width: 206px;
  }

  .storybook-feature__image {
    width: 138px;
    height: auto;
    margin: 0 auto 23px;
    overflow: visible;
  }

  .storybook-feature__image img {
    position: static;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }

  .storybook-feature__copy {
    padding-top: 0;
    text-align: center;
  }

  .storybook-feature__label {
    margin-bottom: 21px;
    font-size: 16px;
    line-height: 1.3;
    letter-spacing: 1.6px;
  }

  .storybook-feature__title {
    font-size: 13px;
    line-height: 1.85;
    letter-spacing: 1.3px;
  }

  .storybook-feature__meta {
    margin-top: 16px;
    font-size: 12.5px;
    line-height: 2.1;
    letter-spacing: 0.92px;
  }

  .film {
    padding: 72px 0 0;
  }

  .film video {
    aspect-ratio: 1 / 0.65;
    width: min(333px, 100% - 42px);
    margin: auto;
  }

  .film .ornament-heading {
    margin-bottom: 30px;
  }

  .ornament-heading {
    gap: 24px;
    margin-bottom: 44px;
    font-size: 19px;
  }

  .ornament-heading::before,
  .ornament-heading::after {
    width: 49px;
  }

  .film .ornament-heading::before,
  .film .ornament-heading::after {
    width: 60px;
  }

  .video-panel {
    width: min(360px, calc(100% - 42px));
    aspect-ratio: 333 / 216;
  }

  .making .video-panel {
    width: min(360px, calc(100% - 42px));
  }

  .film .video-panel {
    aspect-ratio: 333 / 208;
  }

  .video-panel__play {
    width: 52px;
    height: 52px;
  }

  .video-panel__play::before {
    border-top-width: 8px;
    border-bottom-width: 8px;
    border-left-width: 14px;
  }

  .video-panel .play-button {
    width: 52px;
    height: 52px;
  }



  .video-modal {
    padding: 46px 16px;
  }

  .video-modal__panel {
    height: calc(100vh - 92px);
    height: calc(100dvh - 92px);
  }

  .video-modal__close {
    top: max(14px, env(safe-area-inset-top));
    right: 14px;
    width: 32px;
    height: 32px;
    font-size: 28px;
  }

  .video-modal__nav {
    width: 44px;
    height: 44px;
    background: rgba(6, 14, 11, 0.54);
    font-size: 21px;
  }

  .video-modal__nav--prev {
    left: 10px;
  }

  .video-modal__nav--next {
    right: 10px;
  }

  .gallery {
    min-height: 606px;
    padding-bottom: 0;
  }

  .gallery__intro {
    padding: 72px 21px 92px;
  }

  .gallery__credit {
    width: min(360px, 100%);
    margin-top: 20px;
    font-size: 10px;
    line-height: 2;
    letter-spacing: 1.4px;
  }

  .gallery__lead {
    width: min(360px, 100%);
    margin-top: 38px;
  }

  .gallery__hero {
    height: 250px;
  }

  .gallery__rail-wrap {
    width: 100%;
    margin-top: 0;
    padding-top: 34px;
    margin-left: 0;
    height: 274px;
    overflow: hidden;
  }

  .gallery__rail {
    height: 176px;
    gap: 12px;
    padding-left: 0;
  }

  .gallery__rail img {
    width: 100%;
    height: 100%;
  }

  .gallery__rail picture {
    width: min(360px, calc(100vw - 42px));
    height: 176px;
  }

  .gallery__nav {
    position: relative;
    top: auto;
    left: auto;
    gap: 7px;
    margin-top: 18px;
    transform: none;
  }

  .icon-button {
    width: 31px;
    height: 31px;
    font-size: 12px;
  }

  .news-float {
    right: 12px;
    bottom: 24px;
    width: min(320px, calc(100vw - 24px));
    background: linear-gradient(162.15793083812736deg, rgb(201, 169, 113) 14.644%, rgb(180, 139, 70) 85.356%);
    transform: none;
    transform-origin: right bottom;
  }
  .news-float a {gap: 0.4em;flex-direction: unset;flex-wrap: wrap;}

  .news-float::after {
    right: 31px;
    left: auto;
    display: block;
  }

  .news-float__label {
    top: 15px;
    width: 58px;
    height: 19px;
    font-size: 11px;
    letter-spacing: 2.86px;
  }

  .news-float__label::after {
    content: " -";
  }

  .news-float__date {
    top: 15px;
    left: 78px;
    width: calc(100% - 122px);
    height: 19px;
    font-size: 11px;
    letter-spacing: 2.86px;
  }

  .news-float__title {
    top: 43px;
    width: calc(100% - 65px);
    height: 18px;
    overflow: hidden;
    font-size: clamp(8.5px, 2.67vw, 10px);
    line-height: 1.75;
    letter-spacing: 0.6px;
    white-space: nowrap;
  }

  .news-float__title-prefix {
    display: none;
  }

  .news-float__link {
    top: 69px;
    width: calc(100% - 72px);
    height: 15px;
    font-size: 7.5px;
    line-height: 1.95;
    letter-spacing: 0.9px;
  }

  .anniversary {
    min-height: 762px;
    padding: 46px 0 0;
  }

  .anniversary__title {
    font-size: 26px;
    line-height: 1.15;
    letter-spacing: 0.07em;
  }

  .anniversary__script {
    width: min(311px, 100%);
    margin-top: 18px;
  }

  .anniversary__logos {
    gap: 18px;
    margin: 28px 0 18px;
  }

  .anniversary__logos picture:first-child {
    width: 112px;
    height: 27px;
  }

  .anniversary__logos picture:last-child {
    width: 52px;
    height: 54px;
  }

  .anniversary__label {
    font-size: 11.5px;
    letter-spacing: 0.06em;
  }

  .anniversary__lead {
    width: min(360px, 100%);
    margin-top: 38px;
    font-size: 14px;
    line-height: 2.1;
    letter-spacing: 0.06em;
  }

  .anniversary .body-copy {
    width: min(360px, 100%);
    margin-top: 26px;
    color: #5c625e;
    font-size: 12.5px;
    line-height: 2.15;
    letter-spacing: 0.04em;
  }

  .profile {
    width: 100%;
    display: block;
  }

  .profile__photo {
    height: 258px;
    margin-top: 0;
  }

  .profile__copy {
    width: min(360px, calc(100% - 42px));
    margin: 26px auto 0;
  }

  .profile__label {
    margin-bottom: 6px;
    font-size: 12px;
    letter-spacing: 0.28em;
  }

  .profile__name {
    font-size: 26px;
    letter-spacing: 0.14em;
  }

  .profile__script {
    width: 178px;
    margin-top: 8px;
  }

  .profile__rule {
    width: 56px;
    margin: 24px 0 18px;
  }

  .profile__bio {
    font-size: 13px;
    letter-spacing: 0.04em;
  }

  .making {
    padding: 91px 0 0;
  }

  .making .ornament-heading {
    margin-bottom: 30px;
  }

  .news {
    padding: 72px 0 0;
  }

  .news .section-title {
    font-size: 28px;
  }

  .news-list {
    width: min(360px, calc(100% - 42px));
    margin-top: 40px;
  }

  .news-row {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 14px 0;
  }

  .news-row time {
    font-size: 12.5px;
  }

  .news-row p {
    font-size: 13px;
  }

  .news-expand {
    margin-top: 20px;
    font-size: 16px;
  }

  .interview {
    padding: 72px 0;
  }

  .interview .ornament-heading {
    font-size: 16px;
  }

  .interview .ornament-heading::before,
  .interview .ornament-heading::after {
    width: 28px;
  }

  .article-list {
    gap: 70px;
    width: 100%;
    margin-top: 64px;
  }

  .article-card,
  .article-card:nth-child(even) {
    grid-template-columns: 1fr;
    min-height: 0;
    box-shadow: none;
  }

  .article-card:nth-child(even) .article-card__image {
    order: 0;
  }

  .article-card__image {
    min-height: 249px;
  }

  .article-card__body {
    padding: 24px 21px 27px;
  }

  .article-card__eyebrow {
    margin-bottom: 8px;
    font-size: 16px;
  }

  .article-card__title {
    font-size: 15px;
  }

  .article-card__excerpt {
    margin-top: 16px;
    font-size: 12.5px;
  }

  .article-card__cta {
    font-size: 11.5px;
    margin-top: 8px;
  }

  .gift {
    padding: 82px 0 78px;
  }

  .gift__notice {
    font-size: 11px;
    line-height: 1.8;
    letter-spacing: 1.98px;
  }

  .gift__title {
    width: min(323px, 100%);
    margin: 20px auto 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 1.28px;
  }

  .gift__date {
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 2.8px;
  }

  .gift__rule {
    width: 48px;
    margin: 14px auto 28px;
  }

  .gift__image {
    width: 266px;
    height: 178px;
    margin-bottom: 30px;
    object-fit: contain;
  }

  .gift__lead {
    width: min(323px, 100%);
    font-size: 13px;
    line-height: 2.15;
  }

  .gift__body {
    width: min(323px, 100%);
    margin-top: 14px;
    font-size: 12px;
    line-height: 2.1;
  }

  .gift__caution {
    width: min(323px, 100%);
    margin-top: 12px;
    font-size: 11px;
    line-height: 1.8;
  }

  .gift__note {
    width: min(323px, 100%);
    font-size: 11.5px;
    line-height: 1.95;
  }

  .phase-teaser .products-intro {
    min-height: 0;
  }

  .phase-teaser .products-intro .section-subtitle {
    margin-top: 6px;
  }

  .phase-teaser .products-intro .lead {
    margin-top: 34px;
  }

  .phase-teaser .products-intro .sp-only {
    display: none;
  }

  .phase-teaser .coming-soon {
    width: 170px;
    min-width: 170px;
  }

  .phase-teaser .anniversary {
    min-height: 772px;
  }

  .ending {
    height: 500px;
  }

  .ending__copy {
    bottom: 44px;
    left: 20px;
    font-size: 20px;
    line-height: 1.9;
    text-shadow: 0 0 8px #fff;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  [data-reveal] {
    opacity: 1;
    filter: blur(0);
    transform: none;
    transition: none;
  }

  .hero[data-hero-animation] .hero__media img {
    transform: none;
    animation: none;
  }

  .teaser-film {
    transition: none;
  }
}