
/* ============================================================
   上海维界设计 · WEIJIE DESIGN
   Naturalism / Wabi-sabi — visual system
   ------------------------------------------------------------
   00 tokens & reset
   01 typography & utilities
   02 header & navigation
   03 hero
   04 shared components (media / links / section heads)
   05 home sections
   06 page hero & works index
   07 about
   08 contact & footer
   09 project detail
   10 motion & responsive
   ============================================================ */

/* ---------- 00 tokens & reset ---------- */
:root{
  --paper:#F4F1EA;
  --paper-2:#EDE8DD;
  --paper-3:#E3DCCF;
  --ink:#1A1916;
  --ink-80:#3B3832;
  --ink-65:#5F5B52;
  --ink-50:#6F6A60;
  --ink-35:#736D62;
  --line:rgba(26,25,22,.13);
  --line-strong:rgba(26,25,22,.3);
  --dark:#161513;
  --cream:#F4F1EA;
  --cream-70:rgba(244,241,234,.7);
  --cream-45:rgba(244,241,234,.58);
  --cream-line:rgba(244,241,234,.14);
  --clay:#9C7052;
  --moss:#6F7560;
  --serif:"Cormorant Garamond","Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Inter","Noto Sans SC","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,.05,.36,1);
  --pad:clamp(20px,4.6vw,76px);
  --header:86px;
}

*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  background:var(--paper);
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.85;
  font-weight:400;
  letter-spacing:.012em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
}

body.is-locked{overflow:hidden;}

h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
img,svg,video{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;}
input,textarea,select{font:inherit;color:inherit;}
::selection{background:var(--clay);color:var(--paper);}

:focus-visible{
  outline:1px solid var(--ink);
  outline-offset:5px;
}

/* subtle film grain over the entire page */
.grain{
  position:fixed;
  inset:-40%;
  z-index:900;
  pointer-events:none;
  opacity:.055;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  background-size:180px 180px;
}

/* ---------- 01 typography & utilities ---------- */
.serif{font-family:var(--serif);font-weight:300;}

.container{
  width:min(calc(100% - var(--pad) * 2),1560px);
  margin-inline:auto;
}

.section{
  position:relative;
  padding-block:clamp(84px,11.5vw,170px);
}
.section--soft{background:var(--paper-2);}
.section--tight{padding-block:clamp(64px,8vw,120px);}

.eyebrow{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:var(--sans);
  font-size:10px;
  line-height:1.4;
  font-weight:500;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.eyebrow::before{
  content:"";
  display:block;
  width:28px;
  height:1px;
  background:currentColor;
  opacity:.55;
  flex:none;
}
.eyebrow--plain::before{display:none;}
.eyebrow .num{color:var(--ink-35);letter-spacing:.16em;}

.display{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.6rem,5.2vw,5.4rem);
  line-height:1.12;
  letter-spacing:.012em;
}

.section-title{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.5rem,5.4vw,5.6rem);
  line-height:1.04;
  letter-spacing:.01em;
}

.lead{
  font-size:clamp(14px,1.05vw,16px);
  line-height:2.05;
  color:var(--ink-65);
  max-width:34em;
}

.small{
  font-size:10px;
  line-height:1.6;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
}

.en{
  font-family:var(--serif);
  font-weight:300;
  font-style:italic;
  letter-spacing:.02em;
}

.rule{
  height:1px;
  width:100%;
  background:var(--line);
}

.sr-only{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.skip-link{
  position:fixed;
  left:24px;top:18px;
  z-index:2000;
  padding:12px 18px;
  background:var(--ink);
  color:var(--paper);
  font-size:12px;
  letter-spacing:.1em;
  transform:translateY(-160%);
  transition:transform .3s var(--ease);
}
.skip-link:focus{transform:none;}

/* arrow link */
.link-arrow{
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-size:11px;
  font-weight:500;
  letter-spacing:.14em;
  color:var(--ink);
  padding-bottom:7px;
  border-bottom:1px solid var(--line-strong);
  transition:gap .55s var(--ease),border-color .4s ease,color .4s ease;
}
.link-arrow svg{
  width:13px;height:13px;
  transition:transform .55s var(--ease);
  flex:none;
}
.link-arrow:hover{gap:22px;border-color:var(--ink);}
.link-arrow:hover svg{transform:translateX(3px);}
.link-arrow--light{color:var(--cream);border-color:rgba(244,241,234,.32);}
.link-arrow--light:hover{border-color:var(--cream);}

/* text mask reveal for headline lines */
.line-mask{display:block;overflow:hidden;}
.line-mask > span{display:block;}

/* ---------- 02 header & navigation ---------- */
.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:1000;
  display:flex;
  align-items:center;
  gap:clamp(20px,3vw,56px);
  padding:22px var(--pad);
  transition:padding .6s var(--ease),transform .7s var(--ease),background .4s ease;
}
.site-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(244,241,234,.78);
  border-bottom:1px solid transparent;
  opacity:0;
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  transition:opacity .55s ease,border-color .55s ease;
}
.site-header.is-scrolled{padding-block:13px;}
.site-header.is-scrolled::before{opacity:1;border-color:var(--line);}
.site-header.is-hidden{transform:translateY(-102%);}

.brand{
  display:inline-flex;
  align-items:baseline;
  gap:12px;
  flex:none;
  padding-bottom:2px;
}
.brand__zh{
  font-family:var(--serif);
  font-weight:400;
  font-size:20px;
  letter-spacing:.18em;
  line-height:1;
}
.brand__en{
  font-family:var(--sans);
  font-size:8px;
  line-height:1.3;
  font-weight:500;
  letter-spacing:.26em;
  color:var(--ink-50);
  text-transform:uppercase;
  transform:translateY(-1px);
}
.brand:hover .brand__en{color:var(--ink-65);}

.nav{
  display:flex;
  align-items:center;
  gap:clamp(22px,3vw,46px);
  margin-left:auto;
}
.nav__link{
  position:relative;
  display:inline-flex;
  align-items:baseline;
  gap:8px;
  font-size:12px;
  line-height:1.4;
  letter-spacing:.1em;
  color:var(--ink-65);
  padding:6px 0;
  transition:color .35s ease;
}
.nav__link .nav__en{
  font-size:8px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-35);
  transition:color .35s ease;
}
.nav__link::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:1px;
  background:var(--ink);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .55s var(--ease);
}
.nav__link:hover{color:var(--ink);}
.nav__link:hover .nav__en{color:var(--ink-50);}
.nav__link:hover::after{transform:scaleX(1);transform-origin:left;}
.nav__link.is-active{color:var(--ink);}
.nav__link.is-active::after{transform:scaleX(1);transform-origin:left;background:var(--clay);}

.header__cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex:none;
  margin-left:clamp(4px,1.5vw,22px);
  font-size:11px;
  letter-spacing:.12em;
  color:var(--ink);
  padding:9px 0;
}
.header__cta .dot{
  width:6px;height:6px;
  border-radius:50%;
  background:var(--clay);
  transition:transform .5s var(--ease);
}
.header__cta:hover .dot{transform:scale(1.7);}

.menu-btn{
  display:none;
  width:42px;height:42px;
  margin-left:auto;
  position:relative;
  flex:none;
  align-items:center;
  justify-content:center;
}
.menu-btn span{
  position:absolute;
  left:9px;right:9px;
  height:1px;
  background:var(--ink);
  transition:transform .55s var(--ease),opacity .3s ease,top .55s var(--ease);
}
.menu-btn span:nth-child(1){top:17px;}
.menu-btn span:nth-child(2){top:24px;}
.menu-btn[aria-expanded="true"] span:nth-child(1){top:21px;transform:rotate(45deg);}
.menu-btn[aria-expanded="true"] span:nth-child(2){top:21px;transform:rotate(-45deg);}

.mobile-nav{
  position:fixed;
  inset:0;
  z-index:990;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow-y:auto;
  overscroll-behavior:contain;
  gap:0;
  padding:calc(var(--header) + 20px) var(--pad) 34px;
  background:var(--paper);
  opacity:0;
  visibility:hidden;
  transform:translateY(-12px);
  transition:opacity .55s var(--ease),visibility .55s,transform .55s var(--ease);
}
.mobile-nav.is-open{opacity:1;visibility:visible;transform:none;}
.mobile-nav__list{border-top:1px solid var(--line);}
.mobile-nav__link{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.2rem,8.6vw,3.6rem);
  line-height:1.15;
  letter-spacing:.02em;
}
.mobile-nav__link span{
  font-family:var(--sans);
  font-size:9px;
  letter-spacing:.22em;
  color:var(--ink-35);
  text-transform:uppercase;
}
.mobile-nav__meta{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:auto;
  padding-top:36px;
  font-size:10px;
  letter-spacing:.14em;
  color:var(--ink-50);
}

/* ---------- 03 hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  padding:calc(var(--header) + 12px) var(--pad) 0;
  overflow:hidden;
  background:var(--paper);
}
.hero__art{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.hero__light{
  position:absolute;
  width:110vw;height:110vw;
  left:22%;top:-58%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,252,246,.96) 0%,rgba(255,252,246,.55) 32%,rgba(255,252,246,0) 66%);
  filter:blur(8px);
  will-change:transform;
}
.hero__arch{
  position:absolute;
  right:5.5vw;
  top:11vh;
  width:min(31vw,520px);
  height:min(70vh,780px);
  border-radius:50% 50% 0 0 / 62% 62% 0 0;
  background-color:#D5C8B4;
  background-image:
    linear-gradient(180deg,rgba(244,241,234,.16) 0%,rgba(244,241,234,0) 38%,rgba(84,68,49,.24) 100%),
    radial-gradient(82% 52% at 50% 0%,rgba(255,252,245,.3),rgba(255,252,245,0) 72%),
    url("../img/hero-cover.jpg");
  background-size:cover,cover,cover;
  background-position:center,center top,center 48%;
  background-repeat:no-repeat;
  box-shadow:
    inset 0 0 0 1px rgba(84,68,49,.07),
    inset 0 -40px 90px rgba(120,98,72,.12),
    0 50px 110px -30px rgba(83,65,44,.22);
  will-change:transform;
}
.hero__arch::before{
  content:"";
  position:absolute;
  inset:9%;
  border:1px solid rgba(84,68,49,.16);
  border-radius:inherit;
}
.hero__arch::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:31%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(84,68,49,.2),transparent);
}
.hero__orb{
  position:absolute;
  right:calc(5.5vw + 8vw);
  top:24vh;
  width:min(17vw,280px);
  aspect-ratio:1;
  border:1px solid rgba(84,68,49,.16);
  border-radius:50%;
  will-change:transform;
}
.hero__horizon{
  position:absolute;
  left:0;right:0;
  bottom:26%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(84,68,49,.16) 18%,rgba(84,68,49,.16) 82%,transparent);
}
.hero__inner{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  flex:1;
  width:100%;
}
.hero__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  font-size:9px;
  line-height:1.7;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.hero__top .hero__top-right{text-align:right;}
.hero__main{
  margin-top:auto;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:end;
  padding-top:clamp(48px,8vh,110px);
}
.hero__copy{grid-column:1 / 9;}
.hero__aside{
  position:absolute;
  right:clamp(-16px,-1.1vw,-10px);
  bottom:clamp(150px,19vh,215px);
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}
.hero__aside-text{
  writing-mode:vertical-rl;
  font-size:8.5px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--ink-50);
  line-height:1;
}
.hero__aside-line{
  width:1px;
  height:58px;
  background:linear-gradient(180deg,transparent,var(--line-strong));
}
.hero h1{
  margin:20px 0 0;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(3.5rem,7.6vw,9rem);
  line-height:1.04;
  letter-spacing:.015em;
}
.hero h1 .line-mask > span{
  transform:translateY(112%);
  transition:transform 1.5s var(--ease);
  transition-delay:calc(var(--i) * 110ms + 160ms);
}
html.js .hero h1 .line-mask > span{transform:translateY(112%);}
html.js body.is-loaded .hero h1 .line-mask > span{transform:translateY(0);}

.hero__lead{
  max-width:32em;
  margin-top:clamp(24px,3.4vw,40px);
  font-size:13.5px;
  line-height:2.1;
  letter-spacing:.03em;
  color:var(--ink-65);
}
.hero__actions{
  display:flex;
  align-items:center;
  gap:clamp(22px,3vw,42px);
  margin-top:clamp(28px,3.4vw,44px);
  flex-wrap:wrap;
}
.hero__bottom{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:clamp(42px,7vh,86px);
  padding:19px 0 25px;
  border-top:1px solid var(--line);
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.hero__bottom-mid{
  display:flex;
  align-items:center;
  gap:14px;
}
.hero__scroll-line{
  width:54px;height:1px;
  background:var(--ink-35);
  position:relative;
  overflow:hidden;
}
.hero__scroll-line::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--ink);
  transform:translateX(-100%);
  animation:scrollLine 3.4s var(--ease-io) infinite;
}
.hero__slot{color:var(--ink-50);}
.hero__slot b{font-weight:500;color:var(--ink-65);}

/* fade-up for hero text */
.hero__top,.hero__lead,.hero__actions,.hero__bottom,.hero__aside{
  opacity:0;
  transform:translateY(16px);
  transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);
}
html.js body.is-loaded .hero__top,
html.js body.is-loaded .hero__lead,
html.js body.is-loaded .hero__actions,
html.js body.is-loaded .hero__bottom,
html.js body.is-loaded .hero__aside{opacity:1;transform:none;}
html.js body.is-loaded .hero__top{transition-delay:.15s;}
html.js body.is-loaded .hero__lead{transition-delay:.55s;}
html.js body.is-loaded .hero__actions{transition-delay:.67s;}
html.js body.is-loaded .hero__bottom{transition-delay:.8s;}
html.js body.is-loaded .hero__aside{transition-delay:.75s;}

/* ---------- 04 shared components ---------- */
.media{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:var(--tone-a,#D9CEBB);
  aspect-ratio:4/5;
}
.media__base{
  position:absolute;
  inset:0;
  background:
    radial-gradient(115% 95% at 74% 3%,rgba(255,252,246,.58) 0%,rgba(255,252,246,0) 56%),
    radial-gradient(85% 72% at 12% 102%,rgba(45,36,26,.24) 0%,rgba(45,36,26,0) 62%),
    linear-gradient(164deg,var(--tone-a) 0%,var(--tone-b) 100%);
  transition:transform 1.6s var(--ease);
  will-change:transform;
}
.media__art{
  position:absolute;
  inset:0;
  opacity:.62;
  transition:transform 1.6s var(--ease);
  will-change:transform;
}
.media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
  background-size:160px 160px;
  opacity:.15;
  mix-blend-mode:multiply;
  pointer-events:none;
}
.media__tag{
  position:absolute;
  z-index:4;
  left:14px;
  top:14px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:5px 8px;
  border-radius:2px;
  background:rgba(247,243,235,.42);
  color:rgba(30,25,19,.8);
  font-size:8px;
  line-height:1.5;
  letter-spacing:.18em;
  text-transform:uppercase;
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
.media__tag::before{
  content:"";
  width:4px;height:4px;
  border-radius:50%;
  border:1px solid currentColor;
}
.media__note{
  position:absolute;
  z-index:4;
  left:18px;
  bottom:16px;
  right:18px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:8px;
  line-height:1.6;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(38,32,25,.7);
}

/* tones */
.media[data-tone="sand"]{--tone-a:#DCD1BE;--tone-b:#B6A58A;}
.media[data-tone="clay"]{--tone-a:#C9AC92;--tone-b:#9A7158;}
.media[data-tone="moss"]{--tone-a:#B3B29C;--tone-b:#727761;}
.media[data-tone="stone"]{--tone-a:#D8D2C6;--tone-b:#9D9588;}
.media[data-tone="ash"]{--tone-a:#B8B1A5;--tone-b:#7B746A;}
.media[data-tone="dusk"]{--tone-a:#9B8D7D;--tone-b:#5E554A;}
.media[data-tone="ink"]{--tone-a:#48443C;--tone-b:#1B1A17;}
.media[data-tone="plaster"]{--tone-a:#EFE9DD;--tone-b:#CFC4B2;}

/* art variations — quiet architectural abstractions */
.media[data-art="arch"] .media__art::before{
  content:"";
  position:absolute;
  left:26%;right:26%;top:18%;bottom:-8%;
  border-radius:50% 50% 0 0 / 56% 56% 0 0;
  background:linear-gradient(180deg,rgba(255,251,242,.78),rgba(255,251,242,.06) 78%);
  box-shadow:inset 0 0 0 1px rgba(74,58,42,.1),inset 0 -30px 60px rgba(255,251,242,.18);
}
.media[data-art="arch"] .media__art::after{
  content:"";
  position:absolute;
  left:10%;right:10%;bottom:20%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(48,38,27,.24),transparent);
}
.media[data-art="sun"] .media__art::before{
  content:"";
  position:absolute;
  width:52%;aspect-ratio:1;
  left:26%;top:18%;
  border-radius:50%;
  border:1px solid rgba(255,252,244,.22);
  background:radial-gradient(circle at 50% 48%,rgba(255,252,244,.82),rgba(255,252,244,.1) 66%,rgba(255,252,244,0) 73%);
}
.media[data-art="sun"] .media__art::after{
  content:"";
  position:absolute;
  left:8%;right:8%;bottom:24%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(48,38,27,.28),transparent);
}
.media[data-art="drape"] .media__art{
  background:
    repeating-linear-gradient(97deg,rgba(255,252,246,.2) 0 7%,rgba(60,48,35,.08) 7% 13%,rgba(255,252,246,.05) 13% 20%);
  filter:blur(2px);
  opacity:.7;
}
.media[data-art="drape"] .media__art::before{
  content:"";
  position:absolute;
  left:0;right:0;bottom:18%;
  height:1px;
  background:rgba(48,38,27,.18);
}
.media[data-art="stone"] .media__art::before{
  content:"";
  position:absolute;
  width:66%;height:34%;
  left:-6%;bottom:12%;
  border-radius:50%;
  background:radial-gradient(circle at 60% 40%,rgba(255,252,244,.62),rgba(255,252,244,0) 68%);
  filter:blur(4px);
}
.media[data-art="stone"] .media__art::after{
  content:"";
  position:absolute;
  width:44%;height:22%;
  right:4%;bottom:30%;
  border-radius:50% 50% 12% 12%;
  background:linear-gradient(180deg,rgba(255,252,244,.4),rgba(65,52,38,.14));
  filter:blur(1px);
}
.media[data-art="grid"] .media__art{
  background-image:
    linear-gradient(90deg,rgba(64,50,36,.16) 1px,transparent 1px),
    linear-gradient(0deg,rgba(64,50,36,.12) 1px,transparent 1px);
  background-size:22% 100%,100% 26%;
  opacity:.45;
}
.media[data-art="grid"] .media__art::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(90% 80% at 60% 12%,rgba(255,251,243,.72),rgba(255,251,243,0) 66%);
}
.media[data-art="grid"] .media__art::after{
  content:"";
  position:absolute;
  left:44%;top:0;bottom:0;
  width:22%;
  background:linear-gradient(180deg,rgba(255,252,245,.28),rgba(255,252,245,0));
}

/* ratios */
.ratio-4-5{aspect-ratio:4/5;}
.ratio-3-4{aspect-ratio:3/4;}
.ratio-4-3{aspect-ratio:4/3;}
.ratio-3-2{aspect-ratio:3/2;}
.ratio-16-9{aspect-ratio:16/9;}
.ratio-21-9{aspect-ratio:21/9;}

/* section head */
.section-head{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:end;
  margin-bottom:clamp(38px,5.6vw,82px);
}
.section-head__eyebrow{grid-column:1 / 4;}
.section-head__title{
  grid-column:1 / 8;
  margin-top:clamp(22px,3vw,40px);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.5rem,5.4vw,5.6rem);
  line-height:1.04;
  letter-spacing:.01em;
}
.section-head__note{
  grid-column:9 / 13;
  color:var(--ink-65);
  font-size:13.5px;
  line-height:2;
  max-width:30em;
  padding-bottom:8px;
}
.section-head__action{
  grid-column:9 / 13;
  display:flex;
  justify-content:flex-end;
  align-items:flex-end;
  padding-bottom:10px;
}

/* reveal */
html.js [data-reveal]{
  opacity:0;
  transform:translateY(30px);
  transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);
  transition-delay:var(--delay,0ms);
}
html.js [data-reveal].is-in{opacity:1;transform:none;}
html.js [data-reveal="fade"]{transform:none;}

/* ---------- 05 home sections ---------- */
/* manifesto */
.manifesto{padding-top:clamp(72px,10vw,140px);}
.manifesto__grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:start;
}
.manifesto__head{grid-column:1 / 4;padding-top:8px;}
.manifesto__quote{
  grid-column:4 / 11;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.85rem,3.4vw,3.65rem);
  line-height:1.5;
  letter-spacing:.02em;
}
.manifesto__quote em{
  font-style:normal;
  color:var(--clay);
}
.manifesto__foot{
  grid-column:4 / 11;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-top:clamp(42px,6vw,78px);
  padding-top:26px;
  border-top:1px solid var(--line);
}
.manifesto__copy{
  max-width:34em;
  font-size:13.5px;
  line-height:2.1;
  color:var(--ink-65);
}
.manifesto__sign{
  flex:none;
  text-align:right;
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
  line-height:2;
}
.manifesto__sign .en{display:block;font-size:19px;letter-spacing:.06em;color:var(--ink-65);margin-bottom:4px;}

.principles{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:clamp(64px,9vw,120px);
}
.principle{
  border-top:1px solid var(--line);
  padding-top:22px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:18px;
}
.principle__num{
  font-size:9px;
  letter-spacing:.18em;
  color:var(--ink-35);
  padding-top:5px;
}
.principle h3{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.4rem,1.9vw,1.9rem);
  line-height:1.3;
  margin-bottom:7px;
}
.principle p{
  font-size:12.5px;
  line-height:1.95;
  color:var(--ink-65);
  max-width:26em;
}

/* selected works */
.works{padding-top:clamp(70px,8vw,110px);}
.works-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:clamp(24px,4vw,64px);
  row-gap:clamp(56px,7vw,100px);
}
.work{display:block;position:relative;}
.work:nth-child(1){grid-column:1 / 8;}
.work:nth-child(2){grid-column:9 / 13;margin-top:clamp(46px,9vw,130px);}
.work:nth-child(3){grid-column:1 / 6;margin-top:clamp(10px,4vw,56px);}
.work:nth-child(4){grid-column:7 / 13;}
.work:nth-child(5){grid-column:2 / 12;margin-top:clamp(14px,4vw,52px);}
.work--wide .work__media{aspect-ratio:21/9;}
.work__media{display:block;position:relative;}
.work__media .media__base{transform:scale(1.001);}
.works-list.is-filtering .work{margin-top:0!important;}
.work__veil{
  position:absolute;
  inset:0;
  z-index:3;
  background:linear-gradient(180deg,rgba(18,16,13,0) 38%,rgba(18,16,13,.34) 100%);
  opacity:0;
  transition:opacity .7s var(--ease);
}
.work__hover{
  position:absolute;
  z-index:5;
  left:22px;
  bottom:20px;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--cream);
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .55s var(--ease),transform .55s var(--ease);
}
.work__hover svg{width:13px;height:13px;}
.work__num{
  position:absolute;
  z-index:5;
  right:18px;
  top:14px;
  font-family:var(--serif);
  font-size:15px;
  letter-spacing:.1em;
  color:rgba(38,32,25,.74);
  font-style:italic;
}
.work__info{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding-top:16px;
}
.work__title{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.35rem,1.9vw,1.85rem);
  line-height:1.3;
  letter-spacing:.06em;
}
.work__en{
  font-size:8px;
  letter-spacing:.24em;
  color:var(--ink-50);
  text-transform:uppercase;
  margin-top:5px;
}
.work__meta{
  flex:none;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
  font-size:9px;
  letter-spacing:.12em;
  color:var(--ink-50);
  padding-top:6px;
  text-transform:uppercase;
}
.work__meta span{white-space:nowrap;}
.work__line{
  font-family:var(--serif);
  font-size:13px;
  line-height:1.5;
  letter-spacing:.02em;
  color:var(--ink-65);
  text-transform:none;
  white-space:normal;
  text-align:right;
  max-width:18em;
}

/* ethos quote */
.ethos{
  position:relative;
  overflow:hidden;
  background:var(--dark);
  color:var(--cream);
  padding-block:clamp(100px,14vw,210px);
}
.ethos::after{
  content:"";
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  opacity:.08;
  pointer-events:none;
  mix-blend-mode:overlay;
}
.ethos__moon{
  position:absolute;
  width:min(46vw,620px);
  aspect-ratio:1;
  left:-14vw;
  top:-22%;
  border-radius:50%;
  border:1px solid rgba(244,241,234,.13);
  pointer-events:none;
}
.ethos__moon::after{
  content:"";
  position:absolute;
  inset:14%;
  border-radius:50%;
  background:radial-gradient(circle at 60% 60%,rgba(244,241,234,.07),rgba(244,241,234,0) 68%);
}
.ethos .container{position:relative;z-index:2;}
.ethos__grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
}
.ethos .eyebrow{grid-column:1 / 4;color:rgba(244,241,234,.58);}
.ethos__quote{
  grid-column:3 / 12;
  margin-top:clamp(40px,6vw,80px);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2rem,4.2vw,4.5rem);
  line-height:1.42;
  letter-spacing:.02em;
}
.ethos__quote em{font-style:normal;color:#C6A485;}
.ethos__meta{
  grid-column:8 / 12;
  margin-top:clamp(38px,6vw,74px);
  font-size:12px;
  line-height:2;
  color:rgba(244,241,234,.56);
  border-top:1px solid var(--cream-line);
  padding-top:18px;
}
.ethos__meta span{
  display:block;
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(244,241,234,.3);
  margin-bottom:8px;
}

/* studio */
.studio__grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:start;
}
.studio__media{grid-column:1 / 5;aspect-ratio:3/4;}
.studio__copy{grid-column:6 / 12;padding-top:clamp(8px,3vw,44px);}
.studio__title{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.4rem,4.8vw,4.9rem);
  line-height:1.1;
  margin-top:clamp(22px,3vw,34px);
}
.studio__body{
  margin-top:clamp(26px,3.4vw,42px);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px,3vw,44px);
}
.studio__body p{
  font-size:13px;
  line-height:2.1;
  color:var(--ink-65);
}
.studio__body p:first-child{color:var(--ink-80);}
.studio__skills{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:clamp(28px,3.4vw,42px);
}
.tag{
  display:inline-flex;
  align-items:center;
  padding:7px 13px;
  border:1px solid var(--line);
  border-radius:999px;
  font-size:10px;
  letter-spacing:.12em;
  color:var(--ink-65);
  transition:background .4s ease,color .4s ease,border-color .4s ease;
}

.studio__foot{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-top:clamp(34px,4vw,56px);
  padding-top:24px;
  border-top:1px solid var(--line);
}
.studio__sign{
  font-family:var(--serif);
  font-style:italic;
  font-size:21px;
  color:var(--ink-50);
  letter-spacing:.02em;
}

/* services */
.services{padding-top:clamp(80px,10vw,140px);}
.service-list{border-top:1px solid var(--line);}
.service{
  display:grid;
  grid-template-columns:70px minmax(0,1.1fr) minmax(0,1.35fr) auto;
  gap:clamp(18px,3vw,44px);
  align-items:center;
  padding:clamp(22px,2.6vw,34px) 0;
  border-bottom:1px solid var(--line);
  transition:padding-left .6s var(--ease);
}
.service__num{
  font-size:9px;
  letter-spacing:.2em;
  color:var(--ink-35);
}
.service__name{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.4rem,2.1vw,2.1rem);
  line-height:1.3;
  letter-spacing:.04em;
}
.service__name span{
  display:block;
  font-family:var(--sans);
  font-size:8px;
  letter-spacing:.22em;
  color:var(--ink-35);
  text-transform:uppercase;
  margin-top:5px;
}
.service__desc{
  font-size:12.5px;
  line-height:2;
  color:var(--ink-65);
  max-width:38em;
}
.service__tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.service__tags span{
  font-size:9px;
  letter-spacing:.1em;
  color:var(--ink-50);
  border:1px solid var(--line);
  border-radius:999px;
  padding:4px 10px;
  white-space:nowrap;
}
.service__arrow{
  display:none;
  width:18px;height:18px;
}
@media (hover:hover){
  .service:hover{padding-left:14px;}
  .service:hover .service__name{color:var(--clay);}
}

.styles{
  margin-top:clamp(64px,9vw,120px);
}
.styles__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
  margin-bottom:clamp(28px,3.6vw,46px);
}
.styles__head h3{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.8rem,2.7vw,2.7rem);
  line-height:1.2;
}
.styles-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.style-card{
  position:relative;
  border-top:1px solid var(--line);
  padding:20px 0 22px;
  min-height:148px;
  transition:border-color .5s ease;
}
.style-card__num{
  font-size:9px;
  letter-spacing:.18em;
  color:var(--ink-35);
}
.style-card h4{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.15rem,1.5vw,1.5rem);
  line-height:1.4;
  margin:14px 0 7px;
  letter-spacing:.04em;
}
.style-card p{
  font-size:11.5px;
  line-height:1.9;
  color:var(--ink-65);
}
.style-card::after{
  content:"";
  position:absolute;
  left:0;top:-1px;
  width:0;
  height:1px;
  background:var(--ink);
  transition:width .7s var(--ease);
}
.style-card:hover::after{width:100%;}
.style-card:hover h4{color:var(--clay);}

/* method strip */
.method{
  margin-top:clamp(68px,9vw,112px);
  padding:clamp(30px,4vw,48px);
  background:rgba(255,255,255,.24);
  border:1px solid var(--line);
}
.method__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  padding-bottom:22px;
  border-bottom:1px solid var(--line);
}
.method__head h3{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.5rem,2.2vw,2.2rem);
}
.method__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,3vw,40px);
  margin-top:clamp(24px,3vw,36px);
}
.method__item h4{
  font-size:12px;
  letter-spacing:.1em;
  font-weight:500;
  margin-bottom:8px;
  color:var(--ink);
}
.method__item p{
  font-size:11.5px;
  line-height:1.95;
  color:var(--ink-65);
}
.method__item .idx{
  display:block;
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
  color:var(--ink-35);
  margin-bottom:12px;
}

/* ---------- 06 page hero & works index ---------- */
.page-hero{
  position:relative;
  overflow:hidden;
  padding:calc(var(--header) + clamp(60px,9vw,120px)) 0 clamp(46px,6vw,80px);
  background:var(--paper);
}
.page-hero::before{
  content:"";
  position:absolute;
  right:-9vw;
  top:9%;
  width:min(37vw,560px);
  aspect-ratio:1;
  border:1px solid var(--line);
  border-radius:50%;
  pointer-events:none;
}
.page-hero::after{
  content:"";
  position:absolute;
  left:0;right:0;
  bottom:36%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--line) 24%,var(--line) 76%,transparent);
  pointer-events:none;
}
.page-hero__top{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.page-hero__title{
  position:relative;
  z-index:2;
  margin-top:clamp(38px,6vw,72px);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(4.6rem,12vw,13rem);
  line-height:.94;
  letter-spacing:.01em;
}
.page-hero__en{
  position:relative;
  z-index:2;
  display:block;
  margin-top:clamp(16px,2.4vw,26px);
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.1rem,2vw,1.9rem);
  color:var(--ink-50);
  letter-spacing:.04em;
}
.page-hero__bottom{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  margin-top:clamp(46px,7vw,96px);
  padding-top:22px;
  border-top:1px solid var(--line);
}
.page-hero__lead{
  grid-column:1 / 7;
  font-size:14px;
  line-height:2;
  color:var(--ink-65);
  max-width:32em;
}
.page-hero__note{
  grid-column:9 / 13;
  font-size:9.5px;
  line-height:2;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-50);
  text-align:right;
}
.page-hero__note .en{
  display:block;
  font-size:17px;
  letter-spacing:.03em;
  text-transform:none;
  color:var(--ink-65);
  margin-bottom:6px;
}

.filters{
  display:flex;
  align-items:center;
  gap:clamp(18px,2.6vw,38px);
  flex-wrap:wrap;
  padding:18px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom:clamp(42px,6vw,74px);
}
.filter{
  position:relative;
  font-size:11px;
  letter-spacing:.14em;
  color:var(--ink-50);
  padding:3px 0;
  transition:color .4s ease;
}
.filter .filter__en{
  font-size:8px;
  letter-spacing:.16em;
  color:var(--ink-35);
  margin-left:6px;
  text-transform:uppercase;
}
.filter::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-2px;
  height:1px;
  background:var(--ink);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .5s var(--ease);
}
.filter:hover{color:var(--ink);}
.filter.is-active{color:var(--ink);}
.filter.is-active::after{transform:scaleX(1);transform-origin:left;}
.filters__count{
  margin-left:auto;
  font-size:9px;
  letter-spacing:.18em;
  color:var(--ink-35);
}

.works-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  column-gap:clamp(26px,4vw,64px);
  row-gap:clamp(52px,7vw,96px);
  align-items:start;
}
.works-list .work:nth-child(1),
.works-list .work:nth-child(2),
.works-list .work:nth-child(3),
.works-list .work:nth-child(4),
.works-list .work:nth-child(5){
  grid-column:auto;
  margin-top:0;
}
.works-list .work:nth-child(even){margin-top:clamp(40px,8vw,110px);}
.works-list .work--wide .work__media{aspect-ratio:4/5;}
html.js .works-list .work.is-filtered{
  opacity:0;
  transform:translateY(16px);
  pointer-events:none;
}
.works-list .work{
  transition:opacity .5s ease,transform .5s var(--ease);
}
.works-empty{
  padding:60px 0;
  color:var(--ink-50);
  font-size:12px;
  letter-spacing:.12em;
  display:none;
}
.works-empty.is-visible{display:block;}

/* ---------- 07 about ---------- */
.about-hero .page-hero__title{font-size:clamp(4.2rem,11vw,12rem);}
.about-intro{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:start;
}
.about-portrait{grid-column:1 / 5;aspect-ratio:3/4;}
.about-copy{grid-column:6 / 12;}
.about-copy h2{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2rem,3.6vw,3.6rem);
  line-height:1.35;
  letter-spacing:.02em;
  margin-top:clamp(20px,2.6vw,30px);
}
.about-copy h2 em{font-style:normal;color:var(--clay);}
.about-copy .lead{margin-top:clamp(26px,3.4vw,42px);}
.about-sign{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-top:clamp(30px,4vw,52px);
  padding-top:22px;
  border-top:1px solid var(--line);
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.about-sign .en{
  font-size:22px;
  letter-spacing:.05em;
  text-transform:none;
  color:var(--ink-65);
}
.about-values{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(28px,4vw,64px) clamp(40px,6vw,100px);
  margin-top:clamp(70px,9vw,120px);
}
.value{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:18px;
  border-top:1px solid var(--line);
  padding-top:22px;
}
.value__num{
  font-size:9px;
  letter-spacing:.16em;
  color:var(--ink-35);
  padding-top:5px;
}
.value h3{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.3rem,1.8vw,1.8rem);
  line-height:1.4;
  margin-bottom:8px;
}
.value p{
  font-size:12.5px;
  line-height:2;
  color:var(--ink-65);
  max-width:32em;
}
.about-quote{
  margin-top:clamp(72px,10vw,130px);
  padding:clamp(40px,6vw,84px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.8rem,3.4vw,3.4rem);
  line-height:1.55;
  letter-spacing:.02em;
  max-width:18em;
}
.about-quote em{font-style:normal;color:var(--clay);}
.about-quote .quote-en{
  display:block;
  margin-top:22px;
  font-family:var(--sans);
  font-style:normal;
  font-size:9px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-50);
}

/* ---------- 08 contact & footer ---------- */
.contact{
  position:relative;
  overflow:hidden;
  background:var(--dark);
  color:var(--cream);
  padding-top:clamp(92px,12vw,170px);
}
.contact::before{
  content:"";
  position:absolute;
  right:-18vw;
  top:-10%;
  width:min(56vw,820px);
  aspect-ratio:1;
  border:1px solid rgba(244,241,234,.09);
  border-radius:50%;
  pointer-events:none;
}
.contact__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
}
.contact .eyebrow{color:var(--cream-45);}
.contact__grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  margin-top:clamp(44px,6vw,80px);
  align-items:start;
}
.contact__main{grid-column:1 / 8;}
.contact__title{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.7rem,5.6vw,6.2rem);
  line-height:1.18;
  letter-spacing:.015em;
}
.contact__title em{font-style:normal;color:#C6A485;}
.contact__mail{
  display:inline-flex;
  align-items:center;
  gap:16px;
  margin-top:clamp(36px,5vw,60px);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.35rem,2.7vw,2.7rem);
  line-height:1.3;
  letter-spacing:.02em;
  padding-bottom:10px;
  border-bottom:1px solid rgba(244,241,234,.28);
  transition:border-color .45s ease,color .45s ease;
}
.contact__mail svg{width:20px;height:20px;flex:none;transition:transform .5s var(--ease);}
.contact__mail:hover{border-color:var(--cream);color:#fff;}
.contact__mail:hover svg{transform:translate(3px,-3px);}
.contact__note{
  margin-top:clamp(20px,2.6vw,30px);
  font-size:11px;
  line-height:1.9;
  letter-spacing:.04em;
  color:rgba(244,241,234,.6);
  max-width:34em;
}
.contact__side{grid-column:9 / 13;padding-top:clamp(8px,2vw,26px);}
.channels{border-top:1px solid var(--cream-line);}
.channel{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  padding:15px 0;
  border-bottom:1px solid var(--cream-line);
  transition:padding .5s var(--ease),color .4s ease;
}
.channel span{
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(244,241,234,.58);
}
.channel strong{
  font-weight:400;
  font-size:12px;
  letter-spacing:.06em;
  color:var(--cream-70);
}
.channel:hover{padding-left:8px;}
.channel:hover strong{color:var(--cream);}
.contact :focus-visible,
.footer :focus-visible,
.ethos :focus-visible{outline-color:rgba(244,241,234,.82);}
.contact__meta{
  margin-top:26px;
  font-size:9px;
  line-height:2;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(244,241,234,.55);
}

.footer{
  position:relative;
  overflow:hidden;
  background:var(--dark);
  color:var(--cream);
  padding-top:clamp(72px,9vw,120px);
}
.footer__top{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
  padding-bottom:28px;
  border-bottom:1px solid var(--cream-line);
}
.footer__brand{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.4rem,4.6vw,4.4rem);
  line-height:1;
  letter-spacing:.1em;
}
.footer__brand span{
  display:block;
  font-family:var(--sans);
  font-size:9px;
  letter-spacing:.3em;
  color:rgba(244,241,234,.48);
  margin-top:12px;
  text-transform:uppercase;
}
.footer__top .link-arrow{color:var(--cream-70);border-color:var(--cream-line);}
.footer__top .link-arrow:hover{color:var(--cream);border-color:var(--cream);}
.footer__mark{
  margin-top:clamp(30px,4vw,50px);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(6rem,18.5vw,17rem);
  line-height:.92;
  letter-spacing:.06em;
  color:rgba(244,241,234,.055);
  user-select:none;
  white-space:nowrap;
  text-align:center;
}
.footer__base{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  padding:22px 0 26px;
  margin-top:clamp(10px,1.6vw,20px);
  border-top:1px solid var(--cream-line);
  font-size:9px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(244,241,234,.55);
}
.footer__base a:hover{color:var(--cream);}

/* contact page */
.contact-page-hero .page-hero__title{font-size:clamp(3.8rem,10vw,11rem);}
.contact-panel{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:start;
}
.contact-panel__main{grid-column:1 / 8;}
.contact-panel__side{grid-column:9 / 13;}
.contact-big-mail{
  display:inline-block;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.8rem,4vw,4rem);
  line-height:1.2;
  letter-spacing:.01em;
  border-bottom:1px solid var(--line-strong);
  padding-bottom:8px;
  margin-top:clamp(24px,3vw,34px);
  transition:color .4s ease,border-color .4s ease;
}
.contact-big-mail:hover{color:var(--clay);border-color:var(--clay);}
.contact-panel__main p{
  margin-top:clamp(24px,3vw,38px);
  font-size:13.5px;
  line-height:2.1;
  color:var(--ink-65);
  max-width:32em;
}
.contact-panel__side .small{margin-bottom:18px;}
.channels--light .channel{border-color:var(--line);}
.channels--light .channel span{color:var(--ink-50);}
.channels--light .channel strong{color:var(--ink-65);}
.channels--light .channel:hover strong{color:var(--ink);}
.contact-note{
  margin-top:22px;
  font-size:11px;
  line-height:2;
  color:var(--ink-50);
  letter-spacing:.03em;
}
.process{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  margin-top:clamp(64px,9vw,110px);
}
.process__step{
  border-top:1px solid var(--line);
  padding-top:20px;
}
.process__step .num{
  font-size:9px;
  letter-spacing:.18em;
  color:var(--ink-35);
}
.process__step h3{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.2rem,1.6vw,1.6rem);
  margin:14px 0 8px;
  letter-spacing:.04em;
}
.process__step p{
  font-size:11.5px;
  line-height:1.95;
  color:var(--ink-65);
  max-width:24em;
}
.contact-items{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
  margin-top:clamp(28px,4vw,48px);
}
.contact-item{
  border-top:1px solid var(--line);
  padding-top:18px;
}
.contact-item span{
  display:block;
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-35);
  margin-bottom:9px;
}
.contact-item p{
  font-size:12.5px;
  line-height:1.9;
  color:var(--ink-65);
}
.contact-item a:hover{color:var(--clay);}

/* ---------- 09 project detail ---------- */
.project-head{
  position:relative;
  padding:calc(var(--header) + clamp(46px,6vw,80px)) 0 0;
}
.project-head__top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.project-back{
  display:inline-flex;
  align-items:center;
  gap:9px;
  transition:color .4s ease,gap .5s var(--ease);
}
.project-back svg{width:12px;height:12px;}
.project-back:hover{color:var(--ink);gap:14px;}
.project-title{
  margin-top:clamp(34px,5vw,64px);
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(4rem,10.5vw,12rem);
  line-height:.98;
  letter-spacing:.02em;
}
.project-en{
  display:block;
  margin-top:14px;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1rem,1.9vw,1.8rem);
  color:var(--ink-50);
  letter-spacing:.06em;
}
.project-facts{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  margin-top:clamp(40px,6vw,74px);
  padding:22px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.fact span{
  display:block;
  font-size:8.5px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
  margin-bottom:7px;
}
.fact p{
  font-size:12px;
  letter-spacing:.04em;
  color:var(--ink-65);
}
.fact p .en{font-size:14px;color:var(--ink-50);}
.project-cover{
  margin-top:clamp(26px,4vw,46px);
  aspect-ratio:16/9;
}
.project-cover + .project-section{margin-top:clamp(64px,9vw,120px);}
.project-section{padding-block:clamp(64px,9vw,120px);}
.project-section.project-story{padding-bottom:0;}
.project-highlights{margin-top:0;}
.project-story{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:start;
}
.project-aside{grid-column:1 / 4;}
.project-aside .eyebrow{margin-bottom:18px;}
.project-aside .small{line-height:2;}
.project-text{grid-column:5 / 12;}
.project-text p{
  font-size:clamp(14px,1.25vw,17px);
  line-height:2.15;
  color:var(--ink-80);
  margin-bottom:1.4em;
  max-width:36em;
}
.project-text p:last-child{margin-bottom:0;}
.project-text .project-lead{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.5rem,2.6vw,2.6rem);
  line-height:1.65;
  letter-spacing:.02em;
  color:var(--ink);
  margin-bottom:clamp(30px,4vw,48px);
}
.project-highlights{
  border-top:1px solid var(--line);
  padding-top:clamp(30px,4vw,50px);
  margin-top:clamp(40px,6vw,80px);
}
.project-highlights__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:clamp(28px,4vw,48px);
}
.project-highlights__head h2{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.8rem,2.8vw,2.8rem);
  line-height:1.2;
}
.highlights{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,3vw,40px);
}
.highlight{
  border-top:1px solid var(--line);
  padding-top:18px;
}
.highlight .num{
  font-size:9px;
  letter-spacing:.18em;
  color:var(--ink-35);
}
.highlight h3{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.15rem,1.7vw,1.7rem);
  line-height:1.45;
  margin:14px 0 9px;
  letter-spacing:.04em;
}
.highlight p{
  font-size:11.5px;
  line-height:2;
  color:var(--ink-65);
}
.project-gallery{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(18px,3vw,42px);
  align-items:start;
  padding-top:clamp(30px,4vw,50px);
}
.gallery__item{position:relative;}
.gallery__item:nth-child(1){grid-column:1 / 8;aspect-ratio:4/3;}
.gallery__item:nth-child(2){grid-column:9 / 13;aspect-ratio:3/4;margin-top:clamp(40px,8vw,120px);}
.gallery__item:nth-child(3){grid-column:2 / 7;aspect-ratio:3/4;margin-top:clamp(10px,2vw,30px);}
.gallery__item:nth-child(4){grid-column:7 / 13;aspect-ratio:4/3;margin-top:clamp(60px,9vw,140px);}
.gallery__item .media__tag{color:rgba(30,25,19,.8);}
.film{
  position:relative;
  margin-top:clamp(64px,9vw,120px);
  aspect-ratio:16/9;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--tone-a,#4A453D);
}
.film__base{
  position:absolute;inset:0;
  background:
    radial-gradient(80% 80% at 50% 42%,var(--tone-a),var(--tone-b) 72%),
    linear-gradient(160deg,var(--tone-a),var(--tone-b));
}
.film::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,11,9,.08),rgba(12,11,9,.52));
  z-index:1;
}
.film__play{
  position:relative;
  z-index:3;
  width:clamp(64px,7vw,94px);
  aspect-ratio:1;
  border:1px solid rgba(244,241,234,.55);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--cream);
  transition:background .5s ease,transform .7s var(--ease),border-color .5s ease;
}
.film__play::before{
  content:"";
  width:0;height:0;
  border-left:8px solid currentColor;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
  margin-left:4px;
}
.film__play{cursor:default;}
.film__meta{
  position:absolute;
  z-index:3;
  left:clamp(18px,3vw,34px);
  right:clamp(18px,3vw,34px);
  bottom:clamp(16px,2.4vw,28px);
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(244,241,234,.62);
}
.project-next{
  border-top:1px solid var(--line);
  padding:clamp(48px,7vw,90px) 0 clamp(70px,9vw,110px);
}
.project-next__head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.project-next__link{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-top:clamp(24px,3.4vw,40px);
}
.project-next__name{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.6rem,6vw,6.6rem);
  line-height:1.05;
  letter-spacing:.03em;
  transition:color .5s ease;
}
.project-next__en{
  display:block;
  font-style:italic;
  font-size:clamp(.9rem,1.4vw,1.3rem);
  color:var(--ink-50);
  margin-top:10px;
  letter-spacing:.04em;
}
.project-next__arrow{
  flex:none;
  width:clamp(42px,5vw,64px);
  aspect-ratio:1;
  border:1px solid var(--line-strong);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .5s ease,color .5s ease,transform .6s var(--ease);
}
.project-next__arrow svg{width:16px;height:16px;}
.project-next__link:hover .project-next__name{color:var(--clay);}
.project-next__link:hover .project-next__arrow{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:rotate(-45deg);}

/* ---------- 10 motion & responsive ---------- */
@keyframes scrollLine{
  0%{transform:translateX(-100%);}
  45%{transform:translateX(0);}
  55%{transform:translateX(0);}
  100%{transform:translateX(100%);}
}
@keyframes pageIn{
  from{opacity:0;}
  to{opacity:1;}
}
html.js body{animation:pageIn .7s ease both;}
html.js body.is-leaving{opacity:0;transition:opacity .34s ease;animation:none;}

/* pointer devices */
@media (hover:hover) and (pointer:fine){
  .work:hover .media__base{transform:scale(1.045);}
  .work:hover .media__art{transform:scale(1.035);}
  .work:hover .work__veil{opacity:1;}
  .work:hover .work__hover{opacity:1;transform:none;}
  .work__media{transform:translateZ(0);}
}

@media (max-width:1180px){
  .hero{--pad:clamp(20px,4vw,52px);}
  .hero__copy{grid-column:1 / 10;}
  .hero__aside{grid-column:11 / 13;}
  .section-head__title{grid-column:1 / 8;}
  .section-head__note{grid-column:9 / 13;}
  .studio__body{grid-template-columns:1fr;}
  .works-list{column-gap:clamp(22px,3vw,40px);}
  .project-text{grid-column:5 / 13;}
  .project-aside{grid-column:1 / 5;}
}

@media (max-width:900px){
  :root{--header:74px;}
  .hero__slot-desktop{display:none;}
  .hero__slot-mobile{display:inline;}
  .site-header{padding-block:16px;}
  .nav,.header__cta{display:none;}
  .menu-btn{display:flex;}
  .brand__en{font-size:7px;}
  .hero{padding-top:calc(var(--header) + 16px);}
  .hero__arch{
    width:44vw;height:54vh;right:-4vw;top:15vh;opacity:.72;
    background-color:#D5C8B4;
    background-image:
      radial-gradient(90% 55% at 50% 8%,rgba(255,252,245,.95),rgba(255,252,245,0) 72%),
      linear-gradient(178deg,#F8F4EA 0%,#E8E0D2 54%,#D5C8B4 100%);
    background-size:auto;
    background-position:center;
  }
  .hero__orb{width:22vw;right:20vw;top:24vh;opacity:.65;}
  .hero__main{grid-template-columns:repeat(8,1fr);}
  .hero__copy{grid-column:1 / 8;}
  .hero__aside{display:none;}
  .hero h1{font-size:clamp(3.2rem,9.6vw,6.4rem);}
  .hero__bottom-mid{display:none;}
  .hero__slot{max-width:46%;text-align:right;line-height:1.7;}
  .section-head{grid-template-columns:repeat(8,1fr);}
  .section-head__eyebrow{grid-column:1 / 4;}
  .section-head__title{grid-column:1 / 8;}
  .section-head__note{grid-column:1 / 7;padding-top:10px;padding-bottom:0;}
  .section-head__action{grid-column:1 / 8;justify-content:flex-start;padding-top:10px;}
  .manifesto__grid{grid-template-columns:repeat(8,1fr);}
  .manifesto__head{grid-column:1 / 8;margin-bottom:26px;}
  .manifesto__quote{grid-column:1 / 9;}
  .manifesto__foot{grid-column:1 / 9;flex-direction:column;align-items:flex-start;gap:24px;}
  .manifesto__sign{text-align:left;}
  .principles{grid-template-columns:1fr;gap:26px;margin-top:56px;}
  .work:nth-child(1){grid-column:1 / 9;}
  .work:nth-child(2){grid-column:5 / 9;margin-top:0;}
  .work:nth-child(3){grid-column:1 / 5;margin-top:0;}
  .work:nth-child(4){grid-column:4 / 9;margin-top:0;}
  .work:nth-child(5){grid-column:1 / 9;margin-top:0;}
  .works-grid{grid-template-columns:repeat(8,1fr);row-gap:56px;column-gap:20px;}
  .work__meta{flex-direction:column;gap:2px;align-items:flex-end;}
  .ethos__grid{grid-template-columns:repeat(8,1fr);}
  .ethos .eyebrow{grid-column:1 / 8;}
  .ethos__quote{grid-column:1 / 9;}
  .ethos__meta{grid-column:1 / 7;}
  .studio__grid{grid-template-columns:repeat(8,1fr);}
  .studio__media{grid-column:1 / 5;}
  .studio__copy{grid-column:5 / 9;padding-top:0;}
  .studio__title{font-size:clamp(2rem,4vw,3rem);}
  .studio__foot{flex-direction:column;align-items:flex-start;gap:20px;}
  .service{grid-template-columns:46px 1fr auto;gap:16px 20px;align-items:start;}
  .service__desc{grid-column:2 / 3;}
  .service__tags{grid-column:3 / 4;grid-row:1 / 3;flex-direction:column;align-items:flex-end;}
  .styles-grid{grid-template-columns:repeat(2,1fr);gap:18px 26px;}
  .method__grid{grid-template-columns:1fr;gap:24px;}
  .page-hero__bottom{grid-template-columns:repeat(8,1fr);}
  .page-hero__lead{grid-column:1 / 6;}
  .page-hero__note{grid-column:6 / 9;}
  .works-list{grid-template-columns:1fr;row-gap:56px;}
  .works-list .work:nth-child(even){margin-top:0;}
  .works-list .work{max-width:640px;}
  .works-list .work:nth-child(even){margin-left:auto;}
  .filters__count{margin-left:0;}
  .about-intro{grid-template-columns:repeat(8,1fr);}
  .about-portrait{grid-column:1 / 5;}
  .about-copy{grid-column:5 / 9;}
  .about-values{grid-template-columns:1fr;}
  .contact__grid{grid-template-columns:repeat(8,1fr);}
  .contact__main{grid-column:1 / 6;}
  .contact__side{grid-column:6 / 9;}
  .contact-panel{grid-template-columns:repeat(8,1fr);}
  .contact-panel__main{grid-column:1 / 6;}
  .contact-panel__side{grid-column:6 / 9;}
  .process{grid-template-columns:repeat(2,1fr);gap:30px 24px;}
  .project-facts{grid-template-columns:repeat(2,1fr);gap:20px 24px;}
  .project-story{grid-template-columns:repeat(8,1fr);}
  .project-aside{grid-column:1 / 4;}
  .project-text{grid-column:4 / 9;}
  .highlights{grid-template-columns:1fr;gap:18px;}
  .highlight{padding-top:16px;}
  .project-gallery{grid-template-columns:repeat(8,1fr);}
  .gallery__item:nth-child(1){grid-column:1 / 9;aspect-ratio:4/3;}
  .gallery__item:nth-child(2){grid-column:5 / 9;margin-top:24px;}
  .gallery__item:nth-child(3){grid-column:1 / 5;margin-top:0;}
  .gallery__item:nth-child(4){grid-column:2 / 9;margin-top:0;}
  .project-next__name{font-size:clamp(2.2rem,8vw,4rem);}
}

@media (max-width:640px){
  :root{--pad:20px;--header:68px;}
  body{font-size:14px;}
  .brand{gap:8px;}
  .brand__zh{font-size:18px;}
  .brand__en{display:none;}
  .hero{min-height:100svh;padding-top:calc(var(--header) + 20px);}
  .hero__top{font-size:8px;letter-spacing:.16em;}
  .hero__top .hero__top-right{max-width:44%;}
  .hero__arch{width:58vw;height:48vh;right:-12vw;top:16vh;opacity:.55;}
  .hero__orb{width:30vw;right:8vw;top:23vh;opacity:.5;}
  .hero__horizon{bottom:31%;}
  .hero__main{padding-top:64px;}
  .hero h1{font-size:clamp(2.8rem,13vw,4.6rem);line-height:1.08;}
  .hero__lead{font-size:12.5px;line-height:2;margin-top:24px;}
  .hero__actions{gap:20px;margin-top:28px;}
  .hero__bottom{margin-top:44px;font-size:8px;letter-spacing:.14em;padding-bottom:20px;}
  .hero__bottom .hero__bottom-left{max-width:55%;line-height:1.7;}
  .hero__slot{max-width:42%;font-size:7.5px;}
  .section{padding-block:72px;}
  .section-head__title{font-size:clamp(2.3rem,10vw,3.4rem);}
  .manifesto__quote{font-size:clamp(1.65rem,6.6vw,2.3rem);line-height:1.6;}
  .manifesto__foot{margin-top:34px;}
  .principles{margin-top:44px;}
  .principle{grid-template-columns:32px 1fr;}
  .works-grid{display:block;}
  .work{margin-bottom:44px;}
  .work:last-child{margin-bottom:0;}
  .work:nth-child(2),.work:nth-child(3),.work:nth-child(4),.work:nth-child(5){margin-top:0;}
  .work__info{padding-top:12px;}
  .work__meta{font-size:8px;}
  .work__title{font-size:1.6rem;}
  .work--wide .work__media{aspect-ratio:4/3;}
  .ethos{padding-block:86px;}
  .ethos__quote{font-size:clamp(1.6rem,6.4vw,2.4rem);line-height:1.6;}
  .ethos__meta{grid-column:1 / 9;}
  .studio__media{grid-column:1 / 9;max-width:420px;aspect-ratio:3/4;margin-bottom:32px;}
  .studio__copy{grid-column:1 / 9;}
  .studio__body{grid-template-columns:1fr;gap:16px;}
  .service{grid-template-columns:30px 1fr;gap:10px 14px;padding:22px 0;}
  .service__name{font-size:1.35rem;}
  .service__desc{grid-column:2 / 3;font-size:11.5px;}
  .service__tags{grid-column:2 / 3;grid-row:auto;flex-direction:row;justify-content:flex-start;margin-top:4px;}
  .service__num{grid-row:1 / 4;}
  .styles-grid{grid-template-columns:1fr 1fr;gap:14px 20px;}
  .style-card{min-height:0;padding-bottom:16px;}
  .style-card p{font-size:10.5px;}
  .method{margin-top:52px;padding:24px 20px;}
  .method__head{flex-direction:column;align-items:flex-start;gap:8px;}
  .page-hero{padding-top:calc(var(--header) + 42px);}
  .page-hero__title{font-size:clamp(4rem,19vw,6.4rem);margin-top:44px;}
  .page-hero::before{width:70vw;right:-22vw;}
  .page-hero__bottom{display:block;margin-top:46px;}
  .page-hero__lead{font-size:13px;}
  .page-hero__note{text-align:left;margin-top:22px;}
  .filters{gap:16px;margin-bottom:38px;}
  .filter{font-size:10px;}
  .filter .filter__en{display:none;}
  .filters__count{width:100%;margin-top:2px;}
  .works-list .work{max-width:none;}
  .about-portrait{grid-column:1 / 9;max-width:440px;margin-bottom:30px;}
  .about-copy{grid-column:1 / 9;}
  .about-copy h2{font-size:clamp(1.9rem,7.4vw,2.6rem);}
  .about-values{gap:28px;}
  .value{grid-template-columns:34px 1fr;}
  .about-quote{font-size:clamp(1.6rem,6.2vw,2.3rem);}
  .contact{padding-top:76px;}
  .contact__grid{display:block;}
  .contact__title{font-size:clamp(2.5rem,10.4vw,3.6rem);line-height:1.25;}
  .contact__mail{font-size:clamp(1.15rem,5.6vw,1.7rem);gap:10px;word-break:break-all;}
  .contact__side{margin-top:38px;}
  .contact__head{padding-bottom:0;}
  .contact__meta{margin-top:20px;}
  .footer{padding-top:64px;}
  .footer__top{flex-direction:column;align-items:flex-start;gap:24px;}
  .footer__brand{font-size:2.6rem;}
  .footer__mark{font-size:32vw;letter-spacing:.02em;margin-top:34px;text-align:left;}
  .footer__base{font-size:8px;line-height:1.8;gap:10px;}
  .contact-panel{display:block;}
  .contact-panel__side{margin-top:36px;}
  .contact-panel__main p{font-size:12.5px;}
  .contact-big-mail{font-size:clamp(1.4rem,6.4vw,2rem);word-break:break-all;}
  .process{grid-template-columns:1fr;gap:24px;margin-top:56px;}
  .contact-items{grid-template-columns:1fr;gap:20px;}
  .project-head{padding-top:calc(var(--header) + 36px);}
  .project-head__top{font-size:8px;letter-spacing:.14em;}
  .project-title{font-size:clamp(3.2rem,17vw,5rem);margin-top:34px;}
  .project-facts{grid-template-columns:1fr 1fr;padding:18px 0;}
  .fact p{font-size:11px;}
  .project-cover{aspect-ratio:4/3;margin-top:24px;}
  .project-story{display:block;}
  .project-aside{margin-bottom:26px;}
  .project-text p{font-size:13.5px;line-height:2;}
  .project-text .project-lead{font-size:1.5rem;line-height:1.7;}
  .project-section{padding-block:64px;}
  .project-highlights__head{flex-direction:column;align-items:flex-start;gap:8px;}
  .project-gallery{display:block;}
  .gallery__item{margin-bottom:22px!important;margin-top:0!important;}
  .gallery__item:nth-child(1),.gallery__item:nth-child(2),.gallery__item:nth-child(3),.gallery__item:nth-child(4){aspect-ratio:4/3;}
  .gallery__item:nth-child(2),.gallery__item:nth-child(4){aspect-ratio:3/4;}
  .film{margin-top:52px;aspect-ratio:4/3;}
  .film__meta{font-size:8px;}
  .project-next{padding-top:48px;}
  .project-next__link{margin-top:20px;}
  .project-next__name{font-size:2.4rem;}
  .project-next__en{font-size:.9rem;}
  .project-next__arrow{width:44px;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  html.js [data-reveal]{opacity:1;transform:none;}
  html.js .hero h1 .line-mask > span,
  html.js body.is-loaded .hero h1 .line-mask > span{transform:none;}
  html.js body{animation:none;}
  .hero__scroll-line::after{animation:none;}
}


/* ---------- 11 refinements ---------- */
.site-header.is-menu-open::before{opacity:1;border-color:transparent;}
.site-header.is-menu-open{transform:none!important;}

.works-page .page-hero__title,
.about-page .page-hero__title{
  font-size:clamp(3.2rem,8.4vw,9.2rem);
  line-height:1.12;
  letter-spacing:.02em;
}

.works-page .page-hero__title em,
.about-page .page-hero__title em{
  font-style:normal;
  color:var(--clay);
}

.about-page .page-hero__title{font-size:clamp(4rem,10.4vw,11rem);line-height:1.02;}
.contact-page .page-hero__title{font-size:clamp(3.4rem,9vw,9.8rem);line-height:1.04;}

.works-index{padding-top:clamp(24px,3vw,40px);}
.works-intro{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  margin-bottom:clamp(36px,5vw,64px);
}
.works-intro p{
  grid-column:5 / 11;
  font-size:14px;
  line-height:2.05;
  color:var(--ink-65);
  max-width:34em;
}

/* compact next-step strip used before the footer */
.cta-strip{
  padding-block:clamp(64px,8vw,110px);
  border-top:1px solid var(--line);
}
.cta-strip__inner{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:36px;
  flex-wrap:wrap;
}
.cta-strip h2{
  margin-top:18px;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2rem,4.4vw,4.6rem);
  line-height:1.16;
  letter-spacing:.02em;
}
.cta-strip h2 em{font-style:normal;color:var(--clay);}
.cta-strip__links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  padding-bottom:6px;
}

/* detail page image captions */
.project-cover .media__tag,
.gallery__item .media__tag{color:rgba(30,25,19,.8);}
.project-cover .media__note,
.gallery__item .media__note{color:rgba(30,25,19,.72);}

/* film label */
.film .media__tag{color:rgba(244,241,234,.82);background:rgba(20,18,15,.26);}

/* about page */
.about-page .about-hero{padding-bottom:clamp(40px,5vw,70px);}
.about-page .page-hero::after{display:none;}
.about-copy .about-lede{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.6rem,2.8vw,2.8rem);
  line-height:1.62;
  letter-spacing:.02em;
  color:var(--ink);
  margin-top:clamp(28px,3.4vw,44px);
}
.about-copy .about-lede em{font-style:normal;color:var(--clay);}
.about-copy p.body{
  margin-top:22px;
  font-size:13px;
  line-height:2.1;
  color:var(--ink-65);
}
.about-portrait .media__note{color:rgba(38,32,25,.5);}

/* contact page */
.contact-page .page-hero__lead{max-width:30em;}
.contact-intro{
  padding-top:clamp(50px,6vw,80px);
}
.contact-intro__grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:24px;
  align-items:start;
}
.contact-intro__main{grid-column:1 / 8;}
.contact-intro__aside{grid-column:9 / 13;}
.contact-intro__main h2{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.2rem,4.4vw,4.6rem);
  line-height:1.22;
  letter-spacing:.02em;
}
.contact-intro__main h2 em{font-style:normal;color:var(--clay);}
.contact-intro__main p{
  margin-top:clamp(24px,3vw,36px);
  font-size:13.5px;
  line-height:2.1;
  color:var(--ink-65);
  max-width:34em;
}
.contact-intro__aside .contact-note{margin-top:0;}

/* responsive refinements */
@media (max-width:1180px){
  .work__line{font-size:12px;}
}
@media (max-width:900px){
  .works-intro{grid-template-columns:repeat(8,1fr);}
  .works-intro p{grid-column:2 / 8;}
  .contact-intro__grid{grid-template-columns:repeat(8,1fr);}
  .contact-intro__main{grid-column:1 / 6;}
  .contact-intro__aside{grid-column:6 / 9;}
  .about-copy .about-lede{font-size:clamp(1.5rem,4vw,2.2rem);}
}
@media (max-width:640px){
  .works-intro{display:block;}
  .page-hero__title{font-size:clamp(3.4rem,16vw,5.8rem);}
  .works-page .page-hero__title,
  .about-page .page-hero__title,
  .contact-page .page-hero__title{font-size:clamp(3.1rem,14vw,5.2rem);}
  .about-page .page-hero__title{font-size:clamp(3.4rem,16vw,5.6rem);}
  .works-intro p{font-size:12.5px;}
  .work__meta{align-items:flex-start;padding-top:10px;}
  .work__line{text-align:left;font-size:12px;max-width:none;}
  .work__info{gap:14px;}
  .work__meta span{font-size:8px;}
  .cta-strip__inner{flex-direction:column;align-items:flex-start;}
  .about-copy .about-lede{font-size:1.45rem;line-height:1.7;}
  .about-copy p.body{font-size:12.5px;}
  .contact-intro__grid{display:block;}
  .contact-intro__aside{margin-top:32px;}
}



/* ---------- 12 structure helpers ---------- */
.section-head__aside{
  grid-column:9 / 13;
  align-self:end;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  padding-bottom:8px;
}
.section-head__aside p{
  font-size:13px;
  line-height:2;
  color:var(--ink-65);
  max-width:31em;
}
.section-head__aside .link-arrow{font-size:10px;}

.project-keywords{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:clamp(28px,3.6vw,44px);
}
.project-keywords .tag{font-size:9px;padding:6px 12px;}

.work[hidden]{display:none!important;}

html.js .works-list .work.is-filtered{
  opacity:0;
  transform:translateY(16px);
  pointer-events:none;
  transition:opacity .28s ease,transform .28s var(--ease);
}

/* footnote under facts */
.project-note{
  margin-top:14px;
  font-size:9px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-35);
}

@media (max-width:900px){
  .section-head__aside{grid-column:1 / 7;padding-top:10px;padding-bottom:0;}
}
@media (max-width:640px){
  .section-head__aside{grid-column:1 / 9;}
  .section-head__aside p{font-size:12px;}
}


#services,#contact,#philosophy,#studio{scroll-margin-top:calc(var(--header) + 20px);}
.project-next__label{display:block;font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-35);margin-bottom:10px;}


.contact-page .page-hero__title em{font-style:normal;color:var(--clay);}
.about-intro-section{padding-top:clamp(60px,8vw,110px);}
.about-intro-section .about-intro + div{margin-top:clamp(70px,9vw,120px);}
@media (max-width:640px){
  .about-intro-section{padding-top:56px;}
}



/* ---------- 13 mobile fixes ---------- */
@media (max-width:900px){
  .section-head__eyebrow,
  .section-head__title,
  .section-head__note,
  .section-head__action,
  .section-head__aside{grid-column:1 / -1;}
  .section-head__title{margin-top:18px;}
  .works-list{grid-template-columns:1fr;}
  .works-list .work{width:100%;max-width:640px;margin-inline:auto;}
  .works-list .work:nth-child(even){margin-left:auto;margin-right:auto;}
}
@media (max-width:640px){
  .hero__main{grid-template-columns:repeat(8,1fr);}
  .hero__copy{grid-column:1 / -1;}
  .hero h1{font-size:clamp(2.7rem,12.6vw,4.4rem);letter-spacing:.01em;}
  .hero__lead{max-width:none;}
  .hero__slot{max-width:42%;}
  .footer__base{
    display:grid;
    grid-template-columns:1fr auto;
    gap:7px 14px;
    align-items:baseline;
  }
  .footer__base span:nth-child(2){grid-column:1;grid-row:2;}
  .footer__base span:nth-child(3){grid-column:2;grid-row:2;text-align:right;}
  .footer__base a{grid-column:2;grid-row:1;}
  .works-list .work:nth-child(even){margin-left:0;}
  .works-list .work{max-width:none;}
  .page-hero__top{gap:14px;}
  .page-hero__top span:first-child{flex:1;}
  .page-hero__top span:last-child{flex:none;}
}

@media (max-width:640px){
  .hero .eyebrow{font-size:9px;letter-spacing:.17em;gap:9px;}
  .hero .eyebrow::before{width:20px;}
}


/* ---------- 14 real image / video replacement ---------- */
.media__photo{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform 1.6s var(--ease);
}
html.js .media[data-filled] .media__base,
html.js .media[data-filled] .media__art{opacity:0;}
html.js .media[data-filled] .media__tag,
html.js .media[data-filled] .media__note{display:none;}
html.js .media[data-filled]::after{opacity:.08;}
html.js .work:hover .media__photo{transform:scale(1.045);}

.film__video{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
}
html.js .film[data-filled] .film__base,
html.js .film[data-filled] .film__play,
html.js .film[data-filled] .media__tag,
html.js .film[data-filled]::after{display:none;}
html.js .film[data-filled] .film__meta{display:none;}
html.js .hero[data-filled] .hero__slot{display:none;}

.hero__cover{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:var(--paper-3);
}
.hero__cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 55%;
}
.hero__cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(244,241,234,.94) 0%,rgba(244,241,234,.72) 34%,rgba(244,241,234,.22) 68%,rgba(244,241,234,.08) 100%);
}
.hero[data-filled] .hero__arch,
.hero[data-filled] .hero__light,
.hero[data-filled] .hero__orb,
.hero[data-filled] .hero__horizon{display:none;}
@media (max-width:640px){
  .hero__cover::after{background:linear-gradient(180deg,rgba(244,241,234,.55) 0%,rgba(244,241,234,.72) 52%,rgba(244,241,234,.94) 100%);}
}

@media (max-width:640px){
  .filter{padding:7px 0;}
  .filters{gap:14px 18px;}
}

.channel--static{cursor:default;}
.channel--static:hover{padding-left:0;}
.channel--static:hover strong{color:var(--cream-70);}
.channels--light .channel--static:hover strong{color:var(--ink-65);}
@media (max-width:900px){
  .hero__aside{grid-column:auto;}
}

@media (max-width:640px){
  .filter{min-height:40px;display:inline-flex;align-items:center;}
  .footer__base a{display:inline-flex;min-height:40px;align-items:center;}
  .hero__actions .link-arrow{min-height:36px;align-items:center;}
}
.works-list.is-filtering .work{margin-top:0!important;}

@media (min-width:901px){.hero__slot-mobile{display:none;}}


/* ============================================================
   2026 redesign — quiet stone / square / sans
   ============================================================ */
:root{
  --paper:#D1CEC2;
  --paper-2:#C9C6BA;
  --paper-3:#BFBCB0;
  --ink:#1B1B17;
  --ink-80:#33332C;
  --ink-65:#4E4D45;
  --ink-50:#626157;
  --ink-35:#6F6D62;
  --line:rgba(27,27,23,.16);
  --line-strong:rgba(27,27,23,.34);
  --dark:#2B2C25;
  --cream:#F1EEE5;
  --cream-70:rgba(241,238,229,.7);
  --cream-45:rgba(241,238,229,.58);
  --cream-line:rgba(241,238,229,.17);
  --clay:#8E5F45;
  --moss:#6E705F;
  --serif:"Inter","Noto Sans SC","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
  --sans:"Inter","Noto Sans SC","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
}

/* square everything; the provided logo is an image and is unaffected */
*,*::before,*::after{border-radius:0!important;}

html{background:var(--paper);}
body{
  background-color:var(--paper);
  background-image:url("../img/paper-light-soft.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
  color:var(--ink);
}
.grain{opacity:.022;}

/* typography */
h1,h2,h3,h4,h5,h6,.display,.serif,.section-title,.section-head__title,
.hero h1,.page-hero__title,.project-title,.manifesto__quote,.ethos__quote,
.contact__title,.about-copy h2,.studio__title{
  font-family:var(--sans);
  font-weight:300;
}
em{font-style:normal;}
.en{
  font-family:var(--sans);
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72em;
}
.project-en,.page-hero__en{
  font-family:var(--sans);
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:400;
}
.studio__sign{font-family:var(--sans);font-style:normal;text-transform:uppercase;letter-spacing:.12em;font-size:15px;}

/* site header — always a light stone bar, so black logo stays legible */
.site-header{
  color:var(--ink);
  padding-block:18px;
}
.site-header::before{
  opacity:1;
  background:rgba(209,206,194,.94);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.site-header.is-scrolled{padding-block:12px;}
.brand{display:flex;align-items:center;padding:0;}
.brand__logo{height:34px;width:auto;display:block;}
.brand__zh,.brand__en{display:none;}
.nav__link{color:var(--ink-65);}
.nav__link .nav__en{color:var(--ink-35);}
.nav__link.is-active{color:var(--ink);}
.header__cta .dot{background:var(--clay);width:5px;height:5px;}
.menu-btn span{background:var(--ink);}

.mobile-nav{
  background-color:var(--paper);
  background-image:url("../img/paper-light-soft.jpg");
  background-size:cover;
  background-position:center;
}
.mobile-nav__link{font-family:var(--sans);font-weight:300;}
.mobile-nav__link span{color:var(--ink-35);}

/* backgrounds */
.section,.section--soft,.page-hero,.works-index,.project-head,.project-section,
.project-next,.cta-strip,.contact-intro,.about-intro-section,.works{
  background:transparent;
}
.section--soft{background-color:rgba(255,255,255,.045);}
.ethos,.contact,.footer{
  background-color:var(--dark);
  background-image:url("../img/paper-dark-soft.jpg");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:var(--cream);
}
.ethos::after{opacity:.05;}
.contact::before,.ethos__moon,.page-hero::before,.page-hero::after,
.hero__art,.hero__aside,.hero__orb,.hero__horizon,.hero__archive{display:none!important;}

/* logo in footer */
.footer__brand{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:0;line-height:1;}
.footer__logo{height:46px;width:auto;display:block;}
.footer__brand span{
  display:block;
  font-family:var(--sans);
  font-size:9px;
  font-weight:400;
  letter-spacing:.24em;
  color:rgba(241,238,229,.5);
  text-transform:uppercase;
}
.footer__mark{display:none!important;}

/* hero — dark stone poster, square photo, no arches */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  padding:calc(var(--header) + 32px) var(--pad) 0;
  overflow:hidden;
  color:var(--cream);
  background-color:var(--dark);
  background-image:
    linear-gradient(180deg,rgba(20,21,17,.12) 0%,rgba(20,21,17,.05) 45%,rgba(20,21,17,.36) 100%),
    url("../img/paper-dark-soft.jpg");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero__inner{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;width:100%;}
.hero__top{color:rgba(241,238,229,.6);}
.hero__top .hero__top-right{color:rgba(241,238,229,.6);}
.hero__main{
  margin-top:auto;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(24px,3vw,52px);
  align-items:end;
  padding-top:clamp(54px,8vh,110px);
}
.hero__copy{grid-column:1 / 8;}
.hero__media{
  grid-column:9 / 13;
  align-self:end;
  margin:0;
  padding:0;
}
.hero__media img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  filter:saturate(.9) contrast(.98);
}
.hero__media figcaption{
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-top:11px;
  padding-top:9px;
  border-top:1px solid rgba(241,238,229,.22);
  font-size:9px;
  line-height:1.4;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(241,238,229,.5);
}
.hero h1{
  margin:22px 0 0;
  color:var(--cream);
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(3.4rem,7.15vw,8.7rem);
  line-height:1.04;
  letter-spacing:.012em;
}
.hero .eyebrow{color:rgba(241,238,229,.62);}
.hero .eyebrow::before{background:rgba(241,238,229,.5);}
.hero__lead{color:rgba(241,238,229,.7);}
.hero .link-arrow{color:var(--cream);border-color:rgba(241,238,229,.35);}
.hero .link-arrow:hover{border-color:var(--cream);}
.hero__bottom{
  border-top:1px solid rgba(241,238,229,.2);
  color:rgba(241,238,229,.55);
  margin-top:clamp(24px,4vh,44px);
  padding:14px 0 17px;
}
.hero__scroll-line{background:rgba(241,238,229,.4);}
.hero__scroll-line::after{background:var(--cream);}
.hero .hero__bottom-mid{color:rgba(241,238,229,.55);}

/* page heroes — no decorative circles or arcs */
.page-hero{background:transparent;}
.page-hero__title,.page-hero__en{color:var(--ink);}
.page-hero__en{font-size:clamp(.85rem,1.5vw,1.2rem);letter-spacing:.16em;}
.page-hero__note{color:var(--ink-50);}
.page-hero__note .en{color:var(--ink-65);}

/* images / real photos */
.media__photo{filter:saturate(.92) contrast(.99);}
.work:hover .media__photo{transform:scale(1.035);}
.media__note--light{color:rgba(241,238,229,.78);}
.about-portrait .media__note--light,.studio__media .media__note--light{color:rgba(241,238,229,.78);}

/* keep dark text areas readable */
.ethos .eyebrow{color:rgba(241,238,229,.58);}
.contact .eyebrow{color:rgba(241,238,229,.58);}
.footer__base{color:rgba(241,238,229,.62);}

/* small square UI pieces */
.header__cta .dot{border-radius:0!important;}
.tag{padding:7px 12px;border-color:var(--line);color:var(--ink-65);}
.filter{padding-block:7px;}

/* method box: a quiet outlined surface, not a card */
.method{
  background:rgba(241,238,229,.16);
  border:1px solid var(--line);
}
.method__head{border-color:var(--line);}
.method__head h3{font-family:var(--sans);font-weight:300;}

/* contact mail / footer */
.contact__title{color:var(--cream);font-family:var(--sans);font-weight:300;}
.contact__mail{font-family:var(--sans);font-weight:300;}
.footer__top .link-arrow{color:var(--cream-70);}
.footer__base a{color:rgba(241,238,229,.72);}

/* film placeholder: square frame, no play circle */
.film__play{width:clamp(58px,6vw,84px);border-color:rgba(241,238,229,.5);}
.film__play::before{border-left-color:var(--cream);}
.project-next__arrow{border-color:var(--line-strong);}

@media (max-width:1180px){
  .hero__copy{grid-column:1 / 8;}
  .hero__media{grid-column:9 / 13;}
}
@media (max-width:900px){
  .site-header{padding-block:14px;}
  .brand__logo{height:29px;}
  .hero{padding:calc(var(--header) + 38px) var(--pad) 0;min-height:0;}
  .hero__main{display:block;padding-top:56px;}
  .hero__media{width:min(72%,430px);margin:38px 0 0 auto;}
  .hero__media img{aspect-ratio:4/5;}
  .hero h1{font-size:clamp(3.1rem,9.8vw,6.2rem);}
  .hero__bottom{margin-top:48px;}
  .page-hero__title{font-size:clamp(3.5rem,11vw,8rem);}
}
@media (max-width:640px){
  :root{--header:68px;}
  .brand__logo{height:26px;}
  .hero{padding-top:calc(var(--header) + 28px);}
  .hero__top{font-size:8px;letter-spacing:.16em;}
  .hero__main{padding-top:44px;}
  .hero h1{font-size:clamp(2.8rem,13vw,4.5rem);line-height:1.08;}
  .hero__lead{font-size:12.5px;margin-top:24px;}
  .hero__actions{gap:22px;margin-top:28px;}
  .hero__media{width:84%;margin-top:34px;}
  .hero__media figcaption{font-size:8px;letter-spacing:.14em;}
  .hero__bottom{margin-top:40px;}
  .footer__logo{height:38px;}
  .footer__brand span{font-size:8px;letter-spacing:.18em;}
}

.page-hero__note .en{
  font-family:var(--sans);
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  color:var(--ink-65);
}
.manifesto__sign .en,.about-sign .en,.studio__sign{
  font-family:var(--sans);
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:400;
}
.manifesto__sign .en{font-size:15px;}
.about-sign .en{font-size:15px;}
.studio__sign{font-size:12px;}
.quote-en{font-family:var(--sans);font-style:normal;text-transform:uppercase;letter-spacing:.16em;}
@media (max-width:640px){
  .hero__media{width:78%;}
  .hero__bottom{display:none;}
  .page-hero__note .en{font-size:10px;}
}

*{font-style:normal!important;}

.work--wide .work__media{aspect-ratio:16/9;}
@media (max-width:640px){.work--wide .work__media{aspect-ratio:4/3;}}


/* ---------- warm stone editorial layer (reference direction) ---------- */
:root{
  --stone-mid:#B5AE9D;
  --cream:#F6F1E6;
  --cream-70:rgba(246,241,230,.74);
  --cream-45:rgba(246,241,230,.6);
  --cream-line:rgba(246,241,230,.22);
}

/* home hero: warm stone instead of charcoal, white type, square photo */
.hero{
  background-color:var(--stone-mid);
  background-image:
    linear-gradient(180deg,rgba(50,44,34,.06) 0%,rgba(50,44,34,.02) 42%,rgba(50,44,34,.16) 100%),
    url("../img/paper-mid-soft.jpg");
  background-size:cover;
  background-position:center;
  color:var(--cream);
}
.hero h1{font-weight:400;color:var(--cream);}
.hero__top,.hero__top .hero__top-right{color:rgba(246,241,230,.8);}
.hero__lead{color:rgba(246,241,230,.92);font-size:14px;}
.hero .eyebrow{color:rgba(246,241,230,.68);}
.hero .eyebrow::before{background:rgba(246,241,230,.55);}
.hero .link-arrow{color:var(--cream);border-color:rgba(246,241,230,.45);}
.hero .link-arrow:hover{border-color:var(--cream);}
.hero__bottom{border-color:rgba(246,241,230,.3);color:rgba(246,241,230,.74);}
.hero__bottom-mid{color:rgba(246,241,230,.74);}
.hero__media figcaption{color:rgba(246,241,230,.62);border-top-color:rgba(246,241,230,.25);}

/* page heroes: warm stone bands with cream type */
.page-hero{
  background-color:var(--stone-mid);
  background-image:
    linear-gradient(180deg,rgba(50,44,34,.05),rgba(50,44,34,.12)),
    url("../img/paper-mid-soft.jpg");
  background-size:cover;
  background-position:center;
  color:var(--cream);
}
.page-hero__top{color:rgba(246,241,230,.8);}
.page-hero__title,.page-hero__title em{color:var(--cream);font-weight:400;}
.page-hero__title em{color:rgba(246,241,230,.72);}
.page-hero__en{color:rgba(246,241,230,.82);}
.page-hero__bottom{border-color:rgba(246,241,230,.25);}
.page-hero__lead{color:rgba(246,241,230,.93);font-size:14px;}
.page-hero__note{color:rgba(246,241,230,.8);}
.page-hero__note .en{color:rgba(246,241,230,.85);}
.page-hero__note .en{font-size:11px;}
.works-page .page-hero__title em,
.about-page .page-hero__title em,
.contact-page .page-hero__title em{color:rgba(246,241,230,.72);}

/* material poem — the cup / clay / time section */
.material-poem{
  position:relative;
  overflow:hidden;
  padding-block:clamp(84px,11vw,160px);
  background-color:var(--stone-mid);
  background-image:url("../img/paper-mid-soft.jpg");
  background-size:cover;
  background-position:center;
  color:var(--cream);
}
.material-poem .container{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(24px,4vw,64px);
  align-items:center;
}
.material-poem__text{grid-column:1 / 7;}
.material-poem .eyebrow{color:rgba(246,241,230,.68);}
.material-poem .eyebrow::before{background:rgba(246,241,230,.55);}
.material-poem__quote{
  margin-top:clamp(26px,4vw,44px);
  font-family:var(--sans);
  font-size:clamp(1.8rem,3.25vw,3.65rem);
  font-weight:400;
  line-height:1.55;
  letter-spacing:.015em;
  color:var(--cream);
}
.material-poem__meta{
  margin-top:clamp(30px,4vw,52px);
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(246,241,230,.62);
}
.material-poem__media{
  grid-column:8 / 13;
  align-self:center;
  margin:0;
}
.material-poem__media img{
  width:100%;
  height:auto;
  display:block;
  filter:saturate(.9) contrast(1.02);
  -webkit-mask-image:radial-gradient(ellipse 68% 72% at 54% 50%,#000 36%,transparent 72%);
  mask-image:radial-gradient(ellipse 68% 72% at 54% 50%,#000 36%,transparent 72%);
}
.material-poem__media figcaption{display:none;}

/* works collection index — names before the photographs */
.project-index{
  margin-bottom:clamp(34px,5vw,60px);
}
.project-index__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.project-index__list{
  border-top:1px solid transparent;
}
.project-index__row{
  display:grid;
  grid-template-columns:54px minmax(140px,1.4fr) minmax(150px,1.1fr) minmax(100px,.8fr) 24px;
  gap:clamp(14px,2.4vw,34px);
  align-items:baseline;
  padding:17px 0;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  transition:padding-left .55s var(--ease),color .4s ease;
}
.project-index__num{font-size:9px;letter-spacing:.18em;color:var(--ink-50);}
.project-index__name{font-family:var(--sans);font-size:clamp(1.25rem,1.8vw,1.75rem);font-weight:400;letter-spacing:.04em;}
.project-index__en{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-50);}
.project-index__type{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50);}
.project-index__arrow{font-size:14px;line-height:1;color:var(--ink-50);text-align:right;transition:transform .5s var(--ease);}
.project-index__row:hover{padding-left:12px;color:var(--clay);}
.project-index__row:hover .project-index__arrow{transform:translate(3px,-3px);color:var(--clay);}

/* page heroes need enough room for the cream band on small screens */
@media (max-width:900px){
  .material-poem .container{display:block;}
  .material-poem__text{grid-column:1 / -1;}
  .material-poem__media{width:min(72%,430px);margin:42px 0 0 auto;}
  .project-index__row{grid-template-columns:42px 1.2fr 1fr 20px;gap:12px 18px;}
  .project-index__type{grid-column:2 / 4;font-size:9px;}
  .project-index__arrow{grid-column:4;grid-row:1 / 3;align-self:center;}
}
@media (max-width:640px){
  .material-poem{padding-block:72px;}
  .material-poem__quote{font-size:clamp(1.8rem,7vw,2.6rem);line-height:1.55;}
  .material-poem__media{width:88%;margin-top:34px;}
  .page-hero__title{font-size:clamp(3rem,13vw,5.2rem);}
  .project-index__head{padding-bottom:12px;}
  .project-index__row{grid-template-columns:32px 1fr 18px;padding:14px 0;}
  .project-index__en{grid-column:2;grid-row:2;font-size:8px;}
  .project-index__type{display:none;}
  .project-index__arrow{grid-column:3;grid-row:1 / 3;}
}

@media (max-width:640px){
  .material-poem__quote{font-size:clamp(1.65rem,6.8vw,2.4rem);}
}


/* project headers join the warm stone page bands */
.project-head{
  width:100%;
  max-width:none;
  margin:0;
  padding-left:max(var(--pad),calc((100vw - 1560px) / 2));
  padding-right:max(var(--pad),calc((100vw - 1560px) / 2));
  background-color:var(--stone-mid);
  background-image:url("../img/paper-mid-soft.jpg");
  background-size:cover;
  background-position:center;
  color:var(--cream);
}
.project-head__top{color:rgba(246,241,230,.8);}
.project-back{color:rgba(246,241,230,.82);}
.project-title{color:var(--cream);font-weight:400;}
.project-en{color:rgba(246,241,230,.8);}
.project-facts{border-color:rgba(246,241,230,.24);}
.fact span{color:rgba(246,241,230,.65);}
.fact p{color:rgba(246,241,230,.9);}
.project-head .fact p .en{color:rgba(246,241,230,.8);}
@media (max-width:640px){
  .project-head__top{font-size:8px;}
}


/* header becomes part of the stone page top: white logo + cream navigation */
.site-header{color:var(--cream);}
.site-header::before{
  background:rgba(181,174,157,.95);
  border-bottom:1px solid rgba(246,241,230,.14);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
.site-header .brand__logo{filter:none;}
.nav__link{color:rgba(246,241,230,.78);}
.nav__link .nav__en{color:rgba(246,241,230,.52);}
.nav__link:hover{color:var(--cream);}
.nav__link:hover .nav__en{color:rgba(246,241,230,.72);}
.nav__link.is-active{color:var(--cream);}
.nav__link::after{background:var(--cream);}
.nav__link.is-active::after{background:var(--cream);}
.header__cta{color:var(--cream);}
.header__cta .dot{background:var(--clay);}
.menu-btn span{background:var(--cream);}
.site-header.is-scrolled .nav__link{color:rgba(246,241,230,.78);}
.site-header.is-scrolled .nav__link.is-active{color:var(--cream);}
.site-header.is-menu-open .nav__link{color:rgba(246,241,230,.78);}
.site-header.is-menu-open .brand__logo{filter:none;}


/* ---------- founder identity ---------- */
.founder-id{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 16px;
  margin-top:clamp(22px,2.8vw,32px);
  padding-top:14px;
  border-top:1px solid var(--line);
}
.founder-id__name{
  font-family:var(--sans);
  font-size:clamp(1.25rem,1.8vw,1.8rem);
  font-weight:400;
  letter-spacing:.06em;
  color:var(--ink);
}
.founder-id__en{
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.founder-id__role{
  font-size:10px;
  letter-spacing:.08em;
  color:var(--ink-50);
}
.studio__founder{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px 14px;
  margin-top:20px;
  padding-top:13px;
  border-top:1px solid var(--line);
  font-size:10px;
  letter-spacing:.08em;
  color:var(--ink-50);
}
.studio__founder-name{
  font-size:18px;
  letter-spacing:.06em;
  color:var(--ink);
}
.studio__founder-en{
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.studio__sign{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-bottom:1px solid var(--line);
  padding-bottom:3px;
  transition:color .4s ease,border-color .4s ease;
}
.studio__sign:hover{color:var(--clay);border-color:var(--clay);}
.founder-douyin{
  font-size:10px;
  letter-spacing:.12em;
  color:var(--ink-50);
  border-bottom:1px solid var(--line);
  padding-bottom:3px;
  transition:color .4s ease,border-color .4s ease;
}
.founder-douyin:hover{color:var(--clay);border-color:var(--clay);}
.contact-founder{
  margin-top:clamp(22px,3vw,34px);
  font-size:12px;
  line-height:1.95;
  letter-spacing:.03em;
  color:var(--ink-65);
}
.contact-founder strong{font-weight:500;color:var(--ink);}
.contact-founder a{
  color:var(--clay);
  border-bottom:1px solid rgba(142,95,69,.35);
  padding-bottom:2px;
  transition:border-color .4s ease,color .4s ease;
}
.contact-founder a:hover{color:var(--ink);border-color:var(--ink);}
@media (max-width:640px){
  .founder-id{gap:6px 12px;}
  .founder-id__role{width:100%;}
  .studio__founder{gap:5px 10px;}
}


/* ---------- subtle volume: works paper + photographs ---------- */
body.works-page{
  background-image:
    radial-gradient(120% 88% at 18% -8%,rgba(255,255,255,.20) 0%,rgba(255,255,255,0) 56%),
    radial-gradient(92% 82% at 82% 108%,rgba(62,51,38,.09) 0%,rgba(62,51,38,0) 62%),
    url("../img/paper-light-soft.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.works-page .page-hero{
  background-image:
    radial-gradient(100% 145% at 18% -8%,rgba(255,255,255,.10) 0%,rgba(255,255,255,0) 55%),
    linear-gradient(180deg,rgba(50,44,34,.04),rgba(50,44,34,.13)),
    url("../img/paper-mid-soft.jpg");
  background-size:cover;
  background-position:center;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -70px 120px -95px rgba(39,32,23,.30);
}

/* a hairline of light and a soft shadow make the flat photo plates sit up */
.work__media{
  transform:translateY(0);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.26),
    inset 0 0 0 1px rgba(255,255,255,.07),
    0 0 0 1px rgba(55,45,33,.075),
    0 28px 44px -32px rgba(50,41,29,.38),
    0 10px 18px -14px rgba(50,41,29,.16);
  transition:box-shadow .6s var(--ease),transform .6s var(--ease);
}
.work__media::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  background:
    linear-gradient(135deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 70%,rgba(28,23,17,.11) 100%);
  mix-blend-mode:soft-light;
}
.work:hover .work__media{
  transform:translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    inset 0 0 0 1px rgba(255,255,255,.09),
    0 0 0 1px rgba(55,45,33,.09),
    0 36px 58px -34px rgba(50,41,29,.44),
    0 14px 24px -16px rgba(50,41,29,.20);
}

/* project detail plates get the same very light lift */
.project-cover,
.project-gallery .media{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    0 0 0 1px rgba(55,45,33,.065),
    0 26px 44px -36px rgba(50,41,29,.28);
}
.project-gallery .media:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    0 0 0 1px rgba(55,45,33,.08),
    0 32px 50px -36px rgba(50,41,29,.32);
}

@media (max-width:900px){
  .work__media{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.22),
      0 0 0 1px rgba(55,45,33,.07),
      0 18px 30px -26px rgba(50,41,29,.30);
  }
}
@media (max-width:640px){
  body.works-page{
    background-image:
      radial-gradient(130% 70% at 20% 0%,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 55%),
      radial-gradient(100% 70% at 82% 100%,rgba(62,51,38,.07) 0%,rgba(62,51,38,0) 62%),
      url("../img/paper-light-soft.jpg");
  }
  .work:hover .work__media{transform:none;}
}


/* ============================================================
   VVD editorial layer
   warm white paper / small serif display / oxblood link / air
   ============================================================ */
:root{
  --paper:#FAF7F1;
  --paper-2:#F2EDE4;
  --serif:"Cormorant Garamond","Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --paper-3:#E8E1D5;
  --ink:#151513;
  --ink-80:#33302A;
  --ink-65:#5E584E;
  --ink-50:#756D61;
  --ink-35:#8E8578;
  --line:rgba(21,21,19,.13);
  --line-strong:rgba(21,21,19,.28);
  --dark:#1B1916;
  --cream:#FAF7F1;
  --cream-70:rgba(250,247,241,.7);
  --cream-45:rgba(250,247,241,.6);
  --cream-line:rgba(250,247,241,.14);
  --clay:#4A241E;
  --stone-mid:#DED6C9;
}

html{background:var(--paper);}
body{
  background-color:var(--paper);
  background-image:url("../img/paper-ivory.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
  color:var(--ink);
}
.grain{opacity:.028;}
::selection{background:var(--clay);color:var(--paper);}
body.works-page{
  background-image:
    radial-gradient(120% 88% at 18% -8%,rgba(255,255,255,.24) 0%,rgba(255,255,255,0) 56%),
    radial-gradient(92% 82% at 82% 108%,rgba(62,51,38,.055) 0%,rgba(62,51,38,0) 62%),
    url("../img/paper-ivory.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* header */
.site-header{color:var(--ink);}
.site-header::before{
  background:rgba(250,247,241,.93);
  border-bottom:1px solid var(--line);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
.site-header .brand__logo{filter:none;}
.nav__link{color:var(--ink-65);font-family:var(--sans);font-size:11px;letter-spacing:.05em;}
.nav__link .nav__en{color:var(--ink-35);}
.nav__link:hover{color:var(--ink);}
.nav__link:hover .nav__en{color:var(--ink-50);}
.nav__link.is-active{color:var(--ink);}
.nav__link::after{background:var(--clay);}
.nav__link.is-active::after{background:var(--clay);}
.site-header.is-scrolled .nav__link{color:var(--ink-65);}
.site-header.is-scrolled .nav__link.is-active{color:var(--ink);}
.site-header.is-menu-open .nav__link{color:var(--ink-65);}
.site-header.is-menu-open .brand__logo{filter:none;}
.header__cta{color:var(--ink);}
.header__cta .dot{background:var(--clay);}
.menu-btn span{background:var(--ink);}
.mobile-nav{background-color:var(--paper);background-image:url("../img/paper-ivory.jpg");background-size:cover;background-position:center;color:var(--ink);}
.mobile-nav__link{font-family:var(--serif);font-weight:400;font-size:1.55rem;color:var(--ink);}
.mobile-nav__link span{color:var(--ink-35);}

/* serif display, smaller scale, more air */
h1,h2,h3,h4,h5,h6,.display,.section-title,.section-head__title,
.hero h1,.page-hero__title,.project-title,.manifesto__quote,.ethos__quote,
.contact__title,.about-copy h2,.studio__title,.material-poem__quote,
.contact-intro__main h2,.contact-big-mail,.cta-strip h2,.project-index__name,
.work__title,.footer__brand,.about-intro h2,.value h3,.service__name,.method h3,
.next-project h2,.project-lead{
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:.008em;
}
.hero h1{
  color:var(--ink);
  font-size:clamp(2.7rem,4.9vw,5.35rem);
  line-height:1.1;
  letter-spacing:.006em;
}
.page-hero__title,
.works-page .page-hero__title,
.about-page .page-hero__title,
.contact-page .page-hero__title{
  color:var(--ink);
  font-size:clamp(2.6rem,5.1vw,5.55rem);
  line-height:1.08;
  letter-spacing:.006em;
}
.page-hero__title em,
.works-page .page-hero__title em,
.about-page .page-hero__title em,
.contact-page .page-hero__title em{color:var(--ink-65);}
.project-title{
  color:var(--ink);
  font-size:clamp(2.8rem,5.4vw,5.9rem);
  line-height:1.03;
}
.project-en{font-family:var(--serif);font-style:normal;color:var(--ink-50);}
.section-head__title{font-size:clamp(2.1rem,3.5vw,3.6rem);line-height:1.12;color:var(--ink);}
.about-copy h2{font-size:clamp(2.1rem,3.5vw,3.6rem);line-height:1.12;color:var(--ink);}
.about-copy h2 em{color:var(--ink-65);}
.studio__title{font-size:clamp(2.1rem,3.5vw,3.6rem);line-height:1.12;color:var(--ink);}
.contact__title{color:var(--ink);font-size:clamp(2.4rem,4.4vw,4.8rem);line-height:1.12;}
.contact__title em{color:var(--ink-65);}
.contact-intro__main h2{font-size:clamp(2.1rem,3.5vw,3.6rem);line-height:1.15;color:var(--ink);}
.contact-intro__main h2 em{color:var(--ink-65);}
.cta-strip h2{font-size:clamp(1.9rem,3.2vw,3.4rem);line-height:1.15;color:var(--ink);}
.cta-strip h2 em{color:var(--ink-65);}
.manifesto__quote{font-size:clamp(1.9rem,3.1vw,3.4rem);line-height:1.4;color:var(--ink);}
.manifesto__quote em{color:var(--ink-65);}
.material-poem__quote{color:var(--ink);font-size:clamp(1.8rem,3.15vw,3.4rem);line-height:1.5;font-weight:400;}
.work__title{color:var(--ink);font-size:clamp(1.3rem,1.75vw,1.7rem);line-height:1.25;}
.project-index__name{color:var(--ink);font-weight:400;}
.contact-big-mail{font-family:var(--serif);font-weight:400;color:var(--ink);}
.about-copy .about-lede{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,2.4vw,2.5rem);color:var(--ink);line-height:1.5;}
.about-copy .about-lede em{color:var(--ink-65);}

/* home hero: warm white, dark serif, photography */
.hero{
  background-color:var(--paper);
  background-image:url("../img/paper-ivory.jpg");
  background-size:cover;
  background-position:center;
  color:var(--ink);
}
.hero__top,.hero__top .hero__top-right{color:var(--ink-50);}
.hero__lead{color:var(--ink-65);font-size:15px;}
.hero .eyebrow{color:var(--ink-50);}
.hero .eyebrow::before{background:var(--ink-35);}
.hero .link-arrow{color:var(--ink);border-color:var(--line-strong);}
.hero .link-arrow:hover{color:var(--clay);border-color:var(--clay);}
.hero__bottom{border-color:var(--line);color:var(--ink-50);}
.hero__bottom-mid{color:var(--ink-50);}
.hero__media figcaption{color:var(--ink-50);border-top-color:var(--line);}
.hero__scroll-line{background:var(--line-strong);}
.hero__scroll-line::after{background:var(--clay);}
.hero__media img{filter:saturate(.9) contrast(.99);}
.hero__media{box-shadow:0 1px 0 rgba(255,255,255,.3),0 26px 54px -38px rgba(36,28,20,.26);}

/* page headers: no stone band, dark text on paper */
.page-hero{
  background:transparent;
  color:var(--ink);
  box-shadow:none;
}
.works-page .page-hero{background:transparent;box-shadow:none;}
.page-hero__top{color:var(--ink-50);}
.page-hero__title,.page-hero__title em{color:var(--ink);}
.page-hero__title em{color:var(--ink-65);}
.page-hero__en{color:var(--ink-50);}
.page-hero__bottom{border-color:var(--line);}
.page-hero__lead{color:var(--ink-65);font-size:14.5px;}
.page-hero__note{color:var(--ink-50);}
.page-hero__note .en{color:var(--ink-50);}

/* project header: white page, serif title, small facts */
.project-head{
  background:transparent;
  background-image:none;
  color:var(--ink);
  box-shadow:none;
}
.project-head__top{color:var(--ink-50);}
.project-back{color:var(--ink-65);}
.project-title{color:var(--ink);}
.project-en{color:var(--ink-50);}
.project-facts{border-color:var(--line);}
.fact span{color:var(--ink-50);}
.fact p{color:var(--ink-65);font-family:var(--serif);font-size:14px;}
.project-head .fact p .en{color:var(--ink-50);}
.project-cover{max-width:1180px;margin-left:auto;margin-right:auto;}

/* material study: limestone, dark serif, pot stays the material note */
.material-poem{
  background-color:var(--paper-2);
  background-image:url("../img/paper-limestone.jpg");
  background-size:cover;
  background-position:center;
  color:var(--ink);
}
.material-poem .eyebrow{color:var(--ink-50);}
.material-poem .eyebrow::before{background:var(--ink-35);}
.material-poem__quote{color:var(--ink);}
.material-poem__meta{color:var(--ink-50);}

/* contact: warm paper, no dark block */
.contact{
  background-color:var(--paper-2);
  background-image:url("../img/paper-limestone.jpg");
  background-size:cover;
  background-position:center;
  color:var(--ink);
  border-top:1px solid var(--line);
}
.contact::before{display:none;}
.contact .eyebrow{color:var(--ink-50);}
.contact__title{color:var(--ink);}
.contact__mail{color:var(--ink);border-color:var(--line-strong);}
.contact__mail:hover{color:var(--clay);border-color:var(--clay);}
.contact__note{color:var(--ink-50);}
.channels{border-top-color:var(--line);}
.channel{border-color:var(--line);}
.channel span{color:var(--ink-50);}
.channel strong{color:var(--ink-65);}
.channel:hover strong{color:var(--ink);}
.contact__meta{color:var(--ink-50);}
.contact :focus-visible{outline-color:var(--ink);}
.about-copy p.body,.contact-intro__main p,.contact-panel__main p{font-size:13.5px;line-height:2.05;color:var(--ink-65);}
.contact-big-mail{border-color:var(--line-strong);}
.contact-big-mail:hover{color:var(--clay);border-color:var(--clay);}
.contact-founder a{color:var(--clay);border-bottom-color:rgba(74,36,30,.32);}

/* footer: light, same paper, black logo */
.footer{
  background-color:var(--paper);
  background-image:url("../img/paper-ivory.jpg");
  background-size:cover;
  background-position:center;
  color:var(--ink);
  border-top:1px solid var(--line);
}
.footer__top{border-bottom-color:var(--line);}
.footer__brand span{color:var(--ink-50);}
.footer__top .link-arrow{color:var(--ink-65);border-color:var(--line);}
.footer__top .link-arrow:hover{color:var(--ink);border-color:var(--ink);}
.footer__mark{color:rgba(21,21,19,.045);}
.footer__base{color:var(--ink-50);border-top-color:var(--line);}
.footer__base a{color:var(--ink-65);}
.footer__base a:hover{color:var(--ink);}
.footer__logo{filter:none;}
.footer :focus-visible{outline-color:var(--ink);}

/* work plates: keep a very low volume on warm white */
.work__media{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    0 0 0 1px rgba(55,45,33,.07),
    0 24px 38px -32px rgba(50,41,29,.24),
    0 8px 16px -14px rgba(50,41,29,.10);
}
.work:hover .work__media{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.38),
    0 0 0 1px rgba(55,45,33,.09),
    0 32px 48px -34px rgba(50,41,29,.30),
    0 12px 22px -16px rgba(50,41,29,.14);
}
.project-cover,
.project-gallery .media{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 0 0 1px rgba(55,45,33,.06),
    0 24px 42px -38px rgba(50,41,29,.20);
}

/* small type details */
.project-index__row:hover{color:var(--clay);}
.project-index__row:hover .project-index__arrow{color:var(--clay);}
.founder-id__name{font-family:var(--serif);font-weight:400;}
.studio__founder-name{font-family:var(--serif);font-weight:400;}
.section--soft{background-color:rgba(242,237,228,.72);}
.about-portrait .media__note{color:rgba(250,247,241,.72);}
.hero__media figcaption span:last-child{letter-spacing:.16em;}

@media (max-width:900px){
  .hero h1{font-size:clamp(2.5rem,7vw,3.8rem);}
  .page-hero__title,.works-page .page-hero__title,.about-page .page-hero__title,.contact-page .page-hero__title{font-size:clamp(2.4rem,8vw,4rem);}
  .project-title{font-size:clamp(2.6rem,8vw,4.4rem);}
  .section-head__title,.about-copy h2,.studio__title,.contact-intro__main h2{font-size:clamp(1.9rem,4.4vw,2.8rem);}
  .contact__title{font-size:clamp(2.2rem,5.6vw,3.6rem);}
}
@media (max-width:640px){
  .hero h1{font-size:clamp(2.35rem,9.3vw,3.2rem);line-height:1.16;}
  .page-hero__title,.works-page .page-hero__title,.about-page .page-hero__title,.contact-page .page-hero__title{font-size:clamp(2.3rem,10.2vw,3.4rem);line-height:1.12;}
  .project-title{font-size:clamp(2.4rem,9.6vw,3.6rem);}
  .section-head__title,.about-copy h2,.studio__title,.contact-intro__main h2{font-size:clamp(1.8rem,6.4vw,2.5rem);}
  .contact__title{font-size:clamp(2rem,7.2vw,2.9rem);}
  .material-poem__quote{font-size:clamp(1.6rem,6.5vw,2.2rem);}
  .mobile-nav__link{font-size:1.7rem;}
}


/* ============================================================
   VVD sampled palette layer
   sampled from VVD official Ferragamo / Zara project images:
   #A58061 #CCB397 #E4D4BF #70422D #692916 #3C3224 #F8EEE0
   ============================================================ */
:root{
  --paper:#F8F0E4;
  --paper-2:#EFE3D3;
  --paper-3:#E1D0BA;
  --ink:#211A13;
  --ink-80:#3A2E22;
  --ink-65:#6B5743;
  --ink-50:#876E57;
  --ink-35:#A08972;
  --line:rgba(49,36,24,.14);
  --line-strong:rgba(49,36,24,.30);
  --cream:#F8F0E4;
  --cream-70:rgba(248,240,228,.72);
  --cream-45:rgba(248,240,228,.6);
  --cream-line:rgba(248,240,228,.14);
  --clay:#552215;
  --moss:#706B58;
  --stone-mid:#E4D4BF;
}
html{background:var(--paper);}
body{
  background-color:var(--paper);
  background-image:url("../img/paper-vvd-cream.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
  color:var(--ink);
}
body.works-page{
  background-color:var(--paper-2);
  background-image:
    radial-gradient(125% 90% at 18% -8%,rgba(250,243,234,.52) 0%,rgba(250,243,234,0) 56%),
    radial-gradient(95% 85% at 82% 108%,rgba(85,34,21,.09) 0%,rgba(85,34,21,0) 62%),
    url("../img/paper-vvd-sand.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.site-header::before{
  background:rgba(248,240,228,.94);
  border-bottom:1px solid var(--line);
}
.mobile-nav{
  background-color:var(--paper);
  background-image:url("../img/paper-vvd-cream.jpg");
}
.hero{
  background-color:var(--paper);
  background-image:url("../img/paper-vvd-cream.jpg");
  color:var(--ink);
}
.page-hero{
  background:transparent;
  color:var(--ink);
  box-shadow:none;
}
.works-page .page-hero{
  background:transparent;
  box-shadow:none;
  color:var(--ink);
}
.works-page .page-hero__top,
.works-page .page-hero__en,
.works-page .page-hero__lead,
.works-page .page-hero__note,
.works-page .page-hero__note .en{color:var(--ink-65);}
.works-page .page-hero__title,
.works-page .page-hero__title em{color:var(--ink);}
.works-page .page-hero__title em{color:var(--clay);}
.project-head{background:transparent;color:var(--ink);}
.material-poem{
  background-color:var(--paper-3);
  background-image:url("../img/paper-vvd-travertine.jpg");
  color:var(--ink);
}
.contact{
  background-color:var(--paper-2);
  background-image:url("../img/paper-vvd-sand.jpg");
  color:var(--ink);
}
.footer{
  background-color:var(--paper);
  background-image:url("../img/paper-vvd-cream.jpg");
  color:var(--ink);
}
.contact__title em,
.contact-intro__main h2 em{color:var(--ink-65);}
.contact-big-mail,
.contact__mail,
.contact-big-mail:hover,
.contact__mail:hover{color:var(--clay);}
.contact-founder a{color:var(--clay);border-bottom-color:rgba(85,34,21,.34);}
.project-index__row:hover,
.project-index__row:hover .project-index__arrow{color:var(--clay);}
.work:hover .work__title{color:var(--clay);}
.hero .link-arrow:hover{color:var(--clay);border-color:var(--clay);}
.nav__link.is-active{color:var(--ink);}
.nav__link::after,.nav__link.is-active::after{background:var(--clay);}
.header__cta .dot{background:var(--clay);}

/* warm the photographic shadows / keep the micro-volume */
.work__media{
  box-shadow:
    inset 0 1px 0 rgba(255,252,245,.36),
    0 0 0 1px rgba(63,42,26,.08),
    0 26px 42px -32px rgba(50,32,20,.30),
    0 8px 16px -14px rgba(50,32,20,.12);
}
.work:hover .work__media{
  box-shadow:
    inset 0 1px 0 rgba(255,252,245,.40),
    0 0 0 1px rgba(63,42,26,.10),
    0 34px 52px -34px rgba(50,32,20,.36),
    0 12px 24px -16px rgba(50,32,20,.16);
}
.project-cover,
.project-gallery .media{
  box-shadow:
    inset 0 1px 0 rgba(255,252,245,.30),
    0 0 0 1px rgba(63,42,26,.07),
    0 26px 44px -38px rgba(50,32,20,.24);
}
.works-page .project-index__head,
.works-page .filters{border-color:var(--line-strong);}
.works-page .project-index__num,
.works-page .project-index__en,
.works-page .project-index__type,
.works-page .project-index__arrow,
.works-page .work__en,
.works-page .work__meta,
.works-page .work__line{color:var(--ink-65);}
.works-page .project-index__head .small,
.works-page .filters__count{color:var(--ink-65);}


/* ============================================================
   Reference image palette layer
   cedar / oak / concrete / linen / walnut / leather / smoke
   sampled from the supplied interior image
   ============================================================ */
:root{
  --paper:#F0EAE1;
  --paper-2:#E2D9CC;
  --paper-3:#CFC5B5;
  --ink:#1D1815;
  --ink-80:#332C25;
  --ink-65:#6B5847;
  --ink-50:#8A7764;
  --ink-35:#A39482;
  --line:rgba(29,24,21,.15);
  --line-strong:rgba(29,24,21,.30);
  --cream:#F0EAE1;
  --cream-70:rgba(240,234,225,.72);
  --cream-45:rgba(240,234,225,.6);
  --cream-line:rgba(240,234,225,.14);
  --cedar:#8C4C24;
  --oak:#A56D3A;
  --concrete:#9B886D;
  --walnut:#613E2B;
  --leather:#332F34;
  --linen:#C3BBB5;
  --smoke:#6A6363;
  --clay:#8C4C24;
  --moss:#6A6363;
  --stone-mid:#CFC5B5;
}
html{background:var(--paper);}
body{
  background-color:var(--paper);
  background-image:url("../img/paper-cedar-plaster.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
  color:var(--ink);
}
body.works-page{
  background-color:var(--paper-2);
  background-image:
    radial-gradient(125% 90% at 18% -8%,rgba(246,241,234,.52) 0%,rgba(246,241,234,0) 56%),
    radial-gradient(95% 85% at 82% 108%,rgba(97,62,43,.10) 0%,rgba(97,62,43,0) 62%),
    url("../img/paper-cedar-concrete.jpg");
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.site-header::before{background:rgba(240,234,225,.94);border-bottom:1px solid var(--line);}
.mobile-nav{background-color:var(--paper);background-image:url("../img/paper-cedar-plaster.jpg");}
.hero{background-color:var(--paper);background-image:url("../img/paper-cedar-plaster.jpg");color:var(--ink);}
.page-hero,.works-page .page-hero,.project-head{background:transparent;color:var(--ink);box-shadow:none;}
.material-poem{
  background-color:var(--paper-3);
  background-image:url("../img/paper-cedar-stone.jpg");
  color:var(--ink);
}
.contact{
  background-color:var(--paper-2);
  background-image:url("../img/paper-cedar-concrete.jpg");
  color:var(--ink);
}
.footer{
  background-color:var(--paper);
  background-image:url("../img/paper-cedar-plaster.jpg");
  color:var(--ink);
}
.section--soft{background-color:rgba(226,217,204,.68);}
.works-page .page-hero__title,
.works-page .page-hero__title em{color:var(--ink);}
.works-page .page-hero__title em{color:var(--cedar);}
.nav__link.is-active{color:var(--ink);}
.nav__link::after,.nav__link.is-active::after{background:var(--cedar);}
.header__cta .dot{background:var(--cedar);}
.hero .link-arrow:hover{color:var(--cedar);border-color:var(--cedar);}
.contact-big-mail,.contact__mail{color:var(--cedar);}
.contact-founder a{color:var(--cedar);border-bottom-color:rgba(140,76,36,.34);}
.project-index__row:hover,
.project-index__row:hover .project-index__arrow{color:var(--cedar);}
.work:hover .work__title{color:var(--cedar);}
::selection{background:var(--cedar);color:var(--paper);}

/* warm leather / walnut shadows on the photographic plates */
.work__media{
  box-shadow:
    inset 0 1px 0 rgba(255,250,242,.34),
    0 0 0 1px rgba(97,62,43,.08),
    0 26px 42px -32px rgba(47,34,24,.30),
    0 8px 16px -14px rgba(47,34,24,.13);
}
.work:hover .work__media{
  box-shadow:
    inset 0 1px 0 rgba(255,250,242,.38),
    0 0 0 1px rgba(97,62,43,.10),
    0 34px 52px -34px rgba(47,34,24,.36),
    0 12px 24px -16px rgba(47,34,24,.17);
}
.project-cover,.project-gallery .media{
  box-shadow:
    inset 0 1px 0 rgba(255,250,242,.28),
    0 0 0 1px rgba(97,62,43,.07),
    0 26px 44px -38px rgba(47,34,24,.24);
}
.works-page .page-hero__top,
.works-page .page-hero__en,
.works-page .page-hero__lead,
.works-page .page-hero__note,
.works-page .page-hero__note .en,
.works-page .project-index__num,
.works-page .project-index__en,
.works-page .project-index__type,
.works-page .project-index__arrow,
.works-page .work__en,
.works-page .work__meta,
.works-page .work__line,
.works-page .project-index__head .small,
.works-page .filters__count{color:var(--ink-65);}

/* reference image oak accent for the collection title */
.works-page .page-hero__title em{color:var(--oak);}


/* ============================================================
   Whole-site minimal warm UI pass
   less chrome / fewer labels / smaller type / more air
   ============================================================ */
/* remove decorative chrome that duplicates the hierarchy */
.hero__top,
.hero__bottom,
.hero__scroll-line,
.page-hero__en,
.page-hero__note,
.nav__en,
.mobile-nav__link span,
.filter__en,
.eyebrow .num,
.service__num,
.style-card__num,
.value__num,
.work__num,
.method__item .idx{display:none!important;}

/* header stays quiet; Chinese nav only */
.site-header{padding-block:15px;}
.brand__logo{height:30px;}
.nav__link{font-size:11px;letter-spacing:.07em;}
.header__cta{font-size:10px;}

/* compact page openings; no duplicate English line / right note */
.page-hero{
  padding-top:calc(var(--header) + clamp(48px,6vw,82px));
  padding-bottom:clamp(38px,5vw,64px);
}
.page-hero__title{
  font-size:clamp(2.4rem,4.4vw,4.65rem);
  line-height:1.12;
  margin-top:clamp(24px,3.4vw,38px);
}
.page-hero__bottom{
  margin-top:clamp(26px,3.8vw,48px);
  padding-top:clamp(16px,2.2vw,24px);
}
.page-hero__lead{font-size:14px;max-width:58ch;}

/* home: copy + photograph only; remove meta strips */
.hero{min-height:100vh;min-height:100svh;}
.hero h1{font-size:clamp(2.5rem,4.3vw,4.65rem);line-height:1.12;}
.hero__main{padding-top:clamp(38px,7vh,86px);}
.hero__media figcaption{font-size:8px;letter-spacing:.15em;}

/* type scale: one display scale, one body scale */
.section-head__title,
.about-copy h2,
.studio__title,
.contact-intro__main h2{font-size:clamp(1.9rem,3.15vw,3.2rem);line-height:1.16;}
.contact__title{font-size:clamp(2.3rem,4.1vw,4.35rem);}
.project-title{font-size:clamp(2.6rem,4.9vw,5.15rem);}
.project-en{font-size:clamp(.9rem,1.45vw,1.25rem);letter-spacing:.12em;}
.material-poem__quote{font-size:clamp(1.7rem,2.9vw,3.1rem);}
.work__title{font-size:clamp(1.2rem,1.5vw,1.55rem);letter-spacing:.03em;}
.project-index__name{font-size:clamp(1.3rem,1.6vw,1.65rem);letter-spacing:.03em;}
.contact-big-mail{font-size:clamp(1.55rem,2.9vw,2.9rem);}
.manifesto__quote{font-size:clamp(1.75rem,2.8vw,3rem);}

/* section furniture becomes hairlines, not boxes */
.service{
  grid-template-columns:minmax(0,1.15fr) minmax(0,1.4fr);
  gap:clamp(16px,2.6vw,38px);
  padding:clamp(18px,2.3vw,28px) 0;
}
.service__name{font-size:clamp(1.25rem,1.8vw,1.8rem);letter-spacing:.03em;}
.service__name span{font-size:8px;letter-spacing:.18em;margin-top:4px;}
.service__desc{font-size:12px;line-height:1.9;}
.service__tags{display:none;}
.tag{border:0;padding:0;margin:0 14px 0 0;font-size:9.5px;letter-spacing:.06em;color:var(--ink-50);}
.studio__skills{gap:0;row-gap:7px;}
.style-card{min-height:0;padding:16px 0 18px;}
.style-card h4{margin:0 0 6px;font-size:clamp(1.05rem,1.35vw,1.35rem);}
.value{grid-template-columns:1fr;gap:0;padding-top:18px;}
.value h3{font-size:clamp(1.15rem,1.6vw,1.6rem);margin-bottom:5px;}
.value p{font-size:12px;line-height:1.9;}
.method{
  margin-top:clamp(52px,7vw,88px);
  padding:clamp(26px,3.6vw,42px) 0 0;
  background:transparent;
  border:0;
  border-top:1px solid var(--line);
}
.method__head{padding-bottom:16px;}
.method__head h3{font-size:clamp(1.35rem,1.9vw,1.9rem);}
.method__grid{margin-top:clamp(20px,2.6vw,30px);}
.method__item h4{font-size:11px;letter-spacing:.07em;}
.method__item p{font-size:11px;line-height:1.9;}
.about-quote{font-size:clamp(1.6rem,2.8vw,2.8rem);}
.footer{padding-top:clamp(52px,7vw,86px);}
.footer__base{padding:18px 0 22px;}

/* tighten project detail rhythm */
.project-head{padding-top:calc(var(--header) + clamp(38px,5vw,64px));}
.project-title{margin-top:clamp(26px,4vw,46px);}
.project-en{margin-top:10px;}
.project-facts{margin-top:clamp(30px,4.5vw,54px);padding:18px 0;}
.project-section{padding-block:clamp(54px,7.5vw,96px);}
.project-cover{margin-top:clamp(20px,3vw,34px);}
.project-text p{line-height:2;}

@media (max-width:900px){
  .page-hero__title{font-size:clamp(2.2rem,7vw,3.5rem);}
  .hero h1{font-size:clamp(2.3rem,7vw,3.5rem);}
  .project-title{font-size:clamp(2.3rem,7.4vw,3.8rem);}
  .section-head__title,.about-copy h2,.studio__title,.contact-intro__main h2{font-size:clamp(1.8rem,4.3vw,2.6rem);}
  .service{grid-template-columns:minmax(0,1fr);gap:10px;}
  .service__desc{max-width:none;}
  .tag{margin-right:12px;}
}
@media (max-width:640px){
  .page-hero__title{font-size:clamp(2.15rem,9vw,3.2rem);}
  .hero h1{font-size:clamp(2.2rem,9vw,3.15rem);}
  .project-title{font-size:clamp(2.25rem,9.2vw,3.4rem);}
  .section-head__title,.about-copy h2,.studio__title,.contact-intro__main h2{font-size:clamp(1.7rem,6vw,2.4rem);}
  .contact__title{font-size:clamp(1.9rem,7vw,2.8rem);}
  .contact-big-mail{font-size:clamp(1.4rem,6vw,2.2rem);}
  .method__grid{grid-template-columns:1fr;gap:18px;}
}


/* founder profile page and about-page teaser */
.founder-page .about-intro-section{
  padding-top:calc(var(--header) + clamp(46px,6vw,82px));
}
.founder-teaser{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 16px;
  padding:clamp(18px,2.6vw,28px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--ink);
}
.founder-teaser__eyebrow{
  flex-basis:100%;
  font-size:8.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.founder-teaser__name{
  font-family:var(--serif);
  font-size:clamp(1.35rem,2vw,2rem);
  font-weight:400;
  letter-spacing:.03em;
}
.founder-teaser__en{
  font-size:9px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-50);
}
.founder-teaser__cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
  padding-bottom:3px;
  border-bottom:1px solid var(--line-strong);
  font-size:10px;
  letter-spacing:.05em;
  color:var(--ink-65);
  transition:color .4s ease,border-color .4s ease;
}
.founder-teaser__cta svg{width:12px;height:12px;}
.founder-teaser:hover .founder-teaser__cta{color:var(--oak);border-color:var(--oak);}
.founder-teaser:hover .founder-teaser__name{color:var(--cedar);}
@media (max-width:640px){
  .founder-teaser__cta{width:100%;margin-left:0;}
  .founder-page .about-intro-section{padding-top:calc(var(--header) + 38px);}
}


/* ---------- new film + facade works ---------- */
.works-list .work--film:nth-child(1){grid-column:1 / -1!important;}
.works-list .work--film .work__media{aspect-ratio:16/9;}
.works-list .work:nth-child(2){margin-top:0;}
.work--film .work__media{aspect-ratio:16/9;background:var(--ink);}
.work__video{
  width:100%;height:100%;object-fit:cover;display:block;
  position:absolute;inset:0;
}
.work__kind{
  position:absolute;z-index:4;top:clamp(14px,2vw,22px);right:clamp(14px,2vw,22px);
  padding:7px 10px;
  border:1px solid rgba(244,241,234,.34);
  color:rgba(244,241,234,.82);
  font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;
  background:rgba(15,13,11,.18);
  backdrop-filter:blur(6px);
}
.project-cover--film{background:#17130f;}
.project-video{width:100%;height:100%;object-fit:cover;display:block;}
.project-cover__meta{
  position:absolute;z-index:3;left:clamp(14px,2.2vw,22px);right:clamp(14px,2.2vw,22px);top:clamp(14px,2.2vw,22px);
  display:flex;justify-content:space-between;gap:20px;
  padding:7px 9px;
  background:rgba(15,13,11,.22);
  backdrop-filter:blur(6px);
  font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,241,234,.78);
  pointer-events:none;
}
.project-cover--film::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,8,6,0) 60%,rgba(10,8,6,.32));
}
.film-gallery,.facade-gallery{
  grid-template-columns:repeat(2,1fr);
  gap:clamp(14px,2vw,28px);
}
.film-gallery .gallery__item,
.facade-gallery .gallery__item{
  grid-column:auto!important;
  aspect-ratio:16/9!important;
  margin-top:0!important;
}
@media (max-width:760px){
  .film-gallery,.facade-gallery{grid-template-columns:1fr;}
  .works-list .work--film .work__media{aspect-ratio:16/9;}
}


/* home hero: balanced copy + photograph, image fills the right frame */
@media (min-width:901px){
  .hero__main{align-items:center;padding-top:clamp(28px,4.5vh,64px);}
  .hero__copy{grid-column:1 / 7;}
  .hero__media{grid-column:7 / 13;align-self:center;}
}


/* ---------- awards ---------- */
.awards-hero .page-hero__title{font-size:clamp(3.4rem,8.2vw,8.4rem);}
.awards-intro{padding-top:clamp(52px,7vw,92px);padding-bottom:0;}
.awards-intro__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,44px);align-items:start;}
.awards-intro__grid>.eyebrow{grid-column:1 / 4;}
.awards-intro__grid>div{grid-column:5 / 12;}
.awards-intro__lede{font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,2.8vw,3rem);line-height:1.28;color:var(--ink);}
.awards-intro__copy{margin-top:24px;max-width:52ch;font-size:12.5px;line-height:2;color:var(--ink-65);}
.awards-list-section{padding-top:clamp(54px,7vw,92px);}
.awards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(38px,5vw,78px) clamp(28px,4vw,64px);align-items:start;}
.award-card{display:block;}
.award-card__media{position:relative;aspect-ratio:1000/1414;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 28px 54px -46px rgba(36,28,20,.48);}
.award-card__media img{transition:transform 1.2s var(--ease);}
.award-card:hover .award-card__media img{transform:scale(1.015);}
.award-card__body{padding-top:20px;}
.award-card__top{display:flex;justify-content:space-between;gap:20px;font-size:8.5px;letter-spacing:.18em;color:var(--ink-50);text-transform:uppercase;}
.award-card__title{margin-top:15px;font-family:var(--serif);font-weight:400;font-size:clamp(1.65rem,2.4vw,2.7rem);line-height:1.1;letter-spacing:.02em;color:var(--ink);}
.award-card__zh{margin-top:7px;font-size:11px;letter-spacing:.08em;color:var(--ink-50);}
.award-card__level{margin-top:22px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--cedar);}
.award-card__project{margin-top:13px;font-family:var(--serif);font-size:clamp(1.1rem,1.5vw,1.35rem);line-height:1.35;color:var(--ink);}
.award-card__meta{margin-top:6px;font-size:10px;line-height:1.7;color:var(--ink-65);}
.award-card__who{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:8.5px;line-height:1.6;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-50);}
.award-card:nth-child(5){grid-column:1 / -1;display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,4vw,58px);align-items:center;}
.award-card:nth-child(5) .award-card__media{grid-column:1 / 6;aspect-ratio:900/1798;}
.award-card:nth-child(5) .award-card__body{grid-column:7 / 13;padding-top:0;}
.award-card:nth-child(5) .award-card__title{font-size:clamp(2rem,3.4vw,3.8rem);}
@media (max-width:760px){
  .awards-intro__grid>.eyebrow,.awards-intro__grid>div{grid-column:1 / -1;}
  .awards-grid{grid-template-columns:1fr;gap:48px;}
  .award-card:nth-child(5){display:block;}
  .award-card:nth-child(5) .award-card__media{aspect-ratio:1000/1414;}
  .award-card:nth-child(5) .award-card__body{padding-top:20px;}
}


/* ---------- home new work entries ---------- */
.latest-works{padding-top:clamp(58px,8vw,104px);padding-bottom:clamp(64px,8vw,110px);border-bottom:1px solid var(--line);}
.latest-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;margin-bottom:clamp(24px,3.4vw,40px);}
.latest-head .eyebrow{margin-bottom:14px;}
.latest-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,2.9vw,3rem);line-height:1.15;letter-spacing:.02em;color:var(--ink);}
.latest-head h2 em{font-style:normal;color:var(--ink-50);}
.latest-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(22px,3vw,44px);align-items:start;}
.latest-card{display:block;color:var(--ink);}
.latest-card__media{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);background:var(--ink);box-shadow:0 24px 48px -42px rgba(36,28,20,.45);}
.latest-card__media img{width:100%;height:100%;object-fit:cover;object-position:center 58%;transition:transform 1.1s var(--ease);}
.latest-card:hover .latest-card__media img{transform:scale(1.03);}
.latest-card__play{position:absolute;z-index:3;left:clamp(14px,2vw,24px);bottom:clamp(14px,2vw,24px);width:44px;height:44px;border:1px solid rgba(244,241,234,.5);display:flex;align-items:center;justify-content:center;color:var(--cream);background:rgba(16,14,12,.2);backdrop-filter:blur(6px);}
.latest-card__play svg{width:15px;height:15px;}
.latest-card__tag{position:absolute;z-index:3;right:clamp(14px,2vw,24px);top:clamp(14px,2vw,24px);padding:7px 9px;border:1px solid rgba(244,241,234,.3);background:rgba(16,14,12,.2);backdrop-filter:blur(6px);color:rgba(244,241,234,.8);font-size:8px;letter-spacing:.17em;text-transform:uppercase;}
.latest-card__body{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-top:17px;}
.latest-card__type{font-size:8px;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-50);}
.latest-card__body h3{margin-top:7px;font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.2vw,2.2rem);line-height:1.1;color:var(--ink);}
.latest-card__body p{margin-top:3px;font-size:10px;letter-spacing:.08em;color:var(--ink-50);}
.latest-card__cta{flex:none;display:inline-flex;align-items:center;gap:8px;padding-bottom:4px;border-bottom:1px solid var(--line-strong);font-size:9px;letter-spacing:.08em;color:var(--ink-65);transition:color .4s ease,border-color .4s ease;}
.latest-card__cta svg{width:12px;height:12px;}
.latest-card:hover .latest-card__cta{color:var(--cedar);border-color:var(--cedar);}
@media (max-width:760px){
  .latest-head{display:block;}
  .latest-head .link-arrow{margin-top:18px;}
  .latest-grid{grid-template-columns:1fr;}
  .latest-card__body{display:block;}
  .latest-card__cta{margin-top:14px;}
}

/* prevent a 5px decorative overflow on the home page */
html{overflow-x:clip;}
body{overflow-x:clip;}
.latest-works{overflow:hidden;}
