@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Italiana;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/italiana-latin-400-normal-CRZrqGQm.woff2) format("woff2"),url(/assets/italiana-latin-400-normal-BzjwlKaI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #171611;--ink-soft: #37352e;--paper: #f7f3e9;--paper-deep: #eee7d7;--white: #fffdf8;--gold: #b79752;--gold-bright: #d4b978;--red: #8e382f;--green: #4d6a53;--line: rgba(23, 22, 17, .15);--serif: "Italiana", "Times New Roman", serif;--sans: "DM Sans", system-ui, sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper)}button,input,select{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400}.modal-open{overflow:hidden}.eyebrow{margin:0 0 .8rem;color:#7d6737;font-size:.72rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase}.eyebrow.light{color:var(--gold-bright)}.muted{color:#706e67;line-height:1.7}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.button{min-height:46px;border:1px solid transparent;border-radius:1px;padding:.75rem 1.2rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font-size:.86rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:transform .16s ease,background .16s ease,border .16s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button.primary{background:var(--gold);color:#11100d}.button.primary:hover:not(:disabled){background:#c7a967}.button.secondary{border-color:var(--line);background:transparent}.button.secondary:hover:not(:disabled){border-color:var(--gold)}.button.ink{background:var(--ink);color:var(--white)}.button.quiet{background:transparent;color:#65635d}.button.danger{background:var(--red);color:#fff}.button.wide{width:100%}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;display:inline-grid;place-items:center;cursor:pointer}.text-button{padding:0;background:none;border:0;display:inline-flex;align-items:center;gap:.45rem;cursor:pointer}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,.95fr) 1.05fr;background:var(--white)}.login-story{position:relative;isolation:isolate;min-height:100vh;padding:3.25rem;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;color:var(--white);background:radial-gradient(circle at 76% 14%,rgba(216,186,120,.21),transparent 28%),radial-gradient(circle at 24% 82%,rgba(111,91,51,.32),transparent 27%),linear-gradient(145deg,#24231c,#12120f 55%,#1c1913)}.login-story:before{content:"&";position:absolute;z-index:-1;top:47%;left:52%;transform:translate(-50%,-50%);color:#ddc0800e;font-family:var(--serif);font-size:clamp(28rem,50vw,48rem);line-height:.8}.login-story:after{content:"";position:absolute;top:1.5rem;right:1.5rem;bottom:1.5rem;left:1.5rem;border:1px solid rgba(255,255,255,.12);pointer-events:none}.story-grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.login-brand{position:relative;z-index:1;display:flex;align-items:baseline;gap:.65rem;font-family:var(--serif);font-size:1.45rem;letter-spacing:.06em}.login-brand i,.mobile-mark i,.wordmark i,.footer-monogram i{color:var(--gold-bright);font-family:var(--serif);font-weight:400}.story-copy{position:relative;z-index:1;max-width:36rem;padding-left:7%}.story-copy h1{margin:0 0 2rem;font-size:clamp(4rem,7.5vw,7.2rem);line-height:.88;letter-spacing:-.035em}.story-copy>p:last-child{max-width:23rem;margin:0;color:#ffffff9e;font-family:var(--serif);font-size:1.25rem;line-height:1.5}.story-footer{position:relative;z-index:1;display:flex;justify-content:space-between;color:#fff6;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.login-panel{display:grid;place-items:center;padding:3rem;position:relative}.mobile-mark{display:none}.login-form-wrap{width:min(100%,29rem)}.login-form-wrap h2{margin:0 0 1.1rem;font-size:clamp(2.6rem,5vw,4.2rem);line-height:1.05}.login-intro{margin-bottom:2.4rem;max-width:27rem}.login-form-wrap label,.stacked-form label{display:grid;gap:.55rem;color:#3d3b35;font-size:.82rem;font-weight:600}.login-form-wrap input,.stacked-form input,.face-controls select{width:100%;height:54px;margin-bottom:1rem;border:1px solid #d8d2c5;border-radius:1px;background:#fffefb;padding:0 1rem;font-size:1rem;color:var(--ink)}.login-form-wrap input:focus,.stacked-form input:focus,.face-controls select:focus{border-color:var(--gold);outline:1px solid var(--gold)}.code-input{font-size:1.55rem!important;letter-spacing:.42em;text-align:center}.privacy-note{margin:2rem auto 0;display:flex;align-items:center;justify-content:center;gap:.45rem;color:#8c8980;font-size:.72rem}.back-button{margin-bottom:2.3rem;color:#6b685f;font-size:.78rem}.login-alternatives{margin-top:1rem;display:flex;justify-content:center;gap:1.35rem}.login-alternatives button{color:#6b685f;font-size:.75rem;text-decoration:underline;text-underline-offset:3px}.form-error{margin:0 0 1rem;display:flex;align-items:flex-start;gap:.45rem;color:var(--red);font-size:.78rem;line-height:1.45}.passkey-page{min-height:100vh;padding:2rem;display:grid;place-items:center;background:radial-gradient(circle at 20% 15%,rgba(212,185,120,.2),transparent 26%),linear-gradient(145deg,#24231c,#11110e)}.passkey-card{width:min(100%,500px);padding:clamp(2rem,6vw,4rem);border:1px solid rgba(255,255,255,.12);background:var(--white);text-align:center}.passkey-mark{width:64px;height:64px;margin:0 auto 2rem;border:1px solid #d5c7aa;border-radius:50%;display:grid;place-items:center;color:#80682f}.passkey-card h1{margin-bottom:1rem;font-size:clamp(2.7rem,7vw,4rem);line-height:1}.passkey-card>p:not(.eyebrow){margin-bottom:2rem;color:#706e67;line-height:1.65}.passkey-signout{margin:1.5rem auto 0;color:#77736b;font-size:.75rem}.passkey-loader{width:34px;height:34px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--gold-bright);border-radius:50%;animation:spin .8s linear infinite}.passkey-skip{margin-top:.65rem}.invitation-steps{margin:-.45rem 0 1.5rem;padding:1.15rem 1.15rem 1.15rem 2.6rem;border:1px solid var(--line);background:var(--paper);color:#4d4a43;text-align:left}.invitation-steps li{padding:.25rem 0 .25rem .35rem;line-height:1.45}.invitation-anyway{margin-top:.55rem}.passkey-card>.invitation-footnote{margin:.45rem auto 0!important;max-width:21rem;color:#8b877e!important;font-size:.7rem;line-height:1.5!important}.invitation-cancel{margin:1.5rem auto 0;color:#77736b;font-size:.75rem}.passkey-list{margin:1.2rem 0;border:1px solid var(--line)}.passkey-row{min-height:72px;padding:.75rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;border-bottom:1px solid var(--line)}.passkey-row:last-child{border-bottom:0}.passkey-row>span{min-width:0;display:grid;gap:.2rem}.passkey-row strong{overflow:hidden;text-overflow:ellipsis;font-size:.78rem}.passkey-row small{color:#817e75;font-size:.65rem}.passkey-row .button{min-height:36px;padding:.5rem .7rem;font-size:.7rem}.compact-loading{min-height:120px}.form-success{color:var(--green);font-size:.78rem}.upload-audience{margin:1.15rem 0;padding:0;border:0;display:grid;gap:.55rem}.upload-audience legend{margin-bottom:.65rem;color:#3d3b35;font-size:.78rem;font-weight:600}.upload-audience label{min-height:58px;padding:.65rem .8rem;border:1px solid var(--line);display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.7rem;cursor:pointer}.upload-audience label.selected{border-color:var(--gold);background:#f7eed9}.upload-audience label:has(input:disabled){opacity:.48;cursor:not-allowed}.upload-audience input{margin:0;accent-color:#8a6e31}.upload-audience-icon{color:#80682f}.upload-audience label span:last-child{display:grid;gap:.1rem}.upload-audience label strong{font-size:.76rem}.upload-audience label small{color:#77736b;font-size:.65rem}.upload-audience>p{margin:.15rem 0 0;color:#7d6737;font-size:.68rem;line-height:1.5}.signin-name-box{margin:-.4rem 0 1.3rem;padding:.85rem;border:1px solid var(--line);background:var(--paper);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .65rem;text-align:left}.signin-name-box span{color:#77736b;font-size:.68rem}.signin-name-box strong{min-width:0;overflow-wrap:anywhere;font-size:.9rem}.signin-name-box .icon-button{grid-column:2;grid-row:1 / span 2;align-self:center}.contact-open{margin:0 0 1.3rem}.contact-setup{margin:0 0 1.3rem;padding:.9rem;border:1px solid var(--line);background:#faf7ef;display:grid;gap:.7rem;text-align:left}.contact-setup.complete{grid-template-columns:auto 1fr;align-items:center;color:var(--green);font-size:.75rem}.contact-setup p{margin:0;color:#716e67;font-size:.7rem;line-height:1.5}.contact-setup input{width:100%;height:44px;border:1px solid var(--line);background:var(--white);padding:0 .75rem;font:inherit;font-size:.78rem}.contact-setup .form-error{margin:0}.contact-kind{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.contact-kind button{min-height:38px;border:1px solid var(--line);background:var(--white);display:flex;align-items:center;justify-content:center;gap:.4rem;color:#6d6960;cursor:pointer}.contact-kind button.active{border-color:#9b824a;background:#f2e6c9;color:#59471e}.portal-shell{min-height:100vh}.site-header{height:82px;padding:0 clamp(1.25rem,4vw,4.5rem);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#f7f3e9f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30}.wordmark{border:0;background:transparent;padding:0;justify-self:start;font-family:var(--serif);font-size:1.3rem;letter-spacing:.04em;cursor:pointer}.wordmark i{padding:0 .28rem}.main-nav{display:flex;height:100%;gap:2.1rem}.main-nav button{position:relative;border:0;background:transparent;padding:0;display:flex;align-items:center;gap:.5rem;color:#706d65;font-size:.78rem;font-weight:500;cursor:pointer}.main-nav button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .16s ease}.main-nav button.active{color:var(--ink)}.main-nav button.active:after{transform:scaleX(1)}.header-user{justify-self:end;display:flex;align-items:center;gap:.8rem}.user-copy{text-align:right;display:grid;line-height:1.25}.user-copy span{font-size:.8rem;font-weight:600}.user-copy small{color:#8c8981;font-size:.67rem}.mobile-menu{display:none}.site-footer{margin-top:7rem;min-height:190px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:2rem clamp(1.25rem,5vw,6rem)}.footer-monogram{font-family:var(--serif);font-size:1.2rem}.site-footer p{margin:0;color:#77746d;font-family:var(--serif);font-size:1.15rem}.page-intro{width:min(100% - 2.5rem,1350px);margin:0 auto}.guest-intro{min-height:430px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:4rem}.guest-intro h1{margin:0;font-size:clamp(4rem,8vw,7.5rem);line-height:.86;letter-spacing:-.04em}.guest-intro h1 em{color:var(--gold);font-weight:400}.intro-aside{max-width:27rem;justify-self:end}.intro-aside p{margin-bottom:2rem;color:#615f58;font-family:var(--serif);font-size:1.23rem;line-height:1.6}.ornament-rule{width:min(100% - 2.5rem,1350px);height:1px;margin:0 auto;background:var(--line);text-align:center}.ornament-rule span{position:relative;top:-.7rem;padding:0 1rem;color:var(--gold);background:var(--paper);font-size:.8rem}.gallery-section{width:min(100% - 2.5rem,1350px);margin:5rem auto;min-height:350px}.section-heading{margin-bottom:2.2rem;display:flex;align-items:end;justify-content:space-between;gap:1rem}.section-heading h2{margin:0;font-size:clamp(2rem,4vw,3.1rem)}.section-heading.compact{margin-bottom:1.5rem}.gallery-view-controls{margin:-.7rem 0 1rem;display:flex;justify-content:flex-end;gap:.35rem}.gallery-view-controls button{width:38px;height:36px;border:1px solid var(--line);background:transparent;color:#88837a;display:grid;place-items:center;cursor:pointer}.gallery-view-controls button.active{border-color:var(--ink);color:var(--white);background:var(--ink)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:2.3rem 1.35rem}.photo-grid.compact-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1.25rem .7rem}.photo-card{min-width:0}.photo-card.selected .photo-frame{outline:3px solid var(--gold);outline-offset:2px}.photo-select{position:absolute;z-index:4;top:.65rem;left:.65rem;width:38px;height:38px;border:1px solid rgba(255,255,255,.65);background:#14130fc2;color:#fff;display:grid;place-items:center;cursor:pointer}.photo-frame{position:relative;overflow:hidden;aspect-ratio:4 / 5;background:var(--paper-deep)}.photo-open{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:transparent;padding:0;cursor:zoom-in}.photo-open:disabled{cursor:default}.photo-open:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}.photo-frame img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.photo-frame video{width:100%;height:100%;object-fit:contain;background:#0d0d0b}.photo-card:hover .photo-frame img{transform:scale(1.018)}.video-card-placeholder{width:100%;height:100%;display:grid;place-content:center;justify-items:center;gap:.55rem;color:#ffffffe6;background:#1d1c19}.video-card-placeholder small{font-size:.68rem}.video-card-preview{position:relative;width:100%;height:100%;display:block;background:#0d0d0b}.video-card-preview>img,.video-card-preview>video{width:100%;height:100%;object-fit:cover}.video-card-preview>span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;background:linear-gradient(transparent 55%,#00000059)}.video-card-preview>span svg{padding:.55rem;width:46px;height:46px;border-radius:50%;background:#100f0cb8}.photo-actions{position:absolute;z-index:2;top:.7rem;right:.7rem;display:flex;gap:.45rem;opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.photo-card:hover .photo-actions,.photo-actions:focus-within{opacity:1;transform:none}.status.private{color:#6c5524;background:#efe2bf}.private-collection-section{width:min(100% - 2.5rem,1350px);margin:2.5rem auto 4rem;padding:clamp(1.25rem,3vw,2.4rem);border:1px solid #ccb77f;background:#f3ead5}.private-collection-note{margin:-1rem 0 1.5rem;color:#6b6251;font-size:.76rem;line-height:1.6}.private-collection-section .photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.private-collection-empty{padding:2rem;border:1px dashed #c5b27e;color:#776e5b;text-align:center;font-family:var(--serif);font-size:1.1rem}.photo-actions button{min-height:36px;border:0;background:#fffdf8f0;box-shadow:0 4px 18px #00000024;padding:.55rem .7rem;display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;cursor:pointer}.photo-actions .danger-action{width:36px;justify-content:center;color:var(--red)}.photo-processing{width:100%;height:100%;display:grid;place-content:center;justify-items:center;gap:.8rem;color:#858177;font-size:.75rem}.photo-caption{padding-top:.8rem;display:flex;align-items:start;justify-content:space-between;gap:.8rem}.photo-caption>div{min-width:0;display:grid;gap:.25rem}.photo-caption strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600}.photo-caption small{color:#89867e;font-size:.68rem}.status{padding:.25rem .42rem;border-radius:99px;white-space:nowrap;font-size:.62rem;font-weight:600}.status.ready{color:var(--green);background:#4d6a531a}.status.indexed{color:#665127;background:#b7975229}.status.working{color:#6c6658;background:#6e695c1a}.status.failed{color:var(--red);background:#8e382f1a}.compact-grid .photo-caption{padding-top:.55rem}.compact-grid .photo-caption strong{font-size:.7rem}.compact-grid .photo-caption small{font-size:.62rem}.compact-grid .status{display:none}.gallery-load-more{min-height:72px;display:flex;align-items:center;justify-content:center;gap:.55rem;color:#77746d;font-size:.75rem}.empty-gallery{min-height:390px;border:1px solid var(--line);background:#fffdf86b;display:grid;place-content:center;justify-items:center;padding:3rem 1.5rem;text-align:center}.empty-gallery .empty-mark{width:76px;height:88px;margin-bottom:1.7rem;border:1px solid var(--line);display:grid;place-items:center;position:relative;color:var(--gold)}.empty-mark span{position:absolute;top:-9px;right:-12px;padding:.15rem .3rem;background:var(--paper);color:#89857b;font-size:.63rem;letter-spacing:.1em}.empty-gallery h3{margin:0 0 .65rem;font-family:var(--serif);font-size:2rem;font-weight:400}.empty-gallery>p:not(.eyebrow){max-width:28rem;margin-bottom:1.6rem;color:#79766e;line-height:1.6}.skeleton-card span{display:block;aspect-ratio:4/5;background:linear-gradient(100deg,#e9e3d7 20%,#f5f0e6,#e9e3d7 60%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-card small{display:block;width:50%;height:10px;margin-top:1rem;background:#e4ded2}@keyframes shimmer{to{background-position-x:-200%}}.error-state{min-height:330px;display:grid;place-content:center;justify-items:center;text-align:center;color:#65625a}.error-state h3{margin:1rem 0 .5rem;font-family:var(--serif);font-size:1.8rem;font-weight:400}.error-state p{max-width:28rem}.management-page{background:#f2ede2}.manage-heading{padding:5rem max(1.25rem,calc((100vw - 1350px)/2));display:flex;align-items:end;justify-content:space-between;gap:2rem;color:var(--white);background:var(--ink)}.manage-heading h1{margin:0 0 .8rem;font-size:clamp(3rem,6vw,5.4rem)}.manage-heading .muted{margin:0;color:#ffffff85}.dark-outline{color:var(--white);border-color:#ffffff40!important}.stats-row{width:min(100% - 2.5rem,1350px);margin:-1px auto 0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--white);border:1px solid var(--line)}.stat{min-height:128px;padding:1.6rem;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.stat:last-child{border:0}.stat strong{font-family:var(--serif);font-size:2.7rem;font-weight:400}.stat span{color:#77746d;font-size:.7rem;letter-spacing:.03em}.management-grid{width:min(100% - 2.5rem,1350px);margin:4.5rem auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:3rem}.management-main .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.management-main .photo-grid.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.count-pill{border:1px solid var(--line);border-radius:99px;padding:.45rem .7rem;color:#716e66;font-size:.68rem}.people-filter{position:relative;margin:-.35rem 0 1.5rem;padding:1rem;border:1px solid var(--line);background:#ffffff94}.people-filter-label{margin-bottom:.7rem;display:flex;align-items:center;gap:.45rem;color:#68645b;font-size:.7rem;font-weight:600}.people-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.person-chip,.people-picker summary,.clear-people{min-height:34px;border:1px solid var(--line);background:var(--white);padding:.45rem .65rem;color:var(--ink);font:inherit;font-size:.7rem;cursor:pointer}.person-chip{display:inline-flex;align-items:center;gap:.45rem;background:var(--ink);color:var(--white);border-color:var(--ink)}.people-picker{position:relative}.people-picker summary{list-style:none;display:flex;align-items:center}.people-picker summary::-webkit-details-marker{display:none}.people-picker-panel{position:absolute;z-index:8;top:calc(100% + .45rem);left:0;width:min(300px,calc(100vw - 4rem));padding:.65rem;border:1px solid var(--line);background:var(--white);box-shadow:0 14px 36px #231f1726}.people-picker-panel label{display:flex;align-items:center;gap:.45rem;padding:0 .55rem;border:1px solid var(--line)}.people-picker-panel input{width:100%;min-height:36px;border:0;outline:0;background:transparent;font:inherit;font-size:.72rem}.people-picker-list{max-height:240px;margin-top:.5rem;overflow:auto;display:grid}.people-picker-list button{border:0;border-bottom:1px solid var(--line);background:transparent;padding:.7rem .55rem;text-align:left;font:inherit;font-size:.72rem;cursor:pointer}.people-picker-list button:hover{background:var(--paper)}.people-picker-list span{padding:.8rem .55rem;color:#858177;font-size:.7rem}.clear-people{border:0;background:transparent;color:#79756c}.people-filter>small{display:block;margin-top:.7rem;color:#77736a;font-size:.65rem}.management-aside{display:grid;align-content:start;gap:1rem}.index-card{border:1px solid var(--line);background:var(--white);padding:1.65rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.index-card{background:#d4b978;border-color:#d4b978}.index-icon{width:48px;height:48px;margin-bottom:2rem;border:1px solid rgba(23,22,17,.26);border-radius:50%;display:grid;place-items:center}.index-card .eyebrow{color:#4e411f}.index-card h3{margin:0 0 .7rem;font-family:var(--serif);font-size:1.65rem;font-weight:400}.index-card>p:not(.eyebrow){margin-bottom:1.5rem;color:#171611b3;font-size:.79rem;line-height:1.6}.index-card>small{display:block;margin-top:1rem;color:#17161199;font-size:.63rem;line-height:1.45}.face-backfill{margin-top:.6rem;border-color:#17161147;background:#ffffff3d}.run-progress{margin:1.6rem 0}.run-progress>div:first-child{margin-bottom:.55rem;display:flex;justify-content:space-between;font-size:.72rem}.progress-track{height:4px;overflow:hidden;background:#1716112b}.progress-track span{display:block;height:100%;background:var(--ink);transition:width .3s ease}.avatar{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;color:#6c592d;background:var(--paper-deep);font-size:.65rem;font-weight:600}.avatar.large{width:42px;height:42px;font-size:.72rem}.heading-actions{display:flex;gap:.75rem;flex-wrap:wrap}.people-content{width:min(100% - 2.5rem,1100px);min-height:520px;margin:4rem auto}.people-toolbar{margin-bottom:1.5rem;display:flex;align-items:end;justify-content:space-between;gap:1.5rem}.people-toolbar h2{margin:0 0 .3rem;font-size:2.5rem}.people-toolbar p{margin:0;color:#77746d}.search-field{width:min(100%,320px);height:48px;border:1px solid var(--line);background:var(--white);padding:0 .9rem;display:flex;align-items:center;gap:.6rem}.search-field input{width:100%;border:0;outline:0;background:transparent}.people-table{border:1px solid var(--line);background:var(--white)}.people-table-head,.people-table-row{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 150px 70px 126px 34px;align-items:center;gap:1rem}.people-table-head{min-height:46px;padding:.5rem 1rem;border-bottom:1px solid var(--line);color:#817d74;background:#f8f4eb;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.people-table-row{min-height:76px;border-bottom:1px solid var(--line);background:transparent;padding:.75rem 1rem;text-align:left}.people-table-row:last-child{border-bottom:0}.people-table-row:hover{background:#faf7ef}.people-table-row.selected{background:#f4ead3}.wedding-role-badge,.scoped-manager-badge{width:fit-content;display:inline-flex;align-items:center;gap:.35rem;color:#6c5524;font-size:.7rem;font-weight:600}.scoped-manager-badge{color:#5f5b52}.role-actions{display:flex;flex-wrap:wrap;gap:.25rem .65rem;color:#77736b;font-size:.68rem}.role-actions button,.appoint-manager{color:#6c5524;font-size:.68rem;text-decoration:underline;text-underline-offset:2px}.select-box,.row-open{width:34px;height:34px;border:0;display:grid;place-items:center;color:#7a6b47;background:transparent;cursor:pointer}.row-invite{min-height:36px;padding:.5rem .65rem;font-size:.68rem;white-space:nowrap}.row-invite-cell{min-width:0;display:grid;gap:.25rem;justify-items:stretch}.row-invite-cell small{overflow:hidden;color:#77736b;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.person-open{min-width:0;border:0;padding:0;display:flex;align-items:center;gap:1rem;text-align:left;background:transparent;cursor:pointer}.person-cell{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem}.contact-add{border:0;background:transparent;display:inline-flex;align-items:center;gap:.3rem;color:#765f2b;font-size:.62rem;white-space:nowrap;cursor:pointer}.person-primary{min-width:0;display:grid;gap:.22rem}.person-primary strong{font-size:.86rem}.person-primary small{overflow:hidden;text-overflow:ellipsis;color:#89867e;font-size:.7rem}.person-role,.person-upload-count{color:#6f6c64;font-size:.72rem}.people-empty{padding:4rem;color:#77746d;text-align:center}.people-bulk-bar{min-height:62px;margin-bottom:1rem;padding:.7rem .9rem .7rem 1.1rem;border:1px solid #cbb77e;display:flex;align-items:center;gap:.8rem;background:#ead9ac}.people-bulk-bar strong{margin-right:auto;font-size:.78rem}.add-person-row{padding:1rem;border-bottom:1px solid var(--line);background:#faf7ef}.add-person-fields{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:.6rem;align-items:center}.add-person-fields input:not([type=checkbox]){width:100%;min-width:0;height:42px;border:1px solid var(--line);background:#fff;padding:0 .7rem}.add-person-fields label{display:flex;align-items:center;gap:.4rem;font-size:.72rem}.add-person-actions{margin-top:.7rem;display:flex;justify-content:flex-end;gap:.5rem}.add-person-row .error-message{margin-top:.7rem}.contact-dialog-form{margin-top:1.2rem;display:grid;gap:1rem}.contact-dialog-form label{display:grid;gap:.4rem;color:#57534b;font-size:.72rem;font-weight:600}.contact-dialog-form label>div,.existing-contact{min-height:46px;border:1px solid var(--line);background:var(--paper);padding:0 .75rem;display:flex;align-items:center;gap:.6rem;color:#7a7469}.contact-dialog-form input{width:100%;height:44px;border:0;outline:0;background:transparent;font:inherit}.existing-contact{color:#666158;font-size:.76rem}.manager-back{margin-bottom:2rem;color:#ffffffb8}.person-contact{margin:0;color:#ffffff8f}.csv-picker{min-height:150px;margin-top:1.5rem;border:1px dashed #b8ae99;background:#faf7ef;display:grid;place-content:center;justify-items:center;gap:.4rem;cursor:pointer}.csv-picker input{position:absolute;width:1px;height:1px;opacity:0}.csv-picker strong{margin-top:.4rem}.csv-picker span{color:#807c73;font-size:.72rem}.import-progress{margin-top:1rem;display:flex;justify-content:space-between;color:#65625a;font-size:.76rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;padding:1.5rem;display:grid;place-items:center;background:#0f0e0bb8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fade-in .15s ease}.modal{width:min(100%,660px);max-height:calc(100vh - 3rem);overflow:auto;background:var(--white);padding:2.2rem;box-shadow:0 30px 100px #0000004d;animation:lift-in .18s ease}@keyframes fade-in{0%{opacity:0}}@keyframes lift-in{0%{opacity:0;transform:translateY(10px)}}.modal-heading{margin-bottom:1.6rem;display:flex;justify-content:space-between;gap:1rem}.modal-heading h2{margin:0;font-size:2.3rem}.modal-close{flex:none}.modal-actions{margin-top:1.5rem;display:flex;justify-content:flex-end;gap:.65rem}.modal-actions.centered{justify-content:center}.dropzone{width:100%;min-height:230px;border:1px dashed #b8ae99;background:#faf7ef;display:grid;place-content:center;justify-items:center;gap:.45rem;cursor:pointer}.dropzone.dragging{border-color:var(--gold);background:#f6edda}.dropzone strong{margin-top:.5rem;font-family:var(--serif);font-size:1.25rem;font-weight:400}.dropzone>span:not(.drop-icon){color:#807c73;font-size:.76rem}.dropzone small{margin-top:.7rem;color:#9a968c;font-size:.65rem}.upload-guidance{margin:-.6rem 0 1rem;color:#706d65;font-size:.82rem;line-height:1.55}.drop-icon{width:54px;height:54px;border:1px solid #d5c7aa;border-radius:50%;display:grid;place-items:center;color:#8c7135}.upload-list{max-height:225px;margin-top:1rem;overflow:auto;border:1px solid var(--line)}.upload-row{min-height:64px;padding:.65rem;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:.7rem}.upload-row:last-child{border:0}.file-thumb{width:40px;height:40px;flex:none;background:var(--paper-deep);display:grid;place-items:center;color:#837347}.file-info{flex:1;min-width:0;display:grid;gap:.2rem}.file-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.file-info small{color:#908d84;font-size:.62rem}.upload-row>button{border:0;background:transparent;cursor:pointer}.upload-check{color:var(--green)}.mini-progress{height:2px;margin-top:.25rem;overflow:hidden;background:#e5dfd3}.mini-progress span{display:block;height:100%;background:var(--gold)}.small-dialog{width:min(100%,480px)}.stacked-form{margin-top:1.5rem}.stacked-form label input{margin-top:.45rem;margin-bottom:0}.field-divider{height:32px;display:flex;align-items:center;color:#aaa69d;font-size:.65rem}.field-divider:before,.field-divider:after{content:"";flex:1;height:1px;background:var(--line)}.field-divider span{padding:0 .7rem}.access-code-value{margin:1.5rem 0;border:1px solid var(--line);background:var(--paper);padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.access-code-value code{overflow-wrap:anywhere;font-size:1rem}.person-actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:flex-end}.invitation-dialog{text-align:center}.invitation-qr{display:block;width:min(100%,280px);margin:1.4rem auto .8rem;border:10px solid #fff}.invitation-expiry{margin-bottom:1.1rem}.invitation-warning{margin-top:.7rem;font-size:.72rem}.session-history{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}.session-list{border:1px solid var(--line);background:var(--white)}.session-row{padding:1rem;display:grid;grid-template-columns:auto minmax(140px,1fr) minmax(220px,1.5fr);align-items:center;gap:1rem;border-bottom:1px solid var(--line)}.session-row:last-child{border-bottom:0}.session-row>div{min-width:0;display:grid;gap:.25rem}.session-row strong{font-size:.82rem}.session-row small,.session-row span{overflow:hidden;text-overflow:ellipsis;color:#77736b;font-size:.7rem}.session-row span{display:flex;align-items:center;gap:.35rem}@media(max-width:700px){.session-row{grid-template-columns:auto 1fr}.session-row>div:last-child{grid-column:2}}.confirm-dialog{width:min(100%,430px);text-align:center}.confirm-dialog h2{margin:1rem 0 .7rem;font-size:2rem}.warning-icon{width:52px;height:52px;margin:0 auto;border-radius:50%;display:grid;place-items:center;color:var(--red);background:#8e382f1a}.warning-icon.invitation-replace-icon{color:#80682f;background:#f0e4c5}.face-dialog{width:min(100%,1000px)}.dialog-loading,.no-faces{min-height:360px;display:grid;place-content:center;justify-items:center;gap:.8rem;color:#77736b;text-align:center}.no-faces h3{margin:.5rem 0 0;font-family:var(--serif);font-size:1.7rem;font-weight:400}.no-faces p{max-width:25rem}.face-workspace{display:grid;grid-template-columns:minmax(0,1fr) 270px;min-height:430px;border:1px solid var(--line)}.face-canvas{min-width:0;min-height:430px;display:grid;place-items:center;background:var(--ink);overflow:hidden}.face-image-layer{position:relative;width:100%;max-width:100%;max-height:560px}.face-image-layer img{display:block;width:100%;height:100%;object-fit:contain}.face-image-layer button{position:absolute;min-width:25px;min-height:25px;border:2px solid var(--gold-bright);background:#d4b97814;cursor:pointer}.face-image-layer button.selected{border-color:#fff;box-shadow:0 0 0 2px var(--ink)}.face-image-layer button.assigned{border-color:#8cc093}.face-image-layer button span{position:absolute;left:-2px;bottom:calc(100% + 2px);background:var(--gold-bright);padding:.18rem .35rem;white-space:nowrap;font-size:.55rem}.face-controls{padding:1.4rem;border-left:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.face-controls h3{margin:1rem 0 .45rem;font-family:var(--serif);font-size:1.55rem;font-weight:400}.face-controls p{color:#817e75;font-size:.75rem;line-height:1.55}.face-controls select{height:46px;margin-top:.6rem;font-size:.8rem}.media-preview-dialog{width:min(100%,1180px);height:min(900px,calc(100dvh - 3rem));max-height:calc(100dvh - 3rem);overflow:hidden;padding:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#151411;color:var(--white)}.media-preview-heading{min-height:72px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.media-preview-heading>div{min-width:0;display:grid;gap:.25rem}.media-preview-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.media-preview-heading small{color:#ffffff8f;font-size:.68rem}.media-preview-heading .icon-button{color:var(--white);border-color:#fff3}.media-preview-stage{position:relative;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;background:#090908}.media-preview-stage img,.media-preview-stage video{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}.preview-nav{position:absolute;top:50%;width:44px;height:52px;border:1px solid rgba(255,255,255,.16);color:var(--white);background:#141310b8;display:grid;place-items:center;transform:translateY(-50%);cursor:pointer}.preview-nav.previous{left:1rem}.preview-nav.next{right:1rem}.media-preview-position{min-height:44px;display:grid;place-items:center;color:#ffffff85;font-size:.68rem}.toast{position:fixed;z-index:200;right:1.5rem;bottom:1.5rem;min-height:46px;padding:.75rem 1rem;display:flex;align-items:center;gap:.55rem;color:var(--white);background:var(--ink);box-shadow:0 15px 45px #00000038;font-size:.78rem;animation:lift-in .18s ease}@media(max-width:1000px){.login-page{grid-template-columns:.8fr 1.2fr}.story-copy{padding-left:0}.photo-grid,.private-collection-section .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid.compact-grid,.management-main .photo-grid.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.management-grid{grid-template-columns:1fr}.management-aside{grid-template-columns:1fr 1fr}}@media(max-width:760px){.login-page{display:block;background:var(--white)}.login-story{display:none}.login-panel{min-height:100vh;padding:2rem 1.35rem;align-content:center}.mobile-mark{display:block;position:absolute;top:2rem;left:50%;transform:translate(-50%);font-family:var(--serif);font-size:1.25rem}.login-form-wrap h2{font-size:3rem}.site-header{height:70px;grid-template-columns:1fr auto}.wordmark{font-size:1.08rem}.user-copy{display:none}.header-user>.signout-button{display:none}.mobile-menu{display:inline-grid}.main-nav{display:none;position:absolute;left:0;right:0;top:70px;height:auto;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:var(--paper);box-shadow:0 15px 25px #00000014}.main-nav.open{display:grid;gap:0}.main-nav button{min-height:48px}.main-nav button:after{display:none}.guest-intro{min-height:410px;padding:4rem 0;display:block}.guest-intro h1{font-size:clamp(3.7rem,17vw,5.5rem)}.intro-aside{margin-top:2.5rem}.intro-aside p{font-size:1.05rem}.gallery-section{margin-top:3.5rem}.section-heading{align-items:center}.photo-grid,.management-main .photo-grid,.private-collection-section .photo-grid{grid-template-columns:1fr}.photo-grid.compact-grid,.management-main .photo-grid.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid .photo-frame{aspect-ratio:4/5}.photo-actions{opacity:1;transform:none}.site-footer{margin-top:4rem;min-height:150px;display:grid;place-content:center;justify-items:center;gap:.8rem;text-align:center}.manage-heading{padding-top:3.5rem;padding-bottom:3.5rem;align-items:start;flex-direction:column}.manage-heading h1{font-size:3.6rem;line-height:.95}.stats-row{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.management-grid{margin-top:3rem}.management-aside{grid-template-columns:1fr}.heading-actions{width:100%}.heading-actions .button{flex:1}.people-toolbar{align-items:stretch;flex-direction:column}.search-field{width:100%}.people-table-row{grid-template-columns:auto minmax(0,1fr) auto}.people-table-head{grid-template-columns:36px minmax(0,1fr)}.people-table-head span:not(:first-of-type){display:none}.person-role{display:none}.wedding-role-badge,.scoped-manager-badge,.role-actions,.appoint-manager{grid-column:2;justify-self:start}.person-upload-count{grid-column:2;grid-row:2}.row-invite-cell{grid-column:2;grid-row:3;justify-self:start}.row-open{grid-column:3;grid-row:1}.add-person-fields{grid-template-columns:1fr}.people-bulk-bar{align-items:stretch;flex-wrap:wrap}.people-bulk-bar strong{width:100%}.modal-backdrop{padding:0;align-items:end}.modal{max-height:92vh;padding:1.4rem}.modal-heading h2{font-size:2rem}.upload-dialog .upload-guidance{font-size:.9rem}.upload-dialog .dropzone{min-height:82px;border:0;padding:1rem;background:var(--gold-bright);grid-template-columns:auto 1fr;grid-template-rows:auto auto;place-content:initial;justify-items:start;align-items:center;text-align:left}.upload-dialog .dropzone .drop-icon{grid-row:1 / span 2;width:48px;height:48px;color:var(--ink);border-color:#17161147}.upload-dialog .dropzone strong{margin:0;font-family:var(--sans);font-size:1rem;font-weight:600}.upload-dialog .dropzone>span:not(.drop-icon){display:none}.upload-dialog .dropzone small{margin:0;color:#171611ad}.media-preview-dialog{width:100%;height:100dvh;max-height:100dvh}.preview-nav.previous{left:.5rem}.preview-nav.next{right:.5rem}.face-workspace{grid-template-columns:1fr}.face-controls{border:0;border-top:1px solid var(--line)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
