:root{--color-paper:oklch(95% .022 91);--color-paper-soft:oklch(91% .032 94);--color-paper-deep:oklch(87% .04 100);--color-ink:oklch(34% .028 104);--color-ink-soft:oklch(47% .03 105);--color-sage:oklch(76% .04 125);--color-olive:oklch(76% .04 125);--color-forest:oklch(38% .045 132);--color-lavender:oklch(76% .035 292);--color-rose:oklch(72% .07 28);--color-rule:oklch(75% .026 103);--color-focus:oklch(45% .1 135);--color-error:oklch(48% .14 28);--color-success:oklch(43% .09 145);--color-accent-ink:oklch(95% .022 91);--font-display:Cormorant Garamond, Times New Roman, serif;--font-body:EB Garamond, Georgia, serif;--font-script:Italianno, Segoe Script, cursive;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:clamp(1.05rem, 1.25vw, 1.2rem);--text-xl:clamp(1.4rem, 2.2vw, 2rem);--text-display-s:clamp(2rem, 4.25vw, 3.375rem);--text-display:clamp(3rem, 6vw, 5.5rem);--line-tight:1.08;--line-normal:1.5;--line-relaxed:1.68;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4.5rem;--space-4xl:7rem;--container-wide:78rem;--container-reading:52rem;--radius-sm:.25rem;--rule-thin:1px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-short:.14s;--dur-medium:.42s;--dur-long:.9s;--dur-open:1.1s;--z-header:10;--z-texture:25;--z-invitation:30;--z-skip:40}*,:before,:after{box-sizing:border-box}html,body{min-width:0;margin:0;overflow-x:clip}body,h1,h2,h3,p,figure,blockquote,ol{margin:0}ol{padding:0}img{max-width:100%;display:block}button,input,textarea{font:inherit}a{color:inherit}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:300;line-height:var(--line-relaxed)}h1,h2,h3{font-family:var(--font-display);font-style:normal;font-weight:500;line-height:var(--line-tight);overflow-wrap:anywhere;min-width:0}h2{font-size:var(--text-display-s);letter-spacing:-.015em}h3{font-size:var(--text-xl)}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--color-paper);color:var(--color-ink);text-rendering:optimizelegibility}body:before{background-image:radial-gradient(color-mix(in oklch, var(--color-ink) 10%, transparent) .4px, transparent .6px);content:"";opacity:.07;pointer-events:none;z-index:var(--z-texture);background-size:6px 6px;position:fixed;inset:0}a{text-underline-offset:.3em}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.skip-link{background:var(--color-paper);left:var(--space-md);padding:var(--space-sm) var(--space-md);top:var(--space-md);z-index:var(--z-skip);position:fixed;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.section-shell{width:min(100% - 3rem, var(--container-wide));margin-inline:auto}.section-heading{max-width:var(--container-reading)}.section-heading--center{text-align:center;margin-inline:auto}.section-heading__overline{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-forest);margin-bottom:var(--space-lg);font-weight:500}.text-link{text-decoration-thickness:var(--rule-thin);transition:color var(--dur-short) var(--ease-out);white-space:nowrap;width:fit-content;font-weight:500;display:inline-block}.text-link:hover{color:var(--color-sage)}::selection{background:var(--color-sage);color:var(--color-ink)}.site-header{color:var(--color-ink);padding:var(--space-lg) clamp(var(--space-lg), 4vw, var(--space-3xl));opacity:0;pointer-events:none;z-index:var(--z-header);transition:opacity var(--dur-medium) var(--ease-out) var(--dur-open);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;display:grid;position:absolute;top:0;left:0;right:0}.site-header.is-visible{opacity:1;pointer-events:auto}.site-header>p{font-size:var(--text-xs);letter-spacing:.13em;text-align:center;text-transform:uppercase}.monogram{font-family:var(--font-display);white-space:nowrap;width:fit-content;font-size:1.35rem;text-decoration:none}.monogram span{color:var(--color-olive);margin-inline:.12em;font-size:.8em}.header-link{font-size:var(--text-sm);white-space:nowrap;justify-self:end;text-decoration:none}.header-link:after{content:"";height:var(--rule-thin);transform-origin:100%;transition:transform var(--dur-medium) var(--ease-out);background:currentColor;display:block;transform:scaleX(0)}.header-link:hover:after,.header-link:focus-visible:after{transform-origin:0;transform:scaleX(1)}.site-footer{align-items:end;gap:var(--space-md) var(--space-2xl);padding:var(--space-4xl) max(var(--space-lg), (100vw - 78rem) / 2);grid-template-columns:1fr 1fr;display:grid}.footer-signoff{color:var(--color-ink-soft);font-family:var(--font-display);font-size:var(--text-xl)}.footer-names{font-family:var(--font-script);grid-row:2;font-size:clamp(2.75rem,4.5vw,4rem);line-height:1}.footer-note{justify-self:end;max-width:48ch}.site-footer>a{font-size:var(--text-sm);white-space:nowrap;justify-self:end}.hero{background:var(--color-paper);color:var(--color-ink);isolation:isolate;height:100svh;min-height:38rem;position:relative;overflow:hidden}.hero__watercolor{object-fit:cover;object-position:center bottom;z-index:-1;width:100%;max-width:none;height:100%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hero__caption{text-align:center;flex-direction:column;align-items:center;width:min(90%,42rem);display:flex;position:absolute;top:clamp(7rem,14vh,10rem);left:50%;transform:translate(-50%)}.hero__caption>p{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:600}.hero__caption h1{font-family:var(--font-script);font-size:var(--text-display);letter-spacing:0;margin:var(--space-xl) 0;flex-direction:column;align-items:center;font-weight:400;line-height:.95;display:flex}.hero__caption h1 b{font-family:var(--font-display);font-size:.22em;font-weight:400;line-height:2}.hero__caption time{font-family:var(--font-display);font-variant-numeric:lining-nums;letter-spacing:.06em;margin-top:var(--space-xl);font-size:clamp(1.75rem,3.5vw,2.75rem)}.hero__caption small{font-size:var(--text-xs);letter-spacing:.16em;margin-top:var(--space-sm);text-transform:uppercase}.hero__scroll{bottom:var(--space-lg);font-size:var(--text-xs);align-items:center;gap:var(--space-md);letter-spacing:.12em;right:max(var(--space-lg), (100vw - 68rem) / 2);text-transform:uppercase;white-space:nowrap;text-decoration:none;display:flex;position:absolute}.hero__scroll span{transition:transform var(--dur-short) var(--ease-out)}.hero__scroll:hover span{transform:translateY(3px)}.invitation-locked{overflow:hidden}.invitation-gate{background:var(--color-paper);opacity:1;transition:opacity var(--dur-medium) var(--ease-in) calc(var(--dur-open) - var(--dur-medium)), visibility 0s linear var(--dur-open);visibility:visible;z-index:var(--z-invitation);place-items:center;padding:0;display:grid;position:fixed;inset:0}.invitation-gate:before{background-image:radial-gradient(color-mix(in oklch, var(--color-ink) 12%, transparent) .45px, transparent .6px);content:"";opacity:.14;pointer-events:none;background-size:5px 5px;position:absolute;inset:0}.invitation-gate.is-open{opacity:0;pointer-events:none;visibility:hidden}.invitation-gate__stage,.invitation-gate__letter{width:100%;height:100%}.invitation-gate__letter{background:var(--color-paper);position:relative;overflow:hidden}.invitation-gate__art,.invitation-gate__art img{width:100%;height:100%;position:absolute;inset:0}.invitation-gate__art img{object-fit:cover;object-position:center bottom}.invitation-gate__front{padding:clamp(2rem, 7vh, 4.5rem) var(--space-xl) clamp(2rem, 6vh, 3.5rem);text-align:center;z-index:2;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.invitation-gate__monogram{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:.12em}.invitation-gate__monogram span{color:var(--color-olive)}.invitation-gate__guest{gap:var(--space-sm);flex-direction:column;display:flex}.invitation-gate__guest span,.invitation-gate__guest small{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase}.invitation-gate__guest strong{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:500;line-height:1}.invitation-gate button,.closing button{border:0;border-bottom:var(--rule-thin) solid var(--color-ink);color:var(--color-ink);cursor:pointer;min-height:2.75rem;padding:var(--space-xs) var(--space-sm);white-space:nowrap;background:0 0;border-radius:0}.invitation-gate button:hover,.closing button:hover{color:var(--color-olive)}.invitation-gate button:active,.closing button:active{transform:translateY(1px)}.invitation-gate button:disabled,.closing button:disabled{cursor:not-allowed;opacity:.55}.invitation-gate.is-open .invitation-gate__front{opacity:0;transition:opacity var(--dur-medium) var(--ease-in)}.wedding-app main{opacity:0;transition:opacity var(--dur-medium) var(--ease-out) var(--dur-open)}.wedding-app--open main{opacity:1}.invitation{gap:var(--space-3xl);padding-block:var(--space-4xl);grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}.invitation__salutation{font-family:var(--font-script);font-size:clamp(2.25rem,4vw,3.75rem);line-height:1.05}.invitation__copy{font-family:var(--font-display);font-size:var(--text-xl);max-width:48ch;line-height:1.35}.invitation__copy p+p{margin-top:var(--space-xl)}.countdown{border-top:var(--rule-thin) solid var(--color-rule);align-items:end;gap:var(--space-lg);padding-top:var(--space-xl);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.countdown div{flex-direction:column;display:flex}.countdown strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:clamp(2rem,5vw,4rem);font-weight:400;line-height:1}.countdown span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase}.story{padding-bottom:var(--space-4xl)}.story__body{gap:var(--space-2xl);margin:var(--space-3xl) 0;grid-template-columns:minmax(0,2fr) minmax(0,1fr);display:grid}.story__lead{font-family:var(--font-display);font-size:var(--text-xl);max-width:48ch;line-height:1.3}.story__body>p:last-child{max-width:48ch;padding-top:var(--space-sm)}.story__image img{filter:saturate(.72)contrast(.95);object-fit:cover;width:100%;height:min(75vw,52rem)}.story__image figcaption{color:var(--color-ink-soft);font-size:var(--text-xs);margin-top:var(--space-sm)}.family{padding-block:var(--space-4xl)}.family__columns{border-bottom:var(--rule-thin) solid var(--color-rule);border-top:var(--rule-thin) solid var(--color-rule);align-items:center;gap:var(--space-2xl);margin-top:var(--space-3xl);padding-block:var(--space-3xl);text-align:center;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.family__columns>div>p{color:var(--color-olive);font-size:var(--text-xs);letter-spacing:.15em;text-transform:uppercase}.family__columns h3{margin:var(--space-md) 0 var(--space-sm);line-height:1.35}.family__columns h3 span{color:var(--color-ink);font-size:inherit;display:block}.family__columns small{color:var(--color-ink-soft);font-size:var(--text-sm)}.family__mark{color:var(--color-olive);font-family:var(--font-display);font-size:var(--text-xl)}.schedule{gap:var(--space-3xl);padding-block:var(--space-4xl);grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}.schedule__intro>p{color:var(--color-ink-soft);margin-top:var(--space-xl);max-width:48ch}.schedule__list{list-style:none}.schedule__list li{border-top:var(--rule-thin) solid var(--color-rule);gap:var(--space-xl);padding-block:var(--space-xl);grid-template-columns:5rem minmax(0,1fr);display:grid}.schedule__list li:last-child{border-bottom:var(--rule-thin) solid var(--color-rule)}.schedule__list time{color:var(--color-olive);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.schedule__list h3{margin-bottom:var(--space-xs)}.schedule__list p{color:var(--color-ink-soft)}.venue{background:var(--color-forest);color:var(--color-paper);grid-template-columns:minmax(0,3fr) minmax(0,2fr);min-height:42rem;display:grid}.venue__image{background:var(--color-paper);min-height:32rem;overflow:hidden}.venue__image img{object-fit:cover;object-position:center bottom;width:100%;height:100%}.venue__details{align-self:end;gap:var(--space-xl);padding:clamp(var(--space-2xl), 7vw, var(--space-4xl));flex-direction:column;display:flex}.venue__details>p{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.venue__details h2{font-size:clamp(2.5rem,4.5vw,4rem)}.venue__details address{max-width:48ch;font-style:normal}.gallery{padding-block:var(--space-4xl)}.gallery>.section-heading{max-width:42rem}.gallery__essay{gap:var(--space-lg);margin-top:var(--space-3xl);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.gallery__frame{background:var(--color-forest);color:var(--color-paper);min-height:28rem;position:relative;overflow:hidden}.gallery__frame img{filter:saturate(.72)contrast(.94);object-fit:cover;height:100%;transition:filter var(--dur-medium) var(--ease-out), transform var(--dur-long) var(--ease-out);width:100%;position:absolute;inset:0}.gallery__frame:after{background:linear-gradient(to top, color-mix(in oklch, var(--color-forest) 72%, transparent), transparent 48%);content:"";pointer-events:none;position:absolute;inset:0}.gallery__frame figcaption{bottom:var(--space-xl);font-family:var(--font-display);font-size:var(--text-lg);left:var(--space-xl);max-width:24ch;right:var(--space-xl);z-index:1;line-height:1.2;position:absolute}.gallery__frame:hover img{filter:saturate(.88)contrast(.98);transform:scale(1.015)}.gallery__frame--1{grid-column:1/9;min-height:44rem}.gallery__frame--1 img{object-position:center bottom}.gallery__frame--2{grid-column:9/13;align-self:end;min-height:34rem}.gallery__frame--3{grid-column:2/6;min-height:36rem}.gallery__frame--3 img{object-position:center bottom}.gallery__frame--4{grid-column:6/13;min-height:42rem}.gallery__frame--4 img{object-position:center bottom}.gallery__pending{background:var(--color-paper-soft);align-items:end;gap:var(--space-xl);margin-top:var(--space-3xl);min-height:30rem;padding:var(--space-2xl);grid-template-columns:minmax(0,2fr) minmax(0,1fr);display:grid}.gallery__pending p{font-family:var(--font-display);font-size:var(--text-xl);max-width:48ch;line-height:1.3}.gallery__pending span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;justify-self:end}.wishes{gap:var(--space-3xl);padding-block:var(--space-4xl);grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}.wishes__thanks{border-top:var(--rule-thin) solid var(--color-success);font-family:var(--font-display);font-size:var(--text-xl);padding-top:var(--space-xl)}.gift{padding-block:var(--space-4xl)}.gift__details{border-block:var(--rule-thin) solid var(--color-rule);gap:var(--space-xl);margin-top:var(--space-3xl);padding-block:var(--space-xl);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gift__details div{gap:var(--space-xs);flex-direction:column;display:flex}.gift__details span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase}.gift__details strong{font-family:var(--font-display);font-size:var(--text-lg);font-weight:400}.gift__details img{max-width:12rem}.closing{background:var(--color-paper);text-align:center;min-height:82svh;position:relative;overflow:hidden}.closing>img{object-fit:cover;object-position:center bottom;width:min(100%,68rem);max-width:none;height:100%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.closing>div{flex-direction:column;align-items:center;width:min(90%,40rem);display:flex;position:absolute;top:clamp(6rem,16vh,10rem);left:50%;transform:translate(-50%)}.closing p{font-family:var(--font-script);max-width:12ch;font-size:clamp(3.25rem,7vw,5.5rem);line-height:1}.closing span{color:var(--color-olive);font-size:var(--text-xs);letter-spacing:.2em;margin-top:var(--space-xl)}.closing button{margin-top:var(--space-2xl)}.rsvp{gap:var(--space-3xl);padding-block:var(--space-4xl);grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}.rsvp form,.wishes form{gap:var(--space-xl);display:grid}.rsvp label,.rsvp legend,.wishes label{color:var(--color-ink-soft);font-size:var(--text-sm)}.rsvp input:not([type=radio]),.rsvp textarea,.wishes input,.wishes textarea{border:0;border-bottom:var(--rule-thin) solid var(--color-rule);color:var(--color-ink);margin-top:var(--space-xs);outline-offset:2px;min-height:2.75rem;padding:var(--space-sm) 0;resize:vertical;background:0 0;border-radius:0;outline:2px solid #0000;width:100%;display:block}.rsvp input:not([type=radio]):hover,.rsvp textarea:hover,.wishes input:hover,.wishes textarea:hover{border-color:var(--color-forest)}.rsvp input:not([type=radio]):focus-visible,.rsvp textarea:focus-visible,.wishes input:focus-visible,.wishes textarea:focus-visible{border-color:var(--color-forest);outline-color:var(--color-focus)}.rsvp input:not([type=radio]):disabled,.rsvp textarea:disabled,.wishes input:disabled,.wishes textarea:disabled{cursor:not-allowed;opacity:.55}.rsvp input:not([type=radio]):user-invalid{border-color:var(--color-error)}.rsvp textarea:user-invalid{border-color:var(--color-error)}.wishes input:user-invalid{border-color:var(--color-error)}.wishes textarea:user-invalid{border-color:var(--color-error)}.rsvp fieldset{gap:var(--space-xl);border:0;margin:0;padding:0;display:flex}.rsvp fieldset label{align-items:center;gap:var(--space-xs);display:flex}.rsvp input[type=radio]{accent-color:var(--color-forest)}.rsvp button,.wishes button{background:var(--color-forest);border:var(--rule-thin) solid var(--color-forest);border-radius:var(--radius-sm);color:var(--color-paper);cursor:pointer;min-height:2.75rem;padding:var(--space-sm) var(--space-xl);white-space:nowrap;transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);justify-self:start}.rsvp button:hover,.wishes button:hover{color:var(--color-forest);background:0 0}.rsvp__success{border-top:var(--rule-thin) solid var(--color-success);padding-top:var(--space-xl)}.rsvp__success p{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-sm)}.rsvp__success span{color:var(--color-ink-soft)}@media (width<=64rem){.hero__caption{top:clamp(6rem,12vh,8rem)}.hero__caption h1{font-size:clamp(3.5rem,8vw,5.5rem)}.venue__details{padding:var(--space-2xl)}}@media (width<=48rem){.section-shell{width:min(100% - 2rem, var(--container-wide))}.site-header{padding:var(--space-lg);grid-template-columns:minmax(0,1fr) auto}.site-header>p{display:none}.hero{height:100svh;min-height:38rem}.hero__caption{width:calc(100% - 2rem);top:5.5rem}.hero__caption h1{margin-block:var(--space-xl);font-size:clamp(3.25rem,11vw,5rem);line-height:.95}.hero__caption time{margin-top:var(--space-lg);font-size:clamp(1.8rem,7vw,2.75rem)}.hero__scroll{bottom:var(--space-md);left:var(--space-md);right:auto}.invitation,.schedule,.rsvp,.wishes,.story__body{grid-template-columns:minmax(0,1fr)}.story__body>p:last-child{padding-top:0}.family__columns{grid-template-columns:minmax(0,1fr)}.family__mark{margin:var(--space-md) auto}.venue{grid-template-columns:minmax(0,1fr)}.venue__image{min-height:24rem}.gallery__essay,.gallery__pending{grid-template-columns:minmax(0,1fr)}.gallery__frame--1,.gallery__frame--2,.gallery__frame--3,.gallery__frame--4{grid-column:1;min-height:min(110vw,38rem)}.gallery__frame--2,.gallery__frame--3{margin-inline-start:12%}.gallery__frame--1,.gallery__frame--4{margin-inline-end:12%}.gallery__pending{min-height:22rem}.gallery__pending span{justify-self:start}.gift__details{grid-template-columns:minmax(0,1fr)}.site-footer{padding-inline:var(--space-lg);grid-template-columns:minmax(0,1fr)}.footer-names{grid-row:auto}.footer-note,.site-footer>a{justify-self:start}}@media (width<=26rem){.site-header{padding:var(--space-md)}.header-link{font-size:var(--text-xs)}.hero{height:min(42rem,100svh);min-height:35rem}.hero__caption{top:4.75rem}.hero__caption>p{letter-spacing:.13em;font-size:.65rem}.hero__caption h1{font-size:clamp(2.8rem,15vw,4rem)}.hero__caption time{font-size:1.65rem}.hero__caption small{letter-spacing:.1em;font-size:.62rem}.invitation-gate__front{padding:var(--space-xl) var(--space-lg) var(--space-xl)}.countdown{gap:var(--space-sm)}.countdown strong{font-size:clamp(1.7rem,11vw,2.8rem)}.countdown span{font-size:.65rem}.schedule__list li{grid-template-columns:3.5rem minmax(0,1fr)}.gallery__essay{gap:var(--space-md)}.gallery__frame--1,.gallery__frame--2,.gallery__frame--3,.gallery__frame--4{min-height:min(128vw,34rem)}.gallery__frame--2,.gallery__frame--3{margin-inline-start:8%}.gallery__frame--1,.gallery__frame--4{margin-inline-end:8%}.gallery__frame figcaption{bottom:var(--space-lg);font-size:var(--text-base);left:var(--space-lg);right:var(--space-lg)}.rsvp fieldset{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.closing{min-height:70svh}.closing>div{top:5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}html{scroll-snap-type:y proximity}.wedding-document main{overflow:clip}.screen{scroll-snap-align:start;scroll-snap-stop:normal;align-items:center;height:100svh;min-height:100svh;display:flex;position:relative;overflow:hidden}.screen__inner{z-index:2;width:min(100%,72rem);margin-inline:auto;padding:clamp(4.5rem,9vh,7rem) clamp(1rem,4vw,3rem);position:relative}.screen .section-heading,.screen .screen__lede,.screen .family__columns,.screen .countdown,.screen .story__body,.screen .story__image,.screen .gallery__essay,.screen form,.screen.closing>div{opacity:0;transition:opacity .7s var(--ease-out), transform .8s var(--ease-out);transform:translate(-50%,1.25rem)}.screen.is-visible .section-heading,.screen.is-visible .screen__lede,.screen.is-visible .family__columns,.screen.is-visible .countdown,.screen.is-visible .story__body,.screen.is-visible .story__image,.screen.is-visible .gallery__essay,.screen.is-visible form,.screen.is-visible.closing>div{opacity:1;transform:translate(-50%)}.screen.is-visible .family__columns,.screen.is-visible .story__body,.screen.is-visible .gallery__essay,.screen.is-visible form{transition-delay:.12s}.screen__lede{margin:var(--space-sm) auto var(--space-xl);text-align:center;max-width:38rem}.screen .section-heading h2{font-family:var(--font-script);font-size:clamp(2.75rem,5vw,4.75rem);font-weight:400;line-height:1}.hero{scroll-snap-align:start;min-height:100svh}.hero__caption{top:10vh}.hero__caption h1{font-size:clamp(3.5rem,7vw,6rem)}.hero__caption address{font-size:var(--text-xs);letter-spacing:.08em;margin-top:var(--space-sm);text-transform:uppercase;max-width:38rem;font-style:normal}.family{background:var(--color-paper) url(/assets/pastoral-field-DXQ_7xUh.jpg) center bottom/100% auto no-repeat;text-align:center}.family:before{background:linear-gradient(to bottom, color-mix(in oklch, var(--color-paper) 96%, transparent) 12%, color-mix(in oklch, var(--color-paper) 70%, transparent) 72%, transparent);content:"";position:absolute;inset:0}.family .screen__inner{flex-direction:column;justify-content:center;align-self:stretch;display:flex}.family__columns{gap:var(--space-lg);max-width:48rem;padding-block:var(--space-xl);border:0;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-inline:auto}.family__columns>div{background:color-mix(in oklch, var(--color-paper) 88%, transparent);border:var(--rule-thin) solid var(--color-rule);padding:var(--space-xl)}.countdown-screen{background:var(--color-paper-soft);color:var(--color-ink);text-align:center}.countdown-screen>img{object-fit:cover;object-position:center bottom;opacity:.62;width:100%;height:100%;position:absolute;inset:0}.countdown-screen:after{background:linear-gradient(to bottom, color-mix(in oklch, var(--color-paper) 94%, transparent), color-mix(in oklch, var(--color-paper) 32%, transparent));content:"";position:absolute;inset:0}.countdown-screen__content{flex-direction:column;justify-content:center;align-items:center;display:flex}.countdown-screen h2{font-family:var(--font-script);max-width:14ch;font-size:clamp(2.75rem,5vw,4.75rem);font-weight:400;line-height:1.05}.countdown-screen .countdown{gap:var(--space-md);margin-block:var(--space-2xl);border:0;width:100%;max-width:44rem;padding:0}.countdown-screen .countdown div{background:color-mix(in oklch, var(--color-paper) 88%, transparent);border:var(--rule-thin) solid var(--color-rule);padding:var(--space-lg) var(--space-sm)}.countdown-screen .countdown strong{font-size:clamp(2rem,5vw,3.75rem)}.countdown-screen__content>p{font-family:var(--font-display);font-size:var(--text-lg)}.story{background:var(--color-paper)}.story__backdrop{object-fit:cover;object-position:center bottom;opacity:.46;width:100%;height:100%;position:absolute;inset:0}.story__content{align-items:center;gap:var(--space-xl);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.story__body{margin:0;display:block}.story__body p+p{margin-top:var(--space-md)}.story__image{margin:0;transform:rotate(1.5deg)}.story__image img{border:.6rem solid var(--color-paper);height:min(44vh,28rem)}.gallery{background:var(--color-paper)}.gallery>.screen__inner>.section-heading{max-width:none}.gallery__lede{margin:var(--space-sm) auto var(--space-xl);text-align:center;max-width:34rem}.gallery__essay{gap:var(--space-sm);grid-template-columns:repeat(12,minmax(0,1fr));margin-top:0}.gallery__frame{border:.45rem solid var(--color-paper);box-shadow:0 .3rem 1rem color-mix(in oklch, var(--color-ink) 12%, transparent);min-height:0}.gallery__frame--1{grid-column:1/8;height:30vh;min-height:12rem}.gallery__frame--2{grid-column:8/13;height:30vh;min-height:12rem}.gallery__frame--3{grid-column:2/7;height:25vh;min-height:10rem}.gallery__frame--4{grid-column:7/13;height:25vh;min-height:10rem}.gallery__frame figcaption{bottom:var(--space-sm);font-family:var(--font-body);font-size:var(--text-xs);left:var(--space-sm);right:var(--space-sm)}.rsvp,.wishes{background:var(--color-paper-soft) url(/assets/botanical-path-v1-BPNgzQgD.png) center bottom/cover no-repeat;display:flex}.rsvp:before,.wishes:before{background:color-mix(in oklch, var(--color-paper) 46%, transparent);content:"";position:absolute;inset:0}.rsvp__inner,.wishes__inner{width:min(100%,46rem)}.rsvp form,.wishes form{background:color-mix(in oklch, var(--color-paper) 92%, transparent);border:var(--rule-thin) solid var(--color-rule);box-shadow:0 .5rem 1.6rem color-mix(in oklch, var(--color-ink) 12%, transparent);gap:var(--space-md);padding:var(--space-xl);margin-inline:auto}.rsvp fieldset{gap:var(--space-md)}.rsvp button,.wishes button{justify-self:stretch}.closing{background:var(--color-paper);align-items:center;min-height:100svh}.closing>img{object-fit:cover;opacity:.72;width:100%;height:100%}.closing>div{top:18vh}.closing p{font-size:clamp(4rem,8vw,7rem)}.closing strong{font-family:var(--font-display);font-size:var(--text-lg);max-width:34rem;font-weight:500}.closing small{font-size:var(--text-base);margin-top:var(--space-lg);max-width:30rem}@media (width<=48rem){html{scroll-snap-type:y proximity}.screen{height:100svh;min-height:100svh}.screen__inner{padding-block:clamp(2.75rem,6vh,4rem)}.screen .section-heading h2,.countdown-screen h2{font-size:clamp(2.35rem,11vw,3.35rem)}.hero__caption{top:8vh}.hero__caption h1{font-size:clamp(3.8rem,17vw,5.25rem)}.family{background-size:auto 44%}.family__columns{gap:var(--space-xs);padding-bottom:30vh;padding-top:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr))}.family__columns>div{padding:var(--space-sm)}.family__columns>div>p,.family__columns small{font-size:.65rem}.family__columns h3{margin-block:var(--space-sm);font-size:1rem;line-height:1.2}.countdown-screen .countdown{gap:var(--space-xs);margin-block:var(--space-xl);grid-template-columns:repeat(4,minmax(0,1fr))}.countdown-screen .countdown div{padding:var(--space-md) var(--space-2xs)}.countdown-screen .countdown strong{font-size:clamp(1.65rem,9vw,2.5rem)}.story__content{gap:var(--space-sm);flex-direction:column;display:flex}.story__body{text-align:center;font-size:.78rem;line-height:1.5}.story__body p+p{margin-top:var(--space-xs)}.story__lead{font-size:.95rem;line-height:1.4}.story__image img{height:22vh}.story__image figcaption{display:none}.gallery__essay{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery__lede{margin-bottom:var(--space-sm);font-size:.78rem}.gallery .screen__inner{padding-block:2rem}.gallery__frame--1,.gallery__frame--2,.gallery__frame--3,.gallery__frame--4{grid-column:auto;height:15.5vh;min-height:6.25rem;margin:0}.gallery__frame--1,.gallery__frame--4{grid-column:1/-1}.gallery__frame figcaption{font-size:.62rem}.rsvp__inner,.wishes__inner{padding-block:2.5rem}.screen__lede{margin-bottom:var(--space-sm);font-size:.78rem}.rsvp form,.wishes form{gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.rsvp label,.rsvp legend,.wishes label{font-size:.72rem}.rsvp input:not([type=radio]),.rsvp textarea,.wishes input,.wishes textarea{min-height:2.5rem;padding-block:var(--space-xs)}.rsvp textarea,.wishes textarea{max-height:3.75rem}.rsvp fieldset{align-items:flex-start;gap:var(--space-xs);flex-direction:column}.closing>div{top:14vh}.closing p{font-size:clamp(4rem,20vw,6rem)}}@media (prefers-reduced-motion:reduce){.screen .section-heading,.screen .screen__lede,.screen .family__columns,.screen .countdown,.screen .story__body,.screen .story__image,.screen .gallery__essay,.screen form{opacity:1;transform:none}.screen.closing>div{opacity:1;transform:translate(-50%)}}html,body{overflow-x:clip}html{scroll-snap-type:y mandatory;scroll-padding-top:0}.site-header{display:none}.screen{background-color:var(--color-paper);color:var(--color-ink);isolation:isolate;height:100svh;min-height:100svh;padding:0;scroll-margin-top:0;position:relative;overflow:hidden}.screen__inner{box-sizing:border-box;height:100%;padding:clamp(var(--space-2xl), 7svh, var(--space-3xl)) var(--space-lg) var(--space-xl);z-index:2;width:min(100%,42rem);margin-inline:auto;position:relative}.watercolor-backdrop{z-index:-2;display:block;position:absolute;inset:0;overflow:hidden}.watercolor-backdrop img{object-fit:cover;object-position:center bottom;width:100%;max-width:none;height:100%}.section-heading{text-align:center;width:100%;max-width:min(100%,22rem);margin-inline:auto}.screen .section-heading h2,.countdown-screen h2{font-family:var(--font-script);letter-spacing:0;overflow-wrap:anywhere;text-wrap:balance;margin:0;font-size:clamp(2.8rem,13vw,4rem);font-style:normal;font-weight:400;line-height:1.02}.section-heading:after,.section-flourish{color:var(--color-forest);content:"❦";font-family:var(--font-display);font-size:var(--text-lg);margin-top:var(--space-xs);line-height:1;display:block}.screen__lede,.gallery__lede{color:var(--color-ink);font-family:var(--font-body);margin:var(--space-sm) auto var(--space-md);text-align:center;max-width:45ch;font-size:clamp(.78rem,3vw,.92rem);line-height:1.45}.screen .section-heading,.screen .screen__lede,.screen .family__columns,.screen .countdown,.screen .story__body,.screen .story__timeline,.screen .gallery__essay,.screen form,.screen .wishes__cards,.screen .wishes__write{opacity:0;transform:translateY(var(--space-md));transition:opacity var(--dur-medium) var(--ease-out), transform var(--dur-medium) var(--ease-out)}.screen.is-visible .section-heading,.screen.is-visible .screen__lede,.screen.is-visible .family__columns,.screen.is-visible .countdown,.screen.is-visible .story__body,.screen.is-visible .story__timeline,.screen.is-visible .gallery__essay,.screen.is-visible form,.screen.is-visible .wishes__cards,.screen.is-visible .wishes__write{opacity:1;transform:translateY(0)}.screen.is-visible .family__columns,.screen.is-visible .story__timeline,.screen.is-visible .gallery__essay,.screen.is-visible form,.screen.is-visible .wishes__cards{transition-delay:var(--dur-short)}.hero__caption{text-align:center;z-index:2;flex-direction:column;align-items:center;width:min(90%,42rem);display:flex;position:absolute;top:7svh;left:50%;transform:translate(-50%)}.hero__caption .hero__together,.hero__caption .hero__invite{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;font-size:clamp(.7rem,2.8vw,.82rem);font-weight:500;line-height:1.3}.hero__caption .hero__together{margin:0 0 var(--space-lg)}.hero__caption h1{font-family:var(--font-script);letter-spacing:0;margin:0 0 var(--space-xl);row-gap:var(--space-sm);min-width:0;max-width:100%;font-size:clamp(4rem,17vw,6rem);font-style:normal;font-weight:400;line-height:.82;display:grid}.hero__caption h1 span{overflow-wrap:anywhere;display:block}.hero__caption h1 b{color:var(--color-forest);font-family:var(--font-script);letter-spacing:0;padding-block:var(--space-sm);font-size:.48em;font-weight:400;line-height:.8;display:block}.hero__caption .hero__invite{margin:0}.hero__caption time{font-family:var(--font-display);font-variant-numeric:lining-nums;letter-spacing:.05em;margin-top:var(--space-xl);font-size:clamp(1.8rem,8vw,2.5rem);line-height:1}.hero__caption small,.hero__caption address{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;font-size:clamp(.65rem,2.5vw,.76rem);font-style:normal;line-height:1.5}.hero__caption small{margin-top:var(--space-sm)}.hero__caption .hero__venue{color:var(--color-ink);font-family:var(--font-display);letter-spacing:.04em;margin-top:var(--space-xs);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;max-width:100%;font-size:clamp(.86rem,3vw,1rem);font-weight:500;line-height:1.2;overflow:hidden}.hero__caption address{margin-top:var(--space-2xs);text-overflow:ellipsis;white-space:nowrap;width:100%;max-width:100%;font-size:clamp(.625rem,2.4vw,.76rem);overflow:hidden}.hero-map{margin-top:var(--space-xs);position:relative}.hero-map__trigger{border:0;border-bottom:var(--rule-thin) solid color-mix(in oklch, var(--color-forest) 46%, transparent);color:var(--color-forest);cursor:pointer;font-family:var(--font-body);align-items:center;gap:var(--space-2xs);min-height:2.75rem;padding:0 var(--space-2xs);text-transform:none;transition:color var(--dur-short) var(--ease-out), transform .1s var(--ease-out);white-space:nowrap;background:0 0;font-size:clamp(.68rem,2.5vw,.78rem);display:inline-flex}.hero-map__trigger:focus-visible,.map-dialog :is(button,a):focus-visible{outline:2px solid var(--color-focus);outline-offset:var(--space-2xs)}.hero-map__trigger:active,.map-dialog :is(button,a):active{transform:translateY(var(--rule-thin))}.hero-map__trigger[aria-disabled=true],.map-dialog :is(button:disabled,a[aria-disabled=true]){cursor:not-allowed;opacity:.55}.hero-map__hint{background:var(--color-ink);color:var(--color-paper);font-family:var(--font-body);font-size:var(--text-xs);opacity:0;padding:var(--space-xs) var(--space-sm);pointer-events:none;left:50%;top:calc(100% + var(--space-2xs));transform:translate(-50%, calc(var(--space-2xs) * -1));transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);white-space:nowrap;z-index:var(--z-texture);position:absolute}.hero-map__trigger:not([data-hint-dismissed=true]):focus-visible+.hero-map__hint{opacity:1;transition-delay:0s;transform:translate(-50%)}.map-dialog{background:var(--color-paper);border:var(--rule-thin) solid var(--color-rule);color:var(--color-ink);text-align:start;height:fit-content;max-height:min(88dvh,46rem);width:min(100% - var(--space-md) * 2, 48rem);margin:auto;padding:0;position:fixed;inset:0}.map-dialog[open]{animation:map-dialog-in var(--dur-medium) var(--ease-out) both}.map-dialog::backdrop{animation:map-dialog-backdrop-in var(--dur-medium) var(--ease-out) both;background:color-mix(in oklch, var(--color-ink) 48%, transparent)}.map-dialog__content{gap:var(--space-md);padding:var(--space-lg);display:grid}.map-dialog header{border-bottom:var(--rule-thin) solid var(--color-rule);align-items:start;gap:var(--space-md);padding-bottom:var(--space-md);justify-content:space-between;display:flex}.map-dialog header p{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase}.map-dialog h2{font-family:var(--font-display);font-size:var(--text-xl);margin-top:var(--space-2xs);overflow-wrap:anywhere;font-style:normal;font-weight:500;line-height:1.1}.map-dialog address{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-sm);font-style:normal;line-height:var(--line-normal);margin-top:var(--space-xs)}.map-dialog__close{color:var(--color-ink);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xl);height:2.75rem;transition:color var(--dur-short) var(--ease-out), transform .1s var(--ease-out);background:0 0;border:0;flex:0 0 2.75rem;justify-content:center;align-items:center;padding:0;display:inline-flex}.map-dialog__frame{background:var(--color-paper-soft);min-height:min(48dvh,24rem);position:relative}.map-dialog__frame>p{color:var(--color-ink-soft);font-family:var(--font-body);line-height:var(--line-normal);text-align:center;max-width:32ch;width:calc(100% - var(--space-xl) * 2);margin:0;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.map-dialog__frame iframe{opacity:0;border:0;width:100%;height:min(48dvh,24rem);display:block;position:relative}.map-dialog__frame[data-state=ready] iframe{opacity:1}.map-dialog__frame[data-state=error] iframe{display:none}.map-dialog__actions{align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.map-dialog__actions a{border:var(--rule-thin) solid var(--color-forest);color:var(--color-forest);font-family:var(--font-body);min-height:2.75rem;padding:0 var(--space-md);transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform .1s var(--ease-out);white-space:nowrap;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.map-dialog__actions a:last-child{background:var(--color-forest);color:var(--color-accent-ink)}@keyframes map-dialog-in{0%{opacity:0;transform:scale(.96)}}@keyframes map-dialog-backdrop-in{0%{opacity:0}}.family:after{background:linear-gradient(to bottom, color-mix(in oklch, var(--color-paper) 86%, transparent), transparent 65%);content:"";pointer-events:none;z-index:-1;position:absolute;inset:0}.family .screen__inner{align-self:auto;padding-top:12svh;display:block}.family__columns{align-items:stretch;gap:var(--space-sm);margin:var(--space-xl) auto 0;border:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;width:100%;max-width:34rem;padding:0;display:grid}.family__columns>div{background:color-mix(in oklch, var(--color-paper) 96%, transparent);border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 82%, transparent);border-radius:calc(var(--radius-sm) * 2);box-shadow:0 var(--space-2xs) var(--space-sm) color-mix(in oklch, var(--color-ink) 7%, transparent);min-width:0;min-height:clamp(10rem,31vw,11.75rem);padding:var(--space-lg) var(--space-sm);grid-template-rows:auto 1fr auto;align-content:center;display:grid;position:relative}.family__columns>div:after{border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 38%, transparent);border-radius:var(--radius-sm);content:"";inset:var(--space-2xs);pointer-events:none;position:absolute}.family__columns>div:before{background:color-mix(in oklch, var(--color-paper-deep) 72%, transparent);content:"";height:var(--space-sm);left:50%;top:calc(var(--space-xs) * -1);width:var(--space-3xl);position:absolute;transform:translate(-50%)rotate(-1deg)}.family__columns>div>p{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-base);letter-spacing:0;text-transform:none}.family__columns h3{font-family:var(--font-body);margin:var(--space-sm) 0;align-self:center;font-size:clamp(.625rem,2.25vw,.9rem);font-weight:400;line-height:1.45}.family__columns h3 span{letter-spacing:-.01em;white-space:nowrap}.family__columns small{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-xs);align-self:end}.family__mark{display:none}.schedule-screen{background:var(--color-paper-soft)}.schedule-screen:before{background:color-mix(in oklch, var(--color-olive-pale) 34%, transparent);content:"";pointer-events:none;height:30%;position:absolute;inset:auto 0 0}.schedule-screen__inner{align-content:start;gap:clamp(var(--space-lg), 3svh, var(--space-2xl));display:grid}.schedule-screen__head>p{color:var(--color-ink-soft);font-size:var(--text-sm);letter-spacing:.08em;margin:var(--space-sm) auto 0;text-align:center;text-transform:uppercase}.schedule-screen__timeline{max-width:68rem;padding:var(--space-lg) 0 var(--space-sm);scroll-padding-inline:var(--space-sm);scroll-snap-type:x mandatory;scrollbar-width:none;gap:0;width:100%;margin:0 auto;list-style:none;display:flex;position:relative;overflow-x:auto}.schedule-screen__timeline::-webkit-scrollbar{display:none}.schedule-screen__timeline:before{background:var(--color-rule);content:"";height:var(--rule-thin);inset:calc(var(--space-lg) + 2.15rem) 0 auto;display:none;position:absolute}.schedule-screen__timeline li{gap:var(--space-sm);min-width:0;padding-inline:var(--space-sm);scroll-snap-align:start;flex:0 0 min(78vw,18rem);grid-template-rows:4.3rem clamp(6rem,13svh,8rem) minmax(5.75rem,auto);display:grid;position:relative}.schedule-screen__time{z-index:1;justify-content:center;align-items:center;display:flex;position:relative}.schedule-screen__time span{background:var(--color-paper-soft);color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.08em;padding-inline:var(--space-xs);text-align:center;left:50%;top:calc(var(--space-md) * -1);line-height:1;position:absolute;transform:translate(-50%)}.schedule-screen__time time{background:var(--color-paper-soft);border:var(--rule-thin) solid var(--color-olive);font-family:var(--font-display);font-size:var(--text-lg);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:4.3rem;height:4.3rem;display:grid}.schedule-screen__timeline figure,.schedule-screen__placeholder{border-block:var(--rule-thin) solid var(--color-rule);place-items:center;min-width:0;margin:0;display:grid;overflow:hidden}.schedule-screen__timeline figure img{object-fit:cover;width:100%;height:100%}.schedule-screen__placeholder{color:var(--color-olive);font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:.12em}.schedule-screen__copy{text-align:center;align-content:start;display:grid}.schedule-screen__copy h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500}.schedule-screen__copy p{color:var(--color-ink-soft);font-size:var(--text-sm);margin:var(--space-xs) auto 0;max-width:28ch;line-height:1.45}.schedule-screen__head,.schedule-screen__timeline{opacity:0;transform:translateY(var(--space-md));transition:opacity var(--dur-medium) var(--ease-out), transform var(--dur-medium) var(--ease-out)}.schedule-screen.is-visible .schedule-screen__head,.schedule-screen.is-visible .schedule-screen__timeline{opacity:1;transform:translateY(0)}.countdown-screen:after{background:linear-gradient(to bottom, color-mix(in oklch, var(--color-paper) 72%, transparent), transparent 60%);content:"";pointer-events:none;z-index:-1;position:absolute;inset:0}.countdown-screen__content{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;padding-top:6svh;display:flex}.countdown-screen h2{max-width:19ch;font-size:clamp(2.7rem,11vw,3.5rem)}.countdown-screen .countdown{gap:var(--space-xs);margin:var(--space-lg) auto var(--space-md);border:0;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:25rem;padding:0;display:grid}.countdown-screen .countdown div{background:color-mix(in oklch, var(--color-paper) 96%, transparent);border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 86%, transparent);border-radius:calc(var(--radius-sm) * 2);box-shadow:0 var(--space-2xs) var(--space-sm) color-mix(in oklch, var(--color-ink) 7%, transparent);min-height:5.25rem;padding:var(--space-sm) var(--space-2xs);justify-content:center;align-items:center;position:relative}.countdown-screen .countdown div:after{border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 34%, transparent);border-radius:var(--radius-sm);content:"";inset:var(--space-2xs);pointer-events:none;position:absolute}.countdown-screen .countdown strong{font-family:var(--font-body);font-feature-settings:"lnum" 1, "tnum" 1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:.02em;font-size:clamp(1.9rem,8vw,2.65rem);font-weight:500;line-height:.9}.countdown-screen .countdown span{color:var(--color-ink);font-family:var(--font-body);letter-spacing:0;text-transform:none;font-size:clamp(.58rem,2vw,.7rem)}.countdown-screen .section-flourish{margin-top:0}.countdown-screen__content>p{font-family:var(--font-display);margin-top:var(--space-sm);max-width:24ch;font-size:clamp(1rem,4vw,1.25rem);font-style:italic;line-height:1.35}.countdown-screen .watercolor-backdrop img{transform:translateY(7svh)}.story:after,.gallery:after,.wishes:after{background:color-mix(in oklch, var(--color-paper) 42%, transparent);content:"";pointer-events:none;z-index:-1;position:absolute;inset:0}.story .screen__inner{padding-top:6svh;display:block}.story__content>.section-heading{grid-column:auto}.story__body{margin:var(--space-sm) auto var(--space-md);text-align:center;width:100%;max-width:52ch;display:block}.story__lead,.story__copy{text-align:center;width:100%;margin-inline:auto}.story__lead{font-family:var(--font-body);font-size:clamp(.72rem,2.7vw,.86rem);line-height:1.45}.story__copy{color:var(--color-ink-soft);margin-top:var(--space-xs);max-width:48ch;font-size:clamp(.66rem,2.35vw,.76rem);line-height:1.45}.story__timeline{max-width:30rem;margin:0 auto;padding:0;list-style:none;position:relative}.story__timeline:before{background:var(--color-rule);content:"";inset-block:var(--space-sm);width:var(--rule-thin);position:absolute;left:50%}.story__timeline li{align-items:center;gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr));min-height:6.7rem;display:grid;position:relative}.story__timeline li:before{background:var(--color-forest);border:var(--space-2xs) solid var(--color-paper);content:"";height:var(--space-sm);width:var(--space-sm);z-index:2;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.story__timeline figure{background:var(--color-paper);border:var(--space-xs) solid var(--color-paper);box-shadow:0 var(--space-2xs) var(--space-sm) color-mix(in oklch, var(--color-ink) 12%, transparent);height:5.4rem;margin:0;transform:rotate(-2deg)}.story__timeline figure img{filter:saturate(.72)contrast(.92);object-fit:cover;width:100%;height:100%}.story__timeline li:nth-child(2n) figure{grid-area:1/2;transform:rotate(2deg)}.story__timeline li:nth-child(2n) div{text-align:right;grid-area:1/1}.story__timeline div{font-family:var(--font-body);flex-direction:column;line-height:1.3;display:flex}.story__timeline strong{font-family:var(--font-display);font-size:var(--text-base);font-weight:500}.story__timeline span{font-size:clamp(.66rem,2.5vw,.78rem)}.story__timeline small{margin-top:var(--space-2xs);color:var(--color-ink-soft);font-size:clamp(.58rem,2.2vw,.68rem);line-height:1.35}.story__timeline li:not(:has(figure)) div{padding-inline:var(--space-xl);text-align:center;grid-column:1/-1}@media (width<=48rem){.schedule-screen__timeline{gap:var(--space-lg);padding:var(--space-lg) 0 0;scroll-snap-type:none;display:grid;overflow:visible}.schedule-screen__timeline li{align-items:start;column-gap:var(--space-md);flex:none;grid-template-rows:auto auto;grid-template-columns:4.3rem minmax(0,1fr);padding:0}.schedule-screen__time{grid-row:1/-1}.schedule-screen__time span{top:calc(var(--space-sm) * -1)}.schedule-screen__placeholder{display:none}.schedule-screen__timeline figure{height:clamp(7rem,32vw,9rem)}.schedule-screen__copy{min-height:4.3rem;padding-block:var(--space-xs) var(--space-md);border-bottom:var(--rule-thin) solid var(--color-rule);text-align:left}.schedule-screen__copy p{margin-inline:0}.story__body{margin-bottom:var(--space-lg);padding-inline:var(--space-xs)}.story__timeline{max-width:24rem;padding-left:var(--space-xl)}.story__timeline:before{left:calc(var(--space-sm) / 2)}.story__timeline li{min-height:0;padding:var(--space-md) 0 var(--space-lg);display:block}.story__timeline li:before{left:calc(var(--space-xl) * -1 + var(--space-sm) / 2);top:calc(var(--space-lg) + var(--space-2xs))}.story__timeline figure,.story__timeline li:nth-child(2n) figure{height:clamp(7rem,34vw,9rem);margin-bottom:var(--space-md);transform:none}.story__timeline div,.story__timeline li:nth-child(2n) div{text-align:left;padding-inline:0}.story__timeline li:not(:has(figure)) div{text-align:left;padding-inline:0}.story__timeline div{padding-left:var(--space-xs)}}.screen.screen--flowing{height:auto;min-height:100svh;overflow:clip}.screen.screen--flowing .screen__inner{padding-block:clamp(var(--space-2xl), 6svh, var(--space-4xl))}.gallery .watercolor-backdrop{opacity:.26}.gallery .screen__inner{padding-top:5svh}.gallery__essay{gap:var(--space-xs);margin:var(--space-md) auto 0;grid-template-columns:repeat(2,minmax(0,1fr));max-width:31rem;display:grid}.gallery__frame{background:var(--color-paper-soft);border:var(--space-xs) solid var(--color-paper);box-shadow:0 var(--space-2xs) var(--space-sm) color-mix(in oklch, var(--color-ink) 12%, transparent);height:12svh;min-height:0;position:relative;overflow:hidden}.gallery__frame:after{display:none}.gallery__frame img{filter:saturate(.72)contrast(.93);object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.gallery__frame figcaption{right:var(--space-sm);bottom:var(--space-sm);left:var(--space-sm);z-index:1;padding:var(--space-xs) var(--space-sm);background:color-mix(in oklch, var(--color-paper) 84%, transparent);color:var(--color-ink);font-size:clamp(.58rem,2vw,.7rem);line-height:1.3;position:absolute}.gallery__frame--1,.gallery__frame--4{grid-column:1/-1;height:15svh}.gallery__frame--2,.gallery__frame--5{transform:rotate(-1.2deg)}.gallery__frame--3,.gallery__frame--6{transform:rotate(1.2deg)}.rsvp:after{background:linear-gradient(to bottom, color-mix(in oklch, var(--color-paper) 64%, transparent), transparent 58%);content:"";pointer-events:none;z-index:-1;position:absolute;inset:0}.rsvp__inner{width:min(100%,36rem);padding-top:5svh}.rsvp__mobile-gift-toggle{min-width:0}.rsvp__viewport{background:color-mix(in oklch, var(--color-paper) 96%, transparent);border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 78%, transparent);border-radius:calc(var(--radius-sm) * 3);box-shadow:0 var(--space-xs) var(--space-lg) color-mix(in oklch, var(--color-ink) 7%, transparent);margin-top:var(--space-md);width:100%;overflow:hidden}.rsvp__panels{transition:transform var(--dur-medium) var(--ease-out);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:200%;display:grid;transform:translate(0)}.rsvp__viewport[data-panel=gift] .rsvp__panels{transform:translate(-50%)}.rsvp__panel{min-width:0}.rsvp__gift,.rsvp__viewport[data-panel=gift] .rsvp__panel--form{visibility:hidden}.rsvp__viewport[data-panel=gift] .rsvp__gift{visibility:visible}.rsvp form,.wishes form{background:color-mix(in oklch, var(--color-paper) 97%, transparent);border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 84%, transparent);border-radius:calc(var(--radius-sm) * 4);box-shadow:0 var(--space-xs) var(--space-lg) color-mix(in oklch, var(--color-ink) 8%, transparent);gap:var(--space-sm);margin:var(--space-md) auto 0;outline:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 30%, transparent);outline-offset:calc(var(--space-2xs) * -1);padding:var(--space-md);display:grid}.rsvp .rsvp__form{box-shadow:none;padding:var(--space-md);background:0 0;border:0;border-radius:0;outline:0;margin:0}.rsvp__gift,.rsvp__success{box-shadow:none;background:0 0;border:0;border-radius:0;outline:0}.rsvp__success{min-height:23rem;padding:var(--space-md);text-align:center;place-content:center;display:grid}.rsvp__success p{font-family:var(--font-script);font-size:var(--text-display-s)}.rsvp__success span{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-sm);margin-top:var(--space-xs)}.rsvp__success .rsvp__mobile-gift-toggle{margin-top:var(--space-lg)}.rsvp__gift{padding:var(--space-lg) var(--space-md);text-align:center;flex-direction:column;justify-content:center;display:flex}.rsvp__gift-back{margin-top:var(--space-lg)}.rsvp__gift header>span{color:var(--color-forest);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.13em;text-transform:uppercase;display:block}.rsvp__gift h3{font-family:var(--font-script);margin-top:var(--space-xs);font-size:clamp(2.6rem,12vw,3.5rem);font-weight:400;line-height:.95}.rsvp__gift header p{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-sm);margin:var(--space-xs) auto 0;max-width:29ch;line-height:1.45}.rsvp__qr{margin:var(--space-md) auto 0;width:min(58vw,12rem)}.rsvp__qr img{aspect-ratio:1;background:var(--color-paper);border:var(--rule-thin) solid var(--color-rule);height:auto;padding:var(--space-xs);width:100%;display:block}.rsvp__gift-empty{border-bottom:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 72%, transparent);border-top:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 72%, transparent);align-items:center;gap:var(--space-2xs);margin-top:var(--space-lg);padding-block:var(--space-xl);flex-direction:column;display:flex}.rsvp__gift-empty strong,.rsvp__gift-empty span,.rsvp__bank-pending{font-family:var(--font-body)}.rsvp__gift-empty strong{font-size:var(--text-base);font-weight:500}.rsvp__gift-empty span,.rsvp__bank-pending{color:var(--color-ink-soft);font-size:var(--text-sm)}.rsvp__bank-pending{margin:var(--space-md) auto 0}.rsvp__bank-details{margin:var(--space-md) 0 0;text-align:left;display:grid}.rsvp__bank-details div{border-top:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 72%, transparent);align-items:baseline;gap:var(--space-sm);padding-block:var(--space-xs);grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);display:grid}.rsvp__bank-details div:last-child{border-bottom:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 72%, transparent)}.rsvp__bank-details dt,.rsvp__bank-details dd{font-family:var(--font-body);font-size:var(--text-sm)}.rsvp__bank-details dt{color:var(--color-ink-soft)}.rsvp__bank-details dd{overflow-wrap:anywhere;text-align:right;margin:0}.rsvp label,.rsvp legend,.wishes label{color:var(--color-ink);font-family:var(--font-body);font-size:clamp(.7rem,2.5vw,.8rem)}.rsvp input:not([type=radio]):not([type=hidden]),.rsvp select,.rsvp textarea,.wishes input,.wishes textarea{background:color-mix(in oklch, var(--color-paper) 88%, transparent);border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 90%, transparent);border-radius:calc(var(--radius-sm) * 2);color:var(--color-ink);font-family:var(--font-body);margin-top:var(--space-2xs);outline-offset:1px;min-height:2.75rem;padding:var(--space-xs) var(--space-sm);resize:vertical;transition:background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);outline:2px solid #0000;width:100%;display:block}.rsvp input::placeholder,.rsvp textarea::placeholder,.wishes input::placeholder,.wishes textarea::placeholder{color:var(--color-ink-soft);opacity:.72}.rsvp textarea,.wishes textarea{min-height:3.5rem;max-height:4.5rem}.rsvp input:focus-visible,.rsvp select:focus-visible,.rsvp textarea:focus-visible,.wishes input:focus-visible,.wishes textarea:focus-visible{outline-color:var(--color-focus)}.rsvp__guest-search{z-index:4;min-width:0;position:relative}.rsvp__guest-search>label{display:block}.rsvp__guest-suggestions{background:var(--color-paper);border:var(--rule-thin) solid color-mix(in oklch, var(--color-forest) 52%, var(--color-rule));border-radius:calc(var(--radius-sm) * 2);box-shadow:0 var(--space-xs) var(--space-md) color-mix(in oklch, var(--color-ink) 12%, transparent);margin-top:var(--space-2xs);overscroll-behavior:contain;max-height:min(12rem,35dvh);padding:var(--space-2xs);inset-inline:0;z-index:6;width:100%;position:absolute;top:calc(100% - 1.25rem);overflow-y:auto}.rsvp button.rsvp__guest-option{border-radius:var(--radius-sm);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:0;min-height:2.75rem;padding:var(--space-xs) var(--space-sm);text-align:left;white-space:normal;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;font-weight:400;display:flex}.rsvp button.rsvp__guest-option[aria-selected=true]{background:color-mix(in oklch, var(--color-sage) 52%, var(--color-paper))}.rsvp__guest-option span{overflow-wrap:anywhere;min-width:0}.rsvp__guest-option small{color:var(--color-ink-soft);font-size:var(--text-xs);margin-left:var(--space-sm);white-space:nowrap;flex:none}.rsvp__guest-suggestions>p{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-sm);margin:0}.rsvp__guest-status{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-xs);margin:var(--space-2xs) 0 0;min-height:1.05rem;line-height:1.35}.rsvp .rsvp__side{background:color-mix(in oklch, var(--color-paper-soft) 56%, var(--color-paper));border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 76%, transparent);border-radius:calc(var(--radius-sm) * 2);gap:var(--space-2xs);padding:var(--space-2xs);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.rsvp fieldset.rsvp__attendance{min-inline-size:0;border:0;gap:0;width:100%;margin:0;padding:0;display:grid}.rsvp__attendance legend{float:none;margin-bottom:var(--space-2xs);width:auto;font-weight:600;position:static}.rsvp__attendance-options{background:color-mix(in oklch, var(--color-paper-soft) 56%, var(--color-paper));border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 76%, transparent);border-radius:calc(var(--radius-sm) * 2);gap:var(--space-2xs);padding:var(--space-2xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.rsvp__attendance-options label{border:var(--rule-thin) solid transparent;border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:var(--space-xs);min-height:2.75rem;transition:background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);white-space:nowrap;background:0 0;justify-content:center;display:flex}.rsvp__attendance-options label:has(input:checked){background:color-mix(in oklch, var(--color-sage) 58%, var(--color-paper));border-color:color-mix(in oklch, var(--color-forest) 54%, var(--color-rule));font-weight:600}.rsvp__attendance-options label:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:1px}.rsvp__attendance-options label:active{background:color-mix(in oklch, var(--color-sage) 68%, var(--color-paper))}.rsvp__attendance-options label:has(input:disabled){cursor:not-allowed;opacity:.55}.rsvp__attendance-options input{opacity:0;block-size:0;inline-size:0;margin:0}.rsvp__choice-mark{border:var(--rule-thin) solid color-mix(in oklch, var(--color-forest) 58%, var(--color-rule));border-radius:var(--space-3xs);flex:0 0 var(--space-md);height:var(--space-md);width:var(--space-md);justify-content:center;align-items:center;display:inline-flex}.rsvp__choice-mark:after{color:var(--color-accent-ink);content:"✓";font-family:var(--font-body);font-size:var(--text-xs);opacity:0;font-weight:700;line-height:1}.rsvp__attendance-options label:has(input:checked) .rsvp__choice-mark{background:var(--color-forest);border-color:var(--color-forest)}.rsvp__attendance-options label:has(input:checked) .rsvp__choice-mark:after{opacity:1}.rsvp__side legend{width:1px;height:1px;position:absolute;overflow:hidden}.rsvp__side label{border:var(--rule-thin) solid transparent;border-radius:var(--radius-sm);min-height:2.75rem;transition:background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);background:0 0;justify-content:center;align-items:center;display:flex}.rsvp__side label:has(input:checked){background:color-mix(in oklch, var(--color-sage) 58%, var(--color-paper));border-color:color-mix(in oklch, var(--color-forest) 54%, var(--color-rule));font-weight:600}.rsvp__side label:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:1px}.rsvp__side input{opacity:0;block-size:1px;inline-size:1px;margin:0}.rsvp button,.wishes button{background:var(--color-forest);border:var(--rule-thin) solid var(--color-forest);border-radius:calc(var(--radius-sm) * 2);color:var(--color-accent-ink);cursor:pointer;font-family:var(--font-display);font-size:var(--text-base);letter-spacing:.02em;min-height:2.75rem;padding:var(--space-xs) var(--space-xl);transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);white-space:nowrap;justify-self:stretch;font-weight:500}.rsvp button:focus-visible,.wishes button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.rsvp button:active,.wishes button:active{transform:translateY(1px)}.rsvp button:disabled,.wishes button:disabled{cursor:not-allowed;opacity:.55}.rsvp select:disabled{background:color-mix(in oklch, var(--color-paper-soft) 72%, var(--color-paper));color:var(--color-ink-soft);cursor:not-allowed;opacity:.68}.rsvp button.rsvp__mobile-gift-toggle,.rsvp button.rsvp__submit,.rsvp button.rsvp__copy{background:var(--color-forest);border-color:var(--color-forest);color:var(--color-accent-ink)}.rsvp button.rsvp__mobile-gift-toggle{background:color-mix(in oklch, var(--color-paper) 94%, var(--color-sage));border-color:color-mix(in oklch, var(--color-forest) 62%, var(--color-rule));color:var(--color-forest);padding-inline:var(--space-sm)}.rsvp__form-actions{gap:var(--space-xs);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);display:grid}.rsvp button.rsvp__copy{margin-top:var(--space-md);width:100%}.rsvp button.rsvp__copy[data-state=success]{background:color-mix(in oklch, var(--color-success) 22%, var(--color-paper));border-color:var(--color-success)}.rsvp button.rsvp__copy[data-state=error]{background:color-mix(in oklch, var(--color-error) 12%, var(--color-paper));border-color:var(--color-error)}.rsvp__toast{animation:rsvp-toast 5s var(--ease-out) both;background:var(--color-forest);border:var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 60%, var(--color-forest));bottom:max(var(--space-md), env(safe-area-inset-bottom));color:var(--color-accent-ink);font-family:var(--font-body);font-size:var(--text-sm);max-width:calc(100% - var(--space-md) * 2);padding:var(--space-xs) var(--space-md);text-align:center;transform:translate(-50%, var(--space-sm));width:max-content;z-index:var(--z-skip);position:absolute;left:50%}.rsvp__toast--error{background:var(--color-error)}@media (width<=48rem){.rsvp__inner{padding:clamp(var(--space-md), 3svh, var(--space-lg)) var(--space-md) max(var(--space-md), env(safe-area-inset-bottom));grid-template-rows:auto auto minmax(0,1fr);align-content:stretch;display:grid}.rsvp .section-heading h2{font-size:clamp(2.5rem,12vw,3.25rem);line-height:.98}.rsvp .screen__lede{margin:var(--space-xs) auto var(--space-sm)}.rsvp__viewport{min-width:0;max-width:100%;min-height:0;margin-top:0}.rsvp__panels{height:100%;min-height:0}.rsvp__panel{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:100%;min-height:0;overflow:clip auto}.rsvp .rsvp__form{gap:var(--space-xs);min-height:100%;padding:var(--space-sm)}.rsvp input:not([type=radio]):not([type=hidden]),.rsvp select,.rsvp textarea,.wishes input,.wishes textarea{min-height:2.5rem;padding:var(--space-2xs) var(--space-sm);font-size:1rem}.rsvp textarea,.wishes textarea{min-height:3.25rem}.rsvp__side label,.rsvp__attendance-options label,.rsvp button{min-height:2.5rem}.rsvp__gift{min-height:100%;padding:var(--space-sm) var(--space-sm) max(var(--space-lg), env(safe-area-inset-bottom));justify-content:flex-start}.rsvp__gift h3{font-size:clamp(2.35rem,11vw,3rem);line-height:.92}.rsvp__gift header p{margin-top:var(--space-2xs);max-width:34ch;font-size:.78rem;line-height:1.35}.rsvp__qr{margin-top:var(--space-xs);width:min(34vw,7.75rem)}.rsvp__qr img{padding:var(--space-2xs)}.rsvp__gift-empty{margin-top:var(--space-sm);padding-block:var(--space-md)}.rsvp__bank-details{margin-top:var(--space-sm)}.rsvp__bank-details div{padding-block:var(--space-2xs)}.rsvp__bank-details dt,.rsvp__bank-details dd{font-size:.78rem}.rsvp button.rsvp__copy,.rsvp__gift-back{margin-top:var(--space-sm)}}@keyframes rsvp-toast{0%{opacity:0;transform:translate(-50%, var(--space-sm))}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%, var(--space-sm))}}.wishes__inner{width:min(100%,36rem);padding-top:6svh}.wishes__browse{min-width:0}.wishes__browse:focus{outline:0}.wishes__thanks{color:var(--color-forest);font-family:var(--font-body);font-size:var(--text-xs);margin:0 auto var(--space-xs);text-align:center;max-width:44ch;line-height:1.4}.wishes__viewport{min-height:calc(12.9rem + var(--space-xs) * 2)}.wishes__cards{gap:var(--space-xs);margin:var(--space-md) auto var(--space-sm);display:grid}.wishes__cards blockquote{background:color-mix(in oklch, var(--color-paper) 97%, transparent);border:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 84%, transparent);border-radius:calc(var(--radius-sm) * 3);box-shadow:0 var(--space-2xs) var(--space-sm) color-mix(in oklch, var(--color-ink) 6%, transparent);align-items:center;gap:var(--space-sm);min-height:4.3rem;padding:var(--space-sm) var(--space-md);grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.wishes__cards p,.wishes__cards cite{font-family:var(--font-body);font-size:clamp(.68rem,2.5vw,.8rem);font-style:normal;line-height:1.35}.wishes__cards p:before{color:var(--color-forest);content:"“";font-family:var(--font-display);font-size:var(--text-lg);margin-right:var(--space-xs);line-height:0}.wishes__cards cite{white-space:nowrap}.wishes__write{margin:var(--space-sm) auto 0;width:100%;min-width:10rem;display:block}.wishes__pagination{margin:var(--space-2xs) auto 0;justify-content:center;align-items:center;display:flex}.wishes .wishes__pagination>button,.wishes .wishes__dots button{color:var(--color-forest);font-family:var(--font-body);font-size:var(--text-base);background:0 0;border:0;justify-content:center;align-items:center;min-width:2.75rem;min-height:2.75rem;padding:0;display:inline-flex}.wishes .wishes__pagination>button:disabled{opacity:.28}.wishes__dots{justify-content:center;gap:0;display:flex}.wishes__dots i{border:var(--rule-thin) solid var(--color-forest);height:var(--space-xs);width:var(--space-xs);border-radius:50%;display:block}.wishes__dots button[aria-current=page] i{background:var(--color-forest)}.wishes__page-count{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:center;min-width:5.5rem}.wishes__empty{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-sm);margin:var(--space-xl) auto;text-align:center;max-width:34ch;line-height:1.5}.wishes__actions{gap:var(--space-xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=40rem){.wishes__inner{width:min(100%,46rem)}.wishes__viewport{min-height:calc(8.6rem + var(--space-xs))}.wishes__cards{grid-template-columns:repeat(2,minmax(0,1fr))}.wishes__cards blockquote{grid-template-columns:minmax(0,1fr)}.wishes__cards cite{justify-self:end}.wishes__write{width:min(100%,18rem)}}.invitation-loading{background:linear-gradient(color-mix(in oklch, var(--color-paper) 88%, transparent), color-mix(in oklch, var(--color-paper) 96%, transparent)), radial-gradient(circle at 50% 42%, var(--color-paper), var(--color-paper-soft));color:var(--color-ink);min-height:100dvh;padding:max(var(--space-lg), env(safe-area-inset-top)) var(--space-lg) max(var(--space-lg), env(safe-area-inset-bottom));place-items:center;display:grid;position:relative;overflow:clip}.invitation-loading:before,.invitation-loading:after{border:var(--rule-thin) solid color-mix(in oklch, var(--color-forest) 24%, transparent);content:"";inset:var(--space-md);pointer-events:none;position:absolute}.invitation-loading:after{inset:calc(var(--space-md) + var(--space-2xs));opacity:.42}.invitation-loading__content{text-align:center;justify-items:center;width:min(100%,24rem);display:grid}.invitation-loading__flourish{color:var(--color-forest);font-family:var(--font-display);font-size:var(--text-xl);line-height:1}.invitation-loading__title{font-family:var(--font-script);margin:var(--space-sm) 0 var(--space-lg);font-size:clamp(3.25rem,18vw,5.25rem);line-height:.9}.invitation-loading__line{background:color-mix(in oklch, var(--color-rule) 72%, transparent);height:var(--rule-thin);width:min(72%,12rem);display:block;position:relative;overflow:hidden}.invitation-loading__line i{animation:invitation-loading-line var(--dur-long) var(--ease-in-out) infinite alternate;background:var(--color-forest);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(.18)}.invitation-loading__note{color:var(--color-ink-soft);font-family:var(--font-body);font-size:var(--text-sm);margin:var(--space-md) 0 0;line-height:1.5}@keyframes invitation-loading-line{to{transform:scaleX(1)}}.thank-you-dialog{color:var(--color-accent-ink);height:fit-content;max-height:min(88dvh,42rem);max-width:calc(100% - var(--space-md) * 2);width:min(30rem, 100% - var(--space-md) * 2);background:0 0;border:0;margin:auto;padding:0;position:fixed;inset:0;overflow:visible}.thank-you-dialog[open]{animation:thank-you-dialog-in var(--dur-medium) var(--ease-out) both}.thank-you-dialog::backdrop{background:color-mix(in oklch, var(--color-ink) 58%, transparent);-webkit-backdrop-filter:blur(var(--space-2xs));backdrop-filter:blur(var(--space-2xs))}.thank-you-dialog__content{background-color:var(--color-forest);background-image:linear-gradient(color-mix(in oklch, var(--color-forest) 26%, transparent), color-mix(in oklch, var(--color-ink) 14%, transparent)), var(--thank-you-texture);border:var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 56%, transparent);box-shadow:0 var(--space-lg) var(--space-3xl) color-mix(in oklch, var(--color-ink) 32%, transparent);box-sizing:border-box;outline:var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 30%, transparent);outline-offset:calc(var(--space-xs) * -1);padding:clamp(var(--space-xl), 8vw, var(--space-3xl)) clamp(var(--space-lg), 7vw, var(--space-2xl));text-align:center;background-position:50%;background-size:cover;justify-items:center;display:grid;position:relative}.thank-you-dialog__flourish{color:var(--color-paper-soft);font-family:var(--font-display);font-size:var(--text-xl);line-height:1}.thank-you-dialog__eyebrow{color:var(--color-paper-soft);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.12em;margin:var(--space-md) 0 0;text-transform:uppercase}.thank-you-dialog h2{color:var(--color-accent-ink);font-family:var(--font-script);margin:var(--space-md) 0 0;overflow-wrap:anywhere;text-wrap:balance;font-size:clamp(3rem,14vw,4.5rem);font-style:normal;font-weight:400;line-height:.92}.thank-you-dialog__guest{color:var(--color-paper-soft);font-family:var(--font-display);font-size:var(--text-lg);margin:var(--space-sm) 0 0}.thank-you-dialog__rule{background:color-mix(in oklch, var(--color-paper) 58%, transparent);height:var(--rule-thin);margin-block:var(--space-lg);width:min(68%,10rem)}.thank-you-dialog__message{color:var(--color-paper-soft);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--line-relaxed);max-width:45ch;margin:0}.thank-you-dialog__couple{color:var(--color-accent-ink);font-family:var(--font-script);margin:var(--space-lg) 0 0;font-size:clamp(2rem,4vw,3rem);line-height:1}.thank-you-dialog__couple b{color:var(--color-sage);padding-inline:var(--space-xs);font-weight:400}.thank-you-dialog button{border:var(--rule-thin) solid color-mix(in oklch, var(--color-paper) 68%, transparent);border-radius:calc(var(--radius-sm) * 2);color:var(--color-accent-ink);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.06em;margin-top:var(--space-xl);min-width:8rem;min-height:2.75rem;padding:var(--space-xs) var(--space-xl);transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);white-space:nowrap;background:0 0}.thank-you-dialog button:focus-visible{outline:2px solid var(--color-paper);outline-offset:var(--space-2xs)}.thank-you-dialog button:active{transform:translateY(1px)}.thank-you-dialog button:disabled{cursor:not-allowed;opacity:.55}@keyframes thank-you-dialog-in{0%{opacity:0;transform:translateY(var(--space-sm)) scale(.985)}}@media (hover:hover) and (pointer:fine){.thank-you-dialog button:hover{background:var(--color-paper);color:var(--color-forest);transform:translateY(-1px)}}.closing{text-align:center}.closing>div{z-index:2;flex-direction:column;align-items:center;width:min(86%,32rem);display:flex;position:absolute;top:18svh;left:50%;transform:translate(-50%)}.screen.closing>div{opacity:0;transform:translate(-50%, var(--space-md));transition:opacity var(--dur-medium) var(--ease-out), transform var(--dur-medium) var(--ease-out)}.screen.is-visible.closing>div{opacity:1;transform:translate(-50%)}.closing p{font-family:var(--font-script);font-size:clamp(4.5rem,20vw,6.5rem);font-style:normal;line-height:.9}.closing p:after{color:var(--color-forest);content:"❦";font-family:var(--font-display);font-size:var(--text-lg);margin-top:var(--space-xs);line-height:1;display:block}.closing strong,.closing small{font-family:var(--font-display);max-width:31ch;font-weight:400;line-height:1.45}.closing strong{font-size:clamp(1rem,4vw,1.25rem)}.closing small{margin-top:var(--space-lg);font-size:clamp(.9rem,3.5vw,1.1rem)}.closing span{color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.16em;margin-top:var(--space-lg)}.closing button{color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-xs);margin-top:var(--space-lg);text-underline-offset:var(--space-2xs);background:0 0;border:0;min-height:2.75rem;text-decoration:underline}@media (hover:hover) and (pointer:fine){.hero-map__trigger:hover{color:var(--color-ink)}.hero-map__trigger:not([data-hint-dismissed=true]):hover+.hero-map__hint{opacity:1;transition-delay:.8s;transform:translate(-50%)}.map-dialog__close:hover{color:var(--color-forest)}.map-dialog__actions a:hover{background:var(--color-forest);color:var(--color-accent-ink)}.map-dialog__actions a:last-child:hover{background:color-mix(in oklch, var(--color-forest) 88%, var(--color-ink))}.rsvp__attendance-options label:not(:has(input:checked)):hover{background:color-mix(in oklch, var(--color-paper) 82%, var(--color-sage));border-color:color-mix(in oklch, var(--color-forest) 32%, var(--color-rule))}.rsvp button:hover,.wishes button:hover{background:color-mix(in oklch, var(--color-paper) 94%, var(--color-sage));color:var(--color-forest)}.wishes .wishes__pagination button:hover{color:var(--color-ink);background:0 0}.rsvp button.rsvp__mobile-gift-toggle:hover{background:color-mix(in oklch, var(--color-sage) 48%, var(--color-paper));border-color:var(--color-forest);color:var(--color-ink)}.rsvp button.rsvp__submit:hover,.rsvp button.rsvp__copy:hover{background:color-mix(in oklch, var(--color-forest) 88%, var(--color-ink));border-color:var(--color-ink);color:var(--color-accent-ink)}.rsvp input:not([type=radio]):hover,.rsvp select:hover,.rsvp textarea:hover,.wishes input:hover,.wishes textarea:hover{background:var(--color-paper);border-color:var(--color-forest)}}@media (width<=22rem){.family__columns{grid-template-columns:minmax(0,1fr);max-width:17rem}.map-dialog__content{gap:var(--space-sm);padding:var(--space-md)}.map-dialog h2{font-size:var(--text-lg)}.map-dialog__frame,.map-dialog__frame iframe{height:min(36dvh,12rem);min-height:min(36dvh,12rem)}.map-dialog__actions{gap:var(--space-xs);grid-template-columns:minmax(0,1fr);display:grid}.map-dialog__actions a{width:100%}}@media (width>=48.0625rem){.wishes .watercolor-backdrop img,.closing .watercolor-backdrop img{object-position:center 66%}.screen__inner{padding-inline:var(--space-3xl);width:min(100%,72rem)}.screen .section-heading{max-width:min(100%,46rem)}.schedule-screen__timeline{scroll-snap-type:none;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));padding-bottom:0;display:grid;overflow:visible}.schedule-screen__timeline:before{display:block}.schedule-screen__timeline li{min-width:0}.screen .section-heading h2,.countdown-screen h2{font-size:clamp(3.6rem,6vw,5.4rem)}.hero__caption{top:6svh}.hero__caption h1{font-size:clamp(5rem,8vw,7rem);line-height:.82}.family .screen__inner,.countdown-screen__content{padding-top:8svh}.countdown-screen .watercolor-backdrop img{transform:none}.family__columns{gap:var(--space-xl);margin-top:var(--space-xl)}.family__columns>div{padding:var(--space-xl)}.countdown-screen .countdown{max-width:38rem}.story .screen__inner,.gallery .screen__inner,.rsvp__inner,.wishes__inner{padding-top:4svh}.story__timeline{align-items:start;gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));max-width:58rem;display:grid}.story__timeline:before{display:none}.story__timeline li{gap:var(--space-sm);min-height:0;padding-top:var(--space-2xl);text-align:center;border-top:var(--rule-thin) solid var(--color-rule);flex-direction:column;display:flex}.story__timeline li:before{left:50%;top:var(--space-xl)}.story__timeline figure,.story__timeline li:nth-child(2n) figure,.story__timeline li:nth-child(2n) div{text-align:center;grid-area:auto;width:100%;height:9rem}.story__timeline li:not(:has(figure)) div{padding-inline:var(--space-sm)}.gallery__essay{gap:var(--space-sm);grid-template-columns:repeat(12,minmax(0,1fr));max-width:58rem}.gallery__frame,.gallery__frame--1,.gallery__frame--4{height:23svh}.gallery__frame--1{grid-column:1/8}.gallery__frame--2{grid-column:8/13}.gallery__frame--3{grid-column:1/5}.gallery__frame--4{grid-column:5/10}.gallery__frame--5{grid-column:10/13}.gallery__frame--6{grid-column:3/11}.rsvp__inner{width:min(100%,68rem)}.rsvp .section-heading{max-width:none}.rsvp .section-heading h2{white-space:nowrap;font-size:clamp(3.4rem,5vw,4.5rem)}.rsvp__mobile-gift-toggle{display:none}.rsvp__viewport{margin-top:var(--space-md);overflow:hidden}.rsvp__panels,.rsvp__viewport[data-panel=gift] .rsvp__panels{grid-template-columns:minmax(0,1.08fr) minmax(19rem,.92fr);gap:0;width:100%;transform:none}.rsvp__gift,.rsvp__viewport[data-panel=gift] .rsvp__panel--form{visibility:visible}.rsvp__gift{border-inline-start:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 72%, transparent);padding-inline:var(--space-xl)}.rsvp__form-actions{grid-template-columns:minmax(0,1fr)}.wishes__inner{width:min(100%,64rem)}.closing>div{top:15svh}}@media (width>=48.0625rem) and (height<=54rem){.rsvp__inner{padding-top:clamp(var(--space-sm), 2svh, var(--space-lg));grid-template-rows:auto auto minmax(0,1fr);width:min(100%,62rem);display:grid}.rsvp .section-heading h2{font-size:clamp(2.6rem,4.2vw,3.4rem);line-height:.98}.rsvp .section-heading:after{font-size:var(--text-base);margin-top:var(--space-2xs)}.rsvp .screen__lede{margin:var(--space-2xs) auto var(--space-xs);font-size:.78rem}.rsvp__viewport{margin-top:var(--space-xs);min-height:0}.rsvp__panels{height:100%}.rsvp__panel{min-height:0;overflow-y:auto}.rsvp .rsvp__form{gap:var(--space-xs);padding:var(--space-sm)}.rsvp label,.rsvp legend{font-size:.72rem}.rsvp input:not([type=radio]):not([type=hidden]),.rsvp select,.rsvp textarea{min-height:2.75rem;padding:var(--space-2xs) var(--space-sm);font-size:.82rem}.rsvp textarea{min-height:3.25rem}.rsvp__side label,.rsvp__attendance-options label,.rsvp button{min-height:2.75rem}.rsvp__gift{padding:var(--space-md) var(--space-lg);justify-content:flex-start}.rsvp__gift h3{font-size:clamp(2.4rem,4vw,3rem)}.rsvp__gift header p{margin-top:var(--space-2xs);font-size:.76rem}.rsvp__qr{margin-top:var(--space-xs);width:min(16svh,7.5rem)}.rsvp__qr figcaption,.rsvp__bank-details dt,.rsvp__bank-details dd{font-size:.74rem}.rsvp__bank-details{margin-top:var(--space-xs)}.rsvp__bank-details div{padding-block:var(--space-2xs)}.rsvp button.rsvp__copy{margin-top:var(--space-xs)}}@media (height<=44rem){.screen__inner{padding-top:var(--space-xl)}.family .screen__inner,.countdown-screen__content,.hero__caption{top:var(--space-xl);padding-top:0}.hero__caption .hero__together{margin-bottom:var(--space-xs)}.hero__caption h1{margin-bottom:var(--space-sm);row-gap:0;font-size:clamp(3.25rem,15vw,4.25rem)}.hero__caption h1 b{padding-block:var(--space-2xs)}.hero__caption time{margin-top:var(--space-md);font-size:clamp(1.65rem,7vw,1.9rem)}.hero__caption small{margin-top:var(--space-xs)}.hero-map{margin-top:0}.screen .section-heading h2,.countdown-screen h2{font-size:2.7rem}.story__timeline li{min-height:5.6rem}.story__timeline figure{height:4.6rem}}@media (prefers-reduced-motion:reduce){.map-dialog[open],.map-dialog::backdrop{animation-duration:var(--dur-short)}.invitation-loading__line i,.thank-you-dialog[open]{animation-duration:var(--dur-short);animation-iteration-count:1}.schedule-screen__head,.schedule-screen__timeline,.screen .section-heading,.screen .screen__lede,.screen .family__columns,.screen .countdown,.screen .story__body,.screen .story__timeline,.screen .gallery__essay,.screen form,.screen .wishes__cards,.screen .wishes__write{opacity:1;transition-duration:var(--dur-short);transform:none}.screen.closing>div,.screen.is-visible.closing>div{opacity:1;transition-duration:var(--dur-short);transform:translate(-50%)}.rsvp__panels{transition:none}.rsvp__toast{opacity:1;animation:none;transform:translate(-50%)}}.admin-shell,.admin-login{background:var(--color-paper);min-height:100dvh;color:var(--color-ink);font-family:var(--font-body)}.admin-shell button,.admin-login button,.admin-shell input,.admin-shell select,.admin-shell textarea,.admin-login input{font:inherit}.admin-login{grid-template-columns:minmax(0,1.15fr) minmax(22rem,.85fr);display:grid}.admin-login__intro{min-height:100dvh;padding:clamp(var(--space-xl), 7vw, var(--space-4xl));border-right:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-soft);flex-direction:column;justify-content:flex-end;display:flex}.admin-login__intro span,.admin-login__form header span,.admin-page__header span,.admin-editor header span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.admin-login__intro h1{max-width:13ch;margin:var(--space-lg) 0;font-family:var(--font-display);font-size:clamp(2.5rem,5vw,5rem);font-weight:500;line-height:.98}.admin-login__intro p{max-width:34rem;color:var(--color-ink-soft)}.admin-login__form{place-self:center;gap:var(--space-lg);flex-direction:column;width:min(100% - 3rem,28rem);display:flex}.admin-login__form header{margin-bottom:var(--space-lg)}.admin-login__form h2{margin-top:var(--space-xs);font-size:clamp(2rem,4vw,3.25rem)}.admin-login label,.admin-editor label,.admin-inline-form label,.admin-upload label{gap:var(--space-xs);color:var(--color-ink-soft);font-size:var(--text-sm);display:grid}.admin-login input,.admin-editor input,.admin-editor select,.admin-editor textarea,.admin-inline-form input,.admin-inline-form select,.admin-upload input,.admin-upload select{box-sizing:border-box;width:100%;min-height:2.75rem;padding:var(--space-sm) var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:color-mix(in oklch, var(--color-paper) 75%, transparent);color:var(--color-ink);transition:border-color var(--dur-short) var(--ease-out), background var(--dur-short) var(--ease-out);outline-offset:1px;outline:2px solid #0000}.admin-editor textarea{resize:vertical;line-height:var(--line-normal)}.admin-login input:focus,.admin-editor :is(input,select,textarea):focus,.admin-inline-form :is(input,select):focus,.admin-upload :is(input,select):focus{border-color:var(--color-focus);background:var(--color-paper);outline-color:var(--color-focus)}.admin-login button,.admin-page__header>button,.admin-editor>button,.admin-inline-form>button,.admin-upload>button,.admin-wish-list button{border:var(--rule-thin) solid var(--color-forest);border-radius:var(--radius-sm);background:var(--color-forest);min-height:2.75rem;color:var(--color-accent-ink);cursor:pointer;transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out)}.admin-login button:hover,.admin-page__header>button:hover,.admin-editor>button:hover,.admin-inline-form>button:hover,.admin-upload>button:hover,.admin-wish-list button:hover{transform:translateY(-1px)}.admin-shell button:focus-visible,.admin-login button:focus-visible,.admin-shell a:focus-visible,.admin-login a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-shell button:active,.admin-login button:active{transform:translateY(1px)}.admin-shell button:disabled,.admin-login button:disabled{cursor:not-allowed;opacity:.55}.admin-shell{grid-template-columns:16rem minmax(0,1fr);display:grid}.admin-rail{border-right:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-soft);flex-direction:column;height:100dvh;display:flex;position:sticky;top:0}.admin-brand{align-items:baseline;gap:var(--space-sm);padding:var(--space-xl) var(--space-lg);border-bottom:var(--rule-thin) solid var(--color-rule);color:inherit;text-decoration:none;display:flex}.admin-brand span{font-family:var(--font-display);font-size:var(--text-xl)}.admin-brand strong{font-size:var(--text-sm);font-weight:500}.admin-wedding-select{gap:var(--space-xs);padding:var(--space-lg);color:var(--color-ink-soft);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;display:grid}.admin-wedding-select select{border:0;border-bottom:var(--rule-thin) solid var(--color-rule);width:100%;color:var(--color-ink);font:inherit;text-transform:none;letter-spacing:0;background:0 0}.admin-rail nav{padding:0 var(--space-sm);display:grid}.admin-rail nav button{gap:var(--space-xs);padding:var(--space-sm);color:var(--color-ink-soft);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;border-left:2px solid #0000;grid-template-columns:2rem 1fr;display:grid}.admin-rail nav button span{font-size:var(--text-xs)}.admin-rail nav button:hover,.admin-rail nav button.is-active{border-left-color:var(--color-forest);color:var(--color-ink);background:color-mix(in oklch, var(--color-sage) 24%, transparent)}.admin-rail footer{justify-content:space-between;align-items:flex-end;gap:var(--space-sm);padding:var(--space-lg);border-top:var(--rule-thin) solid var(--color-rule);margin-top:auto;display:flex}.admin-rail footer div{min-width:0;display:grid}.admin-rail footer strong{font-size:var(--text-sm);font-weight:500}.admin-rail footer span{color:var(--color-ink-soft);font-size:var(--text-xs);text-overflow:ellipsis;overflow:hidden}.admin-rail footer button{color:var(--color-ink-soft);cursor:pointer;font-size:var(--text-xs);background:0 0;border:0}.admin-page{min-width:0;padding:0 clamp(var(--space-lg), 4vw, var(--space-3xl)) var(--space-3xl)}.admin-page__bar{border-bottom:var(--rule-thin) solid var(--color-rule);min-height:4.5rem;color:var(--color-ink-soft);font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex}.admin-page__bar a{color:var(--color-ink);text-decoration:none}.admin-page__header{align-items:end;gap:var(--space-xl);padding:var(--space-3xl) 0 var(--space-xl);grid-template-columns:minmax(0,1fr) minmax(15rem,28rem) auto;display:grid}.admin-page__header h2{margin-top:var(--space-xs);font-size:clamp(2.1rem,4vw,4rem);font-weight:500}.admin-page__header p{color:var(--color-ink-soft);line-height:var(--line-normal);margin:0}.admin-page__header>button{padding:0 var(--space-lg);white-space:nowrap}.admin-page-actions{justify-content:flex-end;gap:var(--space-xs);flex-wrap:wrap;display:flex}.admin-page-actions button{min-height:2.75rem;padding-inline:var(--space-md);border:var(--rule-thin) solid var(--color-forest);border-radius:var(--radius-sm);background:var(--color-forest);color:var(--color-accent-ink);cursor:pointer;transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out), background var(--dur-short) var(--ease-out);white-space:nowrap}.admin-page-actions button.is-quiet{border-color:var(--color-rule);color:var(--color-ink);background:0 0}.admin-page-actions button:disabled{cursor:not-allowed;opacity:.5}.admin-page-actions button:active{transform:translateY(1px)}@media (width<=78rem){.admin-page__header--guests{align-items:start;gap:var(--space-md);grid-template-columns:minmax(0,1fr)}.admin-page__header--guests .admin-page-actions{justify-content:flex-start}}.admin-metrics{border-block:var(--rule-thin) solid var(--color-rule);grid-template-columns:repeat(4,1fr);margin:0;display:grid}.admin-metrics div{min-height:8rem;padding:var(--space-lg);border-right:var(--rule-thin) solid var(--color-rule);flex-direction:column-reverse;justify-content:space-between;display:flex}.admin-metrics div:last-child{border-right:0}.admin-metrics dt{color:var(--color-ink-soft);font-size:var(--text-sm)}.admin-metrics dd{font-family:var(--font-display);margin:0;font-size:clamp(2.4rem,5vw,4.5rem);line-height:1}.admin-overview-grid{gap:var(--space-2xl);padding-top:var(--space-2xl);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-overview-grid section>h3{padding-bottom:var(--space-md);border-bottom:var(--rule-thin) solid var(--color-rule);font-size:var(--text-lg)}.admin-feed{justify-content:space-between;align-items:start;gap:var(--space-lg);padding:var(--space-md) 0;border-bottom:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 65%, transparent);display:flex}.admin-feed div{display:grid}.admin-feed strong{font-weight:500}.admin-feed span,.admin-feed time{color:var(--color-ink-soft);font-size:var(--text-sm)}.admin-feed span{text-overflow:ellipsis;white-space:nowrap;max-width:34rem;overflow:hidden}[data-status]{color:var(--color-ink-soft);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-style:normal}[data-status=approved],[data-status=attending],[data-status=active]{color:var(--color-success)}[data-status=rejected],[data-status=revoked]{color:var(--color-error)}.admin-workbench{border-block:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(15rem,.72fr) minmax(24rem,1.28fr);min-height:36rem;display:grid}.admin-record-list{border-right:var(--rule-thin) solid var(--color-rule)}.admin-record-list button{gap:0 var(--space-sm);width:100%;padding:var(--space-md);border:0;border-bottom:var(--rule-thin) solid var(--color-rule);color:var(--color-ink);cursor:pointer;text-align:left;background:0 0;grid-template-columns:2rem 1fr;display:grid}.admin-record-list button>span{color:var(--color-ink-soft);font-size:var(--text-xs);grid-row:span 2}.admin-record-list button strong{font-weight:500}.admin-record-list button small{color:var(--color-ink-soft)}.admin-record-list button.is-active{background:color-mix(in oklch, var(--color-sage) 28%, transparent)}.admin-editor{align-content:start;gap:var(--space-lg);padding:var(--space-xl);display:grid}.admin-editor header{justify-content:space-between;align-items:start;gap:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:var(--rule-thin) solid var(--color-rule);display:flex}.admin-editor h3{margin-top:var(--space-xs)}.admin-editor>button{padding:0 var(--space-xl);justify-self:start}.admin-form-grid{gap:var(--space-md);grid-template-columns:minmax(0,1fr) 8rem;display:grid}.admin-form-grid--balanced{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-switch{align-items:center;color:var(--color-ink)!important;display:flex!important}.admin-switch input{min-height:auto}.admin-workbench--content{grid-template-columns:minmax(16rem,.62fr) minmax(34rem,1.38fr)}.admin-editor--content{gap:var(--space-xl)}.admin-section-fields{gap:var(--space-lg);display:grid}.admin-field small{min-height:1lh;color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-deep-editor{gap:var(--space-lg);padding-top:var(--space-xl);border-top:var(--rule-thin) solid var(--color-rule);display:grid}.admin-editor .admin-subhead{border:0;align-items:end;padding:0}.admin-subhead h4{margin-top:var(--space-xs);font-family:var(--font-display);font-size:var(--text-xl);font-weight:500}.admin-subhead>button,.admin-editor-empty button,.admin-inline-upload>button,.admin-gallery-upload>button,.admin-editor-actions button{min-height:2.75rem;padding-inline:var(--space-lg);border:var(--rule-thin) solid var(--color-forest);border-radius:var(--radius-sm);background:var(--color-forest);color:var(--color-accent-ink);cursor:pointer;white-space:nowrap}.admin-detail-layout{border-top:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(14rem,.72fr) minmax(20rem,1.28fr);display:grid}.admin-detail-list{border-right:var(--rule-thin) solid var(--color-rule);min-width:0;margin:0;padding:0;list-style:none}.admin-detail-list li{border-bottom:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.admin-detail-list li.is-active{background:color-mix(in oklch, var(--color-sage) 25%, transparent)}.admin-detail-list li>button{align-content:center;gap:0 var(--space-sm);min-width:0;min-height:4.5rem;padding:var(--space-sm) var(--space-md);color:var(--color-ink);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:2.5rem minmax(0,1fr);display:grid}.admin-detail-list li>button span{color:var(--color-ink-soft);font-family:var(--font-display);grid-row:span 2;align-self:center}.admin-detail-list li>button strong{min-width:0;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.admin-order-controls{align-items:center;gap:var(--space-2xs);padding-inline-end:var(--space-sm);display:flex}.admin-order-controls button{min-width:2.75rem;min-height:2.75rem;padding:0 var(--space-xs);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);cursor:pointer;white-space:nowrap}.admin-order-controls button.is-danger{min-width:auto;color:var(--color-error)}.admin-order-controls button:disabled{cursor:not-allowed;opacity:.42}.admin-detail-form{align-content:start;gap:var(--space-lg);min-width:0;padding:var(--space-xl);display:grid}.admin-image-preview{border:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-soft);margin:0;overflow:hidden}.admin-image-preview img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.admin-image-preview--large img{aspect-ratio:4/3}.admin-inline-upload,.admin-gallery-upload{align-items:end;gap:var(--space-md);padding-top:var(--space-lg);border-top:var(--rule-thin) solid var(--color-rule);grid-template-columns:repeat(2,minmax(0,1fr)) auto;display:grid}.admin-gallery-upload{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.admin-inline-upload .admin-error,.admin-gallery-upload .admin-error{grid-column:1/-1;margin:0;padding:0}.admin-detail-list--media li>button{grid-template-columns:3.5rem 2rem minmax(0,1fr)}.admin-detail-list--media li>button img{object-fit:cover;grid-row:span 2;width:3.5rem;height:3.5rem}.admin-detail-list--media li>button span{grid-row:span 2}.admin-editor-empty{justify-items:start;gap:var(--space-sm);padding:var(--space-xl) 0;color:var(--color-ink-soft);display:grid}.admin-editor-empty strong{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-lg);font-weight:500}.admin-editor-empty p{max-width:42rem;margin:0}.admin-feedback{margin:0;padding:0}.admin-editor-actions{align-items:center;gap:var(--space-sm);padding-top:var(--space-lg);border-top:var(--rule-thin) solid var(--color-rule);display:flex}.admin-editor-actions button:last-child{border-color:var(--color-rule);color:var(--color-ink);background:0 0}@media (hover:hover) and (pointer:fine){.admin-subhead>button:hover,.admin-editor-empty button:hover,.admin-inline-upload>button:hover,.admin-gallery-upload>button:hover,.admin-editor-actions button:hover{transform:translateY(-1px)}.admin-detail-list li>button:hover{background:color-mix(in oklch, var(--color-sage) 14%, transparent)}.admin-order-controls button:hover:not(:disabled){border-color:var(--color-forest)}}.admin-inline-form,.admin-upload{align-items:end;gap:var(--space-md);padding:var(--space-lg);border-block:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-soft);grid-template-columns:repeat(5,minmax(8rem,1fr)) auto;display:grid}.admin-inline-form>button,.admin-upload>button{padding:0 var(--space-lg)}.admin-inline-form .admin-error,.admin-upload p{grid-column:1/-1}.admin-table-wrap{border-top:var(--rule-thin) solid var(--color-rule);overflow-x:auto}.admin-table-wrap table{border-collapse:collapse;width:100%}.admin-table-wrap th{padding:var(--space-sm) var(--space-md);color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.08em;text-align:left;text-transform:uppercase;font-weight:400}.admin-table-wrap td{max-width:22rem;padding:var(--space-md);border-top:var(--rule-thin) solid var(--color-rule);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-table-wrap tbody tr:hover{background:color-mix(in oklch, var(--color-sage) 14%, transparent)}.admin-table-wrap a{color:var(--color-forest)}.admin-wish-list{border-top:var(--rule-thin) solid var(--color-rule)}.admin-wish-list article{gap:var(--space-xl);padding:var(--space-lg) 0;border-bottom:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;display:grid}.admin-wish-list article>div:last-child{align-items:center;gap:var(--space-sm);display:flex}.admin-wish-list p{margin:var(--space-xs) 0 0;color:var(--color-ink-soft)}.admin-wish-list button{min-height:2.25rem;padding:0 var(--space-md);white-space:nowrap}.admin-wish-list button.is-quiet{border-color:var(--color-rule);color:var(--color-ink);background:0 0}.admin-record-list button.admin-account{align-items:center;gap:var(--space-md);padding:var(--space-lg);grid-template-columns:3.5rem minmax(0,1fr) auto;display:grid}.admin-account__copy{min-width:0;display:grid}.admin-account img{aspect-ratio:1;border:var(--rule-thin) solid var(--color-rule);object-fit:contain;background:var(--color-paper);width:3.5rem;display:block}.admin-record-list button.admin-account:not(:has(img)){grid-template-columns:minmax(0,1fr) auto}.admin-account__copy small{color:var(--color-ink-soft);font-size:var(--text-sm)}.admin-account__action{color:var(--color-forest);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em}.admin-record-list button.admin-account:hover{background:color-mix(in oklch, var(--color-sage) 18%, transparent)}.admin-record-list button.admin-account:focus-visible{outline:2px solid var(--color-forest);outline-offset:-2px}.admin-qr-picker{min-width:0;margin:var(--space-sm) 0 0;padding:var(--space-lg) 0 0;border:0;border-top:var(--rule-thin) solid var(--color-rule)}.admin-qr-picker legend{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-lg);padding:0}.admin-qr-picker__layout{gap:var(--space-lg);margin-top:var(--space-md);grid-template-columns:9rem minmax(0,1fr);display:grid}.admin-qr-preview{aspect-ratio:1;border:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-soft);width:100%;color:var(--color-ink-soft);text-align:center;place-items:center;display:grid;overflow:hidden}.admin-qr-preview img{object-fit:contain;background:var(--color-paper);width:100%;height:100%;display:block}.admin-qr-preview span{max-width:10ch;padding:var(--space-sm);overflow-wrap:anywhere;font-size:var(--text-xs)}.admin-qr-picker__fields{align-content:start;gap:var(--space-md);min-width:0;display:grid}.admin-qr-picker__fields small{color:var(--color-ink-soft);font-size:var(--text-xs);line-height:var(--line-normal)}.admin-gift-account-form>button:disabled{cursor:not-allowed;opacity:.55}.admin-editor__cancel{min-height:2.25rem;padding:0 var(--space-md);border-color:var(--color-rule);color:var(--color-ink);white-space:nowrap;background:0 0}.admin-editor__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.admin-editor__actions button{min-height:2.75rem;padding:0 var(--space-lg)}.admin-editor__actions .is-danger{border-color:var(--color-error);color:var(--color-error);background:0 0}.admin-editor__actions button:disabled{cursor:not-allowed;opacity:.55}.admin-media-grid{gap:var(--space-lg);padding-top:var(--space-xl);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.admin-media-grid figure{margin:0}.admin-media-grid img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.admin-media-grid figcaption{padding-top:var(--space-sm);display:grid}.admin-media-grid figcaption strong{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.admin-media-grid figcaption span{color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-error,.admin-success,.admin-loading,.admin-empty{padding:var(--space-md) 0}.admin-error{color:var(--color-error)}.admin-error--reserved{min-height:1lh;padding:0}.admin-success{color:var(--color-success)}.admin-loading,.admin-empty{color:var(--color-ink-soft)}.rsvp__form-error,.wishes__error{color:var(--color-error);font-size:var(--text-sm);text-align:left;margin:0}@media (width<=900px){.admin-login{grid-template-columns:1fr}.admin-login__intro{border-right:0;border-bottom:var(--rule-thin) solid var(--color-rule);min-height:38dvh}.admin-login__form{padding-block:var(--space-3xl)}.admin-shell{display:block}.admin-rail{z-index:var(--z-header);border-right:0;border-bottom:var(--rule-thin) solid var(--color-rule);height:auto;position:sticky}.admin-brand{display:none}.admin-wedding-select{padding:var(--space-sm) var(--space-lg)}.admin-rail nav{padding:0 var(--space-md);display:flex;overflow-x:auto}.admin-rail nav button{border-bottom:2px solid #0000;border-left:0;flex:none;grid-template-columns:auto 1fr}.admin-rail nav button:hover,.admin-rail nav button.is-active{border-bottom-color:var(--color-forest);border-left:0}.admin-rail footer{display:none}.admin-page__header{align-items:start;gap:var(--space-md);grid-template-columns:1fr}.admin-page__header>button{justify-self:start}.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-metrics div:nth-child(2){border-right:0}.admin-metrics div:nth-child(-n+2){border-bottom:var(--rule-thin) solid var(--color-rule)}.admin-overview-grid,.admin-workbench,.admin-workbench--content{grid-template-columns:1fr}.admin-record-list{border-right:0;border-bottom:var(--rule-thin) solid var(--color-rule);max-height:15rem;overflow-y:auto}.admin-detail-layout{grid-template-columns:1fr}.admin-detail-list{border-right:0;border-bottom:var(--rule-thin) solid var(--color-rule);max-height:20rem;overflow-y:auto}.admin-inline-upload,.admin-gallery-upload,.admin-inline-form,.admin-upload,.admin-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.admin-page{padding-inline:var(--space-md)}.admin-page__bar{min-height:3.5rem}.admin-page__header{padding-top:var(--space-xl)}.admin-page__header p{font-size:var(--text-sm)}.admin-metrics div{min-height:6rem;padding:var(--space-md)}.admin-editor{padding:var(--space-lg) 0}.admin-form-grid--balanced,.admin-inline-upload,.admin-gallery-upload{grid-template-columns:1fr}.admin-detail-form{padding:var(--space-lg) 0}.admin-detail-list li{padding-block:var(--space-xs);grid-template-columns:minmax(0,1fr)}.admin-order-controls{padding:0 var(--space-sm) var(--space-sm);justify-content:flex-end}.admin-detail-list--media li>button{grid-template-columns:3.5rem 2rem minmax(0,1fr)}.admin-editor-actions{flex-direction:column;align-items:stretch}.admin-editor-actions button{width:100%}.admin-form-grid,.admin-inline-form,.admin-upload{grid-template-columns:1fr}.admin-table-wrap table,.admin-table-wrap tbody,.admin-table-wrap tr,.admin-table-wrap td{display:block}.admin-table-wrap thead{display:none}.admin-table-wrap tr{padding:var(--space-md) 0;border-top:var(--rule-thin) solid var(--color-rule)}.admin-table-wrap td{max-width:none;padding:var(--space-xs) 0;white-space:normal;border:0;grid-template-columns:8rem 1fr;display:grid}.admin-table-wrap td:before{content:attr(data-label);color:var(--color-ink-soft);font-size:var(--text-xs);text-transform:uppercase}.admin-wish-list article{gap:var(--space-md);grid-template-columns:1fr}.admin-media-grid,.admin-qr-picker__layout{grid-template-columns:1fr}.admin-qr-preview{width:min(12rem,100%)}}@media (prefers-reduced-motion:reduce){.admin-shell *,.admin-login *{scroll-behavior:auto!important;transition-duration:.01ms!important}}.admin-guest-summary,.admin-gift-metrics{border-block:var(--rule-thin) solid var(--color-rule);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.admin-guest-summary>div,.admin-gift-metrics>div{min-width:0;min-height:6rem;padding:var(--space-md);border-inline-end:var(--rule-thin) solid var(--color-rule);border-block-end:var(--rule-thin) solid var(--color-rule);align-content:space-between;display:grid}.admin-guest-summary span,.admin-gift-metrics dt,.admin-gift-metrics small{color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-guest-summary strong,.admin-gift-metrics dd{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);font-size:clamp(var(--text-lg), 4vw, var(--text-2xl));font-variant-numeric:tabular-nums;margin:0;font-weight:500}.admin-filterbar{gap:var(--space-md);padding-block:var(--space-lg);align-items:end;display:grid}.admin-generic-invitations{border-block:var(--rule-thin) solid var(--color-rule);align-items:start;gap:var(--space-lg);padding-block:var(--space-lg);display:grid}.admin-generic-invitations>div:first-child>span{color:var(--color-forest);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.admin-generic-invitations h3{margin-top:var(--space-xs);font-size:var(--text-xl);font-style:normal}.admin-generic-invitations p{max-width:46ch;margin:var(--space-xs) 0 0;color:var(--color-ink-soft);font-size:var(--text-sm);line-height:var(--line-normal)}.admin-generic-invitations>div:last-child{border-top:var(--rule-thin) solid var(--color-rule);display:grid}.admin-generic-invitations article{justify-content:space-between;align-items:center;gap:var(--space-sm);padding-block:var(--space-sm);border-bottom:var(--rule-thin) solid var(--color-rule);flex-wrap:wrap;display:flex}.admin-generic-invitations article>div:first-child{gap:var(--space-2xs);display:grid}.admin-generic-invitations article span{color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-generic-invitations article>div:last-child{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.admin-generic-invitations :is(a,button){min-height:2.75rem;padding-inline:var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);cursor:pointer;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.admin-generic-invitations :is(a,button):focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-filterbar label,.admin-dialog label{gap:var(--space-xs);min-width:0;color:var(--color-ink-soft);font-size:var(--text-sm);display:grid}.admin-filterbar :is(input,select),.admin-dialog :is(input,select,textarea){width:100%;min-height:2.75rem;padding:var(--space-sm) var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);outline-offset:1px;background:var(--color-paper);color:var(--color-ink);font:inherit;outline:2px solid #0000}.admin-dialog textarea{resize:vertical;min-height:6rem}.admin-dialog input:disabled{cursor:not-allowed;opacity:.55}.admin-filterbar :is(input,select):focus-visible,.admin-dialog :is(input,select,textarea):focus-visible{outline-color:var(--color-focus)}.admin-segmented{border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-segmented button{justify-content:space-between;align-items:center;gap:var(--space-xs);min-width:0;min-height:2.75rem;padding-inline:var(--space-sm);border:0;border-inline-end:var(--rule-thin) solid var(--color-rule);color:var(--color-ink-soft);cursor:pointer;white-space:nowrap;background:0 0;display:flex}.admin-segmented button:last-child{border-inline-end:0}.admin-segmented button.is-active{background:color-mix(in oklch, var(--color-sage) 38%, transparent);color:var(--color-ink)}.admin-segmented button span{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.admin-table-skeleton{border-block:var(--rule-thin) solid var(--color-rule);background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--color-sage) 22%, transparent), transparent);min-height:16rem;animation:admin-skeleton 1.4s var(--ease-in-out) infinite;background-size:220% 100%}@keyframes admin-skeleton{to{background-position:-220% 0}}.admin-guest-table table,.admin-guest-table tbody,.admin-guest-table tr,.admin-guest-table td,.admin-gift-table table,.admin-gift-table tbody,.admin-gift-table tr,.admin-gift-table td{display:block}.admin-guest-table thead,.admin-gift-table thead{display:none}.admin-guest-table tr,.admin-gift-table tr{padding-block:var(--space-md);border-top:var(--rule-thin) solid var(--color-rule)}.admin-guest-table td,.admin-gift-table td{gap:var(--space-sm);max-width:none;padding:var(--space-xs) 0;white-space:normal;border:0;grid-template-columns:7rem minmax(0,1fr);display:grid;overflow:visible}.admin-guest-table td:before,.admin-gift-table td:before{content:attr(data-label);color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.admin-guest-table td:first-child strong,.admin-gift-table td:first-child strong{font-weight:500}.admin-guest-table td:first-child span,.admin-gift-table td:first-child span{margin-top:var(--space-2xs);display:block}.admin-guest-table td:last-child small{color:var(--color-ink-soft);font-size:var(--text-xs);grid-column:2}.admin-gift-table .is-money{font-variant-numeric:tabular-nums;font-weight:500}.admin-row-actions{gap:var(--space-2xs);flex-wrap:wrap;min-width:0;display:flex}.admin-row-actions button,.admin-dialog button,.admin-dialog a{min-height:2.75rem;padding-inline:var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);cursor:pointer;transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);white-space:nowrap;text-decoration:none}.admin-row-actions button:disabled,.admin-dialog button:disabled{cursor:not-allowed;opacity:.45}.admin-row-actions button.is-danger,.admin-dialog button.is-danger{color:var(--color-error)}.admin-dialog footer button:last-child:not(.is-danger){border-color:var(--color-forest);background:var(--color-forest);color:var(--color-accent-ink)}.admin-dialog .admin-icon-button{width:2.75rem;font-size:var(--text-lg);background:0 0;border:0;padding:0}.admin-dialog button:focus-visible,.admin-dialog a:focus-visible,.admin-row-actions button:focus-visible,.admin-segmented button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-dialog button:active,.admin-dialog a:active,.admin-row-actions button:active{transform:translateY(1px)}.admin-dialog{width:min(100% - var(--space-md) * 2, 48rem);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-soft);max-width:none;max-height:min(88dvh,48rem);color:var(--color-ink);animation:admin-dialog-in var(--dur-long) var(--ease-out) both;margin:auto;padding:0;position:fixed;inset:0}.admin-dialog::backdrop{background:color-mix(in oklch, var(--color-ink) 52%, transparent)}@keyframes admin-dialog-in{0%{opacity:0;transform:translateY(var(--space-sm)) scale(.985)}}.admin-dialog__form,.admin-confirm,.admin-qr{gap:var(--space-lg);padding:var(--space-lg);display:grid}.admin-dialog header{justify-content:space-between;align-items:start;gap:var(--space-lg);padding-bottom:var(--space-md);border-bottom:var(--rule-thin) solid var(--color-rule);display:flex}.admin-dialog header span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.admin-dialog h3{margin-top:var(--space-xs);overflow-wrap:anywhere;font-size:var(--text-xl);font-style:normal}.admin-dialog footer{justify-content:flex-end;gap:var(--space-sm);padding-top:var(--space-md);border-top:var(--rule-thin) solid var(--color-rule);display:flex}.admin-dialog .admin-form-grid{grid-template-columns:minmax(0,1fr)}.admin-confirm>p{color:var(--color-ink-soft);line-height:var(--line-normal);margin:0}.admin-dialog--qr{width:min(100% - var(--space-md) * 2, 29rem)}.admin-qr{text-align:center}.admin-qr header{text-align:left}.admin-qr img{border:var(--rule-thin) solid var(--color-rule);justify-self:center;width:min(100%,22.5rem);height:auto}.admin-qr>div{gap:var(--space-xs);min-width:0;display:grid}.admin-qr>div span{color:var(--color-ink-soft);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-qr footer{align-items:center}.admin-dialog--import{width:min(100% - var(--space-md) * 2, 76rem);max-height:calc(100dvh - var(--space-md) * 2)}.admin-import{max-height:calc(100dvh - var(--space-md) * 2);gap:var(--space-md);padding:var(--space-lg);grid-template-rows:auto auto minmax(0,1fr) auto auto;display:grid}.admin-import__upload{gap:var(--space-lg);padding-block:var(--space-lg);display:grid}.admin-import__upload p{margin:var(--space-2xs) 0 0;color:var(--color-ink-soft);font-size:var(--text-sm)}.admin-file-picker{border:var(--rule-thin) dashed var(--color-forest);border-radius:var(--radius-sm);background:color-mix(in oklch, var(--color-sage) 18%, transparent);min-height:8rem;color:var(--color-ink);cursor:pointer;text-align:center;place-content:center;display:grid;position:relative}.admin-file-picker input{clip:rect(0 0 0 0);height:1px;position:absolute;overflow:hidden;width:1px!important}.admin-file-picker span{font-weight:600}.admin-file-picker small{margin-top:var(--space-xs);color:var(--color-ink-soft)}.admin-file-picker:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.admin-file-picker:active{background:color-mix(in oklch, var(--color-sage) 34%, transparent)}.admin-import__note{border-inline-start:2px solid var(--color-sage);padding-inline-start:var(--space-md)}.admin-import__summary{border-block:var(--rule-thin) solid var(--color-rule);grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.admin-import__summary>div{gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);border-inline-end:var(--rule-thin) solid var(--color-rule);display:grid}.admin-import__summary span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.admin-import__summary strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500}.admin-import__summary [data-tone=warning] strong{color:var(--color-forest)}.admin-import__summary [data-tone=danger] strong{color:var(--color-error)}.admin-import__summary [data-tone=ready] strong{color:var(--color-success)}.admin-import__summary>button{place-self:center end;margin-inline-start:var(--space-sm)}.admin-import-table{border-block:var(--rule-thin) solid var(--color-rule);min-height:0;overflow:auto}.admin-import-table table{border-collapse:collapse;width:100%}.admin-import-table th{z-index:1;padding:var(--space-sm);background:var(--color-paper-soft);color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.06em;text-align:left;text-transform:uppercase;font-weight:500;position:sticky;top:0}.admin-import-table td{padding:var(--space-sm);border-top:var(--rule-thin) solid var(--color-rule);vertical-align:top}.admin-import-table tr.is-duplicate{background:color-mix(in oklch, var(--color-sage) 24%, transparent)}.admin-import-table tr.has-error{background:color-mix(in oklch, var(--color-error) 7%, transparent)}.admin-import-table td:first-child,.admin-import-table td:nth-child(3),.admin-import-table td:nth-child(4),.admin-import-table td:nth-child(7){white-space:nowrap}.admin-import-table td:nth-child(2){min-width:14rem}.admin-import-table td:nth-child(5){min-width:12rem}.admin-import-table td:nth-child(6){min-width:14rem}.admin-import-table :is(input,select){min-height:2.5rem;padding:var(--space-xs) var(--space-sm)}.admin-import-table td>small{margin-top:var(--space-2xs);color:var(--color-ink-soft);font-size:var(--text-xs);display:block}.admin-import-contact{gap:var(--space-2xs);margin-top:var(--space-2xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-import-contact input{min-width:0;font-size:var(--text-xs)}.admin-import-state{gap:var(--space-2xs);display:grid}.admin-import-state strong{font-size:var(--text-sm);font-weight:600}.admin-import-state small{color:var(--color-ink-soft);font-size:var(--text-xs);line-height:1.35}.admin-import-state.is-warning strong{color:var(--color-forest)}.admin-import-state.is-error strong{color:var(--color-error)}.admin-import-state.is-ready strong{color:var(--color-success)}.admin-import-actions{gap:var(--space-2xs);display:flex}.admin-import-actions button{width:2.5rem;min-height:2.5rem;font-size:var(--text-lg);padding:0}.admin-import-actions button.is-confirmed{border-color:var(--color-success);background:var(--color-success);color:var(--color-paper)}.admin-toast{z-index:var(--z-toast);right:var(--space-md);bottom:max(var(--space-md), env(safe-area-inset-bottom));max-width:min(28rem, 100% - var(--space-md) * 2);align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-forest);color:var(--color-accent-ink);animation:admin-toast-in var(--dur-short) var(--ease-out) both;display:flex;position:fixed}.admin-toast button{min-width:2.75rem;min-height:2.75rem;color:inherit;cursor:pointer;background:0 0;border:0}@keyframes admin-toast-in{0%{opacity:0;transform:translateY(var(--space-sm))}}.admin-gift-context{border-bottom:var(--rule-thin) solid var(--color-rule);display:grid}.admin-gift-context p{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-sm) var(--space-md);border-bottom:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 65%, transparent);margin:0;display:flex}.admin-gift-context p:last-child{border-bottom:0}.admin-gift-context span{color:var(--color-ink-soft);font-size:var(--text-sm)}.admin-gift-context strong{font-variant-numeric:tabular-nums;font-weight:500}.admin-filterbar--gifts{grid-template-columns:minmax(0,1fr)}@media (hover:hover) and (pointer:fine){.admin-page-actions button:hover:not(:disabled){transform:translateY(-1px)}.admin-page-actions button.is-quiet:hover:not(:disabled){background:color-mix(in oklch, var(--color-sage) 20%, transparent)}.admin-file-picker:hover{background:color-mix(in oklch, var(--color-sage) 26%, transparent)}.admin-row-actions button:hover:not(:disabled),.admin-dialog button:hover:not(:disabled),.admin-dialog a:hover{transform:translateY(-1px)}.admin-segmented button:hover{background:color-mix(in oklch, var(--color-sage) 20%, transparent)}.admin-filterbar :is(input,select):hover,.admin-dialog :is(input,select,textarea):hover{background:var(--color-paper-soft)}}@media (width>=40rem){.admin-generic-invitations{grid-template-columns:minmax(14rem,.7fr) minmax(20rem,1.3fr)}.admin-filterbar{grid-template-columns:minmax(22rem,1fr) minmax(16rem,.6fr)}.admin-filterbar--gifts{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-segmented{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-dialog__form,.admin-confirm,.admin-qr{padding:var(--space-xl)}.admin-dialog .admin-form-grid--balanced{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-import{padding:var(--space-xl)}.admin-gift-context{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-gift-context p{border-inline-end:var(--rule-thin) solid var(--color-rule);border-bottom:0}.admin-gift-context p:last-child{border-inline-end:0}}@media (width<=63.99rem){.admin-import__summary{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-import__summary>button{margin:var(--space-sm) 0;grid-column:1/-1;justify-self:start}.admin-import-table table,.admin-import-table tbody,.admin-import-table tr,.admin-import-table td{display:block}.admin-import-table thead{display:none}.admin-import-table tr{padding-block:var(--space-sm);border-top:var(--rule-thin) solid var(--color-rule)}.admin-import-table td{gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:0;grid-template-columns:7rem minmax(0,1fr);display:grid;white-space:normal!important;min-width:0!important}.admin-import-table td:before{content:attr(data-label);color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.admin-import-table td>:is(input,select,div,small){grid-column:2}}@media (width<=39.99rem){.admin-page-actions{justify-content:flex-start;width:100%}.admin-page-actions button{flex:1 1 calc(50% - var(--space-xs));white-space:nowrap}.admin-dialog--import{width:calc(100% - var(--space-xs) * 2);max-height:calc(100dvh - var(--space-xs) * 2)}.admin-import{max-height:calc(100dvh - var(--space-xs) * 2);padding:var(--space-md)}.admin-import__summary{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-import__summary>div{padding-inline:var(--space-xs)}.admin-import__summary strong{font-size:var(--text-lg)}.admin-import-table td{grid-template-columns:5.5rem minmax(0,1fr)}.admin-import footer{background:var(--color-paper-soft);flex-wrap:wrap;position:sticky;bottom:0}.admin-import footer button{flex:1}}@media (width>=60rem){.admin-guest-summary,.admin-gift-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-guest-summary>div,.admin-gift-metrics>div{border-block-end:0;min-height:7rem}.admin-filterbar--gifts{grid-template-columns:repeat(3,minmax(10rem,.6fr)) minmax(14rem,1fr)}.admin-guest-table table,.admin-gift-table table{display:table}.admin-guest-table thead,.admin-gift-table thead{display:table-header-group}.admin-guest-table tbody,.admin-gift-table tbody{display:table-row-group}.admin-guest-table tr,.admin-gift-table tr{border:0;padding:0;display:table-row}.admin-guest-table td,.admin-gift-table td{max-width:22rem;padding:var(--space-md);border-top:var(--rule-thin) solid var(--color-rule);white-space:nowrap;display:table-cell}.admin-guest-table td:before,.admin-gift-table td:before{content:none}.admin-guest-table td:last-child small{margin-top:var(--space-xs);display:block}.admin-row-actions{flex-wrap:nowrap}.admin-row-actions button{min-height:2.25rem;padding-inline:var(--space-sm)}}@media (prefers-reduced-motion:reduce){.admin-dialog,.admin-toast{animation-duration:.15s!important;transform:none!important}.admin-table-skeleton{animation-duration:2s!important}}.admin-family-editor .admin-subhead{align-items:start}.admin-family-editor .admin-subhead p{max-width:52ch;color:var(--color-ink-soft);font-size:var(--text-sm);margin:0}.admin-family-editor__grid{grid-template-columns:minmax(0,1fr);display:grid}.admin-family-panel{gap:var(--space-lg);min-width:0;padding:var(--space-xl) 0;border:0;border-top:var(--rule-thin) solid var(--color-rule);margin:0;display:grid}.admin-family-panel legend{align-items:center;gap:var(--space-sm);width:100%;padding:0;display:flex}.admin-family-panel legend span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.admin-family-panel legend strong{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500}@media (width>=48rem){.admin-family-editor__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-family-panel{padding-inline-end:var(--space-xl)}.admin-family-panel+.admin-family-panel{padding-inline:var(--space-xl) 0;border-inline-start:var(--rule-thin) solid var(--color-rule)}}.admin-schedule-context{border-block:var(--rule-thin) solid var(--color-rule);align-items:end;gap:var(--space-xl);padding-block:var(--space-lg);grid-template-columns:minmax(14rem,.8fr) minmax(18rem,1.2fr);display:grid}.admin-schedule-context p{color:var(--color-ink-soft);font-size:var(--text-sm);max-width:52ch;margin:0}.admin-detail-layout--schedule .admin-detail-list li>button span{font-variant-numeric:tabular-nums}.admin-detail-layout--schedule{grid-template-columns:minmax(0,1fr)}.admin-detail-layout--schedule .admin-detail-list{border-bottom:var(--rule-thin) solid var(--color-rule);border-right:0}@media (width<=48rem){.admin-schedule-context{align-items:start;gap:var(--space-md);grid-template-columns:minmax(0,1fr)}}.admin-media-page__actions{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.admin-media-page__actions>span{width:100%;color:var(--color-ink-soft);font-size:var(--text-sm)}.admin-media-page__actions button,.admin-media-choice-actions button,.admin-media-empty button,.admin-media-inspector button{min-height:2.75rem;padding-inline:var(--space-md);border:var(--rule-thin) solid var(--color-forest);border-radius:var(--radius-sm);background:var(--color-forest);color:var(--color-accent-ink);cursor:pointer;transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out), background var(--dur-short) var(--ease-out);white-space:nowrap}.admin-media-page__actions button.is-quiet,.admin-media-choice-actions button.is-quiet,.admin-media-inspector button.is-danger{border-color:var(--color-rule);color:var(--color-ink);background:0 0}.admin-media-inspector button.is-danger{color:var(--color-error)}.admin-media-page__actions button:disabled,.admin-media-choice-actions button:disabled,.admin-media-empty button:disabled,.admin-media-inspector button:disabled{cursor:not-allowed;opacity:.5}.admin-media-feedback{margin:0 0 var(--space-lg)}.admin-media-workbench{border-block:var(--rule-thin) solid var(--color-rule);min-width:0;display:grid}.admin-media-folders{min-width:0;padding-block:var(--space-sm);border-bottom:var(--rule-thin) solid var(--color-rule);align-content:start;display:grid}.admin-media-folders>button,.admin-media-folders>div>button{justify-content:space-between;align-items:center;gap:var(--space-sm);width:100%;min-width:0;min-height:2.75rem;padding:var(--space-sm);color:var(--color-ink);cursor:pointer;text-align:left;background:0 0;border:0;display:flex}.admin-media-folders>button span,.admin-media-folders>div>button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.admin-media-folders small{color:var(--color-ink-soft);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.admin-media-folders>button.is-active,.admin-media-folders>div.is-active{background:color-mix(in oklch, var(--color-sage) 34%, transparent)}.admin-media-folders>div{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;display:grid}.admin-folder-actions{gap:var(--space-2xs);padding-inline-end:var(--space-xs);display:flex}.admin-folder-actions button{min-height:2.25rem;padding-inline:var(--space-xs);color:var(--color-ink-soft);cursor:pointer;font-size:var(--text-xs);background:0 0;border:0}.admin-media-browser{min-width:0;padding-block:var(--space-md)}.admin-media-browser__toolbar{gap:var(--space-sm);display:grid}.admin-media-browser__toolbar label{min-width:0}.admin-media-browser__toolbar input,.admin-media-inspector :is(input,select,textarea){box-sizing:border-box;width:100%;min-height:2.75rem;padding:var(--space-sm) var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);outline-offset:1px;background:var(--color-paper);color:var(--color-ink);font:inherit;outline:2px solid #0000}.admin-media-browser__toolbar input:focus-visible,.admin-media-inspector :is(input,select,textarea):focus-visible{outline-color:var(--color-focus)}.admin-view-toggle{border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-view-toggle button{min-height:2.75rem;padding-inline:var(--space-sm);border:0;border-inline-end:var(--rule-thin) solid var(--color-rule);color:var(--color-ink-soft);cursor:pointer;background:0 0}.admin-view-toggle button:last-child{border-inline-end:0}.admin-view-toggle button.is-active{background:color-mix(in oklch, var(--color-sage) 34%, transparent);color:var(--color-ink)}.admin-media-browser__count{margin:var(--space-sm) 0;color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-media-results{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.admin-media-results>button{align-content:start;gap:var(--space-xs);min-width:0;padding:var(--space-xs);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);cursor:pointer;text-align:left;transition:border-color var(--dur-short) var(--ease-out), background var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);display:grid;position:relative}.admin-media-results>button.is-selected{border-color:var(--color-forest);background:color-mix(in oklch, var(--color-sage) 18%, var(--color-paper))}.admin-media-thumb{aspect-ratio:4/3;background:var(--color-paper-deep);display:block;overflow:hidden}.admin-media-thumb img{object-fit:cover;width:100%;height:100%;display:block}.admin-media-tile__copy{gap:var(--space-2xs);min-width:0;display:grid}.admin-media-tile__copy strong,.admin-media-tile__copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-media-tile__copy strong{font-size:var(--text-sm);font-weight:500}.admin-media-tile__copy small{color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-media-selected-mark{top:var(--space-sm);right:var(--space-sm);border:var(--rule-thin) solid var(--color-paper);background:var(--color-forest);width:1.75rem;height:1.75rem;color:var(--color-accent-ink);opacity:0;border-radius:50%;place-items:center;display:grid;position:absolute}.admin-media-results>button.is-selected .admin-media-selected-mark{opacity:1}.admin-media-results.is-list{grid-template-columns:minmax(0,1fr)}.admin-media-results.is-list>button{grid-template-columns:5rem minmax(0,1fr);align-items:center}.admin-media-results.is-list .admin-media-thumb{aspect-ratio:4/3}.admin-media-empty{align-content:center;justify-items:start;gap:var(--space-xs);min-height:12rem;padding:var(--space-xl);color:var(--color-ink-soft);text-align:left;display:grid}.admin-media-empty strong{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-lg);font-weight:500}.admin-media-empty p{max-width:34ch;margin:0}.admin-media-inspector{border-top:var(--rule-thin) solid var(--color-rule);min-width:0}.admin-media-inspector form{gap:var(--space-md);padding-block:var(--space-lg);display:grid}.admin-media-inspector form>figure{aspect-ratio:4/3;background:var(--color-paper-deep);margin:0;overflow:hidden}.admin-media-inspector form>figure img{object-fit:contain;width:100%;height:100%}.admin-media-inspector header{gap:var(--space-xs);display:grid}.admin-media-inspector header span{color:var(--color-ink-soft);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase}.admin-media-inspector h3{margin:var(--space-2xs) 0 0;overflow-wrap:anywhere;font-size:var(--text-lg);font-style:normal}.admin-media-inspector header>small{color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-media-inspector label{gap:var(--space-xs);min-width:0;color:var(--color-ink-soft);font-size:var(--text-sm);display:grid}.admin-media-inspector textarea{resize:vertical;min-height:5.5rem}.admin-media-usage{padding:var(--space-sm);border-inline-start:2px solid var(--color-forest);color:var(--color-ink-soft);font-size:var(--text-sm);margin:0}.admin-media-inspector__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.admin-media-skeleton{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-media-skeleton i{aspect-ratio:4/3;background:color-mix(in oklch, var(--color-sage) 28%, var(--color-paper));animation:admin-media-pulse 1.4s var(--ease-in-out) infinite alternate}.admin-media-skeleton i:nth-child(2n){animation-delay:.18s}@keyframes admin-media-pulse{to{opacity:.45}}.admin-media-choice{gap:var(--space-xs);padding-block:var(--space-md);border-block:var(--rule-thin) solid var(--color-rule);display:grid}.admin-media-choice>span,.admin-media-choice>small{color:var(--color-ink-soft);font-size:var(--text-sm)}.admin-media-choice>strong{overflow-wrap:anywhere;font-weight:500}.admin-media-choice-actions{gap:var(--space-sm);margin-block:var(--space-xs);flex-wrap:wrap;display:flex}.admin-dialog--media-picker{width:min(100% - var(--space-xs) * 2, 76rem);max-height:calc(100dvh - var(--space-xs) * 2)}.admin-media-picker{max-height:calc(100dvh - var(--space-xs) * 2);padding:var(--space-md);grid-template-rows:auto minmax(0,1fr) auto;display:grid}.admin-media-picker__body{min-height:0;display:grid;overflow-y:auto}.admin-media-folders--picker{max-height:12rem;overflow-y:auto}.admin-media-picker .admin-media-browser{padding-bottom:var(--space-lg)}.admin-media-picker>footer{align-items:center;gap:var(--space-sm);display:grid}.admin-media-picker__selection{align-items:center;gap:var(--space-sm);min-width:0;display:flex}.admin-media-picker__selection img{object-fit:cover;width:4rem;height:3rem}.admin-media-picker__selection span{gap:var(--space-2xs);min-width:0;display:grid}.admin-media-picker__selection strong,.admin-media-picker__selection small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-media-picker__selection strong{font-size:var(--text-sm);font-weight:500}.admin-media-picker__selection small{color:var(--color-ink-soft);font-size:var(--text-xs)}.admin-media-picker__actions{justify-content:flex-end;gap:var(--space-xs);flex-wrap:wrap;display:flex}.admin-dialog--media-upload,.admin-dialog--folder,.admin-dialog--confirm{width:min(100% - var(--space-md) * 2, 34rem)}.admin-media-upload-dialog,.admin-dialog--folder>form,.admin-dialog--confirm>div{gap:var(--space-lg);padding:var(--space-lg);display:grid}.admin-media-dropzone{min-height:10rem;padding:var(--space-xl);border:var(--rule-thin) dashed var(--color-rule);background:color-mix(in oklch, var(--color-sage) 18%, transparent);cursor:pointer;text-align:center;align-content:center;justify-items:center;color:var(--color-ink)!important}.admin-media-dropzone input{clip:rect(0 0 0 0);white-space:nowrap;height:1px;position:absolute;overflow:hidden;width:1px!important;min-height:0!important}.admin-media-dropzone:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.admin-media-dropzone small{color:var(--color-ink-soft)}.admin-upload-file-list{border-block:var(--rule-thin) solid var(--color-rule);gap:0;max-height:12rem;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.admin-upload-file-list li{justify-content:space-between;gap:var(--space-md);min-width:0;padding-block:var(--space-sm);border-bottom:var(--rule-thin) solid color-mix(in oklch, var(--color-rule) 60%, transparent);display:flex}.admin-upload-file-list li:last-child{border-bottom:0}.admin-upload-file-list span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.admin-upload-file-list small{color:var(--color-ink-soft);flex:none}@media (hover:hover) and (pointer:fine){.admin-media-page__actions button:hover:not(:disabled),.admin-media-choice-actions button:hover:not(:disabled),.admin-media-empty button:hover:not(:disabled),.admin-media-inspector button:hover:not(:disabled),.admin-media-results>button:hover,.admin-folder-actions button:hover{transform:translateY(-1px)}.admin-media-folders>button:hover,.admin-media-folders>div:hover{background:color-mix(in oklch, var(--color-sage) 20%, transparent)}.admin-media-results>button:hover{border-color:var(--color-forest)}}@media (width>=40rem){.admin-media-page__actions>span{width:auto;margin-inline-start:auto}.admin-media-browser__toolbar{grid-template-columns:minmax(14rem,1fr) auto}.admin-media-results,.admin-media-skeleton{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-media-picker{padding:var(--space-lg)}.admin-media-picker>footer{grid-template-columns:minmax(0,1fr) auto}}@media (width>=52rem){.admin-media-picker__body{grid-template-columns:12rem minmax(0,1fr)}.admin-media-folders--picker{max-height:none;border-inline-end:var(--rule-thin) solid var(--color-rule);border-bottom:0;padding-inline-end:var(--space-md);overflow-y:auto}.admin-media-picker .admin-media-browser{padding-inline-start:var(--space-lg)}.admin-media-picker .admin-media-results{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=60rem){.admin-media-workbench{grid-template-columns:13rem minmax(0,1fr)}.admin-media-folders{border-inline-end:var(--rule-thin) solid var(--color-rule);border-bottom:0;padding-inline-end:var(--space-md)}.admin-media-browser--page{padding-inline:var(--space-lg)}.admin-media-inspector{grid-column:1/-1}.admin-media-inspector form{grid-template-columns:minmax(13rem,.8fr) repeat(2,minmax(0,1fr));align-items:start}.admin-media-inspector form>figure{grid-row:span 3}.admin-media-inspector__actions{grid-column:2/-1}}@media (width>=80rem){.admin-media-workbench{grid-template-columns:13rem minmax(24rem,1fr) 19rem}.admin-media-inspector{border-top:0;border-inline-start:var(--rule-thin) solid var(--color-rule);grid-column:auto;padding-inline-start:var(--space-lg)}.admin-media-inspector form{top:var(--space-md);grid-template-columns:minmax(0,1fr);display:grid;position:sticky}.admin-media-inspector form>figure{grid-row:auto}.admin-media-inspector__actions{grid-column:auto}}@media (prefers-reduced-motion:reduce){.admin-media-results>button,.admin-media-page__actions button,.admin-media-choice-actions button,.admin-media-inspector button{transition:none}.admin-media-skeleton i{animation-duration:2s}}.music-player{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));z-index:20;position:fixed}.music-player[hidden]{display:none}.music-player__button{width:52px;height:52px;color:var(--color-paper);background:var(--color-ink);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.music-player__disc{border:3px solid var(--color-ink);background:repeating-radial-gradient(circle, var(--color-ink) 0 2px, var(--color-ink-soft) 3px, var(--color-ink) 4px);border-radius:50%;place-items:center;animation:12s linear infinite paused wedding-record;display:grid;position:absolute;inset:0}.music-player__disc[data-playing=true]{animation-play-state:running}.music-player__disc>span{background:var(--color-sage);width:23px;height:23px;color:var(--color-ink);border-radius:50%;place-items:center;font-size:16px;display:grid}.music-player__control{z-index:1;background:var(--color-forest);width:28px;height:28px;color:var(--color-paper);border-radius:50%;place-items:center;font-size:14px;display:grid}.music-player__button:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.music-player__button:active{scale:.96}.music-player__error{width:min(240px,100dvw - 32px);padding:var(--space-sm);background:var(--color-paper);color:var(--color-error);border:1px solid var(--color-rule);font-size:1rem;position:absolute;bottom:60px;right:0}@media (hover:hover) and (pointer:fine){.music-player__control{opacity:0}.music-player__button:hover .music-player__control,.music-player__button:focus-visible .music-player__control,.music-player__button[aria-pressed=false] .music-player__control{opacity:1}}@keyframes wedding-record{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.music-player__disc{animation:none}}.rsvp-confirm{border:1px solid var(--color-rule);background:var(--color-paper);width:min(28rem,100% - 2rem);max-height:calc(100dvh - 2rem);color:var(--color-ink);margin:auto;padding:0;position:fixed;inset:0;overflow:auto}.rsvp-confirm::backdrop{background:color-mix(in oklch, var(--color-ink) 55%, transparent)}.rsvp-confirm__content{padding:clamp(1rem,4vw,2rem)}.rsvp-confirm h2{font-family:var(--font-display);font-size:1.8rem;line-height:1.1}.rsvp-confirm p{margin-top:var(--space-md);overflow-wrap:anywhere;font-size:1.05rem}.rsvp-confirm__actions{gap:var(--space-xs);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.rsvp-confirm__actions button{white-space:nowrap;min-height:44px;padding-inline:var(--space-sm);flex:1}.rsvp-confirm__actions button:first-child{color:var(--color-ink);border:1px solid var(--color-rule);background:0 0}.wedding-app .screen,.wedding-app .screen.screen--flowing{height:100dvh;min-height:100dvh;overflow:clip}.wedding-app .screen__inner,.wedding-app .screen.screen--flowing .screen__inner{height:100%;min-height:0;padding-block:max(16px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-bottom));scrollbar-width:thin;overflow:hidden auto}.wedding-app .screen__inner>*{min-width:0}.wedding-app .screen .section-heading h2{font-size:clamp(2.3rem,9vw,3.5rem)}.wedding-app .rsvp__inner{flex-direction:column;display:flex}.wedding-app .rsvp__inner>.section-heading,.wedding-app .rsvp__inner>.screen__lede{flex:none}.wedding-app .rsvp__viewport{flex:1;min-height:0}.wedding-app .rsvp__panels{height:100%}.wedding-app .rsvp__panel{overscroll-behavior-y:auto;height:100%;overflow-y:auto}.wedding-app .rsvp .rsvp__form{align-content:start;gap:8px;min-height:0}.wedding-app .rsvp input:not([type=radio]):not([type=hidden]),.wedding-app .rsvp select,.wedding-app .rsvp textarea,.wedding-app .wishes input,.wedding-app .wishes textarea{min-height:44px;font-size:16px}.wedding-app .rsvp button,.wedding-app .rsvp__side label,.wedding-app .rsvp__attendance-options label,.wedding-app .wishes button{white-space:nowrap;min-height:44px}.wedding-app .rsvp__side label{min-width:0}.wedding-app .rsvp__guest-status{min-height:1lh}.wedding-app .rsvp label,.wedding-app .rsvp legend{font-size:.875rem}.wedding-app .rsvp__success{min-height:min(23rem,65dvh)}.wedding-app .story__body{margin-block:8px}.wedding-app .story__timeline{margin-top:8px}.wedding-app .story__timeline li{min-height:0;padding-block:8px}.wedding-app .story__timeline figure,.wedding-app .story__timeline li:nth-child(2n) figure{height:clamp(52px,9dvh,88px);margin:0}.wedding-app .story__timeline li:has(figure){grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:12px;display:grid}.wedding-app .story__timeline li:nth-child(2n) figure,.wedding-app .story__timeline li:nth-child(2n) div{text-align:left;grid-area:auto}.wedding-app .gallery__essay{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wedding-app .gallery__frame{grid-column:auto;height:clamp(96px,21dvh,220px);min-height:0;margin:0}.wedding-app .gallery__frame figcaption{font-size:.85rem}.wedding-app .gallery__pending{min-height:0;padding-block:15dvh}.wedding-app .wishes__cards blockquote{grid-template-columns:minmax(0,1fr);gap:4px}.wedding-app .wishes__cards cite{white-space:normal;overflow-wrap:anywhere}.wedding-app .wishes__cards p{overflow-wrap:anywhere}.thank-you-dialog{max-height:calc(100dvh - 2rem);overflow:auto}.wedding-app .hero__caption{overflow-wrap:anywhere;max-height:none;overflow:visible}.wedding-app .closing>div{overflow-wrap:anywhere;max-height:calc(100dvh - 4rem);overflow-y:auto}.wedding-app:has(.music-player) .screen__inner{padding-bottom:max(76px, env(safe-area-inset-bottom))}@media (width<=48rem){.wedding-app .schedule-screen__inner{gap:12px}.wedding-app .schedule-screen__timeline{gap:16px;padding-top:12px}.wedding-app .schedule-screen__timeline li{grid-template-rows:auto;grid-template-columns:3rem minmax(0,1fr);gap:12px}.wedding-app .schedule-screen__timeline li:has(figure){grid-template-columns:3rem 3.5rem minmax(0,1fr)}.wedding-app .schedule-screen__time time{width:3rem;height:3rem}.wedding-app .schedule-screen__timeline figure{height:3.5rem}.wedding-app .schedule-screen__copy{min-height:3rem;padding-block:0 8px}}@media (width>=48.0625rem){.wedding-app .screen__inner,.wedding-app .screen.screen--flowing .screen__inner{padding-block:clamp(20px,4dvh,48px)}.wedding-app .screen .section-heading h2{font-size:clamp(3rem,5vw,4.5rem)}.wedding-app .story__timeline li:has(figure){display:flex}.wedding-app .story__timeline figure,.wedding-app .story__timeline li:nth-child(2n) figure{height:clamp(70px,17dvh,150px)}.wedding-app .story__timeline li:nth-child(2n) div{text-align:center;height:auto}.wedding-app .gallery__essay{grid-template-columns:repeat(3,minmax(0,1fr))}.wedding-app .gallery__frame{height:30dvh}}.zoomable-image{cursor:zoom-in}.zoomable-image:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.wedding-app .gallery__frame img.zoomable-image,.wedding-app .story__timeline img.zoomable-image,.wedding-app .schedule-screen__timeline img.zoomable-image{object-fit:contain}.wedding-app .rsvp__qr{width:min(68vw,16rem)}.wedding-app .rsvp__qr img.zoomable-image{aspect-ratio:auto;object-fit:contain;width:100%;height:auto;max-height:42dvh}.wedding-app .rsvp__qr figcaption{margin-top:var(--space-xs);color:var(--color-ink-soft);font-size:.8rem;line-height:1.4}.image-lightbox{background:var(--color-ink);color:var(--color-paper);border:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:auto;padding:0;overflow:hidden}.image-lightbox::backdrop{background:var(--color-ink)}.image-lightbox__content{box-sizing:border-box;min-width:0;height:100%;min-height:0;padding:max(var(--space-xs), env(safe-area-inset-top)) max(var(--space-xs), env(safe-area-inset-right)) max(var(--space-xs), env(safe-area-inset-bottom)) max(var(--space-xs), env(safe-area-inset-left));grid-template-rows:auto minmax(0,1fr);display:grid;position:relative;overflow:hidden}.image-lightbox header{gap:var(--space-xs);padding-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.image-lightbox header>span{font-variant-numeric:tabular-nums}.image-lightbox button{color:inherit;font-family:inherit;font-size:var(--text-lg);min-width:44px;min-height:44px;padding:0 var(--space-xs);cursor:pointer;transition:background-color var(--dur-short) var(--ease-out), opacity var(--dur-short) var(--ease-out);white-space:nowrap;background:0 0;border:0;border-radius:0;flex-shrink:0;line-height:1}.image-lightbox button:disabled{opacity:.4;cursor:default}.image-lightbox button:active:not(:disabled){opacity:.8}.image-lightbox button:focus-visible{outline-offset:2px;outline:2px solid}.image-lightbox button[aria-label="Đưa ảnh về kích thước vừa khung"]{font-size:var(--text-sm);font-variant-numeric:tabular-nums;min-width:3.5rem}.image-lightbox__tools{gap:var(--space-xs);display:flex}.image-lightbox__stage{overscroll-behavior:contain;scrollbar-width:thin;place-items:stretch stretch;min-width:0;min-height:0;display:grid;position:relative;overflow:auto}.image-lightbox__stage[data-zoomed=true]{cursor:grab}.image-lightbox__stage[data-zoomed=true]:active{cursor:grabbing}.image-lightbox__canvas{place-items:center;min-width:100%;min-height:100%;display:grid}.image-lightbox__canvas img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;min-width:0;max-width:none;height:100%;min-height:0;max-height:none;display:block}.image-lightbox__status{text-align:center;max-width:min(80%,28rem);margin:0;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.image-lightbox__nav{background:color-mix(in oklch, var(--color-ink) 72%, transparent);z-index:var(--z-header);position:absolute;top:50%;transform:translateY(-50%)}.image-lightbox__nav--previous{inset-inline-start:max(var(--space-xs), env(safe-area-inset-left))}.image-lightbox__nav--next{inset-inline-end:max(var(--space-xs), env(safe-area-inset-right))}@media (hover:hover) and (pointer:fine){.image-lightbox button:hover:not(:disabled){background:var(--color-forest)}}.image-crop-editor{overscroll-behavior:contain;min-height:0;padding:0 2px 2px;overflow-y:auto}.image-crop-editor>p{margin:var(--space-sm) 0}.image-crop-editor__workspace{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 16rem;align-items:center;display:grid}.image-crop-editor__preview{background:var(--color-paper-soft);min-height:12rem;padding:var(--space-sm);justify-content:center;align-items:center;display:flex}.image-crop-editor__preview canvas{touch-action:none;cursor:grab;width:auto;max-width:100%;height:auto;max-height:44dvh;display:block}.image-crop-editor__preview canvas:active{cursor:grabbing}.image-crop-editor__controls{gap:var(--space-sm);border:0;min-width:0;margin:0;padding:0;display:grid}.image-crop-editor__controls label{gap:var(--space-xs);display:grid}.image-crop-editor__controls input[type=range]{width:100%;min-height:32px;accent-color:var(--color-forest);padding:0}.image-crop-editor__controls select{width:100%;min-height:44px}.image-crop-editor__note{color:var(--color-ink-soft);font-size:.85rem}.image-crop-editor .admin-media-picker__actions{background:var(--color-paper-soft);padding-block:var(--space-sm);justify-content:flex-end;position:sticky;bottom:0}.image-crop-editor .admin-media-picker__actions button:last-child{background:var(--color-forest);color:var(--color-paper)}.admin-image-preview img,.admin-qr-preview img,.admin-gallery-preview img{object-fit:contain}.admin-dialog--media-picker{overflow:hidden}.admin-media-picker{max-height:calc(100dvh - var(--space-xs) * 2 - 2px)}.admin-media-picker__body .admin-media-browser__toolbar>button{grid-column:1/-1;justify-self:start}@media (width<=48rem){.image-crop-editor__workspace{gap:var(--space-sm);grid-template-columns:minmax(0,1fr)}.image-crop-editor__preview{min-height:8rem}.image-crop-editor__preview canvas{max-height:32dvh}.image-crop-editor__controls{grid-template-columns:repeat(2,minmax(0,1fr))}.image-crop-editor__controls label{font-size:.85rem}.image-crop-editor .admin-media-picker__actions{flex-wrap:wrap}}.admin-media-type-filter{gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.admin-media-type-filter button{min-height:44px;padding:var(--space-xs) var(--space-md);border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);cursor:pointer}.admin-media-type-filter button[aria-pressed=true]{background:var(--color-forest);color:var(--color-paper)}.admin-media-type-filter button:hover{border-color:var(--color-forest)}.admin-media-type-filter button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-media-type-filter button:active{opacity:.8}.admin-audio-thumb{background:var(--color-paper-soft);width:100%;height:100%;min-height:5rem;color:var(--color-forest);flex-direction:column;justify-content:center;align-items:center;font-size:3rem;display:flex}.admin-audio-thumb small{letter-spacing:.1em;font-size:.85rem}.admin-audio-preview{gap:var(--space-md);padding:var(--space-md);min-width:0;display:grid}.admin-audio-preview .admin-audio-thumb{min-height:8rem}.admin-audio-preview audio{width:100%;min-width:0}.admin-audio-preview p{font-size:.9rem}.admin-audio-preview button{white-space:nowrap;min-height:44px}.admin-media-inspector figure:has(.admin-audio-preview){aspect-ratio:auto;height:auto;overflow:visible}.gallery-layout-shell{min-width:0;container-type:inline-size}.gallery-layout{grid-auto-flow:dense;min-width:0;display:grid}.gallery-layout--auto,.gallery-layout--mobile{gap:var(--gallery-mobile-gap);grid-auto-rows:var(--gallery-mobile-row-size);grid-template-columns:repeat(var(--gallery-mobile-columns), minmax(0, 1fr))}.gallery-layout--auto .gallery-layout__frame,.gallery-layout--mobile .gallery-layout__frame{grid-column-end:span var(--gallery-mobile-column-span);grid-row-end:span var(--gallery-mobile-row-span)}.gallery-layout--auto .gallery-layout__image,.gallery-layout--mobile .gallery-layout__image{object-position:var(--gallery-mobile-x) var(--gallery-mobile-y);transform:scale(var(--gallery-mobile-zoom))}.gallery-layout--desktop{gap:var(--gallery-desktop-gap);grid-auto-rows:var(--gallery-desktop-row-size);grid-template-columns:repeat(var(--gallery-desktop-columns), minmax(0, 1fr))}.gallery-layout--desktop .gallery-layout__frame{grid-column-end:span var(--gallery-desktop-column-span);grid-row-end:span var(--gallery-desktop-row-span)}.gallery-layout--desktop .gallery-layout__image{object-position:var(--gallery-desktop-x) var(--gallery-desktop-y);transform:scale(var(--gallery-desktop-zoom))}.gallery-layout__frame{min-width:0;height:auto;min-height:0;margin:0;position:relative;overflow:hidden;transform:none}.gallery-layout__image,.wedding-app .gallery__frame img.gallery-layout__image{object-fit:cover;transform-origin:50%;width:100%;max-width:none;height:100%;max-height:none;transition:filter var(--dur-medium) var(--ease-out), transform var(--dur-medium) var(--ease-out);display:block;position:absolute;inset:0}.gallery-layout__index{z-index:2;background:var(--color-paper);min-width:2rem;min-height:2rem;color:var(--color-ink);font-size:var(--text-xs);font-variant-numeric:tabular-nums;place-items:center;display:grid;position:absolute;inset-block-start:var(--space-xs);inset-inline-start:var(--space-xs)}.wedding-app .gallery__essay.gallery-layout-shell{width:min(100%,58rem);margin:var(--space-md) auto 0;max-width:none;display:block}.wedding-app .gallery-layout__frame,.wedding-app .gallery__frame.gallery-layout__frame{grid-column-start:auto;height:auto;min-height:0;margin:0;transform:none}.wedding-app .gallery-layout__frame:hover .gallery-layout__image{transform:scale(var(--gallery-mobile-zoom))}.admin-gallery-editor__heading{align-items:start!important}.admin-gallery-editor__heading p,.admin-gallery-layout-controls header p,.admin-gallery-previews header p,.gallery-frame-editor header p{max-width:58ch;margin:var(--space-xs) 0 0;color:var(--color-ink-soft);font-size:var(--text-sm);line-height:var(--line-normal)}.admin-detail-layout--gallery{grid-template-columns:minmax(12rem,.42fr) minmax(0,1.58fr)}.admin-gallery-layout-controls,.admin-gallery-previews,.gallery-frame-editor{gap:var(--space-md);min-width:0;border-block-end:var(--rule-thin) solid var(--color-rule);padding-block-end:var(--space-lg);display:grid}.admin-gallery-layout-controls header,.admin-gallery-previews header,.gallery-frame-editor header{gap:var(--space-xs);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.admin-gallery-layout-controls header span,.admin-gallery-previews header span,.gallery-frame-editor header span{color:var(--color-forest);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.admin-gallery-layout-controls h5,.admin-gallery-previews h5,.gallery-frame-editor h5{margin:var(--space-xs) 0 0;font-family:var(--font-display);font-size:var(--text-lg);font-style:normal;font-weight:500}.admin-gallery-layout-controls__grid{border-block:var(--rule-thin) solid var(--color-rule);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-gallery-layout-controls fieldset{gap:var(--space-sm);min-width:0;padding:var(--space-md);border:0;margin:0;display:grid}.admin-gallery-layout-controls fieldset+fieldset{border-inline-start:var(--rule-thin) solid var(--color-rule)}.admin-gallery-layout-controls legend{font-family:var(--font-display);font-size:var(--text-md);padding:0}.admin-gallery-layout-controls label,.gallery-frame-editor__controls label{gap:var(--space-xs);min-width:0;color:var(--color-ink-soft);font-size:var(--text-sm);display:grid}.admin-gallery-layout-controls input[type=number]{width:100%;min-height:2.75rem;padding-inline:var(--space-sm);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);outline-offset:1px;background:var(--color-paper);color:var(--color-ink);font:inherit;outline:2px solid #0000}.admin-gallery-layout-controls input[type=range],.gallery-frame-editor__controls input[type=range]{width:100%;min-height:2.75rem;accent-color:var(--color-forest);padding:0}.admin-gallery-layout-controls input:focus-visible,.gallery-frame-editor__controls input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-gallery-previews__grid{gap:var(--space-lg);grid-template-columns:minmax(0,1.55fr) minmax(13rem,.45fr);align-items:start;display:grid}.admin-gallery-previews article{min-width:0;padding:var(--space-sm);border:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-soft)}.admin-gallery-previews article.is-active{border-color:var(--color-forest)}.admin-gallery-previews article>button{justify-content:space-between;align-items:center;gap:var(--space-sm);width:100%;min-height:2.75rem;padding:0 0 var(--space-sm);color:var(--color-ink);cursor:pointer;text-align:start;white-space:nowrap;background:0 0;border:0;display:flex}.admin-gallery-previews article>button span{font-family:var(--font-display);font-size:var(--text-md)}.admin-gallery-previews article>button small{color:var(--color-ink-soft)}.admin-gallery-previews article>button:focus-visible,.gallery-layout__frame[role=button]:focus-visible,.admin-gallery-viewport-switch button:focus-visible,.gallery-frame-editor button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-gallery-previews .gallery-layout__frame{border:2px solid var(--color-paper);background:var(--color-paper);box-shadow:none;cursor:pointer}.admin-gallery-previews .gallery-layout__frame.is-selected{border-color:var(--color-forest);outline:2px solid var(--color-forest);outline-offset:1px}.admin-gallery-previews .gallery-layout__frame figcaption{right:var(--space-xs);bottom:var(--space-xs);left:var(--space-xs);padding:var(--space-2xs) var(--space-xs);font-size:var(--text-xs)}.admin-gallery-viewport-switch{border:var(--rule-thin) solid var(--color-rule);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-gallery-viewport-switch button{min-height:2.75rem;padding-inline:var(--space-md);border:0;border-inline-end:var(--rule-thin) solid var(--color-rule);color:var(--color-ink-soft);cursor:pointer;white-space:nowrap;background:0 0}.admin-gallery-viewport-switch button:last-child{border-inline-end:0}.admin-gallery-viewport-switch button.is-active{background:color-mix(in oklch, var(--color-sage) 38%, transparent);color:var(--color-ink)}.gallery-frame-editor__workspace{gap:var(--space-lg);grid-template-columns:minmax(0,1.45fr) minmax(14rem,.55fr);align-items:center;display:grid}.gallery-frame-editor__canvas{border:var(--space-xs) solid var(--color-paper);outline:var(--rule-thin) solid var(--color-rule);background:var(--color-paper-soft);cursor:grab;touch-action:none;min-width:0;max-height:30rem;position:relative;overflow:hidden}.gallery-frame-editor__canvas:active{cursor:grabbing}.gallery-frame-editor__canvas img{object-fit:cover;transform-origin:50%;-webkit-user-select:none;user-select:none;width:100%;max-width:none;height:100%;max-height:none;display:block;position:absolute;inset:0}.gallery-frame-editor__canvas>span{padding:var(--space-2xs) var(--space-sm);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-xs);pointer-events:none;white-space:nowrap;position:absolute;inset-block-end:var(--space-sm);inset-inline-start:50%;translate:-50%}.gallery-frame-editor__controls{gap:var(--space-sm);border:0;min-width:0;margin:0;padding:0;display:grid}.gallery-frame-editor__controls button{min-height:2.75rem;padding-inline:var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);cursor:pointer;white-space:nowrap}.admin-gallery-previews article>button:active,.admin-gallery-viewport-switch button:active,.gallery-frame-editor__controls button:active{transform:translateY(1px)}@media (hover:hover) and (pointer:fine){.admin-gallery-previews article>button:hover,.admin-gallery-viewport-switch button:hover,.gallery-frame-editor__controls button:hover{background:color-mix(in oklch, var(--color-sage) 20%, transparent)}.admin-gallery-previews .gallery-layout__frame:hover{border-color:var(--color-forest)}}@media (width>=48.0625rem){.gallery-layout--auto{gap:var(--gallery-desktop-gap);grid-auto-rows:var(--gallery-desktop-row-size);grid-template-columns:repeat(var(--gallery-desktop-columns), minmax(0, 1fr))}.gallery-layout--auto .gallery-layout__frame{grid-column-end:span var(--gallery-desktop-column-span);grid-row-end:span var(--gallery-desktop-row-span)}.gallery-layout--auto .gallery-layout__image{object-position:var(--gallery-desktop-x) var(--gallery-desktop-y);transform:scale(var(--gallery-desktop-zoom))}.wedding-app .gallery-layout__frame:hover .gallery-layout__image{transform:scale(var(--gallery-desktop-zoom))}}@media (width<=72rem){.admin-detail-layout--gallery{grid-template-columns:minmax(0,1fr)}.admin-detail-layout--gallery .admin-detail-list{border-inline-end:0;border-block-end:var(--rule-thin) solid var(--color-rule);max-height:22rem}}@media (width<=48rem){.admin-gallery-layout-controls header,.admin-gallery-previews header,.gallery-frame-editor header,.admin-gallery-layout-controls__grid,.admin-gallery-previews__grid,.gallery-frame-editor__workspace{grid-template-columns:minmax(0,1fr)}.admin-gallery-layout-controls fieldset+fieldset{border-block-start:var(--rule-thin) solid var(--color-rule);border-inline-start:0}.admin-gallery-previews__grid article:last-child{justify-self:center;width:min(100%,24rem)}.gallery-frame-editor__controls{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=28rem){.gallery-frame-editor__controls{grid-template-columns:minmax(0,1fr)}.admin-gallery-previews article>button{flex-direction:column;justify-content:center;align-items:start}}@media (prefers-reduced-motion:reduce){.gallery-layout__image{transition-duration:.15s}.admin-gallery-previews article>button,.admin-gallery-viewport-switch button,.gallery-frame-editor__controls button{transform:none}}
