:root{color-scheme:dark;--cream:#e9cda1;--gold:#9f7846;--wine:#3c151b}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0b0908;color:var(--cream)}body{font-family:'Courier New',monospace}.entrance{position:relative;isolation:isolate;min-height:100svh;padding:clamp(30px,8svh,90px) 24px max(28px,12svh);display:flex;flex-direction:column;align-items:center}.scenery{position:absolute;inset:0;z-index:-2;overflow:hidden}.scenery img{width:100%;height:100%;object-fit:cover;object-position:center;image-rendering:auto}.scenery:after{content:'';position:absolute;inset:0;background:linear-gradient(#0003,transparent 35%,#0001 65%,#0003);pointer-events:none}.title{text-align:center;text-shadow:0 3px 9px #000;position:relative}.presenter{font-size:clamp(11px,1.25vw,19px);letter-spacing:.22em;margin:0 0 12px}h1{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(48px,7.2vw,112px);font-weight:900;letter-spacing:.035em;line-height:1.1;color:#efd8b0;text-shadow:0 3px #5d2924,0 6px #260e0b,0 6px 20px #000}.tagline{font-size:clamp(12px,1.45vw,22px);letter-spacing:.22em;margin:18px 0 0}.yard-space{flex:1;min-height:clamp(150px,27svh,360px)}.invitation{width:min(476px,100%);padding:28px 32px 22px;background:linear-gradient(135deg,#15110ef5,#100c09f5);border:1px solid #b58b52;outline:1px solid #6c512e;outline-offset:4px;box-shadow:0 8px 28px #0009;text-align:center}.email-wrap{position:relative}.email-wrap span{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:21px;pointer-events:none;color:#bfa477}input,button{font:inherit;border-radius:0;width:100%;min-height:50px}input{border:1px solid #b99b6c;background:#0d0b09;color:#f1dfbf;padding:13px 44px 13px 15px;font-size:16px}input::placeholder{color:#b39c7c;opacity:1}button{margin-top:16px;background:linear-gradient(90deg,#261113,#461a22,#261113);border:1px solid #c3a170;color:#f0dab6;letter-spacing:.16em;padding:13px 10px;cursor:pointer;font-size:16px;touch-action:manipulation}button:hover{background:#54222b}button:focus-visible,input:focus-visible{outline:2px solid #f3d59f;outline-offset:4px}.ornament{display:flex;align-items:center;gap:9px;margin:23px auto 17px;width:55%;color:#b0894c}.ornament:before,.ornament:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#8a6539)}.ornament:after{transform:rotate(180deg)}.invitation-copy{font-size:12px;line-height:1.5;margin:0}.preview-note{font-size:10px;line-height:1.5;color:#ad9679;margin:8px 0 0}.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}.noscript{text-align:center;font-size:13px}.rain{position:absolute;inset:-100px 0;opacity:.14;background-image:repeating-linear-gradient(100deg,transparent 0 89px,#dfd7bb88 90px,transparent 91px 151px);background-size:179px 90px;mask-image:repeating-linear-gradient(transparent 0 65px,#000 67px 82px,transparent 86px 90px);animation:rain 1.2s linear infinite;pointer-events:none}@keyframes rain{to{transform:translate(-12px,90px)}}
@media(max-width:700px){.entrance{padding:max(30px,env(safe-area-inset-top)) 22px max(26px,env(safe-area-inset-bottom));min-height:100svh}.scenery{background:#0b0908}.scenery img{position:absolute;top:130px;width:100%;height:auto;object-fit:contain}.scenery:after{background:linear-gradient(#0b0908 0,transparent 145px,transparent 340px,#0b0908 510px)}.presenter{font-size:10px;letter-spacing:.13em;margin-bottom:13px}h1{font-size:clamp(32px,8vw,54px);letter-spacing:.01em}.tagline{font-size:10px;letter-spacing:.12em;margin-top:14px}.yard-space{min-height:clamp(210px,35svh,330px)}.invitation{padding:22px 19px 19px;width:min(390px,100%)}button{font-size:13px;letter-spacing:.13em}.ornament{margin:17px auto 13px}.preview-note{font-size:10px}.invitation-copy{font-size:12px}}
@media(max-height:520px) and (min-width:701px){.entrance{padding:20px 24px;display:grid;grid-template-columns:1fr 1fr;gap:35px;align-content:center}.title{align-self:start}h1{font-size:48px}.presenter{font-size:11px}.tagline{font-size:11px;line-height:1.8}.yard-space{display:none}.invitation{padding:22px}.scenery img{object-position:center 58%}}
@media(prefers-reduced-motion:reduce){.rain{animation:none}}
/* Keep the mobile form directly below the yard instead of pushing it to the screen bottom. */
@media(max-width:700px){.yard-space{flex:0 0 auto;min-height:calc(100vw * .7291 + 24px)}.invitation{margin-top:0}}

[hidden]{display:none!important}#welcome-back{font-size:clamp(20px,2vw,27px);letter-spacing:.16em;margin:12px 0 22px;color:var(--cream)}.returning #entry button{margin-top:0}

#weather{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.scenery img{transition:filter .08s linear}
#landing-sound{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:auto;min-height:44px;margin:0;padding:10px 14px;font-size:10px;letter-spacing:.12em;z-index:5;background:#120e0bc9;color:#cdb38b}
body:after{content:'';position:fixed;inset:0;z-index:20;background:#000;opacity:0;pointer-events:none;transition:opacity .85s ease}
body.entering:after{opacity:1;pointer-events:auto}.entering #entry button{background:#62303a;cursor:wait}
@media(max-width:700px){#landing-sound{top:max(8px,env(safe-area-inset-top));right:12px;min-height:44px;font-size:9px;padding:8px 11px}.entrance{padding-top:max(66px,calc(env(safe-area-inset-top) + 58px))}.scenery img{top:166px}.scenery:after{background:linear-gradient(#0b0908 0,transparent 181px,transparent 376px,#0b0908 546px)}}
@media(prefers-reduced-motion:reduce){body:after{transition:opacity .15s}.scenery img{transition:none}}

/* Preserve the complete original scene on wide/fullscreen desktop displays. */
@media(min-width:701px){.scenery{position:fixed}.scenery>img:first-child{object-fit:contain;object-position:center}}
.scenery img.window-edit{position:absolute;object-fit:fill;pointer-events:none;max-width:none;visibility:hidden}

/* Approved phone landscape layout; portrait and desktop keep their existing styles. */
@media (pointer:coarse) and (orientation:landscape) and (max-height:600px) and (max-width:1100px){

html,body{height:100%;min-height:0;overflow:hidden}
.entrance{height:100dvh;min-height:0;padding:22px max(26px,env(safe-area-inset-right)) 18px 61%;display:flex;justify-content:center;gap:16px;align-items:center}
.scenery{position:absolute;inset:0 auto 0 0;width:59%;height:100%;background:#0b0908}
.scenery>img:first-child{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center}
.scenery:after{background:linear-gradient(90deg,transparent 85%,#0b0908)}
.title{align-self:auto;width:100%;text-align:center}.presenter{font-size:8px;letter-spacing:1.6px;margin:0 0 10px}
h1{font-size:35px;line-height:1.03;letter-spacing:1px;max-width:260px;margin:auto}.tagline{font-size:8px;letter-spacing:1.1px;line-height:1.5;margin:12px 0 0}
.yard-space{display:none}.invitation{width:100%;padding:15px 14px 12px;outline-offset:3px;background:#110d0be8}
input{font-size:16px;min-height:44px;padding:10px 30px 10px 10px}button{min-height:44px;font-size:11px;letter-spacing:1.1px;margin-top:10px;padding:10px 6px}
.email-wrap span{right:10px;font-size:15px}.ornament{margin:12px auto 9px;font-size:9px}.invitation-copy{font-size:9px}.preview-note{font-size:8px;margin-top:5px}
#landing-sound{left:max(12px,env(safe-area-inset-left));right:auto;top:10px;min-height:36px;padding:8px 10px;font-size:8px;background:#120e0bbd}

}
@media (pointer:coarse) and (orientation:landscape) and (max-height:360px) and (max-width:1100px){
.entrance{padding-top:10px;padding-bottom:10px;gap:10px}h1{font-size:28px}.presenter{margin-bottom:6px;letter-spacing:.7px}.tagline{margin-top:8px;font-size:7px}.invitation{padding:10px}.ornament{margin:7px auto 5px}.preview-note{font-size:7px}.invitation-copy{font-size:8px}
}

/* Fit the complete landscape placeholder without shrinking entered text. */
@media (pointer:coarse) and (orientation:landscape) and (max-height:600px) and (max-width:1100px){
.email-wrap{container-type:inline-size}
#email::placeholder{font-size:clamp(7px,calc((100cqw - 44px)/18),14px)}
}
