/*
Theme Name: Frequenzbetrieb
Theme URI: https://www.frequenzbetrieb.de
Author: Michael Braun
Author URI: https://www.frequenzbetrieb.de
Description: WordPress-Theme für den Verein Frequenzbetrieb. Basiert auf dem Blueprint-Theme; Startpunkt für ein eigenständiges Design. Custom Post Types für Releases, Events, Podcast, Artists, Galerie u. m. Responsiv, cross-browser.
Version: 2.4.7
Requires at least: 6.2
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: djmb
Domain Path: /languages
*/

/* ============ FONTS ============ */
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/chakrapetch-500.woff2) format('woff2')}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/chakrapetch-700.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/archivo-400.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/archivo-600.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url(assets/fonts/archivo-800.woff2) format('woff2')}

/* ============ TOKENS ============ */
:root{
  --paper:#d3d2cd; --paper2:#cbcac4; --card:#e7e6e1; --card2:#dedcd6;
  --ink:#0d0d0f; --ink2:#17171a; --ink-soft:#3a3a37;
  --line:rgba(13,13,15,.85); --line-soft:rgba(13,13,15,.35); --line-faint:rgba(13,13,15,.14);
  --wline:rgba(240,239,233,.7); --wline-soft:rgba(240,239,233,.28);
  --red:#e1121d; --red-deep:#b20d15;
  --text:#12120f; --onink:#f0efe9; --muted:#555450; --dim:#6c6b65;
  --fg:var(--ink); --fg-soft:var(--ink-soft);
  --disp:'Chakra Petch',system-ui,sans-serif;
  --sans:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --max:1320px; --rail:60px; --player:74px;
  --nav-h:62px; --gap-top:clamp(30px,4.5vw,54px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 10px)}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;padding-bottom:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:700;letter-spacing:.01em;line-height:1.05}
button{font-family:inherit}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.skip-link{position:absolute;left:-999px;top:0;z-index:200;background:var(--ink);color:var(--onink);padding:10px 16px;font-family:var(--mono);font-size:12px}
.skip-link:focus{left:8px;top:8px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.screen-reader-text:focus{position:static!important;width:auto;height:auto;clip:auto}
/* Mark the current page in the menu (a11y + orientation) */
.menu-list .current-menu-item>a,.menu-list .current_page_item>a,.menu-list .current-menu-parent>a,.menu-list a[aria-current]{color:var(--red)}

/* ============ BACKGROUND GRAPHICS ============ */
.fx{position:fixed;inset:0;pointer-events:none}
.fx.grid{z-index:-2;opacity:.5;background-image:linear-gradient(var(--line-faint) 1px,transparent 1px),linear-gradient(90deg,var(--line-faint) 1px,transparent 1px);background-size:44px 44px}
.fx.grain{z-index:-1;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.ribbon{position:fixed;z-index:-2;pointer-events:none;top:-5%;right:-7%;width:min(900px,72vw);height:auto;opacity:.34}
.ribbon.l{top:auto;right:auto;left:-9%;bottom:-8%;width:min(720px,58vw);-webkit-transform:scale(-1,1);transform:scale(-1,1);opacity:.22}
.circuit{position:fixed;z-index:-2;pointer-events:none;left:-4%;bottom:-4%;width:min(620px,52vw);height:auto;opacity:.5}
@-webkit-keyframes spin{to{-webkit-transform:translateY(-50%) rotate(360deg);transform:translateY(-50%) rotate(360deg)}}
@keyframes spin{to{-webkit-transform:translateY(-50%) rotate(360deg);transform:translateY(-50%) rotate(360deg)}}
@-webkit-keyframes spinc{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
@keyframes spinc{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
@keyframes pulse{50%{opacity:.35}}

/* ============ LEFT RAIL ============ */
.rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail);z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;border-right:1px solid var(--line);background:var(--paper2)}
.rail a{position:relative;width:8px;height:8px;border:1px solid var(--line);background:transparent;transition:.2s}
.rail a:hover,.rail a.active{background:var(--red);border-color:var(--red)}
.rail a span{position:absolute;left:18px;top:50%;transform:translateY(-50%);white-space:nowrap;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg);opacity:0;pointer-events:none;transition:.2s;background:var(--card);padding:5px 9px;border:1px solid var(--line)}
.rail a:hover span{opacity:1;left:22px}
.rail .rtop{position:absolute;top:14px;font-family:var(--disp);font-weight:700;color:var(--fg);font-size:15px}
.rail .rlabel{writing-mode:vertical-rl;font-family:var(--mono);font-size:10px;letter-spacing:.3em;color:var(--dim);text-transform:uppercase;position:absolute;bottom:14px}

/* ============ NAV ============ */
header.nav{position:fixed;top:0;left:var(--rail);right:0;z-index:45;min-height:var(--nav-h);display:flex;align-items:center;background:var(--paper);border-bottom:1px solid var(--line)}
.nav-in{width:100%;max-width:var(--max);margin:0 auto;padding:0 clamp(16px,3vw,32px);display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--nav-h)}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand img{height:17px;width:auto}
.brand .dot{width:7px;height:7px;background:var(--red);-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite}
.navclock{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;white-space:nowrap}
.navclock b{color:var(--fg)}
nav.menu{display:flex;gap:22px;flex-wrap:wrap}
nav.menu a{font-size:12px;letter-spacing:.13em;color:var(--fg-soft);text-transform:uppercase;font-weight:600;transition:.2s}
nav.menu a:hover,nav.menu li.current-menu-item>a{color:var(--red)}
nav.menu ul{list-style:none;margin:0;padding:0;display:flex;gap:22px;flex-wrap:wrap}
.nav-cta{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);padding:9px 16px;color:var(--fg);transition:.2s;white-space:nowrap}
.nav-cta:hover{background:var(--ink);color:var(--paper)}
.lang-switch{display:flex;align-items:center;gap:0;font-family:var(--mono);font-size:11px;letter-spacing:.12em;border:1px solid var(--line);white-space:nowrap}
.lang-switch .lang-opt{padding:8px 9px;color:var(--fg-soft);transition:.2s;line-height:1}
.lang-switch .lang-opt+.lang-opt{border-left:1px solid var(--line)}
.lang-switch .lang-opt:hover{color:var(--fg)}
.lang-switch .lang-opt.is-on{background:var(--red);color:#fff}
.burger{display:none;flex-direction:column;gap:4px;cursor:pointer;background:none;border:0;padding:10px;min-width:44px;min-height:44px;align-items:center;justify-content:center}
.burger span{width:22px;height:2px;background:var(--ink);display:block}

.page{padding-left:var(--rail);padding-top:var(--nav-h)}
.shell{max-width:var(--max);margin:0 auto;padding:var(--gap-top) clamp(16px,3vw,32px) clamp(16px,3vw,26px);position:relative}
.shell::before,.shell::after{content:"";position:absolute;width:22px;height:22px;pointer-events:none;z-index:5}
.shell::before{left:6px;top:calc(var(--gap-top) - 16px);border-left:1px solid var(--ink);border-top:1px solid var(--ink)}
.shell::after{right:6px;bottom:0;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.frame-tags{position:absolute;inset:0;pointer-events:none;z-index:5;font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.frame-tags span{position:absolute}
.frame-tags .tr{top:calc(var(--gap-top) - 18px);right:36px;color:var(--fg)}
.frame-tags .bl{bottom:-3px;left:36px;color:var(--red)}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 22px;font-weight:700;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;transition:.2s;cursor:pointer;border:1px solid transparent;min-height:44px}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-deep)}
.btn-out{border-color:currentColor;background:transparent}
.btn-out.dk{color:var(--onink)}.btn-out.dk:hover{background:var(--onink);color:var(--fg)}
.btn-out.lt{color:var(--fg)}.btn-out.lt:hover{background:var(--ink);color:var(--paper)}
.btn-share svg{width:16px;height:16px}
/* ---- social share bar (release/news/event) ---- */
.share-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:28px 0 0}
.share-bar .share-lbl{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--red);margin-right:2px}
.share-bar a.share-net,.share-bar button.share-copy,.share-bar button.share-native{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--fg);padding:9px;min-height:40px;cursor:pointer;transition:.15s;-webkit-appearance:none;appearance:none}
.share-bar button.share-native{padding:9px 13px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.share-bar a.share-net svg,.share-bar button.share-copy svg,.share-bar button.share-native svg{width:17px;height:17px;flex:0 0 17px}
.share-bar a.share-net:hover,.share-bar a.share-net:focus-visible,.share-bar button.share-copy:hover,.share-bar button.share-copy:focus-visible,.share-bar button.share-native:hover,.share-bar button.share-native:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.share-bar button.share-copy.copied{background:var(--red);color:#fff;border-color:var(--red)}
.rel-count{margin:0 0 22px}
.rel-count .rel-out{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg);margin:0 0 10px}
.rel-count .rel-out::before{content:"> ";color:var(--red)}
.rel-count .sl-count{justify-content:flex-start;margin:0}

/* ---- Homepage: next-release countdown tile (in the newsletter column) ---- */
.rel-tile{position:relative;overflow:hidden;margin-top:22px;background:var(--card);border:1px solid var(--line);border-left:2px solid var(--red);padding:20px;-webkit-clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
.rel-tile::after{content:"";position:absolute;right:0;bottom:0;width:14px;height:14px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none}
.rel-tile .sec-idx{color:var(--red);font-family:var(--mono);font-size:11px;letter-spacing:.14em}
.rel-tile-head{display:flex;gap:14px;align-items:center;margin:10px 0 14px}
.rel-tile-cover{position:relative;display:block;flex:0 0 64px;width:64px;height:64px;overflow:hidden;border:1px solid var(--line);-webkit-clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}
.rel-tile-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.04);filter:grayscale(1) contrast(1.04);transition:-webkit-filter .3s,filter .3s}
.rel-tile-cover:hover img{-webkit-filter:grayscale(0);filter:grayscale(0)}
.rel-tile-cover .ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--card2)}
.rel-tile-title{font-size:clamp(19px,2.4vw,26px);text-transform:uppercase;line-height:1.05;margin:0 0 4px}
.rel-tile .rel-out{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-soft);margin:0}
.rel-tile .rel-out::before{content:"> ";color:var(--red)}
.rel-tile .sl-count{justify-content:flex-start;margin:0 0 16px}
.rel-tile-actions{display:flex;gap:10px;flex-wrap:wrap}
.rel-tile-actions .btn{padding:11px 16px}
.rel-tile-actions .btn svg{width:16px;height:16px}

/* ============ BENTO DASHBOARD ============ */
.dash{display:grid;gap:3px;background:var(--ink);padding:3px;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);
  grid-template-rows:auto repeat(5,minmax(150px,auto));
  grid-template-areas:
    "push   push   stats   events"
    "hero   hero   stats   events"
    "hero   hero   status  events"
    "rel1   rel2   rel3    events"
    "about  about  podcast news"
    "social social podcast news";}
.tile{position:relative;background:var(--card);display:flex;flex-direction:column;overflow:hidden;min-width:0;
  -webkit-clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
.tile.dark{background:var(--ink);color:var(--onink)}
.tile.link{cursor:pointer;transition:-webkit-transform .18s,transform .18s,-webkit-filter .18s,filter .18s}
.tile.link:hover{transform:translateY(-2px);-webkit-filter:drop-shadow(5px 5px 0 var(--ink));filter:drop-shadow(5px 5px 0 var(--ink))}
.tile.dark.link:hover{-webkit-filter:drop-shadow(5px 5px 0 var(--red));filter:drop-shadow(5px 5px 0 var(--red))}
.th{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 13px;border-bottom:1px solid var(--line-soft);font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-soft);flex-shrink:0}
.tile.dark .th{border-color:var(--wline-soft);color:var(--onink)}
.th .st{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.th .st i{width:6px;height:6px;background:var(--red);-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite;font-style:normal}
.tb{padding:16px;flex:1;min-width:0;display:flex;flex-direction:column}
.vlabel{position:absolute;right:4px;bottom:12px;writing-mode:vertical-rl;font-family:var(--mono);font-size:8px;letter-spacing:.26em;text-transform:uppercase;color:var(--dim);z-index:3;pointer-events:none}
.tile.dark .vlabel{color:rgba(240,239,233,.4)}
.tile:not(.dark) .tb::after{content:"";position:absolute;left:9px;bottom:9px;width:16px;height:16px;border-left:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);pointer-events:none}
/* varied corner cuts */
.cut-br{-webkit-clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%);clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}
.cut-bl{-webkit-clip-path:polygon(0 0,100% 0,100% 100%,18px 100%,0 calc(100% - 18px));clip-path:polygon(0 0,100% 0,100% 100%,18px 100%,0 calc(100% - 18px))}
.cut-trbl{-webkit-clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px))}
/* circuit traces inside boxes */
.tile::before{content:"";position:absolute;top:0;right:0;width:132px;height:132px;pointer-events:none;z-index:-1;
  background:no-repeat top right/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='132' height='132' fill='none' stroke='%230d0d0f' stroke-opacity='0.15' stroke-width='1'><path d='M132 36 H76 L56 56 H0'/><path d='M98 0 V46 L78 66 V132'/><path d='M132 92 H108 L96 104 H0'/><circle cx='56' cy='56' r='2.5' fill='%230d0d0f' fill-opacity='0.3' stroke='none'/><circle cx='98' cy='20' r='2' fill='%23e1121d' stroke='none'/></svg>")}
.tile.dark::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='132' height='132' fill='none' stroke='%23f0efe9' stroke-opacity='0.13' stroke-width='1'><path d='M132 36 H76 L56 56 H0'/><path d='M98 0 V46 L78 66 V132'/><path d='M132 92 H108 L96 104 H0'/><circle cx='56' cy='56' r='2.5' fill='%23f0efe9' fill-opacity='0.22' stroke='none'/><circle cx='98' cy='20' r='2' fill='%23e1121d' stroke='none'/></svg>")}

/* hero */
.t-push{grid-area:push}
.t-hero{grid-area:hero}
.t-hero .tb{justify-content:center;position:relative;overflow:hidden}
.t-hero .hero-deco{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.t-hero .hero-deco .emblem{position:absolute;right:-90px;top:50%;width:460px;height:460px;-webkit-transform:translateY(-50%);transform:translateY(-50%);opacity:.9}
.t-hero .hero-deco .ticks{-webkit-transform-box:fill-box;transform-box:fill-box;-webkit-transform-origin:center;transform-origin:center;-webkit-animation:spinc 32s linear infinite;animation:spinc 32s linear infinite}
.t-hero .hero-deco .radar{position:absolute;right:-90px;top:50%;width:460px;height:460px;-webkit-transform:translateY(-50%);transform:translateY(-50%);border-radius:50%;background:conic-gradient(from 0deg,rgba(240,239,233,.14),transparent 55%);-webkit-mask:radial-gradient(circle,#000 0 58%,transparent 59%);mask:radial-gradient(circle,#000 0 58%,transparent 59%);-webkit-animation:spin 8s linear infinite;animation:spin 8s linear infinite;opacity:.7}
.t-hero .hero-deco .cross{position:absolute;left:22px;bottom:18px;font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--dim);text-transform:uppercase}
.t-hero .hero-deco .cross b{color:var(--red)}
.t-hero .inner{position:relative;z-index:2}
.t-hero img.logo{width:min(360px,80%);margin-bottom:20px}
.t-hero h1{font-size:clamp(32px,4.4vw,58px);line-height:.9;text-transform:uppercase;margin-bottom:15px;color:var(--onink)}
.t-hero h1 .l2{-webkit-text-stroke:1px var(--onink);color:transparent}
.t-hero p{color:rgba(240,239,233,.62);max-width:40ch;font-size:15px;margin:0 0 20px}
.t-hero .acts{display:flex;gap:11px;flex-wrap:wrap}

/* stats */
.t-stats{grid-area:stats}
.t-stats .tb{padding:0;justify-content:center}
.t-stats .row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-soft)}
.t-stats .row:last-child{border-bottom:0}
.t-stats .row b{font-family:var(--disp);font-size:26px;line-height:1;color:var(--fg)}
.t-stats .row.hl b{color:var(--red)}
.t-stats .row span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:right;max-width:12ch}

/* status */
.t-status{grid-area:status}
.t-status .tb{padding:0;position:relative}
#miniwave{width:100%;height:100%;display:block;flex:1}
.t-status .readout{position:absolute;left:13px;bottom:11px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--fg);z-index:2}
.t-status .readout small{display:block;color:var(--muted);font-size:9px;letter-spacing:.16em;margin-top:2px}

/* releases */
.t-rel1{grid-area:rel1}.t-rel2{grid-area:rel2}.t-rel3{grid-area:rel3}
/* Grid-Release-Kacheln: den margin-top der eigenständigen .rel-tile aufheben (sonst Lücke in der Zelle) */
.tile.rel-tile{margin-top:0}
.rel-tile .tb{padding:0;position:relative;justify-content:flex-end;min-height:180px}
.rel-tile .art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.rel-tile .art img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05);opacity:.85}
.rel-tile .art svg{width:150px;height:150px;opacity:.5;transition:.4s}
.rel-tile:hover .art svg{opacity:.85;-webkit-transform:scale(1.05);transform:scale(1.05)}
.rel-tile .idx{position:absolute;left:13px;top:11px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--onink);z-index:3}
.rel-tile .play{position:absolute;top:11px;right:11px;z-index:3;width:42px;height:42px;padding:0;cursor:pointer;border-radius:50%;border:1px solid var(--wline);display:flex;align-items:center;justify-content:center;transition:.2s;background:rgba(13,13,15,.35);-webkit-appearance:none;appearance:none}
.rel-tile:hover .play{background:var(--red);border-color:var(--red)}
.rel-tile .play svg{width:14px;height:14px;margin-left:2px;fill:var(--onink)}
.rel-tile .meta{position:relative;z-index:2;padding:14px;background:-webkit-linear-gradient(top,transparent,rgba(13,13,15,.9));background:linear-gradient(180deg,transparent,rgba(13,13,15,.9))}
.rel-tile .meta h3{font-size:19px;text-transform:uppercase;color:var(--onink)}
.rel-tile .meta .d{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;font-family:var(--mono);font-size:10px}
.rel-tile .meta .d span{border:1px solid var(--wline-soft);padding:3px 6px;color:rgba(240,239,233,.7)}
.rel-tile .meta .d span.bpm{color:#fff;border-color:var(--red);background:var(--red)}

/* events */
.t-events{grid-area:events}
.t-events .tb{padding:0}
.ev{display:flex;gap:14px;align-items:center;padding:14px;border-bottom:1px solid var(--line-soft);transition:.2s}
.ev:hover{background:var(--card2)}
.ev .d{font-family:var(--disp);text-align:center;min-width:42px}
.ev .d b{display:block;font-size:23px;line-height:1;color:var(--fg)}
.ev .d span{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--red);text-transform:uppercase}
.ev .info h4{font-size:15px;text-transform:uppercase;font-weight:600}
.ev .info p{margin:3px 0 0;color:var(--muted);font-size:12px}
.ev.tba{opacity:.5}
.t-events .foot{margin-top:auto;padding:12px 14px;border-top:1px solid var(--line-soft)}
.t-events .foot a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg)}
.t-events .foot a:hover{color:var(--red)}

/* about */
.t-about{grid-area:about}
.t-about h2{font-size:clamp(22px,2.4vw,32px);text-transform:uppercase;margin-bottom:11px}
.t-about h2 span{color:var(--red)}
.t-about p{color:var(--muted);font-size:14px;margin:0}
.t-about .lead{color:var(--fg);font-weight:500;font-size:16px;margin-bottom:9px}

/* podcast */
.t-podcast{grid-area:podcast}
.t-podcast .tb{padding:0;position:relative;justify-content:flex-end;min-height:220px}
.t-podcast .pd{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.t-podcast .pd img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1);filter:grayscale(1);opacity:.6}
.t-podcast .pd svg{width:150px;height:150px;opacity:.45}
.t-podcast .bp{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;z-index:2;transition:.2s}
.t-podcast:hover .bp{-webkit-transform:translate(-50%,-50%) scale(1.1);transform:translate(-50%,-50%) scale(1.1)}
.t-podcast .bp svg{width:22px;height:22px;fill:#fff;margin-left:3px}
.t-podcast .cap{position:relative;z-index:2;padding:15px;background:-webkit-linear-gradient(top,transparent,rgba(13,13,15,.85));background:linear-gradient(180deg,transparent,rgba(13,13,15,.85))}
.t-podcast .cap h3{font-size:20px;text-transform:uppercase;color:var(--onink)}
.t-podcast .cap p{color:rgba(240,239,233,.6);font-size:12px;margin:4px 0 0;font-family:var(--mono);letter-spacing:.06em}

/* news */
.t-news{grid-area:news}
.t-news .tb{padding:0}
.na{display:block;padding:14px 15px;border-bottom:1px solid var(--line-soft);transition:.2s}
.na:hover{background:var(--card2)}
.na .date{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--red);text-transform:uppercase}
.na h4{font-size:15px;text-transform:uppercase;font-weight:600;margin:5px 0 0;line-height:1.15}

/* social */
.t-social{grid-area:social}
.t-social .tb{flex-direction:row;flex-wrap:wrap;gap:8px;align-content:flex-start}
.t-social a{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-soft);border:1px solid var(--line);padding:6px 13px;transition:.2s;min-height:40px;display:inline-flex;align-items:center;gap:9px}
.t-social a:hover{background:var(--ink);color:var(--paper)}
.t-social a .soc-ico{width:28px;height:28px;flex-shrink:0;color:var(--red);transition:color .2s}
.t-social a:hover .soc-ico{color:var(--paper)}

/* ============ INNER PAGE LAYOUT ============ */
.inner-main{max-width:var(--max);margin:0 auto;padding:var(--gap-top) clamp(16px,3vw,32px) clamp(40px,6vw,72px);position:relative}
.page-head{margin-bottom:clamp(26px,4vw,44px);border-bottom:1px solid var(--line);padding-bottom:22px}
.page-head .sec-idx{font-family:var(--mono);font-size:11px;color:var(--red);letter-spacing:.18em;text-transform:uppercase}
.page-head h1{font-size:clamp(30px,5vw,56px);text-transform:uppercase;margin:12px 0 0;position:relative;border-left:3px solid var(--red);padding-left:16px}
/* scramble "decode" on load: JS adds/removes .decoding while the title resolves */
.page-head h1.decoding{-webkit-animation:djmb-tshake .11s steps(2) infinite;animation:djmb-tshake .11s steps(2) infinite}
@-webkit-keyframes djmb-tshake{0%{text-shadow:2px 0 0 rgba(225,18,29,.6),-2px 0 0 rgba(56,225,255,.5);-webkit-transform:translate(0,0)}50%{text-shadow:-2px 0 0 rgba(225,18,29,.6),2px 0 0 rgba(56,225,255,.5);-webkit-transform:translate(1px,-1px)}100%{text-shadow:1px 0 0 rgba(225,18,29,.45),-1px 0 0 rgba(56,225,255,.4);-webkit-transform:translate(-1px,0)}}
@keyframes djmb-tshake{0%{text-shadow:2px 0 0 rgba(225,18,29,.6),-2px 0 0 rgba(56,225,255,.5);transform:translate(0,0)}50%{text-shadow:-2px 0 0 rgba(225,18,29,.6),2px 0 0 rgba(56,225,255,.5);transform:translate(1px,-1px)}100%{text-shadow:1px 0 0 rgba(225,18,29,.45),-1px 0 0 rgba(56,225,255,.4);transform:translate(-1px,0)}}
.page-head .crumbs{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
.page-head .crumbs a:hover{color:var(--red)}

/* generic content typography */
.entry{max-width:75ch}
.entry p{margin:0 0 1.1em;color:var(--text)}
.entry h2{font-size:clamp(22px,3vw,32px);text-transform:uppercase;margin:1.4em 0 .5em}
.entry h3{font-size:20px;text-transform:uppercase;margin:1.2em 0 .4em}
.entry a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.entry img,.entry iframe{max-width:100%}
.entry ul,.entry ol{margin:0 0 1.1em;padding-left:1.3em}
.entry li{margin:.3em 0}
.entry blockquote{margin:1.2em 0;padding:12px 18px;border-left:3px solid var(--red);background:var(--card);font-style:italic}
.entry code{font-family:var(--mono);background:var(--card);padding:2px 5px;font-size:.9em}
.entry figure{margin:1.2em 0}
.entry figcaption{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:6px}
.wp-caption{max-width:100%}
.aligncenter{margin-inline:auto}
.alignleft{float:left;margin:0 18px 12px 0}
.alignright{float:right;margin:0 0 12px 18px}
.sticky,.gallery-caption,.bypostauthor{}

/* archive grids */
.grid-cards{display:grid;gap:clamp(12px,2vw,20px);grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.pcard{position:relative;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;transition:-webkit-transform .18s,transform .18s}
.pcard:hover{transform:translateY(-3px)}
.pcard .thumb{display:block;aspect-ratio:1/1;position:relative;overflow:hidden;background:var(--ink)}
.pcard .thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05)}
.pcard .thumb .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.pcard .thumb .ph svg{width:44%;height:44%;opacity:.5}
.pcard .pbody{padding:14px 15px}
.pcard h3{font-size:18px;text-transform:uppercase}
.pcard .metaline{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap;font-family:var(--mono);font-size:10px}
.pcard .metaline span{border:1px solid var(--line-soft);padding:3px 6px;color:var(--muted)}
.pcard .metaline span.bpm{color:#fff;background:var(--red);border-color:var(--red)}
.pcard .date{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--red);text-transform:uppercase}

/* ---- Cyberpunk hover: release/podcast cards ---- */
/* Shared base (applies to every card, JS assigns a random fx-* variant on top) */
.pcard{transition:-webkit-transform .18s,transform .18s,box-shadow .18s,border-color .18s}
.pcard:hover{transform:translateY(-3px);border-color:var(--red);box-shadow:6px 6px 0 var(--ink)}
.pcard .thumb img{transition:-webkit-filter .3s,filter .3s,-webkit-transform .5s,transform .5s}
.pcard:hover .thumb img{-webkit-filter:grayscale(0) contrast(1.06);filter:grayscale(0) contrast(1.06);-webkit-transform:scale(1.05);transform:scale(1.05)}
.pcard .thumb::before,.pcard .thumb::after{transition:width .2s,height .2s}
.pcard:hover .thumb::before,.pcard:hover .thumb::after{width:24px;height:24px}
.pcard h3 a{transition:color .15s}
.pcard:hover h3 a{color:var(--red)}
/* card index badge (bottom-left, appears on hover) */
.pcard .thumb .cardno{position:absolute;left:12px;bottom:12px;z-index:4;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;color:#fff;background:rgba(13,13,15,.6);padding:3px 8px;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;pointer-events:none}
.pcard:hover .thumb .cardno{opacity:1;transform:translateY(0)}
.pcard .thumb .cardno::before{content:"// ";color:var(--red)}
/* scanline element (only shown by the fx-scan variant) */
.pcard .thumb .scan{position:absolute;left:0;right:0;top:0;height:2px;z-index:4;opacity:0;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--red) 25%,var(--red) 75%,transparent);box-shadow:0 0 8px rgba(225,18,29,.6)}
/* play button: hidden until hover/focus, cyberpunk pop-in */
.pcard .thumb .play{opacity:0;transform:scale(.85);transition:opacity .2s,transform .2s,background .2s,border-color .2s}
.pcard:hover .thumb .play,.pcard .thumb .play:focus-visible{opacity:1;transform:scale(1)}
.pcard .thumb .play:hover{background:var(--red)!important;border-color:var(--red)!important}
@media (hover:none){.pcard .thumb .play{opacity:1;-webkit-transform:none;transform:none}}

/* ---- Random hover variants (assigned per-hover by JS) ---- */
/* 1) RGB split / chromatic aberration */
.pcard.fx-rgb:hover .thumb img{filter:grayscale(0) contrast(1.06) drop-shadow(1.6px 0 0 rgba(225,18,29,.55)) drop-shadow(-1.6px 0 0 rgba(56,225,255,.5));transform:scale(1.05)}
/* 2) Scanline sweep */
.pcard.fx-scan:hover .thumb img{transform:scale(1.04)}
.pcard.fx-scan:hover .thumb .scan{opacity:.85;-webkit-animation:pcscan 1.1s linear infinite;animation:pcscan 1.1s linear infinite}
@-webkit-keyframes pcscan{0%{top:-2px}100%{top:100%}}
@keyframes pcscan{0%{top:-2px}100%{top:100%}}
/* 3) Glitch shake */
.pcard.fx-glitch:hover .thumb img{-webkit-animation:pcglitch .4s steps(2) infinite;animation:pcglitch .4s steps(2) infinite}
@-webkit-keyframes pcglitch{0%,100%{transform:translate(0,0) scale(1.04);filter:grayscale(0) contrast(1.1)}25%{transform:translate(-3px,1px) scale(1.04);filter:grayscale(0) contrast(1.1) drop-shadow(3px 0 0 rgba(225,18,29,.6)) drop-shadow(-3px 0 0 rgba(56,225,255,.5))}50%{transform:translate(3px,-1px) scale(1.04)}75%{transform:translate(-1px,-2px) scale(1.04);filter:grayscale(0) contrast(1.1) drop-shadow(-3px 0 0 rgba(225,18,29,.6)) drop-shadow(3px 0 0 rgba(56,225,255,.5))}}
@keyframes pcglitch{0%,100%{transform:translate(0,0) scale(1.04);filter:grayscale(0) contrast(1.1)}25%{transform:translate(-3px,1px) scale(1.04);filter:grayscale(0) contrast(1.1) drop-shadow(3px 0 0 rgba(225,18,29,.6)) drop-shadow(-3px 0 0 rgba(56,225,255,.5))}50%{transform:translate(3px,-1px) scale(1.04)}75%{transform:translate(-1px,-2px) scale(1.04);filter:grayscale(0) contrast(1.1) drop-shadow(-3px 0 0 rgba(225,18,29,.6)) drop-shadow(3px 0 0 rgba(56,225,255,.5))}}
/* 4) Deep zoom */
.pcard.fx-zoom:hover .thumb img{filter:grayscale(0) contrast(1.08) brightness(1.03);transform:scale(1.14)}
/* 5) Signal flicker / invert flash */
.pcard.fx-invert:hover .thumb img{-webkit-animation:pcflick .55s steps(1) 1;animation:pcflick .55s steps(1) 1}
@-webkit-keyframes pcflick{0%{filter:invert(1) grayscale(1)}25%{filter:none}45%{filter:invert(1) hue-rotate(180deg)}65%{filter:none}100%{filter:grayscale(0) contrast(1.05)}}
@keyframes pcflick{0%{filter:invert(1) grayscale(1)}25%{filter:none}45%{filter:invert(1) hue-rotate(180deg)}65%{filter:none}100%{filter:grayscale(0) contrast(1.05)}}

/* blog list */
.post-list{display:flex;flex-direction:column;gap:2px;background:var(--line);border:1px solid var(--line)}
.post-row{display:grid;grid-template-columns:150px 1fr;gap:20px;background:var(--card);padding:20px}
.post-row .pthumb{aspect-ratio:1/1;overflow:hidden;background:var(--ink)}
.post-row .pthumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1);filter:grayscale(1)}
.post-row h2{font-size:clamp(19px,2.4vw,26px);text-transform:uppercase;margin:6px 0 8px}
.post-row .excerpt{color:var(--muted);font-size:14px}

/* single release / event / podcast detail */
.detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,4vw,50px);align-items:start}
.detail .cover{position:relative;background:var(--ink);aspect-ratio:1/1;overflow:hidden;border:1px solid var(--ink)}
.detail .cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}
/* full flyer/poster — show the whole image, no cropping */
.detail .cover.full{aspect-ratio:auto;background:var(--ink)}
.detail .cover.full img{height:auto;-o-object-fit:contain;object-fit:contain}
.detail .cover .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.detail .cover .ph svg{width:50%;height:50%;opacity:.5}
.spec{border:1px solid var(--line);margin:0 0 24px}
.spec .r{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line-soft);font-size:14px}
.spec .r:last-child{border-bottom:0}
.spec .r .k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.spec .r .v{font-weight:600;text-align:right}
.spec .r .v.bpm{color:var(--red);font-family:var(--disp);font-size:18px}
.buylinks{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 22px}
.buylinks a{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);padding:11px 15px;transition:.2s;min-height:42px;display:inline-flex;align-items:center}
.buylinks a:hover{background:var(--ink);color:var(--paper)}
.videowrap{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden;margin-bottom:22px}
.videowrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* audio embeds (Mixcloud/Soundcloud): use the player's own height, no 16:9 void */
.videowrap.is-audio.loaded{aspect-ratio:auto;height:var(--embed-h,180px);min-height:0;background:transparent}

/* pagination */
.pagination{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:clamp(30px,5vw,50px)}
.pagination a,.pagination span{font-family:var(--mono);font-size:12px;padding:10px 14px;border:1px solid var(--line);min-width:42px;text-align:center}
.pagination .current{background:var(--ink);color:var(--paper)}
.pagination a:hover{background:var(--red);color:#fff;border-color:var(--red)}
.post-nav{display:flex;justify-content:space-between;gap:16px;margin-top:36px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.post-nav a:hover{color:var(--red)}

/* forms + comments */
.field{margin-bottom:14px}
.field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-soft);margin-bottom:7px}
input[type=text],input[type=email],input[type=url],input[type=search],input[type=password],textarea,select{width:100%;background:var(--card);border:1px solid var(--line);padding:13px 14px;color:var(--text);font-family:var(--sans);font-size:15px;transition:.2s;border-radius:0;-webkit-appearance:none;appearance:none}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px rgba(225,18,29,.18)}
textarea{resize:vertical;min-height:120px}
.comments{margin-top:44px;border-top:1px solid var(--line);padding-top:28px}
.comments .clist{list-style:none;margin:0 0 24px;padding:0}
.comments .clist li{padding:16px 0;border-bottom:1px solid var(--line-soft)}
.comments .cauthor{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.comments .cdate{color:var(--muted);font-size:11px;font-family:var(--mono)}

/* ============ TERMINAL / CONTACT (front page) ============ */
.terminal{border-top:1px solid var(--line);margin-top:12px;background:var(--paper2)}
.term-in{max-width:var(--max);margin:0 auto;padding:clamp(40px,6vw,72px) clamp(16px,3vw,32px);display:grid;grid-template-columns:1fr 1fr;gap:44px}
.term-head .sec-idx{font-family:var(--mono);font-size:11px;color:var(--red);letter-spacing:.18em}
.term-head h2{font-size:clamp(28px,4vw,48px);text-transform:uppercase;margin:12px 0 10px}
.term-head p{color:var(--muted);max-width:44ch}
.prompt{font-family:var(--mono);font-size:12px;color:var(--fg);margin-bottom:16px;letter-spacing:.04em}
.prompt::before{content:"> ";color:var(--red)}
.news-box{background:var(--ink);color:var(--onink);border:1px solid var(--ink);padding:30px}
.news-box h3{font-size:22px;text-transform:uppercase;margin-bottom:10px}
.news-box p{color:rgba(240,239,233,.6);font-size:14px;margin:0 0 18px}
.news-box .field input{background:var(--ink2);border-color:var(--wline-soft);color:var(--onink)}
.news-box label{color:rgba(240,239,233,.6)}
.news-inline{display:flex;gap:10px;flex-wrap:wrap}
.news-inline .field{flex:1;min-width:140px;margin:0}
.donate{margin-top:22px;padding-top:20px;border-top:1px solid var(--wline-soft);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.donate span{font-size:13px;color:rgba(240,239,233,.6)}
.donate a{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#fff;border:1px solid var(--red);background:var(--red);padding:11px 15px;min-height:42px;display:inline-flex;align-items:center}

/* ============ FOOTER ============ */
footer.site{background:var(--ink);color:var(--onink);padding:44px 0 32px;position:relative;overflow:hidden}
.foot-in{max-width:var(--max);margin:0 auto;padding:0 clamp(16px,3vw,32px);position:relative;z-index:2}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;margin-bottom:36px}
footer.site img.flogo{height:40px;width:auto;max-width:240px;margin-bottom:15px}
footer.site .fdesc{color:rgba(240,239,233,.5);font-size:13px;max-width:34ch}
.fcol h4{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(240,239,233,.55);margin:0 0 14px}
.fcol a{display:block;color:rgba(240,239,233,.75);font-size:14px;padding:5px 0;transition:.2s}
.fcol a:hover{color:var(--red)}
.fcol ul{list-style:none;margin:0;padding:0}
.foot-bar{border-top:1px solid var(--wline-soft);padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:rgba(240,239,233,.5);text-transform:uppercase}

/* ============ SPOTIFY EMBED (above player) ============ */
.spotify-embed{position:fixed;left:0;right:0;bottom:0;z-index:59;display:none;background:var(--ink);border-top:1px solid var(--red);padding:10px clamp(14px,3vw,26px)}
.spotify-embed.show{display:block}
.spotify-embed #djmb-spotify-host{max-width:660px;margin:0 auto}
.spotify-embed iframe{border:0;display:block;width:100%}
.sp-close{position:absolute;top:8px;right:10px;background:transparent;border:1px solid var(--wline-soft);color:var(--onink);width:30px;height:30px;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2}
.sp-close:hover{border-color:var(--red);color:var(--red)}

/* ============ STICKY PLAYER ============ */
.player{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;gap:16px;height:var(--player);padding:0 clamp(14px,3vw,26px);background:var(--ink);color:var(--onink);border-top:1px solid var(--red);padding-bottom:env(safe-area-inset-bottom)}
.player .transport{display:flex;align-items:center;gap:8px}
.player .pbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--wline-soft);background:transparent;color:var(--onink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s;flex-shrink:0}
.player .pbtn svg{width:14px;height:14px;fill:currentColor}
.player .pbtn:hover{border-color:var(--onink)}
.player .pbtn.main{width:46px;height:46px;background:var(--red);border-color:var(--red);color:#fff}
.player .pbtn.main:hover{background:var(--red-deep)}
.player .np{display:flex;flex-direction:column;min-width:130px;max-width:220px}
.player .np .t{font-family:var(--disp);font-weight:700;font-size:15px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player .np .s{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--red);text-transform:uppercase;margin-top:2px}
.player .pwave{flex:1;height:34px;display:flex;align-items:center;gap:2px;overflow:hidden;min-width:50px}
.player .pwave i{flex:1;background:rgba(240,239,233,.3);height:20%;transition:height .1s,background .3s}
.player.playing .pwave i{background:var(--onink)}
.player .ptime{font-family:var(--mono);font-size:11px;color:rgba(240,239,233,.6);white-space:nowrap}
.player .pvol{display:flex;align-items:center;gap:8px;color:rgba(240,239,233,.6)}
.player .pvol svg{width:16px;height:16px;fill:currentColor}
.player .pvol .bar{width:60px;height:3px;background:var(--wline-soft);position:relative}
.player .pvol .bar::after{content:"";position:absolute;left:0;top:0;bottom:0;width:65%;background:var(--red)}

/* ============ RESPONSIVE ============ */
@media(max-width:1080px){.rail{display:none}.page{padding-left:0}header.nav{left:0}}
@media(max-width:1000px){
  .dash{grid-template-columns:repeat(2,1fr);grid-template-areas:none;grid-template-rows:none}
  .dash>*{grid-area:auto}.t-hero{grid-column:1/-1}.t-push{grid-column:1/-1}
  .term-in{grid-template-columns:1fr;gap:30px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:26px}
  .detail{grid-template-columns:1fr;gap:24px}
  .detail .cover{max-width:420px}
}
@media(max-width:640px){
  nav.menu,.nav-cta,.navclock{display:none}
  .burger{display:flex}
  .dash{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:24px}
  .post-row{grid-template-columns:90px 1fr;gap:14px}
  .player{gap:10px}
  .player .np{max-width:none;flex:1;min-width:0}
  .player .pwave,.player .ptime,.player .pvol{display:none}
  .frame-tags{display:none}
  nav.menu.open{display:block;position:absolute;top:var(--nav-h);left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 24px}
  nav.menu.open ul{flex-direction:column;gap:0}
  nav.menu.open a{display:block;padding:14px 0;border-bottom:1px solid var(--line-soft)}
}
@media(prefers-reduced-motion:reduce){
  *{-webkit-animation:none!important;animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ============ BLUEPRINT LIST (Equipment / Discografie) ============ */
.entry.eqp{max-width:none}
.entry.eqp h2{background:var(--ink);color:var(--onink);font-size:16px;letter-spacing:.06em;text-transform:uppercase;
  padding:12px 16px;margin:32px 0 0;position:relative;
  -webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.entry.eqp h2::before{content:"//";color:var(--red);margin-right:8px;font-family:var(--mono)}
.entry.eqp h2:first-child{margin-top:0}
.entry.eqp ul{list-style:none;margin:0 0 4px;padding:16px;border:1px solid var(--line);border-top:0;
  -webkit-column-width:230px;column-width:230px;-webkit-column-gap:24px;column-gap:24px}
.entry.eqp ul li{margin:0 0 8px;padding-left:16px;position:relative;font-family:var(--mono);font-size:13px;color:var(--text);-webkit-column-break-inside:avoid;break-inside:avoid}
.entry.eqp ul li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;background:var(--red)}
.entry.eqp p{color:var(--muted)}

/* ============ GALLERY ============ */
.gal-grid{display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.gcell{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:var(--ink);cursor:zoom-in}
.gcell img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.04);filter:grayscale(1) contrast(1.04);transition:-webkit-filter .25s,filter .25s,-webkit-transform .3s,transform .3s}
.gcell:hover img{-webkit-filter:none;filter:none;-webkit-transform:scale(1.05);transform:scale(1.05)}
.gcell::after{content:"";position:absolute;left:8px;top:8px;width:12px;height:12px;border-left:1px solid var(--red);border-top:1px solid var(--red);opacity:.8}
.gcell video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;-webkit-filter:grayscale(1) contrast(1.04);filter:grayscale(1) contrast(1.04)}
.gcell-video:hover video{-webkit-filter:none;filter:none}
.gcell-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;width:54px;height:54px;border-radius:50%;background:rgba(13,13,15,.5);border:1px solid var(--wline);display:flex;align-items:center;justify-content:center;pointer-events:none;transition:background .2s,border-color .2s}
.gcell-play svg{width:22px;height:22px;fill:#fff;margin-left:2px}
.gcell-video:hover .gcell-play{background:var(--red);border-color:var(--red)}
.album-grid{display:grid;gap:clamp(12px,2vw,20px);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.album{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--ink);border:1px solid var(--line)}
.album img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1);filter:grayscale(1);transition:-webkit-filter .25s,filter .25s}
.album:hover img{-webkit-filter:none;filter:none}
.album .cap{position:absolute;left:0;right:0;bottom:0;padding:14px;background:-webkit-linear-gradient(top,transparent,rgba(13,13,15,.85));background:linear-gradient(180deg,transparent,rgba(13,13,15,.85))}
.album .cap h3{color:var(--onink);font-size:18px;text-transform:uppercase}
.album .cap span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--red);text-transform:uppercase}

/* lightbox */
.lb{position:fixed;inset:0;z-index:120;background:rgba(4,6,8,.94);display:none;align-items:center;justify-content:center;padding:40px}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:82vh;-o-object-fit:contain;object-fit:contain;border:1px solid var(--wline-soft)}
.lb .lb-video{max-width:92vw;max-height:82vh;width:auto;height:auto;background:#000;border:1px solid var(--wline-soft)}
.lb .lb-embed{width:min(92vw,1280px);aspect-ratio:16/9;max-height:82vh;background:#000;border:1px solid var(--wline-soft)}
.lb .lb-close,.lb .lb-nav{position:absolute;background:transparent;border:1px solid var(--wline-soft);color:var(--onink);width:48px;height:48px;cursor:pointer;font-family:var(--mono);font-size:18px;display:flex;align-items:center;justify-content:center;transition:.2s}
.lb .lb-close:hover,.lb .lb-nav:hover{border-color:var(--red);color:var(--red)}
.lb .lb-close{top:20px;right:20px}
.lb .lb-nav.prev{left:20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}
.lb .lb-nav.next{right:20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}
.lb .lb-count{position:absolute;bottom:20px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-family:var(--mono);font-size:12px;color:var(--wline-soft);letter-spacing:.1em}
@media(max-width:640px){.lb .lb-nav{width:44px;height:44px}.lb{padding:16px}}

/* line-up list (event) */
.lineup{list-style:none;margin:0 0 8px;padding:0;border:1px solid var(--line)}
.lineup li{padding:11px 16px;border-bottom:1px solid var(--line-soft);font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:16px;position:relative;padding-left:34px}
.lineup li:last-child{border-bottom:0}
.lineup li::before{content:"";position:absolute;left:16px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:7px;height:7px;background:var(--red)}

/* "more releases" strip */
.more-rel{margin-top:44px;border-top:1px solid var(--line);padding-top:26px}

/* ============ NOTICES / CONTACT PAGE ============ */
.notice{border:1px solid var(--line);padding:14px 16px;margin-bottom:22px;font-family:var(--mono);font-size:13px;letter-spacing:.03em}
.notice.ok{border-color:var(--fg);background:var(--ink);color:var(--onink)}
.notice.err{border-color:var(--red);color:var(--red-deep)}
.notice::before{content:"> ";color:var(--red)}
.contact-page .term-in{padding-top:0}

/* ============ CYBERPUNK FORMS (contact terminal + newsletter) ============ */
/* faint blueprint grid behind the console */
.terminal{position:relative;overflow:hidden}
.terminal::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;opacity:.14;-webkit-mask-image:radial-gradient(120% 80% at 18% 22%,#000,transparent 72%);mask-image:radial-gradient(120% 80% at 18% 22%,#000,transparent 72%)}
.term-in{position:relative;z-index:1}
/* blinking cursor after the "waiting for input_" prompt */
.prompt{position:relative}
.prompt::after{content:"";display:inline-block;width:8px;height:1.05em;background:var(--red);margin-left:5px;vertical-align:-2px;animation:djmb-caret 1.1s steps(1) infinite}
@keyframes djmb-caret{50%{opacity:0}}
/* labels: red HUD triangle marker */
.ct .field>label,.news-box .field label{padding-left:15px;position:relative}
.ct .field>label::before,.news-box .field label::before{content:"";position:absolute;left:0;top:.35em;width:7px;height:8px;background:var(--red);clip-path:polygon(0 0,100% 50%,0 100%)}
/* inputs: notched top-right corner + left accent bar that lights on focus */
.ct input[type=text],.ct input[type=email],.ct input[type=number],.ct textarea,
.news-box input[type=text],.news-box input[type=email]{
	clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%);
	border-left-width:2px;transition:border-color .2s,background .2s,box-shadow .2s}
.ct input[type=text]:focus,.ct input[type=email]:focus,.ct input[type=number]:focus,.ct textarea:focus,
.news-box input[type=text]:focus,.news-box input[type=email]:focus{border-left-color:var(--red);background:var(--card)}
.news-box input[type=text]:focus,.news-box input[type=email]:focus{background:var(--ink2)}
/* newsletter panel: notched frame + HUD corner brackets */
.news-box{position:relative;clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px))}
.news-box::before,.news-box::after{content:"";position:absolute;width:16px;height:16px;pointer-events:none;z-index:2}
.news-box::before{top:9px;left:9px;border-top:2px solid var(--red);border-left:2px solid var(--red)}
.news-box::after{right:9px;bottom:9px;border-right:2px solid var(--red);border-bottom:2px solid var(--red)}
.news-box h3{position:relative;display:inline-block}
.news-box h3::after{content:"// TRANSMIT";position:absolute;left:calc(100% + 10px);bottom:3px;font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--red);white-space:nowrap}
/* custom cyberpunk checkbox for the consent box */
.news-box input[type=checkbox]{-webkit-appearance:none;appearance:none;width:16px;height:16px;flex:0 0 16px;border:1px solid var(--wline-soft);background:var(--ink2);cursor:pointer;position:relative;top:2px;transition:.15s}
.news-box input[type=checkbox]:checked{background:var(--red);border-color:var(--red)}
.news-box input[type=checkbox]:checked::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(40deg)}
.news-box input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(225,18,29,.4)}
/* send/subscribe buttons: notched corner to match */
.ct .btn-red,.news-box button[type=submit]{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
@media (prefers-reduced-motion:reduce){.prompt::after{animation:none}}


/* ============ CONSOLE = ARTIST PROFILE ============ */
@keyframes kenburns{from{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.12);transform:scale(1.12)}}
@keyframes scanmove{0%{top:-4%}100%{top:104%}}
.t-hero .tb.console-artist{padding:0;justify-content:flex-end;min-height:340px}
.console-artist .ca-slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;opacity:0;visibility:hidden;z-index:1;transition:opacity .8s ease}
.console-artist .ca-slide.on{opacity:1;visibility:visible;z-index:2}
.console-artist .ca-photo{position:absolute;inset:0;overflow:hidden}
.console-artist .ca-photo img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05);opacity:.9;-webkit-animation:kenburns 22s ease-in-out infinite alternate;animation:kenburns 22s ease-in-out infinite alternate}
.console-artist .ca-photo::after{content:"";position:absolute;inset:0;background:-webkit-linear-gradient(top,rgba(13,13,15,.15) 30%,rgba(13,13,15,.93));background:linear-gradient(180deg,rgba(13,13,15,.15) 30%,rgba(13,13,15,.93))}
.console-artist .ca-grid{position:absolute;inset:0;z-index:1;background-image:linear-gradient(rgba(240,239,233,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(240,239,233,.06) 1px,transparent 1px);background-size:30px 30px}
.console-artist .ca-scan{position:absolute;left:0;right:0;top:-4%;height:2px;z-index:2;background:-webkit-linear-gradient(left,transparent,rgba(225,18,29,.85),transparent);background:linear-gradient(90deg,transparent,rgba(225,18,29,.85),transparent);box-shadow:0 0 18px var(--red);-webkit-animation:scanmove 4.6s linear infinite;animation:scanmove 4.6s linear infinite}
.console-artist .inner{position:relative;z-index:3;padding:20px}
.console-artist .ca-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--red);text-transform:uppercase}
.console-artist .ca-name{font-size:clamp(26px,3.6vw,50px);text-transform:uppercase;line-height:.95;margin:8px 0 6px;color:var(--onink)}
.console-artist .ca-name span{color:var(--red);display:block;font-size:.5em;letter-spacing:.02em}
.console-artist .ca-role{color:rgba(240,239,233,.8);font-weight:500;margin:0 0 8px}
.console-artist .ca-bio{color:rgba(240,239,233,.6);font-size:14px;max-width:46ch;margin:0 0 16px}
.console-artist .acts{display:flex;gap:11px;flex-wrap:wrap}

/* ============ PHOTO FRAME (tile 02) ============ */
.photo-frame{position:relative;width:100%;height:100%;min-height:150px;overflow:hidden;background:var(--ink)}
.photo-frame .pf-img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05);opacity:0;transition:opacity 1.1s ease}
.photo-frame .pf-img.on{opacity:1}
.photo-frame .pf-scan{position:absolute;left:0;right:0;top:-4%;height:2px;z-index:2;background:-webkit-linear-gradient(left,transparent,rgba(225,18,29,.7),transparent);background:linear-gradient(90deg,transparent,rgba(225,18,29,.7),transparent);-webkit-animation:scanmove 5s linear infinite;animation:scanmove 5s linear infinite}
.photo-frame .pf-corner{position:absolute;left:8px;top:8px;width:14px;height:14px;border-left:1px solid var(--red);border-top:1px solid var(--red);z-index:2}

/* stat intro (cyberpunk) */
.stat-val{font-variant-numeric:tabular-nums}

/* ============ FEATURED POST (tile 04) ============ */
.t-about .tb.featured-post{padding:0;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.featured-post .fp-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--ink)}
.featured-post .fp-media img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.04);filter:grayscale(1) contrast(1.04);transition:-webkit-filter .3s,filter .3s,-webkit-transform .3s,transform .3s}
.featured-post:hover .fp-media img{-webkit-filter:none;filter:none;-webkit-transform:scale(1.04);transform:scale(1.04)}
.featured-post .fp-ph{display:flex;align-items:center;justify-content:center;height:100%}
.featured-post .fp-ph svg{width:42%;height:42%;opacity:.4}
.featured-post .fp-body{padding:16px}
.featured-post .fp-body .date{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--red);text-transform:uppercase}
.featured-post .fp-body h3{font-size:20px;text-transform:uppercase;margin:6px 0 8px;line-height:1.12}
.featured-post .fp-body p{color:var(--muted);font-size:13px;margin:0 0 10px}
.featured-post .fp-more{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg)}
.featured-post:hover .fp-more{color:var(--red)}

/* ============ EXTRA BACKGROUND: fine lines + circles ============ */
.bg-rings{position:fixed;inset:0;z-index:-2;pointer-events:none;width:100%;height:100%;opacity:.55}
.bg-hatch{position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.5;
  background-image:repeating-linear-gradient(0deg,transparent 0 21px,var(--line-faint) 21px 22px),repeating-linear-gradient(90deg,transparent 0 21px,var(--line-faint) 21px 22px)}

/* cursor fixes + post hero image cap */
.buylinks a,.btn,.pcard .thumb,.album,.gcell{cursor:pointer}
.post-hero{margin:0 0 28px;border:1px solid var(--line);overflow:hidden;display:block;text-align:center;background:var(--ink)}
.post-hero img{display:inline-block;width:auto;max-width:100%;max-height:82vh;height:auto;-o-object-fit:contain;object-fit:contain}

/* ============ AI ACT LABELLING ============ */
.ai-notice{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--red);background:rgba(225,18,29,.06);padding:14px 16px;margin:24px 0}
.ai-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--red);padding:6px 10px;white-space:nowrap;flex-shrink:0}
.ai-badge.sm{font-size:10px;padding:3px 7px}
.ai-notice .ai-body{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--text)}
.ai-notice .ai-body strong{font-size:14px}
.ai-notice .ai-line{color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.02em}
.ai-notice .ai-law{color:var(--dim);font-size:11px;margin-top:4px}
.ai-media-badge{position:absolute;left:8px;bottom:8px;z-index:4;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--red);padding:4px 8px;pointer-events:none}
.wp-block-image{position:relative}
figure[data-ai] img{outline:1px solid var(--red);outline-offset:-1px}

/* ============ PHOTO FRAME — cyberpunk glitch transition ============ */
@-webkit-keyframes pf-in{
  0%{opacity:0;-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);-webkit-filter:grayscale(1) contrast(1.4) brightness(1.6);filter:grayscale(1) contrast(1.4) brightness(1.6)}
  12%{opacity:1;-webkit-clip-path:inset(0 0 62% 0);clip-path:inset(0 0 62% 0);-webkit-transform:translateX(-5px);transform:translateX(-5px)}
  26%{-webkit-clip-path:inset(38% 0 30% 0);clip-path:inset(38% 0 30% 0);-webkit-transform:translateX(4px);transform:translateX(4px);-webkit-filter:grayscale(1) contrast(1.1) drop-shadow(3px 0 0 rgba(225,18,29,.9)) drop-shadow(-3px 0 0 rgba(34,224,232,.9));filter:grayscale(1) contrast(1.1) drop-shadow(3px 0 0 rgba(225,18,29,.9)) drop-shadow(-3px 0 0 rgba(34,224,232,.9))}
  40%{-webkit-clip-path:inset(8% 0 56% 0);clip-path:inset(8% 0 56% 0);-webkit-transform:translateX(-3px);transform:translateX(-3px)}
  55%{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);-webkit-transform:translateX(0);transform:translateX(0);-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05)}
  100%{opacity:1;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}
}
@keyframes pf-in{
  0%{opacity:0;clip-path:inset(0 0 100% 0);filter:grayscale(1) contrast(1.4) brightness(1.6)}
  12%{opacity:1;clip-path:inset(0 0 62% 0);transform:translateX(-5px)}
  26%{clip-path:inset(38% 0 30% 0);transform:translateX(4px);filter:grayscale(1) contrast(1.1) drop-shadow(3px 0 0 rgba(225,18,29,.9)) drop-shadow(-3px 0 0 rgba(34,224,232,.9))}
  40%{clip-path:inset(8% 0 56% 0);transform:translateX(-3px)}
  55%{clip-path:inset(0 0 0 0);transform:translateX(0);filter:grayscale(1) contrast(1.05)}
  100%{opacity:1;clip-path:inset(0 0 0 0)}
}
@keyframes pf-scanlines{to{background-position:0 120px}}
.photo-frame .pf-img{opacity:0;z-index:1;transition:opacity .45s ease}
.photo-frame .pf-img.on{opacity:1;z-index:2;-webkit-animation:pf-in .75s both;animation:pf-in .75s both}
.photo-frame::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.22) 3px 4px);
  -webkit-animation:pf-scanlines 6s linear infinite;animation:pf-scanlines 6s linear infinite}
.photo-frame .pf-scan{height:3px;background:-webkit-linear-gradient(left,transparent,rgba(34,224,232,.7) 40%,rgba(225,18,29,.9) 60%,transparent);background:linear-gradient(90deg,transparent,rgba(34,224,232,.7) 40%,rgba(225,18,29,.9) 60%,transparent);-webkit-animation:scanmove 3.2s linear infinite;animation:scanmove 3.2s linear infinite}

/* ============ PHOTO FRAME — v2 effect (data-slam + halftone, no scanlines) ============ */
@-webkit-keyframes pf-in2{
  0%{opacity:0;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);-webkit-filter:grayscale(1) contrast(1.5) invert(1);filter:grayscale(1) contrast(1.5) invert(1)}
  10%{opacity:1;-webkit-filter:grayscale(1) contrast(1.2) invert(0);filter:grayscale(1) contrast(1.2) invert(0)}
  22%{-webkit-clip-path:inset(0 42% 0 0);clip-path:inset(0 42% 0 0);-webkit-transform:translateX(7px) skewX(-5deg);transform:translateX(7px) skewX(-5deg);-webkit-filter:grayscale(1) contrast(1.1) drop-shadow(4px 0 0 rgba(225,18,29,.9)) drop-shadow(-4px 0 0 rgba(34,224,232,.9));filter:grayscale(1) contrast(1.1) drop-shadow(4px 0 0 rgba(225,18,29,.9)) drop-shadow(-4px 0 0 rgba(34,224,232,.9))}
  38%{-webkit-clip-path:inset(0 0 0 55%);clip-path:inset(0 0 0 55%);-webkit-transform:translateX(-7px) skewX(4deg);transform:translateX(-7px) skewX(4deg)}
  52%{-webkit-clip-path:inset(0 0 0 12%);clip-path:inset(0 0 0 12%);-webkit-transform:translateX(3px);transform:translateX(3px)}
  66%{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);-webkit-transform:none;transform:none;-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05)}
  100%{opacity:1;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}
}
@keyframes pf-in2{
  0%{opacity:0;clip-path:inset(0 100% 0 0);filter:grayscale(1) contrast(1.5) invert(1)}
  10%{opacity:1;filter:grayscale(1) contrast(1.2) invert(0)}
  22%{clip-path:inset(0 42% 0 0);transform:translateX(7px) skewX(-5deg);filter:grayscale(1) contrast(1.1) drop-shadow(4px 0 0 rgba(225,18,29,.9)) drop-shadow(-4px 0 0 rgba(34,224,232,.9))}
  38%{clip-path:inset(0 0 0 55%);transform:translateX(-7px) skewX(4deg)}
  52%{clip-path:inset(0 0 0 12%);transform:translateX(3px)}
  66%{clip-path:inset(0 0 0 0);transform:none;filter:grayscale(1) contrast(1.05)}
  100%{opacity:1;clip-path:inset(0 0 0 0)}
}
@keyframes pf-halftone{to{background-position:7px 7px}}
.photo-frame .pf-img.on{-webkit-animation:pf-in2 .7s both;animation:pf-in2 .7s both}
.photo-frame .pf-scan{display:none}
.photo-frame::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.28;
  background-image:radial-gradient(rgba(240,239,233,.55) 1px,transparent 1.5px);background-size:7px 7px;
  -webkit-animation:pf-halftone 3s steps(4) infinite;animation:pf-halftone 3s steps(4) infinite}

/* ============ FOOTER WIDGETS ============ */
.fcol .widget + .widget{margin-top:24px}
.fcol .widget h4,.fcol .widget .widget-title{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(240,239,233,.55);margin:0 0 14px}
.fcol .widget ul{list-style:none;margin:0;padding:0}
.fcol .widget li{padding:0;border:0}
.fcol .widget a{display:block;padding:5px 0}
.fcol .widget p{color:rgba(240,239,233,.55);font-size:13px;margin:0 0 10px}
.fcol .widget select,.fcol .widget input[type=text],.fcol .widget input[type=search],.fcol .widget input[type=email]{width:100%;background:var(--ink2);border:1px solid var(--wline-soft);color:var(--onink);padding:9px 11px;font-size:14px}
.fcol .widget .wp-block-search__inside-wrapper{display:flex;gap:6px}
.fcol .widget button,.fcol .widget .wp-block-search__button{background:var(--red);color:#fff;border:0;padding:9px 12px;font-family:var(--mono);font-size:12px;text-transform:uppercase;cursor:pointer}

/* ============ HEADER LOGO — full height ============ */
.brand img{height:48px;max-height:calc(var(--nav-h) - 10px);max-width:min(58vw,360px);width:auto;-o-object-fit:contain;object-fit:contain}
@media(max-width:640px){.brand img{height:38px;max-width:62vw}}

/* ============ PHOTO FRAME — v3: HOLOGRAM FLICKER ============ */
@-webkit-keyframes h-mat{
  0%{opacity:0;-webkit-transform:scaleY(.02);transform:scaleY(.02);-webkit-filter:grayscale(1) brightness(3);filter:grayscale(1) brightness(3)}
  8%{opacity:.7;-webkit-transform:scaleY(1.05);transform:scaleY(1.05)}
  16%{-webkit-transform:scaleY(.97);transform:scaleY(.97)}
  24%{opacity:.3}
  32%{opacity:.9;-webkit-transform:scaleY(1);transform:scaleY(1)}
  42%{opacity:.45}
  55%{opacity:1;-webkit-filter:grayscale(1) brightness(1.1);filter:grayscale(1) brightness(1.1)}
  100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-filter:grayscale(1) brightness(1.05);filter:grayscale(1) brightness(1.05)}
}
@keyframes h-mat{
  0%{opacity:0;transform:scaleY(.02);filter:grayscale(1) brightness(3)}
  8%{opacity:.7;transform:scaleY(1.05)}
  16%{transform:scaleY(.97)}
  24%{opacity:.3}
  32%{opacity:.9;transform:scaleY(1)}
  42%{opacity:.45}
  55%{opacity:1;filter:grayscale(1) brightness(1.1)}
  100%{opacity:1;transform:scaleY(1);filter:grayscale(1) brightness(1.05)}
}
@keyframes h-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes h-flicker{
  0%,17%,19%,53%,55%,100%{opacity:.85}
  18%{opacity:.35}
  54%{opacity:.55}
  68%{opacity:1}
  70%{opacity:.4}
  85%{opacity:.9}
}
@keyframes h-drift{to{background-position:0 9px}}

.photo-frame{-webkit-box-shadow:inset 0 0 34px rgba(34,224,232,.16);box-shadow:inset 0 0 34px rgba(34,224,232,.16)}
.photo-frame .pf-img.on{
  -webkit-animation:h-mat .85s both, h-float 5s ease-in-out .85s infinite;
  animation:h-mat .85s both, h-float 5s ease-in-out .85s infinite}
/* cyan holographic tint + flicker */
.photo-frame::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:-webkit-linear-gradient(top,rgba(34,224,232,.2),rgba(34,224,232,.05) 45%,rgba(120,90,255,.12));
  background:linear-gradient(180deg,rgba(34,224,232,.2),rgba(34,224,232,.05) 45%,rgba(120,90,255,.12));
  mix-blend-mode:screen;-webkit-animation:h-flicker 4.2s steps(1,end) infinite;animation:h-flicker 4.2s steps(1,end) infinite}
/* faint hologram interlace (subtle, drifting) */
.photo-frame::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.4;
  background:repeating-linear-gradient(0deg,rgba(34,224,232,.10) 0 1px,transparent 1px 4px);
  -webkit-animation:h-drift 7s linear infinite;animation:h-drift 7s linear infinite}

/* ============ NAV SUBMENUS (dropdowns) ============ */
nav.menu li{position:relative}
nav.menu .menu-item-has-children > a::after{content:"▾";margin-left:6px;font-size:9px;opacity:.6}
nav.menu .sub-menu{position:absolute;top:100%;left:0;min-width:210px;display:none;flex-direction:column;gap:0;
  background:var(--card);border:1px solid var(--line);padding:6px 0;z-index:50;-webkit-box-shadow:4px 4px 0 rgba(0,0,0,.25);box-shadow:4px 4px 0 rgba(0,0,0,.25)}
nav.menu li:hover > .sub-menu,nav.menu li:focus-within > .sub-menu{display:flex}
nav.menu .sub-menu li{width:100%}
nav.menu .sub-menu a{display:block;padding:10px 16px;letter-spacing:.08em;color:var(--fg)}
nav.menu .sub-menu a:hover,nav.menu .sub-menu li.current-menu-item>a{color:#fff;background:var(--red)}
/* third level: open to the side */
nav.menu .sub-menu .sub-menu{top:-7px;left:100%}
@media(max-width:640px){
  nav.menu.open .sub-menu{position:static;display:flex;border:0;-webkit-box-shadow:none;box-shadow:none;padding:0 0 0 16px;background:transparent;min-width:0}
  nav.menu.open .sub-menu a{padding:12px 0}
  nav.menu.open .menu-item-has-children > a::after{content:""}
  nav.menu.open .sub-menu .sub-menu{left:0}
}

/* ============ PAST EVENTS ============ */
.post-row.past,.ev.past{opacity:.5}
.post-row.past .info h2 a,.post-row.past h2 a,.ev.past .info h4{text-decoration:line-through}
.post-row.past .d b,.ev.past .d b{text-decoration:line-through}
.ev-past-tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-soft);padding:10px 16px;display:inline-block}

/* ============ BLOG LIST — cyberpunk boxes ============ */
.post-list{display:flex;flex-direction:column;gap:14px;background:transparent;border:0}
.post-row{position:relative;overflow:hidden;transition:-webkit-transform .18s,transform .18s,-webkit-filter .18s,filter .18s;
  -webkit-clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}
.post-row:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px);-webkit-filter:drop-shadow(5px 5px 0 var(--ink));filter:drop-shadow(5px 5px 0 var(--ink))}
.post-row::before{content:"";position:absolute;top:0;right:0;width:120px;height:120px;pointer-events:none;z-index:-1;
  background:no-repeat top right/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none' stroke='%230d0d0f' stroke-opacity='0.14' stroke-width='1'><path d='M120 34 H70 L52 52 H0'/><path d='M90 0 V42 L72 60 V120'/><path d='M120 82 H98 L88 92 H0'/><circle cx='52' cy='52' r='2.4' fill='%230d0d0f' fill-opacity='0.28' stroke='none'/><circle cx='90' cy='18' r='2' fill='%23e1121d' stroke='none'/></svg>")}
.post-row::after{content:"";position:absolute;left:11px;bottom:11px;width:16px;height:16px;border-left:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);pointer-events:none;transition:width .2s,height .2s,border-color .2s}
.post-row h2 a{transition:color .15s}
.post-row h2 a:hover{color:var(--red)}
/* enriched cyberpunk hover */
.post-row{border:1px solid var(--line-faint)}
.post-row .pthumb img{transition:-webkit-filter .3s,filter .3s,-webkit-transform .5s,transform .5s}
.post-row:hover{border-color:var(--red);box-shadow:inset 3px 0 0 0 var(--red)}
.post-row:hover .pthumb img{-webkit-filter:grayscale(0) contrast(1.05);filter:grayscale(0) contrast(1.05) drop-shadow(1.4px 0 0 rgba(225,18,29,.5)) drop-shadow(-1.4px 0 0 rgba(56,225,255,.45));-webkit-transform:scale(1.06);transform:scale(1.06)}
.post-row:hover::after{width:22px;height:22px;border-color:var(--red)}
.post-row .date{transition:color .15s}
.post-row:hover .date{color:var(--red)}
.post-row:hover h2 a{color:var(--red)}

/* ============ SINGLE POST — cyberpunk framing ============ */
.post-hero{position:relative;overflow:hidden}
.post-hero::before,.post-hero::after{content:"";position:absolute;width:20px;height:20px;z-index:2;pointer-events:none}
.post-hero::before{left:0;top:0;border-left:2px solid var(--red);border-top:2px solid var(--red)}
.post-hero::after{left:0;bottom:0;border-left:2px solid var(--red);border-bottom:2px solid var(--red)}
.post-hero .hero-tag{position:absolute;left:12px;bottom:12px;z-index:3;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(13,13,15,.65);padding:4px 9px}
.single-post .entry{border-left:2px solid var(--line);padding-left:22px;margin-top:8px}

/* --- enriched single news --- */
.single-post .page-head .sec-idx{color:var(--red)}
/* meta HUD strip under the title */
.post-meta{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:16px 0 0;
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-soft);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}
.post-meta span{display:inline-flex;gap:6px;align-items:center}
.post-meta .k{color:var(--red)}
/* hero: sits on ink, greyscale that colours up on hover */
.post-hero{margin-top:22px;background:var(--ink)}
.post-hero img{-webkit-filter:grayscale(1) contrast(1.04);filter:grayscale(1) contrast(1.04);transition:-webkit-filter .45s,filter .45s}
.post-hero:hover img{-webkit-filter:grayscale(0) contrast(1.05);filter:grayscale(0) contrast(1.05)}
/* article typography */
.single-post .entry{border-left-color:var(--line-soft)}
.single-post .entry > h2,.single-post .entry > h3,.single-post .entry > h4{font-family:var(--disp);text-transform:uppercase;letter-spacing:.02em;margin:34px 0 12px}
.single-post .entry > h2::before,.single-post .entry > h3::before,.single-post .entry > h4::before{content:"// ";color:var(--red);font-family:var(--mono)}
.single-post .entry p{line-height:1.72}
.single-post .entry > p:first-of-type::first-letter{float:left;font-family:var(--disp);font-weight:700;font-size:58px;line-height:.72;padding:6px 12px 0 0;color:var(--red)}
.single-post .entry a{color:var(--red);text-decoration:underline;text-underline-offset:2px}
.single-post .entry blockquote{border-left:3px solid var(--red);margin:26px 0;padding:8px 0 8px 22px;
  font-family:var(--disp);font-size:20px;line-height:1.35;color:var(--fg);
  background:linear-gradient(90deg,rgba(225,18,29,.06),transparent)}
.single-post .entry blockquote p{margin:0}
.single-post .entry code{font-family:var(--mono);font-size:.9em;background:var(--card2);border:1px solid var(--line-faint);padding:1px 5px}
.single-post .entry pre{background:var(--ink);color:var(--onink);padding:16px 18px;overflow-x:auto;
  -webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.single-post .entry pre code{background:none;border:0;color:inherit}
.single-post .entry hr{border:0;border-top:1px solid var(--line);margin:34px 0}
/* content images: full display (no corner clip), just a thin frame */
.single-post .entry img{display:block;max-width:100%;height:auto;border:1px solid var(--line-faint)}
.single-post .entry figure{margin:24px 0}
.single-post .entry figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);margin-top:7px}
/* blueprint panel: article text sits on a designed concrete surface */
.single-post .entry{position:relative;margin-top:24px;padding:clamp(24px,4vw,46px);
  background-color:var(--card);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='170' height='170' fill='none' stroke='%230d0d0f' stroke-opacity='0.10' stroke-width='1'><path d='M170 46 H96 L70 72 H0'/><path d='M124 0 V54 L98 80 V170'/><path d='M170 104 H132 L120 116 H0'/><circle cx='70' cy='72' r='2.6' fill='%230d0d0f' fill-opacity='0.2' stroke='none'/><circle cx='124' cy='24' r='2' fill='%23e1121d' stroke='none'/></svg>"),linear-gradient(rgba(13,13,15,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.045) 1px,transparent 1px);
  background-repeat:no-repeat,repeat,repeat;background-position:top right,0 0,0 0;background-size:170px 170px,34px 34px,34px 34px;
  border:1px solid var(--line);border-left:2px solid var(--red);
  -webkit-clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%)}
.single-post .entry::before{content:"";position:absolute;left:0;top:0;width:18px;height:18px;border-left:2px solid var(--red);border-top:2px solid var(--red);pointer-events:none}
.single-post .entry::after{content:"";position:absolute;right:0;bottom:0;width:18px;height:18px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none}
.single-post .entry > *:first-child{margin-top:0}
.single-post .entry > *:last-child{margin-bottom:0}

/* prev/next as HUD blocks */
.pn-cyber{display:flex;justify-content:space-between;gap:12px;margin-top:34px;border-top:1px solid var(--line);padding-top:16px}
.pn-cyber a{display:inline-flex;flex-direction:column;gap:3px;color:var(--fg-soft);transition:color .15s}
.pn-cyber a:hover{color:var(--red)}
.pn-cyber b{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-weight:700}
.pn-cyber .pn-next{text-align:right;margin-left:auto}
.pn-cyber .pn-next a{align-items:flex-end}

/* ============ SHARED CYBERPUNK IMAGE FRAMING ============ */
/* notch + red HUD corners on covers, cards, gallery cells */
.detail .cover,.pcard .thumb,.album,.gcell{
  -webkit-clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
.detail .cover::before,.pcard .thumb::before,.album::before,.gcell::before{
  content:"";position:absolute;left:0;top:0;right:auto;bottom:auto;width:16px;height:16px;
  border-left:2px solid var(--red);border-top:2px solid var(--red);z-index:3;pointer-events:none}
.detail .cover::after,.pcard .thumb::after,.album::after,.gcell::after{
  content:"";position:absolute;right:0;bottom:0;left:auto;top:auto;width:16px;height:16px;
  border-right:2px solid var(--red);border-bottom:2px solid var(--red);z-index:3;pointer-events:none;
  border-left:0;border-top:0;background:none}
.gcell::before,.gcell::after{width:13px;height:13px}
/* generic HUD label (also used on single post) */
.hero-tag{position:absolute;left:12px;bottom:12px;z-index:4;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(13,13,15,.65);padding:4px 9px;pointer-events:none}

/* ============ EVENT LIST THUMBNAILS ============ */
.ev-row{grid-template-columns:72px 60px 1fr auto;align-items:center}
.ev-thumb{display:block;position:relative;width:60px;height:60px;overflow:hidden;background:var(--ink)}
.ev-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05)}
.ev-thumb svg{width:100%;height:100%;padding:9px}
.ev-thumb::after{content:"";position:absolute;left:0;top:0;width:10px;height:10px;border-left:2px solid var(--red);border-top:2px solid var(--red);pointer-events:none}
@media(max-width:640px){
  .ev-row{grid-template-columns:50px 46px 1fr;gap:12px}
  .ev-thumb{width:46px;height:46px}
  .ev-row .ev-action{grid-column:2 / -1;justify-self:start;margin-top:4px}
}

/* ============ FIX: label vs AI badge collision on framed images ============ */
/* HUD label sits flush top-left (acts as the corner accent) */
.hero-tag{left:0;top:0;bottom:auto;right:auto;border-bottom:2px solid var(--red)}
/* AI badge stays bottom-left, clear of the label */
.ai-media-badge{left:8px;bottom:8px;top:auto;right:auto}
/* covers with a label: drop the top-left corner bracket (label replaces it) */
.detail .cover::before,.post-hero::before{display:none}
/* single-post hero: move its second corner to bottom-right so bottom-left is free for the AI badge */
.post-hero::after{left:auto;top:auto;right:0;bottom:0;border-left:0;border-top:0;border-right:2px solid var(--red);border-bottom:2px solid var(--red)}

/* ============ EVENT LINE-UP — cyberpunk roster ============ */
.lineup{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px;border:0}
.lineup li{position:relative;display:flex;align-items:center;gap:14px;padding:13px 16px;background:var(--card);border:1px solid var(--line);overflow:hidden;
  -webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);
  transition:-webkit-transform .2s,transform .2s,border-color .2s}
.lineup li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:top;transform-origin:top;transition:.25s}
.lineup li:hover{border-color:var(--red);-webkit-transform:translateX(5px);transform:translateX(5px)}
.lineup li:hover::before{-webkit-transform:scaleY(1);transform:scaleY(1)}
.lineup .ln-idx{font-family:var(--mono);font-size:12px;color:var(--red);min-width:26px;letter-spacing:.05em}
.lineup .ln-name{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:17px;line-height:1}
.lineup .ln-detail{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.06em}
.lineup .ln-tag{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--red);padding:4px 9px;flex-shrink:0}
.lineup li.head{background:var(--ink);border-color:var(--fg)}
.lineup li.head .ln-name{color:var(--onink);font-size:22px}
.lineup li.head .ln-detail{color:rgba(240,239,233,.6)}
.lineup li.head::after{content:"";position:absolute;top:0;right:0;width:130px;height:100%;pointer-events:none;opacity:.6;
  background:no-repeat right center/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='130' height='60' fill='none' stroke='%23f0efe9' stroke-opacity='0.18' stroke-width='1'><path d='M130 18 H72 L60 30 H0'/><path d='M96 0 V22 L84 34 V60'/><circle cx='60' cy='30' r='2.4' fill='%23e1121d' stroke='none'/></svg>")}
@media(max-width:520px){.lineup li{flex-wrap:wrap}.lineup .ln-tag{margin-left:0}}

/* ============ LINE-UP: fix bottom frame + running order times ============ */
/* dark container + gaps (like the tiles) → every item incl. the last is framed; notch reveals dark */
.lineup{display:grid;gap:3px;background:var(--ink);padding:3px;border:0;margin:0 0 8px}
.lineup li{border:0}
/* times only when the running-order option is on */
.lineup:not(.has-times) .ln-detail{display:none}
.lineup.has-times .ln-detail{margin-left:auto;font-family:var(--mono);font-weight:600;font-size:14px;color:var(--fg);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.lineup.has-times li.head .ln-detail{color:var(--onink)}

/* footer legal links */
.foot-legal{display:flex;gap:16px;flex-wrap:wrap}
.foot-legal a{color:rgba(240,239,233,.6)}
.foot-legal a:hover{color:var(--red)}
/* stacked legal links under the footer logo/subtitle */
.foot-legal-list{display:flex;flex-direction:column;gap:6px;margin-top:16px}
.foot-legal-list a{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:rgba(240,239,233,.7);transition:color .15s}
.foot-legal-list a::before{content:"// ";color:var(--red)}
.foot-legal-list a:hover{color:var(--red)}

/* ============ LEGAL (Impressum) STRUCTURED BLOCK ============ */
.legal-card{position:relative;border:1px solid var(--line);padding:22px;margin-bottom:26px;max-width:640px;background:var(--card);
  -webkit-clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}
.legal-card .lc-address{font-style:normal;font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:19px;line-height:1.35;margin-bottom:16px}
.legal-card .lc-spec{border:0;margin:0}
.legal-card .lc-spec .r{padding:8px 0;border-bottom:1px solid var(--line-soft)}
.legal-card .lc-spec .r:first-child{padding-top:0}
.legal-card .lc-spec .r:last-child{border-bottom:0}
.legal-card .lc-spec .v a{color:var(--red)}

/* ============ SMART-LINK / PRE-SAVE (release landing) ============ */
body.djmb-smartlink .rail{display:none}
body.djmb-smartlink .page{padding-left:0}
.sl-main{padding-top:8px}
.sl-wrap{max-width:520px;margin:0 auto;text-align:center;padding:8px 4px 40px}
.sl-cover{position:relative;width:min(340px,80vw);aspect-ratio:1/1;margin:0 auto 22px;overflow:hidden;border:1px solid var(--line);border-left:2px solid var(--red);-webkit-clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px))}
.sl-cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;-webkit-filter:grayscale(1) contrast(1.04);filter:grayscale(1) contrast(1.04);transition:-webkit-filter .4s,filter .4s}
.sl-cover:hover img{-webkit-filter:grayscale(0);filter:grayscale(0)}
.sl-cover .ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--card2)}
.sl-title{font-size:clamp(26px,7vw,40px);text-transform:uppercase;margin:0 0 6px;line-height:1.05}
.sl-artist{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin:0 0 4px}
.sl-meta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 20px}
.sl-out{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);margin:0 0 14px}
.sl-out::before{content:"> ";color:var(--red)}
.ev-countdown{margin:0 0 20px}
.ev-countdown .sec-idx{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--red);margin:0 0 8px}
.ev-countdown .sl-count{justify-content:flex-start;margin:0}
.sl-count{display:flex;justify-content:center;gap:10px;margin:0 0 22px}
.sl-count .cu{min-width:64px;border:1px solid var(--line);border-top:2px solid var(--red);background:var(--card);padding:10px 6px}
.sl-count .cu b{display:block;font-family:var(--disp);font-size:26px;line-height:1;color:var(--fg)}
.sl-count .cu span{display:block;margin-top:5px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sl-idx{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--red);text-align:left;margin:22px 0 10px}
.sl-actions{margin:0 0 18px}
.sl-links{display:flex;flex-direction:column;gap:10px}
.sl-btn{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:1px solid var(--line);background:var(--card);color:var(--fg);font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;transition:.15s;-webkit-clip-path:polygon(0 0,calc(100% - 11px) 0,100% 11px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 11px) 0,100% 11px,100% 100%,0 100%)}
.sl-btn svg{width:22px;height:22px;flex:0 0 22px}
.sl-btn span{text-align:left}
.sl-btn:hover,.sl-btn:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sl-btn.is-hl{background:var(--red);border-color:var(--red);color:#fff;justify-content:center}
.sl-btn.is-hl:hover{background:var(--red-deep,#b00e17)}
.sl-play{margin:0 0 18px}
.sl-notify{border:1px solid var(--line);padding:18px;margin:20px 0 0;text-align:left;-webkit-clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
.sl-notify-h{font-size:14px;margin:0 0 12px;color:var(--fg)}
.sl-notify .nl-consent{color:var(--fg-soft)}
.sl-share{margin:22px 0 10px}
.sl-share-btn{display:inline-flex;align-items:center;gap:9px;padding:11px 18px;border:1px solid var(--line);background:none;color:var(--fg);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.15s}
.sl-share-btn svg{width:16px;height:16px}
.sl-share-btn:hover{border-color:var(--red);color:var(--red)}
.sl-full{display:inline-block;margin-top:8px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sl-full:hover{color:var(--red)}

/* ---- Artist media tabs (Releases / DJ-Sets / Videos) — HUD interface ---- */
.artist-media{margin-top:8px}
.am-bar{margin:0 0 22px}
.am-tabs{display:flex;flex-wrap:wrap;gap:8px}
.am-tab{display:inline-flex;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--onink);background:var(--ink);border:1px solid var(--ink);border-left:2px solid var(--red);padding:12px 20px;min-height:44px;cursor:pointer;transition:.15s;-webkit-appearance:none;appearance:none;-webkit-clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.am-tab::before{content:"// ";color:var(--red);margin-right:3px}
.am-tab:hover{background:var(--ink2)}
.am-tab.is-on{background:var(--red);color:#fff;border-color:var(--red)}
.am-tab.is-on::before{color:#fff}
.am-tab:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.am-panel .dc-head{display:flex;justify-content:flex-end;margin:0 0 14px}
.dc-track > .vid-card{flex:0 0 clamp(280px,60vw,440px);scroll-snap-align:start}
.dc-track > .vid-card .videowrap{margin-bottom:0}

/* ---- Web Push subscribe button ---- */
/* Standalone bar (shown below the header on non-front pages) */
.djmb-push-bar{text-align:center}
.djmb-push-bar .djmb-push-btn{display:inline-flex;align-items:center;margin:16px auto 2px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:11px 16px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;transition:.15s;-webkit-clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}
.djmb-push-bar .djmb-push-btn:hover,.djmb-push-bar .djmb-push-btn[data-on="1"]{background:var(--red);border-color:var(--red);color:#fff}
/* Console-tile version: an own bento tile sitting above the "00 · Console" tile */
.djmb-push-tilebtn{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;min-height:52px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:14px 16px;border:0;background:var(--red);color:#fff;cursor:pointer;transition:.15s}
.djmb-push-tilebtn:hover{-webkit-filter:brightness(1.12);filter:brightness(1.12)}
.djmb-push-tilebtn[data-on="1"]{background:var(--ink);color:var(--onink)}
.djmb-push-tilebtn[data-on="1"]::after{content:"";position:absolute;right:0;bottom:0;width:20px;height:20px;background:var(--paper);-webkit-clip-path:polygon(100% 0,100% 100%,0 100%);clip-path:polygon(100% 0,100% 100%,0 100%)}

/* ---- Homepage LIVE-NOW popup ---- */
.djmb-live{position:fixed;right:20px;bottom:20px;z-index:80;width:min(360px,calc(100vw - 24px));transform:translateY(24px);opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}
.djmb-live.show{opacity:1;transform:none;pointer-events:auto}
.dl-card{position:relative;background:var(--ink);color:var(--onink);border:1px solid var(--wline-soft);border-left:2px solid var(--red);padding:20px 18px 18px;-webkit-clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));box-shadow:0 12px 44px rgba(0,0,0,.45)}
.dl-card::before{content:"";position:absolute;left:8px;top:8px;width:14px;height:14px;border-top:2px solid var(--red);border-left:2px solid var(--red);pointer-events:none}
.dl-x{position:absolute;top:6px;right:10px;background:none;border:0;color:var(--onink);font-size:22px;line-height:1;cursor:pointer;opacity:.7;padding:4px}
.dl-x:hover,.dl-x:focus-visible{opacity:1;color:var(--red)}
.dl-tag{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--red);display:flex;align-items:center;gap:8px;margin-bottom:8px}
.dl-dot{width:9px;height:9px;border-radius:50%;background:var(--red);animation:dl-pulse 1.6s infinite;flex:0 0 9px}
@keyframes dl-pulse{0%{box-shadow:0 0 0 0 rgba(225,18,29,.55)}70%{box-shadow:0 0 0 9px rgba(225,18,29,0)}100%{box-shadow:0 0 0 0 rgba(225,18,29,0)}}
.dl-title{font-size:19px;text-transform:uppercase;line-height:1.12;margin:0 0 6px}
.dl-meta{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:rgba(240,239,233,.6);margin:0 0 14px}
.dl-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.dl-links .soc{border:1px solid var(--wline-soft);color:var(--onink);background:var(--ink2);padding:8px 11px}
.dl-links .soc .soc-ico,.dl-links .soc svg{width:16px;height:16px}
.dl-links .soc:hover{background:var(--red);border-color:var(--red);color:#fff}
.dl-go{width:100%;justify-content:center}
.dl-pill{position:fixed;right:20px;bottom:20px;z-index:80;display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;border:0;font-family:var(--mono);font-size:12px;letter-spacing:.14em;padding:11px 16px;cursor:pointer;opacity:0;transform:translateY(12px);transition:.25s;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.dl-pill.show{opacity:1;transform:none}
.dl-pill .dl-dot{background:#fff}
@media (max-width:600px){.djmb-live{right:12px;left:12px;bottom:12px;width:auto}.dl-pill{right:12px;bottom:12px}}

/* ---- DJ-Set single: cyberpunk (match Release/Podcast/EPK) ---- */
.single-mix .mix-media .videowrap{margin-bottom:0}
.single-mix .spec{position:relative;overflow:hidden;border:1px solid var(--line);border-left:2px solid var(--red);background-color:var(--card);background-image:linear-gradient(rgba(13,13,15,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.04) 1px,transparent 1px);background-size:30px 30px,30px 30px;-webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.single-mix .spec::after{content:"";position:absolute;right:0;bottom:0;width:14px;height:14px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none;z-index:2}
.single-mix .spec .r .k::before{content:"› ";color:var(--red)}
.single-mix .spec .r{transition:background .15s}
.single-mix .spec .r:hover{background:var(--card2)}

/* ---- Legal / Datenschutz single: cyberpunk ---- */
.single-legal .legal-card{border-left:2px solid var(--red);background-image:linear-gradient(rgba(13,13,15,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.04) 1px,transparent 1px);background-size:30px 30px,30px 30px}
.single-legal .legal-card::after{content:"";position:absolute;right:0;bottom:0;width:14px;height:14px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none;z-index:2}
.single-legal .lc-spec .r .k::before{content:"› ";color:var(--red)}
.single-legal .lc-spec .r{transition:background .15s}
.single-legal .lc-spec .r:hover{background:var(--card2)}
/* the long privacy text as a blueprint console panel */
.single-legal .entry{max-width:820px;position:relative;margin-top:8px;padding:clamp(20px,3vw,36px);background-color:var(--card);background-image:linear-gradient(rgba(13,13,15,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.04) 1px,transparent 1px);background-size:32px 32px,32px 32px;border:1px solid var(--line);border-left:2px solid var(--red);-webkit-clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}
.single-legal .entry::before{content:"";position:absolute;left:0;top:0;width:16px;height:16px;border-left:2px solid var(--red);border-top:2px solid var(--red);pointer-events:none}
.single-legal .entry::after{content:"";position:absolute;right:0;bottom:0;width:16px;height:16px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none}
.single-legal .entry>*:first-child{margin-top:0}.single-legal .entry>*:last-child{margin-bottom:0}
.single-legal .entry h2,.single-legal .entry h3{position:relative;padding-left:16px}
.single-legal .entry h2::before,.single-legal .entry h3::before{content:"";position:absolute;left:0;top:.18em;width:4px;height:.8em;background:var(--red)}
@media print{.single-legal .entry,.single-legal .legal-card{border:1px solid #ccc!important;background:#fff!important;-webkit-clip-path:none!important;clip-path:none!important}.single-legal .entry::before,.single-legal .entry::after,.single-legal .legal-card::after{display:none!important}}

/* ============ PODCAST SINGLE — cyberpunk ============ */
.videowrap.hud-frame{-webkit-clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%)}
.videowrap.hud-frame::before{content:"";position:absolute;left:0;bottom:0;width:20px;height:20px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);z-index:3;pointer-events:none}
.videowrap.hud-frame::after{content:"";position:absolute;right:0;bottom:0;width:20px;height:20px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);z-index:3;pointer-events:none}
.pod-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;margin-top:22px}
.pod-platforms{display:flex;flex-direction:column;gap:6px}
.pod-plat{position:relative;display:flex;align-items:center;gap:12px;padding:13px 16px;background:var(--card);border:1px solid var(--line);color:var(--fg);font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;transition:-webkit-transform .2s,transform .2s,border-color .2s,color .2s;
  -webkit-clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.pod-plat:hover{border-color:var(--red);color:var(--red);-webkit-transform:translateX(4px);transform:translateX(4px)}
.pod-plat .pp-dot{width:7px;height:7px;background:var(--red);flex-shrink:0}
.pod-plat .pp-arr{margin-left:auto;opacity:.55}
@media(max-width:700px){.pod-grid{grid-template-columns:1fr}}

/* ============ PODCAST SHOWNOTES — two columns ============ */
.shownotes{display:grid;gap:6px}
.sn-row{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:center;padding:13px 16px;background:var(--card);border:1px solid var(--line);position:relative;color:var(--fg);transition:border-color .2s,-webkit-transform .2s,transform .2s;
  -webkit-clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.sn-row:hover{border-color:var(--red);-webkit-transform:translateX(4px);transform:translateX(4px)}
.sn-label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.sn-url{font-family:var(--mono);font-size:13px;color:var(--fg-soft);word-break:break-all;display:flex;align-items:center;gap:8px}
.sn-url .sn-arr{opacity:.5;flex-shrink:0}
.sn-row:hover .sn-url{color:var(--red)}
@media(max-width:560px){.sn-row{grid-template-columns:1fr;gap:4px}}

/* ============ VIDEO FACADE (click-to-load) ============ */
.video-facade{cursor:pointer;background:var(--ink)}
.video-facade::after{content:"";position:absolute;inset:0;background:rgba(13,13,15,.45);z-index:1;pointer-events:none;transition:background .2s}
.video-facade:hover::after{background:rgba(13,13,15,.3)}
.video-facade.loaded{cursor:default}
.video-facade.loaded::after{display:none}
.video-facade .vf-play{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:2;width:74px;height:74px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;transition:-webkit-transform .2s,transform .2s,box-shadow .2s;box-shadow:0 0 40px rgba(225,18,29,.5)}
.video-facade:hover .vf-play{-webkit-transform:translate(-50%,-50%) scale(1.08);transform:translate(-50%,-50%) scale(1.08)}
.video-facade .vf-play svg{width:26px;height:26px;fill:#fff;margin-left:4px}
.video-facade .vf-hint{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:10px 14px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:rgba(240,239,233,.85);background:-webkit-linear-gradient(top,transparent,rgba(13,13,15,.85));background:linear-gradient(180deg,transparent,rgba(13,13,15,.85));text-align:center}

/* ============ NEWSLETTER FORM ============ */
.nl-form .news-inline{gap:10px}
.nl-consent{display:flex;gap:9px;align-items:flex-start;margin-top:12px;font-size:12px;color:rgba(240,239,233,.7);line-height:1.45}
.nl-consent input{width:auto;margin-top:2px;flex-shrink:0}
.nl-consent .nl-consent-txt{flex:1;min-width:0}
.nl-consent a{color:var(--red);text-decoration:underline}

/* ============ SINGLE ARTIST — cyberpunk ============ */
.artist-meta{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:16px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}
.artist-meta span{display:inline-flex;gap:6px;align-items:center}
.artist-meta .k{color:var(--red)}
.artist-meta .am-status{color:var(--red);margin-left:auto;font-weight:700}
.artist-meta .am-status .dot{width:8px;height:8px;border-radius:50%;background:var(--red);-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite}
/* portrait: greyscale that colours on hover + ID readout */
.artist-portrait img{-webkit-filter:grayscale(1) contrast(1.04);filter:grayscale(1) contrast(1.04);transition:-webkit-filter .4s,filter .4s,-webkit-transform .5s,transform .5s}
.artist-portrait:hover img{-webkit-filter:grayscale(0) contrast(1.05);filter:grayscale(0) contrast(1.05);-webkit-transform:scale(1.03);transform:scale(1.03)}
.artist-portrait .id-readout{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;justify-content:space-between;gap:8px;padding:22px 12px 10px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:-webkit-linear-gradient(top,transparent,rgba(13,13,15,.85));background:linear-gradient(180deg,transparent,rgba(13,13,15,.85))}
.artist-portrait .id-readout .red{color:var(--red);font-weight:700}
/* bio blueprint panel */
.artist-bio{position:relative;margin-top:0;padding:clamp(20px,3vw,36px);
  background-color:var(--card);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='150' height='150' fill='none' stroke='%230d0d0f' stroke-opacity='0.09' stroke-width='1'><path d='M150 42 H88 L66 64 H0'/><path d='M112 0 V50 L90 72 V150'/><circle cx='66' cy='64' r='2.4' fill='%230d0d0f' fill-opacity='0.18' stroke='none'/><circle cx='112' cy='22' r='2' fill='%23e1121d' stroke='none'/></svg>"),linear-gradient(rgba(13,13,15,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.045) 1px,transparent 1px);
  background-repeat:no-repeat,repeat,repeat;background-position:top right,0 0,0 0;background-size:150px 150px,32px 32px,32px 32px;
  border:1px solid var(--line);border-left:2px solid var(--red);
  -webkit-clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}
.artist-bio::before{content:"";position:absolute;left:0;top:0;width:16px;height:16px;border-left:2px solid var(--red);border-top:2px solid var(--red);pointer-events:none}
.artist-bio::after{content:"";position:absolute;right:0;bottom:0;width:16px;height:16px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none}
.artist-bio>*:first-child{margin-top:0}.artist-bio>*:last-child{margin-bottom:0}
/* social buttons with brand icons */
.buylinks a.soc{display:inline-flex;align-items:center;gap:8px}
.buylinks a.soc .soc-ico{width:19px;height:19px;color:var(--red);flex-shrink:0}
.buylinks a.soc:hover .soc-ico{color:inherit}
.pod-plat .soc-ico{width:19px;height:19px;color:var(--red);flex-shrink:0}
.pod-plat:hover .soc-ico{color:inherit}

/* ============ EVENT LIVESTREAM (badge, chip, stream links) ============ */
.ev-livebadge{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:7px 13px;border:1px solid var(--line)}
.ev-livebadge .dot{width:9px;height:9px;border-radius:50%;background:currentColor;flex-shrink:0}
.ev-livebadge.is-live{background:var(--red);color:#fff;border-color:var(--red)}
.ev-livebadge.is-live .dot{background:#fff;-webkit-animation:evpulse 1.1s infinite;animation:evpulse 1.1s infinite}
.ev-livebadge.is-upcoming,.ev-livebadge.is-planned{color:var(--red);border-color:var(--red)}
.ev-livebadge.is-past{color:var(--muted)}
@-webkit-keyframes evpulse{0%,100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.3;-webkit-transform:scale(.6);transform:scale(.6)}}
@keyframes evpulse{0%,100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.3;-webkit-transform:scale(.6);transform:scale(.6)}}
.ev-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;vertical-align:middle;border:1px solid var(--red);color:var(--red)}
.ev-chip.is-live{background:var(--red);color:#fff}
.ev-chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.ev-chip:not(.is-live) .dot{display:none}
.ev-chip.is-live .dot{background:#fff;-webkit-animation:evpulse 1.1s infinite;animation:evpulse 1.1s infinite}
.stream-links a{display:inline-flex;align-items:center;gap:7px}
.stream-links a .soc-ico{width:16px;height:16px;color:var(--red);flex-shrink:0}
.stream-links a:hover .soc-ico{color:inherit}

/* ============ EVENT MAP (OpenStreetMap, consent-gated) ============ */
.djmb-map{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden;margin:0;border:1px solid var(--line)}
.djmb-map::after{content:"";position:absolute;left:0;bottom:0;width:18px;height:18px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);z-index:2;pointer-events:none}
.djmb-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.djmb-map-facade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:22px;cursor:pointer;color:var(--onink)}
.djmb-map.loaded{cursor:default}
.djmb-map-pin svg{width:34px;height:34px;fill:var(--red);transition:-webkit-transform .2s,transform .2s}
.djmb-map-facade:hover .djmb-map-pin svg{-webkit-transform:translateY(-3px);transform:translateY(-3px)}
.djmb-map-place{font-family:var(--disp);font-size:clamp(15px,2.2vw,18px);text-transform:uppercase;letter-spacing:.02em;max-width:44ch}
.djmb-map-hint{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:rgba(240,239,233,.6);max-width:44ch}

/* ============ CAROUSEL (horizontal release strip) ============ */
.djmb-carousel .dc-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dc-nav{display:flex;gap:8px}
.dc-nav button{width:38px;height:38px;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;font-family:var(--mono);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s}
.dc-nav button:hover{background:var(--red);border-color:var(--red);color:#fff}
.dc-nav button[disabled]{opacity:.3;cursor:default}
.dc-nav button[disabled]:hover{background:transparent;border-color:var(--line);color:var(--fg)}
.dc-track{display:flex;gap:clamp(12px,2vw,20px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line-soft) transparent}
.dc-track > .pcard{flex:0 0 clamp(220px,42vw,290px);scroll-snap-align:start}
.dc-track::-webkit-scrollbar{height:8px}
.dc-track::-webkit-scrollbar-track{background:transparent}
.dc-track::-webkit-scrollbar-thumb{background:var(--line-soft)}
@media(prefers-reduced-motion:reduce){.dc-track{scroll-behavior:auto}}

/* ============ READING PROGRESS + BACK TO TOP ============ */
.read-progress{position:fixed;left:var(--rail);right:0;top:calc(var(--nav-h) - 3px);height:3px;z-index:46;pointer-events:none;background:transparent}
.read-progress .rp-fill{display:block;height:100%;width:0;background:var(--red);box-shadow:0 0 10px rgba(225,18,29,.6)}
@media(max-width:1080px){.read-progress{left:0}}
.to-top{position:fixed;right:clamp(14px,3vw,26px);bottom:clamp(14px,3vw,26px);z-index:60;width:48px;height:48px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:var(--ink);color:var(--onink);border:1px solid var(--red);cursor:pointer;
  opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px);pointer-events:none;
  transition:opacity .2s,-webkit-transform .2s,transform .2s,background .2s;
  -webkit-clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}
.to-top::after{content:"";position:absolute;left:0;bottom:0;width:11px;height:11px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none}
.to-top.show{opacity:1;-webkit-transform:none;transform:none;pointer-events:auto}
.to-top:hover{background:var(--red)}
.to-top svg{width:16px;height:16px;fill:currentColor}
.to-top span{font-family:var(--mono);font-size:8px;letter-spacing:.14em;line-height:1}

/* ============ PRESS-KIT / EPK ============ */
.epk-lead{color:var(--muted);max-width:60ch;font-size:16px;margin-top:12px}
.epk-photos{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.epk-photo{margin:0;position:relative}
.epk-photo .gcell{aspect-ratio:3/2}
.epk-dl{display:inline-flex;align-items:center;gap:6px;margin-top:7px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg);border:1px solid var(--line-soft);padding:6px 11px;transition:.15s}
.epk-dl:hover,.epk-dl:focus-visible{background:var(--red);border-color:var(--red);color:#fff}
.epk-downloads a.soc .soc-ico{width:18px;height:18px}

/* ---- Press-Kit / EPK single: cyberpunk ---- */
/* spec/booking blocks get the same terminal-readout look as releases */
.single-epk .spec{position:relative;overflow:hidden;border:1px solid var(--line);border-left:2px solid var(--red);background-color:var(--card);background-image:linear-gradient(rgba(13,13,15,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.04) 1px,transparent 1px);background-size:30px 30px,30px 30px;-webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.single-epk .spec::after{content:"";position:absolute;right:0;bottom:0;width:14px;height:14px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none;z-index:2}
.single-epk .spec .r .k::before{content:"› ";color:var(--red)}
.single-epk .spec .r{transition:background .15s}
.single-epk .spec .r:hover{background:var(--card2)}
/* portrait: notched frame + HUD corner bracket + faint scanlines */
.single-epk .cover.artist-portrait{position:relative;-webkit-clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px))}
.single-epk .cover.artist-portrait::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(13,13,15,.055) 3px,rgba(13,13,15,.055) 4px);mix-blend-mode:multiply}
.single-epk .cover.artist-portrait::after{content:"";position:absolute;right:11px;top:11px;width:18px;height:18px;border-top:2px solid var(--red);border-right:2px solid var(--red);z-index:4;pointer-events:none}
/* lead paragraph: red console bar */
.single-epk .epk-lead{position:relative;padding-left:16px}
.single-epk .epk-lead::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--red)}
/* press photos: notched cells with a red corner tick on hover */
.single-epk .epk-photo .gcell{position:relative;overflow:hidden;-webkit-clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.single-epk .epk-photo .gcell::after{content:"";position:absolute;left:8px;top:8px;width:12px;height:12px;border-top:2px solid var(--red);border-left:2px solid var(--red);opacity:0;transition:opacity .2s;z-index:3;pointer-events:none}
.single-epk .epk-photo:hover .gcell::after{opacity:1}

/* Print: clean, booker-friendly PDF */
@media print{
  .rail,header.nav,footer.site,#djmb-spotify,#djmb-consent,.epk-actions,.fx,.bg-rings,.bg-hatch,.skip-link{display:none!important}
  html,body{background:#fff!important;color:#000!important}
  .page{padding:0!important}
  .inner-main{padding-top:0!important;max-width:100%!important}
  a{color:#000!important;text-decoration:none!important}
  .sec-idx{color:#000!important}
  .epk-dl,.epk-photo .epk-dl{display:none!important}
  .artist-bio{border:1px solid #ccc!important;background:#fff!important;-webkit-clip-path:none!important;clip-path:none!important}
  .detail{break-inside:avoid}
  .epk-photos{grid-template-columns:repeat(3,1fr)}
}

/* ============ LINK-HUB (link in bio) ============ */
.linkhub-main{max-width:520px}
body.single-linkhub .rail{display:none}
body.single-linkhub .page{padding-left:0}
.linkhub{max-width:460px;margin:0 auto;text-align:center}
.lh-head{margin-bottom:24px}
.lh-avatar{width:120px;height:120px;margin:0 auto 16px;position:relative;overflow:hidden;background:var(--ink);border:1px solid var(--line);
  -webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.lh-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-webkit-filter:grayscale(1) contrast(1.05);filter:grayscale(1) contrast(1.05)}
.lh-avatar .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.lh-avatar .ph svg{width:46%;height:46%;opacity:.5}
.lh-name{font-size:clamp(26px,6vw,36px);text-transform:uppercase}
.lh-tag{color:var(--muted);font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-top:8px}
.lh-links{display:flex;flex-direction:column;gap:12px}
.lh-group{font-family:var(--mono);font-size:clamp(15px,4vw,18px);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);text-align:left;margin:26px 0 6px;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}
.lh-group:first-child{margin-top:4px}
.lh-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 18px;
  border:1px solid var(--line);background:var(--card);color:var(--fg);font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  transition:-webkit-transform .18s,transform .18s,background .18s,color .18s,border-color .18s;
  -webkit-clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.lh-btn::after{content:"";position:absolute;left:0;bottom:0;width:10px;height:10px;border-left:1px solid var(--red);border-bottom:1px solid var(--red);opacity:.7;pointer-events:none}
.lh-btn:hover{background:var(--ink);color:var(--onink);border-color:var(--ink);-webkit-transform:translateY(-2px);transform:translateY(-2px)}
.lh-btn.is-hl{background:var(--red);border-color:var(--red);color:#fff}
.lh-btn.is-hl:hover{background:var(--red-deep);border-color:var(--red-deep);color:#fff}
.lh-btn .soc-ico{width:28px;height:28px;flex-shrink:0}
.lh-social{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:28px}
.lh-social a{color:var(--fg);transition:color .15s;display:inline-flex}
.lh-social a .soc-ico{width:22px;height:22px}
.lh-social a:hover{color:var(--red)}

/* ============ CONSENT BANNER ============ */
.cc-bar{position:fixed;left:0;right:0;bottom:0;z-index:130;background:var(--ink);color:var(--onink);border-top:2px solid var(--red);padding:14px clamp(16px,3vw,28px)}
.cc-bar[hidden]{display:none}
.cc-in{max-width:var(--max);margin:0 auto;display:flex;align-items:center;gap:14px 24px;flex-wrap:wrap}
.cc-txt{margin:0;flex:1;min-width:240px;font-size:13px;line-height:1.55;color:rgba(240,239,233,.85)}
.cc-txt .cc-idx{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--red);margin-right:6px}
.cc-txt a{color:var(--red);text-decoration:underline}
.cc-btns{display:flex;gap:10px;flex-shrink:0}
.cc-bar .btn{min-height:42px;padding:11px 18px}

/* ============ RELEASE TRACKLIST ============ */
.tracklist{list-style:none;margin:0;padding:0;border:1px solid var(--line)}
.tracklist li{padding:11px 14px;border-top:1px solid var(--line-faint)}
.tracklist li:first-child{border-top:0}
.tracklist li:hover{background:var(--card2)}
.tracklist .tl-row{display:flex;align-items:center;gap:14px}
.tracklist .tl-no{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--red);min-width:24px;text-align:right}
.tracklist .tl-title{flex:1;font-weight:600;color:var(--text);min-width:0}
.tracklist .tl-time{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}
.tracklist .tl-play{flex-shrink:0;width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;color:var(--fg);border:1px solid var(--line);transition:.15s}
.tracklist .tl-play:hover,.tracklist .tl-play:focus-visible{background:var(--red);border-color:var(--red);color:#fff}
.tracklist li:hover .tl-play{border-color:var(--red);color:var(--red)}
.tracklist li:hover .tl-play:hover{color:#fff}
.tracklist .tl-links{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 1px 38px}
.tracklist .tl-links a{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;min-height:32px;display:inline-flex;align-items:center;border:1px solid var(--line-soft);color:var(--fg);transition:.15s}
.tracklist .tl-links a:hover,.tracklist .tl-links a:focus-visible{background:var(--red);border-color:var(--red);color:#fff}

/* ---- Release/Podcast single: cyberpunk spec + tracklist ---- */
.single-release .spec,.single-podcast .spec,.single-release .tracklist{position:relative;overflow:hidden;
  border:1px solid var(--line);border-left:2px solid var(--red);
  background-color:var(--card);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140' fill='none' stroke='%230d0d0f' stroke-opacity='0.10' stroke-width='1'><path d='M140 40 H84 L64 60 H0'/><path d='M104 0 V46 L84 66 V140'/><path d='M140 96 H112 L102 106 H0'/><circle cx='64' cy='60' r='2.3' fill='%230d0d0f' fill-opacity='0.18' stroke='none'/><circle cx='104' cy='20' r='2' fill='%23e1121d' stroke='none'/></svg>"),linear-gradient(rgba(13,13,15,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(13,13,15,.04) 1px,transparent 1px);
  background-repeat:no-repeat,repeat,repeat;background-position:top right,0 0,0 0;background-size:140px 140px,30px 30px,30px 30px;
  -webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.single-release .spec::after,.single-podcast .spec::after,.single-release .tracklist::after{content:"";position:absolute;right:0;bottom:0;width:14px;height:14px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none;z-index:2}
/* spec: terminal-readout keys + row hover */
.single-release .spec .r .k::before,.single-podcast .spec .r .k::before{content:"› ";color:var(--red)}
.single-release .spec .r,.single-podcast .spec .r{transition:background .15s}
.single-release .spec .r:hover,.single-podcast .spec .r:hover{background:var(--card2)}
/* tracklist: red hover tick + title glow */
.single-release .tracklist li{position:relative;transition:background .15s}
.single-release .tracklist li:hover .tl-title{color:var(--red)}
.single-release .tracklist li:hover::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);z-index:2}

/* ============ 404 / SIGNAL LOST ============ */
.e404{max-width:760px;margin:0 auto}
.e404 .panel{position:relative;background:var(--ink);color:var(--onink);border:1px solid var(--line);
  padding:clamp(28px,5vw,56px);overflow:hidden;
  -webkit-clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%)}
.e404 .panel::before{content:"";position:absolute;left:0;bottom:0;width:22px;height:22px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);pointer-events:none}
.e404 .panel::after{content:"";position:absolute;top:0;right:0;width:150px;height:150px;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='150' height='150' fill='none' stroke='%23f0efe9' stroke-opacity='0.16' stroke-width='1'><path d='M150 40 H84 L62 62 H0'/><path d='M108 0 V50 L86 72 V150'/><circle cx='62' cy='62' r='2.5' fill='%23f0efe9' fill-opacity='0.25' stroke='none'/><circle cx='108' cy='22' r='2' fill='%23e1121d' stroke='none'/></svg>")}
.e404 .idx{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.e404 .code{font-family:var(--disp);font-weight:700;font-size:clamp(84px,20vw,168px);line-height:.86;letter-spacing:.02em;margin:6px 0 4px;position:relative;display:inline-block}
.e404 .code::before,.e404 .code::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;pointer-events:none}
.e404 .code::before{color:var(--red);-webkit-animation:e404a 2.6s infinite steps(2);animation:e404a 2.6s infinite steps(2);clip-path:inset(0 0 55% 0)}
.e404 .code::after{color:#38e1ff;-webkit-animation:e404b 3.4s infinite steps(2);animation:e404b 3.4s infinite steps(2);clip-path:inset(55% 0 0 0)}
@-webkit-keyframes e404a{0%,92%,100%{transform:translate(0,0);opacity:0}93%{opacity:.85;transform:translate(-3px,-1px)}96%{opacity:.85;transform:translate(2px,1px)}}
@keyframes e404a{0%,92%,100%{transform:translate(0,0);opacity:0}93%{opacity:.85;transform:translate(-3px,-1px)}96%{opacity:.85;transform:translate(2px,1px)}}
@-webkit-keyframes e404b{0%,90%,100%{transform:translate(0,0);opacity:0}91%{opacity:.7;transform:translate(3px,1px)}97%{opacity:.7;transform:translate(-2px,-1px)}}
@keyframes e404b{0%,90%,100%{transform:translate(0,0);opacity:0}91%{opacity:.7;transform:translate(3px,1px)}97%{opacity:.7;transform:translate(-2px,-1px)}}
.e404 .headline{font-family:var(--disp);font-weight:700;font-size:clamp(20px,3.4vw,30px);margin:0 0 8px}
.e404 .lead{color:rgba(240,239,233,.72);max-width:48ch;font-size:15px;margin:0 0 20px}
.e404 .e404-search{max-width:420px;margin:0 0 22px}
.e404 .links{display:flex;flex-wrap:wrap;gap:10px}
.e404 .links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid var(--wline-soft);color:var(--onink);transition:.18s}
.e404 .links a:hover,.e404 .links a:focus-visible{border-color:var(--red);background:var(--red);color:#fff}
.e404 .links a::before{content:"//";color:var(--red)}
.e404 .links a:hover::before,.e404 .links a:focus-visible::before{color:#fff}

/* ============ DARK MODE ============ */
body.djmb-dark{--paper:#0c0c0e;--paper2:#101013;--card:#17171b;--card2:#1f1f24;--text:#eceae4;--fg:#e7e6df;--fg-soft:#c6c5bd;--muted:#9b9a90;--dim:#7c7b73;--line:rgba(240,239,233,.8);--line-soft:rgba(240,239,233,.34);--line-faint:rgba(240,239,233,.13)}
body.djmb-dark .brand img{-webkit-filter:invert(1) brightness(1.05);filter:invert(1) brightness(1.05)}
body.djmb-dark .bg-rings [stroke]{stroke:rgba(240,239,233,.14)}
body.djmb-dark .btn-out.lt:hover{background:var(--fg);color:var(--paper)}
body.djmb-dark .btn-out.dk:hover{background:var(--onink);color:var(--paper)}
@media(prefers-color-scheme:dark){
body.djmb-auto{--paper:#0c0c0e;--paper2:#101013;--card:#17171b;--card2:#1f1f24;--text:#eceae4;--fg:#e7e6df;--fg-soft:#c6c5bd;--muted:#9b9a90;--dim:#7c7b73;--line:rgba(240,239,233,.8);--line-soft:rgba(240,239,233,.34);--line-faint:rgba(240,239,233,.13)}
body.djmb-auto .brand img{-webkit-filter:invert(1) brightness(1.05);filter:invert(1) brightness(1.05)}
body.djmb-auto .bg-rings [stroke]{stroke:rgba(240,239,233,.14)}
body.djmb-auto .btn-out.lt:hover{background:var(--fg);color:var(--paper)}
body.djmb-auto .btn-out.dk:hover{background:var(--onink);color:var(--paper)}
}

/* ---- a11y: darker red for small red TEXT on light backgrounds (WCAG AA 4.5:1) ---- */
.entry a,.page-head .sec-idx,.term-head .sec-idx,.rel-tile .sec-idx,.sl-idx,.share-bar .share-lbl,.pcard .date,.featured-post .fp-body .date,.na .date,.ev .d span,.album .cap span{color:var(--red-deep)}
.ai-notice .ai-law{color:var(--muted)}
/* ---- a11y: honor prefers-reduced-motion everywhere ---- */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* ============================================================
   FREQUENZBETRIEB — SIGNALPULT (dark signal/oscilloscope reskin)
   Appended last so it wins the cascade. Palette: near-black,
   orange #FA4C29 hot accent, signal-cyan #37e0c6 for live/scope.
   ============================================================ */
:root{
  --paper:#0a0b0d;--paper2:#0e1013;--card:#111418;--card2:#0c0e11;
  --ink:#0b0c0f;--ink2:#141719;--ink-soft:#c9c7c0;
  --line:rgba(255,255,255,.09);--line-soft:rgba(255,255,255,.05);--line-faint:rgba(255,255,255,.035);
  --wline:rgba(240,239,233,.7);--wline-soft:rgba(240,239,233,.24);
  --red:#FA4C29;--red-deep:#d63c1c;--sig:#37e0c6;
  --text:#eceae4;--onink:#f0efe9;--muted:#8b909a;--dim:#5c616b;
  --fg:#eceae4;--fg-soft:#b7bac1;
  color-scheme:dark;
}
html{background:#08090b}
body{background:
  linear-gradient(rgba(8,9,11,.5),rgba(8,9,11,.5)),
  url("assets/img/fb-hintergrund-cyan.png?v=1") center center/cover fixed,
  radial-gradient(120% 80% at 50% -8%,rgba(250,76,41,.06),transparent 55%),
  linear-gradient(180deg,#0b0c0f,#08090b) fixed;
  color:var(--text)}
/* CRT scanline wash */
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.014) 1px,transparent 1px);background-size:100% 3px}

/* rail + header */
.rail{background:linear-gradient(#0e1013,#0a0b0d);border-right:1px solid var(--line)}
.rail a:hover,.rail a.active{background:var(--sig);border-color:var(--sig)}
header.nav{background:rgba(9,10,12,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand .dot{background:var(--sig);box-shadow:0 0 8px var(--sig)}
.navclock{color:var(--muted)}.navclock b{color:var(--sig)}

/* oscilloscope as a background animation inside the booking/contact/newsletter terminal */
.fb-scope-bg{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none;opacity:.55}

/* tiles = signal panels */
.tile{background:linear-gradient(180deg,#12151a,#0e1114);border:1px solid var(--line);color:var(--text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.tile.dark{background:linear-gradient(180deg,#0f1216,#0a0c0e);color:var(--onink)}
.tile::before{opacity:.6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='132' height='132' fill='none' stroke='%23f0efe9' stroke-opacity='0.1' stroke-width='1'%3E%3Cpath d='M132 36 H76 L56 56 H0'/%3E%3Cpath d='M98 0 V46 L78 66 V132'/%3E%3Cpath d='M132 92 H108 L96 104 H0'/%3E%3Ccircle cx='56' cy='56' r='2.5' fill='%2337e0c6' fill-opacity='0.5' stroke='none'/%3E%3Ccircle cx='98' cy='20' r='2' fill='%23FA4C29' stroke='none'/%3E%3C/svg%3E")}
.tile:not(.dark) .tb::after{border-color:var(--red)}
/* tile header = mono signal label + fine orange rule; live dot = cyan */
.th{border-bottom:1px solid rgba(250,76,41,.35);color:var(--muted)}
.th .st i{background:var(--sig);box-shadow:0 0 7px var(--sig)}
.frame-tags span{color:var(--dim)}

/* buttons */
.btn-red{background:var(--red);color:#0a0a0a}
.btn-red:hover{background:var(--red-deep);color:#fff}
.btn-out.lt{color:var(--fg);border-color:var(--line)}.btn-out.lt:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn-out.dk:hover{background:var(--red);color:#fff;border-color:var(--red)}

/* forms on dark */
input:not([type=submit]):not([type=button]),textarea,select{background:#0a0c0e;color:var(--text);border-color:var(--line)}
input::placeholder,textarea::placeholder{color:var(--dim)}
input:focus,textarea:focus,select:focus{border-color:var(--red)}
.terminal{background:#0b0d10}
.news-box{background:#0d0f13;border-color:var(--line)}

/* footer + player */
footer.site{background:linear-gradient(#0c0e11,#08090b);border-top:2px solid var(--red)}
.player{background:linear-gradient(#101317,#0a0c0e);border-top:2px solid var(--red)}

/* misc */
::selection{background:var(--red);color:#fff}
a:hover{color:var(--red)}

/* ---- SIGNALPULT: layout fixes (nav overflow, rail, scope labels, frame-tags) ---- */
/* Long menus overflowed the fixed top bar: collapse into the burger below 1200px */
@media(max-width:1200px){
  nav.menu,.nav-cta,.navclock{display:none}
  .burger{display:flex}
  nav.menu.open{display:block;position:absolute;top:var(--nav-h);left:0;right:0;background:#0c0e11;border-bottom:1px solid var(--line);padding:8px 24px;z-index:60}
  nav.menu.open ul{flex-direction:column;gap:0}
  nav.menu.open a{display:block;padding:14px 0;border-bottom:1px solid var(--line-soft)}
  nav.menu.open .sub-menu{position:static;display:flex;flex-direction:column;border:0;-webkit-box-shadow:none;box-shadow:none;padding:0 0 0 16px;background:transparent;min-width:0}
  nav.menu.open .menu-item-has-children > a::after{content:""}
}
/* keep the inline menu compact on wide screens so more items fit */
nav.menu,nav.menu ul{gap:15px}
nav.menu a{font-size:11px;letter-spacing:.1em}
.burger span{background:var(--fg)}
/* header must not clip its content, otherwise the dropdown submenus get cut off */
header.nav,.nav-in{overflow:visible}
.nav-in{min-width:0}


/* rail: drop the vertical tagline (was overlapping the dots) */
.rail .rlabel{display:none}
.rail .rtop{color:var(--sig)}

/* decorative frame-tags overlapped tiles on the dark bento — hide on tablet/small desktop */
@media(max-width:1200px){.frame-tags{display:none}}

/* ---- Vereinsmitgliedschaft: Access-Level-Karten + Antragsformular ---- */
/* Kacheln über die volle Inhaltsbreite: aus der 75ch-Lesespalte (.entry) ausbrechen */
.entry:has(.mtiers){max-width:none}
.mtiers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:none;width:100%;margin:0;padding:8px 0}
.mtier{position:relative;background:linear-gradient(180deg,#12151a,#0e1114);border:1px solid var(--line);padding:22px 20px;display:flex;flex-direction:column;
  -webkit-clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
.mtier-aktiv{border-color:rgba(250,76,41,.5)}
.mt-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid rgba(250,76,41,.35);padding-bottom:9px;margin-bottom:12px}
.mt-fee{color:var(--sig)}
.mtier h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:20px;margin:0 0 8px}
.mt-lead{color:var(--fg-soft);font-size:14px;margin:0 0 14px}
.mt-perks{list-style:none;margin:0 0 18px;padding:0;flex:1}
.mt-perks li{position:relative;padding:6px 0 6px 20px;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line-faint)}
.mt-perks li::before{content:"▸";position:absolute;left:0;color:var(--red)}
.mtier .btn{align-self:stretch;width:100%;justify-content:center;background:var(--red);color:#0a0a0a;border-color:var(--red);font-weight:700}
.mtier .btn:hover,.mtier .btn:focus-visible{background:var(--red-deep);color:#fff;border-color:var(--red-deep)}

/* Antragsformular */
.mform .term-in{display:block}
.mform-form{margin-top:20px}
.mform-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.mform-sepa{border:1px solid var(--line);padding:16px 16px 6px;margin:6px 0 16px;background:rgba(10,12,14,.5)}
.mform-sepa legend{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sig);padding:0 8px}
.mform .chk{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--fg-soft);margin:8px 0;line-height:1.4}
.mform .chk input{width:auto;flex:0 0 auto;margin-top:2px}
.fb-hint{display:block;color:var(--dim);font-size:11px;margin-top:5px;font-family:var(--mono);letter-spacing:.04em}
.mform-cap{margin-top:6px}
.fb-hp{position:absolute;left:-9999px}
.notice{padding:12px 16px;margin:0 0 16px;border:1px solid var(--line);font-family:var(--mono);font-size:13px}
.notice.ok{border-color:var(--sig);color:var(--sig)}
.notice.err{border-color:var(--red);color:var(--red)}
@media(max-width:820px){.mtiers{grid-template-columns:1fr}.mform-grid{grid-template-columns:1fr}}

/* ---- Mitgliedschaftsformular: Feld-Layout (Voll/Halb) ---- */
.mform-form{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin-top:20px}
.mform-form > .f-full,.mform-form > .mform-h,.mform-form > .mform-sepa,.mform-form > .chk,.mform-form > button{grid-column:1/-1}
.mform-form > .f-half{grid-column:span 1}
.mform-h{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:16px;letter-spacing:.02em;color:var(--sig);margin:16px 0 2px}
@media(max-width:640px){.mform-form{grid-template-columns:1fr}.mform-form > .f-half{grid-column:1/-1}}

/* Link-Hub: Rechtliches-Zeile (Impressum/Datenschutz des Artists) */
.lh-legal{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;align-items:center;margin:20px auto 6px;max-width:520px}
.lh-legal a{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-decoration:underline;text-underline-offset:3px;-webkit-text-decoration-thickness:1px;text-decoration-thickness:1px;white-space:nowrap}
.lh-legal a:hover{color:var(--red)}

/* ---- SIGNALPULT: Fix Invert-Hover (--ink/--paper = schwarz-auf-schwarz im Dark) ---- */
.nav-cta:hover,
.buylinks a:hover,
.t-social a:hover,
.sl-btn:hover,.sl-btn:focus-visible,
.lh-btn:hover,
.share-bar a.share-net:hover,.share-bar a.share-net:focus-visible,
.share-bar button.share-copy:hover,.share-bar button.share-copy:focus-visible,
.share-bar button.share-native:hover,.share-bar button.share-native:focus-visible{
  background:var(--red);color:#fff;border-color:var(--red)}
.buylinks a:hover .soc-ico,.buylinks a:hover svg,
.t-social a:hover .soc-ico{color:#fff}
.pagination .current{background:var(--red);color:#fff;border-color:var(--red)}
/* Genre-Filter: aktiver Button klar sichtbar (statt --ink/--paper = unsichtbar) */
.buylinks a.is-on{background:var(--red);color:#fff;border-color:var(--red)}
/* Artist-Badge oben links auf dem Cover */
.pcard .thumb .card-artist{position:absolute;top:12px;left:12px;z-index:3;max-width:calc(100% - 66px);
  font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#f0efe9;background:rgba(11,12,15,.72);border:1px solid rgba(240,239,233,.28);border-left:2px solid var(--red);
  padding:5px 9px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}

/* Push-Abo-Balken (Unterseiten): klar sichtbar in Orange statt schwarz-auf-schwarz */
.djmb-push-bar .djmb-push-btn{background:var(--red);border-color:var(--red);color:#fff}
.djmb-push-bar .djmb-push-btn:hover,.djmb-push-bar .djmb-push-btn[data-on="1"]{background:var(--red-deep);border-color:var(--red-deep);color:#fff}

/* iOS Push-Anleitung (Info-Box) */
.djmb-ios-ov{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:20px}
.djmb-ios-box{position:relative;max-width:420px;width:100%;background:var(--card);color:var(--text);border:1px solid var(--line);padding:26px 24px;box-shadow:0 20px 60px rgba(0,0,0,.45);-webkit-clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.djmb-ios-box h3{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:19px;margin:0 0 10px;color:var(--fg)}
.djmb-ios-box>p{font-size:14px;color:var(--muted);margin:0 0 12px}
.djmb-ios-box ol{margin:0 0 4px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.djmb-ios-box ol li{font-size:14px;color:var(--text);line-height:1.5}
.djmb-ios-note{font-size:12px;color:var(--dim);margin-top:12px}
.djmb-ios-x{position:absolute;top:8px;right:12px;background:none;border:0;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:4px}
.djmb-ios-x:hover{color:var(--red)}

/* ---- SIGNALPULT: Cyan-Circuit-Hintergrund (statt der hellen DJ-Deko) ---- */
.ribbon,.bg-rings,.bg-hatch,.circuit{display:none!important}

/* ---- Kacheln voll deckend; Mosaik zeigt sich in Rändern + Fugen (Bento-Container transparent) ---- */
.dash{background:transparent}
