* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #fff;
  color: #111;
  line-height: 1.5;
}

a { color: inherit; }
code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.92em;
}

.site-nav-wrap,
.site-footer {
  border-bottom: 1px solid #e5e7eb;
}
.site-nav-wrap {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(252,251,247,.9);
  backdrop-filter: blur(18px);
}

.site-footer {
  border-top: 1px solid #e5e7eb;
  border-bottom: 0;
}

.site-nav,
.site-footer-inner,
.page {
  max-width: 860px;
  margin: 0 auto;
  padding: 16px 20px;
}

.site-nav {
  display: flex;
  gap: 16px;
  align-items: center;
}
.nav-menu-toggle { display: none; }

.site-mark { font-weight: 700; text-decoration: none; }
.site-mark:has(.site-signature) { display: flex; align-items: center; flex-shrink: 0; }
.site-signature { display: block; width: 156px; max-width: 100%; height: auto; object-fit: contain; }
.page { padding-top: 28px; padding-bottom: 48px; }
.stack > * + * { margin-top: 16px; }
.card {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 16px;
}
.muted,
.admin-muted { color: #6b7280; }
.button,
button {
  display: inline-block;
  padding: 10px 14px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
  color: #111;
  text-decoration: none;
  cursor: pointer;
}
.button-primary { background: #111; color: #fff; border-color: #111; }

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

label { display: block; }
input {
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
}

.flash {
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid #d1d5db;
}
.flash-success { background: #f0fdf4; }
.flash-error { background: #fef2f2; }

.admin-form-stack,
.inline-form { display: grid; gap: 12px; }
.table-wrap { overflow-x: auto; }
.admin-table {
  width: 100%;
  border-collapse: collapse;
}
.admin-table th,
.admin-table td {
  text-align: left;
  padding: 10px 8px;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: top;
}
.admin-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}
.admin-setup-grid,
.asset-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.admin-setup-grid-wide {
  align-items: stretch;
}
.admin-totp-card {
  display: grid;
  gap: 12px;
}
.admin-qr-shell {
  min-height: 244px;
  border: 1px dashed #d1d5db;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #fafafa;
  padding: 16px;
}
.admin-qr-shell canvas,
.admin-qr-shell img,
.admin-qr-image {
  display: block;
  width: 220px;
  max-width: 100%;
  height: auto;
}
.admin-secret-row {
  display: flex;
  gap: 12px;
  align-items: center;
}
.admin-form-stack > .button,
.admin-form-stack > button {
  justify-self: start;
  width: auto;
  min-width: 160px;
}
.admin-copy-button {
  flex: 0 0 auto;
}
.admin-secret-block {
  flex: 1;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #f8fafc;
  padding: 12px;
  overflow-wrap: anywhere;
}
.admin-small {
  font-size: 0.92rem;
}
.asset-card {
  margin: 0;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  overflow: hidden;
}
.asset-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #f3f4f6;
}
.asset-card figcaption { padding: 12px; }

@media (max-width: 720px) {
  .grid,
  .admin-setup-grid,
  .asset-grid { grid-template-columns: 1fr; }

  .admin-header,
  .admin-secret-row,
  .site-nav { flex-direction: column; align-items: flex-start; }
}


/* Research portal: Jacqueline Biang */
body.page-research {
  background:
    radial-gradient(circle at 15% 0%, rgba(196, 136, 89, 0.22), transparent 32rem),
    radial-gradient(circle at 90% 8%, rgba(111, 87, 62, 0.18), transparent 28rem),
    #17130f;
  color: #f7efe5;
}
body.page-research .site-nav-wrap,
body.page-research .site-footer { border-color: rgba(255,255,255,0.12); }
body.page-research .site-nav,
body.page-research .site-footer-inner { color: rgba(247,239,229,0.78); }
body.page-research .site-mark { color: #fff7ed; }
body.page-research .page { max-width: 1180px; }
.jb-research { padding-bottom: 56px; }
.jb-hero {
  position: relative;
  padding: clamp(32px, 7vw, 84px) 0 26px;
}
.jb-hero h1 {
  max-width: 920px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(2.6rem, 7vw, 6rem);
  line-height: .92;
  letter-spacing: -0.055em;
}
.research-lede {
  max-width: 780px;
  margin: 24px 0 0;
  color: rgba(247,239,229,0.78);
  font-size: clamp(1.08rem, 2vw, 1.35rem);
}
.eyebrow,
.section-kicker {
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .76rem;
  color: #d6a36f;
  margin: 0 0 10px;
  font-weight: 800;
}
.research-meta-grid,
.brief-grid,
.data-grid,
.reference-grid,
.geo-grid,
.copy-grid,
.mood-grid,
.brand-guideline-grid {
  display: grid;
  gap: 14px;
}
.research-meta-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 34px;
}
.research-meta-grid div,
.brief-grid div,
.data-grid div,
.copy-card,
.insight-card,
.reference-card,
.mood-card,
.brand-guideline-grid > div,
.geo-grid > div,
.social-card,
.flow-card {
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.055);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 24px 80px rgba(0,0,0,0.18);
}
.research-meta-grid span,
.brief-grid span,
.data-grid span,
.copy-card span {
  display: block;
  color: rgba(247,239,229,0.55);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.research-meta-grid strong,
.copy-card strong { display: block; color: #fff7ed; font-size: 1rem; }
.research-anchor-nav {
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 14px 0 20px;
  backdrop-filter: blur(18px);
}
.research-anchor-nav a,
.pill-row span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 999px;
  color: rgba(247,239,229,0.78);
  text-decoration: none;
  background: rgba(255,255,255,0.045);
}
.research-doc {
  display: grid;
  gap: 22px;
}
.research-section {
  border: 1px solid rgba(255,255,255,0.13);
  border-radius: 26px;
  padding: clamp(24px, 4vw, 42px);
  background: rgba(28, 22, 17, 0.82);
}
.research-section h2 {
  max-width: 860px;
  margin: 0 0 18px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(1.75rem, 3.8vw, 3.2rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
}
.research-section h3 { margin: 22px 0 10px; color: #fff7ed; }
.research-section h4 { margin: 18px 0 8px; color: #d6a36f; }
.research-section p,
.research-section li {
  max-width: 78ch;
  color: rgba(247,239,229,0.76);
  font-size: 1rem;
}
.research-section a { color: #ffd39f; }
.source-note {
  margin: 0;
  padding: clamp(18px, 3vw, 28px);
  border-left: 4px solid #d6a36f;
  border-radius: 18px;
  background: rgba(255,255,255,0.07);
}
.source-note p { margin: 0 0 14px; color: rgba(255,247,237,0.86); }
.two-col { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 22px; align-items: start; }
.insight-card.strong { border-color: rgba(214,163,111,0.4); background: rgba(214,163,111,0.11); }
.check-list { padding-left: 0; list-style: none; display: grid; gap: 10px; }
.check-list li { position: relative; padding-left: 24px; }
.check-list li::before { content: "•"; position: absolute; left: 0; color: #d6a36f; }
.check-list.warning li::before { content: "?"; }
.data-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.data-grid p,
.brief-grid p { margin: 0; }
.flow-card { display: grid; gap: 10px; }
.flow-card div { padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,0.07); color: #fff7ed; }
.flow-card div:not(:last-child)::after { content: "↓"; float: right; color: #d6a36f; }
.reference-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mood-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 22px 0 14px; }
.brand-guideline-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 14px 0; }
.mood-source {
  display: inline-flex;
  margin-bottom: 10px;
  color: #d6a36f;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.palette-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.palette-strip div {
  min-height: 118px;
  border: 1px solid rgba(255,255,255,0.13);
  border-radius: 18px;
  background: var(--swatch);
  display: flex;
  align-items: flex-end;
  padding: 12px;
  box-shadow: 0 18px 60px rgba(0,0,0,0.16);
}
.palette-strip span {
  display: inline-flex;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(23,19,15,0.76);
  color: #fff7ed;
  font-size: .75rem;
}
.mood-board-panel,
.typography-panel {
  margin: 18px 0;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 22px;
  padding: clamp(18px, 3vw, 28px);
  background: rgba(255,255,255,0.045);
}
.mood-board-tiles,
.type-grid {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}
.mood-board-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.type-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mood-tile,
.type-card {
  min-height: 170px;
  border: 1px solid rgba(255,255,255,0.13);
  border-radius: 18px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  position: relative;
}
.mood-tile::before {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(31,46,53,0.18);
  border-radius: 12px;
}
.mood-tile span,
.type-card span {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(23,19,15,0.78);
  color: #fff7ed;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.tile-paper { background: linear-gradient(135deg, #F7F4EE, #FCFBF7); }
.tile-grid { background: linear-gradient(90deg, transparent 31%, rgba(31,46,53,.22) 32%, transparent 33%), linear-gradient(180deg, #FCFBF7, #E8F0F1); }
.tile-teal { background: radial-gradient(circle at 68% 28%, #A9CFC4, transparent 30%), linear-gradient(135deg, #1F6F78, #183F6A); }
.tile-copper { background: radial-gradient(circle at 30% 24%, #F7F4EE, transparent 24%), linear-gradient(135deg, #B8754C, #7D4F3C); }
.type-card {
  min-height: 220px;
  justify-content: flex-start;
  background: rgba(255,255,255,0.055);
}
.type-card strong {
  display: block;
  margin-top: 22px;
  color: #fff7ed;
  line-height: 1;
}
.type-card p {
  margin: 14px 0 0;
  font-size: .98rem;
  line-height: 1.55;
}
.type-signature strong {
  font-family: "Snell Roundhand", "Segoe Script", cursive;
  font-size: clamp(2rem, 4vw, 3.3rem);
  font-weight: 400;
  color: #F7F4EE;
}
.type-display strong {
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
  font-size: clamp(1.85rem, 3vw, 2.7rem);
  font-weight: 500;
  letter-spacing: -0.03em;
}
.type-body strong {
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  font-weight: 600;
}
.type-mono strong {
  font-family: "IBM Plex Mono", "JetBrains Mono", ui-monospace, monospace;
  font-size: clamp(1.1rem, 2vw, 1.55rem);
  letter-spacing: -0.04em;
}
.type-note {
  margin-top: 16px;
  color: rgba(247,239,229,0.66);
  font-size: .95rem;
}
.reference-card h3 { margin-top: 0; }
.reference-card .tagline { color: #fff7ed; font-weight: 700; }
.social-card { display: grid; gap: 12px; }
.social-card a { padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,0.07); text-decoration: none; }
.keyword-table { display: grid; border: 1px solid rgba(255,255,255,0.12); border-radius: 18px; overflow: hidden; margin: 18px 0; }
.keyword-table > div { display: grid; grid-template-columns: 1.3fr .8fr 1fr; gap: 10px; padding: 13px 16px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.keyword-table > div:last-child { border-bottom: 0; }
.keyword-table .table-head { background: rgba(214,163,111,0.18); color: #fff7ed; font-weight: 800; }
.ia-tree { display: grid; gap: 12px; }
.ia-tree div { display: grid; grid-template-columns: 180px 1fr; gap: 18px; padding: 16px; border: 1px solid rgba(255,255,255,0.12); border-radius: 16px; background: rgba(255,255,255,0.045); }
.ia-tree strong { color: #fff7ed; }
.ia-tree span { color: rgba(247,239,229,0.72); }
.pill-row { display: flex; gap: 9px; flex-wrap: wrap; }
.pill-row.quiet span { color: rgba(247,239,229,0.55); }
.copy-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.copy-card.primary { border-color: rgba(214,163,111,0.45); background: rgba(214,163,111,0.13); }
.brief-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.decision-list { display: grid; gap: 10px; padding-left: 22px; }
@media (max-width: 920px) {
  .research-meta-grid,
  .reference-grid,
  .data-grid,
  .copy-grid,
  .brief-grid,
  .mood-grid,
  .brand-guideline-grid,
  .mood-board-tiles,
  .type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .two-col { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  body.page-research .page { padding-left: 14px; padding-right: 14px; }
  .research-meta-grid,
  .reference-grid,
  .data-grid,
  .copy-grid,
  .brief-grid,
  .mood-grid,
  .brand-guideline-grid,
  .mood-board-tiles,
  .type-grid,
  .palette-strip,
  .geo-grid { grid-template-columns: 1fr; }
  .ia-tree div,
  .keyword-table > div { grid-template-columns: 1fr; }
  .research-section { border-radius: 20px; }
}


/* Research portal restyle: reflect Jacqueline Biang mood board + typography */
body.page-research {
  font-family: "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 12% 4%, rgba(169, 207, 196, 0.34), transparent 28rem),
    radial-gradient(circle at 88% 6%, rgba(232, 240, 241, 0.82), transparent 30rem),
    linear-gradient(180deg, #F7F4EE 0%, #FCFBF7 48%, #E8F0F1 100%);
  color: #1F2E35;
}
body.page-research .site-nav-wrap,
body.page-research .site-footer {
  background: rgba(252, 251, 247, 0.82);
  border-color: rgba(31, 46, 53, 0.12);
  backdrop-filter: blur(18px);
}
body.page-research .site-nav,
body.page-research .site-footer-inner { color: #607177; }
body.page-research .site-mark {
  font-family: "Snell Roundhand", "Segoe Script", cursive;
  font-size: 1.45rem;
  font-weight: 400;
  color: #1F2E35;
  letter-spacing: 0;
}
body.page-research .site-nav a:not(.site-mark) {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
}
.jb-hero {
  padding-top: clamp(42px, 8vw, 96px);
  border-bottom: 1px solid rgba(31,46,53,0.08);
}
.jb-hero h1 {
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
  color: #1F2E35;
  font-weight: 500;
  letter-spacing: -0.045em;
}
.research-lede {
  color: #50646B;
  font-size: clamp(1.12rem, 2vw, 1.42rem);
  line-height: 1.55;
}
.eyebrow,
.section-kicker {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  color: #1F6F78;
  letter-spacing: .12em;
}
.research-meta-grid div,
.brief-grid div,
.data-grid div,
.copy-card,
.insight-card,
.reference-card,
.mood-card,
.brand-guideline-grid > div,
.geo-grid > div,
.social-card,
.flow-card,
.mood-board-panel,
.typography-panel,
.type-card {
  background: rgba(252, 251, 247, 0.88);
  border-color: rgba(31, 46, 53, 0.11);
  box-shadow: 0 22px 70px rgba(31,46,53,0.08);
}
.research-meta-grid span,
.brief-grid span,
.data-grid span,
.copy-card span,
.mood-source,
.type-card span {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  color: #1F6F78;
}
.research-meta-grid strong,
.copy-card strong,
.reference-card .tagline,
.ia-tree strong,
.type-card strong { color: #1F2E35; }
.research-anchor-nav {
  background: rgba(247, 244, 238, 0.72);
  border-bottom: 1px solid rgba(31,46,53,0.07);
}
.research-anchor-nav a,
.pill-row span {
  background: rgba(252,251,247,0.86);
  border-color: rgba(31,46,53,0.12);
  color: #1F2E35;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .82rem;
  letter-spacing: .06em;
}
.research-anchor-nav a:hover,
.social-card a:hover {
  background: #E8F0F1;
  color: #1F6F78;
}
.research-section {
  background: rgba(252, 251, 247, 0.72);
  border-color: rgba(31,46,53,0.1);
  box-shadow: 0 28px 90px rgba(31,46,53,0.08);
}
.research-section h2,
.research-section h3 {
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
  color: #1F2E35;
}
.research-section h2 { font-weight: 500; }
.research-section h3 { font-size: clamp(1.35rem, 2.3vw, 2rem); }
.research-section h4 { color: #1F6F78; }
.research-section p,
.research-section li {
  color: #43565D;
  line-height: 1.66;
  font-size: 1.04rem;
}
.research-section a { color: #1F6F78; }
.source-note {
  background: #E8F0F1;
  border-left-color: #1F6F78;
  color: #1F2E35;
}
.source-note p { color: #374A51; }
.check-list li::before { color: #1F6F78; }
.insight-card.strong {
  border-color: rgba(184, 117, 76, 0.34);
  background: linear-gradient(135deg, rgba(216,199,173,0.45), rgba(252,251,247,0.9));
}
.flow-card div,
.social-card a,
.ia-tree div {
  background: rgba(232,240,241,0.62);
  border-color: rgba(31,46,53,0.1);
  color: #1F2E35;
}
.research-section code,
.flow-card div,
.ia-tree span,
.data-grid p {
  overflow-wrap: anywhere;
}
.flow-card div:not(:last-child)::after { color: #1F6F78; }
.keyword-table { border-color: rgba(31,46,53,0.13); }
.keyword-table > div { border-bottom-color: rgba(31,46,53,0.1); }
.keyword-table .table-head {
  background: #1F2E35;
  color: #FCFBF7;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}
.ia-tree span { color: #50646B; }
.palette-strip div {
  border-color: rgba(31,46,53,0.12);
  box-shadow: 0 18px 50px rgba(31,46,53,0.09);
}
.palette-strip span,
.mood-tile span,
.type-card span {
  background: rgba(31,46,53,0.86);
  color: #FCFBF7;
}
.type-signature strong {
  color: #1F2E35;
  text-shadow: none;
}
.type-display strong {
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
}
.type-body strong {
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
.type-mono strong {
  font-family: "IBM Plex Mono", "JetBrains Mono", ui-monospace, monospace;
}
.type-card p,
.type-note { color: #50646B; }
.copy-card.primary {
  background: linear-gradient(135deg, rgba(169,207,196,0.34), rgba(252,251,247,0.9));
  border-color: rgba(31,111,120,0.28);
}
.pill-row.quiet span { color: #607177; }
.tile-paper { background: linear-gradient(135deg, #F7F4EE, #FCFBF7); }
.tile-grid { background: linear-gradient(90deg, transparent 31%, rgba(31,46,53,.18) 32%, transparent 33%), linear-gradient(180deg, #FCFBF7, #E8F0F1); }
.tile-teal { background: radial-gradient(circle at 68% 28%, #A9CFC4, transparent 30%), linear-gradient(135deg, #1F6F78, #183F6A); }
.tile-copper { background: radial-gradient(circle at 30% 24%, #F7F4EE, transparent 24%), linear-gradient(135deg, #B8754C, #7D4F3C); }
@media (max-width: 720px) {
  body.page-research .site-nav { align-items: flex-start; }
  body.page-research .site-mark { font-size: 1.35rem; }
}


/* Homepage proof directions */
.page-home,
.page-proof {
  font-family: "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: linear-gradient(180deg, #F7F4EE 0%, #FCFBF7 54%, #E8F0F1 100%);
  color: #1F2E35;
}
body.page-home .page,
body.page-proof .page {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
body.page-home .site-nav,
body.page-proof .site-nav,
body.page-home .site-footer-inner,
body.page-proof .site-footer-inner {
  max-width: 1680px;
  width: min(1680px, calc(100% - clamp(32px, 5vw, 96px)));
}
.page-home .site-nav-wrap,
.page-proof .site-nav-wrap,
.page-home .site-footer,
.page-proof .site-footer {
  background: rgba(252,251,247,.86);
  border-color: rgba(31,46,53,.12);
  backdrop-filter: blur(18px);
}
.page-home .site-mark,
.page-proof .site-mark {
  font-family: "Snell Roundhand", "Segoe Script", cursive;
  color: #1F2E35;
  font-weight: 400;
  font-size: 1.45rem;
}
.page-home .site-nav a:not(.site-mark),
.page-proof .site-nav a:not(.site-mark) {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .82rem;
}
.proof-hub,
.proof {
  width: min(1680px, calc(100% - clamp(32px, 5vw, 96px)));
  margin: 0 auto;
  padding: clamp(34px, 5vw, 88px) 0;
}
.proof-hub-hero {
  min-height: 46vh;
  display: grid;
  align-content: center;
  text-align: center;
  border-bottom: 1px solid rgba(31,46,53,.12);
}
.proof-hub-hero h1,
.proof h1,
.proof h2,
.proof h3 {
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
  font-weight: 500;
  letter-spacing: -.04em;
  color: #1F2E35;
}
.proof-hub-hero h1 { font-size: clamp(4rem, 12vw, 10rem); line-height: .82; margin: 0; }
.proof-hub-hero p { max-width: 860px; margin: 22px auto; font-size: 1.3rem; color: #50646B; }
.proof-hub-actions,
.proof-actions,
.proof-nav-strip,
.filter-pills,
.shop-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.proof-hub-actions { justify-content: center; }
.proof-hub-actions a,
.proof-actions a,
.proof-nav-strip a,
.path-grid a,
.featured-product-card a,
.filter-pills span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(31,46,53,.14);
  border-radius: 999px;
  padding: 11px 16px;
  color: #1F2E35;
  background: rgba(252,251,247,.8);
  text-decoration: none;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.proof-actions .primary,
.featured-product-card a {
  background: #1F6F78;
  border-color: #1F6F78;
  color: #FCFBF7;
}
.proof-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.6vw, 30px);
  margin-top: 36px;
}
.proof-hub-grid article,
.proof-section,
.featured-product-card,
.gallery-hero-art,
.studio-note,
.story-cards article {
  background: rgba(252,251,247,.86);
  border: 1px solid rgba(31,46,53,.11);
  border-radius: 28px;
  box-shadow: 0 26px 80px rgba(31,46,53,.08);
  overflow: hidden;
}
.proof-hub-grid img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display:block; }
.proof-hub-grid div { padding: clamp(22px, 2vw, 34px); }
.proof-hub-grid span,
.proof span,
.section-kicker,
.eyebrow {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  color: #1F6F78;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .78rem;
  font-weight: 700;
}
.proof-hub-grid h2 { margin: 10px 0 8px; font-size: 2.2rem; }
.proof-hub-grid p,
.proof p { color: #50646B; line-height: 1.62; }
.proof-hub-grid a { color: #1F6F78; font-weight: 700; }
.proof-nav-strip {
  position: sticky;
  top: 0;
  z-index: 5;
  padding: 10px 0 22px;
  background: linear-gradient(180deg, rgba(247,244,238,.96), rgba(247,244,238,.72));
}
.proof-nav-strip a[aria-current="page"] { background: #1F2E35; color: #FCFBF7; }
.proof h1 { font-size: clamp(3.2rem, 6.4vw, 9.2rem); line-height: .88; margin: 0; }
.proof h2 { font-size: clamp(2.2rem, 3.7vw, 4.6rem); line-height: .95; margin: 0; }
.proof h3 { font-size: 1.9rem; margin: 12px 0 6px; }
.gallery-hero,
.studio-hero,
.shop-hero {
  min-height: 74vh;
  display: grid;
  gap: clamp(28px, 4.2vw, 82px);
  align-items: center;
  padding: clamp(24px, 4vw, 64px) 0;
}
.gallery-hero { grid-template-columns: minmax(0, .98fr) minmax(480px, 1.02fr); }
.gallery-hero-copy,
.shop-copy { display: grid; gap: 20px; }
.hero-copy,
.shop-copy > p,
.studio-hero-copy > p { font-size: 1.24rem; max-width: 760px; }
.gallery-hero-art img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.art-caption { padding: 20px 24px; display: grid; gap: 4px; }
.art-caption strong { font-family: "Cormorant Garamond"; font-size: 2rem; color: #1F2E35; }
.art-caption em { color: #50646B; font-style: normal; }
.proof-section { padding: clamp(24px, 4vw, 46px); margin: 22px 0; }
.intro-panel { max-width: 1180px; margin-left: auto; }
.section-heading-row { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom: 22px; }
.section-heading-row > a { color:#1F6F78; font-weight:700; }
.artwork-grid,
.product-grid,
.path-grid,
.flow-steps,
.story-cards {
  display: grid;
  gap: 16px;
}
.quiet-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.artwork-grid article,
.product-grid article {
  background: #FCFBF7;
  border: 1px solid rgba(31,46,53,.1);
  border-radius: 22px;
  padding: 12px;
}
.artwork-grid img,
.product-grid img { width:100%; aspect-ratio: 1 / 1.12; object-fit:cover; border-radius:16px; display:block; }
.artwork-image-frame,
.art-detail-image-frame,
.product-gallery-slide { position: relative; overflow: hidden; border-radius: 16px; }
.artwork-watermark {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block !important;
  margin: 0 !important;
  max-width: calc(100% - 16px);
  padding: 9px 13px 8px 15px;
  border-radius: 0 0 0 12px;
  background: rgba(31,46,53,.78);
  color: #FCFBF7 !important;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.15;
  text-align: right;
  text-transform: uppercase;
}
.artwork-grid span,
.product-grid span { display:inline-block; margin-top: 14px; color:#B8754C; }
.artwork-grid p,
.product-grid p { margin-top: 0; }
.path-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 24px; }
.path-grid a { min-height: 120px; border-radius: 24px; font-family: "Cormorant Garamond"; font-size: 2rem; text-transform: none; letter-spacing: -.02em; }
/* Proof 02 */
.page-proof-2 { background: radial-gradient(circle at 15% 20%, rgba(184,117,76,.16), transparent 28rem), linear-gradient(180deg,#F7F4EE,#E8F0F1); }
.studio-hero { grid-template-columns: minmax(260px, .82fr) minmax(0, 1.35fr) minmax(240px, .78fr); }
.studio-stack { display:grid; gap:16px; }
.studio-stack img { width:100%; object-fit:cover; border-radius: 28px; box-shadow: 0 26px 80px rgba(31,46,53,.1); }
.stack-left img { aspect-ratio: 4 / 5.4; }
.stack-right img { aspect-ratio: 1 / 1; }
.studio-note { padding: 20px; }
.studio-hero-copy { display:grid; gap:20px; }
.archive-table { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border:1px solid rgba(31,46,53,.12); border-radius:22px; overflow:hidden; margin-top:22px; }
.archive-table div { padding:18px; background:#FCFBF7; border-right:1px solid rgba(31,46,53,.1); border-bottom:1px solid rgba(31,46,53,.1); }
.archive-table strong { display:block; margin-top:8px; color:#1F2E35; }
.story-split { display:grid; grid-template-columns: .85fr 1.15fr; gap:22px; align-items:start; }
.story-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.story-cards article { padding:22px; }
/* Proof 03 */
.page-proof-3 { background: radial-gradient(circle at 92% 8%, rgba(31,111,120,.18), transparent 28rem), linear-gradient(180deg,#FCFBF7,#F7F4EE); }
.shop-hero { grid-template-columns: minmax(0, 1.18fr) minmax(420px, .82fr); }
.shop-stats span { background:rgba(232,240,241,.72); border:1px solid rgba(31,46,53,.1); border-radius:20px; padding:13px 16px; color:#50646B; }
.shop-stats strong { font-family:"Cormorant Garamond"; font-size:1.8rem; color:#1F2E35; margin-right:4px; }
.featured-product-card { padding: 16px; position:relative; }
.featured-product-card .status { position:absolute; top:28px; left:28px; z-index:1; background:#1F6F78; color:#FCFBF7; border-radius:999px; padding:8px 11px; }
.featured-product-card img { width:100%; aspect-ratio: 4/4.8; object-fit:cover; border-radius:20px; display:block; }
.featured-product-card div { padding: 18px 4px 4px; }
.featured-product-card h2 { font-size:2.4rem; }
.featured-product-card strong { display:block; margin:10px 0; font-size:1.3rem; color:#1F2E35; }
.product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.flow-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top:22px; }
.flow-steps div { background:#FCFBF7; border:1px solid rgba(31,46,53,.1); border-radius:22px; padding:22px; }
.flow-steps strong { display:block; color:#1F2E35; font-size:1.2rem; margin:8px 0; }
@media (max-width: 900px) {
  .proof-hub-grid,
  .gallery-hero,
  .studio-hero,
  .shop-hero,
  .story-split { grid-template-columns: 1fr; }
  .quiet-grid,
  .product-grid,
  .flow-steps,
  .archive-table,
  .path-grid,
  .story-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .proof-hub,
  .proof { width: min(100% - 24px, 1680px); }
  .quiet-grid,
  .product-grid,
  .flow-steps,
  .archive-table,
  .path-grid,
  .story-cards { grid-template-columns: 1fr; }
  .section-heading-row { align-items:flex-start; flex-direction:column; }
  .proof h1 { font-size: clamp(3rem, 16vw, 4.8rem); }
}


/* Public site build: selected Quiet Gallery direction */
body.page-site {
  font-family: "Source Sans 3", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: linear-gradient(180deg, #F7F4EE 0%, #FCFBF7 52%, #E8F0F1 100%);
  color: #1F2E35;
  position: relative;
  isolation: isolate;
}
body.page-site::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  pointer-events: none;
  background: url("/assets/img/patterns/willow-leaves.png?v=site-20260904e") center top 76px / 100vw auto no-repeat;
}
body.page-site > :not(.site-nav-wrap) {
  position: relative;
  z-index: 1;
}
body.page-site > .site-nav-wrap {
  position: sticky;
  top: 0;
  z-index: 50;
}
body.page-site .page {
  max-width: none;
  padding: 0;
}
body.page-site .site-nav-wrap,
body.page-site .site-footer {
  background: rgba(252,251,247,.88);
  border-color: rgba(31,46,53,.12);
  backdrop-filter: blur(18px);
}
.site-nav {
  justify-content: space-between;
}
.site-nav .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}
.site-nav .nav-links a,
.public-footer a {
  text-decoration: none;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .82rem;
  color: #50646B;
}
body.page-site .site-mark {
  font-family: "Snell Roundhand", "Segoe Script", cursive;
  color: #1F2E35;
  font-weight: 400;
  font-size: clamp(1.42rem, 2.4vw, 1.8rem);
  text-decoration: none;
}
body.page-site .site-nav,
body.page-site .site-footer-inner,
.site-shell {
  width: min(1680px, calc(100% - clamp(32px, 5vw, 96px)));
  max-width: 1680px;
  margin-left: auto;
  margin-right: auto;
}
.site-shell {
  padding: clamp(34px, 5vw, 88px) 0;
}
.site-hero,
.page-hero,
.art-detail,
.contact-grid,
.two-column-copy {
  display: grid;
  gap: clamp(28px, 4.2vw, 82px);
  align-items: center;
}
.site-hero {
  min-height: 74vh;
  grid-template-columns: minmax(0, .98fr) minmax(480px, 1.02fr);
  align-items: start;
}
.page-hero {
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .65fr);
  padding: clamp(34px, 6vw, 96px) 0 clamp(24px, 4vw, 56px);
  border-bottom: 1px solid rgba(31,46,53,.11);
}
@media (min-width: 981px) {
  .site-shell { padding-top: 18px; }
  .page-hero { padding-top: 12px; }
}
.compact-hero {
  display: block;
  max-width: 980px;
  border-bottom: 0;
}
.cart-hero {
  max-width: none;
  width: 100%;
}
.cart-hero h1 {
  max-width: 100%;
  font-size: clamp(3.05rem, 5.7vw, 5.85rem);
  line-height: .94;
}
.cart-hero p:not(.eyebrow) {
  max-width: 820px;
}
.site-hero-copy,
.art-detail-copy {
  display: grid;
  gap: 20px;
}
.site-hero h1,
.page-hero h1,
.art-detail h1,
.site-section h2,
.site-panel h2,
.public-story-cards h3,
.portfolio-grid h2 {
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
  font-weight: 500;
  letter-spacing: -.04em;
  color: #1F2E35;
}
.site-hero h1,
.page-hero h1,
.art-detail h1 {
  font-size: clamp(3.4rem, 7vw, 9.2rem);
  line-height: .88;
  margin: 0;
}
body.page-site h1,
body.page-site .site-hero h1,
body.page-site .page-hero h1,
body.page-site .art-detail h1 {
  margin: .5em 0;
}
body.page-site .site-hero h1 {
  margin: .28em 0 .34em;
}
#portfolio-title { line-height: 1.12; }
.site-section h2,
.site-panel h2 { font-size: clamp(2.2rem, 3.7vw, 4.6rem); line-height: .95; margin: 0; }
.public-story-cards h3 { font-size: 1.9rem; margin: 12px 0 6px; }
.hero-copy,
.page-hero p,
.site-panel p,
.site-section p,
.art-detail-copy p,
.contact-grid p {
  color: #50646B;
  font-size: clamp(1.06rem, 1.5vw, 1.24rem);
  line-height: 1.62;
}
.site-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.site-actions a,
.filter-bar a,
.art-detail .site-actions a,
.full-portfolio-cta a,
.featured-artwork-card .text-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(31,46,53,.14);
  border-radius: 999px;
  padding: 11px 16px;
  color: #1F2E35;
  background: rgba(252,251,247,.8);
  text-decoration: none;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.site-actions .primary,
.art-detail .site-actions .primary,
.full-portfolio-cta .primary {
  background: #1F6F78;
  border-color: #1F6F78;
  color: #FCFBF7;
}
.site-hero-art,
.site-panel,
.site-section,
.art-detail figure,
.contact-grid article,
.public-story-cards article {
  background: rgba(252,251,247,.86);
  border: 1px solid rgba(31,46,53,.11);
  border-radius: 28px;
  box-shadow: 0 26px 80px rgba(31,46,53,.08);
  overflow: hidden;
}
.site-hero-art img,
.page-hero img,
.art-detail img {
  display: block;
  width: 100%;
  object-fit: cover;
}
.site-hero-art img { aspect-ratio: 4 / 5; }
.page-hero img { aspect-ratio: 4 / 4.6; border-radius: 28px; box-shadow: 0 26px 80px rgba(31,46,53,.08); }
.site-hero-art figcaption {
  padding: 20px 24px;
  display: grid;
  gap: 8px;
}
.site-hero-art strong { font-family: "Cormorant Garamond"; font-size: 2rem; color: #1F2E35; }
.site-hero-art em { color: #50646B; font-style: normal; }
.featured-art-link { display: block; color: inherit; text-decoration: none; }
.featured-artwork-card figcaption p {
  margin: 0;
  color: #50646B;
  line-height: 1.5;
}
.site-panel,
.site-section { padding: clamp(24px, 4vw, 46px); margin: 22px 0; }
.about-intro { padding-bottom: clamp(12px, 2vw, 24px); }
.about-location {
  margin: 0;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .88rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.about-story-section {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  gap: clamp(28px, 4.2vw, 72px);
  align-items: start;
}
.about-portrait { margin: 0; }
.about-portrait img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 20px;
}
.about-portrait figcaption {
  display: grid;
  gap: 2px;
  margin-top: 12px;
  color: #607177;
  font-size: .76rem;
  line-height: 1.5;
}
.about-story-copy { max-width: 72ch; }
.about-story-copy > p:first-child { margin-top: 0; }
.about-story-copy .site-actions { margin-top: 28px; }
.artist-cv-intro { padding-bottom: clamp(12px, 2vw, 24px); }
.artist-cv-summary { max-width: 760px; margin-bottom: 0; }
.artist-cv-sections {
  display: grid;
  gap: 22px;
}
.artist-cv-section {
  display: grid;
  grid-template-columns: minmax(210px, .34fr) minmax(0, 1fr);
  gap: clamp(26px, 5vw, 76px);
  align-items: start;
}
.artist-cv-section h2 {
  position: sticky;
  top: 24px;
  font-size: clamp(2rem, 3.2vw, 3.7rem);
}
.artist-cv-list { display: grid; }
.artist-cv-entry {
  display: grid;
  grid-template-columns: minmax(96px, 132px) minmax(0, 1fr);
  gap: clamp(18px, 3vw, 34px);
  padding: 17px 0;
  border-top: 1px solid rgba(31,46,53,.11);
}
.artist-cv-entry:first-child { padding-top: 0; border-top: 0; }
.artist-cv-entry:last-child { padding-bottom: 0; }
.artist-cv-entry time {
  color: #1F6F78;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.6;
}
.artist-cv-entry p {
  margin: 0;
  color: #43565D;
  font-size: clamp(1rem, 1.35vw, 1.14rem);
  line-height: 1.6;
}
.shop-intro-columns { margin-bottom: 28px; }
@media (min-width: 981px) {
  .shop-intro-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
    grid-template-rows: auto 1fr;
    column-gap: clamp(28px, 4.2vw, 82px);
    align-items: start;
  }
  .shop-intro-columns > .page-hero { grid-column: 1; grid-row: 1; }
  .shop-intro-columns > .filter-bar { grid-column: 1; grid-row: 2; }
  .shop-intro-columns > .sticker-collection-intro { grid-column: 2; grid-row: 1 / 3; }
}
.sticker-collection-intro {
  display: grid;
  gap: 20px;
  max-width: 620px;
}
.sticker-collection-intro picture,
.sticker-collection-intro img {
  display: block;
  width: 100%;
}
.sticker-collection-intro img {
  height: auto;
  object-fit: contain;
  border-radius: 20px;
}
.sticker-collection-intro p { margin: 0; }
.intro-panel-public { max-width: 1180px; margin-left: auto; }
.art-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.artwork-grid article:hover,
.product-grid article:hover {
  transform: translateY(-3px);
  transition: transform .18s ease, box-shadow .18s ease;
  box-shadow: 0 22px 60px rgba(31,46,53,.1);
}
.portfolio-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.portfolio-grid img,
.art-detail > figure > img,
.related-product-grid img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
.portfolio-grid h2 { font-size: clamp(1.7rem, 2.2vw, 2.5rem); margin: 12px 0 6px; }
.homepage-current-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portfolio-price {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 12px;
  padding: 7px 11px 6px;
  border-radius: 999px;
  border: 1px solid rgba(31,111,120,.22);
  background: rgba(31,111,120,.09);
  color: #1F2E35 !important;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .9rem !important;
  font-weight: 700;
  letter-spacing: .045em;
  line-height: 1.1 !important;
  text-transform: uppercase;
}
.portfolio-inquiry-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0 18px 18px;
  padding: 10px 14px;
  border-radius: 999px;
  background: #1F6F78;
  color: #FCFBF7;
  text-decoration: none;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.2;
  text-transform: uppercase;
}
.shop-card-action {
  margin: 0 18px 18px;
}
.shop-card-action .checkout-button {
  width: 100%;
}
.featured-price { margin: 4px 0 2px; }
.full-portfolio-cta {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}
.full-portfolio-cta a {
  padding: 13px 20px;
  box-shadow: 0 14px 34px rgba(31,111,120,.18);
}
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 28px;
}
.filter-bar a[aria-current="page"] { background: #1F2E35; color: #FCFBF7; }
.social-cta,
.two-column-copy,
.contact-grid { grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr); }
.contact-form-grid { align-items: start; }
.vertical-actions { flex-direction: column; align-items: flex-start; }
.contact-socials { margin: 30px 0 0; }
.contact-socials h2 {
  margin: .14em 0 .55em;
  font-size: clamp(2rem, 3.4vw, 4rem);
  line-height: .98;
}
.social-actions { gap: 12px; }
.social-link { gap: 10px; min-width: 156px; }
.social-link svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.social-link path,
.social-link .social-icon-dot {
  fill: currentColor;
  stroke: none;
}
.soft-panel { background: rgba(232,240,241,.72) !important; }
.public-contact-form {
  display: grid;
  gap: 16px;
  margin-top: 22px;
}
.form-row {
  display: grid;
  gap: 7px;
}
.form-row label,
.public-contact-form label {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .75rem;
  color: #1F6F78;
  font-weight: 700;
}
.form-row label span {
  color: #607177;
  font-weight: 500;
}
.public-contact-form input,
.public-contact-form textarea {
  width: 100%;
  border: 1px solid rgba(31,46,53,.16);
  border-radius: 18px;
  background: rgba(255,255,255,.74);
  color: #1F2E35;
  font: inherit;
  padding: 13px 15px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.public-contact-form textarea { resize: vertical; min-height: 180px; }
.public-contact-form input:focus,
.public-contact-form textarea:focus {
  outline: 2px solid rgba(31,111,120,.28);
  border-color: rgba(31,111,120,.55);
}
.public-contact-form .checkout-button { justify-self: start; }
.public-contact-form .contact-updates-opt-in {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 400;
  line-height: 1.5;
  text-transform: none;
  letter-spacing: normal;
  color: #1F2E35;
  cursor: pointer;
}
.public-contact-form .contact-updates-opt-in input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  padding: 0;
  accent-color: #1F6F78;
  cursor: pointer;
}
.hp-field {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.form-message {
  border-radius: 18px;
  padding: 14px 16px;
  margin: 18px 0 4px;
  font-weight: 700;
}
.form-success {
  background: rgba(31,111,120,.10);
  border: 1px solid rgba(31,111,120,.25);
  color: #1F6F78;
}
.form-error {
  background: rgba(148,53,48,.10);
  border: 1px solid rgba(148,53,48,.24);
  color: #943530;
}
.contact-note-card { position: sticky; top: 24px; }
.art-detail { grid-template-columns: minmax(420px, .95fr) minmax(0, 1.05fr); align-items: start; }
.art-detail figure { margin: 0; }
.art-detail img { aspect-ratio: 4 / 5; }
.product-gallery {
  min-width: 0;
}
.product-gallery-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  border-radius: 24px;
}
.product-gallery-track::-webkit-scrollbar { display: none; }
.product-gallery-track:focus-visible {
  outline: 3px solid rgba(31,111,120,.34);
  outline-offset: 4px;
}
.product-gallery-slide {
  scroll-snap-align: start;
  scroll-snap-stop: always;
  border-radius: 24px;
}
.product-gallery-slide img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
.product-gallery-footer {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 14px 4px 0;
}
.product-gallery-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.product-gallery-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #D1D5DB;
  cursor: pointer;
  transition: background-color 160ms ease, transform 160ms ease;
}
.product-gallery-dot:hover { background: #AEB6C2; }
.product-gallery-dot.is-active {
  background: #168BFF;
  transform: scale(1.12);
}
.product-gallery-dot:focus-visible {
  outline: 3px solid rgba(22,139,255,.32);
  outline-offset: 4px;
}
.art-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 8px 0 10px;
}
.art-meta div {
  border: 1px solid rgba(31,46,53,.1);
  background: rgba(252,251,247,.78);
  border-radius: 18px;
  padding: 14px 16px;
}
.art-meta dt {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .72rem;
  color: #1F6F78;
}
.art-meta dd { margin: 6px 0 0; color: #1F2E35; }
.source-link {
  margin: -8px 0 0;
  font-weight: 700;
}
.source-link a { color: #1F6F78; }
.related-products {
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid rgba(31,46,53,.12);
}
.related-products h2 {
  margin: 2px 0 16px;
  font-size: clamp(2rem, 3vw, 3.6rem);
  line-height: .95;
}
.related-product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.related-product-grid article {
  background: #FCFBF7;
  border: 1px solid rgba(31,46,53,.1);
  border-radius: 20px;
  padding: 10px;
}
.related-product-grid img {
  width: 100%;
  aspect-ratio: 1 / .82;
  object-fit: cover;
  border-radius: 14px;
  display: block;
}
.related-product-grid span {
  display: inline-block;
  margin-top: 10px;
  color: #B8754C;
}
.related-product-grid h3 {
  margin: 7px 0 4px;
  font-family: "Cormorant Garamond";
  font-size: 1.55rem;
  color: #1F2E35;
}
.related-product-grid p { margin: 0; }
.public-footer {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
}
.public-footer div { display: grid; gap: 2px; }
.public-footer span { color: #607177; }
.archive-shell .page-hero p { max-width: 900px; }
.archive-proof-grid { margin-top: 0; }
@media (max-width: 980px) {
  .site-hero,
  .page-hero,
  .art-detail,
  .social-cta,
  .two-column-copy,
  .contact-grid,
  .about-story-section,
  .artist-cv-section { grid-template-columns: 1fr; }
  .about-portrait { max-width: 620px; }
  .artist-cv-section h2 { position: static; }
  .portfolio-grid,
  .quiet-grid,
  .public-story-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  html { overflow-x: hidden; }
  body.page-site { overflow-x: clip; }
  body.page-site .site-nav,
  body.page-site .site-footer-inner,
  .site-shell { width: min(100% - 24px, 1680px); }
  .site-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px 14px;
  }
  .nav-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid rgba(31,46,53,.14);
    border-radius: 999px;
    background: rgba(252,251,247,.92);
    color: #1F2E35;
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .nav-menu-toggle:focus-visible {
    outline: 3px solid rgba(31,111,120,.28);
    outline-offset: 3px;
  }
  .nav-menu-icon {
    display: grid;
    gap: 3px;
    width: 17px;
  }
  .nav-menu-icon span {
    display: block;
    height: 1.5px;
    border-radius: 999px;
    background: currentColor;
    transition: transform .18s ease, opacity .18s ease;
  }
  .nav-menu-toggle[aria-expanded="true"] .nav-menu-icon span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .nav-menu-toggle[aria-expanded="true"] .nav-menu-icon span:nth-child(2) { opacity: 0; }
  .nav-menu-toggle[aria-expanded="true"] .nav-menu-icon span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
  .site-nav .nav-links {
    display: none;
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
    width: 100%;
    gap: 0;
    padding: 4px 0 8px;
    border-top: 1px solid rgba(31,46,53,.1);
  }
  .site-nav .nav-links.is-open { display: grid; }
  .site-nav .nav-links a {
    min-height: 44px;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 9px 4px;
    border-bottom: 1px solid rgba(31,46,53,.08);
  }
  .filter-bar { gap: 8px; }
  .filter-bar a { padding: 10px 12px; }
  .site-hero h1,
  .page-hero h1,
  .art-detail h1 {
    max-width: 100%;
    font-size: clamp(2.35rem, 11.5vw, 3.35rem);
    line-height: .96;
    overflow-wrap: break-word;
    word-break: normal;
  }
  .site-hero h1 {
    font-size: clamp(2.08rem, 9.8vw, 2.85rem);
    line-height: 1;
  }
  .site-hero .hero-copy {
    max-width: 30ch;
    font-size: 1rem;
    line-height: 1.55;
  }
  .site-hero .site-actions {
    flex-direction: column;
    align-items: flex-start;
  }
  .site-section h2,
  .site-panel h2 {
    max-width: 100%;
    font-size: clamp(2rem, 9.4vw, 3rem);
    line-height: 1;
    overflow-wrap: break-word;
    word-break: normal;
  }
  .portfolio-grid,
  .quiet-grid,
  .public-story-cards,
  .related-product-grid,
  .art-meta { grid-template-columns: 1fr; }
  .public-footer { align-items: flex-start; flex-direction: column; }
  .artist-cv-entry { grid-template-columns: 1fr; gap: 4px; }
}

.checkout-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #1F6F78;
  border-radius: 999px;
  padding: 11px 16px;
  color: #FCFBF7;
  background: #1F6F78;
  text-decoration: none;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
}
.secondary-checkout-button {
  background: rgba(252,251,247,.8);
  border-color: rgba(31,46,53,.14);
  color: #1F2E35;
}
.cart-nav-link {
  border: 1px solid rgba(31,111,120,.24);
  border-radius: 999px;
  padding: 7px 11px;
  background: rgba(31,111,120,.08);
}
.price-line { font-weight: 700; color: #1F2E35; }
.empty-catalog { text-align: left; }

.cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .36fr);
  gap: clamp(22px, 4vw, 44px);
  align-items: start;
  margin: 22px 0;
}
.cart-items { display: grid; gap: 16px; }
.cart-line,
.cart-summary {
  background: rgba(252,251,247,.86);
  border: 1px solid rgba(31,46,53,.11);
  border-radius: 28px;
  box-shadow: 0 18px 58px rgba(31,46,53,.07);
}
.cart-line {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr) minmax(180px, auto);
  gap: 18px;
  padding: 16px;
  align-items: center;
}
.cart-line-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 18px;
}
.cart-line-copy h2 {
  margin: 2px 0 6px;
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
  font-size: clamp(1.7rem, 2.6vw, 2.6rem);
  line-height: .95;
}
.cart-line-copy h2 a { color: #1F2E35; text-decoration: none; }
.cart-line-copy p { margin: 0 0 8px; color: #50646B; }
.cart-line-actions { display: grid; justify-items: end; gap: 10px; }
.quantity-form {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.quantity-form label,
.line-total,
.cart-total-row,
.text-button {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .78rem;
}
.quantity-form input {
  width: 74px;
  border: 1px solid rgba(31,46,53,.16);
  border-radius: 999px;
  padding: 9px 10px;
  background: #FCFBF7;
  color: #1F2E35;
}
.quantity-form button,
.text-button {
  border: 1px solid rgba(31,46,53,.14);
  border-radius: 999px;
  padding: 9px 11px;
  background: rgba(252,251,247,.8);
  color: #1F2E35;
  cursor: pointer;
}
.line-total { color: #1F2E35; font-weight: 700; }
.cart-summary {
  position: sticky;
  top: 22px;
  padding: clamp(22px, 3vw, 32px);
  display: grid;
  gap: 16px;
}
.cart-summary h2 {
  margin: 0;
  font-family: "Cormorant Garamond", Garamond, Georgia, serif;
  font-size: clamp(2.1rem, 3vw, 3.2rem);
  line-height: .94;
}
.cart-total-row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 0;
  border-top: 1px solid rgba(31,46,53,.1);
  border-bottom: 1px solid rgba(31,46,53,.1);
}
.cart-checkout-button { width: 100%; }
.cart-summary .text-link { color: #1F2E35; font-weight: 700; }
.cart-note { margin-bottom: 18px; }

.soft-inline-note {
  border: 1px solid rgba(31,46,53,.1);
  background: rgba(232,240,241,.62);
  border-radius: 22px;
  padding: clamp(18px, 3vw, 28px);
}
.soft-inline-note strong { color: #1F2E35; font-size: 1.08rem; }
.soft-inline-note p { margin-bottom: 0; }

@media (max-width: 900px) {
  .cart-layout { grid-template-columns: 1fr; }
  .cart-summary { position: static; }
}

@media (max-width: 620px) {
  .cart-line {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .cart-line-image img { aspect-ratio: 4 / 3; }
  .cart-line-actions { justify-items: start; }
  .quantity-form { justify-content: flex-start; }
  .cart-summary { border-radius: 22px; }
}

.order-confirmation {
  margin: 24px 0;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid rgba(31,46,53,.11);
  border-radius: 24px;
  background: rgba(252,251,247,.86);
}
.order-confirmation h2 { margin-top: 0; }
.order-items {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0 0 20px;
  list-style: none;
  border-bottom: 1px solid rgba(31,46,53,.12);
}
.order-items li,
.order-totals > div {
  display: flex;
  justify-content: space-between;
  gap: 24px;
}
.order-items li { align-items: center; }
.order-item-main {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}
.order-item-image {
  display: block;
  width: 96px;
  height: 96px;
  flex: 0 0 96px;
  object-fit: contain;
  border-radius: 14px;
  background: #F7F4EE;
}
.order-line-total { white-space: nowrap; }
.order-quantity { color: #50646B; }
.order-totals {
  display: grid;
  gap: 10px;
  margin: 20px 0 0;
}
.order-totals > div { margin: 0; }
.order-totals dt,
.order-totals dd { margin: 0; }
.order-total {
  margin-top: 6px !important;
  padding-top: 14px;
  border-top: 1px solid rgba(31,46,53,.12);
  font-weight: 800;
}

@media (max-width: 620px) {
  .order-items li,
  .order-totals > div { gap: 14px; }
  .order-items li { gap: 10px; }
  .order-item-main { gap: 10px; }
  .order-item-image {
    width: 68px;
    height: 68px;
    flex-basis: 68px;
  }
}
