/* Additions scoped to the portfolio; shared map and hero styles stay intact. */
.home-main { display:block; padding-bottom:0; }
.portfolio-section { margin-top:100px; scroll-margin-top:30px; }
.section-label { color:var(--brand-cyan); margin:0 0 18px; }
.portfolio-section h2 { font-size:clamp(30px,4.2vw,54px); font-weight:550; letter-spacing:-.055em; line-height:1.15; margin:0 0 24px; text-wrap:balance; }
.about-copy { max-width:650px; }
.about-copy p { font-size:clamp(16px,1.5vw,19px); line-height:1.85; color:var(--muted); margin:0 0 20px; }
.portfolio-section::before { content:""; display:block; width:55px; height:2px; background:var(--brand-gradient); margin-bottom:35px; }
.interests-grid { display:grid; gap:16px; }
.interest-card { border:1px solid var(--line); border-radius:14px; background:var(--brand-background-light); padding:28px; }
.interest-card svg { width:29px; height:29px; color:var(--brand-cyan); margin-bottom:25px; }
.interest-card h3 { font-size:20px; font-weight:550; letter-spacing:-.4px; margin:0 0 12px; }
.interest-card p { color:var(--muted); font-size:14px; line-height:1.8; max-width:29ch; margin:0; }
.section-subtitle { color:var(--muted); font-size:15px; line-height:1.7; margin:0 0 28px; }
.section-heading { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:10px 25px; margin-bottom:22px; }
.section-heading h2 { margin-bottom:0; }
.section-heading .section-subtitle { margin:16px 0 0; }
.quiet-note { color:var(--muted); font-size:12px; line-height:1.7; }
.quiet-note:empty { display:none; }
.travel-section { padding:35px 25px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(120deg,#08233b,#031525); margin-bottom:65px; }
.portfolio-link { display:inline-flex; align-items:center; justify-content:space-between; gap:15px; border:1px solid var(--brand-cyan); border-radius:8px; color:var(--ink); padding:13px 16px; font-size:13px; line-height:1.5; }
.portfolio-link span { color:var(--brand-turquoise); }
.travel-stats { display:flex; gap:30px; margin:35px 0 0; }
.travel-stats div { display:flex; flex-direction:column-reverse; }
.travel-stats dd { font-size:clamp(46px,7vw,76px); line-height:1.1; letter-spacing:-.06em; margin:0 0 10px; color:var(--brand-turquoise); }
.travel-stats dt { color:var(--muted); font-size:12px; }
.portfolio-footer { align-items:center; }
.portfolio-footer > a { color:var(--ink); font-weight:600; }
.portfolio-footer > div { display:flex; gap:25px; }
@media(min-width:621px) {
  .portfolio-section { margin-top:130px; }
  .interests-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .travel-section { padding:50px 40px; }
}
@media(min-width:1000px) {
  .portfolio-section { margin-top:155px; }
  .interest-card { padding:35px; }
  .travel-section { padding:60px; margin-bottom:90px; }
  .travel-content { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:30px; }
  .travel-content .portfolio-link { justify-self:start; }
  .travel-stats { justify-content:flex-end; gap:60px; margin:0; }
}
@media(max-width:620px) {
  .home .header { height:auto; min-height:125px; flex-wrap:wrap; padding:16px 0; }
  .home .header nav { gap:15px; flex-wrap:wrap; justify-content:flex-end; max-width:210px; }
  .home .header nav a { padding:8px 0; }
  .quiet-note { font-size:11px; }
}
@media(max-width:359px) {
  .home .header nav { max-width:none; justify-content:space-between; gap:9px; }
}
@media(hover:hover) {
  .interest-card:hover { border-color:#34748b; transform:translateY(-3px); }
  .photo-open:hover { border-color:var(--brand-cyan); }
  .photo-open:hover img { transform:scale(1.025); }
  .portfolio-link:hover { background:#0b354b; color:var(--ink); }
  .photo-viewer button:hover { border-color:var(--brand-cyan); }
}
@media(prefers-reduced-motion:no-preference) {
  html { scroll-behavior:smooth; }
  .interest-card, .photo-open, .portfolio-link { transition:transform .2s,border-color .2s,background .2s; }
  .photo-open img { transition:transform .35s; }
  .reveal-pending { opacity:0; transform:translateY(15px); }
  .portfolio-section { transition:opacity .55s,transform .55s; }
}
/* Portrait and text form a shared introduction without changing the photo selection. */
.about-layout { display:grid; gap:28px; align-items:start; }
.about-portrait { margin:0; width:100%; max-width:440px; }
.about-portrait img { display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:14px; }
.about-portrait figcaption { color:var(--muted); font-size:11px; line-height:1.7; padding:13px 3px 0; }
@media(min-width:760px) {
  .about-layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr); gap:clamp(32px,5vw,80px); }
  .about-portrait { position:sticky; top:var(--header-offset); }
}
/* Four thematic entry points; each opens a separate photo collection. */
.personal-collage { grid-template-columns:minmax(0,1fr); gap:28px 24px; }
.personal-collage .photo-open { aspect-ratio:4/3; max-height:250px; }
.personal-collage .photo-open img { position:absolute; inset:0; }
.personal-collage [data-photo-id="photo-028"] img { object-fit:contain; }
.personal-collage .photo-card figcaption { display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding-top:14px; }
.personal-collage figcaption strong { max-width:100%; overflow-wrap:anywhere; hyphens:auto; font-size:18px; color:var(--ink); font-weight:550; }
.personal-collage figcaption span { font-size:12px; }
@media(min-width:380px) {
  .personal-collage { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(min-width:1000px) { .personal-collage { grid-template-columns:repeat(3,minmax(0,1fr)); } }
