@font-face { font-family: 'Studio Serif'; src: local('Bodoni 72'), local('Bodoni MT'), local('Didot'); font-display: swap; }
:root { color-scheme: light; background: #f6f1ee; color: #30251b; font-family: Georgia, 'Times New Roman', serif; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; overflow-x: hidden; background: #f6f1ee url("textures/curtain-still.webp?v=warm") center / cover fixed; }
#curtain { position: fixed; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; }
main { position: relative; min-height: 100svh; display: grid; place-items: center; padding: 80px 24px 130px; }
.identity { text-align: center; text-shadow: none; }
#logo-slot:empty { display: none; }
#logo-slot img { display: block; width: clamp(72px, 11vw, 130px); max-height: 140px; object-fit: contain; margin: 0 auto 32px; }
h1 { font-family: 'Studio Serif', Georgia, serif; font-size: clamp(52px, 8.5vw, 126px); font-weight: 400; letter-spacing: -.055em; line-height: 1.05; margin: 0 0 25px; }
.announcement { font-size: clamp(16px, 1.5vw, 21px); font-style: italic; letter-spacing: .015em; margin: 0; color: #493c30; }
.soon { font-family: Arial, sans-serif; font-size: 11px; letter-spacing: .17em; margin: 34px 0 0; color: #625448; }
footer { position: absolute; z-index: 1; bottom: max(32px, env(safe-area-inset-bottom)); left: 4.5%; right: 4.5%; display: flex; justify-content: space-between; align-items: center; gap: 24px; font-size: 12px; letter-spacing: .025em; color: #625448; }
.invitation { font-style: italic; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: #62544860; padding: 10px 0; transition: color .2s; }
a:hover { color: #21190f; }
a:focus-visible { outline: 1px solid #30251b; outline-offset: 7px; }
@media (max-width: 600px) { footer { justify-content: center; bottom: 28px; } .invitation { display: none; } h1 { margin-bottom: 22px; } }
@media (prefers-reduced-motion: no-preference) { .identity { animation: arrival 1.4s ease-out both; } @keyframes arrival { from { opacity: 0; } to { opacity: 1; } } }

/* Selected brand typography: Montserrat Light, 0.39em tracking. */
.identity { font-family: 'Montserrat', sans-serif; font-weight: 300; }
.studio-wordmark { font-family: inherit; font-weight: 300; letter-spacing: normal; line-height: 1; margin: 0 0 45px; }
.studio-name { display: block; font-size: clamp(42px, 7.7vw, 110px); font-weight: 300; letter-spacing: .39em; padding-left: .39em; }
.studio-descriptor { display: block; font-size: clamp(14px, 2.3vw, 29px); font-weight: 300; letter-spacing: .8em; padding-left: .8em; margin-top: 27px; }
.identity .announcement, .identity .soon { font-family: inherit; font-weight: 300; font-style: normal; }
@media (max-width: 550px) { .studio-name { font-size: 12vw; } .studio-descriptor { font-size: 4vw; } }

/* This is a single-screen experience; touch gestures belong to the curtain. */
html, body { width: 100%; height: 100%; overflow: hidden; overscroll-behavior: none; }
body { position: fixed; inset: 0; min-height: 0; touch-action: none; }
main { height: 100%; min-height: 0; }
@media (max-width: 550px) { main { padding: 32px 20px 90px; } }
@media (max-height: 500px) {
  main { padding: 24px 20px 65px; }
  .studio-name { font-size: clamp(32px, 10vh, 60px); }
  .studio-descriptor { font-size: 13px; margin-top: 15px; }
  .studio-wordmark { margin-bottom: 22px; }
  .identity .announcement { font-size: 14px; }
  .identity .soon { margin-top: 20px; }
  footer { bottom: 12px; }
}
