:root {
  --ink: #090a0b;
  --ink-soft: #111214;
  --paper: #f1f0eb;
  --muted: #89898a;
  --quiet: #57585b;
  --line: rgba(241, 240, 235, .14);
  --gold: #c9a96a;
  --gold-bright: #e1c486;
  --error: #d88476;
  --serif: "Italiana", "Times New Roman", serif;
  --sans: "Manrope", "Helvetica Neue", sans-serif;
  --copy: "DM Sans", "Helvetica Neue", sans-serif;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { min-width: 320px; scroll-behavior: smooth; }
body { min-height: 100vh; min-height: 100dvh; overflow-x: hidden; background: var(--ink); color: var(--paper); font-family: var(--copy); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { border: 0; }
::selection { color: var(--ink); background: var(--gold-bright); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.preloader { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; background: var(--ink); transition: opacity .85s var(--ease), visibility .85s; }
.preloader::before { content: ""; position: absolute; inset: 20px; border: 1px solid rgba(201,169,106,.16); pointer-events: none; }
.preloader.is-done { opacity: 0; visibility: hidden; }
.preloader__content { width: min(390px, calc(100vw - 72px)); }
.preloader__logo { display: block; width: min(330px, 72vw); height: 150px; margin: 0 auto 42px; object-fit: contain; filter: drop-shadow(0 18px 36px rgba(0,0,0,.35)); animation: breathe 2.2s ease-in-out infinite; }
.preloader__progress { width: 100%; height: 1px; overflow: hidden; background: var(--line); }
.preloader__progress span { display: block; width: 0; height: 100%; background: var(--gold-bright); box-shadow: 0 0 12px var(--gold); }
.preloader__meta { display: flex; justify-content: space-between; margin-top: 14px; color: var(--muted); font-family: var(--sans); font-size: 9px; font-weight: 500; text-transform: uppercase; letter-spacing: .2em; }
.preloader__meta b { color: var(--gold-bright); font-weight: 500; }
@keyframes breathe { 50% { opacity: .7; transform: scale(.985); } }

.site { position: relative; min-height: 100vh; min-height: 100dvh; display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; opacity: 0; background: var(--ink); }
.site::before, .site::after { content: ""; position: absolute; pointer-events: none; }
.site::before { inset: 8px; z-index: 4; border: 1px solid rgba(255,255,255,.10); }
.site::after { inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(5,5,6,.55), rgba(5,5,6,.72) 32%, rgba(5,5,6,.78) 50%, rgba(5,5,6,.72) 68%, rgba(5,5,6,.55)), radial-gradient(ellipse at center, transparent 8%, rgba(0,0,0,.58) 100%); }
.cinematic-background { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: var(--ink); }
.cinematic-background__scene { position: absolute; inset: 0; opacity: 0; transform: scale(1.035); transition: opacity 1.8s var(--ease), transform 9s ease-out; }
.cinematic-background__scene.is-active { opacity: 1; transform: scale(1); }
.cinematic-background__scene img { width: 100%; height: 100%; object-fit: cover; object-position: center center; filter: saturate(.82) contrast(1.05) brightness(.72); }
.cinematic-background__scene:nth-child(1) img { object-position: 42% center; }
.cinematic-background__scene:nth-child(2) img { object-position: 58% center; }
.cinematic-background__scene:nth-child(3) img { object-position: center center; }
.cinematic-background__scene:nth-child(4) img { object-position: center center; }
.site.is-visible { opacity: 1; }
.texture { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .18; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }

.topbar, .main, .footer { position: relative; z-index: 2; }
.topbar { min-height: 88px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; margin: 0 8px; padding: 0 clamp(28px, 4.2vw, 72px); border-bottom: 1px solid var(--line); }
.wordmark { display: inline-flex; justify-self: start; align-items: center; width: 112px; height: 44px; overflow: hidden; }
.wordmark img { width: 130px; height: 90px; object-fit: contain; transform: translateX(-9px); }
.topbar__note, .access-link { font-family: var(--sans); font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .22em; }
.topbar__note { color: var(--muted); }
.access-link { justify-self: end; color: var(--gold-bright); transition: color .25s ease; }
.access-link span, .signup button span { display: inline-block; margin-left: 8px; transition: transform .35s var(--ease); }
.access-link:hover, .signup button:hover { color: var(--paper); }
.access-link:hover span, .signup button:hover span { transform: translate(3px,-3px); }

.main { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: clamp(34px, 5vh, 64px) 24px 34px; text-align: center; }
.intro { width: min(900px, 100%); }
.eyebrow { display: flex; align-items: center; justify-content: center; gap: 18px; color: var(--gold-bright); font-family: var(--sans); font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .22em; }
.eyebrow span { width: 28px; height: 1px; background: var(--gold); opacity: .65; }
.hero-logo { display: block; width: min(540px, 76vw); height: clamp(160px, 23vh, 255px); margin: -6px auto -4px; object-fit: contain; filter: drop-shadow(0 22px 55px rgba(0,0,0,.55)); }
.gold-line { width: 1px; height: 35px; margin: 0 auto 24px; background: linear-gradient(var(--gold-bright), transparent); }
.headline { font-family: var(--serif); font-size: clamp(42px, 5.1vw, 76px); font-weight: 400; line-height: .98; letter-spacing: 0; text-wrap: balance; }
.headline em { color: var(--gold-bright); font-weight: 400; }
.intro__copy { margin-top: 25px; color: var(--muted); font-size: 13px; font-weight: 300; line-height: 1.75; }
.invitation { width: min(440px, 100%); margin-top: 35px; }
.invitation h2 { color: #a2a2a3; font-family: var(--sans); font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .21em; }
.signup { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; margin-top: 15px; border-bottom: 1px solid rgba(241,240,235,.22); transition: border-color .3s ease; }
.signup:focus-within { border-color: var(--gold); }
.signup input { min-width: 0; height: 49px; border: 0; outline: 0; color: var(--paper); background: transparent; font-size: 12px; font-weight: 300; }
.signup input::placeholder { color: #6f7072; opacity: 1; }
.signup button { height: 49px; cursor: pointer; color: var(--gold-bright); background: transparent; font-family: var(--sans); font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; transition: color .25s ease; }
.form-message { min-height: 17px; margin-top: 10px; color: var(--gold-bright); font-size: 10px; letter-spacing: .04em; }
.form-message.error { color: var(--error); }

.footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px clamp(16px, 3vw, 40px); margin: 0 8px; padding: 22px clamp(28px, 4.2vw, 72px) 28px; color: var(--quiet); border-top: 1px solid var(--line); font-family: var(--sans); font-size: 9px; text-transform: uppercase; letter-spacing: .15em; }
.footer__status { display: flex; align-items: center; gap: 8px; }
.footer__status i { width: 5px; height: 5px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(201,169,106,.08); }
.footer a { transition: color .25s ease; }
.footer a:hover { color: var(--paper); }

.reveal { opacity: 0; transform: translateY(18px); }
.site.is-visible .reveal { animation: reveal 1s var(--ease) forwards; animation-delay: calc(var(--order, 0) * 90ms + 120ms); }
.reveal[data-order="0"] { --order: 0; }.reveal[data-order="1"] { --order: 1; }.reveal[data-order="2"] { --order: 2; }.reveal[data-order="3"] { --order: 3; }.reveal[data-order="4"] { --order: 4; }.reveal[data-order="5"] { --order: 5; }.reveal[data-order="6"] { --order: 6; }.reveal[data-order="7"] { --order: 7; }
@keyframes reveal { to { opacity: 1; transform: translateY(0); } }

@media (max-width: 700px) {
  .site::before { inset: 5px; }
  .site::after { background: linear-gradient(rgba(5,5,6,.72), rgba(5,5,6,.82)), radial-gradient(ellipse at center, transparent, rgba(0,0,0,.62)); }
  .cinematic-background__scene img { filter: saturate(.78) contrast(1.05) brightness(.62); }
  .cinematic-background__scene:nth-child(1) img { object-position: 25% center; }
  .cinematic-background__scene:nth-child(2) img { object-position: 76% center; }
  .cinematic-background__scene:nth-child(3) img { object-position: 48% center; }
  .cinematic-background__scene:nth-child(4) img { object-position: center center; }
  .topbar { min-height: 72px; margin: 0 5px; padding: 0 20px; grid-template-columns: 1fr 1fr; }
  .topbar__note { display: none; }
  .wordmark { width: 95px; }
  .wordmark img { width: 112px; }
  .access-link { font-size: 8px; letter-spacing: .14em; }
  .main { justify-content: flex-start; padding: 36px 22px 28px; }
  .eyebrow { gap: 12px; font-size: 8px; letter-spacing: .17em; }
  .eyebrow span { width: 18px; }
  .hero-logo { width: min(430px, 98vw); height: 180px; margin: -8px auto -12px; }
  .gold-line { height: 28px; margin-bottom: 20px; }
  .headline { font-size: clamp(39px, 12vw, 57px); line-height: 1.02; }
  .intro__copy { margin-top: 20px; font-size: 12px; }
  .invitation { margin-top: 28px; }
  .signup { grid-template-columns: 1fr auto; gap: 10px; }
  .signup button { font-size: 9px; }
  .footer { margin: 0 5px; padding: 18px 20px 22px; grid-template-columns: auto 1fr; gap: 14px; font-size: 8px; letter-spacing: .1em; }
  .footer__status { display: none; }
  .footer a { text-transform: none; letter-spacing: .06em; white-space: nowrap; }
}

@media (max-height: 760px) and (min-width: 701px) {
  .topbar { min-height: 72px; }
  .main { padding-top: 22px; padding-bottom: 20px; }
  .hero-logo { height: 160px; }
  .headline { font-size: 54px; }
  .invitation { margin-top: 24px; }
  .footer { padding-top: 16px; padding-bottom: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cinematic-background__scene { transition: none; transform: none; }
  .cinematic-background__scene:not(:first-child) { display: none; }
  .preloader__logo { animation: none; }
  .reveal { opacity: 1; transform: none; }
  .site.is-visible .reveal { animation: none; }
  * { transition-duration: .01ms !important; }
}

.messenger-cta { color: var(--gold-bright); font-family: var(--sans); font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .18em; transition: color .25s ease; }
.messenger-cta span { display: inline-block; margin-left: 6px; transition: transform .35s var(--ease); }
.messenger-cta:hover { color: var(--paper); }
.messenger-cta:hover span { transform: translate(3px,-3px); }
.signup.is-loading input { opacity: .6; }
.signup button:disabled { cursor: progress; opacity: .6; }

@media (max-width: 700px) {
  .footer { justify-content: center; text-align: center; }
  .messenger-cta { font-size: 9px; }
}

.privacy-link {
  border: 0; padding: 0; cursor: pointer; color: inherit; background: transparent;
  font-family: inherit; font-size: inherit; text-transform: inherit; letter-spacing: inherit;
  transition: color .25s ease;
}
.privacy-link:hover { color: var(--paper); }
.privacy {
  border: 0; padding: 0; margin: auto; width: min(560px, calc(100vw - 36px));
  color: var(--paper); background: transparent;
}
.privacy::backdrop { background: rgba(9, 10, 11, .82); backdrop-filter: blur(7px); }
.privacy__inner {
  max-height: 78vh; overflow: auto; border: 1px solid var(--line);
  background: var(--ink-soft); padding: clamp(22px, 4vw, 34px);
}
.privacy__title {
  margin: 0 0 14px; color: var(--gold-bright); font-family: var(--serif);
  font-size: 20px; font-weight: 400; text-transform: uppercase; letter-spacing: .18em;
}
.privacy p {
  margin: 0 0 12px; color: var(--muted); font-family: var(--copy);
  font-size: 12.5px; line-height: 1.75;
}
.privacy a { color: var(--gold-bright); text-decoration: none; border-bottom: 1px solid rgba(225, 196, 134, .3); }
.privacy a:hover { color: var(--paper); }
.privacy__close {
  margin-top: 10px; padding: 0; border: 0; background: transparent; cursor: pointer;
  color: var(--gold-bright); font-family: var(--sans); font-size: 10px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em; transition: color .25s ease;
}
.privacy__close:hover { color: var(--paper); }
