/* cormorant-garamond-latin-300-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(/academy/assets/cormorant-garamond-latin-300-normal-Cw-E_7L1.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-300-normal-BuXLI6C0.woff) format('woff');
}/* cormorant-garamond-latin-ext-300-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(/academy/assets/cormorant-garamond-latin-ext-300-normal-BsCYHBWC.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-300-normal-DueGyF8j.woff) format('woff');
}/* cormorant-garamond-latin-300-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 300;
  src: url(/academy/assets/cormorant-garamond-latin-300-italic-qkwBXYHn.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-300-italic-DRnsRYID.woff) format('woff');
}/* cormorant-garamond-latin-ext-300-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 300;
  src: url(/academy/assets/cormorant-garamond-latin-ext-300-italic-Bt0Wsy7Q.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-300-italic-DambfolG.woff) format('woff');
}/* cormorant-garamond-latin-400-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff) format('woff');
}/* cormorant-garamond-latin-ext-400-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/cormorant-garamond-latin-ext-400-normal-Drx2k2n9.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-400-normal-uvC0WHQr.woff) format('woff');
}/* cormorant-garamond-latin-400-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/cormorant-garamond-latin-400-italic-Dc_OZ8oc.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-400-italic-BLh7T8o8.woff) format('woff');
}/* cormorant-garamond-latin-ext-400-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/cormorant-garamond-latin-ext-400-italic-BdEzgT7i.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-400-italic-CQvLaSWn.woff) format('woff');
}/* cormorant-garamond-latin-500-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format('woff');
}/* cormorant-garamond-latin-ext-500-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff) format('woff');
}/* cormorant-garamond-latin-500-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff) format('woff');
}/* cormorant-garamond-latin-ext-500-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/cormorant-garamond-latin-ext-500-italic-CE7zdTnu.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-500-italic-CalKM9tT.woff) format('woff');
}/* cormorant-garamond-latin-600-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format('woff');
}/* cormorant-garamond-latin-ext-600-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.woff) format('woff');
}/* cormorant-garamond-latin-600-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/cormorant-garamond-latin-600-italic-DCuhXWyK.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-600-italic-BcJbkSJ4.woff) format('woff');
}/* cormorant-garamond-latin-ext-600-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/cormorant-garamond-latin-ext-600-italic-DYtrqAWE.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-600-italic-CcucBqPp.woff) format('woff');
}/* cormorant-garamond-latin-700-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/cormorant-garamond-latin-700-normal-DajfzrDU.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-700-normal-O25Qpphb.woff) format('woff');
}/* cormorant-garamond-latin-ext-700-normal */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/cormorant-garamond-latin-ext-700-normal-CNjt5vTB.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-700-normal-qRbaVVD7.woff) format('woff');
}/* cormorant-garamond-latin-700-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/cormorant-garamond-latin-700-italic-1ifP4r4a.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-700-italic-Bzi8PaWU.woff) format('woff');
}/* cormorant-garamond-latin-ext-700-italic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/cormorant-garamond-latin-ext-700-italic-BjnJtIVJ.woff2) format('woff2'), url(/academy/assets/cormorant-garamond-latin-ext-700-italic-BzNLSFOF.woff) format('woff');
}/* instrument-sans-latin-400-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff) format('woff');
}/* instrument-sans-latin-ext-400-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/instrument-sans-latin-ext-400-normal-Q_nF8v4l.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-400-normal-r32jotim.woff) format('woff');
}/* instrument-sans-latin-400-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/instrument-sans-latin-400-italic-DCPiXYsF.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-400-italic-CX4K8MRt.woff) format('woff');
}/* instrument-sans-latin-ext-400-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/instrument-sans-latin-ext-400-italic-BuclrmZR.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-400-italic-6UexrgPI.woff) format('woff');
}/* instrument-sans-latin-500-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/instrument-sans-latin-500-normal-Dk9ku72i.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-500-normal-Z6ESRlEs.woff) format('woff');
}/* instrument-sans-latin-ext-500-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/instrument-sans-latin-ext-500-normal-CTEe1bJa.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-500-normal-CAxz3nsc.woff) format('woff');
}/* instrument-sans-latin-500-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/instrument-sans-latin-500-italic-dJ09OWzu.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-500-italic-AA1cAicB.woff) format('woff');
}/* instrument-sans-latin-ext-500-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 500;
  src: url(/academy/assets/instrument-sans-latin-ext-500-italic-CYmgUtJz.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-500-italic-BJlniOy5.woff) format('woff');
}/* instrument-sans-latin-600-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-600-normal-B9e8oLYv.woff) format('woff');
}/* instrument-sans-latin-ext-600-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/instrument-sans-latin-ext-600-normal-BsaQcF38.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-600-normal-DMks36a2.woff) format('woff');
}/* instrument-sans-latin-600-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/instrument-sans-latin-600-italic-BhZ_8V5m.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-600-italic-C3Xdev4Q.woff) format('woff');
}/* instrument-sans-latin-ext-600-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 600;
  src: url(/academy/assets/instrument-sans-latin-ext-600-italic-BC-QA_To.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-600-italic-jxnyb53X.woff) format('woff');
}/* instrument-sans-latin-700-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/instrument-sans-latin-700-normal-CYfAanHo.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-700-normal-DfAjL1vF.woff) format('woff');
}/* instrument-sans-latin-ext-700-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/instrument-sans-latin-ext-700-normal-ClYbKGw-.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-700-normal-BQc-7cTM.woff) format('woff');
}/* instrument-sans-latin-700-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/instrument-sans-latin-700-italic-YQU9YmSo.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-700-italic-P_WmZI-N.woff) format('woff');
}/* instrument-sans-latin-ext-700-italic */
@font-face {
  font-family: 'Instrument Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/instrument-sans-latin-ext-700-italic-BVKbqq1g.woff2) format('woff2'), url(/academy/assets/instrument-sans-latin-ext-700-italic-DfqV-2a6.woff) format('woff');
}/* inter-latin-400-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/inter-latin-400-normal-C38fXH4l.woff2) format('woff2'), url(/academy/assets/inter-latin-400-normal-CyCys3Eg.woff) format('woff');
}/* inter-latin-ext-400-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/academy/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format('woff2'), url(/academy/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format('woff');
}/* inter-latin-700-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format('woff2'), url(/academy/assets/inter-latin-700-normal-BLAVimhd.woff) format('woff');
}/* inter-latin-ext-700-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/academy/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format('woff2'), url(/academy/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format('woff');
}/* inter-latin-900-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url(/academy/assets/inter-latin-900-normal-D4nM5aha.woff2) format('woff2'), url(/academy/assets/inter-latin-900-normal-EUCDUbiG.woff) format('woff');
}/* inter-latin-ext-900-normal */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url(/academy/assets/inter-latin-ext-900-normal-ty8Tfvw5.woff2) format('woff2'), url(/academy/assets/inter-latin-ext-900-normal-DG9wZIMw.woff) format('woff');
}:root {
  font-family: 'Inter', system-ui, Avenir, Helvetica, Arial, sans-serif;
  line-height: 1.5;
  font-weight: 400;

  color-scheme: light;
  color: #1e293b;
  background-color: #fcf8f9;

  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  /* Elite-Zen Theme (Soft Zen Archive & Ivory) */
  --elite-bg: #FAF9F6;
  --elite-surface: #ffffff;
  --elite-text: #1c1917;
  --elite-text-muted: #78716c;
  --elite-accent: #4a3f35;
  /* Rich Umber / Warm Taupe */
  --elite-gold: #c5a059;
  /* Antique Gold */
  --elite-accent-soft: #f4f2ef;
  --elite-glass-bg: rgba(255, 255, 255, 0.65);
  --elite-glass-border: rgba(212, 190, 160, 0.4);
  --elite-shadow: rgba(74, 63, 53, 0.12);
  --elite-serif: 'Cormorant Garamond', serif;
  --elite-sans: 'Instrument Sans', sans-serif;
}

.elite-beige-theme {
  background: var(--elite-bg) !important;
  color: var(--elite-text) !important;
  font-family: var(--elite-sans) !important;
}

.elite-beige-theme .glass-card {
  background: var(--elite-glass-bg) !important;
  border-color: var(--elite-glass-border) !important;
  box-shadow: 20px 20px 60px var(--elite-shadow), -10px -10px 30px #ffffff !important;
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  display: flex;
  place-items: center;
  min-height: 100vh;
  background: var(--elite-bg);
  transition: background 0.6s ease-in-out;
}

#root {
  width: 100%;
}

/* Glassmorphism Generic Card */
.glass-card {
  background: var(--myta-glass-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--myta-glass-border);
  border-radius: 24px;
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
}

/* Neumorphic Inset Shadow for inputs */
.neu-inset {
  background: #1e293b;
  box-shadow: inset 8px 8px 16px var(--myta-neu-shadow-dark),
    inset -8px -8px 16px var(--myta-neu-shadow-light);
  border: none;
  border-radius: 12px;
  padding: 12px 16px;
  color: white;
  outline: none;
}

/* Premium Button */
.premium-btn {
  background: linear-gradient(135deg, var(--myta-blue) 0%, var(--myta-blue-dark) 100%);
  color: white;
  padding: 14px 28px;
  border-radius: 16px;
  border: none;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 14px 0 rgba(59, 130, 246, 0.39);
}

.premium-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(59, 130, 246, 0.5);
}

.premium-btn:active {
  transform: translateY(1px);
}

/* ACCOUNT MODAL STYLES */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  padding: 20px;
}

.account-modal {
  width: 100%;
  max-width: 420px;
  padding: 40px;
  position: relative;
  text-align: center;
}

.modal-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: rgba(255, 255, 255, 0.1);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  cursor: pointer;
  transition: all 0.3s ease;
}

.modal-close:hover {
  background: rgba(255, 0, 0, 0.2);
  transform: rotate(90deg);
}

.account-avatar-large {
  width: 160px;
  height: 160px;
  margin: 0 auto 24px;
  border-radius: 50%;
  padding: 4px;
  background: linear-gradient(135deg, #3b82f6, #00c5ea);
  box-shadow: 0 10px 30px rgba(0, 197, 234, 0.3);
}

.account-avatar-large img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid #1e293b;
}

.account-username {
  font-size: 2rem;
  font-weight: 800;
  margin: 0 0 12px;
  background: linear-gradient(135deg, #fff 0%, #cbd5e1 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.account-badge-row {
  display: flex;
  justify-content: center;
  margin-bottom: 30px;
}

.account-badge {
  display: flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 600;
  color: white;
  letter-spacing: 0.5px;
}

.premium-grad-bg {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.2);
}

.account-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  margin-bottom: 30px;
}

.logout-btn-premium {
  width: 100%;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #ef4444;
  padding: 16px;
  border-radius: 16px;
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.logout-btn-premium:hover {
  background: #ef4444;
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(239, 68, 68, 0.3);
}

/* UI Cleanup: Globally conceal scrollbars while keeping scroll functionality */
::-webkit-scrollbar {
  display: none;
}

* {
  -ms-overflow-style: none;
  scrollbar-width: none;
}/* Global Elite Theme Registry */
html, body {
  background-color: #F8F5F0 !important;
  margin: 0;
  padding: 0;
}

/* App Global Layouts */
.App {
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #F8F5F0; /* Elite Beige Base */
}

/* Login Page Styling */
.login-container {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
}

.login-card {
  width: 420px;
  padding: 48px;
  text-align: center;
  position: relative;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 20px 20px 60px rgba(203, 213, 225, 0.4), -10px -10px 30px #ffffff;
}

.logo-section h1 {
  font-size: 2.8rem;
  margin: 16px 0 8px;
  letter-spacing: -1px;
}

.logo-section p {
  color: #94a3b8;
  margin-bottom: 40px;
  font-size: 0.95rem;
}

.login-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.input-group {
  position: relative;
}

.input-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
}

.input-group input {
  width: 100%;
  padding: 14px 14px 14px 44px;
  box-sizing: border-box;
  background: #f1f5f9;
  border: 1px solid rgba(0,0,0,0.05);
  border-radius: 12px;
  color: #0f172a;
}

.error-msg {
  color: #ef4444;
  font-size: 0.85rem;
  text-align: center;
}

.login-btn {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Dashboard Layout */
.dashboard-layout {
  display: flex;
  width: 100vw;
  height: 100vh;
  box-sizing: border-box;
  padding: 0; /* No leaks */
  gap: 0;
  background-color: #F8F5F0; /* Total Immersion */
}

/* Floating Sidebar Nav */
.sidebar {
  position: relative;
  z-index: 1000;
  width: 96px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px 0;
  overflow-y: auto;
  align-items: center;
  height: calc(100vh - 64px); /* Vertical float */
  margin: 32px 0 32px 32px; /* Floating from left and vertical scale */
  background-color: #fff; /* Floating brightness */
  border-radius: 35px;
  box-shadow: 25px 25px 80px rgba(0,0,0,0.04);
  border: 1px solid rgba(0,0,0,0.02);
}

.sidebar-logo-container {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 0;
  transition: all 0.3s;
  overflow: visible;
}

.sidebar-logo {
  width: 88px;
  height: auto;
  filter: drop-shadow(0 4px 15px rgba(0,0,0,0.5));
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.sidebar-logo:hover {
  transform: scale(1.15) rotate(10deg);
  filter: invert(1) brightness(0.1) drop-shadow(0 4px 15px rgba(0,0,0,0.1));
}

.nav-items {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
  width: 100%;
}

/* a thin rule between the menu's groups */
.nav-group-rule {
  width: 40px;
  height: 1px;
  margin: 6px 0;
  background: rgba(197, 160, 89, 0.25);
}

/* the item's name under its icon */
.nav-label {
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.4px;
  line-height: 1.15;
  text-align: center;
  max-width: 80px;
  word-break: break-word;
}

.nav-item {
  width: 82px;
  min-height: 56px;
  padding: 7px 2px 6px;
  gap: 4px;
  flex-direction: column;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #a8a29e; /* Muted Umber */
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.nav-item:hover {
  background: rgba(197, 160, 89, 0.05); /* Soft Gold Bloom */
  color: #C5A059;
  transform: translateY(-2px);
}

.nav-item.active {
  background: #fff;
  color: #C5A059;
  box-shadow: 0 10px 25px rgba(197, 160, 89, 0.15);
  border: 1px solid rgba(197, 160, 89, 0.1);
}

.nav-item.active::after {
  content: '';
  position: absolute;
  left: -7px;
  top: 18px;
  width: 4px;
  height: 20px;
  background: #C5A059;
  border-radius: 0 4px 4px 0;
  box-shadow: 0 0 15px rgba(197, 160, 89, 0.5);
}

.user-avatar-nav {
  padding: 20px 0;
  border-top: 1px solid rgba(0,0,0,0.03);
}

.user-avatar-nav img {
  width: 50px;
  height: 50px;
  border-radius: 16px;
  border: 1px solid rgba(197, 160, 89, 0.2);
  cursor: pointer;
  transition: all 0.4s;
  object-fit: cover;
  box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.user-avatar-nav img:hover {
  transform: translateY(-5px);
  border-color: #C5A059;
  box-shadow: 0 15px 30px rgba(197, 160, 89, 0.2);
}

/* Main Main Content Layout */
.main-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow-y: auto;
  background-color: #F8F5F0; /* Continental Unity */
}

.hub-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.greeting h2 {
  font-size: 2.2rem;
  margin: 0;
}

.greeting p {
  color: #94a3b8;
  font-size: 1.1rem;
  margin: 8px 0 0;
}

.blue-gradient-text {
  background: -webkit-linear-gradient(#60a5fa, #2563eb);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Header Info Pills */
.header-stats {
  display: flex;
  gap: 16px;
}

.stat-pill {
  padding: 12px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 100px;
}

.stat-label {
  font-size: 0.75rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

/* Visual Dashboard Grid */
.visual-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
}

.session-detail-container {
  padding: 40px 20px;
}

.action-tile {
  padding: 40px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.tile-icon-bg {
  width: 80px;
  height: 80px;
  border-radius: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
  color: white;
  box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.1);
}

.bg-blue { background: linear-gradient(135deg, #3b82f6, #1d4ed8); }
.bg-purple { background: linear-gradient(135deg, #a855f7, #6b21a8); }
.bg-green { background: linear-gradient(135deg, #10b981, #047857); }
.bg-orange { background: linear-gradient(135deg, #f97316, #c2410c); }

.action-tile h3 {
  margin: 0;
  font-size: 1.4rem;
}

.action-tile p {
  color: #94a3b8;
  margin: 0;
  font-size: 1rem;
}

/* Elite Zen Loader - The Art of Transition */
.loader-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #FAF9F6;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 10000;
  backdrop-filter: blur(20px);
}

.zen-loader-content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

.zen-loader-logo {
  height: 120px;
  width: auto;
  filter: invert(65%) sepia(35%) saturate(550%) hue-rotate(0deg) brightness(95%) contrast(90%);
  animation: zen-breathe 3s infinite ease-in-out;
}

.zen-loader-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 180px;
  height: 180px;
  border: 2px solid rgba(197, 160, 89, 0.1);
  border-top: 2px solid var(--elite-gold);
  border-radius: 50%;
  animation: zen-spin 2s infinite cubic-bezier(0.4, 0, 0.2, 1);
}

.loader-text {
  font-family: var(--elite-sans);
  font-size: 0.75rem;
  font-weight: 950;
  color: var(--elite-gold);
  letter-spacing: 6px;
  text-transform: uppercase;
  opacity: 0.8;
  animation: zen-fade 2s infinite ease-in-out;
}

@keyframes zen-breathe {
  0%, 100% { transform: scale(0.95); opacity: 0.7; filter: invert(65%) sepia(35%) saturate(550%) hue-rotate(0deg) brightness(95%) contrast(90%) drop-shadow(0 0 20px rgba(197, 160, 89, 0)); }
  50% { transform: scale(1.05); opacity: 1; filter: invert(65%) sepia(35%) saturate(550%) hue-rotate(0deg) brightness(95%) contrast(90%) drop-shadow(0 0 40px rgba(197, 160, 89, 0.4)); }
}

@keyframes zen-spin {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes zen-fade {
  0%, 100% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-3px); }
}

/* Classes View Styles */
.classes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
}

.class-card {
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.class-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 25px 50px rgba(203, 213, 225, 0.4);
}

.class-header-img {
  height: 120px;
  background: linear-gradient(135deg, #1e293b, #3b82f6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  position: relative;
}

.class-avatar-circle {
  width: 64px;
  height: 64px;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(5px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,0.2);
}

.class-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  background: rgba(255,255,255,0.8);
  color: #0f172a;
  backdrop-filter: blur(4px);
}

.class-body {
  padding: 24px;
}

.class-body h3 {
  margin: 0;
  font-size: 1.3rem;
}

.class-meta {
  display: flex;
  gap: 12px;
  margin-top: 8px;
  color: #94a3b8;
  font-size: 0.85rem;
}

.class-stats-row {
  display: flex;
  justify-content: space-between;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.05);
}

.mini-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.mini-stat-val {
  font-weight: 700;
  color: #0f172a;
  font-size: 1.1rem;
}

.mini-stat-label {
  font-size: 0.65rem;
  color: #64748b;
  text-transform: uppercase;
}

.class-actions {
  display: flex;
  padding: 16px 24px 24px;
  gap: 12px;
}

.sec-btn {
  flex: 1;
  padding: 10px;
  border-radius: 12px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: white;
  font-size: 0.85rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s;
}

.sec-btn:hover {
  background: rgba(255,255,255,0.1);
}

.blue-grad-bg { background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); }
.purple-grad-bg { background: linear-gradient(135deg, #a855f7 0%, #6b21a8 100%); }
.purple-grad-bg {
  background: linear-gradient(135deg, #7e22ce 0%, #a855f7 100%);
  box-shadow: 0 10px 30px rgba(168, 85, 247, 0.3);
}

.glow-purple {
  box-shadow: 0 10px 30px rgba(168, 85, 247, 0.2);
}

.glow-purple .liquid-wave {
  background: rgba(168, 85, 247, 0.6);
}
.green-grad-bg { background: linear-gradient(135deg, #10b981 0%, #047857 100%); }

/* Student List Styles */
.student-list-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.view-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 40px;
  background: #ffffff;
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  position: sticky;
  top: 0;
  z-index: 1000;
  margin-bottom: 24px;
  box-shadow: 0 10px 30px rgba(203, 213, 225, 0.2);
}

.students-table-card {
  padding: 0;
  overflow: hidden;
}

.students-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.students-table th {
  padding: 18px 24px;
  background: rgba(0,0,0,0.02);
  color: #64748b;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.students-table td {
  padding: 16px 24px;
  border-top: 1px solid rgba(0,0,0,0.03);
  color: #1e293b;
}

.students-table tr:hover td {
  background: rgba(0,0,0,0.01);
}

.student-identity {
  display: flex;
  align-items: center;
  gap: 12px;
}

.id-circle {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--myta-blue);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 700;
}

.status-badge {
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
}

.status-active { background: rgba(16, 185, 129, 0.1); color: #10b981; }
.status-inactive { background: rgba(239, 68, 68, 0.1); color: #ef4444; }

.btn-ghost {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.1);
  color: #94a3b8;
  padding: 8px 16px;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s;
}

.btn-ghost:hover {
  background: #f1f5f9;
  color: #0f172a;
  border-color: rgba(0,0,0,0.1);
}

/* Class Hub / Detail View */
.class-hub-container {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.class-hub-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 40px;
  border-radius: 30px;
  position: relative;
  overflow: hidden;
  min-height: 200px;
}

.class-hub-header::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, transparent 100%);
  z-index: 1;
}

.hub-title-group {
  position: relative;
  z-index: 2;
}

.hub-title-group h1 {
  font-size: 3rem;
  margin: 0;
  font-weight: 800;
  text-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

.hub-nav-tabs {
  display: flex;
  gap: 10px;
  background: rgba(255,255,255,0.8);
  padding: 6px;
  border-radius: 15px;
  backdrop-filter: blur(10px);
  z-index: 2;
  box-shadow: 0 4px 15px rgba(203, 213, 225, 0.4);
}

.hub-tab {
  padding: 10px 20px;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s;
  color: #94a3b8;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}

.hub-tab.active {
  background: #3b82f6;
  color: white;
  box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
}

.hub-content-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 24px;
}

.hub-module-card {
  padding: 24px;
}

.hub-module-card h3 {
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.25rem;
  color: #0f172a;
}

.session-strip {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: #f8fafc;
  border-radius: 12px;
  margin-bottom: 12px;
  border: 1px solid rgba(0,0,0,0.03);
}

.session-info h4 {
  font-size: 0.95rem;
  margin: 0 0 4px 0;
}

.session-info p {
  font-size: 0.75rem;
  color: #94a3b8;
  margin: 0;
}

.session-stats {
  display: flex;
  gap: 8px;
}

.mini-pill {
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 700;
}

.pill-p { background: rgba(34,197,94,0.1); color: #22c55e; }
.pill-a { background: rgba(239,68,68,0.1); color: #ef4444; }

.stat-card-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.hero-stat-box {
  padding: 20px;
  text-align: center;
}

.hero-stat-box .val {
  display: block;
  font-size: 2rem;
  font-weight: 800;
  color: #0f172a;
}

/* Session Analytics Dashboard */
.analytics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
  margin-bottom: 32px;
}

.analytics-card {
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.chart-legend {
  flex: 1;
}

.legend-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
  font-size: 0.85rem;
}

.legend-item .dot {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  display: inline-block;
  margin-right: 8px;
}

.progress-track {
  width: 100%;
  height: 6px;
  background: rgba(255,255,255,0.05);
  border-radius: 3px;
  overflow: hidden;
  margin-top: 4px;
}

.progress-fill {
  height: 100%;
  border-radius: 3px;
}

.stat-pulse {
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(1); opacity: 1; }
}

/* Shimmer Shine Effect */
.shimmer-card {
  position: relative;
  overflow: hidden;
}

.shimmer-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: -150%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.05),
    transparent
  );
  transition: 0.5s;
  animation: shimmer-swipe 4s infinite;
}

@keyframes shimmer-swipe {
  0% { left: -150%; }
  50% { left: 150%; }
  100% { left: 150%; }
}

.progress-track {
  width: 100%;
  height: 8px;
  background: rgba(255,255,255,0.05);
  border-radius: 4px;
  overflow: hidden;
  margin-top: 6px;
  position: relative;
}

.progress-fill {
  height: 100%;
  border-radius: 4px;
  position: relative;
  overflow: hidden;
}

/* Liquid flow inside progress bars */
.progress-fill::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-image: linear-gradient(
    -45deg,
    rgba(255, 255, 255, 0.2) 25%,
    transparent 25%,
    transparent 50%,
    rgba(255, 255, 255, 0.2) 50%,
    rgba(255, 255, 255, 0.2) 75%,
    transparent 75%,
    transparent
  );
  z-index: 1;
  background-size: 50px 50px;
  animation: move-stripes 2s linear infinite;
}

@keyframes move-stripes {
  0% { background-position: 0 0; }
  100% { background-position: 50px 50px; }
}

.floating-icon {
  animation: floating 3s ease-in-out infinite;
}

@keyframes floating {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

.method-icons {
  display: flex;
  gap: 15px;
  margin-top: 15px;
}

.method-chip {
  background: rgba(255,255,255,0.03);
  padding: 8px 12px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: #94a3b8;
}

/* Liquid Progress Indicator */
.liquid-container {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: #1e293b;
  border: 4px solid rgba(255,255,255,0.1);
  box-shadow: 0 0 20px rgba(59, 130, 246, 0.2), inset 0 2px 10px rgba(0,0,0,0.5);
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.liquid-wave {
  position: absolute;
  top: var(--liquid-top);
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(135deg, #00d2ff 0%, #3a7bd5 100%);
  border-radius: 38%;
  animation: wave 10s infinite linear;
  opacity: 0.8;
  transition: top 1s cubic-bezier(0.4, 0, 0.2, 1);
}

.liquid-wave:nth-child(2) {
  opacity: 0.5;
  border-radius: 45%;
  background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
  animation: wave 8s infinite linear;
}

@keyframes wave {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.liquid-label {
  position: relative;
  z-index: 10;
  text-align: center;
  text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}

.liquid-label .val {
  font-size: 1.8rem;
  font-weight: 900;
  color: white;
}

.liquid-label .lbl {
  font-size: 0.6rem;
  font-weight: 700;
  color: rgba(255,255,255,0.8);
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Gradient Utility for Charts */
.grad-cyan { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); }
.grad-purple { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.grad-pink { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); }
.grad-orange { background: linear-gradient(135deg, #f6d365 0%, #fda085 100%); }

.glow-cyan { border-bottom: 3px solid #00f2fe !important; box-shadow: 0 10px 30px rgba(15, 242, 254, 0.2) !important; }
.glow-pink { border-bottom: 3px solid #f5576c !important; box-shadow: 0 10px 30px rgba(245, 87, 108, 0.2) !important; }
.glow-purple { border-bottom: 3px solid #764ba2 !important; box-shadow: 0 10px 30px rgba(118, 75, 162, 0.2) !important; }

.stripe-stat {
  display: flex;
  align-items: center;
  gap: 15px;
  width: 100%;
}

.stripe-number {
  font-size: 1.5rem;
  font-weight: 900;
  color: rgba(255,255,255,0.2);
  font-style: italic;
  transform: skewX(-15deg);
}

/* Session Details & Student Grid */
.detail-controls-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.sub-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 25px;
}

.action-bar-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 25px;
  padding: 15px 20px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(10px);
}

.view-toggle-group {
  display: flex;
  gap: 8px;
  background: rgba(255, 255, 255, 0.05);
  padding: 4px;
  border-radius: 12px;
}

.toggle-btn {
  padding: 8px 16px;
  border-radius: 8px;
  cursor: pointer;
  border: none;
  background: transparent;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s;
}

.toggle-btn.active {
  background: var(--myta-blue);
  color: white;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.students-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 20px;
}

.student-card {
  padding: 24px;
  text-align: center;
  position: relative;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.student-card:hover {
  transform: translateY(-8px);
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.2);
}

.student-card-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin: 0 auto 16px auto;
  overflow: hidden;
  border: 3px solid rgba(255,255,255,0.1);
  background: #1e293b;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 800;
  color: #94a3b8;
  position: relative;
}

.student-card .status-ribbon {
  position: absolute;
  top: 15px;
  right: 15px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.5px;
}

.ribbon-present { background: #22c55e; color: white; box-shadow: 0 4px 10px rgba(34, 197, 94, 0.3); }
.ribbon-absent { background: #ef4444; color: white; box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3); }

.student-card h4 {
  margin: 0 0 4px 0;
  font-size: 1rem;
  color: white;
}

.student-card .id-label {
  font-size: 0.8rem;
  color: #94a3b8;
  display: block;
}

.student-card .time-label {
  font-size: 0.7rem;
  color: #64748b;
  margin-top: 12px;
  display: block;
}

.student-card.is-absent {
  opacity: 0.7;
}

.student-card.is-present {
  border-bottom: 4px solid #22c55e;
}

/* ATTENDANCE ARCHIVE STYLES */
.attendance-archive {
  padding: 20px;
  max-width: 1400px;
  margin: 0 auto;
}

.archive-header {
  margin-bottom: 40px;
  border-left: 4px solid #3b82f6;
  padding-left: 20px;
}

.year-section {
  margin-bottom: 60px;
}

.year-divider {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
}

.year-text {
  font-family: 'DINCondensed-Bold', sans-serif;
  font-size: 1.5rem;
  letter-spacing: 3px;
  color: #64748b;
  white-space: nowrap;
}

.divider-line {
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, rgba(255,255,255,0.1), transparent);
}

.term-subsection {
  margin-bottom: 40px;
  padding-left: 20px;
}

.term-header {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 24px;
  border-radius: 40px;
  margin-bottom: 25px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.term-name {
  font-weight: 700;
  font-size: 1.1rem;
  color: #f1f5f9;
}

.archive-class-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 25px;
}

.archive-class-card {
  padding: 0;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  display: flex;
  flex-direction: column;
}

.archive-class-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.3);
  border-color: rgba(255,255,255,0.15);
}

.class-card-top {
  padding: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.class-icon-box {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}

.session-badge {
  background: rgba(255,255,255,0.08);
  padding: 6px 14px;
  border-radius: 30px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #94a3b8;
  border: 1px solid rgba(255,255,255,0.05);
}

.class-card-content {
  padding: 0 24px 20px 24px;
}

.class-card-content h3 {
  font-size: 1.4rem;
  margin: 0 0 4px 0;
  color: #f1f5f9;
}

.class-card-content p {
  margin: 0;
  color: #64748b;
  font-size: 0.85rem;
}

.archive-sessions-list {
  background: rgba(0,0,0,0.2);
  margin: 0 15px;
  padding: 10px;
  border-radius: 14px;
  flex: 1;
}

.session-item-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
  color: #cbd5e1;
  text-align: left;
}

.session-item-row:hover {
  background: rgba(255,255,255,0.05);
  color: #fff;
}

.session-item-row .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3b82f6;
  box-shadow: 0 0 10px #3b82f6;
}

.session-item-row .name {
  flex: 1;
  font-size: 0.85rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.session-item-row .arrow {
  opacity: 0;
  transform: translateX(-5px);
  transition: all 0.2s;
}

.session-item-row:hover .arrow {
  opacity: 1;
  transform: translateX(0);
}

.more-indicator {
  padding: 8px 12px;
  font-size: 0.75rem;
  color: #475569;
  font-style: italic;
}

.view-all-btn {
  margin: 20px;
  padding: 12px;
  border-radius: 12px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.05);
  color: #f1f5f9;
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s;
}

.view-all-btn:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.2);
}

/* Gradient Text Helpers */
.green-gradient-text {
  background: -webkit-linear-gradient(#34d399, #10b981);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.purple-gradient-text {
  background: -webkit-linear-gradient(#a78bfa, #7c3aed);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Poll Specific Styles */
.stat-detail-card {
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.stat-detail-card:hover {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, 0.08);
}

.liquid-wave {
  position: absolute;
  top: var(--liquid-top, 50%);
  left: -50%;
  width: 200%;
  height: 200%;
  border-radius: 40%;
  animation: wave 10s linear infinite;
  z-index: 1;
}

.liquid-label {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

@keyframes wave {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.glow-cyan { box-shadow: 0 0 20px rgba(6, 182, 212, 0.3); }
.glow-purple { box-shadow: 0 0 20px rgba(168, 85, 247, 0.3); }

/* Question Node & Connections */
.question-node-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 0px;
  position: relative;
}

.question-node-card {
  max-width: 800px;
  width: 90%;
  padding: 30px 40px;
  text-align: center;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 10px 40px rgba(0,0,0,0.4), inset 0 0 30px rgba(255,255,255,0.02);
  border-radius: 30px;
  z-index: 5;
  position: relative;
}

.question-node-card h2 {
  font-size: 1.8rem;
  line-height: 1.4;
  color: #fff;
  letter-spacing: -0.5px;
  font-weight: 700;
}

.stat-detail-card.is-correct {
  border: 2px solid rgba(16, 185, 129, 0.6);
  background: rgba(16, 185, 129, 0.08);
  box-shadow: 0 0 40px rgba(16, 185, 129, 0.25);
  transform: scale(1.05);
}


.connection-svg-layer {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 40px; /* Mesafeyi netleştiriyoruz */
  pointer-events: none;
  z-index: 1;
  overflow: visible;
}

.connecting-path {
  fill: none;
  stroke: rgba(59, 130, 246, 0.6); /* Daha belirgin mavi */
  stroke-width: 3;
  filter: drop-shadow(0 0 8px rgba(59, 130, 246, 0.4));
}

.correct-badge {
  position: absolute;
  top: 15px;
  right: 15px;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 800;
  padding: 4px 12px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 1px;
  box-shadow: 0 4px 15px rgba(16, 185, 129, 0.4);
  z-index: 10;
}

.correct-glow-line {
  stroke-width: 5 !important;
  opacity: 1 !important;
  stroke-linecap: round;
  filter: drop-shadow(0 0 12px rgba(16, 185, 129, 0.7));
}

/* --- ACCOUNT MODAL PREMIUM IDENTITY (IDENTITY MATRIX) --- */
.account-modal {
  width: 100%;
  max-width: 450px;
  padding: 0;
  overflow: hidden;
  border-radius: 40px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6), inset 0 0 40px rgba(255, 255, 255, 0.02);
  position: relative;
}

.account-modal-header {
  height: 120px;
  background: linear-gradient(135deg, #3b82f6 0%, #a855f7 100%);
  position: relative;
  display: flex;
  justify-content: center;
}

.account-avatar-large {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  border: 4px solid #0f172a;
  background: #0f172a;
  box-shadow: 0 10px 25px rgba(0,0,0,0.4);
  position: absolute;
  top: 55px;
  overflow: hidden;
  z-index: 5;
}

.account-avatar-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}

.account-avatar-large:hover img {
  transform: scale(1.1) rotate(5deg);
}

.account-modal-content {
  padding: 85px 40px 40px;
  text-align: center;
}

.account-username {
  font-size: 2rem;
  font-weight: 800;
  margin: 0;
  letter-spacing: -1px;
}

.account-institution {
  color: #94a3b8;
  font-size: 0.95rem;
  margin-top: 8px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.account-badge-row {
  display: flex;
  justify-content: center;
  gap: 15px;
  margin: 25px 0;
}

.identity-badge {
  padding: 8px 16px;
  border-radius: 30px;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

.badge-premium {
  background: linear-gradient(135deg, #fcd34d 0%, #f59e0b 100%);
  color: #451a03;
}

.badge-verified {
  background: rgba(16, 185, 129, 0.1);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.account-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  margin: 30px 0;
  padding: 20px;
  background: rgba(255,255,255,0.02);
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,0.05);
}

.id-stat-box {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.id-stat-box .val {
  font-size: 1.4rem;
  font-weight: 800;
  color: #f1f5f9;
}

.id-stat-box .lbl {
  font-size: 0.6rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.logout-btn-premium {
  width: 100%;
  padding: 16px;
  border-radius: 20px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #f87171;
  font-weight: 800;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  cursor: pointer;
  transition: all 0.3s;
  margin-top: 10px;
}

.logout-btn-premium:hover {
  background: #ef4444;
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(239, 68, 68, 0.3);
}

.account-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
  margin: 25px 0;
}

/* GPU BACKED ANIMATIONS FOR PERFORMANCE */
@keyframes globalRotate {
  from { transform: translate(-50%, -50%) rotate(var(--angle, 0deg)) translateX(var(--dist, 1000px)) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(calc(var(--angle, 0deg) + 360deg)) translateX(var(--dist, 1000px)) rotate(360deg); }
}

@keyframes particleSpin {
  from { transform: rotate(var(--p-angle, 0deg)) translateX(var(--p-radius, 300px)) rotate(0deg); }
  to { transform: rotate(var(--p-angle, 0deg)) translateX(var(--p-radius, 300px)) rotate(360deg); }
}

@keyframes particlePulse {
  0%, 100% { opacity: 0.1; transform: scale(0.8); }
  50% { opacity: 0.7; transform: scale(1.2); }
}

.sphere-particle {
  pointer-events: none;
  transform-origin: center center;
}

@keyframes twinkle {
  0%, 100% { opacity: var(--alpha, 0.4); transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}

/* the top bar on every page (2026-11-11): sticks while the page scrolls */
.hub-topbar {
  position: sticky;
  top: 0;
  z-index: 900;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 14px;
  padding: 14px 40px;
  background: rgba(248, 245, 240, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(197, 160, 89, 0.12);
}
.hub-topbar-btn {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: 14px; cursor: pointer;
  border: 1px solid rgba(197, 160, 89, 0.45); background: transparent; color: var(--elite-gold);
  font-weight: 900; font-size: 0.66rem; letter-spacing: 2px; text-transform: uppercase;
}
.hub-topbar-btn.active, .hub-topbar-btn:hover { background: rgba(197, 160, 89, 0.08); }
.hub-topbar-stage {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: 14px; cursor: pointer;
  border: 1px solid rgba(230, 201, 136, 0.5); background: linear-gradient(180deg, #121C4C, #0B1338); color: #E6C988;
  font-weight: 900; font-size: 0.66rem; letter-spacing: 2px; text-transform: uppercase;
  box-shadow: 0 8px 20px rgba(13, 21, 67, 0.18);
}
.hub-topbar-profile {
  display: flex; align-items: center; gap: 12px; cursor: pointer;
  background: transparent; border: none; padding: 0 0 0 6px;
}
.hub-topbar-who { display: flex; flex-direction: column; align-items: flex-end; }
.hub-topbar-name { font-family: var(--elite-serif); font-style: italic; font-weight: 800; font-size: 0.85rem; color: var(--elite-text); }
.hub-topbar-handle { font-size: 0.56rem; font-weight: 900; letter-spacing: 1.6px; color: var(--elite-gold); margin-top: 2px; }
.hub-topbar-profile img { width: 40px; height: 40px; border-radius: 13px; object-fit: cover; border: 1px solid rgba(197, 160, 89, 0.2); }

/* the class page's tab bar scrolls sideways on narrow windows, without a scrollbar */
.class-tab-bar::-webkit-scrollbar { display: none; }
/* GLOBAL BACKGROUND SYSTEM */
.global-elite-background {
  position: fixed;
  inset: 0;
  background: var(--elite-bg);
  z-index: 0;
}

.global-corner-contour {
  position: fixed;
  bottom: 25px;
  right: 25px;
  width: 300px;
  height: 300px;
  opacity: 0.7;
  z-index: 50;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.6);
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  overflow: hidden;
}

.shimmer-sweep {
  position: absolute;
  top: 0;
  left: -200%;
  width: 200%;
  height: 150%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(192, 255, 0, 0) 30%,
    rgba(192, 255, 0, 1) 50%,
    rgba(192, 255, 0, 0) 70%,
    transparent 100%
  );
  animation: logo-shimmer 2.5s infinite cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes logo-shimmer {
  0% { transform: translateX(-150%) skewX(-20deg); }
  100% { transform: translateX(150%) skewX(-20deg); }
}

/* STAR SYSTEM DEPRECATED */

/* SHOOTING STAR SYSTEM DEPRECATED */

/* GALACTIC CLASS CARDS */
.galactic-class-card {
  background: rgba(255, 255, 255, 0.8) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1.5px solid rgba(255, 255, 255, 0.5);
  border-radius: 32px;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  position: relative;
  box-shadow: 0 10px 40px rgba(0,0,0,0.03), 10px 10px 20px rgba(203, 213, 225, 0.2), -5px -5px 15px rgba(255,255,255,0.7);
}

.galactic-class-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 0%, #c0ff0010, transparent 80%);
  opacity: 0.15;
  transition: opacity 0.4s;
}

.galactic-class-card:hover {
  transform: translateY(-8px);
  border-color: #3b82f640;
  box-shadow: 0 20px 40px -10px rgba(59, 130, 246, 0.15);
}

.class-card-header {
  padding: 35px 30px 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 15px;
  position: relative;
}

.class-node-icon {
  width: 70px;
  height: 70px;
  background: #f8fafc;
  border: 1px solid rgba(0,0,0,0.05);
  border-radius: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3b82f6;
  box-shadow: 10px 10px 20px rgba(203, 213, 225, 0.3), -5px -5px 15px rgba(255,255,255,0.8);
}

.class-title-area h3 {
  margin: 0;
  font-size: 2.2rem;
  font-weight: 950;
  color: #0f172a;
  letter-spacing: -1.5px;
  line-height: 1;
}

.class-sub-meta {
  font-size: 0.8rem;
  font-weight: 950;
  color: #3b82f6;
  opacity: 0.8;
  letter-spacing: 4px;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.class-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 0 30px 30px;
}

.stat-node {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 15px 10px;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.stat-node-val {
  font-size: 1.6rem;
  font-weight: 950;
  color: #3b82f6;
}

.stat-node-label {
  font-size: 0.6rem;
  font-weight: 950;
  color: #64748b;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-top: 4px;
}

.academic-year-boundary {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 60px 40px 30px;
  display: flex;
  align-items: center;
  gap: 25px;
  overflow: hidden;
}

.year-node {
  font-size: 3.8rem;
  font-weight: 950;
  background: linear-gradient(to bottom, #1e293b 30%, #3b82f6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: -2.5px;
  line-height: 1;
}

.year-divider {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, #3b82f640, transparent);
}

.year-label {
  font-size: 0.85rem;
  font-weight: 950;
  color: #3b82f6;
  letter-spacing: 5px;
  text-transform: uppercase;
  opacity: 0.6;
}

.semester-boundary {
  width: 100%;
  padding: 30px 40px 15px;
  display: flex;
  align-items: center;
  gap: 15px;
}

.semester-node {
  font-size: 1.1rem;
  font-weight: 950;
  color: #3b82f6;
  letter-spacing: 4px;
  text-transform: uppercase;
  background: #3b82f610;
  padding: 8px 20px;
  border: 1px solid #3b82f625;
  border-radius: 12px;
}

.semester-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, #3b82f620, transparent);
}

.semester-tag {
  position: absolute;
  top: 15px;
  right: 15px;
  padding: 4px 14px;
  background: #c0ff0015;
  border: 1px solid #c0ff0030;
  border-radius: 99px;
  font-size: 0.7rem;
  font-weight: 950;
  color: #c0ff00;
  letter-spacing: 2px;
}

/* CLASS DETAIL VIEW - GALACTIC ECOSYSTEM */
.detail-back-btn {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(0, 0, 0, 0.05);
  padding: 12px 25px;
  border-radius: 99px;
  color: #0f172a;
  font-size: 0.75rem;
  font-weight: 950;
  letter-spacing: 2px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 5px 5px 15px rgba(203, 213, 225, 0.4), -5px -5px 15px rgba(255,255,255,0.8);
}

.detail-back-btn:hover {
  background: #ffffff;
  border-color: #3b82f640;
  color: #3b82f6;
  transform: translateX(-5px);
}

.detail-nav-tabs {
  background: rgba(255, 255, 255, 0.7);
  padding: 8px;
  border-radius: 50px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  display: flex;
  gap: 5px;
  backdrop-filter: blur(20px);
  box-shadow: 5px 5px 15px rgba(203, 213, 225, 0.2);
}

.detail-tab {
  padding: 12px 30px;
  border-radius: 50px;
  font-size: 0.7rem;
  font-weight: 950;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #94a3b8;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 10px;
}

.detail-tab.active {
  background: #3b82f6;
  color: #ffffff;
  box-shadow: 0 10px 20px rgba(59, 130, 246, 0.3);
}

.nebula-stat-node {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(40px);
  border: 1px solid rgba(255, 255, 255, 0.5);
  padding: 30px;
  border-radius: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  overflow: hidden;
  min-width: 200px;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 10px 10px 30px rgba(203, 213, 225, 0.3), -5px -5px 15px rgba(255,255,255,0.8);
}

.nebula-stat-node:hover {
  transform: translateY(-5px);
  border-color: #3b82f640;
}

.nebula-stat-val {
  font-size: 3rem;
  font-weight: 950;
  background: linear-gradient(to bottom, #0f172a, #3b82f6);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1;
}

.nebula-stat-label {
  font-size: 0.7rem;
  font-weight: 950;
  color: #64748b;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-top: 10px;
}

.stellar-module-card {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(40px);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 32px;
  padding: 40px;
  position: relative;
  box-shadow: 20px 20px 60px rgba(203, 213, 225, 0.4), -10px -10px 30px rgba(255,255,255,0.8);
}

.stellar-module-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 35px;
}

.stellar-module-title {
  display: flex;
  align-items: center;
  gap: 20px;
}

.stellar-module-title h2 {
  font-size: 1.8rem;
  font-weight: 950;
  color: #0f172a;
  letter-spacing: -1px;
}

.stellar-module-title .icon-box {
  width: 55px;
  height: 55px;
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.2);
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3b82f6;
}

/* STUDENT PROFILE NEBULA */
.profile-nebula-container {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding: 40px;
  max-width: 1200px;
  margin: 0 auto;
}

.profile-hero-section {
  display: flex;
  align-items: center;
  gap: 60px;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(40px);
  padding: 60px;
  border-radius: 40px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  position: relative;
  overflow: hidden;
  box-shadow: 20px 20px 60px rgba(203, 213, 225, 0.4);
}

.profile-hero-section::after {
  content: '';
  position: absolute;
  top: -50%;
  right: -20%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(59, 130, 246, 0.05) 0%, transparent 70%);
  pointer-events: none;
}

.profile-avatar-node {
  position: relative;
  width: 200px;
  height: 200px;
}

.avatar-glory-ring {
  position: absolute;
  inset: -15px;
  border: 2px solid rgba(59, 130, 246, 0.1);
  border-radius: 50%;
  border-top-color: #3b82f6;
  animation: rotate 10s linear infinite;
}

.profile-avatar-large {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 5px solid #ffffff;
  box-shadow: 0 0 50px rgba(59, 130, 246, 0.1);
  object-fit: cover;
  position: relative;
  z-index: 2;
}

.profile-identity h1 {
  font-size: 3.5rem;
  font-weight: 950;
  color: #0f172a;
  letter-spacing: -2px;
  margin: 0;
  line-height: 1;
}

.profile-identity .id-tag {
  font-size: 1rem;
  font-weight: 950;
  color: #3b82f6;
  letter-spacing: 5px;
  text-transform: uppercase;
  margin-top: 15px;
  opacity: 0.8;
}

.orbital-kpi-row {
  display: flex;
  gap: 20px;
  margin-top: 30px;
}

.orbital-kpi {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  padding: 15px 25px;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
}

.kpi-val {
  font-size: 1.8rem;
  font-weight: 950;
  color: #0f172a;
}

.kpi-lbl {
  font-size: 0.6rem;
  font-weight: 950;
  color: #64748b;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-top: 2px;
}

.profile-metrics-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}

.metric-card {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(40px);
  border-radius: 32px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  padding: 40px;
  box-shadow: 10px 10px 30px rgba(203, 213, 225, 0.2);
}

.metric-header {
  font-size: 0.85rem;
  font-weight: 950;
  color: #3b82f6;
  margin-bottom: 25px;
  letter-spacing: 3px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 15px;
}

.metric-header i { color: #64748b; }

.timeline-node {
  padding: 20px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  transition: 0.3s;
}

.timeline-node:hover {
  background: #ffffff;
  border-color: #3b82f630;
}

.info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.info-node {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.info-node .lbl {
  font-size: 0.6rem;
  font-weight: 950;
  color: #64748b;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.info-node .val {
  font-size: 1.1rem;
  font-weight: 950;
  color: #0f172a;
}

/* EXISTING GALAXY CARD STYLES */
:root {
  --galaxy-transition: 0.35s;
  --galaxy-spark: 2s;
}

.galaxy-card {
  --active: 0; /* Resting state is translucent */
  --cut: 1px;
  --bg: radial-gradient(
      120% 120% at 126% 126%,
      hsl(var(--hue) calc(var(--active) * 97%) 98% / calc(var(--active) * 0.9)) 40%,
      transparent 50%
    ) calc(100px - (var(--active) * 100px)) 0 / 100% 100% no-repeat,
    radial-gradient(
      120% 120% at 120% 120%,
      hsl(var(--hue) calc(var(--active) * 97%) 70% / calc(var(--active) * 0.8)) 30%,
      transparent 70%
    ) calc(100px - (var(--active) * 100px)) 0 / 100% 100% no-repeat,
    hsla(var(--hue), 100%, 98%, calc(0.4 + var(--active) * 0.6)); /* Dynamic alpha based on active state */
  
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  
  background: var(--bg);
  position: relative;
  border-radius: 32px;
  display: flex;
  align-items: center;
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow var(--galaxy-transition), transform var(--galaxy-transition), background var(--galaxy-transition);
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow: 10px 10px 20px rgba(203, 213, 225, 0.2), -5px -5px 15px rgba(255,255,255,0.7);
  transform-style: preserve-3d;
  perspective: 100vmin;
}

.galaxy-card:hover {
  --active: 1;
  transform: scale(1.08);
  box-shadow: 
    0 20px 40px rgba(var(--hue), 0.1),
    10px 20px 30px rgba(203, 213, 225, 0.4);
}

.galaxy-card:active {
  transform: scale(1);
}

/* GALAXY RING DEPRECATED */

/* SPARK EFFECT */
.galaxy-spark {
  position: absolute;
  inset: 0;
  border-radius: 32px;
  rotate: 0deg;
  overflow: hidden;
  mask: linear-gradient(white, transparent 50%);
  animation: galaxy-flip calc(var(--galaxy-spark) * 2) infinite steps(2, end);
  pointer-events: none;
}

@keyframes galaxy-flip {
  to { rotate: 360deg; }
}

.galaxy-spark:before {
  content: "";
  position: absolute;
  width: 200%;
  aspect-ratio: 1;
  top: 0%;
  left: 50%;
  z-index: -1;
  translate: -50% -15%;
  rotate: 0;
  transform: rotate(-90deg);
  opacity: calc((var(--active)) + 0.3);
  background: conic-gradient(
    from 0deg,
    transparent 0 340deg,
    white 360deg
  );
  transition: opacity var(--galaxy-transition);
  animation: galaxy-rotate var(--galaxy-spark) linear infinite both;
}

.galaxy-backdrop {
  position: absolute;
  inset: var(--cut);
  background: var(--bg);
  border-radius: 32px;
  transition: background var(--galaxy-transition);
}

@keyframes galaxy-rotate {
  to { transform: rotate(90deg); }
}

.galaxy-content {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 25px;
  width: 100%;
  padding: 0 30px;
}
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/academy/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/academy/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/academy/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/academy/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/academy/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/academy/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/academy/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/academy/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/academy/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/academy/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/academy/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/academy/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/academy/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/academy/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/academy/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/academy/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/academy/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/academy/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/academy/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/academy/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/academy/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/academy/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/academy/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/academy/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/academy/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/academy/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/academy/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/academy/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/academy/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/academy/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/academy/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/academy/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/academy/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/academy/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/academy/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/academy/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/academy/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/academy/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/academy/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/academy/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/academy/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/academy/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/academy/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/academy/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/academy/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/academy/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/academy/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/academy/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/academy/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/academy/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.42"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
/* Elite charts: one light entrance, slow idle motion, nothing that loops fast. */
@keyframes viz-spin { to { transform: rotate(360deg); } }
@keyframes viz-grow { from { transform: scale(0.55); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes viz-fade-up { from { transform: translateY(10px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes viz-rise { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes viz-draw { from { stroke-dasharray: 0 4000; } }
@keyframes viz-pop { from { transform: scale(0.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes viz-float { from { transform: translateY(-3px); } to { transform: translateY(3px); } }

.viz-spin { transform-origin: 70px 70px; animation: viz-spin 180s linear infinite; }
.viz-rose:hover .viz-spin { animation-play-state: paused; }
.viz-seg { transform-origin: 70px 70px; transition: transform .45s cubic-bezier(.16,1,.3,1), opacity .3s; animation: viz-grow 1.2s cubic-bezier(.16,1,.3,1) backwards; cursor: pointer; }
.viz-seg.is-active { transform: scale(1.06); }
.viz-seg.is-dim { opacity: .45; }
.viz-leg { transition: opacity .3s; animation: viz-fade-up .8s ease-out backwards; }
.viz-leg.is-dim { opacity: .35; }
.viz-rise { transform-box: fill-box; transform-origin: bottom; animation: viz-rise 1.4s cubic-bezier(.16,1,.3,1) .2s backwards; }
.viz-draw { animation: viz-draw 1.6s cubic-bezier(.16,1,.3,1) .3s backwards; }
.viz-fade { animation: viz-fade-up .8s ease-out backwards; }
.viz-pop { transform-box: fill-box; transform-origin: center; animation: viz-pop .5s cubic-bezier(.16,1,.3,1) backwards; }
.viz-float { animation: viz-float 5s ease-in-out infinite alternate; }
.viz-node { transform-box: fill-box; transform-origin: center; transition: transform .35s cubic-bezier(.16,1,.3,1); cursor: pointer; }
.viz-node:hover { transform: scale(1.15); }
.viz-dot { transition: transform .3s; }
.viz-dot:hover { transform: scale(1.12); }
.viz-tip { pointer-events: none; transition: opacity .15s; }

@media (prefers-reduced-motion: reduce) {
  .viz-spin, .viz-seg, .viz-leg, .viz-rise, .viz-draw, .viz-fade, .viz-pop, .viz-float { animation: none; }
}
/* Projector shows of polls and quizzes (2026-10-14): the "Mühür" design (Extras/ProjectorShows), the HUB stamp
   screen's look: ivory stage, warm umber, gold ring, Cormorant + Instrument Sans. "Gece" = the Pasaport night desk. */

.show-root{position:fixed;inset:0;background:#0b0d14;overflow:hidden;z-index:50}
.show-stage{position:absolute;left:0;top:0;width:1600px;height:900px;transform-origin:0 0;overflow:hidden}
/* the parts drawn for 1600 × 900 (ring / clock and seats), moved and scaled as one group to the screen's shape */
.mh .s-group{position:absolute;left:0;top:0;width:1600px;height:900px}
.show-fx{position:absolute;inset:0;pointer-events:none;z-index:60}

.mh{position:absolute;inset:0;--bg:#FAF9F6;--ink:#1C1917;--umber:#4A3F35;--muted:#78716C;--faint:#A8A29E;--line:#E7E2DA;--gold:#C5A059;--pill:#3B2F24;--pillink:#FBF3E2;
  --c0:#C5A059;--c1:#4A3F35;--c2:#A9C6C8;--c3:#E6D2A6;--rowwin:#F3EAD7;--stampink:#4A3F35;--done:#E6D2A6;--left:#4A3F35;--here:#3F7478;--empty:#CFC7BB;
  background:var(--bg);color:var(--ink);font-family:'Instrument Sans',var(--elite-sans),sans-serif;overflow:hidden}
.mh.night{--bg:#0D1543;--ink:#fff;--umber:#E6C988;--muted:#C9D0E4;--faint:#8A93AD;--line:rgba(255,255,255,.13);--gold:#E6C988;--pill:#E6C988;--pillink:#17203D;
  --c0:#E6C988;--c1:#8FB8F0;--c2:#F2A65A;--c3:#C9D0E4;--rowwin:rgba(230,201,136,.14);--stampink:#E6C988;--done:rgba(255,255,255,.12);--left:#E6C988;--here:#78BDB8;--empty:rgba(201,208,228,.35);
  background:linear-gradient(180deg,#121C4C 0%,#0D1543 35%,#0B1338 70%,#070A1A 100%)}
.mh .stars{display:none;position:absolute;inset:0;background:radial-gradient(circle,#ffffffcc 1px,transparent 1.7px) 0 0/97px 83px,radial-gradient(circle,#ffffff77 1px,transparent 1.7px) 40px 30px/131px 117px,radial-gradient(800px 500px at 50% 38%,#2A3E7E99,transparent 70%);animation:mhTwinkle 6s ease-in-out infinite}
.mh.night .stars{display:block}
@keyframes mhTwinkle{50%{opacity:.6}}
@keyframes mhBlink{50%{opacity:.25}}
.mh .hud-l{position:absolute;left:64px;top:50px;font:600 42px/1.05 'Cormorant Garamond',var(--elite-serif);max-width:min(820px,var(--hudmax,820px));z-index:3}
.mh .hud-l small{display:block;margin-top:8px;font:500 19px 'Instrument Sans',sans-serif;color:var(--muted)}
.mh .hud-r{position:absolute;right:64px;top:36px;text-align:right;z-index:3}
.mh .hud-r b{display:block;font:600 104px/.9 'Cormorant Garamond',serif;color:var(--umber);font-variant-numeric:lining-nums tabular-nums}
.mh .hud-r span{font:500 19px 'Instrument Sans',sans-serif;color:var(--muted)}
.mh .hud-r .final{display:inline-block;margin-top:12px;background:var(--pill);color:var(--pillink);border-radius:12px;padding:9px 18px;font:800 18px 'Instrument Sans',sans-serif;letter-spacing:.12em}
.mh .foot-l{position:absolute;left:64px;bottom:40px;font:500 21px/1.35 'Instrument Sans',sans-serif;max-width:900px;z-index:3}
.mh .foot-l b{font-weight:800;letter-spacing:.06em}
.mh .foot-r{position:absolute;right:64px;bottom:42px;font:15px/1.5 ui-monospace,Menlo,monospace;color:var(--faint);text-align:right;z-index:3}
.mh .kicker{font:700 15px 'Instrument Sans',sans-serif;letter-spacing:.32em;color:var(--muted)}
.mh svg{overflow:visible}
.mh .seg{fill:var(--line);transition:fill .5s,opacity .5s}
.mh .orbit{fill:none;stroke:var(--gold);stroke-opacity:.45;stroke-width:1.4;stroke-dasharray:2 5}
.mh .orbit2{fill:none;stroke:var(--gold);stroke-opacity:.18;stroke-width:1}
.mh .seal circle{fill:none;stroke:var(--gold)}
.mh .seal text{fill:var(--ink);font:700 20px 'Cormorant Garamond',serif}
.mh .rstamp{position:absolute;opacity:0;pointer-events:none;z-index:8}
.mh .rstamp .ink circle{fill:none;stroke:var(--stampink)}
.mh .rstamp .ink text{fill:var(--stampink)}
.mh .rstamp.stamped{animation:mhStampIn .5s cubic-bezier(.3,1.5,.5,1) forwards}
.mh .rstamp.lifted{animation:mhStampOut .6s forwards}
@keyframes mhStampIn{0%{opacity:0;transform:scale(2.3) rotate(10deg)}70%{opacity:1}100%{opacity:.96;transform:scale(1) rotate(-12deg)}}
@keyframes mhStampOut{from{opacity:.96;transform:scale(1) rotate(-12deg)}to{opacity:0;transform:scale(1.12) rotate(-12deg)}}
.mh.shake{animation:mhShake .38s .38s}
@keyframes mhShake{20%{transform:translate(-7px,4px)}40%{transform:translate(6px,-3px)}60%{transform:translate(-4px,2px)}80%{transform:translate(2px,-1px)}}
.mh .wax{position:absolute;width:86px;height:86px;opacity:0;transform:scale(2.4) rotate(-40deg);pointer-events:none;z-index:5}
.mh .win .wax{animation:mhWaxDrop .6s cubic-bezier(.2,1.5,.4,1) .15s forwards}
@keyframes mhWaxDrop{to{opacity:1;transform:scale(1) rotate(-12deg)}}
.mh .dim{opacity:.3}
.mh [data-i]{transition:opacity .5s,background .5s}
.mh .row{position:relative;display:grid;grid-template-columns:72px 230px 1fr;align-items:center;gap:18px;min-height:76px;padding:0 20px 0 6px;border-radius:22px}
.mh .row .seal{width:64px;height:64px}
.mh .row .wax{left:-6px;top:50%;margin-top:-43px}
.mh .row.win{background:var(--rowwin)}
.mh .otext{font:600 38px/1.1 'Cormorant Garamond',serif;font-variant-numeric:lining-nums}
.mh .center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}
.mh .center b{font:600 150px/.95 'Cormorant Garamond',serif;color:var(--umber);font-variant-numeric:lining-nums tabular-nums}
.mh .center span{margin-top:10px;font:700 15px 'Instrument Sans',sans-serif;letter-spacing:.32em;color:var(--muted)}
.mh .center em{display:block;margin-top:6px;font:700 12px 'Instrument Sans',sans-serif;letter-spacing:.24em;color:var(--gold);font-style:normal}
.mh .seat .s{fill:transparent;stroke:var(--empty);stroke-width:2.2;transition:fill .7s,stroke .7s}
.mh .seat .halo{fill:var(--here);opacity:0;transition:opacity .7s}
.mh .seat .rip{fill:none;stroke:var(--gold);stroke-width:2.5;opacity:0}
.mh .seat .s,.mh .seat .rip{transform-box:fill-box;transform-origin:center}
.mh .seat.on .s{fill:var(--here);stroke:var(--here)}
.mh .seat.on .halo{opacity:.13}
.mh .seat.part .s{fill:var(--here);stroke:var(--here)}
.mh .seat.on .s{animation:mhSeatPop .9s cubic-bezier(.2,.9,.25,1.25)}
.mh .seat.on .rip{animation:mhRipple 1.7s cubic-bezier(.2,.7,.3,1) 2}
@keyframes mhSeatPop{0%{transform:scale(.25)}60%{transform:scale(1.4)}100%{transform:scale(1)}}
@keyframes mhRipple{0%{transform:scale(1);opacity:.85}100%{transform:scale(3.4);opacity:0}}
.mh .wingrow{fill:none;stroke:var(--line);stroke-width:1.3}
.mh .layer{position:absolute;left:0;top:0;width:1600px;height:900px}

/* poll: Mühür Halkası */
.mh .p-main{position:absolute;left:64px;width:900px;top:196px;bottom:112px;display:flex;flex-direction:column;justify-content:space-between;gap:calc(26px*var(--fs,1));--fs:1}
.mh .p-q{max-width:880px;font:600 calc(48px*var(--fs))/1.16 'Cormorant Garamond',serif;font-variant-numeric:lining-nums}
.mh .p-rows{display:grid;gap:calc(12px*var(--fs))}
.mh .p-rows .row{min-height:calc(76px*var(--fs))}
.mh .p-rows .otext{font-size:calc(38px*var(--fs))}
/* long options: the words take the row, the bar goes under them */
.mh .p-rows.long .row{grid-template-columns:72px 1fr;row-gap:calc(10px*var(--fs));padding-top:calc(8px*var(--fs));padding-bottom:calc(10px*var(--fs))}
.mh .p-rows.long .row .seal{grid-row:span 2}
.mh .p-rows.long .otext{font-size:calc(32px*var(--fs));line-height:1.14}
.mh .p-rows.long .p-track{grid-column:2}
.mh .p-track{position:relative;height:14px;margin-right:150px;border-radius:7px;background:var(--line)}
.mh .p-bar{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--umber),var(--gold));transition:width .38s cubic-bezier(.3,1.4,.5,1);position:relative}
.mh .p-val{position:absolute;right:-14px;top:50%;transform:translate(100%,-50%);font:600 34px 'Cormorant Garamond',serif;color:var(--umber);white-space:nowrap;font-variant-numeric:lining-nums}
.mh .p-val small{margin-left:8px;font:500 16px 'Instrument Sans',sans-serif;color:var(--muted)}
.mh.voting .p-bar{background:linear-gradient(90deg,var(--umber),var(--gold),var(--umber));background-size:200% 100%;animation:mhSheen 1.4s linear infinite}
@keyframes mhSheen{to{background-position:-200% 0}}
.mh.closed .p-bar{transition:width .8s ease-in;background:var(--faint)}
.mh.revealed .p-bar,.mh.correct .p-bar{transition:width 1.6s cubic-bezier(.2,1.2,.3,1)}
.mh .p-dial{position:absolute;left:1070px;top:250px;width:400px;height:400px}
.mh .p-dial svg{width:100%;height:100%}
.mh .p-dial .center b{font-size:104px}
.mh .p-dial .center span{font-size:13px;letter-spacing:.26em;margin-top:6px}
.mh.closed .p-dial .center{opacity:0}
.mh .p-stamp{left:1050px;top:230px;width:440px;height:440px}

/* quiz: Mühür Saati */
.mh .q-dial{position:absolute;left:520px;top:180px;width:560px;height:560px}
.mh .q-dial svg{width:100%;height:100%}
.mh .q-dial .seg{fill:var(--done)}
.mh .q-dial .seg.left{fill:var(--left)}
.mh.finalmin .q-dial .seg.left{fill:#D9772A}
.mh.finalmin .q-dial .center b{color:#D9772A}
.mh.finalmin .q-dial .center span,.mh.last10 .q-dial .center span{color:#D9772A}
.mh.last10 .q-dial .seg.left{fill:#D9772A;animation:mhBlink .5s infinite}
.mh.last10 .q-dial .center b{color:#D9772A}
.mh .q-dial .center b{font-size:132px}
.mh .q-dial .center b.hms{font-size:96px}   /* h:mm:ss past an hour stays inside the ring */
.mh .q-stamp{left:520px;top:180px;width:560px;height:560px}
.mh.closed .q-dial .center{opacity:0;transition:opacity .3s}
.mh .q-seatkey{position:absolute;left:0;right:0;top:752px;text-align:center}
.mh .radarwrap{position:absolute;left:30px;top:-310px;width:1540px;height:1540px;pointer-events:none;transition:opacity .6s;
  -webkit-mask:radial-gradient(circle,transparent 318px,#000 330px),linear-gradient(transparent 32%,#000 33.5%,#000 66.5%,transparent 68%);-webkit-mask-composite:source-in;
  mask:radial-gradient(circle,transparent 318px,#000 330px) intersect,linear-gradient(transparent 32%,#000 33.5%,#000 66.5%,transparent 68%)}
.mh .radar{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from -55deg,transparent 0deg,rgba(197,160,89,.30) 55deg,transparent 55.5deg)}
.mh.night .radar{background:conic-gradient(from -55deg,transparent 0deg,rgba(230,201,136,.26) 55deg,transparent 55.5deg)}
.mh:not(.running) .radarwrap{opacity:0}
.mh .review{position:absolute;inset:0;padding:215px 150px 80px;z-index:4;--fs:1}
.mh .review .rq{margin:calc(22px*var(--fs)) 0 calc(56px*var(--fs));font:600 calc(64px*var(--fs))/1.12 'Cormorant Garamond',serif;font-variant-numeric:lining-nums}
.mh .review .ropts{display:grid;grid-template-columns:1fr 1fr;gap:calc(22px*var(--fs)) 60px}
/* a standing screen: the poll's words under the ring, larger, gathered under it (not pushed to the bottom) */
.mh.port .p-main{justify-content:flex-start;gap:calc(56px*var(--fs))}
.mh.port .p-q{font-size:calc(60px*var(--fs))}
.mh.port .p-rows{gap:calc(18px*var(--fs))}
.mh.port .p-rows .row{min-height:calc(92px*var(--fs))}
.mh.port .p-rows .otext,.mh.port .p-rows.long .otext{font-size:calc(46px*var(--fs))}
.mh.port .p-track{height:18px;border-radius:9px}
/* a standing screen: the quiz's radar sweeps the seats above and below the clock */
.mh.port .radarwrap{-webkit-mask:radial-gradient(circle,transparent 318px,#000 330px),linear-gradient(90deg,transparent 32%,#000 33.5%,#000 66.5%,transparent 68%);-webkit-mask-composite:source-in;
  mask:radial-gradient(circle,transparent 318px,#000 330px) intersect,linear-gradient(90deg,transparent 32%,#000 33.5%,#000 66.5%,transparent 68%)}
/* a standing screen: the answers' options in one column, the page's own margins */
.mh.port .review{padding:215px 64px 80px}
.mh.port .review .ropts{grid-template-columns:1fr}
.mh .review .row{grid-template-columns:90px 1fr;min-height:calc(110px*var(--fs));padding-left:10px}
.mh .review .row .seal{width:80px;height:80px}
.mh .review .row .otext{font-size:calc(52px*var(--fs));line-height:1.12}
.mh .review .row .wax{width:104px;height:104px;margin-top:-52px;left:-2px}

/* the remote on the page (the laptop under the projector): shows on mouse move, hides after a while */
.show-remote{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;
  background:rgba(15,23,42,.88);backdrop-filter:blur(10px);padding:10px 12px;border-radius:18px;z-index:70;transition:opacity .4s;max-width:calc(100vw - 32px)}
.show-remote.hidden{opacity:0;pointer-events:none}
.show-remote button{border:0;background:#222a3d;color:#e9ecf5;padding:10px 14px;border-radius:12px;font:700 13px 'Instrument Sans',sans-serif;cursor:pointer}
.show-remote button.go{background:#E6C988;color:#17203D}
.show-remote button:disabled{opacity:.35;cursor:default}
.show-remote .sep{width:1px;height:26px;background:rgba(255,255,255,.15);margin:0 4px}
.show-remote select{background:#222a3d;color:#e9ecf5;border:0;border-radius:10px;padding:9px 10px;font:700 13px 'Instrument Sans',sans-serif}
.show-msg{position:fixed;inset:0;display:grid;place-items:center;color:#e9ecf5;font:600 20px 'Instrument Sans',sans-serif}
/* Live attendance (projector): seat arrivals, milestone banner, status dot */

.live-seat {
  transform-box: fill-box;
  transform-origin: center;
  transition: fill 0.8s ease, stroke 0.8s ease, opacity 0.8s ease;
}

.live-seat-pop {
  animation: live-pop 0.9s cubic-bezier(0.2, 0.9, 0.25, 1.25) both;
}

.live-ripple {
  transform-box: fill-box;
  transform-origin: center;
  animation: live-ripple 1.7s cubic-bezier(0.2, 0.7, 0.3, 1) 2 both;
  pointer-events: none;
}

.live-breathe {
  animation: live-breathe 3.2s ease-in-out infinite;
}

.live-dot {
  animation: live-dot 1.6s ease-in-out infinite;
}

.live-shimmer {
  animation: live-shimmer 3.6s ease-in-out infinite;
}

.live-glow {
  transition: opacity 1.4s ease;
}

@keyframes live-pop {
  0% { transform: scale(0.25); }
  60% { transform: scale(1.4); }
  100% { transform: scale(1); }
}

@keyframes live-ripple {
  0% { transform: scale(1); opacity: 0.85; }
  100% { transform: scale(3.4); opacity: 0; }
}

@keyframes live-breathe {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 0.95; }
}

@keyframes live-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.25; }
}

@keyframes live-shimmer {
  0% { transform: translateX(-60%); opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { transform: translateX(60%); opacity: 0; }
}

/* --- ambient life: stars, the sweeping light, the breathing stage, the clock --- */

.live-star {
  animation-name: live-twinkle;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

.live-shooting {
  transform-box: view-box;
  animation: live-shoot 1.3s cubic-bezier(0.3, 0, 0.6, 1) both;
}

/* one sweep of the light from the left of the amphitheater to the right, then a pause */
.live-sweep {
  animation: live-sweep 9s linear infinite;
}

/* a glow over an empty seat as the light passes; delays sync each seat with the sweep */
.live-seat-wait {
  animation: live-wait 9s linear infinite;
}

.live-stage-breathe {
  animation: live-stage-breathe 5.5s ease-in-out infinite;
}

.live-colon {
  animation: live-colon 1s steps(1, end) infinite;
}

.live-count-pulse {
  animation: live-count-pulse 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes live-twinkle {
  0%, 100% { opacity: 0.08; transform: scale(0.7); }
  50% { opacity: 1; transform: scale(1); }
}

@keyframes live-shoot {
  0% { transform: translate(0, 0); opacity: 0; }
  12% { opacity: 1; }
  100% { transform: translate(var(--shoot-dx), var(--shoot-dy)); opacity: 0; }
}

@keyframes live-sweep {
  0% { transform: rotate(0deg); opacity: 0; }
  6% { opacity: 1; }
  66% { opacity: 1; }
  72% { transform: rotate(180deg); opacity: 0; }
  100% { transform: rotate(180deg); opacity: 0; }
}

@keyframes live-wait {
  0% { opacity: 0.6; }
  14% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes live-stage-breathe {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.04); opacity: 1; }
}

@keyframes live-colon {
  0% { opacity: 1; }
  50% { opacity: 0.25; }
}

@keyframes live-count-pulse {
  0% { transform: scale(1); text-shadow: 0 0 0 rgba(197, 160, 89, 0); }
  30% { transform: scale(1.06); text-shadow: 0 0 40px rgba(197, 160, 89, 0.55); }
  100% { transform: scale(1); text-shadow: 0 0 0 rgba(197, 160, 89, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .live-seat-pop, .live-ripple, .live-breathe, .live-dot, .live-shimmer,
  .live-star, .live-shooting, .live-sweep, .live-seat-wait, .live-stage-breathe, .live-colon, .live-count-pulse { animation: none !important; }
  .live-ripple, .live-shooting, .live-sweep, .live-seat-wait { display: none; }
}
/* Sahne (2026-10-14): one projector page per instructor that shows whatever the phone puts on stage. The change
   between scenes: an ivory curtain closes to the centre with the MyTA script, and opens again on the new scene (~2 s). */

.stage-root{position:fixed;inset:0;background:#070A1A;overflow:hidden}
.stage-scene{position:absolute;inset:0}

/* the curtain between scenes (StageCurtain): ivory with a round opening; a soft shade inside its edge shows it is a
   surface over the scene. The opening's size moves (one element), the script zooms in and out where it is: in once
   the opening is small, out a moment before it widens again (so it hardly lies over a scene). */
.stage-curtain{position:absolute;inset:0;z-index:90;pointer-events:none;overflow:hidden}
.stage-curtain .sc-hole{position:absolute;left:50%;top:50%;width:0;height:0;border-radius:50%;transform:translate(-50%,-50%);
  box-shadow:inset 0 0 3vmax rgba(40,30,15,.18),0 0 0 300vmax #FAF9F6}
.stage-curtain .sc-mark{position:absolute;left:50%;top:50%;width:min(40vw,62vh);transform:translate(-50%,-50%) scale(1);user-select:none}
.stage-curtain.close .sc-hole{animation:scClose 680ms cubic-bezier(.6,0,.4,1) both}
.stage-curtain.open .sc-hole{animation:scOpen 820ms cubic-bezier(.6,0,.4,1) 100ms both}
@keyframes scClose{from{width:calc(var(--R)*2);height:calc(var(--R)*2)}to{width:0;height:0}}
@keyframes scOpen{from{width:0;height:0}to{width:calc(var(--R)*2);height:calc(var(--R)*2)}}
.stage-curtain.close .sc-mark{animation:scMarkIn 680ms both}
.stage-curtain.open .sc-mark{animation:scMarkOut 420ms cubic-bezier(.45,0,.55,1) both}
@keyframes scMarkIn{0%,42%{transform:translate(-50%,-50%) scale(.18);opacity:0;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
  100%{transform:translate(-50%,-50%) scale(1);opacity:1}}
@keyframes scMarkOut{to{transform:translate(-50%,-50%) scale(0);opacity:0}}
@media (prefers-reduced-motion: reduce){
  .stage-curtain.close .sc-hole,.stage-curtain.open .sc-hole,.stage-curtain.close .sc-mark,.stage-curtain.open .sc-mark{animation-duration:.01s}
}

/* the empty stage: the instructor's cover (StageCover), ivory like the curtain */
.stage-cover{position:absolute;inset:0;overflow:hidden;color:#1F1B18;
  background:radial-gradient(120vmax 80vmax at 50% 45%,#FDFCF9 0%,#FAF9F6 45%,#F3EEE4 100%)}
.stage-cover .cv-marks{position:absolute;inset:0;pointer-events:none}
.stage-cover .cv-mark{position:absolute;display:flex;flex-direction:column;align-items:center;gap:calc(var(--s)*.14);color:#4A3F35;opacity:.13;
  transform:translate(-50%,-50%) rotate(var(--r));animation:cvDrift 11s ease-in-out infinite alternate}
.stage-cover .cv-mark svg{width:var(--s);height:var(--s)}
.stage-cover .cv-mark span{font:600 calc(var(--s)*.2)/1 'Instrument Sans',sans-serif;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
@keyframes cvDrift{from{transform:translate(-50%,-50%) rotate(var(--r))}to{transform:translate(-50%,calc(-50% - 1.2vmin)) rotate(calc(var(--r) + 2deg))}}
.stage-cover .cv-time{position:absolute;left:4vmin;top:3.4vmin;font:600 3.4vmin/1 'Cormorant Garamond',serif;color:#78716C;font-variant-numeric:lining-nums tabular-nums}
.stage-cover .cv-center{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;width:min(70vw,120vh)}
.stage-cover .cv-logo{width:min(31vw,52vh);user-select:none}
.stage-cover .cv-rule{width:min(9vw,15vh);height:2px;margin:3.4vh 0 2.8vh;background:linear-gradient(90deg,transparent,#C5A059,transparent)}
.stage-cover .cv-course{font:600 min(6.4vh,6vw)/1.1 'Cormorant Garamond',serif;font-variant-numeric:lining-nums}
.stage-cover .cv-who{margin-top:1.6vh;font:600 min(2vh,2.4vw) 'Instrument Sans',sans-serif;letter-spacing:.28em;text-transform:uppercase;color:#78716C}
.stage-cover .cv-msg{position:absolute;left:50%;bottom:6vh;transform:translateX(-50%);width:min(76vw,140vh);display:flex;align-items:center;justify-content:center;gap:1em;
  font:500 min(2.3vh,2.6vw)/1.5 'Instrument Sans',sans-serif;color:#4A3F35;text-align:center}
.stage-cover .cv-msg i{flex:0 0 auto;width:.5em;height:.5em;background:#C5A059;transform:rotate(45deg)}
@media (prefers-reduced-motion: reduce){ .stage-cover .cv-mark{animation:none} }
/* a standing screen: the marks keep to the top and bottom bands */
@media (max-aspect-ratio: 5/4){
  .stage-cover .cv-center{width:86vw}
  .stage-cover .cv-logo{width:62vw}
  .stage-cover .cv-msg{width:84vw;bottom:5vh}
  .stage-cover .cv-mark.k-summary{display:none}
}

/* a class's join QR */
.stage-join{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6vw;padding:0 6vw;
  background:linear-gradient(180deg,#121C4C 0%,#0D1543 35%,#0B1338 70%,#070A1A 100%);color:#fff}
.stage-join .sj-qr{flex:0 0 auto;width:min(40vw,72vh);aspect-ratio:1;padding:2vh;border-radius:3vh;background:#FBF6EA;
  box-shadow:0 0 0 1px rgba(230,201,136,.5),0 3vh 8vh rgba(0,0,0,.45),0 0 12vh rgba(230,201,136,.18)}
.stage-join .sj-qr svg{width:100%;height:100%;display:block}
.stage-join .sj-text{flex:1 1 auto;max-width:44vw}
.stage-join .sj-k{font:700 1.4vh 'Instrument Sans',sans-serif;letter-spacing:.42em;color:#E6C988}
.stage-join .sj-name{margin-top:1.6vh;font:600 7vh/1.05 'Cormorant Garamond',serif}
.stage-join .sj-how{margin-top:2.2vh;font:500 2.4vh/1.45 'Instrument Sans',sans-serif;color:#C9D0E4}
.stage-join .sj-codes{display:flex;gap:4vh;margin-top:4vh}
.stage-join .sj-codes span{display:block;font:700 1.3vh 'Instrument Sans',sans-serif;letter-spacing:.32em;color:rgba(201,208,228,.75)}
.stage-join .sj-codes b{display:block;margin-top:.6vh;font:600 6vh 'Cormorant Garamond',serif;letter-spacing:.08em;color:#E6C988;font-variant-numeric:lining-nums tabular-nums}
.stage-join .sj-count{margin-top:5vh;display:flex;align-items:baseline;gap:1.2vh}
.stage-join .sj-count b{font:600 10vh/1 'Cormorant Garamond',serif;font-variant-numeric:lining-nums tabular-nums}
.stage-join .sj-count i{font:500 4vh 'Cormorant Garamond',serif;font-style:normal;color:#C9D0E4}
.stage-join .sj-count span{font:700 1.4vh 'Instrument Sans',sans-serif;letter-spacing:.32em;color:#78BDB8;margin-left:1vh}
.stage-join .sj-bar{margin-top:1.6vh;height:.7vh;border-radius:1vh;background:rgba(255,255,255,.12);overflow:hidden;max-width:36vw}
.stage-join .sj-bar div{height:100%;background:linear-gradient(90deg,#E6C988,#F3DFA8);transition:width .8s ease}
.stage-join .sj-closed{margin-top:3vh;display:inline-block;padding:1vh 2vh;border-radius:1.2vh;background:rgba(242,166,90,.16);color:#F2A65A;font:700 1.6vh 'Instrument Sans',sans-serif;letter-spacing:.12em}

/* the stage's own small controls (full screen, leave): they show when the mouse moves */
.stage-ctl{position:absolute;right:18px;top:14px;z-index:95;display:flex;gap:8px;opacity:0;transition:opacity .4s}
.stage-root.poke .stage-ctl{opacity:1}
.stage-ctl button{border:0;border-radius:10px;padding:8px 14px;background:rgba(13,21,67,.85);color:#E6C988;font:700 12px 'Instrument Sans',sans-serif;letter-spacing:.08em;cursor:pointer}

/* a standing (or nearly square) screen: the join QR above its words */
@media (max-aspect-ratio: 5/4){
  .stage-join{flex-direction:column;gap:4vh;padding:6vh 6vw;text-align:center}
  .stage-join .sj-qr{width:min(70vw,46vh)}
  .stage-join .sj-text{max-width:88vw}
  .stage-join .sj-codes,.stage-join .sj-count{justify-content:center}
  .stage-join .sj-bar{margin-left:auto;margin-right:auto;max-width:70vw}
  .stage-join .sj-name{font-size:min(6vh,9vw)}
  .stage-join .sj-codes b{font-size:min(5vh,9vw)}
}
