:root{color-scheme:dark;font-family:Georgia,'Times New Roman',serif;color:#fff1d5;background:#041a29;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-width:280px;min-height:100svh;isolation:isolate}
[hidden]{display:none!important}
.night,.shade,.snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}
.night{object-fit:cover;object-position:center 68%;z-index:-3}
.shade{z-index:-2;background:linear-gradient(180deg,rgba(0,14,27,.2),rgba(0,14,27,.32) 48%,transparent 80%)}
main{min-height:100svh;padding:clamp(42px,7svh,90px) 22px 32px;text-align:center}
.invitation{max-width:580px;margin:auto;text-shadow:0 2px 22px #001522}
.eyebrow{font:10px/1.6 system-ui,sans-serif;letter-spacing:.22em;margin:0 0 25px;color:#edcd95}
h1{font-size:clamp(42px,11.8vw,72px);line-height:1.04;font-weight:400;letter-spacing:-.04em;margin:0 0 24px}
h1 em{font-weight:400;color:#f5d79f}
.intro{font-size:clamp(15px,4vw,19px);line-height:1.65;margin:0 auto 22px}
form{max-width:350px;margin:26px auto 0}
label{display:block;font-size:15px;margin:0 0 14px}
.entry{display:flex;flex-direction:column;gap:8px}
input{width:100%;min-width:0;background:#00152344;border:0;border-bottom:1px solid #e7c78c88;color:#fff5e5;padding:14px 8px;font:16px system-ui,sans-serif;border-radius:0}
input::placeholder{color:#d7d4cd}
button{color:#ffe0a7;background:transparent;border:0;padding:12px 9px;font:600 14px system-ui,sans-serif;min-height:48px;cursor:pointer;white-space:nowrap}
button:hover{color:white}
:focus-visible{outline:2px solid #f8d596;outline-offset:5px}
.error{min-height:22px;font:13px/1.5 system-ui,sans-serif;color:#ffd1ba;margin:10px 0 0}
.countdown{display:flex;align-items:flex-start;justify-content:center;gap:12px;margin:25px auto 20px;font-variant-numeric:tabular-nums}
.countdown span{min-width:43px}
.countdown b{font-size:clamp(30px,9vw,45px);font-weight:400;line-height:1}
.countdown small{display:block;font:9px/1.5 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;margin-top:8px;color:#e7d7b7}
.countdown i{font-size:24px;font-style:normal;color:#bca77d}
.opening{font-size:17px;line-height:1.5;margin:0 0 17px}
.opening span,.promise{font:12px/1.7 system-ui,sans-serif;color:#e8dfce}
.promise{margin:0}
.signature{font-size:13px;line-height:1.8;margin:30px 0 0;color:#e7d7ba}
.signature span{font-size:22px;font-style:italic;color:#f6d59b}
.loading{margin:20svh auto 0;font-size:15px}
.little-star{display:block;font-size:36px;color:#edcd95;animation:breathe 2s ease-in-out infinite}
.snow{z-index:-1;overflow:hidden}
.flake{position:absolute;top:-12px;left:var(--x);width:var(--size);height:var(--size);border-radius:50%;background:#fff8e8;opacity:0;animation:fall var(--duration) linear var(--delay) infinite;will-change:transform}
body.is-hidden .flake{animation-play-state:paused}
.no-script{position:fixed;top:20%;width:100%;text-align:center}
@keyframes fall{0%{transform:translate3d(0,-12px,0);opacity:0}10%{opacity:var(--opacity)}90%{opacity:var(--opacity)}100%{transform:translate3d(var(--drift),105svh,0);opacity:0}}
@keyframes breathe{50%{opacity:.35;transform:scale(.85)}}
@media(min-width:700px){.night{object-position:center 65%}.shade{background:linear-gradient(90deg,#00152355,transparent,#00152355)}main{padding-top:6svh}.invitation{padding:0 20px}.signature{margin-top:25px}}
@media(max-height:700px) and (max-width:699px){main{padding-top:25px}.eyebrow{margin-bottom:16px}h1{font-size:42px;margin-bottom:16px}.intro{font-size:14px;margin-bottom:16px}.countdown{margin:18px auto}.signature{margin-top:18px}}
@media(prefers-reduced-motion:reduce){.little-star{animation:none}.flake{animation:none;top:var(--rest);opacity:var(--opacity);will-change:auto}.flake:nth-child(n+12){display:none}}
