/* Jimmy Bunzol Music — all rules scoped to .jbm so they never touch your theme */
.jbm{--night:#0f182e;      
  --deep:#0a1122;
  --panel:#141f3a;
  --line:#26345c;
  --ink:#eef2fb;
  --mute:#97a3c2;
  --tide:#4fb3ff;       
  --ember:#ff9b52;      
  --display:"Jost","Futura","Century Gothic","Avenir Next",system-ui,sans-serif;
  --body:"Instrument Sans","Segoe UI","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --gutter:clamp(16px,4vw,48px);
  --wrap:1180px;
  --player-h:76px;
  color-scheme:dark;}

.jbm .jbm-main{container:jbm/inline-size}
/* Neutralize common theme styles inside the music site */
.jbm{line-height:1.6;text-align:left}
.jbm h1,.jbm h2,.jbm h3,.jbm p,.jbm ol,.jbm dl,.jbm dd{color:inherit;margin:0;padding:0;border:0;background:none}
.jbm h1::before,.jbm h2::before,.jbm h1::after,.jbm h2::after{content:none}
.jbm ol{list-style:none}
.jbm a{box-shadow:none;border:0}
.jbm a:hover,.jbm a:focus{color:inherit}
.jbm img{height:auto;border:0;box-shadow:none;margin:0}
.jbm button{margin:0;padding:0;box-shadow:none;text-shadow:none;text-transform:none;letter-spacing:normal;min-height:0;min-width:0;border-radius:0;line-height:1;width:auto;background:none;border:0;cursor:pointer}
.jbm button:hover,.jbm button:focus{background:none;color:inherit;box-shadow:none}
.jbm iframe{margin:0;max-width:100%;color-scheme:light;background:transparent}
.jbm .embed iframe{border-radius:12px}
.jbm .grid{align-items:start}
.jbm .embed iframe[src*="spotify.com"]{margin-bottom:-14px}
.jbm .embed .cap{position:relative;z-index:1;background:var(--panel)}
.jbm canvas{max-width:100%}
.jbm .jbm-spacer{height:calc(var(--player-h) + env(safe-area-inset-bottom,0px))}
.admin-bar .jbm .top{top:32px}
@media (max-width:782px){.admin-bar .jbm .top{top:46px}}
.jbm.jbm--embedded .top{display:none}
body.jbm-fullpage{margin:0;background:#0f182e}
.jbm,.jbm *{box-sizing:border-box}
@media (prefers-reduced-motion:reduce){.jbm,.jbm *{animation:none!important;transition:none!important}
}
.jbm{margin:0;background:var(--night);color:var(--ink);font:400 16px/1.6 var(--body);
  -webkit-font-smoothing:antialiased}
.jbm img{max-width:100%;display:block}
.jbm a{color:inherit}
.jbm button{font:inherit;color:inherit}
.jbm :focus-visible{outline:2px solid var(--tide);outline-offset:3px;border-radius:4px}
.jbm [hidden]{display:none!important}
.jbm .wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.jbm .eyebrow{font:500 12px/1 var(--display);letter-spacing:.32em;text-transform:uppercase;color:var(--mute)}
.jbm h1,.jbm h2,.jbm h3{font-family:var(--display);font-weight:300;text-wrap:balance;margin:0}
.jbm h2{font-size:clamp(28px,4cqi,44px);letter-spacing:.16em;text-transform:uppercase;line-height:1.1}
.jbm .section{padding-block:clamp(56px,9cqi,112px)}
.jbm .section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 24px;margin-bottom:32px}
.jbm .section-head p{margin:0;color:var(--mute);max-width:46ch}
.jbm .top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--night) 86%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.jbm .top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.jbm .brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.jbm .brand img{width:40px;height:40px;border-radius:9px}
.jbm .brand span{font:500 14px/1 var(--display);letter-spacing:.34em;text-transform:uppercase;white-space:nowrap}
.jbm .nav{display:flex;gap:clamp(12px,2.4vw,28px);overflow-x:auto;scrollbar-width:none}
.jbm .nav a{font:500 12px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--mute);padding:8px 0;white-space:nowrap}
.jbm .nav a:hover{color:var(--ink)}
@media (max-width:640px){.jbm .brand span{display:none}
}
.jbm .hero{position:relative;overflow:hidden}
.jbm .hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 50% at 18% 100%,color-mix(in srgb,var(--tide) 22%,transparent),transparent 70%),
  radial-gradient(45% 40% at 85% 95%,color-mix(in srgb,var(--ember) 16%,transparent),transparent 70%);pointer-events:none}
.jbm .hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,6cqi,80px);align-items:center;padding-block:clamp(36px,7cqi,88px)}
.jbm .cover{position:relative;border-radius:6px;overflow:hidden;box-shadow:0 30px 80px -30px color-mix(in srgb,var(--tide) 45%,transparent),0 0 0 1px var(--line)}
.jbm .cover img{width:100%;aspect-ratio:1;object-fit:cover}
.jbm .hero-copy{display:flex;flex-direction:column;gap:22px;min-width:0}
.jbm .hero h1{font-size:clamp(40px,7.4cqi,92px);letter-spacing:.2em;line-height:1;margin-right:-.2em}
.jbm .hero .tag{font:300 clamp(17px,2cqi,21px)/1.5 var(--display);letter-spacing:.08em;color:var(--mute);margin:0}
.jbm .hero .meta{font:400 13px/1.4 var(--mono);color:var(--mute);letter-spacing:.02em}
.jbm .actions{display:flex;flex-wrap:wrap;gap:10px}
.jbm .btn{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 20px;border-radius:999px;border:1px solid var(--line);
  background:transparent;text-decoration:none;font:500 13px/1 var(--display);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,background .2s}
.jbm .btn:hover{border-color:var(--tide)}
.jbm .btn.primary{background:var(--ink);color:var(--deep);border-color:var(--ink)}
.jbm .btn.primary:hover{background:var(--tide);border-color:var(--tide)}
.jbm .btn svg{width:16px;height:16px;flex:none}
.jbm .profiles{display:flex;flex-wrap:wrap;gap:8px}
.jbm .chip{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:999px;background:var(--panel);border:1px solid var(--line);
  font:500 12px/1 var(--body);text-decoration:none;color:var(--ink);transition:border-color .2s}
.jbm .chip:hover{border-color:var(--tide)}
.jbm .horizon{height:2px;background:linear-gradient(90deg,transparent,var(--tide) 22%,var(--ink) 50%,var(--ember) 78%,transparent)}
@container jbm (max-width:820px){.jbm .hero .wrap{grid-template-columns:1fr}
.jbm .cover{max-width:440px}
}
.jbm .tracks{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.jbm .track{border-bottom:1px solid var(--line)}
.jbm .row{display:grid;grid-template-columns:44px 52px minmax(0,1.4fr) minmax(0,2fr) 64px;gap:16px;align-items:center;padding:14px 8px;border-radius:8px;transition:background .2s}
.jbm .row:hover,.jbm .track.is-current .row{background:color-mix(in srgb,var(--panel) 70%,transparent)}
.jbm .num{position:relative;width:40px;height:40px;border-radius:50%;border:1px solid transparent;background:none;cursor:pointer;display:grid;place-items:center}
.jbm .num .n{font:400 14px/1 var(--mono);color:var(--mute)}
.jbm .num svg{width:14px;height:14px;display:none;fill:currentColor}
.jbm .row:hover .num .n,.jbm .track.is-current .num .n{display:none}
.jbm .row:hover .num .ic-play{display:block}
.jbm .track.is-playing .num .ic-play{display:none!important}
.jbm .track.is-playing .num .ic-pause{display:block}
.jbm .track.is-current:not(.is-playing) .num .ic-play{display:block}
.jbm .track.is-current .num{border-color:var(--tide);color:var(--tide)}
.jbm .thumb{width:52px;height:52px;border-radius:4px;object-fit:cover}
.jbm .title{min-width:0}
.jbm .title b{display:block;font:500 16px/1.3 var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jbm .title small{display:block;font:400 12px/1.5 var(--mono);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jbm .wave{width:100%;height:40px;cursor:pointer;display:block}
.jbm .dur{font:400 13px/1 var(--mono);color:var(--mute);text-align:right;font-variant-numeric:tabular-nums}
.jbm .extras{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 14px 120px}
.jbm .extras:empty{display:none}
.jbm .linkpill{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--line);font:500 11px/1 var(--body);letter-spacing:.04em;text-decoration:none;color:var(--mute);background:none;cursor:pointer}
.jbm .linkpill:hover{color:var(--ink);border-color:var(--tide)}
.jbm .linkpill.full{color:var(--ink);border-color:color-mix(in srgb,var(--tide) 60%,var(--line))}
.jbm .fullplayer{padding:0 8px 18px 120px}
.jbm .fullplayer iframe{width:100%;border:0;border-radius:12px;display:block;background:var(--panel)}
.jbm .disc-note{margin-top:14px;font:400 12px/1.5 var(--mono);color:var(--mute)}
@container jbm (max-width:760px){.jbm .row{grid-template-columns:40px 48px minmax(0,1fr) 52px;gap:12px}
.jbm .row .wave{display:none}
.jbm .thumb{width:48px;height:48px}
.jbm .extras,.jbm .fullplayer{padding-left:8px}
}
.jbm .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px}
.jbm .embed{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.jbm .embed iframe{display:block;width:100%;border:0}
.jbm .embed .cap{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;font:500 12px/1.4 var(--body);color:var(--mute);border-top:1px solid var(--line)}
.jbm .embed .cap a{color:var(--mute)}
.jbm .channel{margin-bottom:28px}
.jbm .channel .ratio,.jbm .video .ratio{position:relative;aspect-ratio:16/9;max-width:100%;background:var(--deep)}
.jbm .channel iframe,.jbm .video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.jbm .video{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.jbm .video .poster{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;cursor:pointer;background:var(--deep) center/cover no-repeat;display:grid;place-items:center}
.jbm .video .poster::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,color-mix(in srgb,var(--deep) 70%,transparent),transparent 55%)}
.jbm .video .play{position:relative;z-index:1;width:64px;height:64px;border-radius:50%;background:color-mix(in srgb,var(--ink) 92%,transparent);display:grid;place-items:center;transition:transform .2s}
.jbm .video .poster:hover .play{transform:scale(1.07)}
.jbm .video .play svg{width:22px;height:22px;fill:var(--deep);margin-left:3px}
.jbm .video h3{font:500 15px/1.4 var(--body);padding:14px 16px}
.jbm .hint{grid-column:1/-1;max-width:680px;border:1px dashed color-mix(in srgb,var(--tide) 45%,var(--line));border-radius:14px;padding:24px;color:var(--mute);background:color-mix(in srgb,var(--panel) 50%,transparent)}
.jbm .hint strong{display:block;color:var(--ink);font:500 15px/1.4 var(--body);margin-bottom:6px}
.jbm .hint code{font:400 12.5px/1.6 var(--mono);color:var(--tide);word-break:break-all}
.jbm .hint p{margin:0 0 8px}
.jbm .about .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(28px,6cqi,80px);align-items:start}
.jbm .about .mark{display:flex;flex-direction:column;gap:18px}
.jbm .about .mark img{width:min(260px,60%);border-radius:18px;border:1px solid var(--line)}
.jbm .about .quote{font:300 clamp(24px,3cqi,34px)/1.3 var(--display);letter-spacing:.04em}
.jbm .about .quote em{font-style:normal;color:var(--tide)}
.jbm .about .copy{display:flex;flex-direction:column;gap:18px;max-width:62ch;color:color-mix(in srgb,var(--ink) 86%,var(--mute))}
.jbm .about .copy p{margin:0}
.jbm .credits{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;margin:8px 0 0;font:400 13px/1.5 var(--mono)}
.jbm .credits dt{color:var(--mute)}
.jbm .credits dd{margin:0}
@container jbm (max-width:820px){.jbm .about .wrap{grid-template-columns:1fr}
}
.jbm footer{border-top:1px solid var(--line);padding-block:36px}
.jbm footer .wrap{display:flex;flex-wrap:wrap;gap:16px 32px;justify-content:space-between;align-items:center;color:var(--mute);font-size:13px}
.jbm footer .contact{font-family:var(--mono);color:var(--ink);user-select:all}
.jbm .dock{position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,var(--deep) 94%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.jbm .dock .wrap{height:var(--player-h);display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,2fr) auto;gap:16px;align-items:center}
.jbm .dock img{width:48px;height:48px;border-radius:4px;object-fit:cover}
.jbm .dock .now{min-width:0}
.jbm .dock .now b{display:block;font:500 14px/1.3 var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jbm .dock .now small{display:block;font:400 11px/1.4 var(--mono);color:var(--mute)}
.jbm .dock .bar{display:flex;align-items:center;gap:12px;min-width:0}
.jbm .dock .bar canvas{flex:1;min-width:0;height:34px;cursor:pointer}
.jbm .dock .t{font:400 12px/1 var(--mono);color:var(--mute);font-variant-numeric:tabular-nums;width:34px}
.jbm .ctrls{display:flex;align-items:center;gap:6px}
.jbm .ic{width:40px;height:40px;border-radius:50%;border:0;background:none;display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.jbm .ic:hover{background:var(--panel)}
.jbm .ic svg{width:18px;height:18px;fill:currentColor}
.jbm .ic.big{width:46px;height:46px;background:var(--ink);color:var(--deep)}
.jbm .ic.big:hover{background:var(--tide)}
@media (max-width:760px){.jbm .dock .wrap{grid-template-columns:auto minmax(0,1fr) auto;gap:12px}
.jbm .dock .bar{grid-column:1/-1;order:3;position:absolute;left:0;right:0;top:-2px;height:3px;padding:0}
.jbm .dock .bar canvas,.jbm .dock .t{display:none}
.jbm .dock .bar .mini{display:block}
.jbm .dock .wrap{position:relative}
}
.jbm .dock .bar .mini{display:none;height:3px;width:100%;background:var(--line)}
.jbm .dock .bar .mini i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--tide),var(--ember))}
