/* ===== TOKENS ===== */
:root{
  --purple:#3A215E;
  --purple-l:#7B5BA8;
  --night:#0A0A0A;
  --warm:#151210;
  --linen:#F0EBE3;
  --txt:#EDE6DA;
  --amber:#D4A853;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Raleway','Helvetica Neue',sans-serif;
}

/* ===== BRAND SPLASH ===== */
.splash{position:fixed;inset:0;z-index:1000;background:var(--night);
  display:flex;align-items:center;justify-content:center;
  animation:splashOut 1.2s ease 1.8s forwards;pointer-events:none}
.splash-logo{height:140px;opacity:0;filter:brightness(0) invert(1);
  animation:splashIn 1.4s ease forwards}
@keyframes splashIn{to{opacity:.95}}
@keyframes splashOut{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.splash{display:none}}

/* ===== RESET ===== */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;background:var(--warm);color:var(--txt);
  line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h2{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4vw,3.2rem);line-height:1.15;color:#fff}
p{font-weight:200;font-size:1rem}
.ey{display:block;font-size:.68rem;letter-spacing:.35em;text-transform:uppercase;color:var(--purple-l);margin-bottom:1rem;font-weight:400}
.ey.amber{color:var(--amber)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== NAV ===== */
#nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;
  justify-content:space-between;padding:1.8rem 2.5rem;transition:background .5s,padding .4s}
#nav.scrolled{background:rgba(10,10,10,.82);backdrop-filter:blur(16px);padding:1rem 2.5rem}
#nav.scrolled .nav-logo img{height:50px}
.nav-logo img{height:96px;opacity:.85;transition:height .4s ease,opacity .3s ease;filter:brightness(0) invert(1)}
.nav-logo:hover img{opacity:1}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;font-weight:300;opacity:.8;transition:opacity .3s}
.nav-links a:hover{opacity:1;color:var(--amber)}
.burger{display:none;background:none;border:none;cursor:pointer;width:28px;height:20px;position:relative}
.burger span{display:block;width:100%;height:1px;background:#fff;position:absolute;left:0;transition:.3s}
.burger span:first-child{top:4px}
.burger span:last-child{bottom:4px}
.burger.open span:first-child{top:50%;transform:rotate(45deg)}
.burger.open span:last-child{bottom:50%;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:190;background:rgba(10,10,10,.96);display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .5s}
.mobile-menu.open{opacity:1;pointer-events:all}
.mobile-menu ul{list-style:none;text-align:center}
.mobile-menu li{margin:1.6rem 0}
.mobile-menu a{font-family:var(--serif);font-size:2rem;font-weight:300;color:#fff;letter-spacing:.08em}
@media(max-width:900px){.nav-links{display:none}.burger{display:block}}

/* ===== REVEAL ===== */
.rv{opacity:0;transform:translateY(35px);transition:opacity 1.1s ease,transform 1.1s ease}
.rv.vis{opacity:1;transform:translateY(0)}

/* ===== 1. HERO ===== */
#hero{position:relative;height:100vh;overflow:hidden;background:#000}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-grad{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,10,10,.3) 0%,rgba(10,10,10,.15) 40%,rgba(10,10,10,.75) 100%)}
.hero-center{position:absolute;left:0;right:0;bottom:8vh;display:flex;align-items:center;justify-content:center;
  z-index:2;opacity:0;transform:translateY(18px);animation:fadeUp 2.2s 1s ease forwards}
.hero-logo{height:180px;margin-bottom:2rem;opacity:.95}
.hero-center{flex-direction:column;text-align:center;padding:0 2rem}
.hero-headline{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5vw,4.2rem);
  line-height:1.1;color:#fff;letter-spacing:-.01em;margin-bottom:1.8rem;max-width:18ch}
.hero-tag{font-size:clamp(1.1rem,2vw,1.6rem);letter-spacing:.5em;color:#fff;opacity:.8;font-weight:200}
.hero-tag .sep{margin:0 .3em;opacity:.5;font-weight:100}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
.scroll-line{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);z-index:3}
.scroll-line span{display:block;width:1px;height:48px;background:rgba(255,255,255,.45);animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scaleY(.2);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}

/* ===== 2. LIGHT — Henge-style strip ===== */
.s-light{background:var(--night);padding:6rem 0 4rem;overflow:hidden}
.light-strip{display:flex;gap:1.5rem;padding:0 4rem;max-width:1600px;margin:0 auto}
.light-card{flex:1;min-width:0}
.light-card-img{overflow:hidden;aspect-ratio:3/4}
.light-card-img img{width:100%;height:100%;object-fit:cover;filter:brightness(.85);transition:transform 1.2s ease,filter .6s ease}
.light-card:hover .light-card-img img{transform:scale(1.04);filter:brightness(1)}
.light-card-label{margin-top:1.2rem;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--txt);opacity:.7;font-weight:300;transition:opacity .3s}
.light-card-label span{margin-right:.4em;opacity:.5}
.light-card:hover .light-card-label{opacity:1}
@media(max-width:900px){.light-strip{flex-direction:column;gap:2rem;padding:0 2rem}.light-card-img{aspect-ratio:4/3}}

/* ===== 2B. INTERIOR LIGHT — editorial split ===== */
.s-interior-light{background:var(--linen);padding:5rem 4rem}
.il-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;max-width:1500px;margin:0 auto;align-items:start}
.il-text{display:flex;flex-direction:column;justify-content:flex-start;padding-top:2rem}
.il-text .ey{color:var(--purple)}
.il-text p{font-family:var(--serif);font-style:italic;font-size:clamp(1rem,1.4vw,1.15rem);
  line-height:1.9;color:var(--night);opacity:.75;font-weight:300;margin-bottom:1.5rem;max-width:420px}
.il-image{overflow:hidden;border:2px solid var(--night)}
.il-image img{width:100%;max-height:70vh;object-fit:cover;display:block}
.il-layout--reverse{grid-template-columns:1.4fr 1fr}
.il-layout--reverse .il-image{order:1}
.il-layout--reverse .il-text{order:2}
@media(max-width:900px){.il-layout{grid-template-columns:1fr;gap:2.5rem}.s-interior-light{padding:3rem 2rem}
  .il-layout--reverse .il-image{order:2}.il-layout--reverse .il-text{order:1}}

/* ===== 3. BATHROOM — editorial split (pillar) ===== */
.s-bathroom{background:var(--warm-white,#FAF8F5);padding:5rem 4rem;background:#FAF8F5}
.s-bathroom .il-text .ey{color:var(--purple)}
.s-bathroom .il-text p{color:var(--night)}
@media(max-width:900px){.s-bathroom{padding:3rem 2rem}}

/* ===== 4. MODULAR — editorial split (pillar, dark) ===== */
.s-modular{background:var(--warm);padding:5rem 4rem;position:relative;overflow:hidden}
.s-modular .il-text .ey{color:var(--purple-l)}
.s-modular .il-text p{color:var(--txt);opacity:.85}
.s-modular .il-image{border-color:var(--txt)}
@media(max-width:900px){.s-modular{padding:3rem 2rem}}

/* ===== 5. ART ===== */
.s-art{background:var(--night);padding:1rem}
.art-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:1rem;max-width:1500px;margin:0 auto;min-height:85vh}
.art-main{overflow:hidden}
.art-main img{width:100%;height:100%;object-fit:cover}
.art-side{position:relative;display:flex;flex-direction:column}
.art-side img{flex:1;width:100%;object-fit:cover}
.art-caption{padding:2.2rem 2rem;background:var(--warm)}
.art-caption .ey{color:var(--purple-l);margin-bottom:1.2rem}
.art-caption p{font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.6;
  color:var(--txt);opacity:.85;font-weight:300;margin-bottom:1rem}
.art-caption p:last-child{margin-bottom:0}
.art-coda{font-size:.95rem!important;color:var(--amber)!important;opacity:.9!important;
  margin-top:.4rem;letter-spacing:.01em}
@media(max-width:900px){.art-grid{grid-template-columns:1fr}}

/* ===== 6. PROJECTS — Carousel ===== */
.s-projects{background:var(--linen);padding:5rem 0 4rem;overflow:hidden}
.s-projects .proj-head{text-align:center;margin-bottom:3rem}
.s-projects .proj-head .ey{color:var(--purple)}

.carousel{position:relative;overflow:visible;padding:0 4rem}
.carousel-track{display:flex;gap:1.5rem;transition:transform .7s cubic-bezier(.4,0,.2,1)}
.carousel-slide{flex:0 0 65%;min-width:0;overflow:hidden;position:relative;
  aspect-ratio:16/10;display:grid;grid-template-columns:1.65fr 1fr;grid-template-rows:1fr 1fr;gap:.5rem}
.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block;min-height:0}
.carousel-slide img:first-child{grid-row:1 / span 2}
.carousel-slide--single{display:block}
.carousel-slide--single img{aspect-ratio:16/10}

.carousel-info{display:flex;justify-content:space-between;align-items:center;
  max-width:1500px;margin:0 auto;padding:2rem 4rem 0}
.carousel-name{font-family:var(--serif);font-weight:500;font-size:1.4rem;color:var(--night);letter-spacing:.02em}

.carousel-controls{display:flex;align-items:center;gap:1.2rem}
.carousel-btn{background:none;border:none;font-size:1.4rem;color:var(--night);cursor:pointer;
  padding:.3rem .5rem;transition:opacity .3s}
.carousel-btn:hover{opacity:.5}
.carousel-dots{display:flex;gap:.5rem}
.carousel-dot{width:28px;height:3px;background:var(--night);opacity:.2;border:none;cursor:pointer;padding:0;transition:opacity .3s}
.carousel-dot.active{opacity:.9}

@media(max-width:900px){
  .carousel{padding:0 1.5rem}
  .carousel-slide{flex:0 0 85%}
  .carousel-info{padding:1.5rem 1.5rem 0;flex-direction:column;gap:1.2rem;align-items:flex-start}
}

/* ===== 7. ABOUT ===== */
.s-about{background:var(--night);padding:0}
.about-split{display:grid;grid-template-columns:1fr 1fr;height:100vh;max-height:900px}
.about-img{overflow:hidden}
.about-img img{width:100%;height:100%;object-fit:cover}
.about-text{display:flex;flex-direction:column;justify-content:center;padding:3rem 4rem;overflow:hidden}
.about-text h2{margin-bottom:1.2rem;font-size:clamp(1.6rem,2.6vw,2.4rem)}
.about-text > p{color:var(--txt);opacity:.85;max-width:50ch;margin-bottom:1.5rem;font-size:.95rem;line-height:1.55}
.svc-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.9rem 2rem;margin-top:.3rem}
.svc-list li{display:flex;flex-direction:column;gap:.25rem;padding-bottom:.7rem;border-bottom:1px solid rgba(237,230,218,.1)}
.svc-list strong{font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;color:var(--purple-l);font-weight:500}
.svc-list span{font-family:var(--serif);font-style:italic;font-size:.85rem;line-height:1.45;color:var(--txt);opacity:.7;font-weight:300}
@media(max-width:900px){.about-split{grid-template-columns:1fr;height:auto;max-height:none}.about-text{padding:2.5rem 2rem}.svc-list{grid-template-columns:1fr}}

/* ===== 8. CONTACT ===== */
.s-contact{background:var(--warm);padding:10rem 2rem;text-align:center}
.contact-inner h2{margin-bottom:2.5rem}
.big-email{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,3vw,2.4rem);
  color:var(--amber);border-bottom:1px solid rgba(212,168,83,.35);padding-bottom:.3rem;transition:color .3s}
.big-email:hover{color:#fff}
.contact-phone{display:block;margin-top:1.2rem;font-size:.95rem;letter-spacing:.18em;color:var(--txt);opacity:.75;transition:opacity .3s}
.contact-phone:hover{opacity:1;color:var(--amber)}
.contact-city{margin-top:1.6rem;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
.contact-city-sep{margin:0 .8em;opacity:.5}
.contact-socials{list-style:none;display:flex;justify-content:center;gap:2.5rem;margin-top:2.5rem;
  padding-top:2rem;border-top:1px solid rgba(237,230,218,.12)}
.contact-socials a{font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--txt);opacity:.6;transition:opacity .3s,color .3s}
.contact-socials a:hover{opacity:1;color:var(--amber)}
@media(max-width:600px){.contact-socials{gap:1.5rem;flex-wrap:wrap}}

/* ===== FOOTER ===== */
footer{background:#000;text-align:center;padding:3.5rem 2rem 2.5rem}
.footer-logo{height:32px;margin:0 auto 1.2rem;filter:brightness(0) invert(1);opacity:.6}
.footer-tag{font-family:var(--serif);font-style:italic;font-size:.9rem;letter-spacing:.3em;color:var(--purple-l);margin-bottom:.6rem}
.footer-copy{font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:rgba(237,230,218,.35)}

/* ===== LIGHTBOX ===== */
.carousel-slide img,.light-card-img{cursor:zoom-in}
.carousel-slide img{transition:opacity .3s ease}
.carousel-slide img:hover{opacity:.92}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(10,10,10,.96);
  display:none;align-items:center;justify-content:center;padding:5vh 6vw;
  opacity:0;transition:opacity .35s ease}
.lightbox.open{display:flex;opacity:1}
.lightbox .lb-img{max-width:100%;max-height:88vh;object-fit:contain;
  box-shadow:0 30px 80px rgba(0,0,0,.6);user-select:none}
.lightbox button{position:absolute;background:none;border:none;color:#fff;cursor:pointer;
  font-family:var(--sans);transition:opacity .25s ease;opacity:.7;padding:.5rem 1rem}
.lightbox button:hover{opacity:1}
.lb-close{top:1.5rem;right:1.5rem;font-size:2.4rem;line-height:1;font-weight:200}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:2rem}
.lb-prev{left:1.5rem}.lb-next{right:1.5rem}
.lb-caption{position:absolute;bottom:1.8rem;left:50%;transform:translateX(-50%);
  color:var(--txt);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;opacity:.6;text-align:center}
.lb-count{margin-left:1rem;opacity:.6}
@media(max-width:600px){
  .lightbox{padding:8vh 1rem}
  .lb-prev,.lb-next{font-size:1.5rem;padding:.5rem .6rem}
  .lb-prev{left:.3rem}.lb-next{right:.3rem}
  .lb-close{top:1rem;right:1rem;font-size:2rem}
}

/* ===== MOTION ===== */
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
