/* Subpage composition; palette and shared components come from ft-home-dark.css. */
.ft-dark-page .ft-header { position: relative; background: var(--home-bg); border-bottom: 1px solid var(--home-border); }
.ft-dark-page :focus-visible { outline-color: var(--home-accent); }
.ft-dark-page .ft-nav a:is(:hover, :focus-visible, [aria-current]) { color: var(--home-accent); }
.ft-dark-page .ft-page-hero { padding-block: clamp(3.5rem, 7vw, 7rem) clamp(2.5rem, 4.5vw, 4.5rem); border-bottom: 1px solid var(--home-border); }
.ft-dark-page .ft-page-hero > .ft-label { margin-block: 1rem 2rem; color: var(--home-accent); line-height: 1.7; }
.ft-dark-page .ft-page-hero h1 { max-width: 19ch; font-size: clamp(2.5rem, 5.1vw, 5rem); line-height: 1.08; letter-spacing: -.055em; overflow-wrap: anywhere; }
.ft-dark-page .ft-page-intro { max-width: 42rem; margin-top: 1.75rem; font-size: clamp(1.0625rem, 1.5vw, 1.3rem); line-height: 1.7; color: var(--home-muted); }
.ft-dark-page .ft-rich-text { color: var(--home-muted); font-size: 1.0625rem; line-height: 1.75; }
.ft-dark-page .ft-rich-text h2, .ft-dark-page .ft-rich-text h3 { color: var(--home-text); font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.25; }
.ft-dark-page .ft-rich-text > :first-child { margin-top: 0; }
.ft-dark-page .ft-rich-text a { color: var(--home-accent); }
.ft-dark-page .ft-rich-text + .ft-project-grid { margin-top: var(--home-heading-space); }
.ft-dark-page .ft-service-row :is(h2, h3) { color: var(--home-text); }
.ft-dark-page .ft-service-row p { font-size: 1rem; line-height: 1.7; }
.ft-dark-page .ft-service-list + .ft-prose { margin-top: var(--home-section-space); }
.ft-dark-page .ft-prose { max-width: 48rem; }
.ft-dark-page .ft-about-poster { width: var(--home-container-width); margin: var(--home-heading-space) auto 0; padding: 2rem 0; background: transparent; border-bottom: 1px solid var(--home-border); gap: 2rem; }
.ft-dark-page .ft-about-poster > span:first-child { display: flex; align-items: baseline; gap: .7rem; color: var(--home-text); font-size: clamp(3rem, 6vw, 5.5rem); }
.ft-dark-page .ft-about-poster > span:first-child span { font-size: 1rem; letter-spacing: -.035em; }
.ft-dark-page .ft-about-poster > span:last-child { font-size: .7rem; letter-spacing: .13em; color: var(--home-muted); }
.ft-dark-page .ft-about-poster + .ft-prose { margin-inline: auto max(calc(var(--home-gutter) / 2), calc((100vw - var(--home-max-width)) / 2)); width: min(46rem, calc(100% - var(--home-gutter))); }
.ft-dark-page .ft-contact-content h2 { font-size: var(--home-heading); line-height: 1.2; }
.ft-dark-page .ft-brief { max-width: 42rem; margin-top: var(--home-heading-space); }
.ft-dark-page .ft-brief .ft-label { color: var(--home-accent); }
.ft-dark-page .ft-brief li { color: var(--home-muted); margin-block: .75rem; padding-left: .4rem; }
.ft-dark-page .ft-technologies li { border-color: var(--home-border); background: var(--home-surface); color: var(--home-muted); }
.ft-dark-page .ft-project-images { gap: var(--home-grid-space); }
.ft-dark-page .ft-project-images:empty { display: none; }
@media (max-width: 47.99rem) {
  .ft-dark-page .ft-about-poster { align-items: start; flex-direction: column; gap: 1.5rem; }
  .ft-dark-page .ft-about-poster + .ft-prose { margin-inline: auto; }
  .ft-dark-page .ft-project-grid { grid-template-columns: 1fr; }
  .ft-dark-page .ft-project-card:last-child:nth-child(odd) { max-width: none; }
}

/* Keep phone screenshots at their native width rather than stretching their text. */
.ft-dark-page .ft-project-images .content-image[width="390"] { width: min(100%, 24.375rem); justify-self: start; }

