:root{--bg:#f3eee4;--ink:#24221f;--muted:#8a8275;--rule:#d8d0c2;--serif:"Cormorant Garamond",Georgia,serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.grain{position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.edge,figcaption,nav,.site-footer{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.site-header{max-width:1200px;margin:0 auto;padding:4.5rem 2rem 3rem;text-align:center;border-bottom:1px solid var(--rule)}
h1{font-family:"Chelsea Market",cursive;font-weight:400;font-style:normal;font-size:clamp(2.4rem,6vw,4.2rem);letter-spacing:.01em;line-height:1.05;margin:.6rem 0 1.4rem}
nav{display:flex;gap:2rem;justify-content:center}
nav a:hover,.site-footer a:hover{color:var(--ink)}
.gallery{max-width:1200px;margin:0 auto;padding:3.5rem 2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem 2rem}
.frame button{display:block;width:100%;padding:0;border:0;background:#111;cursor:zoom-in}
.frame img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;transition:opacity .3s}
.frame button:hover img{opacity:.88}
.frame figcaption{display:flex;justify-content:space-between;margin-top:.55rem;color:#9a948a}
.about{max-width:640px;margin:0 auto;padding:3rem 2rem 5rem;text-align:center;border-top:1px solid var(--rule)}
.about h2{font-family:var(--mono);font-weight:400;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
.about p{font-size:1.9rem;font-style:italic}
.site-footer{max-width:1200px;margin:0 auto;padding:2rem;border-top:1px solid var(--rule);display:flex;gap:2rem;align-items:center}
.site-footer .edge{margin-left:auto}
.lightbox{position:fixed;inset:0;z-index:60;background:#14130f;display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox figure{max-width:90vw;text-align:center}
.lightbox img{max-width:90vw;max-height:84vh;display:block;margin:0 auto}
.lightbox figcaption{margin-top:.8rem}
.lightbox button{position:absolute;background:none;border:0;color:#eee;font-size:2.4rem;cursor:pointer;padding:1rem;line-height:1}
.lb-close{top:.5rem;right:1rem}.lb-prev{left:.5rem}.lb-next{right:.5rem}
@media(max-width:860px){.gallery{grid-template-columns:repeat(2,1fr);gap:2rem 1.25rem}}
@media(max-width:520px){.site-header{padding:3rem 1.25rem 2rem}.gallery{grid-template-columns:1fr;padding:2rem 1.25rem}.site-footer{flex-wrap:wrap;gap:1.25rem;padding:2rem 1.25rem}.about p{font-size:1.6rem}}
nav{flex-wrap:wrap;row-gap:.6rem}

/* Contact modal — matches site paper, mono links, Chelsea Market name */
.contact-modal{position:fixed;inset:0;z-index:70;background:rgba(36,34,31,.28);display:flex;align-items:center;justify-content:center;padding:1.25rem}
.contact-modal[hidden]{display:none}
.contact-dialog{position:relative;background:var(--bg);border:1px solid var(--rule);padding:2.5rem 2.25rem 2rem;max-width:20rem;width:100%;text-align:center}
.contact-close{position:absolute;top:.25rem;right:.4rem;background:none;border:0;color:var(--muted);font-family:var(--mono);font-size:1.5rem;line-height:1;cursor:pointer;padding:.5rem .6rem;letter-spacing:0}
.contact-close:hover{color:var(--ink)}
.contact-name{font-family:"Chelsea Market",cursive;font-weight:400;font-style:normal;font-size:1.5rem;letter-spacing:.01em;line-height:1.2;margin:0 0 .9rem;color:var(--ink)}
.contact-email-row{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap}
.contact-email{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:none;color:var(--muted)}
.contact-email:hover{color:var(--ink)}
.contact-copy{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;background:none;border:0;padding:.15rem;margin:0;color:var(--muted);cursor:pointer;line-height:1;vertical-align:middle}
.contact-copy:hover,.contact-copy:focus{color:var(--ink);outline:none}
.contact-copy svg{display:block;flex-shrink:0}
.contact-copy-check[hidden],.contact-copy-icon[hidden],.contact-copy-label[hidden]{display:none}
.contact-copy.is-copied .contact-copy-icon{display:none}
.contact-copy.is-copied .contact-copy-check{display:block}
.contact-copy-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.contact-copy.is-copied .contact-copy-label{display:inline}
@media(max-width:520px){.contact-dialog{padding:2rem 1.35rem 1.6rem;max-width:17rem}.contact-name{font-size:1.35rem}}
