.portfolio-page { color: var(--ink); background: #f2ede2; }
.portfolio-header { position: absolute; z-index: 20; inset: 0 0 auto; color: var(--white); }
.portfolio-header-inner { min-height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid rgba(255,255,255,.14); }
.portfolio-header nav { display: flex; align-items: center; gap: 28px; }
.portfolio-header nav a { color: rgba(255,255,255,.74); font-size: .8rem; font-weight: 760; text-decoration: none; }
.portfolio-header nav a:hover, .portfolio-header nav a[aria-current="page"] { color: var(--sun); }
.portfolio-header .portfolio-nav-cta { padding: 11px 16px; color: var(--ink); background: var(--white); border-radius: 999px; }
.portfolio-header .portfolio-nav-cta:hover { color: var(--ink); background: var(--sun); }

.portfolio-hero { min-height: 760px; padding: 210px 0 54px; color: var(--white); background: var(--forest-deep); }
.portfolio-hero-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); align-items: end; gap: 100px; }
.portfolio-kicker { margin: 0 0 26px; display: flex; align-items: center; gap: 11px; color: var(--mint); font-size: .72rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.portfolio-kicker span { width: 30px; height: 2px; background: var(--coral); }
.portfolio-hero h1 { max-width: 850px; margin: 0; font-size: clamp(4rem,8.3vw,8.6rem); line-height: .84; letter-spacing: -.075em; }
.portfolio-hero h1 em, .portfolio-closing h2 em { display: block; color: var(--coral); font-family: Georgia, serif; font-weight: 400; }
.portfolio-hero-note { padding: 0 0 12px 30px; border-left: 1px solid rgba(255,255,255,.2); }
.portfolio-hero-note > span { color: var(--sun); font-size: .67rem; font-weight: 820; letter-spacing: .1em; text-transform: uppercase; }
.portfolio-hero-note p { margin: 22px 0 28px; color: rgba(255,255,255,.67); font-size: 1rem; }
.portfolio-hero-note a { color: var(--white); font-size: .8rem; font-weight: 800; text-underline-offset: 6px; }
.portfolio-rule { width: var(--shell); margin: 100px auto 0; display: flex; align-items: center; gap: 18px; color: rgba(255,255,255,.42); font: 700 .61rem/1 ui-monospace,monospace; letter-spacing: .13em; }
.portfolio-rule i { height: 1px; flex: 1; background: linear-gradient(90deg,var(--coral),rgba(255,255,255,.12)); }

.projects { width: var(--shell); margin: 0 auto; padding: 150px 0 50px; }
.project { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(330px,.8fr); align-items: center; gap: clamp(55px,8vw,125px); padding: 0 0 150px; }
.project-reverse .project-visual { order: 2; }
.project-reverse .project-copy { order: 1; }
.project-visual { position: relative; display: block; overflow: hidden; color: var(--white); background: var(--forest); border-radius: 5px 52px 5px 5px; box-shadow: 0 30px 75px rgba(13,46,43,.16); text-decoration: none; }
.project-reverse .project-visual { border-radius: 52px 5px 5px 5px; }
.project-visual picture, .project-visual img { width: 100%; display: block; }
.project-visual img { aspect-ratio: 1200 / 630; object-fit: cover; transition: transform .55s ease, filter .55s ease; }
.project-visual:hover img { transform: scale(1.025); filter: saturate(1.08); }
.project-visual > span { position: absolute; right: 18px; bottom: 18px; padding: 10px 12px; display: flex; align-items: center; gap: 18px; color: var(--ink); background: var(--sun); border-radius: 999px; font-size: .7rem; font-weight: 850; }
.project-meta { display: flex; align-items: center; gap: 20px; }
.project-meta b { color: var(--coral); font: italic 400 2.2rem/1 Georgia,serif; }
.project-meta span { color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.project-copy h2 { margin: 26px 0 22px; font-size: clamp(3rem,5vw,5.5rem); line-height: .88; letter-spacing: -.065em; }
.project-copy > p { max-width: 540px; color: #5d6b67; }
.project-copy .project-statement { color: var(--forest); font-family: Georgia,serif; font-size: clamp(1.25rem,2vw,1.65rem); line-height: 1.35; }
.project-copy ul { margin: 29px 0 35px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.project-copy li { padding: 7px 10px; color: var(--forest); border: 1px solid rgba(23,63,58,.22); border-radius: 999px; font-size: .66rem; font-weight: 760; }
.project-link { display: inline-flex; align-items: center; gap: 14px; color: var(--forest); border-bottom: 1px solid rgba(23,63,58,.35); padding-bottom: 6px; font-size: .8rem; font-weight: 850; text-decoration: none; }
.project-link span { color: var(--coral); }

.portfolio-closing { padding: 130px 0; color: var(--white); background: var(--forest); }
.portfolio-closing h2 { max-width: 1030px; margin: 0; font-size: clamp(3.3rem,6.5vw,6.9rem); line-height: .9; letter-spacing: -.07em; }
.portfolio-closing h2 em { color: var(--sun); }
.portfolio-closing .shell > div { margin-top: 45px; display: flex; align-items: center; gap: 30px; }
.project-link.light { color: var(--white); border-color: rgba(255,255,255,.4); }
.portfolio-footer { padding: 55px 0 26px; color: var(--white); background: #081f1d; }
.portfolio-footer > div { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.portfolio-footer > div > div { display: flex; align-items: flex-end; flex-direction: column; gap: 7px; color: rgba(255,255,255,.56); font-size: .72rem; }
.portfolio-footer a { color: inherit; text-decoration: none; }

@media (max-width: 900px) {
  .portfolio-hero { min-height: 0; }
  .portfolio-hero-grid, .project { grid-template-columns: 1fr; }
  .portfolio-hero-grid { gap: 60px; }
  .project { gap: 48px; }
  .project-reverse .project-visual, .project-reverse .project-copy { order: initial; }
  .portfolio-header nav > a:not(.portfolio-nav-cta) { display: none; }
}

@media (max-width: 600px) {
  .portfolio-header-inner { min-height: 78px; }
  .portfolio-header .portfolio-nav-cta { padding: 9px 12px; font-size: .7rem; }
  .portfolio-hero { padding: 150px 0 46px; }
  .portfolio-hero h1 { font-size: clamp(3.3rem,16vw,4.8rem); }
  .portfolio-hero-note { padding-left: 20px; }
  .portfolio-rule { margin-top: 70px; }
  .projects { padding-top: 90px; }
  .project { padding-bottom: 100px; }
  .project-visual, .project-reverse .project-visual { border-radius: 4px 28px 4px 4px; }
  .portfolio-closing { padding: 90px 0; }
  .portfolio-closing h2 { font-size: clamp(3rem,14vw,4.6rem); }
  .portfolio-closing .shell > div { align-items: stretch; flex-direction: column; }
  .portfolio-footer > div { align-items: flex-start; flex-direction: column; }
  .portfolio-footer > div > div { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .project-visual img { transition: none; }
}
