/* Shared presentation layer for the GSVC project pages. Original styles remain intact. */
body.project-theme {
  --series-ink: #15223b;
  --series-muted: #63708a;
  --series-accent: #2c5ccc;
  --series-border: #e2e7f0;
  --primary-color: #2c5ccc;
  --text-primary: #15223b;
  --text-secondary: #63708a;
  padding: 0;
  min-width: 320px;
  background: radial-gradient(circle at 88% 2%, #dceaff, transparent 30%),
              radial-gradient(circle at 8% 48%, #e9e3ff, transparent 28%),
              #f8f9fc;
  color: var(--series-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.65;
}

.project-theme .container.is-max-desktop { max-width: 1000px; }
.project-theme .hero,
.project-theme .section { animation: none; }
.project-theme a:not(.button):not(.work-item) { color: var(--series-accent); }
.project-theme a:focus-visible,
.project-theme button:focus-visible,
.project-theme summary:focus-visible { outline: 3px solid #87a7ef; outline-offset: 3px; }

.project-theme .all-projects-link {
  display: inline-block;
  margin-bottom: 1.75rem;
  color: var(--series-accent);
  font-size: .95rem;
  font-weight: 650;
  text-decoration: none;
}
.project-theme .all-projects-link:hover { text-decoration: underline; }

.gsvc-page > .hero:first-of-type,
.pgsvc-page #main-content > .hero:first-child {
  max-width: 1120px;
  margin: 0 auto;
  background: transparent;
  overflow: visible;
}
.gsvc-page > .hero:first-of-type .hero-body,
.pgsvc-page #main-content > .hero:first-child .hero-body {
  padding: 86px 24px 68px;
}
.project-theme .publication-title,
.pgsvc-page .publication-title {
  color: var(--series-ink) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 500 !important;
  letter-spacing: -.045em;
  line-height: 1.09 !important;
  text-wrap: balance;
}
.gsvc-page .publication-title.is-1 {
  margin: 0 0 .35rem !important;
  color: var(--series-accent) !important;
  font-size: clamp(2.2rem, 5vw, 3.6rem) !important;
}
.gsvc-page .publication-title.is-2,
.pgsvc-page .publication-title.is-1 {
  max-width: 960px;
  margin: 0 auto 1.8rem !important;
  font-size: clamp(2.4rem, 5.6vw, 4.6rem) !important;
}
.pgsvc-page .publication-title > span { color: var(--series-accent); }
.project-theme .publication-authors {
  color: var(--series-muted);
  font-family: inherit !important;
  line-height: 1.65;
}
.project-theme .publication-authors a,
.project-theme .author-block a { color: var(--series-accent) !important; }
.project-theme .publication-links { margin: 1.45rem 0; }
.project-theme .publication-links .button {
  margin: .25rem;
  padding: .75rem 1.2rem;
  border: 1px solid #cad8f1 !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-shadow: 0 5px 14px rgba(30, 55, 100, .08);
  color: var(--series-ink) !important;
  font-weight: 650 !important;
}
.project-theme .publication-links .button:hover {
  border-color: var(--series-accent) !important;
  background: #edf3ff !important;
  color: var(--series-accent) !important;
  transform: translateY(-2px);
}

.gsvc-page > .section,
.gsvc-page > .hero.teaser,
.pgsvc-page #main-content > .hero:not(:first-child) {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto 28px;
  border: 1px solid var(--series-border);
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 16px 46px rgba(31, 48, 85, .07);
  overflow: hidden;
}
.gsvc-page > .section { padding: clamp(26px, 4vw, 48px); }
.gsvc-page > .hero.teaser { padding: clamp(24px, 4vw, 42px); }
.gsvc-page > .hero.teaser .container { max-width: 1000px; }
.pgsvc-page #main-content > .hero:not(:first-child) .hero-body {
  padding: clamp(26px, 4vw, 48px);
}
.project-theme .title.is-3 {
  margin-top: 0 !important;
  margin-bottom: 1.35rem;
  color: var(--series-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 3.2vw, 2.65rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.2;
}
.project-theme .title.is-4 {
  color: var(--series-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.4rem, 2.3vw, 1.8rem);
  font-weight: 500;
  line-height: 1.25;
}
.project-theme .content,
.project-theme .subtitle {
  color: #42516d;
  font-size: 1.02rem;
  line-height: 1.8;
}
.project-theme .content p { line-height: 1.8; }
.project-theme hr {
  width: 100% !important;
  height: 1px !important;
  margin: 1.3rem auto 2rem !important;
  border: 0 !important;
  background: var(--series-border) !important;
}

.project-theme video,
.project-theme img { max-width: 100%; }
.project-theme #teaser,
.project-theme .results-carousel video,
.pgsvc-page figure.image img {
  display: block;
  border-radius: 14px;
}
.project-theme #teaser,
.pgsvc-page figure.image img,
.gsvc-page .section img.center {
  box-shadow: 0 10px 30px rgba(31, 48, 85, .10);
}
.project-theme .triple-compare__viewport,
.project-theme .triple-video-wrapper,
.project-theme .video-wrapper {
  border-radius: 14px;
  background: #101b30;
  box-shadow: 0 10px 28px rgba(24, 40, 70, .14);
}
.gsvc-page .trace-card,
.gsvc-page .comparison-container {
  border: 1px solid var(--series-border);
  border-radius: 16px;
  background: #fbfcff;
  box-shadow: none;
}
.gsvc-page .trace-card { margin: 1.8rem 0; }
.project-theme .video-controls button,
.project-theme .triple-controls button {
  border: 1px solid #cad8f1 !important;
  border-radius: 9px !important;
  background: #fff !important;
  box-shadow: none;
  color: var(--series-accent) !important;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 650;
}
.project-theme .video-controls button:hover,
.project-theme .triple-controls button:hover {
  border-color: var(--series-accent) !important;
  background: #edf3ff !important;
}
.project-theme .footer {
  margin-top: 56px;
  border-top: 1px solid var(--series-border);
  background: transparent;
  color: var(--series-muted);
}
.project-theme .footer .content { color: var(--series-muted); font-size: .9rem; }

@media (max-width: 720px) {
  .gsvc-page > .hero:first-of-type .hero-body,
  .pgsvc-page #main-content > .hero:first-child .hero-body { padding: 78px 18px 40px; }
  .gsvc-page > .section,
  .gsvc-page > .hero.teaser,
  .pgsvc-page #main-content > .hero:not(:first-child) {
    width: calc(100% - 24px);
    margin-bottom: 16px;
    border-radius: 17px;
  }
  .gsvc-page > .section,
  .gsvc-page > .hero.teaser,
  .pgsvc-page #main-content > .hero:not(:first-child) .hero-body { padding: 24px 16px; }
  .project-theme .publication-links .button { padding: .65rem 1rem; }
  .pgsvc-page .publication-links .button { width: auto; }
  .project-theme .content,
  .project-theme .subtitle { font-size: .98rem; line-height: 1.7; }
}
