:root {
  color-scheme: dark;
  --ink: #000;
  --text: #f1f2f3;
  --muted: #b0b4be;
  --blue: #63b8eb;
  --red: #f07867;
  font-family: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--text); }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
button:focus-visible, a:focus-visible { outline: 2px solid #f2f2f2; outline-offset: 5px; }
.site { min-height: 100dvh; overflow: hidden; background: var(--ink); }

.topbar {
  position: absolute; inset: 0 0 auto; z-index: 12;
  height: 74px; padding: 0 clamp(24px, 4vw, 68px);
  display: flex; align-items: center; justify-content: space-between;
  pointer-events: none;
}
.topbar > * { pointer-events: auto; }
.brand { color: var(--text); font-size: 17px; font-weight: 800; letter-spacing: -.055em; text-decoration: none; }
.brand-mark { color: var(--red); padding-left: 2px; }
.topbar-note { color: #c2c5ca; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.topbar-tools { display:flex; align-items:center; gap:clamp(12px,2vw,28px); }
.sound-toggle { min-height:36px; border:1px solid #73869466; background:#03080ccc; color:#c5d7e3; padding:8px 10px; font:10px 'Courier New',monospace; letter-spacing:.08em; cursor:pointer; }
.sound-toggle:hover { border-color:#b6def4; color:white; }
.sound-toggle[aria-pressed="false"] { color:#929da5; }
.dev-sound-toggle { position:absolute; z-index:4; right:clamp(20px,4vw,68px); top:30px; }

.portal { position: relative; min-height: 100dvh; isolation: isolate; overflow: hidden; perspective: 1400px; }
.backdrop { position: absolute; inset: 0; background: #000; }
.backdrop::before, .backdrop::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 46%;
  background-image: url('./Assets/Main%20page%20face.png');
  background-repeat: no-repeat; background-size: min(112dvh, 88vw) auto;
  filter: blur(55px) brightness(.52);
  opacity: .7; pointer-events: none; transition: opacity .7s ease;
}
.backdrop::before {
  left: 0; background-position: left center;
  -webkit-mask-image: radial-gradient(ellipse 82% 56% at 88% 50%, #000 0%, transparent 100%);
  mask-image: radial-gradient(ellipse 82% 56% at 88% 50%, #000 0%, transparent 100%);
}
.backdrop::after {
  right: 0; background-position: right center;
  -webkit-mask-image: radial-gradient(ellipse 82% 56% at 12% 50%, #000 0%, transparent 100%);
  mask-image: radial-gradient(ellipse 82% 56% at 12% 50%, #000 0%, transparent 100%);
}
.portrait {
  position: absolute; z-index: 2; top: 50%; left: 50%;
  width: min(112dvh, 88vw); aspect-ratio: 1;
  transform: translate(-50%, -50%);
  -webkit-mask-image: radial-gradient(ellipse 68% 64% at 50% 50%, #000 38%, transparent 76%);
  mask-image: radial-gradient(ellipse 68% 64% at 50% 50%, #000 38%, transparent 76%);
  opacity: 1; clip-path: inset(0 0 0 0);
  transition: transform 1.05s cubic-bezier(.22, 1, .36, 1), opacity .8s ease, clip-path .8s cubic-bezier(.22, 1, .36, 1);
  pointer-events: none;
}
.portrait img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.portrait-base { z-index: 0; }
.face-frame { z-index: 1; opacity: 0; transition: opacity .12s ease; }
.face-blink {
  -webkit-mask-image: radial-gradient(ellipse 10% 5% at 38% 48%, #000 48%, transparent 100%);
  mask-image: radial-gradient(ellipse 10% 5% at 38% 48%, #000 48%, transparent 100%);
}
.face-smile {
  clip-path: inset(0 0 0 50%);
  -webkit-mask-image: radial-gradient(ellipse 19% 12% at 58% 72%, #000 48%, transparent 100%);
  mask-image: radial-gradient(ellipse 19% 12% at 58% 72%, #000 48%, transparent 100%);
  transition-duration: .7s;
}
.blue-aura, .red-aura { position: absolute; z-index: 4; inset: 0; opacity: 0; mix-blend-mode: screen; transition: opacity .9s cubic-bezier(.22, 1, .36, 1); }
.blue-aura { background: radial-gradient(ellipse 37% 35% at 13% 74%, #32aaf360, transparent 78%); }
.red-aura { background: radial-gradient(ellipse 36% 44% at 88% 64%, #f25b3d55, transparent 78%); }

.world {
  position: absolute; z-index: 8; top: 0; bottom: 0; width: 50%;
  border: 0; color: var(--text); background: transparent; cursor: pointer;
  padding: 0; text-align: left;
}
.world-dev { left: 0; }
.world-artist { right: 0; text-align: right; }
.world-inner {
  position: absolute; top: 50%; display: flex; flex-direction: column;
  transform: translateY(-38%); width: min(270px, 26vw);
}
.world-dev .world-inner { left: clamp(30px, 5.2vw, 100px); align-items: flex-start; }
.world-artist .world-inner { right: clamp(30px, 5.2vw, 100px); align-items: flex-end; }
.world-kicker { color: #d6d7d9; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 11px; }
.world-title { font-size: clamp(62px, 7.5vw, 126px); line-height: .82; font-weight: 800; letter-spacing: -.09em; transition: transform .8s cubic-bezier(.22, 1, .36, 1), color .7s ease; }
.world-summary { color: #d1d4d9; font-size: clamp(13px, 1.05vw, 16px); line-height: 1.55; margin-top: 26px; text-wrap: balance; }
.world-action { display: inline-flex; align-items: center; gap: 18px; margin-top: 34px; padding-bottom: 9px; border-bottom: 1px solid #ffffff75; font-size: 14px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; transition: border-color .4s ease, gap .4s ease; }
.world:hover .world-action, .world:focus-visible .world-action { gap: 26px; border-color: currentColor; }
.world:hover .world-title, .world:focus-visible .world-title { transform: translateY(-5px); }
.home-caption { position: absolute; z-index: 7; left: 50%; bottom: 34px; transform: translateX(-50%); color: #d0d4d8; font-size: 12px; letter-spacing: .08em; white-space: nowrap; }

.smoke, .flame { position: absolute; pointer-events: none; opacity: 0; transition: opacity .85s ease; }
.smoke {
  z-index: 3; left: -5%; top: 38%; width: 45vw; height: 52vh; border-radius: 50%;
  background: radial-gradient(ellipse at 55% 55%, #a6e8fa8c, #3d9cc777 27%, #236a9361 48%, transparent 72%);
  filter: blur(33px); transform: translate(-12%, 16%) rotate(-8deg) scale(.72);
}
.smoke-two { left: 3%; top: 19%; width: 30vw; height: 58vh; filter: blur(43px); background: radial-gradient(ellipse, #66c7eb6b, #3283aa45 39%, transparent 72%); }
.smoke-three {
  left: 12%; top: 9%; width: 24vw; height: 72vh;
  background: radial-gradient(ellipse 46% 80% at 50% 68%, #8ad8f86b, #297da257 46%, transparent 76%);
  filter: blur(38px); transform: translate(-18%, 22%) rotate(-20deg) scale(.7);
}
.blue-sparks { position: absolute; z-index: 5; inset: 0 50% 0 0; pointer-events: none; opacity: 0; transition: opacity .55s ease; }
.blue-sparks i {
  position: absolute; left: calc(22% + var(--i) * 7%); bottom: var(--bottom);
  width: 3px; height: 3px; border-radius: 50%; background: #c9f4ff;
  box-shadow: 0 0 7px 2px #54c7fc, 0 0 18px 5px #238ec88a;
  opacity: 0; transform: translate3d(0, 12px, 0) scale(.7);
}
.blue-sparks i:nth-child(1) { --i: 0; --bottom: 25%; }
.blue-sparks i:nth-child(2) { --i: 1; --bottom: 43%; }
.blue-sparks i:nth-child(3) { --i: 2; --bottom: 31%; }
.blue-sparks i:nth-child(4) { --i: 3; --bottom: 54%; }
.blue-sparks i:nth-child(5) { --i: 4; --bottom: 19%; }
.blue-sparks i:nth-child(6) { --i: 5; --bottom: 37%; }
.blue-sparks i:nth-child(7) { --i: 6; --bottom: 61%; }
.blue-sparks i:nth-child(8) { --i: 7; --bottom: 28%; }
.blue-sparks i:nth-child(9) { --i: 8; --bottom: 47%; }
.blue-sparks i:nth-child(10) { --i: 9; --bottom: 16%; }
.flame {
  z-index: 3; right: -4%; top: 34%; width: 44vw; height: 64vh;
  background: radial-gradient(ellipse at 50% 80%, #f4864b8c, #d1463466 28%, #9a262b3b 54%, transparent 74%);
  filter: blur(25px); transform: translate(8%, 12%) scale(.8);
}
.flame-two { right: 8%; top: 6%; width: 24vw; height: 56vh; filter: blur(36px); background: radial-gradient(ellipse at 50% 80%, #ff77564c, transparent 72%); }
.embers { position: absolute; z-index: 5; inset: 0 0 0 50%; pointer-events: none; opacity: 0; transition: opacity .75s ease; }
.embers i { position: absolute; bottom: 18%; left: calc(18% + var(--i) * 9%); width: 3px; height: 9px; background: #ffad6a; box-shadow: 0 0 10px 3px #eb553b; border-radius: 50%; transform: rotate(22deg); }
.embers i:nth-child(1) { --i: 0; bottom: 17%; }
.embers i:nth-child(2) { --i: 1; bottom: 31%; }
.embers i:nth-child(3) { --i: 2; bottom: 15%; }
.embers i:nth-child(4) { --i: 3; bottom: 43%; }
.embers i:nth-child(5) { --i: 4; bottom: 24%; }
.embers i:nth-child(6) { --i: 5; bottom: 37%; }
.embers i:nth-child(7) { --i: 6; bottom: 19%; }
.embers i:nth-child(8) { --i: 7; bottom: 49%; }

[data-side="dev"] .portrait { transform: translate(-49.3%, -50%) rotateY(-2deg) scale(1.012); }
[data-side="artist"] .portrait { transform: translate(-50.7%, -50%) rotateY(2deg) scale(1.012); }
[data-side="dev"] .blue-aura, [data-side="dev"] .smoke, [data-side="dev"] .blue-sparks { opacity: 1; }
[data-side="artist"] .red-aura, [data-side="artist"] .flame, [data-side="artist"] .embers, [data-side="artist"] .face-smile { opacity: 1; }
[data-side="dev"] .world-dev .world-title { color: #cbeafb; }
[data-side="artist"] .world-artist .world-title { color: #ffd2c5; }
[data-side="dev"] .world-artist, [data-side="artist"] .world-dev { opacity: .46; }
.world { transition: opacity .7s ease; }
.blink-now .face-blink { opacity: 1; }

[data-view="artist"] .portrait { transform: translate(-50%, -50%) scale(.58); clip-path: inset(0 0 0 50%); opacity: 0; }
[data-view="artist"] .world-dev, [data-view="artist"] .world-artist { opacity: 0; }
[data-view="artist"] .backdrop::before { opacity: 0; }
[data-view="artist"] .portrait { transition-duration: .55s, .4s, .4s; }
[data-view="artist"] .world { transition-duration: .35s; }
.dev-impact .portrait, .dev-impact .dev-transition { animation: dev-camera-shake .64s cubic-bezier(.2,.7,.2,1) both; }
@keyframes dev-camera-shake {
  0%, 100% { translate: 0 0; }
  12% { translate: 5px -2px; }
  24% { translate: -8px 4px; }
  38% { translate: 7px -3px; }
  53% { translate: -5px 2px; }
  69% { translate: 3px -1px; }
  84% { translate: -2px 1px; }
}
[data-view="dev"] .portrait { transform: translate(-50%, -50%) scale(.58); clip-path: inset(0 50% 0 0); opacity: 0; transition-duration: .55s, .4s, .4s; }
[data-view="dev"] .world { opacity: 0; transition-duration: .35s; }
[data-view="dev"] .backdrop::after { opacity: 0; }

.dev-stage-backdrop {
  position: fixed; z-index: 18; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 43% 49%, #103040 0%, #071219 46%, #000 84%);
  opacity: 0; transition: opacity .42s ease;
}
.dev-stage-backdrop[hidden], .dev-transition[hidden] { display: none; }
.dev-stage-backdrop.is-active { opacity: 1; }
.dev-transition {
  position: fixed; z-index: 19; top: 50%; left: 50%; width: min(112dvh, 88vw); aspect-ratio: 1;
  overflow: hidden; pointer-events: none; opacity: 0;
  transform: translate(-50%, -50%);
  -webkit-mask-image: radial-gradient(ellipse 68% 64% at 50% 50%, #000 38%, transparent 76%);
  mask-image: radial-gradient(ellipse 68% 64% at 50% 50%, #000 38%, transparent 76%);
  transition: transform .7s cubic-bezier(.22, 1, .36, 1), top .7s cubic-bezier(.22, 1, .36, 1), opacity .28s ease;
}
.dev-transition.is-playing { opacity: 1; }
.dev-transition.is-fading { opacity: 0; }
.dev-transition.is-docked { transform: translate(-50%, -50%) translateX(-8vw) scale(.92); }
@media(min-width:901px) {
  .dev-transition.is-sliding { transform:translate(-50%,-50%) translateX(-8vw) scale(.92); transition:transform 1.1s cubic-bezier(.22,1,.36,1),opacity .28s ease; }
}
.dev-transition video { display: block; width: 100%; height: 100%; object-fit: cover; }
.dev-transition.is-failed, .dev-transition.is-finished { background: url('./Assets/left-final.jpg') center / cover no-repeat; }
.dev-transition #dev-transition-video { opacity:1; transition:opacity .35s ease; }
.dev-transition.is-finished #dev-transition-video { opacity:0; }
.dev-transition.is-failed #dev-transition-video { visibility:hidden; }
.dev-transition #dev-scroll-frames { position:absolute; inset:0; width:100%; height:100%; opacity:var(--robot-reveal,0); pointer-events:none; }
.dev-transition.robot-active .jacket-electric { display:none; }
.jacket-electric { position:absolute; inset:0; width:100%; height:100%; color:#b8efff; opacity:0; pointer-events:none; mix-blend-mode:screen; filter:drop-shadow(0 0 3px #49caff); }
.jacket-electric path { stroke-dasharray:12 88; stroke-dashoffset:100; opacity:0; }
@media(prefers-reduced-motion:no-preference) {
  [data-view="dev"] .dev-transition:is(.is-finished,.is-failed).is-docked .jacket-electric { opacity:.7; }
  [data-view="dev"] .dev-transition:is(.is-finished,.is-failed).is-docked .jacket-electric path { animation:jacket-current 5.8s linear infinite; }
  .jacket-electric path:nth-child(2) { animation-delay:-2.2s !important; }
  .jacket-electric path:nth-child(3) { animation-delay:-3.8s !important; }
  .jacket-electric path:nth-child(4) { animation-delay:-1.1s !important; }
  .jacket-electric path:nth-child(5) { animation-delay:-4.6s !important; }
}
@keyframes jacket-current {
  0%,58% { stroke-dashoffset:100; opacity:0; }
  62% { opacity:.3; }
  70% { opacity:.85; }
  82% { opacity:.45; }
  91% { stroke-dashoffset:0; opacity:.65; }
  96%,100% { stroke-dashoffset:-15; opacity:0; }
}
.dev-smoke-burst {
  position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: radial-gradient(ellipse 37% 35% at 48% 53%, #c4f6ffb8, #54bff48a 34%, transparent 100%);
  mix-blend-mode: screen;
}
.dev-transition.is-playing:not(.is-docked) .dev-smoke-burst { animation: dev-burst .72s ease-out both; }
@keyframes dev-burst {
  0% { opacity: 0; transform: scale(.32); }
  22% { opacity: .78; transform: scale(.7); }
  65% { opacity: .5; transform: scale(1.3); }
  100% { opacity: 0; transform: scale(1.65); }
}
.artist-cigarette { position:absolute; z-index:1; inset:0; width:100%; height:100%; pointer-events:none; opacity:0; transition:opacity .7s ease; }
[data-view="artist"] .artist-transition.is-settled .artist-cigarette { opacity:1; }
.cigarette-tip { filter:drop-shadow(0 0 2px #f85b27); }
.cigarette-smoke path { stroke:#e2e4e9; stroke-width:6; opacity:0; stroke-dasharray:85 220; stroke-dashoffset:85; filter:blur(2.4px); }
@media(prefers-reduced-motion:no-preference) {
  [data-view="artist"] .is-settled .cigarette-smoke path { animation:cigarette-wisp 6s linear infinite; }
  [data-view="artist"] .is-settled .cigarette-smoke path:nth-child(2) { animation-delay:-2s; stroke-width:8; }
  [data-view="artist"] .is-settled .cigarette-smoke path:nth-child(3) { animation-delay:-4s; }
}
@keyframes cigarette-wisp {
  0% { stroke-dashoffset:85; opacity:0; }
  20% { opacity:.75; }
  55% { opacity:.5; }
  100% { stroke-dashoffset:-200; opacity:0; }
}
.outfit-embers { position:absolute; z-index:1; inset:0; overflow:hidden; pointer-events:none; opacity:0; }
.outfit-embers i { position:absolute; left:var(--ember-x,30%); top:76%; width:5px; height:7px; border-radius:50%; background:#ffe1a0; box-shadow:0 0 7px 2px #ff8b38,0 0 17px 3px #ec462577; opacity:0; }
.outfit-embers i:nth-child(1) { --ember-x:22%; --drift:-18px; --delay:-1s; }
.outfit-embers i:nth-child(2) { --ember-x:72%; --drift:23px; --delay:-4s; }
.outfit-embers i:nth-child(3) { --ember-x:35%; --drift:-25px; --delay:-6s; }
.outfit-embers i:nth-child(4) { --ember-x:80%; --drift:12px; --delay:-2s; }
.outfit-embers i:nth-child(5) { --ember-x:18%; --drift:20px; --delay:-5s; }
.outfit-embers i:nth-child(6) { --ember-x:65%; --drift:28px; --delay:-7s; }
.outfit-embers i:nth-child(7) { --ember-x:41%; --drift:-32px; --delay:-3s; width:2px; height:2px; }
.outfit-embers i:nth-child(8) { --ember-x:57%; --drift:30px; --delay:-.5s; width:2px; height:3px; }
.outfit-embers i:nth-child(9) { --ember-x:29%; --drift:-14px; --delay:-4.8s; width:2px; height:2px; }
.outfit-embers i:nth-child(10) { --ember-x:76%; --drift:18px; --delay:-6.4s; width:2px; height:2px; }
@media(prefers-reduced-motion:no-preference) {
  [data-view="artist"] .artist-transition.is-docked .outfit-embers,
  [data-view="artist"] .artist-outfit .outfit-embers { opacity:1; }
  [data-view="artist"] .outfit-embers i { animation:outfit-ember-rise 5s var(--delay) linear infinite; }
}
@keyframes outfit-ember-rise {
  0%,10% { opacity:0; transform:translate3d(0,0,0) scale(.6); }
  25% { opacity:1; }
  60% { opacity:.8; }
  90%,100% { opacity:0; transform:translate3d(var(--drift),-280px,0) scale(.3); }
}
.artist-impact .portrait, .artist-impact .artist-transition { animation: artist-camera-shake .65s linear both; }
@keyframes artist-camera-shake {
  0%, 100% { translate: 0 0; }
  12% { translate: -4px 2px; }
  25% { translate: 6px -3px; }
  38% { translate: -7px 3px; }
  52% { translate: 5px -2px; }
  66% { translate: -3px 2px; }
  82% { translate: 2px -1px; }
}

.artist-stage-backdrop { position: fixed; z-index: 18; inset: 0; background: radial-gradient(ellipse at 72% 52%, #1b1115 0%, #09080a 45%, #000 83%); opacity: 0; transition: opacity .5s ease; pointer-events: none; }
.artist-stage-backdrop[hidden] { display: none; }
.artist-stage-backdrop.is-active { opacity: 1; }
.artist-transition {
  position: fixed; z-index: 19; top: 50%; left: 50%; width: min(112dvh, 88vw); aspect-ratio: 1; overflow: hidden;
  transform: translate(-50%, -50%); opacity: 0; pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 68% 64% at 50% 50%, #000 38%, transparent 76%);
  mask-image: radial-gradient(ellipse 68% 64% at 50% 50%, #000 38%, transparent 76%);
  transition: left .52s cubic-bezier(.22, 1, .36, 1), top .52s cubic-bezier(.22, 1, .36, 1), width .52s cubic-bezier(.22, 1, .36, 1), opacity .18s ease;
}
.artist-transition[hidden] { display: none; }
.artist-transition.is-playing { opacity: 1; }
.artist-transition.is-fading { opacity: 0; }
.artist-transition.is-docked { left: 73%; width: min(96dvh, 59vw); }
.artist-transition video { display: block; width: 100%; height: 100%; object-fit: cover; }
.artist-transition #artist-mobile-frames { display:none; }
.transition-embers { position: absolute; z-index: 2; inset: 0; overflow: hidden; opacity: 0; pointer-events: none; mix-blend-mode: screen; transition: opacity .12s ease; }
.artist-transition.is-playing:not(.is-docked) .transition-embers { opacity: 1; }
.transition-embers::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 52% 52%, #fff1bdcf 0%, #ff9a48a8 7%, #f2442866 18%, transparent 39%); opacity: 0; transform: scale(.3); }
.artist-transition.is-playing .transition-embers::before { animation: transition-fire-flash .7s ease-out both; }
.transition-embers i { position: absolute; left: var(--x); top: var(--y); width: var(--size); height: calc(var(--size) * 2.8); border-radius: 50%; background: #fff0b8; box-shadow: 0 0 9px 3px #ff9a4f, 0 0 26px 8px #ed492bb3; opacity: 0; transform: rotate(24deg) scale(.3); }
.artist-transition.is-playing .transition-embers i { animation: transition-ember .78s ease-out var(--delay) both; }
.transition-embers i:nth-child(1) { --x: 50%; --y: 54%; --size: 5px; --delay: .01s; --dx: -105px; --dy: -155px; }
.transition-embers i:nth-child(2) { --x: 52%; --y: 51%; --size: 6px; --delay: .04s; --dx: 145px; --dy: -195px; }
.transition-embers i:nth-child(3) { --x: 54%; --y: 57%; --size: 4px; --delay: .08s; --dx: 215px; --dy: -115px; }
.transition-embers i:nth-child(4) { --x: 49%; --y: 49%; --size: 5px; --delay: .12s; --dx: 80px; --dy: -225px; }
.transition-embers i:nth-child(5) { --x: 53%; --y: 55%; --size: 6px; --delay: .02s; --dx: 250px; --dy: 45px; }
.transition-embers i:nth-child(6) { --x: 51%; --y: 48%; --size: 4px; --delay: .15s; --dx: -70px; --dy: -190px; }
.transition-embers i:nth-child(7) { --x: 55%; --y: 53%; --size: 5px; --delay: .07s; --dx: 190px; --dy: -240px; }
.transition-embers i:nth-child(8) { --x: 50%; --y: 58%; --size: 4px; --delay: .18s; --dx: 280px; --dy: -80px; }
.transition-embers i:nth-child(9) { --x: 53%; --y: 46%; --size: 4px; --delay: .11s; --dx: 115px; --dy: -140px; }
.transition-embers i:nth-child(10) { --x: 49%; --y: 56%; --size: 5px; --delay: .05s; --dx: -135px; --dy: -75px; }
.transition-embers i:nth-child(11) { --x: 54%; --y: 50%; --size: 6px; --delay: .14s; --dx: 235px; --dy: 95px; }
.transition-embers i:nth-child(12) { --x: 51%; --y: 52%; --size: 4px; --delay: .2s; --dx: 175px; --dy: -185px; }
@keyframes transition-fire-flash { 0% { opacity: 0; transform: scale(.3); } 18% { opacity: 1; transform: scale(.85); } 48% { opacity: .8; transform: scale(1.12); } 100% { opacity: 0; transform: scale(1.4); } }
@keyframes transition-ember { 0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(24deg) scale(.3); } 18% { opacity: 1; } 60% { opacity: 1; } 100% { opacity: 0; transform: translate3d(var(--dx), var(--dy), 0) rotate(42deg) scale(.6); } }

.artist-story { position: fixed; z-index: 20; inset: 0; overflow-y: auto; isolation: isolate; color: var(--text); }
.artist-story[hidden] { display: none; }
.artist-story::before { content: ""; position: fixed; z-index: -1; inset: 0; background: linear-gradient(90deg, #000 0%, #000 22%, #000e 39%, #0009 49%, transparent 64%); opacity: 0; transition: opacity .38s ease .09s; }
.artist-story.is-visible::before { opacity: 1; }
.artist-story[data-video="active"] .artist-outfit { display: none; }
.artist-back { position: relative; z-index: 3; display: inline-flex; align-items: center; gap: 14px; margin: 29px 0 0 clamp(24px, 4vw, 68px); padding: 10px 0; border: 0; background: transparent; color: #f4d7d2; cursor: pointer; font-size: 14px; opacity: 0; transform: translateY(-12px); transition: opacity .25s ease .35s, transform .25s ease .35s; }
.artist-back:hover { color: #fff; }
.artist-back:active { transform: translateY(1px); }
.artist-story-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(430px, .95fr); align-items: center; width: min(100%, 1500px); min-height: calc(100dvh - 68px); margin: 0 auto; padding: 0 clamp(26px, 5.4vw, 90px); }
.artist-biography { position: relative; z-index: 2; max-width: 610px; padding: 30px 0 70px; opacity: 0; transform: translateY(36px); transition: opacity .4s ease .25s, transform .45s cubic-bezier(.22, 1, .36, 1) .25s; }
.artist-intro { margin: 0 0 24px; color: #f19886; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.artist-biography h1 { margin: 0 0 35px; font-size: clamp(58px, 7vw, 112px); line-height: .86; letter-spacing: -.075em; }
.artist-biography h1 span { color: #ef9b89; }
.artist-biography > p:not(.artist-intro) { max-width: 53ch; color: #d2c9c9; font-size: clamp(15px, 1.25vw, 18px); line-height: 1.64; }
.artist-biography > p + p { margin-top: 18px; }
.artist-fields { display: flex; flex-wrap: wrap; gap: 18px 30px; margin-top: 38px; padding-top: 17px; border-top: 1px solid #f198865c; color: #f2d5d0; font-size: 13px; font-weight: 700; }
.artist-outfit { position: relative; align-self: end; height: min(88dvh, 930px); margin-left: -4vw; opacity: 0; transform: translateY(12%) scale(1.27); transform-origin: center bottom; transition: opacity .4s ease .18s, transform .65s cubic-bezier(.22, 1, .36, 1) .12s; }
.artist-outfit img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
.artist-story.is-visible .artist-back, .artist-story.is-visible .artist-biography, .artist-story.is-visible .artist-outfit { opacity: 1; transform: none; }

.world-panel { position: fixed; z-index: 20; inset: 0; overflow-y: auto; background: #0a0e15; }
.world-panel[hidden] { display: none; }
.panel-inner { min-height: 100dvh; padding: 38px clamp(24px, 6vw, 110px) 80px; background: radial-gradient(ellipse at 90% 50%, var(--panel-glow), transparent 55%); }
.back-button { display: inline-flex; gap: 14px; align-items: center; padding: 10px 0; color: var(--text); border: 0; background: transparent; cursor: pointer; font-size: 14px; }
.back-button:hover { color: var(--panel-accent); }
.panel-content { max-width: 1020px; margin: clamp(90px, 15vh, 170px) auto 0; }
.panel-kicker { color: var(--panel-accent); letter-spacing: .15em; text-transform: uppercase; font-size: 12px; }
.panel-content h1 { font-size: clamp(74px, 13vw, 190px); line-height: .9; letter-spacing: -.09em; margin: 20px 0 30px; }
.panel-intro { color: #d8dce2; font-size: clamp(18px, 2vw, 26px); line-height: 1.45; max-width: 630px; }
.panel-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: clamp(70px, 13vh, 140px); }
.panel-links[hidden], .services-section[hidden] { display: none; }
.panel-link { display: block; border-top: 1px solid #ffffff58; padding: 19px 4px 36px; color: var(--text); font-size: clamp(24px, 2.8vw, 38px); letter-spacing: -.045em; }
.services-section {
  display: grid; grid-template-columns: minmax(220px, .85fr) minmax(0, 1.5fr);
  gap: clamp(50px, 8vw, 140px); max-width: 1200px;
  margin: clamp(100px, 15vh, 180px) auto 40px;
}
.services-heading h2 { margin: 0; font-size: clamp(42px, 5vw, 74px); line-height: 1; letter-spacing: -.065em; }
.services-heading p { max-width: 260px; margin: 24px 0 0; color: #b8c2cc; font-size: 16px; line-height: 1.55; }
.service { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .8fr); gap: 24px; border-top: 1px solid #7aa8c85b; padding: 25px 0 38px; }
.service h3 { margin: 0; color: #e6f3fb; font-size: clamp(23px, 2.5vw, 36px); line-height: 1.1; letter-spacing: -.045em; }
.service p { margin: 2px 0 0; color: #b9c6d2; font-size: 15px; line-height: 1.55; }
[data-view="dev"] { --panel-accent: #8ac9ed; --panel-glow: #1245656b; }
[data-view="artist"] { --panel-accent: #f7a092; --panel-glow: #7030376b; }

[data-view="dev"] .world-panel { background: transparent; }
[data-view="dev"] .panel-inner {
  position: relative; padding: 29px clamp(24px, 4vw, 68px) 120px;
  background: linear-gradient(to bottom, transparent 0, transparent 86dvh, #05090d 107dvh, #05090d 100%);
}
[data-view="dev"] .back-button { position: relative; z-index: 3; color: #d3ecf8; }
[data-view="dev"] .back-button:hover { color: #fff; }
.dev-hero { position: relative; min-height: calc(100dvh - 68px); }
[data-view="dev"] .panel-content {
  position: absolute; z-index: 2; right: 0; bottom: clamp(28px, 6vh, 76px);
  width: min(390px, 30vw); margin: 0; text-align: right;
}
[data-view="dev"] .panel-kicker { color: #84cdef; font-size: 11px; font-weight: 700; letter-spacing: .22em; }
[data-view="dev"] .panel-content h1 { margin: 8px 0 15px; font-size: clamp(72px, 8.5vw, 132px); }
[data-view="dev"] .panel-intro { margin: 0 0 0 auto; max-width: 30ch; font-size: clamp(15px, 1.2vw, 19px); color: #c3d7e1; line-height: 1.55; }
.dev-orbit { position: absolute; z-index: 2; inset: 0; opacity: 0; pointer-events: none; transition: opacity .65s ease .2s; }
[data-view="dev"] .world-panel:not([hidden]) .dev-orbit { opacity: 1; }
.dev-skill {
  position: absolute; display: block; width: max-content; max-width: 24vw;
  color: #e3f7ff; font-size: clamp(17px, 2vw, 31px); font-weight: 700;
  letter-spacing: -.055em; line-height: 1.03; text-shadow: 0 2px 18px #000, 0 0 24px #0b729270;
  transform: translate3d(0, 0, 0);
}
.dev-skill::before { content: ""; display: block; width: 23px; height: 1px; margin-bottom: 9px; background: #77d9f4; box-shadow: 0 0 10px #5dc8eb; }
.dev-skill:nth-child(1) { left: 4%; top: 18%; }
.dev-skill:nth-child(2) { left: 1%; top: 49%; }
.dev-skill:nth-child(3) { left: 10%; top: 76%; }
.dev-skill:nth-child(4) { right: 7%; top: 15%; }
.dev-skill:nth-child(5) { right: 2%; top: 38%; }
.dev-skill:nth-child(6) { right: 8%; top: 52%; }
[data-view="dev"] .services-section { position: relative; z-index: 2; margin-top: 96px; padding-top: 92px; border-top: 1px solid #5589a34d; }
[data-view="dev"] .services-heading h2 { color: #eef9fc; }
/* Services and robot share the panel scroll timeline. Preserve normal document scrolling. */
@media(min-width:901px) {
  [data-view="dev"] .panel-inner { background:linear-gradient(90deg,transparent 0%,transparent 33%,#05090dd9 55%,#05090d 80%); }
  [data-view="dev"] .services-section { display:block; width:48%; margin-left:auto; margin-right:0; margin-top:20px; padding-top:50px; }
  [data-view="dev"] .service { grid-template-columns:1fr; gap:12px; padding:38px 0; }
  [data-view="dev"] .services-heading { display:block; position:static; margin-bottom:40px; }
  [data-view="dev"] .services-heading p { margin-top:16px; }
  [data-view="dev"] .dev-transition.is-docked { transform:translate(-50%,-50%) translateX(calc(-8vw - var(--dev-service-dock,0)*16vw)) scale(.92); }
  [data-view="dev"] .dev-transition.is-docked.robot-active { transition:opacity .28s ease; }
}
@media(prefers-reduced-motion:no-preference) {
  [data-view="dev"] .services-heading,[data-view="dev"] .service { opacity:calc(.15 + var(--service-in,1)*.85); transform:translate3d(0,calc((1 - var(--service-in,1))*45px),0); }
}

@media (prefers-reduced-motion: no-preference) {
  [data-view="dev"] .dev-skill { animation: dev-skill-float 5.4s ease-in-out infinite alternate; }
  [data-view="dev"] .dev-skill:nth-child(2n) { animation-duration: 6.7s; animation-direction: alternate-reverse; }
  [data-view="dev"] .dev-skill:nth-child(3n) { animation-duration: 4.9s; animation-delay: -.8s; }
}
@keyframes dev-skill-float { from { transform: translate3d(-5px, 7px, 0) rotate(-1deg); } to { transform: translate3d(8px, -9px, 0) rotate(1deg); } }

@media (prefers-reduced-motion: no-preference) {
  [data-side="dev"] .smoke-one { animation: smoke-drift 3.8s ease-in-out infinite alternate; }
  [data-side="dev"] .smoke-two { animation: smoke-drift 5.1s ease-in-out infinite alternate-reverse; }
  [data-side="dev"] .smoke-three { animation: smoke-curl 4.4s ease-in-out infinite alternate; }
  [data-side="dev"] .blue-sparks i { animation: blue-spark-rise calc(2.2s + var(--i) * .17s) ease-out infinite; animation-delay: calc(var(--i) * -.31s); }
  [data-side="artist"] .flame-one { animation: fire-rise 2.7s ease-in-out infinite alternate; }
  [data-side="artist"] .flame-two { animation: fire-rise 3.5s ease-in-out infinite alternate-reverse; }
  [data-side="artist"] .embers i { animation: ember-rise calc(2s + var(--i) * .2s) linear infinite; animation-delay: calc(var(--i) * -.27s); }
  .world-panel:not([hidden]) .panel-content { animation: panel-enter .6s cubic-bezier(.2,.8,.2,1) both; }
}
@keyframes smoke-drift { from { transform: translate(-12%, 16%) rotate(-8deg) scale(.72); } to { transform: translate(16%, -19%) rotate(10deg) scale(1.24); } }
@keyframes smoke-curl { from { transform: translate(-18%, 22%) rotate(-20deg) scale(.7); } to { transform: translate(14%, -16%) rotate(13deg) scale(1.18); } }
@keyframes blue-spark-rise { 0%, 100% { opacity: 0; transform: translate3d(-4px, 14px, 0) scale(.5); } 25% { opacity: .9; } 65% { opacity: .55; } 90% { opacity: 0; transform: translate3d(18px, -65px, 0) scale(1.15); } }
@keyframes fire-rise { from { transform: translate(5%, 9%) scale(.85); } to { transform: translate(-3%, -9%) scale(1.12); } }
@keyframes ember-rise { from { transform: translateY(25px) rotate(22deg); opacity: 0; } 20% { opacity: 1; } to { transform: translateY(-170px) rotate(25deg); opacity: 0; } }
@keyframes panel-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 900px) {
  [data-view="artist"] .topbar, [data-view="dev"] .topbar { opacity:0; pointer-events:none; }
  [data-view="artist"] .artist-story:not([data-video="active"]) { background:#000; }
  .artist-transition.is-mobile-frames { background:url('./Assets/right-poster.jpg') center / cover no-repeat; }
  .artist-transition.is-mobile-frames video { visibility:hidden; }
  .artist-transition.is-mobile-frames #artist-mobile-frames { display:block; position:absolute; inset:0; width:100%; height:100%; opacity:0; transition:opacity .12s ease; }
  .artist-transition.is-mobile-frames.has-first-frame #artist-mobile-frames { opacity:1; }
  .dev-transition { width: min(110vw, 740px); top: 43%; }
  .dev-transition.is-docked { transform: translate(-50%, -50%) scale(.88); top: 29%; }
  [data-view="dev"] .world-panel::before { content:""; position:fixed; inset:0; pointer-events:none; background:linear-gradient(to bottom,transparent 0%,transparent 42%,#05090d 72%,#05090d 100%); }
  [data-view="dev"] .panel-inner { padding-bottom: 80px; background:transparent; }
  .dev-hero { min-height: 0; display: flex; flex-direction: column; padding: max(53dvh, 400px) 0 0; }
  [data-view="dev"] .panel-content { position: relative; right: auto; bottom: auto; width: min(100%, 620px); margin: 0; text-align: left; }
  [data-view="dev"] .panel-content h1 { font-size: clamp(74px, 13vw, 118px); }
  [data-view="dev"] .panel-intro { max-width: 42ch; margin: 0; }
  .dev-orbit { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 30px; margin-top: 54px; order: 2; }
  .dev-skill { position: relative; left: auto !important; right: auto !important; top: auto !important; width: auto; max-width: 100%; min-height: 56px; font-size: clamp(19px, 3vw, 27px); overflow-wrap: break-word; }
  [data-view="dev"] .services-section { margin-top: 72px; padding-top: 72px; }
  .artist-transition { width: min(110vw, 740px); top: 43%; }
  .artist-transition.is-docked { left: 50%; top: 26%; width: min(100vw, 60dvh); }
  .artist-story::before { background: linear-gradient(180deg, transparent 0%, transparent 43%, #000b 56%, #000 69%); }
  .artist-story[data-video="active"] .artist-biography { grid-row: 1; margin-top: 52dvh; }
  .artist-story::before, .artist-back, .artist-biography, .artist-outfit { transition-duration: 0s; transition-delay: 0s; }
  .artist-story-inner { grid-template-columns: 1fr; padding: 0 28px 64px; }
  .artist-outfit { grid-row: 1; height: min(65dvh, 680px); margin: -24px auto 0; width: min(100%, 560px); }
  .artist-biography { grid-row: 2; max-width: 650px; padding: 24px 0 20px; }
  .artist-biography h1 { font-size: clamp(58px, 11vw, 92px); }
  .backdrop::before, .backdrop::after { background-size: min(110vw, 740px) auto; }
  .portrait { width: min(110vw, 740px); top: 43%; }
  .world-inner { width: auto; top: auto; bottom: 70px; transform: none; }
  .world-dev .world-inner { left: 28px; }
  .world-artist .world-inner { right: 28px; }
  .world-title { font-size: clamp(48px, 7.6vw, 76px); }
  .world-kicker { font-size: 10px; }
  .world-summary { font-size: 12px; margin-top: 14px; }
  .world-action { margin-top: 18px; font-size: 12px; }
  .home-caption { display: none; }
  .services-section { grid-template-columns: 1fr; gap: 45px; }
  .services-heading p { max-width: 500px; }
}
@media (max-width: 600px) {
  .dev-transition { width: 122vw; top: 39%; }
  .dev-transition.is-docked { top: 29%; transform: translate(-50%, -50%) scale(.82); }
  [data-view="dev"] .panel-inner { padding: 20px 20px 76px; background:transparent; }
  .dev-hero { padding-top: max(48dvh, 310px); }
  [data-view="dev"] .panel-content h1 { font-size: clamp(70px, 20vw, 96px); }
  [data-view="dev"] .panel-intro { font-size: 16px; }
  .dev-orbit { grid-template-columns: 1fr; gap: 15px; margin-top: 45px; }
  .dev-skill { font-size: clamp(17px, 4.7vw, 23px); min-height: 62px; }
  .dev-skill::before { margin-bottom: 7px; }
  [data-view="dev"] .services-section { margin-top: 42px; padding-top: 52px; }
  .artist-transition { width: 122vw; top: 39%; }
  .artist-transition.is-docked { width: min(100vw, 60dvh); top: 27%; }
  .artist-back { margin: 20px 0 0 20px; }
  .artist-story-inner { padding: 0 20px 56px; }
  .artist-outfit { height: 58dvh; min-height: 410px; width: 112%; margin: -20px 0 0 -6%; }
  .artist-biography h1 { font-size: clamp(54px, 14vw, 74px); }
  .artist-biography > p:not(.artist-intro) { font-size: 16px; }
  .backdrop::before, .backdrop::after { display: none; }
  .topbar { height: 62px; padding: 0 20px; }
  .topbar-note { font-size: 9px; }
  .portrait { width: 122vw; top: 39%; }
  .portal { min-height: 100dvh; }
  .world { top: 0; bottom: 0; }
  .world-inner { bottom: max(38px, env(safe-area-inset-bottom)); }
  .world-dev .world-inner { left: 20px; align-items: flex-start; }
  .world-artist .world-inner { right: 20px; align-items: flex-end; }
  .world-title { font-size: clamp(42px, 11vw, 64px); }
  .world-kicker { font-size: 9px; letter-spacing: .1em; }
  .world-summary { max-width: 140px; line-height: 1.4; }
  .world-action { gap: 7px; white-space: normal; }
  .world-action span { display: none; }
  .smoke { width: 76vw; left: -30%; }
  .smoke-three { left: 0; top: 13%; width: 66vw; }
  .flame { width: 76vw; right: -30%; }
  .panel-links { grid-template-columns: 1fr; gap: 0; margin-top: 60px; }
  .panel-content { margin-top: 90px; }
  .panel-link { padding: 19px 4px 25px; }
  .services-section { margin-top: 90px; }
  .service { grid-template-columns: 1fr; gap: 8px; padding: 22px 0 30px; }
  .service p { max-width: 34ch; }
}
@media (prefers-reduced-motion: reduce) {
  .transition-embers, .dev-smoke-burst { display: none; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
