@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap');

body.da-shell-active * { font-weight: 200 !important; }

body.da-shell-active {
  min-width: 0;
  overflow-x: hidden;
}

/* final consistency guard for legacy selectors */
body.da-shell-active * { font-weight: 200 !important; }

/* Developer surface and institutional intake. */
.contact-form select { box-sizing:border-box; width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--da-line); border-radius:12px; background:#f6f0e7; color:#1d1916; font:400 1rem/1.4 'IBM Plex Mono',ui-monospace,monospace; }
.contact-status.error { color:#ec9f91; }
.choice-grid--stacked { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.api-list { display:grid; margin-top:32px; border-top:1px solid var(--da-line); }
.api-list article { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(0,1fr); gap:32px; align-items:center; padding:24px 0; border-bottom:1px solid var(--da-line); }
.api-list h3 { margin:10px 0 0; font:500 1.05rem/1.25 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:-.03em; }
.api-list p { margin:0; color:var(--da-muted); font-size:.9rem; line-height:1.55; }
.api-status { display:inline-flex; padding:6px 9px; border-radius:999px; font:.62rem/1 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.08em; text-transform:uppercase; }
.api-status--beta { background:#535e4c; color:#f6f0e7; }
.api-status--soon { border:1px solid var(--da-line); color:var(--da-muted); }
.outline-action--quiet { border-color:transparent; text-decoration:underline; text-underline-offset:6px; }

@media (max-width:760px) {
  .contact-form select { font-size:16px; }
  .api-list article { grid-template-columns:1fr; gap:14px; }
  .choice-grid--stacked { grid-template-columns:1fr; }
}

/* Public directory profiles and stewardship requests. */
.directory-card h2 a { color:var(--da-paper); text-decoration:none; }
.directory-card h2 a:hover,.directory-card h2 a:focus-visible { color:#e4c06a; }
.directory-card-action { display:inline-flex; margin-top:20px; color:var(--da-paper); font-size:.76rem; text-underline-offset:5px; }
.profile-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:30px; background:var(--da-line); }
.profile-facts div { display:grid; gap:10px; min-width:0; padding:24px; background:#332d27; }
.profile-facts span { color:#e4c06a; font:.65rem/1.3 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.08em; text-transform:uppercase; }
.profile-facts strong { color:var(--da-paper); font:.9rem/1.5 'IBM Plex Mono',ui-monospace,monospace; overflow-wrap:anywhere; }
.profile-source { margin-top:48px; padding-top:38px; border-top:1px solid var(--da-line); }
.profile-source h2 { margin:0; font:500 clamp(1.35rem,2.5vw,2rem)/1.15 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:-.04em; }
.profile-source>p:not(.eyebrow) { max-width:65ch; color:var(--da-muted); line-height:1.65; }
.directory-confirm { display:flex!important; align-items:flex-start; gap:10px; color:var(--da-muted)!important; font-size:.82rem!important; letter-spacing:0!important; line-height:1.5!important; text-transform:none!important; }
.directory-confirm input { width:20px!important; min-height:20px!important; flex:0 0 auto; accent-color:#e4c06a; }
@media(max-width:760px){.profile-facts{grid-template-columns:1fr}}
body.da-shell-active :is(h1,h2,h3,p,dl,dd) { max-width: 100%; }

.internal-page {
  margin: 0;
  background: linear-gradient(rgba(20,17,14,.78),rgba(20,17,14,.9)), url('assets/city-bg.jpg') center/cover fixed;
  color: #f6f0e7;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
}
.internal-main { width: min(1120px, calc(100% - 48px)); margin: 40px auto 0; }
.page-intro, .content-section, .page-closing {
  padding: clamp(38px, 6vw, 76px);
  border-radius: 26px;
  background: rgba(40,35,31,.94);
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
}
.page-intro { background: rgba(44,39,34,.95); }
.content-section, .page-closing { margin-top: 28px; }
.eyebrow { margin: 0 0 18px; color: #e4c06a; font: 500 .78rem/1.2 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .18em; text-transform: uppercase; }
.page-intro h1, .page-closing h2 { max-width: 790px; margin: 0; font: 500 clamp(2.4rem, 6vw, 5.5rem)/.97 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: -.07em; }
.page-intro > p:not(.eyebrow) { max-width: 610px; margin: 22px 0 0; color: #d6ccbe; font-size: clamp(.92rem, 1.2vw, 1.04rem); line-height: 1.5; }
.outline-action { display: inline-flex; min-height:48px; align-items:center; justify-content:center; margin-top: 30px; padding: 13px 18px; border: 1px solid rgba(246,240,231,.65); border-radius: 999px; color: #f6f0e7; text-decoration: none; font: 200 .82rem/1 'IBM Plex Mono', ui-monospace, monospace; cursor:pointer; }
.outline-action:hover,.outline-action:focus-visible { background:#f6f0e7; color:#1d1916; }
.compact-grid { display:grid; gap:18px; margin-top:28px; }
.compact-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.compact-grid article { min-width:0; padding:25px; border-radius:18px; background:#332d27; }
.compact-grid h2,.split-section h2 { margin:0 0 12px; font:600 clamp(1.25rem,2.2vw,1.65rem)/1.15 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:-.045em; }
.compact-grid p,.split-section p:not(.eyebrow) { margin:0; color:#d6ccbe; font-size:.98rem; line-height:1.55; }
.split-section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(32px,7vw,100px); }
.content-section > h2 { margin:0 0 12px; font:600 clamp(1.65rem,3vw,2.45rem)/1.06 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:-.055em; }
.section-copy { max-width:65ch; color:var(--da-muted); line-height:1.6; }
.service-grid,.relationship-grid,.people-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:28px; }
.service-grid article,.relationship-grid article,.people-grid article { min-width:0; padding:24px; border-radius:18px; background:#332d27; }
.service-grid h3,.relationship-grid h3,.people-grid h3 { margin:0 0 9px; color:var(--da-paper); font:600 1.15rem/1.2 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:-.035em; }
.service-grid p,.relationship-grid p,.people-grid p { margin:0; color:var(--da-muted); font-size:.95rem; line-height:1.5; }
.service-grid dl { display:grid; grid-template-columns:1fr auto; gap:8px 16px; margin:22px 0; padding-top:18px; border-top:1px solid var(--da-line); font:.75rem/1.35 'IBM Plex Mono',ui-monospace,monospace; }
.service-grid dt { color:#e4c06a; }.service-grid dd { margin:0; color:var(--da-paper); text-align:right; }
.service-grid a,.relationship-grid a { display:inline-block; margin-top:20px; color:var(--da-paper); font:.78rem/1.2 'IBM Plex Mono',ui-monospace,monospace; text-decoration-color:#e4c06a; text-underline-offset:5px; }
.people-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.people-grid span { display:block; margin-top:14px; color:#e4c06a; font:.67rem/1.35 'IBM Plex Mono',ui-monospace,monospace; }
.action-row { display:flex; gap:12px; flex-wrap:wrap; }
.contact-form { margin-top:26px; }.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.form-grid > label,.contact-form fieldset { display:grid; gap:8px; min-width:0; color:var(--da-paper); font:500 .75rem/1.3 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.06em; text-transform:uppercase; }.form-grid .full { grid-column:1/-1; }.form-grid span { color:var(--da-muted); }.contact-form input,.contact-form textarea { box-sizing:border-box; width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--da-line); border-radius:12px; background:#f6f0e7; color:#1d1916; font:400 1rem/1.4 'IBM Plex Mono',ui-monospace,monospace; }.contact-form textarea { min-height:130px; resize:vertical; }.contact-form fieldset { grid-column:1/-1; margin:0; padding:0; border:0; }.contact-form legend { margin-bottom:10px; }.choice-grid { display:flex; flex-wrap:wrap; gap:10px; }.choice-grid label { display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 12px; border:1px solid var(--da-line); border-radius:999px; color:var(--da-muted); font:400 .77rem/1.2 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:0; text-transform:none; }.choice-grid input { width:16px; min-height:16px; accent-color:#e4c06a; }.contact-form button { margin-top:22px; background:transparent; }.contact-status { margin-top:14px; color:#e4c06a; font:.8rem/1.4 'IBM Plex Mono',ui-monospace,monospace; }

.tool-category-nav { display:flex; width:min(920px,calc(100% - 48px)); margin:28px auto 0; gap:10px; flex-wrap:wrap; }
.tool-category-nav a { padding:10px 14px; border-radius:999px; background:rgba(246,240,231,.1); color:inherit; text-decoration:none; font:500 .78rem/1 'IBM Plex Mono',ui-monospace,monospace; }
.tool-category-nav a:hover,.tool-category-nav a:focus-visible { background:rgba(246,240,231,.22); }

/* Shared corrective layer for legacy internal pages. */
body.da-shell-active .site-nav,
body.da-shell-active .site-header,
body.da-shell-active .apply-nav,
body.da-shell-active .directory-nav,
body.da-shell-active .home-nav { display:none !important; }

body.da-shell-active .apply-wrap {
  width: min(820px, calc(100% - 40px)) !important;
  margin: 40px auto 0 !important;
  padding: 0 !important;
}
body.da-shell-active .apply-card {
  width: auto !important;
  margin: 0 !important;
  padding: clamp(28px, 5vw, 54px) !important;
  border: 0 !important;
  border-radius: 24px !important;
  background: #fff !important;
  box-shadow: 0 16px 38px rgba(0,0,0,.16) !important;
  color: #24201c !important;
  font-family: 'IBM Plex Mono', ui-monospace, monospace !important;
}
body.da-shell-active .apply-card :is(h1,h2,h3,label,legend,button,input,select,textarea) { font-family: 'IBM Plex Mono', ui-monospace, monospace !important; letter-spacing: normal !important; }
body.da-shell-active .apply-card .eyebrow { font-family: 'IBM Plex Mono',ui-monospace,monospace !important; }
body.da-shell-active .apply-card h1 { font-size: clamp(2rem,5vw,3.5rem) !important; line-height:1 !important; }
body.da-shell-active .apply-card input,
body.da-shell-active .apply-card select,
body.da-shell-active .apply-card textarea { min-width: 0 !important; font-size: 1rem !important; }
body.da-shell-active .apply-card .need-group { grid-column: 1 / -1; margin: 18px 0 1px; color: #535e4c; font: 600 .72rem/1 'IBM Plex Mono',ui-monospace,monospace; letter-spacing: .12em; text-transform: uppercase; }

.directory-search { display:grid; grid-template-columns:minmax(0,2fr) minmax(180px,1fr); gap:14px; }.directory-search label { display:grid; gap:8px; color:var(--da-paper); font:500 .75rem/1.3 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.06em; text-transform:uppercase; }.directory-search input,.directory-search select { box-sizing:border-box; width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--da-line); border-radius:12px; background:#f6f0e7; color:#1d1916; font:400 1rem/1.4 'IBM Plex Mono',ui-monospace,monospace; }.directory-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:22px; }.directory-card { min-width:0; padding:20px; border-radius:16px; background:#332d27; }.directory-card h2 { margin:0 0 16px; font:600 1.05rem/1.25 'IBM Plex Mono',ui-monospace,monospace; }.directory-card p { margin:10px 0 0; color:var(--da-muted); font-size:.86rem; line-height:1.45; }.directory-card strong { color:#e4c06a; font:.67rem/1.2 'IBM Plex Mono',ui-monospace,monospace; text-transform:uppercase; letter-spacing:.07em; }.directory-card a { color:var(--da-paper); }
.apply-form { max-width:820px; }.form-section { margin-top:34px; padding-top:30px; border-top:1px solid var(--da-line); }.form-section:first-child { margin-top:0; padding-top:0; border-top:0; }.apply-form label,.apply-form fieldset { display:grid; gap:8px; min-width:0; color:var(--da-paper); font:500 .75rem/1.3 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.06em; text-transform:uppercase; }.apply-form input,.apply-form select,.apply-form textarea { box-sizing:border-box; width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--da-line); border-radius:12px; background:#f6f0e7; color:#1d1916; font:400 1rem/1.4 'IBM Plex Mono',ui-monospace,monospace; }.apply-form textarea { min-height:130px; resize:vertical; }.apply-form label span,.apply-form legend span { color:#e4c06a; }.apply-form fieldset { margin:0; padding:0; border:0; }.apply-form legend { margin-bottom:16px; }.need-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.need-groups > div { display:grid; gap:8px; padding:18px; border-radius:14px; background:#332d27; }.need-groups h3 { margin:0 0 3px; color:#e4c06a; font:500 .7rem/1.3 'IBM Plex Mono',ui-monospace,monospace; letter-spacing:.1em; text-transform:uppercase; }.need-groups label,.apply-form .consent { display:flex; align-items:center; gap:9px; min-height:34px; color:var(--da-muted); font-size:.85rem; letter-spacing:0; text-transform:none; }.need-groups input,.apply-form .consent input { width:18px; min-height:18px; padding:0; accent-color:#e4c06a; }.apply-form .outline-action { margin-top:32px; background:transparent; }.field-error,.form-error { min-height:1.2em; margin:5px 0 0; color:#ec9f91; font:.75rem/1.35 'IBM Plex Mono',ui-monospace,monospace; }.draft-banner { margin-bottom:22px; padding:12px 14px; border-radius:12px; background:#535e4c; color:#f6f0e7; font:.78rem/1.3 'IBM Plex Mono',ui-monospace,monospace; }.draft-banner button { margin-left:10px; border:0; background:transparent; color:inherit; text-decoration:underline; cursor:pointer; }
.apply-form .form-grid > label,.apply-form .form-section > label:not(.consent) { display:block; }.apply-form .form-grid > label :is(input,select,textarea),.apply-form .form-section > label:not(.consent) textarea { display:block; margin-top:8px; }

@media (max-width: 760px) {
  .internal-main { width: calc(100% - 28px); margin-top: 24px; }
  .page-intro,.content-section,.page-closing { padding: 30px 24px; border-radius: 20px; }
  .content-section,.page-closing { margin-top: 18px; }
  .compact-grid--two,.split-section,.service-grid,.relationship-grid,.people-grid { grid-template-columns:1fr; gap:14px; }
  .form-grid { grid-template-columns:1fr; }.form-grid .full { grid-column:auto; }.choice-grid { display:grid; grid-template-columns:1fr; }.choice-grid label { min-height:46px; }.contact-form input,.contact-form textarea { font-size:16px; }
  .tool-category-nav { width:calc(100% - 40px); margin-top:20px; }
  .directory-search,.directory-results { grid-template-columns:1fr; }.directory-search input,.directory-search select { font-size:16px; }
  .need-groups { grid-template-columns:1fr; }.apply-form input,.apply-form select,.apply-form textarea { font-size:16px; }.apply-form .outline-action { width:100%; justify-content:center; min-height:54px; }
  body.da-shell-active .apply-wrap { width: calc(100% - 28px) !important; margin-top: 24px !important; }
  body.da-shell-active .apply-card { padding: 26px 20px !important; border-radius: 19px !important; }
  body.da-shell-active .apply-card .two-col,
  body.da-shell-active .apply-card .check-grid { grid-template-columns: 1fr !important; }

  /* Legacy internal-page headings: override their former display-scale mobile rules. */
  body.da-shell-active .intro,
  body.da-shell-active .directory-hero,
  body.da-shell-active .ab-intro,
  body.da-shell-active .contact-intro { min-width: 0 !important; }
  body.da-shell-active .intro h1,
  body.da-shell-active .directory-hero h1,
  body.da-shell-active .ab-intro h1,
  body.da-shell-active .contact-intro h1 {
    max-width: 100% !important;
    font-size: clamp(2.45rem, 11.5vw, 3.45rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.055em !important;
    overflow-wrap: anywhere;
  }
  body.da-shell-active .intro p,
  body.da-shell-active .directory-hero p,
  body.da-shell-active .ab-intro p,
  body.da-shell-active .contact-intro p {
    max-width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }
  body.da-shell-active .intro,
  body.da-shell-active .directory-hero,
  body.da-shell-active .ab-intro,
  body.da-shell-active .contact-intro { padding: 30px 26px !important; }
  body.da-shell-active .directory-hero .profile-cta { white-space: normal !important; }
  body.da-shell-active .contact-form,
  body.da-shell-active #contactForm { min-width: 0 !important; }
}

/* final consistency guard for legacy selectors */
body.da-shell-active * { font-weight: 200 !important; }
