:root{color-scheme:light;--paper:#fff;--ink:#111;--muted:#757575;--line:#d9d9d9}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}body{overflow-x:hidden}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.3}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #111;outline-offset:5px}::selection{background:#111;color:white}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:-80px;left:20px;background:#111;color:white;padding:12px;z-index:100}.skip:focus{top:10px}.world-view{height:100svh;min-height:610px;position:relative;overflow:hidden}.map-viewport{position:absolute;inset:0;overflow:hidden}.map-plane{position:absolute;left:50%;top:46%;width:94%;max-width:1700px;aspect-ratio:1440/580;transform:translate(-50%,-50%);transform-origin:0 0}.world-map{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.location{position:absolute;z-index:2}.la{left:17.153%;top:35.137%}.paris{left:50.654%;top:24.926%}.pin{position:absolute;left:-6px;top:-6px;width:12px;height:12px;background:#111;border:3px solid white;border-radius:50%;box-shadow:0 0 0 1.5px #111}.location-content{margin:23px 0 0 -5px;padding:12px 14px 4px;min-width:210px;background:#fff;border-left:1px solid #111}.city-label{display:block;font:11px/1.5 'Courier New',monospace;letter-spacing:1.5px;color:#555;margin:0 0 8px}.artist-link{display:flex;align-items:center;justify-content:space-between;gap:22px;width:100%;padding:12px 0;border:0;border-top:1px solid #ddd;background:transparent;font-size:14px;font-weight:700;letter-spacing:-.7px;white-space:nowrap;text-align:left;color:#111;transition:opacity .2s}.artist-link span{font-weight:400;font-size:20px}.artist-link:hover{opacity:.55}.room-view{position:fixed;inset:0;overflow:hidden;background:#efefef;isolation:isolate;outline:none}.room-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;z-index:-1;transform:scale(1.012);animation:enter-room 1.4s ease-out;user-select:none;pointer-events:none}.room-controls{position:absolute;inset:0;pointer-events:none;transition:opacity .6s ease,visibility .6s ease;opacity:1;visibility:visible}.room-controls>*{pointer-events:auto}.room-view.immersed{cursor:none}.room-view.immersed .room-controls{opacity:0;visibility:hidden;pointer-events:none}.room-view.immersed .room-controls>*{pointer-events:none}.back-map{position:absolute;left:28px;top:28px;display:grid;place-items:center;width:42px;height:42px;background:#ffffffa6;backdrop-filter:blur(12px);border:1px solid #ffffffd9;border-radius:50%;color:#333;transition:background .2s}.back-map:hover{background:white}.back-map svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round}.player{position:absolute;right:clamp(24px,5vw,80px);bottom:clamp(24px,5vh,60px);width:266px;padding:17px 16px 13px;border:1px solid #fdfdfd;border-radius:27px;background:linear-gradient(140deg,#fbfbfb 0%,#e8e8e8 53%,#f8f8f8 100%);box-shadow:inset 2px 2px 3px #fff,inset -2px -2px 5px #00000010,0 20px 48px #0003,0 3px 6px #0002;transition:transform .6s ease}.room-view.immersed .player{transform:translateY(10px)}.device-top{display:flex;align-items:center;gap:10px;padding:0 6px 13px;color:#888}.device-brand{font:700 10px Arial,sans-serif;letter-spacing:.6px;margin-right:auto}.speaker-grille{font-size:10px;letter-spacing:2px}.play-light{width:5px;height:5px;border-radius:50%;background:#ccc;margin-left:10px;box-shadow:inset 0 1px 2px #0002}.play-light.playing{background:#333}.screen-shell{padding:9px;border-radius:16px;background:linear-gradient(145deg,#151515,#383838);box-shadow:0 1px 1px #fff,inset 0 0 4px #000}.screen{position:relative;min-height:248px;padding:13px 10px 11px;color:#f0f0f0;border-radius:9px;background:linear-gradient(120deg,#212121,#292929 65%,#202020);box-shadow:inset 0 2px 10px #0007;font-family:'Courier New',monospace}.screen::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:9px;background:linear-gradient(145deg,#ffffff06,transparent 65%)}.screen-status{display:flex;justify-content:space-between;gap:10px;color:#a7a7a7;font-size:9px;letter-spacing:.5px}.screen h1{font-family:Arial,Helvetica,sans-serif;font-size:19px;letter-spacing:-.7px;font-weight:600;margin:13px 0 14px;line-height:1.15}.screen-tabs{display:flex;gap:6px;margin-bottom:10px}.screen-tabs .production-label{background:#dedede;border:1px solid #dedede;color:#171717;border-radius:3px;text-align:center;padding:6px 7px;font:9px 'Courier New',monospace;flex:1}.screen button:focus-visible,.screen input:focus-visible{outline-color:white;outline-offset:2px}#music-panel{height:104px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#888 #252525}.track-list:empty{display:none}.track-row{border:0;border-bottom:1px solid #ffffff16;color:#ddd;background:transparent;padding:10px 6px;display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:11px/1.4 'Courier New',monospace}.track-row:hover{background:#ffffff0c}.track-row.active{background:#eee;color:#111;border-radius:3px}.track-number{font-size:9px;opacity:.5}.track-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-duration{margin-left:auto;opacity:.65;font-size:9px}.empty-tracks{color:#959595;font:11px/1.6 'Courier New',monospace;max-width:140px;margin:25px 0}.now-playing{display:flex;align-items:center;gap:8px;padding-top:13px;margin-top:9px;border-top:1px solid #ffffff24;font:10px/1.3 'Courier New',monospace;color:#c4c4c4;min-height:27px}.now-playing #current-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing #play-status{margin-left:auto;font-size:8px}.seek{width:100%;height:12px;margin:6px 0 0;accent-color:#ededed}.time-row{display:flex;justify-content:space-between;font-size:8px;color:#8e8e8e}.audio-error{font-size:10px;line-height:1.5;color:#fff;margin:8px 0 0}.wheel{position:relative;width:155px;height:155px;border:1px solid #d3d3d3;border-radius:50%;margin:17px auto 13px;background:linear-gradient(145deg,#f3f3f3,#e5e5e5);box-shadow:inset 1px 1px 2px white,inset -1px -1px 3px #00000009,0 2px 3px #0000000a}.wheel-button{position:absolute;display:grid;place-items:center;background:transparent;border:0;color:#777;padding:8px;border-radius:8px}.wheel-button:hover:enabled{color:#111}.wheel-button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.wheel-top{top:6px;left:50%;transform:translateX(-50%);font:9px Arial,sans-serif;letter-spacing:1px}.wheel-left{left:3px;top:50%;transform:translateY(-50%)}.wheel-right{right:3px;top:50%;transform:translateY(-50%)}.wheel-bottom{bottom:2px;left:50%;transform:translateX(-50%)}.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:67px;height:67px;border-radius:50%;border:1px solid #ddd;background:linear-gradient(140deg,#fdfdfd,#dedede);box-shadow:inset 1px 2px 2px white,0 3px 7px #00000017;display:grid;place-items:center;color:#777}.play-button:active:enabled{box-shadow:inset 0 1px 5px #0002}.play-button svg{width:20px;height:20px;fill:currentColor;stroke:currentColor;stroke-width:2}.play-button #pause-icon{fill:none;stroke-width:3}.device-bottom{display:flex;align-items:center;gap:7px;padding:0 4px}.device-bottom label{font:8px 'Courier New',monospace;color:#888}.device-bottom input{width:60px;min-width:0;height:12px;accent-color:#777;margin:0}.device-bottom button{font:8px 'Courier New',monospace;letter-spacing:.4px;background:none;border:0;color:#888;margin-left:auto;padding:6px 0 6px 6px}.device-bottom button:hover{color:#111}@keyframes enter-room{from{opacity:0;transform:scale(1.065)}to{opacity:1;transform:scale(1.012)}}
@media(min-width:1600px){.location-content{min-width:245px}}
@media(max-width:800px){.map-plane{width:96%;top:42%}.location-content{min-width:170px;padding:10px 12px 2px}.artist-link{font-size:14px}.player{right:22px;bottom:22px;width:250px;padding:15px 14px 12px}.screen{min-height:235px}.wheel{width:140px;height:140px;margin:14px auto 11px}.play-button{width:62px;height:62px}}
@media(max-width:600px){.world-view{min-height:650px}.map-plane{top:36%;width:calc(100% - 16px)}.location-content{min-width:0;width:150px;padding:9px 10px 2px}.location.paris .location-content{margin-left:-7px;width:clamp(137px,41vw,158px)}.location.la .location-content{margin:207px 0 0 -42px}.location.la::after{content:'';position:absolute;top:7px;left:0;height:200px;width:1px;background:#888}.artist-link{font-size:14px;letter-spacing:-.5px;padding:11px 0;gap:12px}.artist-link span{font-size:18px}.city-label{font-size:10px;letter-spacing:1px}.back-map{top:20px;left:20px;width:40px;height:40px}.room-image{object-position:center center}.player{right:18px;bottom:18px;width:228px;padding:14px 13px 10px;border-radius:24px}.screen-shell{padding:8px}.screen{padding:11px 8px 9px;min-height:224px}.screen h1{font-size:18px;margin:11px 0}.screen-tabs .production-label{padding:6px 5px}.screen-status{font-size:8px}#music-panel{height:90px}.wheel{width:126px;height:126px;margin:12px auto 8px}.play-button{width:54px;height:54px}.wheel-button{padding:6px}.wheel-top{top:6px;font-size:8px}.wheel-button svg{width:16px;height:16px}.wheel-bottom{bottom:3px}.device-bottom button{font-size:8px}}
@media(max-height:620px) and (min-width:601px){.player{width:225px;right:22px;bottom:15px;padding:12px}.screen{min-height:180px;padding:10px 8px}.screen h1{font-size:17px;margin:9px 0}.screen-tabs{margin-bottom:8px}#music-panel{height:48px}.now-playing{margin-top:7px}.wheel{width:115px;height:115px;margin:10px auto}.play-button{width:50px;height:50px}.wheel-button{padding:5px}.wheel-top{top:4px}.wheel-button svg{width:15px;height:15px}.device-top{padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.skip{top:0;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;opacity:0;padding:0}.skip:focus{top:12px;clip:auto;width:auto;height:auto;opacity:1;padding:12px}

.site-mark{position:fixed;z-index:10;top:26px;right:32px;width:clamp(120px,12.5vw,180px);aspect-ratio:2;mix-blend-mode:multiply;pointer-events:none;transition:opacity .6s,visibility .6s}.site-mark video,.site-mark img{display:block;width:100%;height:100%;object-fit:contain}.site-mark img{display:none}@media(max-width:600px){.site-mark{top:22px;right:20px;width:112px}}@media(prefers-reduced-motion:reduce){.site-mark video{display:none}.site-mark img{display:block}}

/* Compact player: less body and wheel, with legible song titles. */
.player{width:214px;padding:12px 11px 10px;border-radius:23px;right:28px;bottom:24px}
.device-top{padding:0 3px 9px;gap:6px}.device-brand{font-size:8px}.speaker-grille{font-size:8px}.play-light{margin-left:5px}
.screen-shell{padding:6px;border-radius:12px}.screen{min-height:0;padding:10px 8px 8px;border-radius:7px}
.screen-status{font-size:8px;letter-spacing:0;gap:5px}.screen h1{font-size:16px;margin:9px 0 10px;letter-spacing:-.5px}
.screen-tabs{gap:4px;margin-bottom:6px}.screen-tabs .production-label{font-size:8px;padding:5px 4px}
#music-panel{height:107px;position:relative;overscroll-behavior:contain}
.track-row{padding:7px 3px;gap:6px;font-size:11px;line-height:1.3;min-height:36px}.track-number{font-size:8px;flex-shrink:0;min-width:15px}
.track-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.track-title{display:block}.track-artist{display:block;font-size:8px;opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.now-playing{padding-top:8px;margin-top:7px;min-height:22px;font-size:9px;gap:5px}.now-playing #play-status{font-size:7px}.seek{margin-top:3px}
.listening-source{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:7px;font-size:8px;color:#aaa}.listening-source a{color:#eee;text-decoration:none;white-space:nowrap;padding:3px 0}.listening-source a:hover{text-decoration:underline}.listening-source a:focus-visible{outline-color:white;outline-offset:2px}
.wheel{width:109px;height:109px;margin:11px auto 8px}.play-button{width:46px;height:46px}.play-button svg{width:17px;height:17px}.wheel-button{padding:5px}.wheel-button svg{width:15px;height:15px}.wheel-top{font-size:7px;top:3px}.wheel-left{left:1px}.wheel-right{right:1px}.wheel-bottom{bottom:1px}
.device-bottom{gap:5px;padding:0 3px}.device-bottom input{width:48px}.device-bottom button{font-size:7px;padding:5px 0 5px 3px}
@media(max-width:600px){.player{width:204px;right:16px;bottom:16px;padding:11px 10px 9px}.screen{padding:9px 7px 7px}.screen h1{font-size:15px}#music-panel{height:100px}.wheel{width:100px;height:100px;margin:9px auto 6px}.play-button{width:42px;height:42px}}
@media(max-height:540px){.player{bottom:12px;right:16px}#music-panel{height:72px}.wheel{width:88px;height:88px;margin:6px auto}.play-button{width:36px;height:36px}.device-top{padding-bottom:6px}.screen h1{margin:6px 0}.screen-tabs{margin-bottom:4px}.wheel-button{padding:3px}}
.player{scale:.86;transform-origin:bottom right}.screen h1{margin:6px 0 8px}.screen-tabs{margin-bottom:5px}#music-panel{height:90px}.seek{display:block}.listening-source{margin-top:5px}.wheel{width:96px;height:96px;margin:8px auto 6px}.play-button{width:40px;height:40px}
@media(max-width:600px){.player{scale:.9}#music-panel{height:86px}.wheel{width:94px;height:94px}}
@media(max-height:540px){#music-panel{height:66px}.wheel{width:84px;height:84px}.play-button{width:34px;height:34px}}

/* Los Angeles: aerial introduction before the listening room. */
.city-link{padding:0;border:0;background:none;text-align:left}.city-link:hover{text-decoration:underline;text-underline-offset:4px}
.city-view{position:fixed;inset:0;overflow:hidden;background:#0c0c0c;isolation:isolate;outline:none;opacity:1;transition:opacity .45s ease}
.city-view.departing{opacity:0}
.city-visual{position:absolute;inset:0;overflow:hidden;background:#0c0c0c;container-type:size}
.city-video-stage{position:absolute;inset:0}
.city-video-stage iframe{position:absolute;top:50%;left:50%;width:max(100cqw,calc(177.778cqh + 284.445px));height:max(calc(100cqh + 160px),56.25cqw);transform:translate(-50%,-50%);border:0;pointer-events:none}
/* Crop the embedded Paris video's lower-right logo on wider screens.
   Portrait cover framing already places it outside the viewport. */
@media(min-aspect-ratio:6/5){.paris-view .city-video-stage iframe{transform:translate(-50%,-50%) scale(1.1)}}
.city-header{position:absolute;inset:0 0 auto;height:98px;background:transparent;display:flex;align-items:center;justify-content:center;padding:0 220px 0 100px;z-index:2}
.city-back{top:28px;left:28px;background:transparent;border-color:transparent;backdrop-filter:none;color:#fff;filter:drop-shadow(0 1px 4px #000)}.city-back:hover{background:transparent;opacity:.65}
.city-nav{display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,64px)}
.city-nav a,.city-nav button{display:flex;align-items:center;gap:7px;min-height:44px;padding:8px 0;border:0;background:none;color:#fff;text-shadow:0 1px 6px #000;text-decoration:none;font:10px/1.4 'Courier New',monospace;letter-spacing:1px;white-space:nowrap}
.city-nav a:hover,.city-nav button:hover{text-decoration:underline;text-underline-offset:6px}
.city-nav span{font-size:13px}
.city-caption{position:absolute;left:32px;bottom:30px;color:#fff;text-shadow:0 2px 12px #000;pointer-events:none}
.city-caption p{margin:0 0 8px;font:9px/1.5 'Courier New',monospace;letter-spacing:2.5px}
.city-caption h1{margin:0;font-size:24px;font-weight:500;letter-spacing:-.8px}
.city-video-controls{position:absolute;right:30px;bottom:30px;display:flex;align-items:center;gap:16px;color:#fff}
.city-video-controls a{font:9px/1.5 'Courier New',monospace;letter-spacing:.8px;text-decoration:none;background:#111b;padding:12px}
.city-video-controls button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff70;border-radius:50%;background:#1117;color:#fff;backdrop-filter:blur(8px)}
.city-video-controls .city-video-retry{width:auto;height:auto;border:0;border-radius:0;padding:12px;background:#111b;font:9px/1.5 'Courier New',monospace;letter-spacing:.8px}
.city-video-controls svg{width:15px;height:15px;fill:currentColor;stroke:currentColor;stroke-width:1.5}.city-pause{display:none;fill:none;stroke-width:2}.is-playing .city-pause{display:block}.is-playing .city-play{display:none}
.biography-dialog{max-width:510px;width:calc(100% - 40px);max-height:calc(100svh - 64px);overflow:auto;border:1px solid #ddd;background:#fff;color:#171717;padding:48px 42px 40px;box-shadow:0 24px 90px #0005}
.biography-dialog::backdrop{background:#0008;backdrop-filter:blur(5px)}
.biography-close{position:absolute;right:15px;top:12px;width:36px;height:36px;border:0;background:none;font:26px Arial,sans-serif;color:#444}
.biography-dialog .biography-eyebrow{font:9px/1.5 'Courier New',monospace;letter-spacing:2px;margin:0 0 14px}
.biography-dialog h2{font-size:35px;letter-spacing:-1.5px;font-weight:600;margin:0 0 28px}
.biography-dialog p{font-size:14px;line-height:1.8;margin:0 0 20px;color:#444}
.biography-discography{display:flex;justify-content:space-between;border-top:1px solid #ddd;margin-top:28px;padding-top:20px;text-decoration:none;font:9px/1.5 'Courier New',monospace;letter-spacing:.6px}
.biography-discography:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:800px){.city-header{height:135px;align-items:flex-end;padding:0 20px 8px}.city-nav{width:100%;gap:clamp(20px,7vw,50px)}.city-caption{left:22px;bottom:24px}.city-video-controls{right:22px;bottom:24px}}
@media(max-width:600px){.city-back{left:20px;top:20px}.city-nav a,.city-nav button{font-size:9px;letter-spacing:.5px}.city-caption h1{font-size:21px}.biography-dialog{padding:42px 26px 28px}.biography-dialog h2{font-size:30px}.biography-dialog p{font-size:13px}.city-video-controls a{max-width:140px;font-size:8px}}
@media(max-height:480px) and (min-width:601px){.city-header{height:86px;align-items:center;padding:0 180px 0 86px}.city-nav{gap:20px}.city-caption{bottom:18px}.city-caption h1{font-size:20px}.city-video-controls{bottom:18px}}

/* Transparent overlays on the aerial scene; light chrome remains legible at night. */
body:has(#city:not([hidden])) .site-mark{mix-blend-mode:screen}
body:has(#city:not([hidden])) .site-mark video,body:has(#city:not([hidden])) .site-mark img{filter:invert(1)}
.city-header :focus-visible{outline-color:#fff}
