:root{
  font-family:Inter,"Segoe UI",system-ui,sans-serif;
  color:#eee9df;
  background:#171a1f;
  --cell:clamp(28px,7.2vw,46px);
}
*{box-sizing:border-box}
html{scrollbar-gutter:stable}
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{height:2.6em;min-height:2.6em;max-height:2.6em;line-height:1.3;font-weight:800;margin:10px 0;color:#d6d1c7;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}
.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:"";position:absolute;left:50%;top:50%;width:78%;aspect-ratio:1;transform:translate(-50%,-50%);
  border:2px solid #aa8fff;border-radius:50%;
  box-shadow:0 0 12px rgba(170,143,255,.5), inset 0 0 10px rgba(170,143,255,.2);
}
.cell.exit::after{
  content:"PORTAL";position:absolute;left:50%;top:50%;width:72%;transform:translate(-50%,-50%);
  color:#aa8fff;font-size:clamp(5px,calc(var(--cell) * .14),7px);font-weight:1000;line-height:1;
  letter-spacing:-.035em;text-align:center;white-space:nowrap;
}
.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:"◉◉";display:block;white-space:nowrap;letter-spacing:3px;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 */
/* Die Zuglogik bleibt rasterbasiert. Visuell werden neue Feldziele aber weich
   angesteuert; bei gehaltenen Tasten kann eine laufende Transition direkt auf
   das nächste Feld retargeten, wodurch die Bewegung wie ein kontinuierliches
   Gleiten wirkt. */
.board.maze-board .actor.player-actor{
  transition-duration:165ms;
  transition-timing-function:cubic-bezier(.18,.78,.24,1);
}
.board.maze-board .actor.enemy-actor{
  transition-duration:210ms;
  transition-timing-function:cubic-bezier(.22,.72,.25,1);
}
.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{
  position:relative;
  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,inset 0 0 0 3px rgba(255,111,143,.75),0 3px 7px rgba(0,0,0,.35),0 0 12px rgba(255,111,143,.72);
  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:""}
.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}
.board.tower-board .player-actor .player{position:relative}
.board.tower-board .player-actor .player::after{
  content:"➤";position:absolute;right:-2px;top:50%;transform:translateY(-50%);
  color:#f0c96a;font-size:.58em;line-height:1;text-shadow:0 0 4px rgba(0,0,0,.75);
}
.board.tower-board .player-actor[data-facing="left"] .player::after{right:auto;left:-2px;transform:translateY(-50%) rotate(180deg)}
.board.tower-board .player-actor[data-facing="up"] .player::after{right:auto;left:50%;top:-2px;transform:translateX(-50%) rotate(-90deg)}
.board.tower-board .player-actor[data-facing="down"] .player::after{right:auto;left:50%;top:auto;bottom:-2px;transform:translateX(-50%) rotate(90deg)}
.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%);white-space:nowrap;letter-spacing:3px;color:#25292b;font-weight:1000;font-size:.68rem}
.platform-player[data-facing="left"] .platform-player-sprite::before{left:43%}
.platform-player[data-facing="right"] .platform-player-sprite::before{left:calc(57% + 4px)}
.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:hidden!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;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:none;overflow:visible;padding-right:0}.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{grid-template-columns:1fr;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.4 - 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.4 - 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}
}

/* ================================================================
   v2.3.10 · compact two-column controls / Dimension 6 no nested action scrolling
   ================================================================ */
body{
  display:block;
  min-height:100vh;
  padding:clamp(10px,1.25vw,20px);
  overflow-x:hidden;
}
body .game-shell,
body:has(.turn-battle-board) .game-shell{
  width:min(1680px,100%);
  margin:0 auto;
  text-align:center;
  --stage-preferred:880px;
}
.game-topbar{
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 auto 12px;
  padding:4px 2px 10px;
  border-bottom:1px solid rgba(90,98,110,.38);
  text-align:left;
}
.game-brand{min-width:0;flex:1}
.game-brand .eyebrow{margin-bottom:2px;font-size:.64rem}
.brand-line{display:flex;align-items:baseline;gap:18px;min-width:0}
.game-topbar h1{
  flex:0 0 auto;
  margin:0;
  font-size:clamp(1.45rem,2.3vw,2.15rem);
  line-height:1.05;
  letter-spacing:-.025em;
}
.game-topbar .intro{
  margin:0;
  max-width:680px;
  color:#aaa69e;
  font-size:.82rem;
  line-height:1.35;
}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.header-actions .icon-action{padding:9px 12px;white-space:nowrap;font-size:.8rem}

.play-layout{
  width:100%;
  display:grid;
  grid-template-columns:minmax(200px,240px) minmax(0,var(--stage-preferred,880px)) minmax(250px,320px);
  justify-content:center;
  align-items:start;
  gap:clamp(10px,1vw,16px);
}
.game-stage{
  width:100%;
  min-width:0;
  max-width:var(--stage-preferred,880px);
  justify-self:center;
}
.side-panel{
  min-width:0;
  text-align:left;
  position:sticky;
  top:10px;
  max-height:none;
  overflow:visible;
}
.sidebar-details{
  background:linear-gradient(180deg,#23282f,#20242a);
  border:1px solid #3d444e;
  border-radius:15px;
  box-shadow:0 10px 26px rgba(0,0,0,.22);
  overflow:hidden;
}
.sidebar-details>summary{
  list-style:none;
  padding:12px 14px;
  border-bottom:1px solid #3d444e;
  color:#fff0cf;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
  cursor:pointer;
}
.sidebar-details>summary::-webkit-details-marker{display:none}
.sidebar-details>summary::after{content:"▾";float:right;color:#8f899b}
.sidebar-details:not([open])>summary::after{content:"▸"}
.sidebar-content{padding:13px}
.sidebar-level-heading{padding-bottom:12px;border-bottom:1px solid #393f48}
.sidebar-kicker,.sidebar-section-title{
  display:block;
  color:#a29e96;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.sidebar-level-heading strong{display:block;margin-top:4px;color:#fff4d8;font-size:1rem;line-height:1.25}
.sidebar-level-heading small{display:block;margin-top:5px;color:#9fa6af;font-size:.7rem;line-height:1.35}
.sidebar-section{padding:13px 0 0}
.sidebar-section+.sidebar-section{margin-top:12px;border-top:1px solid #393f48}
.sidebar-section p{margin:7px 0 0;color:#c5c0b7;font-size:.76rem;line-height:1.48}
.objective-section .sidebar-section-title{color:#77d3b0}
.hint-section .sidebar-section-title{color:#d8b96f}
.sidebar-control-list{display:grid;gap:6px;margin-top:8px}
.sidebar-control-row{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  padding:7px 8px;
  border:1px solid #3b424b;
  border-radius:9px;
  background:#272c33;
}
.sidebar-control-row.primary-control{border-color:#70624a;background:#2b2925}
.sidebar-control-row span{min-width:0;color:#d2ccc2;font-size:.7rem;line-height:1.2}
.sidebar-control-row kbd{
  max-width:92px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:4px 6px;
  border:1px solid #59616b;
  border-bottom-width:2px;
  border-radius:6px;
  background:#191c21;
  color:#fff3d5;
  font:800 .62rem/1.1 system-ui,sans-serif;
}
.sidebar-control-row.locked{opacity:.46}
.sidebar-control-row.locked kbd{color:#999}
.sidebar-footnote{margin:13px 0 0;color:#888f98;font-size:.65rem;line-height:1.4}

.world-info,.hud{
  width:100%;
  max-width:none;
  gap:8px;
  margin:0 auto 8px;
}
.world-info>div,.hud>div{padding:7px 9px;border-radius:11px;box-shadow:0 3px 11px rgba(0,0,0,.18)}
.world-info strong{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud strong{font-size:1.08rem}
.hud-label{font-size:.6rem}
.status{
  /* Immer exakt zwei Textzeilen reservieren. Dadurch bleibt die Oberkante
     des Spielfelds stabil, auch wenn Statusmeldungen unterschiedlich lang sind. */
  height:2.6em;
  min-height:2.6em;
  max-height:2.6em;
  margin:5px 4px 7px;
  font-size:.82rem;
  line-height:1.3;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  text-align:center;
}
.board-wrap{
  width:100%;
  min-width:0;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  overflow:hidden;
  padding:3px;
}
.board{max-width:100%}
.board.platform-board{max-width:100%}
.game-stage .turn-battle-board{width:100%!important;max-width:none;overscroll-behavior:contain}

/* Fine-pointer desktops use the live control legend at the right instead of
   repeating the large touch controls below the board. */
@media (pointer:fine) and (min-width:761px){
  .touch-controls{display:none}
}
.mobile-help{display:none}

@media(min-width:1221px){
  .sidebar-details>summary{cursor:default;pointer-events:none}
}

/* v2.3.10 - den Platz in den rechten Bedienbereichen besser nutzen. */
@media(min-width:1221px){
  .controls-sidebar .sidebar-control-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .controls-sidebar .sidebar-control-row{
    gap:5px;
    padding:7px;
  }
  .controls-sidebar .sidebar-control-row span{font-size:.66rem}
  .controls-sidebar .sidebar-control-row kbd{max-width:54px;padding-inline:5px}
  .controls-sidebar .sidebar-footnote{margin-top:10px}
}

/* In Dimension 6 all battle actions remain visible at once instead of living
   in a nested scroll area. Two columns keep the tactical board compact. */
@media(min-width:901px){
  .tactical-grid{grid-template-rows:repeat(8,66px)}
  .tactical-log{margin-top:0;min-height:66px;max-height:90px}
  .battle-tactical-action{
    min-width:0;
    grid-template-columns:22px minmax(0,1fr);
    grid-template-rows:auto auto;
    gap:2px 5px;
    padding:7px 6px;
    align-items:start;
  }
  .battle-tactical-action>kbd{grid-column:1;grid-row:1 / span 2;align-self:center}
  .battle-tactical-action>span{grid-column:2;grid-row:1;min-width:0}
  .battle-tactical-action strong,.battle-tactical-action small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .battle-tactical-action strong{font-size:.61rem;line-height:1.15}
  .battle-tactical-action small{font-size:.47rem;line-height:1.25}
  .battle-tactical-action>b{grid-column:2;grid-row:2;justify-self:end;font-size:.48rem}
  .battle-ai-wait{grid-column:1/-1}
}

/* Laptops: keep the live controls next to the game; move the level hint below. */
@media(max-width:1220px){
  .play-layout{
    grid-template-columns:minmax(0,var(--stage-preferred,820px)) minmax(190px,225px);
    max-width:1180px;
    margin:0 auto;
  }
  .game-stage{grid-column:1;grid-row:1}
  .controls-sidebar{grid-column:2;grid-row:1}
  .level-sidebar{grid-column:1/-1;grid-row:2;position:static;max-height:none}
  .level-sidebar .sidebar-content{display:grid;grid-template-columns:minmax(180px,.7fr) 1fr 1.35fr;gap:14px;align-items:start}
  .level-sidebar .sidebar-level-heading{padding:0 13px 0 0;border:0;border-right:1px solid #393f48}
  .level-sidebar .sidebar-section{padding:0;margin:0!important;border:0!important}
  .game-topbar .intro{display:none}
}

/* Narrow laptops/tablets: game first, information panels below it. */
@media(max-width:1020px){
  body{padding:10px}
  .play-layout{display:grid;grid-template-columns:minmax(0,1fr);max-width:920px}
  .game-stage{grid-column:1;grid-row:1;max-width:var(--stage-preferred,880px)}
  .level-sidebar{grid-column:1;grid-row:2}
  .controls-sidebar{grid-column:1;grid-row:3;position:static;max-height:none}
  .controls-sidebar .sidebar-content{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .controls-sidebar .sidebar-section{padding:0;margin:0!important;border:0!important}
  .controls-sidebar .sidebar-footnote{grid-column:1/-1}
  .level-sidebar .sidebar-content{grid-template-columns:minmax(160px,.65fr) 1fr 1.2fr}
}

@media(max-width:760px){
  body{padding:8px}
  .game-topbar{align-items:flex-start;margin-bottom:8px}
  .brand-line{display:block}
  .game-topbar h1{font-size:1.45rem}
  .header-actions .icon-action span{display:none}
  .header-actions .icon-action{min-width:40px;padding:9px}
  .world-info strong{font-size:.76rem}
  .hud strong{font-size:.98rem}
  .status{font-size:.75rem}
  .touch-controls{display:flex;margin:10px 0 4px;gap:12px;justify-content:center}
  .dpad{grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px)}
  .ability-buttons{min-width:112px}
  .bomb-button,.laser-button,.cherry-button,.cube-button,.booster-button{min-width:108px;padding:10px 8px;font-size:.82rem}
  .level-sidebar .sidebar-content,.controls-sidebar .sidebar-content{display:block}
  .level-sidebar .sidebar-level-heading{padding:0 0 12px;border:0;border-bottom:1px solid #393f48}
  .level-sidebar .sidebar-section,.controls-sidebar .sidebar-section{padding:12px 0 0;margin:10px 0 0!important;border-top:1px solid #393f48!important}
  .side-panel{position:static;max-height:none}
  .mobile-help{display:block;margin-top:10px}
}

@media(max-height:760px) and (min-width:1021px){
  .game-topbar{min-height:48px;margin-bottom:7px;padding-bottom:6px}
  .game-brand .eyebrow{display:none}
  .game-topbar h1{font-size:1.35rem}
  .world-info>div,.hud>div{padding:5px 8px}
  .status{font-size:.75rem;margin:3px 3px 5px}
}

/* ==========================================================================
   v2.3.5 · Dimension 6 top-down pixel figures and tile-step movement
   ========================================================================== */
.tactical-cell.occupied{
  display:block;
  padding:0;
  overflow:visible;
  border-width:1px;
  z-index:2;
}
.tactical-cell.occupied:hover{z-index:5}
.tactical-cell.occupied.active-turn,.tactical-cell.occupied.selected-target{z-index:6}
.grid-unit-name{
  position:absolute;
  top:3px;
  left:5px;
  right:5px;
  z-index:7;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:4px;
  pointer-events:none;
}
.grid-unit-name strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#f0e7ef;
  font-size:.5rem;
  line-height:1;
  text-shadow:0 1px 2px #000;
}
.grid-unit-name>span{
  flex:none;
  font-size:.53rem;
  line-height:1;
  filter:drop-shadow(0 1px 1px #000);
}
.grid-unit-resources{
  position:absolute;
  left:7px;
  right:7px;
  bottom:4px;
  z-index:7;
  display:grid;
  gap:2px;
  pointer-events:none;
}
.grid-unit-bar{
  display:block;
  height:3px;
  overflow:hidden;
  border:1px solid rgba(13,13,17,.82);
  border-radius:1px;
  background:#17151a;
  box-shadow:0 1px 2px rgba(0,0,0,.45);
}
.grid-unit-bar i{display:block;height:100%;background:#68c48d}
.grid-unit-bar.mana i{background:#71a9e5}
.grid-unit-effects{
  position:absolute;
  right:4px;
  bottom:11px;
  z-index:8;
  display:flex;
  gap:2px;
  pointer-events:none;
}
.grid-unit-effects em{
  display:grid;
  place-items:center;
  width:11px;
  height:11px;
  border:1px solid #6a5b78;
  border-radius:50%;
  background:#241f2a;
  color:#e5caef;
  font:900 .45rem/1 sans-serif;
  box-shadow:0 1px 3px rgba(0,0,0,.45);
}

.tactical-figure{
  --figure-main:#d8d2bf;
  --figure-light:#f2ead3;
  --figure-dark:#5e5962;
  --figure-accent:#8a78c8;
  position:absolute;
  left:50%;
  top:15px;
  width:32px;
  height:38px;
  margin-left:-16px;
  z-index:4;
  pointer-events:none;
  image-rendering:pixelated;
  transform-origin:50% 78%;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.4));
}
.figure-element-earth{--figure-main:#9b8963;--figure-light:#c9b989;--figure-dark:#544a35;--figure-accent:#d6c36e}
.figure-element-energy{--figure-main:#8172c2;--figure-light:#b8a9f0;--figure-dark:#453d69;--figure-accent:#e1d56f}
.figure-element-water{--figure-main:#6796aa;--figure-light:#a5cedb;--figure-dark:#385765;--figure-accent:#d8edf2}
.figure-player{--figure-main:#d9d1b7;--figure-light:#f2ead4;--figure-dark:#4e555d;--figure-accent:#8271c3}

.figure-shadow{
  position:absolute;
  left:5px;
  right:5px;
  bottom:0;
  height:7px;
  border-radius:50%;
  background:rgba(4,4,8,.42);
  transform:scaleY(.55);
}
.figure-feet{
  position:absolute;
  left:8px;
  bottom:5px;
  width:16px;
  height:8px;
  z-index:1;
}
.figure-feet i{
  position:absolute;
  bottom:0;
  width:6px;
  height:7px;
  border:1px solid #29262d;
  border-radius:2px 2px 1px 1px;
  background:var(--figure-dark);
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.18);
}
.figure-feet i:first-child{left:0}
.figure-feet i:last-child{right:0}
.figure-body{
  position:absolute;
  left:6px;
  bottom:10px;
  width:20px;
  height:18px;
  z-index:2;
  border:2px solid #302c35;
  border-radius:4px 4px 3px 3px;
  background:linear-gradient(90deg,var(--figure-dark) 0 3px,var(--figure-main) 3px calc(100% - 3px),var(--figure-dark) calc(100% - 3px));
  box-shadow:inset 0 3px 0 rgba(255,255,255,.13),inset 0 -3px 0 rgba(0,0,0,.13);
}
.figure-mark{
  position:absolute;
  inset:4px 0 auto;
  color:var(--figure-accent);
  font:900 8px/1 monospace;
  text-align:center;
  text-shadow:0 1px 0 rgba(0,0,0,.4);
}
.figure-head{
  position:absolute;
  left:8px;
  top:0;
  width:16px;
  height:16px;
  z-index:3;
  border:2px solid #302c35;
  border-radius:5px 5px 4px 4px;
  background:linear-gradient(180deg,var(--figure-light) 0 70%,var(--figure-main) 70%);
  box-shadow:inset 0 3px 0 rgba(255,255,255,.14),inset 0 -2px 0 rgba(0,0,0,.12);
  transition:left 70ms linear;
}
.figure-head::before{
  content:"";
  position:absolute;
  left:1px;
  right:1px;
  top:1px;
  height:3px;
  background:var(--figure-dark);
  border-radius:2px 2px 0 0;
  opacity:.8;
}
.figure-eye{
  position:absolute;
  top:7px;
  width:2px;
  height:3px;
  background:#17151c;
  border-radius:1px;
}
.figure-eye-left{left:3px}
.figure-eye-right{right:3px}
.facing-up .figure-eye{opacity:0}
.facing-up .figure-head::before{height:6px;opacity:1}
.facing-left .figure-head{left:6px}
.facing-left .figure-eye-left{left:2px}
.facing-left .figure-eye-right{opacity:0}
.facing-right .figure-head{left:10px}
.facing-right .figure-eye-left{opacity:0}
.facing-right .figure-eye-right{right:2px}

.ally-unit .figure-body{box-shadow:inset 0 3px 0 rgba(255,255,255,.13),inset 0 -3px 0 rgba(0,0,0,.13),0 0 0 1px rgba(100,198,174,.3)}
.enemy-unit .figure-body{box-shadow:inset 0 3px 0 rgba(255,255,255,.13),inset 0 -3px 0 rgba(0,0,0,.13),0 0 0 1px rgba(210,103,145,.32)}
.active-turn .tactical-figure{filter:drop-shadow(0 2px 2px rgba(0,0,0,.4)) drop-shadow(0 0 6px rgba(229,204,104,.75))}
.selected-target .tactical-figure{filter:drop-shadow(0 2px 2px rgba(0,0,0,.4)) drop-shadow(0 0 6px rgba(119,219,238,.75))}
.capture-ready .tactical-figure{filter:drop-shadow(0 2px 2px rgba(0,0,0,.4)) drop-shadow(0 0 7px rgba(193,140,255,.82))}

/* Creature silhouettes keep the same readable grid footprint but no longer look like cards. */
.figure-sporeling .figure-head,.figure-tidewisp .figure-head,.figure-resonance .figure-head{
  left:7px;
  top:3px;
  width:18px;
  height:17px;
  border-radius:50% 50% 42% 42%;
}
.figure-sporeling .figure-body,.figure-tidewisp .figure-body,.figure-resonance .figure-body{
  left:7px;
  width:18px;
  height:15px;
  border-radius:7px 7px 5px 5px;
}
.figure-earthSentinel .figure-body,.figure-nexusWarden .figure-body{
  left:4px;
  width:24px;
  height:19px;
  border-radius:2px;
}
.figure-earthSentinel .figure-head,.figure-nexusWarden .figure-head{
  left:7px;
  width:18px;
  border-radius:2px;
}
.figure-shardScout .figure-head,.figure-voltWeaver .figure-head{
  border-radius:8px 8px 3px 3px;
}
.figure-shardScout .figure-body,.figure-voltWeaver .figure-body{
  transform:skewX(-4deg);
}
.figure-tideMender .figure-body,.figure-rootBreaker .figure-body{
  border-radius:8px 8px 4px 4px;
}
.figure-nexusHeart{width:38px;height:40px;margin-left:-19px;top:13px}
.figure-nexusHeart .figure-feet{display:none}
.figure-nexusHeart .figure-head{
  left:8px;
  top:2px;
  width:22px;
  height:22px;
  border-radius:50%;
}
.figure-nexusHeart .figure-body{
  left:7px;
  bottom:6px;
  width:24px;
  height:24px;
  border-radius:50%;
}

.is-walking .figure-feet i:first-child{animation:pixel-step-left 150ms steps(2,end) infinite}
.is-walking .figure-feet i:last-child{animation:pixel-step-right 150ms steps(2,end) infinite}
@keyframes pixel-step-left{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes pixel-step-right{0%,100%{transform:translateY(-2px)}50%{transform:translateY(0)}}

@media(max-width:560px){
  .grid-unit-name strong{font-size:.44rem}
  .tactical-figure{top:17px}
  .grid-unit-resources{left:5px;right:5px;bottom:3px}
}


/* ==========================================================================
   v2.3.8 · Dimension 6 target-first actions / clearer active turn / portal fit
   ========================================================================== */
.tactical-cell.active-turn{
  border-color:#ead06f!important;
  box-shadow:0 0 0 2px #ead06f,0 0 0 5px rgba(234,208,111,.13),0 0 20px rgba(234,208,111,.42)!important;
}
.turn-indicator{
  position:absolute;
  left:50%;
  top:11px;
  width:9px;
  height:9px;
  z-index:10;
  pointer-events:none;
  background:#f4d96f;
  border:1px solid #fff0a6;
  box-shadow:0 0 0 2px rgba(35,30,20,.72),0 0 9px rgba(244,217,111,.82);
  transform:translateX(-50%) rotate(45deg);
  animation:turn-indicator-bob 620ms ease-in-out infinite alternate;
}
@keyframes turn-indicator-bob{
  from{margin-top:-3px}
  to{margin-top:1px}
}
.battle-tactical-action.target-valid{
  border-color:#6dbb8d;
  box-shadow:inset 0 0 0 1px rgba(109,187,141,.13);
}
.battle-tactical-action.target-valid:hover:not(:disabled){
  background:#303b38;
  border-color:#86d4a5;
}
.battle-tactical-action.target-invalid:not(.selected){opacity:.6}
@media(prefers-reduced-motion:reduce){.turn-indicator{animation:none!important}}

/* ========================================================================== 
   v2.3.10 · Dedicated game-over screen
   ========================================================================== */
.game-over-overlay{
  position:fixed;
  inset:0;
  z-index:1100;
  display:grid;
  place-items:center;
  padding:20px;
  background:
    radial-gradient(circle at 50% 42%,rgba(120,54,69,.17),transparent 34%),
    rgba(7,9,12,.84);
  backdrop-filter:blur(8px) saturate(.78);
}
.game-over-card{
  width:min(620px,100%);
  overflow:hidden;
  position:relative;
  padding:28px;
  border:1px solid #66515a;
  border-radius:20px;
  background:linear-gradient(180deg,#24242c 0%,#1d2228 100%);
  box-shadow:0 28px 90px rgba(0,0,0,.66),inset 0 1px 0 rgba(255,255,255,.035);
  text-align:center;
}
.game-over-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,transparent,#d86d78 24%,#f0bf73 50%,#d86d78 76%,transparent);
  opacity:.82;
}
.game-over-eyebrow{margin:0 0 8px;color:#d8ad66}
.game-over-card h2{
  margin:0;
  color:#fff1df;
  font-size:clamp(2.15rem,7vw,3.65rem);
  line-height:1;
  letter-spacing:.045em;
  text-transform:uppercase;
  text-shadow:0 3px 18px rgba(216,109,120,.2);
}
.game-over-reason{
  max-width:46ch;
  margin:16px auto 22px;
  color:#d6d0c7;
  font-size:1.02rem;
  line-height:1.5;
}
.game-over-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin:0 0 22px;
}
.game-over-stats>div{
  min-width:0;
  padding:11px 12px;
  border:1px solid #414852;
  border-radius:12px;
  background:#242a31;
}
.game-over-stats span{
  display:block;
  margin-bottom:4px;
  color:#9f9aa0;
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.game-over-stats strong{
  display:block;
  overflow:hidden;
  color:#f2eadc;
  font-size:.88rem;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.game-over-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.game-over-actions button{width:100%;min-height:48px;font-weight:900}
@media(max-width:560px){
  .game-over-card{padding:23px 18px}
  .game-over-stats{grid-template-columns:1fr 1fr}
  .game-over-actions{grid-template-columns:1fr}
}


/* ==========================================================================
   v2.3.12 · Tactical pass action + campaign ending
   ========================================================================== */
.battle-pass-turn{
  border-style:dashed;
  border-color:#665f70;
  background:#28252e;
}
.battle-pass-turn:hover:not(:disabled){
  border-color:#d3b96d;
  background:#322f35;
}
.battle-pass-turn>b{color:#d8c77d;font-size:.8rem}

.ending-overlay{
  position:fixed;
  inset:0;
  z-index:1120;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:20px;
  background:
    radial-gradient(circle at 50% 35%,rgba(110,96,181,.2),transparent 32%),
    radial-gradient(circle at 50% 80%,rgba(218,178,92,.09),transparent 35%),
    rgba(5,8,13,.88);
  backdrop-filter:blur(9px) saturate(.82);
}
.ending-card{
  position:relative;
  z-index:3;
  width:min(680px,100%);
  padding:32px;
  overflow:hidden;
  border:1px solid #6a6179;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(38,37,49,.98),rgba(24,30,37,.98));
  box-shadow:0 30px 100px rgba(0,0,0,.68),inset 0 1px 0 rgba(255,255,255,.05),0 0 55px rgba(128,109,190,.12);
  text-align:center;
}
.ending-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,transparent,#7bd8de 20%,#d6b860 50%,#b58cec 80%,transparent);
}
.ending-card::after{
  content:"✦";
  position:absolute;
  right:24px;
  top:18px;
  color:#e2c76e;
  font-size:1.5rem;
  opacity:.65;
}
.ending-eyebrow{margin:0 0 9px;color:#83d5db}
.ending-card h2{
  max-width:16ch;
  margin:0 auto;
  color:#fff3dd;
  font-size:clamp(2rem,6vw,3.5rem);
  line-height:1.04;
  letter-spacing:.035em;
  text-transform:uppercase;
  text-shadow:0 3px 24px rgba(130,106,195,.24);
}
.ending-message{
  max-width:52ch;
  margin:17px auto 24px;
  color:#d8d3cc;
  font-size:1.02rem;
  line-height:1.55;
}
.ending-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:24px;
}
.ending-stats>div{
  padding:13px 11px;
  border:1px solid #48505b;
  border-radius:12px;
  background:rgba(35,43,51,.9);
}
.ending-stats span{
  display:block;
  margin-bottom:5px;
  color:#9ea5ad;
  font-size:.66rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ending-stats strong{color:#f6eddb;font-size:1.05rem}
.ending-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ending-actions button{width:100%;min-height:49px;font-weight:900}

.ending-fireworks{position:absolute;inset:0;z-index:1;pointer-events:none}
.ending-firework{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#f7da73;
  box-shadow:
    0 -54px #f7da73,38px -38px #83dce1,54px 0 #b998ed,38px 38px #e88d9f,
    0 54px #83dce1,-38px 38px #f7da73,-54px 0 #e88d9f,-38px -38px #b998ed,
    18px -47px #ffffff,47px -18px #f7da73,47px 18px #83dce1,18px 47px #b998ed,
    -18px 47px #e88d9f,-47px 18px #f7da73,-47px -18px #83dce1,-18px -47px #ffffff;
  opacity:0;
  transform:scale(.12);
  animation:ending-firework-burst 2.6s ease-out infinite;
}
.ending-firework:nth-child(1){left:18%;top:25%;animation-delay:.05s}
.ending-firework:nth-child(2){left:81%;top:31%;animation-delay:.8s}
.ending-firework:nth-child(3){left:26%;top:72%;animation-delay:1.45s}
.ending-firework:nth-child(4){left:75%;top:74%;animation-delay:2.05s}
@keyframes ending-firework-burst{
  0%,12%{opacity:0;transform:scale(.08)}
  18%{opacity:1}
  48%{opacity:.92;transform:scale(1)}
  72%,100%{opacity:0;transform:scale(1.18)}
}
@media(max-width:560px){
  .ending-card{padding:25px 18px}
  .ending-stats{grid-template-columns:1fr 1fr}
  .ending-actions{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .ending-firework{animation:none;opacity:.32;transform:scale(.75)}
}


/* ==========================================================================
   v2.3.12 · Title screen
   ========================================================================== */
.title-screen{
  min-height:calc(100vh - clamp(20px,2.5vw,40px));
  display:grid;place-items:center;width:100%;
}
.title-screen[hidden]{display:none!important}
.title-screen-inner{
  width:min(1280px,100%);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);
  gap:clamp(18px,3vw,42px);align-items:center;
}
.title-cover-wrap{min-width:0;display:flex;justify-content:center}
.title-cover{
  display:block;width:100%;max-width:820px;height:auto;aspect-ratio:630/500;object-fit:contain;
  border:1px solid #4a405e;border-radius:20px;
  box-shadow:0 28px 80px rgba(0,0,0,.52),0 0 45px rgba(118,67,224,.16);
}
.title-menu-card{
  text-align:left;padding:clamp(24px,3vw,38px);border-radius:20px;
  background:linear-gradient(180deg,rgba(35,40,48,.96),rgba(25,29,35,.98));
  border:1px solid #4c5360;box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.title-menu-card .eyebrow{margin:0 0 7px;color:#d6b45f}
.title-menu-card h1{margin:0;color:#fff4db;font-size:clamp(2rem,4vw,3.15rem);line-height:1;letter-spacing:-.035em}
.title-menu-copy{margin:14px 0 24px;color:#bdb8ae;font-size:.9rem;line-height:1.55}
.title-menu-actions{display:grid;gap:10px}
.title-menu-button{width:100%;min-height:52px;font-size:.92rem;font-weight:900}
.title-save-note{margin:14px 2px 0;color:#918c84;font-size:.68rem;line-height:1.45}
.settings-language-setting{margin:0 0 18px;padding:12px;border:1px solid #3d444e;border-radius:12px;background:#1c2026}
.settings-language-setting .pause-copy{margin:4px 0 10px;font-size:.72rem}
@media(max-width:860px){
  .title-screen{min-height:auto;padding:8px 0 22px}
  .title-screen-inner{grid-template-columns:1fr;max-width:680px}
  .title-cover{max-width:630px}
  .title-menu-card{max-width:630px;width:100%;justify-self:center}
}
@media(max-width:520px){
  .title-menu-card{padding:20px 17px}
  .title-menu-card h1{font-size:2rem}
  .title-menu-copy{margin-bottom:18px}
}

/* ==========================================================================
   v2.3.13 · Epilogue space teaser + title fit
   ========================================================================== */
.title-menu-card{min-width:0}
.title-menu-card h1{
  max-width:100%;
  white-space:nowrap;
  font-size:clamp(1.75rem,2.35vw,2.5rem);
  letter-spacing:-.045em;
}
@media(max-width:520px){
  .title-menu-card h1{font-size:clamp(1.65rem,9vw,2rem)}
}

.ending-signal{
  margin:0 0 17px;
  padding:10px 12px;
  border:1px solid rgba(124,216,222,.42);
  border-radius:11px;
  background:rgba(25,64,73,.28);
  color:#a9edf1;
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.025em;
}
.ending-actions-three .ending-bonus-button{grid-column:1/-1}
.ending-bonus-button{
  box-shadow:0 0 0 1px rgba(126,226,234,.18),0 0 24px rgba(111,92,228,.16);
}

.bonus-overlay{
  position:fixed;
  inset:0;
  z-index:1160;
  overflow:auto;
  padding:clamp(12px,2vw,26px);
  background:
    radial-gradient(circle at 82% 22%,rgba(104,48,205,.18),transparent 31%),
    radial-gradient(circle at 18% 76%,rgba(34,147,183,.13),transparent 32%),
    #080c13;
}
.bonus-overlay[hidden]{display:none!important}
.bonus-shell{
  width:min(1160px,100%);
  min-height:calc(100vh - clamp(24px,4vw,52px));
  margin:0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
}
.bonus-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}
.bonus-header .eyebrow{margin:0 0 4px;color:#74d8e7}
.bonus-header h2{
  margin:0;
  color:#f6f0df;
  font-size:clamp(1.8rem,4vw,3.1rem);
  line-height:1;
  letter-spacing:.02em;
}
.bonus-exit-button{min-width:150px}
.bonus-hud{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.bonus-hud>div{
  min-width:0;
  padding:9px 12px;
  border:1px solid #394657;
  border-radius:10px;
  background:rgba(24,31,43,.94);
  text-align:center;
}
.bonus-hud span{
  display:block;
  color:#8e9baa;
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.bonus-hud strong{display:block;margin-top:3px;color:#fff1d0;font-size:1rem}
.bonus-canvas-wrap{
  position:relative;
  width:100%;
  overflow:hidden;
  border:1px solid #4d4668;
  border-radius:18px;
  background:#050914;
  box-shadow:0 20px 65px rgba(0,0,0,.52),0 0 40px rgba(92,69,180,.12);
}
#bonus-canvas{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  outline:none;
  touch-action:none;
}
#bonus-canvas:focus-visible{box-shadow:inset 0 0 0 3px rgba(126,226,234,.55)}
.bonus-scanlines{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.14;
  background:repeating-linear-gradient(180deg,transparent 0 3px,rgba(255,255,255,.06) 4px);
  mix-blend-mode:screen;
}
.bonus-status{
  margin:0;
  color:#e5d9bb;
  font-weight:850;
  text-align:center;
}
.bonus-controls{
  margin:0;
  color:#8894a1;
  font-size:.72rem;
  text-align:center;
}
.bonus-result{
  position:absolute;
  inset:0;
  z-index:4;
  display:grid;
  align-content:center;
  justify-items:center;
  padding:clamp(18px,5vw,58px);
  background:linear-gradient(180deg,rgba(5,9,20,.77),rgba(9,7,20,.93));
  backdrop-filter:blur(5px);
  text-align:center;
}
.bonus-result[hidden]{display:none!important}
.bonus-result::before{
  content:"";
  position:absolute;
  width:min(520px,72%);
  aspect-ratio:1;
  border:2px solid rgba(154,105,255,.28);
  border-radius:50%;
  box-shadow:0 0 55px rgba(132,70,244,.25),inset 0 0 45px rgba(80,184,240,.12);
  animation:bonus-rift-pulse 3s ease-in-out infinite;
  pointer-events:none;
}
.bonus-result>*{position:relative;z-index:1}
.bonus-result .eyebrow{margin:0 0 8px;color:#83e1e6}
.bonus-result h3{
  max-width:18ch;
  margin:0;
  color:#fff0cf;
  font-size:clamp(1.7rem,5vw,3.25rem);
  line-height:1.05;
  text-shadow:0 0 25px rgba(144,89,241,.35);
}
#bonus-result-copy{
  max-width:58ch;
  margin:15px auto 0;
  color:#ddd8d1;
  line-height:1.55;
}
.bonus-community-copy{
  max-width:64ch;
  margin:10px auto 0;
  padding:11px 13px;
  border:1px solid rgba(108,210,220,.32);
  border-radius:11px;
  background:rgba(24,58,70,.28);
  color:#bce8e8;
  font-size:.83rem;
  line-height:1.55;
}
.bonus-result-actions{
  width:min(650px,100%);
  margin-top:18px;
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:9px;
}
.bonus-result-actions button{width:100%;min-height:46px}
@keyframes bonus-rift-pulse{
  0%,100%{transform:scale(.92);opacity:.45}
  50%{transform:scale(1.04);opacity:.85}
}
@media(max-width:720px){
  .bonus-header{align-items:flex-start;flex-direction:column}
  .bonus-exit-button{min-width:0;width:100%}
  .bonus-hud{grid-template-columns:1fr 1fr}
  .bonus-result-actions{grid-template-columns:1fr}
  .bonus-result{padding:18px}
  .bonus-community-copy{font-size:.75rem}
}
@media(max-height:760px) and (min-width:721px){
  .bonus-overlay{padding:8px 18px}
  .bonus-shell{min-height:calc(100vh - 16px);gap:7px}
  .bonus-header h2{font-size:2rem}
  .bonus-hud>div{padding:6px 10px}
  #bonus-canvas{max-height:64vh;object-fit:contain}
  .bonus-status{font-size:.82rem}
}
@media(prefers-reduced-motion:reduce){
  .bonus-result::before{animation:none}
}

/* ========================================================================== 
   v2.3.14 · Reusable ability tutorial info box
   ========================================================================== */
.ability-info-overlay{
  position:fixed;
  inset:0;
  z-index:1080;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(6,9,13,.72);
  backdrop-filter:blur(6px) saturate(.82);
}
.ability-info-overlay[hidden]{display:none!important}
.ability-info-card{
  position:relative;
  width:min(560px,100%);
  overflow:hidden;
  padding:26px;
  border:1px solid #655a78;
  border-radius:18px;
  background:linear-gradient(180deg,#292633 0%,#20262d 100%);
  box-shadow:0 24px 80px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.045),0 0 38px rgba(135,105,206,.12);
}
.ability-info-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,transparent,#8c73df 20%,#d9bb61 50%,#75cfd6 80%,transparent);
}
.ability-info-eyebrow{
  margin:0 0 7px;
  color:#d6b95f;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.ability-info-card h2{
  margin:0;
  color:#fff1db;
  font-size:clamp(1.7rem,5vw,2.45rem);
  line-height:1.05;
}
.ability-info-description{
  margin:12px 0 18px;
  color:#d9d4cc;
  font-size:1rem;
  line-height:1.5;
}
.ability-info-section{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #454653;
  border-radius:12px;
  background:rgba(25,29,35,.72);
}
.ability-info-section-label{
  display:block;
  margin-bottom:6px;
  color:#9fd6d8;
  font-size:.69rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.ability-info-section p{margin:0;color:#d8d2c9;line-height:1.45}
.ability-info-keys{display:grid;gap:8px}
.ability-info-key-row{
  display:grid;
  grid-template-columns:minmax(96px,auto) 1fr;
  align-items:center;
  gap:12px;
}
.ability-info-key-group{display:flex;flex-wrap:wrap;gap:5px}
.ability-info-key-group kbd{
  min-width:32px;
  padding:5px 7px;
  border:1px solid #666b76;
  border-bottom-color:#41464f;
  border-radius:7px;
  background:#171b20;
  color:#fff0d6;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 2px 0 #0e1114;
  font:800 .77rem/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  text-align:center;
}
.ability-info-key-copy{color:#c9c5bf;font-size:.88rem;line-height:1.35}
.ability-info-pause-note{
  margin:14px 0 0;
  color:#a9a6ad;
  font-size:.8rem;
  line-height:1.4;
}
.ability-info-continue{
  width:100%;
  min-height:48px;
  margin-top:17px;
  border-color:#8d74df;
  background:#8065dc;
  color:#fff;
  font-weight:900;
}
.ability-info-continue:hover{background:#8b70e5}
@media(max-width:520px){
  .ability-info-card{padding:22px 17px}
  .ability-info-key-row{grid-template-columns:1fr;gap:6px}
}


/* ==========================================================================
   v2.3.16 · Compact Protection Cherry resource indicator
   ========================================================================== */
.hud.has-cherry{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.cherry-hud{
  position:relative;
  min-width:0;
  border-color:#76505f!important;
  background:linear-gradient(180deg,#2d2930,#252a31)!important;
}
.cherry-hud strong{
  display:block;
  line-height:1.05;
}
.cherry-hud small{
  display:block;
  margin-top:2px;
  color:#c9aeb7;
  font-size:.55rem;
  font-weight:750;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cherry-hud.is-empty{border-color:#6d4248!important}
.cherry-hud.is-empty strong{color:#df9aa6}
.cherry-hud.is-full{border-color:#8e6576!important}
@media(max-width:520px){
  .hud.has-cherry{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ========================================================================== 
   v2.3.17 · Dimension 6 combat transparency and tutorial
   ========================================================================== */
.battle-dimension-tutorial{
  margin:0 0 14px;
  border:1px solid #5a5068;
  border-radius:12px;
  background:linear-gradient(180deg,rgba(47,40,57,.96),rgba(34,31,40,.96));
  color:#d8cfdf;
  overflow:hidden;
}
.battle-dimension-tutorial summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  cursor:pointer;
  list-style:none;
}
.battle-dimension-tutorial summary::-webkit-details-marker{display:none}
.battle-dimension-tutorial summary span{
  color:#bda2eb;
  font-size:.6rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.battle-dimension-tutorial summary strong{color:#fff0d9;font-size:.82rem;text-align:right}
.battle-dimension-tutorial ol{
  margin:0;
  padding:0 30px 10px 34px;
  display:grid;
  gap:5px;
  color:#c8becf;
  font-size:.66rem;
  line-height:1.45;
}
.battle-tutorial-rules{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:9px 11px 11px;
  border-top:1px solid #494151;
}
.battle-tutorial-rules span{
  border:1px solid #554b61;
  border-radius:999px;
  background:#26222d;
  color:#bfb4c8;
  padding:4px 7px;
  font-size:.56rem;
}
.battle-action-copy{min-width:0;display:block}
.battle-tactical-action .battle-action-value{
  display:block;
  margin-top:3px;
  color:#f0d786;
  font-size:.53rem;
  font-style:normal;
  font-weight:900;
  line-height:1.2;
}
.battle-tactical-action .battle-action-effect{
  display:block;
  margin-top:2px;
  color:#b7acbd;
  font-size:.46rem;
  line-height:1.25;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
.battle-tactical-action .battle-action-preview{
  display:block;
  margin-top:3px;
  padding-top:3px;
  border-top:1px solid rgba(255,255,255,.07);
  color:#9edbc0;
  font-size:.47rem;
  font-weight:800;
  line-height:1.25;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
.battle-tactical-action.target-invalid .battle-action-preview{color:#d6a1a8}
@media(min-width:901px){
  .battle-tactical-action{align-items:start}
  .battle-tactical-action>kbd{grid-row:1 / span 3}
  .battle-tactical-action>span{grid-row:1 / span 2}
  .battle-tactical-action>b{align-self:end}
  .battle-tactical-action .battle-action-effect,
  .battle-tactical-action .battle-action-preview{white-space:normal;overflow:visible;text-overflow:clip}
}
@media(max-width:560px){
  .battle-dimension-tutorial summary{align-items:flex-start;flex-direction:column;gap:3px}
  .battle-dimension-tutorial summary strong{text-align:left}
}

/* Dimension 2: Schlinger + zugbasierte Geist-Rückkehr */
.enemy-glutton{
  background:#6f8f3a;
  border-color:#354f1d;
  box-shadow:0 0 0 2px rgba(170,220,91,.18),0 4px 10px rgba(0,0,0,.42);
  border-radius:45% 55% 42% 58%;
}
.enemy-glutton::before{
  content:"◉⌢◉";
  letter-spacing:0;
  color:#f3ffd7;
  font-size:.78rem;
  transform:none;
}
.glutton-segment{
  position:absolute;
  inset:12%;
  z-index:3;
  border-radius:42%;
  background:#7c9f43;
  border:2px solid #405b25;
  box-shadow:inset 0 -4px 0 rgba(37,58,20,.35),0 3px 7px rgba(0,0,0,.32);
}
.glutton-segment::before{
  content:"";
  position:absolute;
  inset:28%;
  border-radius:50%;
  background:#b8d875;
  opacity:.65;
}
.glutton-segment.glutton-tail{
  inset:18%;
  border-radius:50% 28% 50% 28%;
  transform:rotate(45deg);
}
.wraith-respawn-warning{
  position:absolute;
  inset:20%;
  z-index:3;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:2px dashed #b9a9ff;
  color:#efeaff;
  background:rgba(86,64,151,.25);
  text-shadow:0 0 6px #fff;
  font-size:.68rem;
  font-weight:900;
  animation:wraith-return-pulse 650ms ease-in-out alternate infinite;
}
@keyframes wraith-return-pulse{from{transform:scale(.88);opacity:.5}to{transform:scale(1.06);opacity:1}}
@media(prefers-reduced-motion:reduce){.wraith-respawn-warning{animation:none!important}}
.pulse-bomb .bomb-turns{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  z-index:2;
  color:#fff;
  font-size:.62rem;
  font-weight:1000;
  text-shadow:0 1px 2px #000;
}

/* Dimension 2: Schlinger-Zielbeute und Wutmodus */
.energy-shard.glutton-target{
  box-shadow:0 0 0 2px rgba(255,172,75,.95),0 0 9px rgba(255,221,135,1),0 0 18px rgba(255,112,50,.9);
  animation:glutton-target-pulse 520ms ease-in-out alternate infinite;
}
.energy-shard.glutton-target::after{
  content:"!";
  position:absolute;
  inset:-48% -48% auto auto;
  width:62%;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#8d251f;
  border:1px solid #ffd1a1;
  color:#fff3d9;
  font-size:.55rem;
  font-weight:900;
  line-height:1;
  box-shadow:0 0 7px rgba(255,89,59,.85);
  transform:rotate(-45deg);
}
@keyframes glutton-target-pulse{from{transform:scale(.9) rotate(0deg)}to{transform:scale(1.13) rotate(8deg)}}
.actor.glutton-actor .enemy-health{
  width:34px;
  min-width:34px;
  padding-left:2px;
  padding-right:2px;
  white-space:nowrap;
}
.actor.enemy-actor.glutton-raging .enemy-glutton{
  background:#a92e2b;
  border-color:#5d1717;
  /* Wut verändert nur Farbe/Helligkeit. Keine äußere Glow-Kante, die den
     Schlinger optisch größer als seine normale Silhouette erscheinen lässt. */
  box-shadow:inset 0 0 0 2px rgba(255,119,76,.26),0 4px 10px rgba(0,0,0,.46);
  animation:glutton-rage-pulse 330ms ease-in-out alternate infinite;
}
.actor.enemy-actor.glutton-raging::after{
  content:"⚠" attr(data-rage-turns);
  position:absolute;
  top:5%;right:5%;
  width:31%;height:31%;
  min-width:15px;min-height:15px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#7c201d;
  border:1px solid #ffd1a1;
  color:#fff3d9;
  font-size:clamp(7px,calc(var(--cell) * .18),9px);
  font-weight:1000;line-height:1;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  pointer-events:none;z-index:12;
}
.actor.enemy-actor.glutton-raging .enemy-glutton::before{
  content:"◉︵◉";
  color:#fff0d5;
}
.glutton-segment.glutton-raging{
  background:#9d3830;
  border-color:#631e1a;
  box-shadow:inset 0 -4px 0 rgba(76,19,17,.38),inset 0 0 0 2px rgba(255,105,78,.16),0 3px 7px rgba(0,0,0,.34);
}
.glutton-segment.glutton-raging::before{background:#e07a55}
@keyframes glutton-rage-pulse{from{filter:brightness(.95)}to{filter:brightness(1.28)}}
@media(prefers-reduced-motion:reduce){
  .energy-shard.glutton-target,
  .actor.enemy-actor.glutton-raging .enemy-glutton{animation:none!important}
}


/* ========================================================================== 
   v2.3.37 compact HUD pass
   Large always-visible sidebars are replaced by on-demand SDK dialogs.
   ========================================================================== */
body .game-shell,
body:has(.turn-battle-board) .game-shell{
  width:min(1120px,100%);
  --stage-preferred:960px;
}
.game-topbar{
  min-height:48px;
  margin-bottom:8px;
  padding:2px 2px 7px;
}
.game-brand .eyebrow,
.game-topbar .intro{display:none}
.game-topbar h1{font-size:clamp(1.3rem,2vw,1.75rem)}
.header-actions{gap:6px}
.header-actions .icon-action{padding:7px 9px;font-size:.75rem}
.quick-info-action{border-color:#645c46}

.play-layout{
  display:grid;
  grid-template-columns:minmax(0,var(--stage-preferred,960px));
  max-width:var(--stage-preferred,960px);
  margin:0 auto;
}
.game-stage{
  grid-column:1;
  grid-row:1;
  max-width:var(--stage-preferred,960px);
}
.side-panel{display:none!important}
.mobile-help{display:none!important}

.world-info{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-bottom:6px;
}
.world-info>div{
  flex:0 1 50%;
  min-width:0;
  padding:5px 8px;
  border-radius:9px;
  box-shadow:none;
  background:#20252b;
}
.world-info strong{font-size:.78rem}
.world-info .hud-label{font-size:.54rem}
.hud{gap:6px;margin-bottom:5px}
.hud>div{padding:6px 8px;border-radius:9px;box-shadow:none}
.hud strong{font-size:1rem}
.status{margin:3px 4px 6px}

.game-quick-dialog{
  --sdk-ui-panel:#20252c;
  --sdk-ui-text:#eee9df;
  --sdk-ui-muted:#aaa69e;
  --sdk-ui-accent:#8a6ee8;
  --sdk-ui-border:#4a525e;
  background:rgba(8,10,13,.72);
  backdrop-filter:blur(6px);
  padding:14px;
}
.game-quick-dialog .sdk-dialog{
  width:min(520px,100%);
  max-height:min(82vh,680px);
  overflow:auto;
  border-radius:16px;
  box-shadow:0 24px 70px rgba(0,0,0,.5);
  text-align:left;
}
.game-quick-dialog .sdk-dialog__title{
  margin:0;
  color:#fff6df;
  font-size:1.25rem;
}
.game-quick-dialog .sdk-dialog__message{
  color:#c8c3ba;
  line-height:1.55;
  white-space:pre-line;
  font-size:.9rem;
}
.game-quick-dialog .sdk-dialog__actions{margin-top:4px}
.game-quick-dialog .sdk-button{font-weight:850}

@media(max-width:760px){
  .game-topbar{align-items:center}
  .game-brand{flex:0 1 auto}
  .header-actions .icon-action span{display:none}
  .header-actions .quick-info-action span{display:inline}
  .header-actions .quick-info-action{padding-inline:8px}
  .world-info>div{padding:4px 6px}
  .world-info strong{font-size:.72rem}
  .hud>div{padding:5px 6px}
  .hud strong{font-size:.92rem}
}

@media(max-width:520px){
  .game-topbar h1{font-size:1.15rem}
  .header-actions{gap:4px}
  .header-actions .icon-action{min-width:34px;padding:7px}
  .header-actions .quick-info-action span{display:none}
  .world-info{gap:4px}
  .hud{gap:4px}
  .game-quick-dialog{padding:9px}
}


/* v2.3.41 difficulty selection */
.difficulty-setting{display:grid;gap:6px;padding:12px;border:1px solid #3d444e;border-radius:12px;background:#1c2026}
.difficulty-setting label{font-weight:900;color:#f4ebfb}
.difficulty-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}
.difficulty-select:focus{outline:2px solid #78d9e7;outline-offset:2px}
.difficulty-select option:disabled{color:#777}
.difficulty-help,.difficulty-lock{margin:0;color:#bdb8c7;font-size:.72rem;line-height:1.45}
.difficulty-lock{color:#e0bd73}
.title-difficulty-setting{margin:0 0 16px}
.settings-difficulty-setting{margin:0 0 18px}

/* ==========================================================================
   v2.3.42 · Game-over and settings navigation
   ========================================================================== */
.game-over-difficulty-action{grid-column:1 / -1}
@media(max-width:560px){
  .game-over-difficulty-action{grid-column:auto}
}

/* ==========================================================================
   v2.3.43 · SaveManager slot browser
   ========================================================================== */
.save-load-overlay{
  position:fixed;inset:0;z-index:900;display:grid;place-items:center;
  padding:clamp(14px,3vw,34px);overflow:auto;
  background:rgba(8,10,14,.82);backdrop-filter:blur(8px);
}
.save-load-overlay[hidden]{display:none!important}
.save-load-card{
  width:min(860px,100%);max-height:min(86vh,900px);overflow:auto;
  padding:clamp(20px,3vw,32px);border:1px solid #4c5360;border-radius:20px;
  background:linear-gradient(180deg,#232830,#181c22);box-shadow:0 28px 90px rgba(0,0,0,.58);
}
.save-load-card h2{margin:0;color:#fff4db;font-size:clamp(1.7rem,4vw,2.4rem)}
.save-load-copy{margin:10px 0 18px;color:#bdb8ae;line-height:1.5}
.save-load-status{margin:0 0 14px;padding:10px 12px;border:1px solid #49635d;border-radius:10px;background:#1d302d;color:#b9e2d9;font-size:.82rem;font-weight:750}
.save-load-status.is-error{border-color:#754d4d;background:#342020;color:#f0c1bd}
.save-slot-list{display:grid;gap:12px}
.save-slot-card{padding:14px;border:1px solid #414852;border-radius:14px;background:#20252c;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.save-slot-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:11px}
.save-slot-title{color:#fff1d2;font-size:1rem}
.save-slot-updated{color:#918d85;font-size:.7rem;text-align:right}
.save-slot-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.save-slot-details>span{min-width:0;padding:8px 9px;border-radius:9px;background:#181c21;border:1px solid #303740}
.save-slot-details small{display:block;color:#8f918f;font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.save-slot-details strong{display:block;margin-top:2px;color:#eee9df;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.save-slot-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px}
.save-slot-actions button{width:100%;min-height:42px;font-weight:850}
.save-slot-empty{margin:18px 0;padding:22px;border:1px dashed #4a515b;border-radius:13px;text-align:center;color:#aaa69d}
.save-load-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.save-load-actions button{flex:1 1 180px;min-height:46px}
.save-load-footnote{margin:13px 1px 0;color:#87837d;font-size:.67rem;line-height:1.45}
.title-menu-button:disabled{opacity:.48;cursor:not-allowed}
@media(max-width:620px){
  .save-load-overlay{padding:8px}
  .save-load-card{max-height:94vh;padding:18px 14px}
  .save-slot-details{grid-template-columns:repeat(2,minmax(0,1fr))}
  .save-slot-actions{grid-template-columns:1fr}
  .save-slot-header{align-items:flex-start;flex-direction:column;gap:3px}
  .save-slot-updated{text-align:left}
}
