:root{--paper:#fff;--ink:#5c5b56;--muted:#888780;--pink:#f5f3ef;--sage:#e8eae4;--line:#e9e7e2;--accent:#77736b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a.button{cursor:pointer}header{padding:26px 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand,.signature{font:italic 31px/1.1 Georgia,serif}.brand span{display:block;font:9px/2.6 system-ui;letter-spacing:5px;text-align:center}nav{display:flex;gap:28px;font-size:12px}.nav-admin{color:var(--muted)}main{min-height:65vh}.eyebrow{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.12}h1{font-size:clamp(42px,6.3vw,86px);letter-spacing:-2px;margin:20px 0}h2{font-size:36px}h3{font-size:24px}p{color:var(--muted)}.hero{display:grid;grid-template-columns:1fr;gap:60px;align-items:center;padding:70px 9% 80px}.hero p{max-width:380px}.hero em{color:#a88479}.button,button{border:1px solid var(--accent);background:var(--accent);color:white;padding:12px 23px;border-radius:3px;display:inline-block;font-size:12px}.button.secondary,button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}button:disabled{opacity:.5;cursor:wait}button.danger{background:transparent;color:#9a4f46;border-color:#ddc5bf}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b79585;outline-offset:4px}.section{padding:50px 8% 75px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{margin:12px 0 30px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.card{display:block}.card-image{aspect-ratio:4/5;background:var(--sage);overflow:hidden;border-radius:100px 100px 3px 3px;display:grid;place-items:center;color:var(--muted)}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.card:hover img{transform:scale(1.025)}.card h3{margin:18px 0 5px}.card p{margin:0;font-size:12px}.empty{border:1px dashed #cfbfb2;padding:48px;text-align:center;border-radius:4px;background:#f5eee6}.empty h3{margin-top:0}.quote{background:var(--pink);padding:55px 10%;text-align:center}.quote h2{font-style:italic;max-width:750px;margin:0 auto}.wrap{max-width:1150px;margin:auto;padding:45px 30px}.narrow{max-width:480px;padding:65px 25px;margin:auto}.narrow h1{font-size:44px}label{display:block;font-size:12px;margin:18px 0 7px}input:not([type=checkbox]),textarea{width:100%;background:white;border:1px solid var(--line);border-radius:3px;padding:12px;color:var(--ink)}textarea{min-height:85px;resize:vertical}.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.error{color:#a34840;font-size:13px}.badge{padding:4px 9px;background:var(--sage);font-size:10px;border-radius:30px;margin-left:8px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.toolbar h1{font-size:46px}.editor{display:grid;grid-template-columns:300px 1fr;gap:40px;margin-top:30px}.panel{border:1px solid var(--line);padding:25px;background:#fffaf5;align-self:start}.panel h3{margin-top:0}.check{display:flex;gap:10px;align-items:center}.upload{border:1px dashed #c4ad9e;padding:25px;text-align:center;background:#f1e9e0}.upload input{margin-top:15px}.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:25px}.photo{margin:0;position:relative}.photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:3px;cursor:zoom-in}.photo figcaption{font-size:10px;overflow-wrap:anywhere}.photo-actions{display:flex;gap:5px;margin-top:5px}.photo-actions button{padding:5px 8px;font-size:10px}.album-head{text-align:center;padding:70px 25px 40px}.album-head h1{font-size:64px}.album-photos{column-count:3;column-gap:20px;padding:20px 6% 65px}.album-photos .photo{break-inside:avoid;margin-bottom:20px}.album-photos img{aspect-ratio:auto;display:block}.back{font-size:12px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:35px 6%;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px;color:var(--muted)}footer .signature{font-size:24px}dialog{border:0;background:#201e1cf5;color:white;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:45px 65px;margin:0}dialog::backdrop{background:#201e1c}dialog img{display:block;max-width:100%;max-height:80vh;object-fit:contain;margin:auto}dialog>div{display:flex;justify-content:space-between;align-items:center;margin:15px auto;max-width:900px}dialog .close,dialog .prev,dialog .next{position:absolute;background:transparent;border:0;font-size:38px;padding:10px}.close{right:12px;top:5px}.prev{left:5px;top:45%}.next{right:5px;top:45%}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 22px;background:var(--ink);color:white;border-radius:3px;display:none;z-index:10;max-width:90vw}.status{font-size:12px;color:var(--muted)}@media(max-width:750px){header{padding:20px;align-items:flex-start}.brand{font-size:25px}nav{gap:12px;flex-wrap:wrap;justify-content:flex-end;max-width:180px;font-size:10px}.hero{padding:45px 7%;gap:30px;grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr);gap:18px}.editor{grid-template-columns:1fr}.photos{grid-template-columns:repeat(2,1fr)}.album-photos{column-count:2;column-gap:12px}.album-head h1{font-size:44px}.section{padding:35px 6%}.wrap{padding:30px 20px}footer{flex-direction:column;text-align:center}.empty{padding:25px}.quote h2{font-size:26px}dialog{padding:55px 35px}.toolbar h1{font-size:36px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

[hidden]{display:none!important}.import-options{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.import-options [aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.source-guide{text-align:left;border-top:1px solid var(--line);margin-top:20px;padding-top:8px}.source-guide h4{margin-bottom:8px}.source-guide ol{padding-left:20px;font-size:13px}.source-guide li{margin:8px 0}.source-guide p{font-size:12px}.text-link{text-decoration:underline;text-underline-offset:3px}.drop-area{display:flex;flex-direction:column;gap:8px;border:1px dashed #c4ad9e;padding:25px 16px;margin-top:20px;cursor:pointer;background:var(--paper)}.drop-area span{color:var(--muted);font-size:12px}.drop-area.drag-over{background:var(--sage);outline:2px solid var(--accent)}.upload .form-actions{justify-content:center}.upload input[type=file]{font-size:12px}#upload-code-result input{font-family:monospace}.source-guide input{font-size:12px}

html{scroll-behavior:smooth}body{background:#f4f5f3;max-width:1500px;margin:0 auto;border-left:1px solid #f0f0ed;border-right:1px solid #f0f0ed}main,footer,.site-header{background:#fff}main{overflow:hidden}.site-header{display:grid;grid-template-columns:1fr auto 1fr;gap:28px;padding:30px 7%;border:0;min-height:105px;align-items:center}.brand{font:400 29px/1.15 'Didot','Bodoni MT',Georgia,serif;text-transform:uppercase;letter-spacing:1px;text-align:center;white-space:nowrap}.brand span{font:8px/2.8 system-ui,sans-serif;letter-spacing:4px}.site-header nav{font:9px/1.4 system-ui,sans-serif;letter-spacing:2px;text-transform:uppercase;gap:30px;max-width:none}.site-header .nav-right{justify-content:flex-end}.button,button{border-radius:0}.home-page .button{padding:13px 24px;letter-spacing:2px;text-transform:uppercase;font-size:9px}.photograph-hero{padding:0 18px}.hero-triptych{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.hero-triptych figure{margin:0;aspect-ratio:4/5;max-height:570px;overflow:hidden;background:#f6f5f2}.hero-triptych img{display:block;width:100%;height:100%;object-fit:cover}.hero-triptych figure:nth-child(2) img{object-position:50% 38%}.hero-controls{display:flex;align-items:center;justify-content:space-between;padding:5px 0 0}.hero-controls button{border:0;padding:6px 10px;background:transparent;color:#9c9b95;font:28px/1 Georgia,serif}.hero-controls span{font:8px/1.5 system-ui,sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#9b9991;text-align:center}.home-intro{text-align:center;padding:65px 20px 50px}.serif-note{font:italic 17px/1.5 'Didot',Georgia,serif;color:#8f8c83;margin:0 0 18px}.home-intro h1{font:400 clamp(32px,4vw,54px)/1.1 'Didot','Bodoni MT',Georgia,serif;text-transform:uppercase;letter-spacing:-.5px;margin:15px auto 24px;color:#77756e}.home-intro .eyebrow{font-size:8px;letter-spacing:3px;margin:0 0 26px}.home-intro .button{border-color:#bdbab2;color:#7b786f}.editorial-pair{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 60px}.editorial-pair figure{margin:0}.editorial-first{padding-top:0}.editorial-pair img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}.editorial-pair .editorial-first img{object-position:50% 45%}.monochrome{filter:grayscale(1)}.editorial-pair figcaption{font:italic 13px/1.5 Georgia,serif;color:#98948a;padding-top:13px}.editorial-second figcaption{text-align:right}.home-statement{text-align:center;padding:85px 24px 90px}.home-statement .eyebrow{font-size:8px}.home-statement h2{font:400 clamp(32px,4vw,50px)/1.13 'Didot',Georgia,serif;color:#7c796f;letter-spacing:-1px;margin:22px 0}.home-statement p{font-size:12px;line-height:1.9;margin:24px 0}.home-statement .text-link{font-size:10px;letter-spacing:1px}.home-portfolio{padding:55px 8% 80px;border-top:1px solid var(--line)}.home-portfolio .section-heading{text-align:center;display:block}.home-portfolio h2{font:400 34px/1.15 'Didot',Georgia,serif;margin:16px 0 40px}.home-portfolio .card-image{border-radius:0;aspect-ratio:3/4}.home-portfolio .card h3{font-size:21px}.portfolio-coming{text-align:center;font:italic 16px/1.8 Georgia,serif;margin:0;color:#9b978e}.demo-credits{text-align:center;max-width:800px;margin:0 auto;padding:0 25px 45px}.demo-credits p{font-size:10px;line-height:1.8;color:#a19d94}.demo-credits summary{cursor:pointer;font-size:9px;color:#99958c;letter-spacing:1px}.demo-credits details div{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;padding-top:12px;font-size:10px;text-decoration:underline}footer{padding:35px 6%;border-top:1px solid var(--line)}footer .signature{font:400 23px 'Didot',Georgia,serif}footer small{font-size:9px}
@media(max-width:750px){.site-header{padding:23px 20px;grid-template-columns:1fr 1fr;gap:20px;min-height:auto}.site-header .brand{grid-row:1;grid-column:1/-1;font-size:27px}.site-header .nav-left{grid-row:2;grid-column:1;justify-content:flex-start}.site-header .nav-right{grid-row:2;grid-column:2}.site-header nav{font-size:8px;gap:15px;letter-spacing:1.4px}.photograph-hero{padding:0 8px}.hero-triptych{gap:3px}.hero-triptych figure{aspect-ratio:3/5;max-height:none}.hero-controls span{font-size:7px;letter-spacing:.8px;max-width:240px}.home-intro{padding:43px 20px 38px}.home-intro h1{font-size:32px}.home-intro .eyebrow{font-size:7px;letter-spacing:2px}.serif-note{font-size:15px}.editorial-pair{padding:0 24px;gap:7px}.editorial-first{padding-top:0}.editorial-pair figcaption{font-size:10px}.home-statement{padding:55px 25px}.home-statement h2{font-size:34px}.home-portfolio{padding:40px 24px 50px}.home-portfolio h2{font-size:28px}.home-portfolio .grid{gap:14px}.home-portfolio .card h3{font-size:19px}.demo-credits{padding-bottom:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.instagram-invitation{display:flex;align-items:center;flex-direction:column;gap:15px;margin-top:45px}.instagram-invitation a{font:italic 18px/1.6 Georgia,serif;color:#827d72}.instagram-invitation a:hover,.footer-instagram:hover{text-decoration:underline;text-underline-offset:4px}.footer-instagram{font-size:10px;letter-spacing:1px}

/* Uniform preview frames: intrinsic image sizes never determine grid geometry. */
:root{--photo-ratio:4/5}
.hero-triptych,.editorial-pair,.grid,.photos{grid-template-columns:repeat(3,minmax(0,1fr))}
.editorial-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
.hero-triptych figure,.photo-frame,.card-image{position:relative;display:block;min-width:0;aspect-ratio:var(--photo-ratio);overflow:hidden}
.hero-triptych figure{max-height:none}
.hero-triptych img,.photo-frame img,.card-image img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;aspect-ratio:auto;object-fit:cover}
.home-portfolio .card-image{aspect-ratio:var(--photo-ratio)}
.album-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;column-count:auto}
.album-photos .photo{margin:0;min-width:0}
@media(max-width:750px){.grid,.photos,.album-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.album-photos{gap:12px}}

.gallery-downloads{padding-top:0;padding-bottom:20px}.gallery-downloads .form-actions{justify-content:center;margin-top:0}.gallery-downloads .status{text-align:center}.gallery-downloads [hidden]{display:none}.photo-select{position:absolute;top:10px;left:10px;z-index:2;margin:0;padding:7px 10px;background:#ffffffed;display:flex;gap:7px;align-items:center;cursor:pointer;color:var(--ink)}.photo-select input{width:18px;height:18px;accent-color:var(--accent)}.album-photos .is-selected .photo-frame{outline:3px solid var(--accent);outline-offset:-3px}

/* Full viewport photograph viewer, including mobile safe areas. */
#lightbox{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;background:#201e1c;border:0;overflow:hidden;outline:none}
#lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto}
#lightbox .lightbox-stage{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;width:100%;max-width:none;margin:0;padding:calc(52px + env(safe-area-inset-top,0px)) 12px 12px;overflow:hidden}
#lightbox .lightbox-stage img{position:static;display:block;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain}
#lightbox .lightbox-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:none;margin:0;padding:14px max(20px,env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));background:#201e1c;border-top:1px solid #ffffff20}
#lightbox #counter{white-space:nowrap;font-size:13px}
#lightbox #download{padding:12px 18px;font-size:12px;text-align:center}
#lightbox .close,#lightbox .prev,#lightbox .next{display:grid;place-items:center;width:44px;height:44px;line-height:1;padding:0;background:#201e1c99;border:0;color:white;border-radius:50%;z-index:2;-webkit-tap-highlight-color:transparent}
#lightbox .close{top:calc(8px + env(safe-area-inset-top,0px));right:calc(8px + env(safe-area-inset-right,0px));font-size:32px}
#lightbox .prev,#lightbox .next{top:50%;transform:translateY(-50%);font-size:34px}
#lightbox .prev{left:8px}#lightbox .next{right:8px}
#lightbox button:focus:not(:focus-visible){outline:none}
#lightbox [hidden]{display:none}
@media(min-width:751px){#lightbox .lightbox-stage{padding:56px 64px 16px}#lightbox .lightbox-footer{justify-content:center;gap:40px}}

.adobe-photo-list{max-height:260px;overflow:auto;text-align:left;padding:0 10px}.adobe-photo-list .check{overflow-wrap:anywhere}.source-guide [hidden]{display:none}
