/* Politur 11/2026: Zugruf, Dimmung, Ansagen, Kraft-Phasen, Kraftkarten, Ulti-Show, Tempo-Regler.
   Team-Farben: A kühles Silberblau, B warme Glut. Rift Crawl überschreibt die Farben in seiner eigenen Kopie. */
:root { --pl-a:#9fd8ff; --pl-a-deep:#2b6fd6; --pl-b:#ffb36b; --pl-b-deep:#d4482a; --pl-gold:#ffe3a0; } /* Team-Farben dieser Ausgabe */
.politur-layer { position:absolute; inset:0; pointer-events:none; z-index:45; overflow:hidden; }

/* Wartende Bahn dimmen, aktive Bahn bleibt hell. */
.pl-shade { position:absolute; left:0; right:0; opacity:0; transition:opacity .45s ease;
  background:linear-gradient(180deg,#02080d00 0%,#02080d4d 28%,#02080d59 60%,#02080d33 85%,#02080d00 100%); }
.politur-layer[data-turn='A'] .pl-shade[data-lane='B'],
.politur-layer[data-turn='B'] .pl-shade[data-lane='A'] { opacity:1; }

/* Ansage-Warteschlange: eine große Zeile über der Bahn des Teams. */
.pl-callout { position:absolute; left:50%; top:42%; display:flex; align-items:center; gap:calc(16px * var(--display-unit,1));
  translate:-50% -50%; padding:calc(10px * var(--display-unit,1)) calc(30px * var(--display-unit,1)); border-radius:999px;
  background:linear-gradient(90deg,#08141cd9,#0d2230f2 50%,#08141cd9); border:2px solid #ffffff33; box-shadow:0 10px 40px #000a, 0 0 0 1px #0006;
  opacity:0; scale:.7; white-space:nowrap; }
.pl-callout img { width:calc(64px * var(--display-unit,1)); height:calc(64px * var(--display-unit,1)); object-fit:contain; filter:drop-shadow(0 3px 8px #000a); }
.pl-callout img[hidden] { display:none; }
.pl-callout strong { display:block; font:700 calc(46px * var(--display-unit,1))/1 Georgia,'Times New Roman',serif; letter-spacing:.04em; color:#fff; text-shadow:0 3px 14px #000c; }
.pl-callout small { display:block; margin-top:4px; font:600 calc(19px * var(--display-unit,1))/1.1 system-ui,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#e9e2cf; }
.pl-callout small[hidden] { display:none; }
.pl-callout[data-team='A'] { border-color:color-mix(in srgb,var(--pl-a) 70%,transparent); box-shadow:0 10px 40px #000a,0 0 34px color-mix(in srgb,var(--pl-a-deep) 55%,transparent); }
.pl-callout[data-team='B'] { border-color:color-mix(in srgb,var(--pl-b) 70%,transparent); box-shadow:0 10px 40px #000a,0 0 34px color-mix(in srgb,var(--pl-b-deep) 55%,transparent); }
.pl-callout[data-team='A'] strong { color:#e6f5ff; }
.pl-callout[data-team='B'] strong { color:#fff0df; }
.pl-callout[data-kind='bonus'] strong { color:var(--pl-gold); }
.pl-callout[data-kind='timeout'] strong { color:#dfe7ec; }
.pl-callout[data-kind='block'] strong, .pl-callout[data-kind='ulti'] strong { color:var(--pl-gold); }
/* Einblenden der Ansagen per Web Animations (js/politur.js), ohne erzwungenes Layout. */

/* Kraft-Leinwand (js/kraft-rift.js): gezeichnete Aktivierungen auf der Szenenuhr. */
.pl-kraft { position:absolute; inset:0; width:100%; height:100%; }
.pl-kraft[hidden] { display:none; }

/* Kamerastoß: per Web Animations auf Landschaft, Bahnen und Figuren (js/politur.js). Text und Tasten bewegen sich nie. */

/* Ulti: Tempolinien entlang der Bahn. */
.pl-speed { position:absolute; left:0; right:0; opacity:0;
  background:repeating-linear-gradient(180deg,transparent 0 18px,#ffffff2e 18px 20px,transparent 20px 41px,#ffe3a033 41px 43px);
  mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent); }
.pl-speed[data-on='true'] { animation:pl-speed 2.6s linear both; }
@keyframes pl-speed { 0% { opacity:0; background-position:0 0; } 10% { opacity:1; } 85% { opacity:1; } 100% { opacity:0; } }

/* Ulti-Vorspann: helles Band quer über die Szene, Wappen, großer Titel. */
.pl-ulti { position:absolute; inset:0; display:grid; place-items:center; }
.pl-ulti[hidden] { display:none; }
.pl-ulti::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%,#fffbe8cc,#fff2c000 60%); opacity:0; }
.pl-ulti[data-play='true']::before { animation:pl-flash 1.5s ease-out both; }
.pl-ulti-band { position:relative; width:100%; display:flex; align-items:center; justify-content:center; gap:calc(28px * var(--display-unit,1));
  padding:calc(18px * var(--display-unit,1)) 0; background:linear-gradient(90deg,transparent,var(--band,#2b6fd6ee) 18%,var(--band,#2b6fd6ee) 82%,transparent);
  box-shadow:0 0 60px var(--band,#2b6fd6); opacity:0; }
.pl-ulti[data-team='B'] .pl-ulti-band { --band:color-mix(in srgb,var(--pl-b-deep) 93%,transparent); }
.pl-ulti[data-team='A'] .pl-ulti-band { --band:color-mix(in srgb,var(--pl-a-deep) 93%,transparent); }
.pl-ulti img { width:calc(120px * var(--display-unit,1)); height:calc(120px * var(--display-unit,1)); object-fit:contain; filter:drop-shadow(0 0 18px #fff9); }
.pl-ulti strong { display:block; font:700 calc(78px * var(--display-unit,1))/1 Georgia,'Times New Roman',serif; letter-spacing:.06em; color:#fff; text-shadow:0 0 22px #fff8,0 4px 16px #0008; }
.pl-ulti small { display:block; font:700 calc(20px * var(--display-unit,1))/1.2 system-ui,sans-serif; letter-spacing:.18em; color:#fff6dc; }
.pl-ulti[data-play='true'] .pl-ulti-band { animation:pl-band 1.5s cubic-bezier(.2,.8,.2,1) both; }
@keyframes pl-flash { 0% { opacity:0; } 10% { opacity:1; } 100% { opacity:0; } }
@keyframes pl-band { 0% { opacity:0; translate:-30% 0; scale:1 .4; } 16% { opacity:1; translate:0 0; scale:1 1; } 80% { opacity:1; translate:0 0; } 100% { opacity:0; translate:18% 0; } }

/* Große Kraftkarten am Team, das gerade wählen darf. */
.pl-card-name { position:absolute; left:50%; top:calc(100% + 3px); translate:-50% 0; width:calc(100% + 8px); white-space:normal; text-align:center;
  font:700 9.5px/1.05 system-ui,sans-serif; letter-spacing:.03em; text-transform:uppercase; color:#f3ead2; opacity:0; pointer-events:none; text-shadow:0 1px 4px #000; }
.team[data-phase='POWER'] .power-panel { transform:translateY(calc(-30px * var(--display-unit,1))) scale(1.7); transform-origin:50% 100%; z-index:50; transition:transform .22s cubic-bezier(.2,.9,.3,1.2);
  box-shadow:0 0 0 2px #ffe3a066,0 0 46px #ffe3a055,0 16px 40px #000c; padding-bottom:26px; }
.team[data-phase='POWER'] .pl-card-name { opacity:1; }
.team .power-panel { transition:transform .18s ease; }
/* In der Kartenansicht: Countdown-Ring bleibt, der Hinweis pulsiert nur als Leuchten (kein Umriss, keine Vergrößerung). */
.team[data-phase='POWER'] .power-panel[data-nudge='true'] .power-buttons button:not(:disabled) { outline:none; animation:pl-card-glow .7s ease-in-out infinite alternate; }
@keyframes pl-card-glow { from { box-shadow:inset 0 1px 0 #ffffff55,0 0 10px #ffe3a055,0 6px 14px #0009; } to { box-shadow:inset 0 1px 0 #ffffff55,0 0 26px #ffe3a0cc,0 6px 14px #0009; } }
/* Kraftkarten: im Kraftfenster werden die Knöpfe zu Karten mit Rahmen, Kosten-Kristall und Namen.
   Gemalte Symbole (Codex) kommen als --card-art; bis dahin bleibt das Strichsymbol. */
.team[data-phase='POWER'] .power-buttons button { border-radius:10px; border:1.5px solid #ffe3a099; overflow:visible;
  background:linear-gradient(180deg,#22394a,#0e1c26) padding-box; box-shadow:inset 0 1px 0 #ffffff33,0 6px 14px #0009; }
.team[data-phase='POWER'] .power-buttons button:not(:disabled) { border-color:#ffe3a0; box-shadow:inset 0 1px 0 #ffffff55,0 0 16px #ffe3a066,0 6px 14px #0009; }
.team[data-phase='POWER'] .power-buttons button:disabled { filter:grayscale(.6); }
.power-buttons button[data-art] { background-image:var(--card-art),linear-gradient(180deg,#22394a,#0e1c26) !important; background-size:74% auto,cover !important; background-position:50% 44%,center !important; background-repeat:no-repeat !important; }
.power-buttons button[data-art] > svg { visibility:hidden !important; }
.team[data-phase='POWER'] .power-buttons .power-cost { background:radial-gradient(circle at 35% 30%,#fff6d8,#e6b54a 60%,#8a5a12); color:#1b1206; border-radius:6px 2px 6px 2px; padding:0 3px; font-weight:800; }


/* Tempo-Regler im Hauptmenü. */
.pl-tempo { display:grid; gap:6px; justify-items:start; margin-top:4px; }
.pl-tempo-label { font:600 12px/1 system-ui,sans-serif; letter-spacing:.14em; text-transform:uppercase; color:#cdbd92; }
.pl-tempo-choices { display:inline-flex; gap:4px; padding:4px; border-radius:999px; background:#0b1a22; border:1px solid #ffffff22; }
.pl-tempo-choices button { min-height:40px; padding:6px 16px; border-radius:999px; border:0; background:transparent; color:#dfe6e6; font:600 15px/1.1 system-ui,sans-serif; cursor:pointer; display:grid; gap:2px; text-align:center; }
.pl-tempo-choices button small { font:500 11.5px/1 system-ui,sans-serif; color:#9fb2b6; }
.pl-tempo-choices button[aria-pressed='true'] { background:#e6c77c; color:#1d1608; }
.pl-tempo-choices button[aria-pressed='true'] small { color:#3b2e10; }
.pl-tempo-choices button:focus-visible { outline:3px solid #ffe3a0; outline-offset:2px; }

/* Ruhige Bewegung: keine Stöße, keine Streifen, Ansagen nur einblenden. */
#gameScene[data-motion='reduced'] :is(.pl-speed,.pl-kraft) { display:none; }

/* Welten-Rotation: Brücken der neuen Welten kommen vorab eingefärbt (js/worlds.js, bruecken/). Kein Live-Filter: kostet in 4K beim Plattenbruch zu viel. */

/* Ergebnis: Siegesgrund und Zeitleiste der Führung. */
.pl-result { display:grid; gap:8px; justify-items:center; margin:10px auto 4px; max-width:620px; }
.pl-result[hidden] { display:none; }
.pl-reason { margin:0; font:600 clamp(17px,1.5vw,24px)/1.35 Georgia,'Times New Roman',serif; color:#f4ead2; text-align:center; text-wrap:balance; }
.pl-timeline { display:grid; gap:4px; justify-items:center; width:100%; }
.pl-timeline svg { width:min(100%,520px); height:auto; overflow:visible; }
.pl-tl-mid { stroke:#ffffff40; stroke-width:1; stroke-dasharray:4 5; }
.pl-tl-a { fill:color-mix(in srgb,var(--pl-a-deep) 40%,transparent); }
.pl-tl-b { fill:color-mix(in srgb,var(--pl-b-deep) 40%,transparent); }
.pl-tl-line { fill:none; stroke:#f4ead2; stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round; }
.pl-tl-label-a, .pl-tl-label-b { font:700 12px system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.pl-tl-label-a { fill:var(--pl-a); } .pl-tl-label-b { fill:var(--pl-b); }
.pl-tl-caption { font:600 12px/1 system-ui,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#cdbd92; }

/* Titelkarte je Welt: gemaltes Schild (Codex) hinter dem Weltnamen. */
.chapter-arrival[data-band]:not([data-band='']) { width:clamp(380px,30vw,600px); max-width:none; aspect-ratio:4 / 1; display:grid; place-items:center;
  background-position:center; background-size:100% 100%; background-repeat:no-repeat; filter:drop-shadow(0 8px 18px #000a); }
.chapter-arrival[data-band]:not([data-band='']) > strong { margin:0; font-size:clamp(22px,1.9vw,36px); }

/* Ulti-Vorspann: der Held springt ins Band (Codex-Porträt oder vorhandenes Heldenbild). */
.pl-ulti-hero { width:auto !important; height:calc(250px * var(--display-unit,1)) !important; margin:calc(-70px * var(--display-unit,1)) 0; object-fit:contain; filter:drop-shadow(0 10px 24px #0009) !important; }
.pl-ulti-hero[hidden] { display:none; }
.pl-ulti[data-play='true'] .pl-ulti-hero { animation:pl-hero-in 1.5s cubic-bezier(.2,.9,.25,1.15) both; }
@keyframes pl-hero-in { 0% { opacity:0; translate:-120px 30px; scale:.85; } 18% { opacity:1; translate:0 0; scale:1.04; } 30% { scale:1; } 82% { opacity:1; } 100% { opacity:0; translate:40px 0; } }

/* Keep energy mit gemaltem Symbol (Codex). */
.keep-energy::before { content:''; display:inline-block; width:1.5em; height:1.5em; margin-right:.35em; vertical-align:-.4em; background:url("../media/kraefte-v1/power-keep.webp") center / contain no-repeat; }
