/* Attached-instruction consistency pass: shared metadata line. */
.page-meta,
.hero-meta,
.resume-hero-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  width: 100%;
  margin-bottom: 40px;
  padding-bottom: 11px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font: 800 9px/1 var(--display);
  letter-spacing: .10em;
  text-transform: uppercase;
}
.page-meta span:last-child,
.hero-meta span:last-child,
.resume-hero-meta span:last-child { text-align: right; }

/* Match Finson privacy to the unboxed AutoCare privacy structure, with wider desktop reading width. */
.privacy-page-deck {
  width: 100%;
  max-width: min(100%, 1040px) !important;
  margin-top: 27px;
}
.privacy-page-deck h2 { margin-top: 34px; }
.privacy-page-deck p { max-width: 1040px; }

/* Ensure both app pages use the same full-width metadata row above the two-column hero. */
.autocare-app-hero > .page-meta { grid-column: 1 / -1; }
.autocare-app-hero-media,
.finson-app-hero-media {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  isolation: isolate;
}
.autocare-iphone-air {
  overflow: visible;
  background: linear-gradient(145deg, #30343a 0%, #121519 30%, #030405 68%, #24282e 100%);
}
.autocare-iphone-screen {
  overflow: hidden;
  background: #050607;
}
.autocare-app-video {
  border-radius: inherit;
  clip-path: inset(0 round 38px);
}

/* Real Finson screenshot only; no generated/mockup feature screen remains in the template. */
.finson-feature-card-real > img {
  width: 100%;
  max-height: 520px;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  padding: 10px;
  box-sizing: border-box;
  background: var(--panel);
}
.finson-feature-card-text { min-height: 0; }
.finson-app-split { grid-template-columns: 1fr; }
.finson-app-split-copy { max-width: 1040px; }

@media (max-width: 840px) {
  .privacy-page-deck { max-width: 100% !important; }
  .autocare-app-hero > .page-meta { grid-column: 1; }
}

@media (max-width: 560px) {
  .page-meta,
  .hero-meta,
  .resume-hero-meta {
    margin-bottom: 30px;
    gap: 8px;
    font-size: 7px;
    letter-spacing: .07em;
  }
  .privacy-page-deck { width: 100%; max-width: 100% !important; }
  .privacy-page-deck h2 { margin-top: 30px; }
  .privacy-page-deck p { max-width: 100%; }
  .autocare-app-hero,
  .finson-app-hero {
    overflow: hidden;
    padding-inline: 22px;
    box-sizing: border-box;
  }
  .autocare-app-hero .autocare-app-hero-copy,
  .finson-app-hero .autocare-app-hero-copy {
    width: 100%;
    min-width: 0;
  }
  .autocare-app-hero h1,
  .finson-app-hero h1 {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(36px, 10.2vw, 64px) !important;
    line-height: .94;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  .autocare-app-hero h1 span,
  .finson-app-hero h1 span {
    display: inline;
    white-space: normal !important;
  }
  .autocare-app-hero .page-deck,
  .finson-app-hero .page-deck {
    width: 100%;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .autocare-app-hero .autocare-app-actions,
  .finson-app-hero .autocare-app-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
    max-width: 100%;
    gap: 10px;
  }
  .autocare-app-hero .autocare-app-actions > *,
  .finson-app-hero .autocare-app-actions > * {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  .autocare-app-hero .autocare-app-actions > .autocare-privacy-cta,
  .finson-app-hero .autocare-app-actions > .autocare-privacy-cta {
    grid-column: 1 / -1;
  }
  .autocare-app-hero-media,
  .finson-app-hero-media {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    justify-self: center !important;
    justify-content: center !important;
    overflow: visible;
  }
  .autocare-iphone-air,
  .finson-app-hero .autocare-iphone-air {
    width: min(100%, 248px) !important;
    max-width: 248px;
    margin-inline: auto !important;
  }
  .finson-feature-card-real > img { max-height: 560px; }
}

/* App heroes: keep the copy close to the metadata line on desktop, like the other page heroes. */
@media (min-width: 841px) {
  .autocare-app-hero,
  .finson-app-hero {
    align-items: start;
    row-gap: 28px;
  }
  .autocare-app-hero > .page-meta,
  .finson-app-hero > .page-meta {
    margin-bottom: 0;
  }
  .autocare-app-hero-copy,
  .finson-app-hero-copy,
  .finson-app-hero .autocare-app-hero-copy,
  .autocare-app-hero-media,
  .finson-app-hero-media {
    align-self: start;
  }
}

/* Shared page rhythm: homepage reference applied to every page type. */
:root {
  --tp-shared-header-to-meta: 30px;
  --tp-shared-meta-to-content: 40px;
  --tp-shared-divider-inset: 11px;
}

/* Header -> metadata line. */
.tp-hero,
.page-hero,
.blog-page-shell,
.resume-hero,
.autocare-app-hero,
.finson-app-hero {
  padding-top: var(--tp-shared-header-to-meta) !important;
}

/* Metadata row, divider, and metadata -> first content block. */
.tp-hero > .hero-meta,
.page-hero > .page-meta,
.blog-page-shell > .page-meta,
.resume-hero > .resume-hero-meta,
.autocare-app-hero > .page-meta,
.finson-app-hero > .page-meta {
  margin-bottom: var(--tp-shared-meta-to-content) !important;
  padding-bottom: var(--tp-shared-divider-inset) !important;
}

/* Grid heroes use the metadata margin as the row separation; do not add a second gap. */
.tp-hero,
.autocare-app-hero,
.finson-app-hero {
  row-gap: 0 !important;
}

@media (max-width: 840px) {
  .tp-hero,
  .page-hero,
  .blog-page-shell,
  .resume-hero,
  .autocare-app-hero,
  .finson-app-hero {
    padding-top: var(--tp-shared-header-to-meta) !important;
  }
  .tp-hero > .hero-meta,
  .page-hero > .page-meta,
  .blog-page-shell > .page-meta,
  .resume-hero > .resume-hero-meta,
  .autocare-app-hero > .page-meta,
  .finson-app-hero > .page-meta {
    margin-bottom: var(--tp-shared-meta-to-content) !important;
  }
}

/* Projects section: reuse the Support-card component and follow the active theme. */
.projects-section {
  background: var(--paper) !important;
  color: var(--ink);
}
.projects-section .section-intro,
.projects-section h2 {
  color: var(--ink);
}
.projects-section .projects-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  border: 0;
  background: transparent;
}
.projects-section .projects-card-grid > .project-card {
  grid-column: auto;
  display: flex;
  min-height: 360px;
  flex-direction: column;
  overflow: visible;
  padding: 22px;
  border: 1px solid var(--ink);
  background: var(--panel);
  color: var(--ink);
  transition: transform .18s ease, box-shadow .18s ease;
}
.projects-section .projects-card-grid > .project-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 5px 5px 0 var(--blue);
}
.projects-section .projects-card-grid > .project-card::after {
  display: none;
}
.projects-section .projects-card-grid .project-type {
  color: var(--lime);
}
.projects-section .projects-card-grid .project-index {
  color: var(--muted);
}
.projects-section .projects-card-grid .project-card-main {
  position: static;
  margin: 18px 0 0;
}
.projects-section .projects-card-grid .project-card h3 {
  max-width: 11ch;
  min-height: 0;
  margin: 12px 0 0;
  color: var(--ink);
  font: 900 clamp(25px, 2.8vw, 38px)/.98 var(--display);
  letter-spacing: -.06em;
  text-transform: uppercase;
}
.projects-section .projects-card-grid .project-card p {
  max-width: none;
  min-height: 0;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.42;
}
.projects-section .projects-card-grid .project-actions {
  margin-top: auto;
  padding-top: 18px;
}
.projects-section .projects-card-grid .project-store-button-outline {
  border-color: var(--ink);
  background: transparent;
  color: var(--ink);
}
body.tp-night .projects-section {
  background: var(--paper) !important;
  color: var(--ink);
}
@media (max-width: 960px) {
  .projects-section .projects-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .projects-section .projects-card-grid { grid-template-columns: 1fr; gap: 12px; }
  .projects-section .projects-card-grid > .project-card {
    min-height: 320px;
    padding: 18px;
  }
}

/* Projects labels: match the Start a Conversation button red. */
.projects-section .tp-kicker,
.projects-section .project-type {
  color: #AB2D2D !important;
}

/* App hero mobile rhythm: separate the Privacy Policy CTA row from the phone preview. */
@media (max-width: 560px) {
  .autocare-app-hero-media,
  .finson-app-hero-media {
    margin-top: 28px !important;
  }
}

/* Mobile Go Up control: keep the square button comfortably inside the viewport. */
@media (max-width: 640px) {
  .tp-go-up {
    right: 28px !important;
    bottom: 28px !important;
  }
}

/* Shared wide reading layout for privacy and Blog pages. */
.tp-wide-reading-shell .page-deck,
.tp-wide-reading-shell .privacy-page-deck,
.tp-wide-reading-shell .page-deck > p,
.tp-wide-reading-shell .page-deck > h2,
.tp-wide-reading-shell .blog-feature-article,
.tp-wide-reading-shell .blog-feature-lead,
.tp-wide-reading-shell .blog-article-body,
.tp-wide-reading-shell .blog-article-detail {
  width: 100% !important;
  max-width: none !important;
}

.tp-wide-reading-shell .blog-feature-article {
  box-sizing: border-box;
}

.tp-wide-reading-shell .blog-card-grid {
  width: 100%;
}

@media (max-width: 840px) {
  .tp-wide-reading-shell {
    width: min(100% - 32px, 1360px);
  }
}

@media (max-width: 560px) {
  .tp-wide-reading-shell {
    width: calc(100% - 32px);
  }

  .tp-wide-reading-shell .page-deck,
  .tp-wide-reading-shell .privacy-page-deck,
  .tp-wide-reading-shell .blog-feature-article,
  .tp-wide-reading-shell .blog-article-body,
  .tp-wide-reading-shell .blog-article-detail {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Final full-width text flow for privacy and Blog content. */
.tp-wide-reading-shell .page-deck,
.tp-wide-reading-shell .page-deck p,
.tp-wide-reading-shell .page-deck h2,
.tp-wide-reading-shell .page-deck h3,
.tp-wide-reading-shell .privacy-page-deck p,
.tp-wide-reading-shell .blog-feature-lead,
.tp-wide-reading-shell .blog-article-body,
.tp-wide-reading-shell .blog-article-body p,
.tp-wide-reading-shell .blog-article-detail,
.tp-wide-reading-shell .blog-article-detail .blog-feature-lead,
.tp-wide-reading-shell .blog-article-detail .blog-article-body p,
.tp-wide-reading-shell .blog-card p {
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 560px) {
  .tp-wide-reading-shell .page-deck,
  .tp-wide-reading-shell .page-deck p,
  .tp-wide-reading-shell .blog-feature-lead,
  .tp-wide-reading-shell .blog-article-body,
  .tp-wide-reading-shell .blog-article-body p,
  .tp-wide-reading-shell .blog-card p {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Shared justified text for privacy and Blog content. */
.tp-wide-reading-shell .page-deck p,
.tp-wide-reading-shell .privacy-page-deck p,
.tp-wide-reading-shell .blog-feature-lead,
.tp-wide-reading-shell .blog-article-body p,
.tp-wide-reading-shell .blog-article-endnote p,
.tp-wide-reading-shell .blog-card p {
  text-align: justify;
  text-justify: inter-word;
}

/* Finson Privacy title accent. */
#finson-privacy-title .privacy-title-main {
  color: #DE3A3A;
}
#finson-privacy-title .privacy-title-tail {
  color: var(--ink);
}

/* Site-wide justified readable body text, including Resume content. */
main p:not(.tp-kicker):not(.tp-eyebrow):not(.page-meta):not(.hero-meta):not(.resume-hero-meta):not(.project-type):not(.project-index):not(.catalog-code):not(.catalog-kind):not(.catalog-status-tag) {
  text-align: justify;
  text-justify: inter-word;
}

/* Preserve compact labels and metadata alignment. */
main .tp-kicker,
main .tp-eyebrow,
main .page-meta,
main .hero-meta,
main .resume-hero-meta {
  text-align: initial;
}

@media (max-width: 560px) {
  main p:not(.tp-kicker):not(.tp-eyebrow):not(.page-meta):not(.hero-meta):not(.resume-hero-meta):not(.project-type):not(.project-index):not(.catalog-code):not(.catalog-kind):not(.catalog-status-tag) {
    text-align: justify;
    text-justify: inter-word;
  }
}

/* Resume paragraphs rendered outside the generic main-content wrapper. */
.resume-summary,
.resume-status-panel > p,
.resume-focus p,
.resume-role p,
.resume-project p,
.resume-project-description,
.resume-experience p {
  text-align: justify;
  text-justify: inter-word;
}

/* Shared Finson/AutoCare project hero title system. */
.autocare-app-hero h1.project-hero-title,
.finson-app-hero h1.project-hero-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100% !important;
  max-width: none !important;
  margin: 14px 0 22px;
  font: 900 clamp(30px, 7.4vw, 94px)/.94 var(--display);
  letter-spacing: -.08em;
  text-transform: uppercase;
  white-space: normal !important;
  overflow-wrap: normal;
}

.autocare-app-hero h1.project-hero-title .project-title-name,
.finson-app-hero h1.project-hero-title .project-title-name {
  display: block !important;
  color: #DE3A3A;
  white-space: nowrap !important;
}

.autocare-app-hero h1.project-hero-title .project-title-tagline,
.finson-app-hero h1.project-hero-title .project-title-tagline {
  display: block !important;
  color: var(--ink);
  white-space: normal !important;
}

@media (max-width: 840px) {
  .autocare-app-hero h1.project-hero-title,
  .finson-app-hero h1.project-hero-title {
    font-size: clamp(38px, 10.5vw, 68px) !important;
    line-height: .94;
  }
}

@media (max-width: 560px) {
  .autocare-app-hero h1.project-hero-title,
  .finson-app-hero h1.project-hero-title {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(38px, 10.5vw, 68px) !important;
    line-height: .94;
    overflow-wrap: break-word;
  }

  .autocare-app-hero h1.project-hero-title .project-title-name,
  .finson-app-hero h1.project-hero-title .project-title-name,
  .autocare-app-hero h1.project-hero-title .project-title-tagline,
  .finson-app-hero h1.project-hero-title .project-title-tagline {
    white-space: normal !important;
  }
}

/* Finson refinement: smaller hero title, left-side intro heading, and restored feature visuals. */
.finson-app-hero h1.project-hero-title {
  font-size: clamp(26px, 6.1vw, 78px) !important;
  line-height: .94;
}

.finson-app-intro {
  grid-template-columns: .9fr 1.1fr;
  align-items: start;
}

.finson-app-intro-heading {
  align-self: start;
}

.finson-app-intro-heading h2 {
  margin: 0;
}

.finson-feature-grid .finson-feature-card {
  grid-template-columns: minmax(0, 1fr) minmax(110px, .72fr);
  align-items: stretch;
  overflow: hidden;
}

.finson-feature-grid .finson-feature-card img {
  width: 100%;
  height: 100%;
  min-height: 240px;
  object-fit: cover;
  display: block;
}

@media (max-width: 840px) {
  .finson-app-hero h1.project-hero-title {
    font-size: clamp(34px, 9.2vw, 60px) !important;
  }

  .finson-app-intro {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

@media (max-width: 560px) {
  .finson-app-hero h1.project-hero-title {
    font-size: clamp(32px, 8.8vw, 58px) !important;
  }

  .finson-feature-grid .finson-feature-card {
    grid-template-columns: 1fr;
  }

  .finson-feature-grid .finson-feature-card img {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
}

/* Finson feature cards: use the larger AutoCare-style two-column presentation. */
.finson-feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px;
}

.finson-feature-grid .autocare-feature-card {
  grid-template-columns: .9fr 1.1fr;
  min-height: 390px;
  padding: 22px;
}

.finson-feature-grid .autocare-feature-card > img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  max-height: 470px;
  aspect-ratio: auto;
  object-fit: contain;
  border: 1px solid var(--line);
  background: #eaf8f7;
}

@media (max-width: 840px) {
  .finson-feature-grid {
    grid-template-columns: 1fr !important;
  }

  .finson-feature-grid .autocare-feature-card {
    grid-template-columns: .8fr 1.2fr;
  }
}

@media (max-width: 560px) {
  .finson-feature-grid .autocare-feature-card {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .finson-feature-grid .autocare-feature-card > img {
    min-height: 0;
    max-height: 520px;
    aspect-ratio: 16 / 10;
  }
}

/* Shared project hero titles: compact desktop scale with one-line taglines. */
.autocare-app-hero {
  grid-template-columns: minmax(0, 1fr) minmax(420px, .92fr);
}

.autocare-app-hero h1.project-hero-title,
.finson-app-hero h1.project-hero-title {
  font-size: clamp(28px, 3.7vw, 48px) !important;
  line-height: .94;
  letter-spacing: -.08em;
}

.autocare-app-hero h1.project-hero-title .project-title-name,
.finson-app-hero h1.project-hero-title .project-title-name,
.autocare-app-hero h1.project-hero-title .project-title-tagline,
.finson-app-hero h1.project-hero-title .project-title-tagline {
  white-space: nowrap !important;
}

@media (max-width: 840px) {
  .autocare-app-hero {
    grid-template-columns: 1fr;
  }

  .autocare-app-hero h1.project-hero-title,
  .finson-app-hero h1.project-hero-title {
    font-size: clamp(34px, 9.2vw, 58px) !important;
  }
}

@media (max-width: 560px) {
  .autocare-app-hero h1.project-hero-title,
  .finson-app-hero h1.project-hero-title {
    font-size: clamp(30px, 8.2vw, 48px) !important;
  }

  .autocare-app-hero h1.project-hero-title .project-title-name,
  .finson-app-hero h1.project-hero-title .project-title-name,
  .autocare-app-hero h1.project-hero-title .project-title-tagline,
  .finson-app-hero h1.project-hero-title .project-title-tagline {
    white-space: normal !important;
  }
}

/* Site-wide title system: match the compact Finson / AutoCare project-title scale. */
main h1.top-title,
main h1.resume-name-heading,
main .tp-hero h1,
main .section-head h2,
main .autocare-app-intro h2,
main .autocare-app-split-copy h2,
main .autocare-app-final-cta h2 {
  font-size: clamp(28px, 3.7vw, 48px) !important;
  line-height: .94;
  letter-spacing: -.08em;
}

/* Keep privacy-policy body headings and article/card subheadings in their existing hierarchy. */
main .page-deck h2,
main .privacy-card h2,
main .article-body h2,
main .article-body h3,
main .autocare-feature-copy h3,
main .service-card h3,
main .process-item h3,
main .project-card h3,
main .resume-focus h3,
main .resume-role h3,
main .resume-project-card h3 {
  font-size: revert;
  line-height: revert;
  letter-spacing: revert;
}

@media (max-width: 840px) {
  main h1.top-title,
  main h1.resume-name-heading,
  main .tp-hero h1,
  main .section-head h2,
  main .autocare-app-intro h2,
  main .autocare-app-split-copy h2,
  main .autocare-app-final-cta h2 {
    font-size: clamp(34px, 9.2vw, 58px) !important;
  }
}

@media (max-width: 560px) {
  main h1.top-title,
  main h1.resume-name-heading,
  main .tp-hero h1,
  main .section-head h2,
  main .autocare-app-intro h2,
  main .autocare-app-split-copy h2,
  main .autocare-app-final-cta h2 {
    font-size: clamp(30px, 8.2vw, 48px) !important;
    line-height: .94;
  }
}

/* Final one-line desktop titles requested for Home and YouTube. */
@media (min-width: 841px) {
  main h1.home-page-title,
  main h1#youtube-page-title {
    white-space: nowrap !important;
    max-width: none !important;
    width: max-content;
  }

  main h1.home-page-title span,
  main h1#youtube-page-title span {
    display: inline !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 840px) {
  main h1.home-page-title,
  main h1#youtube-page-title {
    white-space: normal !important;
    width: 100%;
    max-width: 100%;
  }

  main h1.home-page-title span,
  main h1#youtube-page-title span {
    display: inline !important;
    white-space: normal !important;
  }
}

/* Blog removal: keep the generic fallback from inheriting the former archive styling. */
.blog-page-shell {
  display: none !important;
}
/* Resume Selected Projects: match all project titles to FINSON and keep them on one line. */
.resume-projects .resume-project-heading h3 {
  font-family: var(--display) !important;
  font-size: clamp(16px, 1.55vw, 19.89px) !important;
  line-height: 1.05 !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  overflow: visible !important;
}
/* Resume CTA: half-size, single-line treatment. */
#resume-cta-title {
  font-size: 42px !important;
  line-height: .95 !important;
  letter-spacing: -3.36px !important;
  white-space: nowrap !important;
}
@media (max-width: 640px) {
  .resume-projects .resume-project-heading h3 {
    font-size: clamp(14px, 4.1vw, 18px) !important;
  }
  #resume-cta-title {
    font-size: clamp(30px, 10.5vw, 42px) !important;
    letter-spacing: -.08em !important;
  }
}
/* Resume section titles: half-size, single-line treatment. */
#profile-title,
#experience-title,
#projects-title,
#skills-title,
#credentials-title,
#volunteering-title {
  display: block;
  width: 100%;
  max-width: none !important;
  font-size: 30px !important;
  line-height: .95 !important;
  letter-spacing: -2.4px !important;
  white-space: nowrap !important;
}
@media (max-width: 640px) {
  #profile-title,
  #experience-title,
  #projects-title,
  #skills-title,
  #credentials-title,
  #volunteering-title {
    font-size: clamp(23px, 7vw, 30px) !important;
    letter-spacing: -.08em !important;
  }
}
/* Resume Selected Projects: borrow Support Scope card layout and blue interaction. */
.resume-projects .resume-project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px;
}
.resume-projects .resume-project-card {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  padding: 22px;
  border: 1px solid var(--ink);
  background: var(--panel);
  transition: transform .18s ease, box-shadow .18s ease;
}
.resume-projects .resume-project-card:hover {
  transform: translate(-3px, -3px);
  box-shadow: 5px 5px 0 var(--blue);
}
.resume-projects .resume-project-card > p {
  margin: 18px 0 0;
  font-size: 16px;
  line-height: 1.42;
}
.resume-projects .resume-project-heading,
.resume-projects .resume-project-card > p,
.resume-projects .resume-project-card .project-actions {
  position: relative;
  z-index: 1;
}
@media (max-width: 960px) {
  .resume-projects .resume-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .resume-projects .resume-project-card {
    min-height: 330px;
  }
}
@media (max-width: 560px) {
  .resume-projects .resume-project-grid {
    grid-template-columns: 1fr !important;
  }
  .resume-projects .resume-project-card {
    min-height: 320px;
    padding: 18px;
  }
}
/* Resume Selected Projects: compact content flow and Email Ali CTA treatment. */
.resume-projects .resume-project-card {
  justify-content: flex-start;
}
.resume-projects .resume-project-card > p {
  margin-top: 18px;
}
.resume-projects .resume-project-cta {
  align-self: flex-start;
  margin-top: 18px;
  min-height: 43px;
  padding: 10px 15px;
  border: 1px solid var(--blue);
  background: var(--blue);
  color: #fff;
  font: 800 11px/1 var(--display);
  letter-spacing: .05em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.resume-projects .resume-project-cta:hover,
.resume-projects .resume-project-cta:focus-visible {
  transform: translate(-3px, -3px);
  background: var(--panel-strong);
  color: var(--ink);
  box-shadow: 4px 4px 0 var(--lime);
  outline: none;
}

/* Resume Selected Projects: align every CTA at the shared bottom-left anchor. */
.resume-projects .resume-project-cta { align-self: flex-start; margin-top: auto; }
/* Resume Community Contribution: transparent cards with aligned organization marks. */
.resume-community-grid article {
  position: relative;
  background: transparent !important;
}
.resume-community-grid .resume-community-logo {
  position: absolute;
  top: 16px;
  right: 18px;
  z-index: 2;
  display: flex;
  width: 68px;
  height: 48px;
  align-items: center;
  justify-content: center;
}
.resume-community-grid .resume-community-logo img {
  display: block;
  max-width: 68px;
  max-height: 48px;
  width: auto;
  height: auto;
  object-fit: contain;
}
@media (max-width: 560px) {
  .resume-community-grid .resume-community-logo {
    top: 14px;
    right: 14px;
    width: 58px;
    height: 42px;
  }
  .resume-community-grid .resume-community-logo img {
    max-width: 58px;
    max-height: 42px;
  }
}
/* Maple Leaf Academy: slightly larger organization mark only. */
.resume-community-grid article:nth-child(3) .resume-community-logo {
  top: 10px;
  right: 14px;
  width: 82px;
  height: 58px;
}
.resume-community-grid article:nth-child(3) .resume-community-logo img {
  max-width: 82px;
  max-height: 58px;
}
@media (max-width: 560px) {
  .resume-community-grid article:nth-child(3) .resume-community-logo {
    top: 10px;
    right: 10px;
    width: 70px;
    height: 50px;
  }
  .resume-community-grid article:nth-child(3) .resume-community-logo img {
    max-width: 70px;
    max-height: 50px;
  }
}
/* Resume Technical Toolkit: follow the active light/night display mode. */
body.page-id-6234[data-theme=light] .insight-section {
  background: transparent;
  color: var(--ink);
}
body.page-id-6234[data-theme=light] .insight-section .section-intro,
body.page-id-6234[data-theme=light] .insight-section .resume-skills-grid p {
  color: var(--muted);
}
body.page-id-6234[data-theme=light] .insight-section .resume-skills-grid,
body.page-id-6234[data-theme=light] .insight-section .resume-skills-grid article {
  background: transparent;
  color: var(--ink);
}
body.page-id-6234[data-theme=light] .insight-section h2 {
  color: var(--blue);
}
body.page-id-6234[data-theme=night] .insight-section {
  background: #151716;
  color: #f4f4ee;
}
body.page-id-6234[data-theme=night] .insight-section .section-intro,
body.page-id-6234[data-theme=night] .insight-section .resume-skills-grid p {
  color: #f4f4ee;
}
body.page-id-6234[data-theme=night] .insight-section .resume-skills-grid,
body.page-id-6234[data-theme=night] .insight-section .resume-skills-grid article {
  background: #151716;
  color: #f4f4ee;
}
body.page-id-6234[data-theme=night] .insight-section h2 {
  color: #ffffff;
}
/* Resume Technical Toolkit: use the resume blue accent instead of green. */
body.page-id-6234 .insight-section .tp-kicker,
body.page-id-6234 .insight-section .resume-skills-grid article > span {
  color: var(--blue) !important;
}
/* Home Selected Projects: resume-card structure with TechyPeak red accents. */
.projects-section .projects-card-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
.projects-section .project-card {
  display: flex !important;
  min-height: 360px !important;
  flex-direction: column !important;
  padding: 22px !important;
  border: 1px solid var(--ink) !important;
  background: var(--panel) !important;
  color: var(--ink) !important;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
}
.projects-section .project-card:hover,
.projects-section .project-card:focus-visible {
  transform: translate(-3px, -3px) !important;
  box-shadow: 5px 5px 0 #AB2D2D !important;
  outline: none !important;
}
.projects-section .project-card .project-type,
.projects-section .project-card .project-index {
  color: #AB2D2D !important;
}
.projects-section .project-card-main {
  margin-top: 18px !important;
}
.projects-section .project-card-main p {
  margin: 18px 0 0 !important;
  font-size: 16px !important;
  line-height: 1.42 !important;
}
.projects-section .project-actions {
  margin-top: auto !important;
  padding-top: 18px !important;
}
.projects-section .project-cta {
  display: inline-flex !important;
  min-height: 43px !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 15px !important;
  border: 1px solid var(--blue) !important;
  background: var(--blue) !important;
  color: #fff !important;
  font: 800 11px/1 var(--display) !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease !important;
}
.projects-section .project-card:hover .project-cta,
.projects-section .project-card:focus-visible .project-cta {
  transform: translate(-3px, -3px) !important;
  background: var(--panel-strong) !important;
  color: var(--ink) !important;
  box-shadow: 4px 4px 0 var(--lime) !important;
}
body[data-theme="night"] .projects-section .project-card {
  background: #151716 !important;
  color: #f4f4ee !important;
}
@media (max-width: 1040px) {
  .projects-section .projects-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .projects-section .project-card { min-height: 330px !important; }
}
@media (max-width: 560px) {
  .projects-section .projects-card-grid { grid-template-columns: 1fr !important; }
  .projects-section .project-card { min-height: 320px !important; padding: 18px !important; }
}
/* Home Selected Projects CTA correction: normal red, hover signal red. */
.projects-section .project-cta { background: #AB2D2D !important; border-color: #AB2D2D !important; }
.projects-section .project-card:hover .project-cta,
.projects-section .project-card:focus-visible .project-cta { background: #DE3A3A !important; border-color: #DE3A3A !important; color: #fff !important; }
/* Shared card-title system: Capabilities and home Selected Projects. */
.site-card-title {
  margin: 22px 0 12px !important;
  font: 900 25px/1.04 var(--display) !important;
  letter-spacing: -.06em !important;
  text-transform: uppercase !important;
  white-space: normal !important;
}
.projects-section .project-card .site-card-title {
  max-width: none !important;
  min-height: 0 !important;
}
/* Home Selected Projects: Explore Services-style light CTAs. */
.projects-section .project-cta {
  display: inline-flex !important;
  min-height: 43px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 10px 15px !important;
  border: 1px solid var(--ink) !important;
  background: transparent !important;
  color: var(--ink) !important;
  font: 800 11px/1 var(--display) !important;
  letter-spacing: .05em !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease !important;
}
.projects-section .project-card:hover .project-cta,
.projects-section .project-card:focus-visible .project-cta {
  transform: translate(-3px, -3px) !important;
  border-color: #DE3A3A !important;
  background: #DE3A3A !important;
  color: #fff !important;
  box-shadow: 4px 4px 0 #DE3A3A !important;
}
/* Home Selected Projects: keep CTAs white/black in every state. */
.projects-section .project-cta,
.projects-section .project-card:hover .project-cta,
.projects-section .project-card:focus-visible .project-cta {
  background: #fff !important;
  color: #000 !important;
}
.projects-section .project-card:hover .project-cta,
.projects-section .project-card:focus-visible .project-cta {
  border-color: #DE3A3A !important;
  box-shadow: 4px 4px 0 #DE3A3A !important;
}

/* Mobile anchor navigation and Safari viewport stability. */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 86px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  max-width: 100%;
  overflow-x: hidden;
}
[id] {
  scroll-margin-top: 86px;
}
img, svg, video, iframe {
  max-width: 100%;
}
@media (max-width: 840px) {
  html { scroll-padding-top: 74px; }
  [id] { scroll-margin-top: 74px; }
  .tp-shell,
  .site-header,
  .site-footer,
  main,
  section,
  article,
  figure {
    max-width: 100%;
  }
  .hero-actions {
    width: 100%;
    max-width: 100%;
  }
  .hero-actions .tp-button {
    max-width: 100%;
  }
}