:root{--red:#e8392b;--paper:#efe8dc;--ink:#121413;--panel:#151816e6;--line:#ffffff26;font-family:Inter,Arial,sans-serif;color:var(--paper);background:var(--ink)}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
body.playing canvas{cursor:crosshair}
canvas{position:fixed;inset:0;width:100vw;height:100dvh;display:block;touch-action:none;outline:0}
button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#222724;color:var(--paper);padding:11px 16px;border-radius:6px;font-weight:700}
@media (hover:hover){button:hover{background:#2f3531}}
button:focus-visible{outline:3px solid #f9c47a;outline-offset:2px}
[hidden]{display:none!important}
.brand{font-family:'Barlow Condensed',Impact,sans-serif;font-size:28px;font-weight:800;letter-spacing:-.4px;line-height:1}
.brand span{color:var(--red)}
.brand small{display:block;font:700 9px Inter,sans-serif;letter-spacing:3px;margin-top:4px;color:#bdb5a8}
.brand.big{font-size:56px}
.label{font-size:10px;letter-spacing:3px;color:#b9b0a2;font-weight:700;margin:18px 0 8px}

/* Ladebildschirm */
#preloader{position:fixed;inset:0;z-index:50;background:var(--ink);display:grid;place-items:center;transition:opacity .45s}
#preloader.done{opacity:0;pointer-events:none}
.pre{width:min(460px,86vw)}
.preRow{display:flex;justify-content:space-between;align-items:flex-end;margin:46px 0 12px;color:#bdb5a8;font-size:12px;gap:12px}
#prePct{font-family:'Barlow Condensed',Impact,sans-serif;font-size:44px;color:var(--paper);font-variant-numeric:tabular-nums;line-height:.9}
.preBar{height:12px;border:1px solid var(--line);background:#ffffff10;border-radius:3px;overflow:hidden}
#preFill{height:100%;width:0;background:var(--red);transition:width .15s linear}
#preRetry{margin-top:22px}

/* Menü */
#menu{position:fixed;inset:0;z-index:20;display:flex;align-items:center;padding:4vh 6vw;background:linear-gradient(90deg,#0f1110f2 0%,#0f1110cc 38%,#0f111000 75%);overflow-y:auto}
.panel{width:min(440px,100%)}
h1{font-family:'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;font-size:clamp(54px,7vw,96px);line-height:.86;margin:22px 0 10px;letter-spacing:-1.5px}
h1 em{font-style:normal;color:var(--red)}
.intro{font-size:13px;color:#cfc6b9;margin:0 0 4px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.row.three{grid-template-columns:1fr 1fr 1fr}
.row.four{grid-template-columns:repeat(4,1fr)}
.card.wide{width:min(620px,94vw)}
.keys td:first-child{font-weight:700;white-space:nowrap}
#pauseKeys{text-align:left;font-size:11px;color:#cfc6b9;margin-bottom:12px}
#pauseKeys table{width:100%;border-collapse:collapse}#pauseKeys td,#pauseKeys th{padding:4px 6px;border-bottom:1px solid #ffffff14;text-align:left}
.team{text-align:left;padding:12px 13px;background:#1a1e1bcc}
.team span{display:block;font-size:9px;letter-spacing:1.5px;color:#a8a194;margin-bottom:5px}
.team b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px}
.lvl{background:#1a1e1bcc}
.selected{border-color:var(--red);box-shadow:inset 0 -3px var(--red)}
.primary{display:block;width:100%;margin-top:18px;background:var(--red);border:0;color:#fff;padding:15px;text-transform:uppercase;letter-spacing:1.5px;font-size:15px}
.primary:hover{background:#c92f22}
.help{margin-top:16px;font-size:11px;color:#b3ab9e}
.help summary{cursor:pointer;font-weight:700;letter-spacing:1px}
.help table{border-collapse:collapse;margin-top:10px;width:100%}
.help th,.help td{text-align:left;padding:4px 6px;border-bottom:1px solid #ffffff14;vertical-align:top}
.help th{color:#e3dbcf;font-size:10px}
.help td:first-child{color:#e3dbcf;white-space:nowrap}

/* HUD */
#hud{position:fixed;inset:0;pointer-events:none;z-index:10}
#scorebar{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);padding:8px 16px;border-radius:8px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:18px;letter-spacing:.5px}
#scorebar .l{color:#ff7a6c}
#goals{font-size:30px;font-variant-numeric:tabular-nums;min-width:74px;text-align:center}
#goals.flash{animation:flash .9s}
@keyframes flash{0%,60%{color:var(--red);transform:scale(1.35)}100%{transform:scale(1)}}
#clock{padding-left:12px;border-left:1px solid var(--line);font-variant-numeric:tabular-nums;color:#d6cec2}
#clock.late{color:var(--red)}
.topRight{position:absolute;top:max(12px,env(safe-area-inset-top));right:14px;display:flex;gap:6px;pointer-events:auto}
.quiet{background:#151816c0;font-size:11px;padding:8px 11px}
#kickoff{position:absolute;top:22%;left:50%;transform:translate(-50%,-50%) scale(.9);font-family:'Barlow Condensed',Impact,sans-serif;font-size:42px;letter-spacing:4px;opacity:0;transition:.25s}
#kickoff.show{opacity:.9;transform:translate(-50%,-50%) scale(1)}
#notice{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%) scale(.6);font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800;font-size:40px;letter-spacing:1px;opacity:0;transition:transform .18s,opacity .25s;text-shadow:0 3px 18px #000a;white-space:nowrap}
#notice.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
#notice.goal{font-size:min(26vw,170px);color:var(--red);letter-spacing:-3px}
#notice.small{font-size:30px}
#meters,#chargeWrap{position:absolute;display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:2px;font-weight:700;color:#cfc6b9}
#meters{left:16px;bottom:max(14px,env(safe-area-inset-bottom))}
#chargeWrap{left:50%;bottom:16%;transform:translateX(-50%);opacity:0;transition:opacity .12s}
#chargeWrap.show{opacity:1}
.bar{width:120px;height:7px;background:#ffffff22;border-radius:4px;overflow:hidden}
#chargeWrap .bar{width:170px;height:9px}
#stamina{height:100%;background:#d9cfb9;width:100%}
#stamina.low{background:var(--red)}
#charge{height:100%;background:linear-gradient(90deg,#f6c453,var(--red));width:0}

/* Overlays */
.overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#0d0f0ec4;overflow-y:auto;padding:12px 0}
.card{width:min(400px,90vw);background:#1a1e1b;border:1px solid var(--line);border-radius:10px;padding:30px;text-align:center}
.card button{display:block;width:100%;margin-top:10px}
h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:56px;margin:6px 0;letter-spacing:-1px}
#finalScore{font-family:'Barlow Condensed',Impact,sans-serif;font-size:26px;margin:4px 0}
#resultStats{font-size:11px;color:#b3ab9e}
#debug{position:fixed;left:8px;top:70px;z-index:40;margin:0;font:11px/1.45 ui-monospace,Consolas,monospace;background:#000b;color:#c9f7b8;padding:8px 10px;border-radius:6px;pointer-events:none;white-space:pre}

@media (max-width:700px),(max-height:520px){
  .brand.big{font-size:44px}
  #menu{background:#0f1110e0;padding:16px 18px;align-items:flex-start}
  h1{font-size:56px;margin:12px 0 6px}
  .label{margin:12px 0 6px}
  #scorebar{font-size:14px;gap:9px;padding:6px 11px}
  #goals{font-size:24px;min-width:56px}
  #notice{font-size:30px}
  .topRight{top:auto;bottom:max(12px,env(safe-area-inset-bottom));right:auto;left:50%;transform:translateX(-50%)}
  body.touch #meters{bottom:auto;top:62px}
}
@media (max-height:520px){
  #menu{padding:10px 18px}
  .brand:not(.big){font-size:22px}
  h1{font-size:38px;margin:6px 0 2px;line-height:.95}
  h1 br{display:none}
  .intro{display:none}
  .label{margin:8px 0 4px}
  .team{padding:7px 10px}.team b{font-size:18px}.team span{margin-bottom:2px}
  .lvl{padding:7px}
  .primary{margin-top:10px;padding:11px}
  .help{margin-top:8px}
}

/* Trailer im Ladebildschirm */
#trBg{position:absolute;inset:-40px;background:#111 center/cover no-repeat;filter:blur(28px) brightness(.45) saturate(1.2)}
#trImg{position:absolute;left:50%;top:37%;width:min(78vw,820px);height:min(52vh,560px);object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 18px 40px #000c);opacity:0}
#preloader.playing #trImg{opacity:1}
#trImg.cut{animation:trCut 2.6s ease-out forwards}
@keyframes trCut{0%{transform:translate(-50%,-50%) scale(1.18) rotate(-1.5deg);opacity:.2;filter:brightness(2.2) drop-shadow(0 18px 40px #000c)}8%{opacity:1;filter:brightness(1) drop-shadow(0 18px 40px #000c)}100%{transform:translate(-50%,-50%) scale(1.02) rotate(0);opacity:1}}
.trShade{position:absolute;inset:0;background:linear-gradient(180deg,#0000 45%,#0b0c0ce6 78%,#0b0c0c 100%)}
#trStart{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);background:var(--red);border:0;color:#fff;font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(40px,7vw,72px);letter-spacing:4px;padding:18px 54px;border-radius:10px;animation:pulse 1.2s ease-in-out infinite}
#preloader.playing #trStart{display:none}
#preloader .pre{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(560px,90vw)}
#preloader .brand.big{font-size:42px;text-shadow:0 3px 20px #000}
#preloader .preRow{margin:12px 0 8px}
.trTrack{height:3px;background:#ffffff18;margin-top:8px;border-radius:2px;overflow:hidden}
#trTime{height:100%;width:0;background:#ffffff70}
#trSkip{display:block;width:100%;margin-top:12px;background:#ffffff14;border:1px solid #ffffff40;letter-spacing:2px}
#trSkip:hover{background:#ffffff26}
#preloader.waiting #trSkip{display:none}
@keyframes pulse{50%{box-shadow:0 0 0 10px #e8392b33,0 0 40px #e8392bcc;filter:brightness(1.12)}}
@media (max-height:520px){#preloader .brand.big{font-size:28px}#trImg{top:34%;height:48vh}#trStart{top:36%}}

/* Vereinsauswahl */
#menu{position:fixed;inset:0;z-index:20;display:block;padding:0;background:radial-gradient(ellipse at 50% 55%,#0000 30%,#0b0c0cd0 75%);overflow:hidden}
.selTop{position:absolute;top:max(14px,env(safe-area-inset-top));left:18px;right:18px;display:flex;align-items:center;gap:18px}
.selTitle{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(22px,3vw,34px);letter-spacing:3px;margin:0;flex:1;text-align:center}
#clubGrid{position:absolute;left:18px;top:90px;bottom:18px;width:min(230px,26vw);display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:10px}
.clubTile{position:relative;aspect-ratio:1;padding:0;border-radius:12px;overflow:hidden;border:2px solid #ffffff22;background:#111 center/cover no-repeat;transition:transform .15s,border-color .15s;cursor:pointer}
.clubTile:hover{transform:scale(1.05);border-color:#ffffff88}
.clubTile.selected{border-color:var(--red);box-shadow:0 0 0 3px var(--red),0 0 26px #e8392b99;transform:scale(1.06)}
.clubTile.soon::after{content:'BALD';position:absolute;inset:0;display:grid;place-items:center;background:#000a;font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px;letter-spacing:3px;color:#ffdf5d}
.clubTile .tname{position:absolute;left:0;right:0;bottom:0;background:#000b;font-size:10px;letter-spacing:1.5px;padding:3px 0;font-weight:700}
#clubInfo{position:absolute;right:24px;top:90px;text-align:right;display:flex;flex-direction:column;gap:2px;text-shadow:0 2px 12px #000}
#clubCity{font-size:11px;letter-spacing:3px;color:#c9c0b2;font-weight:700;text-transform:uppercase}
#clubName{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(30px,4vw,54px);line-height:1}
#clubMascot{font-style:normal;color:var(--red);font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(20px,2.4vw,30px);letter-spacing:1px}
#clubStatus{font-size:12px;color:#ffdf5d;min-height:16px}
#abilities{position:absolute;left:calc(18px + min(230px,26vw) + 22px);bottom:18px;width:min(300px,30vw);background:#111614d9;border:1px dashed #ffffff40;border-radius:10px;padding:10px 14px}
#abilities .label{margin:0 0 8px}
.abSlots{display:flex;gap:8px}.abSlots div{flex:1;aspect-ratio:1;border-radius:8px;background:#ffffff0d;border:1px dashed #ffffff30}
#abilities small{display:block;margin-top:6px;color:#8f887c;font-size:10px;letter-spacing:1px}
.selBottom{position:absolute;right:24px;bottom:18px;width:min(380px,40vw)}
.selBottom .label{margin:0 0 6px;text-align:right}
.selBottom .primary{margin-top:10px}
#start:disabled{opacity:.4;cursor:not-allowed}
#dragHint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:10px;letter-spacing:2px;color:#ffffff70;pointer-events:none}
#vs{position:fixed;inset:0;z-index:35;display:grid;place-content:center;gap:18px;background:#0b0c0cf2;text-align:center}
.vsRow{display:flex;align-items:center;gap:clamp(16px,5vw,60px)}
.vsSide{display:flex;flex-direction:column;align-items:center;gap:10px}
.vsSide img{width:clamp(110px,22vw,240px);aspect-ratio:1;border-radius:16px;object-fit:cover;box-shadow:0 10px 40px #000}
.vsSide b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(20px,3vw,34px);letter-spacing:2px}
.vsMid{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(50px,9vw,110px);color:var(--red);animation:pulse2 .8s ease-in-out infinite}
@keyframes pulse2{50%{transform:scale(1.12)}}
#vsStatus{color:#c9c0b2;font-size:13px;letter-spacing:1px}
@media (max-width:760px),(max-height:520px){
  .selTitle{display:none}
  #clubGrid{top:auto;left:10px;right:10px;bottom:auto;top:64px;width:auto;grid-template-columns:repeat(8,1fr);gap:6px}
  #clubInfo{top:auto;bottom:170px;right:14px}
  #abilities{left:10px;bottom:10px;width:min(240px,42vw);padding:8px}
  .selBottom{right:10px;bottom:10px;width:min(320px,52vw)}
  .clubTile .tname{font-size:8px}
}
#menu{pointer-events:none}
#menu .selTop,#menu #clubGrid,#menu #abilities,#menu .selBottom{pointer-events:auto}
body:not(.playing) canvas{cursor:grab}
.clubTile,.clubTile:hover,.clubTile.selected{background-color:#111;background-size:cover;background-position:center;background-repeat:no-repeat}
@media (max-width:760px),(max-height:520px){
  #clubGrid{grid-template-columns:repeat(8,minmax(0,52px));justify-content:center;top:58px}
  .clubTile .tname{font-size:7px;padding:1px 0}
  .clubTile.soon::after{font-size:12px}
  #clubInfo{top:128px;bottom:auto;right:14px}
  #clubName{font-size:24px}#clubMascot{font-size:18px}#clubCity{font-size:9px}
  #abilities .abSlots div{max-height:44px}
}

/* Handy-Steuerung (FTP 15): Stick fest rechts unten, darüber Grätsche/Heber; links unten Vollschuss, darüber Sprint, darüber Boxen + Tritt */
:root{--sR:max(26px,calc(env(safe-area-inset-right) + 14px));--sB:max(20px,calc(env(safe-area-inset-bottom) + 10px));--stk:132px;--pL:max(18px,calc(env(safe-area-inset-left) + 10px))}
#touchZone{position:fixed;inset:0;z-index:5;display:none;touch-action:none}
#stick{position:fixed;right:var(--sR);bottom:var(--sB);width:var(--stk);height:var(--stk);border-radius:50%;border:2px solid #ffffff55;background:radial-gradient(circle,#0000 40%,#0007 41%),#0005;z-index:6;pointer-events:none;display:none;opacity:.6;transition:opacity .12s}
#stick.on{opacity:1}
#thumb{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fffd;box-shadow:0 2px 10px #0008}
.pb{--cd:1;border-radius:50%;padding:0;font-family:'Barlow Condensed',Impact,sans-serif;font-size:14px;letter-spacing:1px;line-height:1;color:#fff;border:1px solid #ffffff50;touch-action:none;-webkit-touch-callout:none;
  background:conic-gradient(#ffffff38 calc(var(--cd)*360deg),#00000090 0),#1b1f1cc8;box-shadow:0 3px 12px #0007}
.pb.down{filter:brightness(1.6);transform:scale(.93)}
.pb small{display:block;font:600 8px Inter,sans-serif;letter-spacing:.3px;margin-top:3px;opacity:.75}
#pad{position:fixed;left:var(--pL);bottom:var(--sB);z-index:7;display:none;grid-template-columns:66px 66px;gap:10px 12px;justify-items:center;align-items:center}
#pad .punch{grid-column:1;grid-row:1;width:62px;height:62px}
#pad .kick{grid-column:2;grid-row:1;width:62px;height:62px}
#pad .sprint{grid-column:1/3;grid-row:2;width:68px;height:68px}
#pad .shoot{grid-column:1/3;grid-row:3;width:92px;height:92px;background:var(--red);border:0;font-size:18px}
#actBtn{position:fixed;z-index:7;display:none;width:78px;height:78px;right:calc(var(--sR) + (var(--stk) - 78px) / 2);bottom:calc(var(--sB) + var(--stk) + 16px);flex-direction:column;justify-content:center;align-items:center;gap:3px}
#actBtn span{display:block;transition:.12s}
#actBtn .aT{font-size:12px;letter-spacing:.3px}#actBtn .aL{font-size:9px;opacity:.55}
body.hasBall #actBtn{background:#f2b632;color:#151515;border:0}
body.hasBall #actBtn .aT{font-size:9px;opacity:.55}body.hasBall #actBtn .aL{font-size:16px;opacity:1}
body.playing.touch #touchZone,body.playing.touch #stick,body.playing.touch #pad{display:block}
body.playing.touch #pad{display:grid}body.playing.touch #actBtn{display:flex}
@media (pointer:coarse){body.playing #touchZone,body.playing #stick{display:block}body.playing #pad{display:grid}body.playing #actBtn{display:flex}}
@media (max-height:420px){:root{--stk:116px}#pad{grid-template-columns:58px 58px;gap:7px 10px}#pad .punch,#pad .kick{width:54px;height:54px}#pad .sprint{width:58px;height:58px}#pad .shoot{width:78px;height:78px;font-size:16px}#actBtn{width:68px;height:68px}.pb{font-size:12px}}
@media (pointer:coarse){body.playing #meters{bottom:auto;top:max(58px,calc(env(safe-area-inset-top) + 50px));left:var(--pL)}body.playing .topRight{top:max(10px,env(safe-area-inset-top));bottom:auto;left:auto;right:var(--sR);transform:none}#chargeWrap{bottom:auto;top:24%}.touchKeys{display:table}}
.touchKeys{display:none;margin-top:14px}
/* Querformat-Hinweis */
#rotateHint{position:fixed;inset:0;z-index:90;display:none;place-items:center;background:#0b0c0cf5;text-align:center;font-family:'Barlow Condensed',Impact,sans-serif;letter-spacing:2px}
#rotateHint b{display:block;font-size:80px;color:var(--red);animation:rot 1.6s ease-in-out infinite}#rotateHint p{font-size:24px;margin:8px 20px}
@keyframes rot{0%,20%{transform:rotate(0)}60%,100%{transform:rotate(-90deg)}}
@media (pointer:coarse) and (orientation:portrait){#rotateHint{display:grid}}
/* Figuren-Preloader in der Vereinsauswahl */
#charLoad{position:fixed;left:50%;top:52%;transform:translate(-50%,-50%);z-index:21;pointer-events:none;text-align:center;text-shadow:0 2px 10px #000}
.clRing{position:relative;width:96px;height:96px;margin:0 auto}
.clRing svg{width:100%;height:100%;transform:rotate(-90deg)}
.clBg{fill:#0009;stroke:#ffffff22;stroke-width:7}.clFg{fill:none;stroke:var(--red);stroke-width:7;stroke-linecap:round;stroke-dasharray:276.5;stroke-dashoffset:276.5;transition:stroke-dashoffset .15s}
#clPct{position:absolute;inset:0;display:grid;place-items:center;font-family:'Barlow Condensed',Impact,sans-serif;font-size:24px}
#clName{margin:10px 0 0;font-size:12px;letter-spacing:2px;color:#e3dbcf;font-weight:700}

/* FTP 16: Spielstand + Spezial-Leiste darunter */
#topCenter{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:stretch;gap:6px}
#topCenter #scorebar{position:static;transform:none;justify-content:center}
#power{position:relative;height:16px;border-radius:8px;background:#0d0f0ecc;border:1px solid var(--line);overflow:hidden}
.pwTrack{position:absolute;inset:2px;border-radius:6px;overflow:hidden;background:#ffffff10}
#pwFill{height:100%;width:0;background:linear-gradient(90deg,#b8261b,var(--red) 55%,#f6c453);border-radius:6px;transition:width .25s linear}
#pwTxt{position:absolute;inset:0;display:grid;place-items:center;font:800 9px Inter,sans-serif;letter-spacing:2px;color:#fff;text-shadow:0 1px 3px #000}
body.specialReady #power{border-color:#f6c453;box-shadow:0 0 14px #f6c45399;animation:pwPulse .9s ease-in-out infinite}
body.specialReady #pwFill{background:linear-gradient(90deg,#f6c453,#fff2b8,#f6c453)}
body.specialReady #pwTxt{color:#1a1405;text-shadow:none}
@keyframes pwPulse{50%{box-shadow:0 0 24px #f6c453}}
#actBtn .aS{display:none}
body.specialReady #actBtn{background:radial-gradient(circle,#fff2b8,#f6c453 60%,#d99a1e);color:#1a1405;border:0;animation:pwPulse .9s ease-in-out infinite}
body.specialReady #actBtn .aT,body.specialReady #actBtn .aL{display:none}
body.specialReady #actBtn .aS{display:block;font-size:15px}
#meters{display:none}

/* FTP 17: Icon-Knöpfe nach Entwurf */
.pb{display:grid;place-items:center;background:conic-gradient(#ffffff40 calc(var(--cd)*360deg),#0000009a 0),#262b28d0;border:2px solid #ffffff60;box-shadow:0 4px 14px #0008,inset 0 1px 0 #ffffff30}
.pb .ic{width:64%;height:64%;pointer-events:none;filter:drop-shadow(0 1px 1px #0006)}
.pb.down{filter:brightness(1.5);transform:scale(.92)}
#pad .shoot{background:radial-gradient(circle at 40% 35%,#ff5a4a,#d7261e 70%);border:2px solid #ffffff30;box-shadow:0 5px 18px #d7261e66,0 4px 14px #0008}
#pad .shoot .ic{width:66%;height:66%}
#pad .sprint .ic{width:50%;height:50%}
#actBtn{width:84px;height:84px;right:calc(var(--sR) + (var(--stk) - 84px) / 2);display:none;color:#fff}
#actBtn span{display:none;width:100%;height:100%;place-items:center}
#actBtn .ic{width:72%;height:72%}
#actBtn .aT{display:grid}
body.hasBall #actBtn{background:radial-gradient(circle at 40% 35%,#ffd75a,#f2b10f 70%);color:#16130a;border:0;box-shadow:0 5px 18px #f2b10f55,0 4px 14px #0008}
body.hasBall #actBtn .aT{display:none}body.hasBall #actBtn .aL{display:grid}
body.specialReady #actBtn{background:radial-gradient(circle at 40% 35%,#fff3b0,#f6c453 55%,#e09a12);color:#16130a;border:0;animation:boltPulse .8s ease-in-out infinite}
body.specialReady #actBtn .aT,body.specialReady #actBtn .aL{display:none}body.specialReady #actBtn .aS{display:grid}
@keyframes boltPulse{50%{box-shadow:0 0 30px 6px #f6c453cc}}
body.playing.touch #actBtn{display:grid}
@media (pointer:coarse){body.playing #actBtn{display:grid}}
@media (max-height:420px){#actBtn{width:74px;height:74px;right:calc(var(--sR) + (var(--stk) - 74px) / 2)}}
/* Bildschirmblitz */
#flash{position:fixed;inset:0;z-index:12;pointer-events:none;opacity:0}
#flash.on{opacity:1;background:radial-gradient(ellipse at center,#0000 55%,#e8392b55)}
#flash.zap{animation:zapFlash .45s ease-out}
@keyframes zapFlash{0%{opacity:1;background:#ffffffe6}15%{opacity:.2;background:#fff}25%{opacity:.8;background:#eef6ff}100%{opacity:0;background:#fff}}

/* FTP 18: Handy quer ohne Vollbild (wenig Höhe) – Logos als 2er-Spalte links, Figur frei in der Mitte */
@media (max-height:520px){
  .selTop{top:max(8px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left))}
  .selTop .brand{font-size:20px}.selTop .brand small{display:none}
  #helpBtn{padding:6px 10px;font-size:11px}
  #clubGrid{left:max(12px,env(safe-area-inset-left));right:auto;top:48px;bottom:auto;width:auto;grid-template-columns:repeat(2,min(54px,13vh));justify-content:start;gap:6px}
  .clubTile .tname{font-size:7px;padding:1px 0}
  #clubInfo{top:10px;right:max(14px,env(safe-area-inset-right));bottom:auto}
  #clubName{font-size:22px}#clubMascot{font-size:16px}#clubCity{font-size:9px}
  .selBottom{right:max(12px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));width:min(300px,40vw)}
  .selBottom .label{font-size:8px;letter-spacing:2px}
  .selBottom .lvl{padding:6px 4px;font-size:12px}
  .selBottom .primary{padding:10px;font-size:13px;margin-top:6px}
  #dragHint{display:none}
}
@media (max-height:520px) and (max-width:1100px){#abilities{display:none}}
/* Trailer im Querformat mit wenig Höhe: Bild oben, Leiste unten, kein Überlappen */
@media (max-height:520px){
  #trImg{top:30%;height:44vh;width:min(60vw,640px)}
  #preloader .pre{width:min(620px,92vw)}
  #preloader .brand.big{display:none}
  #preloader .preRow{margin:6px 0 6px}#prePct{font-size:26px}
  #trSkip{margin-top:8px;padding:8px}
  #trStart{top:32%;padding:12px 40px;font-size:40px}
}

/* FTP 19: Trailer Cut 02 als Canvas-Montage; Film oben, schmale Lade-/Überspringen-Leiste unten */
#trFilm{position:absolute;left:0;right:0;top:0;bottom:150px;width:100%;height:calc(100% - 150px);object-fit:contain;filter:drop-shadow(0 18px 40px #000a)}
#preloader .trShade{background:linear-gradient(180deg,#0000 60%,#0b0c0cd0 85%,#0b0c0c 100%)}
#preloader:not(.playing) #trFilm{opacity:.55}
#preloader.playing .brand.big{display:none}
#preloader.playing .preRow{margin:4px 0 6px}
#preloader.playing #prePct{font-size:26px}
@media (max-height:520px){
  #trFilm{bottom:104px;height:calc(100% - 104px)}
  #preloader .preRow{margin:2px 0 4px}#prePct{font-size:20px}
  #preloader .preBar{height:8px}
  #trSkip{margin-top:6px;padding:7px}
}

/* FTP 23: Trailer als Video (YNWA V2) */
#trBg{background-image:url("./trailer/trailer_poster.jpg")}
#trVideo{position:absolute;left:0;right:0;top:0;bottom:150px;width:100%;height:calc(100% - 150px);object-fit:contain;background:transparent;filter:drop-shadow(0 18px 40px #000a)}
#preloader:not(.playing) #trVideo{opacity:.55}
#preloader.needTap::after{content:'🔊 Tippen für Ton';position:absolute;top:16px;left:50%;transform:translateX(-50%);background:#000b;padding:8px 14px;border-radius:20px;font-size:13px;letter-spacing:1px}
@media (max-height:520px){#trVideo{bottom:104px;height:calc(100% - 104px)}}

/* FTP 25: Halbzeit-Anzeige + Trinkpause (Minispiel in eigener Szene, gleiche Engine) */
#half{font-size:13px;color:#c9c0b2;letter-spacing:1px;padding-left:10px;border-left:1px solid var(--line)}
#tp{position:fixed;inset:0;z-index:25;pointer-events:none;font-family:Inter,Arial,sans-serif}
#tp button,#tp #tpStick,#tp #tpOverlay{pointer-events:auto}
#tpTop{position:absolute;top:max(10px,env(safe-area-inset-top));left:0;right:0;display:flex;justify-content:center;align-items:flex-start}
#tpScore{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);padding:7px 16px;border-radius:8px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:18px}
#tpGoals{font-size:28px;min-width:64px;text-align:center}#tpClock{padding-left:12px;border-left:1px solid var(--line);color:#d6cec2}
#tpCam{position:absolute;right:max(14px,env(safe-area-inset-right));top:0}
#tpLabels{position:absolute;inset:0;overflow:hidden}
.tpLabel{position:absolute;left:0;top:0;margin:-30px 0 0 -26px;width:52px;text-align:center;font:800 9px Inter,sans-serif;letter-spacing:1px;color:#fff;text-shadow:0 1px 3px #000;will-change:transform}
.tpLabel span{display:block;margin-bottom:2px;color:var(--tc,#fff)}.tpLabel.me span{color:#fff;background:var(--red);border-radius:3px;padding:0 3px;display:inline-block}
.tpLabel .bar{display:flex;gap:2px;justify-content:center;width:auto;height:auto;background:none}.tpLabel .bar i{width:12px;height:4px;border-radius:2px;background:var(--tc,#e8392b);box-shadow:0 0 0 1px #0008}
.tpLabel .bar i.empty{background:#ffffff30}.tpLabel.targeted{transform-origin:center}.tpLabel.targeted span{outline:2px solid #f6ce51;border-radius:3px}
#tpAim{position:absolute;left:0;top:0;margin:-10px 0 0 -7px;font:700 22px Inter;color:#f6ce51;text-shadow:0 0 6px #000;display:none}#tp.aiming #tpAim{display:block}
#tpToast{position:absolute;top:22%;left:50%;transform:translateX(-50%);font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;text-shadow:0 3px 14px #000;white-space:nowrap}
#tpHud{position:absolute;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:18px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 14px;font-size:11px;color:#cfc6b9}
#tpHp{color:var(--red);font-size:14px;margin-right:6px;letter-spacing:2px}
#tpCharge{display:flex;align-items:center;gap:8px}#tpCharge .bar{width:120px;height:8px}#tpChargeFill{display:block;height:100%;width:0;background:linear-gradient(90deg,#f6c453,var(--red))}
#tp.full #tpChargeTxt{color:#f6c453;font-weight:800}
#tpStick,.tpBtn{display:none}
#tp.touch #tpStick{display:block;position:absolute;right:var(--sR);bottom:var(--sB);width:var(--stk);height:var(--stk);border-radius:50%;border:2px solid #ffffff55;background:radial-gradient(circle,#0000 40%,#0007 41%),#0005;touch-action:none}
#tp.touch #tpStick i{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fffd;box-shadow:0 2px 10px #0008}
#tp.touch .tpBtn{display:grid;position:absolute;left:var(--pL)}
#tp.touch #tpShoot{bottom:var(--sB);width:92px;height:92px;background:radial-gradient(circle at 40% 35%,#ff5a4a,#d7261e 70%);border:2px solid #ffffff30}
#tp.touch #tpLob{bottom:calc(var(--sB) + 104px);left:calc(var(--pL) + 10px);width:72px;height:72px;background:radial-gradient(circle at 40% 35%,#ffd75a,#f2b10f 70%);color:#16130a;border:0}
#tp .tpBtn.held{filter:brightness(1.4);transform:scale(.92)}
#tp.touch #tpHud{gap:10px;padding:5px 10px;max-width:calc(100vw - 2 * var(--stk) - 60px)}#tp.touch #tpStatus{display:none}#tp.touch #tpCharge .bar{width:80px}
#tpOverlay{position:absolute;inset:0;display:grid;place-items:center;background:#0d0f0ec4;overflow-y:auto;padding:12px 0}
#tpOverlay h2 em{font-style:normal;color:var(--red)}#tpOverlay .keys{width:100%;border-collapse:collapse;font-size:11px;color:#cfc6b9;text-align:left;margin:8px 0}
#tpOverlay .keys td{padding:4px 6px;border-bottom:1px solid #ffffff14}.tpNote{font-size:11px;color:#b3ab9e;margin:6px 0}
#tpOverlay .preBar{height:6px;margin-top:10px}#tpLoadFill{height:100%;width:0;background:var(--red);transition:width .2s}
#tpErr{color:#ff8a7a;font-size:12px}
@media (max-height:520px){#tpOverlay .card{padding:14px 18px}#tpOverlay h2{font-size:34px;margin:0}#tpOverlay .keys{font-size:10px;margin:4px 0}#tpOverlay .keys td{padding:2px 6px}#tpOverlay .card button{margin-top:6px;padding:9px}#tpScore{font-size:14px;gap:9px;padding:5px 11px}#tpGoals{font-size:22px}}
#tpOverlay .tpBtns{display:flex;gap:8px;margin-top:12px}#tpOverlay .tpBtns button{flex:1;margin:0}
#tpOverlay .card{width:min(560px,94vw)}
@media (max-height:520px){#tpOverlay{align-items:start}#tpOverlay .card{padding:10px 16px}#tpIntro{font-size:12px;margin:2px 0}#tpOverlay .label{margin:0 0 2px}#tpOverlay .tpNote{margin:3px 0;font-size:10px}#tpOverlay .tpBtns{margin-top:6px}#tpOverlay .tpBtns button{padding:9px 6px;font-size:12px}}

/* FTP 27: Stadionwahl */
#arenaSel{position:fixed;inset:0;z-index:22;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,3vh,26px);background:radial-gradient(ellipse at 50% 40%,#151a18 0%,#090b0a 75%);padding:16px}
#arenaSel .selTitle{flex:none}
.arenaRow{display:flex;gap:clamp(12px,3vw,32px);width:min(1100px,96vw);justify-content:center}
.arenaCard{flex:1;max-width:520px;padding:0;border-radius:14px;overflow:hidden;border:2px solid #ffffff26;background:#111;text-align:left;display:flex;flex-direction:column;transition:transform .15s,border-color .15s,box-shadow .15s}
.arenaCard img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#222}
.arenaCard b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(22px,3vw,34px);letter-spacing:2px;padding:10px 16px 0}
.arenaCard span{font-size:12px;color:#c9c0b2;letter-spacing:1px;padding:2px 16px 14px}
@media (hover:hover){.arenaCard:hover{transform:translateY(-3px);border-color:#ffffff88}}
.arenaCard.selected{border-color:var(--red);box-shadow:0 0 0 3px var(--red),0 0 30px #e8392b66}
.arenaCard[data-arena=kaefig] b{color:#ffe3a6}
@media (max-height:520px){#arenaSel{gap:8px;padding:8px}.arenaRow{width:min(760px,94vw)}.arenaCard img{aspect-ratio:2/1}.arenaCard b{font-size:20px;padding:6px 12px 0}.arenaCard span{font-size:10px;padding:0 12px 8px}#arenaSel .selTitle{display:block;font-size:20px}}
/* Nacht im Käfig-Stadion: dunkle Bildränder (Vignette) für Flutlicht-Stimmung */
body.night.playing::after{content:'';position:fixed;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse 75% 70% at 50% 52%,#0000 45%,#02040acc 100%)}

/* ---------- FTP 29: Startseite (Spielmodus), 1 gegen 1, Controller-Menüs ---------- */
#landing{position:fixed;inset:0;z-index:22;display:flex;align-items:center;padding:4vh 6vw;background:linear-gradient(90deg,#0f1110f2 0%,#0f1110cc 42%,#0f111033 80%)}
.landPanel{width:min(560px,92vw)}
#landing .selTitle{text-align:left;margin:34px 0 18px;flex:none}
.modeRow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.modeCard{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 20px;border-radius:12px;border:2px solid #ffffff22;background:#151816e6;text-align:left;transition:transform .15s,border-color .15s,box-shadow .15s}
.modeCard b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(30px,4vw,46px);letter-spacing:1px;line-height:.9}
.modeCard span{font-size:12px;font-weight:600;color:#cfc6b9}
.modeCard.primary{background:var(--red);border-color:var(--red)}.modeCard.primary span{color:#fff}
.modeCard:hover,.modeCard.padfocus,.modeCard:focus-visible{transform:scale(1.04);border-color:#fff;box-shadow:0 0 0 3px #f9c47a,0 0 26px #0008;outline:0}
.modeCard.soon{opacity:.5}.modeCard.soon span{color:#ffdf5d}
@media (max-width:640px),(max-height:420px){#landing{padding:14px 18px}.brand.big{font-size:40px}#landing .selTitle{margin:16px 0 12px}.modeCard{padding:14px}}
#menuBack{order:-1}
/* Controller-Fokus: deutlich sichtbar auf dem Fernseher */
button.padfocus{outline:4px solid #f9c47a!important;outline-offset:3px}
.clubTile.padfocus{transform:scale(1.08)}
/* 1 gegen 1: Vereinswahl nacheinander, Verein von Spieler 1 gesperrt */
body.duoPick .selBottom .label,body.duoPick .selBottom .row{display:none}
.clubTile.taken{opacity:.45}
.clubTile.taken::before{content:'SP 1';position:absolute;top:6px;left:6px;z-index:1;background:var(--red);color:#fff;font:800 11px Inter,sans-serif;letter-spacing:1px;padding:2px 6px;border-radius:4px}
/* 1 gegen 1 im Spiel: große Anzeige für Spielstand und Zeit, zwei Spezial-Leisten links/rechts, keine Touch-Knöpfe */
#duoHud{display:none}
body.duo #power{display:none}
body.duo #scorebar{font-size:clamp(26px,3.4vw,46px);gap:22px;padding:10px 28px}
body.duo #scorebar #goals{font-size:1.25em}
body.duo #duoHud{display:flex;position:absolute;left:0;right:0;top:max(12px,env(safe-area-inset-top));justify-content:space-between;padding:0 22px;pointer-events:none}
.dSide{width:min(300px,24vw);display:flex;flex-direction:column;gap:5px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.dSide b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(18px,2vw,26px);letter-spacing:1px}
.dSide.l b{color:#ff7a6c}.dSide.r{text-align:right}.dSide.r b{color:#8fd0ff}
.dSide .pwTrack{position:relative;inset:auto;height:12px;border-radius:6px;background:#0d0f0ecc;border:1px solid var(--line);overflow:hidden}
.dSide .pwTrack div{height:100%;width:0;background:linear-gradient(90deg,#f6c453,var(--red));transition:width .2s}
.dSide.r .pwTrack div{margin-left:auto;background:linear-gradient(270deg,#f6c453,#2f8fd8)}
.dSide span{font-size:11px;font-weight:700;letter-spacing:1px;color:#cfc6b9}
.dSide.ready{border-color:#f6c453;box-shadow:0 0 14px #f6c45399}
body.duo #notice.goal{font-size:min(20vw,200px)}
body.duo #touchZone,body.duo #stick,body.duo #pad,body.duo #actBtn,body.duo #chargeWrap{display:none!important}
@media (max-width:900px){body.duo #duoHud{top:auto;bottom:12px}}
/* Trinkpause 1 gegen 1: zwei Ladeleisten; Schulter-Kamera = geteilter Bildschirm mit Trennstrich */
#tpCharge2{display:none;align-items:center;gap:8px}#tpCharge2 .bar{width:120px;height:8px}#tpChargeFill2{display:block;height:100%;width:0;background:linear-gradient(90deg,#7fd3ff,#2f8fd8)}
#tp.duo #tpCharge2{display:flex}
#tp.split::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:4px;margin-left:-2px;background:#0d0f0e;box-shadow:0 0 0 1px #ffffff30;z-index:1;pointer-events:none}
body.duo #scorebar *{white-space:nowrap}
.modeRow{align-items:stretch}.modeCard{margin:0;min-height:128px;justify-content:flex-end}.modeCard b{white-space:nowrap;font-size:clamp(28px,3.4vw,42px)}.modeCard span{text-transform:none;letter-spacing:0}
#tp.duo #tpHp{white-space:nowrap}#tp.duo #tpStatus{display:none}#tp.duo #tpCharge .bar,#tp.duo #tpCharge2 .bar{width:90px}
#tp.duo #tpChargeTxt,#tp.duo #tpChargeTxt2{white-space:nowrap}
#tp.split #tpHud{left:0;right:0;transform:none;background:none;border:0;justify-content:space-around;padding:0}
#tp.split #tpHealth{display:none}
#tp.split #tpCharge,#tp.split #tpCharge2{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 12px}
#result .card button:not(.primary),#pauseMenu .card button:not(.primary){display:block;width:100%;margin-top:10px}
/* ---------- FTP 30: Fernseher / Fire-TV-App ---------- */
body.tv #touchZone,body.tv #stick,body.tv #pad,body.tv #actBtn,body.tv #rotateHint{display:none!important}
#appExit{margin-top:18px}
body.tv #dragHint{display:none}

/* ---------- FTP 33: Turnier ---------- */
#matchMode{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:20px;background:#0b0c0cd9}
.modeRow2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,320px));gap:16px;justify-content:center;width:100%}
#tourn{position:fixed;inset:0;z-index:28;overflow-y:auto;background:linear-gradient(180deg,#0b0c0ce6,#0b0c0cf2);padding:max(14px,env(safe-area-inset-top)) 18px 18px}
.tPanel{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:12px}
.tPanel .label{margin:6px 0 0}
.tH{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(26px,3.6vw,44px);letter-spacing:3px;margin:0;text-align:center}
.tGroups{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%}
.tGroup{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.tGroup h3{margin:0 0 8px;font-family:'Barlow Condensed',Impact,sans-serif;letter-spacing:2px;font-size:20px;color:#f6c453}
.tLogo{width:44px;height:44px;border-radius:8px;object-fit:cover;vertical-align:middle;background:#111}
.tLogo.sm{width:24px;height:24px;border-radius:5px;margin-right:8px}
.tDrawTile{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:6px;border-radius:8px;margin:5px 0;opacity:0;transform:translateX(-30px) scale(.9);animation:tIn .45s cubic-bezier(.2,1.4,.4,1) forwards}
.tDrawTile .tLogo{grid-row:1/3}.tDrawTile b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px;letter-spacing:1px}.tDrawTile span{font-size:11px;color:#bdb5a8}
.tDrawTile.me,.tTable tr.me td{background:#e8392b40}
@keyframes tIn{to{opacity:1;transform:none}}
.tTable{width:100%;border-collapse:collapse;font-size:13px}
.tTable th{font-size:10px;letter-spacing:1px;color:#a8a194;text-align:center;padding:3px}.tTable th:nth-child(2){text-align:left}
.tTable td{padding:5px 4px;border-top:1px solid #ffffff12;text-align:center;white-space:nowrap}.tTable td:nth-child(2){text-align:left;font-weight:700}
.tTable tr.q td:first-child{color:#7ee08a;font-weight:800}
.tKoWrap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%}
.tKo{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.tKo span{font-size:10px;letter-spacing:2px;color:#a8a194;font-weight:700}.tKo b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px;text-align:center}.tKo b small{font-size:12px;color:#f6c453}
.tKoRow{display:flex;align-items:center;font-weight:700;opacity:.85}.tKoRow.w{opacity:1;color:#7ee08a}
.tNext{width:min(620px,100%);background:#151816f2;border:2px solid #ffffff2a;border-radius:12px;padding:14px 18px;text-align:center}
.tNext h3{margin:0;font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;color:var(--red);letter-spacing:2px}
.tNext p{font-size:12px;color:#cfc6b9;margin:6px 0 0}
.tNext button{margin-top:10px}
.tVs{display:flex;align-items:center;justify-content:center;gap:12px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(20px,2.6vw,30px)}
.tVs i{font-style:normal;color:var(--red);font-size:.8em}
.tReelCard{width:min(760px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px 20px;text-align:center;opacity:0;transform:translateY(24px)}
.tReelCard.in{animation:tIn .35s ease-out forwards}
.tRVs{display:grid;grid-template-columns:1fr 1.3fr 1fr;align-items:center;gap:10px;margin-top:6px}
.tRSide{display:flex;flex-direction:column;align-items:center;gap:6px}.tRSide .tLogo{width:clamp(56px,9vw,96px);height:clamp(56px,9vw,96px);border-radius:12px}
.tRSide b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(18px,2.4vw,28px);letter-spacing:1px}
.tRMid{position:relative;height:110px}
.tRGoal{position:absolute;top:22px;width:16px;height:46px;border:3px solid #efe8dc;background:repeating-linear-gradient(45deg,#ffffff22 0 3px,transparent 3px 7px)}
.tRGoal.l{left:0;border-left:0}.tRGoal.r{right:0;border-right:0}
.tRGoal.shake{animation:tShake .25s}
@keyframes tShake{30%{transform:translateX(-3px)}60%{transform:translateX(3px)}}
.tRBall{position:absolute;left:calc(50% - 7px);top:38px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#bbb);box-shadow:0 0 8px #fff8}
.tRBall.toR{animation:tToR .3s ease-in forwards}.tRBall.toL{animation:tToL .3s ease-in forwards}
@keyframes tToR{to{left:calc(100% - 16px);top:42px}}@keyframes tToL{to{left:2px;top:42px}}
.tRScore{position:absolute;left:0;right:0;bottom:0;font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(34px,5vw,54px)}
.tRScore.pop{animation:tPop .3s}
@keyframes tPop{50%{transform:scale(1.35);color:#f6c453}}
.tRVerdict{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(24px,3.4vw,40px);letter-spacing:2px;margin:10px 0 0;opacity:0;transform:scale(.6);transition:opacity .25s,transform .3s cubic-bezier(.2,1.6,.4,1)}
.tRVerdict.show{opacity:1;transform:none;color:#f6c453}
.tCenter{min-height:80vh;justify-content:center;text-align:center}
.tBig{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(54px,9vw,120px);letter-spacing:2px;margin:0;color:var(--red);animation:tPop .6s}
.tWarnText{font-size:clamp(16px,2vw,22px);max-width:700px;line-height:1.4;color:#efe8dc}
.tCup{font-size:clamp(70px,10vw,130px);animation:tPop .8s}
.tChampText{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:18px}.tChampText .tLogo{width:110px;height:110px;border-radius:14px}.tChampText b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:34px}
#confetti{position:fixed;inset:0;z-index:95;pointer-events:none}
#tourn button.primary,#tourn button.quiet,#tourn .tNext button{width:auto;min-width:260px}
@media (max-width:700px),(max-height:460px){.tGroups,.tKoWrap{grid-template-columns:1fr 1fr;gap:8px}.tTable{font-size:11px}.tTable td{padding:3px 2px}.tLogo.sm{width:18px;height:18px;margin-right:4px}.tKoWrap{grid-template-columns:repeat(3,1fr)}.tKo{font-size:11px;padding:6px}.tKo b{font-size:18px}.tRMid{height:90px}}
#tourn .tNext button{display:block;margin:10px auto 0}
/* FTP 34: Spielart-Auswahl – Titel nicht strecken, lange Wörter passen in die Karte */
#matchMode .selTitle{flex:none;text-align:center}
#matchMode .modeRow2{grid-template-columns:repeat(auto-fit,minmax(280px,380px))}
#matchMode .modeCard{min-width:0;overflow:hidden}
#matchMode .modeCard b{font-size:clamp(24px,2.5vw,36px);white-space:nowrap;max-width:100%}
@media (max-width:700px),(max-height:460px){#matchMode .modeRow2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}#matchMode .modeCard b{font-size:24px}#matchMode .modeCard{min-height:96px;padding:14px 16px}}

/* ---------- FTP 36: neue Handy-Steuerung ----------
   rechts: roter Stick, darüber Heber (bei voller Leiste Spezial/Blitz)
   links von unten: Schuss (rot), Schlagen, Treten, Grätsche; Sprint neben dem Schuss
   Schlagen/Treten/Grätsche: grau = trifft gerade nicht, gelb = Ziel in Reichweite und Richtung; Pfeil zeigt zum Ziel */
#stick{border:3px solid #e8392bcc;background:radial-gradient(circle,#0000 40%,#e8392b33 41%),#e8392b22}
#thumb{background:radial-gradient(circle at 40% 35%,#ff7a6c,#e8392b 70%);box-shadow:0 2px 12px #e8392b88,0 2px 10px #0008;border:2px solid #ffffff55}
#pad{grid-template-columns:auto auto;grid-template-rows:repeat(4,auto);gap:9px 12px;align-items:end;justify-items:center}
#pad .tackle{grid-column:1;grid-row:1}
#pad .kick{grid-column:1;grid-row:2}
#pad .punch{grid-column:1;grid-row:3}
#pad .shoot{grid-column:1;grid-row:4}
#pad .sprint{grid-column:2;grid-row:4;width:62px;height:62px;align-self:end;margin-bottom:4px}
#pad .mv{position:relative;width:62px;height:62px;color:#c9c9c9;background:radial-gradient(circle at 40% 35%,#5a5f5c,#3a3e3c 72%);border:2px solid #ffffff40;transition:background .12s,color .12s,box-shadow .12s}
#pad .mv.ok{color:#16130a;background:radial-gradient(circle at 40% 35%,#ffe27a,#f2b10f 70%);border-color:#fff3;box-shadow:0 0 16px #f2b10f88,0 4px 14px #0008}
#pad .mv .ic{transition:transform .15s}
#pad .mv.flip .ic{transform:scaleX(-1)}
#pad .mv .dirA{position:absolute;inset:-7px;border-radius:50%;transform:rotate(var(--dir,0deg));pointer-events:none;opacity:0;transition:opacity .15s}
#pad .mv.near .dirA{opacity:.85}
#pad .mv .dirA::before{content:'';position:absolute;left:50%;top:-1px;margin-left:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:9px solid #c9c9c9}
#pad .mv.ok .dirA::before{border-bottom-color:#f2b10f}
#pad .sprint .ic,#pad .mv .ic{width:70%;height:70%}
#actBtn .aT{display:none!important}
#actBtn .aL{display:grid}
body.specialReady #actBtn .aL{display:none}
@media (max-height:420px){#pad{gap:6px 10px}#pad .mv{width:52px;height:52px}#pad .sprint{width:54px;height:54px}#pad .shoot{width:74px;height:74px}}
@media (max-height:360px){#pad .mv{width:46px;height:46px}#pad .shoot{width:66px;height:66px}}
/* FTP 37: Auto-Sprint über den Stick (kein Sprint-Knopf mehr), Ausweichen = Doppeltipp auf den Stick */
#pad{grid-template-columns:auto}
#stick{--sp:0;transition:box-shadow .15s,border-color .15s}
#stick.charging{box-shadow:0 0 calc(var(--sp) * 22px) calc(var(--sp) * 4px) #ff6a4d88;border-color:#ff6a4d}
#stick.sprinting{border-color:#ffd25a;box-shadow:0 0 26px 6px #ffb43a99,inset 0 0 18px #ffb43a66;opacity:1}
#stick.sprinting #thumb{background:radial-gradient(circle at 40% 35%,#ffe27a,#ff7a2a 70%)}
#stick::after{content:'';position:absolute;left:-34px;top:50%;width:26px;height:22px;margin-top:-11px;opacity:0;background:linear-gradient(#ffd25a,#ffd25a) 0 2px/18px 3px no-repeat,linear-gradient(#ffd25a,#ffd25a) 6px 9px/20px 3px no-repeat,linear-gradient(#ffd25a,#ffd25a) 2px 16px/14px 3px no-repeat;transition:opacity .15s}
#stick.sprinting::after{opacity:.9;animation:spLines .35s linear infinite}
@keyframes spLines{50%{transform:translateX(-5px)}}

/* ---------- Accounts + fünf kostenlose KI-Spiele ---------- */
#accountCorner{position:absolute;right:max(18px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));display:flex;align-items:center;gap:10px;z-index:2;background:#0d0f0ed9;border:1px solid var(--line);border-radius:999px;padding:6px 7px 6px 14px;box-shadow:0 10px 30px #0007}
#accountCorner span{font-size:12px;font-weight:700;letter-spacing:.5px;color:#efe8dc}
#accountCorner button{margin:0;padding:8px 13px;border-radius:999px;font-size:11px}
#trialBadge{display:block;margin-top:8px;font-style:normal;font:700 12px Inter,sans-serif;color:#f6c453;letter-spacing:.2px}
#trialBadge.locked{color:#ff8278}
#trialInfo{display:flex;flex-direction:column;gap:3px;margin-top:14px;padding:12px 14px;border-left:4px solid #f6c453;background:#171a18e8;text-align:left;border-radius:3px 8px 8px 3px}
#trialInfo b{font:800 18px 'Barlow Condensed',Impact,sans-serif;letter-spacing:.8px}
#trialInfo span{font-size:11px;line-height:1.45;color:#bdb5a8}
#trialInfo.locked{border-color:var(--red);background:#2b1513e8}
.modeCard.trialLocked{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.authOverlay{z-index:120;background:#080908e8;backdrop-filter:blur(8px)}
.authCard{position:relative;width:min(470px,92vw);text-align:left;padding:28px}
.authX{position:absolute;right:12px;top:10px!important;width:38px!important;height:38px;margin:0!important;padding:0;border:0;background:transparent;font-size:30px;color:#bdb5a8}
.authTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:22px 0 18px;padding:4px;background:#0d0f0e;border-radius:9px}
.authTabs button{margin:0;padding:9px 5px;border:0;background:transparent;font-size:10px;border-radius:6px;color:#aaa39a}
.authTabs button.selected{background:var(--red);color:#fff}
.authForm h2{font:800 30px 'Barlow Condensed',Impact,sans-serif;margin:0 0 12px;letter-spacing:1px}
.authForm>label{display:block;margin:10px 0;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#bdb5a8}
.authForm input:not([type=checkbox]){display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:12px 13px;border-radius:7px;border:1px solid #ffffff24;background:#0d0f0e;color:#fff;font:600 15px Inter,sans-serif;outline:none}
.authForm input:focus{border-color:#f6c453;box-shadow:0 0 0 2px #f6c45322}
.authForm small{display:block;margin-top:4px;color:#7f7a72;text-transform:none;font-weight:400}
.authForm .ageCheck{display:flex;align-items:center;gap:9px;text-transform:none;font-size:12px}.ageCheck input{width:19px;height:19px;accent-color:var(--red)}
#authMessage{min-height:18px;margin:10px 0 0;color:#ff8278;font-size:12px;text-align:center}
.profileStats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}
.profileStats div{display:flex;flex-direction:column;padding:14px;background:#0d0f0e;border:1px solid var(--line);border-radius:8px;text-align:center}
.profileStats b{font:800 34px 'Barlow Condensed',Impact,sans-serif;color:#f6c453}.profileStats span{font-size:10px;color:#a8a194;text-transform:uppercase;letter-spacing:.7px}
.profileNote,#profileRole{font-size:12px;line-height:1.5;color:#bdb5a8}
#trialResult{padding:9px 10px;background:#0d0f0e;border-left:3px solid #f6c453;color:#efe8dc;font-size:12px;line-height:1.4;text-align:left}
@media (max-width:640px),(max-height:460px){#accountCorner{top:8px;right:8px}#accountCorner span{display:none}.authCard{padding:18px}.authTabs{margin:12px 0}.authForm h2{font-size:24px}.authForm>label{margin:7px 0}.authForm input:not([type=checkbox]){padding:9px 10px}#trialInfo{padding:8px 10px;margin-top:8px}}

/* ---------- FTP 38: Figuren-Konfigurator ---------- */
.clubTile.custom.new{background:#1b1f1d;border:2px dashed #ffffff55;display:grid;place-items:center}
.clubTile.custom .plus{font:800 44px 'Barlow Condensed',Impact,sans-serif;color:#f6c453;line-height:1;margin-top:-10px}
.clubTile.custom.new .tname{background:#0008}
#editFig{margin-top:8px;align-self:flex-end;pointer-events:auto}
#figEditor{position:fixed;inset:0;z-index:24;pointer-events:none}
.figPanel{pointer-events:auto;position:absolute;left:0;top:0;bottom:0;width:min(470px,52vw);display:flex;flex-direction:column;background:linear-gradient(90deg,#0f1110f5 70%,#0f1110cc);padding:max(14px,env(safe-area-inset-top)) 18px 14px max(18px,env(safe-area-inset-left))}
.figHead{display:flex;align-items:center;gap:14px}.figHead .selTitle{flex:none;text-align:left;font-size:clamp(20px,2.4vw,30px)}
#figControls{flex:1;overflow-y:auto;padding-right:6px;margin-top:6px}
.figSec .label{margin:12px 0 6px}
.figRow{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.figChip{padding:7px 11px;font-size:12px;border-radius:16px}
.figChip.selected{background:var(--red);border-color:var(--red)}
.figSw{width:30px;height:30px;border-radius:50%;padding:0;border:2px solid #ffffff40}
.figSw.selected{outline:3px solid #f6c453;outline-offset:2px;border-color:#fff}
.figNum b{min-width:52px;text-align:center;font:800 30px 'Barlow Condensed',Impact,sans-serif}
.figNum>button:not(.figChip){width:40px;height:40px;border-radius:50%;padding:0;font-size:22px}
.figNote{display:block;margin-top:5px;font-size:10.5px;color:#a8a194}
#figStatus{min-height:16px;margin:6px 0 0;font-size:12px;color:#f6c453}
.figBtns{display:flex;gap:10px;align-items:center}.figBtns .primary{margin-top:6px;flex:1}.figBtns .quiet{margin-top:6px}
#figDrag{position:absolute;right:24px;bottom:18px;font-size:11px;color:#bdb5a8;letter-spacing:1px}
@media (max-width:700px),(max-height:460px){.figPanel{width:min(400px,58vw);padding:8px 10px}.figHead .brand{display:none}.figSw{width:26px;height:26px}.figSec .label{margin:8px 0 4px}.figChip{padding:5px 9px;font-size:11px}}

/* ---------- FTP 41: Konfigurator neu (Grundfigur oben, Reiter, Kamera folgt dem Reiter) ---------- */
.figSeg{display:flex;gap:0;margin-top:10px;background:#0b0c0b;border:1px solid var(--line);border-radius:10px;padding:3px}
.figSeg button{flex:1;border:0;background:transparent;border-radius:8px;padding:10px 8px;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:#bdb5a8}
.figSeg button.selected{background:var(--red);color:#fff;box-shadow:none}
.figSeg.small{position:absolute;right:20px;top:max(16px,env(safe-area-inset-top));margin:0;pointer-events:auto;background:#0f1110d9}
.figSeg.small button{padding:7px 12px;font-size:11px;flex:none}
.figTabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.figTab{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 7px;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;border-radius:8px;background:#1a1d1b;color:#bdb5a8}
.figTab svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.figTab.selected{background:#2a1513;color:#fff;border-color:var(--red);box-shadow:inset 0 -3px var(--red)}
#figControls{border-top:1px solid var(--line);margin-top:10px;padding-top:2px}
.figKits{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.figKit{padding:6px 2px 5px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9.5px;font-weight:600;border-radius:8px;background:#1a1d1b}
.figKit svg{width:38px;height:38px}
.figKit.selected{border-color:var(--red)}
.figLogo{display:flex;gap:12px;align-items:center}
.figLogoBox{width:84px;height:84px;flex:none;border-radius:10px;border:1px dashed #ffffff45;display:grid;place-items:center;background:#0b0c0b center/contain no-repeat;font-size:10px;color:#8f887c;text-align:center;padding:6px}
.figLogoBox.has{border-style:solid;border-color:#ffffff30;font-size:0;background-color:#ffffff10;background-origin:content-box;padding:8px}
.figLogoBtns{display:flex;flex-direction:column;gap:7px;flex:1}
.figLogoBtns .figChip{padding:10px 12px;font-size:12.5px;text-align:left}
.figLogoBtns .figChip.big{background:var(--red);border-color:var(--red);color:#fff}
.figNum{gap:10px}
.figNum b{min-width:64px;font-size:40px;line-height:1}
.figNumPrev{width:46px;height:46px;border-radius:8px;display:grid;place-items:center;font:800 30px 'Barlow Condensed',Impact,sans-serif;border:1px solid #ffffff30}
.figSw.auto{width:auto;border-radius:16px;padding:0 10px;font-size:11px;background:#1a1d1b !important}
.figBtns{gap:8px}.figBtns .quiet{margin-top:6px;padding:12px 12px}.figBtns .primary{margin-top:6px}
#figDrag{pointer-events:none}
@media (max-width:700px),(max-height:460px){.figSeg{margin-top:6px}.figSeg button{padding:7px 6px;font-size:11px}.figTabs{margin-top:6px;gap:4px}.figTab{padding:5px 2px;font-size:9px}.figTab svg{width:18px;height:18px}
 .figKits{grid-template-columns:repeat(5,1fr);gap:4px}.figKit svg{width:28px;height:28px}.figKit{font-size:8.5px}.figLogoBox{width:64px;height:64px}.figNum b{font-size:30px}.figBtns .quiet{padding:9px 9px}
 .figSeg.small{right:10px;top:8px}.figSeg.small button{padding:6px 9px}}
.figSeg.small .zoom{font-size:16px;padding:4px 12px;margin-left:2px;border-left:1px solid var(--line);border-radius:0}
