/* ═══════════════════════════════════════════════════════════════════════════
   ACADEMY rev22 — credential + value coverflow CONFORMANCE LAYER (BRI-539)
   Two carousel instances, one shared geometry scope (.bnl-page--academy).
   Additive. Enqueue AFTER the rev21 page styles. rev21 files untouched.
   Pairs with 09-hcar-tilt-rev22.js (pointer tilt + glare driver — rev21's
   shared rot driver has autoplay/drag/keyboard but no tilt anywhere).
   Canonical: growth deck .hcar (brighternightsgrowth.netlify.app, curl
   2026-08-15, 4,217,170 bytes).

   AUDIT NOTES (no repairs needed — first package in the sweep that is
   defect-free on all three signatures):
   R1/R2/R3 · NOT present. rev21 has no float refs, no tilt vars, and a
        clean reduced-motion block. What it lacks is the polish itself:
        no pointer tilt, no glare, no idle float, no parallax, 13% glow.
   Dimensions · .bnl-ccard (big-number credential cards) and .bnl-vcard
        (value cards, 6-item rot with ±3 hidden) keep their OWN rev21
        dimensions — per Austen's Stock Brighter instruction generalized:
        non-dcard card families adapt dimensions, standardize chrome and
        behavior. Geometry transforms were already canonical.
   Colors · glow/halo use the page's own --bn-magenta. Card text, count,
        media and colors unchanged by construction.
   ═══════════════════════════════════════════════════════════════════════════ */

@property --bnl-ry { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --bnl-rx { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@property --bnl-fy { syntax: '<length>'; inherits: false; initial-value: 0px; }

@keyframes bnl-card-float{
  0%,100%{--bnl-ry:-3.5deg;--bnl-rx:2.2deg;--bnl-fy:0px}
  50%{--bnl-ry:3.5deg;--bnl-rx:4.8deg;--bnl-fy:-6px}
}
@keyframes bnl-card-shadow{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(.94);opacity:.82}
}

/* ── FRONT CARD — canonical pose gains the live tilt channels ── */
.bnl-page--academy .bnl-rot__item[data-pos="0"]{
  transform:translateX(0) translateY(var(--bnl-fy,0px)) translateZ(0)
            rotateY(calc(-9deg + var(--bnl-ry,0deg))) rotateX(calc(3.5deg + var(--bnl-rx,0deg)))
            scale(1);
}
.bnl-page--academy .bnl-rot__item.is-tracking{transition:transform .12s linear}

/* ── STRONGER GLOW — 18% conformance strength, page's own magenta ── */
.bnl-page--academy .bnl-rot__glow{
  background:radial-gradient(ellipse at center,
    color-mix(in srgb, var(--bn-magenta) 18%, transparent) 0%, transparent 68%);
}

/* ── FRONT-CARD HALO ── */
.bnl-page--academy .bnl-rot__item[data-pos="0"]::before{
  content:"";position:absolute;inset:-14px;border-radius:26px;pointer-events:none;z-index:-1;
  background:radial-gradient(60% 60% at 50% 46%,
    color-mix(in srgb, var(--bn-magenta) 20%, transparent) 0%, transparent 74%);
  filter:blur(10px);
}

/* ── SPECULAR GLARE — hosts: ccard inner (credential), val tile (value) ── */
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__inner::after,
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__tile::after{
  content:"";display:block;position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;z-index:3;
  background:radial-gradient(240px circle at var(--bnl-mx,50%) var(--bnl-my,26%),
             rgba(255,255,255,.16), rgba(255,255,255,.05) 38%, transparent 64%);
  opacity:0;transition:opacity .32s ease;mix-blend-mode:screen;
}
.bnl-page--academy .bnl-rot__item[data-pos="0"].is-tracking .bnl-ccard__inner::after,
.bnl-page--academy .bnl-rot__item[data-pos="0"].is-tracking .bnl-vcard .bnl-val__tile::after{opacity:1}
.bnl-page--academy .bnl-vcard .bnl-val__tile{position:relative}

/* ── INTERNAL PARALLAX — per card family ── */
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__n{transform:translateZ(30px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__k{transform:translateZ(24px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__t{transform:translateZ(18px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__rule{transform:translateZ(13px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__b{transform:translateZ(8px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-med{transform:translateZ(26px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__hd{transform:translateZ(18px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__t{transform:translateZ(14px)}
.bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__b{transform:translateZ(8px)}
.bnl-page--academy .bnl-ccard__body{transform-style:preserve-3d}
.bnl-page--academy .bnl-vcard .bnl-val__tile{transform-style:preserve-3d}

/* ── IDLE FLOAT — coarse pointers only ── */
@media (hover:none){
  .bnl-page--academy .bnl-rot__item[data-pos="0"]{animation:bnl-card-float 7s ease-in-out infinite}
}

/* ── REDUCED MOTION — full canonical guard set (rev21's was minimal) ── */
@media (prefers-reduced-motion:reduce){
  .bnl-page--academy .bnl-rot__item{transition:none;animation:none !important;filter:none !important}
  .bnl-page--academy .bnl-rot__item[data-pos="0"]{transform:none;animation:none !important}
  .bnl-page--academy .bnl-rot__item[data-pos="0"]::before{display:none}
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__inner::after,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__tile::after{display:none}
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__n,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__k,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__t,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__rule,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-ccard__b,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-med,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__hd,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__t,
  .bnl-page--academy .bnl-rot__item[data-pos="0"] .bnl-vcard .bnl-val__b{transform:none}
}
