/* Approved envelope and opening composition. */
:root{--opening-paper:#f8f5ef;--opening-bone:#d1c4b2;--opening-ink:#334630;--opening-accent:#97513f;--opening-rust:#b24d38}
.invitation-entry{background:#e6ddd0;display:flex;flex-direction:column;justify-content:center;gap:0;padding:32px 20px;isolation:isolate;transition:opacity .7s ease,visibility .7s ease;overflow:hidden;perspective:1200px}
.invitation-entry:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.38;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23a1917d' opacity='.16' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.entry-border{position:absolute;inset:18px;border:1px solid #b5a58e66;pointer-events:none}.entry-border:after{content:"";position:absolute;inset:5px;border:1px solid #b5a58e24}
.entry-greeting{font:italic 500 clamp(1.35rem,3vw,1.9rem)/1.2 "Cormorant Garamond",Georgia,serif;color:var(--opening-accent);margin:0 0 64px;position:relative;z-index:2}
.envelope-scene{position:relative;width:min(78vw,580px);aspect-ratio:1.42;transform:rotate(-3deg);perspective:1500px;margin:0 auto;isolation:isolate}
.paper-envelope{position:absolute;inset:0;filter:drop-shadow(4px 20px 17px #57402f22);perspective:1500px;transition:transform .8s cubic-bezier(.2,.7,.3,1),opacity .7s}
.envelope-back{position:absolute;inset:0;background:#cdc0ad;border:1px solid #b6a38c;border-radius:3px}
.keepsake-letter{position:absolute;inset:4% 5% 7%;background:#f8f5ef;z-index:1;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #cfc5b4;box-shadow:0 1px 6px #67544214;transform:translateY(0);transition:transform .95s cubic-bezier(.2,.65,.25,1),opacity .4s}
.keepsake-letter>span{font:italic 1.4rem "Cormorant Garamond",Georgia,serif;color:var(--opening-accent)}.keepsake-letter strong{font:500 clamp(1.8rem,4vw,3rem) "Cormorant Garamond",Georgia,serif;padding:1.3rem 0;color:var(--opening-ink)}.keepsake-letter strong i{color:var(--opening-accent)}.keepsake-letter small{font:700 .68rem Lato,sans-serif;letter-spacing:.18em}
.envelope-front{position:absolute;inset:0;background:linear-gradient(160deg,#ded3c1 0%,#d9ccba 60%,#d3c4b0 100%);clip-path:polygon(0 0,50% 47%,100% 0,100% 100%,0 100%);z-index:3;border-radius:2px}
.fold-line{position:absolute;z-index:4;bottom:0;width:59%;height:1px;background:#ad9b8455;transform-origin:0 0}.fold-left{left:0;transform:rotate(-40deg)}.fold-right{right:0;transform-origin:100% 0;transform:rotate(40deg)}
.envelope-lid{position:absolute;inset:0 0 auto;height:56%;transform-origin:center top;transform-style:preserve-3d;z-index:5;transition:transform 1s cubic-bezier(.35,.05,.3,1),filter .6s;filter:drop-shadow(0 3px 2px #77604b22)}
.envelope-lid>span{position:absolute;inset:0;background:linear-gradient(165deg,#eee4d5,#ddcfbb);clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:visible}
.envelope-inscription{position:absolute;left:0;right:0;bottom:9%;z-index:6;color:#3d4a37;transition:opacity .35s}.envelope-inscription h1{font-size:clamp(1.8rem,4.5vw,3.3rem);margin:0 0 .35rem;letter-spacing:-.035em;white-space:nowrap}.envelope-inscription h1 i{font-weight:400;color:#965c46;font-size:.8em;padding:0 .05em}.envelope-inscription p{font-size:.61rem;letter-spacing:.19em;margin:0;font-weight:700}
.wax-seal{position:absolute;left:50%;top:46%;z-index:7;transform:translate(-50%,-50%) rotate(3deg);width:68px;height:68px;border-radius:49% 47% 51% 48%;border:1px solid #88422e;background:radial-gradient(ellipse at 36% 25%,#c77b5b 0%,#ad6045 50%,#985137 80%);box-shadow:inset 2px 2px 3px #e5b59477,inset -2px -2px 3px #6f2c2470,0 3px 5px #75503950;cursor:pointer;color:#edceb7;transition:transform .35s,opacity .35s;display:grid;place-items:center;padding:0}
.wax-seal:before{content:"";position:absolute;inset:7px;border:1px solid #d0947266;border-radius:50%;box-shadow:inset 1px 1px 2px #5e312644,1px 1px 1px #e2b39366}.wax-seal>span{font:italic 500 2.6rem/1 "Cormorant Garamond",Georgia,serif;transform:translateY(-2px);text-shadow:0 1px 1px #643d3299}.wax-seal:hover{transform:translate(-50%,-50%) rotate(3deg) scale(1.05)}
.entry-botanical{position:absolute;z-index:8;width:47%;height:118%;object-fit:contain;left:-25%;top:-21%;transform:rotate(-13deg);pointer-events:none;filter:drop-shadow(1px 2px 1px #514b3020);transition:transform 1s,opacity .7s}
.entry-open-label{font:500 .83rem/1.5 Lato,Arial,sans-serif;letter-spacing:.035em;color:#5c5745;background:none;border:0;border-bottom:1px solid #9e7a5966;padding:9px 0 5px;margin:55px 0 0;cursor:pointer;position:relative;z-index:9;transition:opacity .3s}
.entry-bottom{position:absolute;bottom:36px;text-transform:uppercase;font-size:.6rem;letter-spacing:.17em;color:#72644e}.entry-bottom i{font-style:normal;margin:0 8px}
.is-opening .wax-seal{transform:translate(-50%,-70%) scale(.8);opacity:0}.is-opening .envelope-lid{transform:rotateX(180deg);z-index:2;filter:none}.is-opening .keepsake-letter{transform:translateY(-62%);transition-delay:.55s;z-index:2}.is-opening .envelope-inscription,.is-opening .entry-open-label{opacity:0}.is-opening .entry-botanical{transform:translate(-12px,20px) rotate(-18deg);opacity:.65}.is-opening .paper-envelope{transform:translateY(40px);transition-delay:.65s}.invitation-entry.opened{opacity:0;visibility:hidden}
.opening-hero{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:0 4rem;align-items:center;max-width:1440px;margin:auto;padding:72px 8% 66px;min-height:100svh;background:var(--opening-paper);isolation:isolate;overflow:hidden;color:var(--opening-ink)}
.opening-hero:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23a1917d' opacity='.2' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.hero-rule{position:absolute;inset:26px;border:1px solid #bfa98c55;pointer-events:none}.opening-heading{grid-column:1;grid-row:1;text-align:left;align-self:end;position:relative;z-index:2}.opening-eyebrow{font:italic 500 1.8rem/1.2 "Cormorant Garamond",Georgia,serif;color:var(--opening-accent);margin:0 0 1.25rem}.opening-heading h2{font-size:clamp(4.4rem,7.8vw,7.4rem);line-height:.9;letter-spacing:-.035em;margin:0}.opening-heading h2>span{display:block;padding-bottom:.13em}.opening-heading h2>span+span{padding-left:.25em}.opening-heading h2 em{color:var(--opening-accent);font-size:.75em;font-weight:400}
.portrait-composition{grid-column:2;grid-row:1/3;position:relative;max-width:430px;width:100%;justify-self:center;z-index:1;padding:20px 0}.opening-polaroid{background:#fffdf9;padding:15px 15px 18px;transform:rotate(5deg);box-shadow:0 16px 28px #493c292b,0 2px 6px #493c291a;margin:0;position:relative}.opening-polaroid img{width:100%;height:auto;display:block;filter:grayscale(1) contrast(1.03);aspect-ratio:1/1.18;object-fit:cover;object-position:50% 55%}.opening-polaroid figcaption{font:italic 500 1.35rem/1.2 "Cormorant Garamond",Georgia,serif;color:#6b614b;text-align:center;padding:17px 0 0}.hero-blossom{position:absolute;z-index:2;right:-25%;bottom:-7%;width:52%;height:68%;object-fit:contain;transform:rotate(15deg);filter:drop-shadow(1px 2px 1px #40342418);pointer-events:none}
.opening-details{grid-column:1;grid-row:2;align-self:start;max-width:420px;margin-top:2.4rem}.wedding-date{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;color:var(--opening-accent)}.wedding-date>span:first-child,.wedding-date>span:last-child{font:500 2.75rem/1 "Cormorant Garamond",Georgia,serif}.wedding-date>span:nth-child(2){font:700 .63rem/1.5 Lato,Arial,sans-serif;letter-spacing:.18em;border-left:1px solid #bda18c;border-right:1px solid #bda18c;padding:0 1rem}.wedding-date small{display:block;font:400 .55rem/1.6 Lato,sans-serif;letter-spacing:.18em;color:#676b58}.opening-message{font-size:1rem;line-height:1.7;margin:0 0 1.3rem;max-width:360px}.opening-location{font-size:.82rem;font-weight:700;letter-spacing:.02em;margin:0}.opening-location span{padding:0 .45rem;color:var(--opening-accent)}.opening-continue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;text-decoration:none;color:#706953;font-size:.65rem;text-transform:uppercase;letter-spacing:.15em}.opening-continue i{width:12px;height:12px;border-right:1px solid #9c7456;border-bottom:1px solid #9c7456;transform:rotate(45deg) translateY(-3px)}
#invitation:focus{outline:none}.opening-heading,.portrait-composition,.opening-details{opacity:0;transform:translateY(18px);transition:transform 1s cubic-bezier(.2,.7,.3,1),opacity 1s}.invitation-revealed .opening-heading,.invitation-revealed .portrait-composition,.invitation-revealed .opening-details{opacity:1;transform:translateY(0)}.invitation-revealed .portrait-composition{transition-delay:.1s}.invitation-revealed .opening-details{transition-delay:.2s}
@media(max-width:760px){
 .invitation-entry{padding:32px 20px}.entry-greeting{margin-bottom:74px;font-size:1.5rem}.envelope-scene{width:82vw;max-width:370px;aspect-ratio:1.36;transform:rotate(-4deg)}.entry-botanical{width:40%;height:110%;left:-14%;top:-37%;transform:rotate(-19deg)}.envelope-inscription{bottom:10%}.envelope-inscription h1{font-size:clamp(1.65rem,7vw,2.15rem)}.envelope-inscription p{font-size:.52rem;letter-spacing:.13em}.wax-seal{width:56px;height:56px;top:46%}.wax-seal>span{font-size:2.2rem}.entry-open-label{font-size:.78rem;margin-top:58px}.entry-bottom{font-size:.55rem;bottom:35px}.keepsake-letter strong{font-size:1.6rem;padding:.8rem 0}.keepsake-letter>span{font-size:1.25rem}
 .opening-hero{display:flex;flex-direction:column;min-height:100svh;padding:30px 25px 38px;gap:0;max-width:none}.hero-rule{inset:12px;border-color:#bfa98c40}.opening-heading{align-self:center;text-align:center;z-index:2}.opening-eyebrow{font-size:1.3rem;margin-bottom:9px}.opening-heading h2{font-size:clamp(3.3rem,15.4vw,4.45rem);line-height:.88;margin:0}.opening-heading h2>span{padding-bottom:.1em}.opening-heading h2>span+span{padding-left:.06em}.portrait-composition{width:min(59vw,255px);max-width:none;padding:0;margin:18px 0 17px;align-self:center}.opening-polaroid{padding:9px 9px 10px;transform:rotate(-4deg)}.opening-polaroid img{aspect-ratio:1/1.14;object-position:50% 60%}.opening-polaroid figcaption{font-size:1.1rem;padding-top:9px}.hero-blossom{right:-35%;bottom:-6%;width:56%;height:76%;transform:rotate(13deg)}.opening-details{max-width:100%;margin:0;align-self:center;text-align:center}.wedding-date{justify-content:center;gap:.75rem;margin:0 0 13px}.wedding-date>span:first-child,.wedding-date>span:last-child{font-size:2.35rem}.wedding-date>span:nth-child(2){font-size:.59rem;padding:0 .8rem}.wedding-date small{font-size:.52rem}.opening-message{font-size:1rem;line-height:1.48;max-width:325px;margin:0 auto 12px}.opening-location{font-size:.76rem}.opening-continue{position:static;transform:none;margin-top:19px;font-size:.58rem;line-height:1.2}.opening-continue i{width:9px;height:9px}.opening-hero .opening-heading{transition-delay:.08s}
}
@media(max-height:740px) and (max-width:760px){.opening-hero{padding-top:22px}.opening-eyebrow{font-size:1.12rem;margin-bottom:6px}.opening-heading h2{font-size:3.15rem}.portrait-composition{width:min(53vw,207px);margin:12px 0 14px}.opening-message{font-size:.94rem;line-height:1.4}.wedding-date{margin-bottom:9px}.opening-location{font-size:.73rem}.opening-continue{margin-top:14px}.entry-greeting{margin-bottom:55px}.entry-open-label{margin-top:40px}}
@media(min-width:761px) and (max-width:1000px){.opening-hero{padding:70px 7%;gap:0 2rem}.opening-heading h2{font-size:5rem}.portrait-composition{width:90%}.hero-blossom{right:-23%}}
@media(prefers-reduced-motion:reduce){.invitation-entry,.envelope-lid,.keepsake-letter,.wax-seal,.paper-envelope,.entry-botanical,.opening-heading,.portrait-composition,.opening-details{transition:none!important}.is-opening .keepsake-letter{transform:none}.is-opening .envelope-lid{transform:none}}
