*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#070708;color:#eee;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background-image:radial-gradient(circle at 15% 0,#3a0909 0,transparent 25%),linear-gradient(#080809,#111)}a{color:inherit;text-decoration:none}.topbar{height:82px;display:flex;align-items:center;gap:28px;padding:0 clamp(18px,4vw,70px);position:sticky;top:0;z-index:20;background:rgba(5,5,6,.94);backdrop-filter:blur(12px);border-bottom:1px solid #27272a}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:2px;font-size:24px}.brand img{width:46px;height:46px;object-fit:contain}.dot{color:#e72f2f}nav{display:flex;gap:24px;margin-left:auto}nav a,.admin-link{color:#bbb;font-weight:700}nav a:hover,.admin-link:hover{color:#fff}.admin-link{border:1px solid #444;padding:10px 14px;border-radius:8px}.hero{min-height:72vh;display:grid;grid-template-columns:1.3fr .7fr;align-items:center;gap:40px;padding:70px clamp(20px,7vw,120px);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-8%;bottom:-22%;width:620px;height:620px;background:url('/assets/img/punisher.jpg') center/cover;opacity:.10;filter:grayscale(1);border-radius:50%}.eyebrow{color:#ef4444;text-transform:uppercase;letter-spacing:.28em;font-weight:900}.hero h1{font-size:clamp(48px,8vw,108px);line-height:.86;margin:14px 0 24px;letter-spacing:-.05em}.hero h1 span{color:#e52c2c}.hero p{font-size:clamp(18px,2vw,24px);color:#b8b8bd;max-width:720px;line-height:1.55}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#e12b2b;color:#fff;border:1px solid #e12b2b}.btn.secondary{background:#141416;border-color:#3a3a3e}.radio-card{position:relative;z-index:2;background:linear-gradient(145deg,#151517,#080809);border:1px solid #333;border-top:3px solid #e12b2b;border-radius:18px;padding:28px;box-shadow:0 30px 70px #0009}.radio-card .live{display:inline-flex;gap:8px;align-items:center;color:#ff5b5b;font-weight:900}.pulse{width:9px;height:9px;background:#ef4444;border-radius:50%;box-shadow:0 0 0 0 #ef4444;animation:pulse 1.5s infinite}@keyframes pulse{70%{box-shadow:0 0 0 12px #ef444400}}.radio-card h2{font-size:34px;margin:12px 0 4px}.radio-card p{font-size:16px}.section{padding:70px clamp(20px,7vw,120px)}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:24px}.section h2{font-size:clamp(32px,4vw,54px);margin:0}.muted{color:#96969e}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.track{background:#111114;border:1px solid #29292e;border-radius:14px;overflow:hidden;transition:.2s}.track:hover{transform:translateY(-3px);border-color:#555}.thumb{aspect-ratio:16/9;background:#222;display:block;width:100%;object-fit:cover}.track-body{padding:18px}.track h3{font-size:20px;margin:0 0 8px}.desc{color:#a6a6ad;font-size:14px;line-height:1.45;max-height:4.35em;overflow:hidden}.download-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.chip{font-size:12px;padding:8px 10px;border-radius:6px;background:#202024;border:1px solid #35353b;font-weight:800}.chip.disabled{opacity:.35;pointer-events:none}.split{display:grid;grid-template-columns:1fr 1fr;gap:28px}.panel{background:#101012;border:1px solid #29292e;padding:26px;border-radius:14px}.wacken{background:linear-gradient(145deg,#15110d,#090909);border-color:#5b3a12}.wacken img{max-width:220px}.player{aspect-ratio:16/9;width:100%;border:0;border-radius:12px;background:#000}.detail{max-width:1100px;margin:auto}.description{white-space:pre-wrap;color:#c7c7cb;line-height:1.6}.login-wrap{min-height:75vh;display:grid;place-items:center}.login{width:min(460px,92vw);background:#111114;padding:30px;border:1px solid #333;border-top:3px solid #e12b2b;border-radius:14px}.login input,.admin-form input,.admin-form textarea{width:100%;padding:13px;background:#080809;border:1px solid #3a3a3e;color:#fff;border-radius:8px;margin:7px 0 15px}.notice{padding:12px 14px;border-radius:8px;background:#271111;border:1px solid #642020;margin-bottom:15px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.stat{background:#111114;border:1px solid #2c2c31;padding:20px;border-radius:12px}.stat strong{display:block;font-size:30px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid #29292e;font-size:14px}footer{border-top:1px solid #252529;padding:28px clamp(20px,7vw,120px);display:flex;justify-content:space-between;color:#888;gap:20px}@media(max-width:800px){.hero,.split{grid-template-columns:1fr}.hero{padding-top:48px}.radio-card{order:-1}.topbar{gap:12px}.brand span{display:none}nav{gap:12px}.admin-link{padding:8px}.section{padding-top:45px}.hero:after{display:none}footer{flex-direction:column}}

.pwa-install{appearance:none;background:none;border:0;color:#aaa;font:inherit;padding:0;cursor:pointer}.pwa-install:hover{color:#fff}.pwa-install[hidden]{display:none!important}
/* Admin v3 */
.admin-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.status-line{margin-top:14px;padding-top:12px;border-top:1px solid #29292e;color:#85858d;font-size:12px;line-height:1.45}.admin-tracks .section-head{align-items:flex-start}.admin-track-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.admin-track-card{background:linear-gradient(145deg,#141416,#0d0d0f);border:1px solid #303036;border-radius:14px;overflow:hidden;box-shadow:0 15px 32px #0005}.admin-track-card.is-duplicate{border-color:#a06b20;box-shadow:0 0 0 1px #a06b2033,0 15px 32px #0005}.admin-track-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;background:#111;display:block}.admin-track-content{padding:16px}.admin-track-top{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#232329;border:1px solid #383840;color:#bbb;font-size:11px;font-weight:900;letter-spacing:.05em}.badge.warn{background:#3a2811;border-color:#8a5b1b;color:#ffc46a}.admin-track-card h3{font-size:18px;line-height:1.3;margin:0 0 12px}.admin-track-meta{display:grid;gap:6px;color:#999;font-size:12px}.admin-track-meta code{color:#ddd}.admin-track-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.btn.small{padding:9px 12px;font-size:12px}.btn.danger{background:#571919;border-color:#8b2929}.media-list{max-height:420px;overflow:auto;background:#080809;border:1px solid #29292e;border-radius:10px;padding:15px;color:#aaa;white-space:pre-wrap}@media(max-width:800px){.admin-action-grid{grid-template-columns:1fr}.admin-track-grid{grid-template-columns:1fr}}
.short-badge{background:linear-gradient(135deg,#8b0000,#ff4b2b);border-color:rgba(255,120,80,.75);color:#fff}

/* Home Shorts v5 */
.home-shorts{padding:36px clamp(20px,7vw,120px) 28px;background:linear-gradient(180deg,#0e0e10 0%,#09090a 100%);border-bottom:1px solid #252529}.home-shorts-head{margin-bottom:20px}.home-shorts-head p{margin:8px 0 0}.shorts-grid{display:grid;grid-template-columns:repeat(8,minmax(130px,1fr));gap:14px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}.short-card{min-width:130px;background:#111114;border:1px solid #2d2d32;border-radius:14px;overflow:hidden;transition:.2s}.short-card:hover{transform:translateY(-3px);border-color:#555}.short-thumb-wrap{display:block;position:relative;background:#000}.short-thumb{display:block;width:100%;aspect-ratio:9/16;object-fit:cover}.short-label{position:absolute;left:8px;top:8px;padding:5px 7px;border-radius:999px;background:#b41515e8;color:#fff;font-size:10px;font-weight:900;letter-spacing:.08em}.short-body{padding:12px}.short-body h3{font-size:14px;line-height:1.3;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:1100px){.shorts-grid{grid-template-columns:repeat(8,150px)}}@media(max-width:800px){.home-shorts{padding-top:24px}.shorts-grid{grid-template-columns:repeat(8,135px);gap:10px}.home-shorts .section-head{align-items:flex-start}}

/* Home Shorts v6 hover preview */
.short-thumb-wrap{aspect-ratio:9/16;overflow:hidden}.short-preview-frame{display:block;width:100%;height:100%;aspect-ratio:9/16;border:0;background:#000;pointer-events:none}.short-thumb[hidden]{display:none}.short-card{cursor:pointer}.short-body{padding:10px 12px 12px}.short-body h3{margin:0}

/* Home Shorts v7: stable hover preview + vertical Shorts viewer */
.short-thumb-wrap{position:relative;display:block;aspect-ratio:9/16;overflow:hidden;background:#000}
.short-thumb,.short-preview-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.short-preview-frame{border:0;background:#000;pointer-events:none;z-index:2}
.short-label{z-index:3}
.short-thumb[hidden]{display:none}

.shorts-viewer[hidden]{display:none!important}
.shorts-viewer{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.94);display:grid;place-items:center}
body.shorts-viewer-open{overflow:hidden}
.shorts-viewer-track{height:100dvh;width:min(100vw,620px);overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none;background:#000}
.shorts-viewer-track::-webkit-scrollbar{display:none}
.shorts-viewer-item{height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:54px 16px 44px;position:relative}
.shorts-viewer-video{height:min(82dvh,850px);aspect-ratio:9/16;max-width:calc(100vw - 32px);background:#000;border-radius:16px;overflow:hidden;box-shadow:0 24px 70px #000}
.shorts-viewer-video iframe{display:block;width:100%;height:100%;border:0}
.shorts-viewer-title{width:min(100%,480px);padding:12px 6px 0;color:#fff;font-size:15px;font-weight:800;line-height:1.35}
.shorts-viewer-close{position:fixed;top:14px;right:18px;z-index:1010;width:44px;height:44px;border-radius:50%;border:1px solid #444;background:#111c;color:#fff;font-size:30px;line-height:1;cursor:pointer}
.shorts-viewer-hint{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:1010;color:#aaa;font-size:12px;pointer-events:none}
@media(max-width:800px){.shorts-viewer-item{padding:0}.shorts-viewer-video{height:100dvh;width:100vw;max-width:none;border-radius:0}.shorts-viewer-title{position:absolute;left:14px;right:60px;bottom:18px;width:auto;padding:10px 12px;background:linear-gradient(90deg,#000b,#0000);text-shadow:0 1px 3px #000}.shorts-viewer-hint{display:none}.shorts-viewer-close{top:10px;right:10px}}


/* Shorts v8: one persistent audio control for the complete viewer session */
.shorts-sound-toggle{
    position:fixed;
    z-index:10003;
    top:18px;
    left:18px;
    min-height:42px;
    padding:9px 14px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.22);
    background:rgba(10,10,12,.78);
    color:#fff;
    font:inherit;
    font-weight:700;
    cursor:pointer;
    backdrop-filter:blur(10px);
    box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.shorts-sound-toggle:hover{background:rgba(28,28,32,.9)}
@media (max-width:700px){
    .shorts-sound-toggle{top:12px;left:12px;min-height:40px;padding:8px 12px;font-size:13px}
}

/* Shorts v10: active playback + one paused preloaded next Short */
.shorts-viewer-item:not(.is-active) .shorts-viewer-video iframe{pointer-events:none}

/* Home v13: latest video + live Wacken ticker */
.home-live-grid{padding-top:44px}
.latest-panel,.home-wacken-live{min-height:420px}
.latest-video-card{position:relative;display:block;margin-top:18px;border-radius:12px;overflow:hidden;background:#000;border:1px solid #303036}
.latest-video-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .25s ease,filter .25s ease}
.latest-video-card:hover img{transform:scale(1.025);filter:brightness(.8)}
.latest-video-overlay{position:absolute;inset:0;display:grid;place-items:center;font-size:44px;color:#fff;text-shadow:0 3px 18px #000;opacity:.88}
.latest-video-title{font-size:20px;line-height:1.35;margin:14px 0 0}
.compact-actions{margin-top:16px}
.home-wacken-head{display:flex;align-items:center;gap:18px}
.home-wacken-head img{width:130px;max-width:34%;height:auto;margin:0}
.home-wacken-head h2{margin:4px 0 0;font-size:34px}
.home-wacken-ticker{position:relative;overflow:hidden;margin:22px 0 18px;border:1px solid #4c3214;border-radius:10px;background:#090806;white-space:nowrap;height:50px;display:flex;align-items:center}
.home-wacken-track{display:inline-flex;align-items:center;min-width:max-content;animation:homeWackenTicker 75s linear infinite;will-change:transform}
.home-wacken-ticker:hover .home-wacken-track{animation-play-state:paused}
.home-wacken-item{display:inline-block;padding:0 28px;color:#e7e7e7;font-size:14px;line-height:50px;border-right:1px solid #2c2116}
.home-wacken-item strong{color:#ff6a33;margin-right:7px}
@keyframes homeWackenTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.home-wacken-latest{display:grid;gap:9px;margin:0 0 8px}
.home-wacken-latest a{display:block;padding:10px 12px;background:#0c0b09;border:1px solid #2e271d;border-radius:8px;color:#d8d8dc;font-size:14px;line-height:1.4}
.home-wacken-latest a:hover{border-color:#7a4e1c;color:#fff}
@media(max-width:800px){.latest-panel,.home-wacken-live{min-height:0}.home-wacken-head img{width:96px}.home-wacken-head h2{font-size:28px}.home-wacken-track{animation-duration:55s}}


/* Home v14: compact cards that stay inside the two tiles */
.home-live-grid{padding-top:34px}
.home-live-grid .split{align-items:stretch}
.latest-panel,.home-wacken-live{
    min-height:0;
    height:330px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    padding:20px;
}
.latest-panel .eyebrow,.home-wacken-live .eyebrow{font-size:11px}
.latest-panel h2,.home-wacken-live h2{font-size:28px;line-height:1.05;margin:5px 0 0}
.latest-video-card{
    width:100%;
    max-width:360px;
    margin:12px 0 0;
    border-radius:10px;
    flex:0 0 auto;
}
.latest-video-card img{width:100%;height:150px;aspect-ratio:auto;object-fit:cover}
.latest-video-overlay{font-size:34px}
.latest-video-title{
    font-size:16px;
    line-height:1.25;
    margin:10px 0 0;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.compact-actions{margin-top:auto;padding-top:10px}
.compact-actions .btn{padding:9px 13px;font-size:11px}
.home-wacken-head{gap:12px;flex:0 0 auto}
.home-wacken-head img{
    width:78px;
    height:54px;
    max-width:none;
    object-fit:contain;
    margin:0;
    flex:0 0 78px;
}
.home-wacken-head h2{font-size:26px}
.home-wacken-ticker{
    margin:14px 0 12px;
    height:38px;
    border-radius:8px;
    flex:0 0 38px;
}
.home-wacken-item{padding:0 20px;font-size:12px;line-height:38px}
.home-wacken-latest{gap:6px;margin:0;overflow:hidden}
.home-wacken-latest a{
    padding:7px 9px;
    font-size:12px;
    line-height:1.25;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.home-wacken-live .compact-actions{padding-top:8px}
@media(max-width:800px){
    .latest-panel,.home-wacken-live{height:auto;min-height:0;padding:18px}
    .latest-video-card{max-width:none}
    .latest-video-card img{height:auto;aspect-ratio:16/9}
    .home-wacken-head img{width:68px;height:46px;flex-basis:68px}
    .home-wacken-head h2{font-size:24px}
}

/* Home v15: refined latest release + slower, cleaner Wacken news */
.latest-panel .eyebrow{color:#ff8a6b;letter-spacing:.14em}
.latest-panel h2{font-size:26px;letter-spacing:-.02em}
.latest-video-card{border-color:#36363d;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.latest-video-card:hover{border-color:#6a4240}
.latest-video-title{font-weight:800;color:#f4f4f6}

.home-wacken-live{border-color:#5a4325;background:linear-gradient(145deg,#15130f,#101012 58%,#0b0b0d)}
.home-wacken-head img{filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
.home-wacken-head .eyebrow{color:#f0b46a;letter-spacing:.14em}
.home-wacken-head h2{font-size:25px;letter-spacing:-.02em}
.home-wacken-ticker-wrap{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:14px 0 12px;min-width:0}
.home-wacken-ticker-label{display:inline-flex;align-items:center;height:38px;padding:0 10px;border-radius:8px;background:linear-gradient(135deg,#6f160f,#2a0d0a);border:1px solid #8b2e20;color:#fff;font-size:10px;font-weight:900;letter-spacing:.12em;white-space:nowrap;box-shadow:0 5px 14px rgba(0,0,0,.25)}
.home-wacken-ticker{margin:0;height:38px;min-width:0}
.home-wacken-track{animation-duration:180s}
.home-wacken-item{font-size:12px;padding:0 26px}
.home-wacken-subhead{margin:0 0 6px;color:#b7a48d;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.home-wacken-latest{gap:7px;overflow:visible}
.home-wacken-latest a.home-wacken-newsrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;white-space:normal;background:#0d0c0a;border:1px solid #30281d;border-radius:8px;color:#e1e1e4;text-decoration:none;transition:.15s}
.home-wacken-latest a.home-wacken-newsrow:hover{background:#15110c;border-color:#7c5527;color:#fff}
.home-wacken-latest a.home-wacken-newsrow.is-featured{background:linear-gradient(90deg,#171109,#0d0c0a);border-color:#5a4325}
.home-wacken-newsdot{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:20px;padding:0 6px;border-radius:999px;background:#2a2117;border:1px solid #4b3822;color:#f5bc79;font-size:8px;font-weight:900;letter-spacing:.08em}
.home-wacken-newsrow.is-featured .home-wacken-newsdot{background:#6e1d13;border-color:#933122;color:#fff}
.home-wacken-newstitle{font-size:11px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.home-wacken-arrow{color:#d39b5b;font-weight:900}
.home-wacken-live .compact-actions{margin-top:auto;padding-top:8px}
@media(max-width:800px){
  .home-wacken-ticker-wrap{grid-template-columns:1fr;gap:6px}
  .home-wacken-ticker-label{width:max-content;height:28px;padding:0 8px;font-size:9px}
  .home-wacken-track{animation-duration:145s}
  .home-wacken-newstitle{-webkit-line-clamp:2}
  .latest-panel h2,.home-wacken-head h2{font-size:23px}
}

/* Admin uploads + real download buttons v16 */
.upload-panel{max-width:1100px}.upload-two{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end}.upload-check{padding-bottom:10px}.upload-check label{display:flex;align-items:center;gap:8px}.upload-check input{width:auto;margin:0}.upload-file-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}.upload-drop{position:relative;min-height:180px;padding:18px;border:1px dashed #4b4b52;border-radius:14px;background:#0d0d10;display:flex;flex-direction:column;gap:8px;justify-content:center}.upload-drop strong{font-size:17px}.upload-drop span,.upload-drop small{color:#999}.upload-drop input[type=file]{width:100%;font-size:12px}.upload-drop.done{border-color:#2f7c50;background:#0d1712}.upload-drop.failed{border-color:#9d3a35;background:#1a0e0d}.upload-progress{height:5px;border-radius:99px;background:#25252a;overflow:hidden}.upload-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff5e45,#ff9a65);transition:width .15s}.upload-note{margin:8px 0 20px;padding:12px 14px;border:1px solid #303037;border-radius:10px;background:#101014;color:#aaa;font-size:13px}.download-chip{border-color:#7a3b2e;background:#23120f}.detail-cover{display:block;max-width:720px;width:100%;max-height:720px;object-fit:contain;background:#080808;border-radius:14px}.local-player{width:min(100%,900px);height:auto;aspect-ratio:16/9;background:#000}
@media(max-width:900px){.upload-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-two{grid-template-columns:1fr}.upload-check{padding:0}}
@media(max-width:560px){.upload-file-grid{grid-template-columns:1fr}.upload-drop{min-height:150px}}
