:root{color-scheme:dark;font-family:'Helvetica Neue',Arial,sans-serif;color:#f0ede5;background:#080808}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:#a60058 url('assets/pink-satin-backdrop.png') center top/cover fixed no-repeat}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}
.movie-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:30px 5vw 24px;position:relative;z-index:2;background:#080808d9;backdrop-filter:blur(5px)}
.back{color:inherit;font-size:16px;text-decoration:none;justify-self:start;padding:12px 0}.back:hover{text-decoration:underline;text-underline-offset:5px}
h1{font-size:clamp(36px,5.8vw,88px);line-height:.9;font-weight:800;letter-spacing:-.065em;margin:0}h1 span{font-weight:400}
.byline{justify-self:end;font-size:14px;font-family:monospace}
.shelf-instruction{text-align:center;color:#b7b2a6;font-size:14px;margin:12px 0 24px}
.video-library{max-width:1400px;margin:0 auto 70px;padding:0 3vw}
.rental-shelf{display:flex;align-items:flex-end;justify-content:center;gap:7px;padding:55px 30px 60px;min-height:410px;background:url('assets/video-rental-shelf.png') center/100% 100% no-repeat;perspective:1200px;position:relative;isolation:isolate}
.rental-shelf:focus-within{z-index:2}
.tape{position:relative;flex:0 0 66px;height:280px;transition:flex-basis .5s cubic-bezier(.2,.75,.2,1),transform .5s;transform:rotate(var(--lean,0deg));transform-origin:bottom;min-width:0}
.tape:nth-child(3n){--lean:-1deg}.tape:nth-child(5n){--lean:1.2deg}
.tape-spine{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;width:66px;border:3px solid #181818;border-radius:4px;padding:9px 4px;background:linear-gradient(90deg,#000b,transparent 25%,#0005 78%,#000c),linear-gradient(#0005,#0005),var(--cover) center/auto 100%;box-shadow:3px 4px 6px #000b,inset 1px 0 1px #ffffff80;transition:transform .5s,opacity .25s;transform-origin:right}
.tape-title{writing-mode:vertical-rl;text-orientation:mixed;text-align:center;font-weight:800;font-size:19px;line-height:1.1;max-height:214px;overflow:hidden;text-shadow:0 1px 4px #000,0 0 9px #000;letter-spacing:-.025em}
.tape-year{font:14px monospace;background:#eee5ca;color:#24221d;padding:2px 4px;box-shadow:0 1px 3px #0008;transform:rotate(-3deg)}
.tape-format{font:italic bold 12px Arial;letter-spacing:.06em}
.tape:hover:not(.is-open){transform:translateY(-9px) rotate(0)}
.tape.is-open{flex-basis:224px;transform:translateY(-14px);z-index:10}
.tape.is-open .tape-spine{transform:translateX(-8px) rotateY(-85deg);opacity:0;pointer-events:none}
.tape-front{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateZ(-40px) rotateY(85deg);transform-origin:left;transition:transform .5s cubic-bezier(.2,.75,.2,1),opacity .25s,visibility .5s;width:224px;height:300px}
.is-open .tape-front{opacity:1;visibility:visible;transform:translateZ(30px) rotateY(-4deg)}
.tape-poster{width:100%;height:100%;padding:0;display:block;position:relative;background:#151515;border:5px solid #171717;border-left:9px solid #262626;border-radius:5px;box-shadow:12px 15px 20px #000b,inset 1px 0 #fff6;overflow:hidden}
.tape-poster img{display:block;width:100%;height:100%;object-fit:contain;background:#151515}
.trailer-label{position:absolute;bottom:0;left:0;right:0;padding:13px 3px 10px;background:linear-gradient(transparent,#000e 40%);font:bold 12px monospace;letter-spacing:.055em;text-align:center;color:#f4efde}
button.tape-poster:hover .trailer-label{color:#ffd878}
.put-back{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);background:#151413;border:1px solid #6d6557;border-radius:2px;padding:7px 13px;font:12px monospace;white-space:nowrap}
a:focus-visible,button:focus-visible{outline:3px solid #f4cf75;outline-offset:4px}
#trailer-dialog{width:min(1000px,94vw);max-height:94dvh;padding:20px;background:#101010;color:#f0ede5;border:1px solid #5c574b;overflow:auto;box-shadow:0 20px 100px #000}
#trailer-dialog::backdrop{background:#000d;backdrop-filter:blur(7px)}
.trailer-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.trailer-heading h2{font-size:clamp(20px,3vw,32px);letter-spacing:-.03em;margin:0}.trailer-heading button{flex-shrink:0;background:none;border:0;padding:10px;font:14px monospace}
#trailer-player{aspect-ratio:16/9;background:#000}#trailer-player iframe{width:100%;height:100%;border:0}#trailer-source{display:inline-block;margin:16px 0 0;color:#c9c4b6;font-size:14px}
@media(max-width:1099px){.movie-header{grid-template-columns:1fr auto}.byline{display:none}.rental-shelf{padding-left:20px;padding-right:20px}.tape{flex-basis:58px}.tape-spine{width:58px}}
@media(max-width:699px){.movie-header{padding:24px 6vw 18px;gap:20px}h1{font-size:38px}.video-library{padding:0 8px}.shelf-instruction{font-size:14px;margin-bottom:12px}.rental-shelf{min-height:340px;padding:36px 10px 54px;gap:5px}.tape{flex-basis:58px;height:244px}.tape-spine{width:58px}.tape-title{font-size:17px;max-height:181px}.tape.is-open{flex-basis:min(190px,calc(100vw - 150px))}.tape-front{width:min(190px,calc(100vw - 150px));height:257px}.is-open .tape-front{transform:translateZ(0) rotateY(0)}.tape-year{font-size:12px}.put-back{font-size:12px;padding:6px 10px}.back{font-size:14px}.trailer-label{font-size:11px}#trailer-dialog{padding:12px}}
@media(prefers-reduced-motion:reduce){.tape,.tape-spine,.tape-front{transition:none}}
