body{
  background:#f7f1e8;
}

.portal-shell,
.portal-lock{
  min-height:100dvh;
  color:var(--ink);
  font-family:var(--ff-ui);
}

.portal-shell{
  width:min(1440px, 100%);
  margin:0 auto;
  padding:0 var(--gut) clamp(54px, 7vw, 96px);
}

.portal-lock{
  display:grid;
  place-items:center;
  padding:24px;
  background:#f7f1e8;
}

.portal-lock__panel{
  width:min(560px, 100%);
  border:1px solid rgba(176,141,79,.3);
  background:#fffdf8;
  padding:clamp(30px, 5vw, 52px);
  box-shadow:0 34px 90px -64px rgba(36,26,18,.72);
}

.portal-eyebrow{
  margin:0 0 12px;
  color:var(--gold);
  font-size:10px;
  font-weight:500;
  letter-spacing:.24em;
  line-height:1.5;
  text-transform:uppercase;
}

.portal-header{
  display:grid;
  grid-template-columns:minmax(150px, .36fr) minmax(0, 1fr) auto;
  align-items:center;
  gap:24px;
  min-height:82px;
  border-bottom:1px solid rgba(176,141,79,.26);
}

.portal-brand,
.portal-nav a,
.portal-session button,
.portal-back,
.portal-card__footer a{
  color:var(--gold);
  font-size:10px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.portal-brand{
  line-height:1.5;
}

.portal-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(18px, 3vw, 42px);
}

.portal-nav a,
.portal-session button,
.portal-back,
.portal-card__footer a{
  transition:color .35s var(--ease);
}

.portal-nav a:hover,
.portal-session button:hover,
.portal-back:hover,
.portal-card__footer a:hover{
  color:var(--ink);
}

.portal-session{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  color:var(--muted);
  font-size:12px;
}

.portal-session button{
  padding:8px 0;
}

.portal-hero{
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(360px, .56fr);
  gap:clamp(30px, 5vw, 76px);
  align-items:stretch;
  padding:clamp(36px, 6vw, 74px) 0 clamp(26px, 4vw, 46px);
}

.portal-hero__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:410px;
}

.portal-hero h1,
.portal-lock h1,
.portal-feature h2,
.portal-grid-head h2,
.portal-card h3,
.portal-detail__panel h1,
.portal-detail-note h2{
  margin:0;
  font-family:var(--ff-display);
  font-weight:400;
  letter-spacing:0;
  line-height:1.05;
}

.portal-hero h1{
  max-width:770px;
  font-size:clamp(50px, 7vw, 104px);
}

.portal-lock h1{
  font-size:clamp(34px, 6vw, 56px);
}

.portal-hero p,
.portal-lock p,
.portal-feature__body > p,
.portal-card__body > p,
.portal-detail__panel > p,
.portal-detail-note p{
  color:var(--muted);
  font-size:14.5px;
  line-height:1.82;
}

.portal-hero__copy > p:last-child{
  max-width:640px;
  margin:20px 0 0;
}

.portal-hero__media{
  position:relative;
  min-height:410px;
  background:var(--sand);
  overflow:hidden;
}

.portal-hero__media::after,
.portal-feature__media::after,
.portal-detail__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(36,26,18,0) 45%, rgba(36,26,18,.24));
  pointer-events:none;
}

.portal-hero__media img,
.portal-feature__media img,
.portal-card__media img,
.portal-detail__media img{
  object-fit:cover;
}

.portal-toolbar{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 380px);
  gap:18px;
  align-items:stretch;
  margin-bottom:24px;
}

.portal-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  border:1px solid rgba(176,141,79,.26);
  background:#fffdf8;
}

.portal-stats article{
  min-height:92px;
  padding:18px 20px;
}

.portal-stats article + article{
  border-left:1px solid rgba(176,141,79,.22);
}

.portal-stats span{
  display:block;
  color:var(--ink);
  font-family:var(--ff-display);
  font-size:clamp(25px, 3vw, 36px);
  line-height:1;
}

.portal-stats p,
.portal-search label,
.portal-card__meta,
.portal-mini-specs dt,
.portal-specs dt{
  margin:8px 0 0;
  color:var(--gold);
  font-size:9.5px;
  font-weight:500;
  letter-spacing:.2em;
  line-height:1.45;
  text-transform:uppercase;
}

.portal-search{
  display:grid;
  gap:8px;
  border:1px solid rgba(176,141,79,.26);
  background:#fffdf8;
  padding:16px 18px;
}

.portal-search label{
  margin:0;
}

.portal-search input{
  width:100%;
  min-height:46px;
  border:0;
  border-bottom:1px solid var(--hair);
  background:transparent;
  color:var(--ink);
  padding:8px 0;
  font-size:14px;
}

.portal-search input:focus{
  outline:none;
  border-color:var(--gold);
}

.portal-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  border:1px solid var(--navy);
  background:var(--navy);
  color:#fff;
  padding:12px 22px;
  font-size:10px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  transition:background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}

.portal-btn:hover,
.portal-btn:focus-visible{
  background:var(--navy-2);
  color:#fff;
}

.portal-btn--outline{
  background:transparent;
  border-color:var(--gold);
  color:var(--ink);
}

.portal-btn--outline:hover,
.portal-btn--outline:focus-visible{
  background:var(--gold);
  border-color:var(--gold);
}

.portal-feature{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(340px, .56fr);
  min-height:520px;
  margin:0 0 clamp(34px, 5vw, 62px);
  border:1px solid rgba(176,141,79,.28);
  background:#fffdf8;
  overflow:hidden;
}

.portal-feature__media{
  position:relative;
  min-height:520px;
  background:var(--sand);
}

.portal-feature__body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px, 4vw, 56px);
}

.portal-feature h2{
  font-size:clamp(40px, 5vw, 72px);
}

.portal-feature__body > p{
  margin:18px 0 0;
}

.portal-swatches{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:18px;
}

.portal-swatches span{
  width:30px;
  height:30px;
  border:1px solid rgba(36,26,18,.18);
  background:var(--swatch);
}

.portal-mini-specs{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:28px 0;
}

.portal-mini-specs div,
.portal-specs div{
  border-top:1px solid rgba(176,141,79,.24);
  padding-top:12px;
}

.portal-mini-specs dd,
.portal-specs dd{
  margin:5px 0 0;
  color:var(--ink);
  font-size:13.5px;
  line-height:1.6;
}

.portal-grid-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}

.portal-grid-head h2{
  font-size:clamp(30px, 4vw, 48px);
}

.portal-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
}

.portal-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
  border:1px solid rgba(176,141,79,.26);
  background:#fffdf8;
  overflow:hidden;
  transition:transform .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease);
}

.portal-card:hover{
  transform:translateY(-4px);
  border-color:rgba(176,141,79,.52);
  box-shadow:0 26px 60px -46px rgba(36,26,18,.72);
}

.portal-card__media{
  position:relative;
  display:block;
  aspect-ratio:4 / 3.35;
  background:var(--sand);
  overflow:hidden;
}

.portal-card__body{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:18px;
}

.portal-card__meta{
  margin:0 0 10px;
}

.portal-card h3{
  font-size:clamp(25px, 2.5vw, 34px);
}

.portal-card__body > p{
  margin:12px 0 0;
  font-size:13.2px;
}

.portal-card__footer{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  margin-top:auto;
  padding-top:22px;
}

.portal-card__footer span{
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.portal-empty{
  grid-column:1 / -1;
  border:1px solid rgba(176,141,79,.26);
  background:#fffdf8;
  padding:30px;
  color:var(--muted);
  text-align:center;
}

.portal-detail{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(360px, .42fr);
  min-height:calc(100dvh - 82px);
  border-bottom:1px solid rgba(176,141,79,.24);
}

.portal-detail__media{
  position:relative;
  min-height:620px;
  margin-left:calc(var(--gut) * -1);
  background:var(--sand);
  overflow:hidden;
}

.portal-detail__panel{
  align-self:center;
  padding:clamp(30px, 4vw, 58px) 0 clamp(30px, 4vw, 58px) clamp(28px, 4vw, 56px);
}

.portal-back{
  display:inline-flex;
  margin-bottom:32px;
}

.portal-detail__panel h1{
  font-size:clamp(48px, 6vw, 88px);
}

.portal-detail__panel > p{
  margin:18px 0 0;
}

.portal-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}

.portal-detail-grid{
  display:grid;
  grid-template-columns:minmax(0, .72fr) minmax(420px, .62fr);
  gap:clamp(28px, 5vw, 82px);
  padding:clamp(42px, 6vw, 78px) 0 0;
}

.portal-detail-note h2{
  max-width:620px;
  font-size:clamp(34px, 4.4vw, 62px);
}

.portal-detail-note p{
  max-width:620px;
  margin:18px 0 0;
}

.portal-specs{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  margin:0;
}

.portal-specs dt{
  margin:0;
}

@media (max-width:1180px){
  .portal-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:980px){
  .portal-header,
  .portal-hero,
  .portal-toolbar,
  .portal-feature,
  .portal-detail,
  .portal-detail-grid{
    grid-template-columns:1fr;
  }

  .portal-header{
    align-items:start;
    padding:18px 0;
  }

  .portal-nav,
  .portal-session{
    justify-content:flex-start;
  }

  .portal-hero__copy{
    min-height:auto;
  }

  .portal-feature__media,
  .portal-detail__media{
    min-height:420px;
    margin-left:0;
  }

  .portal-detail{
    min-height:0;
  }

  .portal-detail__panel{
    padding:30px 0;
  }
}

@media (max-width:720px){
  .portal-shell{
    padding-inline:20px;
  }

  .portal-nav{
    flex-wrap:wrap;
    row-gap:10px;
  }

  .portal-session{
    align-items:flex-start;
    flex-direction:column;
  }

  .portal-stats,
  .portal-grid,
  .portal-specs{
    grid-template-columns:1fr;
  }

  .portal-stats article + article{
    border-left:0;
    border-top:1px solid rgba(176,141,79,.22);
  }

  .portal-hero__media{
    min-height:300px;
  }

  .portal-feature__media,
  .portal-detail__media{
    min-height:340px;
  }

  .portal-actions{
    flex-direction:column;
  }

  .portal-actions .portal-btn,
  .portal-lock .portal-btn{
    width:100%;
  }
}

/* Product-quality portal pass */
body{
  background:#fbf8f2;
}

.portal-site-header,
.portal-site-header.is-stuck{
  background:rgba(251,248,242,.94);
  color:var(--ink);
  border-bottom:1px solid rgba(176,141,79,.25);
  box-shadow:0 18px 44px -42px rgba(36,26,18,.48);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.portal-site-header::after{
  opacity:0;
}

.portal-site-header .brand__mark{
  width:86px;
  filter:brightness(0) opacity(.78);
}

.portal-shell{
  width:100%;
  max-width:none;
  padding:calc(var(--header-h) + clamp(34px, 5vw, 64px)) 0 clamp(60px, 8vw, 110px);
  background:
    linear-gradient(180deg, rgba(244,237,216,.58), rgba(251,248,242,0) 360px),
    #fbf8f2;
}

.portal-icon{
  flex:0 0 auto;
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.portal-intro,
.portal-control-band,
.portal-grid-head,
.portal-grid,
.portal-detail,
.portal-detail-grid{
  width:min(var(--shell), 100%);
  margin-inline:auto;
  padding-inline:var(--gut);
}

.portal-intro{
  display:grid;
  grid-template-columns:minmax(0, .82fr) minmax(320px, .46fr);
  gap:clamp(24px, 4vw, 70px);
  align-items:end;
  padding-bottom:clamp(28px, 4vw, 46px);
  border-bottom:1px solid rgba(176,141,79,.24);
}

.portal-intro h1{
  max-width:760px;
  margin:0;
  color:var(--ink);
  font-family:var(--ff-display);
  font-size:clamp(48px, 7vw, 98px);
  font-weight:400;
  letter-spacing:0;
  line-height:1;
  text-wrap:balance;
}

.portal-intro > p{
  max-width:48ch;
  color:var(--muted);
  font-size:15px;
  line-height:1.9;
}

.portal-search label,
.portal-card__footer span,
.portal-card__footer a,
.portal-text-link,
.portal-mini-specs dt,
.portal-specs dt,
.portal-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.portal-control-band{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, 390px);
  gap:18px;
  align-items:stretch;
  margin-top:clamp(22px, 3vw, 34px);
  margin-bottom:clamp(34px, 5vw, 64px);
}

.portal-toolbar{
  display:contents;
}

.portal-stats{
  border:1px solid var(--hair);
  background:#fffdf8;
}

.portal-stats article{
  display:grid;
  align-content:center;
  gap:8px;
  min-height:112px;
  padding:22px;
}

.portal-stats .portal-icon{
  color:var(--gold);
}

.portal-stats p{
  margin:0;
}

.portal-search{
  align-content:center;
  border:1px solid var(--hair);
  background:#fffdf8;
  padding:22px;
}

.portal-search label{
  color:var(--gold);
}

.portal-search input{
  font-size:15px;
}

.portal-feature{
  grid-template-columns:minmax(360px, .47fr) minmax(0, 1fr);
  gap:0;
  min-height:560px;
  margin-bottom:clamp(48px, 6vw, 86px);
  border:0;
  background:transparent;
}

.portal-feature__body{
  order:-1;
  justify-content:center;
  border:1px solid var(--hair);
  border-right:0;
  background:#fffdf8;
  padding:clamp(30px, 4vw, 58px);
}

.portal-feature__media{
  min-height:560px;
  border:1px solid var(--hair);
  background:var(--sand);
}

.portal-feature__media img{
  object-fit:cover;
  transition:transform 1.2s var(--ease);
}

.portal-feature:hover .portal-feature__media img{
  transform:scale(1.045);
}

.portal-feature h2{
  max-width:10ch;
  font-size:clamp(42px, 6vw, 84px);
}

.portal-mini-specs,
.portal-specs{
  display:grid;
  gap:0;
}

.portal-mini-specs div,
.portal-specs div{
  display:grid;
  gap:7px;
  border-top:1px solid rgba(176,141,79,.26);
  padding:14px 0;
}

.portal-mini-specs dt,
.portal-specs dt{
  margin:0;
}

.portal-swatches span{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.36);
}

.portal-grid-head{
  margin-bottom:20px;
}

.portal-grid-head h2{
  font-size:clamp(34px, 5vw, 58px);
}

.portal-text-link{
  color:var(--gold);
  font-size:10px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
}

.portal-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:26px;
}

.portal-card{
  border:0;
  background:transparent;
  overflow:visible;
}

.portal-card:hover{
  transform:none;
  border-color:transparent;
  box-shadow:none;
}

.portal-card__media{
  position:relative;
  display:block;
  aspect-ratio:4 / 4.4;
  border:1px solid var(--hair);
  overflow:hidden;
}

.portal-card__media img{
  transition:transform 1.1s var(--ease);
}

.portal-card:hover .portal-card__media img{
  transform:scale(1.05);
}

.portal-card__body{
  min-height:300px;
  margin-top:-1px;
  border:1px solid var(--hair);
  background:#fffdf8;
  padding:22px;
}

.portal-card__top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:10px;
}

.portal-card h3{
  font-size:clamp(30px, 3vw, 42px);
}

.portal-card__body > p{
  font-size:13.5px;
  line-height:1.8;
}

.portal-card__footer{
  border-top:1px solid rgba(176,141,79,.22);
}

.portal-card__footer a{
  color:var(--gold);
}

.portal-detail{
  grid-template-columns:minmax(0, .98fr) minmax(390px, .48fr);
  gap:clamp(34px, 5vw, 70px);
  min-height:auto;
  padding-top:0;
  border-bottom:0;
}

.portal-detail__media{
  position:relative;
  min-height:min(760px, calc(100dvh - 150px));
  margin-left:0;
  border:1px solid var(--hair);
  overflow:hidden;
}

.portal-detail__panel{
  align-self:center;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
  padding:clamp(30px, 4vw, 56px) 0;
}

.portal-detail__panel h1{
  font-size:clamp(52px, 7vw, 96px);
}

.portal-back{
  margin-bottom:28px;
}

.portal-actions{
  align-items:center;
}

.portal-detail-grid{
  grid-template-columns:minmax(0, .72fr) minmax(420px, .62fr);
  padding-top:clamp(44px, 6vw, 82px);
}

.portal-detail-note{
  border-left:1px solid var(--gold-pale);
  padding-left:24px;
}

.portal-detail-note h2{
  font-size:clamp(34px, 4.6vw, 66px);
}

.portal-specs{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:30px;
}

.portal-lock{
  min-height:100dvh;
  padding-top:calc(var(--header-h) + 24px);
  background:#fbf8f2;
}

.portal-lock__panel{
  width:min(620px, 100%);
  min-height:auto;
  padding:clamp(30px, 5vw, 58px);
}

.portal-lock__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(30px, 5vw, 58px);
}

.portal-mark{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin-bottom:20px;
  border:1px solid var(--gold-pale);
  color:var(--gold);
}

@media (max-width:1180px){
  .portal-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:980px){
  .portal-intro,
  .portal-control-band,
  .portal-feature,
  .portal-detail,
  .portal-detail-grid{
    grid-template-columns:1fr;
  }

  .portal-feature__body{
    border-right:1px solid var(--hair);
    border-bottom:0;
  }

  .portal-feature__media,
  .portal-detail__media{
    min-height:430px;
  }
}

@media (max-width:720px){
  .portal-intro,
  .portal-control-band,
  .portal-feature,
  .portal-grid-head,
  .portal-grid,
  .portal-detail,
  .portal-detail-grid{
    padding-inline:20px;
  }

  .portal-actions{
    flex-direction:column;
  }

  .portal-actions .portal-btn,
  .portal-lock .portal-btn{
    width:100%;
  }

  .portal-grid,
  .portal-specs{
    grid-template-columns:1fr;
  }

  .portal-card__media{
    aspect-ratio:4 / 4.35;
  }

  .portal-lock__panel{
    min-height:0;
  }
}

/* Editorial catalogue redesign */
.portal-page{
  padding-top:calc(var(--header-h) + clamp(40px, 6vw, 76px));
  background:
    linear-gradient(180deg, #fbf8f2 0%, #fffdf8 46%, #fbf8f2 100%);
}

.portal-intro{
  grid-template-columns:minmax(0, .86fr) minmax(340px, .42fr);
  align-items:start;
  padding-bottom:clamp(34px, 5vw, 58px);
}

.portal-intro h1{
  max-width:9.8em;
  font-size:clamp(52px, 8vw, 116px);
  line-height:.96;
}

.portal-intro__aside{
  display:grid;
  gap:clamp(22px, 3vw, 34px);
  padding-top:clamp(8px, 2vw, 28px);
}

.portal-intro__aside > p{
  max-width:40ch;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.92;
}

.portal-search{
  border:0;
  border-top:1px solid var(--gold-pale);
  border-bottom:1px solid var(--gold-pale);
  background:transparent;
  padding:18px 0 20px;
}

.portal-search input{
  min-height:42px;
  border-bottom-color:rgba(36,26,18,.18);
}

.portal-catalogue-head{
  margin-top:clamp(32px, 5vw, 68px);
  margin-bottom:clamp(18px, 3vw, 30px);
}

.portal-catalogue-head h2{
  font-size:clamp(30px, 4vw, 52px);
}

.portal-catalogue{
  display:grid;
  gap:clamp(42px, 7vw, 96px);
  width:min(var(--shell), 100%);
  margin-inline:auto;
  padding-inline:var(--gut);
}

.portal-row{
  display:grid;
  grid-template-columns:minmax(0, .98fr) minmax(360px, .62fr);
  gap:clamp(28px, 5vw, 78px);
  align-items:center;
}

.portal-row--reverse{
  grid-template-columns:minmax(360px, .62fr) minmax(0, .98fr);
}

.portal-row--reverse .portal-row__media{
  order:2;
}

.portal-row__media{
  position:relative;
  display:block;
  min-height:clamp(420px, 58vw, 720px);
  border:1px solid rgba(176,141,79,.28);
  background:var(--sand);
  overflow:hidden;
}

.portal-row__media::after{
  content:"";
  position:absolute;
  inset:0;
  border:14px solid rgba(255,253,248,.28);
  pointer-events:none;
}

.portal-row__media img{
  object-fit:cover;
  transition:transform 1.2s var(--ease);
}

.portal-row:hover .portal-row__media img{
  transform:scale(1.035);
}

.portal-row__body{
  border-top:1px solid var(--gold-pale);
  border-bottom:1px solid var(--gold-pale);
  padding:clamp(28px, 4vw, 54px) 0;
}

.portal-row__body h2{
  max-width:9em;
  margin:0;
  color:var(--ink);
  font-family:var(--ff-display);
  font-size:clamp(44px, 6vw, 86px);
  font-weight:400;
  letter-spacing:0;
  line-height:1;
}

.portal-row__body > p{
  max-width:44ch;
  margin:20px 0 0;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.88;
}

.portal-row__specs{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0 clamp(22px, 3vw, 36px);
  margin:clamp(24px, 4vw, 38px) 0 0;
}

.portal-row__specs div{
  border-top:1px solid rgba(176,141,79,.26);
  padding:14px 0;
}

.portal-row__specs dt{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--gold);
  font-size:9.5px;
  font-weight:500;
  letter-spacing:.2em;
  line-height:1.45;
  text-transform:uppercase;
}

.portal-row__specs dd{
  margin:6px 0 0;
  color:var(--ink);
  font-size:13.5px;
  line-height:1.62;
}

.portal-row .portal-text-link{
  margin-top:clamp(18px, 3vw, 28px);
}

.portal-swatches{
  margin-top:20px;
}

.portal-swatches span{
  width:24px;
  height:24px;
  border-radius:50%;
}

.portal-card-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(18px, 2.2vw, 30px);
  width:min(var(--shell), 100%);
  margin-inline:auto;
  padding-inline:var(--gut);
}

.portal-collection-card{
  display:grid;
  grid-template-rows:auto 1fr;
  min-height:100%;
  background:#fffdf8;
  border:1px solid rgba(176,141,79,.28);
  box-shadow:0 26px 70px -62px rgba(36,26,18,.62);
  transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .55s var(--ease);
}

.portal-collection-card:hover{
  transform:translateY(-6px);
  border-color:rgba(176,141,79,.52);
  box-shadow:0 34px 90px -62px rgba(36,26,18,.72);
}

.portal-collection-card__media{
  position:relative;
  display:block;
  aspect-ratio:4 / 3.35;
  background:var(--sand);
  overflow:hidden;
}

.portal-collection-card__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(36,26,18,0) 54%, rgba(36,26,18,.2));
  pointer-events:none;
}

.portal-collection-card__media img{
  object-fit:cover;
  transition:transform 1.1s var(--ease);
}

.portal-collection-card:hover .portal-collection-card__media img{
  transform:scale(1.045);
}

.portal-collection-card__body{
  display:flex;
  flex-direction:column;
  min-height:350px;
  padding:clamp(22px, 2.6vw, 34px);
}

.portal-collection-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}

.portal-collection-card__top span{
  color:var(--ink-soft);
  font-size:10px;
  letter-spacing:.16em;
  line-height:1.5;
  text-align:right;
  text-transform:uppercase;
}

.portal-collection-card h2{
  margin:0;
  color:var(--ink);
  font-family:var(--ff-display);
  font-size:clamp(34px, 4vw, 54px);
  font-weight:400;
  letter-spacing:0;
  line-height:1.02;
}

.portal-collection-card__body > p{
  margin:16px 0 0;
  color:var(--ink-soft);
  font-size:14px;
  line-height:1.78;
}

.portal-collection-card__specs{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  margin:24px 0 0;
}

.portal-collection-card__specs div{
  border-top:1px solid rgba(176,141,79,.24);
  padding:12px 0;
}

.portal-collection-card__specs dt{
  color:var(--gold);
  font-size:9px;
  font-weight:500;
  letter-spacing:.2em;
  line-height:1.45;
  text-transform:uppercase;
}

.portal-collection-card__specs dd{
  margin:5px 0 0;
  color:var(--ink);
  font-size:13px;
  line-height:1.58;
}

.portal-collection-card__link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  margin-top:auto;
  padding-top:18px;
  color:var(--gold);
  font-size:10px;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  transition:color .35s var(--ease);
}

.portal-collection-card__link:hover{
  color:var(--ink);
}

.portal-page--detail .portal-detail{
  padding-top:0;
}

.portal-page--detail .portal-detail__panel{
  background:transparent;
}

@media (max-width:980px){
  .portal-card-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .portal-row,
  .portal-row--reverse{
    grid-template-columns:1fr;
  }

  .portal-row--reverse .portal-row__media{
    order:0;
  }

  .portal-row__media{
    min-height:clamp(330px, 62vw, 520px);
  }
}

@media (max-width:720px){
  .portal-page{
    padding-top:calc(var(--header-h) + 30px);
  }

  .portal-intro h1{
    font-size:clamp(44px, 14vw, 68px);
  }

  .portal-row{
    gap:22px;
  }

  .portal-row__media{
    min-height:0;
    aspect-ratio:4 / 3.45;
  }

  .portal-row__body{
    padding:26px 0 30px;
  }

  .portal-row__body h2{
    font-size:clamp(36px, 12vw, 54px);
  }

  .portal-row__specs{
    grid-template-columns:1fr;
  }

  .portal-card-grid{
    grid-template-columns:1fr;
    padding-inline:20px;
  }

  .portal-collection-card__body{
    min-height:0;
  }
}

/* Final refinement pass */
.portal-page{
  padding-bottom:clamp(72px, 9vw, 126px);
}

.portal-intro{
  position:relative;
}

.portal-intro::after{
  content:"";
  position:absolute;
  left:var(--gut);
  bottom:-1px;
  width:min(220px, 34vw);
  height:1px;
  background:var(--gold);
}

.portal-intro h1{
  max-width:8.7em;
}

.portal-intro__aside{
  align-self:end;
}

.portal-catalogue-head{
  display:block;
}

.portal-card-grid{
  align-items:stretch;
  gap:clamp(22px, 2.5vw, 34px);
}

.portal-collection-card{
  position:relative;
  background:#fffdf8;
  border-color:rgba(222,211,192,.9);
  box-shadow:none;
  overflow:hidden;
}

.portal-collection-card::before{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid transparent;
  pointer-events:none;
  transition:border-color .45s var(--ease);
}

.portal-collection-card:hover{
  transform:translateY(-5px);
  border-color:rgba(176,141,79,.45);
  box-shadow:0 30px 72px -58px rgba(36,26,18,.62);
}

.portal-collection-card:hover::before{
  border-color:rgba(176,141,79,.26);
}

.portal-collection-card__media{
  aspect-ratio:4 / 3.55;
}

.portal-collection-card__media::after{
  background:
    linear-gradient(180deg, rgba(36,26,18,0) 55%, rgba(36,26,18,.18)),
    linear-gradient(90deg, rgba(255,253,248,.08), rgba(255,253,248,0) 35%);
}

.portal-collection-card__body{
  min-height:330px;
  padding:clamp(22px, 2.4vw, 30px);
}

.portal-collection-card__top{
  padding-bottom:14px;
  border-bottom:1px solid rgba(176,141,79,.18);
}

.portal-collection-card h2{
  max-width:8em;
  margin-top:2px;
}

.portal-collection-card__body > p{
  max-width:34ch;
}

.portal-collection-card__specs{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:0 16px;
}

.portal-collection-card__specs div{
  min-width:0;
}

.portal-collection-card__specs dd{
  overflow-wrap:anywhere;
}

.portal-collection-card__link{
  position:relative;
  padding-bottom:7px;
}

.portal-collection-card__link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:var(--gold-pale);
  transform:scaleX(.42);
  transform-origin:left center;
  transition:transform .45s var(--ease), background-color .45s var(--ease);
}

.portal-collection-card__link:hover::after{
  transform:scaleX(1);
  background:var(--ink);
}

.portal-page--detail{
  background:#fbf8f2;
}

.portal-page--detail .portal-detail{
  grid-template-columns:minmax(0, .92fr) minmax(400px, .5fr);
  gap:clamp(32px, 5vw, 72px);
  align-items:stretch;
}

.portal-page--detail .portal-detail__media{
  min-height:min(720px, calc(100dvh - 144px));
  background:#ebe1cf;
}

.portal-page--detail .portal-detail__media::after{
  background:
    linear-gradient(180deg, rgba(36,26,18,0) 46%, rgba(36,26,18,.2));
  box-shadow:inset 0 0 0 14px rgba(255,253,248,.18);
}

.portal-page--detail .portal-detail__panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-top:1px solid var(--gold-pale);
  border-bottom:1px solid var(--gold-pale);
}

.portal-page--detail .portal-detail__panel h1{
  max-width:8em;
  font-size:clamp(54px, 7vw, 104px);
  line-height:.96;
}

.portal-page--detail .portal-detail__panel > p{
  max-width:43ch;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.88;
}

.portal-detail__quick-specs{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:0 18px;
  margin-top:clamp(24px, 4vw, 38px);
}

.portal-detail__quick-specs div{
  border-top:1px solid rgba(176,141,79,.28);
  padding-top:13px;
}

.portal-detail__quick-specs dt{
  color:var(--gold);
  font-size:9px;
  font-weight:500;
  letter-spacing:.2em;
  line-height:1.45;
  text-transform:uppercase;
}

.portal-detail__quick-specs dd{
  margin:5px 0 0;
  color:var(--ink);
  font-size:13px;
  line-height:1.55;
  overflow-wrap:anywhere;
}

.portal-page--detail .portal-actions{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  width:min(100%, 480px);
  padding-top:clamp(22px, 3vw, 32px);
  border-top:1px solid rgba(176,141,79,.2);
}

.portal-page--detail .portal-actions .portal-btn{
  width:100%;
  min-width:0;
  min-height:48px;
  padding-inline:16px;
  text-align:center;
  white-space:nowrap;
}

.portal-gallery{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(14px, 2vw, 24px);
  margin-top:clamp(26px, 4vw, 48px);
}

.portal-gallery__item{
  position:relative;
  min-height:clamp(220px, 26vw, 420px);
  margin:0;
  overflow:hidden;
  background:#ebe1cf;
}

.portal-gallery__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s var(--ease);
}

.portal-gallery__item:hover img{
  transform:scale(1.035);
}

.portal-page--detail .portal-detail-grid{
  align-items:start;
}

.portal-page--detail .portal-detail-note{
  padding:clamp(24px, 3vw, 36px);
  border:1px solid rgba(176,141,79,.24);
  background:#fffdf8;
}

.portal-page--detail .portal-detail-note h2{
  max-width:14ch;
  font-size:clamp(34px, 4.8vw, 64px);
  line-height:1.02;
}

.portal-page--detail .portal-specs{
  border-top:1px solid var(--gold-pale);
  border-bottom:1px solid var(--gold-pale);
  padding:10px 0;
}

.portal-page--detail .portal-detail__quick-specs{
  position:relative;
  padding:18px 18px 2px;
  border:1px solid rgba(176,141,79,.2);
  background:rgba(255,253,248,.58);
}

.portal-page--detail .portal-detail__quick-specs::before{
  content:"";
  position:absolute;
  left:18px;
  top:-1px;
  width:72px;
  height:1px;
  background:var(--gold);
}

.portal-page--detail .portal-detail__quick-specs div{
  border-top:0;
  padding-top:0;
  padding-bottom:16px;
}

@media (max-width:1180px){
  .portal-collection-card__specs{
    grid-template-columns:1fr;
  }
}

@media (max-width:980px){
  .portal-page--detail .portal-detail{
    grid-template-columns:1fr;
  }

  .portal-page--detail .portal-detail__media{
    min-height:clamp(360px, 62vw, 560px);
  }

  .portal-page--detail .portal-detail__panel{
    padding-block:32px;
  }

  .portal-gallery{
    grid-template-columns:1fr;
  }
}

@media (max-width:720px){
  .portal-collection-card__media{
    aspect-ratio:4 / 3.25;
  }

  .portal-collection-card__body{
    min-height:0;
    padding:22px;
  }

  .portal-collection-card__top{
    flex-direction:column;
    gap:6px;
  }

  .portal-collection-card__top span{
    text-align:left;
  }

  .portal-page--detail .portal-actions{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
    width:100%;
  }

  .portal-page--detail .portal-actions .portal-btn{
    min-height:46px;
    padding-inline:10px;
    font-size:9px;
    letter-spacing:.12em;
  }

  .portal-detail__quick-specs{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
  }

  .portal-detail__quick-specs dt{
    font-size:8px;
    letter-spacing:.14em;
  }

  .portal-detail__quick-specs dd{
    font-size:12px;
  }
}

@media (max-width:430px){
  .portal-page--detail .portal-actions{
    grid-template-columns:1fr;
  }

  .portal-detail__quick-specs{
    grid-template-columns:1fr;
  }
}
