.campaign-dialog{position:fixed;max-width:440px;width:calc(100vw - 32px);max-height:80dvh;overflow:auto;background:var(--theme-panel);color:#f6f6f6;border:1px solid hsl(var(--accent-h) 40% 40%);border-radius:20px;padding:26px;box-shadow:0 20px 80px #0008}.campaign-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}.campaign-dialog>small{color:var(--gold);letter-spacing:.15em;font-size:10px}.campaign-dialog>img{display:block;width:100%;height:auto;max-height:none;margin-top:20px;border-radius:10px}.campaign-dialog p{font-size:14px;line-height:1.6;color:#c5c5c5}.campaign-dialog a,.campaign-dialog article button{display:inline-block;background:var(--gold);color:#111;padding:11px 20px;border-radius:9px;font-weight:700}.campaign-dialog .campaign-close{float:right;background:transparent;color:inherit;font-size:28px;padding:0 4px}.campaign-dialog article{border-top:1px solid #ffffff18;padding:12px 0}.notification-bell,.download-app{flex-shrink:0;padding:10px 12px;border:1px solid #ffffff20;border-radius:20px;background:var(--theme-gradient);font-size:11px;color:var(--gold)}.download-app{background:var(--gold);color:#151515;font-weight:700}.feed-shelves .grid{grid-auto-columns:180px}.list-mode .feed-shelves,.mix-mode .feed-shelves{display:none}@media(max-width:700px){header{flex-wrap:wrap;height:auto;min-height:64px;padding-block:8px}.notification-bell,.download-app{font-size:10px;padding:7px 9px}.notification-bell{margin-left:auto}}

.campaign-banner{margin:18px 20px;padding:16px;border:1px solid hsl(var(--accent-h) 35% 40% / .45);border-radius:16px;background:var(--theme-panel);text-align:left;min-width:0}
.campaign-banner-label{display:block;color:var(--gold);font-size:9px;letter-spacing:.16em;margin-bottom:10px}
.campaign-banner-content{display:flex;flex-wrap:wrap;align-items:center;gap:16px;min-width:0}
.campaign-banner-content>img{display:block;width:100%;height:auto;max-height:none;border-radius:10px;flex:0 0 100%}
.campaign-banner-content>div{flex:1;min-width:0;overflow-wrap:anywhere}
.campaign-banner h3{font-size:16px;margin:0 0 6px}
.campaign-banner p{font-size:12px;line-height:1.5;color:#b5b6c0;margin:0}
.campaign-banner a{flex-shrink:0;display:inline-block;max-width:100%;overflow-wrap:anywhere;background:var(--gold);color:var(--theme-bg);padding:10px 14px;border-radius:9px;font-size:12px;font-weight:700}
.campaign-banner.is-placeholder{min-height:110px;border-style:dashed;display:flex;flex-direction:column;align-items:center;justify-content:center}
.player-main>.campaign-banner{margin:22px 0 0}
.player-main .campaign-banner-content{flex-wrap:wrap}
@media(max-width:540px){.campaign-banner-content{flex-wrap:wrap}.campaign-banner-content>a{width:100%;text-align:center}}
.download-status{margin:12px 20px;padding:12px 16px;border:1px solid var(--gold);border-radius:12px;background:var(--theme-panel);color:var(--gold);font-size:13px}
.download-widget{position:fixed;width:min(680px,calc(100vw - 32px));padding:30px;border:1px solid hsl(var(--accent-h) 45% 55% / .55);border-radius:26px;background:linear-gradient(135deg,#1b1a22,#2b2419);color:#fff;box-shadow:0 30px 100px #000b,inset 0 1px 0 #ffffff20;overflow:visible}.download-widget::backdrop{background:#050608b8;backdrop-filter:blur(8px)}.download-widget-close{position:absolute;top:12px;right:14px;border:0;background:transparent;color:#fff;font-size:28px;line-height:1;cursor:pointer}.download-widget{display:none;grid-template-columns:210px 1fr;align-items:center;gap:28px}.download-widget[open]{display:grid;animation:download-widget-in .35s ease-out}.download-widget-art{position:relative;display:grid;place-items:center;width:210px;height:190px;perspective:700px}.download-cube{display:grid;place-items:center;width:140px;height:140px;border:1px solid #ffe8ad80;border-radius:32px;background:linear-gradient(145deg,#e5c276,#9b6c28 48%,#332619);box-shadow:12px 16px 0 #4b321b,22px 30px 28px #0009,inset 3px 3px 4px #fff8;transform:rotateY(-18deg) rotateX(14deg) rotateZ(-10deg);animation:download-cube-float 3.2s ease-in-out infinite}.download-cube img{width:104px;height:104px;object-fit:contain;filter:drop-shadow(5px 8px 4px #0007)}.download-orbit{position:absolute;width:205px;height:105px;border:1px solid #ffe3a64d;border-radius:50%;transform:rotate(-25deg)}.download-spark{position:absolute;right:7px;top:15px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#f1c66b 45%,#67451f);box-shadow:4px 6px 10px #0008}.download-widget-copy small{color:#e8bb62;letter-spacing:.18em;font-size:10px}.download-widget-copy h2{margin:8px 0;font-size:clamp(25px,4vw,38px);letter-spacing:-.04em}.download-widget-copy p{margin:0 0 20px;color:#c7c1b8}.download-widget-action{display:inline-block;padding:12px 18px;border-radius:10px;background:#e8bb62;color:#201708;font-weight:800;text-decoration:none}.download-widget-action:hover{filter:brightness(1.08)}@keyframes download-widget-in{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}@keyframes download-cube-float{50%{transform:translateY(-8px) rotateY(-10deg) rotateX(10deg) rotateZ(-7deg)}}
.campaign-banner-content>img{max-width:100%;width:auto;height:auto;max-height:none;object-fit:contain;align-self:center}.campaign-banner-content{align-items:center}.campaign-banner{overflow:hidden}
/* Header actions share crisp vector strokes and generous touch targets. */
.notification-bell,.download-app{display:inline-flex;align-items:center;justify-content:center;gap:7px;position:relative;min-height:40px}
.notification-bell>svg,.download-app>svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.notification-dot{position:absolute;right:5px;top:5px;width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px var(--theme-bg)}
.download-app[aria-busy=true]{opacity:.6}
@media(max-width:700px){
 header{flex-wrap:nowrap;gap:8px;padding-inline:12px}
 header .brand{margin-right:auto;min-width:0;font-size:20px;gap:6px}
 header .brand img{width:36px;height:36px}
 #themeToggle,.notification-bell,.download-app{width:42px;height:42px;min-height:42px;padding:0;border-radius:14px;gap:0;flex-shrink:0}
 #themeToggle>span,#themeToggle>i,.header-control-label{display:none}
 #themeToggle svg,.notification-bell>svg,.download-app>svg{width:21px;height:21px}
 .notification-bell{margin-left:0}
}
@media(max-width:359px){header{gap:6px;padding-inline:8px}header .brand{font-size:16px;gap:4px}header .brand img{width:26px;height:26px}}

/* Layered vector artwork keeps the house ad sharp at every screen size. */
.campaign-banner.is-placeholder{display:block;padding:0;overflow:hidden;border:1px solid hsl(var(--accent-h) 55% 60% / .28);background:radial-gradient(ellipse at 90% 20%,hsl(var(--accent-h) 50% 30% / .55),transparent 65%),linear-gradient(120deg,#15151c,#22202b);box-shadow:inset 0 1px 0 #ffffff12,0 14px 35px #0003;position:relative}
.is-placeholder>.campaign-banner-label{position:absolute;top:16px;left:22px;z-index:1;pointer-events:none;font-size:8px;color:#e4d7b8}
.campaign-banner .advertise-fallback{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:44px 24px 24px;background:transparent;color:#fff;border-radius:16px;white-space:normal}
.advertise-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.advertise-copy>small{font-size:8px;font-weight:600;letter-spacing:.15em;color:#d4cbbd}
.advertise-copy>strong{font-size:clamp(27px,4vw,40px);line-height:1.05;letter-spacing:-.045em}
.advertise-copy>span{font-size:11px;font-weight:400;line-height:1.5;color:#c9c4bd;max-width:190px}
.advertise-copy>b{display:inline-flex;align-items:center;gap:16px;margin-top:5px;padding:10px 14px;border:1px solid #ffffff25;border-radius:30px;background:#ffffff0d;font-size:11px}
.advertise-copy>b svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.advertise-art{position:relative;display:grid;place-items:center;width:180px;height:170px;flex-shrink:0;perspective:600px}
.advertise-tile{display:grid;place-items:center;width:132px;height:132px;border:1px solid #ffe3a659;border-radius:30px;background:linear-gradient(145deg,#c39b53,#725526 45%,#302820);box-shadow:8px 12px 0 #302518,15px 23px 24px #0008,inset 2px 2px 2px #fff6;transform:rotateY(-20deg) rotateX(12deg) rotateZ(-13deg);transition:transform .25s}
.advertise-tile svg{width:110px;height:110px;filter:drop-shadow(4px 7px 3px #0006)}
.advertise-orbit{position:absolute;width:180px;height:105px;border:1px solid #f1d5a038;border-radius:50%;transform:rotate(-35deg)}
.advertise-spark{position:absolute;top:6px;right:8px;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff8e8,#cda75d 50%,#564023);box-shadow:3px 5px 8px #0006}
.advertise-chip{position:absolute;bottom:0;right:0;display:grid;place-items:center;width:43px;height:43px;border-radius:13px;color:#543711;font-size:27px;background:linear-gradient(135deg,#fff5d8,#e3bd76);box-shadow:3px 5px 0 #77542a,6px 12px 16px #0006;transform:rotate(12deg)}
@media(hover:hover){.advertise-fallback:hover .advertise-tile{transform:rotateY(-10deg) rotateX(5deg) rotateZ(-8deg)}}
@media(max-width:540px){.campaign-banner .advertise-fallback{gap:8px;padding:42px 18px 22px}.advertise-art{width:118px;height:150px}.advertise-tile{width:98px;height:106px;border-radius:24px}.advertise-tile svg{width:90px;height:90px}.advertise-orbit{width:130px;height:85px}.advertise-chip{width:34px;height:34px;font-size:23px}.advertise-copy>span{max-width:155px}.advertise-copy>strong{font-size:29px}}
@media(prefers-reduced-motion:reduce){.advertise-tile{transition:none}}
@media(max-width:540px){.download-widget{grid-template-columns:1fr;padding:24px 22px 26px;gap:8px;text-align:center}.download-widget-art{width:100%;height:155px}.download-widget-copy p{margin-bottom:16px}.download-widget-action{width:100%}}
@media(prefers-reduced-motion:reduce){.download-cube{animation:none}.download-widget[open]{animation:none}}

/* Published creatives occupy the ad slot and act as the link. */
.campaign-banner-content{display:block;width:100%;padding:0;color:inherit;text-decoration:none}
.campaign-banner-content>img{display:block;width:100%;height:auto;max-width:none;object-fit:fill;border-radius:0}
.campaign-dialog>a{display:block;padding:0;background:transparent;color:inherit;text-decoration:none}
.campaign-dialog>a>img{display:block;width:100%;height:auto;max-height:none;margin:0;border-radius:10px}
.campaign-banner{position:relative;padding:0;border:0;outline:0}
.campaign-banner-content{margin:0;border:0;outline:0}
.download-widget{width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:20px;border-radius:14px;background:linear-gradient(115deg,#294776,#28714b);border:1px solid #ffffff20;text-align:left}
.download-widget[open]{display:block}
.download-panel-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #ffffff20}
.download-panel-heading h2{margin:0;font-size:22px;color:#fff}
.download-panel-heading .download-widget-close{position:static;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:11px;border-radius:14px;border:1px solid hsl(var(--accent-h) 40% 70% / .3);background:linear-gradient(145deg,hsl(var(--accent-h) 25% 28%),var(--theme-panel));color:hsl(var(--accent-h) 60% 92%);box-shadow:0 3px 0 #0005,inset 0 1px 1px #ffffff30;cursor:pointer;transition:background .15s,transform .15s}
.download-panel-heading .download-widget-close svg{width:20px;height:20px;stroke-width:2;pointer-events:none}
.download-panel-heading .download-widget-close:hover{background:var(--theme-raised);color:var(--gold)}
.download-panel-heading .download-widget-close:active{transform:translateY(2px)}
.download-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}
.download-benefits span{display:grid;justify-items:center;gap:6px;font-size:10px;color:#d6e7e8;text-align:center}
.download-widget svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.download-benefits svg{color:#2befaa}
.download-panel-body{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:14px;align-items:start}
.download-platforms{display:grid;gap:10px;min-width:0}
.download-widget .download-widget-action{display:flex;align-items:center;gap:8px;width:100%;padding:12px 10px;border-radius:13px;background:linear-gradient(110deg,#13bde9,#24f28b);color:#07383d;text-decoration:none;min-width:0}
.download-widget-action span{flex:1;min-width:0}
.download-widget-action strong,.download-widget-action small{display:block;line-height:1.4;overflow-wrap:anywhere}
.download-widget-action strong{font-size:13px}.download-widget-action small{font-size:10px;font-weight:500}
.download-widget-action>svg:last-child{width:16px;height:16px}
.download-widget .download-tv{background:#ffffff12;border:1px solid #ffffff25;color:#efffff}
.download-platforms p{font-size:11px;line-height:1.5;color:#b8d5d0;margin:0}
.download-qr{display:grid;gap:7px;text-align:center;min-width:0}.download-qr strong{font-size:11px}.download-qr small{font-size:10px;color:#b8d5d0}.download-qr img{display:block;width:100%;height:auto;border:6px solid #fff;border-radius:5px;background:#fff}
@media(max-width:380px){.download-widget{padding:14px}.download-panel-body{grid-template-columns:minmax(0,1fr) 104px;gap:10px}.download-widget-action>svg:first-child{display:none}.download-widget-action strong{font-size:12px}}
/* Raised surfaces follow the same live palette as the player. */
.download-widget{background:radial-gradient(ellipse at 15% 0%,hsl(var(--accent-h) 70% 45% / .3),transparent 65%),linear-gradient(135deg,hsl(var(--accent-h) 30% 19%),var(--theme-panel));border:1px solid hsl(var(--accent-h) 65% 70% / .4);border-radius:22px;box-shadow:0 8px 0 hsl(var(--accent-h) 25% 7%),0 12px 0 hsl(var(--accent-h) 30% 4%),0 32px 70px #000b,inset 0 2px 1px #ffffff35,inset 0 -3px 8px #0005}
.download-panel-heading{border-color:hsl(var(--accent-h) 35% 65% / .25)}
.download-panel-heading h2{color:hsl(var(--accent-h) 60% 92%);text-shadow:0 2px 2px #0008}
.download-benefits span,.download-platforms p,.download-qr small{color:hsl(var(--accent-h) 25% 80%)}
.download-benefits svg{box-sizing:content-box;padding:8px;border-radius:12px;color:var(--gold);background:linear-gradient(145deg,hsl(var(--accent-h) 30% 27%),var(--theme-panel));box-shadow:0 4px 0 #0005,0 8px 12px #0003,inset 0 1px 1px #ffffff40}
.download-widget .download-widget-action{background:linear-gradient(135deg,hsl(var(--accent-h) 85% 78%),var(--gold),hsl(var(--accent-h) 65% 50%));color:hsl(var(--accent-h) 40% 10%);border:1px solid hsl(var(--accent-h) 90% 85% / .65);box-shadow:0 4px 0 hsl(var(--accent-h) 50% 25%),0 8px 14px #0005,inset 0 2px 1px #ffffff70;transition:transform .15s,box-shadow .15s}
.download-platforms{gap:15px}
.download-widget .download-tv{background:linear-gradient(140deg,hsl(var(--accent-h) 25% 30%),var(--theme-raised));color:hsl(var(--accent-h) 50% 93%);border-color:hsl(var(--accent-h) 40% 60% / .4);box-shadow:0 4px 0 #0006,0 8px 14px #0004,inset 0 1px 1px #ffffff40}
.download-widget-action:hover{transform:translateY(-2px)}
.download-widget-action:active{transform:translateY(3px);box-shadow:0 1px 0 #0006,inset 0 1px 3px #0003}
.download-qr a{display:block;border-radius:8px;box-shadow:0 5px 0 #0005,0 12px 18px #0006}
.download-qr img{border:8px solid #fff;border-radius:8px}
.download-widget a:focus-visible,.download-widget button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.download-widget-action{transition:none}.download-widget-action:hover,.download-widget-action:active{transform:none}}
.campaign-banner-content>img{border:0;outline:0;border-radius:0}
.campaign-banner-label{position:absolute;top:10px;left:12px;z-index:2;margin:0;padding:4px 7px;border-radius:5px;background:#050608b8;color:#fff;font-size:9px;letter-spacing:.12em;line-height:1;pointer-events:none}
.campaign-ad-dialog{padding:0;border:0;overflow:hidden}
.campaign-ad-dialog .campaign-ad-label{position:absolute;top:14px;left:14px;z-index:2;margin:0;padding:5px 8px;border-radius:5px;background:#050608b8;color:#fff;font-size:9px;letter-spacing:.12em;line-height:1}
.campaign-ad-dialog .campaign-close{position:absolute;top:9px;right:10px;z-index:3;margin:0;padding:0 5px;color:#fff;text-shadow:0 1px 3px #000;background:#05060880;border-radius:50%}
.campaign-ad-dialog>a>img{border-radius:0}
