/* Zippa World – Oberfläche 1:1 im Lochfresser-Stil: der erste Block ist das CSS aus lochspiel/www/index.html (Pfade angepasst), danach nur Ergänzungen */
@font-face { font-family:'Fredoka'; src:url('../fonts/Fredoka.ttf') format('truetype'); font-weight:300 700; font-display:swap; }
:root { --bg:#0f1320; --panel:rgba(22,27,42,.88); --text:#f5f6fa; --muted:#a3abc2; --accent:#ffb347; --good:#6fdc8c; --bad:#ff6b6b;
        --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px); --sal:env(safe-area-inset-left,0px); --sar:env(safe-area-inset-right,0px); }
* { box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
html,body { height:100%; background:var(--bg); color:var(--text); font-family:-apple-system,"SF Pro Rounded",system-ui,"Segoe UI",Roboto,sans-serif; overflow:hidden; touch-action:none; user-select:none; -webkit-user-select:none; overscroll-behavior:none; }
canvas { display:block; }
.hidden { display:none !important; }
/* ---------- Menü ---------- */
.screen { position:fixed; inset:0; z-index:10; display:flex; flex-direction:column; align-items:center; overflow-y:auto; padding:calc(var(--sat) + 16px) 16px calc(var(--sab) + 20px); background:var(--bg); }
#menu { background:#0f1320 url(../img/keyart.jpg) center top / cover no-repeat; }
#menu::before { content:""; position:fixed; inset:0; background:linear-gradient(180deg, rgba(15,19,32,.15) 0%, rgba(15,19,32,.55) 35%, rgba(15,19,32,.96) 60%); pointer-events:none; }
#menu > * { position:relative; z-index:2; }
#menu > .gear { position:absolute; }
#menu::before { z-index:1; }
#menu > #menuVid { position:fixed; z-index:0; }
.title { font-size:clamp(40px,11vw,64px); font-weight:900; letter-spacing:-1px; line-height:1; text-shadow:0 4px 0 #8a4b00, 0 10px 24px rgba(0,0,0,.6); color:var(--accent); margin-top:2vh; }
.sub { color:#fff; font-weight:700; text-shadow:0 2px 6px #000; margin-bottom:auto; font-size:14px; }
.lvlbox { width:min(100%,360px); background:var(--panel); border-radius:14px; padding:10px 14px; margin-top:22vh; backdrop-filter:blur(8px); }
.lvlbox .row { display:flex; justify-content:space-between; font-weight:700; font-size:14px; margin-bottom:6px; }
.xpbar { height:10px; background:#0a0c12; border-radius:5px; overflow:hidden; }
.xpbar i { display:block; height:100%; background:linear-gradient(90deg,#6fdc8c,#b8ff7a); }
.chars { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; width:min(100%,360px); margin:12px 0; }
.char { background:var(--panel); border:2px solid rgba(255,255,255,.08); border-radius:16px; padding:8px 6px 8px; text-align:center; cursor:pointer; backdrop-filter:blur(8px); position:relative; }
.char.selected { border-color:var(--accent); box-shadow:0 0 0 2px rgba(255,179,71,.35), 0 8px 24px rgba(0,0,0,.4); }
.char.locked { filter:grayscale(1) brightness(.55); }
.char.premium.locked { filter:none; opacity:.92; border-color:rgba(124,92,255,.6); }
.char.premium .lock.gem { background:linear-gradient(180deg,#7c5cff,#5436d6); color:#fff; }
.char.premium { box-shadow:inset 0 0 0 1px rgba(124,92,255,.35); }
.char img { width:100%; aspect-ratio:1; border-radius:12px; object-fit:cover; background:#1b2030; display:block; margin-bottom:6px; }
.char b { display:block; font-size:14px; }
.char small { display:block; color:var(--muted); font-size:10.5px; line-height:1.3; }
.char .sup { color:var(--accent); font-size:11px; font-weight:700; margin-top:3px; display:block; }
.char .lock { position:absolute; top:8px; right:8px; background:rgba(0,0,0,.7); border-radius:8px; padding:2px 6px; font-size:11px; font-weight:700; }
.desc { width:min(100%,360px); background:var(--panel); border-radius:14px; padding:10px 14px; font-size:13px; color:var(--muted); line-height:1.4; margin-bottom:12px; }
.desc b { color:var(--text); }
.big { width:min(100%,360px); background:linear-gradient(180deg,#ffc76b,#ff9f1c); color:#2b1600; border:0; border-radius:16px; font-size:20px; font-weight:900; padding:16px; cursor:pointer; box-shadow:0 6px 0 #a85d00, 0 12px 24px rgba(0,0,0,.4); }
.big:disabled { filter:grayscale(.6); opacity:.7; }
.big:active { transform:translateY(3px); box-shadow:0 3px 0 #a85d00; }
/* ---------- HUD ---------- */
#hud { position:fixed; top:calc(var(--sat) + 8px); left:calc(var(--sal) + 12px); right:calc(var(--sar) + 12px); display:flex; justify-content:space-between; align-items:flex-start; font-weight:800; font-size:13px; pointer-events:none; text-shadow:0 1px 3px #000, 0 0 12px rgba(0,0,0,.5); z-index:5; }
#hud .pill { background:rgba(15,19,32,.5); border-radius:10px; padding:4px 8px; backdrop-filter:blur(6px); }
#combo { position:fixed; top:calc(var(--sat) + 40px); right:calc(var(--sar) + 12px); font-weight:900; font-size:11px; opacity:.85; color:var(--good); text-shadow:0 2px 4px #000; pointer-events:none; z-index:5; transition:transform .1s; }
#goal { position:fixed; top:calc(var(--sat) + 44px); left:50%; transform:translateX(-50%); background:rgba(15,19,32,.55); color:#fff; padding:4px 12px; border-radius:12px; font-weight:800; font-size:12.5px; z-index:5; pointer-events:none; white-space:nowrap; backdrop-filter:blur(6px); }
.lvlmap { position:relative; width:100%; aspect-ratio:3/2; border-radius:12px; overflow:hidden; background:#24361f; }
.lvlmap img.bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; } .lvlmap svg { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.node { position:absolute; width:12.5%; aspect-ratio:1; transform:translate(-50%,-50%) rotate(var(--tilt,0deg)); border-radius:50%; border:3px solid #fff; font-family:'Fredoka',-apple-system,"SF Pro Rounded",system-ui,sans-serif; font-weight:700; font-size:17px; line-height:1; color:#fff; padding:0; text-shadow:0 2px 0 rgba(0,0,0,.35);
  background:radial-gradient(circle at 35% 28%, rgba(255,255,255,.6), rgba(255,255,255,0) 42%), linear-gradient(180deg,#7c6a58,#4a3b2e); box-shadow:0 5px 0 #2a2119, 0 8px 12px rgba(0,0,0,.45); }
.node.done { background:radial-gradient(circle at 35% 28%, rgba(255,255,255,.65), rgba(255,255,255,0) 42%), linear-gradient(180deg,#8ff2a2,#2ea557); border-color:#fff8cf; box-shadow:0 5px 0 #17612f, 0 8px 12px rgba(0,0,0,.45); }
.node.cur { background:radial-gradient(circle at 35% 28%, rgba(255,255,255,.7), rgba(255,255,255,0) 42%), linear-gradient(180deg,#ffd86e,#ff8a12); border-color:#fff; color:#3a1c00; text-shadow:0 1px 0 rgba(255,255,255,.5); box-shadow:0 5px 0 #a34d00, 0 0 0 5px rgba(255,180,50,.45), 0 0 22px rgba(255,170,40,.9); animation:nodepulse 1.4s ease-in-out infinite; }
@keyframes nodepulse { 0%,100% { box-shadow:0 5px 0 #a34d00, 0 0 0 4px rgba(255,180,50,.45), 0 0 16px rgba(255,170,40,.8); } 50% { box-shadow:0 5px 0 #a34d00, 0 0 0 9px rgba(255,180,50,.25), 0 0 30px rgba(255,170,40,1); } }
.node.sel { outline:3px solid #fff; outline-offset:2px; }
.node.lock { color:rgba(255,255,255,.7); font-size:14px; }
.node.boss::before { content:''; position:absolute; inset:-18%; border-radius:50%; border:4px dashed #ff4d4d; box-shadow:0 0 10px rgba(255,60,60,.7); pointer-events:none; animation:bossspin 14s linear infinite; }
@keyframes bossspin { to { transform:rotate(360deg); } }
.node .st { position:absolute; left:50%; top:88%; transform:translateX(-50%); background:rgba(20,14,8,.7); border-radius:10px; padding:2px 5px; font-size:10px; letter-spacing:-1px; color:#ffd23f; white-space:nowrap; text-shadow:0 1px 1px #000; }
.node .lk { position:absolute; left:50%; top:70%; transform:translateX(-50%); width:52%; filter:drop-shadow(0 2px 2px rgba(0,0,0,.5)); } .node .bh { position:absolute; left:50%; bottom:84%; transform:translateX(-50%); width:120%; pointer-events:none; filter:drop-shadow(0 3px 3px rgba(0,0,0,.5)); }
.node .ch { position:absolute; left:92%; top:30%; width:75%; pointer-events:none; filter:drop-shadow(0 2px 3px rgba(0,0,0,.5)); } .node .av { position:absolute; left:50%; bottom:55%; transform:translateX(-50%); height:175%; max-width:none; pointer-events:none; filter:drop-shadow(0 4px 5px rgba(0,0,0,.55)); }
.lvlmap-info .lbl { font-family:'Fredoka',system-ui,sans-serif; font-weight:700; }
.lbtabs { display:flex; gap:4px; width:100%; } .lbtabs button { flex:1; background:#0a0c12; color:var(--muted); border:0; border-radius:10px; padding:7px 2px; font-weight:800; font-size:12px; } .lbtabs button.on { background:var(--accent); color:#2b1600; }
.lbrow { display:flex; align-items:center; gap:8px; padding:5px 4px; border-top:1px solid rgba(255,255,255,.06); font-size:13px; } .lbrow.me { color:var(--accent); font-weight:900; } .lbrow b { width:28px; text-align:right; } .lbrow span { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .lbrow small { font-weight:800; }
.applebtn { width:100%; background:#000; color:#fff; border:1px solid #444; border-radius:12px; padding:11px; font-weight:800; font-size:14px; }
.lvlentry { display:flex; gap:10px; align-items:center; } .lvlentry > img { width:64px; height:64px; object-fit:contain; filter:drop-shadow(0 3px 4px rgba(0,0,0,.45)); } .lvlentry .chev { font-size:26px; color:var(--muted); padding:0 2px; }
#lvlStart:not(.hardbtn):not(:disabled) { color:#2b1600; } /* Level starten: groß und gelb wie früher ENDLOS STARTEN (Klasse .big) */
#msg { position:fixed; top:calc(var(--sat) + 78px); left:0; right:0; text-align:center; font-weight:900; font-size:16px; color:var(--accent); text-shadow:0 2px 4px #000; pointer-events:none; z-index:5; transition:opacity .3s; opacity:0; padding:0 16px; }
#ctrls { position:fixed; right:calc(var(--sar) + 16px); bottom:calc(var(--sab) + 16px); display:flex; gap:12px; z-index:5; }
.abtn { position:relative; width:76px; height:76px; border-radius:50%; background:rgba(22,27,42,.85); border:3px solid var(--accent); color:var(--text); font-size:11px; font-weight:800; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.5); }
.abtn span { font-size:26px; line-height:1; margin-bottom:2px; }
.ammo { position:absolute; top:6px; left:0; right:0; display:flex; justify-content:center; gap:3px; } .ammo i { width:9px; height:5px; border-radius:2px; background:#3a4258; } .ammo i.on { background:var(--good); }
.abtn .cd { position:absolute; left:0; right:0; bottom:0; background:rgba(0,0,0,.65); height:0%; pointer-events:none; }
.abtn.active { border-color:var(--good); box-shadow:0 0 18px var(--good); }
#joy { position:fixed; width:120px; height:120px; border-radius:50%; background:rgba(255,255,255,.12); border:2px solid rgba(255,255,255,.35); pointer-events:none; z-index:5; display:none; }
#joy i { position:absolute; left:50%; top:50%; width:52px; height:52px; margin:-26px 0 0 -26px; border-radius:50%; background:rgba(255,255,255,.75); }
body.lefty #ctrls { right:auto; left:calc(var(--sal) + 16px); flex-direction:row-reverse; } body.lefty #hint { left:auto; right:calc(var(--sar) + 20px); }
#hint { position:fixed; bottom:calc(var(--sab) + 30px); left:calc(var(--sal) + 20px); color:rgba(255,255,255,.7); font-size:13px; font-weight:700; pointer-events:none; z-index:5; text-shadow:0 1px 3px #000; }
/* ---------- Ende ---------- */
#over { justify-content:center; gap:14px; text-align:center; }
#over h2 { font-size:34px; font-weight:900; color:var(--accent); }
.stats { width:min(100%,340px); background:var(--panel); border-radius:16px; padding:14px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.stat b { display:block; font-size:26px; font-weight:900; } .stat small { color:var(--muted); font-size:12px; }
#unlockMsg { color:var(--good); font-weight:800; font-size:16px; max-width:340px; }
.meta { width:min(100%,360px); display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.card { background:var(--panel); border-radius:14px; padding:10px 12px; backdrop-filter:blur(8px); font-size:13px; text-align:left; }
.card h4 { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px; }
.card.wide { grid-column:1 / -1; }
.mission { display:flex; align-items:center; gap:8px; padding:5px 0; border-top:1px solid rgba(255,255,255,.06); font-size:12.5px; }
.mission:first-child { border-top:0; }
.mission .bar { flex:0 0 64px; height:6px; background:#0a0c12; border-radius:3px; overflow:hidden; } .mission .bar i { display:block; height:100%; background:var(--accent); }
.mission.done { color:var(--good); } .mission.done .bar i { background:var(--good); }
.mission small { color:var(--muted); font-size:11px; white-space:nowrap; }
.coins { font-weight:900; color:#ffd700; }
.boxbtn { width:100%; margin-top:8px; background:linear-gradient(180deg,#7c5cff,#5436d6); color:#fff; border:0; border-radius:12px; padding:10px 6px; font-weight:800; font-size:13px; cursor:pointer; box-shadow:0 4px 0 #2d1c8a; }
.boxbtn:disabled { filter:grayscale(.7); opacity:.6; box-shadow:none; }
#boxOverlay { position:fixed; inset:0; z-index:20; background:rgba(10,12,20,.94); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; text-align:center; padding:20px; }
.box3d { font-size:110px; line-height:1; animation:shake .45s ease-in-out 2; } .box3d.open { animation:pop .5s ease-out forwards; }
@keyframes shake { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-12deg) scale(1.05)} 75%{transform:rotate(12deg) scale(1.05)} }
@keyframes pop { 0%{transform:scale(1)} 50%{transform:scale(1.5)} 100%{transform:scale(0);opacity:0} }
.reward { font-size:26px; font-weight:900; color:var(--accent); animation:rise .5s ease-out; max-width:320px; }
@keyframes rise { from{transform:translateY(30px);opacity:0} to{transform:none;opacity:1} }
.pop { position:fixed; pointer-events:none; font-weight:900; font-size:15px; color:#fff; text-shadow:0 2px 4px #000; animation:floatup .8s ease-out forwards; z-index:6; white-space:nowrap; }
.pop.big { font-size:22px; color:var(--accent); } .pop.bad { color:var(--bad); }
@keyframes floatup { from{transform:translate(-50%,0);opacity:1} to{transform:translate(-50%,-70px);opacity:0} }
.place { font-size:46px; font-weight:900; line-height:1; } .place small { font-size:13px; color:var(--muted); display:block; font-weight:700; margin-top:4px; }
.delta.up { color:var(--good); } .delta.down { color:var(--bad); }
.btnrow { display:flex; gap:10px; width:min(100%,340px); } .btnrow .big { flex:1; padding:14px; font-size:17px; }
.big.alt { background:var(--panel); color:var(--text); box-shadow:0 4px 0 #0a0c12; }
.nextinfo { color:var(--muted); font-size:12.5px; }
.ic { height:1.15em; width:auto; vertical-align:-0.22em; }
.ic.lg { height:1.5em; vertical-align:-0.4em; }
.abtn img { width:38px; height:38px; object-fit:contain; margin-bottom:1px; filter:drop-shadow(0 2px 3px rgba(0,0,0,.5)); }
.mission img.mi { width:28px; height:28px; object-fit:contain; flex:0 0 28px; }
.chk { width:16px; height:16px; border-radius:50%; border:2px solid var(--muted); flex:0 0 16px; }
.mission.done .chk { border-color:var(--good); background:var(--good) center / 70% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230f1320' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E"); }
#boxIcon { width:200px; height:200px; object-fit:contain; filter:drop-shadow(0 10px 30px rgba(255,200,80,.35)); }
.box3d.open { animation:openpop .5s ease-out; }
@keyframes openpop { 0%{transform:scale(.9)} 60%{transform:scale(1.15)} 100%{transform:scale(1)} }
.reward img { height:44px; vertical-align:middle; margin-right:6px; }
.chestcard { display:flex; align-items:center; gap:8px; } .chestcard img { width:54px; height:54px; object-fit:contain; }
#winBanner { width:170px; margin:-6px 0 -18px; filter:drop-shadow(0 6px 16px rgba(0,0,0,.5)); }
.supicon, .char img.supicon { width:22px; height:22px; display:inline; margin:0; aspect-ratio:auto; border-radius:0; background:none; object-fit:contain; vertical-align:middle; }
#pauseBtn { position:fixed; top:calc(var(--sat) + 6px); left:50%; transform:translateX(-50%); width:34px; height:34px; border-radius:50%; background:rgba(15,19,32,.55); border:2px solid rgba(255,255,255,.3); color:#fff; font-size:13px; display:flex; align-items:center; justify-content:center; z-index:6; backdrop-filter:blur(6px); }
#pause, #tut, #settings { justify-content:center; gap:12px; text-align:center; }
#pause h2, #settings h2 { font-size:30px; font-weight:900; }
.col { display:flex; flex-direction:column; gap:10px; width:min(100%,320px); }
.gear { position:absolute; top:calc(var(--sat) + 10px); right:14px; width:40px; height:40px; border-radius:50%; background:var(--panel); display:flex; align-items:center; justify-content:center; font-size:20px; cursor:pointer; z-index:11; backdrop-filter:blur(8px); }
.setbox { width:min(100%,340px); background:var(--panel); border-radius:16px; padding:4px 16px; text-align:left; }
.toggle { display:flex; justify-content:space-between; align-items:center; padding:13px 0; border-top:1px solid rgba(255,255,255,.08); font-size:15px; font-weight:600; cursor:pointer; }
/* Steuerungs-Stufe (Einstellungen): drei Knöpfe nebeneinander, Beschreibung darunter */
.ctlset { padding:12px 0; border-top:1px solid rgba(255,255,255,.08); } .ctlhead { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:600; margin-bottom:8px; }
.ctlhead img.si { width:30px; height:30px; object-fit:contain; flex:0 0 30px; }
.ctlseg { display:flex; gap:6px; } .ctlseg button { flex:1; padding:9px 4px; border-radius:11px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:var(--text); font-weight:800; font-size:13px; cursor:pointer; }
.ctlseg button.on { background:linear-gradient(180deg,#7c5cff,#5436d6); border-color:#9b86ff; } .ctldesc { font-size:12px; color:var(--muted); margin-top:6px; min-height:16px; }
.toggle:first-child { border-top:0; }
.sw { width:50px; height:28px; border-radius:14px; background:#3a4258; position:relative; flex:0 0 50px; } .sw i { position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; transition:left .15s; } .sw.on { background:var(--good); } .sw.on i { left:25px; }
.small { color:var(--muted); font-size:12px; line-height:1.5; max-width:340px; }
.tutstep { display:none; flex-direction:column; align-items:center; gap:12px; max-width:340px; } .tutstep.show { display:flex; }
.tutstep img { height:130px; object-fit:contain; } .tutstep h3 { font-size:24px; font-weight:900; color:var(--accent); } .tutstep p { font-size:15px; color:var(--text); }
.dots { display:flex; gap:6px; } .dots i { width:8px; height:8px; border-radius:50%; background:#3a4258; } .dots i.on { background:var(--accent); }
#loader { position:fixed; inset:0; background:#0f1320 url(../img/keyart.jpg) center top / cover no-repeat; z-index:30; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:12px; padding-bottom:calc(var(--sab) + 60px); }
#loader::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,19,32,.1), rgba(15,19,32,.9) 70%); } #loader > * { position:relative; }
#loader .xpbar { width:220px; }
/* Intro-Video */
#intro { position:fixed; inset:0; z-index:40; background:#000; display:flex; align-items:center; justify-content:center; }
#intro video { width:100%; height:100%; object-fit:cover; }
#skip { position:absolute; right:calc(var(--sar) + 16px); bottom:calc(var(--sab) + 24px); background:rgba(15,19,32,.6); color:#fff; border:2px solid rgba(255,255,255,.35); border-radius:20px; padding:8px 18px; font-weight:800; font-size:14px; backdrop-filter:blur(6px); }
#introTitle { position:absolute; left:0; right:0; top:calc(var(--sat) + 9%); text-align:center; pointer-events:none; opacity:0; }
#introTitle.show { animation:titlepop .9s cubic-bezier(.2,1.4,.4,1) forwards; }
#introTitle .title { font-size:clamp(44px,13vw,84px); letter-spacing:-1px; margin:0; text-shadow:0 5px 0 #8a4b00, 0 14px 30px rgba(0,0,0,.7), 0 0 40px rgba(255,179,71,.45); }
#introTitle .sub { font-size:clamp(14px,4vw,20px); margin-top:8px; }
@keyframes titlepop { 0%{opacity:0;transform:scale(2.6) rotate(-6deg)} 55%{opacity:1;transform:scale(.94) rotate(1deg)} 100%{opacity:1;transform:scale(1) rotate(0)} }
#intro::after { content:""; position:absolute; left:0; right:0; top:0; height:40%; background:linear-gradient(180deg, rgba(5,8,20,.65), rgba(5,8,20,0)); pointer-events:none; }
#introTitle { z-index:2; } #skip { z-index:2; }
#intro.fade { animation:fadeout .6s ease-in forwards; } @keyframes fadeout { to { opacity:0; visibility:hidden; } }
/* Menü-Hintergrundvideo */
#menuVid { position:fixed; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:.9; pointer-events:none; }
#menu { position:fixed; }
/* Held-Vorschau */
.hero { width:min(100%,360px); display:flex; align-items:flex-end; gap:10px; margin-top:14vh; min-height:150px; }
.hero > img { height:150px; width:auto; filter:drop-shadow(0 12px 20px rgba(0,0,0,.6)); animation:float 3s ease-in-out infinite; }
.hero .hsup img { height:18px; width:18px; animation:none; filter:none; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.hero .hname { font-size:30px; font-weight:900; line-height:1; text-shadow:0 3px 8px #000; } .hero .hsub { color:#fff; font-weight:700; font-size:13px; text-shadow:0 2px 6px #000; margin-top:6px; }
.hero .hsup { display:inline-flex; align-items:center; gap:6px; margin-top:8px; background:rgba(15,19,32,.6); border-radius:10px; padding:5px 9px; font-size:12px; font-weight:800; color:var(--accent); backdrop-filter:blur(6px); }
.char { animation:cardin .5s ease-out both; } .char:nth-child(2){animation-delay:.05s} .char:nth-child(3){animation-delay:.1s} .char:nth-child(4){animation-delay:.15s} .char:nth-child(5){animation-delay:.2s} .char:nth-child(6){animation-delay:.25s}
@keyframes cardin { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
.big#start { animation:pulse 2.2s ease-in-out infinite; } @keyframes pulse { 0%,100%{box-shadow:0 6px 0 #a85d00, 0 12px 24px rgba(0,0,0,.4)} 50%{box-shadow:0 6px 0 #a85d00, 0 12px 34px rgba(255,179,71,.45)} }
/* Countdown */
#count { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; font-size:120px; font-weight:900; color:var(--accent); text-shadow:0 6px 0 #8a4b00, 0 14px 30px rgba(0,0,0,.6); pointer-events:none; z-index:7; }
#count span { animation:countpop .9s ease-out both; } @keyframes countpop { 0%{transform:scale(2);opacity:0} 20%{transform:scale(1);opacity:1} 80%{opacity:1} 100%{transform:scale(.8);opacity:0} }
/* Konfetti */
.conf { position:fixed; top:-12px; width:10px; height:14px; z-index:12; pointer-events:none; animation:conffall linear forwards; }
@keyframes conffall { to { transform:translateY(110vh) rotate(720deg); } }
.screen { animation:screenin .35s ease-out; } @keyframes screenin { from{opacity:0} to{opacity:1} }
#feed { position:fixed; left:calc(50% + 30px); top:30%; display:flex; flex-direction:column-reverse; align-items:flex-start; gap:3px; pointer-events:none; z-index:6; }
.fi { font-size:11px; font-weight:800; color:#fff; background:rgba(15,19,32,.5); padding:2px 7px; border-radius:8px; white-space:nowrap; text-shadow:0 1px 2px #000; backdrop-filter:blur(4px); animation:fi var(--d,1.6s) ease-out forwards; }
.fi.gold { color:var(--accent); } .fi.bad { color:var(--bad); } .fi.good { color:var(--good); }
@keyframes fi { 0%{opacity:0;transform:translateY(6px)} 12%{opacity:1;transform:none} 78%{opacity:1} 100%{opacity:0;transform:translateY(-6px)} }
.tag { position:fixed; transform:translate(-50%,-100%); pointer-events:none; z-index:5; font-size:10px; font-weight:800; color:#fff; background:rgba(15,19,32,.55); padding:2px 6px; border-radius:7px; white-space:nowrap; text-shadow:0 1px 2px #000; }
.tag b { color:var(--accent); } .tag.danger b { color:var(--bad); } .tag.prey b { color:var(--good); }
.arrow { position:fixed; width:28px; height:28px; margin:-14px 0 0 -14px; pointer-events:none; z-index:5; }
.arrow i { position:absolute; left:50%; top:50%; width:0; height:0; margin:-9px 0 0 -7px; border-left:7px solid transparent; border-right:7px solid transparent; border-bottom:14px solid var(--accent); filter:drop-shadow(0 1px 2px #000); }
.arrow.danger i { border-bottom-color:var(--bad); } .arrow.prey i { border-bottom-color:var(--good); }
.arrow small { position:absolute; left:50%; top:16px; transform:translateX(-50%); font-size:9px; font-weight:800; color:#fff; text-shadow:0 1px 2px #000; white-space:nowrap; }
#splash { position:fixed; inset:0; z-index:35; background:#0f1320 url(../img/keyart.jpg) center top / cover no-repeat; display:flex; align-items:flex-start; justify-content:center; padding-top:calc(var(--sat) + 12%); }
#splash.fade { animation:fadeout .5s ease-in forwards; }
#lobby { justify-content:center; gap:14px; text-align:center; }
.code { font-size:52px; font-weight:900; letter-spacing:8px; color:var(--accent); text-shadow:0 4px 0 #8a4b00; }
.inp { width:min(100%,300px); font-size:22px; font-weight:800; text-align:center; letter-spacing:6px; padding:12px; border-radius:12px; border:2px solid rgba(255,255,255,.2); background:var(--panel); color:var(--text); text-transform:uppercase; }
.inp.name { letter-spacing:0; font-size:16px; text-transform:none; }
.duel { width:min(100%,360px); display:flex; gap:10px; margin-top:-2px; }
.duel button { flex:1; background:linear-gradient(180deg,#7c5cff,#5436d6); color:#fff; border:0; border-radius:14px; padding:12px 8px; font-weight:900; font-size:14px; box-shadow:0 5px 0 #2d1c8a; }
.duel button:active { transform:translateY(3px); box-shadow:0 2px 0 #2d1c8a; }
.status { color:var(--muted); font-size:14px; min-height:20px; }
.shop { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.shop button, .adbtn { background:linear-gradient(180deg,#ffd166,#f5a623); color:#2b1600; border:0; border-radius:12px; padding:9px 4px; font-weight:900; font-size:12px; box-shadow:0 4px 0 #a85d00; line-height:1.25; }
.shop button small { display:block; font-weight:700; font-size:11px; opacity:.8; }
.adbtn { grid-column:1 / -1; background:linear-gradient(180deg,#8ef0a8,#3fbf63); box-shadow:0 4px 0 #1f7a3a; }
.adbtn:disabled, .shop button:disabled { filter:grayscale(.6); opacity:.6; box-shadow:none; }
.upg { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pips { display:flex; gap:3px; } .pips i { width:14px; height:8px; border-radius:2px; background:#2a3145; } .pips i.on { background:var(--accent); }
.sk { display:flex; gap:6px; margin-top:8px; } .sk button { flex:1; border:2px solid rgba(255,255,255,.12); background:#1b2030; color:var(--text); border-radius:10px; padding:7px 4px; font-weight:800; font-size:12px; }
.sk button.on { border-color:var(--accent); color:var(--accent); }
.upgbtn { margin-left:auto; background:linear-gradient(180deg,#7c5cff,#5436d6); color:#fff; border:0; border-radius:10px; padding:8px 10px; font-weight:800; font-size:12px; box-shadow:0 3px 0 #2d1c8a; }
.upgbtn:disabled { filter:grayscale(.7); opacity:.6; box-shadow:none; }
#adOverlay { position:fixed; inset:0; z-index:25; background:#000; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; font-weight:800; }
.arenas { width:min(100%,360px); display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:8px; }
.arenas button { background:var(--panel); border:2px solid rgba(255,255,255,.1); color:var(--text); border-radius:12px; padding:8px 2px; font-weight:800; font-size:12px; backdrop-filter:blur(8px); }
.arenas button span.ai { display:block; position:relative; width:52px; height:52px; margin:0 auto 4px; } .arenas button span.ai img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 3px 4px rgba(0,0,0,.45)); } .arenas button.lock span.ai > img:first-child { filter:grayscale(1) brightness(.5); } .arenas button span.ai img.lk { position:absolute; right:-4px; bottom:-2px; width:24px; height:24px; }
.arenas button.on { border-color:var(--accent); color:var(--accent); }
.arenas button.lock { opacity:.8; color:var(--muted); }
kbd { background:#0a0c12; border-radius:4px; padding:1px 5px; font-size:11px; }

/* ---------- Tab-Menü ---------- */
#menu { display:block; padding:calc(var(--sat) + 62px) 0 calc(var(--sab) + 74px); overflow-y:auto; }
.topbar { position:fixed; top:0; left:0; right:0; z-index:12; display:flex; align-items:center; gap:6px; padding:calc(var(--sat) + 8px) 12px 8px; background:linear-gradient(180deg, rgba(10,12,22,.96), rgba(10,12,22,.75)); backdrop-filter:blur(10px); border-bottom:1px solid rgba(255,255,255,.06); }
.tpill { display:inline-flex; align-items:center; gap:5px; background:rgba(22,27,42,.95); border:1px solid rgba(255,255,255,.1); border-radius:20px; padding:5px 10px 5px 6px; font-weight:900; font-size:14px; color:#ffd700; }
.tpill img { height:20px; width:20px; object-fit:contain; } .tpill.gem { color:#7fc4ff; }
.lvlring { margin-left:auto; width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:900; background:conic-gradient(var(--accent) var(--p,0%), #2a3145 0); }
.lvlring span { width:36px; height:36px; border-radius:50%; background:#161b2a; display:flex; align-items:center; justify-content:center; }
.topbar .gear { position:static; width:36px; height:36px; font-size:17px; }
.panes { width:min(100%,400px); margin:0 auto; padding:10px 16px; }
.pane { display:none; } .pane.on { display:flex; flex-direction:column; align-items:center; gap:10px; animation:screenin .25s ease-out; }
.tabbar { position:fixed; left:0; right:0; bottom:0; z-index:12; display:flex; padding:6px 8px calc(var(--sab) + 6px); background:rgba(10,12,22,.96); backdrop-filter:blur(10px); border-top:1px solid rgba(255,255,255,.06); }
.tabbar button { flex:1; background:none; border:0; color:var(--muted); font-weight:800; font-size:11px; padding:4px 0; border-radius:12px; display:flex; flex-direction:column; align-items:center; gap:2px; }
.tabbar button span { font-size:22px; line-height:1; filter:grayscale(1) opacity(.7); } .tabbar button.on { color:var(--accent); background:rgba(255,179,71,.1); } .tabbar button.on span { filter:none; }
.herocard { width:100%; min-height:170px; display:flex; align-items:flex-end; gap:12px; background:linear-gradient(180deg, rgba(22,27,42,.35), rgba(22,27,42,.9)); border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:12px; position:relative; overflow:hidden; }
.herocard img#heroImg { height:150px; width:auto; filter:drop-shadow(0 12px 20px rgba(0,0,0,.6)); animation:float 3s ease-in-out infinite; }
.heroinfo { flex:1; } .heroinfo .hname { font-size:30px; font-weight:900; line-height:1; text-shadow:0 3px 8px #000; } .heroinfo .hsub { color:#fff; font-weight:700; font-size:13px; margin-top:6px; }
.heroinfo .hsup { display:inline-flex; align-items:center; gap:6px; margin-top:8px; background:rgba(15,19,32,.6); border-radius:10px; padding:5px 9px; font-size:12px; font-weight:800; color:var(--accent); } .heroinfo .hsup img { width:18px; height:18px; }
.skinchip { margin-top:6px; font-size:11px; font-weight:800; color:#c4b3ff; }
#menu .lvlbox { margin-top:0; width:100%; } #menu .card.wide { width:100%; }
.duel button.endless { background:linear-gradient(180deg,#ff6a6a,#d63a3a); box-shadow:0 5px 0 #7a1c1c; }
.duel button.hardcore { background:linear-gradient(180deg,#3a3f52,#161a26); box-shadow:0 5px 0 #05060a; border:1px solid rgba(255,90,90,.5); color:#ff8a8a; padding:9px 8px; }
.duel button.hardcore span { display:flex; flex-direction:column; align-items:flex-start; line-height:1.15; } .duel button.hardcore small { font-size:10.5px; font-weight:700; color:#f2c4c4; opacity:.9; }
#hcOverlay { position:fixed; inset:0; z-index:23; background:rgba(10,12,20,.85); display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(6px); }
.preview { width:100%; aspect-ratio:1 / 1.05; max-height:380px; position:relative; border-radius:18px; overflow:hidden; background:radial-gradient(circle at 50% 35%, rgba(124,92,255,.35), rgba(15,19,32,.9) 70%); border:1px solid rgba(255,255,255,.08); }
.preview canvas, .preview img#skinImg { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; } .preview img#skinImg { padding:24px 24px 60px; display:none; } .preview.fallback img#skinImg { display:block; } .preview.fallback canvas { display:none; }
.pvbar { position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 12px; background:linear-gradient(0deg, rgba(10,12,22,.95), rgba(10,12,22,0)); }
.pvname { font-weight:900; font-size:18px; text-shadow:0 2px 6px #000; } .pvname small { color:#c4b3ff; font-size:12px; font-weight:800; margin-left:6px; }
.gembtn { background:linear-gradient(180deg,#3aa0ff,#1f6fd6); color:#fff; border:0; border-radius:12px; padding:9px 14px; font-weight:900; font-size:13px; box-shadow:0 4px 0 #0f3f80; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.gembtn img { height:18px; } .gembtn.own { background:linear-gradient(180deg,#8ef0a8,#3fbf63); color:#0b2a14; box-shadow:0 4px 0 #1f7a3a; } .gembtn:disabled { filter:grayscale(.6); opacity:.7; box-shadow:none; }
.skins { width:100%; display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.skins button { background:var(--panel); border:2px solid rgba(255,255,255,.1); border-radius:14px; padding:6px 4px; color:var(--text); font-weight:800; font-size:11px; position:relative; }
.skins button img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; background:#1b2030; display:block; margin-bottom:4px; }
.skins button.on { border-color:#a48cff; box-shadow:0 0 0 2px rgba(164,140,255,.35); } .skins button.locked img { filter:grayscale(.8) brightness(.6); }
.skins button .tag2 { position:absolute; top:6px; right:6px; background:rgba(0,0,0,.7); border-radius:8px; padding:1px 5px; font-size:10px; } .skins button .tag2.own { background:var(--good); color:#0b2a14; }
#menu .chars { margin:2px 0; width:100%; } #menu .desc { width:100%; }
.shoph { width:100%; font-size:15px; font-weight:900; text-align:left; margin:6px 0 -2px; display:flex; align-items:center; gap:6px; } .shoph img { height:22px; }
#menu .shop { width:100%; } .shop button { padding:8px 4px 9px; } .shop button img.pk { width:100%; height:64px; object-fit:contain; display:block; margin-bottom:2px; filter:drop-shadow(0 4px 6px rgba(0,0,0,.35)); }
#adBtn { width:100%; } #menu .arenas { margin-top:4px; }
.fi img { height:1.1em; vertical-align:-0.2em; }
#menu > .topbar, #menu > .tabbar { position:fixed; z-index:12; }
.tabbar button img { width:34px; height:34px; object-fit:contain; filter:grayscale(1) brightness(.55); transition:transform .15s, filter .15s; }
.tabbar button.on img { filter:none; transform:scale(1.15) translateY(-2px); }
.tabbar button { font-size:11.5px; gap:1px; }
.topbar .gear img { width:30px; height:30px; object-fit:contain; } .topbar .gear { background:none; backdrop-filter:none; }
.lvlring { width:48px; height:48px; background:conic-gradient(#ffd54a var(--p,0%), #2a3145 0); box-shadow:0 0 12px rgba(255,200,70,.35), inset 0 0 0 2px #0f1320; }
.lvlring span { width:38px; height:38px; flex-direction:column; gap:0; font-size:12px; line-height:1; color:#ffd54a; }
.lvlring span img { width:16px; height:16px; object-fit:contain; margin-bottom:1px; }
.duel button { display:flex; align-items:center; justify-content:center; gap:7px; } .duel button img { width:24px; height:24px; object-fit:contain; filter:drop-shadow(0 2px 2px rgba(0,0,0,.4)); }
#menu .lvlbox .xpbar i { background:linear-gradient(90deg,#ffd54a,#ff9f1c); box-shadow:0 0 10px rgba(255,179,71,.6); }
.toggle { gap:10px; } .toggle img.si { width:30px; height:30px; object-fit:contain; margin-right:auto; flex:0 0 30px; } .toggle { justify-content:flex-start; } .toggle > span, .toggle > .sw { margin-left:auto; }
.pvlock { position:absolute; top:12px; right:12px; display:none; align-items:center; gap:6px; background:rgba(10,12,22,.75); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:6px 10px; font-weight:800; font-size:12px; color:#ffd54a; backdrop-filter:blur(6px); }
.pvlock img { width:26px; height:26px; object-fit:contain; } .preview.locked .pvlock { display:flex; } .preview.locked canvas, .preview.locked img#skinImg { filter:saturate(.55) brightness(.8); }
#needOverlay, #lbOverlay, #frOverlay, #webAuth, #unlockOverlay { position:fixed; inset:0; z-index:22; background:rgba(10,12,20,.8); display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(6px); }
.needbox { width:min(100%,320px); background:var(--panel); border:1px solid rgba(255,255,255,.1); border-radius:20px; padding:20px; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.needbox > img { width:70px; height:70px; object-fit:contain; filter:drop-shadow(0 6px 12px rgba(80,160,255,.4)); } .needbox b { font-size:16px; }
#lvlOverlay { position:fixed; inset:0; z-index:22; background:rgba(10,12,20,.8); display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(6px); }
.lvlbox2 > img { filter:drop-shadow(0 6px 12px rgba(255,200,70,.45)); } .lvlbox2 b#lvlTitle { font-size:22px; }
.unlocks { width:100%; text-align:left; } .unlocks h4 { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; margin:6px 0; }
.ul { display:flex; align-items:center; gap:8px; padding:5px 0; border-top:1px solid rgba(255,255,255,.06); font-size:13px; font-weight:700; } .ul img { width:30px; height:30px; border-radius:8px; object-fit:cover; filter:grayscale(1) brightness(.6); } .ul.ok img { filter:none; } .ul b { margin-left:auto; color:var(--muted); font-size:12px; } .ul.ok b { color:var(--good); }
.char.viewing:not(.selected) { border-color:rgba(164,140,255,.8); }
.lvlring { cursor:pointer; }
#askOverlay { position:fixed; inset:0; z-index:23; background:rgba(10,12,20,.85); display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(6px); }
.mission .rew { flex:0 0 auto; margin-left:6px; font-weight:900; font-size:11.5px; color:#ffd700; white-space:nowrap; } .mission.done .rew { color:var(--good); } .mission.bonus { color:#c4b3ff; }
.inv { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; } .invi { background:rgba(15,19,32,.6); border-radius:12px; padding:8px 6px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:2px; }
.invi img { width:40px; height:40px; object-fit:contain; } .invi b { font-size:18px; } .invi span { font-size:11px; color:var(--muted); font-weight:700; } .invi small { font-size:9.5px; color:var(--muted); line-height:1.25; }
.invi .boxbtn { margin-top:4px; padding:6px 4px; font-size:11px; }

/* ================= Zippa World: Ergänzungen im Lochfresser-Stil (alles oben ist 1:1 aus Lochfresser) ================= */
button { font-family:inherit; cursor:pointer; }
canvas#cv { position:fixed; inset:0; width:100%; height:100%; }
#menu { -webkit-overflow-scrolling:touch; touch-action:pan-y; }
.panes { position:relative; z-index:2; }
.pane.on > * { width:100%; }
/* Live-3D statt Standbild: Platz wie img#heroImg (150 px hoch) */
.pvhost { position:relative; } .pvhost .pvcv { position:absolute; inset:0; width:100%; height:100%; display:block; }
.pvhost > img.fb { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:none; } .pvhost.fallback > img.fb, .pvhost.loading > img.fb { display:block; } .pvhost.fallback .pvcv { display:none; }
#heroPv { width:130px; height:150px; flex:0 0 130px; filter:drop-shadow(0 12px 20px rgba(0,0,0,.6)); }
.preview .pvcv { touch-action:none; } .preview.locked .pvcv { filter:saturate(.55) brightness(.8); }
.preview > img.fb { padding:24px 24px 60px; }
.pvhint { position:absolute; left:0; right:0; top:10px; text-align:center; font-size:11px; font-weight:700; color:rgba(255,255,255,.45); pointer-events:none; }
.preview.locked .pvhint { display:none; }
.char img.pt { object-fit:contain; background:#1b2030; }
.char .lock img.ic { width:auto; height:1.15em; aspect-ratio:auto; display:inline; margin:0; border-radius:0; background:none; vertical-align:-0.22em; }
.skins button.soon img { filter:grayscale(1) brightness(.45); }
/* Login-Serie (neu, Wunsch des Nutzers) */
.streak { display:flex; align-items:center; gap:10px; } .streak > img { width:48px; height:48px; object-fit:contain; }
.days { display:flex; gap:4px; margin-top:6px; } .days i { flex:1; height:20px; border-radius:6px; background:#0a0c12; font-style:normal; font-size:10.5px; font-weight:800; color:var(--muted); display:flex; align-items:center; justify-content:center; }
.days i.on { background:var(--accent); color:#2b1600; } .days i.gift { background:linear-gradient(180deg,#7c5cff,#5436d6); color:#fff; } .days i.gift.on { background:var(--good); color:#0b2a14; }
.inv .invi b { font-size:18px; }
/* Planeten: 5 Planeten statt 4 Arenen */
.arenas.five { grid-template-columns:repeat(5,1fr); } .arenas.five button { font-size:11px; padding:6px 1px; } .arenas.five button span.ai { width:46px; height:46px; }
.arenas.six { grid-template-columns:repeat(6,1fr); gap:4px; } .arenas.six button { font-size:9.5px; padding:5px 0; letter-spacing:-.2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .arenas.six button span.ai { width:40px; height:40px; } /* 6 Planeten (Raupe-Nachtrag) */
.node { z-index:1; } .node.sel { z-index:4; } .node.me { z-index:6; } /* Held auf dem aktuellen Knoten liegt immer über Nachbarknoten und deren Schlössern */
.node .st i { font-style:normal; color:rgba(255,255,255,.28); }
.node.boss { width:15%; } .node .bh { width:130%; }
.lvlmap.painted svg { display:none; } /* Karte mit gemaltem Weg (Blumengarten) */
.lvlmap.painted .node { width:7.2%; font-size:11px; border-width:2px; } .lvlmap.painted .node.boss { width:9.5%; } .lvlmap.painted .node.lock { font-size:9px; } .lvlmap.painted .node .st { font-size:8px; padding:1px 3px; top:82%; } .lvlmap.painted .node .av { height:210%; } /* Trittsteine liegen dicht: kleinere Knoten */
.maplock { position:absolute; inset:0; z-index:8; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center; font-weight:800; font-size:13px; padding:16px; background:rgba(10,12,20,.55); text-shadow:0 2px 6px #000; } .maplock img { width:54px; }
.lvlmap.locked img.bg { filter:grayscale(.7) brightness(.55); }
/* Level-Blatt (needbox wie #lvlOverlay) */
.goalrow { width:100%; display:flex; flex-wrap:wrap; justify-content:center; gap:6px; }
.goalrow span { display:inline-flex; align-items:center; gap:4px; background:rgba(15,19,32,.6); border-radius:10px; padding:5px 9px; font-size:12.5px; font-weight:800; } .goalrow span img { height:22px; }
.stars3 { font-size:26px; letter-spacing:2px; color:#ffd23f; } .stars3 i { font-style:normal; color:rgba(255,255,255,.18); }
/* Kiste im Ergebnis */
#over .boxbtn { width:min(100%,340px); margin-top:0; }
/* ---------- Spiel ---------- */
#hud .pill { display:inline-flex; align-items:center; gap:4px; }
#hud .hearts { color:#ff6b6b; letter-spacing:1px; } #hud .hearts i { font-style:normal; color:rgba(255,255,255,.25); }
#hTime.warn { color:var(--bad); }
#mini { position:fixed; top:calc(var(--sat) + 44px); right:calc(var(--sar) + 12px); width:64px; height:82px; border-radius:10px; background:rgba(15,19,32,.5); z-index:5; pointer-events:none; }
#pauseBtn { font-family:inherit; }
#kick.down, .abtn:active { transform:translateY(2px) scale(.96); border-color:#fff; }
#ctrls .abtn#kick { width:84px; height:84px; } #ctrls .abtn#kick img { width:44px; height:44px; }
#msg.show { animation:msgshow 1.4s ease-out; } @keyframes msgshow { 0%{opacity:0;transform:scale(.8)} 15%{opacity:1;transform:scale(1.08)} 30%{transform:scale(1)} 80%{opacity:1} 100%{opacity:0} }
#count .lvl { display:block; font-size:22px; color:#fff; text-shadow:0 2px 6px #000; margin-bottom:4px; text-align:center; animation:none; }
#count { flex-direction:column; }
#pause, #over { z-index:20; }
#stageOverlay { position:fixed; inset:0; z-index:22; background:rgba(10,12,20,.8); display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
#stageOverlay .needbox { max-height:calc(100% - var(--sat) - var(--sab)); overflow-y:auto; } #stageOverlay .ul span { flex:1; } #stageOverlay .unlocks h4 { margin-top:8px; }
.bump { animation:bump .35s ease-out; } @keyframes bump { 0% { transform:scale(1.35); } 100% { transform:scale(1); } }
#over { justify-content:flex-start; } #over > :first-child { margin-top:auto; } #over > :last-child { margin-bottom:auto; } /* hohe Ergebnisse bleiben oben scrollbar */
#stageOverlay .ul img.ic { width:auto; height:1.15em; background:none; border-radius:0; vertical-align:-0.22em; }
/* Gutschein in den Einstellungen (Feld wie Lochfresser, hier als Zeile der Einstellungsbox) */
.toggle.voucher { cursor:default; flex-wrap:nowrap; } .toggle.voucher img.si { margin-right:0; }
.toggle.voucher .inp { flex:1; width:auto; min-width:0; margin-left:auto; font-size:14px; letter-spacing:2px; padding:8px; }
.toggle.voucher .boxbtn { width:auto; margin:0; padding:9px 12px; white-space:nowrap; }
#codeMsg { min-height:0; text-align:center; font-weight:800; margin:-6px 0 8px; } #codeMsg:empty { display:none; }
.skins button .tag2 img.ic { height:1em; width:auto; aspect-ratio:auto; display:inline; margin:0; border-radius:0; background:none; vertical-align:-0.12em; }

/* ---------- M3: Item-Knopf (Lochfresser-Aktionsknopf), Wirk-Chips, Kill-Leiste, Endspurt ---------- */
#ctrls { align-items:flex-end; }
#ctrls .abtn#use { width:72px; height:72px; margin-bottom:34px; border-color:#ff5fae; transition:border-color .2s, opacity .2s, filter .2s; }
#ctrls .abtn#use img { width:40px; height:40px; margin-bottom:0; }
#ctrls .abtn#use em { font-style:normal; font-size:10px; line-height:1.1; max-width:60px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#ctrls .abtn#use.empty { border-color:rgba(255,255,255,.28); border-style:dashed; opacity:.55; filter:grayscale(1); }
#ctrls .abtn#use.empty img { visibility:hidden; height:18px; } #ctrls .abtn#use.empty em { font-size:11px; color:var(--muted); }
#ctrls .abtn#use.heroi { border-color:#ffc83d; box-shadow:0 0 14px rgba(255,200,61,.65), 0 4px 12px rgba(0,0,0,.5); }
#ctrls .abtn#use.k-spring { border-color:#4dffa0; } #ctrls .abtn#use.k-clock { border-color:#5ab8ff; }
#ctrls .abtn#use.got { animation:usegot .45s ease-out; } @keyframes usegot { 0%{transform:scale(.7)} 55%{transform:scale(1.18)} 100%{transform:scale(1)} }
#ctrls .abtn#use.down { transform:translateY(2px) scale(.94); border-color:#fff; }
#useAmmo { top:5px; gap:2px; } #useAmmo i { width:6px; height:5px; } #useAmmo i.on { background:#ff7cc4; box-shadow:0 0 4px #ff5fae; }
body.lefty #ctrls .abtn#use { margin-bottom:34px; }
#chips { position:fixed; right:calc(var(--sar) + 14px); bottom:calc(var(--sab) + 146px); display:flex; flex-direction:column; align-items:flex-end; gap:6px; z-index:5; pointer-events:none; }
body.lefty #chips { right:auto; left:calc(var(--sal) + 14px); align-items:flex-start; }
.chip { --k:1; --c:#4dffa0; position:relative; display:flex; align-items:center; gap:5px; background:rgba(15,19,32,.62); border-radius:18px; padding:3px 10px 3px 3px; font-weight:900; font-size:14px; color:#fff; text-shadow:0 1px 2px #000; backdrop-filter:blur(6px); animation:chipin .3s ease-out; }
.chip .rg { width:30px; height:30px; border-radius:50%; background:conic-gradient(var(--c) calc(var(--k) * 360deg), rgba(255,255,255,.14) 0); display:flex; align-items:center; justify-content:center; }
.chip .rg img { width:24px; height:24px; border-radius:50%; background:#1b2030; padding:1px; object-fit:contain; }
.chip.low { animation:chiplow .5s ease-in-out infinite alternate; } .chip.bad { color:#9fd8ff; }
@keyframes chipin { from{opacity:0;transform:translateX(12px)} to{opacity:1;transform:none} } @keyframes chiplow { to{opacity:.55} }
#killBar { position:fixed; top:calc(var(--sat) + 72px); left:calc(var(--sal) + 10px); display:flex; flex-direction:column; gap:4px; z-index:5; pointer-events:none; }
.kp { --c:#4fb3ff; display:flex; align-items:center; gap:5px; background:rgba(15,19,32,.6); border:2px solid var(--c); border-radius:14px; padding:1px 8px 1px 1px; font-weight:900; font-size:13px; color:#fff; text-shadow:0 1px 2px #000; backdrop-filter:blur(6px); transition:opacity .3s; }
.kp img { width:24px; height:24px; border-radius:50%; background:#1b2030; object-fit:cover; } .kp small { font-size:9px; color:#ff6b6b; letter-spacing:-1px; } .kp small i { font-style:normal; color:rgba(255,255,255,.25); }
.kp.me { box-shadow:0 0 8px rgba(79,179,255,.5); } .kp.out { opacity:.4; filter:grayscale(1); } .kp.bump { animation:kpbump .4s ease-out; } @keyframes kpbump { 0%{transform:scale(1.25)} 100%{transform:scale(1)} }
.tag i.dot { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:3px; vertical-align:0; background:var(--c,#ff4a4a); box-shadow:0 0 4px var(--c,#ff4a4a); }
#hudR.rush { color:var(--bad); animation:rushpulse .55s ease-in-out infinite alternate; border:1px solid rgba(255,107,107,.7); } @keyframes rushpulse { from{transform:scale(1);background:rgba(15,19,32,.5)} to{transform:scale(1.1);background:rgba(160,20,30,.6)} }
#msg.big { font-size:30px; color:#ff5a5f; letter-spacing:1px; text-shadow:0 3px 0 #5a0e10, 0 6px 16px rgba(0,0,0,.6); } #msg.pink { font-size:24px; color:#ff7cc4; text-shadow:0 2px 0 #7a1446, 0 4px 10px rgba(0,0,0,.6); }
#msg.item { font-size:20px; color:#fff; text-shadow:0 2px 0 #6a3a00, 0 4px 10px rgba(0,0,0,.6); }
.arrow.riv i { border-bottom-color:var(--c,#ff4a4a); }
/* Tages-Leben: Herz mit Zahl in der Top-Leiste (Countdown darunter/daneben), Level-Blatt, Blatt „Keine Leben mehr“, Testvideo */
.tpill.lives { gap:4px; padding:3px 9px 3px 3px; color:#ff8f8f; cursor:pointer; }
.tpill.lives .hrt { position:relative; width:28px; height:26px; display:inline-flex; align-items:center; justify-content:center; }
.tpill.lives .hrt img { position:absolute; inset:0; width:28px; height:26px; object-fit:contain; filter:drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
.tpill.lives .hrt b { position:relative; color:#fff; font-size:13px; font-weight:900; text-shadow:0 1px 2px #7a0d12, 0 0 3px #7a0d12; margin-top:-2px; }
.tpill.lives small { font-size:11px; font-weight:900; color:#ffd0d0; white-space:nowrap; font-variant-numeric:tabular-nums; }
.tpill.lives.full small { color:#8ef0a8; }
.tpill.lives.empty .hrt img { filter:grayscale(1) brightness(.6); } .tpill.lives.empty { animation:lvpulse 1.4s ease-in-out infinite; }
@keyframes lvpulse { 50% { box-shadow:0 0 0 3px rgba(255,107,107,.45); } }
@media (max-width:400px) { .topbar { gap:4px; padding-left:8px; padding-right:8px; } .tpill { padding-right:8px; font-size:13px; } }
.stlives { display:flex; align-items:center; gap:8px; width:100%; background:rgba(255,107,107,.1); border:1px solid rgba(255,107,107,.25); border-radius:12px; padding:6px 10px; font-size:12.5px; font-weight:700; text-align:left; }
.stlives .hr { display:inline-flex; gap:2px; } .stlives .hr img, .lvhearts img { width:20px; height:19px; object-fit:contain; } .stlives b { color:#ffd0d0; font-variant-numeric:tabular-nums; }
.stlives .hr img.off, .lvhearts img.off { filter:grayscale(1) brightness(.45); opacity:.8; } .stlives.empty { background:rgba(255,107,107,.2); }
#livesOverlay { position:fixed; inset:0; z-index:23; background:rgba(10,12,20,.8); display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.lvhearts { display:flex; flex-wrap:wrap; gap:4px; justify-content:center; max-width:224px; margin:0 auto; } .lvhearts img { width:min(40px, calc((100% - 16px) / 5)); height:auto; aspect-ratio:46/43; min-width:0; filter:drop-shadow(0 4px 8px rgba(255,80,80,.4)); } /* 10 Herzen: zwei Reihen à 5 */
.lvhearts img.off { filter:grayscale(1) brightness(.45); }
.lvtimer { font-size:30px; font-weight:900; color:#ffd0d0; font-variant-numeric:tabular-nums; line-height:1.1; } .lvtimer small { display:block; font-size:12px; color:var(--muted); font-weight:800; }
.lvtimer:empty { display:none; }
#newsOverlay { position:fixed; inset:0; z-index:24; background:rgba(10,12,20,.8); display:flex; align-items:center; justify-content:center; padding:calc(var(--sat) + 16px) 20px calc(var(--sab) + 16px); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); overflow-y:auto; }
.newsbox { width:min(100%,380px); margin:auto; gap:10px; } .newsbox > #nwImg { width:100%; height:auto; max-height:52vh; object-fit:contain; border-radius:14px; filter:none; } .newsbox b { font-size:19px; } #nwStage { position:relative; width:100%; height:min(34vh,230px); border-radius:14px; overflow:hidden; background:radial-gradient(120% 90% at 50% 20%, #5b47c9 0%, #2a2466 55%, #151433 100%); flex:none; } #nwStage .stcv { position:absolute; inset:0; width:100% !important; height:100% !important; display:block; } .newsbox #nwText { white-space:pre-line; font-size:15px; line-height:1.4; }
.newsbox #nwPoll { width:100%; display:flex; flex-direction:column; gap:7px; } .newsbox .nwq { font-size:16px; margin-top:2px; } .newsbox .nwhint { font-size:12px; color:var(--muted); margin-top:-4px; }
.nwopt { display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:rgba(255,255,255,.06); border:2px solid rgba(255,255,255,.1); border-radius:13px; padding:10px 12px; color:var(--text); font:inherit; font-size:15px; font-weight:700; cursor:pointer; }
.nwopt .tick { width:22px; height:22px; flex:none; border-radius:7px; border:2px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; }
.nwopt.on { border-color:var(--accent); background:rgba(255,179,71,.14); } .nwopt.on .tick { background:var(--accent); border-color:var(--accent); } .nwopt.on .tick::after { content:''; width:6px; height:11px; border:solid #2b1600; border-width:0 3px 3px 0; transform:translate(0,-1px) rotate(45deg); }
.newsbox #nwOk { width:100%; padding:13px; font-size:18px; } .newsbox #nwHide { width:100%; padding:10px; font-size:14px; }
#livesOverlay .adbtn:disabled { filter:grayscale(.6); opacity:.6; }
#adOverlay { position:fixed; inset:0; z-index:40; background:#000; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; font-weight:800; font-size:18px; }
#adOverlay #adCount { font-size:40px; color:var(--accent); font-variant-numeric:tabular-nums; } #adOverlay small { color:var(--muted); font-size:12px; font-weight:600; }
#pauseNote { margin-top:10px; }

/* Tastatur-Hinweise über TRITT/ITEM nur mit Maus/Trackpad (Browser am Computer), nie am Handy; als eigene Schilder in #ctrls, weil .abtn rund abschneidet */
#ctrls .kb { display:none; }
@media (hover:hover) and (pointer:fine) {
  #ctrls .kb { display:block; position:absolute; white-space:nowrap; font:800 11px/1 -apple-system,system-ui,sans-serif; color:#fff; background:rgba(15,19,32,.85);
    border:1px solid rgba(255,255,255,.4); border-bottom-width:3px; border-radius:6px; padding:3px 6px 2px; pointer-events:none; }
  #ctrls .kbKick { right:42px; transform:translateX(50%); top:-4px; } #ctrls .kbUse { right:132px; transform:translateX(50%); top:-24px; }
  body.lefty #ctrls .kbKick { right:auto; left:42px; transform:translateX(-50%); } body.lefty #ctrls .kbUse { right:auto; left:132px; transform:translateX(-50%); }
}

/* ===== Querformat am Handy (niedrige Höhe): zweispaltiges Menü, flachere Leisten, Notch-Ränder links/rechts ===== */
@media (orientation:landscape) and (max-height:560px) {
  .topbar { padding:calc(var(--sat) + 4px) calc(var(--sar) + 12px) 4px calc(var(--sal) + 12px); }
  .tabbar { padding:3px calc(var(--sar) + 8px) calc(var(--sab) + 3px) calc(var(--sal) + 8px); }
  .tabbar button { flex-direction:row; justify-content:center; gap:8px; font-size:13px; padding:4px 0; }
  .tabbar button img { width:26px; height:26px; } .tabbar button.on img { transform:scale(1.08); }
  .panes { width:min(100%, 900px); padding-left:calc(var(--sal) + 16px); padding-right:calc(var(--sar) + 16px); }
  /* Start und Shop: Karten fließen in zwei Spalten */
  #paneStart.on, #paneShop.on { display:block; column-count:2; column-gap:14px; }
  #paneStart.on > *, #paneShop.on > * { break-inside:avoid; margin-bottom:10px; display:block; }
  #paneStart.on > .herocard { display:flex; } #paneStart.on > .duel { display:flex; } #paneStart.on > .lvlentry { display:flex; }
  #paneShop.on > .shop { display:grid; }
  /* Charaktere: großes Vorschaubild links, Auswahl rechts */
  #paneChars.on { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:10px 14px; align-items:start; }
  #paneChars.on > .preview { grid-column:1; grid-row:1 / span 6; aspect-ratio:auto; height:calc(100vh - 150px); max-height:none; min-height:220px; position:sticky; top:0; }
  #paneChars.on > :not(.preview) { grid-column:2; }
  /* Planeten: Welten-Leiste oben, Karte links, Endlos rechts */
  #panePlaneten.on { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:10px 14px; align-items:start; }
  #panePlaneten.on > .arenas { grid-column:1 / -1; }
  /* Start: Heldenkarte flacher, damit SPIELEN ohne Scrollen in der linken Spalte sichtbar ist */
  #paneStart.on > .herocard { min-height:0; padding:8px 12px; }
  #heroPv { width:92px; height:108px; flex:0 0 92px; } .herocard img#heroImg { height:108px; }
  .heroinfo .hname { font-size:24px; } .heroinfo .hsup { margin-top:5px; }
  #paneStart.on > .big { width:100%; padding:12px; }
  /* Planeten: Karten nicht über beide Spalten, Karte so hoch, dass Info und Start-Knopf fast ganz passen */
  #panePlaneten.on > .card.wide { grid-column:auto; }
  #panePlaneten .lvlmap { width:auto; height:calc(100vh - 190px); min-height:170px; max-width:100%; margin:0 auto; }
  /* Level-Blatt: breiter, links Welt/Titel/Sterne/Ziel, rechts Leben, Regeln und Knöpfe */
  #stageOverlay .needbox.lvlbox2 { width:min(94vw, 700px); display:block; column-count:2; column-gap:22px; padding:14px 18px; }
  #stageOverlay .needbox.lvlbox2 > * { break-inside:avoid; margin:0 auto 8px; } #stageOverlay .needbox.lvlbox2 > img { display:block; width:64px; height:64px; }
  #stageOverlay .needbox.lvlbox2 > b { display:block; } #stageOverlay .needbox.lvlbox2 > button { display:inline-block; width:calc(50% - 5px); vertical-align:top; margin:0; } #stageOverlay #stClose { margin-left:10px !important; }
  #stageOverlay #stLives { break-before:column; }
  /* Blätter und Dialoge: nie höher als der Bildschirm */
  .needbox { max-height:calc(100vh - 24px); overflow-y:auto; }
}

/* Planeten: Modus-Schalter Normal/Hardcore, Diamanten auf der Karte, Hardcore-Startknopf, kleiner grüner Endlos-Knopf */
.modesw { display:flex; gap:6px; background:rgba(15,19,32,.7); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:4px; }
.modesw button { flex:1; border:0; border-radius:10px; padding:9px 6px; font:800 14px -apple-system,system-ui,sans-serif; color:var(--muted); background:transparent; }
.modesw button small { font-size:11px; font-weight:700; opacity:.8; } .modesw button.on { background:linear-gradient(180deg,#ffc76b,#ff9f1c); color:#2b1600; }
.modesw button[data-m="h"].on { background:linear-gradient(180deg,#7fe8ff,#2aa8e0); color:#04233a; }
.lvlmap.hardmode .node .st { color:#6fe0ff; text-shadow:0 0 6px rgba(111,224,255,.7); } .lvlmap.hardmode .node.done { box-shadow:0 0 0 3px rgba(111,224,255,.55), 0 4px 10px rgba(0,0,0,.5); }
#lvlStart.hardbtn { background:linear-gradient(180deg,#7fe8ff,#2aa8e0); color:#04233a; box-shadow:0 6px 0 #0f5f86, 0 12px 24px rgba(0,0,0,.4); }
#stStars.dia { color:#6fe0ff; }
.boxbtn.endl2 { width:100%; margin-top:4px; padding:11px; font-size:15px; background:linear-gradient(180deg,#5ad07a,#2e9e4f); box-shadow:0 4px 0 #17602c; color:#fff; }

/* Shop: Gutschein unten (wie Lochfresser) */
.card.voucher2 { display:flex; gap:8px; align-items:center; } .card.voucher2 .inp { flex:1; width:auto; min-width:0; font-size:16px; letter-spacing:3px; padding:10px; } .card.voucher2 .boxbtn { width:auto; margin:0; padding:10px 14px; white-space:nowrap; }
#paneShop #codeMsg { margin:2px 0 0; }
/* Tanz-Rad (ui/dance.js): Knopf im Spiel oben rechts unter der Karte, Fächer im Bogen */
#danceBtn { position:fixed; top:calc(var(--sat) + 134px); right:calc(var(--sar) + 14px); width:44px; height:44px; border-radius:50%; background:rgba(15,19,32,.55); border:2px solid rgba(255,255,255,.35); font-size:22px; display:flex; align-items:center; justify-content:center; z-index:6; backdrop-filter:blur(6px); padding:0; cursor:pointer; }
#micBtn { position:fixed; top:calc(var(--sat) + 186px); right:calc(var(--sar) + 14px); width:44px; height:44px; border-radius:50%; background:rgba(15,19,32,.55); border:2px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; z-index:6; padding:0; cursor:pointer; }
#micBtn img { width:30px; height:30px; object-fit:contain; } #micBtn.on { background:linear-gradient(180deg,#5ad07a,#2e9e4f); border-color:#fff; } #micBtn.talk { box-shadow:0 0 0 3px #5ad07a, 0 0 14px #5ad07a; }
.tag.talk { box-shadow:0 0 0 2px #5ad07a, 0 0 10px #5ad07a; }
#danceBtn.on, .pvdance.on { background:linear-gradient(180deg,#ff8ad8,#c04fd8); border-color:#fff; }
.dwheel { position:fixed; inset:0; z-index:60; }
.dwi { position:fixed; width:62px; height:62px; margin:-31px 0 0 -31px; border-radius:50%; border:2px solid #fff; background:linear-gradient(180deg,#8f6bff,#5a3fd0); box-shadow:0 4px 0 #2e1f7a, 0 8px 18px rgba(0,0,0,.45); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0; transform:translate(0,0) scale(.3); opacity:0; transition:transform .22s cubic-bezier(.3,1.6,.5,1), opacity .15s; font-family:inherit; cursor:pointer; }
.dwi span { font-size:25px; line-height:1; } .dwi small { font-size:8.5px; font-weight:900; margin-top:2px; white-space:nowrap; text-shadow:0 1px 2px #000; }
.dwheel.in .dwi { transform:translate(var(--dx),var(--dy)) scale(1); opacity:1; }
.dwheel.out .dwi { transform:translate(0,0) scale(.3); opacity:0; transition-delay:0s !important; }
.dwi:active { filter:brightness(1.15); }
/* Tanz-Knopf an der 3D-Vorschau (Online-Lobby, Charaktere) */
.pvdance { position:absolute; right:8px; bottom:8px; width:42px; height:42px; border-radius:50%; background:rgba(15,19,32,.6); border:2px solid rgba(255,255,255,.4); font-size:21px; display:flex; align-items:center; justify-content:center; z-index:3; padding:0; cursor:pointer; }
/* Tänze-Sektion im Charaktere-Tab und 💃-Abzeichen an Helden/Skins, die tanzen können */
.dbadge { position:absolute; top:4px; right:4px; font-size:14px; line-height:1; background:rgba(192,79,216,.85); border-radius:9px; padding:2px 3px; box-shadow:0 1px 3px rgba(0,0,0,.4); }
.dbadge.sm { top:3px; left:3px; right:auto; font-size:11px; padding:1px 2px; }
.shoph .dhint { font-size:10.5px; font-weight:700; color:var(--muted); margin-left:6px; }
.dances { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.dance { background:var(--panel); border:2px solid rgba(255,255,255,.08); border-radius:14px; padding:8px 4px 6px; text-align:center; position:relative; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:2px; }
.dance .di { font-size:28px; line-height:1.1; } .dance b { font-size:11.5px; font-weight:900; }
.dance.locked .di { filter:grayscale(1) brightness(.7); opacity:.7; }
.dance .dprice { font-size:11px; font-weight:900; color:#c4b3ff; display:inline-flex; align-items:center; gap:2px; } .dance .dprice .ic { width:13px; height:13px; }
.dance .dstar { position:absolute; top:2px; right:4px; background:none; border:0; font-size:17px; color:rgba(255,255,255,.4); padding:2px; cursor:pointer; } .dance .dstar.on { color:#ffd23f; text-shadow:0 0 6px rgba(255,210,63,.6); }
.dnote { grid-column:1/-1; text-align:center; margin-top:2px; }
/* Bühne im Charaktere-Tab (generierter Hintergrund img/stage.webp) und Umschalter Skins | Tänze wie im Mockup art/mockups/tanz_mockup1.png */
.preview { background:#0c1024 url(../img/stage.webp) center 78% / cover no-repeat; }
.seg { display:flex; gap:4px; background:rgba(15,19,32,.7); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:4px; }
.seg button { flex:1; border:0; border-radius:10px; padding:9px 6px; font:inherit; font-weight:900; font-size:15px; color:#c9c2ea; background:none; display:flex; align-items:center; justify-content:center; gap:6px; cursor:pointer; }
.seg button img { width:22px; height:22px; object-fit:contain; }
.seg button.on { color:#fff; background:linear-gradient(180deg,#8f6bff,#5a3fd0); box-shadow:0 3px 0 #2e1f7a, 0 0 14px rgba(143,107,255,.45); }
.gembtn.go { background:linear-gradient(180deg,#5ad07a,#2e9e4f); box-shadow:0 4px 0 #17602c; color:#fff; }
/* Tanz-Karten: Schleife aus 30 Bildern nebeneinander (Sprite), per steps() abgespielt */
.dance { padding:6px 6px 8px; background:radial-gradient(circle at 50% 38%, hsla(var(--h),85%,62%,.55), hsla(var(--h),70%,24%,.9) 72%); border-color:hsla(var(--h),80%,70%,.25); }
.dance.sel { border-color:#b79cff; box-shadow:0 0 0 2px rgba(183,156,255,.55), 0 0 18px rgba(143,107,255,.5); }
.dspr { width:100%; aspect-ratio:1; overflow:hidden; position:relative; border-radius:10px; }
.dspr i { position:absolute; left:0; top:0; height:100%; width:3000%; background-size:100% 100%; background-repeat:no-repeat; animation:dspr 3s steps(30) infinite; }
.dspr.pt img { width:100%; height:100%; object-fit:cover; }
@keyframes dspr { to { transform:translateX(-100%); } }
.dance.locked .dspr { filter:saturate(.85) brightness(.88); } .dance.locked .dspr i { animation-play-state:paused; }
.dance .dstar { position:absolute; top:5px; right:5px; width:24px; height:24px; object-fit:contain; filter:drop-shadow(0 2px 3px rgba(0,0,0,.5)); }
.dance .dlock { position:absolute; top:6px; right:6px; width:20px; height:20px; object-fit:contain; filter:drop-shadow(0 2px 3px rgba(0,0,0,.6)); }
.dance b { margin-top:4px; }
img.dbadge { width:24px; height:24px; object-fit:contain; background:none; padding:0; box-shadow:none; filter:drop-shadow(0 2px 3px rgba(0,0,0,.5)); }
img.dbadge.sm { width:18px; height:18px; top:3px; left:3px; }
#danceBtn img, .pvdance img { width:30px; height:30px; object-fit:contain; }
.dwi .dspr { width:44px; height:44px; border-radius:50%; } .dwi .dspr img { width:100%; height:100%; object-fit:cover; }
.dwi small { margin-top:0; }
.dwi { width:70px; height:70px; margin:-35px 0 0 -35px; }
/* Bezahl-Helden (ROSTER premium): farbig statt ausgegraut, Preisschild */
.char.premium.locked { filter:none; opacity:1; border-color:rgba(255,200,61,.65); box-shadow:inset 0 0 0 1px rgba(255,200,61,.35), 0 0 14px rgba(255,200,61,.18); }
.char.premium.locked .pt { filter:none; }
.char.premium .lock { background:linear-gradient(180deg,#ffd65a,#f0a020); color:#3a2300; font-weight:900; }
/* Beliebtestes Paket hervorheben */
.shop button.hot { border-color:rgba(255,200,61,.8) !important; box-shadow:0 0 0 2px rgba(255,200,61,.3), 0 0 14px rgba(255,200,61,.25); position:relative; }
.shop button.hot::before { content:'Beliebt'; position:absolute; top:-8px; left:50%; transform:translateX(-50%); background:linear-gradient(180deg,#ffd65a,#f0a020); color:#3a2300; font-size:10px; font-weight:900; padding:1px 7px; border-radius:8px; white-space:nowrap; }
/* Leiste (Name + Kaufen/Ausrüsten) und Hinweis-Schild liegen über dem 3D-Canvas – der wird beim Wechsel der Vorschau-Plätze ans Ende gehängt
   und verdeckte sonst den Knopf (Antippen löste nur den Spin der Figur aus) */
.pvbar, .pvlock, .pvdance { z-index:3; }
.preview .pvcv, .pvhost .pvcv { z-index:1; }
