/* BLACC Universal — site styles */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#000;color:#fff;font-family:'Open Sans',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:#fff}a:hover{color:#bdbdbd}
:focus-visible{outline:2px solid #9a9a9a;outline-offset:3px}

/* Silver glass cursor (pointer devices only) */
@media (hover:hover) and (pointer:fine){
  body,body *{cursor:url(/assets/img/cursor-silver.png) 6 4,auto;cursor:image-set(url(/assets/img/cursor-silver.png) 1x,url(/assets/img/cursor-silver@2x.png) 2x) 6 4,auto}
  a,a *,button,button *,input[type=submit]{cursor:url(/assets/img/cursor-silver-link.png) 6 4,pointer;cursor:image-set(url(/assets/img/cursor-silver-link.png) 1x,url(/assets/img/cursor-silver-link@2x.png) 2x) 6 4,pointer}
  input[type=email]{cursor:text}
}

.page{width:100%;overflow:hidden}
.page--screen{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.wrap{max-width:1280px;margin:0 auto}
.gutter{padding-left:clamp(20px,5vw,48px);padding-right:clamp(20px,5vw,48px)}
.section{padding-top:clamp(72px,9vw,120px);padding-bottom:clamp(72px,9vw,120px);border-top:1px solid #1a1a1a}
.section--alt{background:#0a0a0a}
.eyebrow{margin:0;font-size:13px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#9a9a9a}
.h-section{margin:0;font-size:clamp(36px,4.2vw,60px);font-weight:300;letter-spacing:-.025em;line-height:1.04}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;color:#fff;text-decoration:none;background:transparent;border:0;padding:0}
.text-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:500;text-decoration:none;color:#fff}

/* Top bar */
.topbar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:32px;padding-bottom:32px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.brand span{font-size:20px;font-weight:400;letter-spacing:.01em}
.brand sup{font-size:10px;margin-left:2px}
.menu-btn{margin-right:-10px}

/* Hero */
.hero{position:relative;height:920px;max-height:100vh;min-height:620px;background:#000;overflow:hidden}
.hero__photo{position:absolute;left:50%;top:0;transform:translateX(-50%);height:100%;width:auto;max-width:100%;object-fit:cover;object-position:50% 30%;animation:litIn 1.2s ease 2.2s both}
.hero__spot{position:absolute;inset:0;pointer-events:none;--x:50%;--y:36%;--r:360px;background:radial-gradient(circle var(--r) at var(--x) var(--y),rgba(0,0,0,0) 0%,rgba(0,0,0,.25) 45%,rgba(0,0,0,.93) 100%)}
.hero__fade{position:absolute;left:0;right:0;bottom:0;height:320px;background:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.85))}
.hero__bottom{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:44px}
.hero__name{margin:0;font-size:clamp(30px,4vw,48px);font-weight:300;letter-spacing:-.01em;line-height:1.05}
.hero__role{margin:6px 0 0;font-size:clamp(14px,1.4vw,18px);color:#d6d6d6;line-height:1.4}
.hero__mark{width:clamp(72px,9vw,128px);height:auto;flex-shrink:0}
.hero-in{animation:heroIn .9s ease 2.6s both}
.hero-in--late{animation-delay:2.9s}
.intro{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;background:#000;pointer-events:none;animation:introOut 3s ease both}
.intro svg{width:clamp(120px,16vw,200px);height:auto;overflow:visible}
.blk{transform-box:fill-box;animation:blkDrop .55s cubic-bezier(.2,.8,.2,1) both}
html.seen .intro{display:none}
html.seen .hero__photo,html.seen .hero-in{animation:none}

@keyframes blkDrop{0%{transform:translateY(-260px);opacity:0}55%{opacity:1}78%{transform:translateY(10px)}100%{transform:translateY(0);opacity:1}}
@keyframes introOut{0%,72%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes heroIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes litIn{from{opacity:0}to{opacity:1}}
@keyframes menuIn{from{opacity:0}to{opacity:1}}
@keyframes blkLoop{0%{transform:translateY(-90px);opacity:0}12%{transform:translateY(6px);opacity:1}16%{transform:translateY(0);opacity:1}78%{transform:translateY(0);opacity:1}90%,100%{transform:translateY(0);opacity:0}}
@keyframes barSlide{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
@keyframes dots{0%,20%{opacity:.2}50%{opacity:1}80%,100%{opacity:.2}}

/* About teaser (home) */
.teaser{display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center;max-width:1120px;margin:0 auto}
.teaser__tag{margin:0;font-size:15px;font-weight:300;letter-spacing:.04em;color:#9a9a9a}
.teaser__statement{margin:0;font-size:clamp(22px,2.2vw,32px);font-weight:300;letter-spacing:-.01em;line-height:1.4}
.teaser__rule{width:1px;height:40px;background:#3a3a3a}
.teaser__founder{margin:0;font-size:17px;line-height:1.7;color:#b5b5b5;max-width:560px}

/* Music */
.music{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(32px,4vw,56px)}
.music__media{flex:1 1 460px;min-width:0;background:#000}
.music__media img{display:block;width:100%;height:clamp(380px,48vw,640px);object-fit:cover;object-position:50% 40%}
.music__body{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:28px}
.music__title{margin:0;font-size:clamp(40px,5vw,72px);font-weight:300;letter-spacing:-.03em;line-height:1}
.music__credit{margin:12px 0 0;font-size:20px;font-weight:300;color:#cfcfcf}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 26px;background:#fff;color:#000;border:0;border-radius:2px;text-decoration:none;font-family:inherit;font-size:15px;font-weight:500}
.btn:hover{background:#e6e6e6;color:#000}
.player{width:100%;height:352px;border:0;border-radius:12px;background:#121212}
.listen{display:flex;flex-direction:column;gap:14px;padding-top:12px;border-top:1px solid #262626}
.listen .eyebrow{margin-top:12px}
.listen__icons{display:flex;align-items:center;gap:12px;margin-left:-12px}

/* Contact */
.contact{display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.contact__head{min-width:0;max-width:100%;display:flex;flex-direction:column;gap:24px}
.contact__statement{margin:0;font-size:clamp(13px,3.8vw,44px);font-weight:300;letter-spacing:-.015em;line-height:1.3;white-space:nowrap}
.contact__where{margin:0;font-size:15px;color:#a8a8a8;padding-left:4px}

/* Footer */
.footer{padding-top:32px;padding-bottom:32px;border-top:1px solid #1a1a1a}
.footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;font-size:14px;color:#a8a8a8}
.footer__icons{display:flex;align-items:center;gap:12px}

/* Menu overlay */
.menu{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.96);display:flex;flex-direction:column;animation:menuIn .35s ease both;overflow-y:auto}
.menu[hidden]{display:none}
.menu__bar{display:flex;align-items:center;justify-content:space-between;padding-top:32px;padding-bottom:32px}
.menu__nav{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;padding-bottom:48px}
.menu__list{width:100%;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.menu__item{display:flex;align-items:center;gap:20px;min-height:76px;padding:0 24px;border:1px solid #2a2a2a;border-radius:2px;background:#0b0b0b;text-decoration:none;color:#fff;transition:background .2s,border-color .2s}
.menu__item:hover{background:#141414;border-color:#3a3a3a;color:#fff}
.menu__label{flex:1 1 auto;font-size:22px;font-weight:300;letter-spacing:-.01em}
.menu__num{font-size:12px;font-weight:500;letter-spacing:.16em;color:#6f6f6f}
.menu__social{display:flex;align-items:center;justify-content:center;gap:8px;padding-top:28px}
body.menu-open{overflow:hidden}

/* About page */
.opening{padding-top:clamp(160px,18vw,220px);padding-bottom:clamp(72px,9vw,120px)}
.opening__inner{display:flex;flex-direction:column;gap:28px;animation:heroIn .9s ease .1s both}
.opening h1{margin:0;font-size:clamp(36px,5.2vw,76px);font-weight:300;letter-spacing:-.03em;line-height:1.04}
.opening p.lead{margin:0;max-width:640px;font-size:clamp(17px,1.4vw,20px);font-weight:300;line-height:1.6;color:#cfcfcf}
.split{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,80px)}
.split__side{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:20px}
.split__main{flex:2 1 520px;min-width:0;display:flex;flex-direction:column}
.body-copy{margin:0;font-size:17px;font-weight:300;line-height:1.7;color:#cfcfcf;max-width:380px}
.letter-row{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px);padding:12px 0;border-bottom:1px solid #1f1f1f}
.letter-box{display:inline-flex;align-items:center;justify-content:center;width:clamp(52px,5.6vw,80px);height:clamp(52px,5.6vw,80px);flex-shrink:0;background:#fff;color:#000;border-radius:3px;font-size:clamp(28px,3.1vw,44px);font-weight:600;line-height:1}
.letter-word{font-size:clamp(26px,3.2vw,46px);font-weight:300;letter-spacing:-.02em;line-height:1.1;color:#8c8c8c}
.founder-img{display:block;width:100%;height:clamp(260px,38vw,560px);object-fit:cover;object-position:50% 45%}
.founder-name{margin:0;font-size:clamp(36px,4.2vw,60px);font-weight:300;letter-spacing:-.025em;line-height:1.04}
.founder-role{margin:0;font-size:17px;color:#cfcfcf}
.founder-lead{margin:0;font-size:clamp(18px,1.5vw,22px);font-weight:300;line-height:1.65;color:#e6e6e6}
.founder-copy{margin:0;font-size:17px;font-weight:300;line-height:1.75;color:#b5b5b5}
.grid{display:flex;flex-wrap:wrap;gap:1px;background:#262626;border:1px solid #262626}
.tile{flex:1 1 300px;min-height:240px;padding:32px;background:#050505;display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.tile__num{font-size:13px;font-weight:500;letter-spacing:.14em;color:#8c8c8c}
.tile__name{display:block;font-size:26px;font-weight:400;letter-spacing:-.015em}
.tile__line{display:block;margin-top:10px;font-size:15px;line-height:1.5;color:#a8a8a8}
.tile--cta{background:#fff;color:#000;text-decoration:none}
.tile--cta:hover{background:#e6e6e6;color:#000}
.tile--cta span{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:26px;font-weight:500;letter-spacing:-.015em}

/* Loading pages */
.loading{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding-top:clamp(140px,16vw,200px);padding-bottom:clamp(72px,9vw,120px)}
.loading__inner{display:flex;flex-direction:column;align-items:center;gap:36px;text-align:center;animation:heroIn .9s ease .1s both}
.loading__mark{width:clamp(96px,11vw,150px);height:auto;overflow:visible}
.loading__mark .blk{animation:blkLoop 4.2s cubic-bezier(.2,.8,.2,1) infinite both}
.loading h1{margin:0;font-size:clamp(30px,3.6vw,52px);font-weight:300;letter-spacing:-.02em;line-height:1.15}
.loading p.lead{margin:0;max-width:440px;font-size:16px;font-weight:300;line-height:1.7;color:#a8a8a8}
.dot{animation:dots 1.6s infinite}
.dot:nth-child(2){animation-delay:.25s}.dot:nth-child(3){animation-delay:.5s}
.bar{position:relative;width:min(280px,70vw);height:2px;background:#1f1f1f;overflow:hidden;border-radius:2px}
.bar::after{content:"";position:absolute;top:0;left:0;width:38%;height:100%;background:#fff;animation:barSlide 1.8s ease-in-out infinite}
.notify{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}
.notify form{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0}
.notify input[type=email]{width:min(280px,72vw);height:48px;padding:0 16px;background:#0b0b0b;border:1px solid #2a2a2a;border-radius:2px;color:#fff;font-family:inherit;font-size:16px}
.notify input[type=email]::placeholder{color:#7a7a7a}
.notify .btn{min-height:48px;padding:0 22px}
.notify__hint{margin:0;font-size:14px;color:#a8a8a8}
.notify__done{margin:0;display:inline-flex;align-items:center;gap:10px;font-size:15px;color:#e6e6e6}
.notify__error{margin:0;font-size:14px;color:#e8a0a0}
.loading__links{display:flex;align-items:center;gap:8px;padding-top:12px}
.divider-v{width:1px;height:18px;background:#3a3a3a;margin:0 10px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .intro{display:none}
  html{scroll-behavior:auto}
}

/* ---------- Phone sizing ---------- */
@media (max-width:600px){
  .topbar,.menu__bar{padding-top:20px;padding-bottom:20px}
  .brand{gap:10px}
  .brand svg{width:24px;height:auto}
  .brand span{font-size:16px}
  .brand sup{font-size:8px}
  .menu-btn svg{width:24px;height:24px}
  .eyebrow{font-size:11px;letter-spacing:.16em}

  .hero__name{font-size:26px}
  .hero__role{font-size:13px}
  .hero__bottom{padding-bottom:28px;gap:16px}
  .hero__mark{width:48px !important}

  .teaser{gap:22px}
  .teaser__tag{font-size:12px}
  .teaser__statement{font-size:19px;line-height:1.45}
  .teaser__founder{font-size:15px}
  .teaser__rule{height:28px}

  .music__media img{height:340px}
  .music__body{gap:22px}
  .music__title{font-size:32px}
  .music__credit{font-size:16px;margin-top:8px}
  .btn{min-height:48px;padding:0 20px;font-size:14px}
  .player{height:152px}
  .listen__icons svg{transform:scale(.88)}

  .contact{gap:20px}
  .contact__where{font-size:13px}
  .footer__inner{font-size:12px}

  .menu__nav{justify-content:flex-start;padding-top:8px}
  .menu__list{gap:8px}
  .menu__item{min-height:60px;padding:0 18px;gap:16px}
  .menu__item svg:first-child{width:20px;height:20px}
  .menu__label{font-size:18px}
  .menu__num{font-size:11px}
  .menu__social{padding-top:20px}

  .opening{padding-top:120px}
  .opening__inner{gap:20px}
  .opening h1{font-size:32px}
  .opening p.lead{font-size:16px}
  .body-copy{font-size:15px}
  .letter-row{padding:9px 0;gap:16px}
  .letter-box{width:40px;height:40px;font-size:22px}
  .letter-word{font-size:22px}
  .founder-img{height:220px}
  .founder-name{font-size:30px}
  .founder-role{font-size:15px}
  .founder-lead{font-size:17px}
  .founder-copy{font-size:15px}
  .h-section{font-size:30px}
  .tile{min-height:150px;padding:22px;gap:24px}
  .tile__name{font-size:20px}
  .tile__line{font-size:14px}
  .tile--cta span{font-size:20px}
  .tile--cta svg:first-child{width:34px;height:auto}

  .loading{padding-top:110px}
  .loading__inner{gap:26px}
  .loading__mark{width:68px}
  .loading h1{font-size:26px}
  .loading p.lead{font-size:15px}
}

/* ---------- Phone: shorter scroll ---------- */
@media (max-width:600px){
  .section{padding-top:48px;padding-bottom:48px}
  .hero{height:82vh;height:82svh;min-height:520px}

  .teaser{gap:16px}
  .teaser__rule{display:none}
  .teaser__statement{font-size:17px}
  .teaser__founder{font-size:14px;line-height:1.6}
  .text-link{min-height:40px}

  .music{gap:24px}
  .music__media img{height:240px}
  .music__body{gap:18px}
  .music__title{font-size:28px}
  .listen{gap:8px;padding-top:8px}
  .listen .eyebrow{margin-top:8px}

  .contact__head{gap:14px}

  .opening{padding-top:96px;padding-bottom:40px}
  .opening h1{font-size:28px}
  .opening__inner{gap:14px}
  .split{gap:20px}
  .split__side{gap:10px}
  .body-copy{font-size:14px;line-height:1.6}
  .letter-row{padding:6px 0;gap:14px}
  .letter-box{width:32px;height:32px;font-size:18px;border-radius:2px}
  .letter-word{font-size:19px}
  .founder-img{height:180px}
  .founder-name{font-size:26px}
  .founder-lead{font-size:16px;line-height:1.55}
  .founder-copy{font-size:14px;line-height:1.65}
  .h-section{font-size:26px}
  #divisions .wrap{gap:24px !important}
  #divisions .wrap > div:first-child p{font-size:14px !important}
  .tile{flex:1 1 calc(50% - 1px);min-height:118px;padding:16px;gap:12px}
  .tile__num{font-size:11px}
  .tile__name{font-size:16px}
  .tile__line{font-size:12px;margin-top:6px}
  .tile--cta span{font-size:16px}
  .tile--cta svg:first-child{width:26px}
  .tile--cta span svg{width:18px;height:18px}

  .loading{padding-top:92px;padding-bottom:40px}
  .loading__inner{gap:20px}
  .loading h1{font-size:24px}
  .loading p.lead{font-size:14px;line-height:1.6}
}

/* About statement: always three lines, like desktop */
@media (max-width:900px){
  .teaser__statement{white-space:nowrap;font-size:min(22px,calc((100vw - 48px) / 30));line-height:1.5;letter-spacing:-.01em}
}
