:root{
  --room-text:#fff;
  --room-muted:rgba(255,255,255,.72);
  --room-panel:rgba(18,24,28,.64);
  --room-panel-strong:rgba(18,24,28,.84);
  --room-border:rgba(255,255,255,.18);
  --room-glow:rgba(255,214,133,.82);
}

.regular-world{
  position:fixed;
  inset:0;
  overflow:hidden;
  color:var(--room-text);
  background:#172029;
  z-index:20;
}
.regular-bg{
  position:absolute;
  inset:-4%;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  transform:scale(1.015);
  transform-origin:50% 50%;
  transition:transform .65s cubic-bezier(.22,.61,.36,1), transform-origin .65s ease, filter .35s ease;
  will-change:transform,transform-origin;
}
.regular-vignette{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 22%,transparent 68%,rgba(0,0,0,.34)),linear-gradient(90deg,rgba(0,0,0,.2),transparent 28%,transparent 72%,rgba(0,0,0,.18));
  pointer-events:none;
}
.regular-topbar{
  position:absolute;
  z-index:4;
  top:18px;
  left:18px;
  right:18px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  pointer-events:none;
}
.regular-brand,.regular-actions,.student-badge{
  pointer-events:auto;
}
.regular-brand,.student-badge,.regular-actions button{
  border:1px solid var(--room-border);
  background:var(--room-panel);
  box-shadow:0 12px 34px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.1);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.regular-brand{
  display:flex;
  align-items:center;
  gap:11px;
  padding:10px 14px;
  border-radius:18px;
}
.regular-brand .brand-icon{
  width:38px;height:38px;border-radius:12px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.12);
  font-weight:800;
}
.regular-brand strong{display:block;font-size:14px;letter-spacing:.01em}
.regular-brand span{display:block;margin-top:2px;color:var(--room-muted);font-size:11px}
.regular-actions{display:flex;gap:10px;align-items:center}
.regular-actions button{
  width:48px;height:48px;border-radius:16px;color:#fff;cursor:pointer;font-size:18px;transition:.2s ease;
}
.regular-actions button:hover,.regular-actions button:focus-visible{transform:translateY(-2px);border-color:rgba(255,255,255,.4);outline:none;box-shadow:0 14px 38px rgba(0,0,0,.25),0 0 0 3px rgba(255,220,150,.14)}
.student-badge{
  position:absolute;top:82px;left:18px;
  padding:10px 14px;border-radius:15px;
  min-width:170px;
}
.student-badge .eyebrow{font-size:9px;letter-spacing:.16em;font-weight:800;color:rgba(255,232,187,.9)}
.student-badge strong{display:block;margin-top:4px;font-size:15px}
.student-badge span{display:block;margin-top:2px;color:var(--room-muted);font-size:11px}


.mobile-menu-grid{
  position:static;
}

.room-zone{
  position:absolute;
  z-index:3;
  width:64px;height:64px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  background:rgba(255,255,255,.035);
  color:#fff;
  cursor:pointer;
  box-shadow:0 0 0 0 rgba(255,215,145,0);
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease;
}
.room-zone::before{
  content:"";position:absolute;inset:8px;border-radius:50%;border:1px solid rgba(255,255,255,.18);
}
.room-zone::after{
  content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid rgba(255,220,150,.18);opacity:0;transition:.22s ease;
}
.room-zone:hover,.room-zone:focus-visible{
  transform:translate(-50%,-50%) scale(1.1);
  background:rgba(255,214,133,.13);
  border-color:rgba(255,224,166,.7);
  box-shadow:0 0 32px rgba(255,213,128,.28);
  outline:none;
}
.room-zone:hover::after,.room-zone:focus-visible::after{opacity:1;inset:-15px}
.zone-icon{font-size:22px;position:relative;z-index:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.zone-label{
  position:absolute;left:50%;top:calc(100% + 9px);transform:translateX(-50%) translateY(5px);
  min-width:126px;padding:7px 9px;border-radius:11px;
  background:var(--room-panel-strong);border:1px solid var(--room-border);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;pointer-events:none;transition:.18s ease;text-align:center;white-space:nowrap;
}
.zone-label strong{display:block;font-size:11px}.zone-label small{display:block;margin-top:2px;color:var(--room-muted);font-size:9px}
.room-zone:hover .zone-label,.room-zone:focus-visible .zone-label{opacity:1;transform:translateX(-50%) translateY(0)}

/* Desktop composition: positions are intentionally tied to the supplied room artwork. */
.zone-materials{left:13%;top:35%}
.zone-exercises{left:57%;top:79%}
.zone-assignments{left:48%;top:45%}
.zone-leaderboard{left:89%;top:49%}
.zone-profile{left:17%;top:53%}
.zone-music{left:84%;top:62%}
.zone-about{left:62%;top:57%}
.zone-changelog{left:70%;top:84%}

.regular-world.is-zoomed .regular-bg{transform:scale(1.2)}

.room-focus{
  position:absolute;z-index:8;left:50%;bottom:24px;transform:translate(-50%,18px) scale(.16);
  transform-origin:var(--focus-origin-x,50%) var(--focus-origin-y,50%);
  width:min(520px,calc(100% - 32px));padding:17px 18px;
  border-radius:20px;background:var(--room-panel-strong);border:1px solid var(--room-border);
  box-shadow:0 18px 50px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.1);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  opacity:0;pointer-events:none;transition:transform .36s cubic-bezier(.22,.8,.2,1),opacity .2s ease;
}
.room-focus.is-open{opacity:1;transform:translate(-50%,0) scale(1);pointer-events:auto}
/* v10.5.18 — Desktop content-window scrolling. Keep the world fixed while the active sub-menu owns the vertical scroll. */
@media (min-width:801px){
  .room-focus.is-open:not(.is-maximized){max-height:calc(100dvh - 48px);overflow-y:auto;overflow-x:hidden}
  .room-focus.is-maximized{max-height:none;overflow-y:auto;overflow-x:hidden}
  .dashboard-panel{min-height:0}
}
.room-focus.is-maximized{left:18px;right:18px;top:18px;bottom:18px;width:auto;max-height:none;transform:scale(1);transform-origin:50% 50%;overflow:auto}
/* v10.5.28 — Maximize content-window: let the full document flow inside the expanded panel.
   Nested panels that are compact in the normal view must not keep their viewport caps when maximized. */
.room-focus.is-maximized .materials-list,
.room-focus.is-maximized .material-detail-content,
.room-focus.is-maximized .leaderboard-list{
  max-height:none !important;
  overflow:visible;
}
.room-focus.is-maximized .student-quiz{
  min-height:0;
}
.room-focus.is-maximized #dashboard-panel,
.room-focus.is-maximized #music-panel,
.room-focus.is-maximized #about-panel,
.room-focus.is-maximized #changelog-panel,
.room-focus.is-maximized .materials-panel,
.room-focus.is-maximized .leaderboard-panel{
  min-height:0;
}
.room-focus .focus-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.room-focus h2{margin:0;font-size:17px}.room-focus p{margin:7px 0 0;color:var(--room-muted);font-size:12px;line-height:1.5}
.focus-actions{display:flex;align-items:center;gap:6px}
.focus-tool{width:32px;height:32px;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(255,255,255,.07);color:#fff;display:grid;place-items:center;cursor:pointer;font-size:16px;line-height:1;transition:.18s ease}
.focus-tool:hover,.focus-tool:focus-visible{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);outline:none;transform:translateY(-1px)}
.focus-close{font-size:20px}

@media (max-width:800px){
  .regular-bg{background-position:center center}
  .regular-topbar{top:10px;left:10px;right:10px}
  .regular-brand{padding:8px 10px;border-radius:15px}.regular-brand .brand-icon{width:34px;height:34px}.regular-brand strong{font-size:12px}.regular-brand span{font-size:9px}
  .regular-actions{gap:7px}.regular-actions button{width:42px;height:42px;border-radius:13px;font-size:16px}
  .student-badge{top:62px;left:10px;min-width:150px;padding:8px 11px;border-radius:13px}
  .student-badge strong{font-size:13px}.student-badge span{font-size:10px}
  .room-zone{width:55px;height:55px}
  .zone-label{min-width:108px}
  /* Mobile: phone-style bottom sheet, matching the Club mobile language. */
  .mobile-menu-grid{
    position:absolute;
    z-index:6;
    left:50%;
    right:auto;
    bottom:max(12px, env(safe-area-inset-bottom));
    width:min(92vw,430px);
    transform:translateX(-50%);
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(4,auto);
    gap:8px;
    padding:28px 12px calc(14px + env(safe-area-inset-bottom));
    border:1px solid rgba(255,255,255,.18);
    border-radius:26px;
    background:rgba(18,24,28,.66);
    box-shadow:0 18px 55px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.1);
    backdrop-filter:blur(18px) saturate(125%);
    -webkit-backdrop-filter:blur(18px) saturate(125%);
  }
  .mobile-menu-grid::before{
    content:"";
    position:absolute;
    top:10px;
    left:50%;
    width:48px;
    height:5px;
    transform:translateX(-50%);
    border-radius:999px;
    background:rgba(255,255,255,.58);
    box-shadow:0 1px 0 rgba(0,0,0,.12);
  }
  .mobile-menu-grid .room-zone{
    position:relative;
    inset:auto;
    width:auto;
    height:58px;
    min-width:0;
    transform:none;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    padding:0 12px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.28);
    background:rgba(255,255,255,.022);
    box-shadow:0 4px 14px rgba(0,0,0,.07);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    text-align:left;
  }
  .mobile-menu-grid .room-zone::before,
  .mobile-menu-grid .room-zone::after{display:none}
  .mobile-menu-grid .room-zone:nth-child(1){background:linear-gradient(135deg,rgba(57,91,255,.34),rgba(57,91,255,.12))}
  .mobile-menu-grid .room-zone:nth-child(2){background:linear-gradient(135deg,rgba(255,166,54,.28),rgba(255,166,54,.10))}
  .mobile-menu-grid .room-zone:nth-child(3){background:linear-gradient(135deg,rgba(34,190,176,.28),rgba(34,190,176,.10))}
  .mobile-menu-grid .room-zone:nth-child(4){background:linear-gradient(135deg,rgba(182,72,224,.28),rgba(182,72,224,.10))}
  .mobile-menu-grid .room-zone:nth-child(5){background:linear-gradient(135deg,rgba(226,67,99,.28),rgba(226,67,99,.10))}
  .mobile-menu-grid .room-zone:nth-child(6){background:linear-gradient(135deg,rgba(54,121,224,.28),rgba(54,121,224,.10))}
  .mobile-menu-grid .room-zone:nth-child(7){background:linear-gradient(135deg,rgba(238,169,55,.28),rgba(238,169,55,.10))}
  .mobile-menu-grid .room-zone:nth-child(8){background:linear-gradient(135deg,rgba(105,82,221,.28),rgba(105,82,221,.10))}
  .mobile-menu-grid .room-zone:hover,
  .mobile-menu-grid .room-zone:focus-visible,
  .mobile-menu-grid .room-zone.is-focused{
    transform:none;
    background:rgba(255,214,133,.14);
    border-color:rgba(255,224,166,.68);
    box-shadow:0 0 20px rgba(255,213,128,.20);
  }
  .mobile-menu-grid .zone-icon{
    flex:0 0 25px;
    width:25px;
    text-align:center;
    font-size:18px;
  }
  .mobile-menu-grid .zone-label{
    position:static;
    min-width:0;
    padding:0;
    transform:none;
    opacity:1;
    pointer-events:none;
    background:transparent;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    text-align:left;
    white-space:normal;
    overflow:visible;
  }
  .mobile-menu-grid .zone-label strong{font-size:11px;line-height:1.15;white-space:nowrap;overflow:visible;text-overflow:clip;display:block}
  .mobile-menu-grid .zone-label small{font-size:8px;line-height:1.2;white-space:nowrap;overflow:visible;text-overflow:clip}
  .room-focus{bottom:calc(12px + 4 * 58px + 3 * 8px + 28px);padding:14px 15px;border-radius:17px;z-index:10}
  .room-focus.is-maximized{left:8px;right:8px;top:8px;bottom:max(8px,env(safe-area-inset-bottom));width:auto;max-height:none;transform:scale(1)}
  .focus-tool{width:30px;height:30px;font-size:14px}
  /* Mobile sub-menu mode: once a feature is opened, remove the main hotspot grid
     from the viewport so the learning panel gets the space it needs. */
  .regular-world.is-focus-open .mobile-menu-grid{display:none}
  .regular-world.is-focus-open .room-focus{
    left:10px;right:10px;bottom:max(10px, env(safe-area-inset-bottom));transform:scale(.16);
    width:auto;max-height:calc(100dvh - 82px);overflow:auto;
  }
  .regular-world.is-focus-open .room-focus.is-open{transform:scale(1)}
  .regular-world.is-focus-open .materials-list{max-height:none}
}

@media (max-height:650px) and (min-width:801px){
  .regular-topbar{top:10px}.student-badge{top:70px}.room-zone{width:56px;height:56px}.room-focus{bottom:12px}
}

/* v06 — student materials and progress */
.materials-panel{margin-top:14px}
.student-material-status{font-size:11px;color:var(--room-muted);margin-bottom:8px;min-height:16px}
.materials-list{display:grid;gap:8px;max-height:min(46vh,360px);overflow:auto;padding-right:2px}
.material-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.045);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.material-card-order{font-size:11px;font-weight:800;color:rgba(255,232,187,.82)}
.material-card-main h3{margin:0;font-size:12px}.material-card-main p{margin:4px 0 7px;font-size:10px;line-height:1.4;color:var(--room-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.material-progress-row{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:rgba(255,255,255,.72)}
.material-progress-track{height:4px;margin-top:4px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}.material-progress-track span{display:block;height:100%;border-radius:inherit;background:rgba(255,220,150,.72)}
.material-open,.material-back-list,.material-complete{border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.08);color:#fff;padding:8px 10px;font-size:10px;cursor:pointer;white-space:nowrap}.material-open:hover,.material-back-list:hover,.material-complete:hover{background:rgba(255,255,255,.14)}
.material-detail{padding:12px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.045)}
.material-detail-meta{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,232,187,.85);font-weight:800;margin-bottom:9px}
.material-detail-content{font-size:11px;line-height:1.65;color:rgba(255,255,255,.9);max-height:min(38vh,280px);overflow:auto;padding-right:4px}
.material-detail-actions{display:flex;justify-content:space-between;gap:8px;margin-top:12px}
.material-complete:disabled{opacity:.65;cursor:default}
@media(max-width:800px){.materials-list{max-height:38vh}.material-card{grid-template-columns:27px minmax(0,1fr) auto;padding:9px}.material-card-main p{font-size:9px}.material-open,.material-back-list,.material-complete{padding:7px 8px}.material-detail-content{max-height:30vh}}

/* v10.5.27 — Exercise final QA: timer + submission lock */
.quiz-timer{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 2px;padding:10px 13px;border:1px solid rgba(255,224,166,.24);border-radius:13px;background:rgba(22,31,37,.94);backdrop-filter:blur(10px)}.quiz-timer span{font-size:8px;letter-spacing:.12em;color:var(--room-muted)}.quiz-timer strong{font-variant-numeric:tabular-nums;font-size:17px;letter-spacing:.04em}.quiz-timer.is-warning{border-color:rgba(255,145,110,.55)}.quiz-timeout-note{font-size:10px;opacity:.72}@media(max-width:800px){.quiz-timer{padding:9px 11px}.quiz-timer strong{font-size:16px}}

/* v08 quiz */
.student-quiz{display:grid;gap:14px}.quiz-question{margin:0;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.035)}.quiz-question legend{padding:0 0 10px;width:100%;font-weight:700;line-height:1.4}.quiz-question legend span{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:8px;border-radius:9px;background:rgba(255,255,255,.1);font-size:.8rem}.quiz-option{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-top:7px;border:1px solid rgba(255,255,255,.12);border-radius:12px;cursor:pointer;background:rgba(0,0,0,.06)}.quiz-option:has(input:checked){border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.1)}.quiz-option input{accent-color:currentColor}.quiz-actions{display:flex;justify-content:space-between;gap:10px;align-items:center}.quiz-result{text-align:center;padding:28px 16px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.04)}.quiz-result h3{font-size:3rem;margin:8px 0}.quiz-result p{margin:0 0 18px}.exercise-json-help{font-size:.82rem;opacity:.72;line-height:1.5}.exercise-json-help code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}

/* v10 leaderboard */
.leaderboard-panel{margin-top:14px}.leaderboard-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.leaderboard-filters label{display:grid;gap:4px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--room-muted)}.leaderboard-filters select{width:100%;padding:8px 9px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(18,28,34,.92);color:#fff;font-size:10px;color-scheme:dark}.leaderboard-filters select option{background:#18242b;color:#fff}.leaderboard-filters select optgroup{background:#18242b;color:#fff}.leaderboard-you{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;padding:12px;border:1px solid rgba(255,224,166,.3);border-radius:14px;background:rgba(255,214,133,.07);margin-bottom:10px}.leaderboard-you>span{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:var(--room-muted)}.leaderboard-you>strong{font-size:22px}.leaderboard-you div{min-width:0}.leaderboard-you b,.leaderboard-you small{display:block}.leaderboard-you b{font-size:11px}.leaderboard-you small{font-size:9px;color:var(--room-muted);margin-top:2px}.leaderboard-list{display:grid;gap:7px;max-height:min(42vh,340px);overflow:auto;padding-right:2px}.leaderboard-row{display:grid;grid-template-columns:30px 30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.035)}.leaderboard-row.is-you{border-color:rgba(255,224,166,.45);background:rgba(255,214,133,.09)}.leaderboard-rank{font-size:10px;font-weight:800;color:rgba(255,232,187,.86)}.leaderboard-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);font-size:10px;font-weight:800}.leaderboard-main{min-width:0}.leaderboard-main strong,.leaderboard-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-main strong{font-size:10px}.leaderboard-main small{font-size:8px;color:var(--room-muted);margin-top:2px}.leaderboard-points{text-align:right}.leaderboard-points b{font-size:12px}.leaderboard-points span{display:block;font-size:7px;color:var(--room-muted)}.leaderboard-note{font-size:8px;line-height:1.45;color:var(--room-muted);margin:9px 2px 0}.is-error{color:#ffd0d0!important}@media(max-width:800px){.leaderboard-list{max-height:none}.leaderboard-filters{grid-template-columns:1fr 1fr}.leaderboard-row{grid-template-columns:27px 28px minmax(0,1fr) auto;padding:8px}.leaderboard-you{padding:10px}}

/* v10.4 — My Room: real account/profile/progress data */
.my-room-panel{margin-top:14px}.my-room-profile-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(255,255,255,.15);border-radius:16px;background:rgba(255,255,255,.045)}.my-room-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:rgba(255,214,133,.12);border:1px solid rgba(255,224,166,.28);font-size:20px}.my-room-profile-card h3{margin:0;font-size:15px}.my-room-profile-card p{margin:3px 0;font-size:10px;color:var(--room-muted)}.my-room-profile-card small{font-size:9px;color:rgba(255,255,255,.72)}.my-room-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.my-room-chip{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.my-room-chip.muted{opacity:.6}.my-room-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.my-room-stats article{padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.035)}.my-room-stats span,.my-room-stats small{display:block;color:var(--room-muted);font-size:8px}.my-room-stats strong{display:block;font-size:18px;margin:4px 0}.my-room-stats small b{color:#fff}.my-room-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:14px 2px 7px}.my-room-section-head h3{margin:0;font-size:11px}.my-room-section-head span{font-size:8px;color:var(--room-muted)}.my-room-activity{display:grid;gap:6px}.my-room-activity-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:rgba(255,255,255,.025)}.my-room-activity-item strong,.my-room-activity-item small{display:block}.my-room-activity-item strong{font-size:9px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-room-activity-item small,.my-room-activity-item time{font-size:8px;color:var(--room-muted)}.my-room-activity-item time{white-space:nowrap}.my-room-empty{padding:12px;text-align:center;border:1px dashed rgba(255,255,255,.13);border-radius:12px;color:var(--room-muted);font-size:9px}
@media(max-width:800px){.my-room-stats{grid-template-columns:1fr 1fr}.my-room-activity-item strong{max-width:180px}}

/* v10.5.2 navigation integrity: Regular World stays above the gateway layer. */
.regular-world{z-index:20}


/* v10.5.9 — Content surface follows Day/Night room mode.
   Night keeps the existing glass/dark surface; Day switches content to a clean
   white reading surface with dark text while leaving the room artwork unchanged. */
.regular-world:not(.night) .room-focus{
  --room-text:#15191d;
  --room-muted:#5e6872;
  --room-panel:#ffffff;
  --room-panel-strong:#ffffff;
  --room-border:rgba(20,30,40,.14);
  color:#15191d;
  background:#fff;
  border-color:rgba(20,30,40,.14);
  box-shadow:0 18px 50px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.9);
}
.regular-world:not(.night) .room-focus h2,
.regular-world:not(.night) .room-focus legend,
.regular-world:not(.night) .room-focus strong,
.regular-world:not(.night) .room-focus b,
.regular-world:not(.night) .room-focus label{color:#15191d}
.regular-world:not(.night) .room-focus p,
.regular-world:not(.night) .room-focus small,
.regular-world:not(.night) .room-focus .student-material-status,
.regular-world:not(.night) .room-focus .leaderboard-note,
.regular-world:not(.night) .room-focus .leaderboard-filters label,
.regular-world:not(.night) .room-focus .my-room-stats span,
.regular-world:not(.night) .room-focus .my-room-stats small,
.regular-world:not(.night) .room-focus .my-room-section-head span,
.regular-world:not(.night) .room-focus .my-room-activity-item small,
.regular-world:not(.night) .room-focus .my-room-activity-item time{color:#5e6872}
.regular-world:not(.night) .room-focus .focus-tool{
  color:#15191d;
  background:#f3f5f7;
  border-color:rgba(20,30,40,.14);
}
.regular-world:not(.night) .room-focus .focus-tool:hover,
.regular-world:not(.night) .room-focus .focus-tool:focus-visible{background:#e9edf1;border-color:rgba(20,30,40,.24)}
.regular-world:not(.night) .room-focus .material-card,
.regular-world:not(.night) .room-focus .material-detail,
.regular-world:not(.night) .room-focus .quiz-question,
.regular-world:not(.night) .room-focus .quiz-result,
.regular-world:not(.night) .room-focus .leaderboard-you,
.regular-world:not(.night) .room-focus .leaderboard-row,
.regular-world:not(.night) .room-focus .my-room-profile-card,
.regular-world:not(.night) .room-focus .my-room-stats article,
.regular-world:not(.night) .room-focus .my-room-activity-item{
  color:#15191d;
  background:#f6f7f8;
  border-color:rgba(20,30,40,.12);
}
.regular-world:not(.night) .room-focus .quiz-option{color:#15191d;background:#fff;border-color:rgba(20,30,40,.12)}
.regular-world:not(.night) .room-focus .quiz-option:has(input:checked){background:#eef1f4;border-color:rgba(20,30,40,.28)}
.regular-world:not(.night) .room-focus .leaderboard-rank{color:#4f5963}
.regular-world:not(.night) .room-focus .leaderboard-avatar{background:#e9edf1;color:#15191d}
.regular-world:not(.night) .room-focus .leaderboard-you{background:#fff8e8;border-color:rgba(170,125,35,.3)}
.regular-world:not(.night) .room-focus .leaderboard-you>span{color:#6a5a38}
.regular-world:not(.night) .room-focus .leaderboard-points span{color:#5e6872}
.regular-world:not(.night) .room-focus .my-room-avatar{background:#fff3d5;border-color:rgba(170,125,35,.25)}
.regular-world:not(.night) .room-focus .my-room-chip{background:#eef1f4;border-color:rgba(20,30,40,.1);color:#303840}
.regular-world:not(.night) .room-focus .my-room-stats small b{color:#15191d}
.regular-world:not(.night) .room-focus .material-open,
.regular-world:not(.night) .room-focus .material-back-list,
.regular-world:not(.night) .room-focus .material-complete{
  color:#15191d;background:#fff;border-color:rgba(20,30,40,.16)
}
.regular-world:not(.night) .room-focus .material-open:hover,
.regular-world:not(.night) .room-focus .material-back-list:hover,
.regular-world:not(.night) .room-focus .material-complete:hover{background:#eef1f4}
.regular-world:not(.night) .room-focus .material-progress-track{background:#e2e6ea}
.regular-world:not(.night) .room-focus .material-progress-track span{background:#b9892e}
.regular-world:not(.night) .room-focus .is-error{color:#b42318!important}

/* v10.5.10 — Student Dashboard / Learning Overview */
.student-badge{
  appearance:none;-webkit-appearance:none;color:inherit;font:inherit;text-align:left;cursor:pointer;
}
.student-badge:hover,.student-badge:focus-visible{border-color:rgba(255,224,166,.7);box-shadow:0 14px 38px rgba(0,0,0,.25),0 0 0 3px rgba(255,220,150,.12);outline:none;transform:translateY(-1px)}
.dashboard-panel{margin-top:14px;display:grid;gap:12px}
.dashboard-welcome{padding:13px 14px;border-radius:15px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045)}
.dashboard-eyebrow{display:block;font-size:8px;letter-spacing:.16em;font-weight:800;color:rgba(255,232,187,.9);margin-bottom:4px}
.dashboard-welcome h3,.dashboard-continue h3{margin:0;font-size:16px}.dashboard-welcome p,.dashboard-continue p{margin:4px 0 0;color:var(--room-muted);font-size:11px}
.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dashboard-stats article{padding:11px;border-radius:13px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);min-width:0}
.dashboard-stats span,.dashboard-stats small{display:block;color:var(--room-muted);font-size:9px}.dashboard-stats strong{display:block;margin:5px 0 3px;font-size:19px}.dashboard-stats small{font-size:9px}
.dashboard-continue{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:15px;border:1px solid rgba(255,214,133,.25);background:rgba(255,214,133,.07)}
.dashboard-continue button{flex:0 0 auto;padding:9px 12px;border-radius:10px;border:1px solid rgba(255,224,166,.3);background:rgba(255,255,255,.08);color:inherit;cursor:pointer;font:inherit;font-size:10px;font-weight:700}
.dashboard-continue button:hover,.dashboard-continue button:focus-visible{background:rgba(255,255,255,.14);outline:none}
.dashboard-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.dashboard-section-head h3{margin:0;font-size:13px}.dashboard-section-head span{font-size:9px;color:var(--room-muted)}
.dashboard-activity{display:grid;gap:7px}.dashboard-activity-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.035)}
.dashboard-activity-dot{width:7px;height:7px;border-radius:50%;background:var(--room-glow);box-shadow:0 0 9px rgba(255,214,133,.35)}
.dashboard-activity-item strong{font-size:10px}.dashboard-activity-item p{margin:2px 0 0;color:var(--room-muted);font-size:9px}.dashboard-activity-item time{font-size:8px;color:var(--room-muted);white-space:nowrap}.dashboard-empty{padding:15px;text-align:center;color:var(--room-muted);font-size:10px;border:1px dashed rgba(255,255,255,.14);border-radius:12px}
.regular-world:not(.night) .student-badge{color:#15191d;background:rgba(255,255,255,.78);border-color:rgba(20,30,40,.12)}
.regular-world:not(.night) .student-badge span{color:#5e6872}.regular-world:not(.night) .student-badge .eyebrow,.regular-world:not(.night) .dashboard-eyebrow{color:#8b6720}
.regular-world:not(.night) .dashboard-welcome,.regular-world:not(.night) .dashboard-stats article,.regular-world:not(.night) .dashboard-activity-item{background:#f6f7f8;border-color:rgba(20,30,40,.12);color:#15191d}
.regular-world:not(.night) .dashboard-welcome p,.regular-world:not(.night) .dashboard-continue p,.regular-world:not(.night) .dashboard-stats span,.regular-world:not(.night) .dashboard-stats small,.regular-world:not(.night) .dashboard-section-head span,.regular-world:not(.night) .dashboard-activity-item p,.regular-world:not(.night) .dashboard-activity-item time,.regular-world:not(.night) .dashboard-empty{color:#5e6872}
.regular-world:not(.night) .dashboard-continue{background:#fff8e8;border-color:rgba(170,125,35,.25);color:#15191d}.regular-world:not(.night) .dashboard-continue button{background:#fff;border-color:rgba(20,30,40,.14);color:#15191d}
@media (max-width:800px){
  .student-badge{width:max-content;max-width:calc(100vw - 140px);min-width:150px}
  .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-continue{align-items:flex-start;flex-direction:column}.dashboard-continue button{width:100%}
}

/* v10.5.11 — Student Dashboard visual polish */
.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:92px;padding:16px 18px;overflow:hidden;position:relative}
.dashboard-welcome::after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-42px;top:-54px;border:1px solid rgba(255,220,150,.12);box-shadow:0 0 50px rgba(255,214,133,.08)}
.dashboard-welcome-copy{min-width:0;position:relative;z-index:1}
.dashboard-welcome h3{font-size:20px;letter-spacing:-.02em}
.dashboard-welcome p{font-size:11px}
.dashboard-progress-ring{position:relative;z-index:1;flex:0 0 62px;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--room-glow) 0deg,rgba(255,255,255,.08) 0deg);box-shadow:inset 0 0 0 7px rgba(0,0,0,.12),0 8px 24px rgba(0,0,0,.14)}
.dashboard-progress-ring::after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--room-panel-strong)}
.dashboard-progress-ring span{position:relative;z-index:1;font-size:12px;font-weight:800}
.dashboard-progress-card{padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035)}
.dashboard-progress-head{display:flex;align-items:end;justify-content:space-between;gap:12px}
.dashboard-progress-head span{display:block;color:var(--room-muted);font-size:9px}.dashboard-progress-head strong{display:block;margin-top:2px;font-size:15px}.dashboard-progress-head small{color:var(--room-muted);font-size:9px;white-space:nowrap}
.dashboard-progress-track{height:7px;margin-top:9px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}.dashboard-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(255,214,133,.55),var(--room-glow));box-shadow:0 0 14px rgba(255,214,133,.22);transition:width .5s ease}
.dashboard-stats article{display:flex;align-items:center;gap:9px;min-height:67px}.dashboard-stat-icon{width:28px!important;height:28px;border-radius:9px;display:grid!important;place-items:center;background:rgba(255,214,133,.09);border:1px solid rgba(255,220,150,.14);font-size:12px!important;color:var(--room-glow)!important;flex:0 0 auto}.dashboard-stats article>div{min-width:0}.dashboard-stats article>div>span{font-size:8px}.dashboard-stats strong{font-size:18px}.dashboard-stats small{font-size:8px}
.regular-world:not(.night) .dashboard-progress-card{background:#f6f7f8;border-color:rgba(20,30,40,.12);color:#15191d}.regular-world:not(.night) .dashboard-progress-head span,.regular-world:not(.night) .dashboard-progress-head small{color:#5e6872}.regular-world:not(.night) .dashboard-progress-track{background:#e2e6ea}.regular-world:not(.night) .dashboard-progress-track span{background:#b9892e}.regular-world:not(.night) .dashboard-progress-ring::after{background:#f6f7f8}.regular-world:not(.night) .dashboard-progress-ring{box-shadow:inset 0 0 0 7px rgba(20,30,40,.06),0 8px 24px rgba(20,30,40,.08)}.regular-world:not(.night) .dashboard-stat-icon{background:#fff3d5;border-color:rgba(170,125,35,.2);color:#8b6720!important}
@media(max-width:700px){.dashboard-welcome{min-height:82px;padding:14px}.dashboard-welcome h3{font-size:17px}.dashboard-progress-ring{width:54px;height:54px;flex-basis:54px}.dashboard-progress-ring::after{inset:6px}.dashboard-progress-head{align-items:flex-start;flex-direction:column;gap:3px}.dashboard-progress-track{margin-top:8px}.dashboard-stats{gap:7px}.dashboard-stats article{min-height:62px;padding:9px}.dashboard-stat-icon{width:25px!important;height:25px;font-size:11px!important}.dashboard-stats strong{font-size:16px}.dashboard-activity-item{grid-template-columns:9px minmax(0,1fr);padding:9px}.dashboard-activity-item time{grid-column:2;justify-self:start}.dashboard-section-head span{display:none}}

/* v10.5.16 — Content-window scrollbar chrome hardening. Scrolling remains enabled. */
.room-focus,
.room-focus *,
.dashboard-panel,
.materials-list,
.material-detail-content,
.leaderboard-list{
  scrollbar-width:none !important;
  scrollbar-color:transparent transparent !important;
  -ms-overflow-style:none !important;
}
.room-focus::-webkit-scrollbar,
.room-focus *::-webkit-scrollbar,
.dashboard-panel::-webkit-scrollbar,
.materials-list::-webkit-scrollbar,
.material-detail-content::-webkit-scrollbar,
.leaderboard-list::-webkit-scrollbar,
.room-focus::-webkit-scrollbar-thumb,
.room-focus *::-webkit-scrollbar-thumb,
.dashboard-panel::-webkit-scrollbar-thumb,
.materials-list::-webkit-scrollbar-thumb,
.material-detail-content::-webkit-scrollbar-thumb,
.leaderboard-list::-webkit-scrollbar-thumb,
.room-focus::-webkit-scrollbar-track,
.room-focus *::-webkit-scrollbar-track,
.dashboard-panel::-webkit-scrollbar-track,
.materials-list::-webkit-scrollbar-track,
.material-detail-content::-webkit-scrollbar-track,
.leaderboard-list::-webkit-scrollbar-track{
  width:0 !important; height:0 !important; min-width:0 !important; min-height:0 !important;
  display:none !important; background:transparent !important; border:0 !important;
}

/* v10.5.16 — Mobile scrollbar chrome hardening. Preserve scrolling, hide native scrollbar UI even when browser/OS ignores display:none. */
@media (max-width:800px){
  .regular-world .room-focus,
  .regular-world .room-focus *,
  .regular-world .dashboard-panel,
  .regular-world .materials-list,
  .regular-world .material-detail-content,
  .regular-world .leaderboard-list{
    scrollbar-width:none !important;
    scrollbar-color:transparent transparent !important;
    -ms-overflow-style:none !important;
  }
  .regular-world .room-focus::-webkit-scrollbar,
  .regular-world .room-focus *::-webkit-scrollbar,
  .regular-world .dashboard-panel::-webkit-scrollbar,
  .regular-world .materials-list::-webkit-scrollbar,
  .regular-world .material-detail-content::-webkit-scrollbar,
  .regular-world .leaderboard-list::-webkit-scrollbar,
  .regular-world .room-focus::-webkit-scrollbar-thumb,
  .regular-world .room-focus *::-webkit-scrollbar-thumb,
  .regular-world .dashboard-panel::-webkit-scrollbar-thumb,
  .regular-world .materials-list::-webkit-scrollbar-thumb,
  .regular-world .material-detail-content::-webkit-scrollbar-thumb,
  .regular-world .leaderboard-list::-webkit-scrollbar-thumb,
  .regular-world .room-focus::-webkit-scrollbar-track,
  .regular-world .room-focus *::-webkit-scrollbar-track,
  .regular-world .dashboard-panel::-webkit-scrollbar-track,
  .regular-world .materials-list::-webkit-scrollbar-track,
  .regular-world .material-detail-content::-webkit-scrollbar-track,
  .regular-world .leaderboard-list::-webkit-scrollbar-track{
    width:0 !important;
    height:0 !important;
    min-width:0 !important;
    min-height:0 !important;
    display:none !important;
    background:transparent !important;
    border:0 !important;
  }
}

/* v10.5.11 — Mobile clean-scroll polish: keep scrolling, hide native scrollbar chrome. */
@media (max-width:800px){
  .room-focus,
  .room-focus .materials-list,
  .room-focus .material-detail-content,
  .room-focus .leaderboard-list{
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .room-focus::-webkit-scrollbar,
  .room-focus .materials-list::-webkit-scrollbar,
  .room-focus .material-detail-content::-webkit-scrollbar,
  .room-focus .leaderboard-list::-webkit-scrollbar{
    width:0;
    height:0;
    display:none;
  }
}

.dashboard-welcome-meta{display:flex;align-items:center;gap:7px;position:relative;z-index:1;flex:0 0 auto}.dashboard-xp-chip,.dashboard-level-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:45px;height:45px;padding:4px 7px;border-radius:11px;background:rgba(255,214,133,.08);border:1px solid rgba(255,220,150,.14)}.dashboard-xp-chip span,.dashboard-level-chip span{font-size:7px!important;letter-spacing:.12em;font-weight:800;color:var(--room-muted)!important}.dashboard-xp-chip strong,.dashboard-level-chip strong{font-size:13px!important;margin:2px 0 0!important;color:var(--room-glow)}.dashboard-xp-card{padding:11px 14px;border-radius:14px;border:1px solid rgba(255,214,133,.16);background:rgba(255,214,133,.045)}.dashboard-xp-head{display:flex;align-items:end;justify-content:space-between;gap:10px}.dashboard-xp-head span{display:block;color:var(--room-muted);font-size:9px}.dashboard-xp-head strong{display:block;margin-top:2px;font-size:15px}.dashboard-xp-head strong b{font-weight:800}.dashboard-xp-head small{color:var(--room-muted);font-size:9px;white-space:nowrap}.dashboard-xp-track{height:6px;margin-top:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.dashboard-xp-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(255,214,133,.5),var(--room-glow));transition:width .5s ease}.regular-world:not(.night) .dashboard-xp-card{background:#fff8e8;border-color:rgba(170,125,35,.22);color:#15191d}.regular-world:not(.night) .dashboard-xp-head span,.regular-world:not(.night) .dashboard-xp-head small{color:#5e6872}.regular-world:not(.night) .dashboard-xp-track{background:#eadfca}.regular-world:not(.night) .dashboard-xp-chip,.regular-world:not(.night) .dashboard-level-chip{background:#fff3d5;border-color:rgba(170,125,35,.2)}
@media(max-width:700px){.dashboard-welcome-meta{gap:4px}.dashboard-xp-chip,.dashboard-level-chip{min-width:39px;height:39px;padding:3px 5px}.dashboard-xp-chip strong,.dashboard-level-chip strong{font-size:11px!important}.dashboard-xp-head{align-items:flex-start;flex-direction:column;gap:3px}.dashboard-xp-head small{white-space:normal}}

/* v10.5.13 — Gamification v2 */
.dashboard-badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.dashboard-badge{min-width:0;padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.035);display:flex;gap:9px;align-items:center}
.dashboard-badge-icon{width:30px;height:30px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;background:rgba(255,214,133,.1);border:1px solid rgba(255,220,150,.16);font-size:13px}
.dashboard-badge-copy{min-width:0}.dashboard-badge-copy strong{display:block;font-size:10px}.dashboard-badge-copy small{display:block;margin-top:3px;color:var(--room-muted);font-size:8px;line-height:1.35}
.dashboard-badge.is-locked{opacity:.5;filter:saturate(.45)}.dashboard-badge.is-earned{box-shadow:0 0 18px rgba(255,214,133,.06)}
.dashboard-xp-activity-list{display:grid;gap:7px}.dashboard-xp-event{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:11px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.dashboard-xp-event-copy{min-width:0}.dashboard-xp-event-copy strong{display:block;font-size:10px}.dashboard-xp-event-copy small{display:block;margin-top:2px;color:var(--room-muted);font-size:8px}.dashboard-xp-event-value{font-size:11px;font-weight:800;color:var(--room-glow);white-space:nowrap}
.dashboard-gamification-empty{padding:12px;text-align:center;color:var(--room-muted);font-size:9px;border:1px dashed rgba(255,255,255,.12);border-radius:11px}
.regular-world:not(.night) .dashboard-badge,.regular-world:not(.night) .dashboard-xp-event{background:#f6f7f8;border-color:rgba(20,30,40,.12);color:#15191d}.regular-world:not(.night) .dashboard-badge-copy small,.regular-world:not(.night) .dashboard-xp-event-copy small,.regular-world:not(.night) .dashboard-gamification-empty{color:#5e6872}.regular-world:not(.night) .dashboard-badge-icon{background:#fff3d5;border-color:rgba(170,125,35,.2)}
@media(max-width:700px){.dashboard-badges{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-badge{padding:8px}.dashboard-badge-copy small{font-size:7px}}


/* v10.5.20 — Gamification UX: XP gain, level-up, and achievement feedback. */
.dashboard-gamification-toast{position:sticky;top:0;z-index:20;width:max-content;max-width:min(100%,420px);margin:0 auto 4px;padding:9px 14px;border-radius:999px;border:1px solid rgba(255,220,150,.28);background:rgba(25,22,16,.9);backdrop-filter:blur(12px) saturate(125%);color:#fff7e5;font-size:10px;font-weight:800;letter-spacing:.01em;box-shadow:0 10px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(-8px) scale(.96);transition:opacity .24s ease,transform .24s ease;pointer-events:none}
.dashboard-gamification-toast.is-visible{opacity:1;transform:translateY(0) scale(1)}
.dashboard-gamification-toast[data-kind="level"]{border-color:rgba(255,214,133,.55);box-shadow:0 0 26px rgba(255,214,133,.16),0 10px 30px rgba(0,0,0,.18)}
.dashboard-gamification-toast[data-kind="badge"]{border-color:rgba(255,255,255,.28)}
.dashboard-xp-chip strong.is-xp-pulse,.dashboard-xp-head strong b.is-xp-pulse{animation:elp-xp-pulse .7s ease both}
.dashboard-level-chip strong.is-level-up{animation:elp-level-pop .85s cubic-bezier(.2,.9,.25,1.3) both}
@keyframes elp-xp-pulse{0%{transform:scale(1)}35%{transform:scale(1.22);text-shadow:0 0 16px var(--room-glow)}100%{transform:scale(1)}}
@keyframes elp-level-pop{0%{transform:scale(1) rotate(0)}35%{transform:scale(1.32) rotate(-4deg);text-shadow:0 0 18px var(--room-glow)}65%{transform:scale(.94) rotate(2deg)}100%{transform:scale(1) rotate(0)}}
.regular-world:not(.night) .dashboard-gamification-toast{background:rgba(255,250,239,.96);color:#15191d;border-color:rgba(170,125,35,.3);box-shadow:0 10px 30px rgba(60,45,20,.14)}
@media(max-width:700px){.dashboard-gamification-toast{font-size:9px;padding:8px 12px}}

/* v10.5.21 — Developer About Me panel */
.about-panel{margin-top:14px;display:grid;gap:12px}
.about-hero{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid rgba(255,224,166,.24);border-radius:18px;background:linear-gradient(135deg,rgba(255,214,133,.11),rgba(255,255,255,.035));box-shadow:0 16px 34px rgba(0,0,0,.12)}
.about-avatar{width:64px;height:64px;flex:0 0 auto;border-radius:18px;display:grid;place-items:center;border:1px solid rgba(255,224,166,.34);background:radial-gradient(circle at 35% 30%,rgba(255,236,185,.25),rgba(255,214,133,.08) 55%,rgba(255,255,255,.04));font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--room-glow);box-shadow:inset 0 0 24px rgba(255,214,133,.08)}
.about-eyebrow,.about-card-label{display:block;font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--room-glow);font-weight:800}
.about-hero h3{margin:4px 0 0;font-size:19px;letter-spacing:-.02em}.about-hero p{margin:5px 0 0!important;max-width:600px}
.about-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:9px}.about-card{padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(255,255,255,.035);min-width:0}.about-card h4{margin:6px 0 6px;font-size:13px}.about-card p{margin:6px 0!important;font-size:10px!important;line-height:1.6!important}.about-story{grid-row:span 2}.about-list{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:7px}.about-list li{font-size:9px;padding-left:14px;position:relative;color:rgba(255,255,255,.84)}.about-list li::before{content:'✦';position:absolute;left:0;color:var(--room-glow)}.about-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.about-tags span{padding:5px 8px;border-radius:999px;border:1px solid rgba(255,224,166,.2);background:rgba(255,214,133,.07);font-size:8px;color:rgba(255,240,205,.9)}.about-quote{display:flex;flex-direction:column;justify-content:center}.about-quote p{font-size:12px!important;line-height:1.65!important;color:rgba(255,240,215,.92)!important}.about-footer{display:flex;justify-content:space-between;gap:10px;padding:2px 3px;font-size:8px;color:var(--room-muted)}
.regular-world:not(.night) .about-hero{background:linear-gradient(135deg,#fff8e8,#f6f7f8);border-color:rgba(170,125,35,.25)}.regular-world:not(.night) .about-avatar{background:#fff3d5;border-color:rgba(170,125,35,.25);color:#8b6720}.regular-world:not(.night) .about-card{background:#f8f9fa;border-color:rgba(20,30,40,.1)}.regular-world:not(.night) .about-list li{color:#303840}.regular-world:not(.night) .about-tags span{background:#fff3d5;border-color:rgba(170,125,35,.18);color:#5e4a22}.regular-world:not(.night) .about-quote p{color:#303840!important}
@media(max-width:700px){.about-hero{padding:14px;align-items:flex-start}.about-avatar{width:54px;height:54px;border-radius:15px}.about-hero h3{font-size:16px}.about-grid{grid-template-columns:1fr}.about-story{grid-row:auto}.about-footer{flex-direction:column;gap:3px}}

/* v10.5.22 — Regular Music Room */
.music-panel{margin-top:14px;display:grid;gap:10px}.music-hero{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid rgba(255,224,166,.22);border-radius:17px;background:linear-gradient(135deg,rgba(255,214,133,.1),rgba(255,255,255,.035))}.music-disc{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,224,166,.28);background:radial-gradient(circle,rgba(255,236,185,.18),rgba(255,214,133,.05) 60%,transparent 61%);font-size:22px;color:var(--room-glow);box-shadow:0 0 25px rgba(255,214,133,.08)}.music-eyebrow,.music-now span,.music-volume span{font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:var(--room-glow);font-weight:800}.music-hero h3{margin:4px 0 2px;font-size:18px}.music-hero p{margin:0!important;font-size:10px!important}.music-player-card{padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(255,255,255,.035)}.music-now{display:flex;align-items:center;justify-content:space-between;gap:10px}.music-now strong{display:block;margin-top:3px;font-size:13px}.music-now #music-status{color:var(--room-muted);letter-spacing:.08em}.music-progress{margin:10px 0}.music-progress input,.music-volume input{width:100%;accent-color:var(--room-glow)}.music-controls{display:flex;align-items:center;justify-content:center;gap:9px}.music-controls button{width:36px;height:36px;border-radius:11px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:inherit;cursor:pointer}.music-controls .music-play{width:44px;height:44px;border-radius:14px;background:rgba(255,214,133,.12);border-color:rgba(255,220,150,.25);color:var(--room-glow);font-size:15px}.music-volume{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin-top:10px}.music-volume b{font-size:9px;color:var(--room-muted);min-width:30px;text-align:right}.music-track-list{display:grid;gap:6px}.music-track{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;padding:9px 10px;border-radius:11px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);color:inherit;text-align:left;cursor:pointer}.music-track.is-active{border-color:rgba(255,220,150,.28);background:rgba(255,214,133,.07)}.music-track-index{font-size:9px;color:var(--room-muted)}.music-track strong{display:block;font-size:10px}.music-track small{display:block;margin-top:2px;font-size:8px;color:var(--room-muted)}.music-track-state{font-size:7px;letter-spacing:.12em;color:var(--room-glow);font-weight:800}.music-note{margin:0!important;font-size:8px!important;color:var(--room-muted)!important}.regular-world:not(.night) .music-hero{background:linear-gradient(135deg,#fff8e8,#f6f7f8);border-color:rgba(170,125,35,.22)}.regular-world:not(.night) .music-player-card,.regular-world:not(.night) .music-track{background:#f8f9fa;border-color:rgba(20,30,40,.1);color:#15191d}.regular-world:not(.night) .music-track.is-active{background:#fff3d5;border-color:rgba(170,125,35,.24)}.regular-world:not(.night) .music-track small,.regular-world:not(.night) .music-note,.regular-world:not(.night) .music-now #music-status,.regular-world:not(.night) .music-volume b{color:#5e6872}.regular-world:not(.night) .music-controls button{background:#fff;border-color:rgba(20,30,40,.1);color:#303840}.regular-world:not(.night) .music-controls .music-play{background:#fff3d5;color:#8b6720;border-color:rgba(170,125,35,.2)}
@media(max-width:700px){.music-hero{padding:13px}.music-disc{width:48px;height:48px}.music-hero h3{font-size:16px}.music-volume{grid-template-columns:auto 1fr auto}}

/* v10.5.24 — Exercise security + changelog */
.exercise-completed-card{opacity:.82}.exercise-completed-card .material-open:disabled{cursor:not-allowed;opacity:.7}
.changelog-panel{margin-top:14px;display:grid;gap:12px}.changelog-hero{padding:16px;border:1px solid rgba(255,224,166,.22);border-radius:17px;background:linear-gradient(135deg,rgba(255,214,133,.1),rgba(255,255,255,.035))}.changelog-eyebrow{display:block;font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--room-glow);font-weight:800}.changelog-hero h3{margin:5px 0 3px;font-size:19px}.changelog-hero p{margin:0!important;font-size:10px!important}.changelog-list{display:grid;gap:8px}.changelog-item{display:grid;grid-template-columns:74px 1fr;gap:12px;padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.035)}.changelog-version{font-size:10px;font-weight:900;color:var(--room-glow);letter-spacing:.04em}.changelog-item h4{margin:0 0 4px;font-size:12px}.changelog-item p,.changelog-item li{font-size:9px;line-height:1.55;color:var(--room-muted)}.changelog-item p{margin:0!important}.changelog-item ul{margin:7px 0 0;padding-left:16px}.regular-world:not(.night) .changelog-hero,.regular-world:not(.night) .changelog-item{background:#f8f9fa;border-color:rgba(20,30,40,.1);color:#15191d}.regular-world:not(.night) .changelog-item p,.regular-world:not(.night) .changelog-item li{color:#5e6872}
@media(max-width:700px){.changelog-hero{padding:13px}.changelog-hero h3{font-size:16px}.changelog-item{grid-template-columns:1fr;gap:5px}.changelog-version{font-size:9px}}
/* v10.5.33 — Assignment submission lock / revision state */
.assignment-locked{display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border-radius:12px;font-weight:700;opacity:.72;border:1px solid rgba(127,127,127,.28)}


/* Proportional typography and lighter glass surfaces */
.regular-world .regular-brand,
.regular-world .student-badge,
.regular-world .regular-actions button{
  background:rgba(18,27,32,.43);
  backdrop-filter:blur(14px) saturate(120%);
  -webkit-backdrop-filter:blur(14px) saturate(120%)
}
.regular-world .regular-brand strong{font-size:12px}
.regular-world .regular-brand span{font-size:9px}
.regular-world .student-badge{padding:8px 12px;min-width:158px}
.regular-world .student-badge strong{font-size:13px}
.regular-world .student-badge span{font-size:9px}
.regular-world .room-focus{
  background:rgba(13,20,24,.78);
  backdrop-filter:blur(18px) saturate(120%);
  -webkit-backdrop-filter:blur(18px) saturate(120%)
}
.regular-world .room-focus h2{font-size:18px}
.regular-world .room-focus > p{font-size:10px}
.regular-world .focus-tool{font-size:14px}

.regular-world:not(.night) .room-focus{
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(18px) saturate(115%);
  -webkit-backdrop-filter:blur(18px) saturate(115%)
}
.regular-world .room-zone{
  background:rgba(20,27,31,.26);
  border-color:rgba(255,255,255,.24);
  backdrop-filter:blur(8px) saturate(115%);
  -webkit-backdrop-filter:blur(8px) saturate(115%)
}
.regular-world .zone-label{
  background:rgba(14,20,24,.72);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)
}
.regular-world:not(.night) .zone-label{
  background:rgba(255,255,255,.82);
  color:#15191d
}

@media(max-width:800px){
  .regular-world .mobile-menu-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:repeat(3,auto);
    gap:7px;
    padding:25px 9px calc(10px + env(safe-area-inset-bottom));
    width:min(94vw,430px);
    background:rgba(17,24,29,.48);
    border-color:rgba(255,255,255,.20);
    backdrop-filter:blur(16px) saturate(120%);
    -webkit-backdrop-filter:blur(16px) saturate(120%)
  }
  .regular-world .mobile-menu-grid .room-zone{
    height:52px;
    padding:0 5px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:2px;
    text-align:center;
    border-radius:11px;
    background:rgba(255,255,255,.035)
  }
  .regular-world .mobile-menu-grid .zone-icon{
    width:auto;flex:0 0 auto;font-size:15px;line-height:1
  }
  .regular-world .mobile-menu-grid .zone-label{
    display:block;text-align:center;min-width:0
  }
  .regular-world .mobile-menu-grid .zone-label strong{
    font-size:8.5px;line-height:1.1;white-space:nowrap
  }
  .regular-world .mobile-menu-grid .zone-label small{
    display:none
  }
  .regular-world .mobile-menu-grid .room-zone:nth-child(1),
  .regular-world .mobile-menu-grid .room-zone:nth-child(2),
  .regular-world .mobile-menu-grid .room-zone:nth-child(3),
  .regular-world .mobile-menu-grid .room-zone:nth-child(4),
  .regular-world .mobile-menu-grid .room-zone:nth-child(5),
  .regular-world .mobile-menu-grid .room-zone:nth-child(6),
  .regular-world .mobile-menu-grid .room-zone:nth-child(7),
  .regular-world .mobile-menu-grid .room-zone:nth-child(8),
  .regular-world .mobile-menu-grid .room-zone:nth-child(9){
    background:rgba(255,255,255,.035)
  }
  .regular-world .room-focus{bottom:calc(12px + 3 * 52px + 2 * 7px + 26px)}
}

