:root{
  font-family:Inter,"Segoe UI",system-ui,sans-serif;
  color:#eee9df;
  background:#171a1f;
  --cell:clamp(28px,7.2vw,46px);
}
*{box-sizing:border-box}
body{
  margin:0;min-height:100vh;padding:20px;display:grid;place-items:center;
  background:
    radial-gradient(circle at 50% 0,#30343b 0,transparent 40%),
    #171a1f;
}
button{font:inherit}
[hidden]{display:none!important}
.game-shell{width:min(700px,100%);text-align:center}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:900;color:#c6a55d;margin:0 0 8px}
h1{font-size:clamp(2rem,8vw,3.7rem);margin:0;color:#fff6df;text-shadow:0 3px 18px rgba(0,0,0,.35)}
.intro{color:#bbb6ac;line-height:1.5;margin:10px auto 18px;max-width:580px}
.world-info,.hud{display:grid;gap:10px;margin:0 auto 12px;max-width:620px}
.world-info{grid-template-columns:repeat(2,1fr)}
.hud{grid-template-columns:repeat(3,1fr)}
.world-info>div,.hud>div{
  background:#252a31;border:1px solid #3c434d;border-radius:14px;padding:10px;
  box-shadow:0 5px 18px rgba(0,0,0,.22)
}
.hud-label{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;font-weight:800;color:#9c9a95}
.hud strong{font-size:1.35rem;color:#fff5dc}
.world-info strong{display:block;font-size:.98rem;color:#fff5dc;margin-top:2px}
.status{min-height:1.6em;font-weight:800;margin:10px 0;color:#d6d1c7}
.board-wrap{display:flex;justify-content:center;overflow:auto;padding:5px}
.board{
  position:relative;
  display:grid;
  grid-template-columns:repeat(var(--cols,11),var(--cell));
  grid-template-rows:repeat(var(--rows,9),var(--cell));
  width:max-content;
  border:7px solid #454b54;
  border-radius:13px;
  overflow:hidden;
  background:#4f5846;
  box-shadow:0 18px 45px rgba(0,0,0,.35), inset 0 0 0 2px #1b1f24;
}
.cell{
  width:var(--cell);height:var(--cell);
  position:relative;
  display:grid;place-items:center;
  background:#55604b;
  border:1px solid rgba(20,24,18,.18);
}
.cell.floor:nth-child(even){background:#505a47}
.cell.wall{
  background:
    linear-gradient(135deg,rgba(255,255,255,.05) 25%,transparent 25%) 0 0/12px 12px,
    #3e454d;
  border-color:#242a30;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.04),inset 0 -4px 0 rgba(0,0,0,.14);
}
.cell.crate{
  background:#76573d;
  border:2px solid #443021;
  box-shadow:inset 0 0 0 3px #977052;
}
.cell.crate::before,.cell.crate::after{
  content:"";position:absolute;background:#493323;border-radius:2px;
}
.cell.crate::before{width:75%;height:4px;transform:rotate(36deg)}
.cell.crate::after{width:75%;height:4px;transform:rotate(-36deg)}
.cell.exit{background:#272a31}
.cell.exit::before{
  content:"PORTAL";font-size:clamp(6px,1.55vw,9px);font-weight:1000;letter-spacing:.05em;
  color:#aa8fff;border:2px solid #aa8fff;border-radius:50%;padding:5px 2px;
  box-shadow:0 0 12px rgba(170,143,255,.5), inset 0 0 10px rgba(170,143,255,.2);
}
.cell.exit.locked{filter:saturate(.25);opacity:.62}

/* Actor layer: Die Figuren werden nicht mehr bei jedem Schritt neu erzeugt.
   Stattdessen gleiten sie per transform von Feld zu Feld. */
.actor-layer{
  position:absolute;inset:0;z-index:10;pointer-events:none;overflow:hidden;
}
.actor{
  position:absolute;left:0;top:0;
  width:var(--cell);height:var(--cell);
  display:grid;place-items:center;
  will-change:transform;
  transform:translate3d(0,0,0);
}
.actor.player-actor{
  transition:transform 115ms cubic-bezier(.2,.8,.25,1);
  z-index:5;
}
.actor.player-actor.invulnerable .player{
  animation:respawn-blink 280ms steps(2,end) infinite;
}
@keyframes respawn-blink{
  0%,49%{opacity:1}
  50%,100%{opacity:.22}
}
.actor.enemy-actor{
  transition:transform 250ms linear;
  z-index:4;
}
.sprite{
  width:84%;height:84%;display:grid;place-items:center;
}
.player{
  border-radius:50%;
  background:#ece8dd;
  border:3px solid #242930;
  box-shadow:inset 0 -5px 0 #c7c1b6,0 3px 7px rgba(0,0,0,.35);
}
.player::before{
  content:"";width:50%;height:38%;border-radius:50% 50% 40% 40%;
  background:#8a6ee8;box-shadow:-9px 6px 0 -6px #191b20,9px 6px 0 -6px #191b20;
}
.enemy{
  border-radius:43% 43% 50% 50%;background:#a9434b;border:3px solid #67262c;
  box-shadow:0 3px 8px rgba(0,0,0,.35);
}
.enemy::before{content:"••";letter-spacing:4px;color:#fff;font-weight:1000;transform:translateX(2px)}
.enemy-wraith{
  background:rgba(157,133,255,.26);
  border-color:#9f8cff;
  box-shadow:0 0 14px rgba(159,140,255,.7),inset 0 0 12px rgba(255,255,255,.12);
  border-radius:50% 50% 42% 42%;
}
.enemy-wraith::before{content:"◉ ◉";letter-spacing:0;color:#efeaff;text-shadow:0 0 6px #fff}
.enemy-warden{
  background:#6f4f2f;
  border-color:#d1a65f;
  box-shadow:0 0 0 2px #49331f,0 5px 12px rgba(0,0,0,.4);
  border-radius:30%;
}
.enemy-warden::before{content:"◆";font-size:1.15rem;color:#ffe7a8;transform:none}
.enemy-health{
  position:absolute;left:50%;bottom:-3px;transform:translateX(-50%);
  min-width:30px;padding:1px 4px;border-radius:8px;
  background:#171a1f;border:1px solid #c6a55d;color:#fff3cc;
  font-size:9px;font-weight:900;line-height:1.2;z-index:9;
}


.bomb{
  position:absolute;inset:14%;z-index:4;
  border-radius:50%;background:#181b20;border:3px solid #050607;
  box-shadow:inset -4px -5px 0 #090a0b, inset 4px 4px 0 #454b52;
  animation:bombPulse .5s ease-in-out alternate infinite;
}
@keyframes bombPulse{from{transform:scale(.93)}to{transform:scale(1.02)}}
.bomb::after{
  content:"";position:absolute;width:28%;height:18%;border:3px solid #544015;border-bottom:0;border-left:0;
  border-radius:0 12px 0 0;right:4%;top:-8%;
}
.bomb::before{
  content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#ffb52a;right:-5%;top:-9%;
  box-shadow:0 0 9px #ff9d1d;
}
.explosion{
  position:absolute;inset:0;z-index:25;
  background:
    radial-gradient(circle at center,#fffbd0 0 16%,#ffd84b 18% 38%,#ff8a22 40% 62%,#d93a22 64% 76%,rgba(217,58,34,.18) 78%);
  box-shadow:0 0 14px rgba(255,151,33,.9), inset 0 0 10px rgba(255,255,210,.7);
  animation:blast .14s ease-out alternate infinite;
}
@keyframes blast{from{transform:scale(.82)}to{transform:scale(1.03)}}
.laser-beam{
  position:absolute;z-index:24;inset:0;
  background:radial-gradient(circle,#f8fbff 0 12%,#82e9ff 22%,rgba(64,191,255,.45) 45%,transparent 72%);
  filter:drop-shadow(0 0 7px rgba(126,226,255,.95));
  animation:laserPulse .09s ease-in-out alternate infinite;
}
.laser-beam.horizontal::before,.laser-beam.vertical::before{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  background:#dffbff;box-shadow:0 0 10px #6ee7ff;
}
.laser-beam.horizontal::before{width:100%;height:18%}
.laser-beam.vertical::before{width:18%;height:100%}
@keyframes laserPulse{from{opacity:.72}to{opacity:1}}


.controls{display:flex;justify-content:center;align-items:center;gap:28px;margin:18px 0 12px}
.dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px);gap:5px}
.dpad button,.bomb-button,.laser-button,.cherry-button,.primary,.secondary{
  border:0;border-radius:13px;cursor:pointer;font-weight:900;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}
.dpad button{background:#282e35;color:#f2eee6;font-size:1.15rem;border:1px solid #444c56}
.dpad button:active,.bomb-button:active,.laser-button:active,.cherry-button:active{transform:translateY(2px)}
.ability-buttons{display:flex;flex-direction:column;gap:8px;min-width:145px}
.bomb-button,.laser-button,.cherry-button{padding:14px 16px;min-width:135px}
.bomb-button{background:#c6a55d;color:#211c13}
.laser-button{background:#83dff0;color:#13272c;border:1px solid #c8f7ff}
.cherry-button{background:#b74f68;color:#fff5f7;border:1px solid #e1899e}
.bomb-button:disabled,.laser-button:disabled,.cherry-button:disabled{opacity:.5;cursor:not-allowed;transform:none}

.actions{display:flex;justify-content:center;gap:10px}
.primary{background:#8a6ee8;color:white;padding:12px 18px}
.secondary{background:#282e35;color:#eee9df;border:1px solid #444c56;padding:12px 18px}
.help{
  margin:18px auto 0;max-width:540px;text-align:left;background:#23282f;
  border:1px solid #3d444e;border-radius:14px;padding:10px 14px;color:#bbb6ac
}
.help summary{font-weight:850;cursor:pointer;color:#eee9df}
.help p{line-height:1.45}
button:focus-visible,summary:focus-visible{outline:3px solid #b9a6ff;outline-offset:3px}
.win{color:#7fd6a7}.danger{color:#ff858e}
@media(max-width:520px){
  body{padding:12px}
  .world-info{grid-template-columns:1fr 1fr}
  .world-info strong{font-size:.86rem}
  .controls{gap:14px}
  .dpad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px)}
  .ability-buttons{min-width:118px}
  .bomb-button,.laser-button,.cherry-button{padding:12px 9px;min-width:112px;font-size:.9rem}
  .help{font-size:.92rem}
}
@media(prefers-reduced-motion:reduce){
  .actor,.bomb,.explosion,.laser-beam{transition:none!important;animation:none!important}
}

/* Sobald der Laser verfügbar ist, signalisiert der Mauszeiger das direkte Zielen im Spielfeld. */
.board.laser-ready{cursor:crosshair}

/* Pausemenü und frei belegbare Steuerung */
.board.is-paused{filter:saturate(.72) brightness(.75)}
.pause-overlay{
  position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;
  background:rgba(8,10,13,.78);backdrop-filter:blur(7px)
}
.pause-card{
  width:min(560px,100%);max-height:min(88vh,760px);overflow:auto;
  background:#20252c;border:1px solid #4a525e;border-radius:18px;padding:24px;
  box-shadow:0 24px 70px rgba(0,0,0,.55);text-align:left
}
.pause-card h2{margin:0 0 8px;color:#fff6df;font-size:2rem}
.pause-copy{color:#bbb6ac;line-height:1.45;margin:0 0 18px}
.pause-actions{display:flex;flex-direction:column;gap:10px}
.pause-actions.horizontal{flex-direction:row;margin-top:18px;flex-wrap:wrap}
.pause-actions button{width:100%}
.pause-actions.horizontal button{width:auto;flex:1 1 180px}
.danger-button{border-color:#774149!important;color:#ffd9dc!important}
.control-bindings{display:grid;gap:7px}
.control-group-title{
  margin:14px 0 2px;padding-top:10px;border-top:1px solid #3d444e;
  color:#c6a55d;font-size:.78rem;text-transform:uppercase;letter-spacing:.09em
}
.control-group-title:first-child{margin-top:0;padding-top:0;border-top:0}
.binding-row{
  display:grid;grid-template-columns:1fr minmax(120px,170px);gap:12px;align-items:center;
  padding:7px 0;color:#ddd7cc
}
.binding-button{
  border:1px solid #596270;background:#2c323a;color:#fff5dc;border-radius:10px;
  padding:9px 12px;font-weight:900;cursor:pointer
}
.binding-button.waiting{border-color:#83dff0;box-shadow:0 0 0 2px rgba(131,223,240,.18);color:#dffbff}
.actor.enemy-actor.boss-core-exposed .enemy-warden{
  border-color:#83dff0;box-shadow:0 0 0 2px #49331f,0 0 18px rgba(131,223,240,.9)
}
.actor.enemy-actor.boss-core-exposed .enemy-warden::before{content:"◆";color:#dffbff;text-shadow:0 0 9px #83dff0}
.actor.enemy-actor.boss-phasing .enemy-warden{
  opacity:.58;background:rgba(111,79,47,.45);border-style:dashed;
  box-shadow:0 0 18px rgba(159,140,255,.85)
}
.actor.enemy-actor.boss-phasing{animation:warden-phase 320ms ease-in-out alternate infinite}
@keyframes warden-phase{from{filter:brightness(.9)}to{filter:brightness(1.45)}}
@media(max-width:520px){
  .pause-card{padding:18px}
  .binding-row{grid-template-columns:1fr 125px;font-size:.92rem}
  .binding-button{padding:8px 7px}
}
@media(prefers-reduced-motion:reduce){.actor.enemy-actor.boss-phasing{animation:none!important}}


/* Dimension 2: Schattenlabyrinth */
.board.maze-board{
  background:#26223c;
  border-color:#4e4768;
}
.cell.maze-floor{
  background:#29263d;
  border-color:rgba(164,145,220,.12);
}
.cell.maze-floor:nth-child(even){background:#27233a}
.cell.maze-wall{
  background:
    linear-gradient(135deg,rgba(177,158,232,.07) 25%,transparent 25%) 0 0/10px 10px,
    #37334d;
  border-color:#211e31;
}
.cell.maze-exit{background:#211d34}
.maze-shard{
  width:28%;height:28%;z-index:3;transform:rotate(45deg);
  background:#d9c9ff;border:1px solid #fff;
  box-shadow:0 0 9px rgba(190,166,255,.9);
}
.cherry-pickup{
  position:absolute;z-index:4;font-size:clamp(15px,3.5vw,23px);
  filter:drop-shadow(0 0 6px rgba(255,126,153,.7));
}

.energy-shard{
  width:34%;height:34%;z-index:3;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff 0 15%,#93f4ff 20% 48%,#43a9ff 55% 72%,#183d7a 78% 100%);
  border:1px solid #c9fbff;
  box-shadow:0 0 7px rgba(113,231,255,.95),0 0 14px rgba(69,155,255,.65);
  animation:energy-shard-pulse 900ms ease-in-out alternate infinite;
}
@keyframes energy-shard-pulse{from{transform:scale(.9)}to{transform:scale(1.12)}}
.actor.enemy-actor.boss-fragment .enemy-warden{
  border-color:#7de9ff;
  box-shadow:0 0 0 2px #263c52,0 0 20px rgba(91,220,255,.88);
  filter:brightness(1.16);
}
@media(prefers-reduced-motion:reduce){.energy-shard{animation:none!important}}
.actor.player-actor.cherry-active .player{
  box-shadow:inset 0 -5px 0 #c7c1b6,0 0 0 3px rgba(255,111,143,.75),0 0 18px rgba(255,111,143,.95);
  animation:cherry-shield 420ms ease-in-out alternate infinite;
}
@keyframes cherry-shield{from{filter:brightness(1)}to{filter:brightness(1.35)}}
.pulse-bomb{filter:hue-rotate(35deg)}
.pulse-explosion{opacity:.78}
@media(prefers-reduced-motion:reduce){.actor.player-actor.cherry-active .player{animation:none!important}}
.actor.enemy-actor.maze-stunned .sprite{
  opacity:.62;
  filter:grayscale(.35) brightness(1.25);
}
.actor.enemy-actor.split-warden .enemy-warden{
  border-color:#d8c7ff;
  box-shadow:0 0 0 2px #49331f,0 0 16px rgba(190,166,255,.72);
}
.actor.enemy-actor.split-warden .enemy-health{
  display:block;
  min-width:max-content;
  background:#211d34;
  color:#efe8ff;
  border:1px solid #74699a;
  padding:2px 4px;
  border-radius:5px;
  font-size:.58rem;
}

/* Level-Auswahl im Pausemenü */
.level-selector{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.level-group-title{
  grid-column:1/-1;
  margin:14px 0 2px;
  padding-top:10px;
  border-top:1px solid #3d444e;
  color:#c6a55d;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.level-group-title:first-child{margin-top:0;padding-top:0;border-top:0}
.level-select-button{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  min-height:64px;
  padding:10px 12px;
  border:1px solid #596270;
  border-radius:11px;
  background:#2c323a;
  color:#fff5dc;
  text-align:left;
  cursor:pointer;
}
.level-select-button:hover:not(:disabled){border-color:#83dff0;background:#323a44}
.level-select-button.current{border-color:#83dff0;box-shadow:0 0 0 2px rgba(131,223,240,.15)}
.level-select-button.completed:not(.current){border-color:#5f775d}
.level-select-button:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.45)}
.level-select-title{font-weight:900;line-height:1.2}
.level-select-state{font-size:.73rem;color:#bbb6ac}
.level-select-button.current .level-select-state{color:#bceef7}
.level-select-button.completed .level-select-state{color:#c7e7c3}
@media(max-width:520px){
  .level-selector{grid-template-columns:1fr}
}

/* Dimension 3: Himmelsfestung */
.hammer-button{
  border:0;border-radius:13px;cursor:pointer;font-weight:900;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
  padding:14px 16px;min-width:135px;
  background:#d49a5b;color:#25180c;border:1px solid #f2c98e;
}
.hammer-button:active{transform:translateY(2px)}
.hammer-button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.board.tower-board{
  background:#141a22;
  border-color:#59636f;
  box-shadow:0 18px 45px rgba(0,0,0,.45),inset 0 0 0 2px #0d1117;
}
.cell.tower-void{
  background:linear-gradient(180deg,#111720,#0b1016);
  border-color:#111720;
}
.cell.tower-floor{
  background:linear-gradient(180deg,#4f5964 0 64%,#343b44 65% 100%);
  border-color:#283039;
  box-shadow:inset 0 -5px 0 rgba(0,0,0,.2),inset 0 2px 0 rgba(255,255,255,.06);
}
.cell.tower-ladder::before{
  content:"";position:absolute;inset:5% 27%;z-index:2;
  border-left:4px solid #b98a54;border-right:4px solid #b98a54;
  background:repeating-linear-gradient(to bottom,transparent 0 8px,#d2a365 8px 11px,transparent 11px 17px);
  filter:drop-shadow(0 2px 1px rgba(0,0,0,.35));
}
.cell.tower-brittle{
  background:#76543f;border:2px solid #4b3022;
  box-shadow:inset 0 0 0 3px #956b50;
}
.cell.tower-brittle::before{
  content:"✕";font-weight:1000;color:#3c281e;font-size:1.15rem;text-shadow:0 1px 0 rgba(255,255,255,.12)
}
.cell.tower-gate{
  background:repeating-linear-gradient(90deg,#262d35 0 5px,#a47a49 5px 9px,#262d35 9px 14px);
  border-color:#1d2329;
}
.cell.tower-switch::after{
  content:"◆";position:absolute;z-index:3;width:54%;height:54%;display:grid;place-items:center;
  border-radius:10px;background:#5d4932;border:2px solid #d0a25f;color:#ffdea0;
  box-shadow:0 0 8px rgba(216,164,91,.35);
}
.cell.tower-switch.active::after{
  content:"✓";background:#345c50;border-color:#73d6aa;color:#dffff0;
  box-shadow:0 0 12px rgba(115,214,170,.6);
}
.cell.tower-spikes::after{
  content:"▲▲▲";position:absolute;bottom:1px;z-index:3;color:#c9d0d6;
  font-size:clamp(7px,1.7vw,11px);letter-spacing:-1px;text-shadow:0 2px 1px #252b31;
}
.cell.tower-exit::before{content:"AUFSTIEG"}
.hammer-swing{
  position:absolute;inset:0;z-index:30;display:grid;place-items:center;
  font-size:clamp(20px,5vw,32px);transform:rotate(-22deg);
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));
  animation:hammer-hit 110ms ease-in-out alternate infinite;
}
@keyframes hammer-hit{from{transform:rotate(-42deg) scale(.9)}to{transform:rotate(8deg) scale(1.12)}}
.enemy-sentry{
  background:#64717f;border-color:#b8c6d3;border-radius:24%;
  box-shadow:inset 0 -5px 0 #46515d,0 4px 9px rgba(0,0,0,.4);
}
.enemy-sentry::before{content:"▰";color:#e9f1f7;font-size:1rem;transform:none}
.enemy-climber{
  background:#5c7851;border-color:#b5cf86;border-radius:48% 48% 30% 30%;
  box-shadow:0 4px 9px rgba(0,0,0,.4);
}
.enemy-climber::before{content:"⌃⌃";letter-spacing:-2px;color:#efffd7;transform:none}
.enemy-towerWarden{
  background:#6a5a45;border-color:#f0b968;border-radius:20%;
  box-shadow:0 0 0 2px #352c23,0 0 16px rgba(240,185,104,.55),inset 0 -5px 0 #4b3f31;
}
.enemy-towerWarden::before{content:"⬢";color:#ffe2a7;font-size:1.25rem;transform:none}
.actor.enemy-actor.tower-stunned .sprite{opacity:.62;filter:grayscale(.4) brightness(1.3)}
.actor.enemy-actor.tower-boss-vulnerable .enemy-towerWarden{
  border-color:#83dff0;box-shadow:0 0 0 2px #294553,0 0 20px rgba(131,223,240,.9);
}
.actor.enemy-actor.tower-boss-vulnerable .enemy-towerWarden::before{color:#dffbff;text-shadow:0 0 9px #83dff0}
.tower-stun-bomb{filter:hue-rotate(18deg) saturate(.7)}
.tower-stun-wave{opacity:.55;filter:hue-rotate(190deg) saturate(.65)}
@media(max-width:520px){
  .hammer-button{padding:12px 9px;min-width:112px;font-size:.9rem}
}
@media(prefers-reduced-motion:reduce){.hammer-swing{animation:none!important}}

/* Dimension 4: Riss-Rennen */
.booster-button{
  border:1px solid #d6fbff;border-radius:13px;cursor:pointer;font-weight:900;
  box-shadow:0 4px 12px rgba(0,0,0,.25),0 0 14px rgba(90,223,255,.2);
  padding:14px 16px;min-width:135px;background:#58d9ee;color:#10262d;
}
.booster-button:active{transform:translateY(2px)}
.booster-button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.board.race-board{
  --cell:clamp(27px,6.6vw,43px);
  background:#101822;border-color:#415d6c;
  box-shadow:0 18px 45px rgba(0,0,0,.46),inset 0 0 0 2px #071017;
}
.cell.race-wall{
  background:
    linear-gradient(135deg,rgba(120,204,221,.08) 25%,transparent 25%) 0 0/11px 11px,
    #14212b;
  border-color:#0b1319;
  box-shadow:inset 0 0 0 2px rgba(102,180,199,.025);
}
.cell.race-track{
  background:linear-gradient(180deg,#3a4650,#303a43);
  border-color:#29323a;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.035),inset 0 -3px 0 rgba(0,0,0,.16);
}
.cell.race-track:nth-child(even){background:linear-gradient(180deg,#3d4851,#333d46)}
.cell.race-checkpoint::after{
  content:attr(data-checkpoint);position:absolute;inset:7% 5%;z-index:3;display:grid;place-items:center;
  color:#f7f1db;font-weight:1000;font-size:.72rem;border-top:3px solid #d6b764;border-bottom:3px solid #d6b764;
  background:repeating-linear-gradient(90deg,rgba(214,183,100,.2) 0 6px,rgba(32,39,46,.1) 6px 12px);
  text-shadow:0 1px 2px #000;
}
.cell.race-checkpoint.next::after{border-color:#86e9f5;color:#dffcff;box-shadow:inset 0 0 12px rgba(89,221,240,.18)}
.cell.race-checkpoint.passed::after{border-color:#6f9e80;color:#b8dbc3;opacity:.58}
.cell.race-finish{
  background:repeating-linear-gradient(45deg,#e9e2cf 0 6px,#28323a 6px 12px)!important;
}
.cell.race-finish::after{
  content:"ZIEL";position:absolute;inset:0;display:grid;place-items:center;z-index:4;
  font-size:clamp(6px,1.45vw,9px);font-weight:1000;color:#152029;background:rgba(235,227,206,.68);
}
.cell.race-finish.locked{filter:saturate(.25) brightness(.7)}
.cell.race-boost-pad::before{
  content:"»";position:absolute;inset:7%;z-index:3;display:grid;place-items:center;
  border-radius:8px;background:rgba(75,213,237,.2);border:1px solid #72e7f8;color:#c9faff;
  font-size:1.4rem;font-weight:1000;letter-spacing:-5px;text-shadow:0 0 8px #6deaff;
  box-shadow:inset 0 0 10px rgba(85,226,246,.18),0 0 8px rgba(85,226,246,.25);
}
.cell.race-hazard::before{
  content:"";position:absolute;inset:12%;z-index:3;border-radius:42%;
  background:radial-gradient(circle,#aa80ff 0 15%,rgba(129,73,218,.72) 20% 43%,rgba(53,32,94,.38) 55%,transparent 72%);
  box-shadow:0 0 12px rgba(151,96,255,.72);animation:race-rift 700ms ease-in-out alternate infinite;
}
.race-player-actor{transition:transform 190ms linear!important}
.race-glider{
  width:78%;height:70%;border-radius:48% 48% 24% 24%;background:#d9e7e8;border:3px solid #284452;
  box-shadow:inset 0 -5px 0 #8aa4ad,0 0 9px rgba(90,222,246,.35),0 4px 7px rgba(0,0,0,.45);
  transform:rotate(90deg);
}
.race-glider::before{
  content:"◆";width:auto;height:auto;background:none;box-shadow:none;color:#5bdcf0;font-size:1rem;
  text-shadow:0 0 7px #55e6fb;
}
.race-player-actor[data-direction="up"] .race-glider{transform:rotate(0deg)}
.race-player-actor[data-direction="right"] .race-glider{transform:rotate(90deg)}
.race-player-actor[data-direction="down"] .race-glider{transform:rotate(180deg)}
.race-player-actor[data-direction="left"] .race-glider{transform:rotate(270deg)}
.race-player-actor.race-boosting .race-glider{
  box-shadow:inset 0 -5px 0 #8aa4ad,0 0 0 3px rgba(84,230,250,.25),0 0 22px rgba(84,230,250,.95),0 5px 9px rgba(0,0,0,.5);
  filter:brightness(1.2);
}
.race-opponent-actor{transition:transform 190ms linear!important}
.race-opponent{
  width:78%;height:72%;border-radius:28%;background:#b15a52;border:3px solid #5b2927;
  box-shadow:inset 0 -5px 0 #743a36,0 4px 8px rgba(0,0,0,.45);
}
.race-opponent::before{content:"◇";color:#ffe0d9;font-size:1rem;font-weight:1000}
.race-opponent-blocker{background:#c39245;border-color:#65471e;box-shadow:inset 0 -5px 0 #805e29,0 4px 8px rgba(0,0,0,.45)}
.race-opponent-blocker::before{content:"▬";color:#fff0bc}
.race-opponent-rammer{background:#a94e57;border-color:#5e252c}
.race-opponent-rammer::before{content:"▶";color:#ffe1e4}
.race-opponent-hunter{
  background:#543d77;border-color:#b58bff;border-radius:50% 35% 50% 35%;
  box-shadow:0 0 0 2px #251a39,0 0 18px rgba(172,121,255,.78),inset 0 -4px 0 #3b2b55;
}
.race-opponent-hunter::before{content:"✦";color:#efe3ff;text-shadow:0 0 7px #fff}
.race-opponent-actor.race-opponent-stunned .race-opponent{opacity:.5;filter:grayscale(.5) brightness(1.3)}
@keyframes race-rift{from{transform:scale(.86) rotate(-7deg)}to{transform:scale(1.08) rotate(9deg)}}
@media(max-width:520px){
  .booster-button{padding:12px 9px;min-width:112px;font-size:.9rem}
  .board.race-board{--cell:clamp(24px,6vw,38px)}
}
@media(prefers-reduced-motion:reduce){.cell.race-hazard::before{animation:none!important}}
.cell.race-boost-pad.used::before{opacity:.28;filter:grayscale(.7);box-shadow:none}

/* Dimension 5: Bruchwelt */
.cube-button{border:1px solid #d8c8ff;border-radius:13px;cursor:pointer;font-weight:900;box-shadow:0 4px 12px rgba(0,0,0,.25),0 0 14px rgba(156,113,255,.22);padding:14px 16px;min-width:135px;background:#8062c7;color:#fff7ff}
.cube-button:active{transform:translateY(2px)}
.cube-button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.board.platform-board{display:block;position:relative;width:100%;aspect-ratio:var(--platform-ratio,18 / 11);overflow:hidden;background:radial-gradient(circle at 72% 18%,rgba(137,89,220,.22),transparent 26%),linear-gradient(180deg,#172132 0 60%,#10151d 100%);border-color:#645a7b;box-shadow:0 18px 45px rgba(0,0,0,.48),inset 0 0 0 2px #0c1017;touch-action:none}
.platform-world{position:absolute;left:0;top:0;transform-origin:0 0;transition:transform 80ms linear}
.platform-solid,.platform-breakable,.platform-gate,.platform-hazard,.platform-checkpoint,.platform-switch,.platform-exit,.platform-actor,.platform-bomb,.platform-laser,.platform-explosion,.platform-boss-shot{position:absolute}
.platform-solid{z-index:2;background:linear-gradient(180deg,#53606e 0 55%,#313a45 56% 100%);border:1px solid #222a33;box-shadow:inset 0 3px 0 rgba(255,255,255,.06),inset 0 -5px 0 rgba(0,0,0,.18)}
.platform-solid::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 13px,rgba(124,93,173,.08) 13px 15px)}
.platform-breakable{z-index:4;background:#76504a;border:2px solid #432d2a;box-shadow:inset 0 0 0 3px #9e6b61,0 3px 5px rgba(0,0,0,.35);transition:opacity 160ms ease,transform 160ms ease}
.platform-breakable::after{content:"✕";position:absolute;inset:0;display:grid;place-items:center;color:#39221f;font-weight:1000}
.platform-breakable.destroyed{opacity:0;transform:scale(.72);pointer-events:none}
.platform-gate{z-index:5;background:repeating-linear-gradient(90deg,#242b35 0 6px,#9d7ac9 6px 10px,#242b35 10px 16px);border:1px solid #171d25;transition:opacity 180ms ease,transform 180ms ease}
.platform-gate.open{opacity:0;transform:translateY(-30%);pointer-events:none}
.platform-hazard{z-index:3;background:repeating-linear-gradient(45deg,#5f3d83 0 6px,#251f36 6px 12px);border-top:2px solid #b38af0;box-shadow:0 0 12px rgba(159,102,231,.45)}
.platform-hazard::before{content:"▲▲▲▲";position:absolute;inset:0;display:grid;place-items:center;color:#e4d5ff;font-size:.72rem;letter-spacing:-3px}
.platform-checkpoint{z-index:6;border-left:3px solid #647483;opacity:.45}
.platform-checkpoint::after{content:"◆";position:absolute;left:-9px;top:-4px;color:#8291a3;font-size:1rem}
.platform-checkpoint.active{opacity:1;border-color:#75e2cd}
.platform-checkpoint.active::after{color:#9cffe9;text-shadow:0 0 9px #66e4ca}
.platform-switch{z-index:6;border-radius:50%;background:#4a3c55;border:2px solid #a78bc1;box-shadow:0 0 10px rgba(153,115,190,.35)}
.platform-switch::after{content:"◆";position:absolute;inset:0;display:grid;place-items:center;color:#e7dbef;font-size:.68rem}
.platform-switch.switch-laser{border-color:#70e1ef;background:#244750}.platform-switch.switch-laser::after{content:"⚡";color:#c8faff}
.platform-switch.switch-hammer{border-color:#e0ae6b;background:#5b4731}.platform-switch.switch-hammer::after{content:"▰";color:#ffe2b7}
.platform-switch.switch-ember{border-color:#ff9a58;background:#63372d}.platform-switch.switch-ember::after{content:"✦";color:#ffd4a9}
.platform-switch.active{background:#2d6656;border-color:#91f1ce;box-shadow:0 0 15px rgba(117,237,198,.66)}.platform-switch.active::after{content:"✓";color:#effff8}
.platform-exit{z-index:6;border:2px solid #a989e6;border-radius:12px 12px 4px 4px;background:radial-gradient(circle,#a483e8 0 15%,#533b80 20% 48%,#201c31 60%);box-shadow:0 0 18px rgba(154,111,235,.6),inset 0 0 10px rgba(226,209,255,.26)}
.platform-exit::after{content:"RISS";position:absolute;inset:0;display:grid;place-items:center;color:#efe6ff;font-size:.46rem;font-weight:1000;letter-spacing:.05em}.platform-exit.locked{filter:grayscale(.7) brightness(.55);box-shadow:none}
.platform-actor{z-index:20;pointer-events:none}
.platform-player-sprite{position:absolute;inset:6% 9%;border-radius:35% 35% 44% 44%;background:#d8d0bf;border:3px solid #3c403e;box-shadow:inset 0 -5px 0 #9f998d,0 4px 7px rgba(0,0,0,.42)}
.platform-player-sprite::before{content:"••";position:absolute;left:50%;top:15%;transform:translateX(-50%);letter-spacing:3px;color:#25292b;font-weight:1000;font-size:.68rem}
.platform-player[data-facing="left"] .platform-player-sprite{transform:scaleX(-1)}
.platform-player.cherry-active .platform-player-sprite{box-shadow:0 0 0 3px rgba(255,104,128,.22),0 0 18px rgba(255,104,128,.9),inset 0 -5px 0 #9f998d}
.platform-player.boosting .platform-player-sprite{filter:brightness(1.2);box-shadow:0 0 20px rgba(91,225,248,.88),inset 0 -5px 0 #9f998d}
.platform-player.gliding .platform-player-sprite::after{content:"⌒";position:absolute;left:50%;top:-70%;transform:translateX(-50%);font-size:1.2rem;color:#c9faff;text-shadow:0 0 7px #68e6f4}
.platform-player.invulnerable .platform-player-sprite{animation:respawn-blink 280ms steps(2,end) infinite}
.platform-enemy-sprite{position:absolute;inset:8%;border:3px solid #392f4a;box-shadow:0 3px 7px rgba(0,0,0,.4)}
.platform-enemy-hp{position:absolute;left:50%;bottom:95%;transform:translateX(-50%);white-space:nowrap;font-size:.46rem;font-weight:1000;color:#fff3ce;text-shadow:0 1px 2px #000}
.platform-enemy.enemy-springling .platform-enemy-sprite{border-radius:50% 50% 35% 35%;background:#76a76a;border-color:#344f30}.platform-enemy.enemy-springling .platform-enemy-sprite::after{content:"⌃";position:absolute;inset:0;display:grid;place-items:center;color:#eaffdf;font-weight:1000}
.platform-enemy.enemy-glider .platform-enemy-sprite{border-radius:60% 18% 60% 18%;background:#568da1;border-color:#254956;transform:rotate(45deg)}.platform-enemy.enemy-glider .platform-enemy-sprite::after{content:"◇";position:absolute;inset:0;display:grid;place-items:center;color:#daf9ff;transform:rotate(-45deg)}
.platform-enemy.enemy-ember .platform-enemy-sprite{border-radius:48% 48% 26% 26%;background:#a85a3d;border-color:#562b20;box-shadow:0 0 10px rgba(239,105,61,.45)}.platform-enemy.enemy-ember .platform-enemy-sprite::after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:#ffe2a8}
.platform-enemy.capturable .platform-enemy-sprite{border-color:#d4b8ff;box-shadow:0 0 0 2px rgba(181,139,255,.2),0 0 16px rgba(176,126,255,.9);animation:platform-capture-pulse 500ms ease-in-out alternate infinite}@keyframes platform-capture-pulse{from{filter:brightness(.85)}to{filter:brightness(1.35)}}
.platform-boss{z-index:18}.platform-boss-sprite{position:absolute;inset:0;border-radius:28% 28% 18% 18%;background:#514266;border:4px solid #a87ce2;box-shadow:0 0 0 3px #231b30,0 0 22px rgba(168,124,226,.6),inset 0 -8px 0 #362b45}.platform-boss-sprite::after{content:"⬢";position:absolute;inset:0;display:grid;place-items:center;color:#e6d7ff;font-size:1.35rem;text-shadow:0 0 8px #fff}
.platform-boss-health{position:absolute;left:50%;bottom:103%;transform:translateX(-50%);white-space:nowrap;color:#ffd68f;font-size:.62rem;text-shadow:0 1px 3px #000}.platform-boss.vulnerable .platform-boss-sprite{border-color:#8feeff;box-shadow:0 0 0 3px #214b54,0 0 28px rgba(117,233,251,.95),inset 0 -8px 0 #365763}
.platform-effects{position:absolute;inset:0;z-index:30;pointer-events:none}.platform-bomb{display:grid;place-items:center;border-radius:50%;background:#252831;border:2px solid #d4c9a9;color:#f2c867;font-size:.55rem;box-shadow:0 0 8px rgba(230,193,97,.55)}.platform-laser{background:#8ff2ff;box-shadow:0 0 8px #72e7f7;border-radius:999px}.platform-explosion{border-radius:50%;background:radial-gradient(circle,rgba(255,232,150,.8),rgba(236,112,63,.4) 45%,transparent 72%);box-shadow:0 0 16px rgba(244,152,87,.56)}.platform-boss-shot{border-radius:50%;background:radial-gradient(circle,#f1deff 0 14%,#9a64df 25% 53%,#39245a 62%);box-shadow:0 0 15px rgba(171,112,238,.88)}
.board.platform-board.respawn-waiting::after{content:"BEREIT – BEWEGEN ZUM FORTSETZEN";position:absolute;left:50%;top:12px;z-index:80;transform:translateX(-50%);padding:7px 10px;border-radius:999px;background:rgba(16,21,29,.88);border:1px solid #7d8b9b;color:#eef3f7;font-size:.64rem;font-weight:900;letter-spacing:.06em;white-space:nowrap}
@media(max-width:520px){.cube-button{padding:12px 9px;min-width:112px;font-size:.9rem}.platform-enemy-hp,.platform-boss-health{font-size:.42rem}}
@media(prefers-reduced-motion:reduce){.platform-world{transition:none}.platform-enemy.capturable .platform-enemy-sprite{animation:none!important}}
.platform-energy-shard{position:absolute;z-index:7;border-radius:50%;background:radial-gradient(circle,#f6ffff 0 15%,#78e7f4 18% 44%,#285b78 48% 68%,transparent 72%);border:1px solid #aaf7ff;box-shadow:0 0 13px rgba(99,226,245,.85);animation:platform-energy-float 850ms ease-in-out alternate infinite}
.platform-energy-shard::after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:#eaffff;font-size:.48rem;text-shadow:0 0 5px #72e7f7}
.platform-energy-shard.collected{display:none}
@keyframes platform-energy-float{from{transform:translateY(0) scale(.94)}to{transform:translateY(-12%) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.platform-energy-shard{animation:none!important}}

/* Dimension 6 · rundenbasierter Dimensionsnexus */
.turn-battle-board{
  display:block!important;position:relative;min-height:600px;overflow:hidden;
  border-color:#645878;background:
    radial-gradient(circle at 50% 22%,rgba(117,92,165,.24),transparent 34%),
    linear-gradient(180deg,#15131d 0 42%,#211c2b 42% 100%);
  cursor:default!important
}
.battle-arena{position:relative;min-height:600px;padding:18px;display:flex;flex-direction:column;gap:14px;isolation:isolate}
.battle-arena::before{content:"";position:absolute;inset:0;z-index:-2;background:
  linear-gradient(90deg,transparent 49.5%,rgba(171,146,221,.08) 50%,transparent 50.5%),
  linear-gradient(0deg,transparent 49.5%,rgba(171,146,221,.05) 50%,transparent 50.5%);background-size:52px 52px;opacity:.55}
.battle-sky{min-height:54px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.battle-turn-pill,.battle-echo-banner{border:1px solid #685d78;background:rgba(24,21,31,.88);border-radius:999px;padding:8px 12px;color:#e9def7;font-size:.75rem;font-weight:900;letter-spacing:.04em}
.battle-echo-banner{max-width:72%;border-color:#c29b63;color:#fff1c9;border-radius:10px;text-align:right;animation:battle-echo-pulse 700ms ease-in-out alternate infinite}
@keyframes battle-echo-pulse{from{box-shadow:0 0 0 rgba(220,177,102,0)}to{box-shadow:0 0 18px rgba(220,177,102,.35)}}
.battle-enemy-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;min-height:176px;align-items:stretch}
.battle-party-row{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}
.battle-unit{border:1px solid #51485f;background:linear-gradient(180deg,rgba(43,38,52,.96),rgba(29,26,36,.96));border-radius:14px;padding:12px;display:flex;gap:11px;align-items:center;color:#ece6dc;box-shadow:0 7px 18px rgba(0,0,0,.22)}
button.battle-unit{font:inherit;text-align:left;cursor:pointer;width:100%}
.battle-enemy-card{min-height:150px;transition:transform 120ms ease,border-color 120ms ease,box-shadow 120ms ease}
.battle-enemy-card:hover:not(:disabled){transform:translateY(-2px);border-color:#8f80a9}
.battle-enemy-card.selected{border-color:#80e3f1;box-shadow:0 0 0 2px rgba(111,220,237,.18),0 8px 22px rgba(0,0,0,.28)}
.battle-enemy-card.capture-ready{border-color:#c995ff;box-shadow:0 0 20px rgba(176,112,242,.38)}
.battle-enemy-card.invulnerable{border-style:dashed;filter:saturate(.7);box-shadow:inset 0 0 0 2px rgba(203,171,112,.25)}
.battle-enemy-card.boss{background:linear-gradient(180deg,rgba(73,45,82,.98),rgba(37,27,45,.98));border-width:2px}
.battle-avatar{width:54px;height:54px;flex:0 0 54px;border-radius:16px;display:grid;place-items:center;font-size:1.55rem;font-weight:1000;border:2px solid #77668c;background:#322a3d;color:#f4e8ff;box-shadow:inset 0 -6px 0 rgba(0,0,0,.16)}
.battle-player-avatar{background:#4b514d;border-color:#a9b2a9;color:#fff4d7}
.battle-partner-avatar{background:#31545c;border-color:#79cddd;color:#dcfbff}
.battle-enemy-avatar{background:#4b334f;border-color:#9c719f;color:#f8dbff}
.enemy-type-shade .battle-enemy-avatar{background:#263e51;border-color:#6bb6d7;color:#d9f7ff}
.enemy-type-armor .battle-enemy-avatar{background:#5c4a32;border-color:#c59c5d;color:#ffe8bd}
.enemy-type-resonance .battle-enemy-avatar{background:#2f5260;border-color:#75d6e5;color:#e2fcff}
.enemy-type-nexusBoss .battle-enemy-avatar{background:#56345f;border-color:#d18bea;color:#fff1ff}
.battle-unit-main{min-width:0;flex:1}.battle-unit-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px}.battle-unit-title strong{font-size:.92rem;color:#fff7e8}.battle-unit-title span{font-size:.7rem;color:#bdb4c5;white-space:nowrap}
.battle-health{height:10px;border-radius:99px;background:#15151a;border:1px solid #4a4650;overflow:hidden}.battle-health span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#6dc8a0,#aad46f);transition:width 220ms ease}.enemy-health-bar span{background:linear-gradient(90deg,#c05864,#d88a68)}
.battle-statuses,.battle-partner-copy{margin-top:7px;color:#aaa1b2;font-size:.68rem;line-height:1.35}
.battle-partner-card.empty{opacity:.6}.battle-command-area{border-top:1px solid #4d4559;padding-top:12px;margin-top:auto}.battle-command-head{display:flex;justify-content:space-between;gap:12px;color:#beb5c7;font-size:.7rem;margin-bottom:9px}.battle-command-head strong{color:#f1e9fa;text-transform:uppercase;letter-spacing:.08em}
.battle-actions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.battle-action-button{position:relative;display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;text-align:left;border:1px solid #51495e;background:#292530;color:#e9e1ed;border-radius:10px;padding:9px 10px;min-height:54px;cursor:pointer}.battle-action-button:hover:not(:disabled){border-color:#817493;background:#312b3a}.battle-action-button.selected{border-color:#78d9e7;box-shadow:0 0 0 2px rgba(98,205,222,.15)}.battle-action-button:disabled{opacity:.45;cursor:not-allowed}.battle-action-button strong{display:block;font-size:.72rem}.battle-action-button small{display:block;color:#9d95a5;font-size:.58rem;margin-top:2px}.battle-action-icon{font-size:1rem;color:#d9c8ef}.battle-action-button kbd{font:800 .58rem/1 system-ui;border:1px solid #625a6d;background:#1d1a22;border-radius:5px;padding:4px 5px;color:#cfc5d8}
.battle-log{margin-top:10px;min-height:62px;max-height:92px;overflow:auto;border:1px solid #403a49;border-radius:9px;background:rgba(13,12,16,.52);padding:8px 10px;color:#a9a1ad;font-size:.64rem;line-height:1.45}.battle-log div:last-child{color:#e7deeb}
.turn-battle-board.echo-blast{background:radial-gradient(circle at 50% 24%,rgba(221,130,67,.25),transparent 35%),linear-gradient(180deg,#1f1815,#2d211b)}
.turn-battle-board.echo-maze{background:radial-gradient(circle at 50% 24%,rgba(88,176,207,.22),transparent 35%),linear-gradient(180deg,#101b24,#172b34)}
.turn-battle-board.echo-tower{background:radial-gradient(circle at 50% 24%,rgba(209,170,91,.2),transparent 35%),linear-gradient(180deg,#211d17,#30281d)}
.turn-battle-board.echo-race{background:radial-gradient(circle at 50% 24%,rgba(94,228,239,.2),transparent 35%),linear-gradient(180deg,#111d22,#172b32)}
.turn-battle-board.echo-fracture{background:radial-gradient(circle at 50% 24%,rgba(158,104,224,.22),transparent 35%),linear-gradient(180deg,#1b1525,#2a1d36)}
.turn-battle-board.echo-seal{background:radial-gradient(circle at 50% 24%,rgba(236,225,255,.3),transparent 24%),linear-gradient(180deg,#22162d,#361f46)}
@media(max-width:700px){.turn-battle-board,.battle-arena{min-height:660px}.battle-party-row{grid-template-columns:1fr}.battle-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-enemy-row{grid-template-columns:1fr 1fr}.battle-echo-banner{max-width:64%}}
@media(max-width:480px){.battle-arena{padding:10px;gap:9px}.battle-enemy-row{grid-template-columns:1fr;min-height:0}.battle-enemy-card{min-height:88px}.battle-actions-grid{grid-template-columns:1fr 1fr}.battle-avatar{width:42px;height:42px;flex-basis:42px}.battle-command-head span{display:none}}
@media(prefers-reduced-motion:reduce){.battle-echo-banner{animation:none!important}.battle-enemy-card,.battle-health span{transition:none!important}}

/* v2.1 · taktischer Bindungskampf */
.turn-battle-board{width:min(1060px,96vw)!important;max-width:1060px;min-height:640px;border-color:#5d536f;background:radial-gradient(circle at 50% 8%,rgba(112,86,163,.22),transparent 30%),linear-gradient(180deg,#15131d,#211b2b);color:#eee9f5}
.battle-prep-board{overflow:auto!important}
.battle-prep-shell,.tactical-battle-shell{padding:18px;min-height:640px;text-align:left}
.battle-prep-head,.tactical-battle-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.battle-prep-head h2{margin:3px 0 0;color:#fff3dd;font-size:1.45rem}.battle-kicker{text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:900;color:#bda2eb}.battle-prep-rule{border:1px solid #5e526f;background:#24202d;border-radius:999px;padding:7px 10px;font-size:.7rem;color:#cfc3d9}.battle-prep-intro{margin:0 0 16px;color:#bfb5c8;line-height:1.5}.battle-prep-grid{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(360px,1.4fr);gap:14px}.battle-selected-panel,.battle-archive-panel{border:1px solid #4e455a;background:rgba(33,29,40,.9);border-radius:14px;padding:13px}.battle-selected-panel h3,.battle-archive-panel h3{margin:0;color:#f4ebfb}.battle-player-reserve-card{margin:10px 0;border:1px solid #5a655e;background:#252f2b;border-radius:10px;padding:10px;display:grid;gap:3px}.battle-player-reserve-card span{font-size:.7rem;color:#c9e2ce}.battle-player-reserve-card small{font-size:.62rem;color:#91a79a}.battle-selected-list{display:grid;gap:7px;min-height:132px}.battle-selected-card{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;width:100%;border:1px solid #60566d;background:#2b2632;color:#eee6f2;border-radius:9px;padding:8px;text-align:left;cursor:pointer}.battle-selected-card:hover{border-color:#9b86b6}.battle-selected-card small{display:block;color:#aaa0b4;font-size:.62rem;margin-top:2px}.battle-slot-number{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#443952;color:#d9c7ef;font-weight:900}.battle-remove-mark{font-size:1.15rem;color:#ba9fc6}.battle-empty-slot{border:1px dashed #5d5567;border-radius:9px;padding:18px;color:#8f8797;font-size:.72rem;text-align:center}.battle-start-button{width:100%;margin-top:11px;border:0;border-radius:10px;padding:12px;background:#8b6dda;color:#fff;font-weight:900;cursor:pointer;box-shadow:0 5px 16px rgba(0,0,0,.25)}.battle-start-button:hover{filter:brightness(1.08)}.battle-archive-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.battle-archive-title span{font-size:.66rem;color:#a89eaf}.battle-archive-help{color:#928a9b;font-size:.68rem;line-height:1.4;margin:7px 0 10px}.battle-archive-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:495px;overflow:auto;padding-right:3px}.battle-archive-card{border:1px solid #4f4759;background:#28232f;border-radius:10px;padding:9px;transition:border-color 120ms ease,opacity 120ms ease}.battle-archive-card.selected{border-color:#8dd9e6;box-shadow:0 0 0 2px rgba(126,218,233,.12)}.battle-archive-card.ko{opacity:.52}.battle-archive-card-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px}.battle-archive-card-head strong{font-size:.76rem;color:#fff1df}.battle-archive-card-head span{font-size:.61rem;color:#bfb2ca}.battle-resource-line{display:grid;grid-template-columns:20px 1fr 58px;gap:5px;align-items:center;font-size:.56rem;color:#a8a0ad;margin:4px 0}.battle-resource-line>div{height:6px;border-radius:99px;background:#17151b;overflow:hidden;border:1px solid #413a48}.battle-resource-line i{display:block;height:100%;background:#72c995}.battle-resource-line.mana i{background:#74aee7}.battle-resource-line b{text-align:right;font-size:.55rem;color:#c8bfcd}.battle-archive-stats{font-size:.57rem;color:#8f8797;margin:6px 0}.battle-archive-card button{width:100%;border:1px solid #5a5066;border-radius:7px;background:#332d3b;color:#ded4e5;padding:6px;font-size:.62rem;cursor:pointer}.battle-archive-card button:disabled{cursor:not-allowed;opacity:.55}

.tactical-battle-board{overflow:auto!important}.tactical-battle-head{align-items:center}.tactical-battle-head>div:first-child{display:flex;gap:10px;align-items:center}.tactical-battle-head span{font-size:.68rem;color:#b7aec0}.tactical-battle-head strong{font-size:.88rem;color:#fff0d9}.battle-element-legend{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.battle-element-legend span{border:1px solid #50475d;background:#24202c;border-radius:999px;padding:5px 7px;font-size:.56rem;color:#bbb0c5}.tactical-layout{display:grid;grid-template-columns:minmax(440px,1.25fr) minmax(260px,.75fr);gap:14px}.tactical-grid-wrap{min-width:0}.tactical-grid{display:grid;grid-template-columns:repeat(4,minmax(88px,1fr));grid-template-rows:repeat(8,66px);gap:4px;padding:8px;border:1px solid #51485e;border-radius:14px;background:linear-gradient(180deg,rgba(74,44,73,.25) 0 37.5%,rgba(37,34,43,.62) 37.5% 62.5%,rgba(39,69,68,.24) 62.5% 100%);box-shadow:inset 0 0 35px rgba(0,0,0,.22)}.tactical-cell{position:relative;min-width:0;border:1px solid #4b4551;border-radius:8px;background:rgba(31,29,35,.78);color:#e5dde9;padding:4px;cursor:pointer;overflow:hidden;text-align:left;transition:transform 90ms ease,border-color 90ms ease,background 90ms ease}.tactical-cell.enemy-zone{background:rgba(66,36,62,.6)}.tactical-cell.ally-zone{background:rgba(33,63,59,.58)}.tactical-cell.reachable{border-color:#6fc4cc;background:rgba(44,93,92,.65);box-shadow:inset 0 0 0 1px rgba(114,218,224,.2)}.tactical-cell.reachable:hover{transform:translateY(-1px);background:rgba(52,111,108,.78)}.tactical-cell.occupied{display:grid;grid-template-rows:auto auto 5px auto 4px auto;gap:2px;border-width:2px}.tactical-cell.ally-unit{border-color:#66a99b}.tactical-cell.enemy-unit{border-color:#9a627a}.tactical-cell.active-turn{box-shadow:0 0 0 2px #e0c36a,0 0 16px rgba(224,195,106,.25)}.tactical-cell.selected-target{box-shadow:0 0 0 2px #83dff0,0 0 16px rgba(117,219,235,.3)}.tactical-cell.capture-ready{border-color:#c18cff;animation:capture-pulse 750ms ease-in-out alternate infinite}.tactical-cell.ko{filter:grayscale(.85);opacity:.55}.tactical-cell strong{font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tactical-cell small{font-size:.49rem;color:#a99fad}.tactical-cell em{font-style:normal;font-size:.48rem;color:#e0b8ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit-element{font-size:.48rem;color:#c8bbd3;white-space:nowrap}.unit-hp,.unit-mana{display:block;height:5px;border-radius:99px;background:#161418;overflow:hidden}.unit-hp i,.unit-mana i{display:block;height:100%;background:#65c391}.unit-mana i{background:#6ea8e5}.cell-coordinate{position:absolute;right:4px;bottom:3px;font-size:.43rem;color:#69636e}.tactical-grid-hint{margin-top:6px;font-size:.58rem;color:#8e8696;text-align:center}@keyframes capture-pulse{from{box-shadow:0 0 0 rgba(184,124,242,0)}to{box-shadow:0 0 18px rgba(184,124,242,.38)}}
.tactical-side{display:flex;flex-direction:column;gap:9px}.turn-unit-card,.battle-action-panel,.battle-party-mini{border:1px solid #4d4558;background:#27232e;border-radius:11px;padding:10px}.turn-unit-card h3{margin:2px 0 3px;color:#fff0dd;font-size:.98rem}.turn-unit-card p{margin:0;color:#aaa1b2;font-size:.62rem}.turn-resource{display:flex;justify-content:space-between;gap:7px;margin-top:7px;font-size:.62rem;color:#c9becf}.battle-action-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.battle-action-title strong{font-size:.72rem;color:#f2e8f8}.battle-action-title span{font-size:.58rem;color:#a59cab}.battle-action-list{display:grid;gap:6px;max-height:360px;overflow:auto;padding-right:2px}.battle-tactical-action{display:grid;grid-template-columns:24px 1fr auto;gap:7px;align-items:center;width:100%;text-align:left;border:1px solid #4c4555;background:#312b38;color:#e7deeb;border-radius:8px;padding:7px;cursor:pointer}.battle-tactical-action.selected{border-color:#79d5e3;background:#343342;box-shadow:0 0 0 1px rgba(121,213,227,.15)}.battle-tactical-action:disabled{opacity:.45;cursor:not-allowed}.battle-tactical-action kbd{display:grid;place-items:center;width:20px;height:20px;border:1px solid #5e5667;border-radius:5px;background:#1e1b22;font-size:.55rem}.battle-tactical-action strong{display:block;font-size:.64rem}.battle-tactical-action small{display:block;font-size:.5rem;color:#9f95a6;margin-top:2px}.battle-tactical-action b{font-size:.52rem;color:#c4b7cc;white-space:nowrap}.battle-ai-wait{padding:18px;text-align:center;color:#8f8696;font-size:.66rem}.battle-party-mini h4{margin:0 0 6px;font-size:.66rem;color:#e7deed}.battle-mini-unit{display:flex;justify-content:space-between;gap:6px;font-size:.54rem;padding:4px 0;border-top:1px solid #3d3745}.battle-mini-unit:first-of-type{border-top:0}.battle-mini-unit strong{color:#d8cedf}.battle-mini-unit span{color:#948b9b;text-align:right}.battle-mini-unit.ko{opacity:.45}.tactical-log{max-height:105px;min-height:80px;margin-top:12px}.turn-battle-board.is-paused{filter:saturate(.65)}

@media(max-width:900px){.turn-battle-board{width:min(760px,96vw)!important}.battle-prep-grid,.tactical-layout{grid-template-columns:1fr}.battle-archive-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tactical-grid{grid-template-columns:repeat(4,minmax(72px,1fr));grid-template-rows:repeat(8,62px)}.battle-action-list{max-height:none}}
@media(max-width:560px){.battle-prep-shell,.tactical-battle-shell{padding:10px}.battle-prep-head,.tactical-battle-head{display:block}.battle-prep-rule,.battle-element-legend{margin-top:8px}.battle-archive-list{grid-template-columns:1fr}.tactical-grid{grid-template-columns:repeat(4,minmax(60px,1fr));grid-template-rows:repeat(8,58px);gap:3px;padding:5px}.tactical-cell{padding:3px}.tactical-cell strong{font-size:.54rem}.tactical-cell small,.tactical-cell em,.unit-element{font-size:.43rem}.battle-element-legend{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.tactical-cell.capture-ready{animation:none!important}.tactical-cell{transition:none!important}}
body:has(.turn-battle-board) .game-shell{width:min(1120px,100%)}
body:has(.turn-battle-board) .world-info,body:has(.turn-battle-board) .hud{max-width:900px}

/* v2.1.1 – lesbarere taktische Einheitenkarten */
.tactical-grid{grid-template-rows:repeat(8,72px)}
.tactical-cell.occupied{display:block;padding:5px 6px;overflow:hidden}
.unit-title-row{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;margin-bottom:3px}
.unit-title-row strong{min-width:0;flex:1;font-size:.61rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f3eaf6}
.unit-title-row .unit-element{flex:none;max-width:46%;font-size:.45rem;text-align:right;overflow:hidden;text-overflow:ellipsis}
.unit-card-body{display:grid;grid-template-columns:31px minmax(0,1fr);gap:6px;align-items:center;min-width:0}
.unit-portrait{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;border:1px solid #625b68;background:linear-gradient(145deg,#312d37,#1b1920);box-shadow:inset 0 0 10px rgba(255,255,255,.035),0 2px 6px rgba(0,0,0,.22);font-size:1rem;font-weight:900;color:#ede4f1;line-height:1}
.unit-portrait-earth{border-color:#9f8a61;background:linear-gradient(145deg,#4a4133,#26221d)}
.unit-portrait-energy{border-color:#8b78c7;background:linear-gradient(145deg,#3d3358,#211c31)}
.unit-portrait-water{border-color:#6697aa;background:linear-gradient(145deg,#2d4853,#1b2930)}
.unit-portrait-neutral{border-color:#77717c}
.unit-resource-stack{display:grid;gap:4px;min-width:0}
.unit-resource-row{display:grid;grid-template-columns:17px minmax(24px,1fr) auto;align-items:center;gap:4px;min-width:0}
.unit-resource-row>b{font-size:.46rem;color:#bdb3c2;line-height:1}
.unit-resource-row>small{font-size:.43rem;color:#c9bfce;line-height:1;white-space:nowrap}
.unit-resource-row .unit-hp,.unit-resource-row .unit-mana{height:6px;margin:0;border:1px solid #413a48}
.unit-effects{display:flex;gap:4px;margin-top:3px;min-width:0;overflow:hidden}
.unit-effects em{display:inline-block;max-width:100%;padding:1px 4px;border-radius:999px;background:#342b3c;font-size:.41rem;line-height:1.25;color:#dfc7ee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.turn-unit-heading{display:flex;align-items:center;gap:9px;min-width:0}
.turn-unit-heading>div{min-width:0;flex:1}
.turn-unit-heading .unit-portrait{width:38px;height:38px;font-size:1.25rem;border-radius:10px}
.turn-unit-heading h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.turn-unit-heading p{line-height:1.35}
.battle-tactical-action small{line-height:1.3}

@media(max-width:900px){.tactical-grid{grid-template-rows:repeat(8,70px)}}
@media(max-width:560px){.tactical-grid{grid-template-rows:repeat(8,66px)}.unit-card-body{grid-template-columns:25px minmax(0,1fr);gap:4px}.unit-portrait{width:24px;height:24px;font-size:.82rem}.unit-title-row .unit-element{font-size:.4rem}.unit-resource-row{grid-template-columns:15px minmax(18px,1fr) auto;gap:3px}.unit-resource-row>b,.unit-resource-row>small{font-size:.39rem}}

/* Language settings */
.language-setting{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px);gap:14px;align-items:center;margin:12px 0 18px;padding:12px;border:1px solid #4e455a;background:rgba(33,29,40,.72);border-radius:12px}
.language-setting label{display:block;font-weight:900;color:#f4ebfb;margin-bottom:3px}.language-setting .pause-copy{margin:0}.language-select{width:100%;border:1px solid #655a73;border-radius:9px;background:#26212d;color:#f2e9f7;padding:10px 11px;font:700 .78rem/1.2 system-ui;cursor:pointer}.language-select:focus{outline:2px solid #78d9e7;outline-offset:2px}.settings-section-title{margin:4px 0 8px;color:#fff0dc;font-size:.92rem}
@media(max-width:560px){.language-setting{grid-template-columns:1fr}.language-select{max-width:none}}

/* Language choice is intentionally visible on the first pause screen. */
.pause-language-setting{margin:14px 0 16px;padding:10px 12px}
.pause-language-setting .pause-copy{font-size:.68rem;line-height:1.35}

/* v2.2.3 - Level 25 Resonanzkristalle / Kernphasen */
.platform-boss-crystal{
  position:absolute;z-index:12;border-radius:18%;
  background:radial-gradient(circle,#f8fbff 0 13%,#9f86d8 18% 42%,#4a376d 48% 68%,transparent 72%);
  border:2px solid #cbb7f2;box-shadow:0 0 16px rgba(180,145,235,.75);
  transition:opacity .18s ease,filter .18s ease,transform .18s ease,box-shadow .18s ease;
}
.platform-boss-crystal::after{position:absolute;inset:0;display:grid;place-items:center;font-size:.52rem;font-weight:900;color:#fff;text-shadow:0 0 6px #fff}
.platform-boss-crystal.crystal-springling::after{content:"▲"}
.platform-boss-crystal.crystal-glider::after{content:"◇"}
.platform-boss-crystal.crystal-ember::after{content:"✦"}
.platform-boss-crystal.current{transform:scale(1.12);box-shadow:0 0 24px rgba(230,211,255,.95),0 0 8px rgba(255,255,255,.75) inset}
.platform-boss-crystal.locked{filter:grayscale(.75) brightness(.55);opacity:.62;box-shadow:0 0 7px rgba(120,100,145,.38)}
.platform-boss-crystal.destroyed{opacity:.18;filter:grayscale(1);transform:scale(.72);box-shadow:none}
.platform-boss.core-recovering .platform-boss-sprite{border-color:#c18cdb;filter:brightness(.76);box-shadow:0 0 0 3px #2c2038,0 0 15px rgba(164,112,196,.45),inset 0 -8px 0 #362b45}
.platform-boss.vulnerable .platform-boss-sprite::after{content:"◆";color:#f7ffff;text-shadow:0 0 10px #9bf4ff,0 0 18px #fff}
.platform-boss-health{min-width:6.5em;text-align:center}

/* v2.2.3 - beweglicher Bruchkoloss */
.platform-boss.is-moving .platform-boss-sprite{
  animation:platform-boss-walk .42s ease-in-out infinite alternate;
}
.platform-boss[data-facing="left"] .platform-boss-sprite::before,
.platform-boss[data-facing="right"] .platform-boss-sprite::before{
  content:"";
  position:absolute;
  top:32%;
  width:16%;
  height:9%;
  border-radius:999px;
  background:#f4e8ff;
  box-shadow:0 0 7px rgba(244,232,255,.9);
}
.platform-boss[data-facing="left"] .platform-boss-sprite::before{left:16%}
.platform-boss[data-facing="right"] .platform-boss-sprite::before{right:16%}
@keyframes platform-boss-walk{
  from{translate:0 0}
  to{translate:0 -2px}
}
