@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Italiana&display=swap');
[hidden] { display:none !important; }
body.modal-open { overflow:hidden; }
:root { --paper:#f2efe8; --ink:#24231f; --line:rgba(36,35,31,.18); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; font-weight:300; } a { color:inherit; text-decoration:none; } button { color:inherit; font:inherit; }
.site-header { height:92px; display:flex; align-items:center; justify-content:space-between; padding:0 4vw; border-bottom:1px solid var(--line); }
.wordmark { font-family:'Italiana',serif; font-size:2.15rem; letter-spacing:-.04em; }.wordmark span { color:#ad6048; }
.gallery-logout { margin:0; }.gallery-logout button { border:0; border-bottom:1px solid transparent; padding:.6rem 0; background:none; font:inherit; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }.gallery-logout button:hover { border-color:var(--ink); }
.gallery-login-page { min-height:100vh; display:grid; place-items:center; padding:1rem; background:linear-gradient(135deg,#f2efe8 0%,#e5e1d7 100%); }.gallery-login-card { width:min(520px,100%); padding:clamp(1.75rem,6vw,4rem); overflow:hidden; border:1px solid var(--line); background:rgba(255,255,255,.58); }.gallery-login-card .wordmark { display:block; margin-bottom:4rem; }.gallery-login-card h1 { max-width:100%; font-size:clamp(2.5rem,10vw,4.25rem); line-height:1; overflow-wrap:break-word; }.login-intro { margin:1.5rem 0 2rem; color:#67645e; line-height:1.7; }.gallery-login-form label { display:block; margin-bottom:.6rem; font-size:.7rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; }.gallery-login-form input { width:100%; padding:1rem; border:1px solid var(--line); background:white; color:var(--ink); font:inherit; }.gallery-login-form input:focus { outline:2px solid rgba(169,94,71,.3); border-color:#a95e47; }.gallery-login-form button,.login-admin-link { display:inline-block; max-width:100%; margin-top:1rem; border:0; background:var(--ink); color:var(--paper); padding:1rem 1.4rem; font:500 .75rem 'DM Sans',sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; white-space:normal; }.login-error { padding:.8rem 1rem; border-left:3px solid #a54c3c; background:#f4ded9; color:#7d3025; }
.hero { min-height:calc(100vh - 92px); padding:12vh 8vw 8vh; display:flex; flex-direction:column; justify-content:center; }
.eyebrow { margin:0 0 1.6rem; color:#68705e; font-size:.7rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; }
h1,h2 { font-family:'Italiana',serif; font-weight:400; margin:0; letter-spacing:-.035em; } h1 { max-width:1000px; font-size:clamp(4rem,9vw,9rem); line-height:.92; } em { color:#a95e47; font-weight:400; }
.intro { width:min(420px,70vw); margin:3rem 0 0 auto; font-size:1.05rem; line-height:1.75; }.scroll-link { margin-top:4rem; font-size:.75rem; text-transform:uppercase; letter-spacing:.13em; display:flex; width:max-content; gap:1.4rem; border-bottom:1px solid; padding-bottom:.5rem; }
.works { min-height:calc(100vh - 92px); background:#e5e1d7; padding:5rem 4vw 9rem; }.section-heading { display:flex; justify-content:space-between; align-items:end; margin:0 4vw 5rem; } h2 { font-size:clamp(3.5rem,7vw,7rem); line-height:1; }
.filters { display:flex; gap:.4rem; }.filters button { border:1px solid var(--line); background:transparent; border-radius:99px; padding:.65rem 1.15rem; font-size:.75rem; cursor:pointer; }.filters button.active,.filters button:hover { background:var(--ink); color:var(--paper); }
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(3rem,5vw,5.5rem) clamp(1.25rem,2.5vw,2.75rem); align-items:start; }.work { min-width:0; text-align:left; border:0; padding:0; background:none; cursor:zoom-in; }
.art { display:grid; place-items:center; width:100%; aspect-ratio:4/5; overflow:hidden; background:#d9d5ca; position:relative; padding:clamp(.35rem,.75vw,.7rem); }.art img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; mix-blend-mode:multiply; transform:none !important; transition:opacity .25s ease; }.work:hover .art img { transform:none !important; opacity:.82; }
.placeholder-note { position:absolute; right:.7rem; bottom:.7rem; background:rgba(242,239,232,.8); padding:.25rem .45rem; font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; }.work-meta { margin-top:1rem; display:flex; justify-content:space-between; gap:1rem; font-size:.78rem; }.work-meta strong { font-weight:500; display:block; }.work-meta small { display:block; color:#6e6b64; margin-top:.3rem; }
.about { min-height:85vh; display:grid; grid-template-columns:1fr 1.1fr; gap:10vw; align-items:center; padding:10rem 8vw; }.portrait-crop { aspect-ratio:4/5; overflow:hidden; }.portrait-crop img { width:100%; height:100%; object-fit:cover; object-position:18% 70%; transform:scale(1.35); filter:saturate(.7); }
.about-copy h2 { font-size:clamp(3rem,5vw,5.5rem); margin-bottom:3rem; }.about-copy>p:not(.eyebrow) { max-width:530px; font-size:1.05rem; line-height:1.8; }.about-copy .muted { color:#77736b; font-size:.82rem !important; border-left:1px solid #a95e47; padding-left:1rem; margin-top:2rem; }
footer { background:#24231f; color:#eeeae1; padding:8rem 8vw 3rem; } footer .eyebrow { color:#a9ae9d; } footer h2 { font-size:clamp(3rem,6vw,6.5rem); }.mail { display:flex; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.35); padding:1.3rem 0; margin:5rem 0 8rem; font-size:clamp(1rem,2vw,1.5rem); }.footer-bottom { display:flex; justify-content:space-between; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.lightbox { position:fixed; inset:0; z-index:10; background:rgba(26,25,22,.96); padding:5vh 5vw; display:grid; place-items:center; }.close { position:absolute; top:2rem; right:2rem; border:0; color:white; background:transparent; font-size:2.5rem; cursor:pointer; }.lightbox-inner { max-width:1200px; width:100%; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:3rem; align-items:end; color:white; }.lightbox-inner img { display:block; width:100%; height:80vh; object-fit:contain; }.lightbox-inner h3 { font-family:'Italiana',serif; font-size:2.4rem; font-weight:400; margin:0 0 .5rem; }.lightbox-inner p,.lightbox-inner small { color:#bdb9af; line-height:1.5; }
@media (max-width:760px) { .site-header { height:72px; }.works { min-height:calc(100vh - 72px); padding:4rem 5vw 6rem; }.section-heading { margin:0 0 3rem; display:block; }.filters { margin-top:2rem; flex-wrap:wrap; }.gallery { grid-template-columns:1fr 1fr; gap:3rem 1rem; }.lightbox-inner { grid-template-columns:1fr; gap:1.5rem; }.lightbox-inner img { height:62vh; }.close { top:.8rem; right:1rem; } }
@media (max-width:420px) { .gallery { grid-template-columns:1fr; }.art { aspect-ratio:5/6; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
