@font-face { font-family: 'Satoshi'; src: url('/fonts/Satoshi-Variable.woff2?v=e739aff9b4d0') format('woff2'); font-weight: 300 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'General Sans'; src: url('/fonts/GeneralSans-Medium.woff2?v=c30377df1de8') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Geist Serif'; src: url('/fonts/GeistSerif-Regular.woff2?v=d11c9077e61b') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Cactus Classical Serif'; src: url('/fonts/CactusClassicalSerif-Regular-Latin.woff2?v=0011de30721c') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
/* One Folio composition. Public source/font credits: /design-attribution.txt.
   Study and earlier harness-method attribution:
   research/native-matt-study/ and research/saleh-harness/ADAPTATION.md. */
:root {
  color-scheme: light;
  --paper: #f8f7f4; --ink: #303125; --prose: #484a42; --quiet: #65675f;
  --rule: #d4d5cd; --accent: #98502f; --link-rule: #aaa99e; --selection: #e7ded0;
  --ui: 'Satoshi', sans-serif; --editorial: 'Cactus Classical Serif', Georgia, serif;
  --folio-width: 900px; --reading-width: 560px;
  --edge: clamp(24px, 6vw, 112px); --motion-short: 160ms;
  --reading-scale: .91;
  --reading-ink: color-mix(in srgb, var(--ink) 98%, var(--paper));
  --reading-prose: color-mix(in srgb, var(--prose) 98%, var(--paper));
}
/* Selected Cactus optical sizing/spacing, calibrated against Times.
   The Geist face remains exclusively for the Product Contractors wordmark. */
/* Calibrate word gaps separately from tracking: these faces have different
   native space widths. Preserve Times and avoid stretching/distorting glyphs. */
html[data-reading-font='cactus'] .profile-lead { letter-spacing: -.014em; word-spacing: calc(var(--type-reference) * .03707); }

html[data-reading-font='cactus'] .profile-businesses,
html[data-reading-font='cactus'] .profile-detail { letter-spacing: -.006em; word-spacing: calc(var(--type-reference) * .03979); }

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--paper); -webkit-text-size-adjust: 100%; }
body { margin: 0; color: var(--ink); font-family: var(--ui); font-weight: 400; -webkit-font-smoothing: antialiased; font-kerning: normal; }
p, h1 { margin: 0; }
a { color: inherit; -webkit-tap-highlight-color: transparent; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--link-rule); text-underline-offset: 3px; transition: color var(--motion-short) ease, text-decoration-color var(--motion-short) ease; }
a:hover { color: var(--accent); text-decoration-color: var(--accent); }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 1px; }
::selection { color: var(--ink); background: var(--selection); }
.profile-shell {
  --folio-fit: 1;
  height: 100svh; min-height: 100svh;
  display: grid; grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, .38fr) auto minmax(0, .62fr);
  padding: clamp(24px, 4svh, 64px) var(--edge);
}
.profile {
  grid-row: 2; width: min(100%, var(--folio-width));
  margin: 0 0 0 max(0px, calc((100% - var(--folio-width)) * .4));
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--reading-width));
  column-gap: clamp(32px, 4vw, 64px); align-items: start;
}
.profile-header { grid-column: 1 / -1; justify-self: start; width: max-content; max-width: 100%; display: grid; grid-template-columns: max-content; }
.profile-header h1 { font: 425 clamp(34px, 2.8vw, 40px)/1.25 var(--ui); letter-spacing: -.035em; word-spacing: -.025em; white-space: nowrap; }
.profile-role { margin-top: 6px; font: 400 clamp(11px, calc(1vw - 1px), 12.5px)/1.5 var(--ui); letter-spacing: .005em; color: var(--prose); white-space: nowrap; }
.role-discipline { white-space: nowrap; }
.profile-introduction { grid-column: 2; margin-top: calc(32px * var(--folio-fit)); font-family: var(--editorial); font-synthesis: none; font-kerning: normal; font-feature-settings: 'kern' 1, 'liga' 1; }
.profile-lead { --type-reference: max(22px, calc(26px * var(--folio-fit))); font-size: calc(var(--type-reference) * var(--reading-scale)); line-height: calc(var(--type-reference) * 1.32); font-weight: 400; color: var(--reading-ink); letter-spacing: -.01em; text-wrap: pretty; }
.profile-businesses, .profile-detail { --type-reference: max(15px, calc(18px * var(--folio-fit))); margin-top: calc(22px * var(--folio-fit)); font-size: calc(var(--type-reference) * var(--reading-scale)); line-height: calc(var(--type-reference) * 1.55); color: var(--reading-ink); letter-spacing: 0; text-wrap: pretty; }
.profile-detail { color: var(--reading-prose); }
.business-reference { display: inline-block; white-space: nowrap; }
.inline-business { white-space: nowrap; color: var(--ink); word-spacing: normal; }
.brand-pc { font-family: 'Geist Serif', Georgia, serif; font-size: var(--type-reference); font-weight: 400; letter-spacing: -.035em; }
.brand-airbour { font-family: 'General Sans', Arial, sans-serif; font-size: calc(var(--type-reference) * .95); font-weight: 500; letter-spacing: -.04em; }
.profile-contact { grid-column: 2; margin-top: calc(28px * var(--folio-fit)); padding-top: 10px; border-top: 1px solid var(--rule); display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 24px; }
.email-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; line-height: 1.4; letter-spacing: -.008em; }
.social-links { display: flex; gap: 24px; }
.social-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; line-height: 1.4; letter-spacing: -.008em; color: var(--prose); }
@media (max-width: 800px) {
  :root { --folio-width: 560px; --edge: clamp(24px, 7vw, 56px); }
  .profile { display: block; }
  .profile-header h1 { font-size: 34px; }
  .profile-role { font-size: 11px; }
  .profile-introduction { margin-top: calc(28px * var(--folio-fit)); }
  .profile-lead { --type-reference: max(22px, calc(25px * var(--folio-fit))); }
  .profile-businesses, .profile-detail { --type-reference: max(15px, calc(17.5px * var(--folio-fit))); }
}
@media (max-width: 600px) {
  :root { --edge: clamp(22px, 6.2vw, 34px); }
  .email-link { flex-basis: 100%; }
}
@media (max-width: 600px) and (max-height: 740px) {
  .profile-shell { padding-block: 20px; }
  .profile-header h1 { font-size: 34px; }
  .profile-role { margin-top: 6px; line-height: 1.4; }
  .profile-introduction { margin-top: calc(20px * var(--folio-fit)); }
  .profile-lead { --type-reference: max(21px, calc(24px * var(--folio-fit))); line-height: calc(var(--type-reference) * 1.25); }
  .profile-businesses, .profile-detail { --type-reference: max(14.5px, calc(16.5px * var(--folio-fit))); margin-top: calc(16px * var(--folio-fit)); line-height: calc(var(--type-reference) * 1.5); }
  .profile-contact { margin-top: calc(18px * var(--folio-fit)); padding-top: 8px; }
}
@media (max-width: 360px) and (max-height: 620px) {
  .profile-shell { padding-block: 14px; }
  .profile-introduction { margin-top: calc(14px * var(--folio-fit)); }
  .profile-businesses, .profile-detail, .profile-contact { margin-top: calc(10px * var(--folio-fit)); }
}
/* Short landscape changes arrangement before reducing type. */
@media (min-aspect-ratio: 13/10) and (max-height: 620px) {
  :root { --folio-width: 1060px; --edge: clamp(24px, 5vw, 80px); }
  .profile-shell { padding-block: 22px; }
  .profile { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: clamp(28px, 5vw, 64px); row-gap: calc(20px * var(--folio-fit)); }
  .profile-header { grid-column: 1; grid-row: 1; }
  .profile-header h1 { font-size: 34px; }
  .profile-role { font-size: 11px; }
  .profile-introduction { display: contents; }
  .profile-lead { --type-reference: max(21px, calc(25px * var(--folio-fit))); grid-column: 2; grid-row: 1; line-height: calc(var(--type-reference) * 1.25); }
  .profile-businesses { grid-column: 2; grid-row: 2; }
  .profile-detail { grid-column: 1; grid-row: 2; }
  .profile-businesses, .profile-detail { --type-reference: max(14.5px, calc(16px * var(--folio-fit))); margin: 0; font-family: var(--editorial); line-height: calc(var(--type-reference) * 1.5); }
  .profile-contact { grid-column: 1 / -1; grid-row: 3; margin-top: 0; padding-top: 8px; }
  .email-link { flex-basis: auto; }
}
@media (max-width: 700px) and (min-aspect-ratio: 13/10) and (max-height: 420px) {
  .profile-shell { padding-block: 12px; }
  .profile { row-gap: calc(12px * var(--folio-fit)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
