:root {
  --paper: #f4f0e8;
  --paper-deep: #ebe4d8;
  --ink: #18201e;
  --muted: #6e756f;
  --line: #d9d1c4;
  --card: #fbf9f4;
  --orange: #e8612c;
  --orange-dark: #b9421c;
  --green: #2c7a5a;
  --lime: #b7e36e;
  --terminal: #111817;
  --terminal-soft: #1c2523;
  --terminal-line: #2c3734;
  --shadow: 0 18px 50px rgba(44, 37, 26, 0.09);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "DM Sans", system-ui, sans-serif;
  min-width: 320px;
}

button, input { font: inherit; }
button { color: inherit; }

.app-shell { min-height: 100vh; display: flex; }

.sidebar {
  position: fixed;
  z-index: 30;
  inset: 0 auto 0 0;
  width: 276px;
  display: flex;
  flex-direction: column;
  padding: 28px 20px 18px;
  color: #f8f5ec;
  background: #18201e;
  border-right: 1px solid #2d3734;
}

.brand-row { display: flex; align-items: center; gap: 12px; padding: 0 6px 24px; }
.brand-row strong { font: 800 19px/1 "Manrope", sans-serif; display: block; letter-spacing: -0.03em; }
.brand-row small { display: block; margin-top: 5px; color: #96a19d; font-size: 11px; }
.brand-mark { width: 35px; height: 35px; position: relative; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 3px; padding: 7px; background: var(--orange); border-radius: 9px 9px 9px 2px; }
.brand-mark span { display: block; background: #fff8ef; border-radius: 2px 2px 0 0; }
.brand-mark span:nth-child(1) { height: 8px; }.brand-mark span:nth-child(2) { height: 16px; }.brand-mark span:nth-child(3) { height: 12px; }

.progress-card { padding: 15px 16px; margin-bottom: 21px; background: #222c29; border: 1px solid #34403c; border-radius: 11px; }
.progress-label { display: flex; justify-content: space-between; align-items: center; font-size: 10px; letter-spacing: 0.11em; color: #98a49f; font-weight: 700; }
.progress-label b { color: var(--lime); font-size: 11px; }
.progress-track { height: 5px; margin: 11px 0 8px; overflow: hidden; border-radius: 5px; background: #3b4642; }
.progress-track div { width: 0; height: 100%; background: var(--lime); border-radius: inherit; transition: width .35s ease; }
.progress-card p { margin: 0; color: #c2cbc7; font-size: 11px; }

.lesson-nav { flex: 1; overflow-y: auto; padding-right: 3px; scrollbar-width: thin; scrollbar-color: #45514d transparent; }
.chapter { margin-bottom: 19px; }
.chapter-title { padding: 0 10px 8px; color: #76817d; font-size: 9px; letter-spacing: .14em; font-weight: 700; }
.lesson-link { width: 100%; border: 0; padding: 9px 10px; display: grid; grid-template-columns: 24px 1fr auto; gap: 8px; align-items: center; text-align: left; border-radius: 7px; color: #aab4b0; background: transparent; cursor: pointer; transition: .15s ease; }
.lesson-link:hover:not(:disabled) { color: white; background: #222c29; }
.lesson-link.active { color: white; background: #2a3532; box-shadow: inset 3px 0 var(--orange); }
.lesson-link:disabled { cursor: not-allowed; opacity: .45; }
.lesson-index { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #53605c; border-radius: 50%; font-size: 9px; font-weight: 700; }
.lesson-link.active .lesson-index { color: #1e2623; background: var(--lime); border-color: var(--lime); }
.lesson-link.complete .lesson-index { color: white; background: var(--green); border-color: var(--green); }
.lesson-name { font-size: 12px; font-weight: 500; }
.lesson-status { font-size: 10px; color: var(--lime); }

.sidebar-footer { padding-top: 12px; border-top: 1px solid #303a37; }
.plain-button { width: 100%; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; padding: 8px 9px; color: #aeb7b3; border: 0; background: transparent; text-align: left; cursor: pointer; font-size: 11px; border-radius: 6px; }
.plain-button:hover { color: white; background: #222c29; }
.button-icon { font-size: 16px; }.keycap, kbd { padding: 2px 5px; border: 1px solid currentColor; border-radius: 4px; font: 500 9px "DM Mono", monospace; opacity: .7; }
.danger-subtle:hover { color: #ffb3a0; }

.workspace { width: calc(100% - 276px); margin-left: 276px; min-height: 100vh; }
.topbar { height: 72px; padding: 0 34px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.topbar-left, .topbar-right { display: flex; align-items: center; gap: 15px; }
.eyebrow { color: #8c8f89; font-size: 9px; letter-spacing: .14em; font-weight: 800; }
.environment { display: flex; align-items: center; gap: 7px; font: 500 11px "DM Mono", monospace; }
.environment i, .live-badge i { width: 7px; height: 7px; display: inline-block; background: #48a575; border-radius: 50%; box-shadow: 0 0 0 4px rgba(72,165,117,.13); }
.streak { color: var(--muted); font-size: 11px; }.streak b { color: var(--ink); }
.rank-pill { display: flex; align-items: center; gap: 8px; padding-left: 14px; border-left: 1px solid var(--line); }
.rank-pill > span { width: 32px; height: 32px; display: grid; place-items: center; color: white; background: var(--orange); border-radius: 8px 8px 8px 2px; font: 700 10px "DM Mono", monospace; }
.rank-pill small, .rank-pill b { display: block; }.rank-pill small { color: #92958f; font-size: 8px; letter-spacing: .12em; }.rank-pill b { font-size: 11px; margin-top: 2px; }

.content-grid { max-width: 1450px; margin: 0 auto; padding: 42px 38px 54px; display: grid; grid-template-columns: minmax(360px, .86fr) minmax(500px, 1.14fr); gap: 42px; }
.lesson-column { min-width: 0; }
.mission-kicker { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; color: var(--orange); font-size: 10px; letter-spacing: .15em; font-weight: 800; }
.difficulty { display: flex; gap: 3px; }.difficulty i { display: block; width: 18px; height: 3px; background: #d9d2c7; }.difficulty i.on { background: var(--orange); }
h1 { max-width: 600px; margin: 0; font: 800 clamp(38px, 4.1vw, 64px)/.98 "Manrope", sans-serif; letter-spacing: -.055em; }
.lesson-lede { max-width: 570px; margin: 19px 0 26px; color: #626963; font-size: 15px; line-height: 1.65; }

.briefing-card { position: relative; padding: 20px 21px 18px; background: var(--card); border: 1px solid var(--line); border-left: 3px solid var(--orange); border-radius: 4px 12px 12px 4px; box-shadow: var(--shadow); }
.briefing-header { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; }
.briefing-icon { width: 29px; height: 29px; display: grid; place-items: center; color: var(--orange); border: 1px solid #e6b6a1; border-radius: 50%; font-weight: 700; }
.briefing-header small, .briefing-header strong { display: block; }.briefing-header small { color: #a05d43; font-size: 8px; letter-spacing: .13em; font-weight: 800; }.briefing-header strong { margin-top: 3px; font-size: 14px; }
.briefing-card > p { margin: 0; color: #616761; font-size: 12px; line-height: 1.6; }
.concept-row { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 6px; }
.concept-tag { padding: 5px 8px; color: #59615d; background: #eee9e0; border-radius: 5px; font: 500 9px "DM Mono", monospace; }

.lesson-actions { display: flex; justify-content: space-between; gap: 10px; margin: 16px 0; }
.hint-button, .next-button { padding: 10px 14px; border-radius: 7px; cursor: pointer; font-size: 11px; font-weight: 700; }
.hint-button { border: 1px solid var(--line); background: transparent; }.hint-button:hover { background: var(--card); }.hint-button span { color: var(--orange); }
.next-button { color: white; border: 1px solid var(--orange); background: var(--orange); }.next-button:hover { background: var(--orange-dark); }
.hidden { display: none !important; }

.hint-panel { margin-bottom: 16px; padding: 13px 15px; background: #fff5d9; border: 1px solid #e9d594; border-radius: 8px; }
.hint-panel span { color: #9f7623; font-size: 8px; letter-spacing: .14em; font-weight: 800; }.hint-panel p { margin: 5px 0 0; color: #63593e; font-size: 11px; line-height: 1.5; }
.hint-panel code, .completion-panel code { font-family: "DM Mono", monospace; color: var(--ink); }
.completion-panel { margin-bottom: 16px; padding: 15px; display: flex; align-items: center; gap: 13px; color: #174b38; background: #e2f2e8; border: 1px solid #a9d4b9; border-radius: 9px; }
.completion-burst { flex: 0 0 auto; width: 36px; height: 36px; display: grid; place-items: center; color: white; background: var(--green); border-radius: 50%; font-weight: 800; }
.completion-panel small, .completion-panel strong { display: block; }.completion-panel small { font-size: 8px; letter-spacing: .13em; font-weight: 800; }.completion-panel strong { margin-top: 3px; font-size: 12px; }.completion-panel p { margin: 3px 0 0; color: #4c6d60; font-size: 10px; }

.cluster-section { margin-top: 29px; }
.section-heading, .queue-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 13px; }
.section-heading h2, .queue-header h2, .modal-header h2 { margin: 4px 0 0; font: 700 17px "Manrope", sans-serif; letter-spacing: -.025em; }
.live-badge { display: flex; align-items: center; gap: 6px; padding: 5px 8px; color: var(--green); border: 1px solid #b9d5c5; border-radius: 12px; font: 700 8px "DM Mono", monospace; }
.live-badge i { width: 5px; height: 5px; box-shadow: none; }
.cluster-map { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.node-card { position: relative; min-height: 101px; padding: 12px 10px; overflow: hidden; background: var(--card); border: 1px solid var(--line); border-radius: 8px; transition: .25s ease; }
.node-card.busy { border-color: #e99a76; box-shadow: inset 0 -3px var(--orange); }.node-card.down { opacity: .55; background: #e2ded6; }
.node-top { display: flex; align-items: center; justify-content: space-between; }.node-top strong { font: 600 9px "DM Mono", monospace; }.node-state { width: 7px; height: 7px; background: #55a778; border-radius: 50%; }.busy .node-state { background: var(--orange); }.down .node-state { background: #8d8f8b; }
.node-card > span { display: block; margin-top: 8px; color: #90928d; font-size: 8px; letter-spacing: .08em; font-weight: 700; }
.cpu-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; margin-top: 5px; }.cpu-grid i { height: 9px; background: #dce4df; border-radius: 2px; }.cpu-grid i.used { background: var(--orange); }
.node-meta { display: flex; justify-content: space-between; margin-top: 7px; color: #858b86; font: 400 8px "DM Mono", monospace; }
.cluster-legend { display: flex; align-items: center; gap: 13px; margin-top: 10px; color: #858a85; font-size: 8px; }
.cluster-legend > span { display: flex; align-items: center; gap: 5px; }.cluster-legend i { width: 6px; height: 6px; border-radius: 50%; }.legend-free { background: #55a778; }.legend-busy { background: var(--orange); }.legend-down { background: #8d8f8b; }.cluster-clock { margin-left: auto; font-family: "DM Mono", monospace; }

.terminal-column { min-width: 0; }
.terminal-window { overflow: hidden; color: #d8dfdc; background: var(--terminal); border: 1px solid #303b38; border-radius: 12px; box-shadow: 0 25px 70px rgba(21, 29, 27, .2); }
.terminal-bar { height: 43px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 14px; color: #7e8a86; background: #202a28; border-bottom: 1px solid #34403c; font: 500 9px "DM Mono", monospace; }
.traffic-lights { display: flex; gap: 6px; }.traffic-lights i { width: 8px; height: 8px; border-radius: 50%; background: #55615d; }.traffic-lights i:first-child { background: #e36645; }.traffic-lights i:nth-child(2) { background: #d6a748; }.traffic-lights i:last-child { background: #56a675; }
.terminal-tools { text-align: right; }.terminal-tools button { color: #7e8a86; border: 0; background: none; cursor: pointer; font: 600 8px "DM Mono", monospace; }.terminal-tools button:hover { color: white; }
.terminal-body { height: 404px; padding: 17px 18px 20px; overflow-y: auto; outline: none; scrollbar-width: thin; scrollbar-color: #46534f transparent; font: 400 11px/1.55 "DM Mono", monospace; }
.terminal-welcome { margin-bottom: 17px; padding-bottom: 13px; border-bottom: 1px dashed #34403c; }.terminal-welcome span { display: block; color: var(--lime); }.terminal-welcome small { color: #74807c; font-size: 9px; }.terminal-welcome b { color: #c8d1cd; }
.terminal-entry { margin-bottom: 13px; }.terminal-command { display: flex; flex-wrap: wrap; }.terminal-command .prompt, .command-line label span { color: #9ed579; }.terminal-command .dir, .command-line label b { color: #6da7d9; }.terminal-command .typed { margin-left: 7px; color: #f0f3f1; }
.terminal-result { margin-top: 5px; white-space: pre-wrap; color: #aeb9b5; }.terminal-result.success { color: #b9e18b; }.terminal-result.error { color: #ff8d78; }.terminal-result.info { color: #8cbfe9; }.terminal-result .dim { color: #697672; }.terminal-result .orange { color: #f58b5f; }
.command-line { display: flex; align-items: center; gap: 7px; }.command-line label { flex: 0 0 auto; white-space: nowrap; }.command-line input { width: 100%; padding: 0; color: #f2f4f3; caret-color: var(--lime); border: 0; outline: 0; background: transparent; font: inherit; }
.command-line button { flex: 0 0 auto; width: 24px; height: 22px; padding: 0; color: #90a29b; border: 1px solid #3b4945; background: #212c29; border-radius: 4px; cursor: pointer; font: 500 11px "DM Mono", monospace; }.command-line button:hover, .command-line button:focus-visible { color: var(--lime); border-color: #6a806f; outline: none; }
.command-shelf { min-height: 48px; padding: 9px 13px; display: flex; align-items: center; gap: 8px; color: #6f7b77; background: #1b2422; border-top: 1px solid var(--terminal-line); font: 500 8px "DM Mono", monospace; }
.command-shelf > span { color: #8c9894; font-weight: 700; }.command-shelf > div { display: flex; gap: 5px; flex-wrap: wrap; }.suggestion { padding: 5px 8px; color: #b5c0bc; border: 1px solid #3c4945; background: #232e2b; border-radius: 4px; cursor: pointer; font: 500 9px "DM Mono", monospace; }.suggestion:hover { color: white; border-color: #778780; }.command-shelf small { margin-left: auto; white-space: nowrap; }

.queue-panel { margin-top: 25px; padding: 20px; background: var(--card); border: 1px solid var(--line); border-radius: 10px; }
.queue-count { padding: 5px 8px; color: #777e79; background: #ede8de; border-radius: 4px; font: 500 8px "DM Mono", monospace; }
.queue-table-wrap { position: relative; min-height: 112px; }
table { width: 100%; border-collapse: collapse; font: 400 9px "DM Mono", monospace; } th { padding: 8px 5px; color: #969992; border-bottom: 1px solid var(--line); text-align: left; font-size: 7px; letter-spacing: .1em; } td { padding: 10px 5px; border-bottom: 1px solid #e5dfd5; }.job-name { font-family: "DM Sans", sans-serif; font-weight: 600; }.state-pill { display: inline-flex; align-items: center; gap: 4px; padding: 3px 5px; border-radius: 4px; font-size: 7px; font-weight: 700; }.state-pill::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }.state-running { color: #b14a22; background: #fae1d4; }.state-pending { color: #9a7521; background: #f5eacb; }.state-completed { color: #277153; background: #dceee3; }.state-failed, .state-cancelled { color: #a13e3e; background: #f4dede; }
.empty-queue { padding-top: 15px; text-align: center; color: #8a8f89; }.empty-icon { width: 29px; height: 29px; margin: 0 auto 7px; display: grid; place-items: center; color: #9c9e99; border: 1px dashed #c5c0b6; border-radius: 50%; }.empty-queue strong { display: block; color: #555c57; font-size: 10px; }.empty-queue p { margin: 4px 0 0; font-size: 9px; }

.icon-button { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); background: transparent; border-radius: 7px; cursor: pointer; }.menu-button, .mobile-close { display: none; }
.cheatsheet-modal { width: min(720px, calc(100% - 30px)); padding: 0; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 30px 100px rgba(20, 27, 25, .35); }.cheatsheet-modal::backdrop { background: rgba(14, 20, 18, .7); }
.modal-header { padding: 22px 24px 15px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }.cheatsheet-modal > p { margin: 17px 24px; color: var(--muted); font-size: 12px; }.cheatsheet-grid { padding: 0 24px 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.cheat-row { display: flex; gap: 10px; padding: 11px; background: var(--card); border: 1px solid var(--line); border-radius: 7px; }.cheat-row code { flex: 0 0 80px; color: var(--orange-dark); font: 500 10px "DM Mono", monospace; }.cheat-row span { color: #666d67; font-size: 10px; }.modal-footer { padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; background: var(--paper-deep); border-radius: 0 0 14px 14px; font-size: 10px; }.modal-footer button { padding: 8px 12px; color: white; background: var(--ink); border: 0; border-radius: 6px; cursor: pointer; }
.toast { position: fixed; z-index: 50; right: 24px; bottom: 24px; max-width: 320px; padding: 12px 15px; color: white; background: #17211e; border: 1px solid #3e4d48; border-radius: 8px; box-shadow: var(--shadow); transform: translateY(20px); opacity: 0; pointer-events: none; transition: .2s ease; font-size: 11px; }.toast.show { transform: translateY(0); opacity: 1; }

@media (max-width: 1280px) {
  .content-grid { grid-template-columns: 1fr; max-width: 820px; }
  .cluster-map { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 760px) {
  .sidebar { transform: translateX(-100%); transition: transform .25s ease; box-shadow: 20px 0 60px rgba(0,0,0,.25); }.sidebar.open { transform: translateX(0); }
  .workspace { width: 100%; margin-left: 0; }.menu-button, .mobile-close { display: grid; }.mobile-close { margin-left: auto; color: white; border-color: #43504c; }
  .topbar { height: 62px; padding: 0 16px; }.topbar-left .eyebrow, .streak { display: none; }
  .content-grid { padding: 29px 17px 40px; gap: 30px; }.lesson-column h1 { font-size: 43px; }.cluster-map { grid-template-columns: 1fr 1fr; }
  .terminal-body { height: 360px; }.command-shelf small { display: none; }.command-shelf { align-items: flex-start; }.command-shelf > span { padding-top: 6px; }
  .queue-panel { padding: 15px 10px; } th:nth-child(4), td:nth-child(4) { display: none; }
  .cheatsheet-grid { grid-template-columns: 1fr; }.modal-footer span { display: none; }
}

@media (max-width: 420px) {
  .rank-pill > div { display: none; }.rank-pill { padding-left: 9px; }.content-grid { padding-inline: 13px; }.lesson-column h1 { font-size: 38px; }
  .terminal-bar { grid-template-columns: 1fr auto; }.terminal-bar > span { display: none; }.terminal-tools { grid-column: 2; }.terminal-body { padding-inline: 12px; }
}

/* Mastery game loop */

.player-hud { min-width: 142px; display: flex; align-items: center; gap: 8px; }
.player-hud.compact { min-width: 116px; padding-left: 14px; border-left: 1px solid var(--line); }
.player-level { width: 31px; height: 31px; flex: 0 0 auto; display: grid; place-items: center; color: var(--ink); background: var(--lime); border-radius: 8px 8px 8px 2px; font: 800 8px "DM Mono", monospace; }
.player-hud small, .player-hud b { display: block; }.player-hud small { color: #8b918b; font: 700 6px "DM Mono", monospace; letter-spacing: .08em; }.player-hud b { margin-top: 2px; color: var(--ink); font: 600 8px "DM Mono", monospace; }
.player-hud > div > i { width: 75px; height: 3px; margin-top: 4px; display: block; overflow: hidden; background: #d8d3ca; border-radius: 3px; }.player-hud > div > i em { display: block; height: 100%; background: var(--orange); border-radius: inherit; transition: width .5s ease; }
.topbar .player-hud { padding-left: 13px; border-left: 1px solid var(--line); }.topbar .player-level { background: var(--orange); color: white; }.topbar .player-hud b { color: var(--ink); }

.daily-dispatch { max-width: 1286px; min-height: 148px; margin: 74px auto 0; padding: 22px 24px; display: grid; grid-template-columns: 110px 1fr 90px 170px; gap: 24px; align-items: center; color: #edf2ef; background: var(--ink); border: 1px solid #34413d; border-radius: 13px 13px 13px 4px; box-shadow: 0 22px 50px rgba(23,32,29,.12); }
.dispatch-art { position: relative; width: 88px; height: 88px; display: grid; place-items: center; overflow: hidden; color: var(--ink); background: var(--lime); border-radius: 10px 10px 10px 2px; }.dispatch-art > span { position: relative; z-index: 2; font: 800 34px "Manrope", sans-serif; }.dispatch-art i { position: absolute; width: 60px; height: 1px; background: rgba(23,32,29,.22); transform: rotate(-32deg); }.dispatch-art i:nth-child(2) { top: 22px; }.dispatch-art i:nth-child(3) { top: 43px; }.dispatch-art i:nth-child(4) { top: 64px; }
.dispatch-copy .section-label { color: var(--lime); }.dispatch-copy h2 { margin: 7px 0 5px; font: 700 20px "Manrope", sans-serif; letter-spacing: -.035em; }.dispatch-copy p { margin: 0; max-width: 600px; color: #99a69f; font-size: 9px; line-height: 1.55; }
.dispatch-reward { text-align: center; border-left: 1px solid #3b4743; border-right: 1px solid #3b4743; }.dispatch-reward span, .dispatch-reward small { display: block; }.dispatch-reward span { color: var(--lime); font: 700 23px "DM Mono", monospace; }.dispatch-reward small { margin-top: 4px; color: #78857f; font: 600 6px "DM Mono", monospace; letter-spacing: .1em; }
.dispatch-button { padding: 12px 13px; display: flex; justify-content: space-between; color: var(--ink); background: var(--lime); border: 0; border-radius: 6px; cursor: pointer; font-size: 9px; font-weight: 800; }.dispatch-button:hover { background: #deff93; }.dispatch-button span { font-size: 14px; }.daily-dispatch.complete .dispatch-art { color: white; background: var(--green); }.daily-dispatch.complete .dispatch-button { background: #d9e4dd; }

.worlds-section { max-width: 1370px; margin: 0 auto; padding: 92px 42px 28px; }
.worlds-heading { margin-bottom: 34px; display: grid; grid-template-columns: 1fr 400px; column-gap: 70px; align-items: end; }.worlds-heading .section-label { grid-column: 1 / -1; }.worlds-heading h2 { margin: 10px 0 0; font: 800 clamp(38px,4.2vw,56px)/.98 "Manrope", sans-serif; letter-spacing: -.06em; }.worlds-heading p { margin: 0; color: #656d66; font-size: 11px; line-height: 1.7; }
.worlds-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
.world-card { position: relative; min-height: 330px; padding: 21px; overflow: hidden; color: var(--ink); background: var(--card); border: 1px solid var(--line); border-radius: 10px; cursor: pointer; text-align: left; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }.world-card:hover { transform: translateY(-4px); border-color: var(--world-color); box-shadow: var(--shadow); }.world-card::after { content: ""; position: absolute; right: -28px; top: -28px; width: 100px; height: 100px; border: 18px solid color-mix(in srgb, var(--world-color) 18%, transparent); border-radius: 50%; }
.code-world { --world-color:#3d79ab; }.data-world { --world-color:#cc5b7d; }.cloud-world { --world-color:#6c57c7; }.systems-world { --world-color:#e16a36; }
.world-number { color: #a0a39d; font: 600 8px "DM Mono", monospace; }.world-glyph { width: 48px; height: 48px; margin: 38px 0 22px; display: grid; place-items: center; color: white; background: var(--world-color); border-radius: 10px 10px 10px 2px; font: 700 14px "DM Mono", monospace; }.world-card h3 { margin: 0 0 9px; font: 700 17px "Manrope", sans-serif; letter-spacing: -.025em; }.world-card p { min-height: 46px; margin: 0; color: #6d746e; font-size: 9px; line-height: 1.6; }.world-card > div:not(.world-glyph) { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 5px; }.world-card em { padding: 4px 6px; color: color-mix(in srgb, var(--world-color) 82%, #17201d); background: color-mix(in srgb, var(--world-color) 10%, white); border-radius: 4px; font: 600 7px "DM Mono", monospace; font-style: normal; }.world-card > b { position: absolute; left: 21px; bottom: 18px; color: var(--world-color); font-size: 8px; }
.course-filters { margin: -8px 0 23px; padding-bottom: 10px; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }.course-filters::-webkit-scrollbar { display: none; }.course-filters button { padding: 8px 11px; flex: 0 0 auto; color: #737a74; background: transparent; border: 1px solid var(--line); border-radius: 20px; cursor: pointer; font-size: 9px; font-weight: 600; }.course-filters button:hover { color: var(--ink); background: var(--card); }.course-filters button.active { color: white; background: var(--ink); border-color: var(--ink); }.course-filters span { margin-left: 5px; color: var(--lime); font: 600 7px "DM Mono", monospace; }

.sidebar-game-meta { margin-top: 11px; padding-top: 9px; display: flex; justify-content: space-between; color: #98a59f; border-top: 1px solid #39443f; font: 500 7px "DM Mono", monospace; }.sidebar-game-meta span:first-child { color: var(--lime); }
.sound-toggle { width: 29px; height: 29px; display: grid; place-items: center; color: #969d98; background: transparent; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; font: 700 13px "DM Mono", monospace; }.sound-toggle.on { color: var(--green); background: #e1eee6; border-color: #bdd7c6; }.sound-toggle:hover { color: var(--orange); }
.combo-pill { padding: 7px 8px; color: #a64b28; background: #f7e0d5; border: 1px solid #edbca8; border-radius: 5px; animation: comboPulse 1.6s ease-in-out infinite; font: 700 7px "DM Mono", monospace; }
@keyframes comboPulse { 50% { box-shadow: 0 0 0 4px rgba(237,99,53,.08); } }

.bonus-objectives { margin-top: 14px; padding-top: 13px; border-top: 1px dashed #d9d1c4; }.bonus-objectives > span { display: block; margin-bottom: 7px; color: #9b704d; font: 700 7px "DM Mono", monospace; letter-spacing: .12em; }.bonus-objectives > div { display: flex; flex-wrap: wrap; gap: 5px; }.bonus-objectives em { padding: 5px 7px; color: #51645b; background: #e6eee8; border-radius: 4px; font: 500 7px "DM Mono", monospace; font-style: normal; transition: .2s ease; }.bonus-objectives em b { color: var(--green); }.bonus-objectives em.missed { color: #9c8f89; background: #eee9e3; text-decoration: line-through; }.bonus-objectives em.missed b { color: #a99c95; }
.terminal-entry { animation: terminalIn .18s ease-out both; }
@keyframes terminalIn { from { opacity: 0; transform: translateY(3px); } }
.node-card.busy .node-state { animation: nodePulse 1s ease-in-out infinite; }
@keyframes nodePulse { 50% { box-shadow: 0 0 0 5px rgba(237,99,53,.15); } }

.reward-modal { width: min(480px, calc(100% - 26px)); max-height: calc(100vh - 20px); padding: 36px; overflow-x: hidden; overflow-y: auto; color: var(--ink); background: var(--paper); border: 1px solid #e6b79f; border-radius: 15px; box-shadow: 0 35px 110px rgba(12,18,16,.48); text-align: center; }.reward-modal::backdrop { background: rgba(12,18,16,.82); backdrop-filter: blur(3px); }.reward-close { z-index: 4; }.reward-confetti { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }.reward-confetti i { position: absolute; top: -20px; width: 7px; height: 13px; background: var(--orange); animation: confettiFall 1.4s ease-out both; }.reward-confetti i:nth-child(2n) { background: var(--lime); transform: rotate(24deg); }.reward-confetti i:nth-child(3n) { background: #79b8ff; border-radius: 50%; }.reward-confetti i:nth-child(1) { left: 7%; animation-delay: .05s; }.reward-confetti i:nth-child(2) { left: 15%; animation-delay: .22s; }.reward-confetti i:nth-child(3) { left: 25%; animation-delay: .12s; }.reward-confetti i:nth-child(4) { left: 34%; animation-delay: .31s; }.reward-confetti i:nth-child(5) { left: 43%; animation-delay: .02s; }.reward-confetti i:nth-child(6) { left: 52%; animation-delay: .19s; }.reward-confetti i:nth-child(7) { left: 61%; animation-delay: .26s; }.reward-confetti i:nth-child(8) { left: 68%; animation-delay: .07s; }.reward-confetti i:nth-child(9) { left: 76%; animation-delay: .33s; }.reward-confetti i:nth-child(10) { left: 85%; animation-delay: .15s; }.reward-confetti i:nth-child(11) { left: 92%; animation-delay: .28s; }.reward-confetti i:nth-child(12) { left: 48%; animation-delay: .38s; }
@keyframes confettiFall { 0% { opacity: 0; transform: translateY(-15px) rotate(0deg); } 15% { opacity: 1; } 100% { opacity: 0; transform: translateY(310px) rotate(480deg); } }
.reward-seal { position: relative; width: 72px; height: 72px; margin: 0 auto 18px; display: grid; place-items: center; color: white; background: var(--orange); border: 6px solid #f9d8c8; border-radius: 50%; box-shadow: 0 0 0 1px #e7ae94; animation: sealLand .45s cubic-bezier(.17,.84,.35,1.3) both; }.reward-seal span { font-size: 27px; font-weight: 800; }.reward-seal i { position: absolute; bottom: -10px; min-width: 87px; padding: 4px 7px; color: var(--ink); background: var(--lime); border: 2px solid var(--paper); border-radius: 4px; font: 800 6px "DM Mono", monospace; font-style: normal; letter-spacing: .06em; }
@keyframes sealLand { from { opacity: 0; transform: scale(.25) rotate(-18deg); } }
.reward-modal > h2 { margin: 8px 0 9px; font: 800 27px/1.06 "Manrope", sans-serif; letter-spacing: -.045em; }.reward-modal > p { margin: 0 auto; max-width: 380px; color: #687069; font-size: 10px; line-height: 1.55; }
.xp-award { position: relative; margin: 22px 0 12px; padding: 15px; color: white; background: var(--ink); border-radius: 9px; }.xp-award small, .xp-award strong { display: block; }.xp-award small { color: #8e9b95; font: 600 7px "DM Mono", monospace; letter-spacing: .12em; }.xp-award strong { margin-top: 3px; color: var(--lime); font: 800 28px "Manrope", sans-serif; letter-spacing: -.04em; }.xp-flight { position: absolute; right: 20px; top: 25px; color: var(--lime); opacity: 0; animation: xpFly 1.1s .35s ease-out both; font: 800 10px "DM Mono", monospace; }
@keyframes xpFly { 0% { opacity: 1; transform: translateY(0) scale(.8); } 100% { opacity: 0; transform: translateY(-48px) scale(1.4); } }
.reward-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; text-align: left; }.reward-breakdown span { padding: 8px 9px; display: flex; justify-content: space-between; color: #626a64; background: var(--card); border: 1px solid var(--line); border-radius: 5px; font-size: 8px; }.reward-breakdown b { font-weight: 600; }.reward-breakdown em { color: var(--green); font: 600 8px "DM Mono", monospace; font-style: normal; }
.achievement-unlock { margin-top: 10px; padding: 10px; display: flex; align-items: center; gap: 10px; color: #5e4825; background: #fff1c9; border: 1px solid #e8cf84; border-radius: 7px; text-align: left; animation: achievementIn .4s .45s both; }.achievement-unlock > span { width: 35px; height: 35px; display: grid; place-items: center; color: #6a4b13; background: #f5d675; border-radius: 50%; font: 800 8px "DM Mono", monospace; }.achievement-unlock small, .achievement-unlock strong { display: block; }.achievement-unlock small { color: #9a762c; font: 700 6px "DM Mono", monospace; letter-spacing: .11em; }.achievement-unlock strong { margin-top: 3px; font-size: 10px; }
@keyframes achievementIn { from { opacity: 0; transform: translateY(8px); } }
.reward-continue { margin-top: 13px; }.reward-footnote { display: block; margin-top: 9px; color: #999c96; font-size: 7px; }

@media (max-width: 1050px) {
  .player-hud.compact { display: none; }.daily-dispatch { margin-inline: 42px; grid-template-columns: 90px 1fr 80px 150px; }
  .worlds-grid { grid-template-columns: 1fr 1fr; }.world-card { min-height: 300px; }.worlds-heading { grid-template-columns: 1fr 330px; }
}

@media (max-width: 760px) {
  .daily-dispatch { margin: 45px 17px 0; padding: 18px; grid-template-columns: 62px 1fr; gap: 15px; }.dispatch-art { width: 60px; height: 60px; }.dispatch-copy h2 { font-size: 16px; }.dispatch-reward { padding: 10px 0; border: 0; border-top: 1px solid #3b4743; border-bottom: 1px solid #3b4743; }.dispatch-button { align-self: center; }
  .worlds-section { padding: 65px 17px 20px; }.worlds-heading { grid-template-columns: 1fr; gap: 15px; }.worlds-heading h2 { font-size: 40px; }.worlds-grid { grid-template-columns: 1fr 1fr; }.world-card { min-height: 300px; padding: 17px; }.world-card > b { left: 17px; }.world-glyph { margin-top: 27px; }
  .topbar .player-hud { display: none; }.combo-pill { display: none; }.sound-toggle { width: 27px; height: 27px; }.bonus-objectives > div { gap: 4px; }
}

@media (max-width: 420px) {
  .daily-dispatch { grid-template-columns: 1fr; }.dispatch-art { display: none; }.dispatch-reward { text-align: left; }.dispatch-reward span, .dispatch-reward small { display: inline; margin-right: 5px; }.reward-modal { padding: 30px 18px 24px; }.reward-breakdown { grid-template-columns: 1fr; }.reward-seal { width: 64px; height: 64px; }.xp-award { margin-top: 17px; }
  .worlds-grid { grid-template-columns: 1fr; }.world-card { min-height: 280px; }.world-card p { min-height: 0; }.course-filters { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition-duration: .01ms !important; } }

/* todo.academy platform foundation */

:root {
  --orange: #ed6335;
  --orange-dark: #bd4220;
  --lime: #c9f36a;
  --paper: #f5f1e9;
  --ink: #17201d;
}

a { color: inherit; text-decoration: none; }

.site-logo { display: inline-flex; align-items: center; gap: 9px; color: var(--ink); }
.site-logo > span:last-child { display: flex; align-items: baseline; font: 800 18px/1 "Manrope", sans-serif; letter-spacing: -.055em; }
.site-logo b { font: inherit; }.site-logo i { color: var(--orange); font: inherit; font-style: normal; }
.site-logo.inverse { color: #f8f5ec; }.site-logo.inverse i { color: var(--lime); }
.logo-check { width: 31px; height: 31px; display: grid; place-items: center; color: white; background: var(--orange); border-radius: 8px 8px 8px 2px; font: 800 15px "Manrope", sans-serif; }
.brand-row > a { display: block; }
.brand-link { display: inline-flex; }

.public-shell { min-height: 100vh; overflow: hidden; background: var(--paper); }
.public-header { height: 72px; max-width: 1440px; margin: 0 auto; padding: 0 42px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid var(--line); }
.public-header nav { display: flex; align-items: center; gap: 31px; }
.public-header nav a { position: relative; color: #6f756f; font-size: 11px; font-weight: 600; }
.public-header nav a:hover, .public-header nav a.active { color: var(--ink); }
.public-header nav a.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -27px; height: 2px; background: var(--orange); }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 18px; }
.browser-badge { display: flex; align-items: center; gap: 7px; color: #747a74; font: 500 9px "DM Mono", monospace; }
.browser-badge i { width: 6px; height: 6px; background: #50a977; border-radius: 50%; box-shadow: 0 0 0 4px rgba(80,169,119,.12); }
.small-cta { padding: 9px 13px; color: white; background: var(--ink); border-radius: 6px; font-size: 10px; font-weight: 700; }
.small-cta:hover { background: #303a36; }.small-cta span { color: var(--lime); margin-left: 6px; }

.home-hero { position: relative; max-width: 1370px; min-height: 650px; margin: 0 auto; padding: 80px 42px 75px; display: grid; grid-template-columns: .86fr 1.14fr; align-items: center; gap: 70px; }
.home-hero::before { content: ""; position: absolute; z-index: 0; top: 0; bottom: 0; left: calc(50% - 1px); width: 1px; background: rgba(216,208,196,.55); }
.hero-copy, .hero-lab { position: relative; z-index: 1; }
.section-label { color: #898d87; font-size: 9px; letter-spacing: .16em; font-weight: 800; }
.section-label i { display: inline-block; width: 7px; height: 7px; margin-right: 8px; background: var(--orange); border-radius: 50%; }
.hero-copy h1 { max-width: none; margin: 21px 0 24px; font-size: clamp(52px, 5.5vw, 80px); line-height: .94; letter-spacing: -.068em; }
.hero-copy h1 em { color: var(--orange); font-style: normal; }
.hero-copy > p { max-width: 550px; margin: 0; color: #606761; font-size: 16px; line-height: 1.7; }
.hero-actions { margin-top: 29px; display: flex; align-items: center; gap: 20px; }
.primary-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; padding: 13px 16px; color: white; background: var(--orange); border: 1px solid var(--orange); border-radius: 7px; cursor: pointer; font-size: 11px; font-weight: 700; box-shadow: 0 8px 20px rgba(237,99,53,.18); }
.primary-button:hover { background: var(--orange-dark); border-color: var(--orange-dark); }.primary-button span { font-size: 16px; }
.text-button { color: #626962; font-size: 11px; font-weight: 700; }.text-button:hover { color: var(--ink); }.text-button span { margin-left: 5px; color: var(--orange); }
.trust-row { display: flex; gap: 18px; margin-top: 34px; color: #757c76; font-size: 9px; }.trust-row span { display: flex; align-items: center; gap: 5px; }.trust-row i { color: var(--green); font-style: normal; font-weight: 800; }

.hero-lab { overflow: hidden; color: #d6dfda; background: var(--terminal); border: 1px solid #34413d; border-radius: 13px; box-shadow: 0 30px 80px rgba(23,32,29,.2); transform: rotate(.25deg); }
.lab-preview-bar { height: 43px; padding: 0 14px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #79847f; background: #202a27; border-bottom: 1px solid #34413d; font: 500 8px "DM Mono", monospace; }
.lab-preview-bar > span { display: flex; gap: 6px; }.lab-preview-bar > span i { width: 7px; height: 7px; background: #db6649; border-radius: 50%; }.lab-preview-bar > span i:nth-child(2) { background: #d0a448; }.lab-preview-bar > span i:nth-child(3) { background: #4c9d70; }
.lab-preview-bar b { font-weight: 500; }.lab-preview-bar em { justify-self: end; color: #8ecd70; font-style: normal; font-size: 7px; }
.lab-preview-body { min-height: 277px; display: grid; grid-template-columns: .78fr 1.22fr; }
.preview-mission { padding: 29px 24px; background: #19221f; border-right: 1px solid #303b37; }
.preview-mission small { color: #ef845d; font: 700 8px "DM Mono", monospace; letter-spacing: .12em; }.preview-mission strong { display: block; margin: 12px 0; color: white; font: 800 26px/.98 "Manrope", sans-serif; letter-spacing: -.045em; }.preview-mission > span { display: block; color: #87938e; font-size: 9px; line-height: 1.6; }
.preview-complete { margin-top: 22px; padding: 8px 9px; color: #bde58d; background: #26352e; border: 1px solid #3a5246; border-radius: 5px; font: 600 7px "DM Mono", monospace; }
.preview-terminal { padding: 35px 24px; color: #c0c9c5; font: 400 10px/1.75 "DM Mono", monospace; }.preview-terminal span { color: #a9d77c; }.preview-terminal b { color: #bce38f; font-weight: 400; }.preview-terminal em { color: #81b5dd; font-style: normal; }.terminal-cursor { display: inline-block; width: 6px; height: 12px; margin-left: 3px; vertical-align: -2px; background: var(--lime); animation: cursorBlink 1.1s step-end infinite; }
@keyframes cursorBlink { 50% { opacity: 0; } }
.preview-nodes { padding: 12px 14px; display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; background: #1c2522; border-top: 1px solid #303b37; }
.preview-nodes > span { position: relative; padding: 10px; display: grid; grid-template-columns: 7px 1fr; column-gap: 7px; background: #222d29; border: 1px solid #37433f; border-radius: 5px; }.preview-nodes i { width: 6px; height: 6px; margin-top: 2px; background: #52a477; border-radius: 50%; }.preview-nodes i.busy-dot { background: var(--orange); }.preview-nodes b { font: 500 8px "DM Mono", monospace; }.preview-nodes em { grid-column: 2; margin-top: 5px; color: #77847f; font: 400 7px "DM Mono", monospace; font-style: normal; }
.preview-caption { padding: 11px 16px; display: flex; justify-content: space-between; color: #78837e; background: #141c19; border-top: 1px solid #303b37; font-size: 8px; }.preview-caption b { color: #a8b3ae; font-weight: 600; }

.signal-strip { min-height: 68px; padding: 0 5vw; display: flex; align-items: center; justify-content: center; gap: 24px; color: #b7c0bc; background: var(--ink); font-size: 11px; }.signal-strip > span { margin-right: 15px; color: var(--lime); font: 600 8px "DM Mono", monospace; letter-spacing: .13em; }.signal-strip strong { color: #eef2ef; font-weight: 600; }.signal-strip i { color: #63706b; font-style: normal; }

.course-section, .method-section { max-width: 1370px; margin: 0 auto; padding: 90px 42px; }
.public-section-heading { margin-bottom: 37px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }.public-section-heading h2, .method-intro h2, .syllabus-heading h2 { margin: 9px 0 0; font: 800 clamp(35px, 4vw, 52px)/1 "Manrope", sans-serif; letter-spacing: -.055em; }.public-section-heading > p { max-width: 420px; margin: 0; color: #666d67; font-size: 12px; line-height: 1.65; }
.course-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.course-card { position: relative; min-height: 367px; padding: 21px; display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--line); border-radius: 10px; transition: transform .2s ease, box-shadow .2s ease; }
.course-card.available { border-top: 3px solid var(--course-accent); }.course-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }.course-card.planned { background: #f0ece4; }
.course-card-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 25px; }.course-icon { width: 40px; height: 40px; display: grid; place-items: center; color: white; background: var(--course-accent); border-radius: 9px 9px 9px 2px; font: 700 11px "DM Mono", monospace; }.course-icon.large { width: 61px; height: 61px; font-size: 15px; border-radius: 13px 13px 13px 3px; }
.course-status { padding: 5px 7px; color: #818680; background: #ebe6dc; border-radius: 4px; font: 600 7px "DM Mono", monospace; letter-spacing: .09em; }.available .course-status { color: #276f52; background: #dceee3; }
.course-category { color: #93968f; font-size: 8px; letter-spacing: .14em; font-weight: 800; }.course-card h3 { margin: 9px 0 1px; font: 800 27px "Manrope", sans-serif; letter-spacing: -.04em; }.course-card > strong { font-size: 11px; }.course-card > p { margin: 13px 0 19px; color: #6b726c; font-size: 10px; line-height: 1.55; }.course-meta { margin-top: auto; display: flex; justify-content: space-between; color: #858a84; font: 500 8px "DM Mono", monospace; }
.card-progress { height: 3px; margin-top: 13px; overflow: hidden; background: #e2ddd3; border-radius: 3px; }.card-progress i { display: block; height: 100%; background: var(--course-accent); }
.course-card-link { width: 100%; margin-top: 14px; padding-top: 13px; display: flex; justify-content: space-between; color: var(--ink); border: 0; border-top: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; font-size: 10px; font-weight: 700; }.course-card-link span { color: var(--course-accent); font-size: 14px; }.notify-link { color: #727873; }

.method-section { margin-bottom: 80px; display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; background: #eee9e0; border-radius: 18px; }
.method-intro p { max-width: 420px; color: #676e68; font-size: 12px; line-height: 1.7; }.method-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }.method-steps article { position: relative; padding: 19px; min-height: 270px; background: var(--card); border: 1px solid var(--line); border-radius: 9px; }.method-steps article > span { position: absolute; right: 15px; top: 14px; color: #b1b2ad; font: 600 8px "DM Mono", monospace; }.method-icon { width: 42px; height: 42px; margin: 35px 0 24px; display: grid; place-items: center; color: var(--orange); background: #f8e0d6; border-radius: 9px 9px 9px 2px; font: 700 14px "DM Mono", monospace; }.method-steps h3 { margin: 0 0 11px; font: 700 14px "Manrope", sans-serif; }.method-steps p { margin: 0; color: #707670; font-size: 9px; line-height: 1.65; }

.site-footer { padding: 41px max(42px, calc((100% - 1286px)/2)); display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; color: #99a39f; background: #131b18; }.site-footer > div:first-child p { margin: 10px 0 0; font-size: 9px; }.site-footer small { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid #2c3733; font-size: 8px; }.footer-principles { display: flex; gap: 20px; color: #bac3bf; font-size: 9px; }.footer-principles span::first-letter { color: var(--lime); }

/* Course detail */

.course-breadcrumb { max-width: 1286px; margin: 24px auto 0; padding: 0 42px; display: flex; gap: 9px; color: #969992; font-size: 9px; }.course-breadcrumb a:hover { color: var(--orange); }.course-breadcrumb b { color: #59605b; }
.course-hero { max-width: 1286px; margin: 0 auto; padding: 67px 42px 73px; display: grid; grid-template-columns: 1fr 355px; gap: 85px; align-items: center; }
.course-title-row { display: flex; align-items: center; gap: 18px; }.course-title-row h1 { margin: 2px 0 0; font-size: 56px; }.course-hero-main > h2 { max-width: 700px; margin: 24px 0 16px; font: 800 clamp(38px, 4.2vw, 61px)/.99 "Manrope", sans-serif; letter-spacing: -.06em; }.course-hero-main > p { max-width: 650px; color: #626963; font-size: 14px; line-height: 1.7; }
.course-hero-meta { margin-top: 25px; display: flex; gap: 28px; }.course-hero-meta span { display: flex; align-items: baseline; gap: 6px; color: #888d87; font-size: 9px; }.course-hero-meta b { color: var(--ink); font: 700 13px "DM Mono", monospace; }.free-note { display: flex; align-items: center; gap: 6px; color: #6e756f; font-size: 9px; }.free-note i { color: var(--green); font-style: normal; font-weight: 800; }
.course-enroll-card { padding: 24px; background: var(--ink); color: #eef2ef; border-radius: 12px 12px 12px 3px; box-shadow: 0 25px 60px rgba(23,32,29,.17); }.enroll-card-label { color: var(--lime); font: 600 8px "DM Mono", monospace; letter-spacing: .12em; }.course-enroll-card h3 { margin: 16px 0 9px; font: 700 20px/1.2 "Manrope", sans-serif; letter-spacing: -.03em; }.course-enroll-card p { margin: 0; color: #a7b1ad; font-size: 10px; line-height: 1.6; }.enroll-progress { margin-top: 25px; display: flex; justify-content: space-between; align-items: baseline; color: #97a29d; font-size: 9px; }.enroll-progress b { color: white; font: 600 15px "DM Mono", monospace; }.enroll-progress em { color: var(--lime); font: 500 9px "DM Mono", monospace; font-style: normal; }.public-track { margin: 8px 0 18px; background: #3b4642; }.public-track i { display: block; height: 100%; background: var(--lime); border-radius: inherit; }
.dark-button { width: 100%; padding: 12px 13px; display: flex; justify-content: space-between; color: var(--ink); background: var(--lime); border: 0; border-radius: 6px; cursor: pointer; font-size: 10px; font-weight: 800; }.dark-button:hover { background: #dbff8b; }.course-enroll-card > small { display: block; margin-top: 12px; color: #71807a; font-size: 7px; text-align: center; }
.outcomes-section { padding: 40px max(42px, calc((100% - 1202px)/2)); color: white; background: var(--ink); }.outcomes-section > div { margin-top: 22px; display: grid; grid-template-columns: repeat(4,1fr); }.outcomes-section article { min-height: 84px; padding: 0 22px; border-left: 1px solid #3a4541; }.outcomes-section article:first-child { padding-left: 0; border-left: 0; }.outcomes-section article span { display: block; color: var(--lime); font: 500 8px "DM Mono", monospace; }.outcomes-section article strong { display: block; max-width: 190px; margin-top: 13px; font-size: 12px; line-height: 1.4; }
.syllabus-section { max-width: 1286px; margin: 0 auto; padding: 85px 42px 100px; }.syllabus-heading { margin-bottom: 35px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }.syllabus-heading p { max-width: 410px; color: #686f69; font-size: 11px; line-height: 1.65; }.chapter-list { border-top: 1px solid var(--line); }.chapter-row { min-height: 127px; padding: 23px 10px; display: grid; grid-template-columns: 55px 1.1fr 1fr 80px; gap: 18px; align-items: center; border-bottom: 1px solid var(--line); }.chapter-row.locked { color: #8d918c; }.chapter-number { color: var(--course-accent); font: 600 10px "DM Mono", monospace; }.chapter-copy > div { display: flex; align-items: center; gap: 10px; }.chapter-copy h3 { margin: 0; font: 700 15px "Manrope", sans-serif; }.chapter-copy p { margin: 6px 0 0; color: #777d77; font-size: 9px; }.free-pill { padding: 4px 6px; color: #347557; background: #dbeee3; border-radius: 4px; font: 700 7px "DM Mono", monospace; }.chapter-missions { display: flex; flex-direction: column; gap: 7px; color: #737a74; font-size: 9px; }.chapter-missions span.done { color: var(--green); }.chapter-state { justify-self: end; text-align: right; }.chapter-state b, .chapter-state small { display: block; }.chapter-state b { font: 600 13px "DM Mono", monospace; }.chapter-state small { margin-top: 4px; color: #999c96; font-size: 7px; }

/* Enrollment, browser lab refinements */

.enroll-modal { width: min(640px, calc(100% - 28px)); max-height: calc(100vh - 24px); overflow-y: auto; padding: 34px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 35px 100px rgba(13,19,17,.42); text-align: center; }.enroll-modal::backdrop { background: rgba(12,18,16,.77); }.modal-x { position: absolute; top: 13px; right: 13px; width: 30px; height: 30px; color: #777e78; background: transparent; border: 1px solid var(--line); border-radius: 6px; cursor: pointer; }.enroll-symbol { width: 48px; height: 48px; margin: 0 auto 20px; display: grid; place-items: center; color: white; background: var(--orange); border-radius: 12px 12px 12px 3px; font-weight: 800; }.enroll-modal h2 { margin: 9px 0 13px; font: 800 27px/1.08 "Manrope", sans-serif; letter-spacing: -.045em; }.enroll-modal > p { margin: 0 auto; max-width: 470px; color: #656c66; font-size: 11px; line-height: 1.65; }.enroll-benefits { margin: 22px 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; text-align: left; }.enroll-benefits span { padding: 10px 11px; color: #48504a; background: var(--card); border: 1px solid var(--line); border-radius: 6px; font-size: 10px; }.enroll-benefits span::first-letter { color: var(--green); }.full-button { width: 100%; }.enroll-modal > small { display: block; margin-top: 11px; color: #8d918c; font-size: 8px; }
.checkout-plans { margin: 0 0 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; text-align: left; }
.checkout-plan { min-height: 184px; padding: 13px 12px; display: flex; flex-direction: column; align-items: flex-start; color: var(--ink); background: #fbfaf5; border: 1px solid var(--line); border-radius: 9px 9px 9px 2px; cursor: pointer; text-align: left; transition: .18s ease; }
.checkout-plan:hover { transform: translateY(-2px); border-color: #d5b49e; box-shadow: 0 12px 28px rgba(23,32,29,.08); }
.checkout-plan.selected { background: #17201d; color: #f4f7f2; border-color: #17201d; box-shadow: 0 18px 38px rgba(23,32,29,.16); }
.checkout-plan.needs-url { opacity: .62; }
.checkout-plan span { color: var(--orange); font: 800 7px "DM Mono", monospace; letter-spacing: .1em; }
.checkout-plan.selected span { color: var(--lime); }
.checkout-plan strong { margin-top: 8px; min-height: 34px; font: 800 13px/1.22 "Manrope", sans-serif; letter-spacing: -.035em; }
.checkout-plan b { margin-top: 10px; display: block; font: 800 20px "Manrope", sans-serif; letter-spacing: -.045em; }
.checkout-plan b small { display: block; margin-top: 1px; color: #8b918b; font: 600 7px "DM Mono", monospace; letter-spacing: .05em; text-transform: uppercase; }
.checkout-plan.selected b small { color: #9ba8a1; }
.checkout-plan p { margin: 9px 0 0; color: #687069; font-size: 8px; line-height: 1.45; }
.checkout-plan.selected p { color: #aeb8b3; }
.checkout-plan em { margin-top: auto; padding-top: 11px; color: #347557; font: 700 7px "DM Mono", monospace; font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.checkout-plan.selected em { color: var(--lime); }
.back-to-course { margin: -7px 6px 17px; padding: 9px 8px; display: flex; gap: 8px; color: #899590; border-bottom: 1px solid #303a37; font-size: 10px; }.back-to-course:hover { color: white; }
.chapter-title em { margin-left: 5px; padding: 2px 4px; color: var(--lime); background: #344039; border-radius: 3px; font: 600 7px "DM Mono", monospace; font-style: normal; }
.lesson-link[data-locked] { opacity: .46; cursor: pointer; }.lesson-link[data-locked]:hover { color: #b8c0bd; background: #222c29; }
.access-badge { padding: 7px 9px; color: #9b4a2d; background: #f8ded3; border: 1px solid #eebba7; border-radius: 5px; cursor: pointer; font: 700 8px "DM Mono", monospace; }.access-badge span { margin-left: 4px; }.access-badge.enrolled { color: #287052; background: #dceee3; border-color: #b5d7c1; cursor: default; }
.local-sim-note { margin-top: 13px; padding: 12px 14px; display: flex; gap: 10px; color: #5f6a65; background: #e9eee8; border: 1px solid #d1dbd2; border-radius: 7px; }.local-sim-note > span { color: var(--green); }.local-sim-note b { display: block; font-size: 9px; }.local-sim-note p { margin: 3px 0 0; color: #77817b; font-size: 8px; }
.terminal-result.error-evidence { color: #ffb47d; }
.next-button { text-decoration: none; }

@media (max-width: 1050px) {
  .public-header { grid-template-columns: 1fr auto; }.public-header nav { display: none; }
  .home-hero { min-height: auto; grid-template-columns: 1fr; gap: 50px; }.home-hero::before { display: none; }.hero-copy { max-width: 700px; }.hero-lab { width: 100%; max-width: 760px; }
  .course-grid { grid-template-columns: 1fr 1fr; }.method-section { grid-template-columns: 1fr; gap: 40px; }.course-hero { grid-template-columns: 1fr 310px; gap: 45px; }.chapter-row { grid-template-columns: 45px 1fr 1fr 65px; }
}

@media (max-width: 760px) {
  .public-header { height: 62px; padding: 0 16px; }.browser-badge { display: none; }.small-cta { padding: 8px 10px; }.site-logo > span:last-child { font-size: 16px; }.logo-check { width: 29px; height: 29px; }
  .home-hero { padding: 52px 17px 50px; gap: 38px; }.hero-copy h1 { margin-top: 18px; font-size: 52px; }.hero-copy > p { font-size: 14px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 14px; }.trust-row { flex-wrap: wrap; margin-top: 27px; }
  .lab-preview-body { grid-template-columns: 1fr; }.preview-mission { display: none; }.preview-terminal { min-height: 220px; }.preview-nodes { grid-template-columns: 1fr 1fr; }.preview-nodes span:last-child { display: none; }.preview-caption { gap: 20px; }.preview-caption span { display: none; }
  .signal-strip { padding: 18px; flex-wrap: wrap; gap: 10px; justify-content: flex-start; }.signal-strip > span { width: 100%; }.signal-strip strong { font-size: 9px; }.signal-strip i { font-size: 9px; }
  .course-section, .method-section { padding: 65px 17px; }.public-section-heading, .syllabus-heading { align-items: flex-start; flex-direction: column; }.course-grid { grid-template-columns: 1fr; }.course-card { min-height: 340px; }.method-section { margin: 0 0 50px; border-radius: 0; }.method-steps { grid-template-columns: 1fr; }.method-steps article { min-height: 220px; }.method-icon { margin-top: 20px; }
  .site-footer { padding: 35px 18px; grid-template-columns: 1fr; }.footer-principles { flex-wrap: wrap; }.site-footer small { grid-column: 1; }
  .course-breadcrumb { padding: 0 17px; }.course-hero { padding: 45px 17px 55px; grid-template-columns: 1fr; gap: 35px; }.course-title-row h1 { font-size: 43px; }.course-hero-main > h2 { font-size: 41px; }.course-hero-meta { flex-wrap: wrap; gap: 13px 20px; }.course-enroll-card { max-width: 420px; }.outcomes-section { padding: 40px 17px; }.outcomes-section > div { grid-template-columns: 1fr 1fr; gap: 22px 0; }.outcomes-section article:nth-child(3) { padding-left: 0; border-left: 0; }.syllabus-section { padding: 60px 17px; }.chapter-row { grid-template-columns: 35px 1fr 50px; }.chapter-missions { grid-column: 2 / -1; }.chapter-state { grid-column: 3; grid-row: 1; }
  .topbar-right .rank-pill { display: none; }.access-badge { font-size: 7px; }
}

@media (max-width: 420px) {
  .hero-copy h1 { font-size: 45px; }.hero-copy > p { font-size: 13px; }.primary-button { width: 100%; }.preview-caption { justify-content: flex-end; }.course-title-row { gap: 12px; }.course-icon.large { width: 49px; height: 49px; }.course-title-row h1 { font-size: 38px; }.course-hero-main > h2 { font-size: 35px; }.outcomes-section > div { grid-template-columns: 1fr; }.outcomes-section article, .outcomes-section article:nth-child(3) { padding: 0 0 15px; border: 0; border-bottom: 1px solid #3a4541; }
  .enroll-modal { padding: 29px 20px; }
}

/* Game launcher skin */

.public-shell {
  --paper: #080c15;
  --paper-deep: #0d1422;
  --ink: #eff7ff;
  --muted: #9dacbf;
  --line: rgba(149, 174, 220, .18);
  --card: rgba(16, 25, 42, .82);
  --orange: #ff7a3d;
  --orange-dark: #d95a26;
  --lime: #baff67;
  --green: #66e6a3;
  position: relative;
  color: var(--ink);
  background:
    radial-gradient(circle at 18% 8%, rgba(255, 122, 61, .22), transparent 30%),
    radial-gradient(circle at 78% 6%, rgba(85, 184, 255, .18), transparent 30%),
    radial-gradient(circle at 58% 52%, rgba(186, 255, 103, .08), transparent 32%),
    linear-gradient(135deg, #070a12 0%, #0b1020 48%, #10131e 100%);
}

.public-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.72), transparent 70%);
}

.public-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.035), transparent);
  transform: translateX(-100%);
  animation: scannerSweep 8s linear infinite;
}

@keyframes scannerSweep {
  0%, 42% { transform: translateX(-100%); opacity: 0; }
  50% { opacity: .8; }
  64%, 100% { transform: translateX(100%); opacity: 0; }
}

.public-shell > * { position: relative; z-index: 1; }

.public-header {
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom-color: rgba(186,255,103,.18);
  background: rgba(7, 10, 18, .72);
  backdrop-filter: blur(16px);
}

.public-header nav a,
.browser-badge,
.text-button,
.trust-row,
.public-section-heading > p,
.method-intro p,
.worlds-heading p,
.syllabus-heading p,
.course-breadcrumb,
.course-hero-main > p,
.course-hero-meta span,
.free-note,
.chapter-copy p,
.chapter-missions,
.site-footer > div:first-child p {
  color: var(--muted);
}

.public-header nav a:hover,
.public-header nav a.active,
.site-logo,
.course-breadcrumb b,
.course-hero-meta b,
.text-button:hover {
  color: var(--ink);
}

.public-header nav a.active::after {
  bottom: -27px;
  height: 3px;
  background: linear-gradient(90deg, var(--lime), var(--orange));
  box-shadow: 0 0 18px rgba(186,255,103,.55);
}

.small-cta,
.primary-button,
.dispatch-button,
.dark-button {
  border-radius: 999px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12) inset, 0 12px 32px rgba(255,122,61,.24);
}

.small-cta {
  color: #071016;
  background: var(--lime);
}

.small-cta:hover { background: #d8ff91; }

.player-hud.compact {
  border-left-color: rgba(149,174,220,.2);
}

.player-hud b,
.player-hud small,
.player-level {
  color: var(--ink);
}

.public-shell .player-level {
  color: #071016;
  background: linear-gradient(135deg, var(--lime), #69e6ff);
  box-shadow: 0 0 22px rgba(186,255,103,.32);
}

.public-shell .player-hud > div > i {
  background: rgba(255,255,255,.14);
}

.public-shell .player-hud > div > i em {
  background: linear-gradient(90deg, var(--lime), var(--orange));
}

.home-hero.game-hero {
  min-height: 730px;
  grid-template-columns: .9fr 1.1fr;
  gap: 58px;
}

.home-hero.game-hero::before {
  left: 46%;
  background: linear-gradient(to bottom, transparent, rgba(186,255,103,.35), transparent);
}

.section-label {
  color: #9cb7d3;
}

.section-label i {
  background: var(--lime);
  box-shadow: 0 0 16px rgba(186,255,103,.75);
}

.season-pill {
  width: fit-content;
  margin-top: 23px;
  padding: 7px 9px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #071016;
  background: rgba(186,255,103,.95);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  box-shadow: 0 0 30px rgba(186,255,103,.22);
  font: 700 8px "DM Mono", monospace;
  letter-spacing: .08em;
}

.season-pill span {
  padding: 3px 6px;
  color: white;
  background: #111b2c;
  border-radius: 999px;
}

.season-pill b { font-weight: 800; }

.hero-copy h1 {
  color: var(--ink);
  text-shadow: 0 0 36px rgba(85,184,255,.16);
}

.hero-copy h1 em {
  color: transparent;
  background: linear-gradient(90deg, var(--lime), #69e6ff 42%, var(--orange));
  -webkit-background-clip: text;
  background-clip: text;
}

.hero-copy > p {
  color: #b3c1d4;
}

.press-start {
  gap: 18px;
  color: #091018;
  background: linear-gradient(135deg, var(--lime), #77e8ff);
  border-color: rgba(255,255,255,.32);
  box-shadow: 0 0 0 1px rgba(255,255,255,.2) inset, 0 0 32px rgba(186,255,103,.26), 0 14px 38px rgba(0,0,0,.28);
}

.press-start:hover {
  color: #071016;
  background: linear-gradient(135deg, #d8ff91, #a5f2ff);
}

.hero-stats {
  margin-top: 30px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  max-width: 560px;
}

.hero-stats span {
  padding: 13px 14px;
  min-height: 78px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: rgba(16,25,42,.68);
  border: 1px solid rgba(149,174,220,.18);
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
}

.hero-stats b {
  color: var(--lime);
  font: 800 23px "DM Mono", monospace;
}

.hero-stats em {
  margin-top: 5px;
  color: #8fa4bf;
  font: 600 8px "DM Mono", monospace;
  font-style: normal;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.topic-radar {
  max-width: 610px;
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.topic-radar a {
  padding: 7px 9px;
  color: #a9bdd4;
  background: rgba(16,25,42,.54);
  border: 1px solid rgba(149,174,220,.16);
  border-radius: 999px;
  font: 700 8px "DM Mono", monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: color .18s ease, border-color .18s ease, background .18s ease, transform .18s ease;
}

.topic-radar a:hover {
  color: #071016;
  background: var(--lime);
  border-color: var(--lime);
  transform: translateY(-1px);
}

.trust-row i { color: var(--lime); }

.game-console {
  position: relative;
  overflow: hidden;
  color: #dce8f4;
  background:
    linear-gradient(145deg, rgba(17,27,46,.98), rgba(9,15,27,.96)),
    radial-gradient(circle at top right, rgba(85,184,255,.22), transparent 36%);
  border: 1px solid rgba(149,174,220,.25);
  border-radius: 26px;
  box-shadow:
    0 30px 90px rgba(0,0,0,.38),
    0 0 0 1px rgba(255,255,255,.06) inset,
    0 0 70px rgba(85,184,255,.12);
  transform: rotate(.25deg);
}

.game-console::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 100% 7px;
  opacity: .22;
  mix-blend-mode: screen;
}

.console-chrome {
  height: 48px;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  color: #8395ad;
  background: rgba(5,8,14,.78);
  border-bottom: 1px solid rgba(149,174,220,.2);
  font: 600 8px "DM Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.console-chrome > span { display: flex; gap: 7px; }
.console-chrome i { width: 8px; height: 8px; border-radius: 50%; background: #ff6a50; }
.console-chrome i:nth-child(2) { background: #ffd166; }
.console-chrome i:nth-child(3) { background: var(--lime); }
.console-chrome em { justify-self: end; color: var(--lime); font-style: normal; }

.console-grid {
  position: relative;
  z-index: 1;
  padding: 18px;
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 12px;
}

.player-card-preview,
.quest-list,
.skill-tree-preview,
.mini-terminal-preview {
  background: rgba(7,12,22,.7);
  border: 1px solid rgba(149,174,220,.18);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
}

.player-card-preview {
  min-height: 148px;
  padding: 17px;
  display: flex;
  gap: 15px;
  align-items: center;
}

.avatar-ring {
  width: 78px;
  height: 78px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background:
    radial-gradient(circle, #0c1424 44%, transparent 45%),
    conic-gradient(var(--lime) 0 70%, rgba(149,174,220,.18) 70% 100%);
  box-shadow: 0 0 34px rgba(186,255,103,.22);
}

.avatar-ring span {
  width: 51px;
  height: 51px;
  display: grid;
  place-items: center;
  color: #071016;
  background: linear-gradient(135deg, var(--lime), #76e7ff);
  border-radius: 16px;
  font: 800 11px "DM Mono", monospace;
}

.player-card-preview small,
.console-section-title span {
  color: #7f93ad;
  font: 700 7px "DM Mono", monospace;
  letter-spacing: .12em;
}

.player-card-preview strong {
  display: block;
  margin-top: 5px;
  color: white;
  font: 800 25px "Manrope", sans-serif;
  letter-spacing: -.04em;
}

.player-card-preview p {
  margin: 6px 0 0;
  color: #91a5bf;
  font-size: 10px;
}

.quest-list {
  grid-row: span 2;
  padding: 17px;
}

.console-section-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.console-section-title b {
  color: var(--lime);
  font: 700 8px "DM Mono", monospace;
}

.quest-list ol {
  margin: 17px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
  list-style: none;
}

.quest-list li {
  padding: 12px;
  display: grid;
  grid-template-columns: 34px 1fr;
  column-gap: 10px;
  align-items: center;
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(149,174,220,.13);
  border-radius: 13px;
}

.quest-list li span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  color: #8fa4bf;
  border: 1px solid rgba(149,174,220,.24);
  border-radius: 11px;
  font: 700 9px "DM Mono", monospace;
}

.quest-list li b {
  color: #eef7ff;
  font-size: 11px;
}

.quest-list li em {
  grid-column: 2;
  margin-top: 3px;
  color: #7f93ad;
  font: 500 8px "DM Mono", monospace;
  font-style: normal;
}

.quest-list li.complete span {
  color: #071016;
  background: var(--lime);
  border-color: var(--lime);
}

.quest-list li.active {
  border-color: rgba(255,122,61,.5);
  box-shadow: 0 0 26px rgba(255,122,61,.12);
}

.quest-list li.active span {
  color: white;
  background: var(--orange);
  border-color: var(--orange);
  animation: questPulse 1.6s ease-in-out infinite;
}

@keyframes questPulse {
  50% { box-shadow: 0 0 0 6px rgba(255,122,61,.13); }
}

.console-start {
  margin-top: 15px;
  padding: 12px 13px;
  display: flex;
  justify-content: space-between;
  color: #071016;
  background: linear-gradient(135deg, var(--lime), #7be7ff);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}

.skill-tree-preview {
  padding: 17px;
}

.tree-row {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.tree-row.offset { padding-left: 28px; }
.tree-row i { width: 25px; height: 1px; background: rgba(149,174,220,.22); }

.tree-node {
  min-width: 52px;
  padding: 8px 9px;
  color: #7f93ad;
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(149,174,220,.16);
  border-radius: 999px;
  text-align: center;
  font: 700 8px "DM Mono", monospace;
}

.tree-node.unlocked {
  color: #071016;
  background: var(--lime);
  border-color: var(--lime);
}

.tree-node.live {
  color: white;
  background: var(--orange);
  border-color: var(--orange);
}

.mini-terminal-preview {
  min-height: 190px;
  padding: 18px;
  color: #b8c6d7;
  font: 400 10px/1.75 "DM Mono", monospace;
}

.mini-terminal-preview span { color: var(--lime); }
.mini-terminal-preview em { color: #78c8ff; font-style: normal; }
.mini-terminal-preview b { color: var(--lime); font-weight: 500; }

.loot-strip {
  position: relative;
  z-index: 1;
  padding: 13px 18px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  color: #8296b1;
  background: rgba(5,8,14,.72);
  border-top: 1px solid rgba(149,174,220,.2);
  font: 700 8px "DM Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.loot-strip b { color: var(--lime); }
.loot-strip em { color: #77e8ff; font-style: normal; }

.game-command-strip {
  background:
    linear-gradient(90deg, rgba(186,255,103,.12), rgba(85,184,255,.09), rgba(255,122,61,.12)),
    rgba(5,8,14,.92);
  border-block: 1px solid rgba(149,174,220,.16);
}

.game-command-strip > span { color: var(--lime); }
.game-command-strip strong { color: #f4f8ff; }

.game-world-map {
  padding-top: 104px;
}

.map-stage {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: 18px;
  background: rgba(7,12,22,.55);
  border: 1px solid rgba(149,174,220,.16);
  border-radius: 28px;
  box-shadow: 0 24px 80px rgba(0,0,0,.22);
}

.map-path {
  position: absolute;
  inset: 50% 9% auto;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(186,255,103,.45), rgba(85,184,255,.42), rgba(255,122,61,.45), transparent);
}

.map-path i {
  position: absolute;
  top: -4px;
  width: 8px;
  height: 8px;
  background: var(--lime);
  border-radius: 50%;
  box-shadow: 0 0 18px rgba(186,255,103,.75);
}

.map-path i:nth-child(1) { left: 20%; }
.map-path i:nth-child(2) { left: 50%; background: #77e8ff; box-shadow: 0 0 18px rgba(119,232,255,.75); }
.map-path i:nth-child(3) { left: 78%; background: var(--orange); box-shadow: 0 0 18px rgba(255,122,61,.75); }

.world-card {
  color: var(--ink);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--world-color) 26%, transparent), transparent 38%),
    linear-gradient(160deg, rgba(18,29,48,.96), rgba(10,16,29,.94));
  border-color: rgba(149,174,220,.18);
  border-radius: 22px;
  box-shadow: 0 18px 44px rgba(0,0,0,.2), 0 0 0 1px rgba(255,255,255,.04) inset;
}

.world-card:hover {
  border-color: color-mix(in srgb, var(--world-color) 68%, white);
  box-shadow: 0 24px 70px rgba(0,0,0,.28), 0 0 34px color-mix(in srgb, var(--world-color) 24%, transparent);
}

.world-card::after {
  border-color: color-mix(in srgb, var(--world-color) 30%, transparent);
}

.world-number,
.course-category {
  color: #8ea2ba;
}

.world-glyph {
  box-shadow: 0 0 28px color-mix(in srgb, var(--world-color) 36%, transparent);
}

.world-card h3,
.course-card h3,
.course-card > strong,
.method-steps h3,
.loop-grid h3,
.course-hero-main > h2,
.public-section-heading h2,
.worlds-heading h2,
.method-intro h2,
.syllabus-heading h2,
.chapter-copy h3 {
  color: var(--ink);
}

.world-card p,
.course-card > p,
.method-steps p,
.loop-grid p {
  color: #a8b7ca;
}

.world-card em {
  color: color-mix(in srgb, var(--world-color) 88%, white);
  background: color-mix(in srgb, var(--world-color) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--world-color) 22%, transparent);
}

.world-card > b { color: color-mix(in srgb, var(--world-color) 78%, white); }

.daily-quest {
  background:
    radial-gradient(circle at 4% 50%, rgba(186,255,103,.28), transparent 22%),
    linear-gradient(135deg, rgba(17,27,46,.96), rgba(7,12,22,.98));
  border-color: rgba(186,255,103,.22);
  border-radius: 24px;
  box-shadow: 0 25px 80px rgba(0,0,0,.27), 0 0 42px rgba(186,255,103,.08);
}

.dispatch-art {
  background: linear-gradient(135deg, var(--lime), #77e8ff);
  box-shadow: 0 0 35px rgba(186,255,103,.22);
}

.dispatch-copy p { color: #99abc4; }
.dispatch-copy h2 { color: white; }

.dispatch-button {
  color: #071016;
  background: linear-gradient(135deg, var(--lime), #77e8ff);
}

.course-section {
  padding-top: 105px;
}

.course-filters button {
  color: #9aacbf;
  background: rgba(16,25,42,.6);
  border-color: rgba(149,174,220,.18);
}

.course-filters button:hover {
  color: var(--ink);
  background: rgba(255,255,255,.07);
}

.course-filters button.active {
  color: #071016;
  background: var(--lime);
  border-color: var(--lime);
}

.course-filters span { color: #071016; }

.course-card {
  overflow: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--course-accent) 22%, transparent), transparent 38%),
    linear-gradient(160deg, rgba(18,29,48,.96), rgba(10,16,29,.95));
  border-color: rgba(149,174,220,.16);
  border-radius: 22px;
  box-shadow: 0 18px 50px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.04) inset;
}

.course-card.available {
  border-top: 1px solid color-mix(in srgb, var(--course-accent) 58%, white);
}

.course-card.planned {
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--course-accent) 18%, transparent), transparent 36%),
    linear-gradient(160deg, rgba(15,23,38,.84), rgba(8,13,24,.88));
}

.course-card:hover {
  box-shadow: 0 24px 70px rgba(0,0,0,.3), 0 0 32px color-mix(in srgb, var(--course-accent) 16%, transparent);
}

.course-icon {
  box-shadow: 0 0 28px color-mix(in srgb, var(--course-accent) 34%, transparent);
}

.course-status {
  color: #a9b9cd;
  background: rgba(255,255,255,.065);
  border: 1px solid rgba(149,174,220,.15);
}

.available .course-status {
  color: #071016;
  background: var(--lime);
}

.course-card-stage {
  margin: auto 0 12px;
  padding: 10px 11px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #a9b9cd;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(149,174,220,.14);
  border-radius: 12px;
}

.course-card-stage span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: white;
  background: var(--world-color);
  border-radius: 9px;
  font: 700 10px "DM Mono", monospace;
}

.course-card-stage b {
  font: 600 8px "DM Mono", monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.course-rewards {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

.course-rewards span {
  padding: 6px 8px;
  color: #b8c7d8;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(149,174,220,.14);
  border-radius: 999px;
  font: 700 7px "DM Mono", monospace;
}

.course-meta { color: #90a3ba; }
.card-progress { background: rgba(255,255,255,.1); }
.course-card-link { color: var(--ink); border-top-color: rgba(149,174,220,.16); }
.notify-link { color: #a9b9cd; }

.gameplay-section {
  max-width: 1370px;
  margin: 0 auto 90px;
  padding: 42px;
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: 50px;
  background:
    radial-gradient(circle at 18% 20%, rgba(255,122,61,.14), transparent 30%),
    rgba(7,12,22,.68);
  border: 1px solid rgba(149,174,220,.16);
  border-radius: 28px;
  box-shadow: 0 25px 80px rgba(0,0,0,.22);
}

.loop-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.loop-grid article {
  position: relative;
  min-height: 235px;
  padding: 20px;
  background: rgba(16,25,42,.82);
  border: 1px solid rgba(149,174,220,.16);
  border-radius: 20px;
}

.loop-grid article > span {
  position: absolute;
  top: 16px;
  right: 16px;
  color: #8195ad;
  font: 700 8px "DM Mono", monospace;
}

.gameplay-section .method-icon {
  color: #071016;
  background: linear-gradient(135deg, var(--lime), #77e8ff);
  box-shadow: 0 0 26px rgba(186,255,103,.18);
}

.site-footer {
  background: #050812;
  border-top: 1px solid rgba(149,174,220,.14);
}

.site-footer small {
  border-top-color: rgba(149,174,220,.14);
}

.footer-principles,
.site-logo.inverse {
  color: #dce8f4;
}

/* Course pages inherit the same game-world treatment. */

.public-shell.course-page .course-enroll-card {
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--course-accent) 24%, transparent), transparent 38%),
    linear-gradient(160deg, rgba(18,29,48,.98), rgba(7,12,22,.97));
  border: 1px solid rgba(149,174,220,.18);
  box-shadow: 0 25px 80px rgba(0,0,0,.27);
}

.public-shell.course-page .outcomes-section {
  background: rgba(5,8,14,.92);
  border-block: 1px solid rgba(149,174,220,.14);
}

.public-shell.course-page .chapter-list,
.public-shell.course-page .chapter-row {
  border-color: rgba(149,174,220,.14);
}

.public-shell.course-page .chapter-row {
  background: rgba(16,25,42,.38);
  border-radius: 18px;
  margin-bottom: 10px;
  padding-inline: 18px;
}

.public-shell.course-page .free-pill {
  color: #071016;
  background: var(--lime);
}

@media (max-width: 1050px) {
  .home-hero.game-hero { grid-template-columns: 1fr; }
  .console-grid { grid-template-columns: 1fr 1fr; }
  .map-stage { grid-template-columns: 1fr 1fr; }
  .gameplay-section { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .public-header { backdrop-filter: blur(12px); }
  .home-hero.game-hero { padding-top: 48px; }
  .hero-stats { grid-template-columns: 1fr; }
  .console-grid { grid-template-columns: 1fr; }
  .quest-list { grid-row: auto; }
  .loot-strip { grid-template-columns: 1fr; }
  .map-stage { grid-template-columns: 1fr; padding: 12px; }
  .map-path { display: none; }
  .gameplay-section { margin-bottom: 50px; padding: 20px 17px; border-radius: 0; border-inline: 0; }
  .loop-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .season-pill { align-items: flex-start; flex-direction: column; border-radius: 15px; }
  .player-card-preview { align-items: flex-start; flex-direction: column; }
  .tree-row.offset { padding-left: 0; }
  .tree-row { flex-wrap: wrap; }
  .tree-row i { display: none; }
}

/* Cool nerd-console calibration */

.public-shell {
  --ink: #dbe7f3;
  --muted: #8391a3;
  --line: rgba(128, 151, 178, .18);
  --card: rgba(11, 18, 29, .86);
  --orange: #c99a62;
  --orange-dark: #a87946;
  --lime: #9fd6a3;
  --green: #86cfa0;
  background:
    radial-gradient(circle at 16% 10%, rgba(93, 124, 150, .16), transparent 32%),
    radial-gradient(circle at 82% 12%, rgba(117, 143, 178, .10), transparent 28%),
    linear-gradient(135deg, #05070b 0%, #07101a 48%, #0b0f15 100%);
}

.public-shell::before {
  background-image:
    linear-gradient(rgba(150, 180, 210, .026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(150, 180, 210, .026) 1px, transparent 1px);
  background-size: 36px 36px;
}

.public-shell::after {
  opacity: .35;
  background: linear-gradient(90deg, transparent, rgba(150, 180, 210, .04), transparent);
  animation-duration: 13s;
}

.public-header {
  background: rgba(4, 8, 13, .82);
  border-bottom-color: rgba(128,151,178,.16);
}

.logo-check,
.course-icon,
.world-glyph {
  color: #091018;
  background: #9fd6a3;
  box-shadow: 0 0 18px rgba(159,214,163,.16);
}

.site-logo i {
  color: #9fb3c8;
}

.section-label,
.browser-badge,
.console-chrome,
.world-number,
.course-category {
  color: #7e8fa3;
}

.section-label i,
.browser-badge i {
  background: #9fd6a3;
  box-shadow: 0 0 10px rgba(159,214,163,.5);
}

.season-pill {
  color: #b9c7d6;
  background: rgba(8, 15, 24, .86);
  border-color: rgba(159,214,163,.28);
  box-shadow: none;
}

.season-pill span {
  color: #071016;
  background: #9fd6a3;
}

.hero-copy h1 {
  text-shadow: none;
}

.hero-copy h1 em {
  color: #9fd6a3;
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
}

.hero-copy > p {
  color: #a9b6c4;
}

.small-cta,
.press-start,
.console-start,
.dispatch-button,
.dark-button {
  color: #071016;
  background: #9fd6a3;
  border: 1px solid rgba(215, 231, 243, .18);
  box-shadow: 0 0 0 1px rgba(255,255,255,.05) inset, 0 12px 28px rgba(0,0,0,.28);
}

.primary-button:not(.press-start) {
  background: #111c29;
  border-color: rgba(159,214,163,.28);
  box-shadow: none;
}

.small-cta:hover,
.press-start:hover,
.console-start:hover,
.dispatch-button:hover,
.dark-button:hover {
  color: #071016;
  background: #b8e3bb;
}

.public-shell .player-level,
.avatar-ring span,
.tree-node.unlocked,
.available .course-status,
.public-shell.course-page .free-pill {
  color: #071016;
  background: #9fd6a3;
  box-shadow: none;
}

.avatar-ring {
  background:
    radial-gradient(circle, #0b121d 44%, transparent 45%),
    conic-gradient(#9fd6a3 0 70%, rgba(128,151,178,.18) 70% 100%);
  box-shadow: 0 0 22px rgba(159,214,163,.13);
}

.public-shell .player-hud > div > i em,
.public-header nav a.active::after {
  background: #9fd6a3;
  box-shadow: 0 0 12px rgba(159,214,163,.35);
}

.game-console,
.course-card,
.world-card,
.map-stage,
.daily-quest,
.gameplay-section,
.public-shell.course-page .course-enroll-card {
  background:
    linear-gradient(160deg, rgba(12, 20, 32, .96), rgba(5, 10, 17, .96));
  border-color: rgba(128,151,178,.18);
  box-shadow: 0 24px 70px rgba(0,0,0,.34), 0 0 0 1px rgba(255,255,255,.035) inset;
}

.game-console {
  border-radius: 18px;
}

.game-console::before {
  opacity: .12;
}

.console-chrome i {
  background: #5f6c7b;
}

.console-chrome i:nth-child(2) {
  background: #7d8794;
}

.console-chrome i:nth-child(3) {
  background: #9fd6a3;
}

.console-chrome em,
.console-section-title b,
.loot-strip b,
.mini-terminal-preview span,
.mini-terminal-preview b,
.quest-list li.complete span,
.dispatch-reward span {
  color: #9fd6a3;
}

.quest-list li.active {
  border-color: rgba(159,214,163,.34);
  box-shadow: 0 0 18px rgba(159,214,163,.08);
}

.quest-list li.active span,
.tree-node.live {
  color: #dbe7f3;
  background: #182739;
  border-color: rgba(159,214,163,.32);
  animation: none;
}

.mini-terminal-preview em,
.loot-strip em {
  color: #8fb6d6;
}

.hero-stats span,
.player-card-preview,
.quest-list,
.skill-tree-preview,
.mini-terminal-preview,
.loop-grid article,
.course-card-stage,
.course-rewards span,
.quest-list li {
  background: rgba(5, 10, 17, .62);
  border-color: rgba(128,151,178,.16);
  box-shadow: none;
}

.hero-stats b {
  color: #9fd6a3;
}

.map-path {
  background: linear-gradient(90deg, transparent, rgba(159,214,163,.35), rgba(143,182,214,.22), transparent);
}

.map-path i,
.map-path i:nth-child(2),
.map-path i:nth-child(3) {
  background: #9fd6a3;
  box-shadow: 0 0 12px rgba(159,214,163,.46);
}

.world-card::after {
  border-color: rgba(128,151,178,.13);
}

.world-card:hover,
.course-card:hover {
  border-color: rgba(159,214,163,.34);
  box-shadow: 0 28px 80px rgba(0,0,0,.4), 0 0 20px rgba(159,214,163,.08);
}

.world-card em {
  color: #aebdca;
  background: rgba(128,151,178,.1);
  border-color: rgba(128,151,178,.14);
}

.world-card > b,
.course-card-link span {
  color: #9fd6a3;
}

.course-card-stage span {
  color: #071016;
  background: #9fb3c8;
}

.daily-quest {
  background:
    linear-gradient(160deg, rgba(12, 20, 32, .96), rgba(5, 10, 17, .96));
}

.dispatch-art {
  color: #071016;
  background: #9fd6a3;
  box-shadow: none;
}

.gameplay-section .method-icon {
  color: #071016;
  background: #9fd6a3;
  box-shadow: none;
}

/* Universal concept-primer module */

.concept-primer {
  max-width: 1286px;
  margin: 0 auto 72px;
  padding: 0 42px;
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 34px;
  align-items: stretch;
}

.concept-primer-copy,
.concept-diagram {
  background: rgba(5, 10, 17, .72);
  border: 1px solid rgba(128,151,178,.18);
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.24);
}

.concept-primer-copy {
  padding: 27px;
}

.concept-primer-copy h2 {
  margin: 12px 0 12px;
  color: #dbe7f3;
  font: 800 clamp(29px, 3vw, 42px)/1 "Manrope", sans-serif;
  letter-spacing: -.055em;
}

.concept-primer-copy p {
  margin: 0;
  color: #94a4b5;
  font-size: 12px;
  line-height: 1.75;
}

.concept-tabs {
  margin-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.asset-template-badge {
  width: fit-content;
  margin-top: 18px;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #a9bac9;
  background: rgba(128,151,178,.08);
  border: 1px solid rgba(159,214,163,.18);
  border-radius: 999px;
  font: 700 8px "DM Mono", monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.asset-template-badge span {
  color: #6f8499;
}

.asset-template-badge b {
  color: #9fd6a3;
  font-weight: 800;
}

.concept-tabs button {
  padding: 8px 10px;
  color: #9aabba;
  background: rgba(128,151,178,.08);
  border: 1px solid rgba(128,151,178,.17);
  border-radius: 999px;
  cursor: pointer;
  font: 700 8px "DM Mono", monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.concept-tabs button.active,
.diagram-node.active {
  color: #071016;
  background: #9fd6a3;
  border-color: #9fd6a3;
}

.concept-diagram {
  padding: 18px;
}

.asset-readout {
  margin-bottom: 16px;
  padding: 16px;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 14px;
  background: rgba(5,10,17,.7);
  border: 1px solid rgba(128,151,178,.14);
  border-radius: 14px;
}

.asset-readout small,
.asset-slots b {
  display: block;
  color: #7890a6;
  font: 800 7px "DM Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.asset-readout strong {
  display: block;
  margin-top: 6px;
  color: #dbe7f3;
  font: 800 18px "Manrope", sans-serif;
  letter-spacing: -.035em;
}

.asset-readout p {
  margin: 7px 0 0;
  color: #8fa2b4;
  font-size: 10px;
  line-height: 1.6;
}

.asset-slots {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.asset-slots span {
  min-height: 54px;
  padding: 9px;
  color: #d4dee8;
  background: rgba(128,151,178,.07);
  border: 1px solid rgba(128,151,178,.12);
  border-radius: 9px;
  font-size: 9px;
  line-height: 1.35;
}

.asset-slots b {
  margin-bottom: 4px;
  color: #9fd6a3;
}

.asset-canvas {
  margin-bottom: 10px;
  padding: 10px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
  background:
    linear-gradient(90deg, rgba(159,214,163,.055) 1px, transparent 1px),
    linear-gradient(0deg, rgba(159,214,163,.045) 1px, transparent 1px),
    rgba(5,10,17,.62);
  background-size: 26px 26px;
  border: 1px solid rgba(159,214,163,.14);
  border-radius: 14px;
}

.asset-stage {
  min-height: 82px;
  padding: 10px;
  color: #dbe7f3;
  background: rgba(128,151,178,.07);
  border: 1px solid rgba(128,151,178,.14);
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
}

.asset-stage small,
.asset-stage strong {
  display: block;
}

.asset-stage small {
  color: #7d91a5;
  font: 800 7px "DM Mono", monospace;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.asset-stage strong {
  margin-top: 9px;
  color: #c9d6e1;
  font-size: 10px;
  line-height: 1.28;
}

.asset-stage.active {
  color: #071016;
  background: #9fd6a3;
  border-color: #9fd6a3;
  box-shadow: 0 0 0 1px rgba(159,214,163,.22), 0 16px 34px rgba(0,0,0,.24);
}

.asset-stage.active small,
.asset-stage.active strong {
  color: #071016;
}

.asset-stage-explain {
  margin-bottom: 14px;
  padding: 14px;
  color: #dbe7f3;
  background: rgba(5,10,17,.72);
  border: 1px solid rgba(128,151,178,.14);
  border-radius: 12px;
}

.asset-stage-explain small {
  display: inline-flex;
  padding: 5px 7px;
  color: #9fd6a3;
  background: rgba(159,214,163,.08);
  border: 1px solid rgba(159,214,163,.14);
  border-radius: 5px;
  font: 800 7px "DM Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.asset-stage-explain h3 {
  margin: 10px 0 6px;
  color: #dbe7f3;
  font: 800 18px "Manrope", sans-serif;
  letter-spacing: -.035em;
}

.asset-stage-explain p {
  margin: 0;
  color: #98aaba;
  font-size: 10px;
  line-height: 1.6;
}

.asset-stage-explain em {
  display: block;
  margin-top: 11px;
  color: #8fb6d6;
  font: 600 8px/1.55 "DM Mono", monospace;
  font-style: normal;
}

.diagram-flow {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(128,151,178,.14);
  scrollbar-width: none;
}

.diagram-flow::-webkit-scrollbar {
  display: none;
}

.diagram-flow span {
  flex: 0 0 auto;
  padding: 7px 9px;
  color: #8797a8;
  background: rgba(128,151,178,.08);
  border: 1px solid rgba(128,151,178,.14);
  border-radius: 7px;
  font: 700 8px "DM Mono", monospace;
  text-transform: uppercase;
}

.diagram-flow span.active {
  color: #071016;
  background: #9fd6a3;
}

.diagram-flow i {
  flex: 0 0 22px;
  height: 1px;
  background: rgba(159,214,163,.26);
}

.diagram-nodes {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.asset-abstractions {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.asset-abstractions span {
  padding: 6px 8px;
  color: #9fb0c0;
  background: rgba(128,151,178,.08);
  border: 1px solid rgba(128,151,178,.14);
  border-radius: 999px;
  font: 700 7px "DM Mono", monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.diagram-node {
  min-height: 98px;
  padding: 13px;
  color: #dbe7f3;
  background: rgba(128,151,178,.07);
  border: 1px solid rgba(128,151,178,.14);
  border-radius: 13px;
  cursor: pointer;
  text-align: left;
}

.diagram-node b,
.diagram-node span {
  display: block;
}

.diagram-node b {
  margin-bottom: 14px;
  color: #8597aa;
  font: 700 8px "DM Mono", monospace;
}

.diagram-node span {
  font-size: 10px;
  line-height: 1.35;
}

.diagram-node.active b {
  color: rgba(7,16,22,.62);
}

.concept-explain {
  margin-top: 10px;
  padding: 18px;
  color: #dbe7f3;
  background: #050a11;
  border: 1px solid rgba(159,214,163,.18);
  border-radius: 14px;
}

.concept-explain small {
  display: inline-flex;
  padding: 5px 7px;
  color: #9fd6a3;
  background: rgba(159,214,163,.08);
  border: 1px solid rgba(159,214,163,.14);
  border-radius: 5px;
  font: 700 8px "DM Mono", monospace;
}

.concept-explain h3 {
  margin: 12px 0 7px;
  font: 800 20px "Manrope", sans-serif;
  letter-spacing: -.035em;
}

.concept-explain p {
  margin: 0;
  color: #9eafbd;
  font-size: 11px;
  line-height: 1.65;
}

.concept-explain em {
  display: block;
  margin-top: 13px;
  color: #8fb6d6;
  font: 600 9px/1.5 "DM Mono", monospace;
  font-style: normal;
}

.lesson-column .concept-primer.compact {
  max-width: none;
  margin: 0 0 16px;
  padding: 0;
  display: block;
}

.lesson-column .concept-primer.compact .concept-primer-copy {
  border-radius: 10px 10px 0 0;
  border-color: var(--line);
  background: #111817;
  box-shadow: none;
}

.lesson-column .concept-primer.compact .concept-primer-copy h2 {
  color: #f1f5f2;
  font-size: 22px;
}

.lesson-column .concept-primer.compact .concept-primer-copy p {
  color: #a9b5b0;
}

.lesson-column .concept-primer.compact .asset-template-badge {
  border-radius: 8px;
}

.lesson-column .concept-primer.compact .asset-canvas {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lesson-column .concept-primer.compact .concept-diagram {
  border-radius: 0 0 10px 10px;
  border-color: var(--line);
  border-top: 0;
  background: var(--card);
  box-shadow: var(--shadow);
}

.lesson-column .concept-primer.compact .diagram-nodes {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lesson-column .concept-primer.compact .concept-explain {
  background: #111817;
}

@media (max-width: 1050px) {
  .concept-primer {
    grid-template-columns: 1fr;
  }

  .diagram-nodes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .asset-readout {
    grid-template-columns: 1fr;
  }

  .asset-canvas,
  .lesson-column .concept-primer.compact .asset-canvas {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .concept-primer {
    margin-bottom: 45px;
    padding: 0 17px;
  }

  .diagram-nodes,
  .lesson-column .concept-primer.compact .diagram-nodes {
    grid-template-columns: 1fr;
  }

  .asset-slots {
    grid-template-columns: 1fr 1fr;
  }

  .asset-canvas,
  .lesson-column .concept-primer.compact .asset-canvas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .asset-slots,
  .asset-canvas,
  .lesson-column .concept-primer.compact .asset-canvas {
    grid-template-columns: 1fr;
  }
}

/* SEO-visible learning tracks and mobile comfort pass */

.learning-tracks-section {
  max-width: 1370px;
  margin: 0 auto;
  padding: 92px 42px 20px;
}

.compact-heading {
  margin-bottom: 24px;
}

.learning-track-grid,
.difference-grid,
.proof-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.learning-track-grid article,
.difference-grid article,
.proof-card-grid article,
.course-proof-section,
.difference-section {
  color: #dbe7f3;
  background: linear-gradient(160deg, rgba(12, 20, 32, .96), rgba(5, 10, 17, .96));
  border: 1px solid rgba(128,151,178,.18);
  box-shadow: 0 20px 58px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.03) inset;
}

.learning-track-grid article,
.difference-grid article,
.proof-card-grid article {
  min-height: 238px;
  padding: 20px;
  border-radius: 18px;
}

.learning-track-grid span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #071016;
  background: #9fd6a3;
  border-radius: 12px;
  font: 800 13px "DM Mono", monospace;
}

.learning-track-grid h3,
.difference-grid h3,
.proof-card-grid h3,
.course-proof-section h2,
.difference-section h2 {
  color: #dbe7f3;
}

.learning-track-grid h3,
.difference-grid h3,
.proof-card-grid h3 {
  margin: 20px 0 10px;
  font: 800 17px "Manrope", sans-serif;
  letter-spacing: -.035em;
}

.learning-track-grid p,
.difference-grid p,
.proof-card-grid p,
.course-proof-section p,
.difference-section p {
  color: #98aabd;
  font-size: 11px;
  line-height: 1.7;
}

.learning-track-grid p,
.difference-grid p,
.proof-card-grid p {
  margin: 0;
}

.learning-track-grid em {
  display: block;
  margin-top: 17px;
  color: #9fd6a3;
  font: 700 8px/1.5 "DM Mono", monospace;
  font-style: normal;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.course-proof-section {
  max-width: 1286px;
  margin: 0 auto 58px;
  padding: 34px;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 26px;
  border-radius: 22px;
}

.difference-section {
  max-width: 1370px;
  margin: 0 auto;
  padding: 42px;
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 28px;
  border-radius: 24px;
}

.difference-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.difference-grid article {
  min-height: 220px;
  box-shadow: none;
}

.difference-grid span {
  color: #9fd6a3;
  font: 800 8px "DM Mono", monospace;
}

.course-proof-section h2 {
  margin: 12px 0 12px;
  font: 800 clamp(30px, 3.4vw, 48px)/1 "Manrope", sans-serif;
  letter-spacing: -.055em;
}

.proof-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.proof-card-grid article {
  min-height: 210px;
  box-shadow: none;
}

.proof-card-grid span {
  color: #9fd6a3;
  font: 800 8px "DM Mono", monospace;
}

@media (max-width: 1050px) {
  .learning-track-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .difference-section {
    grid-template-columns: 1fr;
    margin-inline: 42px;
  }

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

  .course-proof-section {
    grid-template-columns: 1fr;
    margin-inline: 42px;
  }
}

@media (max-width: 760px) {
  body {
    overflow-x: hidden;
  }

  .brand-link,
  .brand-row > a,
  .text-button,
  .primary-button,
  .small-cta,
  .course-filters button,
  .concept-tabs button,
  .suggestion,
  .icon-button,
  .sound-toggle,
  .command-line button,
  .terminal-tools button {
    min-height: 38px;
  }

  .brand-link,
  .brand-row > a,
  .text-button {
    display: inline-flex;
    align-items: center;
  }

  .course-breadcrumb a {
    min-width: 40px;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
  }

  .icon-button,
  .sound-toggle,
  .command-line button {
    min-width: 38px;
  }

  .terminal-tools button {
    padding: 0 8px;
  }

  .public-header {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
  }

  .header-actions {
    gap: 8px;
  }

  .small-cta {
    max-width: 118px;
    white-space: nowrap;
  }

  .concept-tabs button {
    min-width: 40px;
  }

  .home-hero.game-hero {
    padding-inline: 16px;
  }

  .hero-copy h1 {
    font-size: clamp(42px, 13vw, 54px);
  }

  .hero-copy > p,
  .public-section-heading > p,
  .worlds-heading p,
  .method-intro p,
  .course-hero-main > p {
    font-size: 13px;
  }

  .game-console {
    border-radius: 16px;
    transform: none;
  }

  .console-grid {
    padding: 12px;
  }

  .learning-tracks-section {
    padding: 64px 17px 10px;
  }

  .learning-track-grid,
  .difference-grid,
  .proof-card-grid {
    grid-template-columns: 1fr;
  }

  .learning-track-grid article {
    min-height: 0;
  }

  .course-proof-section {
    margin: 0 17px 42px;
    padding: 22px;
    border-radius: 18px;
  }

  .difference-section {
    margin: 0 17px 18px;
    padding: 22px;
    border-radius: 18px;
  }

  .concept-primer-copy,
  .concept-diagram {
    border-radius: 14px;
  }

  .topbar-right {
    gap: 8px;
    min-width: 0;
  }

  .topbar-right .access-badge {
    max-width: 126px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .content-grid {
    padding: 24px 14px 40px;
  }

  .lesson-column h1 {
    font-size: clamp(36px, 11vw, 46px);
  }

  .lesson-lede {
    font-size: 14px;
  }

  .terminal-window {
    border-radius: 12px;
  }

  .terminal-body {
    height: min(360px, 52vh);
    -webkit-overflow-scrolling: touch;
  }

  .command-shelf {
    overflow-x: auto;
    align-items: center;
    scrollbar-width: thin;
  }

  .command-shelf > div {
    min-width: max-content;
    flex-wrap: nowrap;
  }

  .suggestion {
    min-height: 38px;
  }

  .queue-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .queue-table-wrap table {
    min-width: 430px;
  }

  .local-sim-note {
    align-items: flex-start;
  }
}

@media (max-width: 420px) {
  .site-logo > span:last-child {
    font-size: 14px;
  }

  .small-cta {
    max-width: 104px;
    padding-inline: 9px;
  }

  .topbar-right .access-badge {
    display: none;
  }

  .terminal-bar {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .terminal-bar > span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .terminal-tools {
    grid-column: auto;
  }

  .command-line {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .command-line label {
    width: 100%;
  }

  .command-line input {
    flex: 1 1 calc(100% - 48px);
    width: auto;
    min-height: 38px;
  }
}

/* Supabase-backed capture forms */

.capture-form {
  margin-top: 18px;
  display: grid;
  gap: 9px;
  text-align: left;
}

.capture-form label {
  color: #566159;
  font: 800 8px "DM Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.capture-form input {
  width: 100%;
  min-height: 44px;
  padding: 0 13px;
  color: var(--ink);
  background: #fbfaf5;
  border: 1px solid var(--line);
  border-radius: 7px;
  outline: 0;
  font: 600 13px "DM Sans", sans-serif;
}

.capture-form input:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(237, 99, 53, .14);
}

.capture-form button[disabled] {
  opacity: .64;
  cursor: wait;
}

.restore-access-button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #4e5c55;
  background: transparent;
  border: 1px dashed #cfc8ba;
  border-radius: 7px;
  cursor: pointer;
  font: 800 9px "DM Mono", monospace;
  letter-spacing: .04em;
}

.restore-access-button:hover {
  color: var(--ink);
  border-color: #aeb8aa;
  background: #f6f1e7;
}

.capture-status {
  min-height: 15px;
  margin: 0;
  color: #7d6b5f;
  font-size: 9px;
  line-height: 1.45;
  text-align: center;
}

.waitlist-modal .enroll-symbol {
  color: var(--lime);
  background: #27322e;
}

@media (max-width: 760px) {
  .enroll-benefits,
  .checkout-plans {
    grid-template-columns: 1fr;
  }

  .checkout-plan {
    min-height: 0;
  }

  .checkout-plan strong {
    min-height: 0;
  }
}
