@font-face{font-family:Anton;src:url(../fonts/anton.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Space Mono";src:url(../fonts/spacemono-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Space Mono";src:url(../fonts/spacemono-700.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --paper:#eeedea; --paper2:#e4e2dd; --ink:#0b0b0b; --grey:#9e9d9d; --red:#c33729;
  --tint:#c33729;
  --display:Anton,"Arial Narrow","Helvetica Neue Condensed",Impact,sans-serif;
  --mono:"Space Mono",ui-monospace,Menlo,Consolas,monospace;
  --dock-h:0px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.45 var(--mono);
  padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom));overflow-x:hidden}
/* photocopy grain */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.16;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.4 -.35'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
.mono{font-family:var(--mono)}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--ink);color:#fff;padding:10px 14px;z-index:99}
.skip:focus{top:8px}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
button{font:inherit;color:inherit}
a{color:inherit}

/* label-maker tape (the censor bar, made tactile) */
.tape{display:inline-block;background:linear-gradient(#1b1b1b,#050505 55%,#151515);color:#f4f4f4;
  font:700 12px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;padding:6px 9px 6px 11px;margin:0;
  text-shadow:0 1px 0 rgba(255,255,255,.18),0 -1px 0 #000;box-shadow:0 1px 1px rgba(0,0,0,.35);
  clip-path:polygon(0 0,100% 0,100% 30%,calc(100% - 3px) 50%,100% 70%,100% 100%,0 100%,0 70%,3px 50%,0 30%)}

/* header */
.top{display:flex;align-items:flex-end;justify-content:space-between;padding:18px 18px 4px;max-width:1280px;margin:0 auto}
.wordmark{font:400 clamp(56px,17vw,120px)/.82 var(--display);letter-spacing:-.01em;margin:0;text-transform:lowercase}
.tape--motto{transform:rotate(-3deg) translateY(-6px);font-size:13px}
.brand{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.send-live{display:inline-flex;align-items:center;gap:8px;background:var(--red,#C33729);color:#fff;text-decoration:none;
  font:700 13px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:11px 14px;min-height:44px;box-sizing:border-box;
  box-shadow:3px 3px 0 var(--ink,#111)}
.send-live[hidden]{display:none}
.send-live:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink,#111)}
.send-live:focus-visible{outline:3px solid var(--ink,#111);outline-offset:3px}
.send-live__dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:sendpulse 1.2s ease-in-out infinite}
@keyframes sendpulse{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.send-live__dot{animation:none}}

/* ===== the stack ===== */
.dig{max-width:1280px;margin:0 auto;padding:0 0 8px}
.stage{position:relative;height:var(--stage-h,440px);perspective:1300px;perspective-origin:50% 8%;
  touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;overflow:hidden;outline-offset:-3px;
  -webkit-tap-highlight-color:transparent}
.stage.dragging{cursor:grabbing}
.wash{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.2s ease,background 1.2s ease;
  background:radial-gradient(60% 55% at 50% 58%,color-mix(in srgb,var(--tint) 34%,transparent),transparent 72%)}
body.playing .wash{opacity:1}
.scene{position:absolute;left:50%;bottom:var(--lip-h,44px);width:0;height:0;transform-style:preserve-3d}
.case{position:absolute;left:calc(var(--w) / -2);bottom:0;width:var(--w);height:var(--h);
  transform-style:preserve-3d;transform-origin:50% 100%;will-change:transform}
.tray,.lid{position:absolute;inset:0;border-radius:3px}
.tray{background:linear-gradient(135deg,#2a2a2a,#0e0e0e 60%,#1d1d1d);
  box-shadow:0 18px 30px -12px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.08)}
.tray::before{content:"";position:absolute;inset:5% 4% 5% 9%;border-radius:2px;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 5px)}
.disc{position:absolute;top:50%;left:54.5%;width:84%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  background:var(--img) center/cover;filter:grayscale(1) contrast(1.1);
  -webkit-mask:radial-gradient(circle,transparent 0 7.5%,#000 7.8%);mask:radial-gradient(circle,transparent 0 7.5%,#000 7.8%);
  box-shadow:0 0 0 1px rgba(255,255,255,.2)}
.disc::before{content:"";position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 20deg,rgba(255,255,255,.0),rgba(255,255,255,.35) 8%,rgba(255,255,255,0) 18%,rgba(255,255,255,0) 50%,rgba(255,255,255,.28) 58%,rgba(255,255,255,0) 68%),
    radial-gradient(circle,transparent 0 15%,rgba(230,230,230,.85) 15.3% 22%,rgba(255,255,255,.25) 22.3% 23%,transparent 23.5% 93%,rgba(255,255,255,.35) 94% 100%)}
.case.playing .disc{filter:none;animation:spin 2.4s linear infinite;animation-play-state:paused}
body.playing .case.playing .disc{animation-play-state:running}
@keyframes spin{to{rotate:360deg}}

.lid{transform-origin:0 50%;transform-style:preserve-3d;backface-visibility:visible;border-radius:3px;overflow:visible}
.lid .cover{position:absolute;top:2.2%;bottom:2.2%;left:8%;right:1.6%;overflow:hidden;background:#111}
.lid img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.12) brightness(1.02);
  transition:filter .9s ease}
.case.front .lid img{filter:grayscale(.55) contrast(1.06)}
.case.playing .lid img{filter:none}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(.5px)}
.face::before{/* clear plastic shell */content:"";position:absolute;inset:0;border-radius:3px;pointer-events:none;z-index:2;
  background:linear-gradient(115deg,rgba(255,255,255,.38) 0 9%,rgba(255,255,255,0) 22% 58%,rgba(255,255,255,.14) 64%,rgba(255,255,255,0) 72%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),inset 0 0 0 2px rgba(0,0,0,.25),0 1px 0 rgba(0,0,0,.2)}
.face::after{/* hinge column */content:"";position:absolute;left:0;top:0;bottom:0;width:8%;z-index:1;border-radius:3px 0 0 3px;
  background:linear-gradient(90deg,rgba(20,20,20,.9),rgba(60,60,60,.85) 40%,rgba(15,15,15,.92));
  box-shadow:inset -1px 0 0 rgba(255,255,255,.25)}
.lid .tape{position:absolute;z-index:3;top:3px;left:11%;padding-top:4px;padding-bottom:4px;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:clamp(9px,2.6vw,12px);transform:rotate(var(--rot,0deg))}
.lid .e-dot{position:absolute;z-index:3;right:4%;bottom:5%;width:20px;height:20px;border-radius:50%;background:var(--red);color:#fff;
  font:700 11px/20px var(--mono);text-align:center;box-shadow:0 1px 1px rgba(0,0,0,.4)}
.lid .back{/* inside of lid when open */position:absolute;inset:0;transform:rotateY(180deg) translateZ(.5px);backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:3px;z-index:4;
  background:linear-gradient(115deg,rgba(255,255,255,.35),rgba(220,220,220,.12) 40%,rgba(255,255,255,.25));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}
.lid .back .sheet{position:absolute;inset:3% 3% 3% 3%;background:#f4f3ef;color:var(--ink);padding:9% 10% 9% 9%;display:flex;flex-direction:column;gap:4px;
  font:400 clamp(9px,2.4vw,12px)/1.35 var(--mono);box-shadow:inset 0 0 30px rgba(0,0,0,.08)}
.lid .back .sheet b{font:400 clamp(20px,6vw,34px)/.95 var(--display);text-transform:uppercase;margin-bottom:6px}
.lid .back .sheet em{margin-top:auto;font-style:normal;font-weight:700;color:var(--red);letter-spacing:.1em}
.lid .back::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.4),rgba(255,255,255,0) 35%,rgba(255,255,255,.15) 70%,rgba(255,255,255,0));pointer-events:none}

/* front lip of the crate */
.lip{position:absolute;left:0;right:0;bottom:0;height:var(--lip-h,44px);background:var(--ink);color:#e9e9e9;z-index:5;
  display:flex;justify-content:space-between;align-items:center;padding:0 18px;
  font:700 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase}
.lip-dir{color:var(--grey)}

/* ===== deck ===== */
.deck{padding:12px 18px 0}
.now{min-height:96px}
.now-meta{display:flex;gap:14px;margin:0;color:#555;font-size:12px;letter-spacing:.08em}
.now-title{font:400 clamp(34px,9.5vw,64px)/.95 var(--display);text-transform:uppercase;margin:4px 0 6px;letter-spacing:.005em}
.now-sub{display:flex;align-items:center;gap:12px;margin:0;font-size:13px}
.e{display:inline-block;background:var(--ink);color:#fff;font-size:10px;line-height:18px;width:18px;text-align:center;border-radius:2px}
.spot-link{margin-left:auto;text-decoration:none;border-bottom:2px solid var(--ink);padding:6px 0 1px;font-weight:700}
.spot-link:hover{color:var(--red);border-color:var(--red)}

.controls{display:flex;gap:8px;margin-top:14px}
.ctl,.pull{border:2px solid var(--ink);background:transparent;min-height:52px;border-radius:0;cursor:pointer;
  transition:transform .15s ease,background .2s,color .2s}
.ctl{width:52px;flex:0 0 52px;display:grid;place-items:center}
.ctl svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:square}
.ctl:active,.pull:active{transform:translateY(2px)}
.ctl:hover{background:var(--ink);color:var(--paper)}
.pull{flex:1;background:var(--ink);color:#fff;font:700 13px/1 var(--mono);letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px}
.pull:hover{background:var(--red);border-color:var(--red)}
.pull-ico{width:0;height:0;border-left:10px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}
.pull.is-pause .pull-ico{width:10px;height:12px;border:0;border-left:3px solid currentColor;border-right:3px solid currentColor}
.hint{font-size:11px;color:#666;margin:10px 0 0;letter-spacing:.04em}

/* dock: real Spotify embed stays visible */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--ink);padding:8px 10px calc(8px + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:10px;transform:translateY(110%);transition:transform .6s cubic-bezier(.2,.8,.2,1);visibility:hidden}
body.has-player .dock{transform:none;visibility:visible}
.dock-disc{flex:0 0 44px;height:44px;border-radius:50%;background:var(--dimg,#333) center/cover;position:relative;
  -webkit-mask:radial-gradient(circle,transparent 0 9%,#000 9.5%);mask:radial-gradient(circle,transparent 0 9%,#000 9.5%);
  animation:spin 2.4s linear infinite;animation-play-state:paused}
.dock-disc i{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,transparent 0 18%,rgba(230,230,230,.9) 18.5% 27%,transparent 27.5%),conic-gradient(from 30deg,transparent,rgba(255,255,255,.35) 10%,transparent 22%,transparent 50%,rgba(255,255,255,.3) 60%,transparent 72%)}
body.playing .dock-disc{animation-play-state:running}
.dock-embed{flex:1;min-width:0;height:80px;border-radius:12px;overflow:hidden;background:#222}
.dock-embed iframe{display:block;width:100%;height:80px;border:0}

/* ===== Linktree, one-to-one, under the crate ===== */
.lt{max-width:1100px;margin:56px auto 0;padding:0 16px}
.lt-card{max-width:520px;margin:0 auto;text-align:center}
.lt-kicker{margin:0 0 18px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#777;display:flex;align-items:center;gap:12px}
.lt-kicker::before,.lt-kicker::after{content:"";flex:1;height:1px;background:#c9c7c2}
.lt-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;display:block;margin:0 auto;filter:grayscale(1) contrast(1.05)}
.lt-handle{margin:14px 0 4px;font:700 18px/1.2 var(--mono);letter-spacing:.02em}
.lt-bio{margin:0;font-size:14px;color:#444}
.lt-icons{list-style:none;display:flex;justify-content:center;gap:6px;margin:14px 0 22px;padding:0}
.lt-icons a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--ink)}
.lt-icons a:hover{color:var(--red)}
.lt-icons svg{width:24px;height:24px}
.lt-btns{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.lt-btn{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:8px;min-height:64px;padding:6px;
  border:2px solid var(--ink);background:var(--paper);text-decoration:none;color:var(--ink);box-shadow:4px 4px 0 var(--ink);
  transition:transform .15s ease,box-shadow .15s ease,background .2s,color .2s}
.lt-btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.lt-btn:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}
.lt-thumb{width:48px;height:48px;display:grid;place-items:center}
.lt-thumb img{width:48px;height:48px;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05);transition:filter .3s}
.lt-btn:hover .lt-thumb img,.lt-btn:focus-visible .lt-thumb img{filter:none}
.lt-glyph{width:48px;height:48px;display:grid;place-items:center;background:var(--ink);color:#fff}
.lt-glyph svg{width:28px;height:28px}
.lt-txt b{display:block;font:400 19px/1.1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.lt-txt small{display:block;margin-top:4px;font-size:11px;color:#555}
.lt-src{margin:20px 0 0;font-size:12px}
.lt-src a{display:inline-block;padding:8px 2px;font-weight:700}
.lt-src a:hover{color:var(--red)}

/* ===== inlay (back insert of the case) ===== */
.inlay{display:flex;margin:56px 12px 0;background:#f7f6f3;color:var(--ink);box-shadow:0 1px 0 #d6d4cf,0 24px 40px -28px rgba(0,0,0,.4);
  max-width:1100px}
.spine{flex:0 0 30px;background:var(--ink);color:#ddd;display:flex;align-items:center;justify-content:center}
.spine span{writing-mode:vertical-rl;transform:rotate(180deg);font:700 10px/1 var(--mono);letter-spacing:.3em;white-space:nowrap}
.spine--r span{transform:none}
.inlay-body{flex:1;min-width:0;padding:22px 16px 26px}
.inlay-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.inlay-title{font:400 clamp(30px,8vw,56px)/.95 var(--display);text-transform:uppercase;margin:0}
.inlay-title span{color:var(--red)}
.reveal{position:relative;margin:0;flex:0 0 auto;width:clamp(108px,30vw,200px)}
.reveal img{width:100%;height:auto;display:block;filter:grayscale(1) contrast(1.1);transition:filter 1.2s ease}
.reveal.open img{filter:none}
.bar{position:absolute;left:-6%;right:-6%;top:38%;height:17%;background:var(--ink);border:0;cursor:pointer;color:#fff;
  font:700 10px/1 var(--mono);letter-spacing:.25em;text-transform:uppercase;transition:transform .9s cubic-bezier(.6,0,.2,1)}
.bar span{opacity:.75}
.reveal.open .bar{transform:translateX(118%) rotate(4deg)}
.reveal.open .bar span{opacity:0}

.tracks{list-style:none;margin:22px 0 0;padding:0;border-top:2px solid var(--ink)}
.tracks li{border-bottom:1px solid #cfcdc8}
.tracks button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:baseline;
  width:100%;padding:11px 2px;cursor:pointer;font:13px/1.3 var(--mono)}
.tracks button:focus-visible{outline:3px solid var(--red);outline-offset:-3px}
.tracks .t{font:400 19px/1.1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.tracks .d{color:#666;font-size:12px;text-align:right;white-space:nowrap}
.tracks .n{color:#888;font-size:12px}
.tracks .x{text-decoration:none;border:0;display:inline-block;margin-left:6px;font:700 9px/14px var(--mono);background:var(--ink);color:#fff;width:14px;text-align:center;vertical-align:3px}
.tracks button:hover .t,.tracks li.on .t{color:var(--red)}
.tracks li.on .n::before{content:"▶";color:var(--red)}
.tracks li.on .n span{display:none}
.inlay-foot{margin-top:20px;display:grid;gap:14px}
.total{margin:0;font-size:12px;letter-spacing:.06em}
.quote{margin:0;font:400 24px/1 var(--display);text-transform:uppercase;color:var(--red)}
.quote small{display:block;margin-top:6px;font-size:11px;color:#777;text-transform:none;letter-spacing:.02em}
.follow{justify-self:start;background:var(--ink);color:#fff;text-decoration:none;font:700 12px/1 var(--mono);letter-spacing:.14em;
  text-transform:uppercase;padding:16px 18px}
.follow:hover{background:var(--red)}

.foot{display:flex;align-items:center;gap:16px;max-width:1100px;margin:36px auto 0;padding:0 18px 36px;font-size:11px;color:#555}
.foot img{width:64px;height:auto;filter:contrast(1.2)}
.foot p{margin:0}
.foot .credit{display:inline-block;margin-top:6px;padding:4px 0;color:#777;text-decoration:none;border-bottom:1px solid #bbb}
.foot .credit:hover{color:var(--red);border-color:var(--red)}

@media (max-width:520px){.tracks .dt{display:none}}
/* ===== desktop ===== */
@media (min-width:900px){
  .top{padding:28px 40px 0}
  .dig{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.9fr);align-items:end;gap:24px;padding:0 40px}
  .stage{border-bottom:0}
  .deck{padding:0 0 calc(var(--lip-h,44px) + 4px)}
  .now-title{font-size:clamp(48px,4.6vw,72px)}
  .dock{position:static;transform:none;visibility:visible;background:transparent;padding:0;margin-top:22px;display:none}
  body.has-player .dock{display:flex}
  .dock-disc{display:none}
  .dock-embed{height:152px}
  .dock-embed iframe{height:152px}
  body{padding-bottom:0}
  .inlay{margin:80px auto 0}
  .lt{margin-top:96px}
  .inlay-body{padding:36px 40px 40px}
  .tracks{columns:2;column-gap:40px}
  .tracks li{break-inside:avoid}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation:none!important}
}

.wordmark__dot{display:inline-block;width:.17em;height:.17em;border-radius:50%;background:#3b1e54;margin-left:.04em;vertical-align:baseline}
