:root{--color-bg:#f8f6f1;--color-surface:#fff;--color-primary:#2f4f76;--color-primary-dk:#243b5a;--color-accent:#c8a96e;--color-hero-bg:#1f2c43;--color-hero-text:#f4f1e8;--color-rsvp-bg:#2e4159;--color-rsvp-text:#f4f1e8;--color-text:#222e3f;--color-text-muted:#5f6b7a;--color-border:#d6dbe2;--color-error:#eda4a4;--font-serif:"Cormorant Garamond", Georgia, serif;--font-sans:"Montserrat", system-ui, sans-serif;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:7rem;--radius-sm:4px;--radius-md:8px;--ease:.25s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.7}img,svg{max-width:100%;display:block}address{font-style:normal}.hidden{display:none}[hidden]{display:none!important}.container{width:100%;max-width:1100px;padding-inline:var(--space-md);margin-inline:auto}.container--narrow{max-width:700px}.section-title{font-family:var(--font-serif);letter-spacing:.08em;text-align:center;margin-bottom:var(--space-md);color:var(--color-primary);font-size:clamp(1.75rem,5vw,2.5rem);font-weight:300}.section-title:after{content:"";opacity:.65;background:currentColor;width:44px;height:1px;margin:.9rem auto 0;display:block}.section-title--light{color:var(--color-accent)}.reveal{opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),filter .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(28px)}.reveal--fade{transform:none}.reveal--scale{transform:translateY(14px)scale(.95)}.reveal--blur{filter:blur(8px);transform:translateY(16px)}.reveal.is-visible{opacity:1;filter:none;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;filter:none;transition:none;transform:none}}.envelope-screen{z-index:100;background-color:var(--color-hero-bg);cursor:pointer;background-image:radial-gradient(60% 50%,#c8a96e1a 0%,#0000 65%),radial-gradient(35% 25% at 18% 80%,#2f4f7612 0%,#0000 60%),radial-gradient(25% 35% at 82% 14%,#c8a96e0f 0%,#0000 55%);flex-direction:column;justify-content:center;align-items:center;gap:3rem;display:flex;position:fixed;inset:0;overflow:hidden}.envelope-screen.is-exiting{pointer-events:none}.envelope-screen.is-exiting .envelope-wrapper{opacity:0;transition:opacity .65s cubic-bezier(.4,0,1,1);animation:none}.envelope-screen.is-exiting .env-sparkle{transition:opacity .25s;animation:none;opacity:0!important}.envelope-screen.is-exiting .envelope__hint{animation:none;opacity:0!important}.envelope-screen.is-hidden{display:none}.env-sparkle{background:var(--color-accent);pointer-events:none;opacity:0;border-radius:50%;position:absolute}.env-sparkle:first-child{width:3px;height:3px;animation:5.2s ease-in-out .3s infinite sparkle-float;top:22%;left:14%}.env-sparkle:nth-child(2){width:2px;height:2px;animation:6.8s ease-in-out 1.4s infinite sparkle-float;top:31%;left:80%}.env-sparkle:nth-child(3){width:4px;height:4px;animation:5.6s ease-in-out .8s infinite sparkle-float;top:68%;left:21%}.env-sparkle:nth-child(4){width:2px;height:2px;animation:7.2s ease-in-out 2.1s infinite sparkle-float;top:72%;left:84%}.env-sparkle:nth-child(5){width:3px;height:3px;animation:6.1s ease-in-out 1.7s infinite sparkle-float;top:11%;left:52%}@keyframes sparkle-float{0%,to{opacity:0;transform:translateY(0)scale(1)}20%{opacity:.45;transform:translateY(-13px)scale(1.3)}50%{opacity:.6;transform:translateY(-7px)scale(.85)}75%{opacity:.3;transform:translateY(-19px)scale(1.1)}}.envelope-wrapper{perspective:1200px;opacity:0;will-change:transform, opacity;transition:opacity 1.15s cubic-bezier(.16,1,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(50px)scale(.9)}.envelope-screen.is-loaded .envelope-wrapper{opacity:1;transform:translateY(0)scale(1)}@keyframes envelope-float{0%{transform:translateY(0)rotate(0)}28%{transform:translateY(-11px)rotate(-.5deg)}55%{transform:translateY(-7px)rotate(.15deg)}78%{transform:translateY(-13px)rotate(.45deg)}to{transform:translateY(0)rotate(0)}}.envelope-wrapper.is-floating{animation:5s cubic-bezier(.37,0,.63,1) infinite envelope-float}@keyframes envelope-crack{0%,to{transform:rotate(0)translate(0)}30%{transform:rotate(-.7deg)translate(-2px)}70%{transform:rotate(.7deg)translate(2px)}}.envelope-screen:focus-visible{outline:2px solid var(--color-accent);outline-offset:-6px}.envelope-screen.is-opening .envelope-wrapper{animation:.18s ease-in-out envelope-crack}.envelope{width:min(420px,88vw);height:min(230px,50vw);position:relative}.envelope__body,.envelope__fold-left,.envelope__fold-right,.envelope__fold-bottom,.envelope__flap{width:100%;height:100%;position:absolute;inset:0}.envelope__body{z-index:0;background:linear-gradient(155deg,#f3f1e9 0%,#eae7db 50%,#ddd9c9 100%);border-radius:3px;box-shadow:0 18px 64px #00000085,0 5px 18px #0000004d,0 44px 90px -8px #c8a96e24,inset 0 1px #ffffff47,inset 0 -1px #0000000f}.envelope__body:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:linear-gradient(115deg,#0000 0%,#fff0 38%,#ffffff1a 50%,#fff0 62%,#0000 100%);transition:opacity .4s;position:absolute;inset:0}.envelope-screen:hover .envelope__body:after{opacity:1}.envelope__fold-left{clip-path:polygon(0 0,49% 50%,0 100%);z-index:1;background:linear-gradient(108deg,#0000001a 0%,#0000 52%)}.envelope__fold-right{clip-path:polygon(100% 0,51% 50%,100% 100%);z-index:1;background:linear-gradient(252deg,#00000014 0%,#0000 52%)}.envelope__fold-bottom{clip-path:polygon(0 100%,50% 52%,100% 100%);z-index:2;background:linear-gradient(#ddd9c9 40%,#cdc9b8 100%)}.envelope__card{background:linear-gradient(165deg, #fdfcf7 0%, var(--color-bg) 100%);z-index:3;opacity:0;will-change:transform, opacity;border:.5px solid #c8a96e59;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:84%;height:83%;padding:1.25rem 1rem;transition:transform 1.15s cubic-bezier(.16,1,.3,1) .48s,opacity .65s .48s;display:flex;position:absolute;bottom:4%;left:8%;transform:translateY(6px);box-shadow:0 -8px 30px #0003,0 0 0 .5px #c8a96e26}.envelope.is-open .envelope__card{opacity:1;transform:translateY(-90%)}.envelope__flap{clip-path:polygon(0 0,100% 0,50% 57%);transform-origin:top;z-index:5;backface-visibility:hidden;will-change:transform;filter:drop-shadow(0 4px 6px #00000029);background:linear-gradient(158deg,#f3f1e9 0%,#e8e4d6 50%,#d8d3c2 100%);transition:transform .95s cubic-bezier(.4,0,.2,1);transform:rotateX(0)}.envelope.is-open .envelope__flap{transform:rotateX(-180deg)}.envelope__seal{background:radial-gradient(circle at 35% 35%, #3a5a85, var(--color-primary) 45%, var(--color-primary-dk));width:clamp(34px,7.5vw,46px);height:clamp(34px,7.5vw,46px);font-family:var(--font-serif);color:var(--color-accent);pointer-events:none;z-index:6;border:1px solid #c8a96ea6;border-radius:50%;justify-content:center;align-items:center;font-size:clamp(.9rem,2.4vw,1.1rem);font-style:italic;animation:3s ease-in-out infinite seal-glow;display:flex;position:absolute;top:18%;left:50%;transform:translate(-50%,-50%)rotate(-4deg);box-shadow:0 3px 10px #00000061,inset 0 1px #ffffff1f,inset 0 -1px #0000001a}@keyframes seal-glow{0%,to{box-shadow:0 3px 10px #00000061,inset 0 1px #ffffff1f,0 0 #c8a96e59}50%{box-shadow:0 3px 10px #00000061,inset 0 1px #ffffff1f,0 0 0 8px #c8a96e00}}.envelope.is-open .envelope__seal{opacity:0;transition:opacity .25s;animation:none}.envelope__card-prelude{font-family:var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--color-primary);opacity:.85;font-size:clamp(.48rem,1.6vw,.62rem);font-weight:300}.envelope__card-divider{color:var(--color-accent);opacity:.6;font-size:.52rem}.envelope__card-names{font-family:var(--font-serif);letter-spacing:.06em;color:var(--color-text);text-align:center;font-size:clamp(.92rem,3.1vw,1.3rem);font-style:italic;font-weight:300;line-height:1.3}.envelope__hint{font-family:var(--font-sans);letter-spacing:.32em;text-transform:uppercase;color:var(--color-accent);opacity:0;font-size:.65rem;font-weight:300;transition:opacity .5s}.envelope-screen.is-loaded .envelope__hint{opacity:.65;animation:2.8s ease-in-out .9s infinite hint-drift}.envelope-screen.is-opening .envelope__hint{animation:none;opacity:0!important}@keyframes hint-drift{0%,to{opacity:.65;transform:translateY(0)}50%{opacity:.2;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.envelope-wrapper{will-change:auto;transition:opacity .4s;transform:none!important}.envelope-wrapper.is-floating,.envelope-screen.is-opening .envelope-wrapper{animation:none}.env-sparkle{animation:none!important}.envelope__flap{will-change:auto;transition:opacity .3s}.envelope.is-open .envelope__flap{opacity:0;transform:none}.envelope__card{will-change:auto;transition:opacity .5s .2s;transform:translateY(-90%)!important}.envelope__seal{animation:none}.envelope-screen.is-exiting .envelope-wrapper{transition:opacity .3s}.envelope__hint,.envelope-screen.is-loaded .envelope__hint{opacity:.65;animation:none}.envelope.is-zooming .envelope__card{opacity:0;animation:none}}.envelope-screen.is-zooming{pointer-events:none;cursor:default}.envelope.is-zooming .envelope__body,.envelope.is-zooming .envelope__fold-left,.envelope.is-zooming .envelope__fold-right,.envelope.is-zooming .envelope__fold-bottom{opacity:0;transition:opacity .22s}.envelope.is-zooming .envelope__flap{opacity:0;transition:opacity .22s;animation:none}.envelope.is-zooming .envelope__card-prelude,.envelope.is-zooming .envelope__card-divider,.envelope.is-zooming .envelope__card-names{opacity:0;transition:opacity .1s}.envelope-screen.is-zooming .env-sparkle,.envelope-screen.is-zooming .envelope__hint{transition:none;animation:none;opacity:0!important}@keyframes card-zoom{0%{opacity:1;border-radius:2px;transform:translateY(-90%)scale(1)}55%{opacity:1;border-radius:0;transform:translateY(-90%)scale(6.5)}to{opacity:0;transform:translateY(-90%)scale(10)}}.envelope.is-zooming .envelope__card{will-change:transform, opacity;transition:none;animation:.75s cubic-bezier(.33,0,.66,1) forwards card-zoom}.hero{background-color:var(--color-hero-bg);min-height:100svh;color:var(--color-hero-text);text-align:center;padding:var(--space-xl) var(--space-md) var(--space-lg);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(80% 60% at 50% 40%,#c8a96e2e 0%,#0000 70%);position:absolute;inset:0}.hero:after{content:"";pointer-events:none;background:radial-gradient(120% 90%,#0000 58%,#00000047 100%);position:absolute;inset:0}.hero__inner{z-index:1;align-items:center;gap:var(--space-sm);flex-direction:column;display:flex;position:relative}.hero__pre{font-family:var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent);opacity:.9;font-size:clamp(.7rem,2.5vw,.85rem);font-weight:300}.hero__names{font-family:var(--font-serif);letter-spacing:.03em;flex-direction:column;align-items:center;gap:.1em;font-size:clamp(3.5rem,16vw,8rem);font-weight:300;line-height:1.05;display:flex}@media (width>=600px){.hero__names{flex-direction:row;align-items:baseline;gap:.4em;font-size:clamp(3.5rem,10vw,7rem)}}.hero__ampersand{color:var(--color-accent);font-size:.65em;font-style:italic}.hero__invite{font-family:var(--font-serif);opacity:.85;max-width:32ch;font-size:clamp(.95rem,3vw,1.15rem);font-style:italic;font-weight:300;line-height:1.6}.hero__divider{align-items:center;gap:var(--space-sm);width:min(260px,60vw);margin-block:var(--space-xs);display:flex}.hero__divider span:not(.hero__divider-icon){background:var(--color-accent);opacity:.5;flex:1;height:1px}.hero__divider-icon{color:var(--color-accent);opacity:.7;font-size:.7rem}.hero__date{font-family:var(--font-serif);letter-spacing:.05em;color:var(--color-accent);font-size:clamp(.95rem,3vw,1.2rem);font-weight:400;line-height:1.8}.countdown{margin-top:var(--space-sm);justify-content:center;gap:clamp(1.25rem,5vw,2.75rem);display:flex}.countdown__unit{flex-direction:column;align-items:center;gap:.5rem;min-width:3ch;display:flex}.countdown__unit:after{content:"";background:var(--color-accent);opacity:.3;width:100%;height:1px}.countdown__value{height:1.1em;font-family:var(--font-serif);font-variant-numeric:tabular-nums;color:var(--color-hero-text);font-size:clamp(1.75rem,7vw,2.75rem);font-weight:300;line-height:1.1;position:relative;overflow:hidden}.countdown__now,.countdown__next{display:block}.countdown__next{position:absolute;inset:0;transform:translateY(100%)}.countdown__value.is-shifting .countdown__now{animation:.45s cubic-bezier(.45,0,.55,1) forwards count-out}.countdown__value.is-shifting .countdown__next{animation:.45s cubic-bezier(.45,0,.55,1) forwards count-in}@keyframes count-out{to{opacity:0;transform:translateY(-100%)}}@keyframes count-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.countdown__label{font-family:var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--color-accent);opacity:.85;margin-right:-.28em;font-size:.6rem;font-weight:400}.countdown__arrived{font-family:var(--font-serif);color:var(--color-accent);font-size:1.4rem;font-style:italic}@media (prefers-reduced-motion:reduce){.countdown__value.is-shifting .countdown__now,.countdown__value.is-shifting .countdown__next{animation:none}}.hero__scroll-hint{bottom:var(--space-md);z-index:1;color:var(--color-accent);opacity:.5;font-size:1.25rem;animation:2s infinite bounce;position:absolute}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.hero.is-entering .hero__inner>*{animation:.85s cubic-bezier(.16,1,.3,1) both hero-item-rise}@keyframes hero-item-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.hero.is-entering .hero__inner>:first-child{animation-delay:40ms}.hero.is-entering .hero__inner>:nth-child(2){animation-delay:.13s}.hero.is-entering .hero__inner>:nth-child(3){animation-delay:.22s}.hero.is-entering .hero__inner>:nth-child(4){animation-delay:.3s}.hero.is-entering .hero__inner>:nth-child(5){animation-delay:.38s}.hero.is-entering .hero__inner>:nth-child(6){animation-delay:.46s}.hero.is-entering .hero__inner>:nth-child(7){animation-delay:.54s}.hero.is-entering .hero__scroll-hint{animation:.5s .56s both hero-hint-in,2s ease-in-out 1.1s infinite bounce}@keyframes hero-hint-in{0%{opacity:0}to{opacity:.5}}@media (prefers-reduced-motion:reduce){.hero.is-entering .hero__inner>*{opacity:1;animation:none;transform:none}.hero.is-entering .hero__scroll-hint{opacity:.5;animation:none}}.details{padding-block:var(--space-xl) var(--space-lg);background-color:var(--color-bg)}.details__grid{gap:var(--space-md);grid-template-columns:1fr;display:grid}@media (width>=600px){.details__grid{grid-template-columns:1fr 1fr}}.detail-card{background:linear-gradient(165deg, var(--color-surface) 0%, #f5f5ef 100%);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;transition:box-shadow var(--ease), transform var(--ease), border-color var(--ease);cursor:pointer;box-shadow:0 1px 2px #222e3f0a,0 12px 32px -16px #2f4f762e}.detail-card:hover{border-color:#c8a96e8c;transform:translateY(-4px);box-shadow:0 2px 4px #222e3f0d,0 18px 44px -14px #2f4f7647}.detail-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.detail-card__content{opacity:1;max-height:280px;transition:max-height .45s cubic-bezier(.22,1,.36,1),opacity .35s,margin-top .45s cubic-bezier(.22,1,.36,1);overflow:hidden}.detail-card:not(.is-expanded) .detail-card__content{opacity:0;max-height:0;margin-top:0}.detail-card.is-expanded{border-color:#c8a96ecc}.detail-card__hint{letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary-dk);margin-top:var(--space-xs);font-size:.78rem;font-weight:500}.detail-card__icon{color:var(--color-accent);margin-bottom:var(--space-sm);transition:transform var(--ease);font-size:1.75rem}.detail-card:hover .detail-card__icon{transform:translateY(-3px)scale(1.08)}.detail-card__heading{font-family:var(--font-serif);color:var(--color-primary);margin-bottom:var(--space-xs);letter-spacing:.05em;font-size:1.6rem;font-weight:400}.detail-card__time{letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-xs);font-size:.85rem;font-weight:500}.detail-card__venue{font-family:var(--font-serif);color:var(--color-text);margin-bottom:var(--space-xs);font-size:1.15rem;font-style:italic}.detail-card__address{color:var(--color-text-muted);font-size:.85rem;line-height:1.8}.detail-card__directions{letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);transition:color var(--ease);margin-top:.6rem;font-size:.8rem;font-weight:500;text-decoration:none;display:inline-block}.detail-card__directions:hover{color:var(--color-primary-dk)}.story{padding-block:var(--space-lg);background-color:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.story__stages{gap:var(--space-lg);flex-direction:column;max-width:880px;margin-inline:auto;display:flex}.story-stage{gap:var(--space-md);text-align:center;justify-items:center;display:grid}.story-stage__media{width:100%;max-width:300px;margin:0}.story-stage__photo{border:1px solid var(--color-border);background:#fdfcf7;border-radius:2px;padding:10px;transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s;transform:rotate(-2deg);box-shadow:0 1px 2px #222e3f0f,0 16px 40px -18px #222e3f59}.story-stage:nth-child(2n) .story-stage__photo{transform:rotate(1.6deg)}.story-stage__photo img{aspect-ratio:4/5;object-fit:cover;opacity:0;width:100%;transition:opacity .5s;display:block}.story-stage__photo img.is-loaded{opacity:1}.story-stage__media:hover .story-stage__photo{transform:rotate(0)translateY(-4px)scale(1.015);box-shadow:0 2px 4px #222e3f14,0 24px 52px -16px #222e3f66}.story-stage__caption{font-family:var(--font-serif);color:var(--color-text-muted);text-align:center;margin-top:.9rem;font-size:1rem;font-style:italic}.story-stage__kicker{font-family:var(--font-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--color-primary-dk);margin-bottom:.4rem;font-size:.68rem;font-weight:500}.story-stage__title{font-family:var(--font-serif);letter-spacing:.04em;color:var(--color-text);margin-bottom:var(--space-xs);font-size:clamp(1.5rem,4vw,1.9rem);font-weight:400}.story-stage__text{font-family:var(--font-serif);color:var(--color-text);max-width:46ch;font-size:clamp(1rem,2.5vw,1.15rem);font-weight:300;line-height:1.9}@media (width>=600px){.story-stage{align-items:center;gap:var(--space-lg);text-align:left;grid-template-columns:5fr 7fr;justify-items:stretch}.story-stage__media{justify-self:center}.story-stage:nth-child(2n) .story-stage__media{order:2}.story-stage__text{max-width:none}}@media (prefers-reduced-motion:reduce){.story-stage__photo,.story-stage:nth-child(2n) .story-stage__photo,.story-stage__media:hover .story-stage__photo{transition:none;transform:none}}.rsvp{padding-block:var(--space-xl) var(--space-lg);background-color:var(--color-rsvp-bg);color:var(--color-rsvp-text)}.rsvp__sub{text-align:center;letter-spacing:.08em;margin-bottom:var(--space-md);color:var(--color-accent);opacity:.9;font-size:.9rem}.rsvp__form{gap:var(--space-sm);flex-direction:column;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);font-size:.78rem;font-weight:500}.form-label--optional{opacity:.7;text-transform:none;letter-spacing:0;font-size:.75rem;font-weight:300}.form-input{border-radius:var(--radius-sm);color:var(--color-rsvp-text);font-family:var(--font-sans);transition:border-color var(--ease), background var(--ease), box-shadow var(--ease);background:#ffffff14;border:1px solid #c8a96e59;width:100%;padding:.75rem 1rem;font-size:1rem}.form-input::placeholder{color:#f4f1e8b8}.form-input:focus{border-color:var(--color-accent);background:#ffffff21;outline:none;box-shadow:0 0 0 3px #c8a96e2e}.form-input--select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23c8a96e' d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:14px;padding-right:2.5rem}.form-input--select option{background:var(--color-rsvp-bg);color:var(--color-rsvp-text)}.form-input--textarea{resize:vertical;min-height:100px}.radio-group{gap:var(--space-sm);flex-wrap:wrap;display:flex}.radio-label{align-items:center;gap:var(--space-xs);cursor:pointer;color:var(--color-rsvp-text);font-size:.9rem;display:flex}.radio-label input[type=radio]{accent-color:var(--color-accent);cursor:pointer;width:1.1em;height:1.1em}.toggle-label{align-items:center;gap:var(--space-sm);cursor:pointer;color:var(--color-rsvp-text);font-size:.9rem;display:flex}.toggle-input{opacity:0;width:0;height:0;position:absolute}.toggle-track{width:44px;height:24px;transition:background var(--ease), border-color var(--ease);background:#ffffff26;border:1px solid #fff3;border-radius:12px;flex-shrink:0;position:relative}.toggle-input:checked~.toggle-track{background:var(--color-accent);border-color:var(--color-accent)}.toggle-thumb{width:18px;height:18px;transition:transform var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.toggle-input:checked~.toggle-track .toggle-thumb{transform:translate(20px)}.toggle-input:focus-visible~.toggle-track{outline:2px solid var(--color-accent);outline-offset:2px}.btn{background:var(--color-accent);border-radius:var(--radius-sm);color:var(--color-rsvp-bg);cursor:pointer;font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;transition:background var(--ease), transform var(--ease);border:none;align-self:flex-start;width:100%;padding:.85rem 2.5rem;font-size:.8rem;font-weight:500}@media (width>=600px){.btn{align-self:center;width:auto;padding-inline:3.5rem}}.btn:hover{background:#d4b984;transform:translateY(-1px);box-shadow:0 6px 18px #00000038}.btn:active{box-shadow:none;transform:translateY(1px)scale(.985)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn--ghost{color:var(--color-accent);width:auto;transition:border-color var(--ease), background var(--ease), transform var(--ease), box-shadow var(--ease);background:0 0;border:1px solid #c8a96e8c;align-self:center;padding:.7rem 2rem;font-size:.75rem}.btn--ghost:hover{border-color:var(--color-accent);background:#c8a96e1f;box-shadow:0 0 18px #c8a96e40}.btn--ghost:disabled,.btn--ghost:disabled:hover{opacity:.45;cursor:not-allowed;box-shadow:none;background:0 0;border-color:#c8a96e59;transform:none}.rsvp__error{margin-top:var(--space-xs);text-align:center;color:var(--color-error);font-size:.95rem;animation:.4s fadeIn}.rsvp__calendar{align-items:center;gap:var(--space-sm);flex-direction:column;animation:.5s fadeIn;display:flex}.rsvp__success-msg{color:var(--color-accent);text-align:center;font-size:1.1rem}.rsvp__calendar-prompt{opacity:.8;margin-top:var(--space-xs);font-size:.9rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.footer{background-color:var(--color-hero-bg);color:var(--color-hero-text);text-align:center;padding:var(--space-md)}.footer__text{font-family:var(--font-serif);opacity:.8;font-size:1rem}.footer__text--small{opacity:.4;margin-top:.3rem;font-size:.75rem;font-style:italic}@media (width>=1024px){.details,.story,.rsvp{padding-block:calc(var(--space-xl) * 1.2) var(--space-xl)}}.dresscode{padding-block:var(--space-lg);background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.dresscode__inner{gap:var(--space-md);flex-direction:column;align-items:center;display:flex}.dresscode__heading{font-family:var(--font-serif);color:var(--color-primary-dk);text-align:center;font-size:1.15rem;font-weight:400}.palette{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));width:100%;max-width:760px;display:grid}.palette__item{align-items:center;gap:var(--space-xs);background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border);text-align:center;font:inherit;color:inherit;cursor:pointer;transition:transform var(--ease), box-shadow var(--ease), border-color var(--ease);flex-direction:column;padding:.85rem .6rem;display:flex}.palette__item:hover,.palette__item:focus-visible{box-shadow:0 10px 24px -10px var(--swatch-color,#00000040);border-color:#c8a96eb3;transform:translateY(-3px)}.palette__item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.swatch{background:var(--swatch-color);width:56px;height:56px;transition:transform var(--ease);border:1px solid #00000014;border-radius:50%;display:block;box-shadow:inset 0 1px 2px #ffffff59,0 2px 6px #00000014}.palette__item:hover .swatch,.palette__item:focus-visible .swatch{transform:scale(1.08)}.palette__label{color:var(--color-text);flex-direction:column;align-items:center;gap:.125rem;font-size:.95rem;display:flex}.palette__label .name{overflow-wrap:anywhere;line-height:1.1;display:block}.palette__hex{letter-spacing:.06em;color:var(--color-text-muted);font-size:.75rem;line-height:1;display:block}@media (width>=768px){.palette--cols-2{grid-template-columns:repeat(2,1fr)}.palette--cols-3{grid-template-columns:repeat(3,1fr)}.palette--cols-4{grid-template-columns:repeat(4,1fr)}}.dresscode__rules-heading{letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary-dk);margin-top:var(--space-xs);font-size:.8rem;font-weight:500}.rules-list{gap:var(--space-xs);text-align:center;padding:0;list-style:none;display:grid}.rules-list li{color:var(--color-text-muted);font-size:.95rem}.guest-row{gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid #c8a96e33;flex-direction:column;animation:.35s both guest-row-in;display:flex}.guest-row .form-group{flex:1}@keyframes guest-row-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width>=600px){.guest-row{flex-direction:row}}@media (prefers-reduced-motion:reduce){.guest-row{animation:none}}.toast{left:50%;bottom:max(1.5rem, env(safe-area-inset-bottom));z-index:200;background:var(--color-hero-bg);color:var(--color-hero-text);letter-spacing:.04em;opacity:0;pointer-events:none;border:1px solid #c8a96e66;border-radius:999px;padding:.6rem 1.2rem;font-size:.85rem;transition:opacity .3s,transform .3s;position:fixed;transform:translate(-50%)translateY(8px);box-shadow:0 10px 30px #00000040}.toast.is-showing{opacity:1;transform:translate(-50%)translateY(0)}@media (prefers-reduced-motion:reduce){.toast{transition:opacity .3s;transform:translate(-50%)}}
