/* October 2026: supplied illustrations, restrained motion and the page mascot. */
.section-decoration { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
.section-decoration picture { display:contents; }
.section-decoration img { position:absolute; height:auto; pointer-events:none; }
.has-decoration { position:relative; isolation:isolate; }
.has-decoration > :not(.section-decoration) { position:relative; z-index:1; }
.decoration-arcs img { width:100%; max-width:1440px; top:-80px; right:-100px; opacity:.65; }
.decoration-planes img { width:440px; max-width:100%; bottom:-44px; left:-10px; opacity:.5; }
.decoration-grid img { width:100%; max-width:1280px; top:50%; right:-140px; transform:translateY(-50%); opacity:.5; }
.decoration-flow-lines img { width:100%; max-width:1600px; bottom:-50px; left:50%; transform:translateX(-50%); opacity:.65; }
.decoration-flow-lines { clip-path:inset(calc(100% - 56px) 0 0); mask-image:linear-gradient(to bottom,transparent calc(100% - 56px),#000 calc(100% - 40px)); }
.hero-copy, #services .service-card, #services .section-top, #services .section-end { background:var(--bg); }
#impact .section-top { background:var(--surface); }
#contact .contact-actions, #contact .contact-bottom>p { background:var(--surface); }

.case-heading { margin-bottom:0; padding-bottom:0; border:0; }
.case-illustration { display:block; margin:20px 0 24px; aspect-ratio:16/9; }
.case-illustration img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.case-grid { align-items:start; }

.method-section { position:relative; }
.method-figure { padding:32px; background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.process-art { display:block; width:100%; margin-bottom:24px; }
.process-art img { display:block; width:100%; height:auto; }
.method-cycle { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.method-step { min-width:0; display:flex; flex-direction:column; }
.method-node { display:flex; gap:12px; align-items:baseline; }
.method-node h3 { font-size:1.25rem; margin:0; }
.method-number { color:var(--accent); font-size:.875rem; font-variant-numeric:tabular-nums; }
.method-step>p { flex:1; margin-top:16px; color:var(--muted); font-size:1rem; }
.method-output { border-top:1px solid var(--line); padding-top:16px; margin-top:24px; font-size:1rem; }
.method-output>span:not(.diagram-label) { color:var(--accent); }
.diagram-label { display:block; color:var(--muted); font-size:.875rem; margin-bottom:4px; }
.cycle-return { margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.cycle-return p { color:var(--muted); font-size:.875rem; text-align:center; max-width:none; }
.ninety-art { margin-bottom:24px; }
.ninety-grid { gap:24px; }

.hero-intro { display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:530px; min-height:100px; }
.hero-intro .location { margin:0; }
.hero h1 { margin-top:12px; }
.page-mascot { position:relative; display:block; flex-shrink:0; width:112px; height:112px; padding:0; border:0; background:transparent; appearance:none; cursor:pointer; user-select:none; touch-action:manipulation; visibility:hidden; }
.page-mascot.mascot-ready { visibility:visible; }
.page-mascot:focus-visible { border-radius:50%; outline:2px solid var(--accent); outline-offset:2px; }
.mascot-squash { position:relative; display:block; width:100%; height:100%; transform-origin:50% 78%; }
.mascot-layer { position:absolute; inset:0; background-size:300% 300%; background-repeat:no-repeat; }
.mascot-direction { background-image:url('assets/mascot/cat-directions.webp'); background-position:50% 50%; }
.mascot-reaction { background-image:url('assets/mascot/cat-reactions.webp'); background-position:0 0; opacity:0; }
html:not(.js) .page-mascot { display:none; }
html:not(.js) .hero-intro { min-height:0; }

@media(max-width:1100px) {
  .section-decoration { display:none; }
  .method-figure { padding:24px; }
  .case-heading { grid-row:1; }
  .case-illustration { grid-column:1; grid-row:2; align-self:start; }
  .case-card>h3 { grid-row:3; }
  .case-status { grid-row:4; }
  .case-card .pdf-link { grid-row:5; }
  .case-overview { grid-row:1/3; }
  .case-details { grid-row:3; }
  .case-limits { grid-row:4/7; }
}
@media(max-width:850px) {
  .process-art { display:none; }
  .method-cycle { grid-template-columns:1fr; gap:28px; }
  .method-step { display:block; padding-bottom:24px; border-bottom:1px solid var(--line); }
  .method-step:last-child { padding-bottom:0; border:0; }
  .method-output { border:0; padding-top:0; margin-top:16px; }
  .cycle-return p { text-align:left; }
  .ninety-grid { grid-template-columns:1fr; gap:32px; }
  .ninety-card { padding-bottom:24px; border-bottom:1px solid var(--line); }
  .ninety-card:last-child { padding-bottom:0; border:0; }
}
@media(max-width:600px) {
  .method-figure { padding:24px 20px; }
  .case-heading { margin-bottom:0; }
  .case-status { margin-bottom:24px; }
  .hero-intro { min-height:88px; }
  .page-mascot { width:92px; height:92px; }
}
@media(prefers-reduced-motion:reduce) {
  .mascot-squash { transform:none!important; }
}
