/* Animate small arrival surfaces, never the full long document. Native links and Back stay intact. */
body:not(.twp-page) header { animation: portfolio-arrival 320ms ease-out both; }
@keyframes portfolio-arrival { from { opacity:.25; transform:translateY(-6px); } to {opacity:1;transform:none;} }
@media(prefers-reduced-motion:reduce) { body:not(.twp-page) header {animation:none!important;} }

/* Project detail pages: generous touch targets without changing the gallery. */
body:not(.twp-page) :is(a,button):focus-visible {
  outline:3px solid currentColor;
  outline-offset:4px;
}
body.the-anomaly-office .float-tag {color:#10140f;}
body.the-anomaly-office .button:not(.secondary) {color:#10140f;}
@media(max-width:900px) {
  body:not(.twp-page) header {flex-wrap:wrap;gap:8px 16px;padding-top:12px;padding-bottom:12px;}
  body:not(.twp-page) header nav {flex-wrap:wrap;gap:4px 12px;align-items:center;}
  body:not(.twp-page) :is(header,footer,.footer) a,
  body:not(.twp-page) :is(.motion,.motion-toggle),
  body:not(.twp-page) .links a {
    display:inline-flex;align-items:center;justify-content:center;
    min-width:44px;min-height:44px;
  }
  body:not(.twp-page) :is(footer,.footer) :is(nav,div) {flex-wrap:wrap;gap:4px 18px;}
  body:not(.twp-page) :is(.link,.jump,.button) {min-height:44px;}
  body:not(.twp-page) :is(.motion,.motion-toggle) {flex-shrink:0;}
}
@media(max-width:360px) {
  body.city h1,body.isles h1 {font-size:clamp(42px,14vw,50px);}
}
/* Keep small status/caption text readable on each original palette. */
body:not(.twp-page) :is(.working,.special-label,.kicker,.module small) {opacity:.8;}
body.city :is(.eyebrow,.status .label) {color:#4c6941;}
body:is(.city,.packing) .caption {opacity:.85;}
body.seven-days-in-charge :is(.original,.direction-art figcaption) {opacity:.8;}
body.april .marquee {color:#64846e;}
body.april .number {color:#35634e;}
body.notebook-duo .feature .number {color:#e5b183;}
body.notebook-duo .status .label {color:#87562f;}
@media(max-width:900px) {
  body:not(.twp-page) :is(footer,.footer) a {justify-content:flex-start;}
  body:not(.twp-page) :is(footer,.footer) :is(nav,div) {align-items:center;}
}
