.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}
/* 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}}