.project-directory { min-height: 55vh; }
.project-directory-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 60px; margin-bottom: 55px; }
.project-directory-heading .overline { margin-bottom: 18px; }
.project-directory-heading h1 { color: #f0d49a; }
.project-directory-heading > p { max-width: 320px; color: #d6e0ed; font-size: 14px; line-height: 1.8; }
.project-list-heading { margin-bottom: 14px; color: #d8be88; font-size: 10px; letter-spacing: 2px; }
.project-name-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
.project-name-link { display: flex; align-items: center; gap: 36px; min-height: 126px; padding: 28px 36px; border: 1px solid #cbb07888; border-radius: 20px; background: linear-gradient(115deg, #102b45ed, #07192ddd); box-shadow: inset 0 1px 0 #f6dfb119; transition: border-color .2s, background .2s; }
.project-name-link:hover { border-color: #f0d49a; background: #17344ce8; }
.project-index { color: #d0b77f99; font-size: 16px; font-variant-numeric: tabular-nums; }
.project-name-link h2 { margin: 0; color: #fff7e9; font-size: 30px; line-height: 1.3; letter-spacing: -.6px; overflow-wrap: anywhere; }
.project-open-label { display: flex; align-items: center; gap: 22px; margin-left: auto; color: #e8cd95; font-size: 12px; flex-shrink: 0; }
.project-open-label b { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #d1b77e66; border-radius: 50%; font-size: 23px; font-weight: 400; }
.project-back-link { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 24px; color: #e8cd95; font-size: 13px; border-bottom: 1px solid #d1b77e55; }
.project-back-link:hover { color: #fff2cd; border-color: currentColor; }
.project-detail-heading { margin-bottom: 32px; }
.project-detail-heading h1 { color: #f0d49a; }
.project-detail-heading p { max-width: 700px; margin-top: 18px; color: #d6e0ed; font-size: 15px; line-height: 1.8; }
.project-detail-gallery { width: fit-content; max-width: 100%; margin: 0 auto; }
.project-image-frame { display: flex; align-items: center; justify-content: center; padding: 9px; border: 1px solid #cbb07888; border-radius: 26px; background: #071a32aa; }
.project-image-frame img { display: block; width: auto; height: auto; max-width: 100%; max-height: min(76vh, 800px); object-fit: contain; border-radius: 16px; image-orientation: from-image; }
.project-gallery-meta { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 4px; color: #d8be88; font-size: 12px; }
[data-project-counter] { font-variant-numeric: tabular-nums; letter-spacing: 2px; }
.project-gallery-meta a { padding: 8px 0; border-bottom: 1px solid #d1b77e66; }
.project-thumbnails { display: flex; gap: 12px; overflow-x: auto; padding: 4px 4px 14px; }
[data-project-thumb] { flex: 0 0 88px; width: 88px; height: 104px; padding: 5px; border: 1px solid #cbb07866; border-radius: 13px; background: #071a32; }
[data-project-thumb][aria-pressed="true"] { border-color: #f4d58d; box-shadow: 0 0 0 1px #f4d58d; }
[data-project-thumb] img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
@media (max-width: 640px) {
  .project-directory-heading { display: block; margin-bottom: 36px; }
  .project-directory-heading > p { margin-top: 22px; }
  .project-name-link { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px 16px; padding: 22px; min-height: 136px; border-radius: 18px; }
  .project-name-link h2 { font-size: 26px; }
  .project-open-label { grid-column: 2; margin-left: 0; justify-content: space-between; }
  .project-open-label b { width: 34px; height: 34px; font-size: 20px; }
  .project-back-link { margin-bottom: 22px; }
  .project-detail-heading { margin-bottom: 26px; }
  .project-image-frame { padding: 7px; border-radius: 22px; }
  .project-image-frame img { height: auto; max-height: 70vh; min-height: 0; border-radius: 14px; }
}
