.device { width: 560px; height: 340px; background: linear-gradient(145deg, #2b2b35, #14141a); border-radius: 28px; box-shadow: 0 80px 180px rgba(0,0,0,0.85), inset 0 1px 2px rgba(255,255,255,0.08); position: relative; transform: rotateX(14deg); } /* TOP LID (thicker + more realistic bevel) */ .lid { position: absolute; width: 100%; height: 62%; background: linear-gradient(145deg, #3a3a48, #181820); border-radius: 28px 28px 18px 18px; transform-origin: top; transition: 0.75s cubic-bezier(.2,.8,.2,1); z-index: 10; box-shadow: inset 0 2px 3px rgba(255,255,255,0.08), inset 0 -10px 25px rgba(0,0,0,0.5); } .lid::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(120deg, rgba(255,255,255,0.10), transparent 50%); pointer-events: none; } /* hinge shadow (makes it feel mechanical) */ .lid::before { content: ""; position: absolute; bottom: -14px; left: 0; width: 100%; height: 20px; background: linear-gradient(to bottom, rgba(0,0,0,0.55), transparent); } /* OPEN STATE */ .lid.open { transform: rotateX(-130deg); } /* LOWER DECK (important: real โ€œwellโ€ shape) */ .tray { position: absolute; top: 58%; left: 50%; transform: translate(-50%, -50%); width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #5c5c68 0%, #0a0a0d 70%); box-shadow: inset 0 0 35px rgba(0,0,0,0.95), inset 0 8px 15px rgba(255,255,255,0.05); z-index: 2; } /* CD MUST LOOK SEATED, NOT FLOATING */ #cdSlot { position: absolute; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; } /* CD */ .cd { width: 150px; height: 150px; border-radius: 50%; position: relative; background-size: cover; background-position: center; box-shadow: 0 30px 60px rgba(0,0,0,0.65), inset 0 0 18px rgba(255,255,255,0.25); border: 1px solid rgba(255,255,255,0.15); transform: translateY(6px); /* ๐Ÿ‘ˆ THIS is what makes it "sit in" */ } /* spindle hole + hub (this is what makes it look REAL) */ .cd::before { content: ""; position: absolute; width: 34px; height: 34px; border-radius: 50%; background: radial-gradient(circle at center, #0a0a0a 35%, #1a1a1a 70%, #000); top: 50%; left: 50%; transform: translate(-50%, -50%); box-shadow: inset 0 0 6px rgba(255,255,255,0.08); } /* reflective plastic ring */ .cd::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.18), transparent 45%); pointer-events: none; } /* spin */ .spin { animation: spin 2.6s linear infinite; } @keyframes spin { from { transform: translateY(6px) rotate(0deg); } to { transform: translateY(6px) rotate(360deg); } }