:root{
  --paper:#f7f7f7;
  --paper-alt:#ececec;
  --ink:#19170F;
  --stamp:#A73A28;
  --thread:#8E7530;
  --fog:#7B7566;
  --line:rgba(25,23,15,0.12);
  --line-strong:rgba(25,23,15,0.28);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Instrument Sans',sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1520px;margin:0 auto;padding:0 22px;}
@media(min-width:701px){.wrap{padding:0 40px;}}
@media(min-width:1101px){.wrap{padding:0 80px;}}

h1,h2,h3{font-family:'Fraunces',serif;font-weight:600;letter-spacing:-0.012em;margin:0;}
em{font-style:italic;font-weight:500;color:var(--stamp);}

.eyebrow{
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--fog);font-weight:600;display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:16px;height:1px;background:var(--stamp);display:inline-block;}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:80;
  background:rgba(247,247,247,0.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  transition:background .35s ease,border-color .35s ease;
}
body.menu-open{overflow:hidden;}
body.menu-open header{
  background:var(--paper);
  border-bottom-color:transparent;
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:22px;padding-bottom:22px;
}
.logo{display:flex;align-items:center;line-height:0;position:relative;z-index:90;}
.logo img{height:24px;width:auto;display:block;}
nav.links{display:none;gap:36px;font-size:13px;letter-spacing:.02em;}
nav.links a{position:relative;padding-bottom:4px;color:var(--ink);}
nav.links a.active{color:var(--stamp);}
nav.links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--stamp);transition:width .25s ease;}
nav.links a:hover::after{width:100%;}
.nav-right{display:flex;align-items:center;gap:24px;font-size:12px;color:var(--fog);position:relative;z-index:90;}
.nav-right a:hover{color:var(--stamp);}
.nav-right > span:not(.cart-pill),
.nav-right > a{display:none;}
.cart-pill{border:1px solid var(--ink);padding:7px 14px;border-radius:20px;font-size:11px;letter-spacing:.04em;display:flex;align-items:center;gap:6px;color:var(--ink);}
.cart-pill b{color:var(--stamp);}
.burger{
  position:relative;z-index:90;
  width:40px;height:40px;padding:0;margin:0 -8px 0 0;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;background:none;border:none;
}
.burger span{
  position:absolute;left:9px;width:22px;height:1.5px;
  background:var(--ink);display:block;
  transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .2s ease,top .4s cubic-bezier(.22,1,.36,1);
}
.burger span:nth-child(1){top:14px;}
.burger span:nth-child(2){top:19.25px;}
.burger span:nth-child(3){top:24.5px;}
.burger[aria-expanded="true"] span:nth-child(1){top:19.25px;transform:rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){top:19.25px;transform:rotate(-45deg);}

.mobile-menu{
  position:fixed;inset:0;z-index:70;
  background:var(--paper);
  display:flex;flex-direction:column;
  visibility:hidden;pointer-events:none;
  transform:translateX(100%);
  transition:transform .55s cubic-bezier(.22,1,.36,1),visibility 0s .55s;
}
.mobile-menu.open{
  visibility:visible;pointer-events:auto;
  transform:translateX(0);
  transition:transform .55s cubic-bezier(.22,1,.36,1),visibility 0s;
}
.mobile-menu-panel{
  flex:1;display:flex;flex-direction:column;justify-content:space-between;
  width:100%;max-width:1520px;margin:0 auto;
  padding:108px 22px 32px;
}
.mobile-menu-links{display:flex;flex-direction:column;}
.mobile-menu-links a{
  display:flex;align-items:baseline;gap:16px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-family:'Fraunces',serif;
  font-size:clamp(30px,8.4vw,48px);
  font-weight:500;letter-spacing:-0.025em;line-height:1.05;
  opacity:0;transform:translateX(28px);
  transition:opacity .5s ease,transform .55s cubic-bezier(.22,1,.36,1),color .2s ease;
  transition-delay:0s;
}
.mobile-menu.open .mobile-menu-links a{
  opacity:1;transform:none;
  transition-delay:calc(.08s + var(--i,1) * .055s);
}
.mobile-menu-links a .idx{
  font-family:'Instrument Sans',sans-serif;
  font-size:11px;letter-spacing:.16em;font-weight:600;
  color:var(--fog);flex-shrink:0;
}
.mobile-menu-links a.active{color:var(--stamp);}
.mobile-menu-links a.active .idx{color:var(--stamp);}
.mobile-menu-links a:hover{color:var(--stamp);}
.mobile-menu-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;
  padding-top:28px;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--fog);
  opacity:0;transform:translateY(10px);
  transition:opacity .45s ease,transform .45s ease;
}
.mobile-menu.open .mobile-menu-meta{
  opacity:1;transform:none;
  transition-delay:.38s;
}
.mobile-menu-meta a{color:inherit;}
.mobile-menu-meta a:hover{color:var(--ink);}
@media(min-width:701px){
  .mobile-menu-panel{padding:120px 40px 40px;}
}
@media(min-width:921px){
  .nav-row{padding-top:32px;padding-bottom:32px;}
  .logo img{height:28px;}
  nav.links{display:flex;}
  .burger{display:none;}
  .nav-right > span:not(.cart-pill){display:inline;}
  .nav-right > a{display:inline;}
  .mobile-menu{display:none !important;}
}
@media(prefers-reduced-motion:reduce){
  .mobile-menu,.mobile-menu-links a,.mobile-menu-meta,.burger span{
    transition:none;
  }
  .mobile-menu{transform:none;}
  .mobile-menu:not(.open){visibility:hidden;}
}

/* ---------- home gallery ---------- */
.gallery{
  padding:8px;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.tile{
  position:relative;overflow:hidden;background:var(--paper-alt);
  min-height:58vh;display:block;color:#fff;
}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1);}
.tile:hover img{transform:scale(1.045);}
.tile .cap{
  position:absolute;inset:auto 0 0 0;padding:22px 24px 20px;
  background:linear-gradient(to top,rgba(25,23,15,.78) 0%,rgba(25,23,15,.28) 55%,transparent 100%);
  display:flex;flex-direction:column;gap:4px;
  opacity:1;transform:none;
  pointer-events:none;
}
.tile .num{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;opacity:.9;text-shadow:0 1px 10px rgba(0,0,0,.45);}
.tile h2{font-size:clamp(18px,1.8vw,26px);font-weight:600;color:#fff;letter-spacing:-0.01em;text-shadow:0 2px 18px rgba(0,0,0,.5);}
.tile--feature{height:70vh;min-height:420px;}
.tile--feature .cap{
  padding:24px 20px;
  background:linear-gradient(to top,rgba(25,23,15,.88) 0%,rgba(25,23,15,.45) 42%,transparent 78%);
}
.tile--feature h2{font-size:clamp(28px,4vw,52px);}
.tile--feature .num{margin-bottom:6px;}
@media(min-width:901px){
  .gallery{padding:12px 12px 0;grid-template-columns:repeat(12,1fr);gap:10px;}
  .tile{min-height:280px;}
  .tile .cap{
    opacity:0;transform:translateY(8px);
    transition:opacity .35s ease, transform .35s ease;
  }
  .tile:hover .cap,.tile:focus-visible .cap{opacity:1;transform:none;}
  .tile--feature{grid-column:1 / -1;height:calc(100vh - 98px);min-height:560px;}
  .tile--feature .cap{opacity:1;transform:none;padding:40px 36px 32px;}
  .tile--lg{grid-column:span 7;min-height:68vh;}
  .tile--md{grid-column:span 5;min-height:68vh;}
  .tile--sm{grid-column:span 4;min-height:52vh;}
  .tile--wide{grid-column:span 8;min-height:52vh;}
  .tile--rest{grid-column:span 4;min-height:52vh;}
}

.quote-strip{padding:56px 22px;text-align:center;}
@media(min-width:701px){.quote-strip{padding:88px 24px;}}
.quote-strip blockquote{
  margin:0 auto;font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:clamp(20px,2.8vw,34px);line-height:1.35;max-width:22em;
}

.press-marquee{display:block;padding:28px 0 40px;overflow:hidden;border-top:1px solid var(--line);color:inherit;}
.marquee{display:flex;width:max-content;animation:scroll 34s linear infinite;}
.marquee span{
  font-family:'Fraunces',serif;font-style:italic;font-size:clamp(18px,2.2vw,26px);
  color:var(--fog);white-space:nowrap;padding:0 34px;border-right:1px solid var(--line);
}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.marquee{animation:none;}}

.shop-preview{padding:40px 0 56px;}
.carousel-head{
  display:flex;justify-content:space-between;align-items:end;
  margin-bottom:28px;gap:16px;
}
.carousel-head h2{font-size:clamp(24px,3vw,34px);}
.carousel-nav{display:flex;gap:8px;}
.car-btn{
  width:40px;height:40px;border:1px solid var(--line-strong);background:var(--paper);
  cursor:pointer;font-size:16px;color:var(--ink);line-height:1;
  font-family:'Instrument Sans',sans-serif;transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.car-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.carousel{
  display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding:4px 0 12px;
}
.carousel::-webkit-scrollbar{display:none;}
.carousel .p-card{
  flex:0 0 80%;
  scroll-snap-align:start;
}
@media(min-width:561px){
  .carousel .p-card{flex-basis:calc((100% - 20px) / 2);}
}
@media(min-width:901px){
  .shop-preview{padding:56px 0 72px;}
  .carousel{gap:28px;}
  .carousel .p-card{flex-basis:calc((100% - 56px) / 3);}
}

/* ---------- shop ---------- */
.shop-hero{padding:28px 0 8px;}
@media(min-width:701px){.shop-hero{padding:40px 0 8px;}}
.shop-hero h1{font-size:clamp(28px,3.2vw,40px);margin-top:10px;}

.filters{
  display:flex;flex-direction:column;gap:20px;
  padding-top:24px;padding-bottom:28px;
}
.filter-field{display:flex;flex-direction:column;gap:8px;width:100%;}
.filter-field label{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fog);font-weight:600;
}
.filter-select{
  appearance:none;-webkit-appearance:none;
  width:100%;
  background:var(--paper) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1.5 L6 6.5 L11 1.5' fill='none' stroke='%2319170F' stroke-width='1.4'/></svg>") no-repeat right 2px center;
  border:none;border-bottom:1px solid var(--line-strong);
  border-radius:0;padding:10px 28px 10px 0;
  font-family:'Instrument Sans',sans-serif;font-size:16px;color:var(--ink);
  cursor:pointer;transition:border-color .2s ease;
}
.filter-select:hover,.filter-select:focus{outline:none;border-color:var(--ink);}
@media(min-width:701px){
  .filters{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:28px;padding-top:28px;padding-bottom:36px;}
  .filter-field{min-width:220px;width:auto;}
  .filter-select{max-width:320px;font-size:14px;}
}

.shop-grid{display:grid;grid-template-columns:1fr;gap:28px 16px;margin:0 0 80px;}
@media(min-width:561px){.shop-grid{grid-template-columns:repeat(2,1fr);gap:22px 16px;}}
@media(min-width:901px){.shop-grid{grid-template-columns:repeat(3,1fr);gap:28px 22px;margin:0 0 100px;}}

.shop-empty{
  text-align:center;color:var(--fog);
  font-family:'Fraunces',serif;font-style:italic;font-size:20px;
  padding:40px 0 80px;
}
.shop-empty[hidden]{display:none;}

.p-card{background:transparent;display:flex;flex-direction:column;transition:opacity .3s ease;}
.p-card.hidden{display:none;}
.p-card .ph{
  aspect-ratio:3/4;overflow:hidden;background:var(--paper-alt);
  margin-bottom:16px;position:relative;
}
.p-card .ph img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .7s cubic-bezier(.22,1,.36,1), filter .45s ease;
}
.p-card .ph-hit{position:absolute;inset:0;z-index:1;}
.p-card .ph .veil{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(25,23,15,.45),rgba(25,23,15,.08) 55%,transparent);
  opacity:0;transition:opacity .4s ease;pointer-events:none;
}
.p-card .quick{
  position:absolute;left:14px;right:14px;bottom:14px;
  background:var(--paper);color:var(--ink);border:none;
  padding:13px 12px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  font-family:'Instrument Sans',sans-serif;cursor:pointer;
  opacity:1;transform:none;
  transition:opacity .35s ease, transform .35s ease, background .2s ease, color .2s ease;
  z-index:2;
}
.p-card .quick:hover{background:var(--ink);color:var(--paper);}
.p-card:hover .ph img{transform:scale(1.07);filter:brightness(.86);}
.p-card:hover .ph .veil{opacity:1;}
@media(hover:hover) and (pointer:fine){
  .p-card .quick{opacity:0;transform:translateY(10px);}
  .p-card:hover .quick{opacity:1;transform:none;}
}
@media(hover:none){
  .p-card .ph .veil{display:none;}
}
.p-field{display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fog);margin-bottom:6px;}
.p-card h4{font-family:'Fraunces',serif;font-weight:600;font-size:17px;margin:2px 0 4px;}
.p-card h4 a:hover{color:var(--stamp);}
.p-desc{display:none;}
.p-bottom{margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:10px;}
.p-price{font-size:14px;color:var(--stamp);font-weight:600;}
.sizes{display:flex;gap:6px;}
.size-btn{
  min-width:36px;width:auto;height:36px;padding:0 12px;
  border:1px solid var(--line-strong);background:none;
  font-size:12px;cursor:pointer;color:var(--ink);font-family:'Instrument Sans',sans-serif;
  white-space:nowrap;line-height:1;
}
@media(min-width:701px){.size-btn{min-width:26px;height:26px;padding:0 8px;font-size:11px;}}
.size-btn.selected{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.add-btn{display:none;}

.toast{
  position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);
  background:var(--ink);color:var(--paper);padding:14px 24px;border-radius:2px;
  font-size:13px;opacity:0;pointer-events:none;transition:all .3s ease;z-index:100;
}
.toast.show{opacity:1;transform:translate(-50%,0);}

/* ---------- collection page ---------- */
.col-hero{position:relative;height:72vh;min-height:420px;overflow:hidden;background:var(--paper-alt);}
.col-hero img{width:100%;height:100%;object-fit:cover;}
.col-hero .cap{
  position:absolute;inset:auto 0 0 0;padding:24px 22px;
  background:linear-gradient(to top,rgba(25,23,15,.88) 0%,rgba(25,23,15,.42) 45%,transparent 78%);
  color:#fff;
}
.col-hero .num{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;opacity:.9;display:block;margin-bottom:8px;text-shadow:0 1px 10px rgba(0,0,0,.45);}
.col-hero h1{font-size:clamp(32px,4.6vw,58px);color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.5);}
@media(min-width:701px){
  .col-hero{height:calc(100vh - 98px);min-height:520px;}
  .col-hero .cap{padding:36px 40px 32px;}
}
@media(min-width:1101px){.col-hero .cap{padding:40px 80px 36px;}}
.meta-bar{
  display:flex;justify-content:center;gap:16px 28px;flex-wrap:wrap;
  padding:16px 22px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--fog);border-bottom:1px solid var(--line);text-align:center;
}
@media(min-width:701px){.meta-bar{padding:18px 24px;font-size:12px;}}

.look-gallery{padding:8px;}
.grow{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-bottom:8px;
  align-items:stretch;
}
.gph{
  overflow:hidden;
  background:var(--paper-alt);
  display:grid;
  min-height:0;
}
.gph img{
  width:100%;height:100%;object-fit:cover;
  display:block;transition:transform .6s ease;
}
.gph:hover img{transform:scale(1.035);}
.gph.tall{aspect-ratio:3/4;}
.gph.wide{aspect-ratio:16/10;}
.gph.square{aspect-ratio:4/5;}
@media(min-width:801px){
  .look-gallery{padding:12px;}
  .grow{gap:10px;margin-bottom:10px;}
  .g-2{grid-template-columns:1.4fr 1fr;height:min(78vh,880px);}
  .g-2b{grid-template-columns:1fr 1.4fr;height:min(78vh,880px);}
  .g-3{grid-template-columns:1fr 1fr 1fr;height:min(52vh,580px);}
  .g-2 .gph,
  .g-2b .gph,
  .g-3 .gph{
    aspect-ratio:auto;
    height:100%;
    min-height:0;
  }
}

.pieces{padding:20px 0 80px;}
.pieces-head{display:flex;justify-content:space-between;align-items:end;margin:40px 0 28px;flex-wrap:wrap;gap:16px;}
.pieces-head h2{font-size:clamp(28px,3.2vw,38px);}
.p-grid{display:grid;grid-template-columns:1fr;gap:28px 22px;}
@media(min-width:561px){.p-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:861px){.p-grid{grid-template-columns:repeat(3,1fr);}}
.colnav{border-top:1px solid var(--line);}
.colnav .row{display:grid;grid-template-columns:1fr;}
.colnav a{padding:32px 22px;display:block;transition:background .2s ease;}
.colnav a:hover{background:var(--paper-alt);}
.colnav a:first-child{border-bottom:1px solid var(--line);}
@media(min-width:701px){
  .colnav .row{grid-template-columns:1fr 1fr;}
  .colnav a{padding:44px 40px;}
  .colnav a:first-child{border-bottom:none;border-right:1px solid var(--line);}
}
@media(min-width:1101px){.colnav a{padding:44px 80px;}}
.colnav .dir{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fog);}
.colnav .name{font-family:'Fraunces',serif;font-size:22px;margin-top:8px;}
.colnav .next{text-align:left;}
@media(min-width:701px){.colnav .next{text-align:right;}}

/* ---------- inner pages ---------- */
.page-hero{position:relative;height:52vh;min-height:340px;overflow:hidden;background:var(--paper-alt);}
.page-hero img{width:100%;height:100%;object-fit:cover;}
.page-hero .cap{
  position:absolute;inset:auto 0 0 0;padding:24px 22px;
  background:linear-gradient(to top,rgba(25,23,15,.88) 0%,rgba(25,23,15,.4) 50%,transparent 80%);
  color:#fff;
}
.page-hero .num{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;opacity:.9;display:block;margin-bottom:8px;}
.page-hero h1{font-size:clamp(34px,5vw,62px);color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.5);}
@media(min-width:701px){
  .page-hero{height:62vh;min-height:420px;}
  .page-hero .cap{padding:36px 40px 32px;}
}
@media(min-width:1101px){.page-hero .cap{padding:40px 80px 36px;}}

.facts{display:grid;grid-template-columns:1fr;border-bottom:1px solid var(--line);}
.fact{padding:28px 22px;border-bottom:1px solid var(--line);text-align:center;}
.facts .fact:last-child{border-bottom:none;}
@media(min-width:701px){
  .facts{grid-template-columns:repeat(3,1fr);}
  .fact{padding:36px 32px;border-bottom:none;border-right:1px solid var(--line);}
  .facts .fact:last-child{border-right:none;}
}
.fact b{display:block;font-family:'Fraunces',serif;font-size:28px;font-weight:600;margin-bottom:6px;}
.fact span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fog);}

.duo{display:grid;grid-template-columns:1fr;gap:8px;padding:8px;}
@media(min-width:801px){.duo{grid-template-columns:1fr 1fr;gap:10px;padding:12px;}}
.duo figure{margin:0;overflow:hidden;background:var(--paper-alt);}
.duo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;}
.duo figcaption{padding:14px 4px 0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fog);}

.inner-copy{padding:48px 0 32px;text-align:center;}
@media(min-width:701px){.inner-copy{padding:72px 0 40px;}}
.inner-copy p{margin:0 auto;max-width:36ch;color:var(--fog);font-size:16px;line-height:1.7;}
.inner-copy .sign{margin-top:22px;font-family:'Fraunces',serif;font-style:italic;color:var(--ink);font-size:18px;}

.contact-grid{display:grid;grid-template-columns:1fr;gap:40px;padding:48px 0 80px;align-items:start;}
@media(min-width:861px){.contact-grid{grid-template-columns:1.1fr .9fr;gap:64px;padding:72px 0 100px;}}
.contact-grid h1{font-size:clamp(34px,4.4vw,56px);margin:12px 0 18px;}
.contact-grid .lede{color:var(--fog);max-width:34ch;margin:0 0 36px;}
.contact-meta{display:flex;flex-direction:column;gap:18px;margin-bottom:36px;}
.contact-meta a{display:block;font-family:'Fraunces',serif;font-size:22px;}
.contact-meta a:hover{color:var(--stamp);}
.contact-meta small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);margin-bottom:4px;font-family:'Instrument Sans',sans-serif;}
.contact-photo{overflow:hidden;background:var(--paper-alt);}
.contact-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;}
.c-form{display:flex;flex-direction:column;gap:0;}
.c-form label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);margin:18px 0 6px;}
.c-form input,.c-form textarea{
  border:none;border-bottom:1px solid var(--line-strong);background:transparent;
  padding:10px 0;font-family:'Instrument Sans',sans-serif;font-size:16px;color:var(--ink);
  width:100%;resize:vertical;
}
@media(min-width:701px){.c-form input,.c-form textarea{font-size:15px;}}
.c-form input:focus,.c-form textarea:focus{outline:none;border-color:var(--stamp);}
.c-form button{
  margin-top:28px;align-self:flex-start;padding:14px 28px;
  border:1px solid var(--ink);background:transparent;cursor:pointer;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  font-family:'Instrument Sans',sans-serif;transition:all .2s ease;
}
.c-form button:hover{background:var(--ink);color:var(--paper);}

.press-head{padding:36px 0 20px;}
@media(min-width:701px){.press-head{padding:48px 0 28px;}}
.press-head h1{font-size:clamp(34px,4.4vw,56px);margin-top:10px;}
.press-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:0 8px 8px;}
@media(min-width:561px){.press-grid{grid-template-columns:1fr 1fr;gap:10px;padding:0 12px 12px;}}
@media(min-width:861px){.press-grid{grid-template-columns:repeat(3,1fr);}}
.press-card{
  background:var(--paper-alt);min-height:240px;padding:28px 22px;
  display:flex;flex-direction:column;justify-content:flex-start;
  transition:background .25s ease;
}
@media(min-width:701px){.press-card{padding:32px 28px;}}
.press-card:hover{background:#e4e4e4;}
.press-card .year{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);margin-bottom:18px;}
.press-card .pub{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(22px,2.2vw,30px);}
.press-card .clip{margin-top:14px;color:var(--fog);font-size:14px;line-height:1.55;max-width:28ch;}
.press-card.feature{grid-column:span 1;min-height:240px;}
@media(min-width:861px){.press-card.feature{grid-column:span 2;min-height:280px;}}

/* ---------- product detail ---------- */
.pdp{padding-block:24px 40px;}
.pdp-grid{display:grid;grid-template-columns:1fr;gap:28px;}
.pdp-crumb{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--fog);margin-bottom:16px;display:flex;flex-wrap:wrap;gap:8px;
}
.pdp-crumb a:hover{color:var(--stamp);}
.pdp-gallery{display:flex;flex-direction:column;gap:10px;}
.pdp-main{
  position:relative;overflow:hidden;background:var(--paper-alt);
  aspect-ratio:3/4;max-height:81svh;
}
.pdp-main img{
  width:100%;height:100%;object-fit:cover;object-position:center top;
  transform-origin:center center;
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
@media(hover:hover) and (pointer:fine){
  .pdp-main:hover img{transform:scale(1.4);}
}
@media(prefers-reduced-motion:reduce){
  .pdp-main img{transition:none;}
  .pdp-main:hover img{transform:none;}
}
.pdp-zoom{
  position:absolute;top:14px;right:14px;z-index:2;
  display:inline-flex;align-items:center;gap:8px;
  background:var(--paper);color:var(--ink);border:1px solid var(--ink);
  padding:9px 12px;cursor:pointer;
  font-family:'Instrument Sans',sans-serif;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  transition:background .2s ease,color .2s ease;
}
.pdp-zoom svg{display:block;flex-shrink:0;}
.pdp-zoom:hover{background:var(--ink);color:var(--paper);}
.pdp-zoom:hover svg{stroke:var(--paper);}
.pdp-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.pdp-thumbs button{
  padding:0;border:1px solid transparent;background:var(--paper-alt);
  cursor:pointer;aspect-ratio:3/4;overflow:hidden;
}
.pdp-thumbs button.is-on{border-color:var(--ink);}
.pdp-thumbs img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.pdp-info{
  width:100%;max-width:42ch;
}
.pdp-info .p-field{margin-bottom:12px;}
.pdp-info h1{font-size:clamp(26px,3.4vw,38px);margin:4px 0 14px;}
.pdp-price{font-size:20px;color:var(--stamp);font-weight:600;}
.pdp-copy{color:var(--fog);font-size:15px;line-height:1.7;margin:20px 0 24px;}
.pdp-sizes{margin-bottom:22px;}
.pdp-sizes span.label{
  display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fog);margin-bottom:10px;font-weight:600;
}
.pdp-sizes .sizes{gap:10px;}
.pdp-sizes .size-btn{min-width:48px;height:42px;padding:0 16px;font-size:13px;}
.pdp-add{
  width:100%;padding:16px 24px;
  border:1px solid var(--ink);background:var(--ink);color:var(--paper);
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  font-family:'Instrument Sans',sans-serif;cursor:pointer;
  transition:background .2s ease,border-color .2s ease;
}
.pdp-add:hover{background:var(--stamp);border-color:var(--stamp);}
.pdp-note{margin-top:14px;font-size:12px;color:var(--fog);letter-spacing:.04em;}
.pdp-specs{margin-top:28px;padding-top:22px;border-top:1px solid var(--line);}
.pdp-specs dt{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fog);margin-top:16px;font-weight:600;
}
.pdp-specs dt:first-child{margin-top:0;}
.pdp-specs dd{margin:6px 0 0;font-size:14px;line-height:1.55;}
.pdp-missing{padding:80px 0;text-align:center;}
.pdp-missing h1{margin:12px 0 16px;}
.pdp-missing a{color:var(--stamp);}
.pdp-related{padding-block:24px 88px;}
.pdp-related .pieces-head{margin-top:0;margin-bottom:36px;}

@media(min-width:861px){
  .pdp{padding-block:20px 24px;}
  .pdp-grid{
    grid-template-columns:minmax(0,var(--pdp-photo)) minmax(280px,1fr);
    --pdp-photo:calc((100svh - 210px) * 3 / 4 * 1.3);
    gap:48px;align-items:start;
  }
  .pdp-gallery{min-width:0;}
  .pdp-main{max-height:none;width:100%;}
  .pdp-info{
    position:sticky;top:96px;
    justify-self:center;align-self:start;
    padding:8px 0;
  }
  .pdp-related{padding-block:48px 112px;}
}
@media(min-width:921px){
  .pdp{padding-block:24px 28px;}
  .pdp-grid{--pdp-photo:calc((100svh - 240px) * 3 / 4 * 1.3);}
  .pdp-info{top:120px;}
}
@media(min-width:1101px){
  .pdp-grid{gap:72px;}
}

.lightbox{
  position:fixed;inset:0;z-index:80;
  background:rgba(25,23,15,.94);
  display:flex;align-items:center;justify-content:center;
  padding:56px 72px 48px;
}
.lightbox[hidden]{display:none;}
.lightbox img{
  max-width:100%;max-height:calc(100svh - 104px);
  width:auto;height:auto;object-fit:contain;
}
.lightbox-close,.lightbox-nav{
  position:absolute;border:1px solid rgba(247,247,247,.35);
  background:transparent;color:var(--paper);cursor:pointer;
  font-family:'Instrument Sans',sans-serif;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.lightbox-close{
  top:20px;right:20px;
  width:42px;height:42px;font-size:22px;line-height:1;
}
.lightbox-nav{
  top:50%;transform:translateY(-50%);
  width:42px;height:42px;font-size:18px;
}
.lightbox-nav.prev{left:18px;}
.lightbox-nav.next{right:18px;}
.lightbox-close:hover,.lightbox-nav:hover{
  background:var(--paper);color:var(--ink);border-color:var(--paper);
}
.lightbox-count{
  position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(247,247,247,.7);
}
@media(max-width:700px){
  .lightbox{padding:64px 16px 56px;}
  .lightbox-nav.prev{left:8px;}
  .lightbox-nav.next{right:8px;}
}
body.lb-open{overflow:hidden;}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:48px 0 28px;background:var(--paper-alt);margin-top:48px;}
@media(min-width:701px){footer{padding:64px 0 28px;}}
.f-grid{display:grid;grid-template-columns:1fr;gap:32px;}
@media(min-width:521px){.f-grid{grid-template-columns:1fr 1fr;row-gap:36px;}}
@media(min-width:821px){.f-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:40px;}}
.f-grid h5{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fog);margin:0 0 16px;}
.f-grid a,.f-grid p{font-size:13.5px;line-height:2;color:var(--ink);margin:0;}
footer .brand{margin-bottom:14px;line-height:0;}
footer .brand img{height:24px;width:auto;display:block;}
footer .blurb{color:var(--fog);font-size:13px;max-width:28ch;line-height:1.6;}
.f-form{display:flex;border-bottom:1px solid var(--line-strong);margin-top:16px;}
.f-form input{flex:1;border:none;background:none;padding:8px 0;font-family:'Instrument Sans',sans-serif;font-size:16px;color:var(--ink);}
@media(min-width:701px){.f-form input{font-size:13px;}}
.f-form input:focus{outline:none;}
.f-form button{border:none;background:none;color:var(--stamp);font-size:12px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;}
.f-bottom{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11.5px;color:var(--fog);flex-wrap:wrap;gap:10px;}

.reveal{opacity:0;transform:translateY(18px);}
:focus-visible{outline:2px solid var(--stamp);outline-offset:2px;}
