:root {
  --abz-game-type-display: 64px;
  --abz-game-type-screen-title: 38px;
  --abz-game-type-card-title: 23px;
  --abz-game-type-body: 16px;
  --abz-game-type-control: 16px;
  --abz-game-type-caption: 12px;
  --obby-ink: #241243;
  --obby-night: #0b1024;
  --obby-mint: #37e6c0;
  --obby-gold: #ffd23f;
  --obby-purple: #7c5cff;
}

[data-abz-type="display"] { font-size: var(--abz-game-type-display) !important; line-height: .9 !important; }
[data-abz-type="screen-title"] { font-size: var(--abz-game-type-screen-title) !important; line-height: 1 !important; }
[data-abz-type="card-title"] { font-size: var(--abz-game-type-card-title) !important; line-height: 1.1 !important; }
[data-abz-type="body"] { font-size: var(--abz-game-type-body) !important; line-height: 1.5 !important; }
[data-abz-type="control"] { font-size: var(--abz-game-type-control) !important; line-height: 1.2 !important; }
[data-abz-type="caption"] { font-size: var(--abz-game-type-caption) !important; line-height: 1.25 !important; }

body { overflow: auto !important; }
body.obby-has-gameover-feedback .abz-shell-feedback { display: none !important; }
body.obby-has-gameover-feedback #abzShellPlay { scroll-margin-top: 76px; }
x-dc { display: block; width: 100%; }
.obby-game-stage {
  position: relative;
  width: 100%;
  height: 100dvh;
  min-height: 560px;
  overflow: hidden;
  background: var(--obby-night);
  container: obby-canvas / size;
  isolation: isolate;
}
body.abz-game-shell-page .obby-game-stage {
  height: min(900px, calc(100dvh - 96px));
  min-height: 620px;
}

.obby-screen {
  box-sizing: border-box;
  max-width: 100%;
}
.obby-screen[data-scroll-policy="fit"] { overflow: auto; }
.obby-screen[data-scroll-policy="scroll"] { overflow: hidden; }
.obby-screen [data-primary-progression-action] { min-height: 48px; }
.obby-screen button,
.obby-modal button,
.obby-modal input,
.obby-modal textarea,
.obby-modal select { font: 700 var(--abz-game-type-control)/1.2 "Baloo 2", "Trebuchet MS", system-ui, sans-serif; }
.obby-screen button:focus-visible,
.obby-modal button:focus-visible,
.obby-modal input:focus-visible,
.obby-modal textarea:focus-visible,
.obby-modal select:focus-visible {
  outline: 4px solid #fff;
  outline-offset: 3px;
  box-shadow: 0 0 0 7px var(--obby-purple);
}

.obby-skill-screen { padding: clamp(14px, 3cqh, 28px) clamp(14px, 3cqw, 28px) !important; }
.obby-skill-head {
  display:grid;
  grid-template-columns:auto minmax(280px,1fr) minmax(240px,340px);
  align-items:center;
  gap:18px;
  width:min(1100px,100%);
  text-align:left;
}
.obby-skill-title-wrap { min-width:0; }
.obby-skill-search-tools { min-width:0; }
.obby-skill-search-tools:empty { min-height:48px; }
.obby-skill-back {
  min-height:48px;
  border:0;
  border-bottom:5px solid rgba(0,0,0,.3);
  border-radius:14px;
  padding:9px 18px;
  color:#fff;
  background:#242b54;
  cursor:pointer;
}
.obby-skill-title-wrap h2 {
  margin:5px 0 0;
  color:#fff;
  font-size:clamp(30px,3.2cqw,46px) !important;
  line-height:.98 !important;
}
.obby-skill-title-wrap p { margin:4px 0 0;color:#c9d4ff;font-weight:600; }
.obby-step-track { display:flex;align-items:center;gap:5px;color:#9fe8ff;text-transform:uppercase; }
.obby-step-track span { width:30px;height:5px;border-radius:99px;background:rgba(255,255,255,.16); }
.obby-step-track span.is-active { background:var(--obby-mint);box-shadow:0 0 10px rgba(55,230,192,.65); }
.obby-step-track b { margin-left:5px;font-size:11px;letter-spacing:1.5px; }
.obby-skill-scroll-frame {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  gap: 10px;
  width: min(1100px, 100%);
  min-height: 0;
  flex: 1 1 auto;
}
.obby-skill-scroll-frame::before,
.obby-skill-scroll-frame::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 0;
  right: 66px;
  height: 34px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
.obby-skill-scroll-frame::before { top: 0; background: linear-gradient(#0d122a, transparent); }
.obby-skill-scroll-frame::after { bottom: 0; background: linear-gradient(transparent, #0d122a); }
.obby-skill-scroll-frame.can-scroll-up::before,
.obby-skill-scroll-frame.can-scroll-down::after { opacity: 1; }
.obby-skill-scroll {
  width: 100%;
  box-sizing: border-box;
  min-height: 0;
  overflow-y: hidden;
  overflow-x: hidden;
  overscroll-behavior-y: auto;
  padding: 4px 10px 80px 4px;
  scrollbar-gutter: stable;
  scrollbar-color: var(--obby-mint) rgba(255,255,255,.08);
}
.obby-skill-scroll[data-scroll-enabled="true"] {
  overflow-y: auto;
  overscroll-behavior-y: contain;
}
.obby-skill-scroll-cues {
  z-index: 3;
  display: flex;
  min-width: 56px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.obby-skill-scroll-cues button {
  width: 50px;
  height: 50px;
  padding: 0;
  border: 2px solid rgba(255,255,255,.82);
  border-bottom: 6px solid rgba(0,0,0,.28);
  border-radius: 50%;
  color: #241243;
  background: linear-gradient(135deg, var(--obby-gold), var(--obby-mint));
  box-shadow: 0 8px 22px rgba(0,0,0,.4), 0 0 0 6px rgba(55,230,192,.13);
  font-size: 27px;
  line-height: 1;
  cursor: pointer;
}
.obby-skill-scroll-cues button:hover { transform: translateY(-2px); }
.obby-skill-scroll-cues button[hidden] { display: none !important; }
.obby-skill-search {
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  gap:5px;
  margin:0;
}
.obby-visually-hidden { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important; }
.obby-search-icon { position:absolute;left:15px;top:24px;transform:translateY(-50%);z-index:1;color:#9aaad0;font-size:20px;pointer-events:none; }
.obby-skill-search input {
  box-sizing:border-box;
  width:100%;
  min-height:48px;
  border:2px solid rgba(255,255,255,.2);
  border-radius:13px;
  padding:0 48px 0 42px;
  color: #fff;
  background: rgba(255,255,255,.09);
}
.obby-skill-search input:focus { border-color:var(--obby-mint); }
.obby-skill-search button,
.obby-learning-card button,
.obby-custom-card button {
  min-height: 48px;
  border: 0;
  border-bottom: 5px solid rgba(0,0,0,.3);
  border-radius: 13px;
  padding: 9px 15px;
  color: var(--obby-ink);
  background: var(--obby-gold);
  cursor: pointer;
}
.obby-skill-search #obbySkillClear { position:absolute;right:5px;top:5px;min-width:38px;min-height:38px;padding:0;border:0;border-radius:10px;background:transparent;color:#dce5ff;box-shadow:none; }
.obby-skill-count { color: #9fe8ff; font-size: 13px; font-weight: 800; }
.obby-learning-card {
  display: grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  padding: 13px 15px;
  border: 2px solid rgba(124,92,255,.46);
  border-radius: 17px;
  color: #fff;
  background: linear-gradient(135deg, rgba(124,92,255,.16), rgba(47,128,237,.08));
}
.obby-learning-card h3,
.obby-learning-card p { margin: 0; }
.obby-learning-card p { color: #c9d4ff; }
.obby-learning-card button { background: var(--obby-mint); color: #0d2b26; }
.obby-custom-intro-icon {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:2px solid rgba(255,210,63,.7);
  border-radius:13px;
  color:var(--obby-gold);
  background:rgba(255,210,63,.09);
  font-size:23px;
}
.obby-custom-intro-copy { min-width:0; }
.obby-custom-intro-copy h3 { color:#fff;font-size:21px !important; }
.obby-custom-intro-copy p { margin-top:2px;font-size:14px;line-height:1.3; }
.obby-section-kicker { display:block;margin-bottom:2px;color:#9fe8ff;font-size:10px;font-weight:800;letter-spacing:1.5px; }
.obby-created-panel { margin-bottom:18px;padding:15px;border:2px solid rgba(124,92,255,.42);border-radius:18px;background:rgba(124,92,255,.07); }
.obby-created-head { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px; }
.obby-created-head h3 { margin:0;color:#fff;font-size:var(--abz-game-type-card-title); }
.obby-created-empty { margin:0;color:#c9d4ff;font-size:var(--abz-game-type-body); }
.obby-created-head > button { min-height:46px;border:0;border-bottom:5px solid rgba(0,0,0,.28);border-radius:13px;padding:8px 14px;color:#0d2b26;background:var(--obby-mint);white-space:nowrap;cursor:pointer; }
.obby-custom-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.obby-custom-empty-note { grid-column:1 / -1;margin:0;padding:9px 11px;border:1px dashed rgba(255,255,255,.18);border-radius:12px;color:#c9d4ff;background:rgba(11,16,36,.3);font-size:14px;line-height:1.3; }
.obby-custom-empty-note > span { margin-right:7px;color:var(--obby-gold); }
.obby-custom-empty-note strong { color:#fff; }
.obby-custom-card { padding:14px;border:2px solid rgba(55,230,192,.32);border-radius:15px;background:rgba(11,16,36,.68);color:#fff; }
.obby-custom-card h4,.obby-custom-card p { margin:0 0 6px; }
.obby-custom-actions { display:flex;flex-wrap:wrap;gap:7px;margin-top:10px; }
.obby-custom-actions button { min-height:42px;padding:7px 11px;background:var(--obby-mint); }
.obby-custom-actions button[data-action="delete"] { color:#fff;background:#d1495b; }
.obby-game-set-heading { margin:12px 0 14px;color:#fff;font-size:var(--abz-game-type-card-title); }
.obby-skill-categories { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:2px 0 12px;padding:7px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(11,16,36,.52); }
.obby-skill-categories button { min-height:44px;border:2px solid transparent;border-radius:11px;padding:7px 8px;color:#b9c6e8;background:transparent;font:800 14px/1.1 "Baloo 2","Trebuchet MS",system-ui,sans-serif;cursor:pointer; }
.obby-skill-categories button:hover,.obby-skill-categories button:focus-visible { color:#fff;border-color:rgba(55,230,192,.55); }
.obby-skill-categories button[aria-selected="true"],.obby-skill-categories button.is-active { color:#0b1024;border-color:var(--obby-mint);background:var(--obby-mint);box-shadow:0 4px 0 #139d84; }
.obby-skill-categories + .obby-game-set-heading { margin:0 0 12px;color:#b9c6e8;font-size:14px;line-height:1.35;font-weight:700; }
.obby-custom-category { margin:0; }
.obby-skill-group { margin:0 0 18px;padding:16px;border:2px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(255,255,255,.035); }
.obby-skill-group > header { display:flex;align-items:center;gap:12px;margin-bottom:13px;padding-bottom:11px;border-bottom:2px solid rgba(255,255,255,.08); }
.obby-skill-group > header > span { display:grid;place-items:center;width:42px;height:42px;flex:none;border:2px solid rgba(55,230,192,.4);border-radius:13px;background:rgba(55,230,192,.1);font-size:21px; }
.obby-skill-group h4,.obby-skill-group p { margin:0; }
.obby-skill-group h4 { color:#fff;font-size:21px;line-height:1.1; }
.obby-skill-group p { color:#9eacd0;font-size:14px; }
.obby-official-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.obby-official-skill {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-height:154px;
  padding:15px 16px;
  overflow:hidden;
  text-align:left;
  color:#fff;
  background:rgba(11,16,36,.72);
  border:2px solid rgba(255,255,255,.12);
  border-top-color:var(--skill-accent);
  border-radius:17px;
  cursor:default;
  transition:transform .15s ease,border-color .15s ease,background .15s ease;
}
.obby-official-skill:hover,.obby-official-skill:focus-visible { transform:translateY(-2px);border-color:var(--skill-accent);background:rgba(255,255,255,.08); }
.obby-skill-icon { display:grid;place-items:center;width:46px;height:46px;border:2px solid var(--skill-accent);border-radius:14px;background:rgba(255,255,255,.07);font-size:23px; }
.obby-skill-copy { display:flex;min-width:0;flex-direction:column;align-items:flex-start; }
.obby-skill-copy strong { color:#fff;font-size:21px;line-height:1.1; }
.obby-skill-copy small { margin-top:4px;color:#b9c6e8;font-size:14px;line-height:1.3;font-weight:600; }
.obby-official-skill[hidden] { display:none !important; }
.obby-grade-picker { grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:11px;border-top:2px solid rgba(255,255,255,.08); }
.obby-grade-picker > span { color:#9fe8ff;font-size:12px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;white-space:nowrap; }
.obby-grade-row { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px; }
.obby-grade-row button { min-width:44px;min-height:44px;border:2px solid rgba(255,255,255,.24);border-bottom:5px solid rgba(0,0,0,.34);border-radius:11px;padding:6px 12px;color:#fff;background:#29345e;font:900 17px/1 "Baloo 2","Trebuchet MS",system-ui,sans-serif;cursor:pointer;transition:transform .14s ease,background .14s ease,color .14s ease,border-color .14s ease; }
.obby-grade-row button:hover,.obby-grade-row button:focus-visible { transform:translateY(-2px);border-color:var(--skill-accent);color:#0b1024;background:var(--skill-accent); }
.obby-skill-direct { grid-column:1 / -1;min-height:46px;border:2px solid var(--skill-accent);border-bottom:5px solid rgba(0,0,0,.32);border-radius:12px;color:#0b1024;background:var(--skill-accent);font:900 16px/1 "Baloo 2","Trebuchet MS",system-ui,sans-serif;cursor:pointer;transition:transform .14s ease,filter .14s ease; }
.obby-skill-direct:hover,.obby-skill-direct:focus-visible { transform:translateY(-2px);filter:brightness(1.08); }

.obby-difficulty-screen { padding:clamp(14px,3cqh,28px) clamp(14px,3cqw,28px) !important; }
.obby-difficulty-heading { width:min(900px,100%); }
.obby-difficulty-grid { width:min(900px,100%);grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.obby-difficulty-card { min-height:230px;transition:transform .15s ease,filter .15s ease; }
.obby-difficulty-card:hover,.obby-difficulty-card:focus-visible { transform:translateY(-3px);filter:brightness(1.04); }
.obby-difficulty-back { min-height:48px; }

.obby-control-help {
  position:absolute;
  left:50%;
  bottom:16px;
  z-index:8;
  transform:translateX(-50%);
  padding:7px 15px;
  border:2px solid rgba(255,255,255,.16);
  border-radius:12px;
  color:#fff;
  background:rgba(11,16,36,.72);
  font-size:15px;
  font-weight:800;
  letter-spacing:.4px;
  pointer-events:none;
  white-space:nowrap;
}

.obby-tutorial-screen {
  inset:0;
  position:absolute;
  display:grid;
  grid-template-rows:auto auto minmax(210px,1fr) auto;
  gap:clamp(10px,2cqh,18px);
  place-items:center;
  padding:clamp(14px,3cqh,28px) clamp(14px,4cqw,42px);
  color:#fff;
  background:
    radial-gradient(circle at 82% 18%,rgba(55,230,192,.19),transparent 32%),
    radial-gradient(circle at 12% 82%,rgba(124,92,255,.23),transparent 34%),
    linear-gradient(155deg,rgba(11,16,36,.68),rgba(20,16,52,.78));
  backdrop-filter:blur(2px) saturate(.9);
  z-index:24;
  overflow:auto;
}
.obby-tutorial-back {
  justify-self:start;
  min-height:48px;
  border:2px solid rgba(255,255,255,.18);
  border-radius:14px;
  padding:9px 18px;
  color:#fff;
  background:rgba(255,255,255,.1);
  cursor:pointer;
}
.obby-tutorial-copy { max-width:860px;text-align:center; }
.obby-tutorial-kicker { color:var(--obby-mint);font-size:clamp(12px,1.8cqh,16px);font-weight:900;letter-spacing:2.5px; }
.obby-tutorial-copy h2 { margin:3px 0;color:#fff;font-size:clamp(27px,min(5.1cqw,5.7cqh),52px);line-height:1;font-weight:800; }
.obby-tutorial-copy p { margin:7px 0 0;color:#cad7ff;font-size:clamp(15px,2.3cqh,20px);font-weight:700; }
.obby-tutorial-rotate { display:inline-flex;align-items:center;gap:12px;margin-top:10px;padding:8px 14px;border:2px solid rgba(255,210,63,.7);border-radius:15px;color:#fff;background:rgba(36,18,67,.86);text-align:left;box-shadow:0 7px 18px rgba(0,0,0,.25); }
.obby-tutorial-rotate i { position:relative;flex:0 0 auto;width:23px;height:38px;border:3px solid #ffd23f;border-radius:6px;animation:obbyRotateDevice 2.4s ease-in-out infinite; }
.obby-tutorial-rotate i::after { content:"↻";position:absolute;left:23px;top:4px;color:#37e6c0;font-style:normal;font-size:24px;font-weight:900; }
.obby-tutorial-rotate span { display:grid;color:#dbe5ff;font-size:12px;line-height:1.2;font-weight:700; }
.obby-tutorial-rotate strong { color:#ffd23f;font-size:15px; }
.obby-tutorial-demo {
  display:grid;
  grid-template-columns:minmax(160px,220px) minmax(0,1fr);
  align-items:center;
  gap:clamp(16px,4cqw,44px);
  width:min(940px,100%);
  min-height:210px;
  padding:clamp(14px,2.8cqh,24px);
  box-sizing:border-box;
  border:3px solid rgba(255,255,255,.16);
  border-radius:25px;
  background:rgba(8,12,34,.88);
  box-shadow:0 18px 52px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08);
}
.obby-tutorial-player-card { position:relative;display:grid;place-items:center;align-self:stretch;min-height:184px;overflow:hidden;border:2px solid rgba(255,255,255,.13);border-radius:18px;background:linear-gradient(180deg,rgba(124,92,255,.22),rgba(55,230,192,.08)); }
.obby-tutorial-player-card > span { position:absolute;top:10px;left:0;right:0;text-align:center;color:#9fe8ff;font-size:11px;font-weight:900;letter-spacing:1.5px; }
.obby-tutorial-avatar { position:relative;width:86px;height:128px;margin-top:18px;animation:brBob 1.9s ease-in-out infinite;filter:drop-shadow(0 7px 4px rgba(0,0,0,.36)); }
.obby-tutorial-avatar i { position:absolute;display:block; }
.obby-tutorial-avatar .hair { z-index:1;left:50%;top:4px;width:50px;height:23px;transform:translateX(-50%);border-radius:12px 12px 6px 6px;background:var(--hair); }
.obby-tutorial-avatar .head { z-index:2;left:50%;top:10px;width:43px;height:40px;transform:translateX(-50%);border-radius:9px;background:var(--skin); }
.obby-tutorial-avatar .head::after { content:"";position:absolute;left:9px;top:20px;width:5px;height:7px;border-radius:3px;background:#2a2740;box-shadow:20px 0 #2a2740; }
.obby-tutorial-avatar .body { z-index:2;left:50%;top:48px;width:60px;height:51px;transform:translateX(-50%);border-radius:10px;background:var(--shirt); }
.obby-tutorial-avatar .arm { z-index:1;top:52px;width:14px;height:44px;border-radius:8px;background:var(--shirt);transform-origin:top; }
.obby-tutorial-avatar .arm-left { left:6px;animation:brSwingA 1.1s ease-in-out infinite; }
.obby-tutorial-avatar .arm-right { right:6px;animation:brSwingB 1.1s ease-in-out infinite; }
.obby-tutorial-avatar .leg { z-index:1;top:92px;width:18px;height:36px;border-radius:8px;background:var(--pants);transform-origin:top; }
.obby-tutorial-avatar .leg-left { left:23px;animation:brSwingB 1.1s ease-in-out infinite; }
.obby-tutorial-avatar .leg-right { right:23px;animation:brSwingA 1.1s ease-in-out infinite; }
.obby-tutorial-avatar.is-girl .hair { top:9px;width:64px;height:74px;border-radius:15px;background:var(--hair); }
.obby-tutorial-avatar.is-girl .body { width:53px; }
.obby-tutorial-avatar.is-girl .body::after { content:"";position:absolute;left:50%;top:37px;width:69px;height:31px;transform:translateX(-50%);border-radius:3px 3px 15px 15px;background:var(--shirt); }
.obby-tutorial-player-base { position:absolute;left:24px;right:24px;bottom:12px;height:7px;border-radius:99px;background:var(--base,#37e6c0);box-shadow:0 0 18px var(--base,#37e6c0); }
.obby-tutorial-keyboard,.obby-tutorial-touch { align-items:center;gap:17px; }
.obby-tutorial-keyboard { display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr); }
.obby-tutorial-touch { display:none;grid-template-columns:100px minmax(0,1fr) 88px; }
.obby-tutorial-demo.is-touch .obby-tutorial-keyboard { display:none; }
.obby-tutorial-demo.is-touch .obby-tutorial-touch { display:grid; }
.obby-tutorial-keyboard > div:last-child,.obby-tutorial-touch > div:nth-child(2) { display:grid;gap:7px; }
.obby-tutorial-keyboard strong,.obby-tutorial-touch strong { color:#fff;font-size:clamp(18px,2.4cqh,23px);line-height:1.1; }
.obby-tutorial-keyboard span,.obby-tutorial-touch span { color:#bfd0fb;font-size:15px;line-height:1.35;font-weight:700; }
.obby-tutorial-key-groups { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;align-items:end; }
.obby-tutorial-key-set { display:grid;gap:4px; }
.obby-tutorial-key-set > small { color:#9fe8ff;text-align:center;font-size:10px;font-weight:900;letter-spacing:1px; }
.obby-tutorial-keys { display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:40px 40px;gap:5px;justify-content:center; }
.obby-tutorial-keys span { display:grid;place-items:center;border:2px solid #fff;border-bottom-width:5px;border-radius:8px;color:#fff;background:#333b65;font-size:19px;font-weight:900;animation:obbyKeyPress 2s ease-in-out infinite; }
.obby-tutorial-keys .key-w { grid-column:2; }
.obby-tutorial-keys .key-a { grid-column:1;grid-row:2;animation-delay:.15s; }
.obby-tutorial-keys .key-s { grid-column:2;grid-row:2;animation-delay:.3s; }
.obby-tutorial-keys .key-d { grid-column:3;grid-row:2;animation-delay:.45s; }
.obby-tutorial-space { grid-column:1 / -1;display:grid;place-items:center;min-height:32px;border-radius:9px;color:#241243 !important;background:#ffd23f;font-size:12px !important;animation:obbySpacePress 4s ease-in-out infinite; }
.obby-tutorial-thumbstick { position:relative;width:98px;height:98px;border:3px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.12); }
.obby-tutorial-thumbstick span { position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:50%;background:var(--obby-mint);transform:translate(-50%,-50%);animation:obbyThumbMove 2.2s ease-in-out infinite; }
.obby-tutorial-jump { width:82px;height:82px;display:grid;place-items:center;border:4px solid #fff;border-radius:50%;color:#241243;background:#ffd23f;font-size:30px;font-weight:900;animation:obbyJumpPulse 2s ease-in-out infinite; }
.obby-tutorial-jump small { display:block;margin-top:-13px;font-size:11px; }
.obby-tutorial-footer { display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap; }
.obby-tutorial-footer > span { padding:7px 12px;border-radius:999px;color:#0d2b26;background:var(--obby-mint);font-size:13px;font-weight:900;letter-spacing:1px; }
.obby-tutorial-footer button { min-height:58px;border:0;border-bottom:8px solid #c99b12;border-radius:18px;padding:13px clamp(22px,4cqw,42px);color:#241243;background:#ffd23f;font-size:clamp(19px,2.6cqh,25px);font-weight:900;cursor:pointer; }

.obby-touch-controls { position:absolute;inset:0;z-index:18;pointer-events:none;touch-action:none;user-select:none;-webkit-user-select:none; }
.obby-touch-controls[hidden] { display:none !important; }
.obby-touch-stick-zone { position:absolute;left:0;bottom:0;width:52%;height:48%;pointer-events:auto;touch-action:none; }
.obby-touch-stick-base { position:absolute;left:max(74px,calc(env(safe-area-inset-left) + 64px));bottom:max(22px,calc(env(safe-area-inset-bottom) + 14px));width:112px;height:112px;transform:translate(-50%,-50%);border:4px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(11,16,36,.38);box-shadow:0 6px 20px rgba(0,0,0,.25),inset 0 0 24px rgba(255,255,255,.08);pointer-events:none; }
.obby-touch-stick-base.is-active { border-color:#fff;background:rgba(11,16,36,.58); }
.obby-touch-stick-knob { position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border:3px solid #fff;border-radius:50%;box-sizing:border-box;background:linear-gradient(145deg,#37e6c0,#20bda0);box-shadow:0 5px 0 #148772,0 7px 16px rgba(0,0,0,.32);will-change:transform; }
.obby-touch-jump { position:absolute;right:max(22px,calc(env(safe-area-inset-right) + 16px));bottom:max(24px,calc(env(safe-area-inset-bottom) + 18px));display:grid;place-items:center;width:96px;height:96px;padding:5px;border:4px solid rgba(255,255,255,.9);border-bottom-width:9px;border-radius:50%;color:#241243;background:linear-gradient(145deg,#ffe36e,#ffd23f);box-shadow:0 8px 22px rgba(0,0,0,.32);pointer-events:auto;touch-action:none;cursor:pointer; }
.obby-touch-jump span { font-size:33px;line-height:.8; }
.obby-touch-jump b { font:900 13px/1 "Baloo 2",sans-serif;letter-spacing:.4px; }
.obby-touch-jump.is-active { transform:translateY(5px) scale(.96);border-bottom-width:4px; }

@keyframes obbyKeyPress { 0%,65%,100% { transform:translateY(0);border-bottom-width:6px; } 72%,84% { transform:translateY(4px);border-bottom-width:2px;background:#7c5cff; } }
@keyframes obbySpacePress { 0%,42%,58%,100% { transform:translateY(0); } 48%,54% { transform:translateY(4px) scale(.98);filter:brightness(1.16); } }
@keyframes obbyThumbMove { 0%,100% { transform:translate(-50%,-50%); } 35% { transform:translate(-24%,-82%); } 70% { transform:translate(-78%,-30%); } }
@keyframes obbyJumpPulse { 0%,62%,100% { transform:scale(1); } 70% { transform:scale(.88);filter:brightness(1.18); } }
@keyframes obbyRotateDevice { 0%,28%,100% { transform:rotate(0); } 48%,78% { transform:rotate(90deg); } }

.obby-fireworks { position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none; }
.obby-firework {
  --firework-color:#ffd23f;
  position:absolute;
  left:14%;
  top:22%;
  width:7px;
  height:7px;
  border-radius:50%;
  color:var(--firework-color);
  background:currentColor;
  box-shadow:0 -58px 0 -1px,41px -41px 0 -1px,58px 0 0 -1px,41px 41px 0 -1px,0 58px 0 -1px,-41px 41px 0 -1px,-58px 0 0 -1px,-41px -41px 0 -1px,22px -54px 0 -2px,54px -22px 0 -2px,54px 22px 0 -2px,22px 54px 0 -2px,-22px 54px 0 -2px,-54px 22px 0 -2px,-54px -22px 0 -2px,-22px -54px 0 -2px;
  opacity:0;
  animation:obbyFireworkBurst 2.1s ease-out infinite;
}
.obby-firework:nth-child(2) { --firework-color:#37e6c0;left:84%;top:18%;animation-delay:.34s; }
.obby-firework:nth-child(3) { --firework-color:#ff5b6e;left:30%;top:48%;animation-delay:.68s; }
.obby-firework:nth-child(4) { --firework-color:#7c5cff;left:70%;top:45%;animation-delay:1.02s; }
.obby-firework:nth-child(5) { --firework-color:#9fe8ff;left:47%;top:16%;animation-delay:1.36s; }
.obby-firework:nth-child(6) { --firework-color:#fff;left:91%;top:57%;animation-delay:1.7s; }
.obby-firework-finale { color:#ffd23f;font-size:17px;font-weight:800;letter-spacing:2px;text-shadow:0 2px 10px rgba(255,210,63,.45); }
@keyframes obbyFireworkBurst {
  0%,12% { opacity:0;transform:scale(.08); }
  16% { opacity:1; }
  58% { opacity:.95;transform:scale(1); }
  82%,100% { opacity:0;transform:scale(1.28) translateY(15px); }
}
[data-game-screen="game-over"] {
  justify-content:flex-start !important;
  width:100%;
  padding-bottom:48px !important;
  scrollbar-color:var(--obby-mint) rgba(255,255,255,.12);
}
[data-game-screen="game-over"] > *:not(.obby-fireworks) { position:relative;z-index:1;flex:none; }
.obby-gameover-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  width:min(680px,100%);
  margin:6px auto 0;
}
.obby-gameover-actions button {
  min-height:58px;
  border:0;
  border-bottom:8px solid #c99b12;
  border-radius:20px;
  padding:13px 34px;
  color:var(--obby-ink);
  background:var(--obby-gold);
  font-size:clamp(20px,2.7cqw,26px);
  font-weight:800;
  cursor:pointer;
}
.obby-gameover-actions .obby-gameover-menu {
  border-bottom-color:rgba(0,0,0,.3);
  color:#fff;
  background:#3b426b;
}
.obby-gameover-feedback {
  display:block;
  width:min(680px,100%);
  margin:12px auto 0;
}

.obby-modal {
  position: absolute;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: clamp(8px, 2.5cqw, 24px);
  background: rgba(6,8,24,.88);
}
.obby-modal[hidden] { display:none; }
.obby-dialog {
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:min(850px,100%);
  max-height:calc(100% - 8px);
  overflow:hidden;
  border:4px solid var(--obby-mint);
  border-radius:24px;
  color:#fff;
  background:linear-gradient(180deg,#171d40,#0b1024);
  box-shadow:0 24px 80px rgba(0,0,0,.55);
}
.obby-dialog-head,.obby-dialog-foot { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:rgba(255,255,255,.06); }
.obby-dialog-head h2 { margin:0;font-size:var(--abz-game-type-screen-title); }
.obby-dialog-head button { width:48px;height:48px;border:0;border-radius:50%;font-size:28px;color:#fff;background:rgba(255,255,255,.12);cursor:pointer; }
.obby-dialog-scroll { min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 22px 76px; }
.obby-dialog label { display:grid;gap:5px;margin-bottom:13px;font-weight:800;color:#dfe7ff; }
.obby-dialog input,.obby-dialog textarea,.obby-dialog select { box-sizing:border-box;width:100%;min-height:48px;border:3px solid rgba(255,255,255,.2);border-radius:12px;padding:10px 12px;color:#fff;background:rgba(255,255,255,.09); }
.obby-dialog textarea { min-height:74px;resize:vertical; }
.obby-question-editor { margin:0 0 16px;padding:16px;border:3px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.04); }
.obby-question-editor legend { padding:0 7px;color:var(--obby-gold);font-size:var(--abz-game-type-card-title);font-weight:800; }
.obby-choice-row { display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin-bottom:8px; }
.obby-choice-row input[type="radio"] { width:26px;height:26px;min-height:0;accent-color:var(--obby-mint); }
.obby-remove-question { color:#fff;background:#d1495b !important; }
.obby-dialog-foot { position:sticky;bottom:0;flex-wrap:wrap; }
.obby-dialog-foot button { min-height:48px;border:0;border-bottom:5px solid rgba(0,0,0,.3);border-radius:14px;padding:10px 18px;cursor:pointer;background:var(--obby-gold);color:var(--obby-ink); }
.obby-dialog-foot .obby-save { background:var(--obby-mint);color:#0d2b26; }
.obby-builder-message { flex:1 1 100%;margin:0;color:#ffd7de;font-weight:800; }
.obby-builder-message.is-success { color:#9fffdc; }
.obby-assignment-status { width:min(680px,100%);box-sizing:border-box;margin:0 auto 12px;padding:13px 16px;border-radius:14px;color:#fff;background:rgba(124,92,255,.35); }
.obby-assignment-status.is-success { background:rgba(27,138,90,.72); }
.obby-assignment-status.is-error { background:rgba(209,73,91,.72); }
.obby-assignment-status button { margin-top:8px;min-height:48px;border:0;border-radius:12px;padding:8px 14px;background:#fff;color:var(--obby-ink); }

.obby-sound-toggle { min-width:48px;min-height:48px;padding:8px !important; }
.obby-question-panel[data-content-density="short"] [data-question-passage] { font-size:clamp(24px,min(3.1cqw,4.6cqh),42px) !important; }
.obby-question-panel[data-content-density="short"] [data-question-prompt] { font-size:clamp(22px,min(2.7cqw,3.8cqh),34px) !important; }
.obby-question-panel[data-content-density="short"] [data-answer-choice] { min-height:58px;font-size:clamp(19px,min(2.1cqw,3.1cqh),28px) !important; }

@media (max-width: 760px) {
  body.abz-game-shell-page .obby-game-stage { height:min(820px,calc(100dvh - 96px));min-height:560px; }
  .obby-custom-list { grid-template-columns:1fr; }
  .obby-learning-card { grid-template-columns:auto minmax(0,1fr);align-items:start; }
  .obby-learning-card > button { grid-column:1 / -1;width:100%; }
  .obby-created-head { align-items:flex-start;flex-direction:column; }
  .obby-dialog-scroll { padding:14px 14px 74px; }
  .obby-skill-head { grid-template-columns:auto 1fr;align-items:start; }
  .obby-skill-search-tools { grid-column:1 / -1;width:100%; }
  .obby-difficulty-screen { gap:11px !important; }
  .obby-difficulty-heading { margin-top:0 !important; }
  .obby-difficulty-grid { grid-template-columns:1fr !important; }
  .obby-difficulty-card { min-height:0;padding:14px 16px !important; }
  .obby-difficulty-card > div:nth-child(2) { margin:7px 0 !important; }
  .obby-difficulty-back { order:-1;align-self:flex-start;margin:0 !important; }
}
@media (max-width: 620px) {
  .obby-skill-categories { display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:6px; }
  .obby-skill-categories button { min-width:112px;scroll-snap-align:start; }
  .obby-official-grid { grid-template-columns:1fr !important; }
  .obby-skill-screen { gap:10px !important; }
  .obby-skill-screen > header { margin-top:0 !important; }
  .obby-skill-scroll-frame { grid-template-columns:minmax(0,1fr) 50px;gap:6px; }
  .obby-skill-scroll-frame::before,.obby-skill-scroll-frame::after { right:56px; }
  .obby-skill-scroll-cues { min-width:50px; }
  .obby-skill-scroll-cues button { width:48px;height:48px;font-size:25px; }
  .obby-official-grid { grid-template-columns:1fr; }
  .obby-official-skill { grid-template-columns:auto minmax(0,1fr); }
  .obby-skill-head { gap:10px; }
  .obby-skill-back { padding:8px 12px; }
  .obby-skill-title-wrap p { display:none; }
  .obby-skill-scroll { padding-right:4px; }
  .obby-created-head { display:grid;grid-template-columns:1fr;align-items:start;gap:7px;margin-bottom:7px; }
  .obby-created-head h3 { font-size:21px;line-height:1.05; }
  .obby-created-head .obby-created-empty { display:none; }
  .obby-created-head button { min-height:42px;padding:7px 10px; }
  #obbyLearningTools > .obby-created-empty { font-size:14px;line-height:1.35; }
  .obby-official-skill { min-height:140px;padding:12px;gap:9px; }
  .obby-grade-picker { align-items:flex-start;flex-direction:column;gap:7px; }
  .obby-grade-row { width:100%;justify-content:flex-start; }
  .obby-grade-row button { min-width:46px;min-height:46px; }
  .obby-control-help { bottom:9px;max-width:calc(100% - 24px);box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;font-size:12px; }
  .obby-tutorial-demo { grid-template-columns:128px minmax(0,1fr);gap:12px; }
  .obby-tutorial-player-card { min-height:168px; }
  .obby-tutorial-keyboard { grid-template-columns:1fr; }
  .obby-tutorial-demo.is-touch { grid-template-columns:1fr; }
  .obby-tutorial-demo.is-touch .obby-tutorial-player-card { min-height:132px; }
  .obby-tutorial-demo.is-touch .obby-tutorial-avatar { margin-top:8px;transform:scale(.72); }
  .obby-tutorial-touch { grid-template-columns:66px minmax(0,1fr) 58px;gap:8px; }
  .obby-tutorial-touch strong { font-size:18px; }
  .obby-tutorial-touch span { font-size:13px; }
  .obby-tutorial-thumbstick { width:62px;height:62px; }
  .obby-tutorial-thumbstick span { width:34px;height:34px; }
  .obby-tutorial-jump { width:58px;height:58px;font-size:22px; }
  .obby-tutorial-jump small { font-size:9px; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .obby-game-stage { min-height:390px; }
  body.abz-game-shell-page .obby-game-stage { height:390px;min-height:390px; }
  .obby-dialog { padding:4px; }
  .obby-dialog-head,.obby-dialog-foot { padding:7px 12px; }
  .obby-dialog-scroll { padding:10px 14px 64px; }
  .obby-tutorial-screen { grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto;padding:8px 14px;gap:7px 14px; }
  .obby-tutorial-back { grid-column:1;grid-row:1; }
  .obby-tutorial-copy { grid-column:2;grid-row:1;text-align:left; }
  .obby-tutorial-copy p { display:none; }
  .obby-tutorial-demo { grid-column:1 / -1;grid-row:2;grid-template-columns:125px minmax(0,1fr);min-height:0;padding:8px 12px; }
  .obby-tutorial-player-card { min-height:138px; }
  .obby-tutorial-avatar { transform:scale(.78); }
  .obby-tutorial-keyboard { grid-template-columns:minmax(280px,340px) minmax(0,1fr); }
  .obby-tutorial-footer { grid-column:1 / -1;grid-row:3; }
  .obby-touch-stick-base { width:92px;height:92px; }
  .obby-touch-stick-knob { width:46px;height:46px;margin:-23px 0 0 -23px; }
  .obby-touch-jump { width:78px;height:78px; }
}
@media (prefers-reduced-motion: reduce) {
  .obby-game-stage *, .obby-game-stage *::before, .obby-game-stage *::after { scroll-behavior:auto !important; }
  .obby-firework { animation:none;opacity:.75;transform:scale(.7); }
  .obby-tutorial-avatar,.obby-tutorial-avatar .arm,.obby-tutorial-avatar .leg,.obby-tutorial-keys span,.obby-tutorial-space,.obby-tutorial-thumbstick span,.obby-tutorial-jump,.obby-tutorial-rotate i { animation:none; }
}
