:root{
  --lime:#E8FF00;
  --black:#080808;
  --off:#F4F1EA;
  --paper:#EFE9D8;
  --dark:#111;
  --card:#161616;
  --border:rgba(255,255,255,0.06);
  --muted:rgba(244,241,234,0.42);
  --head:'Bebas Neue',sans-serif;
  --serif:'DM Serif Display',serif;
  --body:'DM Sans',sans-serif;
  --ease:cubic-bezier(0.16,1,0.3,1);
  --slow:cubic-bezier(0.65,0,0.35,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth}
body{background:var(--black);color:var(--off);font-family:var(--body);overflow-x:hidden;cursor:auto}

/* System cursor — custom cursor disabled */
#cur,#cur-dot{display:none!important}
a,button,.ms-item,.pi,.lc,.bc-item,.ticket,.fab-btn,.fab-toggle,.pf,.nav-cta,.btn-lime,.btn-ghost{cursor:pointer!important}

/* CURSOR — Viewfinder */
#cur{position:fixed;width:36px;height:36px;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease);mix-blend-mode:difference}
#cur::before,#cur::after,#cur > span:nth-child(1),#cur > span:nth-child(2){content:'';position:absolute;width:9px;height:9px;border:1.5px solid var(--lime);transition:all .3s var(--ease)}
#cur::before{top:0;left:0;border-right:none;border-bottom:none}
#cur::after{top:0;right:0;border-left:none;border-bottom:none}
#cur > span:nth-child(1){bottom:0;left:0;border-right:none;border-top:none}
#cur > span:nth-child(2){bottom:0;right:0;border-left:none;border-top:none}
#cur-dot{position:fixed;width:3px;height:3px;background:var(--lime);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%)}
body.cur-big #cur{width:64px;height:64px}
body.cur-big #cur > span,body.cur-big #cur::before,body.cur-big #cur::after{width:14px;height:14px}

/* LOADER */
#loader{position:fixed;inset:0;background:var(--black);z-index:8000;display:flex;align-items:center;justify-content:center;transition:opacity 1s var(--ease),visibility 1s}
#loader.out{opacity:0;visibility:hidden}
.ld-svg{width:min(440px,70vw);height:auto;display:block;margin:0 auto 26px;opacity:0.95;animation:ld-fade 1.4s ease-out both}
@keyframes ld-fade{0%{opacity:0;transform:translateY(8px)}100%{opacity:0.95;transform:translateY(0)}}
.ld-track{width:min(440px,70vw);height:1px;background:rgba(255,255,255,0.08);position:relative;overflow:hidden;margin:0 auto}
.ld-bar{position:absolute;left:0;top:0;height:100%;background:var(--lime);width:0;transition:width .1s linear}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:0 40px;height:72px;transition:background .6s,border-color .6s}
nav.scrolled{background:rgba(8,8,8,0.94);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.nav-logo{display:block;height:26px;transition:opacity .3s}
.nav-logo:hover{opacity:0.75}
.nav-logo img{height:100%;width:auto;display:block}
.nav-links{display:flex;gap:38px;list-style:none}
.nav-links a{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(244,241,234,0.5);text-decoration:none;transition:color .3s}
.nav-links a:hover{color:var(--lime)}
.nav-cta{background:var(--lime);color:var(--black);padding:10px 22px;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:600;border:1px solid var(--lime);cursor:none;font-family:var(--body);text-decoration:none;display:inline-block;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 28px -8px rgba(232,255,0,0.5)}

/* HERO with real showreel videos */
.hero{position:relative;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:0 40px;align-items:flex-start}
.hero-video-bg{position:absolute;inset:0;background:var(--black);z-index:0;overflow:hidden}
.hero-video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;object-fit:cover;opacity:0.75}
.hero-video.landscape{display:block}
.hero-video.portrait{display:none}
/* Auto-switch when aspect ratio goes portrait */
@media (max-aspect-ratio: 1/1){
  .hero-video.landscape{display:none}
  .hero-video.portrait{display:block}
}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,8,0.45) 0%,rgba(8,8,8,0.55) 100%);z-index:1;pointer-events:none}
.hero-grain{position:absolute;inset:-50%;width:200%;height:200%;opacity:0.04;pointer-events:none;z-index:2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");animation:grain 1.6s steps(2) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,-2%)}50%{transform:translate(2%,3%)}75%{transform:translate(-1%,1%)}100%{transform:translate(3%,-2%)}}

.letterbox-top,.letterbox-bot{display:none}

.cam-rec{position:absolute;top:96px;right:40px;z-index:4;font-size:10px;letter-spacing:2px;color:rgba(232,255,0,0.7);display:flex;align-items:center;gap:8px}
.rec-dot{width:8px;height:8px;background:#FF3B30;border-radius:50%;animation:rec-blink 1.5s infinite}
@keyframes rec-blink{0%,100%{opacity:1}50%{opacity:.2}}

.hero-content{position:relative;z-index:5;max-width:1300px}
.hero-eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);margin-bottom:36px;display:flex;align-items:center;gap:14px;opacity:0;transform:translateY(20px);transition:opacity 1s var(--slow) .4s,transform 1s var(--slow) .4s}
.hero-eyebrow::before{content:'';width:32px;height:1px;background:var(--lime)}
.hero.ready .hero-eyebrow{opacity:1;transform:translateY(0)}

.hero-h1{font-family:var(--head);font-size:clamp(72px,11vw,200px);line-height:0.92;letter-spacing:1px;color:var(--off);text-shadow:0 4px 30px rgba(0,0,0,0.5)}
.hero-word{display:block;overflow:hidden;line-height:0.92}
.hero-word-inner{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--slow)}
.hero.ready .hero-word:nth-child(1) .hero-word-inner{transition-delay:.6s}
.hero.ready .hero-word:nth-child(2) .hero-word-inner{transition-delay:.8s}
.hero.ready .hero-word:nth-child(3) .hero-word-inner{transition-delay:1s}
.hero.ready .hero-word-inner{transform:translateY(0)}
.hero-word.accent .hero-word-inner{color:var(--lime)}

.hero-sub-en{font-family:var(--head);font-size:clamp(20px,2.4vw,36px);letter-spacing:2.5px;color:rgba(244,241,234,0.95);margin-top:18px;line-height:1.1;opacity:0;transform:translateY(20px);transition:opacity 1s var(--slow) 1.2s,transform 1s var(--slow) 1.2s;text-shadow:0 2px 12px rgba(0,0,0,0.4)}
.hero.ready .hero-sub-en{opacity:1;transform:translateY(0)}

.brand-mark{position:absolute;bottom:88px;left:40px;font-size:13px;color:rgba(244,241,234,0.6);font-style:italic;letter-spacing:1px;opacity:0;transition:opacity 1s var(--slow) 1.6s;z-index:5}
.hero.ready .brand-mark{opacity:1}

.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:48px;gap:48px;flex-wrap:wrap}
.hero-desc{font-size:15px;color:rgba(244,241,234,0.78);max-width:480px;line-height:1.75;font-weight:300;border-left:2px solid rgba(232,255,0,0.5);padding-left:20px;opacity:0;transform:translateY(20px);transition:opacity 1s var(--slow) 1.4s,transform 1s var(--slow) 1.4s;text-shadow:0 1px 8px rgba(0,0,0,0.4)}
.hero.ready .hero-desc{opacity:1;transform:translateY(0)}
.hero-cta{display:flex;gap:16px;align-items:center;opacity:0;transform:translateY(20px);transition:opacity 1s var(--slow) 1.5s,transform 1s var(--slow) 1.5s;flex-shrink:0}
.hero.ready .hero-cta{opacity:1;transform:translateY(0)}
.btn-lime{background:var(--lime);color:var(--black);padding:18px 36px;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;border:none;cursor:none;font-family:var(--body);transition:transform .35s var(--ease)}
.btn-lime:hover{transform:translateY(-3px)}
.btn-ghost{background:rgba(8,8,8,0.4);backdrop-filter:blur(8px);border:1px solid rgba(244,241,234,0.4);color:rgba(244,241,234,0.95);padding:18px 36px;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;cursor:none;font-family:var(--body);transition:border-color .3s,color .3s}
.btn-ghost:hover{border-color:var(--lime);color:var(--lime)}

.scroll-cue{position:absolute;bottom:88px;right:40px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;transition:opacity 1s var(--slow) 1.8s}
.hero.ready .scroll-cue{opacity:1}
.sc-text{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(244,241,234,0.5);writing-mode:vertical-rl;transform:rotate(180deg)}
.sc-line{width:1px;height:60px;background:rgba(255,255,255,0.2);position:relative;overflow:hidden}
.sc-fill{position:absolute;top:-100%;width:100%;height:50%;background:var(--lime);animation:sc 2.5s ease-in-out infinite}
@keyframes sc{0%{top:-100%}100%{top:200%}}

/* MARQUEES */
.marquee-projects{background:var(--lime);overflow:hidden;white-space:nowrap;padding:18px 0}
.mp-track{display:inline-flex;animation:mp 60s linear infinite;gap:40px;padding-right:40px}
.mp-item{font-family:var(--head);font-size:20px;letter-spacing:3px;color:var(--black);white-space:nowrap}
.mp-tag{font-family:var(--body);font-size:12px;letter-spacing:2px;color:rgba(0,0,0,0.6);font-style:italic;text-transform:uppercase}
.mp-dot{font-family:var(--head);font-size:20px;letter-spacing:3px;color:rgba(0,0,0,0.3)}
@keyframes mp{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.marquee-shorts{background:var(--dark);overflow:hidden;white-space:nowrap;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.ms-track{display:inline-flex;animation:ms 50s linear infinite;gap:40px;padding-right:40px}
.ms-item{font-family:var(--head);font-size:16px;letter-spacing:3px;color:rgba(244,241,234,0.5);white-space:nowrap}
.ms-tag{font-family:var(--body);font-size:11px;letter-spacing:2px;color:rgba(232,255,0,0.6);text-transform:uppercase;font-style:italic}
.ms-dot{color:rgba(244,241,234,0.2)}
@keyframes ms{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.marquee-services{background:var(--black);overflow:hidden;white-space:nowrap;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.msv-track{display:inline-flex;animation:msv 45s linear infinite;gap:32px;padding-right:32px}
.msv-item{font-family:var(--body);font-size:12px;letter-spacing:3px;color:rgba(244,241,234,0.3);text-transform:lowercase;white-space:nowrap}
.msv-dot{color:rgba(232,255,0,0.5)}
@keyframes msv{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ABOUT */
.about{padding:180px 40px;background:var(--black);position:relative;overflow:hidden}
.about::before{content:'\201C';position:absolute;top:-40px;right:60px;font-family:var(--head);font-size:400px;color:rgba(232,255,0,0.025);line-height:1;pointer-events:none;animation:qf 10s ease-in-out infinite alternate}
@keyframes qf{from{transform:translateY(0) rotate(-5deg)}to{transform:translateY(30px) rotate(-3deg)}}
.about-inner{max-width:1300px;margin:0 auto}
.about-label{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);margin-bottom:48px;display:flex;align-items:center;gap:14px}
.about-label::before{content:'';width:32px;height:1px;background:var(--lime)}
.about-h2{font-family:var(--head);font-size:clamp(60px,8vw,140px);line-height:0.9;letter-spacing:1.5px;margin-bottom:64px}
.about-h2 .w{color:var(--off)}
.about-h2 .y{color:var(--lime)}
.about-body{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:48px;border-top:1px solid var(--border)}
.about-p{font-size:17px;color:var(--muted);line-height:1.85;font-weight:300}
.about-p strong{color:var(--off);font-weight:500}

/* SERVICES */
.services{padding:120px 0 110px;background:var(--black);position:relative;overflow:hidden}
.svc-header{padding:0 40px;display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:88px;gap:48px}
.svc-h2{font-family:var(--head);font-size:clamp(54px,7vw,108px);line-height:0.92;letter-spacing:1.5px}
.svc-h2 span{color:var(--lime)}
.svc-sub{max-width:320px;font-size:14px;color:var(--muted);line-height:1.75;font-weight:300}
/* ===== 5 SPARTEN — Arsenal (Device Stage) ===== */
.services::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:6;opacity:0.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.mega-stage{position:relative;display:grid;grid-template-columns:0.92fr 1.08fr;gap:48px;align-items:center;padding:0 40px;min-height:66vh}
.mega-list{position:relative;z-index:3;border-top:1px solid var(--border)}
.ms-item{border-bottom:1px solid var(--border);padding:20px 0;cursor:none;transition:padding .5s var(--ease)}
.ms-row{display:flex;align-items:baseline;gap:22px}
.ms-num{font-family:var(--head);font-size:15px;letter-spacing:2px;color:rgba(244,241,234,0.28);transition:color .4s}
.ms-name{position:relative;font-family:var(--head);font-size:clamp(34px,4.2vw,62px);line-height:0.92;letter-spacing:1px;color:rgba(244,241,234,0.5);transition:color .45s var(--ease),letter-spacing .45s var(--ease)}
.ms-pill{display:inline-block;font-size:10px;letter-spacing:2px;background:var(--lime);color:var(--black);padding:3px 9px;margin-left:14px;vertical-align:middle;font-family:var(--body);font-weight:700;opacity:0.85}
.ms-detail{max-height:0;overflow:hidden;opacity:0;transition:max-height .7s var(--slow),opacity .55s .08s var(--slow),margin .7s var(--slow);padding-left:37px}
.ms-desc{font-size:14px;color:rgba(244,241,234,0.72);line-height:1.55;max-width:420px;margin-bottom:14px;white-space:normal}
.ms-tags{display:flex;gap:8px;flex-wrap:wrap}
.ms-tag{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:5px 11px;border:1px solid rgba(232,255,0,0.3);color:rgba(232,255,0,0.85);white-space:nowrap}
.ms-item.active .ms-num{color:var(--lime)}
.ms-item.active .ms-name{color:var(--off);letter-spacing:3px}
.ms-item.active .ms-detail{max-height:200px;opacity:1;margin-top:16px}
.ms-item:hover:not(.active) .ms-name{color:rgba(244,241,234,0.8)}
.ms-name::before{content:attr(data-text);position:absolute;left:0;top:0;color:var(--lime);opacity:0;pointer-events:none}
.ms-item.flash .ms-name::before{animation:mega-glitch .42s steps(2) 1}
@keyframes mega-glitch{
  0%{opacity:0.9;transform:translate(-3px,-2px);clip-path:inset(0 0 65% 0)}
  35%{opacity:0.6;transform:translate(4px,2px);clip-path:inset(58% 0 0 0)}
  70%{opacity:0.4;transform:translate(-2px,1px);clip-path:inset(22% 0 40% 0)}
  100%{opacity:0;transform:translate(0,0)}
}
.mega-screen{cursor:none;position:relative;height:62vh;min-height:440px;display:flex;align-items:center;justify-content:center;perspective:1200px}
.mega-ghost{position:absolute;z-index:0;font-family:var(--head);font-size:clamp(120px,20vw,300px);line-height:0.8;letter-spacing:2px;color:rgba(244,241,234,0.04);white-space:nowrap;user-select:none;pointer-events:none;transition:color .5s,opacity .55s var(--slow)}
.mega-screen.feat .mega-ghost{color:rgba(232,255,0,0.06)}
.mega-spot{position:absolute;z-index:1;width:70%;height:70%;border-radius:50%;background:radial-gradient(circle,rgba(232,255,0,0.10) 0%,rgba(232,255,0,0.03) 35%,transparent 70%);filter:blur(10px);pointer-events:none}
.mega-device-wrap{position:relative;z-index:2;width:78%;max-width:560px;aspect-ratio:3/2;animation:floaty 6.5s ease-in-out infinite alternate;will-change:transform}
.mega-tilt{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .25s ease-out}
.mega-device{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 30px 50px rgba(0,0,0,0.7));opacity:1;transition:opacity .9s cubic-bezier(0.4,0,0.2,1);backface-visibility:hidden;will-change:opacity}
.mega-floor{position:absolute;left:50%;bottom:-4%;transform:translateX(-50%);width:62%;height:42px;z-index:1;background:radial-gradient(ellipse,rgba(0,0,0,0.65) 0%,transparent 70%);filter:blur(6px)}
@keyframes floaty{0%{transform:translateY(-10px)}100%{transform:translateY(10px)}}
.mega-flash{position:absolute;inset:0;z-index:4;background:var(--lime);opacity:0;pointer-events:none;mix-blend-mode:screen}
.mega-flash.go{animation:megaflash .34s ease-out 1}
@keyframes megaflash{0%{opacity:0}12%{opacity:0.16}100%{opacity:0}}

/* ─────────── NOW PLAYING — Streaming Platform ─────────── */
.np-section{padding:140px 0 100px;background:var(--black);position:relative;overflow:hidden}
.np-section::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:60px;background:linear-gradient(to bottom,transparent,var(--lime))}

.np-hdr{padding:0 40px;display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:40px;gap:32px;flex-wrap:wrap}
.np-hdr-left{display:flex;flex-direction:column;gap:14px}
.np-eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);display:inline-flex;align-items:center;gap:14px}
.np-eyebrow::before{content:'';width:32px;height:1px;background:var(--lime)}
.np-h2{font-family:var(--head);font-size:clamp(54px,7vw,108px);line-height:0.92;letter-spacing:1.5px}
.np-h2 em{color:var(--lime);font-style:normal}
.np-x{width:64px;height:64px;flex-shrink:0;align-self:flex-end;opacity:0.9;transition:opacity .4s,transform .5s var(--ease)}
.np-x:hover{opacity:1;transform:rotate(6deg) scale(1.05)}
.np-x img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 24px rgba(232,255,0,0.35))}

/* HERO Cinemascope */
.np-hero{position:relative;width:100%;max-width:1280px;margin:0 auto 56px;aspect-ratio:16/9;background:#000;overflow:hidden;cursor:pointer}
.np-hero-media{position:absolute;inset:0;width:100%;height:100%}
.np-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 8s ease-out,opacity .8s}
.np-hero.transitioning .np-hero-media img{opacity:0}
.np-hero:hover .np-hero-media img{transform:scale(1.03)}
.np-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.95) 0%,rgba(0,0,0,0.55) 35%,rgba(0,0,0,0.05) 70%,transparent 100%),linear-gradient(to right,rgba(0,0,0,0.6) 0%,transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:56px 64px;transition:opacity .5s}
.np-hero.transitioning .np-hero-overlay{opacity:0.3}
.np-hero-cat{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);margin-bottom:18px;font-weight:500}
.np-hero-cat::before{content:'';width:8px;height:8px;background:var(--lime);border-radius:50%;animation:np-pulse 2s infinite}
@keyframes np-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(0.8)}}
.np-hero-title{font-family:var(--head);font-size:clamp(36px,4.6vw,72px);line-height:0.98;letter-spacing:0.5px;color:#fff;margin-bottom:16px;max-width:78%}
.np-hero-sub{font-size:15px;color:rgba(255,255,255,0.78);line-height:1.55;max-width:560px;margin-bottom:28px}
.np-hero-cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.np-cta-primary{background:var(--lime);color:var(--black);padding:14px 28px;font-family:var(--head);font-size:14px;letter-spacing:2.5px;display:inline-flex;align-items:center;gap:12px;cursor:pointer;border:none;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.np-cta-primary::before{content:'';width:0;height:0;border-style:solid;border-width:7px 0 7px 11px;border-color:transparent transparent transparent var(--black)}
.np-cta-primary:hover{transform:translateY(-2px);box-shadow:0 12px 40px -8px rgba(232,255,0,0.4)}
.np-cta-secondary{background:rgba(255,255,255,0.08);backdrop-filter:blur(10px);color:#fff;padding:14px 24px;font-family:var(--head);font-size:14px;letter-spacing:2.5px;border:1px solid rgba(255,255,255,0.2);cursor:pointer;transition:all .3s}
.np-cta-secondary:hover{background:rgba(255,255,255,0.15);border-color:rgba(255,255,255,0.4)}

.np-hero-dots{position:absolute;bottom:40px;right:64px;display:flex;gap:8px;z-index:3}
.np-dot{width:36px;height:3px;background:rgba(255,255,255,0.3);cursor:pointer;transition:background .35s,width .35s;border:0}
.np-dot.active{background:var(--lime);width:48px}
.np-dot:hover:not(.active){background:rgba(255,255,255,0.55)}

/* Hero progress bar */
.np-hero-progress{position:absolute;bottom:0;left:0;height:2px;background:var(--lime);width:0;z-index:3;transition:width 8s linear}
.np-hero.transitioning .np-hero-progress{width:100%}

/* FILTERS */
.np-filters{padding:0 40px;display:flex;gap:6px;flex-wrap:wrap;margin-bottom:48px;align-items:center}
.np-filters-label{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-right:14px}
.np-fb{font-family:var(--head);font-size:13px;letter-spacing:2.5px;padding:10px 22px;background:transparent;border:1px solid var(--border);color:var(--off);cursor:pointer;transition:all .35s var(--ease)}
.np-fb.active{background:var(--lime);color:var(--black);border-color:var(--lime)}
.np-fb:hover:not(.active){border-color:var(--lime);color:var(--lime)}
.np-fb-count{font-size:10px;opacity:0.5;margin-left:6px}
.np-fb.active .np-fb-count{opacity:0.7}

/* ROW per category */
.np-row{padding:0 40px;margin-bottom:48px;position:relative}
.np-row-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;gap:24px}
.np-row-h{font-family:var(--head);font-size:26px;letter-spacing:2px;color:var(--off);display:flex;align-items:baseline;gap:14px}
.np-row-h em{color:var(--lime);font-style:normal}
.np-row-cnt{font-size:11px;letter-spacing:2px;color:var(--muted);font-family:var(--body)}
.np-row-nav{display:flex;gap:6px}
.np-arrow{width:36px;height:36px;border:1px solid var(--border);background:transparent;color:var(--off);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;font-size:18px;line-height:1}
.np-arrow:hover{border-color:var(--lime);color:var(--lime);background:rgba(232,255,0,0.04)}
.np-arrow:disabled{opacity:0.3;cursor:not-allowed}

.np-row-viewport{overflow:hidden;position:relative}
.np-row-track{display:flex;gap:14px;align-items:flex-start;transition:transform .6s var(--ease);padding-bottom:18px;will-change:transform;cursor:grab;user-select:none}
.np-row-track img{-webkit-user-drag:none;user-drag:none;pointer-events:none}

/* TILE — all tiles share the same fixed HEIGHT; width follows aspect ratio */
.np-tile{flex-shrink:0;height:200px;width:355px;position:relative;background:#000;overflow:hidden;cursor:pointer;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.np-tile.vertical{height:200px;width:112px}
/* Rows that contain vertical clips get taller tiles so the verticals shine */
.np-row.has-vertical .np-tile{height:250px;width:444px}
.np-row.has-vertical .np-tile.vertical{height:250px;width:141px}
.np-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.82;transition:opacity .4s,transform .6s var(--ease)}
.np-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.88) 0%,rgba(0,0,0,0.15) 40%,transparent 100%);transition:opacity .35s;pointer-events:none}
.np-tile-info{position:absolute;left:14px;right:14px;bottom:14px;z-index:2;transition:transform .4s var(--ease)}
.np-tile-cat{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--lime);margin-bottom:6px;opacity:0.85}
.np-tile-title{font-family:var(--head);font-size:16px;letter-spacing:1px;color:#fff;line-height:1.1;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-height:2.4em}
.np-tile.vertical .np-tile-title{font-size:13px;-webkit-line-clamp:3;max-height:3.6em}
.np-tile-client{font-size:11px;color:rgba(255,255,255,0.55);letter-spacing:0.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-tile:hover{transform:scale(1.06);z-index:5;box-shadow:0 28px 80px -16px rgba(0,0,0,0.85),0 0 0 1px rgba(232,255,0,0.35)}
.np-tile:hover img{opacity:1;transform:scale(1.04)}
.np-tile-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0.6);width:56px;height:56px;border-radius:50%;background:var(--lime);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .35s,transform .4s var(--ease);z-index:3;pointer-events:none}
.np-tile-play::after{content:'';width:0;height:0;border-style:solid;border-width:9px 0 9px 14px;border-color:transparent transparent transparent var(--black);margin-left:3px}
.np-tile:hover .np-tile-play{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* LIGHTBOX MODAL */
.np-modal{position:fixed;inset:0;background:rgba(8,8,8,0.96);backdrop-filter:blur(18px);z-index:9999;display:none;overflow-y:auto;padding:90px 40px 50px;opacity:0;transition:opacity .4s var(--ease)}
.np-modal.open{display:flex;align-items:flex-start;justify-content:center;opacity:1}
.np-modal-inner{width:100%;max-width:1080px;position:relative;margin:auto 0}
.np-modal-video{width:100%;aspect-ratio:16/9;background:#000;position:relative;box-shadow:0 40px 100px -20px rgba(0,0,0,0.8);max-width:min(1080px, calc((100vh - 230px) * 16/9));margin:0 auto}
.np-modal-video.vertical{aspect-ratio:9/16;max-width:min(380px, calc((100vh - 230px) * 9/16));margin:0 auto}
.np-modal-video iframe{width:100%;height:100%;border:0}
.np-modal-meta{margin-top:20px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.np-modal-meta-left{flex:1;min-width:0}
.np-modal-cat{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);margin-bottom:8px}
.np-modal-title{font-family:var(--head);font-size:26px;letter-spacing:1px;color:#fff;line-height:1.1;margin-bottom:4px}
.np-modal-client{font-size:13px;color:rgba(255,255,255,0.55);letter-spacing:0.5px}
.np-modal-yt{display:inline-flex;align-items:center;gap:12px;padding:13px 20px;background:var(--lime);color:var(--black);font-family:var(--head);font-size:13px;letter-spacing:2.5px;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s var(--ease);flex-shrink:0}
.np-modal-yt:hover{transform:translateY(-2px);box-shadow:0 12px 32px -8px rgba(232,255,0,0.4)}
.np-modal-yt .arrow{font-size:16px;line-height:1}
.np-modal-close{position:fixed;top:24px;left:24px;height:42px;padding:0 14px;background:var(--black);border:1px solid var(--lime);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .25s;z-index:10001}
.np-modal-close:hover{background:var(--lime)}
.np-modal-close img{height:22px;width:auto;display:block;transition:filter .25s}
.np-modal-close:hover img{filter:brightness(0)}
.np-video-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000}
.np-video-loading::after{content:'';width:42px;height:42px;border:2px solid rgba(232,255,0,0.15);border-top-color:var(--lime);border-radius:50%;animation:np-spin 0.8s linear infinite}
@keyframes np-spin{to{transform:rotate(360deg)}}
.np-file-fallback{transition:opacity .3s}
.np-file-fallback:hover img{opacity:0.7!important}
.np-file-fallback:hover > div > div:first-child{transform:scale(1.06);transition:transform .3s var(--ease)}

/* KEEP ON ROLLING marquee */
.np-rolling{background:var(--lime);overflow:hidden;white-space:nowrap;padding:22px 0}
.np-rolling-track{display:inline-flex;animation:np-roll 30s linear infinite;gap:42px;padding-right:42px;align-items:center}
.np-rolling-item{font-family:var(--head);font-size:34px;letter-spacing:3px;color:var(--black);font-weight:400}
.np-rolling-x{font-family:var(--head);font-size:30px;color:var(--black);opacity:0.5;line-height:1}
@keyframes np-roll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* BACK TO TOP — floating button */
.back-top{position:fixed;right:32px;bottom:32px;z-index:998;width:auto;height:42px;padding:0 14px;background:var(--black);border:1px solid var(--lime);display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .4s var(--ease),transform .4s var(--ease),background .25s}
.back-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.back-top:hover{background:var(--lime);transform:translateY(-3px)}
.back-top:hover.visible{transform:translateY(-3px)}
.back-top img{height:22px;width:auto;display:block;transition:filter .25s}
.back-top:hover img{filter:brightness(0)}

/* QUOTE */
.quote-band{padding:180px 40px;background:var(--lime);text-align:center;position:relative;overflow:hidden;cursor:none}
.qbw{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--head);font-size:clamp(100px,18vw,260px);color:rgba(0,0,0,0.05);letter-spacing:-4px;white-space:nowrap;pointer-events:none;animation:qbw 9s ease-in-out infinite alternate}
@keyframes qbw{from{transform:translate(-50%,-50%) rotate(-1deg)}to{transform:translate(-50%,-52%) rotate(1deg)}}
.quote-band blockquote{position:relative;z-index:2;font-family:var(--head);font-size:clamp(36px,5.5vw,90px);letter-spacing:2px;color:var(--black);line-height:1.05;max-width:1100px;margin:0 auto}
.quote-band cite{display:block;margin-top:40px;font-size:11px;letter-spacing:3px;color:rgba(0,0,0,0.45);font-style:normal;text-transform:uppercase}

/* CLIENTS */
.clients{padding:160px 0 100px;background:var(--black);overflow:hidden}
.clients-top{display:flex;justify-content:space-between;align-items:flex-end;margin:0 40px 64px;gap:48px}
.clients-h2{font-family:var(--head);font-size:clamp(52px,6.5vw,108px);line-height:0.92}
.clients-h2 em{color:var(--lime);font-style:normal}
.clients-meta{text-align:right;font-size:12px;color:var(--muted);letter-spacing:2px;text-transform:uppercase}
.clients-meta b{display:block;font-family:var(--head);font-size:64px;color:var(--lime);letter-spacing:1px}

/* LOGO WALL — Multi-Row Marquee */
.logo-wall{display:flex;flex-direction:column;gap:14px;padding:20px 0;mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%)}
.lw-row{display:flex;overflow:hidden;position:relative}
.lw-track{display:flex;gap:14px;flex-shrink:0;padding-right:14px;align-items:center}
.lw-card{flex-shrink:0;width:210px;height:108px;background:#0a0a0a;border:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;padding:18px 24px;transition:all .4s var(--ease);position:relative;overflow:hidden}
.lw-card img{max-width:100%;max-height:100%;object-fit:contain;opacity:0.78;transition:opacity .4s,filter .4s}
/* Logos ohne Whitespace im PNG — manuell verkleinern für visuelle Konsistenz */
.lw-card img[src*="hoegl"]{max-height:62%;max-width:80%}
.lw-card::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at center,rgba(232,255,0,0.08) 0%,transparent 70%);opacity:0;transition:opacity .4s;pointer-events:none}
.lw-card:hover{border-color:rgba(232,255,0,0.55);transform:translateY(-3px);box-shadow:0 14px 40px -10px rgba(232,255,0,0.18),0 0 0 1px rgba(232,255,0,0.3)}
.lw-card:hover img{opacity:1}
.lw-card:hover::after{opacity:1}

/* tilted variants for casual feel */
.lw-card:nth-child(3n){transform:rotate(-0.4deg)}
.lw-card:nth-child(3n):hover{transform:rotate(-0.4deg) translateY(-3px)}
.lw-card:nth-child(5n){transform:rotate(0.3deg)}
.lw-card:nth-child(5n):hover{transform:rotate(0.3deg) translateY(-3px)}

/* Three rows with different speeds + directions */
.lw-row-1 .lw-track{animation:lw-scroll-left 90s linear infinite}
.lw-row-2 .lw-track{animation:lw-scroll-right 70s linear infinite}
.lw-row-3 .lw-track{animation:lw-scroll-left 55s linear infinite}
@keyframes lw-scroll-left{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes lw-scroll-right{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}

/* Pause on hover anywhere in a row */
.lw-row:hover .lw-track{animation-play-state:paused}

/* Broadcaster bar — own row, prominent */
.broadcaster{margin:64px 40px 0;padding:36px 48px;background:var(--dark);border:1px solid var(--border);border-left:3px solid var(--lime);display:flex;align-items:center;gap:48px;flex-wrap:wrap}
.bc-lbl{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);font-weight:600}
.bc-items{display:flex;gap:56px;flex-wrap:wrap;align-items:center;flex:1;justify-content:center}
.bc-item{height:52px;display:inline-flex;align-items:center;justify-content:center;transition:transform .35s var(--ease)}
.bc-item img{height:100%;max-width:180px;object-fit:contain;opacity:0.6;transition:opacity .35s}
.bc-item:hover{transform:translateY(-2px)}
.bc-item:hover img{opacity:1}

/* AWARDS */
.awards{padding:140px 40px 120px;background:var(--black);position:relative;overflow:hidden}
.awards::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:60px;background:linear-gradient(to bottom,transparent,var(--lime))}
.awards-header{text-align:center;margin-bottom:96px;max-width:900px;margin-left:auto;margin-right:auto}
.awards-eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);margin-bottom:28px}
.awards-eyebrow::before,.awards-eyebrow::after{content:'';width:32px;height:1px;background:var(--lime)}
.awards-h2{font-family:var(--head);font-size:clamp(52px,6.5vw,108px);line-height:0.92;letter-spacing:1.5px;margin-bottom:24px}
.awards-h2 em{color:var(--lime);font-style:normal}
.awards-sub{font-size:15px;color:var(--muted);max-width:540px;margin:0 auto;line-height:1.6}

.awards-top{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;max-width:1100px;margin:0 auto 96px;align-items:end}
.aw-top{display:flex;flex-direction:column;align-items:center;text-align:center;transition:all .5s var(--ease);cursor:default}
.aw-top-img{height:170px;width:100%;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.aw-top-img img{max-width:100%;max-height:100%;object-fit:contain;opacity:0.78;transition:opacity .4s,transform .5s var(--ease)}
.aw-top:hover .aw-top-img img{opacity:1;transform:scale(1.04)}
/* Staatspreis PNG is wider banner format — cap so it matches the others visually */
.aw-top-img img[src*="staatspreis"]{max-width:72%;max-height:75%}
.aw-top-rank{font-family:var(--head);font-size:11px;letter-spacing:3px;color:var(--lime);opacity:0.55;transition:opacity .3s}
.aw-top:hover .aw-top-rank{opacity:1}

.awards-divider{max-width:200px;margin:0 auto 64px;text-align:center;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--muted);position:relative}
.awards-divider::before,.awards-divider::after{content:'';position:absolute;top:50%;width:60px;height:1px;background:var(--border)}
.awards-divider::before{right:100%;margin-right:20px}
.awards-divider::after{left:100%;margin-left:20px}

.awards-bottom{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:32px 44px;max-width:1100px;margin:0 auto}
.aw-bot{transition:all .4s var(--ease)}
.aw-bot img{height:95px;width:auto;object-fit:contain;opacity:0.5;transition:opacity .4s,transform .4s var(--ease)}
.aw-bot:hover img{opacity:1;transform:translateY(-3px)}

/* POSTER — Coming Soon */
.poster-section{padding:120px 40px;background:var(--black);position:relative;overflow:hidden;perspective:1500px}
.poster-spotlight{position:absolute;top:-200px;left:50%;transform:translateX(-50%);width:1100px;height:1400px;background:radial-gradient(ellipse at 50% 0%,rgba(232,255,0,0.06) 0%,transparent 60%);pointer-events:none;z-index:1}
.poster-eyebrow{text-align:center;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);font-style:italic;margin-bottom:48px;position:relative;z-index:3}
.poster{position:relative;max-width:620px;margin:0 auto;aspect-ratio:2/3;border-radius:4px;overflow:hidden;color:var(--off);font-family:var(--head);box-shadow:0 60px 120px -30px rgba(0,0,0,0.9),0 0 0 1px rgba(232,255,0,0.12);transform:rotate(-1.2deg) translateY(60px);opacity:0;transition:transform 1.4s var(--slow),opacity 1.2s var(--slow);z-index:2;transform-style:preserve-3d;will-change:transform}
.poster.tilting{transition:none}
.poster.in{opacity:1;transform:rotate(-1.2deg) translateY(0)}
.poster-art{position:absolute;inset:0;z-index:0}
.poster-art img{width:100%;height:100%;object-fit:cover;display:block}
.poster-art::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(8,8,8,0.82) 0%,rgba(8,8,8,0.35) 22%,rgba(8,8,8,0) 42%,rgba(8,8,8,0) 52%,rgba(8,8,8,0.55) 70%,rgba(8,8,8,0.96) 100%)}
.poster-inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;padding:34px 34px 30px;text-align:center}
.poster-sheen{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(244,241,234,0.05) 46%,rgba(232,255,0,0.10) 50%,rgba(244,241,234,0.05) 54%,transparent 70%);background-size:260% 100%;background-position:120% 0;transition:background-position 1.1s var(--ease)}
.poster:hover .poster-sheen{background-position:-40% 0}
.poster:hover{box-shadow:0 60px 120px -30px rgba(0,0,0,0.9),0 0 0 1px rgba(232,255,0,0.3),0 0 70px -18px rgba(232,255,0,0.28)}

.poster-cs{font-family:var(--body);font-weight:300;font-size:11px;letter-spacing:5px;color:rgba(244,241,234,0.75);text-transform:uppercase;display:flex;align-items:center;gap:14px;justify-content:center}
.poster-cs::before,.poster-cs::after{content:'';flex:1;height:1px;background:rgba(244,241,234,0.25)}
.poster-presents{font-family:var(--body);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:rgba(244,241,234,0.55);margin-top:14px}
.poster-presents b{color:var(--off);font-weight:600}
.poster-title{font-family:var(--head);font-size:clamp(56px,10vw,104px);line-height:0.82;letter-spacing:1px;color:var(--off);margin-top:26px;text-shadow:0 4px 40px rgba(0,0,0,0.7)}
.poster-spacer{flex:1}
.poster-title em{font-family:var(--serif);font-style:italic;font-size:0.34em;display:block;letter-spacing:1px;margin-top:14px;color:var(--lime);font-weight:400}
.poster-director{font-family:var(--body);font-size:10px;letter-spacing:3px;text-transform:uppercase;margin:20px 0 6px;color:rgba(244,241,234,0.7);display:flex;align-items:center;justify-content:center;gap:12px}
.poster-director::before,.poster-director::after{content:'';width:34px;height:1px;background:rgba(244,241,234,0.35)}
.poster-director b{font-weight:700;letter-spacing:2px;color:var(--off)}
.poster-credits{margin:16px 0}
.cred-starring{font-family:var(--body);font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(244,241,234,0.5);margin-bottom:8px}
.cred-name{font-family:var(--head);font-size:26px;letter-spacing:2px;color:var(--lime);line-height:1}
.poster-divider{font-family:var(--head);font-size:12px;letter-spacing:4px;color:rgba(244,241,234,0.85);margin:20px auto 14px;display:flex;align-items:center;justify-content:center;gap:16px}
.poster-divider::before,.poster-divider::after{content:'';width:44px;height:1px;background:rgba(244,241,234,0.4)}
.poster-tickets{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.ticket{background:rgba(8,8,8,0.55);color:var(--off);padding:15px 8px;text-decoration:none;display:block;cursor:none;text-align:center;border:1px solid rgba(244,241,234,0.14);backdrop-filter:blur(4px);transition:all .35s var(--ease);font-family:var(--body)}
.ticket:hover{background:var(--lime);border-color:var(--lime);color:var(--black);transform:translateY(-3px)}
.ticket-no{font-family:var(--head);font-size:10px;letter-spacing:2px;color:var(--lime);margin-bottom:3px}
.ticket:hover .ticket-no{color:var(--black)}
.ticket-label{font-family:var(--body);font-size:8px;letter-spacing:1.5px;text-transform:uppercase;opacity:0.55;margin-bottom:6px}
.ticket-value{font-family:var(--head);font-size:15px;letter-spacing:1px;line-height:1.05}
.ticket-row{border-top:1px dashed rgba(244,241,234,0.25);margin-top:9px;padding-top:8px;font-family:var(--body);font-size:8px;letter-spacing:1.5px;text-transform:uppercase;opacity:0.5}
.ticket:hover .ticket-row{border-color:rgba(8,8,8,0.3);opacity:0.7}
.poster-footer{font-family:var(--body);font-size:8.5px;letter-spacing:1.5px;color:rgba(244,241,234,0.5);text-transform:uppercase;margin-top:14px}
.poster-meta{max-width:620px;margin:56px auto 0;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;padding-top:44px;border-top:1px solid var(--border)}
.pm-addr{font-size:13px;color:var(--muted);line-height:1.7}
.pm-addr b{color:var(--off);font-weight:500;display:block;margin-bottom:6px;font-family:var(--head);letter-spacing:2px;font-size:14px}
.pm-soc{display:flex;gap:8px}
.sb{width:42px;height:42px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;color:rgba(244,241,234,0.4);text-decoration:none;cursor:none;transition:all .3s;font-family:var(--body)}
.sb svg{width:17px;height:17px;display:block}
.sb:hover{border-color:var(--lime);color:var(--lime);background:rgba(232,255,0,0.05)}

/* FOOTER */
footer{background:var(--dark);padding:80px 40px 32px;border-top:1px solid var(--border)}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;padding-bottom:56px;border-bottom:1px solid var(--border)}
.ft-brand{font-family:var(--head);font-size:36px;letter-spacing:3px;color:var(--lime)}
.ft-brand span{color:var(--off)}
.ft-tag{font-size:11px;color:var(--muted);letter-spacing:2px;margin-top:10px;text-transform:uppercase}
.ft-col h4{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.ft-col a{display:block;color:rgba(244,241,234,0.4);text-decoration:none;font-size:14px;margin-bottom:12px;transition:color .3s}
.ft-col a:hover{color:var(--lime)}
.ft-col a.y{color:var(--lime)}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;flex-wrap:wrap;gap:16px}
.ft-copy{font-size:11px;color:rgba(244,241,234,0.18);letter-spacing:.5px}

/* SCROLL REVEAL */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--slow),transform 1s var(--slow)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-d1{transition-delay:.15s}
.reveal-d2{transition-delay:.3s}

/* ════════════════════════════════════════
   FAB — Floating Action Button
════════════════════════════════════════ */
.fab-container{position:fixed;bottom:334px;right:32px;z-index:1000;display:flex;flex-direction:column;align-items:flex-end}
.fab-toggle{width:60px;height:60px;border-radius:50%;background:var(--lime);border:none;cursor:none;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,0.4),0 0 0 1px rgba(232,255,0,0.5),0 0 32px rgba(232,255,0,0.2);transition:all .35s var(--ease);position:relative;z-index:2}
.fab-toggle:hover{transform:scale(1.08);box-shadow:0 12px 32px rgba(0,0,0,0.5),0 0 0 1px rgba(232,255,0,0.7),0 0 48px rgba(232,255,0,0.35)}
.fab-toggle svg{width:24px;height:24px;fill:none;stroke:var(--black);stroke-width:2.5;transition:transform .4s var(--ease)}
.fab-container.open .fab-toggle{background:var(--off)}
.fab-container.open .fab-toggle svg{transform:rotate(45deg)}
.fab-toggle::before{content:'';position:absolute;inset:-4px;border:2px solid var(--lime);border-radius:50%;opacity:0.5;animation:fab-pulse 2.5s ease-out infinite;pointer-events:none}
.fab-container.open .fab-toggle::before{display:none}
@keyframes fab-pulse{0%{transform:scale(1);opacity:0.5}100%{transform:scale(1.4);opacity:0}}
.fab-actions{position:absolute;bottom:74px;right:0;display:flex;flex-direction:column-reverse;gap:12px;align-items:flex-end}
.fab-btn{width:48px;height:48px;border-radius:50%;background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:none;opacity:0;transform:translateY(20px) scale(0.5);pointer-events:none;transition:all .35s var(--ease);position:relative}
.fab-btn svg{width:20px;height:20px;fill:var(--lime);transition:fill .25s}
.fab-btn:hover{background:var(--lime);border-color:var(--lime);transform:scale(1.1)}
.fab-btn:hover svg{fill:var(--black)}
.fab-btn::after{content:attr(data-label);position:absolute;right:60px;top:50%;transform:translateY(-50%);background:var(--card);color:var(--off);padding:8px 14px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .2s;font-family:'DM Sans',sans-serif}
.fab-btn:hover::after{opacity:1}
.fab-container.open .fab-btn{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.fab-container.open .fab-btn:nth-child(1){transition-delay:.05s}
.fab-container.open .fab-btn:nth-child(2){transition-delay:.10s}
.fab-container.open .fab-btn:nth-child(3){transition-delay:.15s}
.fab-container.open .fab-btn:nth-child(4){transition-delay:.20s}
.fab-container.open .fab-btn:nth-child(5){transition-delay:.25s}

/* RESPONSIVE */
@media(max-width:960px){
  body{cursor:auto}
  #cur,#cur-dot{display:none}
  nav{padding:0 20px;height:60px}
  .nav-links{display:none}
  .hero,.about,.svc-header,.portfolio,.clients,.poster-section{padding-left:20px;padding-right:20px}
  .hero-h1{font-size:clamp(56px,15vw,90px)}
  .cam-rec{display:none}
  .brand-mark{bottom:32px}
  .scroll-cue{display:none}
  .hero-bottom{flex-direction:column;align-items:flex-start}
  .about-body{grid-template-columns:1fr;gap:32px}
  .mega-stage{grid-template-columns:1fr;gap:24px;padding:0 20px}
  .mega-screen{height:42vh;min-height:300px;order:-1}
  .ms-item.active .ms-name{letter-spacing:1px}
  .port-grid{grid-template-columns:1fr 1fr;grid-auto-rows:200px}
  .pi:nth-child(n){grid-column:span 1;grid-row:span 1}
  .pi:nth-child(1),.pi:nth-child(4){grid-column:span 2}
  .clients-top{margin:0 20px 40px;flex-direction:column;align-items:flex-start;gap:24px}
  .clients-meta{text-align:left}
  .lw-card{width:150px;height:80px;padding:14px 18px}
  .broadcaster{margin:48px 20px 0;padding:24px 28px;flex-direction:column;align-items:flex-start;gap:20px}
  .bc-items{gap:28px;justify-content:flex-start}
  .bc-item{height:38px}
  .bc-item img{max-width:130px}
  .awards{padding:80px 20px}
  .awards-header{margin-bottom:60px}
  .awards-top{grid-template-columns:1fr;gap:36px;margin-bottom:60px}
  .aw-top-img{height:140px}
  .awards-bottom{gap:24px 28px}
  .aw-bot img{height:75px}
  .np-section{padding:80px 0 60px}
  .np-hdr{padding:0 20px;margin-bottom:24px}
  .np-h2{font-size:54px}
  .np-x{width:48px;height:48px}
  .np-hero{width:calc(100% - 40px);margin:0 20px 32px;aspect-ratio:16/9}
  .np-hero-overlay{padding:24px}
  .np-hero-title{font-size:36px;max-width:100%;line-height:0.95}
  .np-hero-sub{font-size:13px;margin-bottom:18px}
  .np-hero-dots{bottom:18px;right:24px}
  .np-hero-cta{gap:8px}
  .np-cta-primary,.np-cta-secondary{padding:11px 18px;font-size:12px}
  .np-filters{padding:0 20px;margin-bottom:32px;gap:5px}
  .np-fb{font-size:11px;padding:8px 14px}
  .np-row{padding:0 20px;margin-bottom:36px}
  .np-tile{height:150px;width:266px}
  .np-tile.vertical{height:150px;width:84px}
  .np-row.has-vertical .np-tile{height:220px;width:391px}
  .np-row.has-vertical .np-tile.vertical{height:220px;width:124px}
  .np-modal{padding:74px 16px 32px}
  .np-modal-close{top:16px;left:16px;height:36px;padding:0 10px}
  .np-modal-close img{height:18px}
  .np-modal-title{font-size:20px}
  .np-modal-meta{flex-direction:column;align-items:flex-start;gap:14px}
  .np-modal-yt{padding:11px 16px;font-size:11px;width:auto}
  .np-rolling-item{font-size:24px}
  .np-rolling-x{font-size:22px}
  .ft-grid{grid-template-columns:1fr 1fr;gap:40px}
  .poster{padding:48px 28px 36px;transform:rotate(-0.5deg) translateY(60px)}
  .poster.in{transform:rotate(-0.5deg) translateY(0)}
  .poster-title{font-size:clamp(48px,14vw,72px)}
  .poster-tickets{grid-template-columns:1fr}
  .tape-tl,.tape-tr,.tape-bl,.tape-br{width:64px;height:18px}
  .poster-meta{flex-direction:column;align-items:flex-start}
  .fab-container{bottom:20px;right:20px}
  .fab-toggle{width:52px;height:52px}
  .fab-btn{width:44px;height:44px}
  .fab-btn::after{display:none}
}

/* ============ SUBPAGE — Sparte (shared) ============ */
.reveal-d3{transition-delay:.45s}
.sp-hero{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;min-height:94vh;padding:150px 40px 80px;overflow:hidden}
.sp-hero-text{position:relative;z-index:3}
.sp-eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);margin-bottom:26px;display:inline-flex;align-items:center;gap:14px}
.sp-eyebrow::before{content:'';width:32px;height:1px;background:var(--lime)}
.sp-h1{font-family:var(--head);font-size:clamp(64px,9vw,150px);line-height:0.84;letter-spacing:1px;margin-bottom:24px}
.sp-h1 span{color:var(--lime)}
.sp-tagline{font-family:var(--head);font-size:clamp(20px,2.4vw,34px);letter-spacing:1.5px;color:var(--off);margin-bottom:22px}
.sp-intro{font-size:15px;line-height:1.85;color:rgba(244,241,234,0.72);max-width:500px;font-weight:300;border-left:2px solid rgba(232,255,0,0.5);padding-left:20px;margin-bottom:38px}
.sp-cta{display:flex;gap:16px;flex-wrap:wrap}
.sp-hero-device{height:72vh;min-height:460px}

.sp-section{padding:110px 40px;position:relative}
.sp-section.alt{background:#0b0b0b}
.sp-sec-head{margin-bottom:62px;max-width:780px}
.sp-kicker{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--lime);margin-bottom:18px;display:inline-flex;align-items:center;gap:14px}
.sp-kicker::before{content:'';width:32px;height:1px;background:var(--lime)}
.sp-h2{font-family:var(--head);font-size:clamp(40px,5.5vw,84px);line-height:0.92;letter-spacing:1px}
.sp-h2 span{color:var(--lime)}

.sp-leistungen{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.sp-card{background:var(--black);padding:38px 30px;transition:background .4s}
.sp-card:hover{background:#101010}
.sp-card-num{font-family:var(--head);font-size:14px;letter-spacing:2px;color:var(--lime);margin-bottom:26px}
.sp-card h3{font-family:var(--head);font-size:30px;letter-spacing:1px;margin-bottom:14px;color:var(--off)}
.sp-card p{font-size:13.5px;line-height:1.7;color:rgba(244,241,234,0.6)}

.sp-process{display:grid;grid-template-columns:repeat(4,1fr);gap:34px}
.sp-step{border-top:2px solid rgba(232,255,0,0.5);padding-top:22px}
.sp-step-num{font-family:var(--head);font-size:46px;color:rgba(244,241,234,0.22);line-height:1;margin-bottom:16px}
.sp-step h3{font-family:var(--head);font-size:25px;letter-spacing:1px;margin-bottom:10px;color:var(--off)}
.sp-step p{font-size:13px;line-height:1.65;color:rgba(244,241,234,0.55)}

.sp-work{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.sp-work.two{grid-template-columns:repeat(2,1fr);gap:30px}
.sp-work-card{display:block;text-decoration:none;color:inherit;cursor:none}
.sp-work-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111}
.sp-work-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease),filter .45s;filter:grayscale(0.35)}
.sp-work-card:hover .sp-work-thumb img{transform:scale(1.06);filter:grayscale(0)}
.sp-work-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--off);opacity:0;transition:opacity .4s;background:rgba(8,8,8,0.35)}
.sp-work-card:hover .sp-work-play{opacity:1;color:var(--lime)}
.sp-work-meta{padding:16px 2px 0}
.sp-work-cat{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--lime)}
.sp-work-title{font-family:var(--head);font-size:25px;letter-spacing:0.5px;margin:8px 0 4px;color:var(--off);transition:color .3s;line-height:1}
.sp-work-card:hover .sp-work-title{color:var(--lime)}
.sp-work-client{font-size:12px;color:var(--muted)}

.sp-cta-band{padding:130px 40px;text-align:center;background:var(--lime);color:var(--black)}
.sp-cta-band h2{font-family:var(--head);font-size:clamp(40px,6vw,98px);line-height:0.9;letter-spacing:1px;margin-bottom:38px;color:var(--black)}
.sp-cta-band .btn-dark{background:var(--black);color:var(--off);padding:21px 46px;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;text-decoration:none;display:inline-block;transition:transform .35s var(--ease);cursor:none}
.sp-cta-band .btn-dark:hover{transform:translateY(-3px)}

@media(max-width:900px){
  .sp-hero{grid-template-columns:1fr;min-height:auto;padding:120px 22px 60px;gap:24px}
  .sp-hero-device{order:-1;height:42vh;min-height:280px}
  .sp-section{padding:72px 22px}
  .sp-leistungen{grid-template-columns:1fr 1fr}
  .sp-process{grid-template-columns:1fr 1fr;gap:26px}
  .sp-work,.sp-work.two{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){.sp-leistungen,.sp-process,.sp-work,.sp-work.two{grid-template-columns:1fr}}

/* ============ Moments — Galerie + Lightbox ============ */
.mo-gallery{columns:3;column-gap:18px}
.mo-item{position:relative;margin:0 0 18px;break-inside:avoid;overflow:hidden;cursor:none;display:block}
.mo-item img{width:100%;display:block;transition:transform .7s var(--ease),filter .5s;filter:grayscale(0.25)}
.mo-item:hover img{transform:scale(1.05);filter:grayscale(0)}
.mo-item::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(8,8,8,0.55));opacity:0;transition:opacity .4s;pointer-events:none}
.mo-item:hover::after{opacity:1}
.mo-cap{position:absolute;left:16px;bottom:14px;z-index:2;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--off);opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s;pointer-events:none}
.mo-item:hover .mo-cap{opacity:1;transform:none}
.mo-cap b{color:var(--lime);font-weight:400}
@media(max-width:900px){.mo-gallery{columns:2;column-gap:14px}.mo-item{margin-bottom:14px}}
@media(max-width:560px){.mo-gallery{columns:1}}

.mo-lb{position:fixed;inset:0;z-index:10000;background:rgba(8,8,8,0.95);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:40px;opacity:0;pointer-events:none;transition:opacity .35s var(--ease)}
.mo-lb.on{opacity:1;pointer-events:auto}
.mo-lb img{max-width:92vw;max-height:88vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,0.6)}
.mo-lb-close{position:absolute;top:24px;right:32px;font-family:var(--head);font-size:38px;color:var(--off);cursor:none;line-height:1}
.mo-lb-close:hover{color:var(--lime)}

/* ---- Sparte link affordance (Arsenal) ---- */
.ms-go{display:inline-flex;align-items:center;margin-top:18px;font-family:var(--body);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--lime);text-decoration:none;transition:letter-spacing .3s var(--ease)}
.ms-go:hover{letter-spacing:3.5px}

/* ---- Gaming "in development" panel ---- */
.sp-soon{border:1px solid var(--border);padding:64px 40px;text-align:center;background:#0b0b0b}
.sp-soon-tag{display:inline-block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--black);background:var(--lime);padding:5px 12px;font-weight:700;margin-bottom:24px;font-family:var(--body)}
.sp-soon h3{font-family:var(--head);font-size:clamp(28px,3.5vw,50px);letter-spacing:1px;margin-bottom:16px;color:var(--off)}
.sp-soon p{font-size:14px;line-height:1.75;color:rgba(244,241,234,0.62);max-width:580px;margin:0 auto}


/* ============ Statement-Band (scroll-driven drift) ============ */
.stmt{padding:130px 0;overflow:hidden;position:relative;border-top:1px solid var(--border)}
.stmt-line{font-family:var(--head);font-size:clamp(64px,11vw,190px);line-height:0.92;letter-spacing:2px;white-space:nowrap;will-change:transform}
.stmt-line.outline{color:transparent;-webkit-text-stroke:1.5px rgba(244,241,234,0.35)}
.stmt-line.fill{color:var(--lime)}
@media(max-width:768px){.stmt{padding:80px 0}}

/* ============ Awards — hover elevation ============ */
.aw-top{cursor:none}
.aw-top:hover{transform:translateY(-8px)}
.aw-top:hover .aw-top-img img{opacity:1;transform:scale(1.04);filter:drop-shadow(0 0 34px rgba(232,255,0,0.22))}
.aw-top .aw-top-rank{transition:color .4s}
.aw-top:hover .aw-top-rank{color:var(--lime)}
.aw-bot img{transition:opacity .4s,transform .5s var(--ease),filter .5s}
.aw-bot:hover img{opacity:1;transform:translateY(-4px);filter:drop-shadow(0 0 22px rgba(232,255,0,0.16))}

/* ============ Global: reduced motion ============ */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}
  .reveal{opacity:1!important;transform:none!important}
  .stmt-line{transform:none!important}
  .mega-device-wrap{animation:none!important}
  /* Laufbänder laufen weiter, sonst sehen sie eingefroren/kaputt aus */
  .mp-track{animation-duration:60s!important;animation-iteration-count:infinite!important}
  .np-rolling-track{animation-duration:30s!important;animation-iteration-count:infinite!important}
  .lw-row-1 .lw-track{animation-duration:90s!important;animation-iteration-count:infinite!important}
  .lw-row-2 .lw-track{animation-duration:70s!important;animation-iteration-count:infinite!important}
  .lw-row-3 .lw-track{animation-duration:55s!important;animation-iteration-count:infinite!important}
}

/* ---- Statement: rotation (L&Z-style) ---- */
.stmt{padding:150px 0}
.stmt-rotor{transform:rotate(-2.5deg)}

/* ---- Poster section ---- */
.poster-section{overflow:hidden}

/* ---- Sprachumschalter ---- */
.lang-switch{display:flex;align-items:center;gap:3px;margin-left:22px}
.lang-btn{background:none;border:none;color:rgba(244,241,234,0.45);font-family:var(--body);font-size:12px;letter-spacing:1px;font-weight:600;cursor:none;padding:4px 5px;transition:color .3s}
.lang-btn.on{color:var(--lime)}
.lang-btn:hover{color:var(--off)}
.lang-sep{color:rgba(244,241,234,0.25);font-size:12px}
@media(max-width:768px){.lang-switch{margin-left:12px}}

/* ============ Insaine Studios — KI-Unit Band ============ */
.insaine-band{position:relative;padding:120px 40px;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 40%, #101010 0%, var(--black) 70%);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.insaine-band::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 130%, rgba(232,255,0,0.12), transparent 55%);pointer-events:none}
.insaine-band::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--lime),transparent);opacity:.5}
.insaine-inner{position:relative;z-index:2;max-width:840px;margin:0 auto}
.insaine-eyebrow{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--lime);margin-bottom:24px;display:inline-flex;align-items:center;gap:14px}
.insaine-eyebrow::before,.insaine-eyebrow::after{content:'';width:30px;height:1px;background:var(--lime)}
.insaine-wordmark{font-family:var(--head);font-size:clamp(58px,10vw,124px);line-height:0.9;letter-spacing:3px;color:var(--off)}
.insaine-wordmark span{display:block;font-size:0.26em;letter-spacing:9px;color:var(--lime);margin-top:8px}
.insaine-desc{font-size:15px;line-height:1.8;color:rgba(244,241,234,0.72);max-width:580px;margin:28px auto 36px;font-weight:300}
.insaine-cta{display:inline-block;background:var(--lime);color:var(--black);padding:19px 42px;font-family:var(--body);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;text-decoration:none;cursor:none;transition:transform .35s var(--ease),box-shadow .35s}
.insaine-cta:hover{transform:translateY(-3px);box-shadow:0 14px 44px -10px rgba(232,255,0,0.55)}
@media(max-width:768px){.insaine-band{padding:74px 22px}.insaine-wordmark span{letter-spacing:5px}.insaine-desc{font-size:14px}}

/* ============ Mobile-Fixes (iPhone/Android) ============ */
@media(max-width:768px){
  /* 1) Nav „Erstgespräch" passt in die Breite */
  .nav-cta{padding:9px 13px;font-size:10px;letter-spacing:1px}
  .nav-logo{height:22px}
  .lang-switch{margin-left:8px;gap:2px}
  .lang-btn{padding:4px 3px}
  /* 2) Filmplakat wächst mit dem Inhalt → Tickets vollständig sichtbar */
  .poster{aspect-ratio:auto}
  .poster-inner{height:auto;padding:30px 20px 26px}
  .poster-spacer{min-height:20px}
  /* 3) Back-to-top unten, Kontakt-+ darüber (keine Überlagerung) */
  .back-top{bottom:20px;right:20px}
  .fab-container{bottom:82px;right:20px}
  /* 4) Now-Playing-Hero höher, damit oben nichts abgeschnitten wird */
  .np-hero{aspect-ratio:4/5}
  .np-hero-overlay{justify-content:flex-end}
}
