:root{--ink:#08090b;--iron:#17191d;--steel:#b9bec5;--silver:#e8e8e8;--blood:#8f0e24;--ember:#e02738;--smoke:#a8a8aa}*{box-sizing:border-box}html,body{margin:0;background:#050608;color:#eee;font-family:"Cormorant Garamond",Georgia,serif}body{min-height:100vh;background:radial-gradient(circle at 50% 10%,#46111b 0,transparent 34%),#050608}button,input,select,textarea{font:inherit}a{color:inherit}.desktop{display:none}main{position:relative;margin-left:auto;width:min(100%,520px);background:#08090b;box-shadow:0 0 80px #000;isolation:isolate}main>section,main>footer{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:safe center;padding:64px 46px 104px;text-align:center;background:radial-gradient(circle at 50% 48%,#281016 0,transparent 46%),linear-gradient(145deg,#111318,#050608 65%);isolation:isolate}main>section:before,main>footer:before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(115deg,transparent 0 46%,#ffffff08 47%,transparent 48%),repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 5px);pointer-events:none}.eyebrow{position:relative;z-index:4;color:#d4a4aa;font:600 9px/1.4 Arial,sans-serif;letter-spacing:3.2px;text-transform:uppercase}.eyebrow:after{content:"";display:block;width:54px;height:1px;margin:12px auto 0;background:linear-gradient(90deg,transparent,#db1c38,transparent)}h1,h2,h3,p{position:relative;z-index:4}h1,h2,h3{margin:0;font-family:"Cinzel",Georgia,serif;font-weight:500}h2{max-width:390px;margin:16px 0 13px;font-size:clamp(32px,8vw,48px);line-height:1.02;letter-spacing:-1.4px}h2 em{color:#ca1932;font-family:"Cormorant Garamond",Georgia,serif;font-weight:400}p{max-width:350px;margin:0;color:#b5b4b7;font-size:14px;line-height:1.65}.button{position:relative;z-index:5;display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:12px 23px;border:1px solid #8e2636;border-radius:3px;background:linear-gradient(135deg,#a10e29,#4f0b17);box-shadow:inset 0 1px #ff738866,0 10px 28px #0008;color:#fff;font:700 10px/1 Arial,sans-serif;letter-spacing:1.4px;text-decoration:none;text-transform:uppercase;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}.button:hover{filter:brightness(1.18)}
.metal-ornaments{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}.metal-corner{position:absolute;width:172px;height:178px;object-fit:contain;opacity:.72;filter:drop-shadow(0 0 9px #bd102a55);animation:metal-breathe 6s ease-in-out infinite}.metal-corner-a{top:3px;left:6px}.metal-corner-b{right:-2px;bottom:0;transform:rotate(180deg);animation-delay:-3s}.metal-rail{position:absolute;top:18%;bottom:18%;width:7px;background:radial-gradient(circle,#efeff1 0 1px,#6f7378 1.4px 2.8px,#190a0d 3.2px,transparent 3.8px) center/7px 15px repeat-y,linear-gradient(90deg,transparent,#9da0a4,transparent) center/2px 100% no-repeat;filter:drop-shadow(0 0 4px #a71028aa);opacity:.62}.metal-rail-left{left:12px;transform:translateY(60px)}.metal-rail-right{right:12px;transform:translateY(-60px)}.metal-bolt{position:absolute;width:9px;height:9px;border:1px solid #b9bdc2;transform:rotate(45deg);background:#4a0a14;box-shadow:0 0 9px #e31b39}.bolt-a{left:11px;top:49%;translate:0 60px}.bolt-b{right:11px;top:49%;translate:0 -60px}.metal-sparks{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none}.metal-sparks i{position:absolute;left:calc(4% + var(--spark) * 11%);bottom:-10px;width:2px;height:2px;border-radius:50%;background:#ee3448;box-shadow:0 0 7px #f2263f;animation:spark-rise calc(7s + var(--spark) * .47s) linear infinite;animation-delay:calc(var(--spark) * -1.1s)}@keyframes spark-rise{0%{transform:translateY(0);opacity:0}15%{opacity:.75}70%{opacity:.2}100%{transform:translateY(-90vh) translateX(24px);opacity:0}}@keyframes metal-breathe{0%,100%{filter:drop-shadow(0 0 8px #9a102655);opacity:.66}50%{filter:drop-shadow(0 0 15px #e01e3b88);opacity:.82}}
.cover{min-height:100dvh;padding-top:35px!important;background:radial-gradient(ellipse at 50% 0,#84102970 0,transparent 38%),radial-gradient(circle at 50% 65%,#251016 0,transparent 44%),#050608!important}.cover:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(73deg,transparent 28%,#b8132930 29%,transparent 31%),linear-gradient(107deg,transparent 69%,#b8132930 71%,transparent 72%);clip-path:polygon(0 0,100% 0,86% 100%,14% 100%)}.cover .metal-corner{width:208px;height:216px;opacity:.82}.cover .metal-corner-a{top:-2px;left:-8px}.cover .metal-corner-b{right:-6px;bottom:1px}.metal-crest{position:relative;z-index:3;width:128px;height:116px;margin:5px auto -1px;filter:drop-shadow(0 8px 20px #000) drop-shadow(0 0 10px #a50c28aa);animation:crest-pulse 4.5s ease-in-out infinite}.metal-crest img{width:100%;height:100%;object-fit:contain}.cover h1{display:grid;justify-items:center;margin:4px 0 5px;color:#f3f1ee;font-size:clamp(42px,11vw,63px);line-height:.75;letter-spacing:-2px;text-transform:uppercase;text-shadow:0 2px #000,0 0 16px #ad1730}.cover h1 i{margin:8px 0 7px;color:#c91935;font:italic 33px/1 "Cormorant Garamond",serif;text-transform:none}.cover .date{color:#ded9d7;font:600 10px/1.4 Arial,sans-serif;letter-spacing:2px;text-transform:uppercase}.recipient{position:relative;z-index:4;min-width:250px;margin:13px 0 10px;padding:8px 18px;border-block:1px solid #7e303d;background:#05060888}.recipient small{display:block;color:#969396;font:8px/1.3 Arial,sans-serif;letter-spacing:1px;text-transform:uppercase}.recipient strong{display:block;margin-top:4px;color:#fff;font-size:16px;font-weight:500}.cover .button{margin-top:2px}.cover .scroll{position:absolute;z-index:4;bottom:22px;color:#858287;font:7px/1 Arial,sans-serif;letter-spacing:2px}.cover .invitation-countdown{margin:8px 0 0!important}.cover .countdown-label{display:none}.cover .countdown-values b{border-color:#69313a!important;background:#07080acc!important;min-width:34px!important;padding:4px!important}.cover .countdown-values strong{font-size:13px!important}
@keyframes crest-pulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.025)}}
.vow{background:radial-gradient(circle at 50% 42%,#4b0d1b 0,transparent 40%),#090a0d!important}.portrait{position:relative;z-index:3;width:185px;height:230px;margin:18px 0 15px;padding:5px;border:1px solid #8f2637;background:#0b0c0f;clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 18px),calc(100% - 18px) 100%,18px 100%,0 calc(100% - 18px),0 18px)}.portrait:before{content:"";position:absolute;z-index:1;inset:10px;border:1px solid #d6d7da55;pointer-events:none}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.75) contrast(1.08)}.vow .names{position:relative;z-index:4;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;max-width:390px;gap:10px}.vow article h3{font-size:17px;color:#fff}.vow article p{margin-top:5px;font-size:10px;line-height:1.4}.vow .and{color:#c11631;font:italic 29px/1 Georgia}.vow>p{font-style:italic}
.quote{justify-content:flex-end!important;background:#090a0c!important}.quote>.quote-photo{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.62) brightness(.38) contrast(1.15)}.quote:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#05060845,#05060866 35%,#050608f5 82%)}.quote blockquote{position:relative;z-index:4;margin:20px 0 10px;color:#fff;font:italic clamp(34px,9vw,52px)/.98 "Cormorant Garamond",Georgia,serif;text-shadow:0 3px 18px #000}.quote blockquote strong{color:#cf1632;font-weight:400}.quote>p{letter-spacing:1px}
.events{background:radial-gradient(circle at 50% 50%,#331019 0,transparent 52%),#07080a!important}.event-grid{position:relative;z-index:3;display:grid;width:100%;max-width:390px;gap:9px;margin:18px 0}.event-grid article{position:relative;padding:15px 17px 14px 48px;border:1px solid #56212a;background:linear-gradient(120deg,#14161aee,#08090cee);text-align:left;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.event-grid article>span{position:absolute;left:15px;top:16px;color:#d31835;font:700 17px/1 Arial}.event-grid h3{color:#fff;font-size:20px}.event-grid small{display:block;margin:4px 0;color:#cc9ba3;font:8px/1.4 Arial;letter-spacing:1px}.event-grid b{display:block;margin:4px 0;color:#d5d5d6;font:600 10px/1.4 Arial;letter-spacing:.8px}.event-grid p{font-size:11px;line-height:1.45}.event-grid .button{margin-top:10px;font-size:8px;min-height:35px;padding:8px 12px}
.gallery{background:#07080a!important}.gallery h2{margin-bottom:19px}.photos{position:relative;z-index:3;display:grid;grid-template-columns:1.1fr .9fr;grid-template-rows:185px 185px;width:100%;max-width:390px;gap:8px}.photos figure{position:relative;margin:0;overflow:hidden;border:1px solid #632633;background:#141519}.photos figure:first-child{grid-row:1/3}.photos img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.08);transition:transform 1s,filter 1s}.photos figure:hover img{transform:scale(1.04);filter:saturate(.95)}.photos figcaption{position:absolute;right:0;bottom:0;left:0;padding:24px 9px 9px;background:linear-gradient(transparent,#050608e8);color:#ded9da;font:8px/1.4 Arial;letter-spacing:.5px}
.timeline{background:radial-gradient(ellipse at 50% 50%,#50101d 0,transparent 52%),#08090b!important}.setlist{position:relative;z-index:3;width:100%;max-width:370px;margin-top:18px;padding-left:22px;border-left:1px solid #8e2737;text-align:left}.setlist article{position:relative;padding:9px 0 11px 18px;border-bottom:1px solid #ffffff10}.setlist article:before{content:"";position:absolute;left:-27px;top:14px;width:8px;height:8px;border:1px solid #e0e0e1;transform:rotate(45deg);background:#a41229;box-shadow:0 0 12px #ec1f3d}.setlist small{color:#d28995;font:8px Arial;letter-spacing:2px}.setlist h3{margin:4px 0;color:#fff;font-size:17px}.setlist p{font-size:11px}
.gift{background:radial-gradient(circle at 50% 42%,#321018 0,transparent 46%),#07080a!important}.accounts{position:relative;z-index:3;display:grid;width:100%;max-width:380px;gap:9px;margin-top:19px}.accounts article{padding:14px 17px;border:1px solid #59202b;background:#0d0f12;text-align:left}.accounts article>span{float:right;color:#d5223d;font:700 12px Arial;letter-spacing:2px}.accounts small{display:block;color:#8f8e91;font:7px Arial;letter-spacing:1.7px}.accounts b{display:block;margin:6px 0;color:#fff;font:500 19px Cinzel,Georgia}.accounts p{font-size:10px}.accounts button{float:right;margin-top:-30px;padding:7px 10px;border:1px solid #69313a;background:#17181c;color:#ddd;font:8px Arial;cursor:pointer}.copy-status{clear:both}
.rsvp{background:radial-gradient(circle at 50% 30%,#48101c 0,transparent 44%),#08090b!important}.rsvp form{position:relative;z-index:3;display:grid;width:100%;max-width:380px;margin-top:17px;text-align:left}.rsvp label{margin:9px 0 5px;color:#c8a1a6;font:700 8px Arial;letter-spacing:1.7px;text-transform:uppercase}.rsvp input,.rsvp select,.rsvp textarea{width:100%;border:1px solid #54232b;border-radius:0;padding:10px 12px;background:#0a0b0ee8;color:#eee;outline:none}.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{border-color:#c11732;box-shadow:0 0 0 2px #c1173227}.rsvp textarea{min-height:76px;resize:vertical}.rsvp form .button{width:100%;margin-top:13px;border:1px solid #8e2636}.rsvp .demo{margin:8px auto 0;font-size:8px;text-align:center}.rsvp #rsvp-status{margin-top:8px;font-size:10px;text-align:center}
footer{background:radial-gradient(circle at 50% 45%,#57101f 0,transparent 43%),#050608!important}.closing-crest{position:relative;z-index:3;width:175px;height:165px;margin-bottom:4px;filter:drop-shadow(0 8px 22px #000) drop-shadow(0 0 10px #9e1026)}.closing-crest img{width:100%;height:100%;object-fit:contain}footer h2{color:#fff;font-size:43px;text-transform:uppercase}footer>p{color:#cc8c97;font:10px Arial;letter-spacing:3px}footer>small{position:relative;z-index:3;max-width:330px;margin-top:20px;color:#77757a;font:8px/1.6 Arial}
#sample-qr-checkin{background:radial-gradient(circle at 50% 50%,#48101c 0,transparent 47%),#07080a!important}#sample-qr-checkin .sample-qr-content{z-index:4!important}#sample-qr-checkin .sample-qr-image{border:1px solid #7c2737!important;border-radius:2px!important;background:#f5f2ed!important;box-shadow:0 0 0 5px #111318,0 13px 35px #000!important}#sample-qr-checkin .sample-qr-download{border-color:#8e2636!important;border-radius:3px!important;background:#15171b!important;color:#fff!important;font-family:Arial,sans-serif!important}
main nav{position:fixed;z-index:30;right:max(17px,calc((100vw - 520px)/2 + 17px));bottom:16px;display:flex;align-items:center;gap:3px;padding:6px;border:1px solid #6e2935;border-radius:4px;background:#090a0de8;box-shadow:0 9px 30px #000b;backdrop-filter:blur(13px)}main nav a,main nav button{display:grid;place-items:center;min-width:38px;min-height:38px;border:0;background:transparent;color:#ded9da;font:14px Arial;text-decoration:none}main nav a span,main nav button small{display:none}main nav button{cursor:pointer}.pause-icon{display:none}main nav button[aria-pressed=true] .play-icon{display:none}main nav button[aria-pressed=true] .pause-icon{display:inline}
@media(min-width:900px){body{background:#050608}.desktop{position:fixed;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;inset:0 auto 0 0;width:calc(100% - 520px);padding:7vw;background:#08090b}.desktop>img{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;filter:saturate(.72) brightness(.48) contrast(1.08)}.desktop:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#05060825,#050608c9),linear-gradient(0deg,#050608ee,transparent 60%)}.desktop .desktop-copy{position:relative;z-index:2;max-width:600px}.desktop span{color:#da9ba5;font:9px Arial;letter-spacing:4px}.desktop h2{margin:19px 0 14px;max-width:620px;font-size:clamp(42px,5vw,76px);text-align:left}.desktop h2 em{display:block}.desktop p{text-align:left}.desktop a{display:inline-block;margin-top:24px;color:#ddd;font:9px Arial;letter-spacing:1.5px;text-decoration:none;text-transform:uppercase}main{width:520px}main nav{right:17px}}
@media(max-width:600px){main>section,main>footer{padding:55px 34px 94px}.metal-corner{width:150px;height:157px}.metal-rail{top:21%;bottom:21%}.cover{padding:28px 32px 76px!important}.cover .metal-corner{width:178px;height:184px}.cover h1{font-size:clamp(39px,11vw,53px)}.metal-crest{width:112px;height:102px}.portrait{width:165px;height:205px;margin:13px 0 12px}.vow .names{gap:6px}.vow article h3{font-size:14px}.quote{padding-bottom:88px!important}.photos{grid-template-rows:150px 150px}.event-grid article{padding-block:12px}h2{font-size:clamp(29px,8vw,40px)}}
@media(max-height:700px){body[data-theme="hardcore-metal"] main>section,body[data-theme="hardcore-metal"] main>footer{padding-top:30px!important;padding-bottom:42px!important}.cover{padding:18px 32px 76px!important}.cover .metal-crest{width:88px;height:78px}.cover h1{font-size:39px}.recipient{margin-block:7px}.cover .scroll{bottom:13px}.portrait{width:135px;height:165px;margin:9px 0}.photos{grid-template-rows:125px 125px}.event-grid{margin:8px 0}.event-grid article{padding-top:8px;padding-bottom:8px}.accounts{margin-top:10px}.rsvp h2{margin-block:9px}.rsvp>p{font-size:12px}.rsvp form{margin-top:3px}.rsvp label{margin-top:3px}.rsvp input,.rsvp select,.rsvp textarea{padding:8px 11px}.rsvp textarea{min-height:43px}.rsvp form .button{min-height:39px;margin-top:8px}.rsvp .demo{margin-top:4px}.closing-crest{width:130px;height:120px}body[data-theme="hardcore-metal"] #sample-qr-checkin{padding:22px 28px 42px!important}body[data-theme="hardcore-metal"] #sample-qr-checkin .sample-qr-eyebrow{margin-bottom:6px;font-size:8px}body[data-theme="hardcore-metal"] #sample-qr-checkin h2{margin-bottom:6px;font-size:28px}body[data-theme="hardcore-metal"] #sample-qr-checkin p{margin:6px 0;font-size:10px;line-height:1.45}body[data-theme="hardcore-metal"] #sample-qr-checkin .sample-qr-name{margin-top:8px;font-size:14px}body[data-theme="hardcore-metal"] #sample-qr-checkin .sample-qr-image{width:120px;margin:10px auto;padding:5px}body[data-theme="hardcore-metal"] #sample-qr-checkin .sample-qr-download{min-height:32px;padding:6px 12px;font-size:9px}body[data-theme="hardcore-metal"] #sample-qr-checkin .sample-qr-note{margin-top:8px;font-size:8px;line-height:1.35}}
@media(prefers-reduced-motion:reduce){.metal-corner,.metal-crest,.metal-sparks i{animation:none!important}}
