
/* ============================================
   SYSTEMATIC BEAUTIFULNESS - FOUNDATION
   ============================================ */

/* Universal box-sizing */
*,*::before,*::after{box-sizing:border-box}

/* Prevent text overflow and ensure proper wrapping */
h1,h2,h3,h4,h5,h6,p,a,span,li,td,th,div{
  word-wrap:break-word;
  overflow-wrap:break-word;
}

/* Prevent images and media from overflowing */
img,video,canvas,svg,iframe{
  max-width:100%;
  height:auto;
}

/* Better table responsiveness */
table{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  display:block;
  border-collapse:collapse;
}

/* Ensure tables don't cause page overflow */
.prose table{
  margin:1.5rem 0;
  font-size:0.9rem;
}

/* Code blocks shouldn't break layout */
pre,code{
  max-width:100%;
  overflow-x:auto;
}

:root{
  color-scheme: dark;
  --bg:#05070d; --bg-2:#0c0f1a; --text:#ecf1ff; --muted:#b7c2d9; --muted-2:#8ea0bf;
  --brand:#5b8aff; --brand-2:#7b9bff; --accent:#76ddff;
  --radius:16px; --max:1160px; --shadow:0 18px 60px rgba(12,16,27,.35);
  --grad:linear-gradient(90deg,#9cc0ff 0%,#86a8ff 35%,#7ccaff 60%,#8ca5ff 85%,#b9d4ff 100%);
}
html[data-theme="light"]{
  color-scheme: light;
  --bg:#f6f8fc; --bg-2:#ffffff; --text:#0f1524; --muted:#51607a; --muted-2:#3a4866;
  --brand:#345CFF; --brand-2:#5B8AFF; --accent:#0aa1d5;
}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.7;letter-spacing:.005em;transition:background-color 0.3s ease, color 0.3s ease;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(16px,4vw,24px)}
/* Header - Optimized for performance */
.sp-header{position:sticky;top:0;z-index:110;
  background:rgba(5,7,13,0.95);border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 2px 8px rgba(0,0,0,0.2)}
html[data-theme="light"] .sp-header{border-bottom-color:#d7def0}
.sp-header .wrap{display:flex;align-items:center;gap:clamp(0.5rem,2vw,1.5rem);padding:.75rem 0;flex-wrap:nowrap}
/* Brand styling - ensure Gugi font is applied (inherited from signalpilot-theme.css) */
.brand, .brand span{
  font-family:'Gugi',system-ui,-apple-system,sans-serif !important;
  flex-shrink:0
}
#mainnav{margin-left:auto;margin-right:auto;flex-shrink:1;min-width:0}
#mainnav ul{list-style:none;margin:0;padding:0;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
#mainnav a{display:inline-flex;align-items:center;padding:.5rem .85rem;border-radius:999px;color:#9fb6e6;font-weight:700;text-decoration:none;white-space:nowrap}
#mainnav a:hover{color:#fff;background:rgba(255,255,255,.12)}
.header-ctls{margin-left:auto;display:flex;gap:.5rem;align-items:center;flex-shrink:0;flex-wrap:nowrap}
.menu-toggle{display:none;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.3);color:#fff;padding:.5rem .65rem;cursor:pointer;font-size:.9rem;font-weight:600;transition:background .2s ease}
.menu-toggle:hover{background:rgba(0,0,0,.4)}
.header-ctls .btn-ghost,.header-ctls #themeToggle,.header-ctls .lang-dropdown button{border-radius:12px;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.3)!important}
.header-ctls .btn-ghost:hover,.header-ctls #themeToggle:hover{background:rgba(0,0,0,.4)!important}

/* Hide mobile nav by default on desktop */
.mobile-nav,
.mobile-nav-backdrop{
  display:none;
}

@media (max-width:1060px){
  /* Show mobile nav elements on mobile */
  .mobile-nav,
  .mobile-nav-backdrop{
    display:block;
  }
  .menu-toggle{display:inline-flex;align-items:center;padding:.35rem .5rem;font-size:.8rem}

  /* Smaller header buttons on mobile */
  .header-ctls .btn-sm,
  #themeToggle{padding:.25rem .4rem;font-size:.75rem;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center}
  #themeToggle #theme-icon{font-size:.85rem;line-height:1;font-family:inherit;-webkit-filter:grayscale(1);filter:grayscale(1)}
  #google_translate_element{transform:scale(0.8);transform-origin:right center}
  #auth-button{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.25rem .4rem;font-size:.7rem}

  /* Hide desktop nav on mobile */
  #mainnav{display:none !important}

  /* Mobile nav backdrop */
  .mobile-nav-backdrop{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.7);
    z-index:9998;
    opacity:0;
    visibility:hidden;
    transition:opacity .3s ease, visibility .3s ease;
  }
  .mobile-nav-backdrop.active{
    opacity:1;
    visibility:visible;
  }

  /* Mobile nav panel */
  .mobile-nav{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(85vw,380px);
    background:#0a0c14;
    z-index:9999;
    transform:translateX(100%);
    overflow-y:auto;
    box-shadow:-8px 0 32px rgba(0,0,0,.8);
    visibility:hidden;
  }
  .mobile-nav.active{
    visibility:visible;
    transform:translateX(0);
    transition:transform .3s ease;
  }

  /* Mobile nav content */
  .mobile-nav-header{
    padding:1.5rem 1.25rem;
    border-bottom:1px solid rgba(255,255,255,.1);
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .mobile-nav-close{
    background:none;
    border:none;
    color:#fff;
    font-size:1.5rem;
    cursor:pointer;
    padding:.5rem;
    line-height:1;
  }
  .mobile-nav-links{
    padding:1rem 0;
  }
  .mobile-nav-links a{
    display:block;
    padding:1rem 1.25rem;
    color:#b7c2d9;
    text-decoration:none;
    font-weight:600;
    font-size:1.05rem;
    transition:all .2s ease;
    border-left:3px solid transparent;
  }
  .mobile-nav-links a:active{
    background:rgba(91,138,255,.15);
    border-left-color:#5b8aff;
    color:#fff;
  }
}
/* Article */
.article header{padding:clamp(1.2rem,5vw,2.2rem) 0 .2rem}
.badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem;border-radius:999px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;font-size:.85rem;color:#d4f1ff;background:rgba(118,221,255,.25);border:1px solid rgba(118,221,255,.4);box-shadow:0 0 12px rgba(118,221,255,.15);font-family:'Gugi',system-ui,-apple-system,sans-serif !important}
.headline{font-family:"Space Grotesk","DM Sans",system-ui,sans-serif;font-weight:900;letter-spacing:-.02em;line-height:1.12;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.headline.xl{font-size:clamp(2rem,6.5vw,3.2rem)}
.headline.lg{font-size:clamp(1.75rem,5.5vw,2.5rem)}
.headline.md{font-size:clamp(1.5rem,4.5vw,2rem)}
.meta{color:var(--muted);margin-top:.5rem}
.article-grid{display:grid;grid-template-columns:1fr;gap:clamp(1rem,4vw,2rem)}
@media (max-width:980px){.article-grid{grid-template-columns:1fr} aside.toc{order:-1}}
.prose{max-width:72ch;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto}
/* Prevent wide elements from overflowing prose container */
.prose > *{max-width:100%}
.prose > div[style*="display:grid"],
.prose > div[style*="display: grid"]{
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.prose h2{margin-top:2.5rem;margin-bottom:1rem;font-size:clamp(1.75rem,5vw,2.25rem);line-height:1.25;font-weight:800;word-wrap:break-word}
.prose h3{margin-top:2rem;margin-bottom:.75rem;font-size:clamp(1.4rem,4vw,1.75rem);line-height:1.3;font-weight:700}
.prose h4{margin-top:1.5rem;margin-bottom:.5rem;font-size:clamp(1.15rem,3.5vw,1.4rem);line-height:1.35;font-weight:700}
.prose p{margin-bottom:1.25rem;line-height:1.75}
.prose ul,.prose ol{margin-bottom:1.5rem;padding-left:1.5rem}
.prose li{margin-bottom:.75rem;line-height:1.7}
.prose li > p{margin-bottom:.5rem}
.prose strong,.prose b{font-weight:700}
.prose em,.prose i{font-style:italic}
.prose pre{margin:1.5rem 0;padding:1rem;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow-x:auto}
.prose code{font-family:"SF Mono",Monaco,Consolas,"Liberation Mono",monospace;font-size:.9em;padding:.2em .4em;background:rgba(255,255,255,.08);border-radius:4px}
.prose pre code{background:none;padding:0;border-radius:0}
.prose table{width:100%;margin:1.5rem 0;border-collapse:collapse;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
.prose th,.prose td{padding:.75rem;border:1px solid rgba(255,255,255,.12);text-align:left}
.prose th{font-weight:700;background:rgba(255,255,255,.05)}
.prose blockquote{margin:1.5rem 0;padding-left:1.5rem;border-left:4px solid var(--accent);color:var(--muted);font-style:italic}
.prose hr{margin:2rem 0;border:none;border-top:1px solid rgba(255,255,255,.12)}
.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(118,221,255,.3);transition:text-decoration-color .2s ease}
.prose a:hover{text-decoration-color:var(--accent)}
.prose img{max-width:100%;height:auto;border-radius:8px;margin:1.5rem 0;display:block}
.callout{border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03));border-radius:16px;padding:1rem;box-shadow:var(--shadow)}
html[data-theme="light"] .callout{border-color:rgba(10,20,40,.10);background:linear-gradient(180deg,rgba(10,20,40,.03),rgba(10,20,40,.01))}
/* ToC */
.toc{position:sticky;top:82px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:.8rem;background:rgba(255,255,255,.04);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.toc h3{margin:.1rem 0 .3rem 0;font-size:.9rem;color:#cfe1ff}
.toc a{display:block;color:#9fb6e6;text-decoration:none;padding:.25rem .3rem;border-radius:8px;transition:all .15s ease}
.toc a:hover{background:rgba(255,255,255,.08);color:#fff}
.toc a.active{background:rgba(0,212,170,.15);color:#00d4aa;font-weight:600;border-left:3px solid #00d4aa;padding-left:calc(.3rem - 3px)}
.toc::-webkit-scrollbar{width:6px}
.toc::-webkit-scrollbar-track{background:transparent}
.toc::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
.toc::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}
/* Buttons & footer */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.78rem 1.12rem;border-radius:999px;font-weight:800;text-decoration:none;cursor:pointer;transition:filter .15s ease, transform .04s ease;min-height:44px}
.btn:active{transform:translateY(1px)}
.btn-primary{background:linear-gradient(115deg,var(--brand),var(--brand-2));color:#fff}
.btn-ghost{color:#9fdcff;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
.btn-sm{padding:.5rem .8rem;font-size:.92rem;line-height:1.1}
.nav-article{display:flex;justify-content:flex-start;align-items:center;gap:.8rem;margin:1.2rem 0 2.4rem;flex-wrap:wrap;flex-direction:row}
.nav-article .btn,.nav-article > div{display:inline-flex;flex-shrink:0}
.nav-article > div > .btn{display:inline-flex}
.lesson-actions{display:flex;flex-direction:column;gap:.75rem;margin:1.5rem 0;align-items:flex-start}
.btn-block{width:100%;max-width:280px}
.btn-secondary{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:var(--text)}
.btn-secondary:hover{background:rgba(255,255,255,.12)}
/* Sidebar styling */
.toc-sidebar{position:sticky;top:82px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}
@media (min-width:981px){
  .article-grid{grid-template-columns:1fr 300px}
}
@media (max-width:480px){
  .nav-article{gap:.6rem;justify-content:center}
  .nav-article .btn{flex:1 1 auto;min-width:140px;justify-content:center}
  /* Remove auto-margin from share group on mobile */
  .nav-article > div[style*="margin-left: auto"]{
    margin-left:0 !important;
    flex:1 1 100%;
    justify-content:center;
  }
}
.sp-footer{border-top:1px solid rgba(255,255,255,.08);padding:1.2rem 0 2.2rem;color:#a5b6db}
.sp-footer .links a{color:inherit;margin-left:1rem;text-decoration:none}
/* Stars/constellations if not injected by sp-bg.js */
.bg-stars{position:fixed;inset:0;z-index:-3;pointer-events:none;opacity:.70;background:radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,.9), transparent 60%),radial-gradient(1px 1px at 30% 80%, rgba(255,255,255,.7), transparent 60%),radial-gradient(1px 1px at 70% 30%, rgba(255,255,255,.8), transparent 60%),radial-gradient(1px 1px at 85% 60%, rgba(255,255,255,.8), transparent 60%),radial-gradient(1px 1px at 55% 10%, rgba(255,255,255,.7), transparent 60%),radial-gradient(1px 1px at 15% 55%, rgba(255,255,255,.7), transparent 60%),radial-gradient(1px 1px at 44% 74%, rgba(255,255,255,.7), transparent 60%),radial-gradient(1px 1px at 78% 88%, rgba(255,255,255,.7), transparent 60%);filter: drop-shadow(0 0 2px rgba(255,255,255,.25))}
.sp-constellations{position:fixed;inset:0;z-index:-2;pointer-events:none}

/* Animated Aurora Gradient Background */
.bg-aurora{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(91,138,255,.28), transparent 50%),
    radial-gradient(ellipse 60% 50% at 80% 50%, rgba(118,221,255,.22), transparent 50%),
    radial-gradient(ellipse 60% 50% at 20% 50%, rgba(123,155,255,.20), transparent 50%),
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(91,138,255,.15), transparent 50%);
  opacity:0.85;
  animation:aurora-shift 15s ease-in-out infinite;
  will-change:transform,opacity;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

@keyframes aurora-shift{
  0%,100%{
    opacity:0.85;
    transform:scale(1) translateY(0);
  }
  50%{
    opacity:1;
    transform:scale(1.05) translateY(-10px);
  }
}

html[data-theme="light"] .bg-aurora{
  background:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(91,138,255,.12), transparent 50%),
    radial-gradient(ellipse 60% 50% at 80% 50%, rgba(118,221,255,.10), transparent 50%),
    radial-gradient(ellipse 60% 50% at 20% 50%, rgba(123,155,255,.08), transparent 50%),
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(91,138,255,.08), transparent 50%);
  opacity:0.6;
}

/* Enhanced Hero Section with Gradient */
.hero{
  position:relative;
  overflow:hidden;
}

.hero::before{
  content:'';
  position:absolute;
  inset:-50%;
  background:
    radial-gradient(circle at 30% 20%, rgba(91,138,255,.4), transparent 40%),
    radial-gradient(circle at 70% 60%, rgba(118,221,255,.35), transparent 40%),
    radial-gradient(circle at 50% 80%, rgba(123,155,255,.3), transparent 50%);
  animation:hero-gradient-rotate 20s linear infinite;
  z-index:0;
  filter:blur(60px);
  will-change:transform;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

@keyframes hero-gradient-rotate{
  0%{transform:rotate(0deg) scale(1);}
  50%{transform:rotate(180deg) scale(1.1);}
  100%{transform:rotate(360deg) scale(1);}
}

.hero .wrap{
  position:relative;
  z-index:1;
}

html[data-theme="light"] .hero::before{
  background:
    radial-gradient(circle at 30% 20%, rgba(91,138,255,.25), transparent 40%),
    radial-gradient(circle at 70% 60%, rgba(118,221,255,.20), transparent 40%),
    radial-gradient(circle at 50% 80%, rgba(123,155,255,.18), transparent 50%);
}

/* ============================================
   ENHANCED EDUCATION HUB STYLES
   ============================================ */

/* Callout Boxes - Different types for different purposes */
.callout-info,.callout-warning,.callout-tip,.callout-key{
  margin:2rem 0;padding:1.25rem 1.5rem;border-radius:12px;border-left:4px solid;
  background:rgba(255,255,255,.05);position:relative
}
.callout-info{border-color:#5b8aff;background:rgba(91,138,255,.08)}
.callout-warning{border-color:#ff9f43;background:rgba(255,159,67,.08)}
.callout-tip{border-color:#00d4aa;background:rgba(0,212,170,.08)}
.callout-key{border-color:#ff6b6b;background:rgba(255,107,107,.08);font-weight:500}
.callout-info::before,.callout-warning::before,.callout-tip::before,.callout-key::before{
  content:'';display:inline-block;width:24px;height:24px;margin-right:.75rem;vertical-align:middle;
  background-size:contain;background-repeat:no-repeat;float:left
}
.callout-info h4,.callout-warning h4,.callout-tip h4,.callout-key h4{margin:0 0 .5rem 0;font-size:1.1rem;font-weight:700}
.callout-info p:last-child,.callout-warning p:last-child,.callout-tip p:last-child,.callout-key p:last-child{margin-bottom:0}

/* Progress Indicator */
.progress-bar{position:fixed;top:0;left:0;right:0;height:3px;background:rgba(255,255,255,.1);z-index:50}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--brand),var(--accent));transition:width .2s ease;width:0%}
.article-progress{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0;padding:1rem;background:rgba(255,255,255,.04);border-radius:12px;font-size:.9rem}
.article-progress .progress-circle{width:48px;height:48px;border-radius:50%;background:conic-gradient(var(--brand) 0% var(--progress,0%), rgba(255,255,255,.1) var(--progress,0%) 100%);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;position:relative}
.article-progress .progress-circle::before{content:'';position:absolute;inset:4px;background:var(--bg);border-radius:50%}
.article-progress .progress-circle span{position:relative;z-index:1}
.article-progress .progress-text{flex:1}
.article-progress .progress-text strong{display:block;margin-bottom:.25rem}

/* Visual Breaks & Section Dividers */
.section-break{margin:3rem 0;text-align:center;position:relative}
.section-break::before{content:'';display:block;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);margin-bottom:1rem}
.section-break span{display:inline-block;padding:.5rem 1.5rem;background:rgba(255,255,255,.06);border-radius:999px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}

/* Key Takeaway Box */
.key-takeaway{margin:2.5rem 0;padding:1.5rem;background:linear-gradient(135deg,rgba(91,138,255,.12),rgba(118,221,255,.08));border:2px solid rgba(91,138,255,.3);border-radius:16px;position:relative}
.key-takeaway::before{content:'💡';position:absolute;top:-24px;left:20px;font-size:1.8rem}
.key-takeaway h4{margin:0.5rem 0 1rem 0;font-size:1.2rem;color:var(--accent)}
.key-takeaway ul{margin:.5rem 0 0 0;padding-left:1.5rem}
.key-takeaway ul li{margin-bottom:.5rem}

/* Interactive Tabs */
.tabs{margin:2rem 0}
.tabs-nav{display:flex;gap:.5rem;border-bottom:2px solid rgba(255,255,255,.1);margin-bottom:1.5rem;flex-wrap:wrap}
.tabs-nav button{padding:.75rem 1.5rem;background:none;border:none;color:var(--muted);font-weight:700;cursor:pointer;position:relative;transition:color .2s ease}
.tabs-nav button:hover{color:var(--text)}
.tabs-nav button.active{color:var(--accent)}
.tabs-nav button.active::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--accent)}
.tabs-content .tab-panel{display:none}
.tabs-content .tab-panel.active{display:block}

/* Accordion for Long Sections */
.accordion{margin:2rem 0}
.accordion-item{border:1px solid rgba(255,255,255,.1);border-radius:12px;margin-bottom:.75rem;overflow:hidden}
.accordion-header{padding:1rem 1.25rem;background:rgba(255,255,255,.04);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:700;transition:background .2s ease}
.accordion-header:hover{background:rgba(255,255,255,.08)}
.accordion-header::after{content:'▼';font-size:.8rem;transition:transform .2s ease}
.accordion-item.open .accordion-header::after{transform:rotate(180deg)}
.accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 1.25rem}
.accordion-item.open .accordion-content{max-height:2000px;padding:1.25rem}

/* Quiz Component */
.quiz{margin:2.5rem 0;padding:2rem;background:rgba(255,255,255,.05);border:2px solid rgba(118,221,255,.2);border-radius:16px}
.quiz h4{margin:0 0 1.5rem 0;font-size:1.3rem}
.quiz-question{margin-bottom:2rem}
.quiz-question p{font-weight:500;margin-bottom:1rem}
.quiz-options{display:flex;flex-direction:column;gap:.75rem}
.quiz-option{padding:1rem 1.25rem;background:rgba(255,255,255,.04);border:2px solid rgba(255,255,255,.1);border-radius:12px;cursor:pointer;transition:all .2s ease}
.quiz-option:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.quiz-option.selected{border-color:var(--accent);background:rgba(118,221,255,.1)}
.quiz-option.correct{border-color:#00d4aa;background:rgba(0,212,170,.15)}
.quiz-option.incorrect{border-color:#ff6b6b;background:rgba(255,107,107,.15)}
.quiz-feedback{margin-top:1rem;padding:1rem;border-radius:8px;display:none}
.quiz-feedback.show{display:block}
.quiz-feedback.correct{background:rgba(0,212,170,.15);color:#00d4aa}
.quiz-feedback.incorrect{background:rgba(255,107,107,.15);color:#ff9f43}
.quiz-explanation{margin-top:1rem;padding:1rem;border-radius:8px;display:none;line-height:1.7}
.quiz-explanation.show{display:block}
.quiz-submit{margin-top:1.5rem}

/* Achievement Badges */
.achievement-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,rgba(255,215,0,.2),rgba(255,165,0,.2));border:2px solid rgba(255,215,0,.5);border-radius:999px;font-weight:700;font-size:.9rem;margin:.25rem}
.achievement-badge::before{content:'🏆';font-size:1.2rem}

/* Progress Tracking Card */
.progress-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.5rem;margin:2rem 0}
.progress-card h4{margin:0 0 1rem 0}
.progress-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1rem}
.progress-stat{text-align:center;padding:1rem;background:rgba(255,255,255,.04);border-radius:12px;border:1px solid rgba(255,255,255,.08)}
.progress-stat .stat-value{font-size:1.85rem;font-weight:900;color:var(--accent);display:block;letter-spacing:-.02em}
.progress-stat .stat-label{font-size:.85rem;color:var(--muted);margin-top:.25rem}

/* Trading Timeline Components (replaces tables on mobile) */
.trading-timeline{
  margin:2rem 0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:1rem !important;
}
.timeline-week{
  background:rgba(255,255,255,0.04) !important;
  border:1px solid rgba(255,255,255,0.1) !important;
  border-radius:12px !important;
  padding:1.25rem !important;
  position:relative !important;
  transition:all 0.2s ease !important;
}
.timeline-week:hover{background:rgba(255,255,255,0.06) !important;border-color:rgba(255,255,255,0.15) !important}
.timeline-week.loss{border-left:4px solid #ff5252 !important}
.timeline-week.win{border-left:4px solid #00d4aa !important}
.week-header{display:flex !important;justify-content:space-between !important;align-items:center !important;margin-bottom:0.75rem !important;flex-wrap:wrap !important;gap:0.5rem !important}
.week-label{font-weight:700 !important;font-size:1rem !important;color:var(--accent) !important}
.week-pnl{font-size:1.1rem !important;font-weight:700 !important}
.week-pnl.loss{color:#ff5252 !important}
.week-pnl.win{color:#00d4aa !important}
.week-stats{font-size:0.875rem !important;color:var(--muted) !important;margin-bottom:0.5rem !important}
.week-issue{font-size:0.9rem !important;line-height:1.5 !important;padding:0.75rem !important;background:rgba(255,255,255,0.03) !important;border-radius:8px !important;margin-top:0.75rem !important}

/* Story Summary Boxes */
.story-summary{
  background:linear-gradient(135deg,rgba(91,138,255,0.12),rgba(118,221,255,0.08)) !important;
  border:2px solid rgba(118,221,255,0.3) !important;
  border-radius:16px !important;
  padding:2rem !important;
  margin:2rem 0 !important;
}
.story-summary h3{margin:0 0 1.5rem 0 !important;font-size:1.4rem !important}
.summary-stats{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(140px,1fr)) !important;gap:1rem !important;margin:1.5rem 0 !important}
.stat-box{
  text-align:center !important;
  padding:1.25rem !important;
  background:rgba(255,255,255,0.06) !important;
  border-radius:12px !important;
  border:1px solid rgba(255,255,255,0.1) !important;
}
.stat-box .stat-label{font-size:0.85rem !important;color:var(--muted) !important;display:block !important;margin-bottom:0.5rem !important}
.stat-box .stat-value{font-size:1.75rem !important;font-weight:900 !important;display:block !important}
.stat-box .stat-value.loss{color:#ff5252 !important}
.stat-box .stat-value.win{color:#00d4aa !important}
.key-insight{margin-top:1.5rem !important;padding:1.25rem !important;background:rgba(118,221,255,0.1) !important;border-left:4px solid var(--accent) !important;border-radius:8px !important;font-size:0.95rem !important;line-height:1.6 !important}

/* Module Cards (Course Structure) */
.module-card{background:rgba(255,255,255,.04);border:2px solid rgba(255,255,255,.1);border-radius:16px;padding:1.5rem;margin:1.5rem 0;transition:all .3s ease;position:relative;overflow:hidden}
.module-card:hover{border-color:rgba(118,221,255,.4);background:rgba(255,255,255,.06)}
.module-card.completed{border-color:rgba(0,212,170,.5)}
.module-card.completed::before{content:'✓';position:absolute;top:1rem;right:1rem;width:32px;height:32px;background:#00d4aa;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;color:#000}
.module-card .module-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.module-card .module-number{font-size:2rem;font-weight:900;color:var(--accent);min-width:50px}
.module-card .module-title h3{margin:0;font-size:1.3rem}
.module-card .module-meta{font-size:.85rem;color:var(--muted);margin-top:.5rem}
.module-card .lesson-list{list-style:none;margin:1rem 0 0 0;padding:0}
.module-card .lesson-item{padding:.75rem;background:rgba(255,255,255,.03);border-radius:8px;margin-bottom:.5rem;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:background .2s ease}
.module-card .lesson-item:hover{background:rgba(255,255,255,.06)}
.module-card .lesson-item.completed{opacity:.7}
.module-card .lesson-item.completed::before{content:'✓';color:#00d4aa;font-weight:900}
.module-card .lesson-item.current{background:rgba(91,138,255,.15);border:1px solid rgba(91,138,255,.3)}

/* Continue Reading Card */
.continue-reading{background:linear-gradient(135deg,rgba(91,138,255,.15),rgba(118,221,255,.1));border:2px solid rgba(91,138,255,.3);border-radius:16px;padding:2rem;margin:2rem 0;position:relative;overflow:hidden}
.continue-reading::before{content:'📖';position:absolute;top:-10px;right:20px;font-size:5rem;opacity:.2}
.continue-reading h3{margin:0 0 .5rem 0;font-size:1.4rem}
.continue-reading p{margin:.5rem 0 1.5rem 0;color:var(--muted)}
.continue-reading .progress-bar-small{height:6px;background:rgba(255,255,255,.2);border-radius:999px;margin:1rem 0;overflow:hidden}
.continue-reading .progress-bar-small span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}

/* Search Component */
.search-wrapper{position:relative;margin:2rem 0}
.search-input{width:100%;padding:1rem 1.25rem 1rem 3rem;background:rgba(255,255,255,.10);border:2px solid rgba(255,255,255,.18);border-radius:12px;color:var(--text);font-size:1rem;transition:all .2s ease}
.search-input:focus{outline:none;border-color:var(--accent);background:rgba(255,255,255,.14);box-shadow:0 0 0 3px rgba(118,221,255,.15)}
.search-wrapper::before{content:'🔍';position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1.2rem}
.search-results{margin-top:1rem}
.search-result-item{padding:1rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;margin-bottom:.75rem;cursor:pointer;transition:all .2s ease}
.search-result-item:hover{background:rgba(255,255,255,.08);border-color:rgba(118,221,255,.3)}
.search-result-item h4{margin:0 0 .5rem 0;font-size:1.1rem}
.search-result-item p{margin:0;font-size:.9rem;color:var(--muted)}
.search-result-item .search-badge{display:inline-block;padding:.25rem .5rem;background:rgba(91,138,255,.2);border-radius:4px;font-size:.75rem;margin-top:.5rem}

/* Interactive Chart Placeholder */
.chart-interactive{margin:2rem 0;padding:2rem;background:rgba(255,255,255,.04);border:2px dashed rgba(255,255,255,.2);border-radius:16px;text-align:center;min-height:300px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem}
.chart-interactive::before{content:'📊';font-size:4rem;opacity:.5}
.chart-interactive p{color:var(--muted);max-width:400px;margin:0 auto}

/* Breadcrumbs - IMPROVED: No wrapping, better visibility */
.breadcrumbs{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:#9fb6e6;margin:1.25rem 0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
.breadcrumbs a{color:#9fb6e6;text-decoration:none;transition:all .2s ease;white-space:nowrap;padding:.25rem .5rem;border-radius:6px}
.breadcrumbs a:hover{color:var(--accent);background:rgba(118,221,255,.1)}
.breadcrumbs span{color:#8ea0bf;flex-shrink:0}

/* Enhanced Card Styles for Landing Pages */
.card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.5rem;transition:all .3s ease}
.card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 12px 40px rgba(0,0,0,.4),0 0 0 1px rgba(118,221,255,.2);border-color:rgba(118,221,255,.3)}
.card.featured{background:linear-gradient(135deg,rgba(91,138,255,.1),rgba(118,221,255,.05));border:2px solid rgba(91,138,255,.3)}
.card .card-icon{font-size:2.5rem;margin-bottom:1rem;display:block}
.card h3{margin:0 0 .75rem 0;font-size:1.3rem}
.card p{margin:.5rem 0;line-height:1.6}
.card .card-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted)}

/* Grid Layouts */
.grid{display:grid;gap:1.5rem;margin:2rem 0}
.grid.auto-200{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.grid.auto-250{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.grid.auto-300{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid.two-col{grid-template-columns:repeat(2,1fr)}
.grid.three-col{grid-template-columns:repeat(3,1fr)}
@media (max-width:768px){
  .grid.two-col,.grid.three-col{grid-template-columns:1fr}
}

/* Mobile-specific optimizations */
@media (max-width:768px){
  /* Hero section mobile optimization */
  .hero{
    min-height:auto;
    padding:2rem 0 1.5rem;
  }

  .hero::before{
    filter:blur(40px);
    animation:hero-gradient-rotate 30s linear infinite;
  }

  /* Reduce gradient intensity on mobile */
  .bg-aurora{
    opacity:0.6;
    animation:aurora-shift 20s ease-in-out infinite;
  }

  html[data-theme="light"] .bg-aurora{
    opacity:0.4;
  }

  /* Module cards mobile */
  .module-card .module-header{
    flex-direction:column;
    gap:.5rem;
  }

  .module-card .module-number{
    font-size:1.5rem;
    min-width:auto;
  }
}

@media (max-width:480px){
  body{font-size:15px;line-height:1.65}

  /* Prevent ANY horizontal overflow - absolute containment */
  *{max-width:100%;box-sizing:border-box}
  html,body{overflow-x:hidden !important;width:100%;position:relative}
  .wrap{max-width:100%;padding:0 1rem}

  /* Mobile table accordion-style - ONLY for lessons 1-2 (testing) */
  .table-accordions-mobile table{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:1.5rem 0 !important;
    border:none !important;
  }

  /* Hide table header on mobile */
  .table-accordions-mobile table thead{
    display:none !important;
  }

  /* Table body becomes container */
  .table-accordions-mobile table tbody{
    display:block !important;
    width:100% !important;
  }

  /* Each row becomes an accordion-style card */
  .table-accordions-mobile table tr{
    display:block !important;
    margin-bottom:0.75rem !important;
    border:1px solid rgba(255,255,255,0.1) !important;
    border-radius:12px !important;
    overflow:hidden !important;
    background:rgba(255,255,255,0.03) !important;
    position:relative !important;
  }

  /* First 2 cells are always visible (the "header") */
  .table-accordions-mobile table td:nth-child(1),
  .table-accordions-mobile table td:nth-child(2){
    display:block !important;
    padding:1rem 1.25rem !important;
    font-weight:600 !important;
    background:rgba(255,255,255,0.04) !important;
  }

  .table-accordions-mobile table td:nth-child(1){
    font-size:1rem !important;
    color:var(--accent) !important;
    border-bottom:1px solid rgba(255,255,255,0.05) !important;
    position:relative !important;
    padding-right:3rem !important;
  }

  .table-accordions-mobile table td:nth-child(2){
    font-size:0.9rem !important;
    color:var(--text) !important;
    padding-right:7rem !important;
  }

  /* Remaining cells hidden by default */
  .table-accordions-mobile table td:nth-child(n+3){
    display:none !important;
    padding:0.75rem 1.25rem !important;
    font-size:0.875rem !important;
    line-height:1.5 !important;
    border-top:1px solid rgba(255,255,255,0.05) !important;
    background:rgba(255,255,255,0.02) !important;
  }

  /* Add expand indicator to first cell */
  .table-accordions-mobile table td:nth-child(1)::after{
    content:' ▼';
    position:absolute;
    right:1rem;
    top:1rem;
    font-size:0.8rem;
    color:var(--muted);
    opacity:0.6;
  }

  /* When row is expanded, show all cells */
  .table-accordions-mobile table tr.expanded td:nth-child(n+3){
    display:block;
  }

  /* Change indicator when expanded */
  .table-accordions-mobile table tr.expanded td:nth-child(1)::after{
    content:' ▲';
    color:var(--accent);
  }

  /* Make row clickable */
  .table-accordions-mobile table tr{
    cursor:pointer;
    transition:all 0.2s ease;
  }

  .table-accordions-mobile table tr:hover{
    background:rgba(255,255,255,0.06);
  }

  /* Ensure prose and content containers don't overflow */
  .prose,
  .article-content,
  main,
  article{
    max-width:100%;
    overflow-x:hidden;
    word-wrap:break-word;
    overflow-wrap:break-word;
  }

  /* Hero mobile optimization */
  .hero{
    padding:1.5rem 0 1rem;
  }

  .hero::before{
    filter:blur(30px);
    inset:-20%;
  }

  .hero .headline.xl{
    font-size:clamp(1.75rem,8vw,2.5rem);
  }

  .hero .lead{
    font-size:.95rem;
    line-height:1.6;
  }

  /* Further reduce animations on small mobile */
  .bg-aurora{
    opacity:0.5;
  }

  .badge{font-size:.9rem;padding:.45rem 1rem}
  .progress-stats{grid-template-columns:repeat(2,1fr);gap:.75rem}
  .prose{font-size:.95rem}
  .prose p{line-height:1.7}
  .prose pre{font-size:.85rem;padding:.75rem}
  .prose code{font-size:.85em}
  .callout-info,.callout-warning,.callout-tip,.callout-key{padding:1rem;margin:1.5rem 0}
  .quiz{padding:1.5rem}
  .quiz-option{padding:.85rem 1rem;font-size:.95rem}
  .module-card{padding:1.25rem;margin:1.25rem 0}
  .module-card .module-title h3{font-size:1.15rem}
  .continue-reading{padding:1.5rem}
  .continue-reading::before{font-size:3rem;right:10px;top:-5px}
  .key-takeaway{padding:1.25rem}
  .key-takeaway::before{font-size:1.5rem;left:10px}
  .article-progress{flex-direction:column;text-align:center}
  .progress-circle{margin:0 auto .5rem auto}
  .search-input{font-size:16px}
  .card{padding:1.25rem}
  .btn{padding:.7rem 1rem;font-size:.95rem;min-height:48px}
  .toc{position:static;margin:1rem 0}

  /* Lesson list mobile - keep horizontal layout */
  .lesson-item{
    padding:.5rem;
    gap:.5rem;
  }

  /* Fix Related Lessons grid on mobile - override inline styles */
  .prose ~ div[style*="grid"],
  div[style*="repeat(auto-fit"]{
    grid-template-columns:1fr !important;
    gap:.75rem !important;
  }
}

/* Extra small devices */
@media (max-width:360px){
  .progress-stats{grid-template-columns:1fr;gap:.5rem}
  .badge{font-size:.85rem;padding:.4rem .85rem}
  .quiz-option{font-size:.9rem}

  /* Further reduce gradients on very small screens */
  .hero::before{
    filter:blur(25px);
  }

  .bg-aurora{
    opacity:0.4;
  }
}

/* Tablet-specific optimizations (portrait) */
@media (min-width:768px) and (max-width:1024px){
  .module-card{
    padding:1.75rem;
  }

  .progress-stats{
    grid-template-columns:repeat(4,1fr);
  }

  .hero{
    padding:2.5rem 0 2rem;
  }
}

/* Landscape phone optimization */
@media (max-height:450px) and (orientation:landscape){
  .hero{
    min-height:auto;
    padding:1rem 0 .75rem;
  }

  .hero .headline.xl{
    font-size:clamp(1.5rem,5vw,2rem);
  }

  .hero .lead{
    font-size:.9rem;
  }

  .sp-header .wrap{
    padding:.5rem 0;
  }

  /* Reduce vertical spacing in landscape */
  .module-card{
    margin:1rem 0;
    padding:1rem;
  }

  .badge{
    padding:.35rem .75rem;
    font-size:.8rem;
  }
}

/* Safe area support for notched devices */
@supports(padding:max(0px)){
  .sp-header{
    padding-left:max(0px,env(safe-area-inset-left));
    padding-right:max(0px,env(safe-area-inset-right));
  }

  .wrap{
    padding-left:max(clamp(16px,4vw,24px),env(safe-area-inset-left));
    padding-right:max(clamp(16px,4vw,24px),env(safe-area-inset-right));
  }

  #mainnav{
    padding-left:max(1rem,env(safe-area-inset-left));
    padding-right:max(1rem,env(safe-area-inset-right));
  }
}

/* Disable animations for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce){
  .hero::before,
  .bg-aurora{
    animation:none !important;
  }

  .hero::before{
    transform:none;
  }

  *{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high){
  .btn{
    border:2px solid currentColor;
  }

  .badge{
    border-width:2px;
  }

  .module-card{
    border:2px solid rgba(255,255,255,.3);
  }
}

/* Utility Classes */
.text-center{text-align:center}
.text-muted{color:var(--muted)}
.text-accent{color:var(--accent)}
.w-full{width:100%}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}
.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-4{padding:2rem}
/* Social Sharing Component */
.social-share{margin:3rem 0;padding:1.5rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px}
.social-share h4{margin:0 0 1rem 0;font-size:1rem}
.social-share-buttons{display:flex;gap:.75rem;flex-wrap:wrap}
.social-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:.9rem;transition:all .2s ease;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:var(--text);min-height:44px}
.social-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}
.social-btn.twitter:hover{background:rgba(29,155,240,.15);border-color:rgba(29,155,240,.4)}
.social-btn.reddit:hover{background:rgba(255,69,0,.15);border-color:rgba(255,69,0,.4)}
.social-btn.linkedin:hover{background:rgba(0,119,181,.15);border-color:rgba(0,119,181,.4)}
.social-btn.hacker-news:hover{background:rgba(255,102,0,.15);border-color:rgba(255,102,0,.4)}
.social-btn.copy-link:hover{background:rgba(118,221,255,.15);border-color:rgba(118,221,255,.4)}
.share-toast{margin-top:1rem;padding:.75rem 1rem;background:rgba(62,213,152,.15);border:1px solid rgba(62,213,152,.3);border-radius:8px;color:#3ed598;font-weight:600;text-align:center}
@media (max-width:480px){.social-share-buttons{grid-template-columns:1fr 1fr}.social-btn span{font-size:.85rem}}

/* Enhanced Quiz Feedback System */
.quiz-feedback{margin-top:1.5rem;padding:1.5rem;border-radius:12px;display:none;animation:slideIn 0.3s ease}
.quiz-feedback.show{display:block}
.quiz-feedback.correct{background:rgba(62,213,152,.15);border:2px solid rgba(62,213,152,.3)}
.quiz-feedback.incorrect{background:rgba(255,107,107,.15);border:2px solid rgba(255,107,107,.3)}
.quiz-feedback .feedback-icon{font-size:3rem;margin-bottom:.5rem;text-align:center}
.quiz-feedback h4{margin:0 0 1rem 0;font-size:1.2rem;text-align:center}
.quiz-feedback .feedback-section{margin:1rem 0}
.quiz-feedback .user-answer{color:#ff6b6b;font-weight:600;margin:.5rem 0}
.quiz-feedback .correct-answer{color:#3ed598;font-weight:600;margin:.5rem 0}
.quiz-feedback .explanation{margin:.75rem 0;line-height:1.7;color:var(--muted)}
.quiz-feedback hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:1.5rem 0}
.quiz-option{cursor:pointer;transition:all .2s ease}
.quiz-option:hover{transform:translateX(4px)}
.quiz-option.selected{background:rgba(91,138,255,.15);border-left:4px solid var(--brand)}
.quiz-result{margin:2rem 0}
.quiz-result-card{text-align:center;padding:2rem;border-radius:12px}
.quiz-result-card.pass{background:rgba(62,213,152,.15);border:2px solid rgba(62,213,152,.3)}
.quiz-result-card.fail{background:rgba(249,162,60,.15);border:2px solid rgba(249,162,60,.3)}
.quiz-result-card h3{margin:.5rem 0 1rem 0;font-size:1.5rem}
.quiz-result-card .score{font-size:1.8rem;font-weight:700;margin:1rem 0}
@keyframes slideIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}

/* ============================================
   SYSTEMATIC BEAUTIFULNESS - POLISH & UX
   ============================================ */

/* Smooth focus states for accessibility and beauty */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:4px;
}

/* Smooth hover transitions for all interactive elements */
a,button,input,select,textarea,.card,.lesson-item,.quiz-option,.accordion-header{
  transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Prevent layout shift from hover effects */
.card{
  will-change:transform;
  backface-visibility:hidden;
  transform:translateZ(0);
}

/* Subtle animations on scroll (browsers that support it) */
@media (prefers-reduced-motion: no-preference){
  .card,.module-card,.progress-card,.key-takeaway{
    animation:fadeInUp 0.5s ease-out;
  }
}

@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(20px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* Respect user motion preferences */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* Better spacing for nested lists */
ul ul,ol ol,ul ol,ol ul{
  margin-top:0.5rem;
  margin-bottom:0.5rem;
}

/* Ensure consistent link colors */
.article a:not(.btn){
  color:var(--accent);
  text-decoration:underline;
  text-decoration-color:rgba(118,221,255,0.3);
  text-underline-offset:2px;
  transition:text-decoration-color 0.2s ease;
}

.article a:not(.btn):hover{
  text-decoration-color:var(--accent);
}

/* Elegant selection highlight */
::selection{
  background:rgba(91,138,255,0.3);
  color:var(--text);
}

/* Scrollbar styling for webkit browsers */
::-webkit-scrollbar{
  width:10px;
  height:10px;
}

::-webkit-scrollbar-track{
  background:rgba(255,255,255,0.05);
}

::-webkit-scrollbar-thumb{
  background:rgba(91,138,255,0.3);
  border-radius:5px;
}

::-webkit-scrollbar-thumb:hover{
  background:rgba(91,138,255,0.5);
}

/* Firefox scrollbar */
*{
  scrollbar-width:thin;
  scrollbar-color:rgba(91,138,255,0.3) rgba(255,255,255,0.05);
}

/* Ensure buttons never have text overflow */
button,. btn{
  text-overflow:ellipsis;
  overflow:hidden;
  white-space:nowrap;
}

/* Mobile tap highlight color */
*{
  -webkit-tap-highlight-color:rgba(91,138,255,0.2);
}

/* ============================================
   COMPREHENSIVE DEVICE OPTIMIZATIONS
   ============================================ */

/* iOS-Specific Optimizations */
@supports (-webkit-touch-callout: none){
  /* iOS Safari specific */
  body{
    -webkit-text-size-adjust:100%;
    -webkit-font-smoothing:antialiased;
  }

  /* Prevent iOS input zoom */
  input,textarea,select{
    font-size:16px !important;
  }

  /* Better iOS scrolling */
  .chatbot-messages,.auth-modal-content,.mobile-nav{
    -webkit-overflow-scrolling:touch;
  }

  /* Fix iOS button appearance */
  button,input[type="submit"],input[type="button"]{
    -webkit-appearance:none;
    appearance:none;
  }

  /* Prevent text inflation on landscape */
  @media (orientation:landscape){
    body{
      -webkit-text-size-adjust:100%;
    }
  }
}

/* Android-Specific Optimizations */
@media (max-width:767px){
  /* Prevent Android keyboard from resizing viewport */
  @supports not (-webkit-touch-callout: none){
    .sp-header{
      position:fixed;
    }

    main{
      padding-top:60px;
    }
  }
}

/* Tablet Portrait Optimization (iPad, Surface) */
@media (min-width:768px) and (max-width:1024px) and (orientation:portrait){
  .wrap{
    padding:0 2rem;
  }

  .grid.three-col{
    grid-template-columns:repeat(2,1fr);
  }

  .hero .headline.xl{
    font-size:2.25rem;
  }

  .article-grid{
    grid-template-columns:1fr;
  }

  .toc{
    position:static;
    margin:2rem 0;
  }

  /* Larger touch targets for tablets */
  .btn{
    min-height:48px;
    padding:.875rem 1.25rem;
  }

  .quiz-option{
    padding:1rem 1.25rem;
  }
}

/* Tablet Landscape Optimization */
@media (min-width:768px) and (max-width:1199px) and (orientation:landscape){
  .hero{
    min-height:50vh;
  }

  .article-grid{
    grid-template-columns:1fr 280px;
  }

  .grid.three-col{
    grid-template-columns:repeat(3,1fr);
  }
}

/* Phone Landscape Optimization */
@media (max-width:767px) and (orientation:landscape){
  .hero{
    min-height:40vh;
    padding:1rem 0;
  }

  .hero .headline.xl{
    font-size:1.75rem;
  }

  .hero .lead{
    font-size:.9rem;
  }

  /* Compact header in landscape */
  .sp-header .wrap{
    padding:.5rem 0;
  }

  /* Reduce vertical spacing */
  .section-break{
    margin:2rem 0;
  }

  .card{
    padding:1rem;
  }
}

/* Large Desktop (2K, 4K displays) */
@media (min-width:1920px){
  :root{
    --max:1400px;
  }

  .wrap{
    max-width:1400px;
  }

  .hero .headline.xl{
    font-size:3.5rem;
  }

  .hero .lead{
    font-size:1.25rem;
    max-width:800px;
  }

  .grid{
    gap:2rem;
  }

  .card{
    padding:2rem;
  }
}

/* Small Phones (iPhone SE 1st gen, small Android) */
@media (max-width:375px){
  .sp-header .wrap{
    gap:0.25rem;
  }

  .header-ctls{
    gap:0.25rem;
  }

  #auth-button{
    padding:0.25rem 0.4rem;
    font-size:0.65rem;
  }

  .hero .headline.xl{
    font-size:1.5rem;
  }

  .progress-stats{
    gap:0.5rem;
  }

  .progress-stat{
    padding:0.75rem;
  }

  .stat-value{
    font-size:1.5rem;
  }
}

/* Foldable Phones (Galaxy Z Fold, etc.) */
@media (min-width:768px) and (max-width:884px){
  /* Unfolded state - optimize for narrow tall display */
  .article-grid{
    grid-template-columns:1fr;
  }

  .grid.three-col,.grid.two-col{
    grid-template-columns:1fr;
  }
}

/* High DPI Displays (Retina, etc.) */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){
  /* Sharper text rendering */
  body{
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
  }

  /* Better border rendering */
  .card,.btn,.auth-modal-content{
    transform:translateZ(0);
    backface-visibility:hidden;
  }
}

/* Touch Device Optimization */
@media (hover: none) and (pointer: coarse){
  /* Remove hover states on touch devices */
  .card:hover{
    transform:none;
  }

  /* Larger touch targets */
  a,button,.quiz-option,.lesson-item{
    min-height:44px;
    min-width:44px;
  }

  /* Add active states instead */
  .card:active{
    transform:scale(0.98);
    transition:transform 0.1s ease;
  }

  .btn:active{
    transform:translateY(2px);
  }

  /* Disable hover animations on touch */
  *{
    transition-property:background-color, color, border-color, opacity;
  }
}

/* Mouse/Trackpad Device Optimization */
@media (hover: hover) and (pointer: fine){
  /* Enable hover effects */
  .card{
    transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* Subtle cursor changes */
  .card,.lesson-item,.quiz-option{
    cursor:pointer;
  }

  a:not(.btn){
    cursor:pointer;
  }
}

/* Reduced Motion - Respect user preferences */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }

  .hero::before{
    animation:none !important;
  }

  .bg-stars,.bg-aurora{
    animation:none !important;
  }
}

/* Dark Mode Preference (System) */
@media (prefers-color-scheme: dark){
  html:not([data-theme]){
    color-scheme:dark;
  }
}

/* Light Mode Preference (System) */
@media (prefers-color-scheme: light){
  html:not([data-theme]){
    color-scheme:light;
  }
}

/* Low Bandwidth / Save Data Mode */
@media (prefers-reduced-data: reduce){
  /* Disable background animations */
  .bg-stars,.bg-aurora,.hero::before{
    display:none !important;
  }

  /* Reduce image quality needs to be handled by img srcset */

  /* Disable non-essential animations */
  .card,.module-card,.progress-card{
    animation:none !important;
  }
}

/* Print Optimization */
@media print{
  /* Disable all animations during print */
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
    transform:none !important;
  }

  .sp-header,.sp-footer,.chatbot-button,.chatbot-container,
  .menu-toggle,.mobile-nav,.mobile-nav-backdrop,
  .social-share,.social-share-buttons,#auth-button,#cloud-sync-indicator,
  .bg-stars,.bg-aurora,#constellations,.sp-constellations,
  .nav-article,#bookmark-btn,.btn-ghost,.btn-primary,.btn-secondary,
  .toc-sidebar,.lesson-actions,
  .discussion-section,#discussion-section,.discussion-content,
  .progress-bar,.article-progress,
  button,input,textarea,select{
    display:none !important;
  }

  body{
    background:#fff !important;
    color:#000 !important;
    overflow:visible !important;
  }

  .wrap{
    max-width:100% !important;
    padding:0 !important;
  }

  .article,.prose{
    font-size:12pt;
    line-height:1.5;
  }

  .prose{
    max-width:100% !important;
  }

  /* Keep quiz content visible - it's educational */
  .quiz{
    background:#f5f5f5 !important;
    border:2px solid #ccc !important;
    page-break-inside:avoid;
  }

  .quiz-option{
    background:#fff !important;
    border:1px solid #ddd !important;
    cursor:default !important;
  }

  /* Show quiz feedback/explanations in print - they're educational */
  .quiz-feedback,
  .quiz-explanation{
    display:block !important;
    background:#f0f0f0 !important;
    border:1px solid #ccc !important;
    color:#000 !important;
    page-break-inside:avoid;
  }

  a{
    color:#000 !important;
    text-decoration:none !important;
  }

  /* Don't show URLs after links - causes massive page bloat */
  a[href]:after{
    content:none !important;
  }

  /* Page breaks */
  h1,h2,h3,h4{
    page-break-after:avoid;
  }

  .card,.key-takeaway,.callout-info,.quiz{
    page-break-inside:avoid;
  }

  /* Ensure tables print properly */
  table{
    width:100%;
    border-collapse:collapse;
  }

  table,th,td{
    border:1px solid #ccc !important;
  }

  th,td{
    padding:8px !important;
    text-align:left;
  }
}

/* ============================================
   LAZY LOADING STYLES
   ============================================ */

/* Placeholder for lazy-loading images */
img[data-src] {
  background: rgba(255, 255, 255, 0.05);
  min-height: 200px;
}

/* Fade in when loaded */
img.lazy-loaded {
  animation: fadeIn 0.3s ease-in;
}

/* Placeholder animation */
img.lazy-placeholder {
  background: linear-gradient(90deg,
    rgba(255,255,255,0.05) 25%,
    rgba(255,255,255,0.1) 50%,
    rgba(255,255,255,0.05) 75%
  );
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Error state */
img.lazy-error {
  border: 2px dashed rgba(255, 107, 107, 0.3);
  background: rgba(255, 107, 107, 0.1);
  min-height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
}

img.lazy-error::after {
  content: '⚠️ Image failed to load';
  color: var(--muted);
  font-size: 0.85rem;
}

