/* Photography: one collection, individual albums, and a quiet full-screen viewer. */
.photography-page .ui-icon{width:22px;height:22px;flex:none;vertical-align:middle}
.photography-page em{font-style:normal}
.photography-page .home-button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-width:200px}
.photography-page .header .contact-button svg{width:19px;height:19px}
.photography-page .photo-hero{min-height:680px;grid-template-areas:"copy image";padding:140px 8% 65px;gap:7%}
.photography-page .photo-hero h1{font-size:clamp(52px,5.4vw,80px);letter-spacing:-3.8px;line-height:1.04}
.photography-page .photo-hero h1 em{color:var(--accent)}
.photography-page .photo-hero-art{height:480px;min-height:0;border-radius:3px;box-shadow:none}
.photography-page .photo-hero-copy{padding:12px 0}
.photo-hero-detail{display:flex;gap:20px;margin-top:38px;font-size:10px;color:#777b72}
.photo-hero-detail span+span{padding-left:20px;border-left:1px solid #cdd0c8}
.photography-page .photo-albums{padding:65px 8% 75px;max-width:1700px;margin:auto;scroll-margin-top:96px}
.photography-page .photo-section-head{margin:0 0 35px;gap:36px;align-items:end}
.photography-page .photo-section-head h2{font:500 clamp(35px,3.5vw,52px)/1.1 Manrope,Arial,sans-serif;letter-spacing:-2px;margin:16px 0 0}
.photography-page .photo-section-head .home-kicker{margin:0}
.photography-page .photo-section-head h2 em{color:var(--accent)}
.photography-page .photo-section-head>p{max-width:360px;font-size:14px;line-height:1.8;margin:0;color:#666b61}
.photography-page .album-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin:0}
.album-card{display:flex;flex-direction:column;min-width:0;text-decoration:none;border-radius:3px;color:var(--ink);background:#fafbf7;overflow:hidden;box-shadow:0 2px 10px #17191705;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s}
.album-card:hover{transform:translateY(-5px);box-shadow:0 16px 35px #17191713}
.album-card:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.album-card-cover{position:relative;aspect-ratio:4/3;overflow:hidden;background:#222622}
.album-card-cover>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.album-card:hover .album-card-cover>img{transform:scale(1.045)}
.album-card-cover:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#080c0880);pointer-events:none}
.album-card-cover>img.album-placeholder{object-fit:contain;padding:20%}
.album-card-type,.album-card-count{position:absolute;z-index:1;color:#fff;font-size:9px;letter-spacing:1.4px}
.album-card-type{top:20px;left:20px;padding:7px 10px;background:#11121170;backdrop-filter:blur(8px)}
.album-card-count{bottom:18px;right:20px;letter-spacing:.3px;font-size:11px}
.album-card-info{display:flex;flex:1;align-items:start;justify-content:space-between;gap:16px;padding:24px 23px 22px}
.album-card-date{font-size:10px;color:#777d72;margin:0 0 10px;letter-spacing:.2px}
.album-card h3{font:500 27px/1.15 Manrope,Arial,sans-serif;letter-spacing:-1px;margin:0}
.album-card-description{font-size:12px;color:#72786d;line-height:1.6;margin:9px 0 0}
.album-card-action{display:flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;background:#e9ece3;border-radius:50%;color:var(--ink);transition:background .3s,color .3s,transform .3s}
.album-card-action>span{position:absolute;overflow:hidden;clip-path:inset(50%);width:1px;height:1px;white-space:nowrap}
.album-card:hover .album-card-action{background:var(--accent);color:#fff;transform:rotate(4deg)}
.gallery-footnote{display:flex;gap:18px;align-items:center;margin-top:24px;color:#7b8075;font-size:11px;line-height:1.7;max-width:750px}
.gallery-footnote p{margin:0}.gallery-note-line{height:1px;width:30px;flex:none;background:#b3b9ab}
.photography-page .photo-order-info{display:grid;grid-template-columns:1.2fr 1fr;gap:13%;padding:66px 8%;border-top:1px solid var(--line)}
.photography-page .photo-order-info h2{font:500 clamp(34px,3.8vw,54px)/1.1 Manrope,Arial,sans-serif;letter-spacing:-2.2px;margin:18px 0 20px}
.photography-page .photo-order-info h2 em{color:var(--accent)}
.photo-order-info>div>p:not(.home-kicker){font-size:14px;line-height:1.9;color:#686f60;max-width:460px}
.photo-text-link{display:inline-flex;align-items:center;gap:35px;font-size:13px;font-weight:500;padding:15px 0;border-bottom:1px solid #9fa694;margin-top:12px;transition:color .25s,gap .25s}
.photo-text-link:hover{color:var(--accent);gap:42px}
.photo-delivery{border-left:1px solid #cdd2c4;padding:3px 0 3px 40px}
.photo-delivery>strong{display:block;font:500 68px/1 Manrope,Arial,sans-serif;letter-spacing:-4px;margin:22px 0 10px}.photo-delivery>strong>span{font-size:32px;letter-spacing:-1.5px}
.photo-delivery>small{font-size:11px;color:#6b7262}
.photo-delivery ul{padding:0;margin:24px 0 14px;list-style:none;display:grid;gap:11px;font-size:12px;color:#363d2f}
.photo-delivery li{padding-left:21px;position:relative}.photo-delivery li:before{content:"";position:absolute;left:1px;top:2px;width:6px;height:11px;border:solid #a34f40;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.photo-delivery>p{font-size:10px!important;line-height:1.7!important;color:#7d8376!important;max-width:300px!important}
.photography-page .photo-contact{display:flex;align-items:center;justify-content:space-between;gap:50px;padding:62px 8%;background:#e5e8de;border:0}
.photography-page .photo-contact h2{font:500 clamp(33px,3.6vw,50px)/1.1 Manrope,Arial,sans-serif;letter-spacing:-2px;margin:19px 0}
.photography-page .photo-contact h2 em{color:#6d7563}.photography-page .photo-contact p{font-size:13px;line-height:1.8;max-width:460px;margin-bottom:0}
.photography-page .photo-contact .home-button{background:var(--accent);color:#fff;flex:none}
.album-page .album-page-head{padding:146px 8% 40px;max-width:1700px;margin:auto}
.album-back{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:#6d7462;margin-bottom:43px;transition:color .2s}.album-back:hover{color:var(--accent)}.album-back svg{width:17px!important}
.album-title-layout{display:flex;justify-content:space-between;align-items:end;gap:35px}
.album-title-layout h1{font:500 clamp(50px,6vw,86px)/1.06 Manrope,Arial,sans-serif;letter-spacing:-4px;margin:16px 0 15px;overflow-wrap:anywhere}
#album-date{color:#8d302b;font-size:10px;letter-spacing:1.4px}
#album-description{font-size:15px;line-height:1.8;color:#6f7568;max-width:650px}
.album-summary{display:grid;gap:15px;text-align:right;flex:none;padding-bottom:6px}.album-summary>span:first-child{font:500 22px Manrope,Arial,sans-serif;letter-spacing:-.7px}.album-summary>span+span{font-size:10px;line-height:1.7;color:#7c8373}
.album-gallery-section{padding:0 8% 65px;max-width:1700px;margin:auto}
.album-gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;margin-bottom:10px;border-top:1px solid #ccd1c3;font-size:11px;color:#707867}.album-gallery-toolbar p{margin:0}.album-gallery-toolbar>span{font-size:9px;letter-spacing:.3px}
.album-page .photo-grid{display:block;columns:3;column-gap:18px}
.gallery-photo{break-inside:avoid;margin:0 0 18px;overflow:hidden;border-radius:2px;background:#dfe4d8;isolation:isolate}
.gallery-photo-open{display:block;position:relative;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:left;line-height:0}
.gallery-photo-open img{display:block;width:100%;height:auto;filter:none;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.gallery-photo-open:hover img{transform:scale(1.015);filter:brightness(.94)}
.gallery-photo-open:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.gallery-photo-caption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:24px 18px 14px;background:linear-gradient(transparent,#0e150b85);color:white;line-height:1.2;font:400 11px 'DM Sans',Arial,sans-serif;opacity:0;transition:opacity .3s}
.gallery-photo-open:hover .gallery-photo-caption,.gallery-photo-open:focus-visible .gallery-photo-caption{opacity:1}
.gallery-empty{font-size:14px;line-height:1.8;padding:35px 0;color:#6e7565;column-span:all}
/* Dialog enters the top layer, above both menus and mobile browser chrome. */
.photo-viewer-open{overflow:hidden}
.rd-viewer{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#10120f;color:#f7f8f3;overflow:hidden;box-sizing:border-box}
.rd-viewer[open]{display:grid;grid-template-rows:76px minmax(0,1fr) 119px;animation:viewer-in .28s ease-out}
.rd-viewer::backdrop{background:#10120ff5}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 30px;border-bottom:1px solid #ffffff16}
.viewer-brand{display:flex;align-items:center;gap:24px}.viewer-brand img{width:130px;height:auto}.viewer-brand>span{font-size:8px;letter-spacing:1.7px;color:#8d9485;border-left:1px solid #ffffff27;padding-left:24px}
.viewer-counter{font-size:12px;letter-spacing:2px;color:#cdd2c5;margin-left:auto}
.viewer-close,.viewer-arrow{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #ffffff29;border-radius:50%;background:#141811;color:#f5f8ef;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.viewer-close{margin-left:18px}.viewer-close:hover,.viewer-arrow:hover{background:#292f22;border-color:#ffffff6e}.viewer-close:focus-visible,.viewer-arrow:focus-visible,.viewer-thumb:focus-visible{outline:2px solid #ed7061;outline-offset:4px}
.viewer-stage{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;gap:16px;padding:20px 28px 10px;min-height:0}
.viewer-arrow{justify-self:center;width:48px;height:48px}.viewer-arrow[hidden]{visibility:hidden;display:flex}
.viewer-figure{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;min-width:0;min-height:0;height:100%;margin:0;transition:opacity .18s ease,transform .22s ease;touch-action:pan-y}
.viewer-figure.is-changing{opacity:.1;transform:translateY(5px)}
.viewer-figure>img{display:block;min-height:0;min-width:0;width:auto;height:auto;max-width:100%;max-height:calc(100% - 32px);object-fit:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;box-shadow:0 6px 40px #0003}
.viewer-figure>figcaption{font-size:10px;line-height:1.5;text-align:center;color:#b0b9a5;flex:none;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer-bottom{padding:13px 28px 12px;border-top:1px solid #ffffff13;min-width:0}
.viewer-thumbnails{display:flex;justify-content:safe center;gap:8px;overflow-x:auto;padding:1px 3px 4px;scrollbar-width:thin;scrollbar-color:#4c5543 transparent}
.viewer-thumb{position:relative;display:block;flex:none;width:53px;height:49px;background:#24291f;border:1px solid transparent;border-radius:2px;padding:2px;cursor:pointer;opacity:.45;transition:opacity .25s,border-color .25s}
.viewer-thumb img{width:100%;height:100%;object-fit:cover;display:block}.viewer-thumb[aria-current=true]{border-color:#e66e5f;opacity:1}.viewer-thumb:hover{opacity:1}
.viewer-bottom>p{font-size:9px;text-align:center;color:#9ca691;margin:10px 0 0}.viewer-bottom>p span{padding-left:16px;margin-left:16px;border-left:1px solid #ffffff25;color:#68755d}
@keyframes viewer-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:1000px){.photography-page .album-list:has(.album-card:only-child){grid-template-columns:minmax(0,660px) 1fr}.album-card:only-child .album-card-cover{aspect-ratio:16/10}.album-card:only-child h3{font-size:32px}.album-card:only-child .album-card-info{padding:27px 28px}}
@media(max-width:1000px){.photography-page .photo-hero{min-height:0;padding:120px 6% 48px;gap:5%}.photography-page .photo-hero h1{font-size:52px;letter-spacing:-2.8px}.photography-page .photo-hero-art{height:420px}.photography-page .photo-albums{padding:50px 6%}.photography-page .album-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.photography-page .photo-order-info{padding:50px 6%;gap:7%}.album-card-info{padding:20px 18px}.album-card h3{font-size:24px}.album-page .photo-grid{columns:2}.album-page .album-page-head{padding:126px 6% 30px}.album-gallery-section{padding-inline:6%}}
@media(max-width:700px){.photography-page .photo-hero{display:flex;flex-direction:column;padding:124px 6% 35px;gap:26px}.photography-page .photo-hero-copy{width:100%;padding:0}.photography-page .photo-hero h1{font-size:clamp(46px,11.8vw,64px);line-height:1.05;letter-spacing:-2.5px;margin:22px 0 18px}.photography-page .photo-hero-art{position:relative;width:100%;height:65vw;max-height:390px;min-height:0;order:1}.photo-hero-detail{margin-top:25px;font-size:9px;gap:14px}.photo-hero-detail span+span{padding-left:14px}.photography-page .photo-section-head{display:block;margin-bottom:26px}.photography-page .photo-section-head h2{font-size:37px;letter-spacing:-1.7px}.photography-page .photo-section-head>p{margin-top:18px;font-size:13px}.photography-page .photo-albums{padding:28px 6% 40px;scroll-margin-top:76px}.photography-page .album-list{grid-template-columns:1fr;gap:22px}.album-card-cover{aspect-ratio:4/3}.album-card-info{padding:23px 21px}.album-card h3{font-size:29px}.album-card-type{top:15px;left:15px}.gallery-footnote{font-size:10px;gap:12px}.gallery-note-line{width:20px}.photography-page .photo-order-info{grid-template-columns:1fr;gap:32px;padding:42px 6%}.photography-page .photo-order-info h2{font-size:38px;letter-spacing:-1.7px}.photo-delivery{border-left:0;border-top:1px solid #cdd2c4;padding:27px 0 0}.photo-delivery>strong{font-size:60px;margin-top:20px}.photography-page .photo-contact{display:block;padding:42px 6%}.photography-page .photo-contact h2{font-size:38px}.photography-page .photo-contact .home-button{margin-top:25px}.photo-contact .home-kicker{font-size:8px;line-height:1.8}.album-page .album-page-head{padding:108px 6% 28px}.album-back{margin-bottom:30px}.album-title-layout{display:block}.album-title-layout h1{font-size:53px;letter-spacing:-2.8px}.album-summary{display:flex;justify-content:space-between;align-items:center;text-align:left;margin-top:20px;gap:20px}.album-summary>span+span{font-size:9px;text-align:right}.album-summary>span:first-child{font-size:18px}#album-description{font-size:13px}.album-gallery-section{padding:0 6% 40px}.album-gallery-toolbar{align-items:start;font-size:10px}.album-gallery-toolbar>span{max-width:100px;text-align:right;font-size:8px}.album-page .photo-grid{columns:2;column-gap:10px}.gallery-photo{margin-bottom:10px}.gallery-photo-caption{opacity:1;padding:20px 10px 10px;font-size:9px}.gallery-photo-caption svg{width:16px!important;height:16px!important}.rd-viewer[open]{grid-template-rows:64px minmax(0,1fr) 106px;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.viewer-bar{padding:0 16px;gap:10px}.viewer-brand img{width:108px}.viewer-brand>span{display:none}.viewer-close{width:36px;height:36px;margin-left:10px}.viewer-counter{font-size:10px}.viewer-stage{position:relative;display:flex;justify-content:center;padding:12px 12px 48px;gap:0}.viewer-figure{width:100%;gap:10px}.viewer-figure>img{max-height:calc(100% - 30px)}.viewer-figure>figcaption{font-size:9px;max-width:95%}.viewer-arrow{position:absolute;bottom:4px;z-index:1;width:36px;height:36px;background:#252c1d}.viewer-prev{left:calc(50% - 47px)}.viewer-next{right:calc(50% - 47px)}.viewer-bottom{padding:10px 12px}.viewer-thumb{width:43px;height:43px}.viewer-bottom>p{font-size:8px;margin-top:8px}.viewer-bottom>p span{display:none}}
@media(prefers-reduced-motion:reduce){.photography-page *, .rd-viewer *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.rd-viewer[open]{animation:none}}
.photography-page .photo-albums{scroll-margin-top:0}
@media(min-width:1000px){.photography-page .album-list:has(.album-card:only-child){grid-template-columns:1fr}.album-card:only-child{display:grid;grid-template-columns:1.3fr 1fr}.album-card:only-child .album-card-cover{aspect-ratio:16/10}.album-card:only-child .album-card-info{padding:42px;flex-direction:column;justify-content:center;align-items:start;gap:30px}.album-card:only-child h3{font-size:48px;letter-spacing:-2px}.album-card:only-child .album-card-description{font-size:14px}.album-card:only-child .album-card-action{width:auto;gap:45px;padding:0 0 12px;justify-content:space-between;border-radius:0;background:transparent;border-bottom:1px solid #cbd0c2}.album-card:only-child .album-card-action>span{position:static;clip-path:none;width:auto;height:auto;font-size:12px;white-space:normal}.album-card:only-child:hover .album-card-action{color:var(--accent);transform:none;background:transparent}}
/* Albums read left to right. A consistent frame preserves the complete image. */
body.album-page .photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));columns:auto;gap:24px;align-items:stretch}
.album-page .gallery-photo{display:flex;flex-direction:column;min-width:0;break-inside:auto;margin:0;border:1px solid #d9ddcf;border-radius:4px;overflow:visible;background:#fafbf6;box-shadow:none;transition:border-color .25s,box-shadow .25s}
.album-page .gallery-photo.is-selected{border-color:#e7463a;box-shadow:0 0 0 1px #e7463a}
.album-page .gallery-photo-open{aspect-ratio:4/5;flex:none;min-width:0;overflow:hidden;border-radius:3px 3px 0 0;background:#e8eadf;padding:12px}
.album-page .gallery-photo-open img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transform:none;filter:none;box-shadow:0 2px 12px #22271908}
.album-page .gallery-photo-open:hover img{transform:none;filter:none}
.album-page .gallery-photo-caption{left:12px;right:12px;bottom:12px;padding:25px 12px 10px;font-size:10px;pointer-events:none;border-radius:0 0 2px 2px}
.album-page .gallery-photo-caption svg{width:17px;height:17px}
.album-page .gallery-photo-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:12px;background:#fafbf6;border-top:1px solid #d9ddcf;border-radius:0 0 3px 3px}
.album-page .gallery-photo-number{font:500 11px/1.5 'DM Sans',Arial,sans-serif;color:#6e7565;white-space:nowrap}
.album-page .gallery-photo .photo-select{position:static;min-width:0;min-height:34px;padding:8px 10px;border:1px solid #cbd1c0;background:transparent;color:#3f4834;backdrop-filter:none;font-size:10px;white-space:nowrap}
.album-page .gallery-photo .photo-select:hover{background:#e9ecdf;border-color:#a9b29a}
.album-page .gallery-photo .photo-select[aria-pressed=true]{background:#e7463a;border-color:#e7463a;color:#fff}
.album-page .gallery-photo .photo-select:focus-visible{outline:2px solid #e7463a;outline-offset:3px}
.album-page .gallery-photo .photo-select>span{position:static;width:auto;height:auto;clip-path:none;overflow:visible}
.album-page .gallery-empty{grid-column:1/-1}
.album-page #rd-assistant{display:none}
@media(max-width:1250px){body.album-page .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}
@media(max-width:850px){body.album-page .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media(max-width:550px){body.album-page .photo-grid{gap:18px 12px}.album-page .gallery-photo-open{padding:7px}.album-page .gallery-photo-caption{left:7px;right:7px;bottom:7px;padding:22px 8px 8px;font-size:8px;opacity:0}.album-page .gallery-photo-meta{flex-direction:column;align-items:stretch;gap:8px;padding:10px;min-height:0}.album-page .gallery-photo-number{font-size:10px}.album-page .gallery-photo .photo-select{width:100%;justify-content:center;min-height:36px;font-size:9px;padding:8px 5px;gap:6px}.album-page .gallery-photo .photo-select svg{width:15px;height:15px}}
@media(max-width:359px){body.album-page .photo-grid{grid-template-columns:1fr}.album-page .gallery-photo-meta{flex-direction:row;align-items:center;gap:10px;padding:12px}.album-page .gallery-photo .photo-select{width:auto;padding:8px 12px;font-size:10px}.album-page .gallery-photo-number{font-size:11px}}

/* Public albums may be shared before the first photos are ready. */
.album-card-coming{font-size:12px;line-height:1.7;color:#a74436;margin:10px 0 0}
.album-card.is-upcoming .album-card-type{background:#aa4338e6}
.album-is-upcoming .album-gallery-toolbar,.album-is-upcoming .album-gallery-section>.gallery-footnote{display:none!important}
.album-is-upcoming #photo-grid{display:block;columns:auto}
.album-coming-soon{display:flex;align-items:flex-start;gap:30px;padding:48px;background:#eceee5;border:1px solid #d3d9c9;border-top:3px solid #e84739;border-radius:4px;max-width:1100px;margin:6px auto 20px}
.album-coming-mark{display:flex;align-items:center;justify-content:center;flex:none;width:66px;height:66px;background:#dfe4d4;border-radius:50%;color:#6a795a}
.album-coming-mark svg{width:29px;height:29px}
.album-coming-soon .home-kicker{font-size:9px;margin:3px 0 17px;color:#9c493d}
.album-coming-soon h2{font:500 clamp(29px,3.2vw,44px)/1.14 Manrope,Arial,sans-serif;letter-spacing:-1.7px;max-width:650px;margin:0}
.album-coming-copy{font-size:14px;line-height:1.85;color:#59634f;max-width:550px;margin:20px 0}
.album-coming-back{display:inline-flex;align-items:center;gap:23px;padding:10px 0;border-bottom:1px solid #a6b198;font-size:12px;color:#293222;text-decoration:none}
.album-coming-back svg{width:19px;height:19px}
@media(max-width:700px){.album-coming-soon{display:block;padding:29px 24px;margin-bottom:0}.album-coming-mark{width:48px;height:48px;margin-bottom:23px}.album-coming-mark svg{width:24px;height:24px}.album-coming-soon h2{font-size:31px;letter-spacing:-1.3px}.album-coming-soon .home-kicker{font-size:8px;line-height:1.7}.album-coming-copy{font-size:13px;margin:17px 0}.album-coming-back{font-size:11px}}
