@font-face{font-family:'Highway Gothic';src:url('fonts/highway-c.woff2') format('woff2');font-display:swap}
*{box-sizing:border-box}
html{font-synthesis:none;word-spacing:-.12em}
html{scroll-behavior:smooth}
body{margin:0;background:#000;color:#FBFAF6;font-family:'Highway Gothic',sans-serif}
.mono{font-family:'Highway Gothic',sans-serif;font-size:15px;letter-spacing:.1em}
.hero{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center;padding:24px}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage{position:absolute;left:50%;top:50%;width:max(100%,177.83vh);height:max(100%,56.24vw);transform:translate(-50%,-50%);animation:drift 28s ease-in-out 2.3s infinite alternate}
.stage .hero-img{object-fit:fill}
.glow{position:absolute;left:50%;top:14%;width:36%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(255,196,120,.55),rgba(255,170,90,.18) 45%,rgba(255,150,70,0) 100%);mix-blend-mode:screen;pointer-events:none;animation:breathe 7s ease-in-out infinite,flicker 11s steps(1) infinite}
.mote{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(255,226,180,.85);filter:blur(.6px);opacity:0;pointer-events:none;animation:float var(--d,16s) linear var(--w,0s) infinite}
@keyframes drift{from{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-51.5%,-49%) scale(1.07)}}
@keyframes breathe{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes flicker{0%,100%{filter:none}37%{filter:brightness(.88)}38%{filter:none}71%{filter:brightness(.93)}72%{filter:none}}
@keyframes float{0%{opacity:0;transform:translate(0,0)}15%{opacity:.7}85%{opacity:.5}100%{opacity:0;transform:translate(var(--x,20px),-160px)}}
.shade{position:absolute;inset:0;background:radial-gradient(ellipse 46% 38% at 50% 50%,rgba(20,8,0,.5),rgba(20,8,0,.18) 70%,rgba(0,0,0,.22) 100%)}
.veil{position:absolute;inset:0;background:#000;animation:lift 1.8s ease 2.3s forwards}
.lockup{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3vw,32px)}
.quiet{min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer}
.quiet:hover{color:#FBFAF6}
.mark{display:block;width:min(64vw,560px);height:auto;overflow:visible}
.letters{fill:#FBFAF6}.markwrap{position:relative}.mark.soft{mix-blend-mode:soft-light}.mark.solid{position:absolute;inset:0;animation:gone 1.8s ease 2.5s forwards}@keyframes gone{to{opacity:0;visibility:hidden}}
.letters path{animation:settle 1.1s cubic-bezier(.65,0,.15,1) both}
.letters path.lo{--y:-109px}.letters path.hi{--y:108px}

.gift{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);padding:0 8px;white-space:nowrap;color:#FBFAF6;font-family:'Highway Gothic',sans-serif;font-size:15px;letter-spacing:.1em;text-shadow:0 1px 14px rgba(0,0,0,.6);animation:fade 1.6s ease 3.6s both}
.gift:hover{text-decoration:underline;text-underline-offset:4px}
.links{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;gap:clamp(28px,6vw,64px);animation:fade 1.6s ease 3.6s both}.links .gift{position:static;transform:none;animation:none}.note{margin:-8px 0 0;font-size:15px;line-height:1.5;color:#5F5D57}.err{margin:0;font-size:15px;color:#8E1B1B}.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.letters path{animation-delay:.9s}
.tag{color:#FBFAF6;text-align:center;line-height:1.8;animation:fade 1.6s ease 3s both}
.story{background:#FBFAF6;color:#0B0B0A;padding:clamp(88px,12vw,168px) clamp(24px,8vw,120px);display:flex;flex-wrap:wrap;align-items:center;gap:clamp(48px,7vw,112px)}
.story p{flex:1 1 420px}
.story img{flex:1 1 340px;min-width:0;max-width:100%;width:100%;height:auto;display:block}
.story p{margin:0;font-size:clamp(34px,4.4vw,64px);line-height:1.08;font-weight:300;letter-spacing:-.02em}
.house{background:#000;display:flex;flex-wrap:wrap}
.rooms{flex:1 1 440px;min-width:0;align-self:center;padding:clamp(64px,8vw,112px) clamp(24px,8vw,120px)}
.bed{flex:1 1 440px;min-width:0;min-height:70vh;width:100%;object-fit:cover;display:block}
.room{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:26px 0;border-top:1px solid #3A3833}
.room:last-child{border-bottom:1px solid #3A3833}
.room h2{margin:0;font-size:clamp(28px,4vw,48px);font-weight:300;letter-spacing:-.01em}
.room span{color:#BDB9AF}
footer{background:#000;color:#BDB9AF;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:24px 24px 56px}
.scrim{position:fixed;inset:0;z-index:40;border:0;padding:0;width:100%;background:rgba(0,0,0,.6);cursor:pointer}
.panel{position:fixed;top:0;right:0;bottom:0;z-index:41;width:min(520px,100%);overflow-y:auto;background:#FBFAF6;color:#0B0B0A;padding:32px clamp(24px,5vw,48px) 48px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}
.panel h2{margin:0;font-size:46px;line-height:1.05;font-weight:400;letter-spacing:.01em}
.lead{margin:14px 0 0;font-size:19px;line-height:1.5;font-weight:400;color:#5F5D57}
form{display:flex;flex-direction:column;gap:30px;margin-top:32px}
fieldset{margin:0;padding:0;border:0}
legend,label{display:block;padding:0;font-family:'Highway Gothic',sans-serif;font-size:14px;letter-spacing:.08em}
legend{margin-bottom:12px}
.amounts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.amount{min-height:48px;padding:0 4px;border:1px solid #0B0B0A;background:transparent;color:#0B0B0A;font-family:inherit;font-size:18px;white-space:nowrap;cursor:pointer}
.amount.on{background:#0B0B0A;color:#FBFAF6}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:22px}
.wide{grid-column:1/-1}
input,textarea{display:block;width:100%;min-height:46px;padding:11px 0;border:0;border-bottom:1px solid #0B0B0A;border-radius:0;background:transparent;color:#0B0B0A;font-family:inherit;font-size:19px;font-weight:400;outline:none;resize:none}
input:focus,textarea:focus{border-bottom-width:2px;padding-bottom:10px}
.submit{width:100%;min-height:56px;border:0;background:#0B0B0A;color:#FBFAF6;font-family:inherit;font-size:19px;cursor:pointer}
.submit:disabled{cursor:not-allowed;opacity:.35}
button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
[hidden]{display:none!important}
@keyframes lift{to{opacity:0;visibility:hidden}}
@keyframes settle{from{transform:translateY(var(--y,0))}to{transform:translateY(0)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.letters path,.tag,.gift,.links{animation:none}.stage,.glow,.mote{animation:none!important}.mote{display:none}.veil{display:none}.mark.solid{display:none}}
.fine{margin:10px 0 0;font-size:14px;line-height:1.5;color:#8A867D;white-space:nowrap}.fine .sm{display:none}@media (max-width:480px){.fine .lg{display:none}.fine .sm{display:inline}}
.glow.g2{left:69%;top:8%;width:22%;animation-delay:-3s,-5s;opacity:.7}
.mark{overflow:visible}
.lead b{font-weight:400;letter-spacing:.04em}
@media (max-width:480px){.amounts{gap:6px}.amount{font-size:15px;padding:0}.fine{white-space:normal;font-size:13px}}
.fine.fw{white-space:normal}
