:is(.archive-theme, .content-page) {
  /* --rust-on-dark は style.css のテーマ変数へ集約（同値の二重定義だった） */
  --archive-dark: #0d1514;
  --archive-panel: #17211f;
}

:is(.archive-theme, .content-page) .site-header {
  color: #e8e5da;
  border-color: rgba(238,233,220,.18);
  background: rgba(13,21,20,.86);
}

:is(.archive-theme, .content-page) .site-header nav a::after { background: var(--paper); }
:is(.archive-theme, .content-page) .header-cta::before { background: var(--lime); box-shadow: 0 0 0 4px rgba(196,220,84,.13); }

:is(.archive-theme, .content-page) .eyebrow {
  color: #7e8984;
  letter-spacing: .2em;
}

.content-page--skills .site-header { color: var(--ink); border-color: rgba(16,21,19,.18); }
.content-page--skills .site-header nav a::after { background: var(--ink); }

/* Project case studies */
.archive-theme.case-page {
  --case-green: #17211f;
  --case-pale: #d9ddd0;
}

.archive-theme .case-header { background: rgba(13,21,20,.88); }
.archive-theme.case-page .case-hero {
  background-color: var(--archive-dark);
  --hero-background:
    linear-gradient(90deg, rgba(13,21,20,.95) 0%, rgba(13,21,20,.82) 48%, rgba(13,21,20,.35)),
    url("../assets/home-world-hero.webp");
  background-size: cover;
  background-position: center;
}

.archive-theme.case-page--portal .case-hero {
  min-height: clamp(500px, 70svh, 680px);
  color: var(--ink);
  background-color: var(--paper);
  --hero-background: none;
}

.archive-theme.case-page--portal .case-header {
  color: var(--ink);
  border-color: var(--line);
  background: rgba(238,233,220,.86);
}
.archive-theme.case-page--portal .case-header nav a::after { background: var(--ink); }
.archive-theme.case-page--portal .case-kicker,
.archive-theme.case-page--portal .case-year,
.archive-theme.case-page--portal .case-hero::after { color: var(--muted); }

.archive-theme.case-page--bousai .case-hero {
  --hero-background: none;
}

.archive-theme.case-page--system .case-hero {
  --hero-background:
    linear-gradient(90deg, rgba(13,21,20,.95) 0%, rgba(13,21,20,.82) 48%, rgba(13,21,20,.35)),
    url("../assets/projects-world-hero.webp");
}

.archive-theme.case-page--haguruma .case-hero {
  background-color: #120d0b;
  --hero-background:
    linear-gradient(90deg, rgba(18,13,11,.88) 0%, rgba(18,13,11,.55) 47%, rgba(18,13,11,.18)),
    linear-gradient(0deg, rgba(18,13,11,.72) 0%, transparent 52%),
    url("../assets/project-haguruma-hero.webp");
  background-position: center;
}

.archive-theme.case-page--haguruma .case-hero::after { content: "PLAYABLE WORLD / PROTOTYPE 0.1"; color: #c3a68f; }
.archive-theme.case-page--haguruma .case-kicker,
.archive-theme.case-page--haguruma .case-year,
.archive-theme.case-page--haguruma .case-hero-bottom p { color: #d1c0b2; }
.archive-theme.case-page--haguruma .case-screen { box-shadow: 22px 22px 0 rgba(169,79,55,.18); }
.archive-theme.case-page--haguruma .case-showcase-note .case-tag { color: #d89a72; }

.archive-theme .case-hero::after {
  content: "DOCUMENTED SYSTEM / ACTIVE RECORD";
  position: absolute;
  top: 182px;
  right: var(--pad);
  color: #97a29c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  writing-mode: vertical-rl;
}

.archive-theme .case-hero h1 span,
.archive-theme.case-page--portal .case-hero h1 span { -webkit-text-stroke-color: var(--rust); }
.archive-theme.case-page--portal .case-hero h1 span {
  display: inline-block;
  padding-inline: .04em .08em;
  color: var(--paper);
  background: var(--rust);
  -webkit-text-stroke: 0;
}
.archive-theme .case-kicker,
.archive-theme .case-year { color: #9ba49f; }
.archive-theme .case-facts { background: #d4d2b5; }
.archive-theme .case-facts strong i { background: var(--rust); }
.archive-theme.case-page--portal .case-facts {
  display: block;
  color: var(--paper);
  border-color: rgba(238,233,220,.28);
  background: var(--rust);
}
.archive-theme.case-page--portal .case-facts > .ticker-track {
  min-height: 0;
  flex-direction: row;
  justify-content: flex-start;
  padding: 0;
  border: 0;
}

@media (max-width: 760px) {
  .archive-theme.case-page--portal .case-hero {
    min-height: 420px;
    padding-bottom: 24px;
  }
  .archive-theme.case-page--portal .case-hero h1 {
    margin-top: 72px;
    font-size: clamp(62px, 19vw, 90px);
  }
}
.archive-theme .case-overview,
.archive-theme .case-features,
.archive-theme .case-principles { background: #e9e4d6; }
.archive-theme .case-section-index span { border-radius: 0; }

.archive-theme .case-showcase {
  background-color: var(--archive-panel);
}

.archive-theme .case-screen { border-color: rgba(238,233,220,.3); background: #0a1110; box-shadow: 22px 22px 0 rgba(155,73,51,.16); }
.archive-theme .case-showcase-note .case-tag { color: var(--rust-on-dark); }
.archive-theme .case-button { background: var(--rust); color: var(--paper); }

.archive-theme .feature-grid { border-color: var(--ink); background: var(--ink); gap: 1px; }
.archive-theme .feature-card { border: 0; }
.archive-theme .feature-card--dark { background: var(--archive-dark); }
.archive-theme .feature-card--blue { background: #315b68; }
.archive-theme .feature-card--paper { background: var(--paper); }
.archive-theme .feature-card--lime { background: #d4d2b5; }
.archive-theme .principle-list span { color: var(--rust); }

.archive-theme.case-page .case-system {
  background-color: var(--archive-dark);
  background-image: linear-gradient(120deg, rgba(49,91,104,.18), transparent 48%);
}

.archive-theme .system-flow > div { background: #d9ddd0; }
.archive-theme .system-flow > div:nth-of-type(2) { background: #d4d2b5; }
.archive-theme .system-flow > div:nth-of-type(3) { background: #315b68; }
.archive-theme .case-next { background: #080e0d; }
.archive-theme .case-next h2 span { color: var(--rust); }

/* 404 */
.archive-theme.not-found-page .not-found {
  background-color: var(--archive-dark);
  --hero-background:
    linear-gradient(90deg, rgba(13,21,20,.97) 0%, rgba(13,21,20,.72) 52%, rgba(13,21,20,.25)),
    url("../assets/home-world-hero.webp");
  background-size: cover;
  background-position: center;
}

.archive-theme.not-found-page .not-found-header { background: rgba(13,21,20,.88); }
.archive-theme.not-found-page .not-found h1 span { -webkit-text-stroke-color: var(--rust); }
.archive-theme.not-found-page .not-found-code { color: var(--rust); }
.archive-theme.not-found-page .not-found-copy a { color: var(--paper); background: var(--rust); }
.archive-theme.not-found-page .not-found-orbit { border-radius: 0; transform: rotate(18deg); }
.archive-theme.not-found-page .not-found-orbit::after { border-radius: 0; background: var(--lime); }

@media (max-width: 980px) {
  :is(.archive-theme, .content-page) .site-header nav { color: var(--ink); background: var(--paper); }
  :is(.archive-theme, .content-page) .site-header nav a[aria-current="page"] { color: var(--rust); }
  :is(.archive-theme, .content-page) .site-header nav a::after { background: var(--rust); }
}

@media (max-width: 760px) {
  .archive-theme.case-page--system .case-hero {
    --hero-background:
      linear-gradient(90deg, rgba(13,21,20,.95) 0%, rgba(13,21,20,.82) 48%, rgba(13,21,20,.35)),
      url("../assets/projects-world-hero-900.webp");
  }
  .archive-theme.case-page--haguruma .case-hero {
    --hero-background:
      linear-gradient(90deg, rgba(18,13,11,.88) 0%, rgba(18,13,11,.55) 47%, rgba(18,13,11,.18)),
      linear-gradient(0deg, rgba(18,13,11,.72) 0%, transparent 52%),
      url("../assets/project-haguruma-hero-900.webp");
  }
  .archive-theme.case-page .case-hero { background-position: 63% center; }
  .archive-theme .case-hero::after { display: none; }
  .archive-theme .case-screen { box-shadow: 10px 10px 0 rgba(155,73,51,.16); }
}

/* Fade only the artwork layer; keep headings and controls fully opaque. */
.archive-theme.case-page .case-hero,
.archive-theme.not-found-page .not-found {
  position: relative;
  isolation: isolate;
  background-image: none;
}

.archive-theme.case-page .case-hero::before,
.archive-theme.not-found-page .not-found::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background-image: var(--hero-background, none);
  background-position: inherit;
  background-size: cover;
  opacity: .7;
}
