/* v9: glowing buttons, hero photo slideshow, lab levels */
@keyframes v9glow{0%,100%{box-shadow:0 0 6px rgba(99,102,241,.45),0 4px 14px rgba(79,70,229,.25)}50%{box-shadow:0 0 18px rgba(99,102,241,.85),0 6px 22px rgba(124,58,237,.4)}}
@keyframes v9shine{0%{transform:translateX(-130%) skewX(-20deg)}60%,100%{transform:translateX(230%) skewX(-20deg)}}
.b,.d8b,button.b,.v7 .b,#t-shop button,.v9btn{position:relative;overflow:hidden;cursor:pointer;transition:transform .15s,filter .15s;animation:v9glow 2.6s ease-in-out infinite}
.b::after,.d8b::after,.v9btn::after{content:"";position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:v9shine 3.2s infinite;pointer-events:none}
.b:hover,.d8b:hover,.v9btn:hover{transform:translateY(-2px) scale(1.03);filter:brightness(1.1)}
.b:active,.d8b:active,.v9btn:active{transform:scale(.97)}
.b.gr{animation-name:v9glowg}.b.hi{animation-name:v9glowh}
@keyframes v9glowg{0%,100%{box-shadow:0 0 6px rgba(16,185,129,.5)}50%{box-shadow:0 0 18px rgba(16,185,129,.9)}}
@keyframes v9glowh{0%,100%{box-shadow:0 0 6px rgba(245,158,11,.55)}50%{box-shadow:0 0 18px rgba(245,158,11,.95)}}
.d8q a,.d8tools a{transition:transform .2s,box-shadow .2s}.d8q a:hover,.d8tools a:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(79,70,229,.35)}
@media(prefers-reduced-motion:reduce){.b,.d8b,.v9btn{animation:none}.b::after,.d8b::after,.v9btn::after{display:none}}
/* hero photos */
.d8hero.v9h{color:#fff;background:#1b1f4a}
.d8hero.v9h svg.art,.d8hero.v9h .tag{display:none}
.d8hero.v9h h1 span{color:#fcd34d}
.d8hero.v9h small,.d8hero.v9h p{color:#fff;text-shadow:0 1px 6px #0008}
.v9sl{position:absolute;inset:0;z-index:0}.v9sl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s}.v9sl img.on{opacity:1}
.v9sl::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(20,18,70,.88) 0%,rgba(30,27,95,.65) 55%,rgba(15,118,110,.35) 100%)}
.d8hero.v9h>div{z-index:2}
/* lab */
#v9lab h3{margin:.2em 0}.v9pb{height:12px;border-radius:9px;background:var(--ln,#dbe2ee);overflow:hidden;margin:6px 0}.v9pb i{display:block;height:100%;background:linear-gradient(90deg,#10b981,#4f46e5);transition:width .5s}
.v9lv{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.v9lv button{border:1px solid var(--ln,#dbe2ee);background:var(--card,#fff);color:inherit;border-radius:20px;padding:6px 12px;font:inherit;cursor:pointer}.v9lv button.on{background:#4f46e5;color:#fff}.v9lv button.lk{opacity:.5;cursor:not-allowed}.v9lv button.dn{border-color:#10b981}
.v9ls{display:grid;gap:6px;margin:8px 0}.v9ls button{text-align:left;border:1px solid var(--ln,#dbe2ee);background:var(--card,#fff);color:inherit;border-radius:10px;padding:8px 10px;font:inherit;cursor:pointer}.v9ls button.on{outline:2px solid #4f46e5}.v9ls button.lk{opacity:.5;cursor:not-allowed}
.v9box{border-left:4px solid #4f46e5;background:var(--soft,#eef0ff);border-radius:8px;padding:8px 12px;margin:8px 0}.v9box.r{border-color:#f59e0b}.v9box.t{border-color:#10b981}
.v9vars{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}.v9var{border:2px solid #4f46e5;border-radius:10px;min-width:90px;text-align:center;background:var(--card,#fff);overflow:hidden}.v9var small{display:block;background:#4f46e5;color:#fff;padding:2px 8px}.v9var b{display:block;padding:8px;font-family:monospace;transition:background .3s}.v9var.ch b{background:#fde68a;color:#000}
.v9mcq{margin:8px 0}.v9mcq button{display:block;width:100%;text-align:left;margin:4px 0;padding:8px 10px;border:1px solid var(--ln,#dbe2ee);border-radius:8px;background:var(--card,#fff);color:inherit;font:inherit;cursor:pointer}.v9mcq button.ok{background:#d1fae5;border-color:#10b981;color:#065f46}.v9mcq button.no{background:#fee2e2;border-color:#ef4444;color:#991b1b}
.v9bdg{display:flex;gap:8px;flex-wrap:wrap}.v9bdg span{background:#fef3c7;color:#92400e;border-radius:20px;padding:4px 10px;font-weight:600}
.v9hl{background:rgba(250,204,21,.35);border-left:3px solid #f59e0b}
.v9st{background:var(--card,#fff);border:1px solid var(--ln,#dbe2ee);border-radius:12px;padding:12px;margin:10px 0}

/* Book-style handout cards */
.book-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #c7d2fe;margin-bottom:10px;box-shadow:0 4px 12px -4px #4f46e522;transition:.2s}
.book-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px -6px #4f46e544}
.book-icon{font-size:32px;flex:none;width:48px;height:48px;display:grid;place-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0001}
.book-card .m{flex:1;min-width:0}.book-card .m b{display:block;font-size:15px;margin-bottom:2px}
.book-card .ls{display:flex;gap:6px;flex-wrap:wrap}
.book-card .d8b.sm{padding:7px 12px;font-size:13px;border-radius:8px}
[data-theme=dark] .book-card{background:linear-gradient(135deg,#1e293b,#1e1b4b);border-color:#3730a3}

/* Hero banner with provided image */
.d8hero.v9h,.hero-banner{
  background-image:url('icons/hero-banner.jpg') !important;
  background-size:cover !important;
  background-position:center right !important;
  position:relative;
}
.d8hero.v9h::before,.hero-banner::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(30,27,75,.92) 0%,rgba(49,46,129,.75) 50%,rgba(15,118,110,.4) 100%);
  z-index:0;
}
.d8hero.v9h > *,.hero-banner > *{position:relative;z-index:1}

/* Bigger GPA calendar / tools */
.gpa-big{font-size:18px;padding:20px}
.gpa-big .emoji{font-size:42px;display:block;margin-bottom:8px}

/* Official LMS big button */
.lms-big{display:flex;align-items:center;gap:14px;padding:18px 22px;background:linear-gradient(135deg,#0f766e,#134e4a);color:#fff;border-radius:16px;font-size:18px;font-weight:700;text-decoration:none;box-shadow:0 10px 25px -8px #0f766e88;margin:12px 0}
.lms-big img{width:48px;height:48px;border-radius:10px;background:#fff;padding:4px}
.lms-big:hover{transform:translateY(-2px)}

/* Professional program cards */
.prog-card{border-radius:16px;overflow:hidden;border:1px solid var(--ln8,#dbe2ee);background:var(--card,#fff);margin-bottom:14px}
.prog-card img{width:100%;height:140px;object-fit:cover}
.prog-card .body{padding:14px}

/* Groups section */
.group-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--card,#fff);border:1px solid var(--ln8,#dbe2ee);margin-bottom:10px}
.group-card img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#e0e7ff}
