/* CCAA 140 | weather ambience + carefully-scoped contemporary micro-interactions.
   Decorative only: never changes layout, clicks, gallery data or navigation. */
#ccaa140-progress {
  position:fixed; top:0; left:0; width:100%; height:3px;
  z-index:2705; pointer-events:none; transform:scaleX(0); transform-origin:left center;
  background:linear-gradient(90deg,#9bbda4 0%,#628b78 44%,#c5ac90 78%,#739c84 100%);
  box-shadow:0 1px 7px rgba(78,124,94,.22); will-change:transform;
}
.ccaa140-atmosphere {
  position:fixed; inset:0; width:100%; height:100vh; height:100dvh;
  z-index:65; pointer-events:none; overflow:hidden;
  contain:layout paint; opacity:.70; transition:opacity .35s ease;
}
.ccaa140-atmosphere[hidden]{display:none!important}
.ccaa140-particle { position:absolute; top:-13vh; left:var(--ccaa-x); width:var(--ccaa-size);
  height:var(--ccaa-height); pointer-events:none; will-change:transform;
  animation:ccaa140-fall var(--ccaa-duration) linear var(--ccaa-delay) infinite;
}
.ccaa140-atmosphere[data-weather="rain"] .ccaa140-particle {
  border-radius:52% 48% 58% 56% / 36% 36% 70% 70%; transform:rotate(8deg);
  background:linear-gradient(140deg,rgba(255,255,255,.93),rgba(157,191,197,.29) 40%,rgba(222,237,230,.56) 95%);
  border:1px solid rgba(163,194,198,.64);
  box-shadow:inset 1px 1px 2px rgba(255,255,255,.95),inset -1px -1px 1px rgba(90,133,142,.18),0 1px 3px rgba(71,98,110,.12);
}
.ccaa140-atmosphere[data-weather="rain"] { opacity:.79; }
.ccaa140-atmosphere[data-weather="snow"] { opacity:.80; }
.ccaa140-atmosphere[data-weather="snow"] .ccaa140-particle {
  border-radius:50%; background:rgba(255,255,255,.93);
  border:1px solid rgba(191,209,205,.38);
  box-shadow:0 0 7px 2px rgba(255,255,255,.42),0 1px 2px rgba(91,121,126,.16);
}
@keyframes ccaa140-fall {
  0% { transform:translate3d(0,-4vh,0); opacity:0; }
  7% { opacity:.95; }
  93% { opacity:.86; }
  100% { transform:translate3d(var(--ccaa-drift),123vh,0); opacity:0; }
}
.ccaa140-weather-toggle {
  position:fixed; left:16px; bottom:calc(16px + env(safe-area-inset-bottom, 0px)); z-index:85;
  width:38px; height:38px; padding:0; display:grid;place-items:center;
  border:1px solid rgba(169,194,175,.69); border-radius:50%;
  background:rgba(250,253,250,.90); color:#385e4d;
  box-shadow:0 5px 18px rgba(39,73,55,.14);
  -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px);
  cursor:pointer; transition:transform .25s ease,background .25s ease,border-color .25s ease;
}
.ccaa140-weather-toggle[hidden]{display:none!important}
.ccaa140-weather-toggle svg {width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ccaa140-weather-toggle[aria-pressed="false"] { opacity:.67; }
.ccaa140-weather-toggle:focus-visible{outline:3px solid #39644d;outline-offset:3px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .ccaa140-weather-toggle:hover {transform:translateY(-2px); background:rgba(255,255,255,.98);}
  /* Micro-interactions: small depth cues without restructuring image/card layouts. */
  .program-card .arrow-circle,.student-gallery-caption .student-gallery-arrow,
  .contact-call-arrow {transition:transform .35s cubic-bezier(.18,.75,.24,1);}
  .program-card:hover .arrow-circle,.student-gallery-card:hover .student-gallery-arrow,
  .contact-call:hover .contact-call-arrow {transform:translate3d(3px,-3px,0) rotate(5deg);}
  .edu-hub-track,.contact108-card,.books109-card-ready {
    transition:box-shadow .35s ease,border-color .35s ease,translate .35s ease;
  }
  .edu-hub-track:hover,.contact108-card:hover,.books109-card-ready:hover {
    box-shadow:0 20px 43px rgba(53,82,61,.12); border-color:rgba(143,179,153,.75);
  }
  .edu-hub-track-visual img,.student-gallery-picture img {
    transition:transform .65s cubic-bezier(.18,.75,.22,1);
  }
  .edu-hub-track:hover .edu-hub-track-visual img,
  .student-gallery-card:hover .student-gallery-picture img {transform:scale(1.035);}
}
@media(max-width:650px){
  .ccaa140-atmosphere {opacity:.53}
  .ccaa140-atmosphere[data-weather="rain"]{opacity:.85}
  .ccaa140-atmosphere[data-weather="snow"]{opacity:.64}
  .ccaa140-weather-toggle {left:11px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:34px;height:34px}
  .ccaa140-weather-toggle svg{width:17px;height:17px}
}
@media(prefers-reduced-motion:reduce){
  .ccaa140-atmosphere,.ccaa140-weather-toggle{display:none!important}
  #ccaa140-progress{transition:none}
}
