:root {
  color-scheme: dark;
  --hero-image: url("assets/island-2050-holographic.webp");
  --ink: #06101d;
  --ink-2: #0b1727;
  --panel: rgba(12, 28, 46, 0.82);
  --panel-solid: #0f2237;
  --line: rgba(176, 225, 244, 0.16);
  --text: #eefbff;
  --muted: #9bb6c4;
  --cyan: #38d9ff;
  --cyan-2: #77edff;
  --amber: #ffbf69;
  --coral: #ff6b6b;
  --green: #50e3a4;
  --violet: #a78bfa;
  --radius: 22px;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--ink); scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background: var(--ink); color: var(--text); }
button, input, textarea { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, a:focus-visible {
  outline: 3px solid rgba(56, 217, 255, 0.7);
  outline-offset: 3px;
}
a { color: inherit; text-decoration: none; }

.view { display: none; min-height: 100vh; }
.view--active { display: block; animation: viewIn 420ms ease both; }
[hidden] { display: none !important; }
@keyframes viewIn { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }

.command-hero {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 69% 45%, rgba(37, 143, 174, 0.20), transparent 27%),
    radial-gradient(circle at 15% 80%, rgba(32, 111, 165, 0.18), transparent 32%),
    linear-gradient(135deg, #07111f 0%, #091929 52%, #07101b 100%);
}
.command-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--hero-image, none);
  background-position: 78% center;
  background-size: min(62vw, 920px) auto;
  background-repeat: no-repeat;
  opacity: 0.66;
  mix-blend-mode: screen;
  mask-image: linear-gradient(90deg, transparent 8%, black 52%, black 100%);
}
.command-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(5, 15, 27, 0.98) 0%, rgba(5, 15, 27, 0.87) 43%, rgba(5, 15, 27, 0.26) 72%, rgba(5, 15, 27, 0.68) 100%);
}
.mission-grid {
  position: absolute; inset: 0; z-index: -2; opacity: 0.18;
  background-image: linear-gradient(rgba(56,217,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(56,217,255,.18) 1px, transparent 1px);
  background-size: 68px 68px;
  mask-image: linear-gradient(to bottom, transparent, #000 30%, transparent 95%);
  transform: perspective(700px) rotateX(58deg) scale(1.6) translateY(18%);
}
.aurora { position: absolute; width: 38rem; height: 38rem; border-radius: 50%; filter: blur(110px); z-index: -2; opacity: .15; }
.aurora--one { background: var(--cyan); top: -23rem; left: 30%; }
.aurora--two { background: var(--coral); right: -27rem; bottom: -23rem; }

.home-topbar, .simple-header, .mission-header, .student-header {
  min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 18px clamp(20px, 5vw, 76px); position: relative; z-index: 4;
}
.home-top-actions { display:flex; align-items:center; gap:9px; }
.namsbru-return { display:inline-flex; align-items:center; gap:8px; padding:11px 14px; border:1px solid rgba(80,227,164,.28); border-radius:999px; color:#c8f4df; background:rgba(80,227,164,.055); font-size:.84rem; font-weight:850; transition:.2s ease; }
.namsbru-return:hover { transform:translateY(-2px); border-color:rgba(80,227,164,.58); color:white; }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand > span:last-child { display: flex; align-items: baseline; gap: 6px; }
.brand strong { font-size: 1.3rem; letter-spacing: -.04em; }
.brand small { color: var(--cyan); font-weight: 900; letter-spacing: .14em; font-size: .68rem; }
.brand-mark { position: relative; display: block; width: 38px; height: 38px; }
.brand-mark i { position: absolute; width: 10px; height: 10px; border: 2px solid var(--cyan); border-radius: 50%; box-shadow: 0 0 16px rgba(56,217,255,.55); }
.brand-mark i:nth-child(1) { left: 0; top: 14px; }
.brand-mark i:nth-child(2) { right: 0; top: 2px; border-color: var(--amber); }
.brand-mark i:nth-child(3) { right: 0; bottom: 2px; border-color: var(--coral); }
.brand-mark::before, .brand-mark::after { content:""; position:absolute; height:2px; width:19px; background:rgba(222,248,255,.7); left:9px; transform-origin:left; }
.brand-mark::before { top:16px; transform:rotate(-27deg); }
.brand-mark::after { top:22px; transform:rotate(27deg); }
.brand--small strong { font-size: 1.05rem; }
.brand--small .brand-mark { transform: scale(.88); }

.ghost-button, .back-button, .text-button, .icon-button, .small-button {
  border: 0; background: transparent; cursor: pointer; color: var(--muted); transition: .2s ease;
}
.ghost-button { display: inline-flex; align-items: center; gap: 9px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 999px; font-weight: 750; }
.ghost-button:hover, .back-button:hover, .text-button:hover { color: var(--text); border-color: rgba(56,217,255,.45); }
.back-button { padding: 10px; font-weight: 750; }
.text-button { text-decoration: underline; text-underline-offset: 4px; }
.icon-button { width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--line); font-size: 1.15rem; }
.icon-button:hover { background: rgba(56,217,255,.08); color: var(--cyan); }
.small-button { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; font-size: .84rem; font-weight: 800; }

.hero-content { position: relative; z-index: 2; width: min(720px, 90vw); margin: clamp(52px, 9vh, 110px) 0 150px clamp(22px, 8vw, 124px); }
.eyebrow { color: var(--cyan); text-transform: uppercase; letter-spacing: .17em; font-size: .76rem; font-weight: 900; }
.pulse-dot { display: inline-block; width: 9px; height: 9px; margin-right: 9px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 0 rgba(255,107,107,.55); animation: pulse 1.7s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(255,107,107,0); } 100% { box-shadow: 0 0 0 0 rgba(255,107,107,0); } }
.hero-content h1 { font-size: clamp(3rem, 6.3vw, 6.5rem); line-height: .94; letter-spacing: -.065em; margin: 20px 0 27px; max-width: 950px; }
.hero-content h1 em { color: var(--cyan); font-style: normal; text-shadow: 0 0 32px rgba(56,217,255,.26); }
.hero-lead { color: #c3d7e0; font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.65; max-width: 650px; }
.mode-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 38px; }
.mode-card { position: relative; overflow: hidden; min-height: 158px; display: grid; grid-template-columns: 52px 1fr 24px; gap: 14px; align-items: start; text-align: left; padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: rgba(8, 26, 42, .78); backdrop-filter: blur(20px); cursor: pointer; box-shadow: 0 20px 60px rgba(0,0,0,.22); transition: transform .22s ease, border-color .22s ease, background .22s ease; }
.mode-card::before { content:""; position:absolute; inset:0; opacity:0; background:linear-gradient(135deg, rgba(56,217,255,.16), transparent 55%); transition:.22s; }
.mode-card:hover { transform: translateY(-4px); border-color: rgba(56,217,255,.52); background: rgba(12, 37, 59, .88); }
.mode-card:hover::before { opacity:1; }
.mode-card--student:hover { border-color: rgba(255,191,105,.55); }
.mode-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:15px; border:1px solid rgba(56,217,255,.34); background:rgba(56,217,255,.10); color:var(--cyan); font-size:1.65rem; }
.mode-card--student .mode-icon { color:var(--amber); border-color:rgba(255,191,105,.34); background:rgba(255,191,105,.09); }
.mode-copy { display:flex; flex-direction:column; gap:6px; position:relative; z-index:1; }
.mode-copy small { color:var(--muted); font-weight:750; }
.mode-copy strong { font-size:1.08rem; }
.mode-copy span { color:var(--muted); font-size:.9rem; line-height:1.45; }
.mode-arrow { font-size:1.4rem; color:var(--cyan); }
.mode-card--student .mode-arrow { color:var(--amber); }
.hero-status { position:absolute; z-index:2; bottom:0; left:0; right:0; display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); background:rgba(4,14,24,.76); backdrop-filter:blur(22px); padding:0 clamp(22px,8vw,124px); }
.hero-status div { padding:19px 22px; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:3px; }
.hero-status div:first-child { border-left:1px solid var(--line); }
.hero-status span { color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; }
.hero-status strong { font-size:.92rem; }

.setup-view, .join-view { background: radial-gradient(circle at 65% 20%, rgba(28,128,163,.2), transparent 36%), var(--ink); }
.world-select-view { min-height:100vh; background:radial-gradient(circle at 50% -15%,rgba(56,217,255,.18),transparent 38%),linear-gradient(180deg,#07111f,#091725); }
.simple-header { border-bottom:1px solid var(--line); }
.world-library { width:min(1240px,92vw); margin:0 auto; padding:58px 0 100px; }
.world-library-heading { display:grid; grid-template-columns:1.4fr .7fr; align-items:end; gap:60px; margin-bottom:32px; }
.world-library-heading h1 { margin:11px 0 0; font-size:clamp(2.6rem,5vw,5.2rem); line-height:.98; letter-spacing:-.06em; max-width:900px; }
.world-library-heading > p { color:var(--muted); line-height:1.65; margin:0 0 8px; }
.world-library-tools { display:flex; flex-direction:column; gap:16px; }
.world-library-tools > p { color:var(--muted); line-height:1.65; margin:0; }
.builder-launch { display:grid; grid-template-columns:42px 1fr; gap:1px 12px; align-items:center; width:100%; padding:15px; border:1px solid rgba(167,139,250,.34); border-radius:16px; background:linear-gradient(135deg,rgba(167,139,250,.13),rgba(56,217,255,.06)); color:var(--text); text-align:left; cursor:pointer; transition:.2s ease; }
.builder-launch:hover { transform:translateY(-2px); border-color:rgba(167,139,250,.72); }
.builder-launch > span { grid-row:span 2; display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:rgba(167,139,250,.14); color:var(--violet); font-size:1.25rem; }
.builder-launch b { font-size:.95rem; }
.builder-launch small { color:var(--muted); }
.world-filter-shell { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:-8px 0 22px; }
.world-track-filter { display:flex; flex-wrap:wrap; gap:7px; }
.world-track-filter button { min-height:39px; padding:8px 12px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:rgba(255,255,255,.025); cursor:pointer; font-weight:820; transition:.2s ease; }
.world-track-filter button:hover { color:var(--text); border-color:rgba(56,217,255,.4); }
.world-track-filter button.is-active { color:#07111f; border-color:var(--cyan); background:var(--cyan); box-shadow:0 0 20px rgba(56,217,255,.18); }
.world-filter-shell > span { flex:0 0 auto; color:var(--muted); font-size:.78rem; font-weight:800; }
.world-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.world-card { --card-color:var(--cyan); position:relative; isolation:isolate; overflow:hidden; min-height:310px; padding:26px; border:1px solid color-mix(in srgb,var(--card-color) 24%,var(--line)); border-radius:22px; background:linear-gradient(145deg,color-mix(in srgb,var(--card-color) 9%,#0b1a2a),#091521 68%); color:var(--text); text-align:left; cursor:pointer; box-shadow:0 20px 55px rgba(0,0,0,.18); transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease; }
.world-card::before { content:""; position:absolute; z-index:-1; width:320px; height:320px; border-radius:50%; right:-145px; top:-155px; background:var(--card-color); filter:blur(85px); opacity:.18; }
.world-card::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(120deg,transparent 45%,color-mix(in srgb,var(--card-color) 8%,transparent)); opacity:.5; }
.world-card:hover { transform:translateY(-5px); border-color:color-mix(in srgb,var(--card-color) 68%,white); box-shadow:0 28px 70px rgba(0,0,0,.28),0 0 38px color-mix(in srgb,var(--card-color) 10%,transparent); }
.world-card--featured { grid-column:span 2; min-height:350px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.8fr); gap:28px; background:linear-gradient(90deg,rgba(5,17,29,.95),rgba(7,29,43,.72)),var(--hero-image) 85% center/cover no-repeat; }
.world-card-main { display:flex; flex-direction:column; align-items:flex-start; }
.world-card-topline { width:100%; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 12px; }
.world-number { color:var(--card-color); font-size:.7rem; text-transform:uppercase; letter-spacing:.15em; font-weight:900; }
.world-subject { margin-left:auto; color:#d5e8ef; font-size:.68rem; font-weight:850; }
.world-level { padding:6px 9px; border:1px solid var(--line); border-radius:999px; color:#c2d9e3; font-size:.72rem; font-weight:800; background:rgba(5,15,25,.45); }
.world-icon { display:grid; place-items:center; width:68px; height:68px; margin:25px 0 18px; border:1px solid color-mix(in srgb,var(--card-color) 40%,transparent); border-radius:20px; background:color-mix(in srgb,var(--card-color) 11%,transparent); color:var(--card-color); box-shadow:0 0 35px color-mix(in srgb,var(--card-color) 14%,transparent); font-size:2rem; font-weight:900; }
.world-card h2 { margin:0 0 9px; font-size:clamp(1.7rem,3vw,2.8rem); line-height:1; letter-spacing:-.045em; }
.world-card p { max-width:620px; margin:0; color:#b7cfda; line-height:1.55; }
.world-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; padding-top:22px; }
.world-tags span { padding:7px 10px; border-radius:999px; background:rgba(255,255,255,.045); border:1px solid var(--line); color:#c1d6df; font-size:.74rem; font-weight:750; }
.world-card-side { align-self:end; padding:20px; border:1px solid var(--line); border-radius:17px; background:rgba(5,15,25,.62); backdrop-filter:blur(14px); }
.world-card-side span { display:block; color:var(--card-color); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; font-weight:900; margin-bottom:9px; }
.world-card-side strong { display:block; font-size:1.15rem; margin-bottom:14px; }
.world-card-side small { display:block; color:var(--muted); line-height:1.5; }
.world-enter { display:inline-flex; align-items:center; gap:10px; margin-top:18px; color:var(--card-color); font-weight:900; }

.builder-view { min-height:100vh; background:radial-gradient(circle at 60% -15%,rgba(167,139,250,.18),transparent 40%),#07111f; }
.builder-header { position:sticky; top:0; z-index:12; background:rgba(7,17,31,.92); backdrop-filter:blur(20px); }
.builder-header-actions { display:flex; gap:9px; align-items:center; }
.builder-shell { width:min(1460px,96vw); margin:0 auto; display:grid; grid-template-columns:290px minmax(0,1fr); gap:18px; padding:18px 0 90px; }
.builder-sidebar { position:sticky; top:96px; align-self:start; max-height:calc(100vh - 115px); overflow:auto; display:flex; flex-direction:column; gap:14px; padding:21px; border:1px solid var(--line); border-radius:18px; background:rgba(10,27,44,.82); }
.builder-sidebar h2 { margin:5px 0 0; font-size:1.35rem; }
.builder-new { width:100%; }
.custom-world-list { display:flex; flex-direction:column; gap:7px; }
.custom-world-item { display:grid; grid-template-columns:36px 1fr auto; gap:9px; align-items:center; width:100%; padding:10px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.025); color:var(--text); text-align:left; cursor:pointer; }
.custom-world-item:hover,.custom-world-item.is-active { border-color:rgba(167,139,250,.55); background:rgba(167,139,250,.08); }
.custom-world-item > span:first-child { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:rgba(167,139,250,.1); color:var(--violet); }
.custom-world-item div { min-width:0; }
.custom-world-item strong,.custom-world-item small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.custom-world-item small { color:var(--muted); margin-top:2px; }
.custom-world-item b { color:var(--muted); }
.custom-world-empty { padding:17px; border:1px dashed var(--line); border-radius:12px; color:var(--muted); font-size:.84rem; line-height:1.5; text-align:center; }
.template-copy-card { display:flex; flex-direction:column; gap:8px; padding-top:14px; border-top:1px solid var(--line); }
.template-copy-card label,.builder-mini-title { color:#d9edf4; font-size:.8rem; font-weight:850; }
.template-copy-card select,.builder-form select { width:100%; min-height:42px; padding:9px 11px; border:1px solid var(--line); border-radius:11px; background:#091827; color:var(--text); }
.builder-local-note { margin:0; color:var(--muted); font-size:.75rem; line-height:1.5; }
.builder-workspace { min-width:0; padding:16px 22px; }
.builder-title-row { display:flex; justify-content:space-between; gap:20px; align-items:end; padding:14px 0 28px; }
.builder-title-row h1 { margin:8px 0 0; font-size:clamp(2.35rem,4.5vw,4.8rem); line-height:.98; letter-spacing:-.06em; }
.builder-status { flex:0 0 auto; width:86px; height:86px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(167,139,250,.34); border-radius:50%; background:rgba(167,139,250,.08); }
.builder-status span { color:var(--violet); font-size:1.45rem; font-weight:900; }
.builder-status small { color:var(--muted); font-size:.7rem; }
.builder-form { display:flex; flex-direction:column; gap:15px; }
.builder-section { padding:25px; border:1px solid var(--line); border-radius:20px; background:rgba(10,28,46,.75); box-shadow:0 20px 55px rgba(0,0,0,.17); }
.builder-section-heading { display:grid; grid-template-columns:46px 1fr; gap:13px; align-items:start; margin-bottom:22px; }
.builder-section-heading > span { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:rgba(167,139,250,.11); color:var(--violet); font-weight:900; }
.builder-section-heading h2 { margin:0 0 4px; font-size:1.35rem; }
.builder-section-heading p { margin:0; color:var(--muted); line-height:1.45; }
.builder-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.builder-span-2 { grid-column:span 2; }
.builder-form input,.builder-form textarea { width:100%; color:var(--text); background:#091827; border:1px solid var(--line); border-radius:12px; padding:12px 13px; font-size:.96rem; }
.builder-form textarea { resize:vertical; min-height:78px; line-height:1.45; }
.builder-form input:focus,.builder-form textarea:focus,.builder-form select:focus { border-color:var(--violet); outline:2px solid rgba(167,139,250,.22); outline-offset:1px; }
.metric-builder { margin-top:18px; padding-top:17px; border-top:1px solid var(--line); }
.metric-inputs { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:9px; }
.metric-inputs input { text-align:center; }
.role-builder-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.role-editor { padding:15px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.023); }
.role-editor-head { display:flex; align-items:center; gap:9px; margin-bottom:11px; }
.role-editor-head span { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; color:var(--violet); background:rgba(167,139,250,.1); font-weight:900; }
.role-editor-head strong { font-size:.88rem; }
.role-editor-fields { display:grid; grid-template-columns:1fr 74px; gap:8px; }
.role-editor-fields textarea { grid-column:span 2; }
.builder-round-tabs { display:flex; gap:7px; padding:5px; margin-bottom:15px; border:1px solid var(--line); border-radius:14px; background:#091827; }
.builder-round-tabs button { flex:1; min-height:41px; border:0; border-radius:10px; background:transparent; color:var(--muted); cursor:pointer; font-weight:850; }
.builder-round-tabs button.is-active { color:#0a1724; background:var(--violet); }
.round-editor { display:flex; flex-direction:column; gap:17px; }
.round-core { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.round-core .builder-span-2 { grid-column:span 2; }
.builder-subsection { padding-top:16px; border-top:1px solid var(--line); }
.builder-subsection > h3 { margin:0 0 5px; font-size:1.02rem; }
.builder-subsection > p { margin:0 0 13px; color:var(--muted); font-size:.84rem; }
.evidence-builder-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.evidence-editor { padding:12px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.02); }
.evidence-editor strong { display:block; margin-bottom:8px; color:var(--violet); font-size:.82rem; }
.evidence-editor textarea { min-height:95px; }
.option-builder-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.option-editor { padding:13px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.02); }
.option-editor > span { display:block; margin-bottom:9px; color:var(--amber); font-size:.76rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.option-editor input,.option-editor textarea,.option-editor select { margin-bottom:7px; }
.option-editor textarea { min-height:72px; }
.builder-final-actions { position:sticky; bottom:12px; z-index:5; display:flex; justify-content:flex-end; gap:9px; flex-wrap:wrap; padding:13px; border:1px solid var(--line); border-radius:16px; background:rgba(7,20,33,.92); backdrop-filter:blur(18px); box-shadow:0 18px 60px rgba(0,0,0,.35); }
.setup-shell { width:min(1120px, 90vw); margin:60px auto 100px; display:grid; grid-template-columns:.8fr 1.45fr; gap:72px; align-items:start; }
.setup-intro { position:sticky; top:40px; }
.section-index { display:block; color:var(--cyan); font-size:5.5rem; font-weight:900; line-height:1; opacity:.17; letter-spacing:-.07em; }
.setup-intro h1 { font-size:clamp(2.4rem,4vw,4.2rem); line-height:1; letter-spacing:-.05em; margin:15px 0 22px; }
.setup-intro > p:last-child { color:var(--muted); line-height:1.7; font-size:1.05rem; }
.setup-form { display:flex; flex-direction:column; gap:25px; padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(10,29,47,.75); box-shadow:var(--shadow); }
fieldset { border:0; padding:0; margin:0; }
legend, .field-label > span { display:block; margin-bottom:10px; font-weight:800; color:#d9edf4; }
.field-label small { color:var(--muted); font-weight:600; }
.choice-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.choice-pill input { position:absolute; opacity:0; pointer-events:none; }
.choice-pill span { display:block; border:1px solid var(--line); border-radius:14px; padding:15px; text-align:center; cursor:pointer; font-weight:800; background:rgba(255,255,255,.02); transition:.2s; }
.choice-pill input:checked + span { border-color:var(--cyan); background:rgba(56,217,255,.12); color:var(--cyan); box-shadow:inset 0 0 0 1px rgba(56,217,255,.25); }
.field-grid { display:grid; grid-template-columns:1.5fr .6fr; gap:14px; }
.field-label input, .reason-field textarea { width:100%; color:var(--text); background:#091827; border:1px solid var(--line); border-radius:13px; padding:15px 16px; font-size:1rem; }
.field-label input::placeholder, textarea::placeholder { color:#688596; }
.field-label input:focus, textarea:focus { border-color:var(--cyan); }
.lesson-plan-card { border-top:1px solid var(--line); padding-top:24px; }
.mini-label { color:var(--cyan); text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; font-weight:900; }
.lesson-plan-card h2 { margin:6px 0 18px; font-size:1.35rem; }
.phase-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; }
.phase-list li { display:grid; grid-template-columns:40px 1fr auto; align-items:center; gap:12px; padding:13px 0; border-top:1px solid rgba(176,225,244,.1); }
.phase-list li > span { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; border:1px solid rgba(56,217,255,.32); color:var(--cyan); font-weight:900; }
.phase-list div { display:flex; flex-direction:column; gap:3px; }
.phase-list small { color:var(--muted); }
.phase-list b { color:var(--muted); font-size:.84rem; }
.setup-actions { display:flex; justify-content:flex-end; gap:12px; flex-wrap:wrap; }
.primary-button, .secondary-button { border-radius:13px; min-height:48px; padding:0 18px; font-weight:900; border:1px solid transparent; cursor:pointer; transition:.2s ease; }
.primary-button { background:linear-gradient(135deg, var(--cyan), #38a8ff); color:#04131e; box-shadow:0 12px 28px rgba(56,217,255,.18); }
.primary-button:hover { transform:translateY(-2px); filter:brightness(1.07); }
.primary-button:disabled, .secondary-button:disabled { cursor:not-allowed; opacity:.45; transform:none; }
.primary-button span { margin-left:10px; }
.secondary-button { border-color:var(--line); background:rgba(255,255,255,.035); color:var(--text); }
.secondary-button:hover { border-color:rgba(56,217,255,.5); background:rgba(56,217,255,.08); }
.secondary-button--dark { background:rgba(6,16,29,.72); }
.primary-button--full { width:100%; }
.privacy-note { color:var(--muted); text-align:center; font-size:.82rem; margin:0; }

.join-shell { width:min(1020px,90vw); min-height:calc(100vh - 120px); margin:0 auto; display:grid; grid-template-columns:1fr minmax(360px,460px); gap:80px; align-items:center; padding:50px 0 110px; }
.join-visual { display:flex; flex-direction:column; align-items:center; text-align:center; }
.signal-rings { position:relative; width:330px; height:330px; display:grid; place-items:center; }
.signal-rings i { position:absolute; border:1px solid rgba(56,217,255,.26); border-radius:50%; animation:ring 4s ease-out infinite; }
.signal-rings i:nth-child(1){inset:0;}
.signal-rings i:nth-child(2){inset:52px; animation-delay:.6s;}
.signal-rings i:nth-child(3){inset:104px; animation-delay:1.2s;}
@keyframes ring { 50% { border-color:rgba(56,217,255,.66); box-shadow:0 0 35px rgba(56,217,255,.13); } }
.signal-rings span { display:grid; place-items:center; width:110px; height:110px; border-radius:50%; background:rgba(56,217,255,.10); color:var(--cyan); font-size:1.5rem; font-weight:900; letter-spacing:.16em; box-shadow:0 0 70px rgba(56,217,255,.2); }
.join-visual p { color:var(--muted); margin:12px 0 5px; }
.join-visual strong { font-size:1.35rem; }
.join-card { padding:36px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(10,29,47,.78); box-shadow:var(--shadow); display:flex; flex-direction:column; gap:20px; }
.join-card h1 { font-size:2.4rem; margin:0 0 8px; letter-spacing:-.04em; }
.room-input { text-transform:uppercase; letter-spacing:.3em; font-size:1.45rem !important; text-align:center; font-weight:900; }
.form-status { color:var(--amber); min-height:1.25rem; margin:0; font-size:.88rem; }

.mission-header, .student-header { background:#071421; border-bottom:1px solid var(--line); padding-block:12px; min-height:76px; }
.mission-title-wrap { flex:1; text-align:center; }
.mission-title-wrap span, .student-phase span { color:var(--cyan); text-transform:uppercase; letter-spacing:.12em; font-size:.67rem; font-weight:900; }
.mission-title-wrap h1 { margin:3px 0 0; font-size:1.12rem; }
.header-actions { display:flex; align-items:center; gap:9px; }
.room-code-box { border:1px solid var(--line); border-radius:12px; padding:7px 12px; display:flex; align-items:center; gap:10px; }
.room-code-box span { color:var(--muted); font-size:.74rem; }
.room-code-box strong { letter-spacing:.15em; color:var(--cyan); }
.teacher-view { min-height:100vh; background:linear-gradient(180deg,#07111f,#091827); }
.teacher-grid { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(290px,.65fr); grid-template-rows:minmax(470px,1fr) auto; gap:14px; padding:14px; min-height:calc(100vh - 76px); }
.glass-panel { background:var(--panel); border:1px solid var(--line); border-radius:18px; box-shadow:0 18px 48px rgba(0,0,0,.2); }
.world-panel { position:relative; overflow:hidden; min-height:500px; }
.world-backdrop { position:absolute; inset:0; background:
  radial-gradient(circle at 68% 44%, rgba(44,207,240,.25), transparent 14%),
  radial-gradient(circle at 65% 49%, rgba(53,112,139,.3), transparent 32%),
  linear-gradient(140deg,#07121e,#0c2635 70%,#10202b); }
.world-backdrop::before { content:""; position:absolute; inset:0; background-image:var(--world-image,var(--hero-image)); background-position:72% center; background-size:cover; opacity:.62; mix-blend-mode:screen; }
.world-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,15,25,.96),rgba(5,15,25,.7) 44%,rgba(5,15,25,.16)); }
.map-glow { position:absolute; width:44%; aspect-ratio:1.5; right:10%; top:23%; border-radius:50%; background:rgba(56,217,255,.12); filter:blur(45px); }
.radar-sweep { position:absolute; width:580px; height:580px; right:2%; top:-4%; border-radius:50%; border:1px solid rgba(56,217,255,.13); background:conic-gradient(from 0deg,transparent 0 84%,rgba(56,217,255,.16) 96%,transparent 100%); animation:radar 8s linear infinite; }
@keyframes radar { to { transform:rotate(360deg); } }
.map-points i { position:absolute; width:9px; height:9px; background:var(--coral); border-radius:50%; box-shadow:0 0 0 7px rgba(255,107,107,.12),0 0 18px var(--coral); animation:blink 2.1s infinite; }
.map-points i:nth-child(1){right:27%;top:29%}.map-points i:nth-child(2){right:16%;top:47%;animation-delay:.5s}.map-points i:nth-child(3){right:34%;top:61%;animation-delay:1s}.map-points i:nth-child(4){right:45%;top:43%;animation-delay:1.4s}.map-points i:nth-child(5){right:24%;top:72%;animation-delay:.9s}
@keyframes blink { 50% { opacity:.35; transform:scale(.7); } }
.world-symbol { position:absolute; right:13%; top:50%; transform:translateY(-50%); color:var(--world-color,var(--cyan)); font-size:clamp(8rem,20vw,18rem); line-height:1; font-weight:900; opacity:.13; text-shadow:0 0 45px var(--world-color,var(--cyan)); }
.world-backdrop.has-image .world-symbol { opacity:0; }
.world-overlay { position:relative; z-index:2; min-height:100%; display:flex; flex-direction:column; justify-content:space-between; padding:24px; }
.world-topline { display:flex; justify-content:space-between; align-items:start; }
.world-topline > div:first-child { display:flex; flex-direction:column; gap:7px; }
.world-topline small { color:var(--muted); }
.live-badge { display:inline-flex; align-items:center; gap:7px; width:max-content; padding:6px 9px; border:1px solid rgba(255,107,107,.35); border-radius:999px; color:#ffd7d7; background:rgba(255,107,107,.08); font-weight:900; font-size:.72rem; letter-spacing:.12em; }
.live-badge i { width:7px;height:7px;border-radius:50%;background:var(--coral);box-shadow:0 0 11px var(--coral); }
.timer { display:flex; align-items:center; gap:8px; color:var(--cyan); font-size:1.3rem; font-weight:900; font-variant-numeric:tabular-nums; }
.timer button { border:1px solid var(--line); background:rgba(5,15,25,.7); color:var(--cyan); border-radius:9px; width:33px;height:33px;cursor:pointer; }
.memory-pulse { position:relative; width:min(510px,100%); margin:auto 0 10px; padding:13px 16px 13px 46px; border:1px solid rgba(255,191,105,.32); border-radius:14px; background:linear-gradient(90deg,rgba(55,36,13,.88),rgba(8,24,37,.68)); box-shadow:0 14px 38px rgba(0,0,0,.22),inset 0 0 28px rgba(255,191,105,.05); }
.memory-pulse::before { content:"⌁"; position:absolute; left:14px; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:23px; height:23px; border:1px solid rgba(255,191,105,.5); border-radius:50%; color:var(--amber); box-shadow:0 0 16px rgba(255,191,105,.3); }
.memory-pulse > span { display:block; color:var(--amber); text-transform:uppercase; letter-spacing:.12em; font-size:.62rem; font-weight:950; }
.memory-pulse strong { display:block; margin:3px 0; font-size:.88rem; }
.memory-pulse p { margin:0; color:#d8c9ad; font-size:.75rem; line-height:1.4; }
.scenario-card { max-width:510px; padding:26px; border-left:3px solid var(--cyan); background:linear-gradient(90deg,rgba(5,15,25,.88),rgba(5,15,25,.45)); backdrop-filter:blur(10px); }
.scenario-kicker { color:var(--coral); text-transform:uppercase; letter-spacing:.13em; font-size:.7rem; font-weight:900; }
.scenario-card h2 { margin:8px 0 10px; font-size:clamp(1.7rem,2.5vw,2.8rem); line-height:1.02; letter-spacing:-.04em; }
.scenario-card p { margin:0; color:#c7dce5; line-height:1.58; font-size:1rem; }
.teacher-controls { display:flex; gap:10px; }
.metrics-panel, .class-panel, .decision-panel { padding:20px; }
.panel-heading { display:flex; justify-content:space-between; align-items:start; gap:12px; }
.panel-heading span { color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-size:.66rem; font-weight:900; }
.panel-heading h2 { margin:4px 0 0; font-size:1.08rem; }
.update-chip { color:var(--cyan)!important; border:1px solid rgba(56,217,255,.3); border-radius:999px; padding:5px 8px; }
.metrics-list { display:flex; flex-direction:column; gap:15px; margin-top:23px; }
.metric-head { display:flex; justify-content:space-between; font-size:.84rem; font-weight:750; }
.metric-head strong { font-variant-numeric:tabular-nums; }
.metric-track { height:7px; margin-top:7px; background:rgba(255,255,255,.075); border-radius:999px; overflow:hidden; }
.metric-fill { height:100%; border-radius:999px; transition:width .75s cubic-bezier(.2,.8,.2,1); box-shadow:0 0 14px currentColor; }
.balance-card { margin-top:23px; padding:16px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.025); display:grid; grid-template-columns:1fr auto; gap:4px 12px; }
.balance-card > span { color:var(--muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; }
.balance-card strong { grid-row:span 2; font-size:2.6rem; color:var(--cyan); }
.balance-card p { margin:0; color:var(--muted); font-size:.76rem; line-height:1.35; }
.class-panel { min-height:250px; }
.role-summary { display:flex; flex-wrap:wrap; gap:7px; margin:17px 0; }
.role-chip { display:flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:999px; padding:7px 10px; font-size:.76rem; color:#c5d9e2; }
.role-chip i { width:8px;height:8px;border-radius:50%;background:var(--role-color);box-shadow:0 0 10px var(--role-color); }
.voice-balance { margin:14px 0; padding:14px; border:1px solid rgba(56,217,255,.18); border-radius:14px; background:linear-gradient(135deg,rgba(56,217,255,.06),rgba(167,139,250,.035)); }
.voice-balance-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.voice-balance-top span { color:var(--cyan); text-transform:uppercase; letter-spacing:.11em; font-size:.61rem; font-weight:950; }
.voice-balance-top h3 { margin:3px 0 0; font-size:.84rem; }
.voice-balance-top > strong { display:grid; place-items:center; width:44px; height:44px; flex:0 0 auto; border:1px solid rgba(56,217,255,.32); border-radius:50%; color:var(--cyan); background:rgba(56,217,255,.06); font-size:1.1rem; }
.voice-balance-rows { display:flex; flex-direction:column; gap:5px; margin:11px 0; }
.voice-row { display:grid; grid-template-columns:minmax(72px,1fr) 1.4fr 34px; gap:7px; align-items:center; font-size:.67rem; }
.voice-row > span { overflow:hidden; color:#bfd4dd; text-overflow:ellipsis; white-space:nowrap; }
.voice-row > div { height:5px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.07); }
.voice-row i { display:block; height:100%; border-radius:inherit; background:var(--voice-color); box-shadow:0 0 9px var(--voice-color); }
.voice-row b { color:var(--voice-color); text-align:right; font-variant-numeric:tabular-nums; }
.voice-prompt { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:10px; border-top:1px solid rgba(176,225,244,.08); }
.voice-prompt p { margin:0; color:var(--muted); font-size:.68rem; line-height:1.35; }
.voice-prompt button { flex:0 0 auto; padding:6px 8px; font-size:.67rem; }
.activity-feed { display:flex; flex-direction:column; gap:7px; max-height:125px; overflow:auto; }
.feed-item { display:grid; grid-template-columns:8px 1fr auto; gap:9px; align-items:center; color:#bfd3dc; font-size:.78rem; padding:6px 0; border-top:1px solid rgba(176,225,244,.07); }
.feed-item i { width:6px;height:6px;border-radius:50%;background:var(--cyan); }
.feed-item time { color:#698798; }
.decision-panel { min-height:250px; }
.progress-fraction { color:var(--cyan)!important; }
.decision-options { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:18px; }
.decision-option { position:relative; min-height:136px; display:flex; flex-direction:column; gap:7px; padding:14px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.025); cursor:pointer; text-align:left; }
.decision-option:hover { border-color:rgba(56,217,255,.48); }
.decision-option.is-selected { border-color:var(--cyan); background:rgba(56,217,255,.1); }
.decision-option small { color:var(--cyan); font-weight:900; }
.decision-option strong { font-size:.9rem; }
.decision-option p { margin:0; color:var(--muted); font-size:.75rem; line-height:1.35; }
.decision-option b { margin-top:auto; font-size:.72rem; color:var(--amber); }
.parallel-launch { width:100%; margin-top:12px; display:grid; grid-template-columns:40px 1fr; gap:1px 11px; align-items:center; padding:12px; border:1px solid rgba(167,139,250,.32); border-radius:13px; background:linear-gradient(115deg,rgba(167,139,250,.12),rgba(56,217,255,.05)); text-align:left; cursor:pointer; }
.parallel-launch:disabled { opacity:.38; cursor:not-allowed; }
.parallel-launch > span { grid-row:span 2; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; color:var(--violet); background:rgba(167,139,250,.12); font-size:1.15rem; }
.parallel-launch strong { font-size:.84rem; }
.parallel-launch small { color:var(--muted); font-size:.7rem; }
.finale-summary { display:flex; flex-direction:column; align-items:center; gap:9px; padding:12px; }
.finale-summary > strong { font-size:1.2rem; color:var(--green); }
.finale-summary > span { color:var(--muted); }

.parallel-worlds-panel,.evidence-wall-panel { grid-column:1 / -1; padding:22px; overflow:hidden; }
.parallel-worlds-panel { position:relative; background:linear-gradient(105deg,rgba(56,217,255,.08),rgba(10,28,46,.88) 48%,rgba(167,139,250,.09)); border-color:rgba(167,139,250,.32); }
.parallel-worlds-panel::before { content:""; position:absolute; left:50%; top:70px; bottom:20px; width:1px; background:linear-gradient(transparent,var(--violet),transparent); box-shadow:0 0 22px var(--violet); opacity:.55; }
.parallel-heading,.parallel-instruction { position:relative; z-index:1; }
.parallel-instruction { margin:10px 0 18px; color:#bed4de; line-height:1.5; }
.parallel-worlds-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.parallel-world-card { display:grid; grid-template-columns:95px minmax(0,1fr); gap:14px; padding:17px; border:1px solid var(--line); border-radius:17px; background:rgba(5,17,29,.78); }
.parallel-world-card--alpha { --branch-color:var(--cyan); }
.parallel-world-card--beta { --branch-color:var(--violet); }
.parallel-world-card.is-chosen { border-color:var(--branch-color); box-shadow:0 0 0 2px color-mix(in srgb,var(--branch-color) 20%,transparent),0 18px 55px rgba(0,0,0,.22); }
.parallel-world-orbit { grid-row:span 2; aspect-ratio:1; align-self:start; display:grid; place-items:center; align-content:center; gap:2px; border:1px solid color-mix(in srgb,var(--branch-color) 48%,transparent); border-radius:50%; background:color-mix(in srgb,var(--branch-color) 8%,transparent); box-shadow:inset 0 0 28px color-mix(in srgb,var(--branch-color) 10%,transparent); }
.parallel-world-orbit span { color:var(--branch-color); font-size:.68rem; text-transform:uppercase; font-weight:900; letter-spacing:.08em; }
.parallel-world-orbit strong { font-size:1.15rem; }
.parallel-world-copy h3 { margin:0 0 6px; font-size:1.15rem; }
.parallel-world-copy p { margin:0 0 7px; color:#c1d5de; line-height:1.45; font-size:.85rem; }
.parallel-world-copy small { color:var(--branch-color); font-weight:800; }
.parallel-metric-list { display:flex; flex-wrap:wrap; gap:6px; grid-column:2; }
.parallel-metric-list span,.student-parallel-metrics span { display:inline-flex; align-items:center; gap:6px; padding:6px 8px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:.7rem; }
.parallel-metric-list i,.student-parallel-metrics i { width:6px; height:6px; border-radius:50%; }
.parallel-metric-list b,.student-parallel-metrics b { color:var(--text); }
.parallel-world-card > button { grid-column:2; justify-self:start; }
.ambassador-bridge { position:relative; z-index:1; display:grid; grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr); gap:18px; margin-top:18px; padding:18px; border:1px solid rgba(56,217,255,.25); border-radius:17px; background:linear-gradient(100deg,rgba(56,217,255,.07),rgba(7,20,33,.85) 35%,rgba(167,139,250,.08)); }
.ambassador-bridge > div:first-child > span { color:var(--cyan); text-transform:uppercase; letter-spacing:.12em; font-size:.64rem; font-weight:950; }
.ambassador-bridge h3 { margin:5px 0 7px; font-size:1rem; }
.ambassador-bridge > div:first-child p { margin:0; color:var(--muted); font-size:.76rem; line-height:1.45; }
.ambassador-inbox { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; min-height:0; }
.ambassador-inbox.empty-state { min-height:105px; grid-template-columns:1fr; }
.ambassador-message { display:grid; gap:9px; padding:12px; border:1px solid var(--line); border-radius:13px; background:rgba(5,17,29,.78); }
.ambassador-message.is-approved { border-color:rgba(80,227,164,.46); background:linear-gradient(135deg,rgba(80,227,164,.08),rgba(5,17,29,.84)); }
.ambassador-message div { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ambassador-message span { color:var(--cyan); font-size:.63rem; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.ambassador-message strong { color:var(--muted); font-size:.68rem; text-align:right; }
.ambassador-message p { margin:0; color:#d0e2e9; font-size:.76rem; line-height:1.48; }
.ambassador-message button { justify-self:start; }
.ambassador-message button:disabled { color:var(--green); opacity:1; cursor:default; }

.evidence-wall-panel { background:linear-gradient(160deg,rgba(10,28,46,.9),rgba(7,17,31,.94)); }
.evidence-wall-heading { align-items:center; }
.evidence-filters { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.evidence-filters button { border:1px solid var(--line); border-radius:999px; padding:7px 10px; background:transparent; color:var(--muted); cursor:pointer; font-size:.72rem; font-weight:800; }
.evidence-filters button.is-active { color:#06101d; background:var(--cyan); border-color:var(--cyan); }
.evidence-wall { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:18px; }
.evidence-wall:not(.empty-state)::before { content:""; position:absolute; inset:12% 4%; z-index:0; opacity:.18; background-image:linear-gradient(30deg,transparent 49.7%,var(--cyan) 50%,transparent 50.3%),linear-gradient(-30deg,transparent 49.7%,var(--violet) 50%,transparent 50.3%); background-size:180px 130px; }
.evidence-node { position:relative; z-index:1; min-width:0; padding:15px; border:1px solid color-mix(in srgb,var(--node-color) 38%,var(--line)); border-radius:14px; background:rgba(7,22,36,.94); box-shadow:0 13px 35px rgba(0,0,0,.2); }
.evidence-node-head { display:grid; grid-template-columns:34px 1fr auto; gap:10px; align-items:center; }
.evidence-node-symbol { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:var(--node-color); background:color-mix(in srgb,var(--node-color) 11%,transparent); font-weight:950; }
.evidence-node-head div { min-width:0; }
.evidence-node-head small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:.65rem; }
.evidence-node-head strong { display:block; margin-top:3px; font-size:.82rem; }
.evidence-node-head b { color:var(--role-color); font-size:.72rem; }
.evidence-node p { margin:12px 0; color:#c4d7df; font-size:.78rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.evidence-node footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:9px; border-top:1px solid var(--line); }
.evidence-node footer span { color:var(--node-color); font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.evidence-node footer small { color:var(--muted); font-size:.65rem; text-align:right; }
.empty-state { display:grid; place-items:center; min-height:120px; color:var(--muted); text-align:center; border:1px dashed var(--line); border-radius:13px; font-size:.9rem; }

.student-view { background:radial-gradient(circle at 50% -10%,rgba(56,217,255,.18),transparent 38%),#07111f; }
.student-header { position:sticky; top:0; z-index:5; }
.student-phase { display:flex; flex-direction:column; align-items:center; gap:3px; }
.student-phase strong { font-size:.82rem; }
.student-shell { width:min(1180px,92vw); margin:0 auto; padding:45px 0 80px; }
.student-welcome p { color:var(--cyan); font-weight:850; margin:0 0 7px; }
.student-welcome h1 { font-size:clamp(2rem,4vw,3.7rem); letter-spacing:-.05em; margin:0 0 30px; }
.student-parallel-panel { margin:-10px 0 20px; padding:20px; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); gap:8px 28px; align-items:center; border:1px solid rgba(167,139,250,.4); border-radius:18px; background:linear-gradient(110deg,rgba(167,139,250,.14),rgba(56,217,255,.07)); box-shadow:0 18px 50px rgba(0,0,0,.18); }
.student-parallel-panel span { color:var(--violet); text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; font-weight:900; }
.student-parallel-panel h2 { margin:5px 0 0; font-size:1.4rem; }
.student-parallel-panel p { margin:0; color:#c5dae3; line-height:1.5; }
.student-parallel-metrics { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px; margin-top:5px; }
.student-ambassador-composer { grid-column:1 / -1; margin-top:8px; padding-top:14px; border-top:1px solid rgba(176,225,244,.12); }
.student-ambassador-composer label { display:flex; align-items:baseline; gap:8px; color:var(--cyan); font-size:.75rem; font-weight:900; }
.student-ambassador-composer label small { color:var(--muted); font-weight:650; text-transform:none; letter-spacing:0; }
.student-ambassador-composer > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:7px; }
.student-ambassador-composer textarea { width:100%; min-height:64px; resize:vertical; padding:11px; border:1px solid var(--line); border-radius:11px; background:rgba(4,15,25,.6); color:var(--text); }
.student-ambassador-composer p { margin:7px 0 0; color:var(--muted); font-size:.72rem; }
.incoming-ambassador { grid-column:1 / -1; display:grid; gap:4px; padding:13px 15px; border:1px solid rgba(80,227,164,.35); border-radius:13px; background:rgba(80,227,164,.07); }
.incoming-ambassador span { color:var(--green); }
.incoming-ambassador strong { color:#e7fff4; font-size:.86rem; line-height:1.5; }
.incoming-ambassador small { color:#a9cbb9; }
.student-columns { display:grid; grid-template-columns:.75fr 1.25fr; gap:14px; align-items:stretch; }
.role-card { grid-row:span 2; position:relative; overflow:hidden; min-height:550px; padding:28px; border-radius:20px; border:1px solid rgba(56,217,255,.25); background:linear-gradient(160deg,rgba(17,56,74,.92),rgba(9,23,38,.96)); box-shadow:var(--shadow); }
.role-card::after { content:""; position:absolute; width:260px;height:260px;border-radius:50%;background:var(--role-color,var(--cyan));filter:blur(90px);opacity:.15;right:-90px;top:-70px; }
.role-orbit { height:190px; display:grid; place-items:center; position:relative; }
.role-orbit::before, .role-orbit::after { content:""; position:absolute; border-radius:50%; border:1px solid color-mix(in srgb,var(--role-color,var(--cyan)) 35%,transparent); animation:orbit 7s linear infinite; }
.role-orbit::before { width:150px;height:150px; }
.role-orbit::after { width:105px;height:105px; animation-direction:reverse; animation-duration:4s; }
@keyframes orbit { to{transform:rotate(360deg)} }
.role-orbit span { position:relative;z-index:1;display:grid;place-items:center;width:78px;height:78px;border-radius:50%;background:color-mix(in srgb,var(--role-color,var(--cyan)) 13%,#081522);color:var(--role-color,var(--cyan));font-size:2.2rem;box-shadow:0 0 40px color-mix(in srgb,var(--role-color,var(--cyan)) 23%,transparent); }
.role-card h2 { font-size:2rem; margin:7px 0 14px; letter-spacing:-.04em; }
.role-card > p:not(.mini-label) { color:#c2d8e1; line-height:1.6; }
.role-duty { position:absolute; left:28px;right:28px;bottom:28px; padding:17px; border:1px solid var(--line); border-radius:14px; background:rgba(4,15,25,.44); }
.role-duty span { display:block;color:var(--muted);text-transform:uppercase;font-size:.67rem;letter-spacing:.11em;font-weight:900;margin-bottom:6px; }
.role-duty strong { line-height:1.4; }
.evidence-card, .student-decision { padding:24px; }
.student-memory-brief { margin:-5px 0 17px; padding:13px 15px; border:1px solid rgba(255,191,105,.32); border-radius:13px; background:linear-gradient(100deg,rgba(255,191,105,.09),rgba(255,191,105,.025)); }
.student-memory-brief span { color:var(--amber); text-transform:uppercase; letter-spacing:.12em; font-size:.63rem; font-weight:950; }
.student-memory-brief p { margin:5px 0 0; color:#e4d6bd; font-size:.8rem; line-height:1.5; }
.evidence-head { display:flex;justify-content:space-between;align-items:center;gap:12px; }
.evidence-type { color:var(--cyan); text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:900; }
.source-badge { padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.75rem;font-weight:800; }
.source-badge.is-verified { color:var(--green);border-color:rgba(80,227,164,.35);background:rgba(80,227,164,.08); }
.evidence-card h2 { font-size:1.45rem;margin:14px 0 10px; }
.evidence-card > p { color:#c1d5de;line-height:1.6; }
.evidence-actions { display:flex;gap:9px;flex-wrap:wrap;margin-top:18px; }
.action-status { color:var(--green)!important; min-height:1rem; margin-bottom:0!important; font-size:.82rem; }
.student-decision .panel-heading { margin-bottom:17px; }
.student-options { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;min-height:110px; }
.student-option { padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);cursor:pointer;text-align:left; }
.student-option.is-selected { border-color:var(--amber);background:rgba(255,191,105,.09); }
.student-option small { display:block;color:var(--amber);font-weight:900;margin-bottom:5px; }
.student-option strong { font-size:.85rem;line-height:1.25; }
.reason-field { display:block;margin:17px 0 12px; }
.reason-field > span { display:flex;justify-content:space-between;font-weight:850;margin-bottom:8px; }
.reason-field small { color:var(--muted);font-weight:600; }
.reason-field textarea { resize:vertical;min-height:82px; }

dialog { color:var(--text); width:min(680px,92vw); border:1px solid rgba(56,217,255,.25); border-radius:22px; background:#0b1b2b; box-shadow:0 35px 110px rgba(0,0,0,.64); padding:0; }
dialog::backdrop { background:rgba(2,8,14,.78);backdrop-filter:blur(7px); }
.dialog-close { position:absolute;right:17px;top:15px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.03);color:var(--muted);font-size:1.35rem;cursor:pointer; }
.guide-body, .practice-content, .source-content { padding:36px; }
.guide-body h2, .practice-content h2, .source-content h2 { font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.045em;margin:10px 45px 20px 0; }
.guide-steps { list-style:none;padding:0;margin:25px 0;display:flex;flex-direction:column;gap:12px; }
.guide-steps li { display:grid;grid-template-columns:42px 1fr;gap:13px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025); }
.guide-steps li > span { display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(56,217,255,.1);color:var(--cyan);font-weight:900; }
.guide-steps strong { display:block;margin-bottom:4px; }
.guide-steps p { margin:0;color:var(--muted);line-height:1.45; }
.guide-rule { padding:15px 18px;border-left:3px solid var(--amber);background:rgba(255,191,105,.07);line-height:1.55; }
.practice-clue { margin:22px 0;padding:19px;border-left:3px solid var(--cyan);background:rgba(56,217,255,.07);line-height:1.6;font-weight:700; }
.practice-options { display:flex;flex-direction:column;gap:9px; }
.practice-options button { text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);color:var(--text);cursor:pointer; }
.practice-options button:hover { border-color:var(--cyan); }
.practice-feedback { min-height:1.5rem;color:var(--green);font-weight:800; }
.source-content { display:flex;flex-direction:column;gap:13px; }
.source-content label { display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--line);border-radius:12px;line-height:1.4; }
.source-content input { width:20px;height:20px;accent-color:var(--cyan); }
.evidence-classification { margin:5px 0; padding:12px; border:1px solid rgba(167,139,250,.3); border-radius:14px; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.evidence-classification legend { padding:0 7px; color:var(--violet); font-weight:850; font-size:.82rem; }
.evidence-classification label { padding:9px; font-size:.82rem; }

.after-action-dialog { width:min(1120px,96vw); max-height:94vh; overflow:auto; background:#071421; }
.report-toolbar { position:sticky; top:0; z-index:4; display:flex; align-items:center; gap:9px; padding:14px 60px 14px 18px; border-bottom:1px solid var(--line); background:rgba(7,20,33,.95); backdrop-filter:blur(18px); }
.report-toolbar > div { margin-right:auto; }
.report-toolbar p { margin:0 0 3px; font-size:.65rem; }
.report-toolbar strong { font-size:1.05rem; }
.after-action-content { padding:20px; background:#0b1b2b; }
.report-sheet { width:min(920px,100%); margin:0 auto; color:#102635; background:#f6fbfd; border-radius:18px; overflow:hidden; box-shadow:0 25px 80px rgba(0,0,0,.28); }
.report-cover { display:flex; justify-content:space-between; gap:25px; align-items:center; padding:34px; color:#eefbff; background:linear-gradient(120deg,#071421,#12334a); }
.report-cover span { color:#77edff; font-size:.7rem; font-weight:900; letter-spacing:.12em; }
.report-cover h1 { margin:8px 0 6px; font-size:2.6rem; letter-spacing:-.05em; }
.report-cover p { margin:0; color:#b9d0db; }
.report-score { flex:0 0 auto; width:110px; height:110px; display:grid; place-items:center; align-content:center; border:1px solid rgba(80,227,164,.5); border-radius:50%; background:rgba(80,227,164,.08); }
.report-score strong { font-size:2.6rem; color:#50e3a4; line-height:1; }
.report-score span { margin-top:5px; color:#bcebd5; letter-spacing:.05em; }
.report-facts { display:grid; grid-template-columns:repeat(5,1fr); border-bottom:1px solid #d6e3e9; background:#eaf3f6; }
.report-facts div { padding:17px 22px; border-right:1px solid #d6e3e9; }
.report-facts span { display:block; color:#587080; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; font-weight:850; }
.report-facts strong { display:block; margin-top:5px; font-size:1.15rem; }
.report-section { padding:28px 34px; border-bottom:1px solid #dce8ed; }
.report-section-head { display:grid; grid-template-columns:40px 1fr; gap:12px; margin-bottom:18px; }
.report-section-head > span { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#dff6fb; color:#087d9a; font-weight:950; }
.report-section-head h2 { margin:0 0 3px; font-size:1.3rem; }
.report-section-head p { margin:0; color:#627986; font-size:.86rem; }
.report-metrics { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.report-metrics > div { padding:12px; border:1px solid #d5e3e9; border-radius:11px; background:white; }
.report-metrics span,.report-metrics strong,.report-metrics b { display:block; }
.report-metrics span { color:#526b79; font-size:.72rem; }
.report-metrics i { display:inline-block; width:7px; height:7px; margin-right:5px; border-radius:50%; }
.report-metrics strong { margin:7px 0 3px; }
.report-metrics b { font-size:.75rem; }
.report-metrics .is-positive { color:#087f55; }.report-metrics .is-negative { color:#c64040; }
.report-timeline { display:flex; flex-direction:column; gap:14px; }
.report-decision { display:grid; grid-template-columns:42px 1fr; gap:13px; }
.report-step { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:white; background:#123c56; font-weight:950; }
.report-decision > div:last-child { padding:0 0 18px; border-bottom:1px solid #dde8ed; }
.report-decision small { color:#627986; }
.report-decision h3 { margin:3px 0 4px; }.report-decision p { margin:0 0 10px; color:#526b79; }
.report-choice,.report-branch-note,.report-memory-note,.report-ambassador-note { display:flex; flex-direction:column; gap:3px; padding:11px 13px; border-radius:10px; }
.report-choice { background:#e8f8f1; }.report-choice > span { color:#087f55; font-size:.66rem; text-transform:uppercase; font-weight:900; }
.report-branch-note { margin-top:7px; background:#eeeafd; color:#473987; }
.report-memory-note { margin-top:7px; background:#fff3dc; color:#765214; }
.report-ambassador-note { margin-top:7px; background:#e5f5fb; color:#145970; }
.report-memory-note span,.report-ambassador-note span,.report-branch-note span { font-size:.76rem; line-height:1.45; }
.report-voice-chip { display:inline-block; margin-top:8px; padding:5px 8px; border:1px solid #bcdce7; border-radius:999px; color:#116984; background:#f0fbff; font-size:.69rem; font-weight:900; }
.report-arguments { margin:10px 0 0; padding-left:19px; color:#415b69; font-size:.8rem; line-height:1.5; }
.report-muted { color:#738793 !important; font-size:.8rem; }
.report-evidence-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.report-evidence-summary div { padding:15px; border:1px solid #d5e3e9; border-top:4px solid var(--report-color); border-radius:11px; background:white; text-align:center; }
.report-evidence-summary span,.report-evidence-summary strong,.report-evidence-summary small { display:block; }
.report-evidence-summary span { color:var(--report-color); font-weight:950; }.report-evidence-summary strong { font-size:1.8rem; }.report-evidence-summary small { color:#627986; }
.report-voices { display:grid; gap:7px; }
.report-voice-row { display:grid; grid-template-columns:minmax(135px,.9fr) 1.8fr 42px; gap:9px; align-items:center; font-size:.76rem; }
.report-voice-row > span { color:#415b69; }
.report-voice-row > div { height:7px; overflow:hidden; border-radius:999px; background:#dfebef; }
.report-voice-row i { display:block; height:100%; border-radius:inherit; background:var(--report-voice); }
.report-voice-row strong { color:#294c5e; text-align:right; }
.report-ambassadors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:18px; }
.report-ambassadors blockquote { margin:0; padding:13px; border-left:3px solid #38b6d7; border-radius:8px; background:#eaf6fa; }
.report-ambassadors span { color:#11718a; font-size:.67rem; font-weight:900; text-transform:uppercase; }
.report-ambassadors p { margin:5px 0 0; color:#294b5b; font-size:.78rem; line-height:1.45; }
.report-reflection ol { margin:0; padding-left:24px; line-height:1.9; }
.report-footer { display:flex; justify-content:space-between; gap:15px; padding:16px 34px; color:#617987; background:#eaf3f6; font-size:.72rem; }
.toast { position:fixed;z-index:99;left:50%;bottom:25px;transform:translate(-50%,30px);opacity:0;pointer-events:none;padding:12px 18px;border:1px solid rgba(56,217,255,.32);border-radius:999px;background:#0e2638;color:#dcf8ff;box-shadow:0 18px 60px rgba(0,0,0,.42);font-weight:800;transition:.25s ease; }
.toast.is-visible { transform:translate(-50%,0);opacity:1; }

@media (max-width: 980px) {
  .command-hero::after { background-position:center 15%;background-size:110vw auto;opacity:.25;mask-image:linear-gradient(to bottom,black,transparent 65%); }
  .hero-content { margin-top:48px;margin-bottom:260px; }
  .hero-status { grid-template-columns:repeat(2,1fr); }
  .setup-shell { grid-template-columns:1fr;gap:28px; }
  .world-library-heading { grid-template-columns:1fr; gap:18px; }
  .world-card--featured { grid-template-columns:1fr; }
  .builder-shell { grid-template-columns:1fr; width:min(94vw,900px); }
  .builder-sidebar { position:static; max-height:none; }
  .builder-workspace { padding-inline:0; }
  .metric-inputs { grid-template-columns:repeat(3,1fr); }
  .option-builder-grid { grid-template-columns:1fr; }
  .setup-intro { position:static; }
  .teacher-grid { grid-template-columns:1fr;grid-template-rows:auto; }
  .world-panel { min-height:560px; }
  .metrics-panel { order:3; }
  .class-panel { order:2; }
  .decision-panel { order:4; }
  .parallel-worlds-panel { order:5; }
  .evidence-wall-panel { order:6; }
  .evidence-wall { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .student-columns { grid-template-columns:1fr; }
  .role-card { grid-row:auto;min-height:430px; }
}

@media (max-width: 700px) {
  .home-topbar, .simple-header, .mission-header, .student-header { padding-inline:16px;gap:9px; }
  .home-topbar .ghost-button { width:44px;height:44px;overflow:hidden;white-space:nowrap;padding:0;justify-content:center;color:transparent; }
  .home-topbar .ghost-button span { color:var(--muted);font-size:1.2rem; }
  .namsbru-return { width:44px;height:44px;justify-content:center;padding:0;color:transparent;overflow:hidden; }
  .namsbru-return span { color:var(--green);font-size:1.1rem; }
  .hero-content { width:auto;margin:45px 18px 285px; }
  .hero-content h1 { font-size:clamp(2.65rem,13.6vw,4.4rem); }
  .mode-cards { grid-template-columns:1fr; }
  .hero-status { padding:0 8px; }
  .hero-status div { padding:13px 11px; }
  .hero-status strong { font-size:.77rem; }
  .world-library { padding-top:35px; }
  .world-grid { grid-template-columns:1fr; }
  .world-filter-shell { align-items:flex-start; flex-direction:column; }
  .world-track-filter { flex-wrap:nowrap; width:100%; overflow-x:auto; padding-bottom:6px; }
  .world-track-filter button { flex:0 0 auto; }
  .world-card,.world-card--featured { grid-column:auto; min-height:320px; padding:21px; }
  .world-card--featured { background:linear-gradient(180deg,rgba(5,17,29,.86),rgba(5,17,29,.96)),var(--hero-image) 75% center/cover no-repeat; }
  .builder-header .brand > span:last-child { display:none; }
  .builder-header-actions .small-button { display:none; }
  .builder-title-row { align-items:start; }
  .builder-status { width:70px; height:70px; }
  .builder-section { padding:18px; }
  .builder-field-grid,.role-builder-grid,.round-core,.evidence-builder-grid { grid-template-columns:1fr; }
  .builder-span-2,.round-core .builder-span-2,.role-editor-fields textarea { grid-column:auto; }
  .role-editor-fields { grid-template-columns:1fr 64px; }
  .metric-inputs { grid-template-columns:1fr 1fr; }
  .builder-final-actions { position:static; flex-direction:column; }
  .builder-final-actions button { width:100%; }
  .choice-row, .field-grid { grid-template-columns:1fr; }
  .setup-form { padding:22px; }
  .join-shell { grid-template-columns:1fr;gap:20px;padding-top:25px; }
  .join-visual { display:none; }
  .join-card { padding:25px; }
  .mission-header .brand > span:last-child, .student-header .brand > span:last-child { display:none; }
  .mission-title-wrap { text-align:left; }
  .header-actions .icon-button[data-action="toggle-fullscreen"] { display:none; }
  .room-code-box span { display:none; }
  .teacher-grid { padding:8px;gap:8px; }
  .world-panel { min-height:590px; }
  .world-overlay { padding:16px; }
  .world-backdrop::before { background-position:center;opacity:.46; }
  .scenario-card { padding:19px; }
  .teacher-controls { flex-direction:column-reverse;align-items:stretch; }
  .decision-options, .student-options { grid-template-columns:1fr; }
  .decision-option { min-height:auto; }
  .parallel-worlds-panel,.evidence-wall-panel { padding:16px; }
  .parallel-worlds-panel::before { display:none; }
  .parallel-worlds-grid,.evidence-wall { grid-template-columns:1fr; }
  .ambassador-bridge { grid-template-columns:1fr; }
  .ambassador-inbox { grid-template-columns:1fr; }
  .parallel-world-card { grid-template-columns:72px minmax(0,1fr); }
  .parallel-world-card > button,.parallel-metric-list { grid-column:1 / -1; }
  .evidence-wall-heading { align-items:flex-start; flex-direction:column; }
  .evidence-filters { justify-content:flex-start; }
  .student-header .ghost-button { padding:9px 11px; }
  .student-shell { width:min(94vw,680px);padding-top:25px; }
  .student-parallel-panel { grid-template-columns:1fr; }
  .student-parallel-metrics { grid-column:auto; }
  .student-ambassador-composer,.incoming-ambassador { grid-column:auto; }
  .student-ambassador-composer > div { grid-template-columns:1fr; }
  .role-card { min-height:470px; }
  .evidence-actions { flex-direction:column; }
  .guide-body, .practice-content, .source-content { padding:28px 20px 22px; }
  .evidence-classification { grid-template-columns:1fr; }
  .report-toolbar { flex-wrap:wrap; padding:14px 52px 14px 14px; }
  .report-toolbar > div { width:100%; }
  .after-action-content { padding:7px; }
  .report-cover { padding:24px 20px; align-items:flex-start; }
  .report-cover h1 { font-size:2rem; }
  .report-score { width:82px; height:82px; }.report-score strong { font-size:2rem; }
  .report-facts { grid-template-columns:1fr 1fr; }
  .report-section { padding:23px 19px; }
  .report-metrics { grid-template-columns:1fr 1fr; }
  .report-evidence-summary { grid-template-columns:1fr 1fr; }
  .report-ambassadors { grid-template-columns:1fr; }
  .report-footer { padding:15px 19px; flex-direction:column; }
}

@media print {
  @page { size:A4; margin:12mm; }
  body { background:white !important; }
  body > *:not(#app), #app { visibility:hidden; }
  #afterActionDialog, #afterActionDialog * { visibility:visible; }
  #afterActionDialog { display:block !important; position:absolute; inset:0; width:100%; max-height:none; overflow:visible; margin:0; padding:0; border:0; background:white; box-shadow:none; }
  .report-toolbar,.dialog-close { display:none !important; }
  .after-action-content { padding:0; background:white; }
  .report-sheet { width:100%; box-shadow:none; border-radius:0; }
  .report-section,.report-decision { break-inside:avoid; }
}

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