/* ============================================================
   PNS-Univ — EFFECTS: radii, shadows, motion, gradients
   Cards are white with hairline borders and soft blue-tinted
   shadows. Corners are generous (12–26px). Motion is calm:
   short eases, gentle lift on hover, no bounce on UI chrome.
   ============================================================ */
:root {
  /* ---- Corner radii ---- */
  --radius-xs:   6px;   /* chips, small pills inner        */
  --radius-sm:   9px;   /* inputs, small buttons           */
  --radius-md:   12px;  /* buttons, list rows              */
  --radius-lg:   16px;  /* cards                           */
  --radius-xl:   20px;  /* sheets, modals, feature cards   */
  --radius-2xl:  26px;  /* hero feature tiles              */
  --radius-pill: 999px; /* badges, status dots, nav pills  */

  /* ---- Shadows (cool blue-grey, never neutral black) ---- */
  --shadow-xs:   0 1px 2px rgba(11,28,51,.05);
  --shadow-sm:   0 4px 14px rgba(11,28,51,.05);
  --shadow-md:   0 10px 30px rgba(29,71,122,.09);
  --shadow-lg:   0 18px 40px rgba(11,28,51,.10);
  --shadow-xl:   0 28px 64px rgba(11,28,51,.18);
  --shadow-card: 0 4px 14px rgba(11,28,51,.05);
  --shadow-pop:  0 30px 70px rgba(10,25,45,.40);  /* modals */
  --shadow-cta:  0 14px 34px rgba(0,0,0,.28);     /* hero buttons on imagery */

  /* ---- Focus ring ---- */
  --ring: 0 0 0 2px #fff, 0 0 0 4px var(--pns-blue-dark); /* @kind shadow */

  /* ---- Motion ---- */
  --ease-standard: cubic-bezier(.2,.7,.2,1); /* @kind other */
  --ease-out:      cubic-bezier(.2,.8,.2,1); /* @kind other */
  --dur-fast:   .15s; /* @kind other */
  --dur-base:   .2s; /* @kind other */
  --dur-slow:   .26s; /* @kind other */
  /* card / button hover lift */
  --lift-hover: translateY(-2px);   /* @kind other */
  --lift-press: translateY(0); /* @kind other */

  /* ---- Signature gradients ---- */
  --grad-brand:    linear-gradient(135deg, #1d477a, #102d44); /* @kind other */
  --grad-hero:     linear-gradient(165deg, #1d477a 0%, #102d44 100%); /* @kind other */
  /* image legibility scrim (bottom-up) */
  --scrim-bottom:  linear-gradient(180deg, rgba(11,31,56,.1) 0%, rgba(11,31,56,.5) 52%, rgba(11,31,56,.93) 100%); /* @kind other */
  /* hero side scrim (left-heavy) */
  --scrim-side:    linear-gradient(90deg, rgba(11,31,56,.9) 0%, rgba(11,31,56,.55) 42%, rgba(11,31,56,.12) 100%); /* @kind other */
}

/* ---- Reusable keyframes (calm, purposeful) ---- */
@keyframes pns-fadein { from { opacity: 0; } to { opacity: 1; } }
@keyframes pns-rise   { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pns-pop    { 0% { transform: scale(.6); opacity: 0; } 60% { transform: scale(1.08); } 100% { transform: scale(1); opacity: 1; } }
@keyframes pns-toastin{ from { opacity: 0; transform: translate(-50%, 12px); } to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes pns-spin   { to { transform: rotate(360deg); } }
