.portfolio-project { max-width: 1200px; margin: 0 auto; padding: 30px 40px 80px; color: #1a1b1f; }
.portfolio-project p { margin: 0 0 22px; }
.portfolio-project a { color: inherit; }
.portfolio-back { display: inline-block; margin-bottom: 48px; font-size: 13px; text-decoration: none; }
.portfolio-kicker { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #626469; }
.portfolio-intro h1 { margin: 14px 0 24px; font-size: clamp(32px, 5.1vw, 66px); line-height: 1.2; font-weight: 500; letter-spacing: -.035em; overflow-wrap: anywhere; }
.portfolio-deck { max-width: 850px; font-size: clamp(22px, 2.7vw, 32px); line-height: 1.4; }
.portfolio-summary { max-width: 750px; font-size: 17px; line-height: 1.8; color: #52545a; }
.portfolio-japanese { font-size: 15px; line-height: 2; letter-spacing: .025em; }
.portfolio-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 30px; font-size: 13px; }
.portfolio-links:empty { display: none; }
.portfolio-link { text-underline-offset: 5px; }
.portfolio-hero { margin: 48px 0 38px; }
.portfolio-hero img { display: block; width: 100%; height: auto; }
.portfolio-hero video { display: block; width: 100%; height: auto; background: #111; }
.portfolio-hero figcaption, .portfolio-gallery figcaption { margin-top: 10px; font-size: 11px; line-height: 1.6; color: #72747a; }
.portfolio-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; margin: 0 0 80px; padding: 26px 0; border-top: 1px solid #e1e1e3; border-bottom: 1px solid #e1e1e3; }
.portfolio-facts dt { margin-bottom: 10px; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: #72747a; }
.portfolio-facts dd { margin: 0; font-size: 13px; line-height: 1.9; white-space: pre-line; overflow-wrap: anywhere; }
.portfolio-section { display: grid; grid-template-columns: 1fr 2fr; gap: 64px; padding-bottom: 60px; margin-bottom: 60px; border-bottom: 1px solid #e1e1e3; }
.portfolio-section-label > span { display: block; margin-bottom: 18px; font-size: 12px; color: #85878a; }
.portfolio-section h2 { margin: 0; font-size: 29px; line-height: 1.4; font-weight: 400; letter-spacing: -.025em; }
.portfolio-copy { min-width: 0; font-size: 16px; line-height: 1.9; }
.portfolio-translation { margin-top: 32px; color: #606269; font-size: 14px; line-height: 2.1; }
.portfolio-steps { margin: 0; padding-left: 22px; }
.portfolio-steps li { padding-left: 8px; margin-bottom: 28px; }
.portfolio-steps h3 { margin: 0 0 8px; font-size: 18px; line-height: 1.6; font-weight: 500; }
.portfolio-steps p[lang="ja"] { color: #606269; font-size: 14px; }
.portfolio-gallery { max-width: 440px; margin: 0 auto 70px; }
.portfolio-gallery img { width: 100%; height: auto; display: block; }
.portfolio-documentation { margin-bottom: 70px; }
.portfolio-documentation h2 { font-size: 29px; line-height: 1.4; font-weight: 400; margin: 0 0 28px; }
.portfolio-gallery-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.portfolio-gallery-grid .portfolio-gallery { max-width: none; margin: 0; }
.portfolio-gallery-grid .portfolio-gallery:only-child { grid-column: 1 / -1; }
.portfolio-gallery-grid-wide { grid-template-columns: 1fr; }
.portfolio-footer { display: flex; justify-content: space-between; gap: 20px; font-size: 12px; color: #72747a; }
.portfolio-project a:focus-visible { outline: 2px solid #46675a; outline-offset: 5px; }
@media (max-width: 767px) {
  .portfolio-project { padding: 20px 24px 50px; }
  .portfolio-back { margin-bottom: 32px; }
  .portfolio-kicker { font-size: 10px; line-height: 1.8; }
  .portfolio-summary { font-size: 15px; }
  .portfolio-japanese { font-size: 13px; }
  .portfolio-hero { margin-top: 32px; }
  .portfolio-facts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; margin-bottom: 50px; }
  .portfolio-section { grid-template-columns: 1fr; gap: 28px; padding-bottom: 44px; margin-bottom: 44px; }
  .portfolio-section h2 { font-size: 26px; }
  .portfolio-copy { font-size: 15px; }
  .portfolio-translation, .portfolio-steps p[lang="ja"] { font-size: 13px; }
  .portfolio-footer { flex-direction: column; gap: 14px; }
  .portfolio-gallery-grid { grid-template-columns: 1fr; gap: 32px; }
}
