:root{--beige: #f7f3ec;--beige-deep: #ebe4d8;--blue: #a8c5d8;--blue-soft: #c5d9e8;--blue-mist: #e8f1f6;--ink: #2c3a45;--ink-soft: #5a6b78;--cream: #fffcf7;--overlay: rgba(28, 38, 48, .42);--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1);--space: clamp(1.25rem, 4vw, 3.5rem)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:300;color:var(--ink);background:var(--beige);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}#root{min-height:100svh}.page{background:radial-gradient(ellipse 80% 50% at 10% 20%,var(--blue-mist) 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 90% 60%,rgba(168,197,216,.35) 0%,transparent 50%),linear-gradient(180deg,var(--beige) 0%,var(--blue-mist) 45%,var(--beige-deep) 100%)}.reveal{opacity:0;transform:translateY(1.75rem);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.reveal.is-visible{opacity:1;transform:translateY(0)}.gallery-masonry .reveal,.gallery-masonry .reveal.is-visible{transform:none}.reveal-stagger>*.reveal{transition-delay:calc(var(--i, 0) * 80ms)}.hero{--hero-matte: linear-gradient( 165deg, var(--beige) 0%, var(--blue-mist) 42%, var(--blue-soft) 72%, var(--beige-deep) 100% );position:relative;width:100%;height:100svh;min-height:100svh;display:grid;place-items:end stretch;overflow:hidden;color:var(--cream);background:var(--hero-matte)}.hero__slides{position:absolute;inset:0}.hero__slide{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity 1.4s var(--ease-out);background:var(--hero-matte)}.hero__slide.is-active{opacity:1}.hero__slide img{width:100%;height:100%;max-width:100%;max-height:100%;aspect-ratio:unset;object-fit:contain;object-position:center}.hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,#a8c5d82e,#2c3a4514 38%,#2c3a4585 68%,#2c3a45d1);pointer-events:none}.hero__content{position:relative;z-index:1;padding:var(--space);padding-bottom:clamp(2.5rem,8vh,5rem);max-width:min(42rem,100%);animation:heroRise 1.2s var(--ease-out) both}.hero__names{font-family:var(--font-display);font-weight:500;font-size:clamp(2.75rem,9vw,5.5rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:.85rem}.hero__tagline{font-family:var(--font-display);font-style:italic;font-size:clamp(1.15rem,2.5vw,1.45rem);font-weight:400;opacity:.92;margin-bottom:1.5rem;max-width:22ch}.hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem;font-size:.9rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.hero__cta{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 0;border-bottom:1px solid rgba(255,252,247,.55);letter-spacing:.08em;transition:border-color .35s var(--ease-out),opacity .35s var(--ease-out),transform .35s var(--ease-out)}.hero__cta:hover{border-color:#fffcf7f2;opacity:.92;transform:translateY(-1px)}.hero__cta svg{width:1rem;height:1rem}.hero__date{opacity:.88}.hero__dots{position:absolute;right:var(--space);bottom:clamp(2.5rem,8vh,5rem);z-index:1;display:flex;flex-direction:column;gap:.5rem}.hero__dot{width:.45rem;height:.45rem;border-radius:50%;background:#fffcf759;transition:background .35s,transform .35s,width .35s var(--ease-out)}.hero__dot.is-active{background:var(--cream);transform:scale(1.35)}@media(max-width:640px){.hero{place-items:end center;background:#1c2630}.hero__slide{background:#1c2630}.hero__slide img{object-fit:cover;object-position:center center}.hero__slide--portrait img{object-position:center 30%}.hero__veil{background:linear-gradient(180deg,#1c263014,#1c263033 42%,#1c2630b8 72%,#1c2630eb)}.hero__content{width:100%;max-width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;padding:1.25rem;padding-bottom:calc(4.25rem + env(safe-area-inset-bottom,0px));padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}.hero__meta{display:contents}.hero__date{order:-2;font-size:.75rem;letter-spacing:.14em;opacity:.9;margin-bottom:.35rem}.hero__names{order:-1;font-size:clamp(2.1rem,10.5vw,3rem);margin-bottom:.5rem}.hero__tagline{order:0;font-size:1rem;max-width:none;margin-bottom:1.15rem;margin-inline:auto}.hero__cta{order:1;font-size:.8rem;padding:.55rem 1.1rem;border:1px solid rgba(255,252,247,.45);border-radius:999px;background:#fffcf71a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hero__cta:hover{transform:none}.hero__dots{top:auto;right:auto;left:50%;bottom:calc(1.15rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);flex-direction:row;gap:.35rem}.hero__dot{width:.35rem;height:.35rem}.hero__dot.is-active{width:1.1rem;height:.35rem;border-radius:999px;transform:none}}@keyframes heroRise{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}.section{padding:clamp(3.5rem,10vh,7rem) var(--space)}.section__header{max-width:32rem;margin-bottom:clamp(2rem,5vh,3.25rem)}.section__title{font-family:var(--font-display);font-weight:500;font-size:clamp(2rem,5vw,3.25rem);line-height:1.15;letter-spacing:-.015em;color:var(--ink);margin-bottom:.65rem}.section__subtitle{font-size:clamp(.95rem,1.6vw,1.05rem);color:var(--ink-soft);max-width:36ch}.section--formal{background:linear-gradient(165deg,transparent 0%,rgba(197,217,232,.35) 100%)}.section--urban{background:linear-gradient(195deg,#f7f3ec66,#a8c5d838)}.section--lifestyle{padding-bottom:clamp(4rem,12vh,8rem)}.section__closing{margin-top:clamp(2.5rem,6vh,4rem);text-align:center;font-family:var(--font-display);font-size:clamp(1.35rem,3vw,1.85rem);font-weight:500;color:var(--ink);letter-spacing:.02em}.section__closing span{display:block;margin-top:.35rem;font-family:var(--font-body);font-size:.85rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.photo-frame{margin:0 0 .85rem;background:transparent;break-inside:avoid;page-break-inside:avoid}.photo-frame img{width:100%;height:auto;display:block;object-fit:contain;border-radius:2px}.photo-frame__btn{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in;border-radius:2px;transition:opacity .3s var(--ease-out)}.photo-frame__btn:hover{opacity:.92}.photo-frame__btn:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.lightbox{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:clamp(1rem,4vw,2.5rem);background:#1c2630eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:lightboxIn .35s var(--ease-out) both}.lightbox__figure{margin:0;max-width:min(100%,1200px);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem}.lightbox__viewport{overflow:hidden;display:grid;place-items:center;max-width:100%;max-height:calc(100svh - 7rem);touch-action:pan-y pinch-zoom;cursor:zoom-in}.lightbox__viewport.is-zoomed{overflow:visible;cursor:grab;touch-action:none}.lightbox__viewport.is-zoomed:active{cursor:grabbing}.lightbox__img{max-width:100%;max-height:calc(100svh - 7rem);width:auto;height:auto;object-fit:contain;border-radius:2px;box-shadow:0 1.5rem 4rem #00000059;transform-origin:center center;transition:transform .08s linear;will-change:transform;-webkit-user-select:none;user-select:none}.lightbox__toolbar{position:absolute;top:clamp(.75rem,3vw,1.25rem);left:clamp(.75rem,3vw,1.25rem);z-index:1;display:flex;align-items:center;gap:.35rem;padding:.25rem .5rem;border-radius:999px;background:#fffcf71a;border:1px solid rgba(255,252,247,.2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lightbox__tool{display:grid;place-items:center;min-width:2rem;height:2rem;padding:0 .35rem;border:none;border-radius:999px;background:transparent;color:var(--cream);font-size:1.1rem;line-height:1;cursor:pointer}.lightbox__tool--text{font-size:.7rem;letter-spacing:.04em;padding:0 .65rem;text-transform:uppercase}.lightbox__tool:hover{background:#fffcf726}.lightbox__zoom-level{min-width:2.75rem;text-align:center;font-size:.75rem;color:#fffcf7d9}.lightbox__counter{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#fffcf7b3;text-align:center}.lightbox__section{display:block;margin-bottom:.25rem;font-family:var(--font-display);font-size:.95rem;letter-spacing:.02em;text-transform:none;color:#fffcf7e6}.lightbox__hint{text-transform:none;letter-spacing:0;font-size:.72rem;opacity:.65}@media(max-width:640px){.lightbox__hint,.lightbox__tool--text{display:none}}.lightbox__close{position:absolute;top:clamp(.75rem,3vw,1.25rem);right:clamp(.75rem,3vw,1.25rem);z-index:1;display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid rgba(255,252,247,.25);border-radius:50%;background:#fffcf714;color:var(--cream);cursor:pointer;transition:background .3s var(--ease-out),border-color .3s var(--ease-out)}.lightbox__close:hover{background:#fffcf72e;border-color:#fffcf780}.lightbox__close svg{width:1.25rem;height:1.25rem}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1;display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid rgba(255,252,247,.25);border-radius:50%;background:#fffcf714;color:var(--cream);cursor:pointer;transition:background .3s var(--ease-out),border-color .3s var(--ease-out)}.lightbox__nav:hover{background:#fffcf72e;border-color:#fffcf780}.lightbox__nav--prev{left:clamp(.5rem,3vw,1.5rem)}.lightbox__nav--next{right:clamp(.5rem,3vw,1.5rem)}.lightbox__nav svg{width:1.25rem;height:1.25rem}@keyframes lightboxIn{0%{opacity:0}to{opacity:1}}@media(max-width:640px){.lightbox__nav{width:2.25rem;height:2.25rem}}.gallery-masonry{column-count:1;column-gap:.85rem}@media(min-width:560px){.gallery-masonry{column-count:2}}@media(min-width:900px){.gallery-masonry{column-count:3;column-gap:1rem}.photo-frame{margin-bottom:1rem}}@media(min-width:1200px){.gallery-masonry--lifestyle{column-count:4}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.hero__content,.hero__slide,.lightbox{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}
