/* OMNIS / panoramic document headers and subtle woven cascade.
   Load AFTER professional.css. No content, routes or scripts are changed. */
.page-hero{
  background-color:var(--ink);
  background-image:linear-gradient(90deg,#081217ef 0%,#081217d9 35%,#08121799 62%,#08121745 100%),var(--page-image);
  background-position:center,center 48%;
  background-size:cover,cover;
  background-repeat:no-repeat;
}
.mode-ic .ic-hero{
  background-color:var(--ink);
  background-image:linear-gradient(90deg,#0b131eef 0%,#0b131ed9 35%,#0b131e99 62%,#0b131e45 100%),var(--ic-hero-image);
  background-position:center,center 48%;
  background-size:cover,cover;
  background-repeat:no-repeat;
}
/* Decorative layers stay beneath the entire site and receive no pointer events. */
.ambient-background{
  position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;
  background:radial-gradient(ellipse at 12% 24%,color-mix(in srgb,var(--teal) 4%,transparent),transparent 65%),radial-gradient(ellipse at 88% 75%,color-mix(in srgb,var(--teal) 3%,transparent),transparent 65%);
}
.ambient-weave{
  position:absolute;inset:-64px;background:var(--teal);opacity:.1;
  mask:url('assets/woven-pattern.svg') repeat 0 0/64px 64px;
  -webkit-mask:url('assets/woven-pattern.svg') repeat 0 0/64px 64px;
  animation:omnis-weave 64s linear infinite;will-change:transform;
}
.ambient-background::after{
  content:'';position:absolute;inset:-512px;pointer-events:none;
  background:repeating-linear-gradient(180deg,transparent 0,transparent 320px,color-mix(in srgb,var(--teal) 19%,transparent) 384px,transparent 448px,transparent 512px);
  mask:url('assets/woven-pattern.svg') repeat 0 0/64px 64px;
  -webkit-mask:url('assets/woven-pattern.svg') repeat 0 0/64px 64px;
  animation:omnis-cascade 38s linear infinite;will-change:transform;
}
/* 512 is a multiple of the 64px tile: both layers meet exactly at each loop. */
@keyframes omnis-cascade{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,512px,0)}}
@media(max-width:767px){
  .page-hero{background-image:linear-gradient(90deg,#081217ed,#081217b5),var(--page-image)}
  .mode-ic .ic-hero{background-image:linear-gradient(90deg,#0b131eed,#0b131eb5),var(--ic-hero-image)}
  .ambient-weave{opacity:.085}
  .ambient-background::after{animation-duration:48s}
}
@media(prefers-reduced-motion:reduce){.ambient-weave,.ambient-background::after{animation:none;transform:none;will-change:auto}}
@media print{.ambient-background{display:none!important}}
