:root{
  --font-display:'Instrument Serif',Georgia,serif;
  --display-weight:400; --display-track:-.01em; --display-case:none;
  --font-body:'Switzer','Helvetica Neue',sans-serif;
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-hero:clamp(3rem,.5rem + 7vw,8rem);
  --space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;
  --gutter:clamp(var(--space-4),4vw,var(--space-12));
  --ease:cubic-bezier(.16,1,.3,1);
}
[data-theme="dark"]{--bg:#0b0b0b;--text:#f2f0ec;--muted:#8d8a85;--line:#2a2927}
[data-theme="light"]{--bg:#ffffff;--text:#111111;--muted:#6f6c66;--line:#e2e0dc}
:root{--accent:#ff1a1a;--cols:1;--gap:96px;--maxw:1600px;--frame:0px}

[data-font="instrument"]{--font-display:'Instrument Serif',Georgia,serif}
[data-font="cormorant"]{--font-display:'Cormorant Garamond',Georgia,serif;--display-weight:500}
[data-font="boska"]{--font-display:'Boska',Georgia,serif;--display-weight:400}
[data-font="clash"]{--font-display:'Clash Display',sans-serif;--display-weight:500;--display-track:-.02em}
[data-font="cabinet"]{--font-display:'Cabinet Grotesk',sans-serif;--display-weight:700;--display-track:-.03em}
[data-font="mono"]{--font-display:'JetBrains Mono',monospace;--display-weight:500;--display-track:-.04em;--display-case:uppercase}

*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .4s,color .4s}
img,video{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.lb-close:focus:not(:focus-visible){outline:none}
:focus-visible{outline:2px solid var(--text);outline-offset:3px}

.header{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--gutter);color:#fff}
.header .wordmark{color:var(--accent)}
.header{text-shadow:0 1px 12px rgba(0,0,0,.45)}
.wordmark,h1,h2,.contact-link{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-track);text-transform:var(--display-case)}
.wordmark{font-size:var(--text-xl);line-height:1}
.header nav{display:flex;gap:clamp(var(--space-4),2vw,var(--space-8));font-size:var(--text-sm)}
.header nav a{opacity:.85;transition:opacity .2s}
.header nav a:hover{opacity:1}

.hero{position:relative;height:100svh;min-height:520px;overflow:hidden;background:#000}
.hero-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(transparent,rgba(0,0,0,.45));pointer-events:none}
.hero-text{position:absolute;z-index:1;left:var(--gutter);bottom:var(--space-12);color:#f4f2ee}
.hero h1{font-size:var(--text-hero);line-height:.95}
.hero h1 em{font-style:italic}
.hero,.hero-video,.hero-text{transition:background .4s,top .4s,left .4s,width .4s,height .4s,border-width .4s,bottom .4s}

.section{padding:clamp(var(--space-12),8vw,var(--space-24)) var(--gutter)}
h2{font-size:var(--text-2xl);line-height:1}

.gallery{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:min(var(--gap),8vw);max-width:var(--maxw);margin-inline:auto;align-items:start;min-height:50vh}
.gallery:not([aria-busy]){min-height:0}
[data-lb].is-video{position:relative}
[data-lb].is-video::after{content:"";position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(0,0,0,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6v12l10-6z' fill='white'/%3E%3C/svg%3E") center/28px no-repeat}
.mail-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}
.mail-wrap[hidden],.contact-link[hidden],#hero-title[hidden]{display:none}
.mail-pop{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--muted)}
.mail-pop[hidden]{display:none}
.mail-pop span{user-select:all;color:var(--text)}
.mail-pop button{padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:999px;font-size:var(--text-xs);color:var(--text)}
.mail-pop button:hover{border-color:var(--text)}
[data-lb]{display:block;width:100%;cursor:zoom-in;background:#000;border:var(--frame) solid #000;transition:border-width .3s}
[data-lb] img{transition:opacity .3s}
[data-lb]:hover img{opacity:.92}

.contact{border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}
.contact h2{margin-bottom:var(--space-4)}
.contact-link{font-size:var(--text-xl);line-height:1.2;border-bottom:1px solid var(--line);transition:border-color .3s;word-break:break-word}
.contact-link:hover{border-color:var(--text)}
.footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-6) var(--gutter);font-size:var(--text-xs);color:var(--muted);border-top:1px solid var(--line)}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:var(--bg);color:var(--text);display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr auto;align-items:center;opacity:0;transition:opacity .3s}
.lightbox[hidden]{display:none}
.lightbox.is-open{opacity:1}
.lb-stage{grid-column:2;grid-row:1;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-12) 0 var(--space-4);min-width:0}
.lb-stage img{max-width:100%;max-height:calc(100svh - 7rem);width:auto;height:auto;object-fit:contain;border:var(--frame) solid #000}
.lightbox button{color:inherit;opacity:.7;transition:opacity .2s;font-size:1.5rem;padding:var(--space-4)}
.lightbox button:hover{opacity:1}
.lb-prev,.lb-next{padding:var(--space-8) var(--space-4)}
.lb-close{position:absolute;top:var(--space-2);right:var(--space-2);z-index:2}
.lb-bar{grid-column:1/-1;display:flex;justify-content:flex-end;padding:var(--space-4) var(--gutter);font-size:var(--text-xs);opacity:.75}

@media (max-width:700px){
  .gallery{grid-template-columns:1fr}
  .hero-text,  .hero h1{font-size:clamp(2.25rem,10vw,3rem)}
    .lightbox{grid-template-columns:1fr}
  .lb-stage{grid-column:1}
  .lb-prev,.lb-next{position:absolute;bottom:0;padding:var(--space-4);z-index:2}
  .lb-prev{left:var(--space-12)}.lb-next{right:var(--space-12)}
  .lb-bar{justify-content:center;padding-bottom:var(--space-6)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.editor-login{display:flex;align-items:center;gap:6px;position:relative}
.editor-login input{width:110px;padding:5px 9px;font:inherit;font-size:var(--text-xs);color:var(--text);background:transparent;border:1px solid var(--line);border-radius:999px;outline:none;transition:border-color .2s,width .25s}
.editor-login input::placeholder{color:var(--muted)}
.editor-login input:focus{border-color:var(--muted);width:150px}
.editor-login button{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:12px;cursor:pointer;transition:color .2s,border-color .2s}
.editor-login button:hover{color:var(--text);border-color:var(--muted)}
.editor-msg{position:absolute;top:100%;left:0;margin-top:4px;white-space:nowrap;color:var(--accent);font-size:11px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
