:root{--ink: #2b0709;--wine-deep: #3e0c0e;--burgundy: #521010;--wine: #8a181d;--gold: #cdaa64;--gold-pale: #e2d184;--ivory: #f4ecda;--ivory-soft: rgba(244, 236, 218, .74);--ivory-faint: rgba(244, 236, 218, .48);--blush: #d9a99a;--hair: rgba(205, 170, 100, .34);--f-script: "Pinyon Script", "Snell Roundhand", cursive;--f-display: "Bodoni Moda", "Didot", serif;--f-body: "EB Garamond", "Garamond", Georgia, serif;--f-arabic: "Amiri", "Traditional Arabic", serif;--card-w: 480px;--dock-h: 68px;--ease-out: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-color:var(--gold) var(--ink);scrollbar-width:thin}body{margin:0;background:var(--ink);color:var(--ivory);font-family:var(--f-body);font-size:18px;line-height:1.62;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.is-locked{overflow:hidden;height:100dvh}::selection{background:var(--gold);color:var(--ink)}:focus-visible{outline:2px solid var(--gold-pale);outline-offset:3px;border-radius:6px}img{display:block;max-width:100%}button{font:inherit;color:inherit;cursor:pointer}svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}[hidden]{display:none!important}.label{margin:0;font-size:12.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}.heading{margin:0 0 28px;font-family:var(--f-script);font-weight:400;font-size:44px;line-height:1.15;color:var(--gold-pale)}.muted{color:var(--ivory-soft)}.small{font-size:15.5px;line-height:1.5}.amp{font-family:var(--f-display);font-style:italic;font-weight:400;color:var(--gold)}.tag{margin:0;font-size:14px;letter-spacing:.12em;color:var(--gold)}.arabic{margin:0 0 30px;font-family:var(--f-arabic);font-size:25px;line-height:1.9;color:var(--gold-pale)}.rule{display:flex;align-items:center;justify-content:center;gap:12px;margin:26px auto;width:150px}.rule:before,.rule:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.rule:after{transform:scaleX(-1)}.rule i{width:6px;height:6px;transform:rotate(45deg);border:1px solid var(--gold)}.stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(120% 90% at 50% 40%,var(--wine-deep),var(--ink))}.stage__forest{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/art/forest.jpg) center / cover no-repeat;opacity:.55;filter:saturate(.9)}.stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 70% at 50% 50%,transparent,rgba(43,7,9,.75))}.petals{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:40;pointer-events:none}.cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;overflow:hidden;background:var(--ink);text-align:center}.cover__forest{position:absolute;top:-4%;right:-4%;bottom:-4%;left:-4%;background:linear-gradient(180deg,#2b070959,#5210108c 45%,#2b0709d9),url(/art/forest.jpg) center / cover no-repeat}.cover__foil{position:absolute;left:50%;width:min(100%,560px);transform:translate(-50%);pointer-events:none}.cover__foil--top{top:0}.cover__foil--bottom{bottom:0}.cover__inner{position:relative;padding:0 28px;max-width:420px}.cover__names{margin:18px 0 16px;font-family:var(--f-script);font-weight:400;font-size:clamp(46px,13.5vw,64px);line-height:1.12;color:var(--gold-pale)}.cover__names span{display:block}.cover__names .amp{font-size:.5em;line-height:1.5;color:var(--gold)}.cover__date{letter-spacing:.3em}.cover__tap{margin:14px 0 0;font-style:italic;font-size:16px;color:var(--ivory-soft)}.seal{position:relative;display:grid;place-items:center;width:132px;height:132px;margin:40px auto 0;padding:0;border:0;background:none;border-radius:50%;filter:drop-shadow(0 10px 18px rgba(20,2,4,.55));transition:transform .5s var(--ease-out)}.seal img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.seal:hover{transform:scale(1.04)}.seal:active{transform:scale(.97)}.seal__mono,.mono{position:relative;font-family:var(--f-display);font-weight:400;letter-spacing:.02em}.seal__mono{font-size:30px;color:#6b4b1c;text-shadow:0 1px 0 rgba(255,240,200,.55),0 -1px 0 rgba(60,35,5,.35)}.seal__mono em,.mono em{font-family:var(--f-display);font-style:italic;font-size:.8em;margin:0 .06em}.seal:before{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:1px solid rgba(226,209,132,.4);animation:halo 3.2s var(--ease-out) infinite}@keyframes halo{0%{transform:scale(.9);opacity:.8}to{transform:scale(1.22);opacity:0}}.lang{display:inline-flex;padding:3px;border:1px solid var(--hair);border-radius:999px;background:#2b07098c}.lang button{min-width:44px;height:32px;padding:0 12px;border:0;border-radius:999px;background:none;font-size:12.5px;font-weight:500;letter-spacing:.22em;color:var(--ivory-soft);transition:background .3s,color .3s}.lang button[aria-pressed=true]{background:var(--gold);color:var(--ink)}.lang--cover{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translate(-50%);bottom:18vh}.topbar{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,calc((100vw - var(--card-w)) / 2 + 12px));z-index:60;display:flex;gap:8px;align-items:center}.topbar .lang,.icon-btn{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--hair);border-radius:50%;background:#2b07098c;color:var(--gold-pale);font-size:18px}.dock{position:fixed;left:50%;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(4,1fr);width:min(100%,var(--card-w));padding:8px 8px max(8px,env(safe-area-inset-bottom));transform:translate(-50%);background:#2b0709d6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hair)}.dock button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0;border:0;border-radius:12px;background:none;color:var(--gold-pale);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;transition:background .25s}.dock svg{font-size:22px;color:var(--gold)}.dock button:hover,.dock button:active{background:#cdaa641a}.autoscroll{position:fixed;right:max(14px,calc((100vw - var(--card-w)) / 2 + 14px));bottom:calc(var(--dock-h) + env(safe-area-inset-bottom) + 14px);z-index:60;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px 0 12px;border:1px solid var(--hair);border-radius:999px;background:#2b0709b3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--gold-pale);font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;transition:background .3s,color .3s,opacity .4s}.autoscroll svg{font-size:15px}.autoscroll.is-paused{background:var(--gold);color:var(--ink);border-color:var(--gold);box-shadow:0 8px 22px #14020473}.autoscroll.is-paused svg{fill:currentColor;stroke-width:0}.card{position:relative;z-index:1;width:min(100%,var(--card-w));margin:0 auto;overflow:hidden;background:var(--burgundy) url(/art/ground.jpg) center top / 100% auto repeat-y;box-shadow:0 30px 80px #0a010299;padding-bottom:calc(var(--dock-h) + 40px)}.foil{position:relative;width:100%;pointer-events:none;z-index:1}.foil--top{margin-bottom:-46%}.foil--bottom{margin-top:-30%}.bloom{position:absolute;z-index:0;pointer-events:none;width:50%;max-width:250px}.bloom--l{-webkit-mask-image:linear-gradient(to right,#000 45%,transparent 92%);mask-image:linear-gradient(to right,#000 45%,transparent 92%)}.bloom--r{-webkit-mask-image:linear-gradient(to left,#000 45%,transparent 92%);mask-image:linear-gradient(to left,#000 45%,transparent 92%)}.sec{position:relative;z-index:1;padding:84px 30px;text-align:center}.sec>:not(.bloom){position:relative;z-index:1;max-width:390px;margin-left:auto;margin-right:auto}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:120px;padding-bottom:120px}.bloom--hero{left:-17%;bottom:-60px;width:46%;z-index:2}.hero .label{margin-bottom:4px}.names{margin:10px auto 0;font-family:var(--f-script);font-weight:400;font-size:clamp(50px,14.5vw,68px);line-height:1.1;color:var(--gold-pale)}.names__line{display:block}.names .amp{display:block;font-size:.5em;line-height:1.5}.hero__date{margin:0;font-size:19px;letter-spacing:.04em}.hero__venue{margin:2px 0 18px;color:var(--ivory-soft);font-style:italic}.cue{margin-top:34px;font-size:22px;color:var(--gold);animation:cue 2.4s ease-in-out infinite}@keyframes cue{50%{transform:translateY(6px);opacity:.6}}.invite p{margin:0 0 10px}.bloom--invite{right:-18%;top:-10px;width:42%}.invite__salam{font-style:italic;color:var(--gold-pale);font-size:19px}.invite__hosts{margin:18px 0!important;font-family:var(--f-display);font-size:21px;line-height:1.5;color:var(--ivory)}.amp--sm{display:block;font-size:24px;line-height:1.6}.invite__hon{font-size:15.5px;letter-spacing:.02em;color:var(--gold);margin:12px 0!important}.invite__couple{margin:18px 0 6px!important;font-family:var(--f-display);font-size:21px;line-height:1.45;color:var(--gold-pale);text-wrap:balance}.invite__blessing{font-style:italic;color:var(--ivory-soft)}.date-plate{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin:0 auto 30px}.date-plate__side{padding:8px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font-size:12.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}.date-plate__num{font-family:var(--f-display);font-size:72px;line-height:1;color:var(--gold-pale)}.facts{margin:0 auto 34px}.facts>div{padding:16px 0;border-top:1px solid rgba(205,170,100,.2)}.facts>div:last-child{border-bottom:1px solid rgba(205,170,100,.2)}.facts dt{font-size:12px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}.facts dd{margin:4px 0 0;font-size:19px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:999px;font-size:13px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:transform .25s var(--ease-out),background .25s,box-shadow .25s}.btn svg{font-size:18px}.btn--solid{border:0;background:var(--gold);color:var(--ink);box-shadow:0 8px 20px #14020459}.btn--solid:hover{background:var(--gold-pale)}.btn--ghost{border:1px solid rgba(205,170,100,.55);background:#2b070940;color:var(--gold-pale)}.btn--ghost:hover{background:#cdaa641a}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:progress}.btn--wide{width:100%}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px auto 10px}.btn-row .btn{padding:0 10px;letter-spacing:.14em;white-space:nowrap}.bloom--prog{left:-20%;top:40px;width:44%}.timeline{list-style:none;margin:0 auto;padding:0}.timeline li{position:relative;padding:0 0 34px}.timeline li:not(:last-child):after{content:"";display:block;width:1px;height:34px;margin:18px auto 0;background:linear-gradient(var(--gold),transparent);transform-origin:top}.timeline li:last-child{padding-bottom:0}.timeline__node{display:block;width:9px;height:9px;margin:0 auto 12px;transform:rotate(45deg);border:1px solid var(--gold);background:var(--gold)}.timeline__time{display:block;font-family:var(--f-display);font-size:24px;color:var(--gold-pale)}.timeline__item{display:block;margin-top:2px;color:var(--ivory-soft)}.countdown .sprig{width:150px;margin:0 auto 18px}.count{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.count>div{display:flex;flex-direction:column;align-items:center;padding:14px 0 10px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.count__n{display:block;overflow:hidden;height:1.1em;font-family:var(--f-display);font-size:40px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--gold-pale)}.count__l{margin-top:6px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}.count__done{margin-top:18px;font-style:italic}.verse{padding-top:70px}.arabic--verse{font-size:23px;line-height:2.05}.verse__text{margin:0 0 14px;font-style:italic;font-size:18px;color:var(--ivory)}.verse__doa{margin:0 0 10px;color:var(--ivory-soft)}.verse__amin{margin:0;font-style:italic;color:var(--gold-pale)}.bloom--loc{right:-19%;top:-30px;width:42%}.map{position:relative;padding:34px 24px 30px;border-radius:4px;background:linear-gradient(160deg,#3e0c0eeb,#2b0709eb);box-shadow:0 16px 36px #14020466}.map__corner{position:absolute;width:18px;height:18px;border-color:var(--gold);border-style:solid;border-width:0}.map__corner--tl{top:10px;left:10px;border-top-width:1px;border-left-width:1px}.map__corner--tr{top:10px;right:10px;border-top-width:1px;border-right-width:1px}.map__corner--bl{bottom:10px;left:10px;border-bottom-width:1px;border-left-width:1px}.map__corner--br{bottom:10px;right:10px;border-bottom-width:1px;border-right-width:1px}.map__pin{font-size:30px;color:var(--gold)}.map__name{margin:10px 0 6px;font-family:var(--f-display);font-size:25px;color:var(--gold-pale)}.map__addr{margin:0;font-size:16px;color:var(--ivory-soft)}.form,.wishform form{text-align:left;margin-top:26px}.field{display:block;margin:0 0 20px;padding:0;border:0;min-width:0}.field__label{display:block;margin:0 0 8px;padding:0;font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}.field__hint{display:block;margin-top:8px;font-size:14.5px;font-style:italic;color:var(--ivory-faint)}.field input,.field textarea{width:100%;padding:14px 16px;border:1px solid rgba(205,170,100,.3);border-radius:12px;background:#2b070973;color:var(--ivory);font:inherit;font-size:18px;caret-color:var(--gold-pale);transition:border-color .25s,background .25s}.field textarea{resize:vertical;min-height:96px;line-height:1.5}.field input::placeholder,.field textarea::placeholder{color:var(--ivory-faint);font-style:italic}.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold);background:#2b0709a6}.field [aria-invalid=true]{border-color:#e59a8a}.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice label{position:relative}.choice input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.choice span{display:flex;align-items:center;justify-content:center;min-height:50px;padding:6px 10px;border:1px solid rgba(205,170,100,.45);border-radius:999px;text-align:center;font-size:12px;font-weight:500;line-height:1.3;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-pale);transition:background .25s,color .25s}.choice input:checked+span{background:var(--gold);color:var(--ink);border-color:var(--gold)}.choice input:focus-visible+span{outline:2px solid var(--gold-pale);outline-offset:3px}.stepper{display:inline-flex;align-items:center;gap:18px}.stepper button{width:46px;height:46px;border:1px solid rgba(205,170,100,.5);border-radius:50%;background:#2b070966;color:var(--gold-pale);font-size:22px;line-height:1}.stepper button:disabled{opacity:.35;cursor:default}.stepper output{min-width:34px;text-align:center;font-family:var(--f-display);font-size:30px;color:var(--gold-pale)}.form__error{margin:0 0 16px;color:#f0b3a5;font-size:16px}.done{margin-top:26px}.done .sprig{width:130px;margin:0 auto 10px}.done__title{margin:0 0 6px;font-family:var(--f-script);font-size:36px;color:var(--gold-pale)}.done .btn{margin-top:16px}.wishlist{list-style:none;margin:0 0 22px;padding:0;text-align:left}.wishlist li{padding:18px 0;border-top:1px solid rgba(205,170,100,.2)}.wishlist li:last-child{border-bottom:1px solid rgba(205,170,100,.2)}.wish__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px}.wish__name{font-family:var(--f-display);font-size:18px;color:var(--gold-pale)}.wish__tag{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.wish__msg{margin:6px 0 0;color:var(--ivory-soft);white-space:pre-line;overflow-wrap:anywhere}.wishform{margin-top:12px}.wishform summary{list-style:none}.wishform summary::-webkit-details-marker{display:none}#wishMore{margin-bottom:14px}.people{list-style:none;margin:0;padding:0}.people li{padding:22px 0;border-top:1px solid rgba(205,170,100,.2)}.people li:last-child{border-bottom:1px solid rgba(205,170,100,.2)}.person__name{margin:0;font-family:var(--f-display);font-size:21px;color:var(--ivory)}.person__role{margin:2px 0 14px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}.person__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.person__actions .btn{min-height:46px;padding:0 10px}.closing{padding-top:70px;padding-bottom:40px}.closing__flora{position:relative;height:230px;margin-top:10px;max-width:none!important}.closing__flora .bloom{bottom:0;width:44%}.closing__flora .bloom--l{left:-14%}.closing__flora .bloom--r{right:-14%}.closing__text{margin:0 0 12px;font-style:italic;font-size:19px}.closing__thanks{margin:0 0 28px;font-family:var(--f-script);font-size:48px;line-height:1.2;color:var(--gold-pale)}.mono{margin:0 auto 14px;font-size:46px;color:var(--gold-pale)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.sheet__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#14020499;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet__panel{position:absolute;left:50%;bottom:0;width:min(100%,var(--card-w));max-height:86vh;overflow-y:auto;padding:12px 26px max(24px,env(safe-area-inset-bottom));transform:translate(-50%);border-top:1px solid var(--hair);border-radius:22px 22px 0 0;background:var(--wine-deep) url(/art/ground.jpg) center / cover;text-align:center;box-shadow:0 -20px 60px #0a01028c}.sheet__grip{width:40px;height:4px;margin:0 auto 20px;border-radius:4px;background:var(--hair)}.heading--sheet{margin-bottom:18px;font-size:38px}.sheet__body{margin-bottom:18px}.sheet__body .btn{width:100%;margin-bottom:10px}.sheet__body .people li:first-child{border-top:0}.sheet__body .muted{margin:0 0 18px}.toast{position:fixed;left:50%;top:70px;z-index:90;margin:0;padding:10px 18px;transform:translate(-50%,-12px);border-radius:999px;background:var(--gold);color:var(--ink);font-size:15px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s var(--ease-out)}.toast.is-on{opacity:1;transform:translate(-50%)}.js-motion .reveal{opacity:0;transform:translateY(14px)}@media(prefers-reduced-motion:reduce){.seal:before,.cue{animation:none}.js-motion .reveal{opacity:1;transform:none}}@media(min-width:1024px){:root{--card-w: 540px}body{font-size:19px}}@media(min-width:720px){.card{margin-top:0;border-left:1px solid rgba(205,170,100,.18);border-right:1px solid rgba(205,170,100,.18)}.hero{min-height:100vh}}@media(max-width:719px){.stage{display:none}.topbar{right:12px}}
