/* Product-image routes retain their own card, photo and fixed-header geometry. */
:root { --case-transfer-surface:#fff; --case-transfer-ink:#171719; --case-transfer-control:#f1f1f1; }
html[data-theme="dark"] { --case-transfer-surface:#08090a; --case-transfer-ink:#f3f3f1; --case-transfer-control:#292a2e; }
.case-image-transfer {
  position:fixed;
  z-index:35;
  inset:0;
  overflow:hidden;
  background:#fff;
  pointer-events:none;
  isolation:isolate;
  will-change:clip-path;
}
.case-image-transfer-image {
  position:absolute;
  display:block;
  left:0;
  top:0;
  max-width:none;
  margin:0;
  background:#fff;
  transform-origin:0 0;
  will-change:transform;
}
body.case-departing :is(.case-rail,.stage-title-wrap,.stage-intro,.case-preview-media) {
  opacity:0!important;
  transition:opacity 220ms ease!important;
}
body.case-departing :is(.stage-content a,.stage-header a,.stage-header button,.site-menu) {
  pointer-events:none!important;
}
body.case-departing:not(.case-menu-departing) .site-menu { opacity:0!important; visibility:hidden!important; }
html body[data-home-background="wavy-cubes"].case-departing .stage-header:not(.control-skin) :is(button,.mail-button) {
  color:var(--case-transfer-ink);
  background:var(--case-transfer-control);
  border-color:transparent;
  transition:none;
}
html body[data-home-background="wavy-cubes"].case-departing .stage-logo .brand-word { color:var(--case-transfer-ink)!important; }
/* The real header paints above the route image for the whole handoff. Its
   decorative scene skins resume unchanged when the route is cancelled. */
body.case-departing .stage-header.control-skin { visibility:hidden!important; }
body.case-departing :is(.stage-header:not(.control-skin),.case-header,.page-header) {
  z-index:50;
  color:var(--case-transfer-ink);
  background:var(--case-transfer-surface);
  transition:none;
}
html body[data-home-background="wavy-cubes"].case-departing .stage-header:not(.control-skin) {
  --white:var(--case-transfer-ink);
  inset:0 0 auto;
  padding-inline:var(--gutter);
  color:var(--case-transfer-ink)!important;
}
html[data-case-entering] .case-hero { opacity:0; }
html[data-case-entering] .case-header {
  color:var(--case-transfer-ink);
  background:var(--case-transfer-surface);
  transition:none;
}
html[data-case-entering] .case-brand .brand-word { color:var(--case-transfer-ink); }
html[data-case-entering] .case-header :is(.case-menu,.case-theme,.case-mail) {
  background:var(--case-transfer-control);
  transition:none;
}

/* Menu project routes lift only their primary screenshot. The live stage and
   its aperture retain their geometry underneath a clean page-colored ground. */
.case-image-transfer[data-case-transfer-source="menu"] { z-index:45; }
/* Once the transfer image exists, the former scene must not remain visible
   around it as a photograph strip or a second translucent screenshot. */
body.case-menu-departing :is(.stage-visual,.inner-menu-visual,.menu-project-scene,.case-preview-backdrop) {
  visibility:hidden!important;
  transition:none!important;
}
html body.case-menu-departing :is(.stage-frame,.stage,.inner-menu-stage) {
  background:var(--case-transfer-surface);
}
body.case-menu-departing :is(.menu-main,.menu-news,.inner-menu-scroll) {
  opacity:0!important;
  transition:opacity 180ms ease!important;
  pointer-events:none!important;
}
body.case-menu-departing :is(.menu-project-shot-primary,.menu-project-shot-secondary) { visibility:hidden; transition:none; }
html body[data-home-background="wavy-cubes"].case-menu-departing .stage-logo .brand-layer-home {
  clip-path:none!important;
  visibility:visible!important;
  transition:none;
}
html body[data-home-background="wavy-cubes"].case-menu-departing .stage-logo .brand-layer-menu { visibility:hidden!important; }
html body.case-menu-departing :is(.stage-logo,.case-brand,.page-brand) .brand-word { color:var(--case-transfer-ink); }
body.case-menu-departing :is(.case-header,.page-header) :is(button,.case-mail,.page-mail) {
  color:var(--case-transfer-ink);
  background:var(--case-transfer-control);
  border-color:transparent;
  transition:none;
}
@media (prefers-reduced-motion:reduce) {
  .case-image-transfer,.case-image-transfer-image { will-change:auto; }
}
