body.theme-portal {
  --bg: #fbfaf7;
  --ink: #1a1814;
  --accent: #8a6a2f;
  --line: #1a1814;
  color: #1a1814;
  background: #fbfaf7;
}
.theme-portal .cta, .theme-portal button[type="submit"] { color: #fff; }
.theme-portal .portal-hero { min-height: min(78vh, 760px); }
.theme-portal h1 { font-family: var(--font-serif); font-size: clamp(32px, 5.4vw, 64px); font-weight: 500; max-width: 18em; line-height: 1.18; text-wrap: balance; }
.theme-portal .meta-line { opacity: .7; letter-spacing: .08em; text-transform: uppercase; font-size: 12px; line-height: 1.5; }
.desk-mosaic {
  max-width: var(--max); margin: 0 auto;
  padding: 28px var(--gutter) 8px;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: var(--mosaic-gap);
  min-height: 64vh;
}
.desk {
  padding: 32px 28px 28px; min-height: 280px;
  display: flex; flex-direction: column; justify-content: flex-end;
  position: relative; overflow: hidden; color: #f4efe6;
}
.desk img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0; transform: scale(1.04);
  transition: transform .5s ease;
}
.desk::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,.12) 10%, rgba(0,0,0,.72) 100%);
}
.desk > *:not(img) { position: relative; z-index: 2; }
.desk-no { font-family: var(--font-serif); font-size: 18px; letter-spacing: .12em; opacity: .85; display: block; margin: 0 0 6px; }
.desk h2 { font-family: var(--font-serif); font-size: clamp(28px, 3.4vw, 42px); margin: 0 0 10px; line-height: 1.15; }
.desk p { margin: 0 0 18px; max-width: 22em; line-height: 1.45; }
.desk .go { margin-top: auto; padding-top: 4px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.desk:hover img { transform: scale(1.08); }
.theme-portal .kw-index { border-top: 1px solid rgba(138,106,47,.22); }
@media (max-width: 700px) { .desk-mosaic { grid-template-columns: 1fr; min-height: 0; padding-top: 16px; } }
