*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --cream:#FAF7F2;--beige:#EDE8DF;--tan:#C8B99A;--gold:#A8916A;
  --dark:#2C2822;--muted:#8A8078;--white:#FFFFFF;
}
html{scroll-behavior:smooth;}
body{font-family:'Jost',sans-serif;background:var(--cream);color:var(--dark);font-weight:300;letter-spacing:.02em;overflow-x:hidden;}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 5rem;background:rgba(250,247,242,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(200,185,154,.25);transition:padding .3s;}
nav.scrolled{padding:1rem 5rem;}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:400;letter-spacing:.18em;color:var(--dark);text-transform:uppercase;text-decoration:none;}
.nav-links{display:flex;gap:2.5rem;list-style:none;}
.nav-links a{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s;}
.nav-links a:hover{color:var(--dark);}
.nav-cta{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:.6rem 1.5rem;border:1px solid var(--dark);color:var(--dark);text-decoration:none;transition:background .3s,color .3s;}
.nav-cta:hover{background:var(--dark);color:var(--cream);}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;}
.burger span{display:block;width:22px;height:1px;background:var(--dark);}

/* ── HERO ── */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding-top:80px;}
.hero-left{display:flex;flex-direction:column;justify-content:center;padding:6rem 4rem 6rem 5rem;}
.hero-eyebrow{font-size:.68rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);margin-bottom:2rem;}
.hero-logo-wrap{margin-bottom:2rem;}
.hero-logo-img{width:280px;max-width:100%;display:block;mix-blend-mode:multiply;filter:contrast(1.1);}
.hero-desc{font-size:.88rem;line-height:2;color:var(--muted);max-width:360px;margin-bottom:3rem;}
.hero-right{position:relative;overflow:hidden;background:var(--beige);}
.hero-right img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-right::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,var(--cream) 0%,transparent 18%);}
.hero-badge{position:absolute;bottom:3rem;right:3rem;z-index:2;width:108px;height:108px;border-radius:50%;background:rgba(250,247,242,.95);border:1px solid var(--beige);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1rem;}
.hero-badge strong{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:300;color:var(--gold);line-height:1;}
.hero-badge span{font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:5px;}
.hero-ph{width:100%;height:100%;min-height:600px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;background:var(--beige);}
.hero-ph svg{width:44px;height:44px;opacity:.35;}
.hero-ph p{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--tan);}

/* ── BUTTONS ── */
.btn{display:inline-block;padding:.95rem 2.5rem;font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:none;transition:all .3s;}
.btn-dark{background:var(--dark);color:var(--cream);}
.btn-dark:hover{background:var(--gold);}
.btn-outline{background:transparent;border:1px solid var(--tan);color:var(--dark);}
.btn-outline:hover{background:var(--dark);color:var(--cream);border-color:var(--dark);}
.btn-outline-light{background:transparent;border:1px solid rgba(200,185,154,.4);color:rgba(250,247,242,.8);font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;padding:.9rem 2.5rem;cursor:pointer;transition:all .3s;}
.btn-outline-light:hover{background:rgba(168,145,106,.2);border-color:var(--tan);color:var(--white);}

/* ── SHARED ── */
.container{max-width:1260px;margin:0 auto;padding:0 5rem;}
.sec-label{font-size:.65rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);}
.sec-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.4rem,3.5vw,3.6rem);font-weight:300;line-height:1.1;}
.sec-title em{font-style:italic;color:var(--gold);}

/* ── SECTION BANNER HEADER ── */
.sec-banner{position:relative;height:260px;display:flex;align-items:center;overflow:hidden;}
.sec-banner-inner{position:relative;z-index:2;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 5rem;}
.sec-banner-left .acc-eyebrow{font-size:.65rem;letter-spacing:.38em;text-transform:uppercase;color:var(--tan);margin-bottom:.8rem;}
.sec-banner-left .acc-main-title{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,5vw,5rem);font-weight:300;color:var(--white);line-height:1;letter-spacing:.04em;}
.sec-banner-left .acc-sub{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(250,247,242,.45);margin-top:.9rem;}
.sec-banner-right{text-align:right;}
.sec-banner-right .img-count{font-family:'Cormorant Garamond',serif;font-size:1rem;color:rgba(250,247,242,.45);letter-spacing:.1em;}

/* ── FILTER BAR ── */
.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:3rem;}
.filter-btn{padding:.55rem 1.4rem;font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;background:transparent;border:1px solid var(--beige);color:var(--muted);cursor:pointer;transition:all .3s;}
.filter-btn:hover{border-color:var(--tan);color:var(--dark);}
.filter-btn.active{background:var(--dark);border-color:var(--dark);color:var(--cream);}

/* ── MASONRY (auto-height, multi-ratio friendly) ── */
.masonry-grid{
  columns:3;
  column-gap:6px;
}
.masonry-item{
  break-inside:avoid;
  margin-bottom:6px;
  position:relative;
  overflow:hidden;
  cursor:pointer;
  display:block;
}
.masonry-item.filtered-out{display:none;}
.masonry-item.hidden-preview{display:none;}
/* Image fills naturally — no forced height */
.masonry-item img{
  width:100%;
  height:auto;
  display:block;
  transition:transform .6s cubic-bezier(.25,.46,.45,.94);
  filter:brightness(.97) contrast(1.02) saturate(.95);
}
.masonry-item:hover img{transform:scale(1.04);}
.m-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(44,40,34,.55) 0%,transparent 55%);opacity:0;transition:opacity .4s;display:flex;align-items:flex-end;padding:1.2rem;}
.masonry-item:hover .m-overlay{opacity:1;}
.m-overlay span{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.9);}
/* Placeholder: fixed height only for placeholders */
.m-ph{width:100%;background:var(--beige);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;}
.m-ph svg{width:32px;height:32px;opacity:.3;}
.m-ph p{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--tan);text-align:center;}

/* ── VIDEO MASONRY-STYLE GRID ── */
/* Uses CSS grid with auto rows to accommodate landscape/portrait */
.video-masonry{
  columns:2;
  column-gap:8px;
}
.vf-item{
  break-inside:avoid;
  margin-bottom:8px;
}
.vf-item.filtered-out{display:none;}
.vf-item.hidden-preview{display:none;}
/* Responsive embed that keeps aspect ratio */
.video-embed-wrap{
  position:relative;
  width:100%;
  padding-bottom:56.25%;
  overflow:hidden;
  background:var(--beige);
}
.video-embed-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;}
.video-ph{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;}
.video-ph svg{width:38px;height:38px;opacity:.3;}
.video-ph p{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--tan);text-align:center;}
.vf-meta{padding:.75rem 0 0;}
.video-title{font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--dark);}
.video-date{font-size:.68rem;letter-spacing:.12em;color:var(--muted);margin-top:.15rem;}

/* ── LOAD MORE AREA ── */
.load-more-wrap{text-align:center;margin-top:3rem;}

/* ── DIVIDER ── */
.divider{padding:4rem 0;background:var(--beige);text-align:center;}
.divider-quote{font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:300;font-style:italic;color:var(--dark);max-width:680px;margin:0 auto;line-height:1.65;}
.divider-quote::before{content:'\201C';color:var(--gold);font-size:2.8rem;vertical-align:-.4rem;margin-right:.15rem;}
.divider-quote::after{content:'\201D';color:var(--gold);font-size:2.8rem;vertical-align:-.4rem;margin-left:.15rem;}

/* ── RETOUCH ── */
.retouch{background:var(--dark);padding:7rem 0;}
.retouch .sec-label{color:var(--tan);}
.retouch .sec-title{color:var(--cream);}
.retouch .sec-title em{color:var(--tan);}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:3rem;}
.sec-meta{text-align:right;}
.sec-line{width:50px;height:1px;background:var(--tan);margin:0 0 .5rem auto;}
.sec-count-small{font-size:.75rem;letter-spacing:.1em;color:var(--muted);}
.retouch .sec-line{background:var(--gold);}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.ba-card{overflow:hidden;}
.ba-wrap{position:relative;height:400px;user-select:none;-webkit-user-select:none;cursor:ew-resize;touch-action:pan-y;}
.ba-before,.ba-after{position:absolute;inset:0;}
.ba-before img,.ba-after img{width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none;user-select:none;}
.ba-after{clip-path:inset(0 50% 0 0);}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:rgba(255,255,255,.8);transform:translateX(-50%);z-index:10;pointer-events:none;}
.ba-handle::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:var(--white);border:2px solid rgba(200,185,154,.3);}
.ba-handle::after{content:'◂ ▸';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:9px;color:var(--dark);white-space:nowrap;letter-spacing:3px;}
.ba-labels{display:flex;justify-content:space-between;padding:.65rem 1rem;background:rgba(44,40,34,.7);}
.ba-labels span{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(250,247,242,.65);}
.ba-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.ba-ph p{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;}

/* ── ABOUT ── */
.about{background:var(--cream);padding:7rem 0;}
.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;}
.about-img-wrap{position:relative;}
.about-img-wrap img{width:100%;height:560px;object-fit:cover;display:block;}
.about-frame{position:absolute;top:-18px;left:-18px;right:18px;bottom:18px;border:1px solid var(--beige);z-index:-1;}
.about-ph{width:100%;height:560px;background:var(--beige);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;}
.about-ph svg{width:40px;height:40px;opacity:.3;}
.about-ph p{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--tan);}
.about-body{font-size:.88rem;line-height:2;color:var(--muted);margin-bottom:2rem;}
.about-stats{display:flex;gap:3rem;padding-top:2rem;border-top:1px solid var(--beige);}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;color:var(--gold);line-height:1;}
.stat-label{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:4px;}

/* ── CONTACT ── */
.contact{background:var(--beige);padding:7rem 0;}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start;}
.contact-desc{font-size:.88rem;line-height:1.95;color:var(--muted);margin:1.5rem 0 2.5rem;}
.contact-links{display:flex;flex-direction:column;gap:1.2rem;}
.contact-link{display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--dark);font-size:.84rem;transition:color .3s;}
.contact-link:hover{color:var(--gold);}
.clink-icon{width:40px;height:40px;border:1px solid var(--tan);display:flex;align-items:center;justify-content:center;font-size:.72rem;color:var(--gold);flex-shrink:0;transition:all .3s;}
.contact-link:hover .clink-icon{background:var(--gold);border-color:var(--gold);color:var(--white);}
.contact-form{display:flex;flex-direction:column;gap:1.2rem;}
.form-group{display:flex;flex-direction:column;gap:.4rem;}
.form-group label{font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);}
.form-group input,.form-group textarea,.form-group select{border:none;border-bottom:1px solid var(--tan);background:transparent;padding:.75rem 0;font-family:'Jost',sans-serif;font-size:.88rem;color:var(--dark);outline:none;transition:border-color .3s;width:100%;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-bottom-color:var(--gold);}
.form-group textarea{resize:vertical;min-height:90px;}

/* ── FOOTER ── */
footer{background:var(--dark);color:var(--cream);padding:2.5rem 5rem;display:flex;justify-content:space-between;align-items:center;}
.footer-logo{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;}
.footer-copy{font-size:.68rem;letter-spacing:.08em;color:var(--muted);}
.footer-social{display:flex;gap:1.8rem;}
.footer-social a{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s;}
.footer-social a:hover{color:var(--tan);}

/* ── LIGHTBOX ── */
#lightbox{position:fixed;inset:0;z-index:999;background:rgba(26,23,20,.97);display:none;align-items:center;justify-content:center;flex-direction:column;}
#lightbox.active{display:flex;}
#lb-img{max-width:88vw;max-height:82vh;object-fit:contain;}
#lb-close{position:absolute;top:1.5rem;right:2rem;font-size:1.8rem;color:var(--tan);cursor:pointer;background:none;border:none;line-height:1;}
#lb-close:hover{color:var(--white);}
#lb-prev,#lb-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--tan);font-size:2rem;cursor:pointer;padding:1rem;line-height:1;}
#lb-prev:hover,#lb-next:hover{color:var(--white);}
#lb-prev{left:1.5rem;}#lb-next{right:1.5rem;}
#lb-counter{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);font-size:.7rem;letter-spacing:.2em;color:var(--muted);}
#lb-caption{position:absolute;bottom:3.5rem;left:50%;transform:translateX(-50%);font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--tan);white-space:nowrap;}

/* ── MOBILE MENU ── */
.mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cream);z-index:199;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-size:1.8rem;font-family:'Cormorant Garamond',serif;font-weight:300;color:var(--dark);text-decoration:none;letter-spacing:.1em;}
.mobile-close{position:absolute;top:1.5rem;right:2rem;font-size:1.5rem;background:none;border:none;cursor:pointer;color:var(--dark);}

/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes badgePop{0%{opacity:0;transform:scale(.8);}70%{transform:scale(1.05);}100%{opacity:1;transform:scale(1);}}
.hero-eyebrow{opacity:0;animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .2s forwards;}
.hero-logo-wrap{opacity:0;animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .45s forwards;}
.hero-desc{opacity:0;animation:fadeUp .8s cubic-bezier(.22,1,.36,1) .7s forwards;}
.hero-left .btn{opacity:0;animation:fadeUp .7s cubic-bezier(.22,1,.36,1) .95s forwards;}
.hero-right{opacity:0;animation:fadeIn 1.2s ease .3s forwards;}
.hero-badge{opacity:0;animation:badgePop .6s cubic-bezier(.34,1.56,.64,1) 1.2s forwards;}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-d2{transition-delay:.2s;}

/* ── RESPONSIVE ── */
@media(max-width:960px){
  nav{padding:1.2rem 2rem;}nav.scrolled{padding:.9rem 2rem;}
  .nav-links,.nav-cta{display:none;}.burger{display:flex;}
  .hero{grid-template-columns:1fr;min-height:auto;}
  .hero-right{height:60vw;}.hero-left{padding:5rem 2rem 3rem;}
  .container{padding:0 2rem;}
  .sec-banner-inner{padding:0 2rem;}
  .sec-banner-left .acc-main-title{font-size:2.6rem;}
  .masonry-grid{columns:2;}
  .video-masonry{columns:1;}
  .ba-grid{grid-template-columns:1fr;}
  .about-inner,.contact-inner{grid-template-columns:1fr;gap:3rem;}
  footer{flex-direction:column;gap:1.2rem;text-align:center;padding:2rem;}
  .sec-head{flex-direction:column;align-items:flex-start;gap:1rem;}
}
@media(max-width:560px){
  .masonry-grid{columns:1;}
  .sec-banner{height:180px;}
  .sec-banner-left .acc-sub{display:none;}
}

/* ── NAV "soon" badge ── */
.nav-soon{font-size:.5rem;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;margin-left:.15rem;}

/* ── WORK WITH (logo marquee) ── */
.workwith{background:var(--white);padding:5rem 0 4.5rem;border-top:1px solid rgba(200,185,154,.18);overflow:hidden;}
.ww-head{text-align:center;margin-bottom:3rem;}
.ww-head .sec-label{margin-bottom:.7rem;}
.ww-sub{font-size:.85rem;color:var(--muted);margin-top:.8rem;letter-spacing:.04em;}
.ww-marquee{position:relative;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent);}
.ww-track{display:flex;align-items:center;width:max-content;animation:ww-scroll var(--ww-speed,35s) linear infinite;will-change:transform;}
.ww-marquee:hover .ww-track{animation-play-state:paused;}
.ww-logo{flex:0 0 auto;display:flex;align-items:center;justify-content:center;margin-right:5.5rem;}
.ww-logo img{height:54px;width:auto;max-width:170px;object-fit:contain;display:block;transition:filter .4s,opacity .4s;user-select:none;}
.ww-mono .ww-logo img{filter:grayscale(1) contrast(.92);opacity:.55;mix-blend-mode:multiply;}
.ww-mono .ww-logo img:hover{filter:none;opacity:1;}
@keyframes ww-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.ww-track{animation:none;flex-wrap:wrap;justify-content:center;width:100%;gap:2rem;}}

/* ── COURSES (coming soon) ── */
.courses{background:var(--dark);padding:6.5rem 0;position:relative;overflow:hidden;}
.courses::before{content:'';position:absolute;top:-40%;left:50%;transform:translateX(-50%);width:720px;height:720px;background:radial-gradient(circle,rgba(168,145,106,.14) 0%,transparent 65%);pointer-events:none;}
.courses-inner{text-align:center;max-width:640px;margin:0 auto;position:relative;}
.courses .sec-label{color:var(--tan);}
.courses .sec-title{color:var(--cream);}
.courses-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(200,185,154,.45);padding:.45rem 1.2rem .45rem 1rem;border-radius:999px;margin-bottom:1.8rem;background:rgba(168,145,106,.08);}
.courses-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);animation:badge-pulse 1.8s ease-in-out infinite;}
@keyframes badge-pulse{0%,100%{opacity:.35;transform:scale(.85);}50%{opacity:1;transform:scale(1.15);}}
.courses-desc{color:rgba(250,247,242,.65);font-size:.95rem;line-height:1.85;margin:1.4rem auto 2.4rem;max-width:520px;}
.courses-cta{border-color:rgba(200,185,154,.5);color:var(--cream);}
.courses-cta:hover{background:var(--gold);border-color:var(--gold);color:var(--dark);}

@media(max-width:960px){
  .ww-logo{margin-right:3.5rem;}
  .ww-logo img{height:42px;max-width:130px;}
  .courses{padding:5rem 0;}
}

/* ── CUSTOM SECTIONS ── */
.custom-sec{background:var(--cream);padding:6rem 0;border-top:1px solid rgba(200,185,154,.18);}
.custom-sec.cs-dark{background:var(--dark);}
.custom-sec.cs-dark .sec-label{color:var(--tan);}
.custom-sec.cs-dark .sec-title{color:var(--cream);}
.cs-inner{max-width:680px;margin:0 auto;text-align:center;}
.cs-inner.cs-has-img{max-width:none;display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:center;text-align:left;}
.cs-img img{width:100%;height:auto;display:block;}
.cs-text{font-size:.95rem;line-height:1.85;color:var(--muted);margin:1.4rem 0 2rem;}
.custom-sec.cs-dark .cs-text{color:rgba(250,247,242,.65);}
@media(max-width:960px){.cs-inner.cs-has-img{grid-template-columns:1fr;gap:2.5rem;text-align:center;}}
