:root{color-scheme:light;--cream:oklch(.981 .014 56);--paper:oklch(.992 .008 80);--ink:oklch(.34 .034 49);--muted:oklch(.46 .035 49);--rose:oklch(.58 .109 6);--pink:oklch(.79 .103 356);--peach:oklch(.824 .094 47);--coral:oklch(.71 .14 22);--yellow:oklch(.838 .139 84);--leaf:oklch(.704 .103 149);--green:oklch(.405 .06 153);--on-green:oklch(.99 .008 75);--line:oklch(.76 .06 69);--frost:oklch(.99 .012 70/.87);--veil:oklch(.98 .014 56/.12);--shadow:0 8px 28px oklch(.34 .034 49/.08);--script:"Great Vibes","Brush Script MT",cursive;--body:"Quicksand",sans-serif}[data-theme=dark]{color-scheme:dark;--cream:oklch(.23 .032 340);--paper:oklch(.26 .029 340);--ink:oklch(.94 .025 66);--muted:oklch(.83 .027 59);--rose:oklch(.81 .087 8);--green:oklch(.74 .074 152);--on-green:oklch(.22 .028 151);--line:oklch(.58 .06 65);--frost:oklch(.26 .029 340/.94);--veil:oklch(.23 .032 340/.81);--shadow:0 8px 28px oklch(.1 .02 340/.22)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-weight:500;line-height:1.8;letter-spacing:0}body.locked{overflow:hidden}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--coral);outline-offset:5px}a{color:inherit}button:disabled{opacity:.5;cursor:default}p{margin:14px 0}h1,h2,h3{font-weight:500;margin:0;letter-spacing:0}.script{font-family:var(--script);font-weight:400;line-height:1.3;color:var(--rose)}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:3px;line-height:1.8;font-weight:600}.eyebrow,.small{color:var(--muted)}.small{font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:48px;border:1px solid transparent;border-radius:30px;background:var(--green);color:var(--on-green);padding:12px 27px;font-size:13px;font-weight:600;text-decoration:none;box-shadow:var(--shadow);transition:transform .25s,opacity .25s}.btn:hover{transform:translateY(-3px)}.btn.outline{background:var(--frost);color:var(--green);border-color:var(--line);box-shadow:none}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.icon-btn{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--frost);color:var(--green);box-shadow:var(--shadow)}.cover{height:100svh;min-height:690px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;isolation:isolate}.cover-back,.section-back{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:-3}.cover-back{object-fit:cover}.veil{position:absolute;inset:0;background:var(--veil);z-index:-2;pointer-events:none}.cover-brand{position:absolute;top:31px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:10px}.brand-flower{width:28px;height:28px;color:var(--rose)}.cover-content{position:relative;width:min(610px,75%);padding:55px 36px 45px;animation:content-in 1.3s ease both;z-index:2}.cover-content:before{content:"";position:absolute;inset:0 22px;border:1px solid var(--line);border-radius:49% 49% 2px 2px;opacity:.55;z-index:-1;pointer-events:none}.cover h1{font-size:96px;margin:16px 0 12px;line-height:1.08}.amp{display:block;font-size:49px;line-height:1.1;color:var(--muted);margin:3px}.cover-date{font-size:13px;letter-spacing:2px;margin-top:19px}.divider{display:flex;align-items:center;justify-content:center;gap:13px;margin:24px auto;max-width:175px;color:var(--leaf)}.divider:after,.divider:before{content:"";height:1px;width:50px;background:var(--line)}.divider svg{width:36px;height:24px}.guest{padding:14px 20px;margin:0 auto 21px;max-width:290px;border-radius:12px;background:var(--frost);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.guest p{margin:0;font-size:11px}.guest strong{display:block;font-size:17px;font-weight:600;margin-top:3px}.open-btn{min-width:220px}.cover-foot{position:absolute;bottom:26px;left:0;right:0;font-size:9px;letter-spacing:2.5px;color:var(--muted)}.cover-foot .tiny-flower{display:block;font-size:17px;color:var(--rose);margin-bottom:6px}.bouquet{position:absolute;width:clamp(170px,28vw,400px);pointer-events:none;z-index:0;animation:bloom 1.4s ease both}.bouquet img{width:100%;display:block;animation:sway 7s ease-in-out infinite alternate;transform-origin:15% 85%}.bouquet.tl{top:-80px;left:-75px;transform:rotate(85deg);animation-delay:.15s}.bouquet.tr{top:-65px;right:-70px;transform:rotate(180deg);animation-delay:.35s}.bouquet.bl{bottom:-70px;left:-55px;animation-delay:.55s}.bouquet.br{bottom:-65px;right:-70px;transform:rotate(-85deg);animation-delay:.75s}.bouquet.tr img{animation-duration:8s}.bouquet.br img{animation-duration:6s}.opening .bouquet{animation:part-left 1.1s ease forwards}.opening .br,.opening .tr{animation:part-right 1.1s ease forwards}.opening .cover-content{animation:content-out .65s ease forwards}.opening .cover-back{animation:content-out 1s ease forwards}#invitation[hidden]{display:none}.section{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:110px 25px;min-height:650px;background:var(--cream)}.section-back{object-fit:cover;object-position:center;opacity:.56;top:-30px;height:calc(100% + 60px)}[data-theme=dark] .section-back{opacity:.18}.section .inner{max-width:850px;margin:auto;position:relative;z-index:1}.section .section-title{font-size:60px;margin:8px 0 25px}.section .intro{font-size:14px;max-width:540px;margin:0 auto 30px;line-height:2}.frost{background:var(--frost);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:24px;padding:35px;box-shadow:var(--shadow);border:1px solid color-mix(in oklab,var(--line) 35%,transparent)}.quote{max-width:620px;margin:auto;padding:42px 45px}.arabic{font-family:Georgia,serif;font-size:28px;line-height:2.2}.quote p{font-size:13px;line-height:2}.verse-label{font-size:11px;font-weight:700;color:var(--rose)}.couples{display:grid;grid-template-columns:1fr 60px 1fr;grid-gap:20px;gap:20px;align-items:center;margin-top:38px}.profile{position:relative}.portrait{width:190px;height:225px;border-radius:100px 100px 5px 5px;margin:0 auto 25px;border:1px solid var(--line);display:grid;place-items:center;position:relative;background:var(--frost)}.portrait .initial{font-family:var(--script);font-size:90px;color:var(--rose)}.portrait .photo{width:100%;height:100%;object-fit:cover;border-radius:inherit}.portrait .wreath{position:absolute;width:135px;bottom:-15px;left:-30px;pointer-events:none;animation:sway 8s ease-in-out infinite alternate}.profile h3{font-size:45px}.profile .fullname{font-size:14px;font-weight:700}.profile .parents{font-size:12px;line-height:1.9}.couple-amp{font-family:var(--script);font-size:52px;color:var(--rose)}.counter{display:flex;justify-content:center;gap:18px;margin:35px 0}.counter div{width:105px;padding:20px 8px;background:var(--frost);border-radius:8px;border:1px solid var(--line)}.counter strong{display:block;font-size:37px;font-weight:500;line-height:1.3;color:var(--green);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.counter span{font-size:11px;color:var(--muted)}.count-message{font-size:13px}.events-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:25px;gap:25px}.event-card{border-radius:8px;padding:35px 25px}.event-card>svg{width:30px;height:30px;color:var(--rose);margin-bottom:12px}.event-card h3{font-size:36px}.event-card .event-date{font-size:13px;margin-top:18px}.event-card .event-time{font-size:14px;font-weight:700;color:var(--green)}.event-card .venue{font-size:17px;font-weight:700;margin:23px 0 3px}.event-card address{font-size:12px;font-style:normal;margin-bottom:24px}.event-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}.timeline{max-width:560px;text-align:left;margin:35px auto;position:relative}.timeline:before{content:"";position:absolute;top:12px;bottom:35px;left:28px;border-left:1px solid var(--line)}.milestone{position:relative;padding:0 0 38px 78px}.milestone .timeline-flower{position:absolute;left:9px;top:0;width:39px;height:39px;color:var(--rose);background:var(--cream);padding:5px}.milestone .year{font-size:11px;letter-spacing:2px;color:var(--rose);font-weight:700}.milestone h3{font-size:19px;font-weight:600;margin-top:5px}.milestone p{font-size:13px;line-height:1.9;margin-top:9px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:13px;gap:13px}.gallery button{padding:0;border:0;border-radius:8px;overflow:hidden;background:var(--frost);aspect-ratio:3/4;position:relative}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery button:nth-child(2) img{object-position:30% center}.gallery button:nth-child(3) img{object-position:75% center}.gallery button:nth-child(4){aspect-ratio:4/3;grid-column:span 2}.gallery button:nth-child(5){aspect-ratio:auto}.gallery button:hover img{transform:scale(1.05)}.gallery button svg{position:absolute;bottom:12px;right:12px;background:var(--frost);border-radius:50%;padding:8px;width:34px;height:34px;color:var(--ink)}.form-wrap{max-width:510px;margin:auto;text-align:left}.field{margin-bottom:21px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;min-height:49px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:11px 14px;font-size:13px}.field textarea{min-height:90px;resize:vertical}.field-row{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:16px;gap:16px}.form-wrap .btn{width:100%}.form-note{font-size:11px;line-height:1.7;text-align:center;margin-bottom:0}.gifts{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;max-width:700px;margin:auto}.gift-card{border-radius:8px;padding:30px}.gift-card .provider{font-size:27px;font-weight:700;color:var(--green);margin:12px 0}.gift-card .number{font-size:18px;letter-spacing:1px;font-weight:600}.gift-card .holder{font-size:12px;margin:4px 0 21px}.gift-card .btn{min-width:175px}.closing .names{font-size:65px}.family{margin:25px 0;font-size:12px;line-height:2}.footer{margin-top:65px;font-size:10px;color:var(--muted)}.sample-note{font-size:10px;max-width:380px;margin:15px auto 0;line-height:1.7}.tools{position:fixed;right:22px;bottom:25px;display:flex;flex-direction:column;gap:10px;z-index:30}.tools .music-playing svg{animation:spin 8s linear infinite}.bottom-nav{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:7px;padding:8px 13px;background:var(--frost);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:35px;box-shadow:var(--shadow);z-index:20}.bottom-nav[hidden]{display:none}.bottom-nav a{display:grid;place-items:center;min-width:44px;height:44px;border-radius:50%;text-decoration:none;color:var(--muted)}.bottom-nav a.active,.bottom-nav a:hover{background:var(--green);color:var(--on-green)}.bottom-nav .icon{width:20px;height:20px}.petals{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}.petal{position:absolute;top:-30px;left:var(--x);width:var(--size);height:calc(var(--size)*1.5);animation:fall var(--duration) linear var(--delay) infinite;opacity:0}.petal:before{content:"";display:block;width:100%;height:100%;border-radius:85% 10% 80% 15%;background:color-mix(in oklab,var(--pink) 72%,var(--peach));animation:wobble 4s ease-in-out infinite alternate;box-shadow:inset -2px -2px 3px color-mix(in oklab,var(--coral) 35%,transparent)}.floating-flower{position:absolute;width:40px;height:40px;color:var(--coral);opacity:.65;pointer-events:none;animation:float 9s ease-in-out infinite;z-index:0}.floating-flower.f1{top:33%;left:7%}.floating-flower.f2{top:65%;right:8%;width:29px;color:var(--yellow);animation-delay:-4s}.floating-flower.f3{bottom:15%;left:17%;width:23px;color:var(--rose);animation-delay:-7s}.reveal{opacity:0;transform:translateY(25px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}.paused *,.paused :before{animation-play-state:paused!important}.modal{border:1px solid var(--line);padding:0;background:var(--paper);color:var(--ink);border-radius:12px;max-width:min(850px,92vw);max-height:85svh;overflow:hidden}.modal::-webkit-backdrop{background:oklch(.18 .018 340/.85);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal::backdrop{background:oklch(.18 .018 340/.85);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal img{display:block;width:100%;max-height:70svh;object-fit:contain}.modal-tools{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 18px;font-size:12px}.modal .icon-btn{box-shadow:none}.toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%,20px);opacity:0;transition:opacity .3s,transform .3s;max-width:90%;padding:12px 22px;background:var(--green);color:var(--on-green);border-radius:8px;font-size:12px;z-index:60;text-align:center;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}@keyframes sway{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes bloom{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}@keyframes float{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-18px) rotate(10deg)}}@keyframes fall{0%{transform:translate3d(0,-30px,0) rotate(0);opacity:0}8%{opacity:.65}90%{opacity:.65}to{transform:translate3d(70px,110vh,0) rotate(190deg);opacity:0}}@keyframes wobble{0%{transform:translateX(-25px) rotate(-20deg)}to{transform:translateX(25px) rotate(30deg)}}@keyframes content-in{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes content-out{to{opacity:0;transform:translateY(-20px)}}@keyframes part-left{to{translate:-110% 0;opacity:0}}@keyframes part-right{to{translate:110% 0;opacity:0}}@keyframes spin{to{transform:rotate(1turn)}}@media(max-aspect-ratio:1/1){.cover-back{content:var(--mobile-cover);object-fit:cover}}@media(min-width:1600px){.cover-content{padding-top:65px;padding-bottom:60px}.cover h1{font-size:110px}.bouquet{width:440px}.cover-back{object-fit:cover}}@media(max-width:600px){.cover{min-height:690px}.cover-back{content:var(--mobile-cover);object-fit:fill}.cover-brand{top:25px;gap:6px;background:var(--frost);width:max-content;max-width:85%;padding:6px 16px;border-radius:20px;left:50%;right:auto;transform:translateX(-50%)}.cover-brand .eyebrow{font-size:9px;letter-spacing:2px}.cover-content{width:88%;padding:40px 17px 35px}.cover-content:before{inset:0 6px}.cover h1{font-size:73px;margin:13px 0}.cover .amp{font-size:35px}.cover .eyebrow{font-size:9px;letter-spacing:2px}.cover-date{font-size:11px;letter-spacing:1px}.guest{max-width:238px;padding:12px 15px}.guest strong{font-size:15px}.cover-foot{font-size:8px;bottom:18px;letter-spacing:1px;background:var(--frost);left:10%;right:10%;border-radius:8px;padding:4px}.cover-foot .tiny-flower{display:none}.bouquet{width:185px}.bouquet.tl{left:-65px;top:-40px}.bouquet.tr{right:-65px;top:-35px}.bouquet.bl{left:-68px;bottom:-40px}.bouquet.br{right:-68px;bottom:-40px}.floating-flower.f1{left:3%;width:25px}.floating-flower.f2{right:3%;width:22px}.section{padding:90px 24px;min-height:600px}.section .section-title{font-size:48px;overflow-wrap:anywhere}#opening .section-title{font-size:34px}.cover .bouquet{width:150px;opacity:.7}.cover .bouquet.tl,.cover .bouquet.tr{top:-55px}.cover .bouquet.bl,.cover .bouquet.br{bottom:-65px}.section .intro{font-size:12px}.frost{padding:25px 20px}.quote .arabic{font-size:24px}.quote p{font-size:12px}.couples{grid-template-columns:1fr;gap:15px}.portrait{width:165px;height:195px}.couple-amp{font-size:40px}.profile h3{font-size:43px}.profile .fullname{font-size:13px}.counter{gap:8px}.counter div{width:69px;padding:15px 5px}.counter strong{font-size:29px}.counter span{font-size:10px}.events-grid,.gifts{grid-template-columns:1fr;gap:22px}.event-card{padding:30px 22px}.timeline{margin-top:30px}.milestone{padding-left:62px}.gallery{grid-template-columns:1fr 1fr;gap:9px}.gallery button:nth-child(3){grid-column:span 2;aspect-ratio:4/3}.gallery button:nth-child(4){grid-column:span 1;aspect-ratio:3/4}.gallery button:nth-child(5){aspect-ratio:3/4}.field-row{grid-template-columns:1fr;gap:0}.tools{right:12px;bottom:20px}.tools .icon-btn{width:40px;height:40px}.bottom-nav{left:calc(50% - 20px);padding:5px 7px;gap:2px;bottom:18px}.bottom-nav a{min-width:39px;height:39px}.bottom-nav .icon{width:18px;height:18px}.closing .names{font-size:55px}.footer{margin-bottom:55px}.form-wrap .frost{padding:25px 20px}}@media(max-height:750px) and (min-width:601px){.cover-content{padding:27px 35px}.cover h1{font-size:73px}.cover-brand{top:15px}.divider{margin:16px auto}.guest{margin-bottom:15px}.cover-foot{bottom:13px}}.garden-bloom{position:absolute;object-fit:contain;pointer-events:none;z-index:0;animation:float 11s ease-in-out infinite;opacity:.9}.garden-bloom.bloom-pink{left:2%;top:40%;width:110px;height:110px;animation-delay:-3s}.garden-bloom.bloom-peach{right:2%;top:58%;width:90px;height:90px;animation-duration:13s;animation-delay:-7s}.garden-bloom.bloom-sunshine{right:5%;top:20%;width:145px;height:145px;animation-duration:15s;animation-delay:-5s}.garden-bloom.bloom-sprig{left:1%;bottom:3%;width:190px;height:190px;animation:sway 8s ease-in-out infinite alternate;transform-origin:left bottom}.cover .garden-bloom.bloom-pink{left:9%;top:42%}.cover .garden-bloom.bloom-peach{right:9%;top:54%}.cover .garden-bloom.bloom-sunshine{right:9%;top:15%}.cover .garden-bloom.bloom-sprig{left:7%;bottom:3%}.opening .garden-bloom{animation:part-left 1.1s ease forwards}.opening .bloom-peach,.opening .bloom-sunshine{animation:part-right 1.1s ease forwards}[data-theme=dark] .garden-bloom{opacity:.8}@media(max-width:600px){.cover .garden-bloom.bloom-pink,.garden-bloom.bloom-pink{width:54px;height:54px;left:-22px;top:40%}.cover .garden-bloom.bloom-peach,.garden-bloom.bloom-peach{width:52px;height:52px;right:-20px;top:60%}.cover .garden-bloom.bloom-sunshine,.garden-bloom.bloom-sunshine{width:85px;height:85px;right:-30px;top:14%}.cover .garden-bloom.bloom-sprig,.garden-bloom.bloom-sprig{width:115px;height:115px;left:-38px;bottom:2%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before{animation:none!important;transition:none!important}.petals{display:none}.reveal{opacity:1;transform:none}.opening .cover-content{opacity:0}}