:root {
  color-scheme: dark;
  --page-bg: #01010b;
  --text: #fff;
  --muted: rgba(255,255,255,.5);
  --line: rgba(255,255,255,.19);
  --detail-width: 1240px;
  --image-width: 1240px;
  --detail-ease: cubic-bezier(.22,1,.36,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--page-bg); }
body { margin: 0; color: var(--text); background: var(--page-bg); font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif; }
.project-page { width: 100%; min-height: 100vh; padding: 157px 0 72px; background: var(--page-bg); }
.project-sidebar { min-width: 0; }
.project-info {
  width: min(var(--detail-width), calc(100% - 200px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 887px) minmax(260px, 327px);
  grid-template-rows: 1px auto;
  column-gap: 26px;
}
.project-title-row {
  grid-column: 1;
  grid-row: 1 / span 2;
  display: grid;
  grid-template-columns: 51px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  align-self: start;
}
.back-button { position: relative; display: block; width: 51px; height: 51px; border-radius: 50%; transition: transform .45s var(--detail-ease); }
.back-button:hover { transform: translateX(-3px); }
.back-button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.back-circle { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.back-arrow { position: absolute; left: 50%; top: 50%; width: 14.4px; height: 14.4px; transform: translate(-50%, -50%); }
h1 {
  margin: 0;
  max-width: 812px;
  font-family: "Test Signifier", Georgia, "Times New Roman", serif;
  font-size: 32px;
  font-weight: 400;
  line-height: 48px;
  letter-spacing: -.64px;
}
.project-rule { grid-column: 2; grid-row: 1; width: 100%; height: 1px; margin: 14px 0 0; background: var(--line); }
.project-meta { grid-column: 2; grid-row: 2; width: 100%; margin: 15px 0 0; }
.project-meta > div { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 35px; }
.project-meta dt, .project-meta dd { margin: 0; font-size: 14px; }
.project-meta dt { line-height: 1.4; letter-spacing: -.28px; }
.project-meta dd { color: var(--muted); line-height: 1.7; letter-spacing: .14px; text-align: right; }
.project-gallery {
  width: min(var(--image-width), calc(100% - 48px));
  margin: 29px auto 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.project-gallery img { display: block; width: 100%; height: auto; background: #0b031a; }
.project-info.reveal,
.project-gallery img.reveal {
  opacity: 0;
  filter: blur(5px);
  transform: translateY(32px);
  transition: opacity .9s var(--detail-ease), filter .9s var(--detail-ease), transform .9s var(--detail-ease);
}
.project-info.reveal.visible,
.project-gallery img.reveal.visible { opacity: 1; filter: blur(0); transform: translateY(0); }
@media (max-width: 1100px) {
  .project-info { width: calc(100% - 96px); grid-template-columns: minmax(0, 1fr) minmax(250px, 30%); }
}
@media (max-width: 800px) {
  .project-page { padding: 112px 0 44px; }
  .project-info { width: calc(100% - 44px); display: block; }
  .project-title-row { grid-template-columns: 44px minmax(0, 1fr); gap: 17px; }
  .back-button, .back-circle { width: 44px; height: 44px; }
  .back-arrow { width: 13px; height: 13px; }
  h1 { font-size: clamp(22px, 7vw, 30px); line-height: 1.2; letter-spacing: -.5px; }
  .project-rule { width: calc(100% - 61px); margin: 34px 0 0 61px; }
  .project-meta { width: calc(100% - 61px); margin: 18px 0 0 61px; }
  .project-gallery { width: calc(100% - 44px); margin-top: 48px; gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .project-info.reveal, .project-gallery img.reveal { opacity: 1; filter: none; transform: none; transition: none; }
}
