.react-photo-album{display:flex}.react-photo-album,.react-photo-album *{box-sizing:border-box}.react-photo-album--track{align-items:flex-start;display:flex}.react-photo-album--photo{padding:calc(var(--react-photo-album--padding) * 1px);position:relative}.react-photo-album--image{width:100%;height:auto;aspect-ratio:var(--react-photo-album--photo-width) / var(--react-photo-album--photo-height);display:block}.react-photo-album--button{cursor:pointer;border:initial;background:initial}.react-photo-album--rows{row-gap:calc(var(--react-photo-album--spacing) * 1px);flex-direction:column}.react-photo-album--rows .react-photo-album--track{--react-photo-album--track-gaps:calc(var(--react-photo-album--spacing) * (var(--react-photo-album--track-size) - 1) + 2 * var(--react-photo-album--padding) * var(--react-photo-album--track-size));justify-content:space-between}.react-photo-album--rows .react-photo-album--photo{width:calc((100% - var(--react-photo-album--track-gaps) * 1px) / (var(--react-photo-album--container-width) - var(--react-photo-album--track-gaps)) * var(--react-photo-album--photo-width) + 2px * var(--react-photo-album--padding))}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}*{box-sizing:border-box}html{background:var(--wedding-paper);scroll-behavior:smooth}body{color:var(--wedding-ink);background:var(--wedding-paper);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;min-height:100%;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,select{-webkit-tap-highlight-color:transparent;touch-action:manipulation}html:has(.access-page){background:#18231d}html:has(.access-page) body{background:#18231d}::selection{background:#a47b513d}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.hidden{display:none}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--background:#fcfaf6;--foreground:#201914;--radius:.625rem;--card:#fff;--card-foreground:#17100b;--popover:#fff;--popover-foreground:#17100b;--primary:#3d2c1f;--primary-foreground:#fcfaf6;--secondary:#f4efe7;--secondary-foreground:#291f18;--muted:#f3f0ea;--muted-foreground:#695e57;--accent:#f5e9dc;--accent-foreground:#291f18;--destructive:#e40014;--border:#ddd6cd;--input:#ddd6cd;--ring:#9c7d5c;--chart-1:#f05100;--chart-2:#009588;--chart-3:#104e64;--chart-4:#fcbb00;--chart-5:#f99c00;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1;--wedding-ink:#26231f;--wedding-muted:#6e675e;--wedding-paper:#f7f3ec;--wedding-cream:#fffaf2;--wedding-brass:#a47b51;--wedding-brass-dark:#815d3f;--wedding-green:#34433a;--wedding-line:#312b2424;--wedding-muted-strong:#655e56}@supports (color:lab(0% 0 0)){:root{--background:lab(98.2804% .270516 2.27064);--foreground:lab(9.46572% 3.08384 4.74392);--card:lab(100% 0 0);--card-foreground:lab(5.22521% 2.43863 3.22101);--popover:lab(100% 0 0);--popover-foreground:lab(5.22521% 2.43863 3.22101);--primary:lab(19.8545% 6.43526 11.5475);--primary-foreground:lab(98.2804% .270516 2.27064);--secondary:lab(94.814% .70408 4.53246);--secondary-foreground:lab(12.9379% 3.88341 6.78462);--muted:lab(94.8059% .519842 3.39385);--muted-foreground:lab(40.7931% 3.32454 5.94663);--accent:lab(93.0627% 2.24289 8.1239);--accent-foreground:lab(12.9379% 3.88341 6.78462);--destructive:lab(48.4493% 77.4328 61.5452);--border:lab(86.1144% 1.07381 5.64219);--input:lab(86.1144% 1.07381 5.64219);--ring:lab(54.69% 8.92147 22.6196);--chart-1:lab(57.1026% 64.2584 89.8886);--chart-2:lab(55.0223% -41.0774 -3.90277);--chart-3:lab(30.372% -13.1853 -18.7887);--chart-4:lab(80.1641% 16.6016 99.2089);--chart-5:lab(72.7183% 31.8672 97.9407);--sidebar:lab(98.26% 0 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(96.52% -.0000298023 .0000119209);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% -.0000298023 .0000119209)}}.access-page{isolation:isolate;color:#fffaf2;background:radial-gradient(circle at 78% 20%,#d1ac804d,#0000 33%),radial-gradient(circle at 22% 82%,#67826c61,#0000 38%),linear-gradient(135deg,#18231d 0%,#354238 48%,#79614c 100%);place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.access-page.is-leaving{animation:.52s forwards access-page-leave}.access-page__wash,.access-page__grain{z-index:-3;position:absolute;inset:0}.access-page__wash{z-index:-2;background:linear-gradient(#1c19156b 0%,#1b1d198c 38%,#141b17d1 100%)}.access-page__grain{z-index:-1;opacity:.32;mix-blend-mode:soft-light;pointer-events:none;background-image:radial-gradient(circle at 18% 12%,#ffffff14 0 1px,#0000 1.5px),radial-gradient(circle at 72% 64%,#0000001f 0 1px,#0000 1.5px);background-size:5px 5px,7px 7px}.access-panel{justify-items:center;padding:0 1.25rem 3rem;animation:.75s cubic-bezier(.2,.7,.2,1) .12s both access-arrive;display:grid}.access-page.is-leaving .access-panel,.access-page.is-leaving .access-footer{animation:.48s cubic-bezier(.4,0,.2,1) forwards access-leave}.access-monogram,.gallery-brand{letter-spacing:.17em;align-items:center;gap:.72rem;font-family:Georgia,Times New Roman,serif;font-size:.92rem;display:inline-flex}.access-monogram{font-size:1.35rem}.access-monogram i,.gallery-brand i{opacity:.48;background:currentColor;width:2.25rem;height:1px;display:block}.access-form{margin-top:2.4rem}.access-input{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff17;border:1px solid #ffffff42;border-radius:999px;align-items:center;width:min(100vw - 2.5rem,22.5rem);height:3.7rem;padding:0 .45rem 0 1.5rem;transition:border-color .18s,background-color .18s,box-shadow .18s;display:flex}.access-input:focus-within{background:#ffffff24;border-color:#ffffff9e;box-shadow:0 0 0 4px #ffffff14}.access-input.has-error{border-color:#ffa89cb8;box-shadow:0 0 0 4px #ff8c7d1a}.access-input input{min-width:0;height:100%;color:var(--wedding-cream);letter-spacing:.04em;background:0 0;border:0;outline:0;flex:1;font-size:1rem}.access-input input::placeholder{color:#fffaf270}.access-input__submit{width:2.85rem;height:2.85rem;color:var(--wedding-green);cursor:pointer;background:#fffaf2f0;border:0;border-radius:50%;flex:none;place-items:center;transition:transform .18s cubic-bezier(.2,.8,.2,1),opacity .18s,background-color .18s;display:grid}.access-input__submit:hover:not(:disabled){background:#fff;transform:scale(1.06)}.access-input__submit:active:not(:disabled){transform:scale(1)}.access-input__submit:focus-visible{outline-offset:3px;outline:2px solid #fffaf2d9}.access-input__submit:disabled{cursor:default;opacity:.38}.access-input__submit svg{width:1.05rem;height:1.05rem}.access-input__loader,.gallery-logout__loader{animation:.85s linear infinite spin}.access-message{color:#ffb9ad;text-align:center;min-height:1.5rem;margin:1rem 0 0;font-size:.78rem;line-height:1.45}.access-footer{right:0;bottom:calc(1.35rem + env(safe-area-inset-bottom));justify-items:center;gap:.45rem;display:grid;position:absolute;left:0}.access-date{color:#fffaf28c;letter-spacing:.08em;text-align:center;margin:0;font-family:Georgia,Times New Roman,serif;font-size:.75rem}.access-credit{color:#fffaf294;letter-spacing:.04em;text-underline-offset:.22rem;font-size:.7rem;text-decoration-color:#fffaf23d;transition:color .16s,text-decoration-color .16s}.access-credit:hover{color:#fffaf2db;text-decoration-color:#fffaf299}.access-credit:focus-visible{outline-offset:.25rem;border-radius:.2rem;outline:2px solid #fffaf2cc}.not-found-page{background:radial-gradient(circle at 22% 18%, #a47b512e, transparent 24rem), var(--wedding-paper);place-items:center;min-height:100svh;padding:2rem;display:grid}.not-found-page__card{text-align:center;max-width:30rem}.not-found-page__eyebrow{color:var(--wedding-brass-dark);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1rem;font-size:.72rem;font-weight:700}.not-found-page h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,7vw,3.6rem);font-weight:400;line-height:1.02}.not-found-page__card>p:not(.not-found-page__eyebrow){color:var(--wedding-muted);margin:1.1rem 0 1.6rem;line-height:1.6}.not-found-page a{border:1px solid var(--wedding-line);color:var(--wedding-green);border-radius:999px;padding:.8rem 1.15rem;font-size:.8rem;font-weight:650;text-decoration:none;display:inline-flex}.not-found-page a:hover{background:#ffffff94;border-color:#644c334d}.not-found-page a:focus-visible{outline:2px solid var(--wedding-brass);outline-offset:4px}.gallery-page{background:radial-gradient(circle at 15% 0%, #dcc7a933, transparent 28rem), var(--wedding-paper);min-height:100svh;color:var(--wedding-ink);animation:.42s both gallery-page-arrive;overflow-x:clip}.skip-link{z-index:100;background:var(--wedding-green);color:#fff;border-radius:.5rem;padding:.75rem 1rem;font-size:.82rem;transition:transform .15s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.gallery-header{z-index:30;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-left:env(safe-area-inset-left);-webkit-backdrop-filter:blur(18px)saturate(1.1);backdrop-filter:blur(18px)saturate(1.1);background:#f7f3ecd4;border-bottom:1px solid #3e342a1c;transition:transform .3s cubic-bezier(.2,.7,.2,1);position:sticky;top:0}.gallery-header.is-hidden{transform:translateY(calc(-100% - 1px))}.gallery-header__inner{justify-content:space-between;align-items:center;width:min(1640px,100% - 3rem);height:4.25rem;margin:0 auto;display:flex}.gallery-brand{color:var(--wedding-ink);text-decoration:none}.gallery-brand:focus-visible,.gallery-logout:focus-visible,.gallery-sort:focus-within,.gallery-to-top:focus-visible{outline:2px solid var(--wedding-brass);outline-offset:4px}.gallery-actions{align-items:center;gap:.6rem;display:flex}.gallery-logout{border:1px solid var(--wedding-line);color:#514b44;cursor:pointer;background:#ffffff6b;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;transition:transform .17s,background-color .17s,border-color .17s;display:grid}.gallery-logout:hover:not(:disabled){background:#fffc;border-color:#644c334d;transform:translateY(-1px)}.gallery-logout:disabled{opacity:.58;cursor:wait}.gallery-logout svg{width:.9rem;height:.9rem}.gallery-shuffle{border:1px solid var(--wedding-line);color:#514b44;cursor:pointer;background:#ffffff6b;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;transition:transform .17s,background-color .17s,border-color .17s,color .17s;display:grid}.gallery-shuffle:hover{background:#fffc;border-color:#644c334d;transform:translateY(-1px)}.gallery-shuffle:focus-visible{outline:2px solid var(--wedding-brass);outline-offset:4px}.gallery-shuffle.is-active{border-color:var(--wedding-green);background:var(--wedding-green);color:#fffaf2}.gallery-shuffle.is-active:hover{background:#2b3a31}.gallery-shuffle svg{width:.95rem;height:.95rem;animation:.42s cubic-bezier(.2,.8,.2,1) shuffle-roll}.gallery-sort{border:1px solid var(--wedding-line);color:#4e4841;cursor:pointer;background:#ffffff78;border-radius:999px;align-items:center;min-width:10.5rem;height:2.75rem;display:flex;position:relative}.gallery-sort select{appearance:none;width:100%;height:100%;color:inherit;cursor:pointer;background:0 0;border:0;outline:0;padding:0 2.4rem 0 1.25rem;font-size:.75rem;font-weight:620}.gallery-sort__chevron{pointer-events:none;width:.9rem;height:.9rem;position:absolute;right:.85rem}.people-menu{position:relative}.people-menu__trigger{border:1px solid var(--wedding-line);color:#4e4841;cursor:pointer;background:#ffffff78;border-radius:999px;align-items:center;gap:.55rem;max-width:13.5rem;height:2.75rem;padding:0 .85rem 0 .3rem;font-size:.75rem;font-weight:620;transition:border-color .17s,background-color .17s;display:inline-flex}.people-menu__trigger:hover{background:#fffc;border-color:#644c334d}.people-menu__trigger:focus-visible{outline:2px solid var(--wedding-brass);outline-offset:4px}.people-menu__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.people-menu__chevron{flex:none;width:.9rem;height:.9rem;transition:transform .18s}.people-menu__chevron.is-open{transform:rotate(180deg)}.people-menu__avatar{color:#6b5847;background:radial-gradient(circle at 34% 26%,#ffffff80,#0000 40%),#d9cbb9;border-radius:50%;flex:none;place-items:center;width:2.15rem;height:2.15rem;font-family:Georgia,Times New Roman,serif;font-size:.85rem;display:grid;position:relative;overflow:hidden}.people-menu__avatar img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .24s;position:absolute;inset:0}.people-menu__avatar.is-loaded img{opacity:1}.people-menu__avatar--all{background:var(--wedding-green);color:#fffaf2}.people-menu__avatar--all svg{width:.95rem;height:.95rem}.people-menu__panel{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffcf7f7;border:1px solid #4b3d2e24;border-radius:1rem;width:min(17.5rem,100vw - 1.5rem);animation:.17s cubic-bezier(.2,.8,.2,1) both people-menu-pop;position:absolute;top:calc(100% + .55rem);right:0;overflow:hidden;box-shadow:0 18px 50px #2b231a2e}.people-menu__search{border-bottom:1px solid var(--wedding-line);height:2.9rem;color:var(--wedding-muted-strong);align-items:center;gap:.55rem;padding:0 .95rem;display:flex}.people-menu__search svg{flex:none;width:.85rem;height:.85rem}.people-menu__search input{appearance:none;min-width:0;height:100%;color:var(--wedding-ink);background:0 0;border:0;outline:0;flex:1;font-size:.8rem}.people-menu__search input::placeholder{color:#8b8379;opacity:1}.people-menu__search input::-webkit-search-cancel-button{display:none}.people-menu__list{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;max-height:min(21rem,55vh);padding:.45rem;overflow-y:auto}.people-menu__option{width:100%;color:var(--wedding-ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.7rem;align-items:center;gap:.6rem;padding:.3rem .55rem .3rem .3rem;font-size:.78rem;font-weight:600;transition:background-color .14s;display:flex}.people-menu__option:hover{background:#34433a12}.people-menu__option:focus-visible{outline:2px solid var(--wedding-brass);outline-offset:-2px}.people-menu__option.is-selected{background:#34433a1a}.people-menu__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.people-menu__count{color:var(--wedding-muted);font-variant-numeric:tabular-nums;flex:none;font-size:.68rem}.people-menu__empty{color:var(--wedding-muted);margin:0;padding:.85rem .7rem 1rem;font-size:.75rem}.gallery-content{width:min(1640px, calc(100% - 3rem - env(safe-area-inset-left) - env(safe-area-inset-right)));min-height:60vh;padding:clamp(1rem, 2.5vw, 2rem) 0 calc(5rem + env(safe-area-inset-bottom));scroll-margin-top:calc(5.25rem + env(safe-area-inset-top));margin:0 auto}.gallery-photo-region{scroll-margin-top:calc(5.25rem + env(safe-area-inset-top))}.gallery-photo-region:focus{outline:none}.gallery-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.55rem,1vw,1.05rem);display:grid}.gallery-albums{gap:clamp(.55rem,1vw,1.05rem);display:grid}.gallery-album-page{overflow:visible}.gallery-card{opacity:0;width:100%;height:100%;margin:0;animation:.56s cubic-bezier(.18,.75,.2,1) forwards gallery-card-arrive;display:block}.gallery-card__button{text-align:left;cursor:zoom-in;background:0 0;border:0;border-radius:.95rem;width:100%;height:100%;padding:0;display:block}.gallery-card__button:focus-visible{outline:3px solid var(--wedding-brass);outline-offset:4px}.gallery-card__media{border-radius:inherit;isolation:isolate;background-color:#e8e0d4;background-position:50%;background-size:cover;width:100%;height:100%;display:block;position:relative;overflow:hidden;box-shadow:0 1px #ffffff8c}.gallery-card__image{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .4s,transform .65s cubic-bezier(.2,.75,.2,1);display:block;transform:scale(1.015)}.gallery-card__image.is-loaded{opacity:1}.gallery-card__button:hover .gallery-card__image,.gallery-card__button:focus-visible .gallery-card__image{transform:scale(1.045)}.gallery-card__shimmer,.gallery-skeleton{background:linear-gradient(105deg,#0000 37%,#ffffff7a 48%,#0000 59%) 0 0/220% 100%,#e7ded1 0 0/100% 100%;animation:1.5s linear infinite shimmer}.gallery-card__shimmer{z-index:1;position:absolute;inset:0}.gallery-card__fallback{color:var(--wedding-muted-strong);place-content:center;justify-items:center;gap:.55rem;font-size:.72rem;display:grid;position:absolute;inset:0}.gallery-card__fallback svg{width:1.4rem;height:1.4rem}.gallery-skeleton{border-radius:.95rem;width:100%;min-height:12rem;display:block}.gallery-state{text-align:center;place-content:center;justify-items:center;max-width:530px;min-height:45vh;margin:0 auto;display:grid}.gallery-state__icon{border:1px solid var(--wedding-line);color:#95704d;background:#ffffff7a;border-radius:50%;place-items:center;width:3.5rem;height:3.5rem;display:grid}.gallery-state__icon svg{width:1.25rem;height:1.25rem}.gallery-state h2{letter-spacing:-.035em;margin:1.2rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:400}.gallery-state p{max-width:420px;color:var(--wedding-muted);margin:.8rem 0 0;font-size:.88rem;line-height:1.65}.gallery-state button,.gallery-pagination>button{border:1px solid var(--wedding-green);background:var(--wedding-green);color:#fffaf2;cursor:pointer;border-radius:999px;min-height:2.8rem;margin-top:1.4rem;padding:0 1.2rem;font-size:.76rem;font-weight:620}.gallery-state button:focus-visible,.gallery-pagination>button:focus-visible{outline:3px solid var(--wedding-brass);outline-offset:3px}.gallery-pagination{place-items:center;min-height:7.5rem;padding-top:2.5rem;display:grid}.gallery-pagination__loading{color:var(--wedding-muted-strong);align-items:center;gap:.7rem;font-size:.76rem;display:flex}.gallery-pagination__loading svg{width:1rem;height:1rem;animation:.85s linear infinite spin}.gallery-pagination__error{color:var(--wedding-muted-strong);text-align:center;justify-items:center;gap:.9rem;font-size:.76rem;display:grid}.gallery-pagination__error button{border:1px solid var(--wedding-green);background:var(--wedding-green);color:#fffaf2;cursor:pointer;border-radius:999px;min-height:2.65rem;padding:0 1.15rem;font-size:.74rem;font-weight:620}.gallery-pagination__error button:focus-visible{outline:3px solid var(--wedding-brass);outline-offset:3px}.gallery-finale{width:min(100%,420px);color:var(--wedding-muted-strong);letter-spacing:.12em;text-align:center;align-items:center;gap:1.1rem;font-family:Georgia,Times New Roman,serif;font-size:.92rem;display:flex}.gallery-finale p{margin:0}.gallery-finale em{color:var(--wedding-brass);font-size:.85em}.gallery-finale span{background:var(--wedding-line);flex:1;height:1px}.gallery-to-top{right:calc(1.2rem + env(safe-area-inset-right));bottom:calc(1.2rem + env(safe-area-inset-bottom));z-index:20;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#34433aeb;border:1px solid #ffffff52;border-radius:50%;place-items:center;width:3rem;height:3rem;animation:.24s both gallery-card-arrive;display:grid;position:fixed;box-shadow:0 9px 28px #1f262233}.gallery-to-top svg{width:1rem;height:1rem}.gallery-route-loader{background:var(--wedding-paper);min-height:100svh;color:var(--wedding-muted);justify-content:center;align-items:center;gap:.7rem;font-size:.82rem;display:flex}.gallery-route-loader svg{width:1rem;height:1rem;animation:.85s linear infinite spin}.lightbox{z-index:80;padding:max(.9rem, env(safe-area-inset-top)) max(.9rem, env(safe-area-inset-right)) max(.9rem, env(safe-area-inset-bottom)) max(.9rem, env(safe-area-inset-left));color:#fff;isolation:isolate;overscroll-behavior:contain;touch-action:none;grid-template-rows:auto minmax(0,1fr);animation:.22s both lightbox-arrive;display:grid;position:fixed;inset:0}.lightbox.is-closing{animation:.18s both lightbox-leave}.lightbox__backdrop{z-index:-1;cursor:zoom-out;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0a09f2;border:0;position:absolute;inset:0}.lightbox__topbar{z-index:2;justify-content:space-between;align-items:center;min-height:3.2rem;padding:0 .2rem;display:flex;position:relative}.lightbox__count{color:#ffffffb8;font-variant-numeric:tabular-nums;letter-spacing:.06em;font-size:.72rem}.lightbox__actions{align-items:center;gap:.55rem;display:flex}.lightbox__icon-button.is-active{background:#ffffff3d;border-color:#ffffff73}.lightbox__icon-button,.lightbox__nav{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2b;border-radius:50%;place-items:center;transition:transform .16s,background-color .16s,opacity .16s;display:grid}.lightbox__icon-button{width:2.85rem;height:2.85rem}.lightbox__icon-button:hover,.lightbox__nav:hover:not(:disabled){background:#ffffff29;transform:scale(1.05)}.lightbox__icon-button:focus-visible,.lightbox__nav:focus-visible{outline-offset:3px;outline:2px solid #fff}.lightbox__icon-button svg,.lightbox__nav svg{width:1.1rem;height:1.1rem}.lightbox__stage{-webkit-user-select:none;user-select:none;pointer-events:none;place-items:center;min-height:0;padding:.5rem 4.5rem 1rem;display:grid;position:relative}.lightbox__stage>*{pointer-events:auto}.lightbox__image{object-fit:contain;opacity:0;filter:drop-shadow(0 22px 55px #0000006b);width:auto;max-width:100%;height:auto;max-height:calc(100svh - 6.5rem);transition:opacity .22s,transform .35s cubic-bezier(.2,.75,.2,1);display:block;transform:scale(.985)}.lightbox__image.is-loaded{opacity:1;transform:scale(1)}.lightbox__image{cursor:zoom-in;touch-action:none}.lightbox.is-zoomed .lightbox__image{cursor:grab;will-change:transform}.lightbox.is-zoomed .lightbox__image:active{cursor:grabbing}.lightbox__loader{place-items:center;display:grid;position:absolute}.lightbox__loader span{border:2px solid #fff3;border-top-color:#ffffffe6;border-radius:50%;width:2.2rem;height:2.2rem;animation:.8s linear infinite spin}.lightbox__error{color:#ffffffa3;text-align:center;justify-items:center;gap:.65rem;font-size:.78rem;display:grid;position:absolute}.lightbox__error svg{width:1.4rem;height:1.4rem}.lightbox__nav{z-index:2;width:3rem;height:3rem;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover:not(:disabled){transform:translateY(-50%)scale(1.05)}.lightbox__nav:disabled{opacity:.18;cursor:default}.lightbox__nav--previous{left:1.3rem}.lightbox__nav--next{right:1.3rem}@media (min-width:700px){.gallery-skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1050px){.gallery-skeleton-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:640px){.gallery-header__inner{height:3.9rem}.gallery-header__inner,.gallery-content{width:calc(100% - 1.25rem)}.gallery-brand{gap:.4rem;font-size:.82rem}.gallery-brand i{width:1rem}.gallery-actions{gap:.4rem}.gallery-sort{min-width:0;max-width:8.5rem;height:2.6rem}.gallery-sort select{text-overflow:ellipsis;white-space:nowrap;padding:0 1.9rem 0 .85rem;font-size:.72rem;overflow:hidden}.gallery-sort__chevron{right:.6rem}.people-menu__trigger{justify-content:center;gap:0;width:2.6rem;height:2.6rem;padding:0}.people-menu__trigger .people-menu__label,.people-menu__trigger .people-menu__chevron{display:none}.people-menu__avatar{width:2rem;height:2rem}.people-menu__panel{top:calc(4.2rem + env(safe-area-inset-top));width:auto;position:fixed;left:.625rem;right:.625rem}.people-menu__list{max-height:calc(100svh - 12rem - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.people-menu__search input{font-size:1rem}.gallery-logout,.gallery-shuffle{width:2.6rem;height:2.6rem}.gallery-content{scroll-margin-top:calc(4.5rem + env(safe-area-inset-top));padding-top:.65rem}.gallery-photo-region{scroll-margin-top:calc(4.5rem + env(safe-area-inset-top))}.gallery-card__button,.gallery-card__media,.gallery-skeleton{border-radius:.65rem}.gallery-pagination{min-height:6.5rem;padding-top:1.5rem}.gallery-finale{gap:.8rem;font-size:.82rem}.lightbox{padding:max(.55rem, env(safe-area-inset-top)) .55rem max(.55rem, env(safe-area-inset-bottom))}.lightbox__stage{padding:.5rem 0 4rem}.lightbox__image{max-height:calc(100svh - 9rem)}.lightbox__nav{top:auto;bottom:max(.85rem, env(safe-area-inset-bottom));width:2.8rem;height:2.8rem;transform:none}.lightbox__nav:hover:not(:disabled){transform:scale(1.05)}.lightbox__nav--previous{left:.65rem}.lightbox__nav--next{right:.65rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes access-arrive{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes access-leave{to{opacity:0;transform:translateY(-1rem)}}@keyframes access-page-leave{to{opacity:0}}@keyframes gallery-page-arrive{0%{opacity:0}to{opacity:1}}@keyframes shuffle-roll{0%{opacity:.3;transform:rotate(-150deg)scale(.55)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes people-menu-pop{0%{opacity:0;transform:translateY(-.35rem)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes gallery-card-arrive{0%{opacity:0;transform:translateY(.8rem)}to{opacity:1;transform:translateY(0)}}@keyframes lightbox-arrive{0%{opacity:0}to{opacity:1}}@keyframes lightbox-leave{0%{opacity:1}to{opacity:0}}@keyframes shimmer{to{background-position:-220% 0,0 0}}@keyframes spin{to{transform:rotate(360deg)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
