.media-boot{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 50% 58%,#303546 0,#171c29 40%,#0a0e17 85%);color:#f9edcd;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;font-family:'Trebuchet MS',system-ui,sans-serif}.media-boot[hidden]{display:none!important}.media-boot:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.13;background:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 4px)}.boot-heading{position:absolute;top:7%;text-align:center;z-index:1;pointer-events:none}.boot-heading>span{font-size:9px;letter-spacing:4px;color:#a1a8b8}.boot-heading h1{font-size:clamp(25px,3vw,43px);font-weight:normal;line-height:1.15;letter-spacing:-1.5px;margin:16px 0 0;color:#fbefda}.boot-load{appearance:none;position:relative;width:min(700px,95vw);height:min(540px,72svh);margin-top:65px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;background:transparent;border:0;color:inherit;cursor:pointer;padding:0 10px 25px;border-radius:30px;font:inherit;isolation:isolate}.boot-load:focus-visible{outline:2px solid #f3ce81;outline-offset:6px}.boot-scene{position:absolute;inset:0 0 85px;perspective:850px;pointer-events:none}.boot-halo{position:absolute;width:430px;height:300px;max-width:90%;left:50%;top:20%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#e9ab5630,transparent 65%);filter:blur(25px)}.boot-media{position:absolute;top:8%;left:50%;width:210px;height:210px;transform:translateX(-50%) rotate(-9deg);z-index:3;filter:drop-shadow(12px 18px 12px #0008);transition:transform .3s}.media-label{position:absolute;inset:9%;background:url('game-art/channel-covers.png') 100% 100%/400% 200%;border-radius:8px}.media-brand{position:absolute;bottom:4%;left:0;width:100%;text-align:center;font-size:7px;letter-spacing:2px;color:#e5d7ac}.media-hole,.media-reels,.media-ridges{display:none}.boot-player{position:absolute;bottom:8%;left:50%;width:410px;height:125px;max-width:85%;transform:translateX(-50%);background:linear-gradient(#525560 0,#343743 12%,#232633 15%,#141823 100%);border:1px solid #747782;border-radius:9px;box-shadow:0 12px 0 #080b14,0 13px 0 #454855,inset 0 1px #c4c6c5;z-index:2}.player-slot{position:absolute;top:25px;left:7%;width:65%;height:10px;background:#06090f;border-radius:3px;box-shadow:0 2px 0 #6b6e78,inset 0 2px 3px #000}.player-display{position:absolute;bottom:24px;right:7%;width:75px;background:#07151a;border:2px solid #424650;border-radius:2px;padding:6px 2px;text-align:center;color:#92e4c2;font:10px monospace;letter-spacing:2px;text-shadow:0 0 9px #80f7bb}.player-brand{position:absolute;left:7%;bottom:27px;font-size:18px;color:#d3d3ce;letter-spacing:-1px}.player-brand span{color:#e5b66c}.player-buttons{position:absolute;top:23px;right:7%;font-size:12px;letter-spacing:3px;color:#adb2bd}.player-light{position:absolute;bottom:15px;left:7%;height:3px;width:16px;background:#89e6b4;box-shadow:0 0 10px #6bfca0}.player-top,.tonearm{display:none}.insert-guide{position:absolute;left:50%;bottom:40%;transform:translateX(-50%);font-size:23px;color:#e8bd75;opacity:.6;animation:insert-hint 2s ease-in-out infinite}.shelf-shadow{position:absolute;bottom:0;left:12%;right:12%;height:35px;border-radius:50%;background:#0008;filter:blur(16px)}.boot-prompt{font-size:20px;letter-spacing:-.5px;color:#ffe1a4}.boot-action{font-size:8px;letter-spacing:3px;color:#9ca5b7;margin-top:10px}.boot-status{font-size:10px;letter-spacing:1px;color:#798497;margin:5px 0 0;height:16px}.boot-corner{position:absolute;bottom:25px;font-size:8px;letter-spacing:3px;color:#737f92}.boot-load:hover .boot-media{transform:translateX(-50%) translateY(-8px) rotate(-4deg)}
/* Each medium has its own physical silhouette and matching hardware. */
[data-media=cd] .boot-media{border-radius:50%;background:conic-gradient(#a5bfc5,#d3adf3,#88dedd,#f9f1c7,#ab96d1,#a5bfc5);border:3px solid #e4e8e4;box-shadow:inset 0 0 0 7px #fff4,inset 0 0 0 10px #37434b66}[data-media=cd] .media-label{inset:13%;border-radius:50%}[data-media=cd] .media-hole{display:block;position:absolute;inset:42%;border-radius:50%;border:7px solid #d8dde1;background:#262d3d;box-shadow:0 0 0 2px #6c7a83}[data-media=cd] .media-brand{bottom:8%;color:#101620;font-size:6px}
[data-media=cartridge] .boot-media{width:190px;height:225px;background:linear-gradient(110deg,#a5a8ae,#777d8b);border:3px solid #c4c6ca;border-radius:12px 12px 20px 20px;clip-path:polygon(7% 0,93% 0,93% 8%,100% 8%,100% 90%,90% 90%,90% 100%,10% 100%,10% 90%,0 90%,0 8%,7% 8%)}[data-media=cartridge] .media-label{inset:24% 12% 12%;border:3px solid #414957}[data-media=cartridge] .media-ridges{display:block;position:absolute;top:5%;left:12%;right:12%;height:14%;background:repeating-linear-gradient(#525c6b 0 2px,#a7abb2 2px 7px)}[data-media=cartridge] .boot-player{height:115px;background:linear-gradient(#aaaeb5,#808895 30%,#4c5362 32%,#2e3544);border-color:#bfc2c9}[data-media=cartridge] .player-slot{left:26%;width:48%;top:4px;height:14px;border:3px solid #555e6d}[data-media=cartridge] .player-buttons{top:50px}[data-media=cartridge] .media-brand{color:#202b3b}
[data-media=cassette] .boot-media{width:235px;height:150px;top:20%;background:#d9ba7e;border:6px solid #38313b;border-radius:12px;box-shadow:inset 0 0 0 2px #e9d5a3}[data-media=cassette] .media-label{inset:5% 8% 30%;border-radius:3px}[data-media=cassette] .media-reels{display:flex;position:absolute;left:20%;right:20%;height:31px;bottom:34%;background:#292635;border:3px solid #c0a971;border-radius:20px;align-items:center;justify-content:space-between;padding:0 5px}[data-media=cassette] .media-reels i{width:23px;height:23px;background:repeating-conic-gradient(#e8d9ac 0deg 35deg,#5c5354 35deg 60deg);border-radius:50%;border:6px solid #c1bbaa}[data-media=cassette] .media-brand{bottom:11%;color:#3e3540;font-size:8px}[data-media=cassette] .boot-player{height:150px;background:linear-gradient(#4b4c51,#24272f);border:2px solid #6f7179}[data-media=cassette] .player-slot{width:50%;height:65px;top:18px;border:5px solid #13151d;box-shadow:0 1px #8c8d94;background:linear-gradient(#191f26,#3b4448)}[data-media=cassette] .player-buttons{top:105px;left:12%;font-size:16px}[data-media=cassette] .player-brand{bottom:23px;left:auto;right:6%;font-size:14px}[data-media=cassette] .player-display{bottom:auto;top:25px}
[data-media=vhs] .boot-media{width:290px;height:170px;top:18%;background:repeating-linear-gradient(0deg,#181b24 0 2px,#252936 2px 5px);border:5px solid #383d4c;border-radius:6px}[data-media=vhs] .media-label{inset:8% 30% 20%;border-radius:0}[data-media=vhs] .media-reels{display:flex;position:absolute;inset:18% 4% 24%;justify-content:space-between;pointer-events:none}[data-media=vhs] .media-reels i{width:62px;height:62px;border:10px solid #121621;border-radius:50%;background:repeating-conic-gradient(#c4c6bf 0deg 30deg,#646a72 30deg 60deg);box-shadow:0 0 0 3px #444a55}[data-media=vhs] .media-brand{font-size:8px;bottom:4%}[data-media=vhs] .player-slot{width:67%;height:24px;top:20px;border:3px solid #383f4c}
[data-media=vinyl] .boot-media{background:repeating-radial-gradient(circle,#11131b 0 2px,#30343c 2px 3px,#12151d 3px 5px);border:3px solid #454951;border-radius:50%;width:235px;height:235px;top:5%}[data-media=vinyl] .media-label{inset:29%;border-radius:50%}[data-media=vinyl] .media-hole{display:block;position:absolute;inset:48%;border-radius:50%;background:#bbb9a4}[data-media=vinyl] .media-brand{display:none}[data-media=vinyl] .boot-player{height:115px;background:linear-gradient(#aa7650,#5d3c30);border:2px solid #c9925f;transform:translateX(-50%) rotateX(28deg)}[data-media=vinyl] .player-top{display:block;position:absolute;width:150px;height:75px;border-radius:50%;background:repeating-radial-gradient(ellipse,#161c24 0 4px,#38414a 4px 6px);top:4px;left:22%;border:3px solid #8a9295}[data-media=vinyl] .player-slot,[data-media=vinyl] .player-buttons{display:none}[data-media=vinyl] .tonearm{display:block;position:absolute;right:14%;top:10%;width:100px;height:12px;border:4px solid #c2c4be;border-radius:5px;transform:rotate(-20deg);transform-origin:right;box-shadow:0 4px 0 #302524}[data-media=vinyl] .player-brand{font-size:14px;bottom:7px}[data-media=vinyl] .player-display{bottom:5px;padding:3px;font-size:8px}
/* One insertion, then a gentle CRT warm-up; no strobing or repeated flashes. */
.boot-loading .boot-media{animation:media-insert .75s cubic-bezier(.5,0,.65,1) forwards}.boot-loading .insert-guide{opacity:0;animation:none}.boot-loading .player-light{background:#f7d18a;box-shadow:0 0 16px #ffe2a0}.boot-loading .boot-prompt,.boot-loading .boot-action{opacity:.4}.crt-start{position:absolute;inset:0;z-index:6;pointer-events:none;background:#070b10;opacity:0}.crt-start:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0003 0 1px,transparent 1px 4px),radial-gradient(ellipse,#b4e5ed33,#02070f);transform:scaleY(.004);box-shadow:0 0 40px #b9e9ff;opacity:0}.boot-loading .crt-start{animation:crt-cover 1.2s .75s both}.boot-loading .crt-start:before{animation:crt-open 1.1s .8s both}.boot-loading{animation:boot-exit .3s 1.75s forwards}.boot-reduced,.boot-reduced *{animation:none!important;transition:none!important}.boot-reduced.boot-loading{opacity:.6}.boot-reduced .crt-start{display:none}@keyframes media-insert{0%{transform:translateX(-50%) rotate(-9deg)}45%{transform:translateX(-50%) translateY(55px) rotate(0) scale(.85);opacity:1}100%{transform:translateX(-50%) translateY(175px) rotate(0) scale(.55);opacity:0}}@keyframes crt-cover{0%{opacity:0}25%,100%{opacity:1}}@keyframes crt-open{0%{transform:scaleY(.004);opacity:0}15%{transform:scaleY(.004);opacity:.7}65%,100%{transform:scaleY(1);opacity:1}}@keyframes boot-exit{to{opacity:0}}@keyframes insert-hint{50%{translate:0 6px;opacity:1}}@media(max-width:600px){.boot-heading{top:8%}.boot-heading h1{font-size:30px}.boot-heading>span{font-size:7px;letter-spacing:2px}.boot-load{height:490px;max-height:70svh;margin-top:100px}.boot-media{scale:.85;transform-origin:top center}.boot-player{max-width:88%;height:115px}.boot-corner{font-size:6px;letter-spacing:2px}.boot-prompt{font-size:18px}.player-brand{font-size:15px}}@media(max-height:650px) and (min-width:601px){.boot-heading{top:4%;left:5%;text-align:left}.boot-heading h1{font-size:26px}.boot-load{height:460px;max-height:90svh;margin-top:0}.boot-scene{scale:.8;transform-origin:center}.boot-status{display:none}.boot-corner{bottom:12px}}@media(prefers-reduced-motion:reduce){.media-boot *{animation:none!important;transition:none!important}}
.boot-load:focus-visible{outline:none}.boot-load:focus-visible .boot-prompt{outline:2px solid #f3ce81;outline-offset:10px;border-radius:3px}
[data-media=vhs].boot-loading .boot-media{animation-name:tape-insert}[data-media=cassette].boot-loading .boot-media{animation-name:tape-insert}[data-media=cartridge].boot-loading .boot-media{animation-name:cartridge-insert}[data-media=vinyl].boot-loading .boot-media{animation-name:record-insert}[data-media=vinyl].boot-loading .tonearm{transform:rotate(-38deg);transition:transform .5s .45s}
@keyframes tape-insert{0%{transform:translateX(-50%) rotate(-9deg)}45%{transform:translateX(-50%) translateY(90px) rotate(0) scale(.95);opacity:1}100%{transform:translateX(-50%) translateY(170px) rotateX(65deg) scale(.8);opacity:0}}@keyframes cartridge-insert{0%{transform:translateX(-50%) rotate(-9deg)}40%{transform:translateX(-50%) translateY(80px) rotate(0) scale(.85);opacity:1}100%{transform:translateX(-50%) translateY(190px) rotate(0) scale(.65);opacity:0}}@keyframes record-insert{0%{transform:translateX(-50%) rotate(-9deg)}70%{transform:translateX(-50%) translateY(150px) rotateX(65deg) scale(.75);opacity:1}100%{transform:translateX(-50%) translateY(165px) rotateX(65deg) scale(.7);opacity:0}}
/* Direct physical insertion and a reveal of the actual menu. */
.boot-loading,.boot-loading .boot-media,.boot-loading .crt-start,.boot-loading .crt-start:before{animation:none!important}.boot-loading .crt-start{display:none}.boot-loading .boot-media{will-change:transform,opacity}.boot-loading .boot-heading,.boot-loading .boot-action,.boot-loading .boot-prompt{opacity:0;transition:opacity .15s}.boot-loading .boot-status{color:#e5c386}.boot-load:focus-visible .boot-prompt{outline:none;text-decoration:underline;text-underline-offset:8px;text-decoration-color:#f3ce81}.boot-load:hover .boot-media{transform:translateX(-50%) rotate(-4deg)}.boot-load{cursor:pointer}.boot-load:active .boot-media{filter:drop-shadow(4px 8px 8px #0008) brightness(1.12)}.boot-action{letter-spacing:2px}.boot-corner{display:none}.boot-heading>span{letter-spacing:3px}.boot-status{opacity:.65}.boot-revealing{background:#060b12!important}.boot-revealing .game-screen{animation:menu-crt-reveal .42s cubic-bezier(.2,.7,.3,1) both;transform-origin:center;will-change:transform,opacity;overflow:hidden}.boot-revealing:after{content:'';position:fixed;inset:0;pointer-events:none;z-index:101;background:repeating-linear-gradient(0deg,#0002 0 1px,transparent 1px 4px);animation:crt-scan-fade .42s ease-out forwards}@keyframes menu-crt-reveal{0%{transform:scaleY(.012) scaleX(.92);opacity:.25;filter:brightness(1.4) blur(2px)}45%{opacity:1;filter:brightness(1.05) blur(.3px)}100%{transform:scale(1);opacity:1;filter:none}}@keyframes crt-scan-fade{to{opacity:0}}@media(prefers-reduced-motion:reduce){.boot-revealing .game-screen{animation:none!important}}

/* CRT cold-start: beam bloom, phosphor persistence and signal lock. */
.boot-revealing:after{display:none}.crt-phosphor{position:fixed;inset:0;width:100%;height:100%;z-index:110;pointer-events:none;image-rendering:auto}.boot-revealing .game-screen{animation:crt-signal-lock 1s linear both;box-shadow:inset 0 0 100px #0008;backface-visibility:hidden}
@keyframes crt-signal-lock{
0%,20%{transform:scale(.94,.008);opacity:0;filter:brightness(.6) blur(3px);border-radius:12% / 8%}
27%{transform:scale(.95,.04);opacity:.4;filter:brightness(1.1) blur(2px)}
39%{transform:translateX(-2px) scale(.975,.88);opacity:.85;filter:brightness(.85) blur(.8px) drop-shadow(-2px 0 #b85b5b55) drop-shadow(2px 0 #4cb6c055)}
49%{transform:translateX(1px) scale(.99,1.015);opacity:1;filter:brightness(1.08) blur(.35px) drop-shadow(-1px 0 #b85b5b44) drop-shadow(1px 0 #4cb6c044);border-radius:2% / 3%}
66%{transform:translateX(0) scale(1,.996);filter:brightness(.98) blur(.15px);border-radius:1%}
85%,100%{transform:none;opacity:1;filter:none;border-radius:0;box-shadow:inset 0 0 0 transparent}
}
@media(prefers-reduced-motion:reduce){.crt-phosphor{display:none}.boot-revealing .game-screen{animation:none!important;box-shadow:none}}
