/* ── AwareSTEM Lab — scoped to .asl- prefix only, no global overrides ── */
  .asl-hero {
    background: linear-gradient(135deg, rgba(0,20,50,.96), rgba(5,0,30,.99));
    border: 1px solid rgba(0,212,255,.2);
    border-radius: 8px;
    padding: 26px 22px 20px;
    margin-bottom: 1.5rem;
    position: relative;
    overflow: hidden;
  }
  .asl-hero::before {
    content: '';
    position: absolute; inset: 0;
    background-image:
      radial-gradient(1px 1px at 12% 20%, rgba(255,255,255,.5) 0%, transparent 100%),
      radial-gradient(1px 1px at 40% 70%, rgba(0,212,255,.35) 0%, transparent 100%),
      radial-gradient(2px 2px at 68% 18%, rgba(255,200,64,.25) 0%, transparent 100%),
      radial-gradient(1px 1px at 84% 55%, rgba(0,255,136,.25) 0%, transparent 100%),
      radial-gradient(1px 1px at 28% 82%, rgba(255,255,255,.25) 0%, transparent 100%);
    pointer-events: none;
  }
  .asl-hero h1 {
    font-family: 'Orbitron', monospace;
    font-size: clamp(1.2rem, 3vw, 1.8rem);
    font-weight: 900;
    color: #00d4ff;
    letter-spacing: 2px;
    margin: 0 0 6px;
    text-shadow: 0 0 18px rgba(0,212,255,.5);
  }
  .asl-hero p { color: #b0cce0; font-size: .9rem; line-height: 1.6; max-width: 680px; margin: 0; }
  .asl-status {
    display: flex; gap: 16px; flex-wrap: wrap;
    margin-top: 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size: .68rem; color: #2a4060;
  }
  .asl-status strong { color: #00ff88; }

  /* Nav */
  .asl-nav { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 1rem; }
  .asl-nb {
    font-family: 'Orbitron', monospace;
    font-size: .58rem; font-weight: 700; letter-spacing: 1px;
    background: transparent;
    border: 1px solid #1a3050; color: #2a4060;
    padding: 8px 12px; cursor: pointer; border-radius: 4px;
    transition: all .18s;
    clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 6px 100%, 0 calc(100% - 6px));
  }
  .asl-nb:hover, .asl-nb.on {
    border-color: #00d4ff; color: #00d4ff;
    box-shadow: 0 0 12px rgba(0,212,255,.25);
  }
  .asl-nb.on { background: rgba(0,212,255,.06); }

  /* Layout */
  .asl-layout { display: flex; gap: 14px; align-items: flex-start; }
  .asl-main { flex: 1; min-width: 0; }
  .asl-side { width: 230px; flex-shrink: 0; display: flex; flex-direction: column; gap: 8px; }
  @media(max-width: 860px) { .asl-layout { flex-direction: column; } .asl-side { width: 100%; } }

  /* Canvas */
  .asl-cv { background: #020810; border: 1px solid #0d2040; border-radius: 6px; overflow: hidden; }
  .asl-cv canvas { display: block; width: 100%; height: auto; }

  /* Sidebar blocks */
  .asl-blk {
    background: rgba(6,14,26,.95);
    border: 1px solid #0d2040;
    border-radius: 6px; padding: 12px;
  }
  .asl-blk h3 {
    font-family: 'Orbitron', monospace;
    font-size: .58rem; font-weight: 700;
    color: #00d4ff; letter-spacing: 2px;
    text-transform: uppercase; margin: 0 0 8px;
  }
  .asl-blk p { font-size: .75rem; color: #5a7a9a; line-height: 1.55; margin: 0; }
  .asl-lbl {
    font-family: 'Share Tech Mono', monospace;
    font-size: .63rem; color: #2a4060;
    display: block; text-transform: uppercase;
    letter-spacing: 1px; margin: 7px 0 2px;
  }
  .asl-sl {
    width: 100%; height: 4px; appearance: none;
    background: #0d2040; border-radius: 2px;
    cursor: pointer; display: block; margin: 3px 0 8px;
  }
  .asl-sl::-webkit-slider-thumb {
    appearance: none; width: 12px; height: 12px;
    border-radius: 50%; background: #00d4ff;
    box-shadow: 0 0 6px rgba(0,212,255,.6);
  }
  .asl-inp {
    width: 100%; background: #020810;
    border: 1px solid #0d2040; color: #e8f4ff;
    font-family: 'Share Tech Mono', monospace;
    font-size: .78rem; padding: 7px;
    border-radius: 4px; outline: none;
    transition: border-color .2s; box-sizing: border-box;
  }
  .asl-inp:focus { border-color: #00d4ff; }
  .asl-btn {
    font-family: 'Orbitron', monospace;
    font-size: .58rem; font-weight: 700; letter-spacing: 1px;
    background: transparent; border: 1px solid #00d4ff;
    color: #00d4ff; padding: 8px 10px;
    cursor: pointer; width: 100%;
    border-radius: 4px; margin-top: 4px;
    transition: all .18s;
    clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
  }
  .asl-btn:hover { background: rgba(0,212,255,.09); box-shadow: 0 0 12px rgba(0,212,255,.25); }
  .asl-btn.g { border-color: #00ff88; color: #00ff88; }
  .asl-btn.g:hover { background: rgba(0,255,136,.09); }
  .asl-btn.gd { border-color: #ffc840; color: #ffc840; }
  .asl-btn.gd:hover { background: rgba(255,200,64,.09); }
  .asl-st {
    display: flex; justify-content: space-between; align-items: center;
    padding: 4px 0; border-bottom: 1px solid #0d2040;
    font-family: 'Share Tech Mono', monospace; font-size: .65rem;
  }
  .asl-st .v { color: #00d4ff; }

  /* Morse lamp */
  .asl-lamp {
    width: 76px; height: 76px; border-radius: 50%;
    margin: 10px auto; display: flex;
    align-items: center; justify-content: center;
    font-size: 1.6rem; border: 2px solid #1a3050;
    background: #020810; transition: all .05s;
  }
  .asl-lamp.lit {
    background: radial-gradient(circle, #00d4ff 0%, #0055aa 60%, #020810 100%);
    border-color: #00d4ff;
    box-shadow: 0 0 45px rgba(0,212,255,.75);
  }

  /* Progress */
  .asl-po { background: #0d2040; height: 5px; border-radius: 3px; margin: 6px 0; }
  .asl-pi { height: 100%; background: #00d4ff; border-radius: 3px; box-shadow: 0 0 7px rgba(0,212,255,.5); transition: width .08s; }

  /* Log */
  .asl-log {
    background: rgba(6,14,26,.95);
    border: 1px solid #0d2040; border-radius: 6px;
    padding: 7px 12px; margin-top: 1rem;
    font-family: 'Share Tech Mono', monospace;
    font-size: .68rem; color: #2a4060;
  }
  .asl-log .lt { color: #00ff88; }

  /* Home grid */
  .asl-hg { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
  .asl-hc {
    background: rgba(6,14,26,.95); border: 1px solid #0d2040;
    border-radius: 8px; padding: 16px; cursor: pointer;
    transition: all .2s;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
  }
  .asl-hc:hover { border-color: #00d4ff; transform: translateY(-2px); box-shadow: 0 0 16px rgba(0,212,255,.12); }
  .asl-hc .ic { font-size: 1.5rem; display: block; margin-bottom: 7px; }
  .asl-hc h2 {
    font-family: 'Orbitron', monospace; font-size: .7rem;
    font-weight: 700; color: #00d4ff; margin: 0 0 5px; letter-spacing: 1px;
  }
  .asl-hc p { font-size: .72rem; color: #4a6a8a; line-height: 1.5; margin: 0; }
  .asl-hc .tg {
    display: inline-block; margin-top: 7px;
    font-family: 'Share Tech Mono', monospace; font-size: .56rem;
    color: #ffc840; border: 1px solid rgba(255,200,64,.35); padding: 2px 6px; border-radius: 3px;
  }

  /* Pathway strip */
  .asl-pw { border-left: 3px solid #00d4ff; padding: 8px 12px; margin-top: 6px; background: rgba(0,212,255,.03); border-radius: 0 4px 4px 0; }
  .asl-pw h4 { font-family: 'Orbitron', monospace; font-size: .58rem; color: #00d4ff; letter-spacing: 1px; margin: 0 0 4px; }
  .asl-pw p { font-size: .72rem; color: #5a7a9a; margin: 0; }
  .asl-pw strong { color: #ffc840; }
  

  /* v8 connected mission additions */
  .asl-modebar{display:flex;gap:8px;flex-wrap:wrap;margin:-.4rem 0 1rem;padding:10px;background:rgba(6,14,26,.7);border:1px solid #0d2040;border-radius:8px}
  .asl-modebtn{font-family:'Share Tech Mono',monospace;font-size:.66rem;background:#020810;border:1px solid #1a3050;color:#5a7a9a;border-radius:999px;padding:7px 10px;cursor:pointer;transition:all .18s}
  .asl-modebtn.on,.asl-modebtn:hover{color:#00d4ff;border-color:#00d4ff;box-shadow:0 0 12px rgba(0,212,255,.15)}
  .asl-mission-strip{display:none;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin:0 0 1rem}
  .asl-ms{background:rgba(6,14,26,.9);border:1px solid #0d2040;border-radius:6px;padding:8px 10px;font-family:'Share Tech Mono',monospace;font-size:.62rem;color:#5a7a9a}
  .asl-ms strong{display:block;color:#00d4ff;font-family:'Orbitron',monospace;font-size:.56rem;letter-spacing:1px;margin-bottom:4px;text-transform:uppercase}
  .asl-ms.done{border-color:#00ff88}.asl-ms.done strong{color:#00ff88}
  .asl-alert{background:rgba(255,200,64,.08);border:1px solid rgba(255,200,64,.35);border-left:4px solid #ffc840;color:#b0cce0;padding:10px 12px;border-radius:8px;margin:.75rem 0;font-size:.8rem;line-height:1.5}
  .asl-tagrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.asl-tag{font-family:'Share Tech Mono',monospace;font-size:.58rem;border:1px solid #1a3050;color:#5a7a9a;padding:3px 7px;border-radius:999px}.asl-tag.hot{border-color:#ffc840;color:#ffc840}.asl-tag.good{border-color:#00ff88;color:#00ff88}
  .asl-build-card{background:rgba(0,212,255,.04);border:1px solid rgba(0,212,255,.24);border-radius:8px;padding:12px;margin-bottom:10px}.asl-build-card h4{margin:0 0 6px;color:#00d4ff;font-family:'Orbitron',monospace;font-size:.7rem;letter-spacing:1px}.asl-build-card ul{margin:.35rem 0 0 1rem;color:#5a7a9a;font-size:.76rem;line-height:1.55}
  .asl-linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.asl-linkcard{background:rgba(6,14,26,.95);border:1px solid #0d2040;border-radius:8px;padding:14px;cursor:pointer;transition:.18s}.asl-linkcard:hover{border-color:#00d4ff;transform:translateY(-2px)}.asl-linkcard h3{font-family:'Orbitron',monospace;color:#00d4ff;font-size:.75rem;margin:0 0 6px}.asl-linkcard p{font-size:.74rem;color:#5a7a9a;line-height:1.5;margin:0}

  /* v9 guided learning additions */
  .asl-learn-card{background:rgba(0,212,255,.045);border:1px solid rgba(0,212,255,.22);border-left:4px solid #00d4ff;border-radius:8px;padding:10px 12px;margin-bottom:8px}
  .asl-learn-card h4{font-family:'Orbitron',monospace;font-size:.58rem;letter-spacing:1px;text-transform:uppercase;color:#00d4ff;margin:0 0 5px}
  .asl-learn-card p{font-size:.74rem;color:#86a6c4;line-height:1.55;margin:0}
  .asl-learn-card.try{border-left-color:#ffc840;background:rgba(255,200,64,.055);border-color:rgba(255,200,64,.22)}
  .asl-learn-card.try h4{color:#ffc840}
  .asl-learn-card.real{border-left-color:#00ff88;background:rgba(0,255,136,.045);border-color:rgba(0,255,136,.18)}
  .asl-learn-card.real h4{color:#00ff88}
  .asl-learn-card.adv{border-left-color:#a855f7;background:rgba(168,85,247,.045);border-color:rgba(168,85,247,.18)}
  .asl-learn-card.adv h4{color:#c084fc}
  .asl-mini-note{font-family:'Share Tech Mono',monospace;font-size:.62rem;color:#5a7a9a;border:1px solid #0d2040;border-radius:6px;padding:6px 8px;margin-top:6px;background:#020810}
  .asl-equation{font-family:'Share Tech Mono',monospace;color:#ffc840;font-size:.68rem;padding:5px 7px;background:rgba(255,200,64,.06);border:1px solid rgba(255,200,64,.2);border-radius:6px;margin-top:6px}


  /* v12 planet explorer layout */
  .asl-space-detail{margin-top:12px;background:rgba(6,14,26,.95);border:1px solid #0d2040;border-radius:8px;padding:14px;display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:14px;align-items:start}
  .asl-space-img{aspect-ratio:1/1;border:1px solid #1a3050;border-radius:8px;background:radial-gradient(circle at 40% 35%, rgba(0,212,255,.25), rgba(5,8,16,.95));display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
  .asl-space-img img{width:100%;height:100%;object-fit:cover;display:block}
  .asl-space-fallback{font-size:4rem;filter:drop-shadow(0 0 16px rgba(0,212,255,.5));position:absolute}
  .asl-space-copy h3{font-family:'Orbitron',monospace;color:#00d4ff;letter-spacing:1px;margin:0 0 8px;font-size:.95rem}
  .asl-space-copy p{color:#b0cce0;font-size:.82rem;line-height:1.55;margin:.45rem 0}
  .asl-factgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:7px;margin:10px 0}
  .asl-fact{background:#020810;border:1px solid #0d2040;border-radius:6px;padding:7px 9px;font-family:'Share Tech Mono',monospace;font-size:.66rem;color:#5a7a9a}
  .asl-fact strong{display:block;color:#00d4ff;font-family:'Orbitron',monospace;font-size:.54rem;letter-spacing:1px;margin-bottom:3px;text-transform:uppercase}
  .asl-learn-card{background:rgba(0,212,255,.04);border:1px solid rgba(0,212,255,.22);border-left:3px solid #00d4ff;border-radius:7px;padding:10px;margin:8px 0}
  .asl-learn-card.amber{border-color:rgba(255,200,64,.38);border-left-color:#ffc840;background:rgba(255,200,64,.05)}
  .asl-learn-card.green{border-color:rgba(0,255,136,.28);border-left-color:#00ff88;background:rgba(0,255,136,.04)}
  .asl-learn-card h4{margin:0 0 5px;font-family:'Orbitron',monospace;font-size:.62rem;letter-spacing:1px;color:#00d4ff;text-transform:uppercase}
  .asl-learn-card.amber h4{color:#ffc840}.asl-learn-card.green h4{color:#00ff88}
  .asl-learn-card p{margin:0;color:#8aaccc;font-size:.74rem;line-height:1.5}
  @media(max-width:760px){.asl-space-detail{grid-template-columns:1fr}.asl-space-img{min-height:150px}}

  /* ── Real system link status indicator ── */
  .asl-station-live { 
    display:flex; align-items:center; gap:6px; margin-bottom:8px;
    font-family:'Share Tech Mono',monospace; font-size:.65rem; color:#5a7a9a;
  }
  .asl-station-dot {
    width:8px; height:8px; border-radius:50%; background:#1a3050;
    flex-shrink:0; transition:background .3s;
  }
  .asl-station-dot.online  { background:#00ff88; box-shadow:0 0 8px rgba(0,255,136,.6); }
  .asl-station-dot.offline { background:#ff3355; }
  .asl-station-dot.stale   { background:#ffc840; }

  /* ── Mode bar active state colours ── */
  #mode-build.on { color:#ffc840; border-color:#ffc840; box-shadow:0 0 12px rgba(255,200,64,.2); }
  #mode-real.on  { color:#00ff88; border-color:#00ff88; box-shadow:0 0 12px rgba(0,255,136,.2); }

  /* ── Mission strip first-completion animation ── */
  @keyframes asl-strip-in { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }
  .asl-mission-strip[style*="grid"] { animation: asl-strip-in .35s ease; }
  
  /* AwareSTEM hero logo */
.asl-hero-logo {
  position: relative;
  overflow: hidden;
  text-align: center;
}

.asl-logo-wrap {
  width: min(100%, 420px);
  margin: 0 auto 1rem auto;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0, 212, 255, 0.28);
  box-shadow:
    0 0 22px rgba(168, 85, 247, 0.28),
    0 0 38px rgba(0, 212, 255, 0.18);
  background: #020810;
}

.asl-stem-logo {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 700px) {
  .asl-logo-wrap {
    width: min(100%, 300px);
    border-radius: 14px;
    margin-bottom: 0.9rem;
  }

  .asl-hero h1 {
    font-size: 1.25rem;
  }
}