:root{--bg:#faf9f7;--fg:#1d1d1b;--muted:#77736c;--line:#e4e1db}
@media (prefers-color-scheme:dark){:root{--bg:#121211;--fg:#eeece8;--muted:#9a968f;--line:#2a2927}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 Georgia,"Times New Roman",serif}
a{color:inherit}
header{display:flex;justify-content:space-between;align-items:baseline;padding:24px 5vw}
h1{margin:0;font-weight:400;letter-spacing:.2em;text-transform:lowercase;font-size:1.3rem}
nav a{margin-left:1.5rem;text-decoration:none;color:var(--muted);font:.85rem/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
nav a:hover{color:var(--fg)}
.hero{padding:8vh 5vw 4vh;color:var(--muted);font:.8rem system-ui,sans-serif;letter-spacing:.3em;text-transform:uppercase}
.hero p{margin:0}
.grid{columns:3 280px;column-gap:14px;padding:0 5vw}
.grid figure{margin:0 0 14px;break-inside:avoid;cursor:zoom-in;overflow:hidden}
.grid img{width:100%;display:block;transition:opacity .3s,transform .5s}
.grid figure:hover img{opacity:.88;transform:scale(1.02)}
#empty{padding:0 5vw;color:var(--muted)}
section[id=about],section[id=contact]{max-width:640px;margin:0 auto;padding:6vh 5vw 0}
h2{font-weight:400;letter-spacing:.15em;text-transform:uppercase;font-size:.9rem;color:var(--muted)}
footer{text-align:center;color:var(--muted);font:.8rem system-ui,sans-serif;padding:8vh 5vw 4vh}
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;z-index:10}
#lightbox[hidden]{display:none}
#lb-img{max-width:92vw;max-height:84vh}
#lb-cap{position:absolute;bottom:3vh;left:0;right:0;text-align:center;color:#ccc;margin:0;font:.9rem system-ui,sans-serif}
#lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:2.6rem;cursor:pointer;padding:.4em}
#close{top:1vh;right:2vw}#prev{left:1vw}#next{right:1vw}
