
:root {
  --bg:#f3f2ed;
  --ink:#0a0a0a;
  --line:#bbb7ae;
  --muted:#77736c;
  --pad:clamp(20px,3.2vw,52px);
  --gap:clamp(16px,1.65vw,28px);
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
}


body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}

img{display:block;width:100%}

.site-header{
  position:fixed;z-index:50;top:0;left:0;right:0;height:70px;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 var(--pad);background:rgba(243,242,237,.9);
  backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.15);
}
.brand{display:flex;align-items:center;gap:11px;font-size:15px;font-weight:600;letter-spacing:-.02em}
.brand img{width:26px;height:26px;object-fit:contain}
.main-nav{display:flex;gap:28px;text-transform:uppercase;font-size:10px;letter-spacing:.1em}
.main-nav a:hover{opacity:.5}
.project-crumb{justify-self:end;font-size:10px;letter-spacing:.11em;text-transform:uppercase;opacity:0;transform:translateY(-4px);transition:.35s ease}
body.scrolled .project-crumb{opacity:1;transform:none}

main{padding-top:70px}

/* HERO */
.project-hero{min-height:calc(100vh - 70px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding:0 var(--pad)}
.hero-copy{grid-column:1 / span 5;padding:clamp(34px,5vw,72px) 0 42px;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100vh - 70px)}
.hero-image{grid-column:6 / -1;min-height:calc(100vh - 70px);overflow:hidden;border-left:1px solid var(--line)}
.hero-image img{height:100%;object-fit:cover;object-position:50% 48%;transition:transform 1.4s cubic-bezier(.2,.65,.25,1);transform:scale(1.015)}
.loaded .hero-image img{transform:scale(1)}
.kicker{font-size:10px;text-transform:uppercase;letter-spacing:.14em}
.hero-title{margin:0;font-size:clamp(70px,8.2vw,132px);line-height:.81;letter-spacing:-.07em;font-weight:650;text-transform:uppercase;max-width:4.9ch;text-indent:-.045em}
.hero-meta{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:15px;gap:14px}
.meta-cell span{display:block}
.meta-label{color:var(--muted);font-size:8px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.meta-value{font-size:11px;letter-spacing:.07em;text-transform:uppercase;line-height:1.45}

/* INTRO */
.project-intro{
  background:#050505;
  color:#f3f0e8;
  padding:48px var(--pad) 44px;
  min-height:78vh;
  display:flex;
  align-items:center;
}
.intro-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:var(--gap);
  row-gap:0;
  align-items:start;
}
.intro-index{
  grid-column:1 / span 2;
  grid-row:1;
  color:#8a857d;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:62px;
}
.intro-head{
  grid-column:1 / span 4;
  grid-row:2;
  align-self:center;
}
.intro-head h2{
  margin:0;
  font-size:clamp(64px,6.25vw,138px);
  line-height:.88;
  letter-spacing:-.055em;
  font-weight:650;
  text-transform:uppercase;
}
.intro-logo{
  grid-column:5 / span 2;
  grid-row:2;
  align-self:center;
  justify-self:center;
  margin:0;
}
.intro-logo img{
  display:block;
  width:min(23vw,310px);
  min-width:190px;
  height:auto;
  object-fit:contain;
}
.intro-copy{
  grid-column:8 / -1;
  grid-row:2;
  align-self:center;
  font-family:var(--serif);
  font-size:clamp(19px,1.45vw,27px);
  line-height:1.12;
  max-width:820px;
}
.intro-copy p{margin:0}
.intro-note{
  grid-column:8 / -1;
  grid-row:3;
  margin-top:38px;
  padding-top:18px;
  border-top:1px solid rgba(243,240,232,.18);
  font-size:11px;
  line-height:1.5;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#8a857d;
}

@media(max-width:1200px){
  .intro-head h2{font-size:clamp(54px,5.6vw,112px)}
  .intro-copy{font-size:clamp(18px,1.55vw,25px)}
  .intro-logo img{width:min(22vw,270px);min-width:170px}
}
@media(max-width:900px){
  .project-intro{
    min-height:auto;
    padding-top:56px;
    padding-bottom:56px;
  }
  .intro-grid{
    display:block;
  }
  .intro-index{
    margin-bottom:32px;
  }
  .intro-head{
    margin-bottom:28px;
  }
  .intro-head h2{
    font-size:clamp(52px,16vw,92px);
  }
  .intro-logo{
    margin:26px 0 30px;
  }
  .intro-logo img{
    width:min(72vw,360px);
    min-width:0;
  }
  .intro-copy{
    max-width:none;
    font-size:clamp(22px,6vw,30px);
    line-height:1.15;
  }
  .intro-note{
    margin-top:22px;
  }
}

/* SECTIONS */
.project-section{padding:82px var(--pad);border-bottom:1px solid var(--line)}
.section-label{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);margin-bottom:36px;align-items:end}
.section-label .num{grid-column:1 / span 2;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.section-label h2{grid-column:4 / -1;margin:0;font-size:clamp(48px,6.4vw,100px);line-height:.86;letter-spacing:-.055em;text-transform:uppercase;font-weight:600}
.caption{margin-top:9px;font-size:8px;line-height:1.45;letter-spacing:.13em;text-transform:uppercase;color:#6f6b65}
.media-frame{overflow:hidden;background:#ddd}
.media-frame img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.65,.25,1)}
.media-frame:hover img{transform:scale(1.012)}

.full-media{width:100%}
.full-media .media-frame{aspect-ratio:16/10}
.full-media .media-frame img{object-position:50% 49%}

.split-58{display:grid;grid-template-columns:7fr 5fr;gap:var(--gap);align-items:start}
.split-58 .a .media-frame{aspect-ratio:4/5}
.split-58 .b{margin-top:15vw}
.split-58 .b .media-frame{aspect-ratio:4/5}


.objects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);align-items:start}
.objects-grid .media-frame{aspect-ratio:4/5}
.objects-grid article:nth-child(2){margin-top:9vw}
.objects-grid article:nth-child(3){margin-top:3vw}

.arch-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap)}
.arch-main{grid-column:1 / span 8}
.arch-main .media-frame{aspect-ratio:4/3}
.arch-side{grid-column:9 / -1;margin-top:12vw}
.arch-side .media-frame{aspect-ratio:4/5}

.night{background:#080808;color:#efeee9;border-color:#292929}
.night .section-label .num{color:#89847c}
.night .section-label h2{color:#efeee9}
.night .night-main .media-frame{aspect-ratio:16/9}
.night .night-pair{display:grid;grid-template-columns:5fr 7fr;gap:var(--gap);align-items:start;margin-top:var(--gap)}
.night .night-pair .left .media-frame{aspect-ratio:2/3}
.night .night-pair .right{padding-top:14vw}
.night .night-copy{font-family:var(--serif);font-size:clamp(22px,2vw,32px);line-height:1.22;margin:38px 0 0 auto;max-width:19ch;color:#e5e1da}

/* CREDITS */
.credits{padding:58px var(--pad) 68px;background:var(--bg)}
.credits-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:11px;border-top:1px solid var(--line);padding-top:18px}
.credits-title{grid-column:1 / span 3;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.credit-row{grid-column:5 / -1;display:grid;grid-template-columns:3fr 5fr;gap:var(--gap);padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.1);font-size:10px;line-height:1.4;letter-spacing:.09em;text-transform:uppercase}
.credit-row .label{color:var(--muted)}

/* FOOTER */
#eb-footer.eb-footer{
  width:100%;padding:30px var(--pad) 14px;background:var(--bg);font-family:var(--sans);
  text-transform:uppercase;letter-spacing:.105em;border-top:1px solid var(--line)
}
#eb-footer .eb-footer-top{width:min(100%,1380px);margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(70px,8vw,160px);align-items:start}
#eb-footer .eb-footer-col{display:flex;flex-direction:column;align-items:center;text-align:center}
#eb-footer .eb-footer-label{margin:0 0 17px;color:#8f8a83;font-size:9px;line-height:1;letter-spacing:.16em}
#eb-footer .eb-footer-col a,#eb-footer .eb-footer-col span{display:block;margin:0 0 7px;font-size:11px;line-height:1.42;font-weight:600;letter-spacing:.105em;text-align:center}
#eb-footer .eb-footer-col a{width:max-content;max-width:100%;border-bottom:1px solid transparent}
#eb-footer .eb-footer-col a:hover{border-bottom-color:currentColor;opacity:.58}
#eb-footer .eb-footer-bottom{margin:29px auto 0;text-align:center;color:#85817a}
#eb-footer .eb-footer-copy,#eb-footer .eb-footer-rights{display:block;margin:0;color:#85817a;font-size:10px;line-height:1.55;font-weight:400;letter-spacing:.12em}
#eb-footer .eb-footer-legal{display:flex;justify-content:center;gap:31px;margin:22px 0 0}
#eb-footer .eb-footer-legal a{color:#77736d;font-size:10px;letter-spacing:.12em;border-bottom:1px solid transparent}
#eb-footer .eb-footer-legal a:hover{border-bottom-color:currentColor}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.on{opacity:1;transform:none}

@media(max-width:900px){
  .site-header{grid-template-columns:1fr auto}
  .main-nav{display:none}
  .project-crumb{display:none}
  .project-hero{display:block;padding:0}
  .hero-copy{min-height:auto;padding:42px var(--pad)}
  .hero-title{font-size:clamp(64px,18vw,104px);max-width:6ch;margin:90px 0 70px}
  .hero-image{min-height:72vh;border-left:0;border-top:1px solid var(--line)}
  .intro-grid{display:block}
  .intro-index{margin-bottom:45px}
  .intro-head{margin-bottom:40px}
  .intro-copy,.intro-note{max-width:680px}
  .section-label{display:block}
  .section-label .num{margin-bottom:16px}
  .split-58{grid-template-columns:1fr 1fr}
  .split-58 .b{margin-top:10vw}
  .objects-grid{grid-template-columns:repeat(3,1fr)}
  .arch-main{grid-column:1 / span 7}
  .arch-side{grid-column:8 / -1}
  #eb-footer .eb-footer-top{column-gap:30px}
}
@media(max-width:640px){
  .project-section,.project-intro{padding-top:70px;padding-bottom:74px}
  .hero-meta{grid-template-columns:1fr}
  .section-label h2{font-size:56px}
  .split-58,.objects-grid,.night .night-pair{grid-template-columns:1fr}
  .split-58 .b,.objects-grid article:nth-child(2),.objects-grid article:nth-child(3),.night .night-pair .right{margin-top:0;padding-top:0}
  .split-58{gap:42px}
  .objects-grid{gap:42px}
  .arch-grid{display:block}
  .arch-side{margin-top:42px}
    .credit-row{grid-column:1 / -1;grid-template-columns:1fr;gap:4px}
  .credits-title{grid-column:1 / -1;margin-bottom:20px}
  #eb-footer .eb-footer-top{grid-template-columns:1fr;row-gap:30px}
  #eb-footer .eb-footer-legal{gap:20px;flex-wrap:wrap}
}

/* V6 — large-format editorial montage */
.project-flow{
  padding:72px var(--pad) 82px;
  border-bottom:1px solid var(--line);
}
.flow-wide{
  width:100%;
  margin:0 auto;
}
.flow-wide .media-frame{
  width:100%;
  aspect-ratio:16/10;
}
.flow-wide .media-frame img{
  object-position:center;
}

.flow-phrase{
  margin:54px auto 58px;
  max-width:1200px;
  text-align:center;
}
.flow-phrase p{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(30px,3.1vw,52px);
  line-height:1.08;
  letter-spacing:-.025em;
}

.flow-pair{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  align-items:start;
}
.flow-pair .media-frame{
  aspect-ratio:4/5;
}
.flow-pair .media-frame img{
  object-position:center;
}

.flow-architecture{
  margin-top:var(--gap);
}
.flow-architecture .media-frame{
  aspect-ratio:16/9;
}

.flow-objects{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--gap);
  align-items:start;
}
.flow-objects .media-frame{
  aspect-ratio:4/5;
}

.flow-interiors{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--gap);
  align-items:start;
  margin-top:var(--gap);
}

.media-frame.no-crop{
  aspect-ratio:auto !important;
  overflow:visible;
  background:transparent;
}
.media-frame.no-crop img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.media-frame.no-crop:hover img{transform:none}

.flow-night{
  background:#080808;
  color:#f0eee9;
  padding:78px var(--pad) 86px;
  border-bottom:1px solid #252525;
}
.flow-night .flow-phrase{
  margin-top:0;
}
.flow-night .flow-phrase p{
  color:#f0eee9;
}
.flow-night-main .media-frame{
  aspect-ratio:16/9;
}
.flow-night-bottom{
  display:grid;
  grid-template-columns:minmax(340px,520px) minmax(0,1fr);
  gap:clamp(34px,4vw,58px);
  margin-top:var(--gap);
  align-items:stretch;
}
.flow-night-bottom .portrait{
  width:100%;
  max-width:520px;
}
.flow-night-bottom .portrait .media-frame{
  aspect-ratio:2/3;
}
.flow-night-side{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:100%;
  gap:30px;
}
.flow-night-copy{
  font-family:var(--serif);
  font-size:clamp(20px,1.7vw,29px);
  line-height:1.14;
  max-width:14.8ch;
  margin:0;
  color:#d9d5ce;
  text-align:center;
}
.flow-night-logo{
  width:min(100%,680px);
  min-height:320px;
  background:#050505;
  border:1px solid rgba(255,255,255,.03);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px 26px;
  margin:0 auto;
}
.flow-night-logo img{
  display:block;
  width:min(54%,360px);
  max-width:100%;
  height:auto;
}

.flow-caption{
  margin-top:9px;
  font-size:8px;
  line-height:1.4;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#77726b;
}
.flow-night .flow-caption{color:#77726b}

@media(max-width:760px){
  .project-flow{padding-top:54px;padding-bottom:60px}
  .flow-pair,.flow-objects,.flow-interiors,.flow-night-bottom{grid-template-columns:1fr}
  .flow-objects,.flow-interiors{gap:24px}
  .flow-night-bottom{gap:28px}
  .flow-night-bottom .portrait{max-width:70%}
  .flow-night-copy{max-width:100%;font-size:clamp(18px,5vw,26px);text-align:center}
  .flow-night-logo{min-height:220px;padding:26px 18px;width:100%}
  .flow-night-logo img{width:min(62%,280px)}
  .flow-phrase{margin:38px 0 42px}
  .flow-phrase p{font-size:34px}
}


}


/* IGNA-specific adjustments, built on the Street Bangkok project template */
.hero-image{background:#050505;overflow:hidden}
.hero-image video{
  display:block;
  width:100%;
  height:100%;
  min-height:calc(100vh - 70px);
  object-fit:cover;
  object-position:center;
  background:#050505;
}
.intro-logo.igna-sketch img{
  width:min(25vw,350px);
  min-width:210px;
}
.flow-video-square{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#080808;
  padding:clamp(28px,4vw,62px);
}
.flow-video-square video{
  width:min(72vw,980px);
  aspect-ratio:1/1;
  object-fit:cover;
  background:#080808;
}
.long-video-section{
  background:#080808;
  color:#f0eee9;
  padding:76px var(--pad) 88px;
  border-bottom:1px solid #252525;
}
.long-video-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
}
.long-video-wrap video{
  display:block;
  height:min(88vh,1040px);
  width:auto;
  max-width:100%;
  object-fit:contain;
  background:#080808;
}
.photo-wide .media-frame,
.photo-pair .media-frame{
  aspect-ratio:auto !important;
  background:transparent;
}
.photo-wide .media-frame img,
.photo-pair .media-frame img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.photo-wide .media-frame:hover img,
.photo-pair .media-frame:hover img{
  transform:none;
}
.photo-pair{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  align-items:start;
  margin-top:var(--gap);
}
.construction-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--gap);
  align-items:start;
}
.construction-grid .media-frame{
  aspect-ratio:auto !important;
  background:var(--bg);
  overflow:visible;
}
.construction-grid .media-frame img{
  width:100%;
  height:auto;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.construction-grid .media-frame:hover img{transform:none}
@media(max-width:980px){
  .photo-pair,.construction-grid{grid-template-columns:1fr}
  .hero-image video{min-height:60vh}
  .intro-logo.igna-sketch img{width:min(74vw,420px);min-width:0}
  .long-video-wrap video{height:auto;width:min(82vw,720px)}
}

/* IGNA v4 refinements */
.long-video-section{
  background:#080808;
  color:#f0eee9;
  padding:76px var(--pad) 88px;
  border-bottom:1px solid #252525;
}
.light-motion-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:var(--gap);
  align-items:start;
}
.light-motion-video{
  display:flex;
  justify-content:flex-start;
  align-items:flex-start;
}
.light-motion-video video{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  background:#080808;
}
.light-motion-details{
  display:grid;
  gap:var(--gap);
}
.light-motion-details .media-frame{
  aspect-ratio:auto !important;
  background:transparent;
  overflow:visible;
}
.light-motion-details .media-frame img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.light-motion-details .media-frame:hover img{transform:none}
.surface-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap);
  align-items:start;
}
.surface-grid .media-frame{
  aspect-ratio:auto !important;
  background:transparent;
  overflow:visible;
}
.surface-grid .media-frame img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.surface-grid .media-frame:hover img{transform:none}
.construction-block{margin-top:0}
.construction-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--gap);
  align-items:start;
}
.construction-grid .media-frame{
  aspect-ratio:auto !important;
  background:var(--bg);
  overflow:visible;
}
.construction-grid .media-frame img{
  width:100%;
  height:auto;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.construction-grid .media-frame:hover img{transform:none}
@media(max-width:980px){
  .light-motion-grid,.surface-grid,.construction-grid{grid-template-columns:1fr}
}
