@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Inter:wght@300;400;500;600&display=swap");:root{--bg:#0f0e0c;--bg-soft:#1a1916;--fg:#f4f1ea;--fg-muted:#a8a39a;--accent:#c9a96e;--border:hsla(42,31%,94%,.12);--font-serif:"Cormorant Garamond",Georgia,serif;--font-sans:"Inter",system-ui,sans-serif;--max-w:1400px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;transition:opacity .2s}a:hover{opacity:.7}img{max-width:100%;height:auto;display:block}.container{max-width:var(--max-w);margin:0 auto;padding:0 2rem}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(15,14,12,.8),transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.site-header .logo{font-family:var(--font-serif);font-size:1.25rem;font-style:italic;letter-spacing:.02em}.site-header nav{display:flex;gap:2rem}.site-header nav a{font-size:.85rem;text-transform:uppercase;letter-spacing:.15em;color:var(--fg-muted)}.site-header nav a:hover{color:var(--fg);opacity:1}@media (max-width:720px){.site-header nav{gap:1rem}.site-header nav a{font-size:.7rem}}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:4rem 2rem;overflow:hidden}.hero-bg{background-size:cover;background-position:50%;z-index:-1}.hero-bg,.hero-bg:after{position:absolute;inset:0}.hero-bg:after{content:"";background:linear-gradient(180deg,rgba(0,0,0,.3) 0,rgba(0,0,0,.6))}.hero-tag{font-size:.8rem;text-transform:uppercase;letter-spacing:.25em;color:var(--accent);margin-bottom:1.5rem}.hero h1{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.5rem,7vw,5.5rem);line-height:1.05;letter-spacing:-.02em;max-width:18ch;margin-bottom:2rem}.hero h1 em{font-style:italic;color:var(--accent)}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}.hero-caption{position:absolute;bottom:2rem;right:2rem;font-size:.75rem;letter-spacing:.2em;color:var(--fg-muted)}.btn,.hero-caption{text-transform:uppercase}.btn{display:inline-block;padding:.9rem 1.8rem;font-size:.8rem;letter-spacing:.15em;border:1px solid var(--fg);color:var(--fg);cursor:pointer;background:transparent;transition:all .2s}.btn:hover{background:var(--fg);color:var(--bg);opacity:1}.btn-accent{border-color:var(--accent);color:var(--accent)}.btn-accent:hover{background:var(--accent);color:var(--bg)}section{padding:6rem 0}.section-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.25em;color:var(--accent);margin-bottom:1rem}.section-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4vw,3.5rem);line-height:1.1;margin-bottom:3rem}.categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:0;gap:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.cat-item{padding:2rem;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.cat-item:last-child{border-right:none}.cat-num{font-style:italic;font-size:1rem;color:var(--accent)}.cat-name,.cat-num{font-family:var(--font-serif)}.cat-name{font-size:1.75rem;font-weight:500}.cat-count{font-size:.8rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.1em}.portfolio-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3rem}.portfolio-header a{font-size:.8rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:1.5rem;gap:1.5rem}.grid-item{position:relative;overflow:hidden;background:var(--bg-soft)}.grid-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.grid-item:hover img{transform:scale(1.04)}.grid-item .caption{position:absolute;bottom:0;left:0;right:0;padding:2rem 1.5rem 1.5rem;background:linear-gradient(0deg,rgba(0,0,0,.8),transparent);opacity:0;transition:opacity .3s}.grid-item:hover .caption{opacity:1}.grid-item .caption .loc{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin-bottom:.25rem}.grid-item .caption .ttl{font-family:var(--font-serif);font-size:1.25rem}.grid-item.span-7{grid-column:span 7;aspect-ratio:3/2}.grid-item.span-5{grid-column:span 5;aspect-ratio:3/4}.grid-item.span-4{grid-column:span 4;aspect-ratio:4/5}.grid-item.span-8{grid-column:span 8;aspect-ratio:16/9}.grid-item.span-6{grid-column:span 6;aspect-ratio:3/2}.grid-item.span-12{grid-column:span 12;aspect-ratio:21/9}@media (max-width:900px){.grid-item,.grid-item.span-12,.grid-item.span-4,.grid-item.span-5,.grid-item.span-6,.grid-item.span-7,.grid-item.span-8{grid-column:span 12;aspect-ratio:3/2}}.prints{background:var(--bg-soft);text-align:center;padding:8rem 2rem}.prints h2{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.2;margin-bottom:1.5rem}.prints p{color:var(--fg-muted);max-width:50ch;margin:0 auto 2.5rem}.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:2rem;gap:2rem}.blog-card{border-top:1px solid var(--border);padding-top:1.5rem}.blog-card .tags{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin-bottom:1rem}.blog-card h3{font-family:var(--font-serif);font-weight:400;font-size:1.5rem;line-height:1.2;margin-bottom:1rem}.blog-card .date{font-size:.8rem;color:var(--fg-muted)}.about{display:grid;grid-template-columns:1fr 1fr;grid-gap:4rem;gap:4rem;align-items:center}@media (max-width:800px){.about{grid-template-columns:1fr}}.contact{text-align:center;padding:8rem 2rem}.contact h2{font-family:var(--font-serif);font-size:clamp(2.5rem,5vw,4rem);font-weight:400;margin-bottom:1.5rem}.contact p{color:var(--fg-muted);max-width:50ch;margin:0 auto 2.5rem}.site-footer{border-top:1px solid var(--border);padding:3rem 2rem;display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--fg-muted)}.site-footer ul{display:flex;gap:1.5rem;list-style:none}@media (max-width:700px){.site-footer{flex-direction:column;gap:1rem}}.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.admin-side{background:var(--bg-soft);padding:2rem 1.5rem;border-right:1px solid var(--border)}.admin-side h2{font-family:var(--font-serif);font-size:1.4rem;margin-bottom:2rem}.admin-side ul{list-style:none;display:flex;flex-direction:column;gap:.5rem}.admin-side a{display:block;padding:.6rem .8rem;font-size:.9rem;border-radius:4px}.admin-side a:hover{background:hsla(0,0%,100%,.04);opacity:1}.admin-main{padding:3rem}.admin-main h1{font-family:var(--font-serif);font-weight:400;font-size:2.25rem;margin-bottom:2rem}@media (max-width:800px){.admin-shell{grid-template-columns:1fr}.admin-side{border-right:none;border-bottom:1px solid var(--border)}}.form{max-width:600px;display:flex;flex-direction:column;gap:1.25rem}.form label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted);margin-bottom:.5rem}.form input,.form select,.form textarea{width:100%;background:var(--bg-soft);border:1px solid var(--border);color:var(--fg);padding:.75rem 1rem;font-family:inherit;font-size:.95rem;border-radius:4px}.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent)}.form textarea{min-height:160px;resize:vertical}.form .row{display:flex;gap:1rem}.form .row>*{flex:1 1}.form .checkbox{display:flex;align-items:center;gap:.5rem}.form .checkbox input{width:auto}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--border);font-size:.9rem}.table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--fg-muted);font-weight:500}.table tr:hover td{background:hsla(0,0%,100%,.02)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem}.alert{padding:1rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.alert.error{background:rgba(220,80,80,.1);color:#ffb4b4;border:1px solid rgba(220,80,80,.3)}.alert.success{background:rgba(80,180,120,.1);color:#aaeec0;border:1px solid rgba(80,180,120,.3)}