@font-face { font-family: 'Studio Serif'; src: local('Bodoni 72'), local('Bodoni MT'), local('Didot'); font-display: swap; }
:root { color-scheme: dark; background: #21070d; color: #f2e9d9; font-family: Georgia, 'Times New Roman', serif; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; overflow-x: hidden; background: #21070d url("textures/curtain-still.webp") 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: 0 3px 30px #110206b3; }
#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: #e9dbcc; }
.soon { font-family: Arial, sans-serif; font-size: 11px; letter-spacing: .17em; margin: 34px 0 0; color: #d0b6aa; }
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: #d1b9ac; }
.invitation { font-style: italic; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: #d1b9ac60; padding: 10px 0; transition: color .2s; }
a:hover { color: #fff6e5; }
a:focus-visible { outline: 1px solid #f2e9d9; 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; } } }
