@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;800;900&family=Cairo:wght@400;600;700;800;900&family=JetBrains+Mono:wght@400;600&display=swap');
* {
  margin:0;
  padding:0;
  box-sizing:border-box;
}
:root {
  --bg:#04040c;
  --indigo:#6366f1;
  --violet:#8b5cf6;
  --pink:#ec4899;
  --cyan:#22d3ee;
  --ink:#f1f5f9;
  --muted:#94a3b8;
  --dim:#64748b;
  --glass:rgba(12,12,32,0.6);
}
body[data-skin="emerald"] {
  --indigo:#10b981;
  --violet:#22d3ee;
  --pink:#a3e635;
  --cyan:#34d399;
}
body[data-skin="amber"] {
  --indigo:#f59e0b;
  --violet:#f97316;
  --pink:#ef4444;
  --cyan:#fbbf24;
}
body[data-skin="rose"] {
  --indigo:#f43f5e;
  --violet:#d946ef;
  --pink:#8b5cf6;
  --cyan:#fb7185;
}
html {
  scroll-behavior:smooth;
}
body {
  font-family:'Inter','Cairo',sans-serif;
  background:var(--bg);
  color:#fff;
  overflow-x:hidden;
  cursor:none;
}
.ar {
  font-family:'Cairo',sans-serif;
  direction:rtl;
}
::selection {
  background:rgba(139,92,246,.4);
}
::-webkit-scrollbar {
  width:8px;
}
::-webkit-scrollbar-track {
  background:var(--bg);
}
::-webkit-scrollbar-thumb {
  background:linear-gradient(var(--indigo),var(--pink));
  border-radius:8px;
}
@keyframes fadeInUp {
  from {
    opacity:0;
    transform:translateY(40px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity:0;
    transform:translateX(-34px);
  }
  to {
    opacity:1;
    transform:translateX(0);
  }
}
@keyframes pulse {
  0%,100% {
    opacity:.5;
    transform:scale(1);
  }
  50% {
    opacity:1;
    transform:scale(1.1);
  }
}
@keyframes shimmer {
  0% {
    background-position:-200% 0;
  }
  100% {
    background-position:200% 0;
  }
}
@keyframes slideIn {
  from {
    transform:translateX(-100%);
    opacity:0;
  }
  to {
    transform:translateX(0);
    opacity:1;
  }
}
@keyframes glow {
  0%,100% {
    box-shadow:0 0 22px rgba(99,102,241,.35);
  }
  50% {
    box-shadow:0 0 55px rgba(139,92,246,.8);
  }
}
@keyframes blink {
  0%,100% {
    opacity:1;
  }
  50% {
    opacity:.15;
  }
}
@keyframes gradientMove {
  0% {
    background-position:0% 50%;
  }
  50% {
    background-position:100% 50%;
  }
  100% {
    background-position:0% 50%;
  }
}
@keyframes sheen {
  0% {
    left:-60%;
  }
  100% {
    left:140%;
  }
}
@keyframes marquee {
  from {
    transform:translateX(0);
  }
  to {
    transform:translateX(-50%);
  }
}
@keyframes preSpin {
  to {
    transform:rotate(360deg);
  }
}
@keyframes preFade {
  to {
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
}
@keyframes caret {
  0%,100% {
    opacity:1;
  }
  50% {
    opacity:0;
  }
}
@keyframes riseFade {
  0% {
    opacity:1;
    transform:translate(0,0)scale(1);
  }
  100% {
    opacity:0;
    transform:translate(var(--tx),var(--ty))scale(.3);
  }
}
@keyframes preLoad {
  to {
    width:100%;
  }
}
@keyframes floatY {
  0%,100% {
    transform:translateY(0);
  }
  50% {
    transform:translateY(-14px);
  }
}
/* THREE.JS CANVAS — fixed full-screen behind everything */
#three {
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
}
/* PRELOADER */
.preloader {
  position:fixed;
  inset:0;
  z-index:9999;
  background:var(--bg);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:22px;
  animation:preFade .8s ease 2.8s forwards;
}
.pre-ring {
  width:84px;
  height:84px;
  border-radius:50%;
  border:3px solid rgba(99,102,241,.15);
  border-top-color:var(--violet);
  border-right-color:var(--pink);
  animation:preSpin .9s linear infinite;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pre-ring span {
  font-size:32px;
  font-weight:800;
  background:linear-gradient(135deg,#a5b4fc,#f9a8d4);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:preSpin .9s linear infinite reverse;
}
.pre-text {
  font-size:12px;
  letter-spacing:4px;
  color:var(--muted);
  text-transform:uppercase;
}
.pre-bar {
  width:170px;
  height:3px;
  background:rgba(99,102,241,.15);
  border-radius:3px;
  overflow:hidden;
}
.pre-bar i {
  display:block;
  height:100%;
  width:0;
  background:linear-gradient(90deg,var(--indigo),var(--pink));
  animation:preLoad 2.6s ease forwards;
}
/* CURSOR */
.cur-ring {
  position:fixed;
  top:0;
  left:0;
  width:38px;
  height:38px;
  border:1.5px solid rgba(139,92,246,.7);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:width .25s,height .25s,background .25s,border-color .25s;
  mix-blend-mode:screen;
}
.cur-ring.big {
  width:72px;
  height:72px;
  background:rgba(236,72,153,.12);
  border-color:rgba(236,72,153,.8);
}
.cur-dot {
  position:fixed;
  top:0;
  left:0;
  width:6px;
  height:6px;
  background:var(--cyan);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  box-shadow:0 0 12px var(--cyan);
}
.burst {
  position:fixed;
  pointer-events:none;
  z-index:9997;
  font-family:'JetBrains Mono',monospace;
  font-weight:700;
  animation:riseFade .9s ease forwards;
}
.page {
  position:relative;
  z-index:2;
}
.scroll-progress {
  position:fixed;
  top:0;
  left:0;
  height:3px;
  width:0;
  z-index:200;
  background:linear-gradient(90deg,var(--indigo),var(--violet),var(--pink));
  box-shadow:0 0 12px rgba(139,92,246,.8);
}
/* SCROLLSPY */
.spy {
  position:fixed;
  top:50%;
  left:20px;
  transform:translateY(-50%);
  z-index:150;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.spy a {
  width:11px;
  height:11px;
  border-radius:50%;
  border:1.5px solid rgba(165,180,252,.4);
  transition:all .3s;
  position:relative;
  cursor:none;
  display:block;
}
.spy a.active {
  background:var(--violet);
  border-color:var(--violet);
  box-shadow:0 0 12px var(--violet);
  transform:scale(1.25);
}
.spy a span {
  position:absolute;
  left:20px;
  top:50%;
  transform:translateY(-50%);
  font-size:10px;
  color:var(--muted);
  white-space:nowrap;
  opacity:0;
  transition:opacity .25s;
  pointer-events:none;
}
.spy a:hover span {
  opacity:1;
}
/* CORNER */
.corner {
  position:fixed;
  bottom:22px;
  right:22px;
  z-index:300;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}
.ring-prog {
  width:54px;
  height:54px;
}
.ring-prog circle {
  fill:none;
  stroke-width:4;
}
.ring-bg {
  stroke:rgba(99,102,241,.18);
}
.ring-fg {
  stroke:url(#rg);
  stroke-linecap:round;
  transform:rotate(-90deg);
  transform-origin:50% 50%;
}
.ring-prog text {
  font-size:13px;
  fill:#c7d2fe;
  font-family:'JetBrains Mono',monospace;
}
.skins {
  display:flex;
  flex-direction:column;
  gap:8px;
  background:var(--glass);
  backdrop-filter:blur(8px);
  padding:9px;
  border-radius:30px;
  border:1px solid rgba(99,102,241,.25);
}
.skin {
  width:18px;
  height:18px;
  border-radius:50%;
  cursor:none;
  border:2px solid transparent;
  transition:transform .2s;
}
.skin:hover {
  transform:scale(1.2);
}
.skin.active {
  border-color:#fff;
}
.skin.s1 {
  background:linear-gradient(135deg,#6366f1,#ec4899);
}
.skin.s2 {
  background:linear-gradient(135deg,#10b981,#22d3ee);
}
.skin.s3 {
  background:linear-gradient(135deg,#f59e0b,#ef4444);
}
.skin.s4 {
  background:linear-gradient(135deg,#f43f5e,#d946ef);
}
/* SECTIONS */
.section {
  padding:80px 34px;
  position:relative;
}
.section-header {
  text-align:center;
  margin-bottom:48px;
}
.section-label {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:2.6px;
  color:var(--violet);
  font-weight:700;
  margin-bottom:10px;
}
.section-title {
  font-size:30px;
  font-weight:900;
  color:var(--ink);
  letter-spacing:-.3px;
  min-height:38px;
}
.section-sub {
  font-size:13px;
  color:var(--dim);
  margin-top:8px;
}
.reveal {
  opacity:1;
  transform:translateY(38px);
  transition:opacity .7s ease,transform .7s ease;
}
.reveal.in {
  opacity:1;
  transform:translateY(0);
}
/* FOOTER */
.footer {
  padding:46px 34px;
  text-align:center;
  border-top:1px solid rgba(99,102,241,.1);
}
.footer-logo {
  font-size:18px;
  font-weight:900;
  color:#c7d2fe;
  margin-bottom:7px;
}
.footer-sub {
  font-size:11px;
  color:var(--dim);
}
.progress-bar {
  height:6px;
  background:linear-gradient(90deg,transparent,var(--indigo),var(--violet),transparent);
  background-size:200% 100%;
  animation:shimmer 2s linear infinite;
}
/* CUSTOM VIDEO PLAYER */
.modal {
  position:fixed;
  inset:0;
  z-index:500;
  background:rgba(2,2,8,.92);
  backdrop-filter:blur(12px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s;
}
.modal.open {
  opacity:1;
  visibility:visible;
}
.player {
  position:relative;
  width:min(900px,100%);
  aspect-ratio:16/9;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(99,102,241,.3);
  transform:scale(.92);
  transition:transform .3s;
  box-shadow:0 30px 80px rgba(0,0,0,.6);
  background:#000;
}
.modal.open .player {
  transform:scale(1);
}
.player video {
  width:100%;
  height:100%;
  display:block;
}
.big-play {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:none;
  transition:opacity .3s;
}
.big-play svg {
  width:72px;
  height:72px;
  fill:#fff;
  filter:drop-shadow(0 4px 18px rgba(99,102,241,.8));
  transition:transform .25s;
}
.big-play:hover svg {
  transform:scale(1.15);
}
.big-play.hide {
  opacity:0;
  pointer-events:none;
}
.vcontrols {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:14px 16px 12px;
  display:flex;
  align-items:center;
  gap:12px;
  background:linear-gradient(transparent,rgba(2,2,10,.85));
  opacity:0;
  transition:opacity .3s;
}
.player:hover .vcontrols {
  opacity:1;
}
.vbtn {
  background:none;
  border:none;
  color:#fff;
  cursor:none;
  display:flex;
  align-items:center;
}
.vbtn svg {
  width:20px;
  height:20px;
  fill:#fff;
}
.seek {
  flex:1;
  height:6px;
  background:rgba(255,255,255,.2);
  border-radius:6px;
  cursor:none;
  position:relative;
}
.seek-buf {
  position:absolute;
  left:0;
  top:0;
  height:100%;
  background:rgba(255,255,255,.25);
  border-radius:6px;
}
.seek-fill {
  position:absolute;
  left:0;
  top:0;
  height:100%;
  width:0;
  background:linear-gradient(90deg,var(--indigo),var(--pink));
  border-radius:6px;
}
.seek-fill::after {
  content:'';
  position:absolute;
  right:-6px;
  top:50%;
  transform:translateY(-50%);
  width:12px;
  height:12px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 8px var(--violet);
}
.vtime {
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:#cbd5e1;
  white-space:nowrap;
}
.modal-close {
  position:absolute;
  top:22px;
  right:26px;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(99,102,241,.4);
  background:rgba(15,15,38,.8);
  color:#c7d2fe;
  font-size:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:none;
  z-index:3;
}
.modal-cap {
  margin-top:14px;
  font-size:12px;
  color:var(--muted);
  text-align:center;
}
.modal-cap a {
  color:#a5b4fc;
  text-decoration:underline;
}
@media(max-width:860px) {
  .hero-inner {
    grid-template-columns:1fr;
    text-align:center;
  }
  .hero-stats,.hero-btns {
    justify-content:center;
  }
  .courses-grid {
    grid-template-columns:1fr 1fr;
  }
  .resources-grid {
    grid-template-columns:1fr 1fr;
  }
  .video-grid {
    grid-template-columns:1fr;
  }
  .nav-links {
    display:none;
  }
  .hero-title {
    font-size:32px;
  }
  .spy {
    display:none;
  }
  .hero-3d-panel {
    display:none;
  }
  body {
    cursor:auto;
  }
  .cur-ring,.cur-dot {
    display:none;
  }
  .btn,.cb-btn,.video-thumb,.modal-close,.skin,.vbtn,.seek,.big-play,.card-3d,.nav-link {
    cursor:pointer;
  }
}
@media(max-width:540px) {
  .courses-grid,.resources-grid,.video-side {
    grid-template-columns:1fr;
  }
}
.site-footer {
  position: relative;
  z-index: 5;
  padding: 34px 24px;
  border-top: 1px solid rgba(139, 92, 246, 0.16);
  background: rgba(4, 4, 12, 0.72);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.site-footer__inner {
  width: min(1180px, 100%);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 15px;
  text-align: center;
}
.site-footer__copyright, .site-footer__credit, .site-footer__developer {
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-footer__copyright {
  gap: 13px;
}
.site-footer__copyright p, .site-footer__credit > span {
  margin: 0;
  color: #94a3b8;
  font-size: 14px;
  line-height: 1.6;
}
.site-footer__site-logo {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  transition: transform 0.3s ease, filter 0.3s ease;
}
.site-footer__site-logo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.site-footer__site-logo:hover {
  transform: translateY(-2px) scale(1.05);
  filter: drop-shadow(0 8px 18px rgba(139, 92, 246, 0.35));
}
.site-footer__credit {
  gap: 12px;
}
.site-footer__developer {
  gap: 9px;
  color: #f8fafc;
  text-decoration: none;
  transition: color 0.3s ease, transform 0.3s ease;
}
.site-footer__developer img {
  width: 38px;
  height: 38px;
  display: block;
  object-fit: contain;
  border-radius: 10px;
  transition: transform 0.35s ease, filter 0.35s ease;
}

.site-footer__content{display:flex;flex-direction:column;align-items:center;gap:7px}.site-footer__description{max-width:560px;color:#8d98ad;font-size:12px;text-align:center}.site-footer__links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.site-footer__links a{color:#a5b4fc;font-size:11px;font-weight:700}
.site-footer__developer strong {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.1px;
}
.site-footer__developer:hover {
  color: #a78bfa;
  transform: translateY(-1px);
}
.site-footer__developer:hover img {
  transform: scale(1.12) rotate(-5deg);
  filter: drop-shadow(0 9px 20px rgba(139, 92, 246, 0.45));
}
html[dir="rtl"] .site-footer__copyright, html[dir="rtl"] .site-footer__credit, html[dir="rtl"] .site-footer__developer {
  flex-direction: row-reverse;
}
@media (max-width: 620px) {
  .site-footer {
    padding: 28px 18px;
  }
  .site-footer__copyright,   .site-footer__credit {
    flex-wrap: wrap;
  }
  .site-footer__copyright p,   .site-footer__credit > span {
    font-size: 13px;
  }
}
/* Footer layout override: one clear horizontal line */
.site-footer {
  padding: 28px 24px;
}
.site-footer__inner {
  width: min(1240px, 100%);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 22px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.site-footer__copyright-text, .site-footer__credit-text {
  margin: 0;
  color: #a8b2c7;
  font-size: clamp(15px, 1.15vw, 18px);
  line-height: 1.5;
  font-weight: 600;
}
.site-footer__site-logo {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
}
.site-footer__developer {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  gap: 0;
}
.site-footer__developer img {
  width: 44px;
  height: 44px;
}
@media (max-width: 760px) {
  .site-footer {
    padding: 22px 12px;
  }
  .site-footer__inner {
    gap: 10px;
    justify-content: space-between;
  }
  .site-footer__copyright-text,   .site-footer__credit-text {
    font-size: clamp(10px, 2.8vw, 13px);
  }
  .site-footer__site-logo {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }
  .site-footer__developer,   .site-footer__developer img {
    width: 32px;
    height: 32px;
  }
  .site-footer__developer {
    flex-basis: 32px;
  }
}

/* ===== Site polish v1.0.36 ===== */
a,
a:link,
a:visited,
a:hover,
a:active {
  text-decoration: none !important;
}

::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

::-webkit-scrollbar-thumb {
  border-radius: 999px;
}

html {
  scrollbar-width: thin;
  scrollbar-color: var(--violet) var(--bg);
}

/* Inline editorial links: no underline, only a subtle diagonal arrow. */
.course-richtext a:not([class]),
.about-richtext a:not([class]),
.committee-description a:not([class]),
.committee-section-description a:not([class]),
.publication-copy a:not([class]),
.research-copy a:not([class]),
.media-entry-content a:not([class]),
.seminar-content a:not([class]) {
  color: #c8a8ff;
  font-weight: 700;
  text-decoration: none !important;
}

.course-richtext a:not([class])::after,
.about-richtext a:not([class])::after,
.committee-description a:not([class])::after,
.committee-section-description a:not([class])::after,
.publication-copy a:not([class])::after,
.research-copy a:not([class])::after,
.media-entry-content a:not([class])::after,
.seminar-content a:not([class])::after {
  content: " ↗";
  display: inline-block;
  margin-left: 0.18em;
  color: #8b5cf6;
  font-size: 0.78em;
  font-weight: 800;
  transform: translateY(-0.08em);
  transition: transform 0.2s ease, color 0.2s ease;
}

.course-richtext a:not([class]):hover::after,
.about-richtext a:not([class]):hover::after,
.committee-description a:not([class]):hover::after,
.committee-section-description a:not([class]):hover::after,
.publication-copy a:not([class]):hover::after,
.research-copy a:not([class]):hover::after,
.media-entry-content a:not([class]):hover::after,
.seminar-content a:not([class]):hover::after {
  color: #22d3ee;
  transform: translate(2px, -2px);
}

/* Smooth scroll reveal applied automatically by core.js. */
.reveal {
  opacity: 1;
  transform: translateY(26px);
  transition: opacity 0.72s cubic-bezier(.2,.7,.2,1), transform 0.72s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}

.reveal.in {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .reveal,
  .reveal.in {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Footer: logo left, copyright centered, credit + developer icon right. */
.site-footer {
  padding: 24px 32px;
  background: #05050d;
  border-top: 1px solid rgba(139, 92, 246, 0.16);
}

.site-footer__inner {
  width: min(1480px, 100%);
  min-height: 72px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr) 250px;
  align-items: center;
  gap: 24px;
  text-align: initial;
}

.site-footer__site-logo {
  justify-self: start;
  width: 100px;
  height: 100px;
}

.site-footer__copyright-text {
  justify-self: center;
  margin: 0;
  color: #b7bfd1;
  font-size: clamp(15px, 1.1vw, 18px);
  line-height: 1.45;
  font-weight: 650;
  text-align: center;
}

.site-footer__credit-text {
  justify-self: end;
  margin: 0 89px 0 0;
  color: #b7bfd1;
  font-size: clamp(15px, 1vw, 17px);
  line-height: 1.45;
  font-weight: 650;
  white-space: nowrap;
}

.site-footer__developer {
  justify-self: end;
  position: absolute;
  right: 0;
  width: 100px;
  height: 100px;
}

.site-footer__inner {
  position: relative;
}

.site-footer__developer img {
  width: 100px;
  height: 100px;
  object-fit: contain;
}

@media (max-width: 820px) {
  .site-footer {
    padding: 22px 18px;
  }

  .site-footer__inner {
    grid-template-columns: 46px minmax(0, 1fr) 46px;
    gap: 12px;
  }

  .site-footer__site-logo {
    width: 40px;
    height: 40px;
  }

  .site-footer__copyright-text {
    font-size: 12px;
  }

  .site-footer__credit-text {
    display: none;
  }

  .site-footer__developer {
    position: static;
    justify-self: end;
    width: 100px;
    height: 100px;
  }

  .site-footer__developer img {
    width: 38px;
    height: 38px;
  }
}


/* Motion-safe reveal: content is visible by default and only hidden when JS is active. */
html.motion-ready .reveal:not(.in) {
  opacity: 0;
  transform: translateY(22px);
}

html.motion-ready .reveal.in {
  opacity: 1;
  transform: translateY(0);
}

/* Global theme background — controlled by the corner palette and persisted across pages. */
:root {
  --page-bg-gradient:
    radial-gradient(circle at 14% 12%, rgba(99,102,241,.13), transparent 32%),
    radial-gradient(circle at 88% 22%, rgba(236,72,153,.09), transparent 30%),
    #04040c;
}
body[data-skin="emerald"] {
  --page-bg-gradient: radial-gradient(circle at 15% 12%, rgba(16,185,129,.14), transparent 34%), radial-gradient(circle at 88% 22%, rgba(34,211,238,.09), transparent 30%), #03100e;
}
body[data-skin="amber"] {
  --page-bg-gradient: radial-gradient(circle at 15% 12%, rgba(245,158,11,.14), transparent 34%), radial-gradient(circle at 88% 22%, rgba(249,115,22,.09), transparent 30%), #100a02;
}
body[data-skin="rose"] {
  --page-bg-gradient: radial-gradient(circle at 15% 12%, rgba(244,63,94,.14), transparent 34%), radial-gradient(circle at 88% 22%, rgba(217,70,239,.10), transparent 30%), #10030b;
}
body {
  background: var(--page-bg-gradient);
  background-attachment: fixed;
  transition: background-color .35s ease;
}
.page { background: transparent !important; }

/* A subtle full-site palette wash also reaches pages that use their own dark section surfaces. */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  background: transparent;
  transition: opacity .3s ease, background .3s ease;
}
body[data-skin="emerald"]::after { opacity:.07; background:linear-gradient(135deg,#10b981,#22d3ee); mix-blend-mode:screen; }
body[data-skin="amber"]::after { opacity:.065; background:linear-gradient(135deg,#f59e0b,#f97316); mix-blend-mode:screen; }
body[data-skin="rose"]::after { opacity:.065; background:linear-gradient(135deg,#f43f5e,#d946ef); mix-blend-mode:screen; }
.academic-header, .corner, .cur-ring, .cur-dot, .scroll-progress { z-index: 9999; }
