/* Inter latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("../fonts/Inter-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("../fonts/Inter-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Space Grotesk latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/SpaceGrotesk-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Space Grotesk latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/SpaceGrotesk-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* =====================================================================
   Pearson Ghost theme — screen.css
   Design tokens: kasuba design system, reused for the pearson theme
   Mobile-first; breakpoints 640 / 768 / 1024 / 1280.
   ===================================================================== */
:root {
    --ink: #0f0f0f;
    --snow: #ffffff;
    --signal: #29d398;
    --accent: #2563eb;
    --accent-dark: #1d4ed8;
    --navy: #111827;          /* gray-900: header + dark CTA */
    --navy-2: #1f2937;        /* gray-800 */
    --slate-900: #0f172a;     /* primary buttons */
    --slate-800: #1e293b;
    --slate-600: #475569;
    --slate-500: #64748b;
    --slate-200: #e2e8f0;
    --slate-100: #f1f5f9;
    --slate-50: #f8fafc;
    --gray-700: #374151;
    --gray-600: #4b5563;
    --gray-500: #6b7280;
    --gray-400: #9ca3af;
    --gray-300: #d1d5db;
    --gray-200: #e5e7eb;
    --gray-100: #f3f4f6;
    --gray-50: #f9fafb;
    --blue-800: #1e40af;
    --red: #ef4444;
    --linkedin: #0a66c2;

    --font-heading: var(--gh-font-heading, "Space Grotesk", ui-sans-serif, system-ui, sans-serif);
    --font-body: var(--gh-font-body, "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif);
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

    --container: 72rem;       /* max-w-6xl */
    --container-wide: 80rem;  /* max-w-7xl */
    --narrow: 48rem;
    --gutter: 1rem;
    --header-h: 4.5rem;
    --radius: 0;              /* the original design is square-edged */
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
    --ease: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 1rem); }
body { margin: 0; font-family: var(--font-body); font-size: 1rem; line-height: 1.6; color: var(--ink); background: var(--snow); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--font-heading); line-height: 1.2; margin: 0; color: var(--ink); }
p { margin: 0; }
button, input { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.icon { width: 1.5rem; height: 1.5rem; flex-shrink: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--snow); padding: .5rem 1rem; }
.skip-link:focus { top: 1rem; }
.site { display: flex; flex-direction: column; min-height: 100vh; }
.site-main { flex: 1 0 auto; }
.center { text-align: center; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: var(--narrow); }
@media (min-width: 640px) { :root { --gutter: 1.5rem; } }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--navy); border-bottom: 1px solid var(--navy-2); color: var(--gray-300); }
.site-header__inner { max-width: var(--container-wide); margin-inline: auto; padding: .75rem var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: var(--header-h); }
.site-logo { width: 3rem; height: 3rem; padding: .5rem; display: flex; align-items: center; justify-content: center; transition: background-color .2s; }
.site-logo:hover { background: rgb(31 41 55 / .5); }
.site-logo img { width: 100%; height: 100%; object-fit: contain; }
.site-nav { display: none; }
.nav { list-style: none; margin: 0; padding: 0; display: flex; gap: 2rem; }
.nav a { color: var(--gray-300); transition: color .2s; }
.nav a:hover, .nav-current a { color: var(--snow); }
.site-header__actions { display: flex; align-items: center; gap: 1rem; }
.social-links { display: flex; align-items: center; gap: 1rem; }
.social-links a { color: var(--gray-300); transition: color .2s; }
.social-links--header { display: none; }
.social-links--header a:hover { color: var(--snow); }
.icon-btn { background: none; border: 0; padding: .25rem; color: var(--gray-300); display: inline-flex; transition: color .2s; }
.icon-btn:hover { color: var(--snow); }
.icon-btn .icon { width: 1.375rem; height: 1.375rem; }
.header-cta { display: none; font-size: .875rem; font-weight: 500; color: var(--snow); border: 1px solid var(--gray-700); padding: .375rem .875rem; transition: border-color .2s, background-color .2s; }
.header-cta:hover { border-color: var(--gray-400); background: var(--navy-2); }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline-flex; }
.mobile-menu { border-top: 1px solid var(--navy-2); padding: 1rem var(--gutter); }
.mobile-menu .nav { flex-direction: column; gap: .75rem; }
.mobile-menu__cta { display: inline-block; margin-top: 1rem; color: var(--snow); font-weight: 500; }
@media (min-width: 640px) { .header-cta { display: inline-block; } }
@media (min-width: 768px) {
    .site-nav { display: block; }
    .social-links--header { display: flex; }
    .nav-toggle, .mobile-menu { display: none !important; }
}

/* ---------- Buttons / chips / links ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .75rem 1.5rem; font-size: 1rem; font-weight: 500; line-height: 1.5; border: 2px solid transparent; border-radius: var(--radius); transition: all .3s; text-align: center; }
.btn .icon { width: 1.125rem; height: 1.125rem; }
.btn--sm { padding: .625rem 1.25rem; font-size: .875rem; }
.btn--block { width: 100%; }
.btn--primary { background: var(--slate-900); border-color: var(--slate-900); color: var(--snow); }
.btn--primary:hover { background: var(--accent); border-color: var(--accent); }
.btn--outline { background: var(--snow); border-color: var(--slate-900); color: var(--slate-900); }
.btn--outline:hover { background: var(--slate-50); color: var(--accent); }
.btn--accent { background: var(--accent); border-color: var(--accent); color: var(--snow); }
.btn--accent:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.btn--dark-outline { color: var(--snow); border-color: #4b5563; padding: 1rem 2rem; }
.btn--dark-outline:hover { border-color: var(--gray-500); background: var(--navy-2); }
.btn--dark-ghost { color: var(--gray-300); border-color: var(--gray-700); padding: 1rem 2rem; }
.btn--dark-ghost:hover { color: var(--snow); border-color: var(--gray-600); }
.btn--linkedin { background: var(--linkedin); color: var(--snow); font-weight: 600; }
.btn--linkedin:hover { background: #004182; }
.btn--red-outline { color: #f87171; border-color: var(--red); background: transparent; }
.btn--red-outline:hover { background: rgb(239 68 68 / .1); }
.btn-row { display: flex; flex-direction: column; gap: 1rem; }
.btn-row--center { justify-content: center; align-items: center; }
.btn-row--card { gap: .75rem; margin-top: auto; }
@media (min-width: 640px) { .btn-row { flex-direction: row; flex-wrap: wrap; } }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; }
.chip { display: inline-block; padding: .25rem .75rem; background: var(--gray-100); color: var(--gray-700); font-size: .875rem; font-weight: 500; }
.chip--overlay { position: absolute; top: .75rem; left: .75rem; background: rgb(255 255 255 / .92); color: var(--ink); font-size: .75rem; padding: .25rem .5rem; }
.chip--accent { background: var(--accent); color: var(--snow); font-size: .75rem; }
.chip--featured { position: absolute; top: 1rem; right: 1rem; background: rgb(17 24 39 / .7); color: var(--snow); font-size: .75rem; }
.chip--signal { background: rgb(41 211 152 / .15); color: #047857; font-size: .75rem; font-weight: 600; }
.chip--lock { font-size: .7rem; text-transform: capitalize; }
.text-link-lg { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-heading); font-size: 1.125rem; font-weight: 500; color: var(--ink); }
.text-link-lg .icon { width: 1.25rem; height: 1.25rem; transition: transform .2s; }
.text-link-lg:hover { color: var(--gray-700); }
.text-link-lg:hover .icon { transform: translateX(4px); }
.eyebrow { font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-500); }
.eyebrow--light { color: var(--gray-400); }
.status { display: flex; align-items: center; gap: .5rem; margin-top: 1.5rem; font-size: .875rem; color: var(--gray-300); }
.status--center { justify-content: center; color: var(--gray-500); margin: 0 0 1.5rem; }
.status__dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--signal); animation: pulse 2s cubic-bezier(.4,0,.6,1) infinite; flex-shrink: 0; }
@keyframes pulse { 50% { opacity: .5; } }

/* ---------- Sections ---------- */
.section { padding-block: 4rem; background: var(--snow); }
.section--muted { background: var(--gray-50); }
.section--tight { padding-top: 1rem; }
.section-head { text-align: center; margin-bottom: 3rem; }
.section-title { font-size: 2.25rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.15; margin-bottom: 1rem; }
.section-title--sm { font-size: 1.875rem; }
.section-title--light { color: var(--snow); }
.section-lede { font-size: 1.125rem; color: var(--gray-600); max-width: 48rem; margin-inline: auto; line-height: 1.65; }
.section-lede--lg { font-size: 1.25rem; }
.section-lede--light { color: var(--gray-300); max-width: 42rem; margin-bottom: 3rem; }
@media (min-width: 768px) { .section-title { font-size: 3rem; } .section-title--sm { font-size: 2.25rem; } .section-head { margin-bottom: 4rem; } }
@media (min-width: 1024px) { .section { padding-block: 5rem; } }

/* ---------- Home: hero ---------- */
.hero { background: var(--snow); border-bottom: 1px solid var(--gray-200); overflow: hidden; padding-top: 2rem; }
.hero__grid { display: grid; gap: 2rem; align-items: center; }
.hero__copy { order: 2; padding-bottom: 3rem; max-width: 36rem; }
.hero__media { order: 1; position: relative; width: 100%; max-width: 24rem; margin-inline: auto; }
.hero__portrait { aspect-ratio: 4 / 5; overflow: hidden; display: flex; align-items: flex-end; }
.hero__portrait img { width: 100%; height: auto; object-fit: contain; object-position: bottom; }
.hero__title { font-size: 2.25rem; font-weight: 700; line-height: 1.25; margin-bottom: 1.5rem; }
.hero__subtitle { font-size: 1.25rem; font-weight: 600; line-height: 1.25; color: #111827; margin-bottom: 1.5rem; }
.hero__lede { font-size: 1rem; color: var(--gray-600); line-height: 1.65; margin-bottom: 2rem; }
.hero .btn-row { margin-bottom: 1.5rem; }
.inbox-link { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 500; color: var(--gray-500); transition: color .2s; }
.inbox-link .icon { width: 1rem; height: 1rem; }
.inbox-link .icon:last-child { width: .875rem; transition: transform .2s; }
.inbox-link:hover { color: var(--accent); }
.inbox-link:hover .icon:last-child { transform: translateX(2px); }
@media (min-width: 640px) {
    .hero__title { font-size: 3rem; }
    .hero__subtitle { font-size: 1.5rem; }
    .hero__lede { font-size: 1.125rem; }
}
@media (min-width: 1024px) {
    .hero { padding-top: 0; }
    .hero__grid { grid-template-columns: 1fr 1fr; gap: 3rem; }
    .hero__copy { order: 1; padding-bottom: 4rem; }
    .hero__media { order: 2; max-width: 28rem; }
    .hero__title { font-size: 3.75rem; }
}

/* ---------- Checklist (Selected Impact) ---------- */
.checklist { list-style: none; margin: 0 auto; padding: 0; max-width: 56rem; display: grid; gap: 1rem; }
.checklist li { display: flex; align-items: flex-start; gap: .75rem; font-size: 1rem; color: var(--gray-700); line-height: 1.65; }
.checklist .icon { color: var(--slate-900); margin-top: .2rem; }
@media (min-width: 640px) { .checklist li { font-size: 1.125rem; } }

/* ---------- Cards ---------- */
.card-grid { display: grid; gap: 2rem; }
.card-grid--narrow { max-width: 56rem; margin-inline: auto; margin-bottom: 3rem; }
@media (min-width: 768px) { .card-grid--2 { grid-template-columns: repeat(2, 1fr); } }
.card { position: relative; display: flex; flex-direction: column; background: var(--snow); border: 1px solid var(--gray-200); padding: 2rem; transition: transform .3s, box-shadow .3s; }
.card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.card__icon { width: 2.5rem; height: 2.5rem; color: var(--accent); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform .3s; }
.card--icon .card__icon { position: absolute; top: 1.5rem; right: 1.5rem; }
.card__icon:hover { transform: scale(1.1); }
.card__title { font-size: 1.5rem; font-weight: 700; margin-bottom: 1rem; padding-right: 4rem; }
.card__title--lg { padding-right: 0; }
.card__text { color: var(--gray-600); line-height: 1.65; margin-bottom: 1.5rem; flex-grow: 1; }


/* ---------- Post cards ---------- */
.post-grid { display: grid; gap: 2rem; margin-bottom: 3rem; }
@media (min-width: 768px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .post-grid { grid-template-columns: repeat(3, 1fr); } }
.post-card { position: relative; display: flex; flex-direction: column; background: var(--snow); border: 1px solid var(--gray-200); transition: transform .3s, box-shadow .3s; }
.post-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.post-card__link { position: absolute; inset: 0; z-index: 2; }
.post-card__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gray-100); }
.post-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.post-card:hover .post-card__image { transform: scale(1.03); }
.post-card__placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, #dbeafe, #f1f5f9 60%, #dcfce7); }
.post-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.5rem; }
.post-card__title { font-size: 1.125rem; font-weight: 700; margin-bottom: .75rem; transition: color .2s; }
.post-card:hover .post-card__title { color: var(--accent); }
.post-card__excerpt { font-size: .875rem; color: var(--gray-600); margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.post-card__meta { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; font-size: .8125rem; color: var(--gray-500); margin-top: auto; }
.post-card__meta time, .post-card__meta span { display: inline-flex; align-items: center; gap: .3rem; }
.post-card__meta .icon { width: .9rem; height: .9rem; }
.post-card__author { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--gray-100); }
.post-card__author img, .avatar-fallback { width: 2.5rem; height: 2.5rem; border-radius: 50%; object-fit: cover; }
.avatar-fallback { background: linear-gradient(135deg, var(--signal), var(--accent)); }
.post-card__author-name { font-size: .8125rem; font-weight: 600; }
.post-card__author-bio { font-size: .75rem; color: var(--gray-500); }
.list-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 2rem; }

/* ---------- Dark CTA + footer ---------- */
.cta-dark { background: var(--navy); padding-block: 5rem; }
.cta-dark .section-title { margin-bottom: 1.5rem; }
.cta-dark .section-lede { font-size: 1.25rem; }
@media (min-width: 1024px) { .cta-dark { padding-block: 6rem; } }
.site-footer { background: var(--ink); color: var(--snow); margin-top: auto; }
.site-footer__inner { max-width: var(--container); margin-inline: auto; padding: 3rem var(--gutter); }
.site-footer__grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .site-footer__grid { grid-template-columns: repeat(3, 1fr); } }
.site-footer__title { font-size: 1.25rem; font-weight: 700; color: var(--snow); margin-bottom: 1rem; }
.site-footer__heading { font-size: 1.125rem; font-weight: 600; color: var(--snow); margin-bottom: 1rem; }
.site-footer__desc { color: var(--gray-300); }
.site-footer .nav { flex-direction: column; gap: .5rem; }
.site-footer .nav a, .social-links--footer a { color: var(--gray-300); }
.site-footer .nav a:hover, .social-links--footer a:hover { color: var(--signal); }
.site-footer__bottom { border-top: 1px solid var(--gray-700); margin-top: 2rem; padding-top: 2rem; text-align: center; font-size: .875rem; color: var(--gray-400); }

/* ---------- Archive (blog / tag / author) ---------- */
.archive-hero { background: var(--navy); color: var(--gray-300); padding-block: 3rem; border-bottom: 1px solid var(--navy-2); }
.archive-hero__grid { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .archive-hero__grid { grid-template-columns: 1fr 1fr; gap: 3rem; } .archive-hero { padding-block: 4rem; } }
.archive-hero__title { font-size: 2rem; font-weight: 700; color: var(--snow); margin-bottom: 1rem; }
.archive-hero__text { font-size: 1.125rem; color: var(--gray-300); margin-bottom: 1.75rem; max-width: 36rem; }
.archive-hero--compact .archive-hero__text { margin-bottom: 1.5rem; }
.search-trigger { display: flex; align-items: center; gap: .75rem; width: 100%; max-width: 36rem; padding: .75rem 1rem; background: var(--navy-2); border: 1px solid var(--gray-700); color: var(--gray-400); font-size: .9375rem; text-align: left; margin-bottom: 1.5rem; transition: border-color .2s; }
.search-trigger:hover { border-color: var(--gray-500); }
.search-trigger .icon { width: 1.1rem; height: 1.1rem; }
.search-trigger span { flex: 1; }
.search-trigger kbd { font-family: var(--font-body); font-size: .7rem; padding: .1rem .4rem; border: 1px solid var(--gray-600); color: var(--gray-400); }
.topics { display: flex; flex-wrap: wrap; gap: .5rem; max-width: 36rem; }
.topic { display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .75rem; background: var(--navy-2); border: 1px solid var(--gray-700); color: var(--gray-300); font-size: .8125rem; transition: border-color .2s, color .2s; }
.topic span { color: var(--gray-500); font-size: .75rem; }
.topic:hover, .topic--active { border-color: var(--accent); color: var(--snow); }
.featured-card { display: block; }
.featured-card article { position: relative; aspect-ratio: 16 / 9; min-height: 16rem; overflow: hidden; border: 1px solid var(--gray-700); background: var(--navy-2); }
.featured-card__cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.featured-card:hover .featured-card__cover { transform: scale(1.03); }
.featured-card__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgb(17 24 39 / .95), rgb(17 24 39 / .45) 55%, rgb(17 24 39 / .1)); }
.featured-card__body { position: absolute; inset: auto 0 0 0; padding: 1.5rem; }
.featured-card__title { color: var(--snow); font-size: 1.5rem; font-weight: 700; margin: .75rem 0 1rem; }
@media (min-width: 640px) { .featured-card__title { font-size: 1.875rem; } }
.featured-card__meta { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; font-size: .8125rem; color: var(--gray-300); }
.featured-card__meta div { display: flex; flex-direction: column; }
.featured-card__name { font-weight: 600; color: var(--snow); }
.featured-card__stats { margin-left: auto; }
.avatar { width: 2.5rem; height: 2.5rem; border-radius: 50%; object-fit: cover; border: 2px solid rgb(255 255 255 / .2); }
.author-hero { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.author-hero__img { width: 7rem; height: 7rem; border-radius: 50%; object-fit: cover; }
.author-hero__meta { display: flex; gap: 1rem; flex-wrap: wrap; font-size: .875rem; }
.author-hero__meta a { color: var(--snow); text-decoration: underline; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; }
.pagination__info { font-size: .875rem; color: var(--gray-500); }

/* ---------- Newsletter ---------- */
.newsletter { background: var(--navy); padding-block: 4rem; color: var(--gray-300); }
.newsletter__grid { display: grid; gap: 2.5rem; align-items: start; max-width: 64rem; }
@media (min-width: 1024px) { .newsletter__grid { grid-template-columns: 1fr 1fr; } }
.newsletter__rule { display: block; width: 3rem; height: 3px; background: var(--accent); margin-bottom: 1.5rem; }
.newsletter__title { color: var(--snow); font-size: 1.5rem; font-weight: 700; margin-bottom: .75rem; }
.newsletter__text { margin-bottom: 1.5rem; font-size: 1.0625rem; }
.newsletter__features { display: grid; gap: 1rem; }
@media (min-width: 640px) { .newsletter__features { grid-template-columns: 1fr 1fr; } }
.feature-tile { background: var(--navy-2); border: 1px solid var(--gray-700); padding: 1.5rem; }
.feature-tile .icon { color: var(--accent); width: 1.25rem; height: 1.25rem; margin-bottom: 1rem; }
.feature-tile h3 { color: var(--snow); font-size: 1rem; margin-bottom: .5rem; }
.feature-tile p { font-size: .875rem; }
.subscribe-form__row { display: flex; flex-direction: column; gap: .5rem; }
@media (min-width: 640px) { .subscribe-form__row { flex-direction: row; } }
.subscribe-form input[type="email"] { flex: 1; min-width: 0; padding: .75rem 1rem; border: 1px solid var(--gray-700); background: var(--navy-2); color: var(--snow); }
.subscribe-form input[type="email"]::placeholder { color: var(--gray-500); }
.subscribe-form__fine { margin-top: .75rem; font-size: .75rem; color: var(--gray-500); }
.subscribe-form__fine a { text-decoration: underline; }
.subscribe-form__msg { display: none; margin-top: .75rem; font-size: .875rem; }
.subscribe-form.loading .subscribe-form__msg--loading,
.subscribe-form.success .subscribe-form__msg--success,
.subscribe-form.error .subscribe-form__msg--error { display: block; }
.subscribe-form__msg--success { color: var(--signal); }
.subscribe-form__msg--error { color: #f87171; }
.subscribe-form.success .subscribe-form__row { display: none; }
.subscribe-form.loading button { opacity: .6; pointer-events: none; }

/* ---------- Post ---------- */
.reading-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 60; pointer-events: none; }
.reading-progress__bar { display: block; height: 100%; width: 0; background: var(--accent); transition: width .1s linear; }
.article-hero { position: relative; overflow: hidden; padding-block: 3rem 2rem; background: linear-gradient(to bottom, var(--slate-50), var(--snow)); }
.article-hero .container { position: relative; }
.article-hero__title { font-size: 2.25rem; font-weight: 700; letter-spacing: -.02em; margin-top: 1rem; }
.article-hero__title--left { text-align: left; }
.article-hero__excerpt { margin: 1rem auto 0; max-width: 40rem; font-size: 1.125rem; color: var(--gray-600); }
.article-hero__excerpt--left { margin-left: 0; }
@media (min-width: 768px) { .article-hero__title { font-size: 3rem; } .article-hero { padding-block: 4rem 3rem; } }
.article-layout { display: grid; gap: 3rem; padding-block: 2rem 4rem; }
@media (min-width: 1024px) { .article-layout { grid-template-columns: minmax(0, 1fr) 18rem; max-width: var(--container-wide); } }
.article-main { min-width: 0; max-width: 46rem; }
.byline { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 2.5rem; }
.byline__author { display: flex; align-items: center; gap: .75rem; }
.byline__author .avatar { width: 3rem; height: 3rem; border-color: var(--gray-200); }
.byline__name { display: block; font-family: var(--font-heading); font-weight: 700; }
.byline__bio { display: block; font-size: .8125rem; color: var(--gray-500); }
.byline__meta { display: flex; gap: 1.25rem; font-size: .8125rem; color: var(--gray-500); padding-left: 3.75rem; }
.byline__meta time, .byline__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.byline__meta .icon { width: .9rem; height: .9rem; }
.article-image { margin: 0 0 2.5rem; }
.article-image img { width: 100%; }
.article-image figcaption { font-size: .8125rem; color: var(--gray-500); text-align: center; margin-top: .5rem; }
.article-aside { display: none; }
@media (min-width: 1024px) { .article-aside { display: block; } }
.aside-sticky { position: sticky; top: calc(var(--header-h) + 1.5rem); display: grid; gap: 1.5rem; }
.toc { background: var(--slate-50); border: 1px solid var(--gray-200); padding: 1.25rem; }
.toc__title { font-size: 1rem; margin-bottom: .75rem; }
.toc__list { list-style: none; margin: 0; padding: 0; max-height: 50vh; overflow-y: auto; }
.toc__list a { display: block; padding: .4rem 0 .4rem .75rem; border-left: 2px solid transparent; font-size: .8125rem; color: var(--gray-700); transition: color .2s, border-color .2s; }
.toc__list a.is-h3 { padding-left: 1.5rem; color: var(--gray-600); }
.toc__list a:hover, .toc__list a.is-active { color: var(--accent); border-color: var(--accent); }
.toc__list a.is-active { font-weight: 600; }
.toc--mobile { margin-bottom: 2rem; }
.toc--mobile summary { font-family: var(--font-heading); font-weight: 600; cursor: pointer; }
.toc--mobile .toc__list { margin-top: .75rem; }
@media (min-width: 1024px) { .toc--mobile { display: none; } }
.promo-card { background: var(--snow); border: 1px solid var(--gray-200); box-shadow: var(--shadow-lg); padding: 1.5rem; text-align: center; }
.promo-card img { width: 6rem; height: 6rem; margin: 0 auto 1rem; }
.promo-card h3 { font-size: 1.0625rem; }
.promo-card__sub { font-size: .8125rem; color: var(--gray-500); margin-bottom: .5rem; }
.promo-card p:not(.promo-card__sub) { font-size: .8125rem; color: var(--gray-600); margin-bottom: 1rem; }
.post-cta { margin-top: 3rem; padding: 2rem; background: var(--navy); color: var(--gray-300); display: grid; gap: 1.5rem; }
.post-cta__title { display: flex; align-items: center; gap: .6rem; color: var(--snow); font-size: 1.25rem; margin-bottom: .5rem; }
.share { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--gray-200); }
.share__title { font-size: 1rem; margin-bottom: 1rem; }
.share .btn-row { flex-direction: row; flex-wrap: wrap; gap: .75rem; }
.share .icon { width: 1rem; height: 1rem; }
.back-to-top { position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 40; width: 3rem; height: 3rem; display: flex; align-items: center; justify-content: center; background: var(--slate-900); color: var(--snow); border: 0; opacity: 0; pointer-events: none; transition: opacity .3s, background-color .2s; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; }
.back-to-top:hover { background: var(--accent); }
.back-to-top .icon { width: 1.25rem; height: 1.25rem; }

/* Modal */
.modal { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.modal[hidden] { display: none; }
.modal__backdrop { position: absolute; inset: 0; background: rgb(15 15 15 / .6); backdrop-filter: blur(2px); }
.modal__dialog { position: relative; max-width: 48rem; width: 100%; background: var(--navy); color: var(--gray-300); padding: 2.5rem 2rem 2rem; border: 1px solid var(--gray-700); animation: modal-in .35s var(--ease); }
@keyframes modal-in { from { opacity: 0; transform: translateY(12px); } }
.modal__close { position: absolute; top: .75rem; right: .75rem; }
.modal__grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .modal__grid { grid-template-columns: 1fr 1fr; align-items: center; } }
.modal__title { color: var(--snow); font-size: 1.5rem; margin-bottom: .75rem; }
.modal__list { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .5rem; font-size: .875rem; }
.modal__list li { display: flex; gap: .5rem; align-items: center; }
.modal__list .icon { width: 1rem; height: 1rem; color: var(--signal); }
body.modal-open { overflow: hidden; }

/* ---------- Pages ---------- */
.page-hero { padding-block: 3rem 1.5rem; }
.page-hero__title { font-size: 2.25rem; font-weight: 700; }
.page-hero__meta { color: var(--gray-500); margin-top: .5rem; }
.page .gh-content { padding-bottom: 4rem; }

/* About */
.container--about { max-width: 52rem; padding-block: 3rem 4rem; }
.about-hero { padding-bottom: 2.5rem; border-bottom: 1px solid var(--gray-200); margin-bottom: 2.5rem; }
.about-hero__name { font-size: 2.25rem; font-weight: 700; margin: .5rem 0; }
@media (min-width: 768px) { .about-hero__name { font-size: 3rem; } }
.about-hero__headline { font-size: 1.125rem; color: var(--gray-700); }
.about-hero__location { font-size: .875rem; color: var(--gray-400); margin: .25rem 0 1.5rem; }
.about-hero .btn-row { flex-direction: row; flex-wrap: wrap; gap: .75rem; }
.about-hero .btn .icon { width: 1rem; height: 1rem; }
.about-body > p { font-size: 1rem; color: var(--gray-600); }
.about-body .about-section { margin-top: 3.5rem; padding-top: 3rem; border-top: 1px solid var(--gray-200); }
.about-body .section-heading { font-size: 1.5rem; margin: 0 0 1.75rem; }
.about-body .stats-bar { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
@media (min-width: 640px) { .about-body .stats-bar { grid-template-columns: repeat(4, 1fr); } }
.about-body .stat-value { font-family: var(--font-heading); font-size: 1.75rem; font-weight: 700; color: var(--ink); }
.about-body .stat-label { font-size: .8125rem; color: var(--gray-500); }
.about-body .highlights-list { padding-left: 1.25rem; display: grid; gap: 1rem; }
.about-body .highlights-list li { font-size: .9375rem; color: var(--gray-700); }
.about-body .timeline { position: relative; display: grid; gap: 2.5rem; padding-left: 1.75rem; border-left: 2px solid var(--gray-200); }
.about-body .timeline-entry { position: relative; }
.about-body .timeline-dot { position: absolute; left: calc(-1.75rem - 7px); top: .35rem; width: 12px; height: 12px; border-radius: 50%; background: var(--snow); border: 2px solid var(--gray-400); }
.about-body .timeline-dot--current { border-color: var(--signal); background: var(--signal); box-shadow: 0 0 0 4px rgb(41 211 152 / .2); }
.about-body .timeline-company { font-family: var(--font-heading); font-weight: 700; font-size: 1.125rem; margin-right: .75rem; }
.about-body .timeline-tenure { font-size: .8125rem; color: var(--gray-400); }
.about-body .timeline-role { margin-top: .75rem; }
.about-body .timeline-role-title { font-weight: 600; color: var(--gray-700); }
.about-body .timeline-meta { font-size: .8125rem; color: var(--gray-500); }
.about-body .timeline-promotion { font-size: .8125rem; color: var(--accent); margin-top: .25rem; }
.about-body .timeline-highlights { margin: .75rem 0 0; padding-left: 1.25rem; display: grid; gap: .5rem; }
.about-body .timeline-highlights li { font-size: .875rem; color: var(--gray-600); }
.about-body .cert-row { display: flex; flex-direction: column; gap: .15rem; padding: .9rem 0; border-bottom: 1px solid var(--gray-100); }
.about-body .cert-name { font-weight: 600; font-size: .9375rem; }
.about-body .cert-detail { font-size: .8125rem; color: var(--gray-400); }
.about-body .cert-link { display: inline-block; margin-top: 1.25rem; font-size: .875rem; font-weight: 600; color: var(--accent); }
.about-body .skill-grid { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .about-body .skill-grid { grid-template-columns: 1fr 1fr; } }
.about-body .skill-category-title { font-family: var(--font-heading); font-weight: 700; margin-bottom: .35rem; }
.about-body .skill-list { font-size: .875rem; color: var(--gray-600); }

/* Contact */
.contact { padding-block: 6rem; }
.contact__title { font-size: 2.5rem; font-weight: 700; letter-spacing: -.02em; margin-bottom: 1.25rem; }
@media (min-width: 768px) { .contact__title { font-size: 3rem; } }
.contact__lede { font-size: 1.125rem; color: var(--gray-600); max-width: 36rem; margin: 0 auto 2rem; }
.contact__lede p { margin: 0; }
.contact__rule { display: block; width: 3rem; height: 1px; background: var(--gray-200); margin: 1.5rem auto; }
.contact__alt { font-size: .875rem; color: var(--gray-400); }
.contact__alt a { color: var(--gray-600); }
.contact__alt a:hover { color: var(--accent); }

/* Learn */
.learn-hero { padding-block: 3rem 4rem; background: linear-gradient(to bottom, var(--slate-50), var(--snow)); }
.learn-hero__head { max-width: 48rem; margin: 0 auto 3rem; }
.learn-hero__title { font-size: 2.25rem; font-weight: 700; letter-spacing: -.02em; margin: .75rem 0 1.25rem; }
@media (min-width: 768px) { .learn-hero__title { font-size: 3rem; } }
.learn-hero .section-lede { margin-bottom: 2rem; }
.badge-soon { font-size: .7rem; padding: .1rem .45rem; background: var(--gray-700); color: var(--gray-200); }
.tracks { display: grid; max-width: 64rem; margin-inline: auto; box-shadow: var(--shadow-lg); }
@media (min-width: 1024px) { .tracks { grid-template-columns: 1fr 1fr; } .tracks__sep { display: none !important; } }
.track { padding: 2.5rem 2rem; display: flex; flex-direction: column; gap: 1.25rem; }
.track--blue { background: var(--snow); border: 1px solid var(--gray-200); }
.track--red { background: linear-gradient(135deg, #1e293b, #111827 60%, #1f1525); color: var(--gray-300); }
.track__badge { display: flex; align-items: center; gap: .75rem; font-size: .7rem; font-weight: 600; letter-spacing: .1em; }
.track--blue .track__badge { color: var(--accent); }
.track--red .track__badge { color: #f87171; }
.track__title { font-size: 1.75rem; font-weight: 700; }
.track--red .track__title { color: var(--snow); }
.track__text { font-size: .9375rem; color: var(--gray-600); }
.track--red .track__text { color: var(--gray-300); }
.track__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; font-size: .875rem; }
.track__list li { display: flex; gap: .6rem; }
.track__list .icon { width: 1.1rem; height: 1.1rem; padding: .15rem; flex-shrink: 0; margin-top: .1rem; }
.track--blue .track__list .icon { color: var(--accent); background: #dbeafe; }
.track--red .track__list .icon { color: #f87171; background: rgb(239 68 68 / .15); }
.track .btn { align-self: flex-start; margin-top: .5rem; }
.tracks__sep { text-align: center; padding: 1rem; background: var(--slate-100); font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }
.lab-tile { display: flex; gap: 1rem; align-items: flex-start; padding: 1.5rem; border: 1px solid var(--gray-200); background: var(--snow); transition: box-shadow .3s; }
.lab-tile:hover { box-shadow: var(--shadow-lg); }
.lab-tile h3 { font-size: 1.125rem; margin-bottom: .35rem; }
.lab-tile p { font-size: .875rem; color: var(--gray-600); }
.waitlist { max-width: 40rem; margin: 0 auto; padding: 2.5rem 2rem; text-align: center; background: var(--slate-50); border: 1px solid var(--gray-200); }
.waitlist__title { font-size: 1.5rem; margin-bottom: .75rem; }
.waitlist > p { color: var(--gray-600); margin-bottom: 1.5rem; }
.waitlist .subscribe-form input[type="email"] { background: var(--snow); color: var(--ink); border-color: var(--gray-300); }
.waitlist__member { color: #047857; font-weight: 500; }

/* Certifications */
.page-hero--center { padding-block: 4rem 2rem; }
.credly { display: grid; gap: 2.5rem; max-width: 64rem; margin: 1rem auto 0; padding: 2.5rem 2rem; background: var(--slate-50); border: 1px solid var(--slate-200); }
@media (min-width: 1024px) { .credly { grid-template-columns: 1fr 1fr; align-items: center; } }
.credly__meta { display: flex; gap: .75rem; align-items: center; font-size: .8125rem; color: var(--gray-500); margin-bottom: 1.25rem; }
.credly__count { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.credly__count strong { font-family: var(--font-heading); font-size: 3.5rem; line-height: 1; }
.credly__count small { color: var(--gray-500); }
.credly__title { font-size: 1.75rem; margin-bottom: .5rem; }
.credly__copy > p:not(.credly__meta):not(.credly__count) { color: var(--gray-600); margin-bottom: 1.5rem; }
.badge-wall { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.badge-wall img { width: 100%; max-width: 7rem; margin-inline: auto; aspect-ratio: 1; object-fit: contain; background: var(--snow); padding: .5rem; border: 1px solid var(--slate-200); }
.credly__fine { font-size: .8125rem; color: var(--gray-500); text-align: center; margin-top: 1rem; }
.cert-hero { display: grid; gap: 2rem; align-items: center; position: relative; }
@media (min-width: 768px) { .cert-hero { grid-template-columns: 1fr 16rem; } }
.cert-hero__meta { font-size: .875rem; color: var(--gray-500); margin-top: 1rem; display: flex; gap: .4rem; flex-wrap: wrap; }
.cert-hero__image img { width: 100%; max-width: 16rem; margin-inline: auto; }
.cert-footer { padding-block: 3rem 4rem; }

/* Error */
.error-page { padding-block: 6rem; }
.error-page__code { font-family: var(--font-heading); font-size: 5rem; font-weight: 700; color: var(--gray-200); line-height: 1; margin-bottom: 1rem; }
.error-page .section-lede { margin-bottom: 2rem; }

/* Reveal animation (progressive enhancement: only hidden once JS marks the page) */
.js .fade-up { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.js .fade-up.is-visible { opacity: 1; transform: none; }

/* ---------- Ghost content (Koenig editor output) ---------- */
.gh-content { font-size: 1.125rem; line-height: 1.75; color: var(--gray-700); }
.gh-content > * + * { margin-top: 1.5rem; }
.gh-content h2 { font-size: 1.75rem; font-weight: 700; margin-top: 3rem; padding-bottom: .75rem; border-bottom: 1px solid var(--gray-200); color: var(--ink); }
.gh-content h3 { font-size: 1.375rem; font-weight: 700; margin-top: 2.25rem; color: var(--ink); }
.gh-content h4 { font-size: 1.125rem; margin-top: 2rem; }
.gh-content > :first-child { margin-top: 0; }
.gh-content a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.gh-content a:hover { color: var(--accent-dark); }
.gh-content strong { color: var(--ink); }
.gh-content ul, .gh-content ol { padding-left: 1.5rem; }
.gh-content li + li { margin-top: .6rem; }
.gh-content blockquote:not([class]) { margin-inline: 0; padding: .25rem 0 .25rem 1.5rem; border-left: 4px solid var(--accent); font-style: italic; color: var(--gray-600); }
.gh-content hr { border: 0; border-top: 1px solid var(--gray-200); margin-block: 3rem; }
.gh-content code { font-family: var(--font-mono); font-size: .875em; background: var(--gray-100); padding: .15em .35em; }
.gh-content pre { position: relative; overflow-x: auto; padding: 1.25rem 1.5rem; background: #1e1e1e; color: #e5e7eb; font-size: .875rem; line-height: 1.6; }
.gh-content pre code { background: none; padding: 0; font-size: inherit; color: inherit; }
.gh-content table:not(.gist table) { width: 100%; border-collapse: collapse; font-size: 1rem; display: block; overflow-x: auto; }
.gh-content th, .gh-content td { border: 1px solid var(--gray-300); padding: .75rem 1rem; text-align: left; }
.gh-content th { background: var(--gray-50); font-weight: 600; }
.gh-content figure { margin-inline: 0; }
.gh-content figcaption { font-size: .875rem; color: var(--gray-500); text-align: center; margin-top: .75rem; }
.gh-content img { margin-inline: auto; }
.gh-content svg { max-width: 100%; height: auto; }
.copy-code { position: absolute; top: .75rem; right: .75rem; padding: .3rem .7rem; font-size: .75rem; background: var(--gray-700); color: var(--snow); border: 0; opacity: .85; }
.copy-code:hover { opacity: 1; background: var(--gray-600); }

/* Koenig card widths — required by gscan */
.kg-width-wide { position: relative; width: min(85vw, 64rem); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.kg-width-full { position: relative; width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.kg-width-full img, .kg-width-wide img { width: 100%; }
.article-main .kg-width-wide, .article-main .kg-width-full { width: 100%; margin-left: 0; transform: none; }
@media (min-width: 1280px) { .article-main .kg-width-wide { width: calc(100% + 8rem); margin-left: -4rem; } }
.kg-image-card img { margin-inline: auto; }
.kg-gallery-container { display: flex; flex-direction: column; gap: .75rem; }
.kg-gallery-row { display: flex; flex-direction: row; justify-content: center; gap: .75rem; }
.kg-gallery-image img { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; }
.kg-gallery-image { flex: 1 1 0; }
.kg-bookmark-card { width: 100%; }
.kg-bookmark-container { display: flex; min-height: 148px; border: 1px solid var(--gray-200); color: var(--ink) !important; text-decoration: none !important; background: var(--snow); }
.kg-bookmark-content { flex-grow: 1; padding: 1.25rem; display: flex; flex-direction: column; justify-content: flex-start; }
.kg-bookmark-title { font-weight: 600; font-family: var(--font-heading); }
.kg-bookmark-description { margin-top: .5rem; font-size: .875rem; color: var(--gray-600); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kg-bookmark-metadata { display: flex; align-items: center; gap: .5rem; margin-top: auto; padding-top: .75rem; font-size: .8125rem; color: var(--gray-500); }
.kg-bookmark-icon { width: 20px; height: 20px; }
.kg-bookmark-thumbnail { position: relative; flex-shrink: 0; width: 30%; min-width: 120px; }
.kg-bookmark-thumbnail img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kg-embed-card { display: flex; flex-direction: column; align-items: center; }
.kg-callout-card { padding: 1.25rem 1.5rem; }
.kg-file-card a { color: var(--ink) !important; }

/* ---------- Reduced motion / print ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .js .fade-up { opacity: 1; transform: none; }
}
@media print {
    .site-header, .site-footer, .article-aside, .share, .post-cta, .newsletter, .back-to-top, .reading-progress, .modal { display: none !important; }
}

/* ---------- Pearson additions ---------- */
@media (min-width: 768px) { .card-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .card-grid--3 { grid-template-columns: repeat(3, 1fr); } }
.hero__portrait--photo { aspect-ratio: 1109 / 1164; }
.hero__portrait--photo img { height: 100%; object-fit: cover; object-position: center; }
.site-logo img { border-radius: 50%; }
.thm-badge { display: block; max-width: 100%; height: auto; margin-top: 1.25rem; }
/* Visible placeholders: content Tyler still needs to supply. */
.placeholder, .placeholder .card__title, .placeholder .card__text { color: var(--gray-500); font-style: italic; }
.card.placeholder { border-style: dashed; }
.contact-grid { display: grid; gap: .75rem; margin: 0 auto 1rem; max-width: 40rem; text-align: left; }
@media (min-width: 640px) { .contact-grid { grid-template-columns: repeat(2, 1fr); } }
.contact-tile { display: flex; align-items: center; gap: .875rem; padding: 1rem 1.125rem; border: 1px solid var(--gray-200); background: var(--snow); color: var(--gray-700); transition: border-color .2s, transform .2s; }
.contact-tile:hover { border-color: var(--slate-900); transform: translateY(-2px); }
.contact-tile .icon { width: 1.5rem; height: 1.5rem; flex: none; color: var(--slate-900); }
.contact-tile span { display: flex; flex-direction: column; font-size: .875rem; line-height: 1.4; }
.contact-tile strong { font-size: 1rem; color: var(--ink); }
/* Pearson: framed photo portrait needs breathing room above/below (kasuba used a bottom-anchored cutout) */
.hero__portrait--photo { border-radius: .5rem; box-shadow: 0 10px 30px rgba(15, 23, 42, .15); }
@media (min-width: 1024px) {
    .hero:has(.hero__portrait--photo) { padding-block: 4rem; }
    .hero:has(.hero__portrait--photo) .hero__copy { padding-bottom: 0; }
}
/* Pearson: keep the archive hero grid from overflowing on narrow screens (long featured titles/excerpts) */
.archive-hero__grid { grid-template-columns: minmax(0, 1fr); }
.archive-hero__grid > * { min-width: 0; }
@media (min-width: 1024px) { .archive-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.contact__lede p + p { margin-top: 1rem; }
/* Pearson: aspect-ratio + min-height forced the featured card wider than small phones */
@media (max-width: 639px) { .featured-card article { aspect-ratio: auto; min-height: 20rem; } }
/* Pearson: certification cards (AWS SA Associate). Badge image replaces the icon when set in theme settings. */
.cert-card__issuer { font-size: .875rem; font-weight: 600; color: var(--gray-600); margin: -.25rem 0 .75rem; }
.cert-card__badge { position: absolute; top: 1.25rem; right: 1.25rem; width: 4rem; height: 4rem; object-fit: contain; }
.cert-card__verify { margin-top: 1rem; }
.about-certs { margin-top: 3rem; padding-bottom: 3rem; }
.about-certs__title { font-size: 1.75rem; font-weight: 700; padding-bottom: .75rem; border-bottom: 1px solid var(--gray-200); margin-bottom: 1.5rem; color: var(--ink); }

/* =====================================================================
   Pearson: Expertise section, modern bento (2025 refresh)
   ===================================================================== */
.xp { position: relative; isolation: isolate; overflow: hidden; background: var(--snow); }
/* faint dot grid, faded toward the edges, plus a soft accent glow behind the heading */
.xp::before { content: ""; position: absolute; inset: 0; z-index: -1;
    background-image: radial-gradient(rgb(15 23 42 / .12) 1px, transparent 1px); background-size: 22px 22px;
    -webkit-mask-image: radial-gradient(ellipse 75% 65% at 50% 40%, #000 30%, transparent 75%);
            mask-image: radial-gradient(ellipse 75% 65% at 50% 40%, #000 30%, transparent 75%); }
.xp::after { content: ""; position: absolute; z-index: -1; left: 50%; top: -12rem; width: 56rem; height: 30rem; transform: translateX(-50%);
    background: radial-gradient(closest-side, rgb(37 99 235 / .12), rgb(99 102 241 / .06) 55%, transparent); pointer-events: none; }

.xp__head { text-align: center; max-width: 40rem; margin: 0 auto 3rem; }
.xp__eyebrow { display: inline-flex; align-items: center; gap: .5rem; padding: .3rem .8rem; margin-bottom: 1rem;
    font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-dark);
    background: rgb(37 99 235 / .08); border: 1px solid rgb(37 99 235 / .16); border-radius: 999px; }
.xp__eyebrow-dot { width: .4rem; height: .4rem; border-radius: 50%; background: linear-gradient(135deg, #3b82f6, #06b6d4); box-shadow: 0 0 0 3px rgb(59 130 246 / .18); }
.xp__title { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.05; margin-bottom: .875rem; color: var(--slate-900); }
.xp__lede { font-size: 1.125rem; line-height: 1.6; color: var(--slate-500); }

.xp-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .xp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
@media (min-width: 1024px) {
    .xp-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .xp-card { grid-column: span 2; }
    .xp-card--wide { grid-column: span 3; }
}

/* tone tokens per card (accent family: blue / indigo / cyan) */
.xp-card { --tone-a: #3b82f6; --tone-b: #6366f1; --tone-ink: #1d4ed8; --tone-soft: 239 246 255; }
.xp-card--indigo { --tone-a: #6366f1; --tone-b: #8b5cf6; --tone-ink: #4338ca; --tone-soft: 238 242 255; }
.xp-card--cyan { --tone-a: #06b6d4; --tone-b: #3b82f6; --tone-ink: #0e7490; --tone-soft: 236 254 255; }

.xp-card { position: relative; display: flex; flex-direction: column; padding: 1.75rem; border-radius: 1.25rem;
    background: linear-gradient(180deg, rgb(255 255 255 / .92), rgb(248 250 252 / .88));
    border: 1px solid rgb(15 23 42 / .08);
    box-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 4px 12px -2px rgb(15 23 42 / .05), inset 0 1px 0 rgb(255 255 255 / .9);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease); }
/* gradient border glow, revealed on hover/focus */
.xp-card::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none;
    background: linear-gradient(135deg, var(--tone-a), var(--tone-b) 50%, rgb(255 255 255 / 0));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
            mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
    opacity: 0; transition: opacity .35s var(--ease); }
.xp-card:hover, .xp-card:focus-within { transform: translateY(-4px); border-color: transparent;
    box-shadow: 0 2px 4px rgb(15 23 42 / .04), 0 20px 44px -14px rgb(30 64 175 / .28), 0 0 0 4px rgb(var(--tone-soft) / .7), 0 0 24px -6px color-mix(in srgb, var(--tone-a) 35%, transparent); }
.xp-card:hover::before, .xp-card:focus-within::before { opacity: 1; }
.xp-card:focus-within { outline: 2px solid var(--tone-ink); outline-offset: 3px; }


.xp-card__icon { display: inline-flex; align-items: center; justify-content: flex-start; margin-bottom: 1.125rem; color: var(--tone-ink);
    transition: transform .35s var(--ease); }
.xp-card__icon .icon { width: 2rem; height: 2rem; stroke-width: 1.6; }
.xp-card:hover .xp-card__icon { transform: translateY(-2px); }

.xp-card__title { font-size: 1.3125rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; color: var(--slate-900); margin-bottom: .625rem; }
.xp-card__text { font-size: .9688rem; line-height: 1.7; color: var(--slate-600); margin-bottom: 1.5rem; flex-grow: 1; }
.xp-card--wide .xp-card__text { max-width: 38rem; }
@media (min-width: 1024px) { .xp-card--wide .xp-card__title { font-size: 1.5rem; } }

.xp-card__tags { list-style: none; margin: auto 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.xp-tag { display: inline-flex; align-items: center; padding: .3rem .75rem; font-size: .8125rem; font-weight: 500; line-height: 1.3;
    color: var(--tone-ink); background: rgb(var(--tone-soft)); border: 1px solid color-mix(in srgb, var(--tone-a) 22%, transparent); border-radius: 999px; }

@media (prefers-reduced-motion: reduce) {
    .xp-card, .xp-card::before, .xp-card__icon { transition: none; }
    .xp-card:hover, .xp-card:focus-within, .xp-card:hover .xp-card__icon { transform: none; }
}

/* Pearson: minimal matching tweaks so the rest of the site sits with the rounded Expertise cards */
:root { --radius: .625rem; }
.card { border-radius: 1rem; border-color: rgb(15 23 42 / .09); box-shadow: 0 1px 2px rgb(15 23 42 / .04); }
.post-card { border-radius: 1rem; overflow: hidden; border-color: rgb(15 23 42 / .09); }
.chip { border-radius: 999px; }
.contact-tile { border-radius: .875rem; }
.featured-card article { border-radius: 1rem; }
.subscribe-form input[type="email"], .search-trigger { border-radius: var(--radius); }
