@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* The hero is intentionally just the complete 3:2 cat artwork. */
.hero{display:block!important;padding:32px 0 50px!important}
.hero-copy{display:none!important}
.cat-art{width:100%!important;min-height:0!important;aspect-ratio:3/2!important}
.cat-art img{object-fit:contain!important;object-position:center!important}
.cat-caption-title{font-size:clamp(38px,5.4vw,78px)!important}
.cat-art{cursor:default!important}
.cat-art:hover img{transform:none!important}
.cat-play{display:none!important}
@media(max-width:700px){.hero{padding-top:24px!important}.cat-art{min-height:0!important;aspect-ratio:3/2!important}.cat-art img{object-position:center!important}.cat-caption-title{font-size:clamp(30px,8vw,48px)!important}}
:root{color-scheme:dark;--bg:#101010;--ink:#efefec;--muted:#969694;--red:#ec382c;--line:#333332}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--bg);color:var(--ink);font:16px 'Space Grotesk','Noto Sans SC',sans-serif;padding-bottom:112px}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,audio:focus-visible{outline:2px solid var(--red);outline-offset:5px}header{max-width:1500px;margin:auto;height:100px;padding:0 5%;display:flex;align-items:center;gap:65px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:29px;font-weight:700;letter-spacing:-1.2px}.brand-icon{width:33px;height:33px;color:var(--red);flex:none}.brand-sub{font-size:14px;font-weight:500;letter-spacing:0;color:#c6c6c2}nav{display:flex;gap:30px;font-size:14px}nav a{padding:12px 0;color:var(--muted)}nav .active{color:#eee;border-bottom:2px solid var(--red)}nav a:hover{color:var(--red)}.header-note{margin-left:auto;color:#a5a5a0;font-size:11px;letter-spacing:1.7px}main{max-width:1500px;padding:0 5%;margin:auto}.hero{display:grid;grid-template-columns:.95fr 1.05fr;gap:50px;align-items:center;padding:46px 0 50px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:2px;color:var(--muted)}.eyebrow>span{width:7px;height:7px;background:var(--red);display:inline-block;margin-right:10px}.hero h1{font-size:clamp(42px,4.7vw,70px);font-weight:900;line-height:1.32;letter-spacing:-3px;margin:26px 0 22px}.hero h1 span{color:var(--red)}.hero-copy>p{font-size:15px;color:#acaca7;line-height:2;margin:0 0 28px}.primary{border:0;background:var(--red);color:#fff;font-size:15px;font-weight:700;padding:15px 24px;border-radius:2px}.primary:hover{background:#ff5145}.button-note{font-size:12px;color:var(--muted);margin-left:17px}.hero-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#a9a9a4;margin-top:40px}.hero-bottom a:hover{color:var(--red)}.cat-art{position:relative;border:0;padding:0;background:#1c1111;min-height:455px;display:block;overflow:hidden;text-align:left;color:#fff;width:100%;align-self:stretch;isolation:isolate}.cat-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;transition:transform .6s}.cat-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#080808e6,transparent 65%);z-index:0}.cat-art:hover img{transform:scale(1.025)}.art-top{position:absolute;top:22px;left:24px;right:24px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.8px;z-index:1;text-shadow:0 1px 8px #000}.cat-play{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid #fff9;background:#1117;width:54px;height:54px;display:grid;place-items:center;font-size:18px;z-index:1}.cat-art:hover .cat-play{background:var(--red);border-color:var(--red)}.cat-caption{position:absolute;bottom:24px;left:24px;right:24px;z-index:1;display:block}.cat-caption-title{font-family:Impact,'Arial Narrow',sans-serif;font-size:40px;letter-spacing:.1px;line-height:1;display:block;transform:skew(-4deg);margin-bottom:20px}.cat-caption-bottom{padding-top:16px;border-top:1px solid #ffffff55;display:flex;justify-content:space-between;font-size:12px;color:#ddd}.tracks-section{padding:35px 0 45px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:27px;gap:20px}h2{font-size:30px;letter-spacing:-.5px;margin:10px 0 0}.search-label input{width:260px;border:1px solid #444;background:#1b1b1b;color:#eee;padding:12px 16px;border-radius:3px;font-size:14px}.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:31px 24px}.video-card{min-width:0}.thumbnail{width:100%;padding:0;border:1px solid #353535;background:#242424;aspect-ratio:16/9;position:relative;overflow:hidden;color:#fff;display:block}.thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s;filter:saturate(.88)}.thumbnail:hover img{transform:scale(1.035);filter:saturate(1)}.card-play{position:absolute;left:13px;bottom:12px;width:34px;height:34px;display:grid;place-items:center;background:#111b;border:1px solid #ffffff70;border-radius:50%;font-size:12px}.length{position:absolute;bottom:12px;right:12px;background:#111d;padding:3px 7px;border-radius:2px;font-size:12px}.thumbnail.is-current{outline:2px solid var(--red);outline-offset:3px}.video-meta{display:flex;gap:10px;align-items:start;justify-content:space-between;margin-top:14px}.track-title{flex:1;min-width:0;border:0;padding:0;background:none;color:inherit;text-align:left}.video-meta h3{font:500 16px/1.6 'Space Grotesk','Noto Sans SC',sans-serif;margin:0;overflow-wrap:anywhere}.track-title:hover{color:var(--red)}.rename-button{border:0;background:none;color:#999;font-size:20px;padding:0 4px}.rename-button:hover{color:var(--red)}.video-card>p{font-size:12px;color:var(--muted);margin:7px 0 0}.no-cover{display:grid;place-items:center;color:var(--red);font-size:50px}.collection-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px;color:var(--muted);font-size:13px}.collection-footer button{border:1px solid #555;background:none;color:#eee;border-radius:2px;padding:11px 19px;font-size:14px}.collection-footer button:hover{border-color:var(--red);color:var(--red)}.source-note{font-size:12px;line-height:1.8;color:var(--muted);margin:22px 0 0}#empty{color:var(--muted);padding:30px 0}.about{display:grid;grid-template-columns:1fr 1.4fr 1.2fr;gap:25px;border-top:1px solid var(--line);padding:48px 0}.about h2{margin:0;font-size:29px;line-height:1.5;font-weight:700}.about p{margin:0;line-height:2;font-size:14px;color:var(--muted)}.signature{grid-column:3;color:var(--red);font:italic 34px Georgia,serif}footer{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--line);padding:30px 0;font-size:12px;color:var(--muted)}footer .brand{font-size:24px;color:#ddd}.audio-bar{position:fixed;bottom:0;left:0;right:0;z-index:5;border-top:1px solid #484844;background:#1a1a1af5;backdrop-filter:blur(20px);display:grid;grid-template-columns:1fr minmax(340px,1.35fr) 80px;gap:28px;align-items:center;padding:18px 5%}.audio-track{display:flex;align-items:center;gap:13px;min-width:0}.audio-track img{object-fit:cover;width:48px;height:48px}.audio-track strong{display:block;font-size:14px;overflow-wrap:anywhere}.audio-track span{display:block;font-size:12px;color:var(--muted);margin-top:5px}.audio-controls{display:flex;align-items:center;gap:12px}.audio-controls button{border:0;background:none;color:var(--red);font-size:18px;padding:7px}.audio-controls audio{width:100%;height:40px;min-width:0}.playing-index{color:var(--muted);font-size:12px;text-align:right}dialog{max-width:min(480px,90vw);background:#212120;color:#eee;border:1px solid #666;border-radius:5px;padding:30px}dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.dialog-heading h2{font-size:23px;margin:0}.dialog-heading button{background:none;border:0;color:#ddd;font-size:28px}dialog label{display:block;margin-bottom:10px;font-size:14px}dialog input{width:100%;padding:12px;border:1px solid #777;background:#141414;color:#fff}dialog p{font-size:13px;color:var(--muted);line-height:1.8}#saveError{color:#ff8f7d}.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}[hidden]{display:none!important}@media(min-width:1500px){.hero{gap:65px;padding-top:58px;padding-bottom:62px}.cat-art{min-height:520px}}@media(max-width:1050px){header{gap:35px}.header-note{display:none}.hero{gap:28px}.hero h1{font-size:47px}.cat-art{min-height:425px}.button-note{display:block;margin:13px 0 0}.hero-bottom{margin-top:27px}.cat-caption-title{font-size:34px}.about{grid-template-columns:1fr 1.6fr}.about>div,.signature{grid-column:2}.audio-bar{grid-template-columns:1fr 1.3fr;gap:20px}.playing-index{display:none}}@media(max-width:700px){body{padding-bottom:152px}header{height:83px;gap:12px;justify-content:space-between}.brand{font-size:23px;gap:7px}.brand-icon{width:27px;height:27px}.brand-sub{font-size:12px}nav{gap:15px;font-size:12px}.hero{grid-template-columns:1fr;padding-top:29px;padding-bottom:34px;gap:28px}.hero h1{font-size:clamp(40px,10.5vw,62px);letter-spacing:-2px;margin:23px 0 19px}.hero-copy>p{font-size:14px}.button-note{display:inline;margin-left:15px}.hero-bottom{margin-top:28px}.cat-art{min-height:370px;aspect-ratio:1.25}.cat-art img{object-position:50% 40%}.cat-caption-title{font-size:37px}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 15px}.section-heading{display:block}.search-label{display:block;margin-top:19px}.search-label input{width:100%}.video-meta{gap:5px;margin-top:10px}.video-meta h3{font-size:14px}.rename-button{font-size:18px}.card-play{display:none}.length{font-size:11px;right:7px;bottom:7px}.about{grid-template-columns:1fr;gap:22px;padding:34px 0}.about>div,.signature{grid-column:1}.about h2{font-size:27px}.about p{font-size:14px}footer>span{display:none}footer .brand{font-size:22px}.audio-bar{grid-template-columns:1fr auto;gap:8px;padding:12px 5%}.audio-track img{width:36px;height:36px}.audio-track strong{font-size:13px}.audio-track span{margin-top:2px;font-size:11px}.audio-controls{grid-column:1/-1;grid-row:2}.audio-controls audio{height:36px}.audio-controls button{padding:5px 9px}.playing-index{display:block;font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.7px}}@media(max-width:360px){header .brand-sub{display:none}.video-grid{grid-template-columns:1fr}.button-note{display:block;margin:13px 0 0}.cat-art{min-height:330px}.cat-caption-title{font-size:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{padding-bottom:184px}.owner-toolbar{display:flex;gap:18px;align-items:center;padding:14px 0 0;font-size:12px;color:#aaa}.owner-toolbar>span:first-child{color:#db716a}.owner-toolbar button{border:1px solid #555;color:#ddd;background:#202020;padding:6px 10px;border-radius:3px;font-size:12px}.owner-toolbar>span:last-child{margin-left:auto;font-size:11px}.section-note{font-size:13px;color:var(--muted);margin:0 0 3px}.card-info{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--muted)}.story-button{font-size:12px;color:#b5b5b1;background:none;border:0;padding:0}.story-button:hover{color:var(--red)}.artist-section{grid-template-columns:1fr 1.4fr}.artist-section h2{font-size:30px;margin:17px 0 24px}.artist-section .signature{display:block}.artist-copy h3{font-size:15px;color:#ddd;margin:0 0 14px}.artist-copy p{white-space:pre-wrap;line-height:2;font-size:15px;margin-bottom:30px}.artist-copy blockquote{border-left:2px solid var(--red);padding-left:20px;margin:0;color:#bbb;white-space:pre-wrap;font-size:16px;line-height:1.9}.artist-section .artist-copy{grid-column:auto}.radio-player{position:fixed;left:0;right:0;bottom:0;z-index:8;min-height:155px;background:linear-gradient(150deg,#242424,#131313 40%,#202020);border-top:2px solid #4c4c49;box-shadow:0 -10px 40px #0007;display:grid;grid-template-columns:110px 100px 1fr;align-items:center;gap:24px;padding:17px 5%}.radio-brand>span{font:20px Impact,'Arial Narrow',sans-serif;color:#e2e2df;letter-spacing:1.5px}.radio-brand>small{display:block;font-size:8px;letter-spacing:1.3px;color:#aaa;margin-top:7px}.tuner-knob{position:relative;width:90px;height:90px;border-radius:50%;cursor:grab;touch-action:none;user-select:none;filter:drop-shadow(0 5px 5px #0008)}.tuner-knob:active{cursor:grabbing}.gear{width:100%;height:100%;animation:gear-spin 18s linear infinite;animation-play-state:paused}.is-playing .gear{animation-play-state:running}.dial-pointer{position:absolute;left:calc(50% - 2px);top:12px;height:33px;width:4px;background:linear-gradient(var(--red) 0 9px,transparent 9px);transform-origin:center 33px;pointer-events:none}.dial-label{position:absolute;top:39px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:1.5px;color:#bcbcb8;pointer-events:none}.radio-main{min-width:0}.radio-display{display:flex;gap:18px;align-items:center;background:#120d0c;border:1px solid #34221f;padding:8px 13px;box-shadow:inset 0 0 14px #000;min-height:36px}.radio-display>span:first-child{font-size:14px;color:#ed7766;white-space:nowrap;font-family:monospace;text-shadow:0 0 8px #bf3b2680}.radio-display strong{font-size:14px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;color:#f0c1b7}.radio-display #audioStatus{font-size:10px;letter-spacing:1px;color:#a78073;white-space:nowrap}.is-playing #audioStatus{color:#ff624b;text-shadow:0 0 8px #f64427}.tuning-scale{height:38px;position:relative;margin:3px 0 5px}.scale-numbers{display:flex;justify-content:space-between;font:9px monospace;color:#8c8984;padding:0 6px}.tick-strip{position:absolute;left:7px;right:7px;bottom:7px;height:12px;background:repeating-linear-gradient(90deg,#74716b 0 1px,transparent 1px 10px);opacity:.65}.tuning-scale input{position:absolute;left:0;bottom:0;width:100%;margin:0;height:29px;background:transparent;appearance:none;cursor:ew-resize}.tuning-scale input::-webkit-slider-runnable-track{background:transparent;height:24px}.tuning-scale input::-webkit-slider-thumb{appearance:none;height:24px;width:4px;background:var(--red);border-radius:0;box-shadow:0 0 7px #ff382a88}.tuning-scale input::-moz-range-thumb{height:24px;width:4px;background:var(--red);border:0;border-radius:0}.radio-transport{display:flex;align-items:center;gap:13px}.radio-transport button{padding:5px 8px;border:0;background:none;color:#bbb;font-size:11px}.radio-transport button:hover{color:var(--red)}.radio-transport .radio-play{width:33px;height:27px;border:1px solid #86382f;border-radius:2px;background:#882820;color:white;font-size:13px}.radio-transport>span{font:11px monospace;color:#aaa;white-space:nowrap}.radio-transport input[type=range]{min-width:0;accent-color:var(--red);height:4px;cursor:pointer}#seek{flex:1;width:100%}.volume-label{display:flex;align-items:center;gap:8px;color:#999;font:10px monospace;margin-left:12px}.volume-label input{width:75px}#audio{display:none}dialog textarea{width:100%;padding:12px;color:#eee;background:#141414;border:1px solid #777;font:14px/1.8 'Noto Sans SC',sans-serif;resize:vertical}dialog label{margin-top:18px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px}.checkbox-label input{width:auto;accent-color:var(--red)}#storyText{white-space:pre-wrap;max-height:50vh;overflow-y:auto;color:#ccc;font-size:15px}#profileError{color:#ff8f7d}dialog{max-height:85vh;overflow:auto;width:480px}.dialog-heading h2{overflow-wrap:anywhere}@keyframes gear-spin{to{transform:rotate(360deg)}}@media(max-width:900px){.radio-player{grid-template-columns:82px 1fr;gap:18px;padding:15px 5%}.radio-brand{display:none}.tuner-knob{width:78px;height:78px}.dial-pointer{top:6px}.dial-label{top:34px}.volume-label{margin-left:3px}.volume-label input{width:55px}}@media(max-width:700px){body{padding-bottom:190px}.owner-toolbar{font-size:11px;flex-wrap:wrap;gap:9px}.owner-toolbar>span:last-child{margin-left:0;flex-basis:100%;font-size:10px}.radio-player{grid-template-columns:60px 1fr;gap:12px;padding:13px 4%;min-height:155px}.tuner-knob{width:60px;height:60px}.dial-label{top:26px;font-size:7px}.dial-pointer{top:5px;height:25px;transform-origin:center 25px;width:3px;left:calc(50% - 1.5px)}.radio-display{gap:9px;padding:8px;min-height:43px}.radio-display strong{font-size:12px}.radio-display>span:first-child{font-size:11px}.radio-display #audioStatus{display:none}.radio-transport{gap:4px}.radio-transport button{padding:5px}.radio-transport .radio-play{width:29px;flex:none}.radio-transport>span{font-size:9px}.volume-label{display:none}.artist-section{grid-template-columns:1fr}.artist-section .artist-copy{grid-column:1}.section-note{margin-top:16px;font-size:12px}.artist-section h2{font-size:27px}.card-info{flex-wrap:wrap}.story-button{font-size:11px}header .brand-sub{display:none}header nav{gap:17px}.radio-brand>small{font-size:9px}}@media(prefers-reduced-motion:reduce){.gear{animation:none!important}}
/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .72s ease-in-out infinite alternate}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .34s ease-in-out infinite alternate}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{from{transform:translate(-2px,-3px) rotate(-.3deg) scale(1.01)}to{transform:translate(2px,-7px) rotate(.35deg) scale(1.022)}}
@keyframes cat-roar{from{transform:translate(-4px,-5px) rotate(-.65deg) scale(1.025)}to{transform:translate(4px,-10px) rotate(.7deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Three aligned performance frames: the stage stays fixed while the cat acts. */
.cat-art .cat-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;filter:none!important;transition:opacity .12s linear;animation:none}
.cat-frame-1{opacity:1}.cat-frame-2,.cat-frame-3{opacity:0}
.cat-art[data-energy=groove] .cat-frame-1{opacity:.08}
.cat-art[data-energy=groove] .cat-frame-2{opacity:1}
.cat-art[data-energy=roar] .cat-frame-1{opacity:0}
.cat-art[data-energy=roar] .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar] .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}
@keyframes frame-down{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes frame-up{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cat-art[data-energy=roar] .cat-frame-2{animation:none;opacity:0}.cat-art[data-energy=roar] .cat-frame-3{animation:none;opacity:1}}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Three aligned performance frames: the stage stays fixed while the cat acts. */
.cat-art .cat-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;filter:none!important;transition:opacity .12s linear;animation:none}
.cat-frame-1{opacity:1}.cat-frame-2,.cat-frame-3{opacity:0}
.cat-art[data-energy=groove] .cat-frame-1{opacity:.08}
.cat-art[data-energy=groove] .cat-frame-2{opacity:1}
.cat-art[data-energy=roar] .cat-frame-1{opacity:0}
.cat-art[data-energy=roar] .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar] .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}
@keyframes frame-down{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes frame-up{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cat-art[data-energy=roar] .cat-frame-2{animation:none;opacity:0}.cat-art[data-energy=roar] .cat-frame-3{animation:none;opacity:1}}

/* Performance runs only while the listener is actively moving the tuner. */
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-1{opacity:1}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-2,.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-3{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning):before{animation:none}
.cat-art[data-energy=roar].is-tuning .cat-frame-1{opacity:0}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Three aligned performance frames: the stage stays fixed while the cat acts. */
.cat-art .cat-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;filter:none!important;transition:opacity .12s linear;animation:none}
.cat-frame-1{opacity:1}.cat-frame-2,.cat-frame-3{opacity:0}
.cat-art[data-energy=groove] .cat-frame-1{opacity:.08}
.cat-art[data-energy=groove] .cat-frame-2{opacity:1}
.cat-art[data-energy=roar] .cat-frame-1{opacity:0}
.cat-art[data-energy=roar] .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar] .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}
@keyframes frame-down{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes frame-up{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cat-art[data-energy=roar] .cat-frame-2{animation:none;opacity:0}.cat-art[data-energy=roar] .cat-frame-3{animation:none;opacity:1}}

/* Performance runs only while the listener is actively moving the tuner. */
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-1,.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-2{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-3{opacity:1;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning):before{animation:none}
.cat-art[data-energy=roar].is-tuning .cat-frame-1{opacity:0}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Three aligned performance frames: the stage stays fixed while the cat acts. */
.cat-art .cat-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;filter:none!important;transition:opacity .12s linear;animation:none}
.cat-frame-1{opacity:1}.cat-frame-2,.cat-frame-3{opacity:0}
.cat-art[data-energy=groove] .cat-frame-1{opacity:.08}
.cat-art[data-energy=groove] .cat-frame-2{opacity:1}
.cat-art[data-energy=roar] .cat-frame-1{opacity:0}
.cat-art[data-energy=roar] .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar] .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}
@keyframes frame-down{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes frame-up{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cat-art[data-energy=roar] .cat-frame-2{animation:none;opacity:0}.cat-art[data-energy=roar] .cat-frame-3{animation:none;opacity:1}}

/* Performance runs only while the listener is actively moving the tuner. */
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-1,.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-2{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-3{opacity:1;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning):before{animation:none}
.cat-art[data-energy=roar].is-tuning .cat-frame-1{opacity:0}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}

/* Faster tuner movement produces faster headbanging and strumming. */
.cat-art{--performance-speed:.48s}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation-duration:var(--performance-speed)}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation-duration:var(--performance-speed)}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Three aligned performance frames: the stage stays fixed while the cat acts. */
.cat-art .cat-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;filter:none!important;transition:opacity .12s linear;animation:none}
.cat-frame-1{opacity:1}.cat-frame-2,.cat-frame-3{opacity:0}
.cat-art[data-energy=groove] .cat-frame-1{opacity:.08}
.cat-art[data-energy=groove] .cat-frame-2{opacity:1}
.cat-art[data-energy=roar] .cat-frame-1{opacity:0}
.cat-art[data-energy=roar] .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar] .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}
@keyframes frame-down{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes frame-up{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cat-art[data-energy=roar] .cat-frame-2{animation:none;opacity:0}.cat-art[data-energy=roar] .cat-frame-3{animation:none;opacity:1}}

/* Performance runs only while the listener is actively moving the tuner. */
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-1,.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-2{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-3{opacity:1;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning):before{animation:none}
.cat-art[data-energy=roar].is-tuning .cat-frame-1{opacity:0}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}

/* Faster tuner movement produces faster headbanging and strumming. */
.cat-art{--performance-speed:.48s}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation-duration:var(--performance-speed)}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation-duration:var(--performance-speed)}

/* Stable-camera six-frame concert loop; only performers, drums, smoke and lights change. */
.cat-art .cat-frame{transform:none!important;object-position:center!important}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-6{opacity:1}
.cat-art[data-energy=roar].is-tuning .cat-frame{opacity:0;animation-duration:var(--performance-speed);animation-timing-function:steps(1,end);animation-iteration-count:infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation-name:concert-f2}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation-name:concert-f3}
.cat-art[data-energy=roar].is-tuning .cat-frame-4{animation-name:concert-f4}
.cat-art[data-energy=roar].is-tuning .cat-frame-5{animation-name:concert-f5}
.cat-art[data-energy=roar].is-tuning .cat-frame-6{animation-name:concert-f6}
@keyframes concert-f2{0%,11.9%,87.6%,100%{opacity:1}12%,87.5%{opacity:0}}
@keyframes concert-f3{0%,11.9%,25%,74.9%,87.6%,100%{opacity:0}12%,24.9%,75%,87.5%{opacity:1}}
@keyframes concert-f4{0%,24.9%,37.5%,62.4%,75%,100%{opacity:0}25%,37.4%,62.5%,74.9%{opacity:1}}
@keyframes concert-f5{0%,37.4%,49%,50.9%,62.5%,100%{opacity:0}37.5%,48.9%,51%,62.4%{opacity:1}}
@keyframes concert-f6{0%,48.9%,51%,100%{opacity:0}49%,50.9%{opacity:1}}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Three aligned performance frames: the stage stays fixed while the cat acts. */
.cat-art .cat-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;filter:none!important;transition:opacity .12s linear;animation:none}
.cat-frame-1{opacity:1}.cat-frame-2,.cat-frame-3{opacity:0}
.cat-art[data-energy=groove] .cat-frame-1{opacity:.08}
.cat-art[data-energy=groove] .cat-frame-2{opacity:1}
.cat-art[data-energy=roar] .cat-frame-1{opacity:0}
.cat-art[data-energy=roar] .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar] .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}
@keyframes frame-down{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes frame-up{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cat-art[data-energy=roar] .cat-frame-2{animation:none;opacity:0}.cat-art[data-energy=roar] .cat-frame-3{animation:none;opacity:1}}

/* Performance runs only while the listener is actively moving the tuner. */
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-1,.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-2{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-3{opacity:1;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning):before{animation:none}
.cat-art[data-energy=roar].is-tuning .cat-frame-1{opacity:0}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}

/* Faster tuner movement produces faster headbanging and strumming. */
.cat-art{--performance-speed:.48s}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation-duration:var(--performance-speed)}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation-duration:var(--performance-speed)}

/* Stable-camera six-frame concert loop; only performers, drums, smoke and lights change. */
.cat-art .cat-frame{transform:none!important;object-position:center!important}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-6{opacity:1}
.cat-art[data-energy=roar].is-tuning .cat-frame{opacity:0;animation-duration:var(--performance-speed);animation-timing-function:steps(1,end);animation-iteration-count:infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation-name:concert-f2}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation-name:concert-f3}
.cat-art[data-energy=roar].is-tuning .cat-frame-4{animation-name:concert-f4}
.cat-art[data-energy=roar].is-tuning .cat-frame-5{animation-name:concert-f5}
.cat-art[data-energy=roar].is-tuning .cat-frame-6{animation-name:concert-f6}
@keyframes concert-f2{0%,11.9%,87.6%,100%{opacity:1}12%,87.5%{opacity:0}}
@keyframes concert-f3{0%,11.9%,25%,74.9%,87.6%,100%{opacity:0}12%,24.9%,75%,87.5%{opacity:1}}
@keyframes concert-f4{0%,24.9%,37.5%,62.4%,75%,100%{opacity:0}25%,37.4%,62.5%,74.9%{opacity:1}}
@keyframes concert-f5{0%,37.4%,49%,50.9%,62.5%,100%{opacity:0}37.5%,48.9%,51%,62.4%{opacity:1}}
@keyframes concert-f6{0%,48.9%,51%,100%{opacity:0}49%,50.9%{opacity:1}}

/* The tuner directly scrubs the performance frames, avoiding timer-based dropped frames. */
.cat-art[data-energy=roar].is-tuning .cat-frame{opacity:0!important;animation:none!important}
.cat-art.is-tuning[data-frame="2"] .cat-frame-2,.cat-art.is-tuning[data-frame="3"] .cat-frame-3,.cat-art.is-tuning[data-frame="4"] .cat-frame-4,.cat-art.is-tuning[data-frame="5"] .cat-frame-5,.cat-art.is-tuning[data-frame="6"] .cat-frame-6,.cat-art.is-tuning[data-frame="7"] .cat-frame-7,.cat-art.is-tuning[data-frame="8"] .cat-frame-8,.cat-art.is-tuning[data-frame="9"] .cat-frame-9{opacity:1!important}

/* Integrated image radio; the horizontal tuning scale is the only song selector. */
body{padding-bottom:0!important}
.hero{position:relative!important}
.hero>.radio-player{position:absolute;left:24px;right:24px;bottom:70px;z-index:4;width:auto;min-height:128px;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:14px 18px;background:linear-gradient(145deg,#171717ed,#090909e8 58%,#24100eed);border:1px solid #73615e;border-top:1px solid #9a827e;box-shadow:0 16px 40px #000c,inset 0 1px #ffffff12;backdrop-filter:blur(13px)}
.hero>.radio-player .tuner-knob{display:none}
.hero>.radio-player .radio-brand{padding-left:4px}
.hero>.radio-player .radio-brand>span{font-size:19px}
.hero>.radio-player .radio-brand>small{line-height:1.55}
.hero .cat-caption{bottom:218px}
.hero .cat-caption-bottom{display:none}
.cat-art{--tune:0}
.cat-art:before{content:'';position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at calc(18% + var(--tune)*55%) 18%,rgba(239,34,25,calc(.06 + var(--tune)*.34)),transparent 33%);mix-blend-mode:screen;transition:background .16s linear}
.cat-art #catHero{transform:translateY(calc(var(--tune)*-5px)) rotate(calc((var(--tune) - .5)*.7deg)) scale(calc(1 + var(--tune)*.018));filter:saturate(calc(.88 + var(--tune)*.55)) contrast(calc(1 + var(--tune)*.12));transition:transform .18s ease-out,filter .18s linear}
.cat-art[data-energy=groove] #catHero{animation:cat-groove .68s ease-in-out infinite;transform-origin:58% 52%}
.cat-art[data-energy=roar] #catHero{animation:cat-roar .42s cubic-bezier(.55,.05,.45,.95) infinite;transform-origin:58% 48%}
.cat-art[data-energy=roar]:before{animation:stage-flash .7s ease-in-out infinite alternate}
.cat-art[data-energy] .art-top:after{content:'PLAY ' attr(data-level);color:#ff6a59}
@keyframes cat-groove{0%,100%{transform:translateY(-2px) rotate(-.25deg) scale(1.012)}45%{transform:translateY(2px) rotate(.35deg) scale(1.02)}70%{transform:translateY(-6px) rotate(-.15deg) scale(1.018)}}
@keyframes cat-roar{0%,100%{transform:translate(-3px,-8px) rotate(-1.2deg) scale(1.035)}28%{transform:translate(2px,7px) rotate(1deg) scale(1.045)}52%{transform:translate(4px,11px) rotate(1.7deg) scale(1.05)}72%{transform:translate(-2px,-5px) rotate(-.8deg) scale(1.04)}}
@keyframes stage-flash{from{opacity:.55}to{opacity:1}}
@media(max-width:900px){.hero>.radio-player{grid-template-columns:1fr;gap:8px}.hero>.radio-player .radio-brand{display:flex;align-items:center;gap:12px;padding-left:0}.hero>.radio-player .radio-brand>small{margin:0}}
@media(max-width:700px){.hero{padding-bottom:34px!important}.hero>.radio-player{left:10px;right:10px;bottom:44px;min-height:118px;padding:10px 11px;gap:6px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand>small{font-size:7px}.hero .cat-caption{display:none}.hero>.radio-player .tuning-scale{height:32px;margin:0}.hero>.radio-player .radio-display{min-height:34px;padding:5px 7px}.hero>.radio-player .radio-transport{margin-top:-2px}}

/* Keep the whole artwork visible: the radio is an attached console below it. */
.hero>.radio-player{position:relative;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:128px;border-top:2px solid #8f6d67;box-shadow:0 18px 38px #0009,inset 0 1px #ffffff12}
.hero .cat-caption{bottom:24px}
.hero .cat-caption-bottom{display:flex}
@media(max-width:700px){.hero>.radio-player{left:auto;right:auto;bottom:auto;margin:0;min-height:118px}.hero .cat-caption{display:block;bottom:16px}.hero .cat-caption-title{font-size:clamp(24px,7vw,38px)!important;margin-bottom:8px}.hero .cat-caption-bottom{padding-top:8px}}

/* Three aligned performance frames: the stage stays fixed while the cat acts. */
.cat-art .cat-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;filter:none!important;transition:opacity .12s linear;animation:none}
.cat-frame-1{opacity:1}.cat-frame-2,.cat-frame-3{opacity:0}
.cat-art[data-energy=groove] .cat-frame-1{opacity:.08}
.cat-art[data-energy=groove] .cat-frame-2{opacity:1}
.cat-art[data-energy=roar] .cat-frame-1{opacity:0}
.cat-art[data-energy=roar] .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar] .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}
@keyframes frame-down{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes frame-up{0%,49%{opacity:0}50%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cat-art[data-energy=roar] .cat-frame-2{animation:none;opacity:0}.cat-art[data-energy=roar] .cat-frame-3{animation:none;opacity:1}}

/* Performance runs only while the listener is actively moving the tuner. */
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-1,.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-2{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-3{opacity:1;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning):before{animation:none}
.cat-art[data-energy=roar].is-tuning .cat-frame-1{opacity:0}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation:frame-down .48s steps(1,end) infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation:frame-up .48s steps(1,end) infinite}

/* Faster tuner movement produces faster headbanging and strumming. */
.cat-art{--performance-speed:.48s}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation-duration:var(--performance-speed)}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation-duration:var(--performance-speed)}

/* Stable-camera six-frame concert loop; only performers, drums, smoke and lights change. */
.cat-art .cat-frame{transform:none!important;object-position:center!important}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame{opacity:0;animation:none}
.cat-art[data-energy=roar]:not(.is-tuning) .cat-frame-6{opacity:1}
.cat-art[data-energy=roar].is-tuning .cat-frame{opacity:0;animation-duration:var(--performance-speed);animation-timing-function:steps(1,end);animation-iteration-count:infinite}
.cat-art[data-energy=roar].is-tuning .cat-frame-2{animation-name:concert-f2}
.cat-art[data-energy=roar].is-tuning .cat-frame-3{animation-name:concert-f3}
.cat-art[data-energy=roar].is-tuning .cat-frame-4{animation-name:concert-f4}
.cat-art[data-energy=roar].is-tuning .cat-frame-5{animation-name:concert-f5}
.cat-art[data-energy=roar].is-tuning .cat-frame-6{animation-name:concert-f6}
@keyframes concert-f2{0%,11.9%,87.6%,100%{opacity:1}12%,87.5%{opacity:0}}
@keyframes concert-f3{0%,11.9%,25%,74.9%,87.6%,100%{opacity:0}12%,24.9%,75%,87.5%{opacity:1}}
@keyframes concert-f4{0%,24.9%,37.5%,62.4%,75%,100%{opacity:0}25%,37.4%,62.5%,74.9%{opacity:1}}
@keyframes concert-f5{0%,37.4%,49%,50.9%,62.5%,100%{opacity:0}37.5%,48.9%,51%,62.4%{opacity:1}}
@keyframes concert-f6{0%,48.9%,51%,100%{opacity:0}49%,50.9%{opacity:1}}

/* The radio already shows the selected song; remove the duplicate hero title row. */
.cat-caption-bottom{display:none!important}

/* The tuner directly scrubs the performance frames, avoiding timer-based dropped frames. */
.cat-art[data-energy=roar].is-tuning .cat-frame{opacity:0!important;animation:none!important}
.cat-art.is-tuning[data-frame="2"] .cat-frame-2,.cat-art.is-tuning[data-frame="3"] .cat-frame-3,.cat-art.is-tuning[data-frame="4"] .cat-frame-4,.cat-art.is-tuning[data-frame="5"] .cat-frame-5,.cat-art.is-tuning[data-frame="6"] .cat-frame-6,.cat-art.is-tuning[data-frame="7"] .cat-frame-7,.cat-art.is-tuning[data-frame="8"] .cat-frame-8,.cat-art.is-tuning[data-frame="9"] .cat-frame-9{opacity:1!important}

.language-switcher{display:flex;gap:4px;margin-left:auto;padding:3px;border:1px solid #3d3d3b;background:#181818}
.language-switcher button{border:0;background:transparent;color:#888;padding:6px 8px;font-size:10px;letter-spacing:.5px}
.language-switcher button:hover,.language-switcher button.active{background:#ec382c;color:#fff}
.language-switcher+.header-note{margin-left:0}
@media(max-width:900px){.language-switcher{margin-left:auto}.language-switcher+.header-note{display:none}}
@media(max-width:700px){header{flex-wrap:wrap;height:auto;min-height:83px;padding-top:12px;padding-bottom:12px}.language-switcher{order:4;margin-left:0}.language-switcher button{padding:5px 7px}header nav{margin-left:auto}}

/* Keep the complete performance and tuner visible together on desktop screens. */
@media(min-width:701px){
  .hero{padding-top:22px!important;padding-bottom:34px!important}
  .cat-art{aspect-ratio:auto!important;height:clamp(390px,calc(100vh - 340px),720px)!important;background:#090909!important}
  .cat-art .cat-frame{object-fit:contain!important;object-position:center!important}
  .hero>.radio-player{min-height:118px!important;padding-top:12px!important;padding-bottom:12px!important}
  .cat-caption-title{font-size:clamp(34px,4.2vw,64px)!important}
}
@media(min-width:701px) and (max-height:760px){
  .cat-art{height:390px!important}
  .hero>.radio-player{min-height:108px!important}
}

/* Keep the stage steady while giving the guitar a little player-driven motion. */
.cat-art .cat-frame{transform-origin:52% 58%;}
.cat-art .cat-frame-2{transform:scale(1.012) rotate(-.7deg)!important;}
.cat-art .cat-frame-3{transform:scale(1.018) rotate(.85deg)!important;}
.cat-art .cat-frame-4{transform:scale(1.014) rotate(-.55deg)!important;}
.cat-art .cat-frame-5{transform:scale(1.022) rotate(1deg)!important;}
.cat-art .cat-frame-6{transform:scale(1.014) rotate(-.9deg)!important;}
.cat-art .cat-frame-7{transform:scale(1.01) rotate(.45deg)!important;}
.cat-art .cat-frame-8{transform:scale(1.018) rotate(-.8deg)!important;}
.cat-art .cat-frame-9{transform:scale(1.014) rotate(.75deg)!important;}
.cat-art.is-tuning .cat-frame{transition:opacity var(--frame-blend,.16s) cubic-bezier(.22,.72,.24,1),transform var(--frame-blend,.16s) cubic-bezier(.22,.72,.24,1)!important;}
.cat-art.is-tuning{filter:saturate(1.12) contrast(1.04);}
/* The camera and concert background stay locked while the performance frames change. */
.cat-art.is-tuning{filter:saturate(1.12) contrast(1.04)!important;}
.cat-art.is-tuning .cat-frame{transform:none!important;}
/* Never expose the dark base layer between performance frames. */
.cat-art.is-tuning .cat-frame{transition:none!important;}

/* Keep the mobile stage compositor-friendly while tuning. */
@media(max-width:700px){.cat-art{contain:paint;will-change:contents}.cat-art .cat-frame{will-change:opacity}.hero>.radio-player{contain:layout paint}}

/* A wide grab area keeps mobile tuning easy while the center line stays exact. */
.hero>.radio-player .tuning-scale input{height:44px;bottom:-9px;touch-action:none}
.hero>.radio-player .tuning-scale input::-webkit-slider-runnable-track{height:44px}
.hero>.radio-player .tuning-scale input::-webkit-slider-thumb{width:30px;height:38px;margin-top:3px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg transform='rotate(180 12 12)'%3E%3Cpath d='M12 2C6 2 3 4.7 3.5 9.2c.5 4.2 5.4 10.8 8.5 12.8 3.1-2 8-8.6 8.5-12.8C21 4.7 18 2 12 2Z' fill='%23ef4438' stroke='%23ff8a7d' stroke-width='1'/%3E%3Cpath d='M12 6v10' stroke='%237c1711' stroke-width='1.5' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E") center/22px 22px no-repeat;box-shadow:none}
.hero>.radio-player .tuning-scale input::-moz-range-track{height:44px;background:transparent}
.hero>.radio-player .tuning-scale input::-moz-range-thumb{width:30px;height:38px;border:0;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg transform='rotate(180 12 12)'%3E%3Cpath d='M12 2C6 2 3 4.7 3.5 9.2c.5 4.2 5.4 10.8 8.5 12.8 3.1-2 8-8.6 8.5-12.8C21 4.7 18 2 12 2Z' fill='%23ef4438' stroke='%23ff8a7d' stroke-width='1'/%3E%3Cpath d='M12 6v10' stroke='%237c1711' stroke-width='1.5' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E") center/22px 22px no-repeat;box-shadow:none}
@media(max-width:700px){.hero>.radio-player .tuning-scale{height:42px}.hero>.radio-player .tuning-scale input{height:52px;bottom:-12px}.hero>.radio-player .tuning-scale input::-webkit-slider-runnable-track{height:52px}.hero>.radio-player .tuning-scale input::-webkit-slider-thumb{width:38px;height:44px;margin-top:4px;background-size:22px 22px}.hero>.radio-player .tuning-scale input::-moz-range-track{height:52px}.hero>.radio-player .tuning-scale input::-moz-range-thumb{width:38px;height:44px;background-size:22px 22px}}

/* Compact record shelf inspired by a modern music library. */
.row-duration{display:none}
#music .video-grid{display:block;counter-reset:music-row;border-top:1px solid #2f2f2f}
#music .video-card{counter-increment:music-row;display:grid;grid-template-columns:34px 58px minmax(0,1fr) minmax(190px,auto);gap:15px;align-items:center;padding:10px 12px;border-bottom:1px solid #292929;transition:background .18s}
#music .video-card:hover{background:#ffffff08}
#music .video-card:before{content:counter(music-row,decimal-leading-zero);font:11px/1 'Space Grotesk',sans-serif;color:#777;text-align:center}
#music .thumbnail{width:58px;height:58px;aspect-ratio:1;border:0;border-radius:5px;grid-column:2;grid-row:1;box-shadow:0 3px 14px #0008}
#music .thumbnail img{width:100%;height:100%}
#music .thumbnail .card-play{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:28px;height:28px;opacity:0;transition:opacity .18s}
#music .video-card:hover .card-play,#music .thumbnail:focus-visible .card-play,#music .thumbnail.is-current .card-play{opacity:1}
#music .thumbnail .length{display:none}
#music .video-meta{grid-column:3;grid-row:1;margin:0;align-items:center}
#music .video-meta h3{font-size:15px;line-height:1.45}
#music .card-info{grid-column:4;grid-row:1;margin:0;display:grid;grid-template-columns:minmax(90px,1fr) auto 48px;gap:18px;align-items:center;white-space:nowrap}
#music .card-info>span:first-child{overflow:hidden;text-overflow:ellipsis}
#music .row-duration{display:block;text-align:right;font:12px/1 monospace;color:#8d8d89}
#music .story-button{text-align:left}
@media(max-width:700px){#music .video-card{grid-template-columns:24px 50px minmax(0,1fr) 42px;gap:10px;padding:9px 3px}#music .thumbnail{width:50px;height:50px}#music .video-meta{grid-column:3}#music .card-info{grid-column:4;display:block;text-align:right}#music .card-info>span:first-child,#music .story-button{display:none}#music .row-duration{font-size:11px}#music .video-meta h3{font-size:13px}}

/* Minimal transport: tuning plus one play/pause control. */
.hero>.radio-player{grid-template-columns:150px minmax(0,1fr)!important}
.hero>.radio-player .radio-brand{display:flex!important;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px}
.hero>.radio-player .radio-brand .radio-play{display:grid;place-items:center;width:48px;height:38px;padding:0;border:1px solid #a74439;border-radius:3px;background:#8f2c24;color:#fff;font-size:16px;box-shadow:inset 0 1px #ffffff18,0 5px 16px #0007}
.hero>.radio-player .radio-brand .radio-play:hover{background:#bd372d}
.hero>.radio-player .radio-transport{display:none!important}
@media(max-width:700px){.hero>.radio-player{grid-template-columns:92px minmax(0,1fr)!important;gap:12px}.hero>.radio-player .radio-brand{gap:8px}.hero>.radio-player .radio-brand>span{font-size:15px}.hero>.radio-player .radio-brand .radio-play{width:43px;height:34px;font-size:14px}}

/* METAL CAT is the brand; MetalCat's is the signature. */
header .brand,footer .brand{font-size:14px;font-weight:600;letter-spacing:.2px;gap:9px;white-space:nowrap}
header .brand-sub,footer .brand-sub{font-size:29px;font-weight:800;letter-spacing:-.8px;color:#efefec}
@media(max-width:700px){header .brand,footer .brand{font-size:11px;gap:6px}header .brand-sub,footer .brand-sub{display:inline!important;font-size:21px;letter-spacing:-.4px}}
.artist-section .artist-copy{grid-template-columns:minmax(0,1fr)!important;max-width:920px}
.artist-section .artist-bio p{max-width:78ch}
.delete-button{border:0;background:none;color:#777;font-size:21px;line-height:1;padding:0 4px}.delete-button:hover{color:#ff5145}.video-meta .rename-button,.video-meta .delete-button{flex:none}
#music .card-info{grid-template-columns:minmax(90px,1fr) 48px}

/* Unified Metal Cat artwork for tracks without a supplied cover. */
.thumbnail.no-cover{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 76% 20%,#e13a2b55,transparent 28%),linear-gradient(145deg,#2b0c0a,#0b0b0b 55%,#1d1d1d);border:1px solid #4a2420}
.thumbnail.no-cover:before,.thumbnail.no-cover:after{content:'';position:absolute;width:140%;height:1px;background:#ef443855;transform:rotate(-36deg)}
.thumbnail.no-cover:after{transform:rotate(36deg);opacity:.45}
.cover-monogram{position:relative;z-index:1;font:900 clamp(16px,3vw,36px)/1 Impact,'Arial Narrow',sans-serif;letter-spacing:1px;color:#f1efea;text-shadow:3px 3px 0 #9f2119}
.cover-brand{position:absolute;z-index:1;left:7px;bottom:5px;color:#ef6a5f;font:7px/1 'Space Grotesk',sans-serif;letter-spacing:1px}

/* Make the active song unmistakable in the record shelf. */
.playing-bars{display:none}
#music .video-card.is-current{position:relative;background:linear-gradient(90deg,#37100e88,transparent 72%)}
#music .video-card.is-current:after{content:'';position:absolute;inset:8px auto 8px 0;width:3px;background:var(--red);box-shadow:0 0 10px #ef4438}
#music .video-card.is-current .track-title{color:#ff7064}
#music .video-card.is-current .playing-bars{grid-column:1;grid-row:1;display:flex;align-items:center;justify-content:center;gap:2px;height:18px}
#music .video-card.is-current .playing-bars i{display:block;width:2px;height:5px;background:#ef4438;border-radius:2px}
.audio-is-playing #music .video-card.is-current .playing-bars i{animation:meter .7s ease-in-out infinite alternate}.audio-is-playing #music .video-card.is-current .playing-bars i:nth-child(2){animation-delay:-.35s}.audio-is-playing #music .video-card.is-current .playing-bars i:nth-child(3){animation-delay:-.18s}
@keyframes meter{0%{height:4px}55%{height:16px}100%{height:8px}}

/* Mobile uses light WebP frames and a shorter concert stage; desktop stays full resolution. */
@media(max-width:700px){.cat-art{height:clamp(320px,48vh,390px)!important;min-height:320px!important;background-image:linear-gradient(90deg,rgba(3,3,3,.78),rgba(30,0,0,.48) 28%,rgba(30,0,0,.48) 72%,rgba(3,3,3,.78)),url('mobile/cat-performance-roar.webp')!important}.cat-caption-title{font-size:clamp(25px,8vw,38px)!important}.hero>.radio-player{min-height:104px!important;padding-top:9px!important;padding-bottom:9px!important}}

/* Radio signal feedback follows the pick without moving the layout. */
.hero>.radio-player{--tune:0%}
.hero>.radio-player .tuning-scale:before{content:'';position:absolute;z-index:0;left:0;bottom:12px;width:var(--tune);height:2px;background:linear-gradient(90deg,#661a15,#ef4438);box-shadow:0 0 8px #ef443899;pointer-events:none}
.hero>.radio-player .tuning-scale:after{content:'';position:absolute;z-index:0;left:var(--tune);bottom:6px;width:16px;height:16px;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle,#ff7769 0 10%,#ef443866 22%,transparent 68%);filter:blur(.3px);pointer-events:none}
.hero>.radio-player .tick-strip{transition:filter .2s,opacity .2s}
.hero>.radio-player.is-tuning .tick-strip{opacity:1;filter:drop-shadow(0 0 3px #ef4438);animation:signal-pulse .38s ease-in-out infinite alternate}
.hero>.radio-player.is-tuning .radio-display{border-color:#79342d;box-shadow:inset 0 0 14px #000,0 0 14px #ef443822}
.hero>.radio-player.is-playing .radio-play{box-shadow:inset 0 1px #ffffff22,0 0 14px #ef443866}
@keyframes signal-pulse{from{opacity:.55}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.hero>.radio-player.is-tuning .tick-strip{animation:none}}

/* Freeze the exact performance frame visible when the tuner is released. */
.cat-art.is-frozen .cat-frame{opacity:0!important;animation:none!important}
.cat-art.is-frozen[data-frame="2"] .cat-frame-2,.cat-art.is-frozen[data-frame="3"] .cat-frame-3,.cat-art.is-frozen[data-frame="4"] .cat-frame-4,.cat-art.is-frozen[data-frame="5"] .cat-frame-5,.cat-art.is-frozen[data-frame="6"] .cat-frame-6,.cat-art.is-frozen[data-frame="7"] .cat-frame-7,.cat-art.is-frozen[data-frame="8"] .cat-frame-8,.cat-art.is-frozen[data-frame="9"] .cat-frame-9{opacity:1!important}

/* Editorial section rhythm, like a metal record sleeve. */
.tracks-section>.section-heading .eyebrow,.artist-section>.eyebrow{display:inline-flex;align-items:center;gap:10px;color:#c85b52;font-weight:700;letter-spacing:2.3px}
.tracks-section>.section-heading .eyebrow:after,.artist-section>.eyebrow:after{content:'';width:46px;height:1px;background:#7b2d27}
.artist-section>.eyebrow{margin-bottom:28px}
.artist-section .artist-bio p#bioText{font-size:16px;line-height:2.05;color:#aaa9a5}
.artist-section .artist-bio p#bioText:first-letter{float:left;margin:8px 10px 0 0;color:#ef4438;font:700 56px/.72 Georgia,serif}
.artist-section .about-quote{margin:30px 0 0!important;padding:18px 0 18px 22px;border-left:3px solid #ef4438;color:#eee!important;font:italic clamp(20px,2.4vw,30px)/1.55 Georgia,'Noto Sans SC',serif;max-width:760px!important}
.about-comic{position:relative;display:block;margin:0 0 34px;border:1px solid #3a302d;background:#15100f;overflow:hidden;box-shadow:0 18px 42px #0008}
.about-comic img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover}
.comic-copy{position:absolute;left:3%;bottom:5%;width:42%;box-sizing:border-box;padding:12px 16px;background:linear-gradient(90deg,#080808e8,#080808aa 78%,transparent);border-left:3px solid #ef4438;text-shadow:0 2px 8px #000;color:#f5f2ed;backdrop-filter:blur(2px)}
.comic-copy-night{left:53%;background:linear-gradient(90deg,#260605e8,#160505ad 78%,transparent)}
.comic-copy strong{display:block;margin-bottom:5px;color:#ff5448;font:700 11px/1.2 'Space Grotesk',sans-serif;letter-spacing:2px;text-transform:uppercase}
.comic-copy span{display:block;font:600 clamp(12px,1.3vw,17px)/1.55 'Noto Sans SC',sans-serif}
.artist-section .artist-copy{max-width:100%!important}.artist-section .artist-bio{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:clamp(28px,6vw,90px);align-items:start}.artist-section .artist-bio h3{grid-column:1/-1}.artist-section .artist-bio p#bioText{margin:0!important}.artist-section .about-quote{margin:0!important}

/* A compact player follows the listener after the full radio leaves view. */
.mini-player{position:fixed;z-index:20;left:50%;bottom:18px;transform:translateX(-50%);width:min(760px,calc(100% - 28px));display:grid;grid-template-columns:42px auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 12px;background:linear-gradient(100deg,#1c100fef,#0d0d0df5 55%,#1b0c0bef);border:1px solid #63302b;box-shadow:0 12px 42px #000d,0 0 22px #ef44381c;backdrop-filter:blur(16px)}
.mini-player[hidden]{display:none!important}.mini-play{width:38px;height:34px;border:1px solid #a74439;border-radius:3px;background:#962d25;color:#fff}.mini-label{color:#ef5b4e;font:11px/1 'Space Grotesk',sans-serif;letter-spacing:1.4px;white-space:nowrap}.mini-player strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.mini-back{border:0;background:none;color:#aaa;font-size:11px;white-space:nowrap}.mini-back:hover{color:#ef5b4e}
@media(max-width:700px){.mini-player{bottom:10px;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;padding:8px 9px}.mini-label{display:none}.mini-back{font-size:0}.mini-back:after{content:'↑ FM';font-size:10px}.about-comic{margin-bottom:26px}.about-comic img{aspect-ratio:2/1}.comic-copy{left:2%;bottom:3%;width:46%;padding:7px 8px;border-left-width:2px}.comic-copy-night{left:52%}.comic-copy strong{margin-bottom:3px;font-size:8px;letter-spacing:1.2px}.comic-copy span{font-size:10px;line-height:1.4}.artist-section .artist-bio{grid-template-columns:1fr;gap:24px}.artist-section .artist-bio h3{grid-column:1}.artist-section .artist-bio p#bioText{font-size:14px}.artist-section .artist-bio p#bioText:first-letter{font-size:46px}.artist-section .about-quote{font-size:20px}}

/* Mobile is a focused player: keep the stage and tuner, defer the editorial sections. */
@media(max-width:700px){
  html,body{height:100%;overflow:hidden}
  body{overscroll-behavior:none}
  header nav a[href="#highlights"],header nav a[href="#music"],header nav a[href="#about"]{display:none}
  header{height:52px;box-sizing:border-box;justify-content:center;padding:0 12px}
  header .language-switcher{display:none!important}
  #highlights,#music,#about,footer{display:none!important}
  main{height:calc(100svh - 52px);padding:0;overflow:hidden}
  .hero{height:100%;min-height:0;box-sizing:border-box;padding:10px 12px 132px;display:flex;flex-direction:column;justify-content:center;gap:12px}
  .hero-copy{display:none}
  .cat-art{height:min(66svh,620px);min-height:0;max-height:none;border-radius:2px}
  .cat-art .art-top,.cat-art .cat-caption{display:none}
  .hero>.radio-player{position:fixed!important;z-index:30;left:0!important;right:0!important;bottom:0!important;margin:0!important;transform:none!important;width:100%!important;box-sizing:border-box;grid-template-columns:74px minmax(0,1fr)!important;gap:8px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-width:1px 0 0;box-shadow:0 -12px 30px #000d}
  .hero>.radio-player .radio-brand{gap:7px;align-items:center}
  .hero>.radio-player .radio-brand>span{font-size:11px;letter-spacing:1px;white-space:nowrap}
  .hero>.radio-player .radio-brand small{display:none}
  .hero>.radio-player .radio-brand .radio-play{width:48px;height:38px}
  .hero>.radio-player .radio-display{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:7px 9px}
  .hero>.radio-player .radio-display strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hero>.radio-player .radio-display span{font-size:10px}
  .hero>.radio-player .tuning-scale{padding-top:3px}
  .hero>.radio-player .scale-numbers{font-size:8px}
  .hero>.radio-player .tick-strip{height:22px}
  .mini-player{display:none!important}
}

/* Keep the complete performance and tuner visible together on desktop screens. */
@media(min-width:701px){
  .hero{padding-top:22px!important;padding-bottom:34px!important}
  .cat-art{aspect-ratio:auto!important;height:clamp(390px,calc(100vh - 340px),720px)!important;background-image:linear-gradient(90deg,rgba(3,3,3,.78),rgba(30,0,0,.48) 28%,rgba(30,0,0,.48) 72%,rgba(3,3,3,.78)),url('cat-performance-roar.png')!important;background-size:cover!important;background-position:center!important;background-blend-mode:multiply!important}
  .cat-art .cat-frame{object-fit:contain!important;object-position:center!important}
  .hero>.radio-player{min-height:118px!important;padding-top:12px!important;padding-bottom:12px!important}
  .cat-caption-title{font-size:clamp(34px,4.2vw,64px)!important}
}
@media(min-width:701px) and (max-height:760px){
  .cat-art{height:390px!important}
  .hero>.radio-player{min-height:108px!important}
}

/* Keep the complete performance and tuner visible together on desktop screens. */
@media(min-width:701px){
  .hero{padding-top:22px!important;padding-bottom:34px!important}
  .cat-art{aspect-ratio:auto!important;height:clamp(390px,calc(100vh - 340px),720px)!important;
    background-image:
      radial-gradient(circle at 5% 94%,#020202 0 22px,transparent 23px),
      radial-gradient(circle at 12% 98%,#030303 0 29px,transparent 30px),
      radial-gradient(circle at 20% 93%,#020202 0 19px,transparent 20px),
      radial-gradient(circle at 95% 94%,#020202 0 22px,transparent 23px),
      radial-gradient(circle at 88% 98%,#030303 0 29px,transparent 30px),
      radial-gradient(circle at 80% 93%,#020202 0 19px,transparent 20px),
      linear-gradient(68deg,transparent 0 8%,rgba(255,32,20,.34) 14%,transparent 23%),
      linear-gradient(-68deg,transparent 0 8%,rgba(255,32,20,.34) 14%,transparent 23%),
      linear-gradient(90deg,rgba(3,3,3,.76),rgba(30,0,0,.48) 28%,rgba(30,0,0,.48) 72%,rgba(3,3,3,.76)),
      url('cat-performance-roar.png')!important;
    background-size:auto,auto,auto,auto,auto,auto,100% 100%,100% 100%,100% 100%,cover!important;
    background-position:center!important;background-repeat:no-repeat!important;background-blend-mode:normal,normal,normal,normal,normal,normal,screen,screen,multiply,multiply!important}
  .cat-art.is-tuning{animation:concert-side-pulse var(--performance-speed,.48s) ease-in-out infinite alternate}
  .cat-art .cat-frame{object-fit:contain!important;object-position:center!important}
  .hero>.radio-player{min-height:118px!important;padding-top:12px!important;padding-bottom:12px!important}
  .cat-caption-title{font-size:clamp(34px,4.2vw,64px)!important}
}
@keyframes concert-side-pulse{from{filter:brightness(.9) saturate(1)}to{filter:brightness(1.1) saturate(1.18)}}
@media(min-width:701px) and (max-height:760px){
  .cat-art{height:390px!important}
  .hero>.radio-player{min-height:108px!important}
}

/* Keep the complete performance and tuner visible together on desktop screens. */
@media(min-width:701px){
  .hero{padding-top:22px!important;padding-bottom:34px!important}
  .cat-art{aspect-ratio:auto!important;height:clamp(390px,calc(100vh - 340px),720px)!important;
    background-image:
      radial-gradient(circle at 5% 94%,#020202 0 22px,transparent 23px),
      radial-gradient(circle at 12% 98%,#030303 0 29px,transparent 30px),
      radial-gradient(circle at 20% 93%,#020202 0 19px,transparent 20px),
      radial-gradient(circle at 95% 94%,#020202 0 22px,transparent 23px),
      radial-gradient(circle at 88% 98%,#030303 0 29px,transparent 30px),
      radial-gradient(circle at 80% 93%,#020202 0 19px,transparent 20px),
      linear-gradient(68deg,transparent 0 8%,rgba(255,32,20,.34) 14%,transparent 23%),
      linear-gradient(-68deg,transparent 0 8%,rgba(255,32,20,.34) 14%,transparent 23%),
      linear-gradient(90deg,rgba(3,3,3,.76),rgba(30,0,0,.48) 28%,rgba(30,0,0,.48) 72%,rgba(3,3,3,.76)),
      url('cat-performance-roar.png')!important;
    background-size:auto,auto,auto,auto,auto,auto,100% 100%,100% 100%,100% 100%,cover!important;
    background-position:center!important;background-repeat:no-repeat!important;background-blend-mode:normal,normal,normal,normal,normal,normal,screen,screen,multiply,multiply!important}
  .cat-art.is-tuning{animation:concert-side-pulse var(--performance-speed,.48s) ease-in-out infinite alternate}
  .cat-art .cat-frame{object-fit:contain!important;object-position:center!important}
  .hero>.radio-player{min-height:118px!important;padding-top:12px!important;padding-bottom:12px!important}
  .cat-caption-title{font-size:clamp(34px,4.2vw,64px)!important}
}
@keyframes concert-side-pulse{from{filter:brightness(.9) saturate(1)}to{filter:brightness(1.1) saturate(1.18)}}
.art-top,.radio-brand small{display:none!important}
.cat-art[data-energy] .art-top:after{display:none!important;content:none!important}
.artist-section{display:block!important;padding:54px 0 60px}
.artist-heading{display:flex;align-items:end;gap:22px;margin-bottom:34px}
.artist-heading h2{margin:0!important}
.artist-heading .eyebrow{margin-right:auto}
.artist-heading .signature{display:block!important;grid-column:auto;font-size:31px}
.artist-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(42px,7vw,110px);align-items:start}
.artist-copy h3{margin-bottom:16px}
.artist-copy p{margin:0!important;max-width:62ch}
.artist-copy blockquote{margin:0!important;max-width:62ch}
@media(max-width:700px){.artist-section{padding:38px 0}.artist-heading{display:block;margin-bottom:28px}.artist-heading .eyebrow{display:block;margin-bottom:12px}.artist-heading .signature{margin-top:12px}.artist-copy{grid-template-columns:1fr;gap:34px}}
@media(min-width:701px) and (max-height:760px){
  .cat-art{height:390px!important}
  .hero>.radio-player{min-height:108px!important}
}

