*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
/* Performance: promote composited layers for animated elements */
nav,.hero-video-bg video,.insta-marquee-track,.portfolio-item img{will-change:transform;}
.reveal{contain:layout style;}
:root{
  --cream:#F5F0E8;--warm-white:#FAF7F2;--sand:#D9C9B0;
  --clay:#B5896A;--terracotta:#C4704A;--bark:#6B4F3A;
  --forest:#4A5C4E;--charcoal:#2E2A26;--muted:#7A6E64;
  --ease-out-expo:cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:cubic-bezier(0.4,0,0.2,1);
}

html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Jost',sans-serif;background:var(--warm-white);color:var(--charcoal)}
:focus-visible{outline:2px solid var(--terracotta);outline-offset:3px}

/* ── LOADING STATES ── */
.site-loader{
  position:fixed;inset:0;z-index:9998;
  display:flex;align-items:center;justify-content:center;
  background:var(--charcoal);
  color:var(--sand);
  transition:opacity .55s ease,visibility .55s ease;
}
.site-loader.hidden{opacity:0;visibility:hidden;pointer-events:none;}
.site-loader-mark{
  width:74px;height:74px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(217,201,176,.18);
  background:rgba(255,255,255,.03);
  animation:loaderPulse 1.4s ease-in-out infinite;
}
.site-loader-mark svg{width:46px;height:46px;display:block;}
@keyframes loaderPulse{
  0%,100%{opacity:.58;transform:scale(.98)}
  50%{opacity:1;transform:scale(1.02)}
}

/* ── NAV ── */
nav{
  position:fixed;top:0;left:0;
  width:100%;z-index:200;
  background:transparent;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 3rem;height:68px;
  transition:background .5s,box-shadow .5s;
}
nav.scrolled{
  background:rgba(250,247,242,0.90);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  backdrop-filter:blur(20px) saturate(160%);
  box-shadow:0 1px 0 rgba(217,201,176,0.5);
}
nav::after{
  content:'';position:absolute;bottom:0;left:50%;
  width:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--clay),var(--terracotta),var(--clay),transparent);
  transition:width .6s var(--ease-out-expo),left .6s var(--ease-out-expo);
  pointer-events:none;
}
nav.scrolled::after{width:100%;left:0;}

/* ── LOGO ── */
.logo{
  display:flex;align-items:center;gap:.7rem;
  text-decoration:none;flex-shrink:0;
}
.logo-icon{height:40px;width:40px;flex-shrink:0;overflow:visible;display:block;}
.logo-arc{stroke:#C4704A;transition:stroke .5s;}
.logo-line-main{stroke:rgba(255,255,255,0.8);transition:stroke .5s;}
.logo-accent{fill:#C4704A;}
nav.scrolled .logo-line-main{stroke:var(--bark);}
.logo-text-wrap{display:flex;flex-direction:column;gap:2px}
.logo-wordmark{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.4rem;font-weight:400;letter-spacing:.08em;
  color:#fff;transition:color .5s;white-space:nowrap;line-height:1.1;
}
.logo-amp{font-style:italic;color:var(--terracotta);}
.logo-sub{
  font-family:'Jost',sans-serif;font-size:.42rem;
  letter-spacing:.28em;color:rgba(255,255,255,.4);
  text-transform:uppercase;transition:color .5s;
  white-space:nowrap;
}
nav.scrolled .logo-wordmark{color:var(--bark);}
nav.scrolled .logo-sub{color:var(--muted);}

/* ── NAV RIGHT (links + CTA + hamburger) ── */
.nav-right{
  display:flex;align-items:center;gap:0;flex-shrink:0;
}
.nav-links{
  display:flex;gap:0;list-style:none;margin:0;padding:0;
}
.nav-links a{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;color:rgba(255,255,255,0.85);
  padding:.4rem .9rem;transition:color .3s;
  outline:none;white-space:nowrap;position:relative;
  -webkit-tap-highlight-color:transparent;
}
.nav-links a::after{
  content:'';position:absolute;bottom:-1px;left:.9rem;right:.9rem;
  height:1px;background:var(--clay);
  transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease-out-expo);
}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);}
.nav-links a:hover{color:#fff;}
.nav-links a.active{color:#fff;}
nav.scrolled .nav-links a{color:var(--charcoal);}
nav.scrolled .nav-links a:hover{color:var(--terracotta);}
nav.scrolled .nav-links a.active{color:var(--terracotta);}

/* CTA button */
.nav-cta{
  color:rgba(255,255,255,0.9);padding:.46rem 1.3rem;
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  cursor:pointer;font-family:'Jost',sans-serif;
  background:transparent;border:1px solid rgba(255,255,255,0.5);
  border-radius:0;margin-left:.75rem;outline:none;
  -webkit-tap-highlight-color:transparent;
  position:relative;overflow:hidden;transition:color .35s,border-color .35s;
}
.nav-cta::before{
  content:'';position:absolute;inset:0;background:var(--terracotta);
  transform:translateY(101%);transition:transform .35s var(--ease-out-expo);
  z-index:0;pointer-events:none;
}
.nav-cta span{position:relative;z-index:1;pointer-events:none;}
.nav-cta:hover{color:#fff;border-color:var(--terracotta);}
.nav-cta:hover::before{transform:translateY(0);}
nav.scrolled .nav-cta{color:var(--bark);border-color:var(--clay);}
nav.scrolled .nav-cta:hover{color:#fff;border-color:var(--terracotta);}

/* ── HAMBURGER BUTTON ── */
.hamburger{
  display:none;
  flex-direction:column;justify-content:center;align-items:center;
  gap:5px;
  width:40px;height:40px;
  background:transparent;border:none;cursor:pointer;
  padding:6px;
  -webkit-tap-highlight-color:transparent;
  z-index:301;position:relative;
  flex-shrink:0;
}
.hamburger span{
  display:block;width:22px;height:1.5px;
  background:rgba(255,255,255,0.85);
  transform-origin:center;
  transition:transform .38s cubic-bezier(0.16,1,0.3,1),
             opacity .28s ease,
             background .4s ease;
  border-radius:1px;
}
nav.scrolled .hamburger span{background:var(--bark);}
/* Open state — bars animate into X */
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
/* Open state: bars turn terracotta */
.hamburger.open span{background:var(--terracotta);}

/* ── MOBILE MENU OVERLAY ── */
.mobile-menu{
  position:fixed;inset:0;z-index:300;
  background:rgba(37,32,28,0.96);
  -webkit-backdrop-filter:blur(22px) saturate(140%);
  backdrop-filter:blur(22px) saturate(140%);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:0;
  opacity:0;pointer-events:none;
  transform:translateY(-12px);
  transition:opacity .4s cubic-bezier(0.16,1,0.3,1),
             transform .4s cubic-bezier(0.16,1,0.3,1);
}
.mobile-menu.open{
  opacity:1;pointer-events:all;transform:translateY(0);
}
.mobile-menu-close{
  position:absolute;
  top:calc(1rem + env(safe-area-inset-top));
  right:calc(1rem + env(safe-area-inset-right));
  width:44px;
  height:44px;
  border:1px solid rgba(217,201,176,.18);
  background:rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:2;
  -webkit-tap-highlight-color:transparent;
  transition:background .25s,border-color .25s;
}
.mobile-menu-close span{
  position:absolute;
  width:20px;
  height:1.5px;
  background:var(--sand);
  border-radius:1px;
}
.mobile-menu-close span:first-child{transform:rotate(45deg);}
.mobile-menu-close span:last-child{transform:rotate(-45deg);}
.mobile-menu-close:hover,
.mobile-menu-close:focus-visible{
  background:var(--terracotta);
  border-color:var(--terracotta);
}
.mobile-menu-close:hover span,
.mobile-menu-close:focus-visible span{background:#fff;}
.mobile-menu a{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:2.1rem;font-weight:300;font-style:normal;
  color:rgba(217,201,176,0.85);
  text-decoration:none;letter-spacing:.1em;
  padding:.85rem 2.5rem;
  display:block;text-align:center;
  position:relative;
  transition:color .3s ease;
  opacity:0;transform:translateY(18px);
}
.mobile-menu.open a{
  animation:mobLinkIn .5s var(--ease-out-expo) forwards;
}
.mobile-menu.open a:nth-child(1){animation-delay:.05s}
.mobile-menu.open a:nth-child(2){animation-delay:.1s}
.mobile-menu.open a:nth-child(3){animation-delay:.15s}
.mobile-menu.open a:nth-child(4){animation-delay:.2s}
.mobile-menu.open a:nth-child(5){animation-delay:.25s}
.mobile-menu.open a:nth-child(6){animation-delay:.35s}
.mobile-menu.open a:nth-of-type(1){animation-delay:.05s}
.mobile-menu.open a:nth-of-type(2){animation-delay:.1s}
.mobile-menu.open a:nth-of-type(3){animation-delay:.15s}
.mobile-menu.open a:nth-of-type(4){animation-delay:.2s}
.mobile-menu.open a:nth-of-type(5){animation-delay:.25s}
.mobile-menu.open a:nth-of-type(6){animation-delay:.35s}
.mobile-menu a::after{
  content:'';position:absolute;bottom:0.2rem;left:50%;transform:translateX(-50%);
  width:0;height:1px;background:var(--clay);
  transition:width .35s var(--ease-out-expo);
}
.mobile-menu a:hover::after{width:40%;}
.mobile-menu a:hover{color:#fff;}
.mobile-menu .mob-cta{
  margin-top:1.5rem;
  font-family:'Jost',sans-serif;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:#fff!important;
  background:var(--terracotta);
  padding:.9rem 2.5rem!important;
  font-style:normal;
  font-weight:400;
  animation-delay:.4s!important;
}
.mobile-menu .mob-cta::after{display:none!important;}
.mobile-menu .mob-cta:hover{background:var(--bark)!important;color:#fff!important;}
@keyframes mobLinkIn{
  to{opacity:1;transform:translateY(0);}
}

/* ── SCROLL PROGRESS BAR ── */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0%;z-index:201;
  background:linear-gradient(to right,var(--clay),var(--terracotta));
  transition:width .1s linear;
  pointer-events:none;
}

/* ── HERO VIDEO ── */
.hero{
  position:relative;min-height:100vh;display:flex;
  align-items:center;justify-content:center;
  padding-top:0;overflow:hidden;
}
.hero-video-bg{
  position:absolute;inset:0;z-index:0;
  background:var(--charcoal) url("img_exterior_hero_desktop.jpg") center/cover no-repeat;
}
.hero-video-bg video{
  width:100%;height:100%;object-fit:cover;display:none;
  opacity:0;transition:opacity 1.2s ease;
  object-position:center center;
  transform: scale(1.15); /* Scales video slightly to crop out bottom-right watermark */
}
.hero-video-bg video.loaded{opacity:1}
.smooth-loop-base{transition:opacity .45s ease;}
.smooth-loop-base.loop-fading,
.hero-video-bg video.loaded.loop-fading{opacity:.62;}
/* dark gradient overlay for legibility */
.hero-video-bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(
    135deg,
    rgba(37,32,28,.78) 0%,
    rgba(37,32,28,.45) 50%,
    rgba(37,32,28,.2) 100%
  );
}
/* grain texture overlay */
.hero-video-bg::before{
  content:'';position:absolute;inset:0;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events:none;
}
.hero-content{
  position:relative;z-index:2;
  max-width:760px;padding:3rem 4.5rem;
  padding-top:calc(68px + 3rem);
  text-align:left;
}
.hero-tag{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--clay);margin-bottom:1.8rem;
  opacity:0;transform:translateY(14px);
  animation:fadeUp .7s var(--ease-out-expo) .3s forwards;
}
.hero-tag::before{content:'';width:28px;height:1px;background:var(--clay)}
.hero-title{
  font-family:'Cormorant Garamond',serif;font-size:4.8rem;line-height:1.04;
  font-weight:300;color:#fff;margin-bottom:1.6rem;
  opacity:0;transform:translateY(20px);
  animation:fadeUp .9s var(--ease-out-expo) .5s forwards;
}
.hero-title em{font-style:italic;color:var(--clay)}
.hero-title span{display:inline-block;color:rgba(255,255,255,.88)}
.hero-subtitle{
  font-size:.95rem;line-height:1.9;color:rgba(255,255,255,.65);
  max-width:400px;margin-bottom:2.8rem;font-weight:300;
  opacity:0;transform:translateY(14px);
  animation:fadeUp .8s var(--ease-out-expo) .7s forwards;
}
.hero-btns{
  display:flex;gap:1rem;align-items:center;flex-wrap:wrap;
  opacity:0;transform:translateY(12px);
  animation:fadeUp .7s var(--ease-out-expo) .88s forwards;
}
.btn-primary{
  background:var(--terracotta);color:#fff;padding:.9rem 2.2rem;
  font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  border:none;cursor:pointer;font-family:'Jost',sans-serif;
  transition:background .2s,transform .15s,box-shadow .2s;
}
.btn-primary:hover{background:var(--bark);transform:translateY(-2px);box-shadow:0 8px 24px rgba(196,112,74,.3)}
.btn-ghost{
  color:rgba(255,255,255,.75);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;
  transition:color .2s,border-color .2s;
}
.btn-ghost:hover{color:#fff;border-color:#fff}

/* scroll indicator */
.hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  z-index:2;display:flex;flex-direction:column;align-items:center;gap:.6rem;
  opacity:0;animation:fadeIn 1s ease 1.6s forwards;
}
.hero-scroll span{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.scroll-line{width:1px;height:40px;background:rgba(255,255,255,.15);position:relative;overflow:hidden}
.scroll-line::after{
  content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;
  background:var(--clay);
  animation:scrollDrop 1.6s ease-in-out 1.8s infinite;
}
@keyframes scrollDrop{0%{top:-100%}60%{top:100%}100%{top:100%}}

@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{to{opacity:1}}

/* ── STATS BAR ── */
.stats-bar{background:var(--bark);display:flex;justify-content:center;flex-wrap:wrap}
.stat{padding:2rem 3rem;border-right:1px solid rgba(255,255,255,.08);text-align:center}
.stat:last-child{border-right:none}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.4rem;color:var(--sand);font-weight:300;line-height:1}
.stat-label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.4rem}

/* ── SECTION COMMONS ── */
.section-tag{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terracotta);margin-bottom:1rem;display:block}
.section-title{font-family:'Cormorant Garamond',serif;font-size:2.8rem;font-weight:300;color:var(--bark);line-height:1.15;margin-bottom:1rem}
.section-title em{font-style:italic}
.section-sub{font-size:.88rem;color:var(--muted);line-height:1.85;max-width:500px;font-weight:300}

/* ── REVEAL ANIMATION ── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s var(--ease-out-expo),transform .75s var(--ease-out-expo)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}

/* ── PORTFOLIO ── */
.portfolio-section{background:var(--cream);padding:7rem 4rem}
.portfolio-header{margin-bottom:3rem}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.portfolio-item{position:relative;overflow:hidden;cursor:pointer;background:var(--sand);width:100%;aspect-ratio:4/3}
.portfolio-item img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s var(--ease-out-expo),filter .5s;
  filter:brightness(1);
}
.portfolio-item:hover img{transform:scale(1.06);filter:brightness(.92)}
.portfolio-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(46,42,38,.7) 0%, rgba(46,42,38,0) 50%);
  opacity:0;transition:opacity .4s;
  display:flex;flex-direction:column;justify-content:flex-end;padding:1.6rem;pointer-events:none;
}
.portfolio-item:hover .portfolio-overlay{opacity:1}
.portfolio-item:hover .lb-open-hint{opacity:1;transform:scale(1);}
.portfolio-label{transform:translateY(8px);transition:transform .4s var(--ease-out-expo);color:#fff}
.portfolio-item:hover .portfolio-label{transform:translateY(0)}
.portfolio-room{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:300;line-height:1.2}
.portfolio-type{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sand);margin-top:.3rem;opacity:.85}
.portfolio-note{font-size:.7rem;color:rgba(255,255,255,.5);margin-top:.35rem;font-style:italic}
.lb-open-hint{
  position:absolute;top:1rem;right:1rem;
  width:32px;height:32px;
  background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.8);
  transition:opacity .3s,transform .3s;
}
.project-badge{
  position:absolute;top:1rem;left:1rem;z-index:2;
  background:rgba(250,247,242,.9);
  padding:.28rem .75rem;font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--bark);
  backdrop-filter:blur(4px);
}

/* ── PORTFOLIO FILTERS ── */
.portfolio-filters{
  display:flex;gap:.4rem;flex-wrap:wrap;
  margin-top:2rem;margin-bottom:2.5rem;
}
.pf-btn{
  font-family:'Jost',sans-serif;
  font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;
  background:transparent;border:1px solid rgba(107,79,58,.25);
  color:var(--muted);padding:.42rem 1.1rem;
  cursor:pointer;outline:none;
  transition:background .25s,border-color .25s,color .25s;
  -webkit-tap-highlight-color:transparent;
}
.pf-btn:hover{border-color:var(--clay);color:var(--bark);}
.pf-btn.active{
  background:var(--terracotta);border-color:var(--terracotta);
  color:#fff;
}

/* hide/show portfolio items */
.portfolio-item{transition:opacity .35s ease,transform .35s ease;}
.portfolio-item.pf-hidden{
  opacity:0;pointer-events:none;
  position:absolute;visibility:hidden;
}

/* expand grid when filtered to fewer items */
.portfolio-grid.filtered{
  grid-template-columns:repeat(3,1fr);
}
.portfolio-grid.filtered .portfolio-item{
  grid-column:unset!important;
  height:auto!important;
}

/* portfolio preview */
.portfolio-item.pf-preview-hidden{
  opacity:0;
  pointer-events:none;
  position:absolute;
  visibility:hidden;
}
.portfolio-more-wrap{
  display:flex;
  justify-content:center;
  margin-top:2.2rem;
}
.portfolio-more-wrap.is-hidden{display:none;}
.portfolio-more-btn{
  font-family:'Jost',sans-serif;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  border:1px solid rgba(107,79,58,.28);
  background:transparent;
  color:var(--bark);
  padding:.75rem 1.6rem;
  cursor:pointer;
  transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.portfolio-more-btn:hover{
  background:var(--terracotta);
  border-color:var(--terracotta);
  color:#fff;
  transform:translateY(-1px);
}

/* ── LIGHTBOX ── */
.lb-overlay{
  position:fixed;inset:0;z-index:900;
  background:rgba(37,32,28,.96);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .35s ease;
  padding:2rem;
}
.lb-overlay.open{opacity:1;pointer-events:all;}
.lb-inner{
  position:relative;max-width:1100px;width:100%;
  display:flex;align-items:center;gap:1.2rem;
}
.lb-img-wrap{
  flex:1;display:flex;align-items:center;justify-content:center;
  overflow:hidden;max-height:85vh;
}
.lb-img-wrap img{
  max-width:100%;max-height:85vh;
  object-fit:contain;display:block;
  border-radius:2px;
  transform:scale(.96);opacity:0;
  transition:transform .4s var(--ease-out-expo),opacity .4s ease;
}
.lb-overlay.open .lb-img-wrap img{transform:scale(1);opacity:1;}
.lb-info{
  width:240px;flex-shrink:0;
  display:flex;flex-direction:column;gap:.6rem;
}
.lb-tag{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);}
.lb-title{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:300;color:var(--sand);line-height:1.2;}
.lb-type{font-size:.72rem;color:rgba(255,255,255,.35);letter-spacing:.1em;}
.lb-note{font-size:.78rem;color:rgba(217,201,176,.5);font-style:italic;line-height:1.6;margin-top:.3rem;}
.lb-category-btn{
  width:max-content;margin-top:.35rem;padding:.68rem .95rem;
  border:1px solid rgba(196,112,74,.5);background:rgba(196,112,74,.14);
  color:var(--sand);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;
  cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.lb-category-btn:hover{background:var(--terracotta);border-color:var(--terracotta);color:#fff;}
.lb-close{
  position:absolute;top:-1rem;right:-1rem;
  width:40px;height:40px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.6);font-size:1.3rem;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s,color .2s;border-radius:0;
}
.lb-close:hover{background:var(--terracotta);color:#fff;border-color:var(--terracotta);}
.lb-arrow{
  width:44px;height:44px;flex-shrink:0;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.5);font-size:1.2rem;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s,color .2s;
}
.lb-arrow:hover{background:rgba(255,255,255,.13);color:#fff;}
.lb-counter{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.25);margin-top:auto;}

/* lightbox mobile */
@media(max-width:768px){.lb-info{display:none;}
  .lb-arrow{width:36px;height:36px;font-size:1rem;}
  .lb-inner{gap:.5rem;}
}

/* ── ABOUT SECTION ── */
.about-section{background:var(--warm-white);padding:7rem 4rem}
.about-inner{
  display:grid;grid-template-columns:5fr 6fr;gap:5rem;
  align-items:center;max-width:1200px;margin:0 auto;
}
.about-img-box{
  aspect-ratio:4/5;border-radius:2px;overflow:hidden;
  box-shadow:0 16px 40px rgba(107,79,58,.08);
  background:var(--sand);
}
.about-img-box img{width:100%;height:100%;object-fit:cover;display:block;}
.about-text{display:flex;flex-direction:column;gap:1.2rem}
.about-text p{font-size:.92rem;color:var(--muted);font-weight:300;line-height:1.85}

@media(max-width:1024px)and(min-width:769px){
  .about-section{padding:5rem 2.5rem}
  .about-inner{gap:3rem}
}
@media(max-width:768px){.about-section{padding:3.5rem 1.4rem}
  .about-inner{grid-template-columns:1fr;gap:2.5rem}
  .about-img-box{aspect-ratio:4/3;max-height:350px}
}

/* ── SERVICES ── */
.services-section{padding:7rem 4rem;background:var(--warm-white)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:3.5rem}
.service-card{
  background:var(--cream);padding:2.5rem 2rem;
  border-top:2px solid transparent;
  transition:border-color .25s,background .25s,transform .25s var(--ease-out-expo);
  position:relative;overflow:hidden;
}
.service-card::before{
  content:'';position:absolute;inset:0;background:var(--warm-white);
  transform:translateY(100%);transition:transform .35s var(--ease-out-expo);z-index:0;
}
.service-card:hover{border-color:var(--terracotta);transform:translateY(-3px)}
.service-card:hover::before{transform:translateY(0)}
.service-card > *{position:relative;z-index:1}
.service-icon{width:38px;height:38px;margin-bottom:1.4rem;color:var(--terracotta)}
.service-name{font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--bark);margin-bottom:.6rem}
.service-desc{font-size:.83rem;color:var(--muted);line-height:1.8;font-weight:300}

/* ── PROCESS ── */
.process-section{background:var(--cream);padding:7rem 4rem}
.process-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:4rem;position:relative}
.process-steps::before{
  content:'';position:absolute;top:1.6rem;left:calc(33.33% - 1rem);
  width:calc(33.33% + 2rem);height:1px;background:var(--sand);
}
.process-step{position:relative}
.step-num{font-family:'Cormorant Garamond',serif;font-size:3.5rem;color:var(--sand);font-weight:300;line-height:1;margin-bottom:1.2rem}
.step-title{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bark);margin-bottom:.75rem;font-weight:500}
.step-desc{font-size:.82rem;color:var(--muted);line-height:1.85;font-weight:300}

/* ── FAQ ── */
.faq-section{background:var(--bark);padding:7rem 4rem}
.faq-section .section-title{color:var(--sand)}
.faq-section .section-tag{color:var(--clay)}
.faq-list{
  max-width:900px;margin-top:3.5rem;
  display:grid;gap:.65rem;
}
.faq-item{
  background:rgba(255,255,255,.04);
  border-top:1px solid rgba(196,112,74,.55);
  color:rgba(217,201,176,.72);
}
.faq-item summary{
  cursor:pointer;list-style:none;
  padding:1.1rem 1.25rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sand);
  -webkit-tap-highlight-color:transparent;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:'+';
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.35rem;line-height:1;color:var(--clay);
  transition:transform .25s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{
  padding:0 1.25rem 1.2rem;
  font-size:.9rem;line-height:1.8;font-weight:300;
  color:rgba(217,201,176,.62);
  max-width:760px;
}

/* ── VIDEO SECTIONS ── */
.video-section{padding:6rem 4rem;background:var(--warm-white)}
.video-section:nth-of-type(even){background:var(--cream)}
/* Landscape layout: text left, wide video right */
.video-inner{
  display:grid;grid-template-columns:5fr 7fr;gap:4rem;
  align-items:center;max-width:1200px;margin:0 auto;
}
/* Flip: wide video left, text right */
.video-inner.flip{grid-template-columns:7fr 5fr}
/* Portrait layout: text + narrow video side by side, video naturally tall */
.video-inner.portrait{
  grid-template-columns:1fr 1fr;
  align-items:center;max-width:900px;
}
.video-inner.portrait .video-box{
  aspect-ratio:9/16;
  max-height:520px;
  width:auto;
  margin:0 auto;
}
.video-text .section-tag{margin-bottom:.75rem}
.video-text h2{
  font-family:'Cormorant Garamond',serif;font-size:2.4rem;
  font-weight:300;line-height:1.2;color:var(--charcoal);
}
.video-text h2 em{font-style:italic;color:var(--clay)}
.video-text p{margin-top:1.1rem;font-size:.87rem;color:var(--muted);font-weight:300;line-height:1.85}
.video-box{
  border-radius:2px;overflow:hidden;
  box-shadow:0 16px 48px rgba(0,0,0,.12);
  position:relative;aspect-ratio:16/9;background:var(--charcoal);
}
.video-box::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(circle at center,rgba(217,201,176,.16),transparent 38%),
    linear-gradient(135deg,rgba(46,42,38,.92),rgba(107,79,58,.72));
  transition:opacity .45s ease,visibility .45s ease;
}
.video-box::after{
  content:'';position:absolute;top:50%;left:50%;z-index:2;
  width:32px;height:32px;margin:-16px 0 0 -16px;
  border:1px solid rgba(217,201,176,.28);
  border-top-color:var(--terracotta);
  border-radius:50%;
  animation:videoSpin .85s linear infinite;
  transition:opacity .35s ease,visibility .35s ease;
}
.video-box.video-ready::before,
.video-box.video-ready::after{opacity:0;visibility:hidden;}
.video-box video{width:100%;height:100%;display:block;object-fit:cover;background:#000;transform:scale(1.15);}
@keyframes videoSpin{to{transform:rotate(360deg)}}

/* ── INSTAGRAM MARQUEE ── */
.insta-section{padding:5.5rem 0;text-align:center;background:var(--warm-white)}
.insta-section-header{padding:0 4rem 2.5rem}
.insta-marquee-wrap{overflow:hidden;position:relative;width:100%}
.insta-marquee-wrap::before,.insta-marquee-wrap::after{
  content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;
}
.insta-marquee-wrap::before{left:0;background:linear-gradient(to right,var(--warm-white),transparent)}
.insta-marquee-wrap::after{right:0;background:linear-gradient(to left,var(--warm-white),transparent)}
.insta-marquee-track{
  display:flex;gap:8px;width:max-content;
  will-change:transform;animation:marquee 32s linear infinite;
}
.insta-marquee-track:hover{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.insta-tile{
  width:240px;height:240px;flex-shrink:0;position:relative;
  overflow:hidden;display:block;text-decoration:none;border-radius:2px;
}
.insta-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease-out-expo)}
.insta-tile:hover img{transform:scale(1.08)}
.insta-hover{
  position:absolute;inset:0;background:rgba(196,112,74,.6);
  opacity:0;transition:opacity .3s;display:flex;align-items:center;justify-content:center;
}
.insta-tile:hover .insta-hover{opacity:1}
.insta-hover span{color:#fff;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}

/* ── CONTACT ── */
.contact-section{display:grid;grid-template-columns:1fr 1fr}
.contact-left{background:var(--cream);padding:6.5rem 4rem}
.contact-right{background:var(--charcoal);padding:6.5rem 4rem;display:flex;flex-direction:column;justify-content:center}
.contact-right .section-title{color:var(--sand);font-size:2.2rem}
.contact-right .section-tag{color:var(--clay)}
.contact-right .section-sub{color:rgba(255,255,255,.4);margin-bottom:2rem}
.contact-form{display:flex;flex-direction:column;gap:1.1rem;margin-top:2.5rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
.form-group label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.form-group input,.form-group textarea,.form-group select{
  background:#fff;border:1px solid var(--sand);padding:.8rem 1rem;
  font-size:.87rem;font-family:'Jost',sans-serif;color:var(--charcoal);
  outline:none;transition:border-color .2s,box-shadow .2s;
  width:100%;-webkit-appearance:none;border-radius:0;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:var(--terracotta);box-shadow:0 0 0 3px rgba(196,112,74,.1);
}
.form-group textarea{resize:vertical;min-height:100px}
.field-error{font-size:.7rem;color:#C0392B;margin-top:.2rem;display:none}
.form-group.has-error .field-error{display:block}
.form-group.has-error input,.form-group.has-error textarea{border-color:#C0392B}
.btn-submit{width:100%;padding:1rem;font-size:.8rem;letter-spacing:.16em}
.btn-submit:disabled{opacity:.65;cursor:not-allowed}
.contact-item{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.4rem}
.contact-icon{width:36px;height:36px;background:rgba(196,112,74,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-detail-label{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.38)}
.contact-detail-value{font-size:.88rem;color:var(--sand);margin-top:.2rem;font-weight:300}
a.contact-detail-value{text-decoration:none;display:block;transition:color .2s}
a.contact-detail-value:hover{color:var(--clay)}

/* ── FOOTER ── */
footer{
  background:var(--charcoal);
  position:relative;
  overflow:hidden;
}
/* subtle grain */
footer::before{
  content:'';position:absolute;inset:0;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E");
  pointer-events:none;
}
/* warm terracotta top accent line */
footer::after{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--clay),var(--terracotta),var(--clay),transparent);
  z-index:1;
}
.footer-inner{
  position:relative;z-index:2;
  max-width:1200px;margin:0 auto;
  padding:5rem 4rem 0;
}
.footer-top{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:3rem;
  padding-bottom:3.5rem;
  border-bottom:1px solid rgba(255,255,255,.07);
}
/* Brand column */
.footer-brand{}
.footer-brand-logo{
  display:flex;align-items:center;gap:.65rem;
  text-decoration:none;margin-bottom:1.4rem;
}
.footer-brand-tagline{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.08rem;font-weight:300;font-style:italic;
  color:rgba(217,201,176,.5);
  line-height:1.6;
  max-width:230px;
  margin-bottom:1.6rem;
}
.footer-social{display:flex;gap:.6rem;align-items:center;}
.footer-social a{
  width:34px;height:34px;
  border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;
  transition:border-color .3s,background .3s;
  flex-shrink:0;
}
.footer-social a:hover{border-color:var(--terracotta);background:rgba(196,112,74,.12);}
.footer-social a svg{transition:stroke .3s;}
.footer-social a:hover svg{stroke:var(--terracotta);}

/* Nav columns */
.footer-col-title{
  font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--clay);margin-bottom:1.3rem;
  display:flex;align-items:center;gap:.5rem;
}
.footer-col-title::after{content:'';flex:1;height:1px;background:rgba(196,112,74,.2);}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.55rem;}
.footer-col ul li a{
  font-size:.78rem;color:rgba(255,255,255,.38);text-decoration:none;
  letter-spacing:.06em;transition:color .25s,padding-left .25s;
  display:inline-block;
}
.footer-col ul li a:hover{color:var(--sand);padding-left:4px;}

/* Contact column specifics */
.footer-contact-item{
  display:flex;align-items:flex-start;gap:.7rem;margin-bottom:.9rem;
}
.footer-contact-icon{
  width:28px;height:28px;flex-shrink:0;
  background:rgba(196,112,74,.1);
  display:flex;align-items:center;justify-content:center;
  margin-top:1px;
}
.footer-contact-text{}
.footer-contact-label{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.26);}
.footer-contact-val{
  font-size:.78rem;color:rgba(217,201,176,.65);
  margin-top:.1rem;font-weight:300;
  text-decoration:none;display:block;transition:color .2s;
}
a.footer-contact-val:hover{color:var(--clay);}

/* Bottom bar */
.footer-bottom{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;
  padding:1.6rem 4rem;
  max-width:1200px;margin:0 auto;
}
.footer-copy{font-size:.66rem;color:rgba(255,255,255,.2);letter-spacing:.06em;}
.footer-copy a{color:rgba(217,201,176,.48);text-decoration:none;transition:color .2s;}
.footer-copy a:hover{color:var(--clay);}
.footer-bottom-links{
  display:flex;gap:0;list-style:none;
}
.footer-bottom-links a{
  font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.2);text-decoration:none;
  padding:.2rem .8rem;
  border-right:1px solid rgba(255,255,255,.08);
  transition:color .2s;
}
.footer-bottom-links li:last-child a{border-right:none;}
.footer-bottom-links a:hover{color:rgba(255,255,255,.5);}
.footer-made{font-size:.62rem;color:rgba(255,255,255,.12);letter-spacing:.06em;}
/* ── LEGAL MODALS ── */
.legal-modal{
  position:fixed;
  inset:0;
  z-index:950;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
  background:rgba(37,32,28,.82);
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
}
.legal-modal.open{opacity:1;pointer-events:all;}
.legal-dialog{
  position:relative;
  width:min(760px,100%);
  max-height:min(82vh,720px);
  overflow:auto;
  border:1px solid rgba(196,112,74,.22);
  border-radius:8px;
  background:var(--warm-white);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  padding:2.6rem 2.8rem;
  color:var(--ink);
}
.legal-close{
  position:sticky;
  top:0;
  float:right;
  width:42px;
  height:42px;
  margin:-1.2rem -1.4rem .5rem 1rem;
  border:1px solid rgba(42,36,31,.14);
  background:rgba(255,255,255,.76);
  color:var(--ink);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1rem;
  transition:background .2s,border-color .2s,color .2s;
}
.legal-close:hover{background:var(--charcoal);border-color:var(--charcoal);color:#fff;}
.legal-kicker{
  margin:0 0 .6rem;
  font-size:.66rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--terracotta);
}
.legal-dialog h2{
  margin:0;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:2.35rem;
  font-weight:300;
  line-height:1.08;
}
.legal-updated{
  margin:.65rem 0 1.6rem;
  font-size:.78rem;
  color:var(--muted);
}
.legal-body{display:flex;flex-direction:column;gap:.85rem;}
.legal-body h3{
  margin:.45rem 0 -.35rem;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bark);
}
.legal-body p{
  margin:0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.75;
}
.legal-body a{color:var(--terracotta);text-decoration:none;border-bottom:1px solid rgba(196,112,74,.28);}
.legal-body a:hover{border-bottom-color:var(--terracotta);}
@media(max-width:768px){
  .legal-modal{
    align-items:flex-end;
    padding:calc(1rem + env(safe-area-inset-top)) max(.9rem,env(safe-area-inset-right)) calc(.9rem + env(safe-area-inset-bottom)) max(.9rem,env(safe-area-inset-left));
  }
  .legal-dialog{
    max-height:86vh;
    padding:2rem 1.25rem 1.4rem;
  }
  .legal-dialog h2{font-size:1.9rem;}
  .legal-body p{font-size:.88rem;line-height:1.68;}
  .legal-close{
    width:40px;
    height:40px;
    margin:-.85rem -.55rem .35rem .8rem;
  }
}

/* ── FOOTER RESPONSIVE ── */
@media(max-width:1024px)and(min-width:769px){
  .footer-inner{padding:4rem 2.5rem 0}
  .footer-top{grid-template-columns:1fr 1fr;gap:2.5rem}
  .footer-bottom{padding:1.4rem 2.5rem}
}
@media(max-width:768px){.footer-inner{padding:3.5rem 1.4rem 0}
  .footer-top{grid-template-columns:1fr 1fr;gap:2rem 1.5rem;padding-bottom:2.5rem}
  .footer-brand{grid-column:span 2}
  .footer-brand-tagline{font-size:.95rem}
  .footer-bottom{padding:1.2rem 1.4rem;flex-direction:column;align-items:flex-start;gap:.6rem}
  .footer-bottom-links{flex-wrap:wrap}
}

/* ── BACK TO TOP ── */
.back-to-top{
  position:fixed;bottom:2rem;right:2rem;z-index:100;
  background:var(--terracotta);color:#fff;border:none;cursor:pointer;
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .25s,background .2s,transform .2s;
  left:auto;
}
.back-to-top.visible{opacity:1;pointer-events:all}
.back-to-top:hover{background:var(--bark);transform:translateY(-2px)}

/* ── REDUCED MOTION ── */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-tag,.hero-title,.hero-subtitle,.hero-btns,.hero-img{animation:none;opacity:1;transform:none}
  .reveal{opacity:1;transform:none;transition:none}
  .insta-marquee-track{animation:none}
  *{transition-duration:.01ms!important}
}

/* ── TABLET ── */
@media(max-width:1024px)and(min-width:769px){
  nav{padding:0 2rem}
  .hero-left{padding:3rem 2.5rem}
  .hero-title{font-size:3rem}
  .portfolio-section,.services-section,.process-section,.faq-section,.video-section{padding:5rem 2.5rem}
  .insta-section-header{padding:0 2.5rem 2rem}
  .contact-left,.contact-right{padding:4rem 2.5rem}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .faq-list{max-width:none}
}

/* ── MOBILE ── */
@media(max-width:768px){/* Nav */
  nav{top:0;width:100%;padding:0 1rem;height:58px;}
  /* Hide desktop nav links and CTA button */
  .nav-links{display:none !important;}
  .nav-cta{display:none !important;}
  /* Show hamburger */
  .hamburger{display:flex;}
  /* Hero */
  .hero{min-height:100svh;}
  .hero-content{padding:2rem 1.4rem;padding-top:calc(68px + 2rem);}
  .hero-title{font-size:2.4rem;line-height:1.06;}
  .hero-subtitle{font-size:.86rem;max-width:100%;}
  .hero-btns{gap:.8rem;}
  .btn-primary{padding:.8rem 1.8rem;font-size:.72rem;}
  /* Stats */
  .stats-bar{justify-content:flex-start;}
  .stat{padding:1.4rem 1rem;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);width:50%;}
  .stat:nth-child(odd){border-right:1px solid rgba(255,255,255,.08);}
  .stat:nth-child(3),.stat:nth-child(4){border-bottom:none;}
  .stat-num{font-size:2rem;}
  /* Portfolio */
  .portfolio-section{padding:3rem 1rem;}
  .portfolio-grid{grid-template-columns:1fr;gap:3px;}
  .portfolio-item{height:auto!important;grid-column:auto!important;aspect-ratio:4/3;}
  .portfolio-overlay{opacity:1;background:linear-gradient(to top,rgba(46,42,38,.7) 0%,transparent 55%);}
  .portfolio-label{transform:none;}
  .portfolio-filters{gap:.35rem;margin-top:1.5rem;margin-bottom:1.8rem;}
  .pf-btn{font-size:.6rem;padding:.38rem .9rem;}
  /* Section titles */
  .section-title{font-size:1.85rem;}
  /* Services / Process */
  .services-section,.process-section,.faq-section,.video-section,.insta-section,.contact-left,.contact-right{padding:3.5rem 1.4rem;}
  .services-grid{grid-template-columns:1fr;gap:3px;}
  .process-steps{grid-template-columns:1fr;gap:2rem;}
  .process-steps::before{display:none;}
  /* FAQ */
  .faq-list{gap:.6rem;margin-top:2rem;}
  /* Video sections */
  .video-inner,.video-inner.flip,.video-inner.portrait{grid-template-columns:1fr;gap:1.8rem;}
  .video-inner.flip .video-text{order:1;}
  .video-inner.flip .video-box{order:0;}
  .video-inner.portrait .video-box{max-height:360px;width:100%;}
  .video-box{aspect-ratio:16/9;}
  .video-text h2{font-size:1.8rem;}
  /* Instagram marquee */
  .insta-section{padding:3.5rem 0;}
  .insta-section-header{padding:0 1.4rem 1.5rem;}
  .insta-tile{width:150px;height:150px;}
  /* Contact */
  .contact-section{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  /* Lightbox on mobile — stack vertically, info hidden */
  .lb-inner{flex-direction:column;gap:.8rem;align-items:stretch;}
  .lb-img-wrap{max-height:70vh;}
  /* Back to top */
  .back-to-top{bottom:1.2rem;right:1.2rem;width:38px;height:38px;}
  /* Scroll progress */
  .scroll-progress{height:2px;}
  /* About section */
  .about-section{padding:3.5rem 1.4rem;}
  .about-inner{grid-template-columns:1fr;gap:2rem;}
  .about-img-box{aspect-ratio:4/3;max-height:320px;}
}

/* ── VERY SMALL SCREENS ── */
@media(max-width:420px){
  nav{padding:0 .7rem;height:54px;}
  .logo-text-wrap{display:none;}
  .hero-title{font-size:2rem;}
  .hero-content{padding:1.6rem 1.1rem;padding-top:calc(60px + 1.6rem);}
  .portfolio-section{padding:2.5rem .8rem;}
  .services-section,.process-section,.faq-section,.video-section,.contact-left,.contact-right{padding:2.8rem 1rem;}
  .stat{padding:1.1rem .8rem;}
  .insta-tile{width:130px;height:130px;}
  .mobile-menu a{font-size:1.75rem;padding:.7rem 2rem;}
}

/* ── SMARTPHONE POLISH: ANDROID + IPHONE ── */
@media(max-width:768px){html{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  body{
    overflow-x:hidden;
    min-width:320px;
  }
  body:has(.mobile-menu.open){
    overscroll-behavior:none;
  }
  button,a,input,textarea,select{
    touch-action:manipulation;
  }
  nav{
    height:calc(58px + env(safe-area-inset-top));
    padding:env(safe-area-inset-top) max(1rem,env(safe-area-inset-left)) 0 max(1rem,env(safe-area-inset-right));
    background:linear-gradient(to bottom,rgba(37,32,28,.52),rgba(37,32,28,0));
  }
  nav.scrolled{
    background:rgba(250,247,242,.94);
  }
  .logo-icon{
    width:36px;
    height:36px;
  }
  .logo-wordmark{
    font-size:1.15rem;
    letter-spacing:.06em;
  }
  .hamburger{
    width:44px;
    height:44px;
    margin-right:-.25rem;
  }
  .mobile-menu{
    padding:calc(70px + env(safe-area-inset-top)) 1.2rem calc(28px + env(safe-area-inset-bottom));
    justify-content:flex-start;
    overflow-y:auto;
  }
  .mobile-menu a{
    width:min(100%,320px);
    font-size:clamp(1.7rem,8vw,2.25rem);
    line-height:1.05;
    padding:.72rem 1rem;
  }
  .mobile-menu .mob-cta{
    width:min(100%,280px);
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:.9rem 1.4rem!important;
  }
  .hero{
    min-height:100svh;
    min-height:100dvh;
    align-items:flex-end;
    justify-content:flex-start;
  }
  .hero-video-bg video{
    transform:scale(1);
    object-position:center center;
  }
  .hero-video-bg::after{
    background:linear-gradient(180deg,rgba(37,32,28,.42) 0%,rgba(37,32,28,.36) 34%,rgba(37,32,28,.86) 100%);
  }
  .hero-content{
    width:100%;
    max-width:none;
    padding:calc(82px + env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-left)) calc(5.8rem + env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-right));
  }
  .hero-tag{
    gap:.5rem;
    font-size:.6rem;
    letter-spacing:.19em;
    margin-bottom:1.05rem;
  }
  .hero-tag::before{
    width:20px;
  }
  .hero-title{
    font-size:clamp(2.05rem,10.8vw,3.25rem);
    line-height:1.02;
    margin-bottom:1.05rem;
    max-width:11ch;
  }
  .hero-subtitle{
    font-size:.9rem;
    line-height:1.72;
    margin-bottom:1.55rem;
    max-width:32rem;
    color:rgba(255,255,255,.76);
  }
  .hero-btns{
    display:grid;
    grid-template-columns:1fr;
    gap:.75rem;
    width:min(100%,360px);
  }
  .btn-primary,.btn-ghost{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  .btn-primary{
    width:100%;
    padding:.9rem 1rem;
  }
  .btn-ghost{
    border:1px solid rgba(255,255,255,.28);
    padding:.85rem 1rem;
  }
  .hero-scroll{
    display:none;
  }
  .stats-bar{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .stat{
    width:auto;
    min-height:118px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
  }
  .section-tag{
    font-size:.64rem;
    letter-spacing:.18em;
  }
  .section-title{
    font-size:clamp(1.95rem,8vw,2.4rem);
    line-height:1.1;
  }
  .section-sub,.about-text p,.service-desc,.step-desc,.video-text p{
    font-size:.92rem;
    line-height:1.75;
  }
  .about-section,.portfolio-section,.services-section,.process-section,.faq-section,.video-section,.contact-left,.contact-right{
    padding-left:max(1.15rem,env(safe-area-inset-left));
    padding-right:max(1.15rem,env(safe-area-inset-right));
  }
  .about-img-box{
    max-height:none;
    aspect-ratio:1/1;
  }
  .portfolio-header{
    margin-bottom:1.4rem;
  }
  .portfolio-filters{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    gap:.5rem;
    margin:1.4rem -1.15rem 1.7rem;
    padding:0 1.15rem .55rem;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .portfolio-filters::-webkit-scrollbar{
    display:none;
  }
  .pf-btn{
    flex:0 0 auto;
    min-height:40px;
    padding:.55rem .85rem;
    letter-spacing:.12em;
    scroll-snap-align:start;
  }
  .portfolio-grid,.portfolio-grid.filtered{
    grid-template-columns:1fr;
    gap:.7rem;
  }
  .portfolio-item,.portfolio-grid.filtered .portfolio-item{
    height:auto!important;
    min-height:0;
    aspect-ratio:4/3;
    border-radius:2px;
  }
  .portfolio-item img{
    transform:none!important;
  }
  .portfolio-overlay{
    padding:1rem;
    opacity:1;
    background:linear-gradient(to top,rgba(46,42,38,.82) 0%,rgba(46,42,38,.2) 66%,transparent 100%);
  }
  .portfolio-room{
    font-size:1.18rem;
  }
  .portfolio-note{
    display:none;
  }
  .project-badge{
    top:.75rem;
    left:.75rem;
    max-width:calc(100% - 1.5rem);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .lb-open-hint{
    display:none;
  }
  .service-card,.faq-item{
    padding:1.65rem 1.25rem;
  }
  .faq-item{padding:0;}
  .faq-item summary{padding:1rem 1.1rem;font-size:.74rem;line-height:1.45;}
  .faq-item p{padding:0 1.1rem 1rem;font-size:.86rem;line-height:1.7;}
  .services-grid,.faq-list{
    gap:.85rem;
  }
  .process-steps{
    gap:1.45rem;
    margin-top:2.4rem;
  }
  .process-step{
    display:grid;
    grid-template-columns:52px 1fr;
    gap:.25rem 1rem;
    align-items:start;
  }
  .step-num{
    grid-row:span 2;
    font-size:2.7rem;
    margin:0;
  }
  .step-title{
    margin:.35rem 0 .35rem;
  }
  .video-inner,.video-inner.flip,.video-inner.portrait{
    gap:1.25rem;
  }
  .video-text h2{
    font-size:clamp(1.8rem,7vw,2.2rem);
  }
  .video-box{
    box-shadow:0 12px 32px rgba(0,0,0,.12);
  }
  .video-inner.portrait .video-box{
    aspect-ratio:9/16;
    max-height:min(72vh,520px);
    width:min(100%,360px);
  }
  .video-inner.portrait .video-box.mobile-hero-reuse{
    aspect-ratio:4/5;
    max-height:none;
    width:min(100%,390px);
  }
  .video-box.mobile-hero-reuse video{
    transform:scale(1.06);
    object-fit:cover;
    object-position:46% 42%;
  }
  .insta-marquee-wrap::before,.insta-marquee-wrap::after{
    width:36px;
  }
  .contact-form{
    gap:.95rem;
    margin-top:1.7rem;
  }
  .form-group input,.form-group textarea,.form-group select{
    min-height:46px;
    font-size:16px;
    padding:.85rem .9rem;
  }
  .form-group textarea{
    min-height:132px;
  }
  .contact-item{
    gap:.85rem;
  }
  .contact-icon{
    width:40px;
    height:40px;
  }
  .lb-overlay{
    padding:calc(62px + env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-left)) calc(1rem + env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-right));
  }
  .lb-inner{
    display:grid;
    grid-template-columns:1fr;
    align-items:center;
    gap:.75rem;
    max-width:460px;
    margin:0 auto;
  }
  .lb-img-wrap{
    grid-column:1;
    grid-row:1;
    max-height:62dvh;
    min-width:0;
  }
  .lb-img-wrap img{
    max-height:62dvh;
    width:100%;
    object-fit:contain;
  }
  .lb-info{
    grid-column:1;
    grid-row:2;
    width:100%;
    display:grid;
    grid-template-columns:1fr auto;
    gap:.35rem .85rem;
    padding:.85rem .95rem;
    background:rgba(37,32,28,.88);
    border:1px solid rgba(217,201,176,.12);
    -webkit-backdrop-filter:blur(14px) saturate(130%);
    backdrop-filter:blur(14px) saturate(130%);
  }
  .lb-tag{
    grid-column:1;
    font-size:.56rem;
    letter-spacing:.18em;
  }
  .lb-title{
    grid-column:1/-1;
    font-size:1.22rem;
    line-height:1.15;
  }
  .lb-type{
    grid-column:1;
    font-size:.62rem;
    letter-spacing:.08em;
  }
  .lb-note{
    grid-column:1/-1;
    margin-top:.05rem;
    font-size:.73rem;
    line-height:1.45;
    color:rgba(217,201,176,.58);
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .lb-category-btn{
    grid-column:1/-1;
    width:100%;
    margin-top:.1rem;
    padding:.7rem .75rem;
    font-size:.52rem;
    letter-spacing:.15em;
  }
  .lb-counter{
    grid-column:2;
    grid-row:1;
    align-self:start;
    margin-top:0;
    white-space:nowrap;
    font-size:.56rem;
  }
  .lb-close{
    position:fixed;
    top:calc(12px + env(safe-area-inset-top));
    right:max(12px,env(safe-area-inset-right));
    width:44px;
    height:44px;
  }
  .lb-arrow{
    position:absolute;
    top:clamp(118px,32vw,170px);
    transform:translateY(-50%);
    z-index:2;
    width:44px;
    height:44px;
    background:rgba(37,32,28,.68);
    border-color:rgba(217,201,176,.18);
  }
  #lbPrev{
    left:max(.75rem,env(safe-area-inset-left));
  }
  #lbNext{
    right:max(.75rem,env(safe-area-inset-right));
  }
  .back-to-top{
    bottom:calc(1rem + env(safe-area-inset-bottom));
    right:max(1rem,env(safe-area-inset-right));
    width:44px;
    height:44px;
  }
  .footer-inner{
    padding:3rem max(1.15rem,env(safe-area-inset-right)) 0 max(1.15rem,env(safe-area-inset-left));
  }
  .footer-top{
    grid-template-columns:1fr;
    gap:1.8rem;
  }
  .footer-brand{
    grid-column:auto;
  }
  .footer-brand-tagline{
    max-width:none;
  }
  .footer-bottom{
    padding:1.2rem max(1.15rem,env(safe-area-inset-right)) calc(1.2rem + env(safe-area-inset-bottom)) max(1.15rem,env(safe-area-inset-left));
  }
  .footer-bottom-links{
    gap:.4rem .7rem;
  }
  .footer-bottom-links a{
    padding:.25rem 0;
    border-right:none;
  }
}

@media(max-width:420px){
  nav{
    height:calc(56px + env(safe-area-inset-top));
    padding-left:max(.85rem,env(safe-area-inset-left));
    padding-right:max(.85rem,env(safe-area-inset-right));
  }
  .hero-content{
    padding:calc(70px + env(safe-area-inset-top)) max(1rem,env(safe-area-inset-left)) calc(4.8rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-right));
  }
  .hero-title{
    font-size:clamp(2rem,12vw,2.7rem);
  }
  .hero-subtitle{
    font-size:.86rem;
  }
  .logo-text-wrap{
    display:flex;
  }
  .logo-wordmark{
    font-size:1rem;
  }
  .portfolio-section{
    padding-top:2.8rem;
  }
  .portfolio-filters{
    margin-left:-1rem;
    margin-right:-1rem;
    padding-left:1rem;
    padding-right:1rem;
  }
  .portfolio-item,.portfolio-grid.filtered .portfolio-item{
    aspect-ratio:1/1;
  }
  .stat{
    min-height:106px;
    padding:1rem .7rem;
  }
  .stat-label{
    font-size:.6rem;
    letter-spacing:.11em;
  }
  .service-card,.faq-item{
    padding:1.45rem 1rem;
  }
  .faq-item{padding:0;}
  .process-step{
    grid-template-columns:44px 1fr;
  }
  .step-num{
    font-size:2.35rem;
  }
  .insta-tile{
    width:136px;
    height:136px;
  }
  .lb-info{
    padding:.78rem .85rem;
    gap:.3rem .7rem;
  }
  .lb-title{
    font-size:1.08rem;
  }
  .lb-note{
    font-size:.68rem;
    -webkit-line-clamp:2;
  }
}







/* ── EXHIBITION PORTFOLIO REFRESH ── */
.portfolio-section{background:var(--warm-white);padding:5.75rem max(1.25rem,4vw);overflow:hidden;}
.portfolio-header{max-width:720px;margin:0 auto 3.4rem;text-align:center;}
.portfolio-header .section-tag{display:block;color:var(--terracotta);letter-spacing:.36em;margin-bottom:1.55rem;}
.portfolio-header .section-title{max-width:680px;margin:0 auto;font-size:clamp(2.6rem,5.4vw,5.15rem);line-height:1;}
.portfolio-header .section-sub{max-width:560px;margin:1.65rem auto 0;font-size:.95rem;line-height:1.85;}
.portfolio-filters{justify-content:center;gap:.85rem 1.75rem;margin:2.45rem auto 0;padding-bottom:1rem;border-bottom:1px solid rgba(107,79,58,.08);}
.pf-btn{border:0;border-bottom:1px solid transparent;padding:.2rem 0 .5rem;background:transparent;color:rgba(84,67,60,.62);font-size:.56rem;letter-spacing:.28em;}
.pf-btn:hover{color:var(--terracotta);border-color:rgba(196,112,74,.35);}
.pf-btn.active{background:transparent;border-color:var(--terracotta);color:var(--terracotta);}
.portfolio-grid,.portfolio-grid.filtered{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;align-items:start;gap:clamp(.7rem,1.5vw,1.45rem);}
.portfolio-item,.portfolio-grid.filtered .portfolio-item{grid-column:span 4;aspect-ratio:4/3;height:auto!important;border-radius:0;background:var(--sand);box-shadow:none;isolation:isolate;}
.portfolio-item:nth-child(10n+1),.portfolio-item:nth-child(10n+6){grid-column:span 8;aspect-ratio:16/9;}
.portfolio-item:nth-child(10n+2),.portfolio-item:nth-child(10n+7){grid-column:span 4;aspect-ratio:4/5;margin-top:0;}
.portfolio-item:nth-child(10n+4),.portfolio-item:nth-child(10n+9){grid-column:span 6;aspect-ratio:4/3;margin-top:0;}
.portfolio-item:nth-child(10n+5),.portfolio-item:nth-child(10n+10){grid-column:span 6;aspect-ratio:4/3;margin:0;}
.portfolio-grid.filtered .portfolio-item{grid-column:span 4!important;aspect-ratio:4/3;margin-top:0!important;}
.portfolio-grid.filtered .portfolio-item:nth-child(6n+1){grid-column:span 8!important;aspect-ratio:16/9;}
.portfolio-grid.filtered .portfolio-item:nth-child(6n+4){grid-column:span 6!important;}
.portfolio-item img{transition:transform 1.25s var(--ease-out-expo),filter .6s ease;}
.portfolio-item:hover img{transform:scale(1.08);filter:brightness(.88);}
.portfolio-overlay{background:linear-gradient(to top,rgba(30,27,23,.82) 0%,rgba(30,27,23,.14) 58%,rgba(30,27,23,0) 100%);padding:clamp(1.1rem,2.2vw,2.2rem);transition:opacity .55s var(--ease-out-expo);}
.portfolio-label{transform:translateY(18px);transition:transform .65s var(--ease-out-expo);}
.portfolio-room{font-size:clamp(1.35rem,2.25vw,2.75rem);line-height:1.05;}
.portfolio-type{color:var(--terracotta);letter-spacing:.34em;font-size:.56rem;margin-bottom:.75rem;opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s var(--ease-out-expo);}
.portfolio-note{max-width:360px;font-family:'Cormorant Garamond',Georgia,serif;color:rgba(217,201,176,.76);font-size:clamp(.9rem,1.25vw,1.2rem);line-height:1.3;margin-top:.55rem;}
.portfolio-item:hover .portfolio-type{opacity:1;transform:translateY(0);}
.project-badge{background:rgba(250,247,242,.94);color:var(--bark);padding:.38rem .85rem;letter-spacing:.26em;font-size:.54rem;}
.lb-open-hint{top:1.25rem;right:1.25rem;background:var(--terracotta);}
.portfolio-more-wrap{margin-top:2.6rem;}
.portfolio-more-btn{position:relative;padding:1.05rem 2.8rem;border-color:rgba(107,79,58,.16);letter-spacing:.3em;background:transparent;}
.portfolio-more-btn::after{content:'';display:inline-block;width:38px;height:1px;margin-left:1.2rem;vertical-align:middle;background:currentColor;transition:width .25s ease,background .25s ease;}
.portfolio-more-btn:hover::after{width:54px;}
@media(max-width:1024px)and(min-width:769px){.portfolio-section{padding:4.8rem 1.5rem;}.portfolio-header{margin-bottom:2.8rem;}.portfolio-grid,.portfolio-grid.filtered{max-width:860px;gap:1rem;}.portfolio-item:nth-child(n),.portfolio-grid.filtered .portfolio-item:nth-child(n){grid-column:span 6!important;aspect-ratio:4/3;margin-top:0!important;}.portfolio-item:nth-child(5n+1),.portfolio-grid.filtered .portfolio-item:nth-child(5n+1){grid-column:span 12!important;aspect-ratio:16/9;}}
@media(max-width:768px){.portfolio-section{padding:3rem max(1rem,env(safe-area-inset-left)) 3.5rem max(1rem,env(safe-area-inset-right));}.portfolio-header{text-align:left;margin-bottom:1.65rem;}.portfolio-header .section-tag{letter-spacing:.24em;margin-bottom:1rem;}.portfolio-header .section-title{font-size:2.15rem;line-height:1.06;margin:0;max-width:360px;}.portfolio-header .section-sub{margin:1rem 0 0;font-size:.86rem;line-height:1.7;max-width:31rem;}.portfolio-filters{justify-content:flex-start;margin:1.25rem -1rem 1.45rem;padding:0 1rem .75rem;gap:1rem;overflow-x:auto;flex-wrap:nowrap;}.pf-btn{flex:0 0 auto;font-size:.52rem;letter-spacing:.18em;min-height:auto;padding:.35rem 0 .5rem;}.portfolio-grid,.portfolio-grid.filtered{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;}.portfolio-item:nth-child(n),.portfolio-grid.filtered .portfolio-item:nth-child(n){grid-column:span 1!important;aspect-ratio:1/1!important;margin-top:0!important;min-height:0;}.portfolio-item:nth-child(5n+1),.portfolio-grid.filtered .portfolio-item:nth-child(5n+1){grid-column:span 2!important;aspect-ratio:16/10!important;}.portfolio-overlay{opacity:1;padding:.75rem;background:linear-gradient(to top,rgba(30,27,23,.78) 0%,rgba(30,27,23,.16) 66%,transparent 100%);}.portfolio-label{transform:none;}.portfolio-type{opacity:1;transform:none;font-size:.45rem;letter-spacing:.16em;margin-bottom:.25rem;}.portfolio-room{font-size:1rem;line-height:1.05;}.portfolio-note{display:none;}.project-badge{top:.55rem;left:.55rem;padding:.3rem .55rem;font-size:.44rem;letter-spacing:.14em;}.lb-open-hint{display:none;}.portfolio-more-wrap{margin-top:1.35rem;}.portfolio-more-btn{width:100%;padding:.9rem 1rem;letter-spacing:.2em;}.portfolio-more-btn::after{width:28px;margin-left:.8rem;}}
@media(max-width:420px){.portfolio-grid,.portfolio-grid.filtered{gap:.6rem;}.portfolio-header .section-title{font-size:1.95rem;}.portfolio-room{font-size:.9rem;}.portfolio-overlay{padding:.62rem;}.project-badge{font-size:.4rem;}.portfolio-item:nth-child(5n+1),.portfolio-grid.filtered .portfolio-item:nth-child(5n+1){aspect-ratio:4/3!important;}}

@media (max-width: 768px) {
  .hero-video-bg {
    background-image: url("img_exterior_hero.png");
  }
  .hero-video-bg video {
    display: block;
  }
}
