/* Elevation 2.3 — warm home studio. Visual changes only; no storage changes. */
:root{--bg:#100e0c;--panel:#1b1713;--gold:#86bfff;--muted:#bdb3a7;--line:#47392c;--amber:#dfac72}
body{background:var(--bg);color:#f5ecdf}
.glow{display:none}
header{height:94px;background:#080909f5;border-color:#38291d;padding-inline:4%;gap:24px}
.brand{font-size:22px;letter-spacing:.14em;gap:14px;flex-shrink:0;line-height:1.2}
.brand small{font-size:12px;letter-spacing:.39em;margin-top:5px;color:#e6d8c7}
.brandSymbol{position:relative;display:block;width:54px;height:54px;overflow:hidden;flex-shrink:0}
.brandSymbol img{position:absolute;max-width:none;width:560%;height:auto;left:-95.7%;top:-61.7%}
nav{gap:24px}nav a{color:#d6cbbb;font-size:14px}
.hero{min-height:680px;height:min(760px,57vw);padding:80px 6%;isolation:isolate;background:#100e0c}
.heroArt{opacity:1;background:url('studio-warm.png') center center/cover no-repeat;z-index:-2}
.hero:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#0b0a099c 0%,#0b0a095e 30%,transparent 62%),linear-gradient(0deg,#100e0c 0%,transparent 18%)}
.heroContent{max-width:470px;padding-bottom:45px}
.eyebrow{color:#e2b982;font-size:10px;letter-spacing:.24em}.dot{background:var(--amber);box-shadow:0 0 12px #d38f40}
.hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(58px,6.2vw,90px);letter-spacing:-.045em;line-height:1.02;margin:26px 0}
.hero h1 em{color:#f5e5cf}
.hero p{max-width:330px;color:#e4d5c1;font-size:16px;text-shadow:0 1px 5px #000;line-height:1.8}
.hero .actions{gap:12px;max-width:360px;margin-top:28px}.hero .actions a{padding:13px 18px}
.primary{background:#78b7f4;border-color:#78b7f4;border-radius:5px;color:#071523}.primary:hover{background:#a5d2ff}
.outline{border-color:#806344;border-radius:5px;color:#f2e5d4}.outline:hover{background:#d49b4920;border-color:#dab17f}
.hero .outline{background:#100e0c9e}.heroFoot{color:#c1ab8d;left:6%;right:6%;bottom:24px}
.section{padding-top:90px;scroll-margin-top:105px}.kicker{color:var(--amber);text-transform:uppercase}
.section h2,.connect h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.035em}
.sectionTop{border-color:#73523266}.track{border-color:#493626;background:linear-gradient(110deg,#211b15,#171411);border-radius:8px;padding:17px;gap:16px}
.trackInfo strong{font-size:18px;font-weight:500;letter-spacing:.01em}.trackInfo small{font-size:12px;color:#bcae9d}
.track img,.track .miniArt{border-radius:5px;background:#342618}.story summary{color:#d6b48a}.story p{color:#d2c6b8}
.lyricsText{background:#100f0d;border:1px solid #57402b;color:#f2e6d7;font-size:18px}
.track .lyricsToggle{color:#e2c5a1;border-color:#755535}.track .trackYouTubePlay{color:#f3c5a1;border-color:#956b48}.track .trackSpotifyPlay{background:#17231b;color:#b9e5cb}
.spotifyArtistPanel{background:linear-gradient(120deg,#241c14,#151a20);border-color:#775432;padding:24px 28px;margin-bottom:25px}
.spotifyArtistPanel h3{font-family:Georgia,serif;font-size:26px;color:#f0dcc0;font-weight:400}.spotifyArtistPanel>p{font-size:14px}.spotifyArtistPanel .spotifyEmbedToggle{padding:12px 18px;border-color:#86bfff}.spotifyArtistLink{font-size:12px;color:#afcceb}
.releases{gap:26px}.releases>div{min-width:0;background:#1d1813;border:1px solid #493524;border-radius:9px;overflow:hidden;box-shadow:0 12px 24px #0002}.releaseText{padding:20px}.releaseText h3{font-size:20px;line-height:1.35}.releaseText span{color:#d6ab76}.releaseArt{border-bottom:1px solid #573c25;background:radial-gradient(circle at 70% 15%,#78502c,#25201a 55%,#11171e)}
.studio{padding-top:100px}.studioText .biographyBody p{color:#d0c3b3}.biographyFigure img{border-color:#735334;border-radius:7px}.biographyFigure figcaption{color:#baaa96}
.studioMood{height:300px;margin:45px 0 30px;border:1px solid #5d432c;border-radius:10px;background:url('studio-warm.png') 70% 48%/cover no-repeat}
.signature{color:#e6c7a0}.signature span{color:#a3c7ed}
.connect{background:radial-gradient(ellipse at 50% 80%,#382414,#191611 55%,#100e0c);border-color:#604327}.connect h2{color:#f0debf}
footer{background:#0b0b0a;color:#b9a995}footer b{color:#abcbee}
dialog{background:#1b1713;border-color:#89643e;border-radius:12px}dialog .notice{background:#24211d;border-color:#cda274;color:#ddd0bf}
.backupPanel,.studioEditorPanel{border-color:#65492f;border-radius:7px}.backupPanel p,.studioEditorPanel>p{color:#c6b8a4}
.storyEditor textarea,.adminGrid input,.adminGrid select,#studioEditor input,#studioEditor textarea,.imageEditor input{background:#100f0d;border-color:#67513b}
#musicDock{background:#191612;border-color:#ba8b57;box-shadow:0 12px 50px #000b;top:110px}#musicDock>button{background:#292015;color:#f3dcc0;border:1px solid #8c6844;border-radius:5px;padding:8px 12px;cursor:pointer}#musicDock h3{font-family:Georgia,serif;font-size:23px;font-weight:400;padding-right:64px}#musicDock p{color:#cdbfae}
@media(min-width:1500px){.hero{height:840px;max-height:900px}.heroContent{max-width:530px}.hero h1{font-size:100px}}
@media(max-width:1100px){header{gap:16px}.brand{font-size:18px}.brand small{font-size:10px}nav{gap:15px}.hero{min-height:640px}.heroContent{max-width:420px}.heroArt{background-position:57% center}.hero h1{font-size:70px}}
@media(max-width:850px){header{height:84px}.brand{font-size:19px}.brandSymbol{width:46px;height:46px}.hero{height:auto;min-height:0;display:block;padding:0 0 40px}.heroArt{position:relative;height:55vw;min-height:230px;max-height:440px;background-size:cover;background-position:center;z-index:0}.hero:after{display:none}.heroContent{padding:30px 6% 15px;max-width:600px}.hero h1{font-size:66px;margin:20px 0}.hero p{max-width:450px}.hero .actions{max-width:none}.heroFoot{position:static;margin:25px 6% 0}.heroContent .eyebrow{font-size:10px}.section{padding-top:65px}.studioMood{height:240px}.section h2,.connect h2{font-size:42px}}
@media(max-width:600px){header{padding:12px 4%;height:auto;min-height:88px;gap:10px;flex-wrap:wrap}.brand{font-size:17px;gap:8px}.brand small{font-size:9px}.brandSymbol{width:42px;height:42px}.headright{gap:6px}.headright select{padding:8px 4px}.headright .ghost{max-width:90px;padding:8px;font-size:11px}.hero h1{font-size:58px}.hero p{font-size:15px}.track{padding:14px;gap:12px}.trackInfo strong{font-size:17px}.track:has(.spotifyEmbedBlock)>.trackInfo,.track>.trackInfo{flex-basis:calc(100% - 72px)}.track img,.track .miniArt{width:44px;height:44px}.spotifyArtistPanel{padding:20px}.releases{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.releaseText{padding:13px}.releaseText h3{font-size:16px}.releaseText span{font-size:9px}.section{padding-inline:5%}.studioText .biographyBody p{font-size:17px}#musicDock{top:auto;bottom:12px;max-height:70vh}.studioMood{height:205px}.lyricsText{font-size:17px;padding:14px}}
@media(max-width:360px){.brand{font-size:15px}.brand small{font-size:8px}.brandSymbol{width:35px;height:35px}.headright .ghost{font-size:10px;max-width:72px}.hero h1{font-size:52px}.heroFoot{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.footerBrand{display:inline-flex;align-items:center;gap:12px}.footerBrand .brandSymbol{width:36px;height:36px}footer{align-items:center}

.emailLink{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;color:#dfbb8f;border:1px solid #6c5137;border-radius:5px}.emailLink svg{width:22px;height:22px}.emailLink:hover{color:#b9dbff;border-color:#86bfff;background:#86bfff14}.spotifyCatalogHeading{display:flex;align-items:center;gap:12px}.spotifyCatalogHeading img{width:32px;height:32px;flex-shrink:0}@media(max-width:600px){header .headright{margin-left:auto}.emailLink{width:34px;height:34px}}

.spotifyArtistPanel{margin:28px 0 0}

/* Picture-disc LPs: original cover files remain unchanged. */
.vinylSleeve{padding:22px;background:radial-gradient(ellipse at 50% 35%,#513b29,#211a13 68%);overflow:hidden}
.pictureDisc{position:relative;isolation:isolate;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#17130f;border:5px solid #121212;box-shadow:0 10px 16px #0009,0 0 0 1px #86715b}
.pictureDisc .releaseArt{display:block;width:100%;height:100%;aspect-ratio:1;border:0;border-radius:50%;object-fit:cover;letter-spacing:-.08em;font-size:clamp(50px,7vw,100px)}
.pictureDisc:before{content:'';position:absolute;inset:0;z-index:1;border-radius:50%;pointer-events:none;background:repeating-radial-gradient(circle at center,transparent 0px,transparent 3px,#0003 3.5px,#ffffff17 4px,transparent 4.5px);box-shadow:inset 0 0 0 2px #ffffff24,inset 0 0 18px #0005}
.pictureDisc:after{content:'';position:absolute;inset:0;z-index:2;border-radius:50%;pointer-events:none;background:conic-gradient(from 25deg,transparent 0deg,#ffffff21 38deg,transparent 72deg,transparent 180deg,#ffffff17 217deg,transparent 255deg);opacity:.75}
.vinylSpindle{position:absolute;z-index:3;left:50%;top:50%;width:7%;aspect-ratio:1;transform:translate(-50%,-50%);background:#211a13;border-radius:50%;border:2px solid #aca08d;box-shadow:0 0 0 6px #1117,0 1px 5px #000;pointer-events:none}
@media(max-width:600px){.vinylSleeve{padding:13px}.pictureDisc{border-width:3px}.vinylSpindle{border-width:1px;box-shadow:0 0 0 3px #1117}}

/* Subtle aged picture vinyl: faded print, fine grooves and reflected light. */
.vinylSleeve{position:relative;isolation:isolate}
.pictureDisc{border:4px solid #161719;box-shadow:0 9px 14px #0009,0 0 0 1px #66635c}
.pictureDisc .releaseArt{filter:saturate(.68) contrast(.88) brightness(1.06)}
.pictureDisc:before{background:repeating-radial-gradient(circle,transparent 0 1.4px,#080a0c25 1.6px 2px,#ffffff12 2.2px 2.5px);box-shadow:inset 0 0 0 2px #b5b3a233,inset 0 0 0 7px #1118,inset 0 0 16px #0005}
.pictureDisc:after{opacity:.65;background:conic-gradient(from 25deg,transparent 0deg,#f4f2dd24 36deg,transparent 70deg,transparent 180deg,#e6eeef1c 215deg,transparent 250deg);transform:none}
.vinylSpindle{width:3%;border:1px solid #8f8e84;background:#15120e;box-shadow:0 0 0 4px #ded8b922,0 0 0 5px #17171744}
.brand small{letter-spacing:.19em;font-size:11px}
@media(max-width:600px){.brand small{font-size:8px;letter-spacing:.15em}}
/* YouTube brand treatment for the music playback button. */
.track .trackYouTubePlay{background:linear-gradient(135deg,#ff0033 0%,#d90027 62%,#8b001a 100%);border-color:#ff5a72;color:#fff;box-shadow:0 3px 10px #ff003355,inset 0 1px #ffffff55;font-weight:700}
.track .trackYouTubePlay:hover{background:linear-gradient(135deg,#ff3158,#e5002d);transform:translateY(-1px)}


.track .trackYouTubePlay{background:linear-gradient(135deg,#c40024 0%,#97001b 62%,#5f0010 100%);border-color:#e83b58}
.track .trackYouTubePlay:hover{background:linear-gradient(135deg,#df1639,#a50020)}


.mediaChoices{display:flex;align-items:center;gap:10px;margin-left:auto}.mediaOr{color:#aaa;font-size:12px}.mediaChoices button{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;width:auto!important;height:40px!important;border-radius:6px!important;padding:0 13px!important}.youtubeLogoMark{display:inline-grid;place-items:center;width:20px;height:14px;border-radius:4px;background:#fff;color:#a0001b;font-size:10px;line-height:1}@media(max-width:600px){.mediaChoices{width:100%;justify-content:flex-end;margin-left:0}}

.catalogChoices{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px auto 0}.catalogChoices a{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:6px;border:1px solid #79b9ff;color:#f0ece5;font-weight:700;font-size:12px}.catalogSpotifyChoice{background:#17231b;border-color:#48c878!important;color:#b9e5cb!important}.catalogYouTubeChoice{background:linear-gradient(135deg,#c40024,#97001b);border-color:#e83b58!important}.catalogChoices a:hover{transform:translateY(-1px)}

.catalogChoices{gap:24px}.catalogOr{font-size:25px;font-weight:800;letter-spacing:.08em;color:#eee}.catalogYouTubeChoice{padding:13px 22px!important;font-size:13px!important}

.spotifyCatalogHeading{position:relative;display:flex;align-items:center;gap:12px}.spotifyCatalogHeading .catalogOr{margin-left:auto;font-size:22px;font-weight:800;letter-spacing:.06em;color:#eee}.spotifyCatalogHeading .catalogYouTubeChoice{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:6px;border:1px solid #e83b58;background:linear-gradient(135deg,#c40024,#97001b);color:#fff;font-size:12px;font-weight:700}.spotifyCatalogHeading .catalogYouTubeChoice:hover{transform:translateY(-1px)}.spotifyCatalogPanelHint{display:block}


.catalogChooser{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:28px;align-items:start;text-align:center}.catalogSide{min-width:0}.catalogSide .spotifyCatalogHeading{justify-content:center}.catalogSide .spotifyEmbedBlock{margin-top:14px}.catalogOr{align-self:start;margin-top:8px;font-size:28px;font-weight:800;line-height:1;color:#eee}.catalogSide p{min-height:48px}.catalogYouTubeChoice{display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:12px 20px;border-radius:6px;border:1px solid #e83b58;background:linear-gradient(135deg,#c40024,#97001b);color:#fff;font-size:12px;font-weight:700}.catalogSide .spotifyArtistLink{display:block;margin-top:14px}@media(max-width:700px){.catalogChooser{grid-template-columns:1fr;gap:15px}.catalogOr{margin:0;order:2}.catalogSide:last-child{order:3}}

/* Small music animations: subtle by default, richer while interacting. */
.studioMood{position:relative;overflow:hidden}
.studioMood:after{content:'♫';position:absolute;right:12%;top:18%;font:700 42px Georgia,serif;color:#b9dbff88;animation:floatNote 5s ease-in-out infinite}
@keyframes floatNote{0%,100%{transform:translateY(8px) rotate(-8deg);opacity:.3}50%{transform:translateY(-12px) rotate(8deg);opacity:.85}}
.vinylRelease:hover .pictureDisc{animation:recordTurn 7s linear infinite}
@keyframes recordTurn{to{transform:rotate(360deg)}}
.trackMediaArea .jukeboxStage:after{content:'REC';position:absolute;right:10%;top:5%;font:700 10px Manrope,sans-serif;letter-spacing:.16em;color:#ef6d68;opacity:.35;animation:recBlink 2.6s ease-in-out infinite}
.trackMediaArea .jukeboxStage{position:relative}
@keyframes recBlink{0%,100%{opacity:.18}50%{opacity:.9}}
.trackInfo:has(.trackLyrics) strong:after{content:'♫';display:inline-block;margin-left:8px;color:#79b9ff99;animation:keyPulse 1.8s ease-in-out infinite}
@keyframes keyPulse{0%,100%{transform:scale(.9) rotate(-8deg);opacity:.35}50%{transform:scale(1.12) rotate(8deg);opacity:1}}
.spotifyArtistPanel .spotifyEmbedBlock:before{content:'▮▮▮▮▮';display:block;letter-spacing:4px;color:#79b9ff88;font-size:12px;animation:levels 1.2s steps(4,end) infinite}
@keyframes levels{0%{letter-spacing:2px;opacity:.35}50%{letter-spacing:7px;opacity:1}100%{letter-spacing:3px;opacity:.45}}
@media(prefers-reduced-motion:reduce){.studioMood:after,.vinylRelease:hover .pictureDisc,.trackMediaArea .jukeboxStage:after,.trackInfo:has(.trackLyrics) strong:after,.spotifyArtistPanel .spotifyEmbedBlock:before{animation:none!important}}


/* Match the YouTube player with Spotify's animated level bars and button height. */
.trackMediaArea #musicDock:has(.dockYouTube):before{content:'▮▮▮▮▮';display:block;text-align:center;letter-spacing:4px;color:#ff405f99;font-size:12px;line-height:18px;animation:levelsYoutube 1.2s steps(4,end) infinite}
@keyframes levelsYoutube{0%{letter-spacing:2px;opacity:.35}50%{letter-spacing:7px;opacity:1}100%{letter-spacing:3px;opacity:.45}}
.track .trackSpotifyPlay,.track .trackYouTubePlay{min-height:40px;line-height:1}
@media(prefers-reduced-motion:reduce){.trackMediaArea #musicDock:has(.dockYouTube):before{animation:none!important}}


/* Visible YouTube level animation and exact button alignment. */
.catalogYouTubeChoice{min-height:40px;vertical-align:middle;position:relative}
.catalogYouTubeChoice:before{content:'▮▮▮▮▮';display:block;position:absolute;left:50%;top:-18px;transform:translateX(-50%);white-space:nowrap;letter-spacing:3px;color:#ff405f99;font-size:9px;line-height:10px;animation:levelsYoutubeButton 1.2s steps(4,end) infinite}
@keyframes levelsYoutubeButton{0%,100%{opacity:.35;letter-spacing:2px}50%{opacity:1;letter-spacing:5px}}
.track .trackSpotifyPlay,.track .trackYouTubePlay{box-sizing:border-box;height:40px!important;min-height:40px!important;align-self:center;vertical-align:middle}
@media(prefers-reduced-motion:reduce){.catalogYouTubeChoice:before{animation:none!important;opacity:.6}}


/* Align YouTube CTA with the Spotify play control baseline. */
.catalogSide:last-child .catalogYouTubeChoice{margin-top:18px}
@media(max-width:700px){.catalogSide:last-child .catalogYouTubeChoice{margin-top:14px}}

/* Studio-photo motion: scanline refresh, keyboard LEDs, mixer LEDs and lamp breathing. */
.studioMood:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,transparent 0 5px,#ffffff10 5.5px 6px),linear-gradient(96deg,transparent 0 36%,#ff9b4418 36.5% 37%,transparent 37.5% 53%,#ffb35a20 53.5% 54%,transparent 54.5% 100%);mix-blend-mode:screen;opacity:.2;animation:studioRefresh 4.8s steps(8,end) infinite}
.studioMood:after{z-index:2;content:'♫';text-shadow:0 0 10px #b9dbff88,0 0 16px #ff9d4d44;animation:floatNote 5s ease-in-out infinite,studioFlicker 3.7s steps(7,end) infinite}
@keyframes studioRefresh{0%,100%{transform:translateY(-4px);opacity:.12}45%{transform:translateY(5px);opacity:.3}52%{transform:translateY(1px);opacity:.18}80%{transform:translateY(-2px);opacity:.26}}
@keyframes studioFlicker{0%,100%{filter:brightness(1)}18%{filter:brightness(1.18)}22%{filter:brightness(.92)}54%{filter:brightness(1.1)}57%{filter:brightness(.96)}83%{filter:brightness(1.2)}}
.studioMood{animation:studioLamps 5.4s ease-in-out infinite}
@keyframes studioLamps{0%,100%{filter:brightness(.98) saturate(.98)}30%{filter:brightness(1.04) saturate(1.03)}52%{filter:brightness(.96) saturate(1)}73%{filter:brightness(1.07) saturate(1.05)}}
@media(prefers-reduced-motion:reduce){.studioMood,.studioMood:before,.studioMood:after{animation:none!important}}
html[lang="sv"] .hero p{white-space:pre-line;max-width:620px;line-height:1.65}html[lang="sv"] .hero h1{font-size:clamp(38px,5vw,68px)}
/* Welcome heading on the photo; the full introduction below it. */
.hero h1,html[lang="sv"] .hero h1{font-size:clamp(32px,3.6vw,50px);line-height:1.12}
.welcomeIntro{padding:44px 6% 48px;background:#17130f;border-bottom:1px solid #56402c}
.welcomeIntroInner{max-width:820px;margin:0 auto}
.welcomeIntro p{margin:0;white-space:pre-line;color:#e4d5c1;font-size:17px;line-height:1.85}
@media(max-width:600px){.welcomeIntro{padding:30px 6%}.welcomeIntro p{font-size:16px;line-height:1.75}}

/* Keep welcome at the upper left and actions clear of the bottom wordmark. */
.heroContent{position:absolute;inset:42px 6% 76px;max-width:none;padding:0;display:flex;flex-direction:column;align-items:flex-start}
.heroContent h1{margin:22px 0 0;max-width:470px}
.heroContent .actions{margin-top:auto;padding-top:28px;max-width:470px}
@media(max-width:850px){
.hero{padding-bottom:0}
.heroContent{position:relative;inset:auto;min-height:290px;padding:26px 6% 22px}
.heroContent .actions{margin-top:auto}
.heroFoot{position:relative;margin:0;padding:0 6% 24px;left:auto;right:auto;bottom:auto;gap:16px}
}
#latestRelease{padding:24px;margin-bottom:24px;border:1px solid #806344;border-radius:8px;background:linear-gradient(120deg,#30251b,#171411)}#latestRelease h3{font-size:26px;margin:12px 0;overflow-wrap:anywhere}#latestRelease p{margin:8px 0 16px;font-size:13px}
#home{scroll-margin-top:160px}
#music{scroll-margin-top:var(--navigation-height,94px)}

/* Bring the release and studio headings closer to the navigation. */
#releases,#studio{padding-top:28px;scroll-margin-top:var(--navigation-height,94px)}
#studio{align-items:start}
#music{padding-top:28px}

#latestRelease{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(130px,1fr) 160px;gap:24px;align-items:center}
.latestDate{text-align:center}.latestDate time{display:block;margin-top:12px;font-size:18px;color:#ead6b7}
#latestRelease .latestCover{width:160px;height:160px;object-fit:cover;border-radius:6px;box-shadow:0 5px 16px #0006;display:grid;place-items:center;background:#30271e;color:#e4c392;font-size:36px}
@media(max-width:650px){#latestRelease{grid-template-columns:minmax(0,1fr) 100px;gap:16px}#latestRelease .latestCover{width:100px;height:100px;grid-column:2;grid-row:1}.latestDate{grid-column:1/-1;text-align:left}.latestDate:empty{display:none}}
