/* Homepage concept: a tactile cabinet opens with the visitor's scroll. */
.cabinet-hero { padding: 0; position: relative; background: #eee7da; }
.cabinet-stage { position: relative; min-height: calc(100svh - var(--header-h)); overflow: clip; isolation: isolate; display: grid; place-items: center; }
.cabinet-interior { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 38%, #fffdf6 0%, #f3ecdf 60%, #d8c9b2 100%); box-shadow: inset 0 18px 38px #3c2a1912; }
.cabinet-interior::before { content: ''; position: absolute; inset: 22px; border: 1px solid #bca88940; border-radius: 2px; }
.cabinet-light { position: absolute; width: 72%; height: 2px; top: 22px; left: 14%; background: #fffbeb; box-shadow: 0 0 28px 10px #fff3c175; }
.cabinet-copy { position: relative; z-index: 1; width: 100%; text-align: center; padding-top: 72px; padding-bottom: 72px; }
.cabinet-copy .hero-eyebrow { font-size: 11px; color: #756247; margin-bottom: 30px; }
.cabinet-copy h1 { max-width: none; font-size: clamp(44px, 6.5vw, 100px); line-height: 1.06; letter-spacing: -.055em; font-weight: 600; }
.cabinet-copy h1 span { color: #806d50; }
.cabinet-copy .lede { max-width: 590px; margin: 28px auto 0; color: #656158; font-size: 17px; line-height: 1.75; }
.cabinet-copy .hero-cta { justify-content: center; margin-top: 32px; }
.cabinet-signature { margin-top: 48px; color: #95856d; font: 10px var(--font-mono); letter-spacing: .32em; }
.cabinet-doors, .cabinet-invitation, .cabinet-skip, .cabinet-progress { display: none; }
.cabinet-hero.is-enhanced { height: calc(185svh - var(--header-h)); }
.is-enhanced .cabinet-stage { position: sticky; top: var(--cabinet-header, var(--header-h)); height: calc(100svh - var(--cabinet-header, var(--header-h))); min-height: 0; }
.is-enhanced .cabinet-copy { opacity: var(--copy-opacity, 0); transform: translate3d(0, var(--copy-y, 36px), 0) scale(var(--copy-scale, .94)); will-change: transform, opacity; }
.is-enhanced .cabinet-doors { display: block; position: absolute; inset: 0; z-index: 3; perspective: 1800px; perspective-origin: 50% 50%; pointer-events: none; }
.cabinet-door { position: absolute; top: 0; bottom: 0; width: 50%; background-image: url('/media/1e9dae26a3ee2fe708cd-1536.webp'); background-size: var(--cabinet-texture-width) var(--cabinet-texture-height); background-repeat: no-repeat; backface-visibility: hidden; will-change: transform; transform-style: preserve-3d; }
.cabinet-door-left { left: 0; background-position: var(--cabinet-texture-left) center; transform-origin: left center; transform: rotateY(var(--left-angle, 0deg)); box-shadow: 6px 0 16px #170e0933; }
.cabinet-door-right { right: 0; background-position: var(--cabinet-texture-right) center; transform-origin: right center; transform: rotateY(var(--right-angle, 0deg)); box-shadow: -6px 0 16px #170e0933; }
.cabinet-door::after { content: ''; position: absolute; top: 0; bottom: 0; width: 12px; background: linear-gradient(90deg,#66503a,#b1936c,#624b35); }
.cabinet-door-left::after { right: -6px; transform: rotateY(90deg); }
.cabinet-door-right::after { left: -6px; transform: rotateY(90deg); }
.cabinet-door-shade { position: absolute; inset: 0; background: #1b1006; opacity: var(--door-shade, 0); }
.is-enhanced .cabinet-invitation { position: absolute; display: grid; gap: 13px; z-index: 4; bottom: 10%; left: 50%; width: max-content; max-width: 85%; text-align: center; transform: translateX(-50%); opacity: var(--hint-opacity, 1); pointer-events: none; color: #fff9eb; text-shadow: 0 2px 14px #23170c; font: 10px var(--font-mono); letter-spacing: .19em; }
.cabinet-invitation-action { font: 13px var(--font-body); letter-spacing: .02em; }
.cabinet-invitation b { display: inline-block; margin-left: 8px; font-size: 20px; font-weight: 400; }
.is-enhanced .cabinet-skip { display: block; position: absolute; z-index: 5; right: 30px; bottom: 28px; border: 1px solid #ffffff65; background: #3e2d2160; backdrop-filter: blur(12px); color: #fff9ee; border-radius: 30px; padding: 12px 19px; font: 12px var(--font-body); cursor: pointer; }
.cabinet-skip[hidden] { display: none !important; }
.cabinet-skip:hover { background: #3e2d21b0; }
.cabinet-skip:focus-visible { outline: 3px solid var(--sky); outline-offset: 4px; }
.is-enhanced .cabinet-progress { display: block; position: absolute; z-index: 5; bottom: 0; left: 0; right: 0; height: 2px; background: #54402922; }
.cabinet-progress i { display: block; height: 100%; background: #a68758; transform-origin: left; transform: scaleX(var(--open-progress, 0)); }
@media (max-width: 600px) {
  .cabinet-copy { padding: 45px 26px; }
  .cabinet-copy h1 { font-size: clamp(32px, 8.6vw, 52px); line-height: 1.1; letter-spacing: -.045em; }
  .cabinet-copy .hero-eyebrow { font-size: 9px; letter-spacing: .1em; margin-bottom: 22px; }
  .cabinet-copy .lede { font-size: 14px; line-height: 1.6; margin-top: 22px; max-width: 35ch; }
  .cabinet-copy .hero-cta { gap: 10px; margin-top: 25px; }
  .cabinet-copy .btn { font-size: 13px; padding: 12px 22px; }
  .cabinet-signature { margin-top: 28px; font-size: 9px; }
  .is-enhanced .cabinet-invitation { bottom: 17%; font-size: 8px; }
  .is-enhanced .cabinet-skip { right: 18px; bottom: 23px; }
}
@media (max-height: 620px) and (min-width: 601px) {
  .cabinet-copy { padding: 25px 32px; }
  .cabinet-copy h1 { font-size: clamp(36px, 6vw, 65px); }
  .cabinet-copy .lede { margin-top: 18px; font-size: 14px; }
  .cabinet-copy .hero-eyebrow { margin-bottom: 16px; }
  .cabinet-copy .hero-cta { margin-top: 20px; }
  .cabinet-signature { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cabinet-hero.is-enhanced { height: auto; }
  .is-enhanced .cabinet-stage { position: relative; top: auto; height: auto; min-height: calc(100svh - var(--header-h)); }
  .is-enhanced .cabinet-copy { opacity: 1; transform: none; }
  .is-enhanced .cabinet-doors, .is-enhanced .cabinet-invitation, .is-enhanced .cabinet-skip, .is-enhanced .cabinet-progress { display: none; }
}
