/* Round 2: shared sticky-sidebar frame (from v4). Load after base.css. */
.wrap{max-width:1180px;margin:0 auto;padding:72px 32px 120px;display:grid;grid-template-columns:240px 1fr;gap:80px}
aside{position:sticky;top:72px;align-self:start}
.portrait{width:172px;aspect-ratio:413/531;object-fit:cover;border-radius:2px}
aside h1{margin-top:22px;font-size:30px;font-weight:400;line-height:1.2}
aside .ko{font-size:17px}
aside .role{margin-top:12px;font-size:16px;line-height:1.55;color:var(--dim);font-style:italic}
aside .contact{list-style:none;margin-top:20px;font:500 14px/2 var(--sans)}
aside .contact a{color:var(--acc);text-decoration:none}
aside .contact a:hover{text-decoration:underline}
aside nav{margin-top:28px;padding-top:18px;border-top:1px solid var(--rule);font:500 13px/2.1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
aside nav a{display:block;color:var(--dim);text-decoration:none}
aside nav a:hover,aside nav a.on{color:var(--ink)}
main{min-width:0}
main section+section{margin-top:64px}
main section{scroll-margin-top:72px}
.more{display:inline-block;margin-top:24px;font:500 14px/1 var(--sans);color:var(--acc);text-decoration:none;letter-spacing:.02em}
.more:hover{text-decoration:underline}
main footer{margin-top:72px;padding-top:20px;border-top:1px solid var(--rule)}
@media(max-width:960px){
  .wrap{grid-template-columns:1fr;gap:48px;padding-top:48px}
  aside{position:static}
  .portrait{width:104px}
  aside h1{margin-top:16px}
  aside .contact{display:flex;flex-wrap:wrap;gap:0 20px}
  aside nav{display:none}
}
@media(max-width:560px){
  .wrap{padding:40px 24px 88px}
}
