/* Keep provenance captions legible over product imagery at every viewport. */
.supplied-brand { gap: 0; flex-shrink: 0; }
.supplied-brand img { width: 215px; height: auto; }
.supplied-brand sup { margin: 16px 0 0 -14px; }
@media (prefers-color-scheme: dark) {
  .supplied-brand img { filter: invert(1); }
}
@media (max-width: 900px) {
  .site-header { flex-wrap: wrap; padding-block: 18px; gap: 14px; }
  .nav { flex-wrap: wrap; }
}
@media (max-width: 620px) {
  .supplied-brand img { width: 195px; }
}
.product-meta { flex-wrap: wrap; }
.detail-hero h1 sup { font-size: .3em; vertical-align: super; letter-spacing: 0; }
.visual-caption {
  bottom:0;
  left:0;
  right:0;
  padding:10px 18px;
  background:#26322b;
  line-height:1.5
}

.phone-visual .visual-caption {
  background:#dce4ca
}

.invitation .eyebrow {
  margin-bottom:12px
}
.contact-address { overflow-wrap: anywhere; margin-top: 14px; color: var(--muted); }

/* One display face for headings; pairs with the hand-drawn wordmark. */
@font-face { font-family: Fraunces; src: url(/assets/fraunces-latin-500.woff2) format("woff2"); font-weight: 500; font-display: swap; }
h1, h2, h3, .article blockquote, .hero h1, .page-intro h1, .section-heading h2, .invitation h2, .philosophy-block h2, .founder h2, .article h2, .principle h3 {
  font-family: Fraunces, Georgia, serif;
  letter-spacing: -.02em;
}
.hero h1 { font-size: clamp(44px, 5vw, 72px); letter-spacing: -.03em; }
.philosophy-block h2 { max-width: none; }

.article .text-link { display: inline-block; margin-top: 16px; }

/* Review fixes, September 2026. */
h1, h2 { text-wrap: balance; }
.visual-caption { font-family: inherit; font-size: 12px; letter-spacing: 0; text-transform: none; }
.founder .actions { margin-top: 20px; }
.founder .actions .text-link { margin-top: 0; }
.section-heading > p a { color: inherit; }
@media (max-width: 620px) {
  .site-header { min-height: 0; gap: 10px; padding: 14px 0; }
  .supplied-brand img { width: 160px; }
  .nav { justify-content: flex-start; gap: 14px; font-size: 13px; }
  .nav a { padding-block: 6px; }
}
@media (prefers-color-scheme: dark) {
  .phone-visual { background: #2e3a2a; }
  .phone-visual .visual-word, .phone-visual .visual-caption { color: #dce4ca; }
  .phone-visual .visual-caption { background: #2e3a2a; }
  .philosophy-block { background: #232d24; border: 1px solid #394337; }
}
:root { font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
.nav a:last-child[aria-current=page] { text-decoration: none; border-color: var(--ink); }
.founder { margin: 0; max-width: 900px; }
@media (max-width: 620px) {
  .eyebrow { font-size: 12px; }
  .visual-caption { font-size: 13px; }
}
.product-card .price-note { font-size: 13px; color: var(--muted); margin-top: 10px; }
.hero-stats { display: grid; grid-template-columns: auto auto; gap: 0 48px; margin: 0; padding-left: 40px; border-left: 1px solid var(--line); }
.hero-stats dt { font-size: 13px; color: var(--muted); }
.hero-stats dd { margin: 6px 0 0; font-family: Fraunces, Georgia, serif; font-size: clamp(34px, 3.4vw, 48px); line-height: 1; letter-spacing: -.02em; }
.hero-stats div:last-child dd { color: var(--muted); }
@media (max-width: 900px) {
  .hero-stats { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--line); gap: 0 32px; }
}

/* Text pages: heading column + text column, so content spans the same width as the header. */
@media (min-width: 901px) {
  .article { max-width: none; }
  .article section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: 64px; }
  .article section > * { grid-column: 2; }
  .article section > h2 { grid-column: 1; grid-row: 1 / span 30; align-self: start; font-size: 28px; }
  .about-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 64px; }
  .about-layout .portrait { width: 260px; }
}
.hero-stats dd { white-space: nowrap; }
.article ol.standard { list-style: none; padding: 0; margin: 16px 0 0; }
.article ol.standard li { padding: 12px 0 12px 28px; border-top: 1px solid var(--line); position: relative; color: var(--ink); }
.article ol.standard li::before { content: counter(rule); position: absolute; left: 0; color: var(--green); font-family: Fraunces, Georgia, serif; }
.sp-badge { display: inline-block; margin-top: 12px; padding: 4px 10px; border: 1px solid var(--green); border-radius: 100px; font-size: 13px; color: var(--green); text-decoration: none; }
.product-card.wide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.product-card.wide .product-visual { max-width: none; }
@media (max-width: 900px) { .product-card.wide { grid-template-columns: 1fr; gap: 0; } }
.product-card.wide .text-link { display: inline-block; margin-top: 16px; }
.product-card.wide .product-meta { margin-bottom: 10px; }
.standard-projects { margin-top: 16px; color: var(--ink); }
.article ol.standard { counter-reset: rule; }
.article ol.standard li { counter-increment: rule; }
.contact-alt { margin-top: 10px; font-size: 15px; color: var(--muted); }
.hero-stats dd { white-space: nowrap; }
@media (min-width: 621px) and (max-width: 1100px) { .hero-stats { grid-template-columns: 1fr; gap: 16px; } }
@media (prefers-color-scheme: dark) {
  .button { background: #c0d99d; border-color: #c0d99d; }
  .button:hover { background: #d3e6b8; }
}
@media (max-width: 620px) {
  .hero-stats { grid-template-columns: 1fr; gap: 16px; }
  .hero-stats dd { white-space: normal; font-size: 32px; }
}
@media (max-width: 900px) { .hero-stats { align-self: stretch; } }
.article section > .button, .article section > .text-link { justify-self: start; margin-top: 16px; }
.product-card.wide p:not(.price-note) { margin-top: 12px; max-width: 470px; color: var(--muted); font-size: 16px; }
.product-card.wide .price-note { font-size: 13px; color: var(--muted); margin-top: 10px; }
.hero-stats dt a { color: inherit; }
@media (max-width: 620px) { .nav a { padding-block: 10px; } }
@media (min-width: 901px) { .article section > :not(h2) { max-width: 68ch; } }
@media (max-width: 1024px) { .platform { white-space: normal; text-align: right; } }
@media (max-width: 800px) {
  .product-meta { flex-direction: column; align-items: flex-start; gap: 4px; }
  .platform { text-align: left; }
}
@media (prefers-color-scheme: dark) { .philosophy-block { background: #2a352b; } }
.platform { font-size: 12px; }
.footer-bottom { font-size: 13px; }
.nowrap { white-space: nowrap; }
.product-card.wide .price-note { max-width: 470px; }
.camera-visual .visual-word { color: #f4f7ef; z-index: 1; }
body { min-height: 100svh; display: flex; flex-direction: column; }
body > main { flex: 1; width: min(1280px, calc(100% - 96px)); }
@media (max-width: 900px) { body > main { width: calc(100% - 48px); } }
@media (max-width: 620px) { body > main { width: calc(100% - 36px); } }
.camera-visual { padding-top: 56px; }
.hero-stats dt { text-wrap: balance; }
.product-card.wide .product-visual { height: 440px; }
.product-card.wide .product-visual .phone { width: 280px; border-width: 8px; border-radius: 36px; }
@media (max-width: 620px) {
  .product-card.wide .product-visual { height: 380px; }
  .product-card.wide .product-visual .phone { width: 230px; }
}
.text-link { padding-block: 2px; }
@media (max-width: 620px) { .footer-links { gap: 14px; } }
