:root{--ink:#0c0b0a;--ink2:#161412;--paper:#f2ebe0;--mute:#a79f93;--gold:#d9a441;--rose:#c8553d;--serif:'Fraunces','Cormorant Garamond',Georgia,serif;--sans:'Inter','Helvetica Neue',Arial,sans-serif;--pad:clamp(20px,5vw,72px)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--paper);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1;letter-spacing:-.02em}
h1 em,h2 em{font-style:italic;color:var(--gold)}
.eyebrow{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem}
header{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:20px var(--pad);mix-blend-mode:difference;color:#fff}
.brand{font:italic 300 1.7rem var(--serif)}.brand b{font:600 .7rem var(--sans);letter-spacing:.3em;margin-left:.6rem;font-style:normal}
nav{display:flex;gap:2rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}
nav a{position:relative}nav a:after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:0;background:currentColor;transition:.3s}nav a:hover:after,nav a[aria-current]:after{width:100%}
.burger{display:none;background:none;border:0;color:inherit;font:inherit;letter-spacing:.2em;font-size:.72rem;cursor:pointer}
@media(max-width:820px){.burger{display:block}nav{position:fixed;inset:0;background:var(--ink);flex-direction:column;justify-content:center;align-items:center;font-size:1rem;display:none;mix-blend-mode:normal}nav.open{display:flex}header{mix-blend-mode:normal}.burger{position:relative;z-index:30}}
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;display:grid;align-items:end;padding:0 var(--pad) 9vh}
.slide{position:absolute;inset:0;background:center/cover;opacity:0;transform:scale(1.08);transition:opacity 1.6s,transform 9s linear}
.slide.on{opacity:1;transform:scale(1)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,11,10,.45),transparent 35%,rgba(12,11,10,.92))}
.hero-in{position:relative;z-index:2}
.hero h1{font-size:clamp(3.2rem,12vw,11rem);max-width:12ch}
.hero p.sub{margin:1.6rem 0 2rem;max-width:34rem;color:#ddd3c4;font-size:1.05rem}
.btn{display:inline-block;border:1px solid var(--paper);padding:.95rem 2rem;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;transition:.3s}
.btn:hover{background:var(--paper);color:var(--ink)}.btn.fill{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn.fill:hover{background:var(--paper)}
.scroll{position:absolute;right:var(--pad);bottom:9vh;z-index:2;writing-mode:vertical-rl;font-size:.65rem;letter-spacing:.3em;color:var(--mute)}
section{padding:clamp(70px,11vw,150px) var(--pad)}
.head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3.5rem}
.head h2{font-size:clamp(2.4rem,7vw,6rem)}.head p{max-width:26rem;color:var(--mute)}
.cats{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.cat{position:relative;aspect-ratio:3/4.4;overflow:hidden;background:var(--ink2)}
.cat:nth-child(even){margin-top:3rem}.cat img{width:100%;height:100%;object-fit:cover;transition:transform 1s,filter .6s;filter:grayscale(.55) brightness(.8)}
.cat:hover img{transform:scale(1.07);filter:none}
.cat span{position:absolute;left:14px;bottom:14px;font:italic 300 1.5rem var(--serif);text-shadow:0 2px 12px #000}
@media(max-width:900px){.cats{grid-template-columns:repeat(2,1fr)}.cat:nth-child(even){margin-top:0}}
.studio{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);align-items:center;background:var(--paper);color:var(--ink)}
.studio h2{font-size:clamp(2.8rem,8vw,7rem)}.studio p{margin:1.5rem 0 2rem;max-width:30rem;color:#4a443c}.studio .btn{border-color:var(--ink)}.studio .btn:hover{background:var(--ink);color:var(--paper)}
.studio .eyebrow{color:var(--rose)}.pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pair img{aspect-ratio:3/4;object-fit:cover;width:100%}.pair img:last-child{margin-top:4rem}
@media(max-width:820px){.studio{grid-template-columns:1fr}}
.about{display:grid;grid-template-columns:5fr 6fr;gap:var(--pad);align-items:center}
.about img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(.3)}
.about h2{font-size:clamp(2.4rem,6vw,5rem);margin-bottom:1.5rem}.about p{color:#cfc6b8;max-width:34rem}
@media(max-width:820px){.about{grid-template-columns:1fr}}
.contact{background:var(--ink2);display:grid;grid-template-columns:5fr 6fr;gap:var(--pad)}
.contact h2{font-size:clamp(3rem,9vw,8rem);margin-bottom:1.5rem}.contact .mail{font:italic 300 1.5rem var(--serif);color:var(--gold);border-bottom:1px solid;word-break:break-all}
@media(max-width:820px){.contact{grid-template-columns:1fr}}
form{display:grid;gap:1.4rem}.row{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}@media(max-width:560px){.row{grid-template-columns:1fr}}
label{display:grid;gap:.4rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
input,select,textarea{background:transparent;border:0;border-bottom:1px solid #4a443c;color:var(--paper);font:400 1rem var(--sans);padding:.7rem 0;outline:0;border-radius:0;transition:border-color .3s}
input:focus,select:focus,textarea:focus{border-color:var(--gold)}select option{background:var(--ink);color:var(--paper)}
.check{display:flex;gap:.7rem;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:.85rem}.check input{margin-top:.3rem;accent-color:var(--gold)}
.hp{position:absolute;left:-9999px}small.note{color:var(--mute);font-size:.75rem}button.btn{background:none;color:var(--paper);cursor:pointer;justify-self:start}
footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:2rem var(--pad);border-top:1px solid #2a2622;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.page-top{padding-top:clamp(130px,18vw,220px);padding-bottom:2rem}.page-top h1{font-size:clamp(3.5rem,13vw,12rem)}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;padding:0 var(--pad) 2.5rem}
.filters button{background:none;border:1px solid #3a352f;color:var(--mute);padding:.6rem 1.3rem;font:inherit;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:.3s}
.filters button:hover,.filters button.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.masonry{columns:4 260px;column-gap:14px;padding:0 var(--pad) 90px}
.masonry figure{break-inside:avoid;margin-bottom:14px;overflow:hidden;background:var(--ink2);cursor:zoom-in;animation:in .6s both}
.masonry figure.hide{display:none}.masonry img{width:100%;height:auto;transition:transform .8s,filter .5s;filter:brightness(.88)}
.masonry figure:hover img{transform:scale(1.04);filter:none}@keyframes in{from{opacity:0;transform:translateY(20px)}}
#lb{position:fixed;inset:0;z-index:50;background:rgba(8,7,6,.97);display:none;place-items:center}#lb.on{display:grid}
#lb img{max-height:90vh;max-width:90vw;object-fit:contain}
#lb button{position:absolute;background:none;border:0;color:var(--paper);font-size:2.4rem;cursor:pointer;padding:1rem}
#lb .x{top:10px;right:20px}#lb .p{left:10px}#lb .n{right:10px}#lb span{position:absolute;bottom:20px;font-size:.7rem;letter-spacing:.3em;color:var(--mute)}
.space{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);align-items:center;padding:clamp(40px,7vw,90px) var(--pad)}
.space:nth-child(even) .si{order:2}.si img{width:100%;aspect-ratio:4/5;object-fit:cover}
.space h2{font-size:clamp(2.4rem,6vw,5.5rem);margin-bottom:1.2rem}.space p{color:#cfc6b8;max-width:30rem}
.space ul{list-style:none;margin:1.6rem 0 2rem;border-top:1px solid #2a2622}.space li{padding:.7rem 0;border-bottom:1px solid #2a2622;font:italic 300 1.2rem var(--serif)}
@media(max-width:820px){.space{grid-template-columns:1fr}.space:nth-child(even) .si{order:0}}
.reveal{opacity:0;transform:translateY(34px);transition:1s}.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
.book{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--pad);padding:0 var(--pad) 100px;align-items:start}
@media(max-width:900px){.book{grid-template-columns:1fr}}
.tabs{display:flex;gap:.6rem;flex-wrap:wrap;padding:0 var(--pad) 2rem}
.tabs button{background:none;border:1px solid #3a352f;color:var(--mute);padding:.8rem 1.4rem;font:italic 300 1.2rem var(--serif);cursor:pointer;transition:.3s}
.tabs button:hover,.tabs button.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.calbox{border:1px solid #2a2622;padding:clamp(16px,2.5vw,32px);background:var(--ink2)}
.calhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem}.calhead h2{font-size:1.9rem}
.calhead button{background:none;border:1px solid #3a352f;color:var(--paper);width:40px;height:40px;font-size:1.3rem;cursor:pointer}.calhead button:disabled{opacity:.25;cursor:default}
.wk,#days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.wk{margin-bottom:6px;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--mute);text-align:center}
.day{aspect-ratio:1;background:transparent;border:1px solid #3a352f;color:var(--paper);font:400 .95rem var(--sans);cursor:pointer;position:relative;transition:.2s}
.day.open:hover,.day.some:hover{border-color:var(--gold)}.day.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.day.some:after,.day.open:after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#7bbf8a}.day.some:after{background:var(--gold)}.day.on:after{background:var(--ink)}
.day.off,.day.full{border-color:transparent;color:#4a443c;cursor:default;text-decoration:line-through}.day.full{color:var(--rose)}
.legend{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:1.2rem;font-size:.72rem;color:var(--mute)}.legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.45rem;background:#7bbf8a}.legend .l2:before{background:var(--gold)}.legend .l3:before{background:var(--rose)}
.panel{display:grid;gap:2rem}.panel h3{font-size:1.7rem;margin-bottom:1rem}.hint{color:var(--mute);font-size:.85rem;margin-top:.8rem}
.slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.slot{background:none;border:1px solid #3a352f;color:var(--paper);padding:.9rem .5rem;font:400 .9rem var(--sans);cursor:pointer;display:grid;gap:2px;transition:.2s}.slot:hover{border-color:var(--gold)}.slot.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}.slot:disabled{opacity:.35;cursor:default;text-decoration:line-through}.slot small{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}
.summary{border-left:2px solid var(--gold);padding:.4rem 0 .4rem 1.2rem;color:#cfc6b8}.summary b{font:italic 300 1.3rem var(--serif);color:var(--paper)}
button.btn:disabled{opacity:.35;cursor:not-allowed}
.embedwrap{padding:0 var(--pad) 100px}.embedwrap iframe{width:100%;height:min(900px,150vh);min-height:720px;border:1px solid #2a2622;background:var(--ink2)}
@media(max-width:700px){.embedwrap iframe{min-height:860px}}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.step{border:1px solid #2a2622;background:var(--ink2);padding:clamp(20px,2.5vw,32px)}
.step b{font:italic 300 2.6rem var(--serif);color:var(--gold)}.step h3{font-size:1.5rem;margin:.8rem 0 .6rem}.step p{color:var(--mute);font-size:.95rem}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}@media(max-width:520px){.steps{grid-template-columns:1fr}}
