:root{--bg:#111210;--surface:#1a1b18;--text:#f0eee7;--muted:#aaa99f;--line:#383a32;--accent:#c2a87d;--font-body:'Satoshi',sans-serif;--font-display:'Boska',serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-xl:clamp(1.5rem,3vw,2.5rem);--text-2xl:clamp(2.6rem,5vw,4.5rem);--text-hero:clamp(3.6rem,7.5vw,7rem);--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s6:1.5rem;--s8:2rem;--s12:3rem;--s16:4rem;--s24:6rem;--gutter:clamp(1.5rem,5vw,5rem)}
[data-theme=light]{--bg:#eeece5;--surface:#e3dfd5;--text:#24261f;--muted:#63665c;--line:#c6c4ba;--accent:#7b6038}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:var(--text-base)/1.6 var(--font-body)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a,button{transition:color .2s,background .2s}a:hover{color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{border:0;background:none}img{display:block;width:100%;object-fit:cover}header{height:100px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:var(--s6)}.brand{display:flex;align-items:center;gap:var(--s3);font-size:var(--text-base);letter-spacing:.14em;line-height:1.15}.brand svg{width:47px;height:45px}.brand small{font-size:var(--text-xs);display:block;letter-spacing:.48em;margin-top:var(--s2)}nav{display:flex;gap:var(--s12);font-size:var(--text-sm)}nav a[aria-current=page]{color:var(--accent)}.header-actions{display:flex;align-items:center;gap:var(--s6)}#theme{font-size:var(--text-xl)}.book{border:1px solid var(--line);padding:var(--s3) var(--s6);font-size:var(--text-sm)}.book span{margin-left:var(--s6)}#menu{display:none}.hero{min-height:670px;height:calc(100svh - 100px);max-height:920px;position:relative;isolation:isolate;color:#f2efe8;display:flex;align-items:center;padding:var(--s16) var(--gutter)}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,12,10,.5),transparent 80%),linear-gradient(0deg,rgba(9,12,10,.8),transparent 35%),url('assets/hero.webp') center/cover}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:var(--text-xs);font-weight:500;display:block;margin-bottom:var(--s6)}.eyebrow:before{content:"";display:inline-block;width:28px;height:1px;background:var(--accent);margin-right:var(--s3);vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.04}h1{font-size:var(--text-hero);letter-spacing:-.035em}h1 em,h2 em{font-weight:400;color:#d8c4a4}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}.hero p{max-width:355px;color:#d6d7d0;margin:var(--s6) 0 var(--s8);font-size:var(--text-sm)}.hero-actions{display:flex;gap:var(--s8);align-items:center}.button{background:var(--text);color:var(--bg);padding:var(--s4) var(--s6);display:inline-flex;align-items:center;justify-content:center;gap:var(--s8);font-size:var(--text-sm)}.hero .button{background:#edeae1;color:#171b17}.button:hover{background:var(--accent);color:var(--bg)}.text-link{font-size:var(--text-sm);padding-bottom:var(--s2);border-bottom:1px solid var(--line)}.hero .text-link{border-color:#888a7e}.hero-bottom{position:absolute;bottom:var(--s8);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;text-transform:uppercase;font-size:var(--text-xs);letter-spacing:.18em}.hero-bottom span:last-child{letter-spacing:.08em}.intro{padding:var(--s24) var(--gutter);display:grid;grid-template-columns:1fr 1.7fr;gap:var(--s16);border-bottom:1px solid var(--line)}.intro h2{font-size:clamp(2rem,4vw,3.5rem);max-width:820px}.intro p{margin-top:var(--s6);color:var(--muted);max-width:560px}.section{padding:var(--s24) var(--gutter)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:var(--s8);margin-bottom:var(--s12)}.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--s8)}.card{display:block;text-align:left;padding:0;width:100%}.card .image{overflow:hidden;position:relative}.card img{height:430px;transition:transform .65s}.card:hover img{transform:scale(1.025)}.card:nth-child(2) img{height:430px}.card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:var(--s6)}.card .meta p{color:var(--muted);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;margin-top:var(--s2)}.arrow{font-size:var(--text-xl)}.note{font-size:var(--text-xs);color:var(--muted);margin-top:var(--s8)}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s12);margin-top:var(--s12)}.service{border-top:1px solid var(--line);padding-top:var(--s6)}.service small{color:var(--accent)}.service h3{margin:var(--s6) 0 var(--s4)}.service p{color:var(--muted)}.cta{text-align:center;padding:var(--s24) var(--gutter);background:var(--surface)}.cta h2{margin-bottom:var(--s8)}footer{padding:var(--s16) var(--gutter) var(--s8)}.footer-brand{letter-spacing:.16em}footer p{color:var(--muted);margin:var(--s3) 0 var(--s8);font-size:var(--text-sm)}footer>div{display:flex;gap:var(--s8)}footer>small{display:flex;justify-content:space-between;gap:var(--s6);border-top:1px solid var(--line);margin-top:var(--s12);padding-top:var(--s6);color:var(--muted);font-size:var(--text-xs)}.page-head{padding:var(--s24) var(--gutter) var(--s12)}.page-head h1{font-size:var(--text-2xl)}.page-head p{color:var(--muted);max-width:600px;margin-top:var(--s6)}.filters{display:flex;gap:var(--s3);margin-bottom:var(--s8);flex-wrap:wrap}.filters button{padding:var(--s3) var(--s6);border:1px solid var(--line);font-size:var(--text-sm)}.filters button.active{background:var(--text);color:var(--bg)}.work-section{padding-top:var(--s6)}.film{position:relative;min-height:470px;display:flex;align-items:end;padding:var(--s12);color:#fff;background:linear-gradient(0deg,#000c,transparent),url('assets/hero.webp') center/cover}.film p{margin-top:var(--s4)}.film-label{position:absolute;top:var(--s8);left:var(--s8);padding:var(--s2) var(--s4);background:#101410b8;font-size:var(--text-xs);letter-spacing:.1em}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--s16)}.about-layout img{height:580px}.about-layout p{color:var(--muted);margin:var(--s6) 0}.about-layout h2{margin-top:var(--s8)}.form-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--s24)}.form-layout aside p{color:var(--muted);margin:var(--s6) 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}label{display:flex;flex-direction:column;gap:var(--s2);font-size:var(--text-sm)}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:var(--s4);border-radius:0;min-width:0}textarea{min-height:130px;resize:vertical}.full{grid-column:1/-1}form .button{margin-top:var(--s8)}#result{margin-top:var(--s6);padding:var(--s6);border:1px solid var(--accent)}#result p{margin:var(--s4) 0}dialog{background:var(--bg);color:var(--text);border:1px solid var(--line);padding:var(--s6);max-width:90vw;max-height:90svh}dialog::backdrop{background:#000d}dialog img{max-height:70svh;object-fit:contain}dialog p{margin-top:var(--s4);font-size:var(--text-sm)}.close{display:block;margin-left:auto;font-size:var(--text-xl);min-width:44px;min-height:44px}.skip{position:fixed;top:-100px;z-index:99;background:var(--bg);padding:var(--s4)}.skip:focus{top:0}
@media(min-width:1600px){.hero{min-height:800px}.hero h1{max-width:780px}}
@media(max-width:760px){header{height:84px}.brand{font-size:var(--text-xs)}.brand svg{width:37px}.brand small{font-size:var(--text-xs);letter-spacing:.3em}.header-actions{gap:var(--s3)}.header-actions .book{display:none}#menu{display:block;font-size:var(--text-xl)}nav{display:none;position:absolute;top:84px;left:0;right:0;padding:var(--s8);background:var(--bg);z-index:5;flex-direction:column;gap:var(--s6)}nav.open{display:flex}.hero{height:calc(100svh - 84px);min-height:650px;align-items:center}.hero:before{background-position:62% center}.hero h1{font-size:clamp(3.6rem,12vw,5rem)}.hero p{max-width:280px}.hero-bottom{font-size:var(--text-xs);gap:var(--s6)}.hero-bottom span:last-child{display:none}.intro,.about-layout,.form-layout{grid-template-columns:1fr;gap:var(--s8)}.intro,.section,.cta,.page-head{padding:var(--s16) var(--gutter)}.section-head{align-items:start;flex-direction:column;gap:var(--s6)}.grid,.services{grid-template-columns:1fr;gap:var(--s12)}.card img,.card:nth-child(2) img{height:350px}.services{gap:var(--s8)}footer>small{flex-direction:column}.form-grid{grid-template-columns:1fr}.film{min-height:430px;padding:var(--s6)}.about-layout img{height:420px}.hero-actions{gap:var(--s6)}.hero .button{gap:var(--s4)}.work-section{padding-top:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before{transition:none!important}}
.skip:not(:focus-visible){transform:translateY(-200vh)}.button{white-space:nowrap}
.button,.book,.filters button{border-radius:999px}
.private-gallery{min-height:65vh}.private-gallery h1{font-size:var(--text-2xl)}.gallery-account{color:var(--muted);margin-top:var(--s4);overflow-wrap:anywhere}.client-album-item{border:1px solid var(--line);padding:var(--s8);margin-top:var(--s8);background:var(--surface)}.client-album-item p{color:var(--muted);margin:var(--s6) 0}.private-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6);margin-top:var(--s8)}.private-photo{text-align:left;padding:0;background:var(--surface);min-height:240px;overflow:hidden}.private-photo img{height:320px}.private-photo span{display:block;padding:var(--s4);font-size:var(--text-sm)}.private-gallery #back-albums{margin-bottom:var(--s8)}button:disabled{cursor:wait;opacity:.65}.photo-error{padding:var(--s6);color:var(--muted)}@media(max-width:760px){.private-photo-grid{grid-template-columns:1fr}.client-album-item{padding:var(--s6)}}
#theme,#menu,.close{border-radius:50%}
.studio-admin{min-height:70vh}.studio-admin h1{font-size:var(--text-2xl)}.admin-toolbar{display:flex;align-items:end;justify-content:space-between;gap:var(--s6)}.admin-toolbar label{width:min(100%,480px)}.admin-toolbar input,.admin-editor input,.admin-editor textarea,.admin-photo-tools input{border-radius:var(--s2)}.admin-summary{display:flex;gap:var(--s8);border-block:1px solid var(--line);padding:var(--s6) 0;margin:var(--s8) 0;color:var(--muted);font-size:var(--text-sm)}.admin-album-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}.admin-album-card{border:1px solid var(--line);background:var(--surface);padding:var(--s8)}.admin-album-card h2{font-size:var(--text-xl);overflow-wrap:anywhere}.album-card-top{display:flex;justify-content:space-between;gap:var(--s4)}.photo-count{font-size:var(--text-xs);white-space:nowrap;color:var(--muted)}.album-recipient{overflow-wrap:anywhere;color:var(--muted);margin:var(--s4) 0 var(--s8);font-size:var(--text-sm)}.admin-card-actions{display:flex;align-items:center;gap:var(--s6);flex-wrap:wrap}.admin-editor{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--s16);margin-top:var(--s12)}.admin-editor h2{font-size:var(--text-xl)}.admin-editor label{margin-top:var(--s6)}.upload-panel{padding:var(--s8);border:1px solid var(--line);background:var(--surface);align-self:start}.upload-panel>p{color:var(--muted);margin-top:var(--s4)}.file-picker{padding:var(--s6);border:1px dashed var(--muted);border-radius:var(--s2);font-size:var(--text-sm)}.file-picker input{padding:0;border:0;font-size:var(--text-xs);margin-top:var(--s4)}.upload-panel .button{margin-top:var(--s6)}.admin-status{margin-top:var(--s4);font-size:var(--text-sm);color:var(--accent);overflow-wrap:anywhere}.upload-results{padding-left:var(--s6);font-size:var(--text-xs);color:var(--muted);overflow-wrap:anywhere}.upload-results li{margin-bottom:var(--s2)}.admin-confirm{padding:var(--s6);border:1px solid var(--accent);margin-top:var(--s6);font-size:var(--text-sm)}.admin-confirm[hidden]{display:none}.admin-confirm>div{display:flex;align-items:center;gap:var(--s6);flex-wrap:wrap;margin-top:var(--s4)}.admin-confirm .button{margin-top:var(--s4);white-space:normal}.photo-section-head{margin-top:var(--s16)}.photo-section-head h2{font-size:var(--text-xl)}.admin-photo-card{border:1px solid var(--line);min-width:0}.admin-image{height:250px;background:var(--surface);display:flex;align-items:center;justify-content:center}.admin-image img{height:100%;width:100%;object-fit:cover}.admin-image p{color:var(--muted)}.admin-photo-tools{padding:var(--s4)}.admin-photo-tools>div:not(.admin-confirm){display:flex;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s4)}.danger{color:#dca591}.admin-photo-tools .text-link{font-size:var(--text-xs)}[data-theme=light] .danger{color:#8c3220}@media(max-width:760px){.admin-toolbar{align-items:stretch;flex-direction:column}.admin-toolbar label{width:100%}.admin-summary{flex-wrap:wrap;gap:var(--s4)}.admin-album-list,.admin-editor{grid-template-columns:1fr}.admin-editor{gap:var(--s8)}.admin-album-card,.upload-panel{padding:var(--s6)}}
.album-page{display:grid;grid-template-columns:1fr 1fr;min-height:790px}
.album-art{position:relative;display:flex;flex-direction:column;justify-content:center;padding:var(--s16) var(--gutter);color:#f0eee7;background:linear-gradient(0deg,#101210da,#10121045),url('assets/hero.webp') 72% center/cover}
.album-art h2{font-size:var(--text-2xl);line-height:1.12}.album-art p{max-width:330px;margin-top:var(--s6);color:#d4d2c9}.album-art small{position:absolute;bottom:var(--s8);font-size:var(--text-xs);letter-spacing:.16em}
.album-access{padding:var(--s12) var(--gutter) var(--s16)}.album-back{color:var(--muted)}.album-login{max-width:440px;margin:var(--s12) auto 0}.album-login h1{font-size:var(--text-2xl)}.album-description{color:var(--muted);margin:var(--s6) 0 var(--s8)}.album-login label{margin:var(--s6) 0 var(--s2)}.album-login input{border-radius:var(--s2)}.password-field{position:relative}.password-field input{padding-right:6rem}.password-field button{position:absolute;right:var(--s3);top:50%;transform:translateY(-50%);min-height:44px;font-size:var(--text-xs);color:var(--accent)}.album-help{text-align:right;margin-top:var(--s4)}.album-submit{width:100%;justify-content:space-between}.album-contact{margin-top:var(--s8);font-size:var(--text-sm);color:var(--muted)}.album-contact a{color:var(--text)}#album-feedback{padding:var(--s4);margin-top:var(--s6);border:1px solid var(--line);border-radius:var(--s2);font-size:var(--text-sm);color:var(--accent)}.album-login .note{border-top:1px solid var(--line);padding-top:var(--s6)}
@media(min-width:761px) and (max-width:1100px){nav{gap:var(--s6)}header{gap:var(--s4)}.header-actions{gap:var(--s3)}.book{padding:var(--s3) var(--s4)}.book span{margin-left:var(--s3)}}
@media(max-width:760px){.album-page{grid-template-columns:1fr}.album-art{min-height:330px;padding:var(--s12) var(--gutter) var(--s16)}.album-art h2{font-size:var(--text-xl)}.album-art p{font-size:var(--text-sm);max-width:260px}.album-art small{bottom:var(--s6)}.album-access{padding:var(--s8) var(--gutter) var(--s12)}.album-login{margin-top:var(--s8)}}
@media(max-width:760px){.hero-actions{flex-wrap:wrap}.hero:before{background-position:72% center}.hero h1{font-size:clamp(3.3rem,12vw,5rem)}}
