*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#02020a;color:#d7d2ff;font-family:"Courier New",monospace}body{display:grid;place-items:safe center;padding:22px;padding-top:calc(22px + var(--announce-h, 0px));background:radial-gradient(circle at 50% 30%,#101133,#02020a 65%)}.shell{width:min(1180px,100%);aspect-ratio:16/10;border:2px solid #1b2b65;background:#050511;box-shadow:0 0 0 4px #050716,0 0 42px #273bff88}.scene{position:relative;width:100%;height:100%;overflow:hidden}.bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.12) brightness(.58);transform:scale(1.01);background:#04040d}.mist{position:absolute;inset:-10%;background:radial-gradient(circle at 58% 52%,rgba(94,72,255,.24),transparent 28%),radial-gradient(circle at 25% 80%,rgba(33,170,80,.13),transparent 22%);filter:blur(18px);animation:mist 8s infinite alternate ease-in-out}.scanlines,.vignette{position:absolute;inset:0;pointer-events:none}.scanlines{background:repeating-linear-gradient(to bottom,rgba(255,255,255,.055) 0 1px,transparent 1px 4px);mix-blend-mode:overlay;opacity:.58}.vignette{background:radial-gradient(circle at 58% 45%,transparent 0 42%,rgba(0,0,0,.82) 84%)}.nav-panel{position:absolute;left:34px;top:34px;width:260px;z-index:2}.logo-mark{font-family:Georgia,serif;font-weight:900;font-size:42px;line-height:.86;letter-spacing:-3px;color:#e9e6ff;text-shadow:3px 3px #120044,0 0 12px #7b61ff;margin-bottom:32px}.nav-panel nav{display:grid;gap:10px}.nav-panel a,.content-panel,.player{border:1px solid #34427e;background:linear-gradient(90deg,rgba(23,22,72,.86),rgba(0,0,0,.62));box-shadow:inset 0 0 0 1px #000,0 0 18px rgba(76,80,255,.16);backdrop-filter:blur(2px)}.nav-panel a{display:block;padding:13px 18px;color:#dad7ff;text-decoration:none;font-size:24px;letter-spacing:1px;text-shadow:2px 2px #000}.nav-panel a:hover,.nav-panel .active{background:linear-gradient(90deg,rgba(76,65,230,.72),rgba(10,8,28,.72));color:#fff}.top-copy{position:absolute;right:52px;top:42px;text-align:right;z-index:2;color:#a99bff;text-shadow:2px 2px #000;font-size:20px;line-height:1.2}.top-copy p{margin:0 0 8px}.top-copy-sub{font-size:.62em;letter-spacing:1px;opacity:.55;text-transform:none}.content-panel{position:absolute;right:34px;bottom:114px;width:470px;z-index:2;padding:0 22px 28px;min-height:146px}.panel-title{display:inline-block;margin:-1px 0 12px -12px;padding:4px 14px;border:1px solid #34427e;border-top:0;background:#070717;color:#7468ff;font-size:18px}h1,h2,p{margin:0}.content-panel h2,.player h1{font-weight:400;text-transform:lowercase;letter-spacing:2px;text-shadow:2px 2px #000}.content-panel h2{font-size:22px;margin:10px 0 16px}.content-panel p,.content-panel a{font-size:18px;line-height:1.35;color:#d0ccef}.content-panel a{color:#8b80ff}.player{position:absolute;left:34px;bottom:98px;width:470px;z-index:2;padding:0 12px 12px}.player-grid{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center}.cover{width:120px;height:120px;object-fit:cover;border:2px solid #283566;filter:saturate(.85) contrast(1.2);transform-style:preserve-3d;animation:coverSpin 5s infinite ease-in-out}.player p{font-size:20px;margin-top:8px;color:#b8b3c8}.controls{display:flex;align-items:center;gap:8px;margin-top:20px;color:#bab5df}.controls button{background:#070717;border:1px solid #34427e;color:#8b80ff;font-size:16px;min-width:30px;height:26px;cursor:pointer}.controls button:hover{color:#fff;border-color:#8b80ff}.bar{height:14px;flex:1;border:1px solid #33406d;background:#060713;box-shadow:inset 0 0 8px #000}.bar i{display:block;width:0;height:100%;background:linear-gradient(90deg,#4a38ca,#927cff)}.links{position:absolute;left:0;right:0;bottom:0;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 24px 8px;z-index:2;border-top:1px solid #141d48;background:rgba(4,5,18,.8);color:#767086}.links-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:28px}.links a{color:#b8b3c8;text-decoration:none}.links a:hover{color:white}.links-credit{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#454072}@keyframes coverSpin{0%,100%{transform:perspective(380px) rotateY(-8deg) translateY(0)}50%{transform:perspective(380px) rotateY(11deg) translateY(-3px)}}@keyframes mist{from{transform:translate(-1%,1%) scale(1)}to{transform:translate(1%,-1%) scale(1.05)}}@media(max-width:850px){body{padding:0}.shell{aspect-ratio:auto;min-height:100vh;border:0}.nav-panel{position:relative;left:auto;top:auto;width:auto;padding:26px}.logo-mark{font-size:36px}.nav-panel nav{grid-template-columns:1fr 1fr}.top-copy{display:none}.player,.content-panel{position:relative;left:auto;right:auto;bottom:auto;width:auto;margin:20px 26px}.links{position:relative;min-height:auto;padding:18px}.links-row{gap:14px 24px}.scene{min-height:100vh}.bg-video{opacity:.72}}

/* player placement + window behavior */
.player{
  left:34px;
  bottom:78px;
  width:420px;
  min-height:0;
  padding:0 10px 10px;
  cursor:default;
  user-select:none;
  transition:width .18s ease, opacity .18s ease, transform .18s ease;
}
.player-titlebar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  cursor:grab;
  margin-bottom:6px;
}
.player-titlebar:active{cursor:grabbing}
.player .panel-title{margin:-1px 0 0 -10px}
.mini-toggle{
  margin-top:5px;
  width:26px;
  height:22px;
  border:1px solid #34427e;
  background:#060713;
  color:#8b80ff;
  font-family:"Courier New",monospace;
  cursor:pointer;
  line-height:16px;
}
.mini-toggle:hover{color:#fff;border-color:#8b80ff}
.player-grid{grid-template-columns:92px 1fr;gap:14px}.cover{width:92px;height:92px}.player h1{font-size:32px}.player p{font-size:16px}.controls{margin-top:14px;gap:7px}.controls button{min-width:28px;height:24px}.bar{height:12px}
.player.minimized{width:235px;padding-bottom:0}.player.minimized .player-body{display:none}.player.minimized .mini-toggle{line-height:18px}.player.dragging{transition:none;opacity:.92}
@media(max-width:850px){.player{width:auto}.player.minimized{width:auto}.player-titlebar{cursor:default}}

/* v4: default floating player placement, clearer drag affordance, y2k cursor */
html, body, a, button { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cfilter id='g'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1.4' flood-color='%238b80ff' flood-opacity='1'/%3E%3C/filter%3E%3Cpath filter='url(%23g)' d='M5 3 L23 16 L14 18 L18 28 L14 30 L10 20 L4 27 Z' fill='%23f7f4ff' stroke='%23222172' stroke-width='1.4'/%3E%3Cpath d='M9 7 L19 15 L12 16 L15 24 L13 25 L9 16 L6 20 Z' fill='%238b80ff' opacity='.55'/%3E%3C/svg%3E") 5 3, auto; }
a:hover, button:hover, .menu-link:hover { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cfilter id='g'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='2' flood-color='%23ffffff' flood-opacity='.9'/%3E%3C/filter%3E%3Cpath filter='url(%23g)' d='M6 3 L24 15 L16 18 L21 27 L16 30 L11 21 L5 27 Z' fill='%239effff' stroke='%23ffffff' stroke-width='1.2'/%3E%3C/svg%3E") 5 3, pointer; }

.player{
  left:auto;
  right:78px;
  top:208px;
  bottom:auto;
  width:430px;
}
.player-titlebar{
  min-height:29px;
  align-items:center;
  padding:0 6px 0 0;
  background:linear-gradient(90deg,rgba(22,18,89,.94),rgba(4,4,18,.88));
  border-bottom:1px solid #34427e;
  box-shadow:inset 0 1px rgba(168,160,255,.18);
  cursor:move;
}
.player-titlebar:hover{background:linear-gradient(90deg,rgba(61,50,187,.95),rgba(8,7,29,.88));}
.player-titlebar:active{cursor:grabbing}
.player .panel-title{border:0;border-right:1px solid #34427e;border-bottom:1px solid #34427e;background:transparent;margin:0 0 -1px -10px;color:#aaa2ff}
.drag-hint{margin-left:auto;margin-right:10px;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#7770bb;text-shadow:1px 1px #000;opacity:.72}.player-titlebar:hover .drag-hint{opacity:1;color:#d8d3ff}
.grip{display:grid;grid-template-columns:repeat(3,3px);gap:3px;margin-right:10px;opacity:.8}.grip i{width:3px;height:3px;background:#8178ff;box-shadow:0 0 5px #8178ff;display:block}.player-titlebar:hover .grip i{background:#fff;box-shadow:0 0 6px #fff}
.mini-toggle{margin-top:0;cursor:pointer}.player.dragging{box-shadow:inset 0 0 0 1px #000,0 0 28px rgba(139,128,255,.42)}
.player.minimized{width:250px}.player.minimized .drag-hint{display:none}
@media(max-width:850px){.player{right:auto;top:auto}.drag-hint,.grip{display:none}}

/* v5: crunchy pixel cursor set */
html, body {
  cursor: url("assets/cursors/default.png") 3 2, auto;
  image-rendering: pixelated;
}
a, button, .menu-link, .mini-toggle, .controls button, .download-track, .cover, .links a,
.nav-panel a, [role="button"] {
  cursor: url("assets/cursors/hand.png") 15 5, pointer !important;
}
.player-titlebar, .player-titlebar *, .drag-hint, .grip, .grip i {
  cursor: url("assets/cursors/grab.png") 16 12, grab !important;
}
.player-titlebar:hover {
  outline: 1px dotted rgba(216,211,255,.72);
  outline-offset: -4px;
}
.player-titlebar:hover .drag-hint::before {
  content: "☞ ";
}
.player.dragging, .player.dragging .player-titlebar, .player.dragging .player-titlebar * {
  cursor: url("assets/cursors/grabbing.png") 16 12, grabbing !important;
}
.player-titlebar .mini-toggle,
.player-titlebar .mini-toggle * {
  cursor: url("assets/cursors/hand.png") 15 5, pointer !important;
}

/* static PS1 low-poly background render */
.bg-image{
  display:block;
  user-select:none;
  -webkit-user-drag:none;
}

.cursor-trail{
position:fixed;width:24px;height:24px;border-radius:50%;
pointer-events:none;z-index:999999;
background:radial-gradient(circle, rgba(255,255,255,.28), rgba(180,220,255,.12) 45%, rgba(255,255,255,0) 75%);
filter:blur(8px);
mix-blend-mode:screen;
}


/* download button in the player — clearer Winamp/Y2K affordance */
.download-track{
  min-width:98px !important;
  height:26px !important;
  padding:0 8px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid #8b80ff !important;
  border-top-color:#d8d3ff !important;
  border-left-color:#d8d3ff !important;
  border-right-color:#171a45 !important;
  border-bottom-color:#171a45 !important;
  background:linear-gradient(180deg,#26266a 0%,#101033 45%,#050611 100%) !important;
  color:#f4f1ff !important;
  font-family:"Courier New",monospace;
  font-size:11px !important;
  font-weight:700;
  letter-spacing:1px;
  text-shadow:1px 1px #000,0 0 6px rgba(139,128,255,.9);
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.18), inset -1px -1px 0 rgba(0,0,0,.7), 0 0 10px rgba(139,128,255,.22);
}
.download-icon{font-size:13px;line-height:1;color:#9effff;text-shadow:0 0 5px #9effff;}
.download-label{line-height:1;}
.download-track:hover{
  color:#fff !important;
  border-color:#9effff !important;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.24), inset -1px -1px 0 rgba(0,0,0,.76), 0 0 14px rgba(158,255,255,.48) !important;
  transform:translateY(-1px);
}
.download-track:active{
  transform:translateY(1px);
  border-top-color:#171a45 !important;
  border-left-color:#171a45 !important;
  border-right-color:#d8d3ff !important;
  border-bottom-color:#d8d3ff !important;
}
.download-track:disabled{opacity:.45;filter:grayscale(1);transform:none;}
.download-track.downloaded{color:#9effff !important;}

/* v8: wider player layout so download + timer stay inside the window */
.player{
  width:min(680px, calc(100% - 150px));
  max-width:680px;
}
.player-grid{
  grid-template-columns:145px minmax(0,1fr) !important;
  gap:22px !important;
}
.cover{width:136px !important;height:136px !important;}
.player h1{
  font-size:clamp(34px,4.1vw,48px) !important;
  line-height:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.player p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.controls{
  display:grid !important;
  grid-template-columns:36px 36px 36px 136px auto minmax(74px,1fr) auto;
  align-items:center;
  gap:9px !important;
  width:100%;
  min-width:0;
}
.controls button:not(.download-track){min-width:36px !important;width:36px;height:28px !important;}
.download-track{min-width:136px !important;width:136px !important;height:28px !important;}
#currentTime,#duration{white-space:nowrap;font-size:20px;line-height:1;}
.bar{min-width:70px;max-width:100%;}
@media(max-width:950px){
  .player{width:calc(100% - 60px);right:30px;left:30px;top:185px;}
  .player-grid{grid-template-columns:98px minmax(0,1fr) !important;gap:14px !important;}
  .cover{width:92px !important;height:92px !important;}
  .player h1{font-size:32px !important;}
  .controls{grid-template-columns:32px 32px 32px 120px auto minmax(50px,1fr) auto;gap:6px !important;}
  .download-track{min-width:120px !important;width:120px !important;font-size:10px !important;}
  #currentTime,#duration{font-size:16px;}
}
@media(max-width:680px){
  .controls{grid-template-columns:32px 32px 32px 1fr;}
  .download-track{grid-column:1 / span 4;width:100% !important;min-width:0 !important;}
  #currentTime,.bar,#duration{grid-column:auto;}
}

/* audio unlock still happens silently on first interaction — visual note removed in v13 */


/* v9: compact player layout — time/progress sits under artist name */
.player{
  width:min(560px, calc(100% - 180px)) !important;
  max-width:560px !important;
}
.player-grid{
  grid-template-columns:118px minmax(0,1fr) !important;
  gap:18px !important;
}
.cover{width:112px !important;height:112px !important;}
.player h1{
  font-size:clamp(32px,3.6vw,44px) !important;
  letter-spacing:5px !important;
}
.player p{font-size:18px !important;margin-top:8px !important;}
.time-row{
  display:grid;
  grid-template-columns:auto minmax(90px,1fr) auto;
  align-items:center;
  gap:10px;
  margin:10px 0 12px;
  color:#d5d0ff;
  text-shadow:2px 2px #000;
  font-size:18px;
  letter-spacing:1px;
}
.time-row .bar{width:100%;min-width:90px;height:13px;}
.controls{
  display:flex !important;
  align-items:center;
  gap:8px !important;
  margin-top:0 !important;
  width:auto !important;
}
.controls button:not(.download-track){min-width:34px !important;width:34px !important;height:28px !important;}
.download-track{min-width:126px !important;width:126px !important;height:28px !important;font-size:12px !important;}
@media(max-width:950px){
  .player{width:calc(100% - 60px) !important;max-width:none !important;right:30px;left:30px;top:185px;}
  .player-grid{grid-template-columns:98px minmax(0,1fr) !important;gap:14px !important;}
  .cover{width:92px !important;height:92px !important;}
  .player h1{font-size:32px !important;letter-spacing:3px !important;}
  .time-row{font-size:16px;gap:7px;margin:8px 0 10px;}
}
@media(max-width:680px){
  .controls{flex-wrap:wrap;}
  .download-track{width:100% !important;min-width:0 !important;}
}

/* v10: narrower compact player — aligns with the lower UI block and reveals more background */
.player{
  width:min(470px, calc(100% - 180px)) !important;
  max-width:470px !important;
  padding:0 10px 10px !important;
}
.player-grid{
  grid-template-columns:88px minmax(0,1fr) !important;
  gap:12px !important;
  align-items:center !important;
}
.cover{
  width:86px !important;
  height:86px !important;
}
.player h1{
  font-size:clamp(23px,2.45vw,30px) !important;
  letter-spacing:3px !important;
  line-height:1 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.player p{
  font-size:14px !important;
  margin-top:6px !important;
  letter-spacing:1.5px !important;
}
.time-row{
  grid-template-columns:auto minmax(70px,1fr) auto !important;
  gap:7px !important;
  margin:7px 0 9px !important;
  font-size:13px !important;
  letter-spacing:0 !important;
}
.time-row .bar{
  min-width:70px !important;
  height:10px !important;
}
.controls{
  gap:6px !important;
}
.controls button:not(.download-track){
  min-width:28px !important;
  width:28px !important;
  height:24px !important;
  font-size:13px !important;
}
.download-track{
  min-width:104px !important;
  width:104px !important;
  height:24px !important;
  font-size:10px !important;
  gap:4px !important;
  padding:0 6px !important;
}
.download-icon{font-size:11px !important;}
.player-titlebar{min-height:25px !important;}
.drag-hint{font-size:10px !important;letter-spacing:1px !important;margin-right:7px !important;}
.grip{margin-right:7px !important;gap:2px !important;grid-template-columns:repeat(3,2px) !important;}
.grip i{width:2px !important;height:2px !important;}
.player.minimized{width:220px !important;}
@media(max-width:950px){
  .player{width:calc(100% - 60px) !important;max-width:none !important;right:30px;left:30px;top:185px;}
  .player-grid{grid-template-columns:82px minmax(0,1fr) !important;gap:12px !important;}
  .cover{width:80px !important;height:80px !important;}
  .player h1{font-size:25px !important;letter-spacing:2px !important;}
}

/* v11: default player placement aligned with the lower content window */
.player{
  right:34px;
  top:205px;
  left:auto;
  bottom:auto;
}
@media(max-width:950px){
  .player{right:30px !important;left:30px !important;top:185px !important;}
}


/* v12: native animated Y2K CD-ROM player art */
.player{
  width:min(560px, calc(100% - 180px)) !important;
  max-width:560px !important;
}
.player-grid{
  grid-template-columns:178px minmax(0,1fr) !important;
  gap:16px !important;
  align-items:center !important;
}
.cover{display:none !important;}
.cd-deck{
  width:176px;
  height:138px;
  position:relative;
  image-rendering:auto;
  filter:saturate(.92) contrast(1.12);
}
.cd-case{
  position:absolute;
  inset:0;
  border:1px solid #33406d;
  border-top-color:#7b72d9;
  border-left-color:#7b72d9;
  background:
    linear-gradient(90deg,rgba(0,0,0,.72) 0 14%, transparent 14%),
    radial-gradient(circle at 74% 18%,rgba(255,255,255,.1),transparent 11%),
    linear-gradient(135deg,rgba(70,66,160,.22),rgba(4,5,18,.88) 52%,rgba(0,0,0,.84));
  box-shadow:
    inset 2px 2px 0 rgba(255,255,255,.08),
    inset -2px -2px 0 rgba(0,0,0,.75),
    0 0 12px rgba(139,128,255,.24);
  overflow:hidden;
}
.cd-case::before,
.cd-case::after{
  content:"";
  position:absolute;
  width:18px;
  height:18px;
  border:1px solid rgba(116,104,255,.42);
  border-radius:50%;
  box-shadow:inset 0 0 7px #000;
  opacity:.55;
}
.cd-case::before{right:8px;top:8px;}
.cd-case::after{right:8px;bottom:8px;}
.cd-spine{
  position:absolute;
  left:7px;
  top:8px;
  bottom:8px;
  width:21px;
  border:1px solid #1c244d;
  background:repeating-linear-gradient(90deg,#05050c 0 2px,#202045 2px 4px);
  box-shadow:inset 0 0 8px #000,0 0 7px rgba(139,128,255,.2);
  z-index:2;
}
.cd-disc{
  --cd-size:124px;
  position:absolute;
  left:39px;
  top:7px;
  width:var(--cd-size);
  height:var(--cd-size);
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(190,187,255,.52);
  background:
    radial-gradient(circle at center, transparent 0 17%, rgba(9,9,24,.9) 18% 26%, transparent 27%),
    conic-gradient(from 25deg,rgba(255,255,255,.7),rgba(130,255,255,.18),rgba(110,75,255,.28),rgba(255,255,255,.22),rgba(255,255,255,.65),rgba(0,0,0,.18),rgba(180,255,255,.34),rgba(255,255,255,.7));
  box-shadow:
    inset 0 0 0 2px rgba(0,0,0,.72),
    inset 0 0 16px rgba(255,255,255,.18),
    0 0 0 4px rgba(0,0,0,.38),
    0 0 18px rgba(139,128,255,.2);
  transform-origin:50% 50%;
  will-change:transform;
}
.cd-art{
  position:absolute;
  inset:0;
  border-radius:50%;
  background-image:
    radial-gradient(circle at center, transparent 0 18%, rgba(0,0,0,.08) 18.5% 100%),
    var(--cover);
  background-size:cover;
  background-position:center;
  filter:saturate(.82) contrast(1.25) grayscale(.25);
  opacity:.9;
  mix-blend-mode:multiply;
}
.cd-shine{
  position:absolute;
  inset:-12%;
  border-radius:50%;
  background:
    conic-gradient(from -20deg,transparent 0 9%,rgba(158,255,255,.42) 12%,rgba(255,255,255,.16) 16%,transparent 24% 42%,rgba(180,130,255,.22) 48%,transparent 56% 100%),
    linear-gradient(120deg,transparent 12%,rgba(255,255,255,.34) 31%,transparent 43%);
  mix-blend-mode:screen;
  opacity:.7;
  pointer-events:none;
}
.cd-ring{
  position:absolute;
  inset:20%;
  border-radius:50%;
  border:1px solid rgba(218,213,255,.38);
  box-shadow:0 0 0 11px rgba(0,0,0,.16), inset 0 0 12px rgba(0,0,0,.8);
}
.cd-hole{
  position:absolute;
  left:50%;top:50%;
  width:34px;height:34px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:2px solid #27305e;
  background:
    radial-gradient(circle,#05050c 0 28%,#14142b 29% 50%,#02020a 51% 100%);
  box-shadow:inset 0 0 9px #000,0 0 0 4px rgba(255,255,255,.08),0 0 12px rgba(139,128,255,.35);
}
.cd-disc::after{
  content:"";
  display:none;
}
/* rotation is driven by script.js (auto-spin, or manual drag-to-rotate) */
.player h1{font-size:clamp(25px,2.7vw,34px) !important;letter-spacing:4px !important;}
.player p{font-size:15px !important;margin-top:7px !important;}
.time-row{font-size:14px !important;margin:8px 0 11px !important;}
.controls button:not(.download-track){min-width:30px !important;width:30px !important;height:25px !important;}
.download-track{min-width:112px !important;width:112px !important;height:25px !important;}
@media(max-width:950px){
  .player{width:calc(100% - 60px) !important;max-width:none !important;}
  .player-grid{grid-template-columns:150px minmax(0,1fr) !important;}
  .cd-deck{width:148px;height:118px;}
  .cd-disc{--cd-size:104px;left:34px;top:7px;}
  .cd-spine{width:18px;}
}
@media(max-width:680px){
  .player-grid{grid-template-columns:1fr !important;}
  .cd-deck{margin:auto;}
}

/* v5.1: keep custom Y2K cursor over native CD elements */
.cd-deck,
.cd-case,
.cd-disc,
.cd-art,
.cd-shine,
.cd-ring,
.cd-hole,
#coverArt {
  cursor: url("assets/cursors/hand.png") 15 5, pointer !important;
}

.cd-deck *,
.cd-case *,
.cd-disc * {
  cursor: url("assets/cursors/hand.png") 15 5, pointer !important;
}

/* v6: force custom cursor behavior across entire native CD player */
:root{
  --cursor-y2k-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' shape-rendering='crispEdges'%3E%3Cpath d='M4 2h3v3h3v3h3v3h3v3h3v3h3v3h-8v4h3v3h-6v-3h-3v-8H4z' fill='%23ffffff'/%3E%3Cpath d='M7 5h3v3h3v3h3v3h3v3h-8v4h3v3h-3v-3H8v-8H4V5z' fill='%239f96ff'/%3E%3Cpath d='M4 2h3v3H4zm3 3h3v3H7zm3 3h3v3h-3zm3 3h3v3h-3zm3 3h3v3h-3zm3 3h3v3h-3zm-5 3h3v4h-3zm3 4h3v3h-3zm-9-4h3v8H8zm3 8h3v3h-3zM4 20h4v3H4z' fill='%2313153f'/%3E%3C/svg%3E") 4 2, auto;
  --cursor-y2k-hand: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' shape-rendering='crispEdges'%3E%3Cpath d='M13 3h5v10h2V8h4v7h2v-4h4v12h-2v4h-3v3H12v-3H9v-4H6v-7h5v3h2z' fill='%23ffffff'/%3E%3Cpath d='M14 4h3v12h2V9h3v8h2v-5h3v11h-2v4h-3v2h-9v-3h-3v-4H8v-5h2v4h5z' fill='%239effff'/%3E%3Cpath d='M13 3h5v10h-2V5h-1v15h-3V4h1zm5 10h2V8h4v7h-2v-5h-1v7h-3zm6 2h2v-4h4v12h-2V13h-1v9h-3zm4 8h-2v4h-3v3H12v-3H9v-4H6v-7h5v3H9v3h3v4h3v2h7v-3h3v-3h3z' fill='%2313153f'/%3E%3C/svg%3E") 13 4, pointer;
  --cursor-y2k-grab: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' shape-rendering='crispEdges'%3E%3Cpath d='M9 6h4v8h1V4h4v10h1V6h4v9h1V9h4v13h-2v5h-3v3H12v-3H9v-4H6v-8h3z' fill='%23ffffff'/%3E%3Cpath d='M10 7h2v11h3V5h2v13h3V7h2v12h3v-9h2v12h-2v4h-3v2h-9v-3h-3v-4H8v-5h2z' fill='%23c7bdff'/%3E%3Cpath d='M9 6h4v8h-2V8h-1v10H8v-2H6v7h3v4h3v3h11v-3h3v-5h2V9h-4v6h-1V6h-4v8h-1V4h-4v10h-1V6z' fill='%2313153f'/%3E%3C/svg%3E") 13 5, grab;
  --cursor-y2k-grabbing: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' shape-rendering='crispEdges'%3E%3Cpath d='M8 9h4v5h1V6h4v8h1V7h4v8h1v-4h4v12h-2v4h-3v3H11v-3H8v-4H6v-9h2z' fill='%23ffffff'/%3E%3Cpath d='M9 10h2v8h3V7h2v11h3V8h2v11h3v-7h2v11h-2v4h-3v2h-9v-3H9v-4H8v-7h1z' fill='%23ffb7f7'/%3E%3Cpath d='M8 9h4v5h-2v-3H9v7H7v-4H6v9h2v4h3v3h11v-3h3v-4h2V11h-4v4h-1V7h-4v7h-1V6h-4v8h-1V9z' fill='%2313153f'/%3E%3C/svg%3E") 13 5, grabbing;
}
html, body, .scene, .shell, .mist, .scanlines, .vignette { cursor: var(--cursor-y2k-default) !important; }
.player, .player *, .player-body, .player-grid, .cd-deck, .cd-deck *, .cd-case, .cd-case *, .cd-disc, .cd-disc *, .cd-art, .cd-shine, .cd-ring, .cd-hole { cursor: var(--cursor-y2k-default) !important; }
.player-titlebar, .player-titlebar .panel-title, .drag-hint, .grip, .grip * { cursor: var(--cursor-y2k-grab) !important; }
.player.dragging, .player.dragging *, .player.dragging .player-titlebar, .player.dragging .player-titlebar * { cursor: var(--cursor-y2k-grabbing) !important; }
a, a *, button, button *, .menu-link, .menu-link *, .mini-toggle, .mini-toggle *, .download-track, .download-track * { cursor: var(--cursor-y2k-hand) !important; }
.cd-deck:hover, .cd-deck:hover *, .cd-disc:hover, .cd-disc:hover * { cursor: var(--cursor-y2k-hand) !important; }

/* v7: standardized cursor behavior
   - one consistent pixel/Y2K cursor family across the page
   - CD/player surface keeps normal cursor
   - only clickable controls/links use hand
   - titlebar/grip use grab/grabbing for drag */
html, body, .shell, .scene, .bg-video, .mist, .scanlines, .vignette,
.player, .player-body, .player-grid, .player-info,
.cd-deck, .cd-deck *, .cd-case, .cd-case *, .cd-disc, .cd-disc *,
.cd-art, .cd-shine, .cd-ring, .cd-hole, #coverArt,
.content-panel, .top-copy, .logo-mark {
  cursor: var(--cursor-y2k-default) !important;
}

.nav-panel a, .nav-panel a *,
.links a, .links a *,
button, button *,
.controls button, .controls button *,
.download-track, .download-track *,
.mini-toggle, .mini-toggle *,
[role="button"], [role="button"] * {
  cursor: var(--cursor-y2k-hand) !important;
}

.player-titlebar, .player-titlebar .panel-title, .drag-hint, .grip, .grip * {
  cursor: var(--cursor-y2k-grab) !important;
}

.player.dragging, .player.dragging *,
.player.dragging .player-titlebar, .player.dragging .player-titlebar * {
  cursor: var(--cursor-y2k-grabbing) !important;
}

.player.dragging button, .player.dragging button *,
.player.dragging .download-track, .player.dragging .download-track * {
  cursor: var(--cursor-y2k-hand) !important;
}

/* v8: visible cyan drag cursors matching the current hand cursor */
:root{
  --cursor-y2k-grab: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36' shape-rendering='crispEdges'%3E%3Cpath d='M10 8h5v8h1V5h5v11h1V8h5v9h1v-5h5v15h-2v5h-4v3H13v-3h-4v-5H6V16h4z' fill='%23ffffff'/%3E%3Cpath d='M11 9h3v12h4V6h2v15h4V9h2v14h4V13h2v14h-2v4h-4v2H14v-3h-3v-5H8v-7h3z' fill='%239effff'/%3E%3Cpath d='M10 8h5v8h-2v-6h-1v11H9v-3H6v9h3v5h4v3h14v-3h4v-5h2V12h-5v5h-1V8h-5v8h-1V5h-5v11h-1V8z' fill='%2313153f'/%3E%3Cpath d='M12 10h1v10h-1zm6-3h1v13h-1zm6 3h1v12h-1zm6 4h1v12h-1z' fill='%23e8ffff' opacity='.85'/%3E%3C/svg%3E") 15 7, grab;
  --cursor-y2k-grabbing: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36' shape-rendering='crispEdges'%3E%3Cpath d='M9 11h5v5h1V7h5v9h1V8h5v9h1v-4h5v14h-2v5h-4v3H12v-3H8v-5H6V16h3z' fill='%23ffffff'/%3E%3Cpath d='M10 12h3v9h4V8h2v13h4V9h2v13h4v-8h2v13h-2v4h-4v2H13v-3h-3v-5H8v-8h2z' fill='%239effff'/%3E%3Cpath d='M9 11h5v5h-2v-3h-1v8H8v-5H6v11h2v5h4v3h14v-3h4v-5h2V13h-5v4h-1V8h-5v8h-1V7h-5v9h-1v-5z' fill='%2313153f'/%3E%3Cpath d='M11 13h1v7h-1zm6-4h1v11h-1zm6 1h1v11h-1zm6 5h1v11h-1z' fill='%23e8ffff' opacity='.85'/%3E%3C/svg%3E") 15 8, grabbing;
}
.player-titlebar, .player-titlebar .panel-title, .drag-hint, .grip, .grip * {
  cursor: var(--cursor-y2k-grab) !important;
}
.player.dragging, .player.dragging *,
.player.dragging .player-titlebar, .player.dragging .player-titlebar * {
  cursor: var(--cursor-y2k-grabbing) !important;
}


/* final: brighter cyan drag cursors + JRPG-style copy toast */
:root{
  --cursor-y2k-grab: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2736%27%20height%3D%2736%27%20viewBox%3D%270%200%2036%2036%27%20shape-rendering%3D%27crispEdges%27%3E%0A%3Cpath%20d%3D%27M10%208h5v8h1V5h5v11h1V8h5v9h1v-5h5v15h-2v5h-4v3H13v-3H9v-5H6V16h4z%27%20fill%3D%27%2311163f%27%2F%3E%0A%3Cpath%20d%3D%27M11%209h5v8h1V6h4v11h1V9h4v9h1v-5h4v13h-2v5h-4v3H14v-3h-4v-5H8v-9h3z%27%20fill%3D%27%23ffffff%27%2F%3E%0A%3Cpath%20d%3D%27M12%2010h3v12h4V7h2v15h4V10h2v14h3V14h2v12h-2v4h-4v2H15v-3h-3v-5H10v-6h2z%27%20fill%3D%27%239effff%27%2F%3E%0A%3Cpath%20d%3D%27M13%2011h1v10h-1zm6-3h1v13h-1zm6%203h1v12h-1zm6%204h1v10h-1z%27%20fill%3D%27%23eaffff%27%2F%3E%0A%3Cpath%20d%3D%27M12%2025h3v4h10v-2h4v-4h2v3h-2v5h-4v3H14v-3h-4v-5H8v-2h4z%27%20fill%3D%27%2348f7ff%27%2F%3E%0A%3C%2Fsvg%3E") 15 7, grab;
  --cursor-y2k-grabbing: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2736%27%20height%3D%2736%27%20viewBox%3D%270%200%2036%2036%27%20shape-rendering%3D%27crispEdges%27%3E%0A%3Cpath%20d%3D%27M9%2011h5v5h1V7h5v9h1V8h5v9h1v-4h5v14h-2v5h-4v3H12v-3H8v-5H6V16h3z%27%20fill%3D%27%2311163f%27%2F%3E%0A%3Cpath%20d%3D%27M10%2012h5v5h1V8h4v9h1V9h4v9h1v-4h4v12h-2v5h-4v3H13v-3H9v-5H8v-9h2z%27%20fill%3D%27%23ffffff%27%2F%3E%0A%3Cpath%20d%3D%27M11%2013h3v9h4V9h2v13h4V10h2v13h3v-8h2v11h-2v4h-4v2H14v-3h-3v-5H9v-7h2z%27%20fill%3D%27%239effff%27%2F%3E%0A%3Cpath%20d%3D%27M12%2014h1v7h-1zm6-4h1v11h-1zm6%201h1v11h-1zm6%205h1v9h-1z%27%20fill%3D%27%23eaffff%27%2F%3E%0A%3Cpath%20d%3D%27M11%2024h3v4h11v-2h4v-4h2v4h-2v5h-4v3H13v-3H9v-5H8v-3h3z%27%20fill%3D%27%2348f7ff%27%2F%3E%0A%3C%2Fsvg%3E") 15 8, grabbing;
}
.player-titlebar, .player-titlebar .panel-title, .drag-hint, .grip, .grip * {
  cursor: var(--cursor-y2k-grab) !important;
}
.player.dragging, .player.dragging *,
.player.dragging .player-titlebar, .player.dragging .player-titlebar * {
  cursor: var(--cursor-y2k-grabbing) !important;
}

/* CD is hold-and-drag rotatable: grab cursor at rest, grabbing while spun by hand */
.cd-deck, .cd-deck *, .cd-case, .cd-case *, .cd-disc, .cd-disc *,
.cd-art, .cd-shine, .cd-ring, .cd-hole, #coverArt {
  cursor: var(--cursor-y2k-grab) !important;
}
.cd-deck.is-rotating, .cd-deck.is-rotating *, #coverArt.is-rotating, #coverArt.is-rotating * {
  cursor: var(--cursor-y2k-grabbing) !important;
}
.copy-toast{
  position:absolute;
  left:50%;
  bottom:82px;
  transform:translate(-50%, 12px) scale(.98);
  z-index:50;
  max-width:min(520px, calc(100% - 42px));
  padding:13px 18px 14px;
  border:2px solid #d8d3ff;
  outline:1px solid #26347d;
  background:linear-gradient(180deg, rgba(8,8,24,.96), rgba(18,15,48,.94));
  color:#f7f4ff;
  font-family:Georgia, 'Times New Roman', 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  font-size:15px;
  letter-spacing:.08em;
  line-height:1.25;
  text-align:center;
  text-shadow:0 0 7px rgba(158,255,255,.75), 2px 2px #000;
  box-shadow:inset 0 0 0 1px #050713, 0 0 22px rgba(158,255,255,.24), 0 10px 32px rgba(0,0,0,.55);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.copy-toast::before{content:'◆ '; color:#9effff;}
.copy-toast.show{
  opacity:1;
  transform:translate(-50%, 0) scale(1);
}
@media(max-width:850px){.copy-toast{bottom:92px;font-size:13px;}}

/* v13: fluid stage scaling
   The shell renders at its native 1180x737 design resolution and the whole
   stage scales to fit the display — like a fullscreen game menu. Composition,
   proportions, and panel placement stay pixel-identical at every screen size.
   The scale factor is set by script.js as --shell-scale. */
@media (min-width: 851px){
  /* Normally the shell is scaled to fit exactly, so there's nothing to
     scroll. But the scale is clamped to a 0.55x floor so text never gets
     illegibly small — on a short/small window that floor can still be
     bigger than the available space. overflow:auto (instead of hidden) is
     the fallback so that content is still reachable by scrolling rather
     than silently clipped with no way to see the rest. */
  /* Only html gets the scroll container treatment — setting overflow on
     both html and body creates ambiguity over which one is the "real"
     root scroller, and in that state document.documentElement can end up
     reporting no overflow at all even though content is genuinely clipped. */
  /* scroll (not auto): keeps the scrollbar/scroll gesture always active
     instead of only conditionally enabling once content happens to overflow */
  html{height:100%; overflow-y:scroll; overflow-x:hidden;}
  /* same retro scrollbar recipe as the track list, so the fallback page
     scroll doesn't look like a bare default OS scrollbar */
  html{scrollbar-width:thin; scrollbar-color:#7468ff #070717;}
  html::-webkit-scrollbar{width:10px;}
  html::-webkit-scrollbar-track{background:#070717;border-left:1px solid #262f5c;}
  html::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#4a38ca,#8b80ff);border:1px solid #060713;box-shadow:0 0 6px rgba(139,128,255,.5);}
  html::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#5b46e8,#9effff);}

  /* The shell's box is always a fixed 1180x737.5 design canvas — only its
     paint gets resized, via transform:scale(). CSS Grid/flex alignment
     (place-items:center etc.) aligns based on that *pre-transform* box, so
     whenever the viewport is narrower than 1180px (a very normal window
     width, well above the 851px breakpoint) the centering math breaks and
     the shell renders lopsided/partly clipped. Absolute-positioning the
     shell at 50%/50% and recentering it with translate(-50%,-50%) before
     the scale sidesteps that entirely: the translate offsets by the
     element's own pre-transform half-size, so the final scaled box is
     always centered on that point regardless of how the declared 1180px
     size compares to the viewport. */
  body{position:relative; height:100%; padding:0;}
  .shell{
    position:absolute;
    left:50%;
    top:calc(50% + (var(--announce-h, 0px) / 2));
    width:1180px;
    min-width:1180px;
    max-width:none;
    aspect-ratio:16/10;
    transform:translate(-50%, -50%) scale(var(--shell-scale, 1));
    transform-origin:50% 50%;
    will-change:transform;
  }
}
/* v14: unified Y2K/PS1 cursor family — one palette (white body, cyan rim-light,
   deep-indigo outline, violet glow), one pixel grid, four states. Replaces the
   mixed PNG/SVG cursors from earlier passes. */
:root{
  --cursor-y2k-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='36' viewBox='0 0 26 36' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='2' y='2' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='4' width='4' height='2' fill='%23181245'/%3E%3Crect x='2' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='10' width='4' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='12' width='6' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='8' height='2' fill='%23f4f1ff'/%3E%3Crect x='12' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='14' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='10' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='18' width='12' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='20' width='8' height='2' fill='%23f4f1ff'/%3E%3Crect x='12' y='20' width='8' height='2' fill='%239effff'/%3E%3Crect x='20' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='22' width='4' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='22' width='4' height='2' fill='%239effff'/%3E%3Crect x='12' y='22' width='12' height='2' fill='%23181245'/%3E%3Crect x='2' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='24' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='24' width='4' height='2' fill='%239effff'/%3E%3Crect x='14' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='26' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='28' width='4' height='2' fill='%23181245'/%3E%3Crect x='10' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='28' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='28' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='30' width='4' height='2' fill='%239effff'/%3E%3Crect x='16' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='32' width='4' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E") 3 3, auto;
  --cursor-y2k-hand: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='36' viewBox='0 0 34 36' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='12' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='10' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='8' width='6' height='2' fill='%23181245'/%3E%3Crect x='10' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='10' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='18' y='10' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='20' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='22' y='10' width='6' height='2' fill='%23181245'/%3E%3Crect x='10' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='18' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='20' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='22' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='24' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='12' width='4' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='4' height='2' fill='%23181245'/%3E%3Crect x='10' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='14' width='12' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='28' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='16' width='4' height='2' fill='%23181245'/%3E%3Crect x='12' y='16' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='18' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='18' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='20' width='4' height='2' fill='%239effff'/%3E%3Crect x='10' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='20' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='22' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='22' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='24' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='26' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='28' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='28' width='12' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='28' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='30' width='14' height='2' fill='%239effff'/%3E%3Crect x='26' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='32' width='18' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E") 15 3, pointer;
  --cursor-y2k-grab: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='34' viewBox='0 0 36 34' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='8' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='14' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='20' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='6' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='14' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='20' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='22' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='24' y='4' width='4' height='2' fill='%23181245'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='14' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='20' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='22' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='24' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='26' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='14' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='20' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='22' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='24' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='26' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='10' width='4' height='2' fill='%23181245'/%3E%3Crect x='8' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='10' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='12' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='14' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='16' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='18' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='20' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='22' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='22' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='24' width='14' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='26' width='14' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='28' width='16' height='2' fill='%239effff'/%3E%3Crect x='26' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='30' width='20' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E") 19 17, grab;
  --cursor-y2k-grabbing: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='28' viewBox='0 0 36 28' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='6' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='12' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='18' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='24' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='4' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='18' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='20' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='22' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='24' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='6' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='8' width='4' height='2' fill='%23181245'/%3E%3Crect x='6' y='8' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='10' width='22' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='12' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='14' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='16' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='18' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='20' width='14' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='22' width='16' height='2' fill='%239effff'/%3E%3Crect x='26' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='24' width='20' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E") 19 15, grabbing;

  /* same sprites, reusable as background images for the afterimage trail */
  --sprite-y2k-default: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='36' viewBox='0 0 26 36' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='2' y='2' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='4' width='4' height='2' fill='%23181245'/%3E%3Crect x='2' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='10' width='4' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='12' width='6' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='8' height='2' fill='%23f4f1ff'/%3E%3Crect x='12' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='14' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='10' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='18' width='12' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='20' width='8' height='2' fill='%23f4f1ff'/%3E%3Crect x='12' y='20' width='8' height='2' fill='%239effff'/%3E%3Crect x='20' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='22' width='4' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='22' width='4' height='2' fill='%239effff'/%3E%3Crect x='12' y='22' width='12' height='2' fill='%23181245'/%3E%3Crect x='2' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='24' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='24' width='4' height='2' fill='%239effff'/%3E%3Crect x='14' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='26' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='28' width='4' height='2' fill='%23181245'/%3E%3Crect x='10' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='28' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='28' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='30' width='4' height='2' fill='%239effff'/%3E%3Crect x='16' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='32' width='4' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E");
  --sprite-w-default: 26px;
  --sprite-h-default: 36px;
  --sprite-y2k-hand: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='36' viewBox='0 0 34 36' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='12' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='10' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='8' width='6' height='2' fill='%23181245'/%3E%3Crect x='10' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='10' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='18' y='10' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='20' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='22' y='10' width='6' height='2' fill='%23181245'/%3E%3Crect x='10' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='18' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='20' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='22' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='24' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='12' width='4' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='4' height='2' fill='%23181245'/%3E%3Crect x='10' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='14' width='12' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='28' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='16' width='4' height='2' fill='%23181245'/%3E%3Crect x='12' y='16' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='18' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='18' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='20' width='4' height='2' fill='%239effff'/%3E%3Crect x='10' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='20' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='22' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='28' y='22' width='2' height='2' fill='%239effff'/%3E%3Crect x='30' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='24' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='26' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='28' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='28' width='12' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='28' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='30' width='14' height='2' fill='%239effff'/%3E%3Crect x='26' y='30' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='32' width='18' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E");
  --sprite-w-hand: 34px;
  --sprite-h-hand: 36px;
  --sprite-y2k-grab: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='34' viewBox='0 0 36 34' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='8' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='14' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='20' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='6' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='14' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='20' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='22' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='24' y='4' width='4' height='2' fill='%23181245'/%3E%3Crect x='6' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='14' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='20' y='6' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='22' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='24' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='26' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='10' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='12' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='14' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='16' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='18' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='20' y='8' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='22' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='24' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='26' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='10' width='4' height='2' fill='%23181245'/%3E%3Crect x='8' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='10' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='12' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='12' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='6' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='14' width='16' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='16' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='18' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='20' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='22' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='22' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='24' width='14' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='24' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='24' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='26' width='14' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='26' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='26' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='28' width='16' height='2' fill='%239effff'/%3E%3Crect x='26' y='28' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='30' width='20' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E");
  --sprite-w-grab: 36px;
  --sprite-h-grab: 34px;
  --sprite-y2k-grabbing: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='28' viewBox='0 0 36 28' shape-rendering='crispEdges'%3E%3Cfilter id='g' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeDropShadow dx='0' dy='0' stdDeviation='1' flood-color='%237b61ff' flood-opacity='.9'/%3E%3C/filter%3E%3Cg filter='url(%23g)'%3E%3Crect x='6' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='12' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='18' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='24' y='2' width='4' height='2' fill='%23181245'/%3E%3Crect x='4' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='8' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='12' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='14' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='16' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='18' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='20' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='22' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='24' y='4' width='2' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='4' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='4' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='6' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='6' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='6' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='8' width='4' height='2' fill='%23181245'/%3E%3Crect x='6' y='8' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='8' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='8' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='10' width='22' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='10' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='10' width='2' height='2' fill='%23181245'/%3E%3Crect x='2' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='6' y='12' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='12' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='12' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='14' width='20' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='14' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='14' width='2' height='2' fill='%23181245'/%3E%3Crect x='4' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='8' y='16' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='16' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='16' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='18' width='18' height='2' fill='%23f4f1ff'/%3E%3Crect x='26' y='18' width='2' height='2' fill='%239effff'/%3E%3Crect x='28' y='18' width='2' height='2' fill='%23181245'/%3E%3Crect x='6' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='10' y='20' width='14' height='2' fill='%23f4f1ff'/%3E%3Crect x='24' y='20' width='2' height='2' fill='%239effff'/%3E%3Crect x='26' y='20' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='10' y='22' width='16' height='2' fill='%239effff'/%3E%3Crect x='26' y='22' width='2' height='2' fill='%23181245'/%3E%3Crect x='8' y='24' width='20' height='2' fill='%23181245'/%3E%3C/g%3E%3C/svg%3E");
  --sprite-w-grabbing: 36px;
  --sprite-h-grabbing: 28px;
}

/* v14: cursor afterimage trail — repeating ghost sprites chase the live cursor
   while it moves, in whichever state (arrow/hand/grab/grabbing) is active. */
.cursor-ghost{
  position:fixed;
  left:0; top:0;
  width:var(--sprite-w-default);
  height:var(--sprite-h-default);
  background-image:var(--sprite-y2k-default);
  background-repeat:no-repeat;
  background-size:contain;
  image-rendering:pixelated;
  pointer-events:none;
  z-index:999998;
  opacity:0;
  mix-blend-mode:screen;
  will-change:transform,opacity;
}
.cursor-ghost.is-hand{background-image:var(--sprite-y2k-hand);width:var(--sprite-w-hand);height:var(--sprite-h-hand);}
.cursor-ghost.is-grab{background-image:var(--sprite-y2k-grab);width:var(--sprite-w-grab);height:var(--sprite-h-grab);}
.cursor-ghost.is-grabbing{background-image:var(--sprite-y2k-grabbing);width:var(--sprite-w-grabbing);height:var(--sprite-h-grabbing);}
@media (prefers-reduced-motion: reduce), (pointer: coarse){
  .cursor-ghost{display:none !important;}
}
/* the old soft glow blob is superseded by the sprite trail */
.cursor-trail{display:none !important;}

/* v15: responsive cleanup.
   (A) ≥851px: the stage always lays out at its 1180px design width and is scaled
       by v13, so viewport-width media rules from v8–v12 must never restyle it.
       Restore the desktop composition here with final say.
   (B) ≤850px: proper stacked flow layout. Kills the stray top:185px offset that
       was shoving the player out of flow (the big gap + cutoff on phones). */
@media (min-width: 851px){
  .player{
    position:absolute !important;
    left:auto !important; right:34px !important;
    top:118px !important; bottom:auto !important;
    width:min(560px, calc(100% - 180px)) !important;
    max-width:560px !important;
  }
  .player-grid{grid-template-columns:178px minmax(0,1fr) !important;gap:16px !important;}
  .cd-deck{width:176px !important;height:138px !important;}
  .cd-disc{--cd-size:124px !important;left:39px !important;top:7px !important;}
  .cd-spine{width:21px !important;}
  /* stage is a fixed 1180px design; vw-based type would double-shrink under scaling */
  .player h1{font-size:32px !important;letter-spacing:4px !important;}
  /* sits directly below the player (not bottom-anchored) so a tall music
     track list can never grow upward into the player above it */
  .content-panel{
    left:auto !important; right:34px !important;
    top:335px !important; bottom:auto !important;
    width:min(560px, calc(100% - 180px)) !important;
    max-height:260px !important;
    overflow-y:auto !important;
  }
}

@media (max-width: 850px){
  body{padding:0;padding-top:var(--announce-h, 0px);}
  .shell{box-shadow:none;}

  .nav-panel{padding:22px 20px 8px;}
  .logo-mark{font-size:38px;margin-bottom:20px;}
  .nav-panel nav{grid-template-columns:1fr 1fr;gap:9px;}
  .nav-panel a{font-size:19px;padding:12px 14px;}

  /* compact one-line credit strip (hidden entirely before) */
  .top-copy{
    display:block !important;
    position:relative !important;
    left:auto !important; right:auto !important; top:auto !important;
    text-align:left;
    padding:0 22px;
    font-size:13px;
    letter-spacing:1px;
    line-height:1.5;
    color:#8e83d8;
  }
  .top-copy p{display:inline;margin:0;}
  .top-copy p + p::before{content:" · ";color:#4a4488;}

  .content-panel{
    position:relative !important;
    left:auto !important; right:auto !important; top:auto !important; bottom:auto !important;
    width:auto !important;
    min-height:0 !important;
    margin:16px 20px 0 !important;
  }

  .player{
    position:relative !important;
    left:auto !important; right:auto !important; top:auto !important; bottom:auto !important;
    width:auto !important;
    max-width:none !important;
    margin:16px 20px 24px !important;
  }
  .player.minimized{width:auto !important;}
  .drag-hint,.grip{display:none !important;}
  .player-grid{grid-template-columns:126px minmax(0,1fr) !important;gap:12px !important;}
  .cd-deck{width:124px !important;height:98px !important;}
  .cd-disc{--cd-size:86px !important;left:30px !important;top:6px !important;}
  .cd-spine{width:15px !important;left:6px !important;top:6px !important;bottom:6px !important;}
  .player h1{font-size:23px !important;letter-spacing:2px !important;}
  .time-row{font-size:13px !important;}

  .links{padding:16px 18px;font-size:15px;line-height:1.6;}
  .links-row{gap:14px 24px;}

  .copy-toast{position:fixed;bottom:18px;}
}

/* very narrow phones: CD stays left of the text (not stacked above it) */
@media (max-width: 389px){
  .player-grid{grid-template-columns:92px minmax(0,1fr) !important;gap:10px !important;}
  .cd-deck{width:92px !important;height:72px !important;margin:0 !important;}
  .cd-disc{--cd-size:64px !important;left:22px !important;top:5px !important;}
  .cd-spine{width:11px !important;}
  .nav-panel a{font-size:17px;padding:11px 12px;}
}

/* music panel: full downloadable track list, click a row to load it in the player */
.music-hint{font-size:14px !important;color:#8e86c4 !important;margin:6px 0 0 !important;}
.track-list{list-style:none;margin:0;padding:0 2px 0 0;display:grid;gap:7px;}
.track-row{
  display:flex;align-items:center;gap:12px;padding:9px 12px;
  border:1px solid #262f5c;
  background:linear-gradient(90deg,rgba(23,22,72,.6),rgba(0,0,0,.4));
  box-shadow:inset 0 0 0 1px #000;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.track-row::before{content:"◇";color:#5b52a8;font-size:13px;text-shadow:1px 1px #000;transition:color .15s ease;}
.track-row:hover{border-color:#8b80ff;background:linear-gradient(90deg,rgba(76,65,230,.55),rgba(10,8,28,.42));box-shadow:inset 0 0 0 1px #000,0 0 10px rgba(76,80,255,.28);}
.track-row:hover::before{color:#9effff;}
.track-row.active{border-color:#9effff;background:linear-gradient(90deg,rgba(76,65,230,.62),rgba(10,8,28,.55));box-shadow:inset 0 0 0 1px #000,0 0 14px rgba(158,255,255,.35);}
.track-row.active::before{content:"◆";color:#9effff;}
.track-num{font-size:12px;color:#7468ff;min-width:20px;letter-spacing:1px;text-shadow:1px 1px #000;}
.track-row.active .track-num{color:#9effff;}
.track-name{flex:1;font-size:16px;text-transform:lowercase;letter-spacing:.5px;color:#d0ccef;text-shadow:1px 1px #000;}
.track-row.active .track-name{color:#fff;text-shadow:1px 1px #000,0 0 8px rgba(158,255,255,.4);}
.track-play-icon{font-size:13px;color:#9effff;width:16px;text-align:center;text-shadow:0 0 6px rgba(158,255,255,.5);}

/* retro-styled scrollbar for the content panel (holds the track list) */
.content-panel{scrollbar-width:thin; scrollbar-color:#7468ff #070717;}
.content-panel::-webkit-scrollbar{width:10px;}
.content-panel::-webkit-scrollbar-track{background:#070717;border-left:1px solid #262f5c;}
.content-panel::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#4a38ca,#8b80ff);border:1px solid #060713;box-shadow:0 0 6px rgba(139,128,255,.5);}
.content-panel::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#5b46e8,#9effff);}
.track-row, .track-row *{cursor:var(--cursor-y2k-hand) !important;}

/* seekable progress bar: click or drag to jump to that point in the track */
.bar{cursor:var(--cursor-y2k-hand) !important; position:relative;}
.bar:hover{box-shadow:inset 0 0 8px #000, 0 0 0 1px #8b80ff;}
.bar i{transition:background .15s ease;}
.bar:hover i{background:linear-gradient(90deg,#5b46e8,#a996ff);}

/* configurable announcement banner: fixed strip above the shell, marquee text,
   dismissible (remembered per message+link via localStorage). See
   announceConfig in script.js to edit the message/link/cover. Styled with the
   same panel gradient/border/scanline recipe as the rest of the site. */
:root{--announce-h:0px;}
.announce-bar{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:52px;
  display:flex; align-items:stretch;
  border:1px solid #34427e; border-top:0; border-left:0; border-right:0;
  background:linear-gradient(90deg,rgba(23,22,72,.94),rgba(0,0,0,.82));
  box-shadow:inset 0 0 0 1px #000, 0 2px 18px rgba(76,80,255,.28);
  font-family:"Courier New",monospace;
  color:#e9e6ff;
  overflow:hidden;
}
.announce-bar::after{
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.06) 0 1px,transparent 1px 4px);
  mix-blend-mode:overlay; opacity:.5;
}
.announce-bar[hidden]{display:none;}
.announce-viewport{flex:1; overflow:hidden; position:relative;}
.announce-track{
  position:absolute; top:0; left:0; height:100%;
  display:flex; align-items:center; white-space:nowrap;
  animation:announceScroll 14s linear infinite;
  will-change:transform;
}
.announce-item{
  display:inline-flex; align-items:center; gap:12px;
  padding:0 40px;
  font-size:18px; font-weight:700; letter-spacing:1px; text-transform:lowercase;
  text-shadow:1px 1px #000, 0 0 10px rgba(158,255,255,.4);
}
.announce-thumb{
  width:34px; height:34px; object-fit:cover; border-radius:2px;
  border:1px solid #7468ff; box-shadow:0 0 8px rgba(139,128,255,.5);
}
.announce-track a{color:#9effff; text-decoration:underline; text-underline-offset:2px; font-weight:700;}
.announce-track a:hover{color:#fff;}
@keyframes announceScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.announce-close{
  flex:0 0 auto;
  width:52px; height:52px;
  border:0; border-left:1px solid #34427e;
  background:transparent; color:#a99bff; font-size:24px; line-height:1;
  cursor:pointer;
  position:relative; z-index:1;
}
.announce-close:hover{color:#fff; background:rgba(76,65,230,.35);}
@media (prefers-reduced-motion: reduce){
  .announce-track{animation:none; position:static; display:block;}
  .announce-track .announce-item:nth-child(2){display:none;}
  .announce-viewport{overflow-x:auto;}
}
@media (max-width: 600px){
  .announce-bar{height:44px;}
  .announce-item{font-size:13px; padding:0 20px; gap:8px;}
  .announce-thumb{width:26px; height:26px;}
  .announce-close{width:44px; height:44px; font-size:20px;}
}

/* real track titles run longer than the old placeholders — keep the player
   layout intact by truncating to one line instead of overflowing it */
#trackTitle{
  overflow:hidden !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
  max-width:100% !important;
}

/* confirmation dialog shown before following an external link */
.modal-overlay{
  position:fixed; inset:0; z-index:2000;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:rgba(2,2,10,.72);
  backdrop-filter:blur(2px);
}
.modal-overlay[hidden]{display:none;}
.modal-box{
  width:min(440px, 100%);
  border:1px solid #34427e;
  background:linear-gradient(160deg,rgba(23,22,72,.96),rgba(4,4,14,.98));
  box-shadow:inset 0 0 0 1px #000, 0 0 30px rgba(76,80,255,.35), 0 20px 60px rgba(0,0,0,.6);
  padding:22px 24px 24px;
  font-family:"Courier New",monospace;
  color:#e9e6ff;
}
.modal-box h3{
  margin:0 0 14px;
  font-weight:400; text-transform:lowercase; letter-spacing:2px;
  font-size:19px; color:#9effff;
  text-shadow:2px 2px #000, 0 0 10px rgba(158,255,255,.4);
}
.modal-box p{margin:0 0 22px; font-size:15px; line-height:1.5; color:#d0ccef; word-break:break-word;}
.modal-box p strong{color:#fff;}
.modal-actions{display:flex; gap:10px; justify-content:flex-end;}
.modal-btn{
  padding:10px 20px;
  border:1px solid #34427e;
  background:#070717;
  color:#8b80ff;
  font-family:inherit;
  font-size:14px;
  letter-spacing:1px;
  text-transform:lowercase;
}
.modal-btn:hover{color:#fff; border-color:#8b80ff; background:rgba(76,65,230,.28);}
.modal-btn-confirm{border-color:#9effff; color:#9effff;}
.modal-btn-confirm:hover{background:rgba(76,65,230,.4); color:#fff; box-shadow:0 0 12px rgba(158,255,255,.35);}
@media (max-width: 480px){
  .modal-box{padding:18px 18px 20px;}
  .modal-actions{flex-direction:column-reverse;}
  .modal-btn{width:100%;}
}

/* subtle menu-music mute toggle — sits centered in the gap just above the
   footer nav, not layered inside/over it */
.menu-audio-toggle{
  position:absolute; left:50%; bottom:86px; z-index:3;
  transform:translateX(-50%);
  display:flex; align-items:center; gap:7px;
  border:0; background:none; padding:4px 10px;
  color:#65608f;
  font-family:"Courier New",monospace;
  font-size:11px; letter-spacing:1px; text-transform:lowercase;
  opacity:.55;
  transition:opacity .2s ease, color .2s ease;
}
.menu-audio-toggle:hover{opacity:1; color:#9effff;}
.menu-audio-icon{position:relative; display:inline-block; font-size:13px; line-height:1;}
.menu-audio-toggle.muted .menu-audio-icon{opacity:.5;}
.menu-audio-toggle.muted .menu-audio-icon::after{
  content:""; position:absolute; left:-3px; top:50%; width:16px; height:1px;
  background:currentColor; transform:rotate(-45deg);
}
.menu-audio-label{white-space:nowrap;}
@media (max-width: 850px){
  .menu-audio-toggle{position:relative; left:auto; bottom:auto; transform:none; margin:0 auto 8px; justify-content:center;}
}
@media (max-width: 480px){
  .menu-audio-label{display:none;}
}

/* loading intro: a translucent veil (not opaque) so the background video
   already playing underneath is visible through it, dimmed, while critical
   assets finish loading */
.loading-screen{
  position:fixed; inset:0; z-index:5000;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  background:rgba(2,2,10,.82);
  color:#e9e6ff;
  opacity:1;
  transition:opacity .6s ease;
}
.loading-screen.loading-hidden{opacity:0; pointer-events:none;}
.loading-logo{
  font-family:Georgia,serif; font-weight:900;
  font-size:clamp(32px,6vw,56px);
  line-height:.86; letter-spacing:-2px; text-align:center;
  text-shadow:3px 3px #120044, 0 0 16px #7b61ff;
  animation:loadingPulse 1.8s ease-in-out infinite;
}
@keyframes loadingPulse{0%,100%{opacity:1;}50%{opacity:.68;}}
.loading-bar{
  width:min(280px, 60vw); height:10px;
  border:1px solid #34427e; background:#060713; box-shadow:inset 0 0 8px #000;
  overflow:hidden;
}
.loading-bar i{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg,#4a38ca,#927cff);
  transition:width .25s ease;
}
.loading-label{
  font-family:"Courier New",monospace; font-size:13px; letter-spacing:2px;
  text-transform:lowercase; color:#a99bff; text-shadow:2px 2px #000;
}
@media (prefers-reduced-motion: reduce){
  .loading-logo{animation:none;}
}
