.portfolio-hero { max-width:1144px; margin:auto; padding:80px 28px 65px; }
.portfolio-hero h1 { font-size:clamp(3.7rem,8vw,7.2rem); margin:20px 0 30px; }
.hero-intro { display:flex; justify-content:space-between; align-items:end; gap:30px; }
.hero-intro p { max-width:550px; margin:0; color:var(--muted); font-size:.9rem; }
.hero-intro .text-link { flex-shrink:0; }
.portfolio-gallery { max-width:1144px; margin:auto; padding:0 28px 85px; scroll-margin-top:150px; }
.gallery-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px 0; border-top:1px solid var(--line); }
.gallery-heading h2 { font-size:2.2rem; }
.gallery-heading p { font-size:.72rem; color:var(--muted); }
.gallery-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:60px 40px; align-items:start; }
.portfolio-entry { min-width:0; scroll-margin-top:150px; }
.portfolio-entry:nth-child(2) { margin-top:85px; }
.portfolio-entry:nth-child(4) { margin-top:55px; }
.gallery-link { display:block; }
.image-frame { position:relative; overflow:hidden; background:#f7e5e2; }
.image-frame img { width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform .4s ease; }
.portfolio-entry:nth-child(3) .image-frame img { aspect-ratio:1; }
.image-prompt { position:absolute; right:15px; bottom:15px; padding:9px 14px; background:var(--paper); color:var(--navy); font-size:.64rem; text-transform:uppercase; letter-spacing:.12em; }
.gallery-link:hover img,.gallery-link:focus-visible img { transform:scale(1.035); }
.entry-heading { display:flex; gap:16px; align-items:baseline; margin-top:22px; }
.entry-number { font-family:'Cormorant Garamond',serif; color:var(--deep); font-size:1.3rem; }
.entry-heading h3 { font-size:clamp(1.8rem,3vw,2.6rem); }
.portfolio-entry p { color:var(--muted); font-size:.83rem; max-width:480px; margin:14px 0 0; }
.portfolio-note { background:#f7e5e2; padding:75px 28px; text-align:center; }
.portfolio-note p { max-width:520px; margin:20px auto 28px; color:var(--muted); font-size:.9rem; }
body:has(.image-dialog[open]) { overflow:hidden; }
.image-dialog { width:min(960px,calc(100% - 32px)); max-height:90dvh; padding:24px; border:1px solid var(--line); background:var(--paper); color:var(--ink); overscroll-behavior:contain; }
.image-dialog::backdrop { background:rgba(6,39,61,.78); }
.dialog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:20px; }
.dialog-close { background:transparent; color:var(--navy); border:1px solid var(--line); cursor:pointer; padding:9px 15px; font:inherit; font-size:.75rem; }
.dialog-close:hover { background:#f7e5e2; }
.dialog-close span { margin-left:10px; font-size:1rem; }
.detail-image { width:100%; max-height:60dvh; object-fit:contain; background:var(--cream); }
.detail-copy { padding:12px 0 8px; }
.detail-copy h2 { font-size:clamp(2rem,5vw,3rem); }
.detail-copy p { color:var(--muted); max-width:650px; font-size:.85rem; }
@media(max-width:800px) {
  .portfolio-hero { padding-top:45px; }
  .hero-intro { flex-direction:column; align-items:start; gap:20px; }
  .gallery-heading { align-items:start; flex-direction:column; gap:0; }
  .gallery-heading p { margin-top:0; }
  .gallery-grid { grid-template-columns:1fr; gap:40px; }
  .portfolio-entry:nth-child(2),.portfolio-entry:nth-child(4) { margin-top:0; }
  .image-frame img { aspect-ratio:1; }
  .image-dialog { padding:16px; }
}
