/* VHS transport and shelf. Artwork is on a face; thickness is real CSS geometry. */
.tape-stack .vhs-tape {
  height:auto !important; min-height:142px !important; aspect-ratio:1.87;
  padding:12px !important; margin:0 !important; border:2px solid #080909 !important;
  border-radius:6px !important; overflow:visible !important;
  background:repeating-linear-gradient(0deg,#222321 0 2px,#1b1c1b 2px 4px) !important;
  box-shadow:inset 0 2px #54544c,inset 0 -3px #080909,3px 7px 0 #0a0a09,4px 10px 15px #0009 !important;
  transform:perspective(700px) rotateX(3deg) !important; transition:transform .18s,box-shadow .18s !important;
}
.tape-stack .vhs-tape:hover,.tape-stack .vhs-tape:focus-visible { transform:translateY(-3px) !important; outline:2px solid #edcea0;outline-offset:3px; }
.tape-stack .vhs-tape::before { inset:12px 8px 12px !important; border:1px solid #070808 !important; border-radius:5px !important; background:linear-gradient(100deg,#313330,#141615) !important;box-shadow:inset 0 1px #68675b55 !important; }
.tape-stack .vhs-tape::after { content:'VIDEO CASSETTE';position:absolute;left:16px !important;right:16px !important;top:3px !important;bottom:auto !important;height:13px !important;transform:none !important;clip-path:none !important;border:0 !important;background:#181a19 !important;color:#a6a69b;font:7px/13px var(--mono);letter-spacing:2px;text-align:center;box-shadow:0 1px #45453d !important; }
.tape-stack .vhs-tape .tape-index,.tape-stack .vhs-tape .tape-format { position:absolute;z-index:3;top:22px !important;margin:0 !important;color:#e1dfd3 !important;font:700 11px/1 var(--mono) !important;text-shadow:none !important; }
.tape-stack .vhs-tape .tape-index { left:12px; }.tape-stack .vhs-tape .tape-format { right:12px; }
.tape-stack .vhs-tape .tape-window { position:absolute;top:34px !important;left:15px !important;right:15px !important;bottom:auto !important;width:auto !important;height:40px !important;transform:none !important;border:1px solid #090909 !important;border-radius:6px !important;background:linear-gradient(100deg,#0a0c0b,#343832 50%,#0a0c0b) !important;box-shadow:inset 0 2px 5px #000 !important; }
.tape-stack .vhs-tape .tape-window::before,.tape-stack .vhs-tape .tape-window::after { content:'';position:absolute;top:2px;width:55px;height:33px;border:1px solid #4d534b;border-radius:7px;background:linear-gradient(145deg,#a3b29c55,transparent 55%); }
.tape-stack .vhs-tape .tape-window::before {left:13px}.tape-stack .vhs-tape .tape-window::after {right:13px}
.tape-stack .vhs-tape .tape-reel { top:7px !important; width:25px !important;height:25px !important;border:6px dotted #d6d3c4 !important;background:#191c1a !important;box-shadow:0 0 0 5px #070808 !important; }
.tape-stack .vhs-tape .tape-reel-left{left:29px !important}.tape-stack .vhs-tape .tape-reel-right{right:29px !important}
.tape-stack .vhs-tape .tape-meta { position:absolute;z-index:4;left:13px;right:13px;bottom:14px;top:80px;margin:0 !important;padding:6px 8px !important;border:1px solid #ebd7b1 !important;border-left:5px solid var(--tape-label) !important;border-radius:2px !important;background:linear-gradient(110deg,#f3e5c9,#dcd1b9) !important;box-shadow:0 1px 2px #0009 !important;display:flex;flex-direction:column;justify-content:center;gap:4px; }
.tape-stack .vhs-tape[data-game] .tape-title { color:#181917 !important;font:800 17px/1.1 var(--ui) !important;letter-spacing:0 !important;white-space:normal !important;text-shadow:none !important;text-transform:none !important;overflow:visible !important;text-overflow:clip !important; }
.tape-stack .vhs-tape .tape-code { color:#4e4d43 !important;font:600 8px/1.2 var(--mono) !important;letter-spacing:.09em !important; }
.tape-stack .vhs-tape .tape-edge {bottom:3px !important;color:#a5a599 !important;font-size:6px !important;}
.tape-stack .vhs-tape .tape-demo-sticker,.tape-stack .vhs-tape .tape-service-sticker {top:19px !important;left:48px !important;right:auto !important;transform:rotate(-3deg) !important;}
.tape-stack .vhs-tape.is-out { opacity:.32 !important;box-shadow:none !important; }
.tape-stack .vhs-tape.is-return-target { opacity:.75 !important;outline:2px dashed #ecd29a !important; }

/* The carriers position the model, but have no artwork or clipping of their own. */
body #held-tape,body #ejected-tape,body #loaded-cassette-3d { width:280px !important;height:154px !important;padding:0 !important;border:0 !important;border-radius:0 !important;background:none !important;box-shadow:none !important;overflow:visible !important;isolation:auto !important;transform-style:preserve-3d !important;filter:none !important; }
body #held-tape::before,body #held-tape::after,body #ejected-tape::before,body #ejected-tape::after,body #loaded-cassette-3d::before,body #loaded-cassette-3d::after {display:none !important;}
body #held-tape { --shell-accent:var(--held-accent,#d8b65d); transform:translate(-50%,-50%) perspective(900px) rotateX(18deg) rotateY(-14deg) rotateZ(-5deg); }
body #held-tape.is-following-pointer,body #held-tape.is-parked {transform:translate(-50%,-50%) perspective(900px) rotateX(18deg) rotateY(-14deg) rotateZ(-5deg) !important;}
body #held-tape.is-over-drop-target {transform:translate(-50%,-65%) perspective(900px) rotateX(48deg) rotateY(0deg) rotateZ(0deg) !important;}
body #ejected-tape {--shell-accent:var(--ejected-accent,#d8b65d);left:50%;top:4px !important;transform:translate(-50%,-36%) perspective(900px) rotateX(55deg) !important;transform-origin:center center !important;z-index:22; }
body #ejected-tape:hover,body #ejected-tape:focus-visible {transform:translate(-50%,-36%) perspective(900px) rotateX(50deg) !important;}
body #loaded-cassette-3d {--shell-accent:var(--loaded-accent,#d8b65d);left:50%;top:4px !important;transform:translate(-50%,-65%) perspective(900px) rotateX(60deg) !important;transform-origin:center center !important;}
body #loaded-cassette-3d.is-mechanism-visible {display:block !important;}
body #held-tape[hidden],body #ejected-tape[hidden],body #loaded-cassette-3d[hidden] {display:none !important;}
body .vhs-model,body #loaded-cassette-3d > .vhs-model { display:block;position:absolute !important;inset:0 !important;width:100%;height:100%;margin:0;overflow:visible !important;transform-style:preserve-3d !important;transform:none;white-space:normal;text-transform:none; }
.vhs-face { display:block;position:absolute;box-sizing:border-box;backface-visibility:hidden; }
.vhs-front,.vhs-back {inset:0;border:2px solid #090b0a;border-radius:5px;background:repeating-linear-gradient(0deg,#292b28 0 2px,#222420 2px 4px);box-shadow:inset 0 1px #686a5e;}
.vhs-front {transform:translateZ(10px);}.vhs-back{transform:translateZ(-10px) rotateY(180deg);background:#151815;}
.vhs-top,.vhs-bottom {width:100%;height:20px;left:0;background:linear-gradient(#363a33,#161915);border:1px solid #0b0c0b;}
.vhs-top{top:-10px;transform:rotateX(90deg)}.vhs-bottom{bottom:-10px;transform:rotateX(-90deg);color:#b4b3a5;font:7px/18px var(--mono);letter-spacing:3px;text-align:center;}
.vhs-left,.vhs-right {width:20px;height:100%;top:0;background:repeating-linear-gradient(0deg,#41433a 0 2px,#1f231c 2px 5px);border:1px solid #080a08;}
.vhs-left{left:-10px;transform:rotateY(-90deg)}.vhs-right{right:-10px;transform:rotateY(90deg)}
.vhs-door{position:absolute;top:2px;left:11px;right:11px;height:14px;border-bottom:2px solid #090909;box-shadow:0 1px #606052;color:#bab8a8;font:7px/12px var(--mono);letter-spacing:2px;text-align:center;}
.vhs-glass{position:absolute;top:30px;width:68px;height:51px;border:2px solid #060706;border-radius:8px;background:linear-gradient(135deg,#a4b49f44,#131913 45%,#070a07);box-shadow:inset 0 1px #86947f88;}
.vhs-glass-left{left:19px}.vhs-glass-right{right:19px}
.vhs-glass i {display:block;position:absolute;width:29px;height:29px;left:17px;top:8px;border:7px dotted #d9d5c5;border-radius:50%;background:radial-gradient(#1c221a 20%,#8a9381 22%,#131b11 36%);box-shadow:0 0 0 6px #080a07;}
.vhs-emboss{position:absolute;top:39px;left:102px;right:102px;text-align:center;color:#979989;font:bold italic 17px/1.1 Arial;letter-spacing:2px;}.vhs-emboss small{font:7px var(--mono);}
.vhs-paper{position:absolute;left:17px;right:17px;bottom:15px;height:46px;padding:6px 9px;border-left:5px solid var(--shell-accent);background:linear-gradient(110deg,#f4e6c8,#ded1b2);color:#191c16;display:flex;flex-direction:column;justify-content:center;gap:4px;border-radius:2px;box-shadow:0 1px 3px #000;}
body .vhs-paper .held-label,body .vhs-paper .ejected-tape-label,body .vhs-paper #loaded-cassette-label{position:static !important;display:block !important;inset:auto !important;font:800 16px/1.08 var(--ui) !important;white-space:normal !important;overflow:visible !important;color:#191c16 !important;letter-spacing:0 !important;text-shadow:none !important;text-align:center;}
.vhs-paper small{font:6px/1.2 var(--mono);letter-spacing:.7px;text-align:center;color:#514f43;}
.vhs-screw{position:absolute;bottom:4px;width:5px;height:5px;background:linear-gradient(40deg,#76786c 42%,#111 43% 59%,#76786c 60%);border-radius:50%;}.vhs-screw-a{left:5px}.vhs-screw-b{right:5px}
body #held-tape .held-state{bottom:-36px !important;left:0;right:0;color:#fff0ce;background:#101510;padding:6px;border:1px solid #a99d74;font:10px var(--mono);}
body #ejected-tape.is-emerging {animation:none !important;}
body #ejected-tape.is-emerging .vhs-model {animation:vhs-eject 1.25s cubic-bezier(.25,.75,.25,1) both;}
body #loaded-cassette-3d.is-intaking {animation:none !important;}
body #loaded-cassette-3d.is-intaking .vhs-model {animation:vhs-intake .52s ease-in both;}
@keyframes vhs-intake {from{transform:translateY(0) translateZ(0)}to{transform:translateY(-105px) translateZ(-35px)}}
@keyframes vhs-eject {from{transform:translateY(-100px) translateZ(-30px)}to{transform:translateY(0) translateZ(0)}}
@media(max-width:870px){.tape-stack .vhs-tape[data-game] .tape-title{font-size:17px !important;}body #held-tape,body #ejected-tape,body #loaded-cassette-3d{width:250px !important;height:138px !important}.vhs-glass{top:25px;height:43px;width:59px}.vhs-glass i{left:13px;top:4px}.vhs-emboss{left:90px;right:90px;top:36px}.vhs-paper{bottom:10px;height:43px}body .vhs-paper .held-label,body .vhs-paper .ejected-tape-label,body .vhs-paper #loaded-cassette-label{font-size:14px !important}}
@media(prefers-reduced-motion:reduce){body #ejected-tape .vhs-model,body #loaded-cassette-3d .vhs-model{animation:none !important}.tape-stack .vhs-tape{transition:none !important}}
