@font-face { font-family: "Inter"; src: url("assets/fonts/Inter.woff2") format("woff2"); font-weight: 400 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url("assets/fonts/PlayfairDisplay.woff2") format("woff2"); font-weight: 500 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Playfair Display"; src: url("assets/fonts/PlayfairDisplay-Italic.woff2") format("woff2"); font-weight: 500 700; font-style: italic; font-display: swap; }

/* Same palette as The Attraction Code page */
:root {
  --rose: #c2566b; --rose-deep: #a3455a; --berry: #3b1a26; --berry-2: #522536;
  --blush: #fbf0ef; --ink: #241f21; --ink-soft: #4a3c3f; --muted: #8b7a7e; --line: #f1e0e0;
  --rg: linear-gradient(120deg, #c47f72 0%, #f0c4b2 48%, #f8dccf 55%, #c98a7c 100%);
  --gold: linear-gradient(120deg, #e9c98a, #fff1cf 50%, #d9ae62);
  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; font-family: var(--sans); font-size: 1.0625rem; line-height: 1.6; text-align: center; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
h1 { margin: 0; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
:focus-visible { outline: 2px solid #f3d6a0; outline-offset: 3px; }

/* landing */
.night { background: radial-gradient(60rem 36rem at 50% -15%, var(--berry-2) 0%, transparent 70%), var(--berry); color: #f1dfe3; }
.page { position: relative; overflow: hidden; min-height: 100vh; display: flex; flex-direction: column; }
.main { position: relative; z-index: 1; flex: 1; width: 100%; max-width: 30rem; margin: 0 auto; padding: clamp(2rem, 6vw, 3.5rem) 1rem 2rem; }
.kick { font-size: .75rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: #f3d6a0; }
.night h1 { font: 700 clamp(2.4rem, 1.9rem + 2.4vw, 3.2rem)/1.08 var(--serif); color: #fff; margin: .8rem 0 .7rem; }
.night h1 em { font-style: italic; font-weight: 600; background: var(--rg); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sub { font: italic 500 1.25rem/1.4 var(--serif); color: #fff3e6; }
.cover { width: min(12.5rem, 56vw); margin: 1.6rem auto 1.8rem; border-radius: 6px; box-shadow: 0 22px 40px -14px rgba(0,0,0,.65), 0 0 0 3px rgba(243,214,160,.4); transform: rotate(-2deg); }

form { background: #fff; border-radius: 18px; padding: 1.2rem 1rem 1rem; text-align: left; color: var(--ink-soft); box-shadow: 0 24px 50px -28px rgba(0,0,0,.6); }
label { display: block; font-size: .8rem; font-weight: 600; color: var(--ink); margin: 0 0 .3rem .15rem; }
input { width: 100%; padding: .8rem .9rem; border: 1px solid #ecd9da; border-radius: 10px; font: 1rem var(--sans); color: var(--ink); margin-bottom: .8rem; background: #fff; }
input:focus { outline: 2px solid var(--rose); outline-offset: 1px; border-color: var(--rose); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
button.btn { display: block; width: 100%; min-height: 3.25rem; padding: .9rem; border: 0; border-radius: 12px; background: var(--gold); color: var(--berry); font: 700 1.05rem var(--sans); cursor: pointer; }
button.btn[disabled] { opacity: .7; cursor: wait; }
.fine { font-size: .78rem; line-height: 1.5; color: var(--muted); margin-top: .7rem; text-align: center; }
.fine a { color: var(--muted); }
.err { color: #dc2626; font-size: .88rem; margin-top: .6rem; text-align: center; }
.err[hidden] { display: none; }

.foot { position: relative; z-index: 1; padding: 1.2rem 1rem 1.6rem; font-size: .75rem; color: rgba(241,223,227,.6); }
.foot a { color: inherit; }

/* floating hearts of light (from the sales page) */
.lights { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.lights i { position: absolute; width: 10px; height: 10px; opacity: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7.5-4.6-9.6-9.2C1 8.6 3 5 6.6 5c2.1 0 3.6 1.2 5.4 3.2C13.8 6.2 15.3 5 17.4 5 21 5 23 8.6 21.6 11.8 19.5 16.4 12 21 12 21z' fill='%23f3d6a0'/%3E%3C/svg%3E") center / contain no-repeat; filter: drop-shadow(0 0 6px rgba(243,214,160,.9)); animation: float-heart 9s ease-in-out infinite; }
.lights i:nth-child(1) { left: 6%; top: 70%; }
.lights i:nth-child(2) { left: 14%; top: 22%; animation-delay: 2.2s; width: 7px; height: 7px; }
.lights i:nth-child(3) { left: 30%; top: 88%; animation-delay: 4.1s; }
.lights i:nth-child(4) { left: 52%; top: 6%; animation-delay: 1.3s; width: 6px; height: 6px; }
.lights i:nth-child(5) { left: 88%; top: 58%; animation-delay: 5.6s; }
.lights i:nth-child(6) { left: 84%; top: 18%; animation-delay: 3.2s; width: 8px; height: 8px; }
.lights i:nth-child(7) { left: 92%; top: 84%; animation-delay: 6.8s; }
.lights i:nth-child(8) { left: 8%; top: 46%; animation-delay: 7.7s; width: 6px; height: 6px; }
@keyframes float-heart { 0% { opacity: 0; transform: translateY(14px) scale(.7); } 25% { opacity: .9; } 70% { opacity: .6; } 100% { opacity: 0; transform: translateY(-40px) scale(1.05); } }
@media (prefers-reduced-motion: reduce) { .lights i { display: none; } }

/* thank-you */
.light { background: linear-gradient(180deg, var(--blush) 0%, #fdf6f5 100%); color: var(--ink-soft); }
.light .main { padding-top: clamp(3rem, 10vw, 5rem); }
.env { font-size: 3.4rem; line-height: 1; }
.thread { width: 8rem; margin: .8rem auto .4rem; }
.thread svg { display: block; width: 100%; height: auto; }
.light h1 { font: 700 clamp(2.2rem, 1.8rem + 2vw, 2.9rem)/1.1 var(--serif); color: var(--ink); margin: .4rem 0 1rem; }
.light h1 em { font-style: italic; font-weight: 600; color: var(--rose); }
.light .lead { font-size: 1.05rem; line-height: 1.7; }
.light .lead strong { color: var(--ink); }
.box { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 1rem 1.1rem; text-align: left; margin-top: 1.5rem; line-height: 1.65; }
.box strong { color: var(--ink); }
.sign { font: italic 600 1.4rem var(--serif); color: var(--rose-deep); margin-top: 2rem; }
.light .foot { color: var(--muted); }

/* cookie (same as the sales page) */
.cookie { position: fixed; left: .75rem; right: .75rem; bottom: .75rem; z-index: 50; max-width: 27rem; margin: 0 auto; background: #fff; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 14px; padding: .8rem 1rem .7rem; font-size: .8rem; line-height: 1.5; box-shadow: 0 18px 40px -24px rgba(43,37,39,.35); }
.cookie[hidden] { display: none; }
.cookie a { color: var(--ink-soft); }
.cookie .row { display: flex; gap: .5rem; justify-content: center; margin-top: .5rem; }
.cookie button { min-height: 2.5rem; padding: .2rem 1.2rem; border-radius: 999px; font: inherit; font-weight: 600; cursor: pointer; border: 1px solid var(--line); background: transparent; color: var(--ink-soft); }
.cookie button.ok { background: var(--ink); color: #fff; border-color: var(--ink); }
