@font-face{font-family:Pirata;src:url('assets/pirata-one.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-regular.ttf') format('truetype');font-weight:400 600;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
:root{--wine:#610f2d;--dark-wine:#490b23;--pink:#ed75ad;--paper:#fff8e9;--gold:#b09a43;--ink:#610f2d;color-scheme:light}
*{box-sizing:border-box}
html{background:var(--wine)}
body{margin:0;color:var(--paper);font-family:Cormorant,Georgia,serif;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible{outline:2px solid var(--pink);outline-offset:7px}
[hidden]{display:none!important}
.svg-library{position:absolute;width:0;height:0;overflow:hidden}
.page-shell{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#681431 0%,var(--wine) 63%,#490b23 100%);isolation:isolate}
.page-shell:after,.entrance:after{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;opacity:.08;background-image:url('assets/grain.svg');mix-blend-mode:screen}
.harlequin{position:absolute;top:0;bottom:0;width:48px;background-color:var(--pink);background-image:url('assets/harlequin.svg');background-size:80px 140px;z-index:1;opacity:.9}
.harlequin-left{left:0;border-right:5px solid var(--gold)}
.harlequin-right{right:0;border-left:5px solid var(--gold);background-position:35px 0}
.masthead{position:relative;z-index:2;max-width:1500px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:32px 92px 10px}
.wordmark{font-family:Pirata,Georgia,serif;font-size:34px;color:var(--paper);text-decoration:none;line-height:1.12}
.wordmark span{display:block;font-family:Cormorant,Georgia,serif;font-size:10px;letter-spacing:3.3px;margin-top:10px;text-align:center}
.header-note{display:flex;align-items:center;gap:20px;font-size:11px;letter-spacing:2px;color:var(--pink)}
.header-note svg{width:28px;height:28px}
.stage{min-height:710px;height:calc(100svh - 180px);max-height:960px;position:relative;display:grid;place-items:center;margin:0 60px}
.invitation-scene{width:820px;height:690px;position:relative}
.envelope{position:absolute;width:454px;height:530px;left:85px;top:62px;background:var(--gold);border:1px solid #c7b464;transform:rotate(-13deg);box-shadow:1px 18px 28px #24000f44;overflow:hidden}
.envelope:before{content:"";position:absolute;inset:0;background-image:url('assets/harlequin.svg');background-size:70px 124px;clip-path:polygon(0 0,100% 0,100% 37%,50% 68%,0 37%);opacity:.9}
.envelope:after{content:"";position:absolute;width:365px;height:365px;background:#b09a43;border:1px solid #80692f;transform:rotate(45deg);left:42px;top:350px}
.envelope-seam{position:absolute;inset:0;background:linear-gradient(145deg,transparent 60%,#806b36 60.15%,transparent 60.5%)}
.envelope-monogram{position:absolute;left:38px;bottom:28px;z-index:1;font-family:Pirata,Georgia,serif;color:#40121e;font-size:43px;transform:rotate(-2deg)}
.envelope-monogram span{font-family:Georgia,serif;font-size:24px;vertical-align:middle;margin:0 4px}
.pink-note{position:absolute;background:var(--pink);width:182px;height:245px;left:47px;top:345px;transform:rotate(-16deg);border:1px solid #ed9ac0;color:var(--wine);padding:24px 21px;box-shadow:0 7px 10px #20000e33;clip-path:polygon(0 0,90% 0,100% 8%,100% 100%,0 100%)}
.pink-note>span{font-style:italic;font-size:23px}
.pink-note strong{font-family:Pirata,Georgia,serif;font-size:39px;font-weight:400;line-height:1.08;display:block;margin:5px 0 18px}
.pink-note svg{width:28px;height:28px}
.invitation{width:570px;height:653px;position:absolute;top:10px;left:143px;filter:drop-shadow(2px 11px 12px #2b00132e);transition:transform .35s ease}
.lace{position:absolute;width:100%;height:100%;inset:0;user-select:none;pointer-events:none}
.card-content{position:absolute;inset:78px 92px 58px;display:flex;align-items:center;flex-direction:column;text-align:center;color:var(--ink);animation:content-appear .45s ease both}
.card-content>*{flex-shrink:0}
#invitation-front{inset:78px 92px;justify-content:center}
.eyebrow{font-size:10px;font-weight:500;letter-spacing:2.7px;margin:0;line-height:1.5}
.card-eyebrow{font-size:10px;letter-spacing:2px;white-space:nowrap}
.card-star{width:23px;height:23px;color:#b31340;margin:10px 0 10px;flex-shrink:0}
h1,h2{font-family:Pirata,Georgia,serif;font-weight:400;font-size:62px;line-height:.97;letter-spacing:-1px;margin:0;outline:none}
.invitation-copy{font-style:italic;font-size:22px;line-height:1.05;margin:13px 0 17px}
.accept-button{background:var(--wine);border:1px solid var(--wine);color:var(--paper);min-width:174px;padding:12px 42px;border-radius:50px;font-size:22px;line-height:1.2;display:grid;place-items:center;transition:background .2s,transform .2s,box-shadow .2s}
.button-label{transform:translateY(-1px)}
.button-arrow{position:absolute;right:21px;top:50%;transform:translateY(-50%);font-size:19px}
.accept-button:hover{background:#792443;transform:translateY(-2px);box-shadow:0 5px 0 #dfbad066}
.accept-button:active{transform:translateY(0)}
.accept-button,.back-button{position:relative}
.accept-button:after,.back-button:after{content:"";position:absolute;inset:-10px}
.fine-print{font-size:8px;letter-spacing:1.1px;line-height:1.5;margin:14px -12px 0}
.key-charm{position:absolute;width:180px;height:338px;right:18px;top:318px;transform:rotate(18deg);pointer-events:none;filter:drop-shadow(3px 7px 3px #28001033)}
.ornate-key{position:absolute;left:-88px;top:0;width:281px;height:352px}
.ambient-star{position:absolute;color:var(--pink);opacity:.7;width:40px;height:40px}
.star-one{left:13%;top:24%;width:29px;height:29px;transform:rotate(15deg)}
.star-two{right:11%;top:26%;width:61px;height:61px;opacity:.8}
.star-three{right:17%;bottom:8%;width:25px;height:25px}
.side-note{position:absolute;left:3.2%;top:52%;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:2.5px;font-size:10px;color:#e5bec8}
.page-footer{position:relative;z-index:2;margin:0 92px;min-height:65px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #e7b9cc30}
.page-footer p{font-size:9px;letter-spacing:1.8px;line-height:1.6}
.page-footer em{font-size:16px;text-transform:none;letter-spacing:0;margin-left:5px}
.page-footer button{font-size:15px;font-style:italic;border:0;background:none;color:var(--pink);padding:12px 0;min-height:44px}
.page-footer button:hover{color:var(--paper)}
.page-footer button span{font-style:normal;padding-left:6px}
.accepted-content h2{font-size:58px;line-height:1.02;margin:0 -20px;letter-spacing:-.9px}
.accepted-content .card-star{margin-top:10px;margin-bottom:10px}
.mission-label{font-size:9px;letter-spacing:2px;margin:17px 0 6px}
.mission-copy{font-size:23px;line-height:1.12;margin:0}
.signature{font-size:17px;line-height:1.4;font-style:italic;margin:14px 0 8px}
.signature span{font-size:23px}
.back-button{color:var(--wine);border:0;background:none;font-size:14px;text-decoration:underline;text-underline-offset:4px;padding:10px}
.back-button:hover{color:#a33b6c}
.entrance{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--wine);min-height:100svh;padding:30px;color:var(--paper);text-align:center;transition:opacity .55s ease,visibility .55s ease}
.entrance:before{content:"";position:absolute;inset:20px;border:1px solid #bfa05865;pointer-events:none}
.entrance.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.entrance-content{width:min(100%,450px);position:relative;z-index:1}
.entrance .eyebrow{color:var(--pink);font-size:10px;letter-spacing:3px}
.loading-key{width:145px;height:196px;object-fit:contain;margin:24px 0 18px;filter:drop-shadow(2px 4px 3px #26000d40);animation:key-turn 1.9s ease-in-out both}
.loading-title{font-family:Pirata,Georgia,serif;font-size:52px;line-height:1.1;margin:0 0 15px}
.loading-copy{font-style:italic;color:#e0baca;font-size:21px;margin:0}
.loading-track{height:1px;width:140px;margin:27px auto 20px;background:#ed75ad2b;overflow:hidden}
.loading-track span{display:block;width:100%;height:100%;background:var(--pink);transform-origin:left;animation:load-progress 1.85s ease both}
.skip-button{color:var(--paper);font-size:14px;background:none;border:0;padding:12px;font-style:italic}
.skip-button span{padding-left:9px;font-style:normal}
.entrance-footer{position:absolute;bottom:38px;font-size:9px;letter-spacing:2.8px}
body.intro-active{overflow:hidden}
.page-shell.is-revealing .invitation-scene{animation:invitation-appear .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes load-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes key-turn{0%{transform:rotate(-18deg);opacity:0}25%{opacity:1}70%{transform:rotate(15deg)}100%{transform:rotate(0)}}
@keyframes invitation-appear{from{opacity:0;transform:translateY(25px) rotate(-3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes content-appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.stage{min-height:740px}.invitation-scene{transform:scale(1.06)}}
@media(max-width:1100px){.masthead{padding-left:73px;padding-right:73px}.header-note{font-size:9px}.stage{margin:0 48px}.ambient-star{display:none}.side-note{left:0}.page-footer{margin:0 73px}.invitation-scene{width:780px}.invitation{left:113px}.envelope{left:55px}.pink-note{left:17px}.key-charm{right:4px}}
@media(max-width:800px){.harlequin{width:24px;background-size:55px 98px}.harlequin-left{border-right-width:3px}.harlequin-right{border-left-width:3px}.masthead{padding:28px 47px 4px}.wordmark{font-size:28px}.wordmark span{font-size:8px;letter-spacing:2.5px}.header-note{font-size:8px;letter-spacing:1.5px;gap:10px}.header-note svg{width:19px;height:19px}.stage{margin:0 24px;height:auto;min-height:670px}.invitation-scene{width:660px;transform:scale(.9);transform-origin:center}.invitation{left:45px}.envelope{left:28px;top:77px;width:421px;height:514px}.pink-note{left:10px;top:380px}.key-charm{right:-2px;width:133px;top:350px;transform:rotate(17deg) scale(.85)}.side-note{display:none}.page-footer{margin:0 47px;min-height:76px}.page-footer p{max-width:250px;font-size:8px}.page-footer em{display:block;margin-left:0}.page-footer button{font-size:13px;white-space:nowrap}}
@media(max-width:600px){.masthead{justify-content:center;padding-top:24px;padding-bottom:0}.wordmark{font-size:29px}.wordmark span{font-size:8px;letter-spacing:2.6px}.header-note{display:none}.stage{height:610px;min-height:0;margin:0 18px}.invitation-scene{position:absolute;width:570px;height:653px;transform:scale(.76)}.invitation{left:0;top:0}.envelope{width:393px;height:506px;left:42px;top:72px;transform:rotate(-10deg)}.pink-note{width:122px;height:180px;left:10px;top:374px;padding:20px 10px}.pink-note>span{font-size:19px}.pink-note strong{font-size:29px}.pink-note svg{width:20px;height:20px}.key-charm{right:0;top:368px;transform:rotate(17deg) scale(.72)}.harlequin{width:15px;background-size:43px 78px}.page-footer{margin:0 36px;min-height:85px;align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:0;padding:15px 0}.page-footer p{margin:0;max-width:none;font-size:8px;letter-spacing:1.3px}.page-footer em{font-size:16px;margin-top:3px}.page-footer button{font-size:12px;padding-top:12px}.loading-title{font-size:42px}.entrance-footer{font-size:8px;letter-spacing:2px}}
@media(max-width:440px){.stage{height:570px}.invitation-scene{transform:scale(.67)}.key-charm{right:6px;transform:rotate(17deg) scale(.66)}.pink-note{left:25px}.page-footer{margin:0 30px}.masthead{padding-top:26px}}
@media(max-width:370px){.stage{height:510px}.invitation-scene{transform:scale(.58)}.harlequin{width:10px}.wordmark{font-size:27px}.card-eyebrow{font-size:11px}.fine-print{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.loading-track span{transform:scaleX(1)}}
