/* ORSO — site stylesheet. Tokens and components from the ORSO Refined design system. */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/inter-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/source-serif-4-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/source-serif-4-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(../assets/fonts/source-serif-4-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/barlow-condensed-latin-700-normal.woff2) format("woff2")}
:root{
  --surface: var(--white);
  --surface-alt: var(--gray-light);
  --surface-brand: var(--berkeley-blue);
  --surface-feature: var(--berkeley-blue);
  --ink: var(--blue-dark);
  --ink-muted: var(--berkeley-blue);
  --on-brand: var(--white);
  --heading: var(--berkeley-blue);
  --accent: var(--california-gold);
  --on-accent: var(--berkeley-blue);
  --link: var(--blue-medium);
  --border: var(--gray-medium);
  --focus-ring: var(--blue-medium);
  --accent-hover: var(--gold-medium);
  --on-ink: var(--white);
  --link-hover: var(--berkeley-blue);
  --danger: var(--rose-dark);
  --success: var(--green-dark);
  --notice-info: var(--blue-light);
  --notice-success: var(--green-light);
  --notice-danger: var(--rose-light);
  --on-notice: var(--blue-dark);
  --berkeley-blue: #002676;
  --california-gold: #fdb515;
  --white: #ffffff;
  --heritage-gold: #c09748;
  --blue-dark: #010133;
  --blue-medium: #004aae;
  --blue-light: #9fd1ff;
  --gold-dark: #fc9313;
  --gold-medium: #ffc31b;
  --gold-light: #ffe88d;
  --green-dark: #00553a;
  --green-medium: #018943;
  --green-light: #b3e59a;
  --rose-dark: #770747;
  --rose-medium: #e7115e;
  --rose-light: #ffcfe5;
  --purple-dark: #431170;
  --purple-medium: #8236c7;
  --purple-light: #d9ceff;
  --black: #000000;
  --gray-medium: #808080;
  --gray-light: #f2f2f2;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --radius-none: 0px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-full: 9999px;
  --font-sans: Inter, Arial, sans-serif;
  --font-serif: "Source Serif 4", Times, "Times New Roman", serif;
  --font-condensed: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
}

/* ORSO Refined components. Every color is a token from tokens.css; corners are square unless noted. */

.orso-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.orso-icon { flex: none; display: block; }
.orso-eyebrow { margin: 0; font-family: var(--font-condensed); font-weight: 600; font-size: 16px; line-height: 20px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); }

/* Focus: one visible ring everywhere */
.orso-btn:focus-visible, .orso-link:focus-visible, .orso-card__link:focus-visible, .orso-post__link:focus-visible,
.orso-input:focus-visible, .orso-check__box:focus-visible, .orso-nav__link:focus-visible, .orso-nav__home:focus-visible,
.orso-nav__toggle:focus-visible, .orso-footer__link:focus-visible, .orso-footer__email:focus-visible {
  outline: 2px solid var(--focus-ring); outline-offset: 2px;
}

/* ---------- Button ---------- */
.orso-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  box-sizing: border-box; min-height: 48px; padding: 0 var(--space-6);
  font-family: var(--font-condensed); font-weight: 600; font-size: 18px; line-height: 1; letter-spacing: 0.06em; text-transform: uppercase;
  text-decoration: none; border: 2px solid transparent; border-radius: var(--radius-none); cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.orso-btn--sm { min-height: 44px; padding: 0 var(--space-4); font-size: 16px; }
.orso-btn--lg { min-height: 56px; padding: 0 var(--space-8); font-size: 20px; }
.orso-btn--full { display: flex; width: 100%; }
.orso-btn--primary { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.orso-btn--primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.orso-btn--secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
.orso-btn--secondary:hover { background: var(--ink); color: var(--on-ink); }
.orso-btn--ghost { background: transparent; color: var(--link); padding-left: 0; padding-right: 0; min-width: 44px; }
.orso-btn--ghost:hover { color: var(--link-hover); }
.orso-btn--ghost:hover .orso-icon { transform: translateX(3px); }
.orso-btn .orso-icon { transition: transform .15s ease; }
.orso-btn:disabled, .orso-btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
/* On Berkeley Blue (surface-brand): put content in .orso-on-brand (NavBar brand, Card brand and Footer already are) */
.orso-on-brand, .orso-nav--brand, .orso-card--brand, .orso-footer { --link: var(--california-gold); --link-hover: var(--gold-light); --focus-ring: var(--california-gold); }
.orso-on-brand { background: var(--surface-brand); color: var(--on-brand); }
.orso-on-brand .orso-btn--secondary, .orso-nav--brand .orso-btn--secondary, .orso-card--brand .orso-btn--secondary, .orso-footer .orso-btn--secondary { color: var(--white); border-color: var(--white); }
.orso-on-brand .orso-btn--secondary:hover, .orso-nav--brand .orso-btn--secondary:hover, .orso-card--brand .orso-btn--secondary:hover, .orso-footer .orso-btn--secondary:hover { background: var(--white); color: var(--berkeley-blue); }
.orso-on-brand .orso-section-header__title { color: var(--on-brand); }
.orso-on-brand .orso-section-header__intro { color: var(--on-brand); }
.orso-on-brand .orso-eyebrow { color: var(--california-gold); }

/* ---------- TextLink ---------- */
.orso-link { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.orso-link:hover { color: var(--link-hover); text-decoration-thickness: 2px; }
.orso-link--inline .orso-icon { display: inline-block; vertical-align: -1px; margin-left: 3px; }
.orso-link--standalone {
  display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px;
  font-family: var(--font-condensed); font-weight: 600; font-size: 18px; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
}
.orso-link--standalone:hover .orso-icon { transform: translateX(3px); }
.orso-link--standalone .orso-icon { transition: transform .15s ease; }

/* ---------- SectionHeader ---------- */
.orso-section-header { display: flex; flex-direction: column; gap: var(--space-3); max-width: 720px; }
.orso-section-header--center { align-items: center; text-align: center; margin-left: auto; margin-right: auto; }
.orso-section-header__title { margin: 0; font-family: var(--font-sans); font-weight: 700; font-size: 32px; line-height: 40px; letter-spacing: -0.01em; color: var(--heading); }
.orso-section-header__title--lg { font-family: var(--font-serif); font-weight: 600; font-size: clamp(40px, 6vw, 56px); line-height: 1.07; }
.orso-section-header__intro { margin: 0; font-family: var(--font-sans); font-size: 18px; line-height: 28px; color: var(--ink); }

/* ---------- Card ---------- */
.orso-card {
  position: relative; display: flex; flex-direction: column; gap: var(--space-3);
  box-sizing: border-box; padding: var(--space-8); background: var(--surface-alt); color: var(--ink);
  border-radius: var(--radius-none); font-family: var(--font-sans);
}
.orso-card--brand { background: var(--surface-feature); color: var(--on-brand); }
.orso-card--brand .orso-eyebrow { color: var(--accent); }
.orso-card--brand .orso-card__title, .orso-card--brand .orso-card__link { color: var(--on-brand); }
.orso-card--brand .orso-card__cta { color: var(--accent); }
.orso-card__title { margin: 0; font-weight: 700; font-size: 24px; line-height: 32px; color: var(--heading); }
.orso-card__link { color: inherit; text-decoration: none; }
.orso-card__link::after { content: ""; position: absolute; inset: 0; }
.orso-card--linked:hover .orso-card__link { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.orso-card--linked:hover .orso-card__cta .orso-icon { transform: translateX(3px); }
.orso-card__body { font-size: 16px; line-height: 24px; }
.orso-card__body > p { margin: 0 0 var(--space-3); }
.orso-card__body > p:last-child { margin-bottom: 0; }
.orso-card__cta {
  display: inline-flex; align-items: center; gap: var(--space-2); margin-top: auto; padding-top: var(--space-3);
  font-family: var(--font-condensed); font-weight: 600; font-size: 18px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--link);
}
.orso-card__cta .orso-icon { transition: transform .15s ease; }
.orso-card:has(.orso-card__link:focus-visible) { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.orso-card__link:focus-visible { outline: none; }

/* ---------- PostCard ---------- */
.orso-post { position: relative; display: flex; flex-direction: column; gap: var(--space-4); font-family: var(--font-sans); color: var(--ink); }
.orso-post__image { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-none); background: var(--surface-alt); }
.orso-post__text { display: flex; flex-direction: column; gap: var(--space-2); }
.orso-post__meta { margin: 0; font-family: var(--font-condensed); font-weight: 600; font-size: 16px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-muted); }
.orso-post__title { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 26px; line-height: 32px; color: var(--heading); }
.orso-post__link { color: inherit; text-decoration: none; }
.orso-post__link::after { content: ""; position: absolute; inset: 0; }
.orso-post:hover .orso-post__link { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.orso-post:has(.orso-post__link:focus-visible) { outline: 2px solid var(--focus-ring); outline-offset: 4px; }
.orso-post__link:focus-visible { outline: none; }
.orso-post__excerpt { margin: 0; font-size: 16px; line-height: 24px; }
.orso-post__source { margin: 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }

/* ---------- Quote ---------- */
.orso-quote { margin: 0; display: flex; flex-direction: column; gap: var(--space-4); max-width: 760px; }
.orso-quote__text { margin: 0; font-family: var(--font-serif); font-style: italic; font-size: 28px; line-height: 36px; color: var(--heading); }
.orso-quote--lg .orso-quote__text { font-size: clamp(32px, 4vw, 40px); line-height: 1.2; }
.orso-quote__cite { display: flex; flex-direction: column; gap: 2px; font-family: var(--font-sans); }
.orso-quote__name { font-family: var(--font-condensed); font-weight: 600; font-size: 18px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); }
.orso-quote__role { font-size: 14px; line-height: 20px; color: var(--ink-muted); }

/* ---------- Tag ---------- */
.orso-tag {
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 var(--space-2); box-sizing: border-box;
  font-family: var(--font-condensed); font-weight: 600; font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; border-radius: var(--radius-none);
}
.orso-tag--neutral { background: var(--surface-alt); color: var(--ink); box-shadow: inset 0 0 0 1px var(--border); }
.orso-tag--brand { background: var(--surface-brand); color: var(--on-brand); }
.orso-tag--gold { background: var(--accent); color: var(--on-accent); }

/* ---------- Form fields ---------- */
.orso-field { display: flex; flex-direction: column; gap: var(--space-2); font-family: var(--font-sans); color: var(--ink); }
.orso-field__label { font-weight: 600; font-size: 15px; line-height: 20px; }
.orso-field__req, .orso-field__opt { font-weight: 400; color: var(--ink-muted); }
.orso-field__hint { margin: 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.orso-input {
  box-sizing: border-box; width: 100%; min-height: 48px; padding: 12px var(--space-4);
  font-family: var(--font-sans); font-size: 16px; line-height: 24px; color: var(--ink);
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
}
.orso-input::placeholder { color: var(--ink-muted); opacity: .75; }
.orso-input:hover { border-color: var(--ink); }
.orso-input:focus-visible { border-color: var(--focus-ring); }
.orso-input--multi { resize: vertical; min-height: 128px; }
.orso-input:disabled { background: var(--surface-alt); opacity: .6; cursor: not-allowed; }
.orso-field--invalid .orso-input { border: 2px solid var(--danger); }
.orso-field__error { display: flex; align-items: flex-start; gap: var(--space-1); margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--danger); }
.orso-field__error .orso-icon { margin-top: 2px; }
.orso-select-wrap { position: relative; }
.orso-select { appearance: none; -webkit-appearance: none; padding-right: 48px; cursor: pointer; }
.orso-select__chevron { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--ink); }

/* ---------- Checkbox ---------- */
.orso-check { display: flex; gap: var(--space-3); align-items: flex-start; font-family: var(--font-sans); color: var(--ink); }
.orso-check__box { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--berkeley-blue); cursor: pointer; }
.orso-check__text { display: flex; flex-direction: column; gap: 2px; }
.orso-check__label { font-size: 16px; line-height: 24px; cursor: pointer; }
.orso-check__hint { margin: 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
[data-theme="dark"] .orso-check__box { accent-color: var(--california-gold); }

/* ---------- Alert ---------- */
.orso-alert { display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-4) var(--space-6) var(--space-4) var(--space-4); color: var(--on-notice); font-family: var(--font-sans); border-radius: var(--radius-none); }
.orso-alert--info { background: var(--notice-info); }
.orso-alert--success { background: var(--notice-success); }
.orso-alert--danger { background: var(--notice-danger); }
.orso-alert__icon { margin-top: 1px; }
.orso-alert__text { display: flex; flex-direction: column; gap: var(--space-1); }
.orso-alert__title { margin: 0; font-weight: 700; font-size: 16px; line-height: 24px; }
.orso-alert__body { font-size: 15px; line-height: 22px; }
.orso-alert__body > p { margin: 0; }

/* ---------- NavBar ---------- */
.orso-nav { font-family: var(--font-sans); }
.orso-nav--light { background: var(--surface); color: var(--ink); box-shadow: inset 0 -1px 0 var(--border); }
.orso-nav--brand { background: var(--surface-brand); color: var(--on-brand); }
.orso-nav__bar { display: flex; align-items: center; gap: var(--space-8); box-sizing: border-box; max-width: 1280px; margin: 0 auto; min-height: 80px; padding: var(--space-3) var(--space-8); }
.orso-nav__home { display: inline-flex; align-items: center; color: inherit; text-decoration: none; margin-right: auto; }
.orso-nav__logo { display: block; height: 40px; width: auto; }
.orso-nav__wordmark { font-weight: 800; font-size: 28px; letter-spacing: 0.02em; }
.orso-nav__nav { display: flex; align-items: center; gap: var(--space-6); }
.orso-nav__list { display: flex; align-items: center; gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.orso-nav__link {
  display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none;
  font-family: var(--font-condensed); font-weight: 600; font-size: 18px; letter-spacing: 0.08em; text-transform: uppercase;
  box-shadow: inset 0 -3px 0 transparent; transition: box-shadow .15s ease;
}
.orso-nav--light .orso-nav__link:hover { box-shadow: inset 0 -3px 0 var(--border); }
.orso-nav--light .orso-nav__link[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--heading); }
.orso-nav--brand .orso-nav__link:hover { box-shadow: inset 0 -3px 0 rgba(255, 255, 255, .45); }
.orso-nav--brand .orso-nav__link[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--accent); }
.orso-nav--brand .orso-nav__link:focus-visible, .orso-nav--brand .orso-nav__home:focus-visible, .orso-nav--brand .orso-nav__toggle:focus-visible { outline-color: var(--accent); }
.orso-nav__toggle { display: none; align-items: center; justify-content: center; width: 48px; height: 48px; margin-right: -12px; padding: 0; background: transparent; border: 0; color: inherit; cursor: pointer; }
@media (max-width: 860px) {
  .orso-nav__bar { flex-wrap: wrap; gap: 0; padding: var(--space-2) var(--space-4) var(--space-2) var(--space-6); min-height: 72px; }
  .orso-nav__toggle { display: inline-flex; }
  .orso-nav__nav { display: none; order: 3; width: 100%; flex-direction: column; align-items: stretch; gap: var(--space-4); padding: var(--space-4) 0 var(--space-6); }
  .orso-nav--open .orso-nav__nav { display: flex; }
  .orso-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .orso-nav__link { width: 100%; min-height: 52px; font-size: 20px; }
  .orso-nav__cta { align-self: flex-start; }
}

/* ---------- Footer ---------- */
.orso-footer { background: var(--surface-brand); color: var(--on-brand); font-family: var(--font-sans); }
.orso-footer__inner { display: flex; flex-wrap: wrap; gap: var(--space-12); box-sizing: border-box; max-width: 1280px; margin: 0 auto; padding: var(--space-16) var(--space-8) var(--space-12); }
.orso-footer__brand { flex: 1 1 280px; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.orso-footer__logo { display: block; width: 260px; max-width: 100%; height: auto; }
.orso-footer__blurb { margin: 0; max-width: 360px; font-size: 15px; line-height: 22px; color: var(--on-brand); }
.orso-footer__email { color: var(--accent); font-weight: 600; text-underline-offset: 3px; }
.orso-footer__email:hover { color: var(--gold-light); }
.orso-footer__cols { flex: 2 1 400px; display: flex; flex-wrap: wrap; gap: var(--space-12); }
.orso-footer__col { flex: 1 1 140px; display: flex; flex-direction: column; gap: var(--space-3); }
.orso-footer__heading { color: var(--accent); }
.orso-footer__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--space-1); }
.orso-footer__link { display: inline-flex; align-items: center; min-height: 32px; color: var(--on-brand); text-decoration: none; font-size: 15px; }
.orso-footer__link:hover { text-decoration: underline; text-underline-offset: 3px; }
.orso-footer__link:focus-visible, .orso-footer__email:focus-visible { outline-color: var(--accent); }
.orso-footer__legal { box-sizing: border-box; max-width: 1280px; margin: 0 auto; padding: var(--space-6) var(--space-8) var(--space-8); font-size: 13px; line-height: 20px; color: var(--blue-light); border-top: 1px solid rgba(255, 255, 255, .2); }
@media (max-width: 640px) {
  .orso-footer__inner { padding: var(--space-12) var(--space-6) var(--space-8); gap: var(--space-8); }
  .orso-footer__legal { padding: var(--space-6); }
}


/* ---------- Page layout ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:var(--link)}
.skip-link{position:absolute;left:16px;top:-100px;z-index:100;padding:12px 16px;background:var(--california-gold);color:var(--berkeley-blue);font-weight:700;text-decoration:none}
.skip-link:focus{top:16px}
.section{padding:clamp(64px,8vw,112px) clamp(24px,5vw,80px)}
.section--tight-top{padding-top:0}
.section--alt{background:var(--surface-alt)}
.section--gold{background:var(--california-gold);color:var(--blue-dark);--heading:var(--berkeley-blue);--ink:var(--blue-dark);--ink-muted:var(--berkeley-blue);--link:var(--berkeley-blue);--link-hover:var(--blue-dark);--on-ink:var(--california-gold);--focus-ring:var(--berkeley-blue)}
.hero-band{padding:clamp(64px,9vw,128px) clamp(24px,5vw,80px) clamp(72px,10vw,144px)}
.container{max-width:1200px;margin:0 auto}
.stack{display:flex;flex-direction:column;gap:40px}
.stack--md{gap:24px}
.stack--lg{gap:48px}
.row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.row--spread{justify-content:space-between;align-items:center;gap:32px}
.row--end{justify-content:space-between;align-items:flex-end;gap:24px}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.grid-posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px}
.grid-posts--all{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));row-gap:56px;border-top:1px solid var(--border);padding-top:48px}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(32px,6vw,96px);align-items:center}
.split--top{align-items:start}
.split--end{align-items:end;gap:40px}
.lead{margin:0;font-size:18px;line-height:28px;max-width:560px}
.measure{max-width:860px}
.portrait{width:100%;aspect-ratio:4/5;max-height:640px;object-fit:cover;object-position:50% 20%;background:var(--surface-alt)}

/* Hero video */
.hero-video{position:relative;background:var(--berkeley-blue)}
.hero-video video{width:100%;aspect-ratio:16/9;object-fit:cover}
.hero-video__toggle{position:absolute;right:clamp(16px,3vw,40px);bottom:clamp(16px,3vw,40px);width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;border:2px solid #fff;border-radius:0;background:rgba(1,1,51,.55);color:#fff;cursor:pointer}
.hero-video__toggle:focus-visible{outline:2px solid var(--california-gold);outline-offset:2px}
.hero-video__toggle .icon-play{display:none}
.hero-video.is-paused .icon-play{display:block}
.hero-video.is-paused .icon-pause{display:none}

/* Header lockup on home */
.orso-nav--lockup .orso-nav__logo{height:50px}
.orso-nav--lockup .orso-nav__bar{padding-top:28px;padding-bottom:28px}
@media (max-width:860px){.orso-nav--lockup .orso-nav__bar{padding-top:20px;padding-bottom:20px}}

/* Client logos */
.clients{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.clients li{height:128px;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;padding:20px}
.section--alt .clients li{background:var(--surface)}
.clients img{width:auto;height:auto;max-width:170px;max-height:64px}
.clients img.is-tall{max-width:160px;max-height:76px}
.clients img.is-wide{max-width:180px;max-height:48px}

/* About */
.about-intro{max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:40px;text-align:center}
.about-intro img{width:100%;max-width:510px;height:auto}
.about-intro p{margin:0;font-size:17px;line-height:29px}
.about-intro .orso-link--inline{text-decoration-thickness:1px}

/* Services */
.service-work{display:flex;flex-direction:column;gap:16px;padding-top:4px}
.service-work ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--border)}
.service-work li{padding:16px 0;border-bottom:1px solid var(--border)}

/* Collaborative */
.disciplines{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.disciplines li{min-height:112px;background:var(--surface-alt);padding:24px;display:flex;align-items:flex-end;font-family:var(--font-condensed);font-weight:600;font-size:24px;line-height:28px;letter-spacing:.04em;text-transform:uppercase;color:var(--heading)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px}
.steps li{display:flex;flex-direction:column;gap:12px}
.steps__num{font-family:var(--font-condensed);font-weight:700;font-size:64px;line-height:64px;color:var(--berkeley-blue)}
.steps p{margin:0;font-size:18px;line-height:28px}

/* Contact */
.contact-panel{background:var(--surface-alt);padding:clamp(24px,4vw,48px)}
.contact-form{display:flex;flex-direction:column;gap:24px}
.hidden{display:none}

/* Article */
.article{max-width:720px;margin:0 auto}
.article__meta{margin:0;font-family:var(--font-condensed);font-weight:600;font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.article__title{margin:12px 0 16px;font-family:var(--font-serif);font-weight:600;font-size:clamp(36px,5vw,52px);line-height:1.1;color:var(--heading)}
.article__dek{margin:0 0 8px;font-family:var(--font-serif);font-style:italic;font-size:22px;line-height:32px;color:var(--ink)}
.article__byline{margin:0;font-size:15px;color:var(--ink-muted)}
.article__body{margin-top:40px;padding-top:40px;border-top:1px solid var(--border);font-family:var(--font-serif);font-size:19px;line-height:32px}
.article__body p{margin:0 0 24px}
.article__body h2{font-family:var(--font-sans);font-size:24px;line-height:32px;color:var(--heading);margin:40px 0 16px}
.article__body blockquote{margin:32px 0;padding:0 0 0 24px;border-left:3px solid var(--california-gold);font-style:italic}

/* CV */
.cv-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.cv-list li{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:8px 32px;padding:24px 0;border-bottom:1px solid var(--border)}
.cv-list .cv-years{font-family:var(--font-condensed);font-weight:600;font-size:18px;letter-spacing:.04em;color:var(--ink-muted)}
.cv-list h3{margin:0;font-size:18px;line-height:26px;color:var(--heading)}
.cv-list .cv-org{margin:2px 0 0;font-weight:600}
.cv-list .cv-desc{margin:8px 0 0;color:var(--ink)}
@media (max-width:640px){.cv-list li{grid-template-columns:1fr}}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px}
.facts ul{margin:12px 0 0;padding-left:20px}
.facts li{margin:0 0 8px}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- v2 additions ---------- */
.grid-cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-cards--3,.grid-posts--3,.steps--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.grid-cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.grid-cards--3,.grid-posts--3,.steps--3{grid-template-columns:1fr}}
@media (max-width:640px){.grid-cards--4{grid-template-columns:1fr}}
.clients--5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1000px){.clients--5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.clients--5{grid-template-columns:repeat(2,minmax(0,1fr))}.clients li{height:104px;padding:16px}}
.clients img.is-xwide{max-width:190px;max-height:40px;width:100%}
.service-includes{display:flex;flex-direction:column;gap:8px}
.service-includes p:last-child{margin:0;font-size:16px;line-height:26px;color:var(--ink-muted)}
.service-feature{border-left:4px solid var(--california-gold);background:var(--surface);padding:20px 24px;display:flex;flex-direction:column;gap:8px}
.section--alt .service-feature{background:var(--surface)}
.service-feature p:last-child{margin:0}
.case__header{max-width:900px}
.case__grid{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.case__col{display:flex;flex-direction:column;gap:12px;border-top:2px solid var(--california-gold);padding-top:16px}
.case__col p{margin:0;font-size:16px;line-height:26px}
.case__col--result p:last-child{font-size:18px;line-height:28px;font-weight:600;color:var(--heading)}
@media (max-width:860px){.case__grid{grid-template-columns:1fr}}
.collab-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.collab-tags li{background:rgba(255,255,255,.55);padding:10px 16px;font-family:var(--font-condensed);font-weight:600;font-size:18px;line-height:22px;letter-spacing:.04em;text-transform:uppercase;color:var(--berkeley-blue)}
.section--alt .orso-card{background:var(--surface)}
.contact-email{font-size:20px;line-height:28px;font-weight:600}
.cv-acc{margin:12px 0 0;padding-left:20px}
.cv-acc li{margin:0 0 8px;line-height:1.55}
.cv-list .cv-years{margin:0}
.article__byline + .article__byline{margin-top:4px}

/* ---------- case thumbnails on cards ---------- */
.orso-card__media{margin:calc(-1 * var(--space-8)) calc(-1 * var(--space-8)) var(--space-2);overflow:hidden;background:var(--surface)}
.orso-card__media img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transition:transform .4s ease}
.orso-card--media:hover .orso-card__media img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.orso-card__media img{transition:none}.orso-card--media:hover .orso-card__media img{transform:none}}
/* ---------- case study photos ---------- */
.case-lead{max-width:1120px;margin:0 auto;padding:0 var(--gutter,24px);position:relative;margin-top:calc(-1 * clamp(32px,4vw,56px))}
.case-has-lead{padding-top:clamp(40px,5vw,64px)}
.case-figure{margin:0}
.case-figure img{display:block;width:100%;height:auto;background:var(--surface-alt,#eef0f5)}
.case-figure figcaption{margin-top:10px;font-size:14px;line-height:20px;color:var(--ink-muted)}
.case-lead .case-figure img{box-shadow:0 1px 0 rgba(0,0,0,.04)}
.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.case-gallery .case-figure--wide{grid-column:1/-1}
.case-gallery .case-figure--wide img{aspect-ratio:auto;object-fit:fill}
.case-gallery .case-figure--narrow{grid-column:1/-1;max-width:640px}
@media (max-width:760px){.case-gallery{grid-template-columns:1fr}.case-lead{margin-top:0;padding:0}.case-lead figcaption{padding:0 var(--gutter,20px)}}
/* ---------- case study pages ---------- */
.work-index .orso-card__body{color:var(--ink-muted)}
.case-crumb a{color:inherit;text-decoration:none}
.case-crumb a:hover{text-decoration:underline;text-underline-offset:3px}
.case-crumb span{margin:0 6px;opacity:.6}
.case-title{max-width:22ch;text-wrap:balance}
.case-article{max-width:960px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(40px,5vw,64px)}
.case-part{display:grid;grid-template-columns:180px minmax(0,1fr);gap:40px;align-items:start}
.case-part__label{margin:0;padding-top:6px;border-top:2px solid var(--california-gold);padding-top:12px}
.case-part__body{max-width:680px;font-family:var(--font-serif);font-size:19px;line-height:32px;color:var(--ink)}
.case-part__body p{margin:0 0 20px}
.case-part__body p:last-child{margin-bottom:0}
.case-part--impact .case-part__body{font-size:24px;line-height:36px;color:var(--heading)}
@media (max-width:760px){.case-part{grid-template-columns:1fr;gap:12px}.case-part__label{padding-top:10px}.case-part__body{font-size:18px;line-height:30px}.case-part--impact .case-part__body{font-size:21px;line-height:32px}}

.orso-section-header__title{text-wrap:balance}
/* ---------- about: circular headshot with wrapped bio ---------- */
.about-bio__text{max-width:760px;margin:0 auto}
.about-bio__text::after{content:"";display:block;clear:both}
.about-headshot{display:block;width:200px;height:200px;border-radius:50%;object-fit:cover;margin:0 auto 32px;padding:5px;background:var(--surface);border:4px solid var(--california-gold)}
.about-bio__text p{margin:0;font-size:17px;line-height:29px}
.about-bio__text p + p{margin-top:16px}
.about-photo{margin:48px 0 0}
.about-photo img{display:block;width:100%;height:auto}
.about-photo figcaption{margin-top:10px;font-size:14px;line-height:20px;color:var(--ink-muted)}
@media (max-width:560px){.about-headshot{width:150px;height:150px;margin-bottom:24px;padding:4px;border-width:3px}}
/* ---------- services page ---------- */
.svc-jump ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 32px}
.svc-jump a{display:inline-flex;align-items:center;min-height:44px;color:var(--white);text-decoration:none;font-family:var(--font-condensed);font-weight:600;font-size:18px;letter-spacing:.06em;text-transform:uppercase;box-shadow:inset 0 -2px 0 var(--california-gold)}
.svc-jump a:hover{color:var(--california-gold)}
.svc-jump a:focus-visible{outline:2px solid var(--california-gold);outline-offset:2px}
.svc-list{max-width:1040px;margin:0 auto;display:flex;flex-direction:column}
.svc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;padding:clamp(48px,6vw,80px) 0;border-top:1px solid var(--border);scroll-margin-top:24px}
.svc:first-child{border-top:0;padding-top:0}
.svc__name{margin:0;padding-top:14px;border-top:3px solid var(--california-gold);font-family:var(--font-serif);font-weight:600;font-size:30px;line-height:36px;color:var(--heading);text-wrap:balance}
.svc__body{max-width:680px;display:flex;flex-direction:column;gap:28px}
.svc__lead{margin:0;font-family:var(--font-serif);font-size:21px;line-height:34px;color:var(--ink)}
.svc__tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.svc__tags .orso-tag{font-size:14px;min-height:30px;padding:0 10px;color:var(--ink-muted)}
.svc-feature{border-left:4px solid var(--california-gold);background:var(--surface-alt);padding:20px 24px;display:flex;flex-direction:column;gap:8px}
.svc-feature p:last-child{margin:0;font-size:17px;line-height:28px}
.svc__work{display:flex;flex-direction:column;gap:12px}
.svc__work ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--border)}
.svc__work li{padding:14px 0 14px 22px;border-bottom:1px solid var(--border);font-size:16px;line-height:25px;position:relative}
.svc__work li::before{content:"";position:absolute;left:0;top:24px;width:8px;height:2px;background:var(--california-gold)}
@media (max-width:860px){.svc{grid-template-columns:1fr;gap:20px}.svc__name{font-size:26px;line-height:32px}.svc__lead{font-size:19px;line-height:31px}}

/* ---------- contact: email first ---------- */
.contact-wrap{max-width:760px;display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.contact-address{font-family:var(--font-serif);font-size:clamp(30px,5vw,48px);line-height:1.15;font-weight:600;color:var(--heading);text-decoration:none;border-bottom:3px solid var(--california-gold);padding-bottom:6px;overflow-wrap:anywhere}
.contact-address:hover,.contact-address:focus-visible{color:var(--berkeley-blue,var(--heading));border-bottom-color:currentColor}
.contact-prompt{margin:0;font-size:19px;line-height:30px;color:var(--ink-muted);max-width:56ch}
.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.contact-meta{margin:12px 0 0;padding-top:24px;border-top:1px solid var(--border);width:100%}
.contact-meta div{display:flex;flex-direction:column;gap:6px}
.contact-meta dt{margin:0}
.contact-meta dd{margin:0;font-size:19px;line-height:28px;color:var(--ink)}
