/* November refinements: painted entrance, consistent script, full lace silhouettes. */
.entrance{background:linear-gradient(#151d1024,#151d1024),url('assets/painted-background.png') center / cover no-repeat;min-height:100svh}
.entrance-border{display:none}.entrance-content{padding:45px 24px 55px;max-width:1180px;margin:auto}
.intro-copy .eyebrow{font-family:var(--serif);font-weight:400;font-size:clamp(14px,1.5vw,21px);letter-spacing:.28em;color:var(--ivory);text-shadow:0 1px 8px #151d1066}
.intro-copy h1.script{font-family:var(--script);font-size:clamp(65px,9.5vw,132px);line-height:1.05;letter-spacing:0;font-weight:400;margin:20px 0 28px;color:var(--ivory);text-shadow:0 2px 12px #151d1040}
.envelope-button{width:min(740px,86vw);margin:8px auto 0}.envelope-stage{aspect-ratio:1.72;perspective:1300px}
.open-label{font-family:var(--serif);font-weight:400;color:var(--ivory);font-size:clamp(14px,1.6vw,21px);letter-spacing:.18em;margin-top:32px;text-shadow:0 1px 8px #151d1080}
/* Rectangular crop retains every scallop projecting outside the paper triangle. */
.raised-flap{clip-path:inset(0 3.5% 58.9% 3.5%);transform-origin:50% 41.1%;transform:rotateX(90deg);backface-visibility:visible;z-index:2;opacity:0}
.open-body{clip-path:inset(41% 4.5% 4.5% 4.2%)}.folding-flap{display:none}
.opening .closed-envelope{animation:closed-fade .8s ease both}.opening .raised-flap{animation:lace-flap-open 1.15s .05s ease-in-out both}.opening .envelope-stage{transform:translateY(65px)}
@keyframes closed-fade{0%,15%{opacity:1}100%{opacity:0}}
@keyframes lace-flap-open{0%{opacity:0;transform:rotateX(90deg)}12%{opacity:1}100%{opacity:1;transform:rotateX(0)}}
/* Programmatic focus supports screen readers without a mouse-triggered outline. */
#hero-title:focus{outline:none}
.invitation-envelope{background:transparent;border:0;box-shadow:none;overflow:visible;aspect-ratio:1.68;width:min(700px,90vw);filter:drop-shadow(0 5px 6px #151d1026)}
.green-envelope-image{position:absolute;width:100%;height:auto;left:0;bottom:-7%;clip-path:inset(40.7% 4.3% 4.5% 4.1%);pointer-events:none}
.envelope-cta{top:12%;font-size:clamp(30px,4.1vw,54px);line-height:.9;left:15%;right:15%;text-shadow:0 1px 3px #151d1040}
#calendar-dialog{width:min(480px,calc(100% - 32px));text-align:center;padding:48px 32px 36px}
#calendar-dialog h2{font-size:46px;margin:10px 0 20px}.calendar-event{font-size:15px;line-height:1.8}.calendar-event strong{font-weight:400;color:var(--bronze)}
.calendar-options{display:grid;gap:14px;margin:28px 0 20px}.calendar-options .button{width:100%;font-size:10px;letter-spacing:.08em}#calendar-help{font-size:12px;line-height:1.7}
@media(max-width:700px){.entrance-content{padding:52px 12px 65px}.intro-copy .eyebrow{font-size:15px;letter-spacing:.2em}.intro-copy h1.script{font-size:clamp(57px,14.8vw,98px);margin:25px 0 28px;white-space:nowrap}.envelope-button{width:96%;margin-top:15px}.open-label{font-size:14px;letter-spacing:.17em;margin-top:30px}.opening .envelope-stage{transform:translateY(30px)}.envelope-cta{font-size:clamp(26px,7.8vw,42px);top:13%}.invitation-envelope{width:100%}#calendar-dialog{padding:45px 24px 30px}}
@media(max-height:700px) and (min-width:701px){.entrance-content{padding:28px 24px}.intro-copy h1.script{font-size:84px;margin:12px 0 16px}.envelope-button{width:540px;margin-top:0}.open-label{margin-top:20px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.opening .raised-flap{transform:none;opacity:1}.opening .closed-envelope{opacity:0}}
@media(min-width:701px){.entrance-content{padding:25px 24px 35px}.intro-copy h1.script{font-size:clamp(65px,min(9.5vw,13svh),112px);margin:12px 0 22px}.envelope-button{width:min(740px,86vw,75svh);margin-top:0}.open-label{margin-top:24px;font-size:18px}}

/* Faster 1.5-second entrance transition and painted rear Polaroid. */
.opening .raised-flap{animation-duration:.85s}
.entrance.departing{animation-duration:.4s}
.photo-back{background:#faf7f0}
.photo-back:before{content:'';position:absolute;inset:18px 18px 22%;background:url('assets/painted-background.png') center right / cover no-repeat}
@media(max-width:700px){.photo-back:before{inset:13px 13px 22%}}
