@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--red:#e50914;--bg:#09090b;--panel:#151519;--muted:#a2a2ac;--line:#29292f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:#fff;font-family:Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.shell{max-width:1240px;margin:auto;padding:0 28px}header{position:sticky;top:0;z-index:20;background:#09090beF;border-bottom:1px solid #222;backdrop-filter:blur(18px)}.nav{height:74px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-family:'Barlow Condensed',Impact,sans-serif;font-size:34px;font-weight:900;letter-spacing:1px}.brand span{color:var(--red)}.links{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.links a{font-size:11px;font-weight:700;letter-spacing:.07em;color:#d3d3d8}.links a.active,.links a:hover{color:#ff3846}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--red);background:var(--red);color:#fff;padding:13px 19px;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;transition:.2s}.btn:hover{background:#ff2433;transform:translateY(-2px)}.btn.outline{background:transparent;border-color:#555}.btn.outline:hover{border-color:var(--red)}.hero{position:relative;min-height:610px;display:flex;align-items:center;overflow:hidden;background:radial-gradient(ellipse at 74% 45%,#57030e 0%,#1a0a0e 31%,transparent 63%),linear-gradient(115deg,#09090b 40%,#170a0e)}.hero:after{content:'';position:absolute;right:-8%;top:10%;height:500px;width:500px;border:2px solid #e5091440;border-radius:50%;box-shadow:0 0 100px #e5091430,inset 0 0 80px #e5091430;pointer-events:none}.hero-inner{position:relative;z-index:1;width:100%;padding-top:90px;padding-bottom:90px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.24em;color:#ff3744;text-transform:uppercase}.hero h1,h1,h2,h3{font-family:'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;line-height:.96;margin:0}.hero h1{font-size:clamp(65px,10vw,142px);max-width:900px;margin:24px 0}.red{color:#ff2635}.lead{max-width:610px;font-size:17px;line-height:1.8;color:#b5b5be}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.section{padding:88px 0}.section.alt{background:#101013}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.section h2{font-size:clamp(42px,6vw,76px);margin:12px 0}.section p{color:#aaaab3;line-height:1.8}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{border:1px solid var(--line);background:#151519;padding:28px;min-height:210px;transition:.2s}.tile:hover{border-color:#ae1825;transform:translateY(-3px)}.tile .num{color:var(--red);font-size:13px;font-weight:800}.tile h3{font-size:30px;margin:18px 0}.tile p{font-size:13px;margin-bottom:22px}.tile a{font-size:12px;font-weight:800;color:#ff4250}.banner{padding:55px;background:linear-gradient(110deg,#240b10,#100d10);border:1px solid #5e1720}.banner h2{font-size:64px}.pagehero{padding:95px 0 70px;background:radial-gradient(ellipse at 90% 20%,#450812 0%,transparent 48%)}.pagehero h1{font-size:clamp(65px,9vw,112px);margin:18px 0}.pagehero p{max-width:650px;color:#b5b5bd;line-height:1.8}.cover{aspect-ratio:1/1;background:radial-gradient(circle at 70% 25%,#ff2635 0%,#7c0916 17%,#1a1118 50%,#09090b 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.cover:after{content:'';position:absolute;inset:12%;border:2px solid #ffffff24;transform:rotate(25deg)}.cover span{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(32px,4vw,60px);font-weight:900;text-align:center;line-height:1;z-index:1;text-shadow:0 5px 20px #000}.cover img{width:100%;height:100%;object-fit:cover;position:absolute;z-index:2}.track{background:#17171c;border:1px solid #303037;overflow:hidden}.track-info{padding:17px}.track-info h3{font-size:25px}.track-info p{font-size:12px;margin:8px 0 16px}.track-actions{display:flex;gap:8px;flex-wrap:wrap}.smallbtn{border:1px solid #555;background:#24242a;color:#fff;padding:10px 12px;font-size:11px;font-weight:800}.smallbtn:hover{border-color:var(--red)}.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:24px}.filters button{padding:10px 14px;border:1px solid #393940;background:#17171b;color:#ddd;font-size:12px}.filters button.selected{background:var(--red);border-color:var(--red);color:#fff}.player{position:fixed;bottom:0;left:0;right:0;background:#17171bf5;border-top:1px solid #45454b;z-index:30;backdrop-filter:blur(15px)}.player-inner{min-height:87px;display:flex;align-items:center;gap:20px}.player-title{min-width:175px}.player-title strong{display:block;font-size:13px}.player-title small{font-size:11px;color:#999}.player button{border:0;background:var(--red);color:white;border-radius:50%;width:42px;height:42px;font-size:16px}.player input[type=range]{accent-color:var(--red);flex:1;min-width:60px}.player .time{font-size:11px;color:#aaa}canvas{width:220px;height:46px;max-width:24vw}.player audio{display:none}.foot{border-top:1px solid #28282c;padding:50px 0 125px;color:#999;font-size:12px}.foot .brand{color:white}.foot p{line-height:1.8}.form{max-width:750px;display:grid;gap:14px}.form label{display:grid;gap:8px;font-size:12px;color:#bbb}.form input,.form textarea,.form select{width:100%;padding:14px;background:#17171b;border:1px solid #444;color:white;border-radius:0}.form textarea{min-height:140px}.notice{padding:16px;border-left:3px solid var(--red);background:#1a1518;color:#c8c8cc;font-size:13px;line-height:1.7}.visual-stage{height:310px;background:radial-gradient(circle at center,#6d0817,#14090e 60%,#08080a);border:1px solid #70212a;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.visual-stage .rings{width:190px;height:190px;border:3px solid #ff364c;border-radius:50%;box-shadow:0 0 40px #e5091480,inset 0 0 40px #e5091480;animation:pulse 2s infinite alternate}.visual-stage h3{position:absolute;z-index:2;font-size:46px;text-align:center;text-shadow:0 3px 15px #000}.reduce .rings{animation:none}@keyframes pulse{to{transform:scale(1.25);opacity:.4}}.menu{display:none;background:none;border:1px solid #444;color:white;padding:9px 12px}.status{color:#f88;font-size:13px}.subnav{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.subnav a{border:1px solid #555;padding:10px 13px;font-size:12px}.subnav a:hover{border-color:var(--red)}body.has-player{padding-bottom:88px}@media(max-width:850px){.menu{display:block}.links{display:none;position:absolute;left:0;right:0;top:74px;background:#111;padding:22px;flex-direction:column;align-items:stretch}.links.open{display:flex}.grid,.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:520px}.player-inner{gap:9px}.player-title{min-width:100px}canvas{display:none}}@media(max-width:570px){.grid,.grid.two{grid-template-columns:1fr}.shell{padding:0 18px}.section{padding:60px 0}.hero h1{font-size:65px}.section-head{display:block}.banner{padding:28px}.banner h2{font-size:44px}.player .time{display:none}.player-title{min-width:80px}.player-inner{gap:8px}.player input[type=range]{max-width:80px}}

/* Square beat artwork and in-place YouTube preview */
.cover{aspect-ratio:1 / 1;width:100%;isolation:isolate}
.cover img{width:177.7778%;max-width:none;height:100%;object-fit:fill;object-position:center;left:50%;transform:translateX(-50%)}
.cover.preview-active:after,.cover.preview-active>span{display:none}
.cover .youtube-preview{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:5;display:block;background:#000}

/* Subtle editorial motion for featured beats only */
@keyframes tjb-featured-drift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-9px,0)}}
@media (prefers-reduced-motion:no-preference){
.featured-motion .grid>.track{animation:tjb-featured-drift 8s ease-in-out infinite;will-change:transform}
.featured-motion .grid>.track:nth-child(2){animation-delay:-2.7s;animation-duration:9s}
.featured-motion .grid>.track:nth-child(3){animation-delay:-5.2s;animation-duration:10s}
.featured-motion .grid>.track:hover,.featured-motion .grid>.track:focus-within,.featured-motion .grid>.track:has(.preview-active){animation-play-state:paused;transform:translate3d(0,0,0)}
}
@media (prefers-reduced-motion:reduce){.featured-motion .grid>.track{animation:none!important}}

/* Central 1:1 artwork with extra vertical fill for source black bars */
.cover img{width:177.7778%;height:112%;top:50%;left:50%;transform:translate(-50%,-50%);max-width:none;object-fit:fill}
/* Horizontal swipeable beat gallery on homepage */
.featured-motion .featured-carousel-wrap{position:relative;display:flex;align-items:center;gap:12px}
.featured-motion .featured-carousel{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#555 transparent;padding:12px 2px 20px;min-width:0;flex:1;-webkit-overflow-scrolling:touch}
.featured-motion .featured-carousel>.track{flex:0 0 clamp(230px,29vw,340px);scroll-snap-align:start;animation:none!important;transform:none!important;will-change:auto}
.featured-motion .featured-arrow{flex:0 0 34px;height:48px;border:1px solid #444;background:#151519;color:white;font-size:30px;cursor:pointer}
.featured-motion .featured-arrow:hover{border-color:#e50914;color:#ff364c}
@media(max-width:570px){.featured-motion .featured-carousel-wrap{gap:5px}.featured-motion .featured-arrow{flex-basis:24px;font-size:22px}.featured-motion .featured-carousel>.track{flex-basis:min(76vw,310px)}}

/* Compact vinyl-shelf presentation: one horizontal row, no vertical growth */
.featured-motion .featured-carousel-wrap{align-items:center;max-width:100%}
.featured-motion .featured-carousel{align-items:stretch;gap:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;padding:14px 10px 22px;min-height:0}
.featured-motion .featured-carousel>.track{position:relative;flex:0 0 clamp(205px,24vw,270px);margin-right:-36px;scroll-snap-align:start;transition:filter .2s ease,box-shadow .2s ease;z-index:1;animation:none!important;transform:none!important}
.featured-motion .featured-carousel>.track:last-child{margin-right:0}
.featured-motion .featured-carousel>.track:hover,.featured-motion .featured-carousel>.track:focus-within,.featured-motion .featured-carousel>.track:has(.preview-active){z-index:4;filter:brightness(1.07);box-shadow:0 10px 35px #0009}
.featured-motion .featured-carousel>.track .track-info{padding:12px 13px 15px}
.featured-motion .featured-carousel>.track .track-info h3{font-size:22px}
.featured-motion .featured-carousel>.track .track-info p{margin:5px 0 12px}
.featured-motion .featured-carousel>.track .track-actions{gap:6px}
@media(max-width:570px){
.featured-motion .featured-carousel>.track{flex-basis:min(67vw,250px);margin-right:-28px}
.featured-motion .featured-carousel{padding:10px 6px 18px}
}

/* Native finger swiping + mouse grab-and-drag for vinyl shelf */
.featured-motion .featured-carousel{cursor:grab;touch-action:pan-x pan-y;user-select:none;-webkit-user-select:none}
.featured-motion .featured-carousel.is-dragging{cursor:grabbing;scroll-snap-type:none}
.featured-motion .featured-carousel .cover img{-webkit-user-drag:none;pointer-events:none}
.featured-motion .featured-carousel button,.featured-motion .featured-carousel a,.featured-motion .featured-carousel iframe{cursor:pointer}

/* Vinyl shelf: subtle receding 3D perspective, cards flatten on hover */
.featured-motion .featured-carousel{perspective:1100px;perspective-origin:50% 45%;padding-top:20px;padding-bottom:26px}
.featured-motion .featured-carousel>.track{transform:rotateY(-11deg) scale(.975)!important;transform-origin:center center;transition:transform .25s ease,filter .2s ease,box-shadow .25s ease;backface-visibility:hidden}
.featured-motion .featured-carousel>.track:hover,.featured-motion .featured-carousel>.track:focus-within,.featured-motion .featured-carousel>.track:has(.preview-active){transform:rotateY(0deg) scale(1)!important;z-index:5}
.featured-motion .featured-carousel,.featured-motion .featured-carousel *{ -webkit-user-select:none;user-select:none }
.featured-motion .featured-carousel img{ -webkit-user-drag:none;user-drag:none }
.featured-motion .featured-carousel.is-dragging,.featured-motion .featured-carousel.is-dragging *{cursor:grabbing!important}
@media(prefers-reduced-motion:reduce){.featured-motion .featured-carousel>.track{transition:none}}

/* Continuous physics-based record shelf: no snap or step transitions */
.featured-motion .featured-carousel{scroll-snap-type:none!important;scroll-behavior:auto!important}
.featured-motion .featured-carousel>.track{scroll-snap-align:none!important}
.featured-motion .featured-carousel.is-dragging{cursor:grabbing!important}

/* Compact homepage intro: put the record shelf directly into view */
.hero{min-height:290px}
.hero-inner{padding-top:42px;padding-bottom:44px}
.hero h1{font-size:clamp(52px,7vw,92px);max-width:none;margin:15px 0 12px}
.hero .lead{margin:10px 0;font-size:15px;line-height:1.5}
.hero .actions{margin-top:17px}
@media(max-width:850px){.hero{min-height:280px}}
@media(max-width:570px){.hero{min-height:0}.hero-inner{padding-top:30px;padding-bottom:32px}.hero h1{font-size:clamp(48px,12vw,68px);margin:12px 0}.hero .lead{font-size:14px}.hero .actions{margin-top:14px}}

/* Living audio-wave halo behind the compact hero headline */
@keyframes tjb-audio-halo{0%,100%{transform:translate3d(0,0,0) rotate(-8deg) scale(1);border-radius:50% 48% 53% 47%;opacity:.7;box-shadow:0 0 80px #e5091426,inset 0 0 65px #e5091420}35%{transform:translate3d(-12px,5px,0) rotate(8deg) scale(1.065,.94);border-radius:44% 56% 47% 53%;opacity:1;box-shadow:0 0 110px #e5091440,inset 0 0 90px #e5091438}70%{transform:translate3d(8px,-5px,0) rotate(-5deg) scale(.96,1.05);border-radius:55% 45% 54% 46%;opacity:.85;box-shadow:0 0 95px #e5091433,inset 0 0 72px #e509142c}}
@media(prefers-reduced-motion:no-preference){.hero:after{animation:tjb-audio-halo 9s ease-in-out infinite;transform-origin:center}}
@media(prefers-reduced-motion:reduce){.hero:after{animation:none}}

/* Familiar breadcrumb navigation on service detail pages */
.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:19px;padding-bottom:15px;font-size:11px;font-weight:700;letter-spacing:.1em;color:#aaaab3}
.breadcrumbs a{color:#d6d6dd;transition:color .2s}
.breadcrumbs a:hover{color:#ff3744}
.breadcrumbs [aria-current=page]{color:#ff3744}

/* Persistent navigation path directly beneath the TJB logo in sticky header */
.brand-stack{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;gap:3px}
.header-crumbs{display:flex;align-items:center;gap:6px;max-width:310px;white-space:nowrap;overflow:hidden;font-size:9px;font-weight:700;letter-spacing:.045em;color:#a2a2ac}
.header-crumbs a{flex-shrink:0;color:#c9c9d0}
.header-crumbs a:hover{color:#ff3744}
.header-crumbs [aria-current=page]{overflow:hidden;text-overflow:ellipsis;color:#ff3744}
@media(max-width:650px){.header-crumbs{max-width:min(52vw,240px);font-size:8px;gap:4px}}

/* Keep site navigation and breadcrumb path fixed above scrolling content */
header{position:fixed!important;top:0;left:0;right:0;width:100%;z-index:1000}
body{padding-top:74px}
.brand-stack{position:relative;z-index:2}
.header-crumbs{flex-shrink:0}
/* Compact Beats filter: active genre pulses gently */
@keyframes tjb-filter-breathe{0%,100%{box-shadow:0 0 0 0 #e509140d}50%{box-shadow:0 0 0 5px #e5091428,0 0 18px #e5091433}}
@media(prefers-reduced-motion:no-preference){#filters button.selected{animation:tjb-filter-breathe 3s ease-in-out infinite}}

/* Improved readability of persistent navigation history under logo */
.header-crumbs{font-size:11px;max-width:370px;gap:7px}
@media(max-width:650px){.header-crumbs{font-size:10px;max-width:min(58vw,265px);gap:5px}}

/* High contrast for primary offer buttons */
.btn:not(.outline),.btn:not(.outline):visited,.tile .btn:not(.outline),.banner .btn:not(.outline){color:#fff!important;text-shadow:0 1px 2px #0005}
/* More pronounced vinyl-record depth and pull-forward interaction */
.featured-motion .featured-carousel{perspective:850px;perspective-origin:50% 48%;padding-top:28px;padding-bottom:34px}
.featured-motion .featured-carousel>.track{transform:rotateY(-23deg) translateZ(-12px) scale(.94)!important;transform-origin:48% 50%;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .3s ease,box-shadow .42s ease;will-change:transform}
.featured-motion .featured-carousel>.track:hover,.featured-motion .featured-carousel>.track:focus-within,.featured-motion .featured-carousel>.track:has(.preview-active){transform:rotateY(0deg) translateZ(48px) translateY(-9px) scale(1.055)!important;z-index:8;box-shadow:0 18px 46px #000b,0 0 24px #e5091422}
@media(prefers-reduced-motion:reduce){.featured-motion .featured-carousel>.track{transition:none}}

/* Dense, uniform-angle vinyl rack: every sleeve has its own perspective */
.featured-motion .featured-carousel{perspective:none!important;perspective-origin:initial;padding:36px 10px 45px;isolation:isolate}
.featured-motion .featured-carousel>.track{flex:0 0 185px!important;margin-right:-91px!important;transform:perspective(750px) rotateY(-38deg) scale(.96)!important;transform-origin:center center;z-index:1;backface-visibility:visible;transition:transform .5s cubic-bezier(.16,1,.3,1),filter .3s ease,box-shadow .45s ease!important}
.featured-motion .featured-carousel>.track:last-child{margin-right:0!important}
.featured-motion .featured-carousel>.track:hover,.featured-motion .featured-carousel>.track:focus-within,.featured-motion .featured-carousel>.track:has(.preview-active){transform:perspective(750px) rotateY(0deg) translateY(-12px) scale(1.2)!important;z-index:50!important;filter:brightness(1.1);box-shadow:0 22px 50px #000e,0 0 30px #e5091430}
.featured-motion .featured-carousel>.track .track-info h3{font-size:19px}
.featured-motion .featured-carousel>.track .track-info{padding:10px}
.featured-motion .featured-carousel>.track .smallbtn{font-size:10px;padding:8px 6px}
@media(max-width:570px){.featured-motion .featured-carousel{padding:25px 8px 34px}.featured-motion .featured-carousel>.track{flex-basis:170px!important;margin-right:-68px!important;transform:perspective(750px) rotateY(-32deg) scale(.96)!important}.featured-motion .featured-carousel>.track:hover,.featured-motion .featured-carousel>.track:focus-within,.featured-motion .featured-carousel>.track:has(.preview-active){transform:perspective(750px) rotateY(0deg) translateY(-8px) scale(1.08)!important}}
@media(prefers-reduced-motion:reduce){.featured-motion .featured-carousel>.track{transition:none!important}}

/* Vinyl shelf refinement: left sleeves in front, right sleeves tucked behind */
.featured-motion .featured-carousel>.track{transform:rotateY(-17deg) scale(.98)!important;transform-origin:center center;z-index:auto!important;filter:none}
.featured-motion .featured-carousel>.track:hover,.featured-motion .featured-carousel>.track:focus-within,.featured-motion .featured-carousel>.track:has(.preview-active){transform:rotateY(0deg) translateY(-12px) scale(1.15)!important;z-index:100!important;filter:brightness(1.08)}
@media(max-width:570px){.featured-motion .featured-carousel>.track{transform:rotateY(-13deg) scale(.98)!important}.featured-motion .featured-carousel>.track:hover,.featured-motion .featured-carousel>.track:focus-within,.featured-motion .featured-carousel>.track:has(.preview-active){transform:rotateY(0deg) translateY(-8px) scale(1.08)!important}}

/* Consistent hero proportions across home and inner pages */
.hero{min-height:390px!important}
.hero-inner{padding-top:75px!important;padding-bottom:75px!important}
@media(max-width:570px){.hero{min-height:340px!important}.hero-inner{padding-top:62px!important;padding-bottom:62px!important}}
/* Smaller Beats catalog cards, matched to the original compact vinyl shelf */
#track-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px}
#track-grid .track-info{padding:11px}
#track-grid .track-info h3{font-size:19px}
#track-grid .track-info p{font-size:11px;margin:6px 0 10px}
#track-grid .smallbtn{padding:8px 7px;font-size:10px}
@media(max-width:570px){#track-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#track-grid .track-info{padding:9px}#track-grid .track-info h3{font-size:17px}#track-grid .smallbtn{font-size:9px;padding:7px 5px}}

/* Match homepage hero typography and whitespace to the Beats / Services page hero */
.hero{min-height:0!important;align-items:stretch}
.hero-inner{padding-top:95px!important;padding-bottom:70px!important}
.hero h1{font-size:clamp(65px,9vw,112px)!important;line-height:.96;max-width:none;margin:18px 0!important}
.hero .lead{max-width:650px;font-size:16px;line-height:1.8;margin:16px 0!important;color:#b5b5bd}
.hero .actions{margin-top:26px!important}
@media(max-width:570px){.hero-inner{padding-top:95px!important;padding-bottom:70px!important}.hero h1{font-size:clamp(65px,9vw,112px)!important;margin:18px 0!important}.hero .lead{font-size:16px;line-height:1.8;margin:16px 0!important}.hero .actions{margin-top:26px!important}}

/* Animated decorative waveform halo: rests until a preview is opened */
.hero .hero-waveform{position:absolute;right:-8%;top:10%;width:500px;height:500px;pointer-events:none;z-index:0;border-radius:50%;opacity:0;transition:opacity .35s ease;display:grid;place-items:center}
.hero .hero-waveform-core{position:absolute;inset:13%;border:3px solid #ff304c99;border-radius:50%;box-shadow:0 0 65px #e5091470,inset 0 0 65px #e5091450}
.hero .hero-waveform-spikes{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ff2949 0deg 1.1deg,transparent 1.1deg 7deg);-webkit-mask:radial-gradient(circle,transparent 0 45%,#000 46% 53%,transparent 61%);mask:radial-gradient(circle,transparent 0 45%,#000 46% 53%,transparent 61%);filter:drop-shadow(0 0 14px #ff203f)}
body.tjb-preview-playing .hero .hero-waveform{opacity:1}
body.tjb-preview-playing .hero:after{animation:tjb-halo-beat .48s cubic-bezier(.12,.7,.2,1) infinite alternate!important}
body.tjb-preview-playing .hero .hero-waveform-core{animation:tjb-wave-core .48s ease-in-out infinite alternate}
body.tjb-preview-playing .hero .hero-waveform-spikes{animation:tjb-wave-spikes .31s steps(2,end) infinite alternate}
@keyframes tjb-halo-beat{0%{transform:scale(.98);box-shadow:0 0 70px #e5091435,inset 0 0 60px #e5091435}100%{transform:scale(1.095,1.04);box-shadow:0 0 145px #ff203f85,inset 0 0 100px #e5091460}}
@keyframes tjb-wave-core{from{transform:scale(.94);opacity:.6}to{transform:scale(1.11);opacity:1}}
@keyframes tjb-wave-spikes{0%{transform:scale(.94) rotate(-2deg);opacity:.55}50%{transform:scale(1.14,1.06) rotate(2deg);opacity:1}100%{transform:scale(1.02,1.18) rotate(-1deg);opacity:.85}}
@media(max-width:650px){.hero .hero-waveform{width:320px;height:320px;right:-28%;top:5%}}
@media(prefers-reduced-motion:reduce){body.tjb-preview-playing .hero:after,body.tjb-preview-playing .hero .hero-waveform-core,body.tjb-preview-playing .hero .hero-waveform-spikes{animation:none!important}}

/* Shared hero rhythm: align top edges, type scale and section boundaries on every route */
.hero,.pagehero{min-height:465px!important;box-sizing:border-box}
.hero-inner,.pagehero>.shell{padding-top:95px!important;padding-bottom:70px!important}
.pagehero{padding:0!important}
.hero h1,.pagehero h1{font-size:clamp(65px,9vw,112px)!important;line-height:.96;margin:18px 0!important;max-width:none}
.hero .lead,.pagehero p{max-width:650px;font-size:16px;line-height:1.8;margin:16px 0!important;color:#b5b5bd}
@media(max-width:570px){.hero,.pagehero{min-height:440px!important}.hero-inner,.pagehero>.shell{padding-top:95px!important;padding-bottom:70px!important}}

/* Compact inner-page transitions only; preserve homepage hero untouched */
.pagehero{min-height:0!important}
.pagehero>.shell{padding-top:80px!important;padding-bottom:35px!important}
.pagehero+.section{padding-top:30px}
@media(max-width:570px){.pagehero{min-height:0!important}.pagehero>.shell{padding-top:70px!important;padding-bottom:26px!important}.pagehero+.section{padding-top:24px}}

/* Keep the Sound Solutions and process sections visually connected */
.pagehero~.section:has(+.section .eyebrow){padding-bottom:30px}

/* Hero buttons retain their original position. Shift the whole red CTA banner, not its button. */
.hero .actions{transform:none!important}
.section:has(> .shell > .banner){padding-top:76px}
@media(max-width:570px){.section:has(> .shell > .banner){padding-top:48px}}
.section > .shell > .banner{position:relative;top:-12px}

/* Layered red sound ribbons, active only while a preview is playing */
.hero .hero-sound-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;opacity:0;filter:drop-shadow(0 0 7px #ff183e);transition:opacity .35s ease}
.hero .hero-sound-lines path{fill:none;stroke:#ff304c;stroke-width:2;stroke-linecap:round;transform-box:fill-box;transform-origin:center;stroke-dasharray:8 4}
.hero .hero-sound-lines path:nth-child(2){stroke:#ffb0bb;stroke-width:1.3;stroke-dasharray:none}
.hero .hero-sound-lines path:nth-child(3){stroke:#c80026;stroke-width:3;opacity:.7;stroke-dasharray:2 7}
body.tjb-preview-playing .hero .hero-sound-lines{opacity:1}
body.tjb-preview-playing .hero .hero-sound-lines path:nth-child(1){animation:tjb-ribbon-a 1.1s ease-in-out infinite alternate}
body.tjb-preview-playing .hero .hero-sound-lines path:nth-child(2){animation:tjb-ribbon-b .75s ease-in-out infinite alternate}
body.tjb-preview-playing .hero .hero-sound-lines path:nth-child(3){animation:tjb-ribbon-c 1.4s ease-in-out infinite alternate}
@keyframes tjb-ribbon-a{from{transform:translateY(-16px) scaleY(.75)}to{transform:translateY(15px) scaleY(1.4)}}
@keyframes tjb-ribbon-b{from{transform:translateY(13px) scaleY(1.2)}to{transform:translateY(-15px) scaleY(.65)}}
@keyframes tjb-ribbon-c{from{transform:translateY(-8px) scaleY(.8)}to{transform:translateY(9px) scaleY(1.6)}}
@media(prefers-reduced-motion:reduce){body.tjb-preview-playing .hero .hero-sound-lines path{animation:none!important}}

/* Community releases: show the original YouTube thumbnail, not a generic preview */
.community-video-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:#080808}
.community-video-cover>a{display:block;position:relative;width:100%;height:100%}
.community-video-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.community-video-cover a:hover img{transform:scale(1.035)}
.community-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#e50914;color:white;border-radius:12px;padding:13px 19px;font-size:22px;box-shadow:0 5px 25px #0009}

/* Keep Community release thumbnails, titles and action buttons aligned. */
.community-release-grid{align-items:stretch}
.community-release-card{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}
.community-release-card .community-video-cover{width:100%;flex:none}
.community-release-card .track-info{display:flex;flex-direction:column;flex:1;min-width:0;padding:18px}
.community-release-card .track-info h3{font-size:clamp(17px,1.8vw,23px);line-height:1.25;overflow-wrap:anywhere;margin:0 0 10px}
.community-release-card .track-info p{font-size:13px;line-height:1.5;margin:0 0 20px;color:#c9c9d0}
.community-release-card .track-actions{margin-top:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:stretch}
.community-release-card .track-actions .btn{display:flex;align-items:center;justify-content:center;text-align:center;min-width:0;width:100%;box-sizing:border-box;white-space:nowrap;padding:12px 8px;font-size:11px}
@media(max-width:480px){.community-release-card .track-actions{gap:7px}.community-release-card .track-actions .btn{font-size:10px;padding:11px 5px}}

/* Inline Community video playback stays inside the thumbnail. */
.community-video-cover .community-inline-play{display:block;position:relative;width:100%;height:100%;padding:0;border:0;background:#080808;cursor:pointer;overflow:hidden}
.community-video-cover .community-inline-play img{display:block;width:100%;height:100%;object-fit:cover}
.community-video-cover .community-inline-play:hover img{transform:scale(1.035)}
.community-video-cover iframe{display:block;width:100%;height:100%;border:0;position:absolute;inset:0}
.community-video-cover .community-inline-play:focus-visible{outline:3px solid #e50914;outline-offset:-3px}

/* Community flame reactions */
.community-reaction-row{display:flex;align-items:center;gap:12px;margin:0 0 20px;min-height:42px}
.community-fire{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:8px 14px;border:1px solid #4b3235;border-radius:999px;background:#221b20;color:#e8e2e3;font-weight:800;font-size:14px;cursor:pointer;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}
.community-fire-icon{font-size:20px;line-height:1;filter:grayscale(.7);opacity:.65;transition:filter .2s,opacity .2s,transform .2s}
.community-fire:hover:not(:disabled){border-color:#e50914;transform:translateY(-2px)}
.community-fire.active{background:#3c1c21;border-color:#e50914;color:#fff;box-shadow:0 0 18px #e5091430}
.community-fire.active .community-fire-icon{filter:none;opacity:1;transform:scale(1.12)}
.community-fire:disabled{opacity:.55;cursor:not-allowed}
.community-fire-label{font-size:10px;letter-spacing:.12em;font-weight:800;color:#96939b}
.community-fire:focus-visible{outline:2px solid #ff3545;outline-offset:3px}

/* Optional interface sound control */
.tjb-sound-toggle{position:fixed;left:16px;top:16px;z-index:1100;border:1px solid #5b3037;border-radius:999px;background:#151318e8;color:#e7e3e5;font:800 10px/1.2 inherit;letter-spacing:.12em;padding:10px 13px;cursor:pointer;box-shadow:0 4px 20px #0007;backdrop-filter:blur(8px)}
.tjb-sound-toggle[aria-pressed="true"]{border-color:#e50914;color:#fff;box-shadow:0 0 15px #e5091440}
.tjb-sound-toggle:focus-visible{outline:2px solid #ff3545;outline-offset:3px}
body.has-player .tjb-sound-toggle{top:16px}

/* Brief flame celebration when a Community release receives a fire. */
.tjb-flame-edge{position:fixed;top:23%;bottom:18%;width:68px;z-index:1250;pointer-events:none;display:flex;flex-direction:column;justify-content:space-around;align-items:center;opacity:0;animation:tjb-flame-flash .52s ease-out forwards;filter:drop-shadow(0 0 16px #ff4c1870)}
.tjb-flame-left{left:clamp(55px,10vw,170px)}.tjb-flame-right{right:clamp(55px,10vw,170px)}
.tjb-flame-edge span{font-size:clamp(23px,4vw,44px);transform:rotate(-16deg)}
.tjb-flame-right span{transform:rotate(16deg)}
.tjb-flame-edge span:nth-child(2){font-size:clamp(30px,5vw,58px)}
@keyframes tjb-flame-flash{0%{opacity:0;transform:translateY(18px) scale(.8)}22%{opacity:.88;transform:translateY(0) scale(1)}65%{opacity:.7}100%{opacity:0;transform:translateY(-22px) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.tjb-flame-edge{display:none}}

/* Gold/red celebratory particles on successful fire reaction */
.tjb-fire-confetti{position:fixed;inset:0;pointer-events:none;z-index:1251;overflow:hidden}
.tjb-fire-confetti i{position:absolute;left:var(--x);top:28%;width:6px;height:13px;border-radius:2px;background:hsl(var(--hue),95%,60%);opacity:0;transform:translateY(0) rotate(0);animation:tjb-confetti-pop .62s ease-out var(--delay) both}
@keyframes tjb-confetti-pop{0%{opacity:0;transform:translateY(15px) scale(.5) rotate(0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--drift),145px) rotate(420deg)}}
@media(prefers-reduced-motion:reduce){.tjb-fire-confetti{display:none}}

/* Persistent beat preview: video stays mounted when changing tabs. */
.tjb-beat-shell{position:fixed;z-index:900;overflow:hidden;background:#090909;pointer-events:auto}
.tjb-beat-video,.tjb-beat-video iframe{display:block;width:100%;height:100%;border:0}
.tjb-beat-shell .tjb-beat-meta{display:none}
.tjb-beat-shell.is-docked{left:auto!important;top:auto!important;right:18px;bottom:18px;width:min(340px,calc(100vw - 36px))!important;height:auto!important;border:1px solid #69202a;border-radius:12px;box-shadow:0 12px 45px #000b;z-index:1200}
.tjb-beat-shell.is-docked .tjb-beat-video{aspect-ratio:16/9;height:auto}
.tjb-beat-shell.is-docked .tjb-beat-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:#171317;color:#fff;font-size:12px}
.tjb-beat-meta strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tjb-beat-close{border:0;background:#361820;color:#fff;border-radius:6px;padding:3px 9px;font-size:20px;cursor:pointer}
@media(max-width:600px){.tjb-beat-shell.is-docked{right:10px;bottom:10px;width:min(270px,calc(100vw - 20px))!important}}

/* Three-swipe turbo: restrained red neon glow while the vinyl shelf accelerates. */
.featured-motion .featured-carousel.is-turbo{filter:drop-shadow(0 0 12px rgba(229,9,20,.65)) drop-shadow(0 0 24px rgba(229,9,20,.28));transition:filter .22s ease}
.featured-motion .featured-carousel.is-turbo>.track{box-shadow:0 0 19px rgba(229,9,20,.4)!important}
@media(prefers-reduced-motion:reduce){.featured-motion .featured-carousel.is-turbo{filter:none}.featured-motion .featured-carousel.is-turbo>.track{box-shadow:none!important}}

/* Infinite carousel: hide native scroll indicators, retain touch/swipe and mouse dragging. */
.featured-motion .featured-carousel{scrollbar-width:none!important;-ms-overflow-style:none}
.featured-motion .featured-carousel::-webkit-scrollbar{display:none!important;width:0;height:0}

/* Beat selected by the four-second neon spin. */
.featured-motion .featured-carousel>.track.is-picked{z-index:9!important;filter:brightness(1.12)!important;box-shadow:0 0 0 2px #fff,0 0 16px rgba(255,255,255,.9),0 0 38px rgba(255,255,255,.4)!important;transform:rotateY(0deg) scale(1.025)!important;border-radius:6px;transition:box-shadow .3s ease,filter .3s ease,transform .3s ease}

/* Golden selection reserved for the newest release when the carousel lands on it. */
.featured-motion .featured-carousel>.track.is-picked.is-gold-picked {
  box-shadow:0 0 0 2px #ffd34d,0 0 18px rgba(255,204,40,.95),0 0 40px rgba(255,175,0,.55)!important;
  filter:brightness(1.18)!important;
}

/* Mobile only: center the TJB header logo without moving the menu button. */
@media (max-width: 850px) {
  header .nav { position: relative; }
  header .brand-stack {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    align-items: center;
    max-width: calc(100% - 110px);
  }
  header .menu { margin-left: auto; }
  header .header-crumbs { max-width: min(52vw, 240px); }
  /* The generic mobile canvas rule must not hide the gold achievement confetti. */
  canvas#tjb-gold-confetti { display: block; }
}
