/* Evidence-led portfolio, September 2026. */
body.portfolio-refresh { --cyan: #17647b; --magenta: #17647b; cursor: auto; }
.portfolio-refresh .cursor-dot, .portfolio-refresh .cursor-ring { display: none !important; }
.portfolio-refresh a, .portfolio-refresh button { cursor: pointer; }
.portfolio-refresh .noise-overlay { display: none; }
.portfolio-refresh .container { max-width: 1240px; }
.portfolio-refresh section:not(.cinematic-hero) { padding: 88px 0; }
.portfolio-refresh .section-head { max-width: 760px; margin-bottom: 36px; }
.portfolio-refresh .section-head h2 { font-size: clamp(2rem, 3.3vw, 3rem); line-height: 1.13; letter-spacing: -.045em; }
.portfolio-refresh .kicker { color: #17647b; letter-spacing: .14em; }
.portfolio-refresh .btn { border-radius: 6px; font-family: var(--font-body); letter-spacing: 0; }
.portfolio-refresh .btn-primary { background: #17647b; color: #fff; box-shadow: none; }
.portfolio-refresh .btn-primary::after { display: none; }
.portfolio-refresh .btn-ghost { border-color: #a5afb5; }
.proof-strip { border-bottom: 1px solid #d9dcd9; background: #eeefeb; }
.proof-strip .container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 18px 28px; padding-block: 26px; }
.proof-strip p { margin: 0; color: #52606a; font: 500 .72rem/1.6 var(--font-mono); text-transform: uppercase; letter-spacing: .1em; }
.proof-strip a { color: #233b4a; font-size: .88rem; font-weight: 600; }
.proof-strip a:hover, .evidence-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.capability-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.capability { border-top: 1px solid #b6c1c5; padding-top: 24px; }
.capability .index { color: #17647b; font: 500 .8rem var(--font-mono); }
.capability h3 { margin: 18px 0 12px; font-size: 1.6rem; letter-spacing: -.04em; }
.capability p { color: #52606a; font-size: .96rem; }
.capability ul { padding-left: 18px; color: #36434c; font-size: .88rem; line-height: 1.9; margin: 22px 0; }
.evidence-link { display: inline-block; color: #17647b; font-size: .87rem; font-weight: 600; padding-block: 8px; }
.selected-work { background: #e9ece9; }
.case-study { display: grid; grid-template-columns: .85fr 1.15fr; gap: 52px; padding: 42px; background: #fafbf8; border: 1px solid #d6ddda; border-radius: 12px; margin-bottom: 22px; }
.case-study .case-label { color: #17647b; font: 500 .7rem/1.6 var(--font-mono); letter-spacing: .09em; text-transform: uppercase; }
.case-study h3 { font-size: 2rem; letter-spacing: -.045em; line-height: 1.15; margin: 12px 0; }
.case-study .case-intro { color: #52606a; }
.case-study dl { margin: 0; }
.case-study dt { font-weight: 600; font-size: .8rem; color: #17647b; margin-bottom: 6px; }
.case-study dd { margin: 0 0 20px; color: #36434c; font-size: .92rem; }
.case-study .case-links { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.signal-flow { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.signal-flow span { border: 1px solid #ced9dc; border-radius: 4px; padding: 6px 9px; color: #375566; font: 500 .7rem var(--font-mono); }
.contribution-list { border-top: 1px solid #cbd3d6; }
.contribution { display: grid; grid-template-columns: 190px 1fr auto; gap: 24px; align-items: baseline; padding: 24px 0; border-bottom: 1px solid #cbd3d6; }
.contribution h3 { margin: 0; font-size: 1.05rem; }
.contribution p { margin: 0; color: #52606a; font-size: .92rem; }
.career-callout { background: #142c3c; color: #fff; }
.career-callout .container { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: center; }
.career-callout h2 { font-size: clamp(2rem, 3vw, 3rem); letter-spacing: -.045em; line-height: 1.15; margin: 12px 0 20px; }
.career-callout .kicker { color: #98c7e9; }
.career-callout p { color: #c6d4de; }
.career-callout .btn-primary { background: #98c7e9; color: #10202d; }
.career-callout .btn-ghost { color: #fff; border-color: #7895a8; }
.career-callout .career-note { border-left: 1px solid #547083; padding-left: 32px; }
.career-callout .career-note a { color: #b7dcf7; text-decoration: underline; text-underline-offset: 4px; }
.portfolio-refresh .closing { text-align: center; }
.portfolio-refresh .closing h2 { font-size: clamp(2rem, 4vw, 3.5rem); letter-spacing: -.045em; margin: 0 0 18px; }
.portfolio-refresh .closing p { color: #52606a; max-width: 560px; margin: 0 auto 26px; }
.portfolio-refresh [id] { scroll-margin-top: 110px; }
@media (max-width: 900px) {
  .capability-grid { gap: 24px; }
  .case-study { gap: 30px; padding: 30px; }
  .career-callout .container { gap: 32px; }
  .contribution { grid-template-columns: 150px 1fr; }
  .contribution > a { grid-column: 2; }
}
@media (max-width: 660px) {
  .portfolio-refresh section:not(.cinematic-hero) { padding: 58px 0; }
  .proof-strip .container { justify-content: flex-start; }
  .proof-strip p { width: 100%; }
  .capability-grid, .case-study, .career-callout .container { grid-template-columns: 1fr; }
  .capability-grid { gap: 32px; }
  .case-study { padding: 24px; gap: 20px; }
  .contribution { grid-template-columns: 1fr; gap: 8px; }
  .contribution > a { grid-column: auto; }
  .career-callout .career-note { padding-left: 22px; }
}

/* Keep the original portrait-led opening at least one full viewport tall,
   including when browser zoom increases the viewport measured in CSS pixels. */
.home-cinematic.portfolio-refresh .cinematic-hero { min-height: max(760px, 100svh); }
.home-cinematic.portfolio-refresh .cinematic-hero .container { min-height: calc(max(760px, 100svh) - 86px); }
@media (max-width: 900px) {
  .home-cinematic.portfolio-refresh .cinematic-hero { min-height: max(850px, 100svh); }
  .home-cinematic.portfolio-refresh .cinematic-hero .container { min-height: calc(max(850px, 100svh) - 86px); }
}
@media (max-width: 660px) {
  .home-cinematic.portfolio-refresh .cinematic-hero { min-height: max(790px, 100svh); }
  .home-cinematic.portfolio-refresh .cinematic-hero .container { min-height: calc(max(790px, 100svh) - 78px); }
}

.recommendation-card { max-width: 780px; margin: 0 auto; padding: 56px 48px; border: 1px solid var(--panel-border); border-radius: 14px; background: var(--bg-elev); color: var(--text); text-align: center; position: relative; }
.recommendation-card .quote-mark { display: block; margin-bottom: 4px; color: var(--panel-border); font: 700 3.5rem/1 var(--font-display); }
.recommendation-card blockquote { margin: 0 0 28px; font: 500 clamp(1.1rem, 1.8vw, 1.4rem)/1.6 var(--font-display); letter-spacing: -.02em; color: var(--text); }
.recommendation-card figcaption { display: grid; justify-items: center; gap: 4px; color: var(--text-dim); font-size: .88rem; }
.recommendation-card figcaption strong { color: var(--text); font-size: .95rem; }
.recommendation-card img { display: block; width: 96px; height: auto; margin-top: 20px; opacity: .8; }
@media (max-width: 660px) { .recommendation-card { padding: 36px 24px; } }
