
/* ============================================================
   SORA STONE — design tokens
   ============================================================ */
:root{
  /* --- color: warm quarried stone, deep umber shadow, bronze vein --- */
  --stone-950:#181009;
  --stone-900:#241a10;
  --stone-800:#3a2b1c;
  --stone-700:#4f3c28;
  --stone-500:#8a7255;
  --stone-300:#c9b89b;
  --stone-100:#ece2ce;
  --stone-50:#f6f0e3;
  --bronze:#a9784a;
  --bronze-dim:#7c5b3c;
  --ink:#1c140b;
  --paper:#f6f0e3;

  --serif:'Fraunces', 'Iowan Old Style', 'Palatino Linotype', serif;
  --sans:'Manrope', -apple-system, 'Segoe UI', sans-serif;

  --ease-out: cubic-bezier(.16,.8,.24,1);
  --ease-in-out: cubic-bezier(.65,0,.35,1);

  --edge: clamp(1.5rem, 5vw, 5rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:auto; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--bronze); color:var(--paper); }

.eyebrow-off{ /* intentionally unused marker so future edits remember: no eyebrow labels */ }

h1,h2,h3{
  font-family:var(--serif);
  font-weight:500;
  margin:0;
  letter-spacing:-0.01em;
}

.wrap{
  max-width:1400px;
  margin:0 auto;
  padding-left:var(--edge);
  padding-right:var(--edge);
}

/* focus visibility */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--bronze);
  outline-offset:4px;
}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.6rem var(--edge);
  color:var(--paper);
  transition:background-color .5s var(--ease-out), padding .4s var(--ease-out), border-color .5s var(--ease-out);
  border-bottom:1px solid transparent;
}
.nav.is-solid{
  background:rgba(24,16,9,0.92);
  backdrop-filter:blur(10px);
  padding-top:1.05rem;
  padding-bottom:1.05rem;
  border-bottom:1px solid rgba(201,184,155,0.16);
}
.nav__mark{
  display:flex;
  align-items:center;
  gap:0.7rem;
  font-family:var(--serif);
  font-size:1.42rem;
  letter-spacing:0.01em;
}
.nav__mark img{
  height:2.7rem;
  width:auto;
  display:block;
}
.nav__mark span{
  font-style:italic;
  font-weight:400;
  color:var(--stone-300);
}
.nav__links{
  display:flex;
  gap:2.4rem;
  font-size:0.92rem;
  list-style:none;
  margin:0; padding:0;
}
.nav__links a{
  position:relative;
  padding-bottom:3px;
}
.nav__links a::after{
  content:"";
  position:absolute;
  left:0; right:100%;
  bottom:0;
  height:1px;
  background:var(--stone-300);
  transition:right .35s var(--ease-out);
}
.nav__links a:hover::after{ right:0; }
.nav__has-dropdown{
  position:relative;
}
.nav__dropdown{
  position:absolute;
  top:100%;
  left:50%;
  transform:translate(-50%, 6px);
  list-style:none;
  margin:0;
  padding:0.6rem 0;
  min-width:150px;
  background:rgba(24,16,9,0.97);
  border:1px solid rgba(201,184,155,0.16);
  border-radius:2px;
  opacity:0;
  visibility:hidden;
  transition:opacity .25s var(--ease-out), transform .25s var(--ease-out), visibility .25s;
}
.nav__has-dropdown:hover .nav__dropdown{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 2px);
}
.nav__dropdown li{ display:block; }
.nav__dropdown a{
  display:block;
  padding:0.55rem 1.2rem;
  white-space:nowrap;
  font-size:0.88rem;
}
.nav__dropdown a::after{ display:none; }
.nav__dropdown a:hover{ color:var(--stone-300); }
.nav__cta{
  border:1px solid rgba(246,240,227,0.55);
  padding:0.6rem 1.25rem;
  border-radius:2px;
  font-size:0.85rem;
  transition:background-color .3s, border-color .3s, color .3s;
}
.nav__cta:hover{
  background:var(--paper);
  color:var(--stone-950);
  border-color:var(--paper);
}
.nav__toggle{ display:none; }

/* ============================================================
   HERO — scroll-scrubbed video
   ============================================================ */
.hero-pin{
  position:relative;
  height:480vh;
  background:var(--stone-950);
}
.hero-sticky{
  position:sticky;
  top:0;
  height:100vh;
  height:100dvh;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
}
.hero-video-frame{
  position:absolute;
  inset:0;
  overflow:hidden;
  transform:scale(1.16);
  will-change:transform;
}
.hero-video-frame video,
.hero-video-frame img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(0.62) saturate(1.05);
}
.hero-video-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(120% 90% at 50% 100%, rgba(24,16,9,0) 30%, rgba(24,16,9,0.75) 100%),
    linear-gradient(180deg, rgba(24,16,9,0.35) 0%, rgba(24,16,9,0.05) 28%, rgba(24,16,9,0.1) 60%, rgba(24,16,9,0.7) 100%);
}
.hero-grain{
  position:absolute;
  inset:0;
  opacity:0.05;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-content{
  position:relative;
  z-index:2;
  width:100%;
  padding:0 var(--edge) clamp(3rem, 8vh, 6.5rem);
  color:var(--paper);
}
.hero-kicker{
  font-size:0.92rem;
  color:var(--stone-300);
  margin-bottom:1.1rem;
  max-width:30ch;
  will-change:transform,opacity;
}
.hero-headline{
  font-size:clamp(2.6rem, 6.6vw, 5.6rem);
  line-height:1.03;
  max-width:16ch;
  will-change:transform,opacity;
}
.hero-headline em{
  font-style:italic;
  font-weight:400;
  color:var(--stone-300);
}
.hero-foot{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-top:2.4rem;
  padding-top:1.6rem;
  border-top:1px solid rgba(246,240,227,0.22);
  will-change:transform,opacity;
}
.hero-foot p{
  margin:0;
  max-width:34ch;
  font-size:0.98rem;
  color:var(--stone-100);
  line-height:1.55;
}
.scroll-cue{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.6rem;
  font-size:0.78rem;
  color:var(--stone-300);
  flex-shrink:0;
}
.scroll-cue__line{
  width:1px;
  height:38px;
  background:linear-gradient(180deg, var(--stone-300), transparent);
  position:relative;
  overflow:hidden;
}
.scroll-cue__line::after{
  content:"";
  position:absolute;
  left:0; top:-100%;
  width:100%; height:100%;
  background:var(--paper);
  animation:scrollcue 1.8s var(--ease-in-out) infinite;
}
@keyframes scrollcue{
  0%{ top:-100%; }
  60%{ top:100%; }
  100%{ top:100%; }
}

/* ============================================================
   SHARED SECTION RHYTHM
   ============================================================ */
section{ position:relative; }
.section-pad{ padding:clamp(5rem,12vh,9rem) 0; }
.on-dark{ background:var(--stone-950); color:var(--paper); }
.on-light{ background:var(--stone-50); color:var(--ink); }

.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* seam motif: thin diagonal facet mark, echoes the mosaic joins in the hero */
.facet{
  width:11px; height:11px;
  border:1px solid var(--bronze);
  transform:rotate(45deg);
  flex-shrink:0;
}
.on-dark .facet{ border-color:var(--stone-300); }

/* ============================================================
   PHILOSOPHY
   ============================================================ */
.philosophy{
  display:grid;
  grid-template-columns:minmax(0,34%) minmax(0,66%);
  align-items:stretch;
  min-height:640px;
  background:var(--stone-50);
}
.philosophy__media{
  position:relative;
  overflow:hidden;
}
.philosophy__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.philosophy__content{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:3.5rem;
  align-items:center;
  padding:clamp(4.5rem,9vh,6.5rem) var(--edge) clamp(3rem,7vh,5rem) clamp(2.4rem,5vw,4.5rem);
}
.philosophy__main{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1.7rem;
}
.philosophy__aside{
  align-self:center;
}
.philosophy__eyebrow{
  display:flex;
  align-items:center;
  gap:1rem;
  font-size:0.76rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--stone-700);
}
.philosophy__eyebrow i{
  display:block;
  width:64px;
  height:1px;
  background:var(--stone-300);
  font-style:normal;
}
.philosophy__lead{
  font-size:clamp(1.9rem, 2.7vw, 2.5rem);
  line-height:1.28;
  font-weight:400;
  margin:0;
}
.philosophy__body{
  font-size:1rem;
  line-height:1.75;
  color:var(--stone-800);
  margin:0;
}
.philosophy__stats{
  display:flex;
  flex-wrap:wrap;
  gap:1.8rem;
  margin-top:0.2rem;
}
.stat{
  display:flex;
  flex-direction:column;
  gap:0.6rem;
  padding-left:1.8rem;
  border-left:1px solid var(--stone-300);
}
.stat:first-child{
  padding-left:0;
  border-left:none;
}
.stat svg{
  width:26px;
  height:26px;
  color:var(--stone-700);
}
.stat b{
  display:block;
  font-family:var(--serif);
  font-size:1.7rem;
  font-weight:500;
}
.stat span{
  font-size:0.85rem;
  color:var(--stone-700);
  max-width:16ch;
}
.philosophy__cta{
  display:inline-flex;
  align-items:center;
  gap:0.85rem;
  background:var(--stone-950);
  color:var(--paper);
  padding:0.95rem 1.6rem;
  font-size:0.8rem;
  letter-spacing:0.09em;
  text-transform:uppercase;
  border-radius:2px;
  margin-top:0.3rem;
  transition:background-color .3s, gap .3s var(--ease-out);
}
.philosophy__cta svg{
  width:18px;
  height:10px;
  flex-shrink:0;
  transition:transform .3s var(--ease-out);
}
.philosophy__cta:hover{
  background:var(--stone-800);
  gap:1.15rem;
}

/* ============================================================
   PROCESS
   ============================================================ */
.process__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:2rem;
  margin-bottom:3.6rem;
  flex-wrap:wrap;
}
.process__head h2{
  font-size:clamp(2rem,4vw,3rem);
  max-width:14ch;
}
.process__head p{
  max-width:34ch;
  color:var(--stone-300);
  line-height:1.65;
  margin:0.5rem 0 0;
}
.process-list{
  list-style:none;
  margin:0; padding:0;
  border-top:1px solid var(--stone-800);
}
.process-row{
  display:grid;
  grid-template-columns:5rem 1fr 1.4fr;
  gap:2.4rem;
  align-items:start;
  padding:2.2rem 0;
  border-bottom:1px solid var(--stone-800);
}
.process-row__index{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.15rem;
  color:var(--stone-500);
  padding-top:0.15rem;
}
.process-row h3{
  font-size:1.5rem;
  font-weight:500;
}
.process-row p{
  margin:0;
  color:var(--stone-300);
  line-height:1.7;
  max-width:52ch;
}
.finish-tags{
  grid-column:3;
  list-style:none;
  margin:1.1rem 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:0.6rem;
  max-width:52ch;
}
.finish-tags li{
  border:1px solid rgba(201,184,155,0.35);
  color:var(--stone-100);
  font-size:0.82rem;
  padding:0.38rem 0.9rem;
  border-radius:2px;
}

/* ============================================================
   MATERIALS strip
   ============================================================ */
.materials__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  margin-bottom:2.6rem;
  flex-wrap:wrap;
}
.materials__head h2{ font-size:clamp(1.7rem,3vw,2.4rem); max-width:38ch; }
.materials__head p{ max-width:30ch; color:var(--stone-700); line-height:1.6; margin:0; }

.materials-row{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--stone-300);
  border:1px solid var(--stone-300);
}
.swatch{
  background:var(--stone-50);
  padding:1.4rem 1.2rem 1.2rem;
  aspect-ratio:16/10;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:0.5rem;
  position:relative;
  overflow:hidden;
}
.swatch__field{
  position:absolute;
  inset:0;
}
.swatch__field.swatch__field--photo{
  width:100%;
  height:100%;
  object-fit:cover;
}
.swatch--photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(20,14,9,0) 55%, rgba(20,14,9,0.6) 100%);
}
.swatch__label{
  position:relative;
  z-index:1;
}
.swatch__label b{
  display:block;
  font-family:var(--serif);
  font-weight:500;
  font-size:1.02rem;
  color:var(--stone-950);
}
.swatch__label span{
  font-size:0.78rem;
  color:var(--stone-800);
}
/* stone swatches — placeholders until real photography arrives */
.swatch--1 .swatch__field{ background:linear-gradient(125deg,#f7f4ee 0%,#ece6d8 40%,#d9d2bf 65%,#f2eee3 100%); } /* Dolomite White */
.swatch--2 .swatch__field{ background:linear-gradient(125deg,#c9c7c0 0%,#a4a199 45%,#78766c 70%,#b7b4aa 100%); } /* Fossil Grey */
.swatch--3 .swatch__field{ background:linear-gradient(125deg,#161313 0%,#040404 50%,#252020 75%,#0b0909 100%); } /* Thoros Black */
.swatch--4 .swatch__field{ background:linear-gradient(125deg,#eef0ee 0%,#dde1dd 40%,#c3c9c3 65%,#e6eae6 100%); } /* Carrara White */
.swatch--5 .swatch__field{ background:linear-gradient(125deg,#eccf88 0%,#d3a94f 40%,#a97c2e 70%,#e4c078 100%); } /* Sunshine Gold */
.swatch--6 .swatch__field{ background:linear-gradient(125deg,#4a3527 0%,#2c1e14 50%,#5c4230 75%,#231710 100%); } /* Burdur Brown (fallback under photo) */
.swatch--7 .swatch__field{ background:linear-gradient(125deg,#425c48 0%,#24382b 45%,#0f1c14 70%,#33492f 100%); } /* Verde Guatemala */
.swatch--8 .swatch__field{ background:linear-gradient(125deg,#5c2430 0%,#3a1219 45%,#210a0e 70%,#4a1c26 100%); } /* Elazığ Vişne */
.swatch--9 .swatch__field{ background:linear-gradient(125deg,#e9dcc0 0%,#d7c39c 45%,#b99f76 70%,#e2d2ac 100%); } /* Antique Beige */
.swatch--1 .swatch__label b, .swatch--2 .swatch__label b, .swatch--4 .swatch__label b, .swatch--5 .swatch__label b, .swatch--9 .swatch__label b{ color:#241a13; }
.swatch--3 .swatch__label b, .swatch--6 .swatch__label b, .swatch--7 .swatch__label b, .swatch--8 .swatch__label b, .swatch--10 .swatch__label b{ color:#f6f0e3; }
.swatch--10 .swatch__field{ background:linear-gradient(125deg,#6d4831 0%,#432a1b 45%,#7c5238 70%,#33200f 100%); } /* Burdur Brown */
/* photo swatches always darken toward the bottom for the caption, so the label needs light text regardless of the stone's own colour */
.swatch--photo .swatch__label b{ color:#f6f0e3; }

/* ============================================================
   GALLERY — placeholder mosaic grid
   ============================================================ */
.gallery__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  margin-bottom:2.6rem;
  flex-wrap:wrap;
}
.gallery__head h2{ font-size:clamp(2rem,4vw,3rem); max-width:16ch; }
.gallery__head p{ max-width:36ch; color:var(--stone-700); line-height:1.65; margin:0; }

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:11vw;
  gap:0.9rem;
}
.gallery-tile{
  position:relative;
  border:1px dashed var(--stone-500);
  background:repeating-linear-gradient(135deg, var(--stone-100), var(--stone-100) 10px, #e4d9c2 10px, #e4d9c2 11px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
  text-align:center;
  color:var(--stone-700);
  overflow:hidden;
}
.gallery-tile__mark{
  width:26px; height:26px;
  border:1px solid var(--stone-500);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1rem;
  color:var(--stone-500);
}
.gallery-tile__cap{
  font-size:0.78rem;
  line-height:1.4;
  max-width:22ch;
}
.gallery-tile__cap b{ display:block; color:var(--ink); font-weight:600; }
.gt-a{ grid-column:span 3; grid-row:span 2; }
.gt-b{ grid-column:span 3; grid-row:span 1; }
.gt-c{ grid-column:span 3; grid-row:span 1; }
.gt-d{ grid-column:span 2; grid-row:span 2; }
.gt-e{ grid-column:span 2; grid-row:span 2; }
.gt-f{ grid-column:span 2; grid-row:span 2; }

.collection-group{
  margin-top:3.4rem;
  scroll-margin-top:6.5rem;
}
.collection-group:first-of-type{
  margin-top:0;
}
.collection-group__head{
  display:flex;
  align-items:baseline;
  gap:0.75rem;
  margin-bottom:1.4rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--stone-300);
}
.collection-group__head h3{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(1.3rem, 2.2vw, 1.6rem);
}
.collection-group__head h3 em{
  font-style:italic;
  font-weight:400;
  color:var(--stone-700);
}
.collection-group__count{
  font-size:0.8rem;
  color:var(--stone-500);
}
.collection-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0.9rem;
}
.collection-grid .gallery-tile{
  aspect-ratio:3/4;
}
.collection-grid--figurative{
  grid-template-columns:repeat(3, 1fr);
}
.collection-tile{
  position:relative;
  overflow:hidden;
  aspect-ratio:3/4;
  background:var(--stone-100);
}
.collection-tile img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.collection-tile--wide{
  grid-column:1 / -1;
  aspect-ratio:4.6/1;
}
.geo-swatches{
  display:grid;
  grid-template-columns:repeat(8, 1fr);
  gap:0.5rem;
  margin-top:1.6rem;
}
.geo-swatch{
  aspect-ratio:1/1;
  overflow:hidden;
  background:transparent;
}
.geo-swatch img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

/* ============================================================
   CTA / FOOTER
   ============================================================ */
.cta{
  text-align:left;
  padding-bottom:clamp(4rem,10vh,7rem);
}
.cta h2{
  font-size:clamp(2.4rem,6vw,4.6rem);
  max-width:18ch;
  line-height:1.08;
}
.contact-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:4rem;
  align-items:start;
  margin-top:2.4rem;
}
.contact-intro p{
  color:var(--stone-300);
  line-height:1.65;
  max-width:42ch;
  margin:1.4rem 0 2rem;
}
.contact-details{
  list-style:none;
  margin:0;
  padding-top:1.4rem;
  border-top:1px solid var(--stone-800);
  display:flex;
  flex-direction:column;
  gap:0.6rem;
}
.contact-details li{
  color:var(--stone-300);
  font-size:0.92rem;
}
.contact-form{
  display:flex;
  flex-direction:column;
  gap:1.3rem;
  background:var(--stone-900);
  border:1px solid var(--stone-800);
  padding:2.2rem;
  border-radius:2px;
}
.contact-form__row{
  display:flex;
  gap:1.2rem;
}
.contact-form__row .contact-form__field{
  flex:1;
  min-width:0;
}
.contact-form__field{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}
.contact-form label{
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--stone-500);
}
.contact-form input{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--stone-700);
  color:var(--paper);
  font-family:var(--sans);
  font-size:0.98rem;
  padding:0.55rem 0.05rem;
  outline:none;
  transition:border-color .3s;
}
.contact-form input::placeholder{ color:var(--stone-600); }
.contact-form input:focus{ border-color:var(--bronze); }
.contact-form__submit{
  margin-top:0.4rem;
  align-self:flex-start;
  border:none;
  cursor:pointer;
  font-family:inherit;
}
.contact-form__note{
  font-size:0.85rem;
  color:var(--stone-300);
  margin:0;
  min-height:1.2em;
}
.contact-form__note.is-success{ color:var(--bronze); }
.contact-form__note.is-error{ color:#c0685a; }
.contact-form__submit:disabled{ opacity:0.6; cursor:not-allowed; }
.btn{
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  background:var(--paper);
  color:var(--stone-950);
  padding:0.95rem 1.7rem;
  border-radius:2px;
  font-size:0.95rem;
  font-weight:600;
  white-space:nowrap;
  transition:background-color .3s, transform .3s var(--ease-out);
}
.btn:hover{ background:var(--stone-300); transform:translateY(-2px); }

footer{
  border-top:1px solid var(--stone-800);
  padding:2.4rem 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
  font-size:0.85rem;
  color:var(--stone-500);
}
.footer__mark{
  display:flex;
  align-items:center;
  gap:0.65rem;
  font-family:var(--serif);
  color:var(--stone-300);
  font-size:1.15rem;
}
.footer__mark img{
  height:2.2rem;
  width:auto;
  display:block;
}
.footer__links{
  display:flex;
  gap:1.6rem;
  list-style:none;
  margin:0; padding:0;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .hero-pin{ height:320vh; }
  .nav__links{ display:none; }
  .philosophy{ grid-template-columns:1fr; min-height:auto; }
  .philosophy__media{ height:280px; }
  .philosophy__content{ grid-template-columns:1fr; gap:2rem; padding:2.4rem var(--edge); }
  .philosophy__aside{ padding-top:0; }
  .philosophy__stats{ gap:1.6rem 2rem; }
  .process-row{ grid-template-columns:1fr; gap:0.6rem; }
  .finish-tags{ grid-column:1; }
  .materials-row{ grid-template-columns:repeat(2,1fr); }
  .swatch{ aspect-ratio:1/1; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:36vw; }
  .collection-grid{ grid-template-columns:repeat(2,1fr); }
  .collection-grid--figurative{ grid-template-columns:repeat(2,1fr); }
  .collection-tile--wide{ aspect-ratio:2.2/1; }
  .contact-grid{ grid-template-columns:1fr; gap:2.4rem; }
  .contact-form{ padding:1.6rem; }
  .contact-form__row{ flex-direction:column; gap:1.3rem; }
  .nav__dropdown{ display:none; }
  .geo-swatches{ grid-template-columns:repeat(4, 1fr); }
  .gt-a,.gt-b,.gt-c,.gt-d,.gt-e,.gt-f{ grid-column:span 1; grid-row:span 1; }
  .hero-headline{ max-width:13ch; }
  .hero-foot{ flex-direction:column; align-items:flex-start; gap:1.2rem; }
  .scroll-cue{ flex-direction:row; }
  .scroll-cue__line{ width:38px; height:1px; background:linear-gradient(90deg,var(--stone-300),transparent); }
}

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .scroll-cue__line::after{ animation:none; }
  .hero-video-frame{ transform:none !important; }
}
