File size: 34,432 Bytes
ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 22f730b 9231378 22f730b 9231378 22f730b 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 5d1f3c5 ea7fa1f 8a65617 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | :root{color-scheme:dark;--bg:#0b1015;--panel:#121b22;--line:#2a3841;--text:#e6ecec;--muted:#8a9ba4;--accent:#b9eeaa;--red:#e76254;--code:#54b6ef}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 40% 0,#203039 0,transparent 60%),var(--bg);color:var(--text);font:15px/1.45 Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#1c2830;color:var(--text);padding:10px 16px;border-radius:5px;transition:background .12s}button:hover{background:#2b3c45}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}#console{max-width:1330px;margin:auto;padding:24px 34px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.eyebrow,.section-title{font:11px/1.5 Consolas,monospace;letter-spacing:2px;color:var(--muted)}h1{font-size:29px;letter-spacing:5px;margin:3px 0;font-weight:800}h1 small{display:inline-block;font-size:10px;letter-spacing:2px;color:var(--accent);vertical-align:middle;border-left:1px solid var(--line);padding-left:16px;margin-left:10px}.status{font:10px Consolas,monospace;color:var(--muted);letter-spacing:1px}.status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:7px}.toolbar{display:flex;gap:8px;margin-bottom:18px;align-items:center;flex-wrap:wrap}.toolbar button{padding:7px 13px;font-size:12px}.volume{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}input[type=range]{accent-color:var(--accent);width:110px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:25px}.monitor-column{min-width:0}.monitor-top,.monitor-bottom{background:#162129;padding:11px 15px;display:flex;justify-content:space-between;align-items:center;font:11px Consolas,monospace;letter-spacing:1px}.monitor-top{border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0}.monitor-top #clock{font-size:22px;letter-spacing:2px;color:var(--accent)}.monitor-bottom{border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;font-size:9px;color:var(--muted)}#screen{position:relative;background:#030708;aspect-ratio:16/10;border-inline:1px solid var(--line);overflow:hidden}video,#still{display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0;background:#030708}#still{object-fit:contain}video{z-index:1}.scanlines{position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(transparent 0,transparent 3px,#0001 4px);opacity:.3}#overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:radial-gradient(ellipse,#18302d88,transparent),#091116ed;padding:22px}#overlay[hidden],#still[hidden],video[hidden]{display:none}h2{font-size:clamp(24px,3vw,43px);line-height:1.1;letter-spacing:-1.2px;margin:14px 0}#overlay p{color:#a9b7bb;font-size:13px}.primary{background:var(--accent);color:#17291b;font-weight:700;border:0;padding:13px 24px;margin-top:13px}.primary:hover{background:#dcffcd}.muted{font-size:11px!important;color:var(--muted)!important}.section-title{display:flex;justify-content:space-between;margin-bottom:12px}#message{min-height:22px;font-size:12px;color:var(--accent);margin:12px 0}.rooms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.camera{padding:0;overflow:hidden;position:relative;border-radius:4px;background:#15232b}.camera img{width:100%;height:72px;object-fit:cover;opacity:.58;display:block;filter:saturate(.5)}.camera span{display:block;padding:7px 8px;font-size:12px;text-align:left}.camera em{font:10px Consolas,monospace;color:var(--muted);float:right}.camera.selected{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.camera.selected img{opacity:.95;filter:none}.camera.selected em{color:var(--accent)}aside{border:1px solid var(--line);background:#111b22;border-radius:6px;padding:19px}aside section+section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.score-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);margin:9px 0}.score-row strong{font:25px Consolas,monospace;color:var(--text)}.score-row:last-child strong{font-size:17px}.hint{font-size:12px;color:var(--muted);line-height:1.6}.colors{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.colors button{padding:8px 0;font-size:11px;border-top:3px solid var(--swatch)}.colors button.selected{background:var(--swatch);color:#080e12;border-color:var(--swatch);font-weight:bold}.meter{display:flex;gap:7px}.meter i{height:10px;flex:1;border-radius:2px;background:#27313a}.meter.level1 i:first-child{background:var(--red)}.meter.level2 i:nth-child(-n+2){background:#e4be67}.meter.level3 i{background:var(--accent);box-shadow:0 0 10px #b9eeaa44}#trapStatus{font:11px Consolas,monospace;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.trap{width:100%;background:#9c4339;border-color:#c46154;font-size:13px;font-weight:bold;letter-spacing:1px;padding:17px 8px}.trap:hover{background:#bf5144}.trap small{display:block;font-size:9px;font-weight:normal;letter-spacing:1px;margin-top:7px}#buffering{position:absolute;z-index:6;bottom:15px;left:15px;background:#101b22e8;color:var(--accent);padding:8px 12px;font-size:12px}details{border:1px solid var(--line);border-radius:5px;margin-top:24px;padding:13px 16px;color:var(--muted);font-size:12px}summary{cursor:pointer;color:var(--text)}.lab-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}input[type=number]{width:85px}input,select{background:#0d171d;border:1px solid var(--line);border-radius:3px;padding:7px;color:var(--text)}.library{display:grid;gap:8px;grid-template-columns:1fr auto auto}.library select,.library input{grid-column:1/-1;width:100%}pre{max-height:200px;overflow:auto;white-space:pre-wrap;font-size:11px}a{color:var(--accent)}footer{color:#6f828a;font-size:11px;margin:20px 0}#console:fullscreen{max-width:none;background:var(--bg);overflow:auto}#console:fullscreen #screen{max-height:68vh}@media(max-width:850px){#console{padding:15px}.workspace{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}aside section+section{border:0;margin:0;padding:0}.status,h1 small{display:none}.volume{margin-left:0}#screen{aspect-ratio:4/3}}@media(max-width:480px){.rooms{grid-template-columns:repeat(2,1fr)}.monitor-bottom span:last-child{display:none}h1{font-size:24px}.camera img{height:80px}}
/* Three.js presentation overlay */
#threeConsole{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:.72;mix-blend-mode:normal;filter:contrast(1.18) saturate(1.12)}
/* Camera stills use the same 16:9 monitor aperture as the FMV feeds. */
#screen{aspect-ratio:16/9}
#still{object-fit:fill}
@media(max-width:850px){#screen{aspect-ratio:16/9}}
.camera .preview{display:block;width:100%;height:72px;object-fit:cover;opacity:.82;background:#030708}
@media(max-width:480px){.camera .preview{height:80px}}
/* Keep grouped toolbar actions separated instead of relying on inline whitespace. */
.toolbar{gap:10px}
#mainToolbarControls:not([hidden]),#sotcToolbarControls:not([hidden]){display:inline-flex;align-items:center;gap:10px}
#sotcToolbarControls .mode-label{margin-left:2px}
.exit-button{border-color:#b52a31!important;color:#ffb0a8!important}
#mobileBar,#mobileMenuPanel,#mobileCodes{display:none}
@media (max-width:700px), (pointer:coarse){
:root{--mobile-header-height:clamp(112px,17.2dvh,145px);--mobile-standby-height:clamp(255px,42.7dvh,360px);--mobile-thumb-height:clamp(84px,25vw,108px);--mobile-color-height:clamp(58px,8.6dvh,80px);--mobile-trap-height:clamp(120px,20.8dvh,176px);--mobile-color-bottom:clamp(150px,22.8dvh,202px);--mobile-timer-bottom:clamp(285px,40.3dvh,340px);}
html,body{height:100%;overflow:hidden;overscroll-behavior:none;}
body{padding-bottom:0;background-attachment:scroll;overflow-x:hidden;}
#console{width:100%;max-width:none;min-width:0;height:100dvh;min-height:0;overflow:hidden;padding:env(safe-area-inset-top) 10px calc(18px + 390px + env(safe-area-inset-bottom));}
header{width:100%;height:var(--mobile-header-height);min-height:var(--mobile-header-height);margin:0 0 8px;padding:8px 16px;background-size:100% 100%!important;border-bottom:1px solid #a62128;}
header>div:first-child{display:none} header .status{display:none}
.toolbar{display:none}
.workspace{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;max-width:100%;min-width:0;height:auto;min-height:0;}
.monitor-column{display:contents;filter:none;min-width:0;min-height:0;height:auto;}
.monitor-top{position:fixed;left:10px;right:10px;bottom:calc(var(--mobile-timer-bottom) + env(safe-area-inset-bottom));z-index:34;height:0;padding:0;border:0;background:transparent;pointer-events:none;}
.monitor-top #cameraName{display:none;}
.monitor-top #clock{position:absolute;left:50%;transform:translateX(-50%);padding:7px 18px;border:1px solid #4c9a52;border-radius:999px;background:#07130bf5;font-size:32px;line-height:1;color:var(--retro-green);letter-spacing:3px;text-shadow:0 0 12px #9cff78cc;white-space:nowrap;}
.mobile-skip-intro{display:block;position:absolute;right:14px;bottom:14px;z-index:8;min-height:38px;padding:7px 11px;border:1px solid var(--retro-green);border-radius:3px;background:#102318eF;color:var(--retro-green);font:700 11px Consolas,monospace;letter-spacing:.7px;box-shadow:0 0 10px #9cff7844;}
.mobile-skip-intro[hidden]{display:none!important;}
#screen{order:1;width:100%;max-width:100%;min-width:0;height:auto;aspect-ratio:16/9;outline-offset:-3px;}
#screen video,#screen #still{object-fit:cover;}
#screen:has(#overlay:not([hidden])){height:var(--mobile-standby-height);aspect-ratio:auto;}
#overlay .eyebrow,#overlay .muted{display:none;}
#screen::after{content:'SCAT // LIVE';position:absolute;right:12px;top:10px;z-index:5;color:var(--retro-green);font:700 11px Consolas,monospace;letter-spacing:1px;text-shadow:0 0 8px #9cff78;}
.monitor-bottom{order:2;display:none;}
#message{display:none;}
#trapPanel{order:2;position:static;display:block;width:100%;max-width:100%;min-width:0;margin:0;padding:8px 7px;border:1px solid #7e252c;border-radius:5px;background:#080b0df2;}
#trapPanel .section-title,#trapPanel #trapStatus,#trapPanel #trap{display:none;}
#trapPanel .meter{height:16px;gap:5px;width:100%;}
.camera-section{order:4;width:100%;max-width:100%;min-width:0;padding-top:2px;}
.camera-section .section-title{display:none}
.rooms{display:grid;width:100%;max-width:100%;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.camera{width:100%;min-width:0;min-height:0;border-radius:4px;touch-action:manipulation;}
.camera img,.camera .preview{width:100%;height:var(--mobile-thumb-height);aspect-ratio:1/1;min-height:0;object-fit:cover;}
.camera span{padding:4px 5px;font-size:10px;line-height:1.15;}
aside{display:contents;width:100%;max-width:100%;min-width:0;height:auto;min-height:0;}
aside section{width:100%;max-width:100%;min-width:0;height:auto;min-height:0;}
#mainStatus{order:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:0;align-items:center;width:100%;max-width:100%;height:auto;min-height:0;margin:0;padding:9px 7px;border:1px solid #31434b;border-radius:5px;background:linear-gradient(#10181d,#05080a);}
#mainStatus .section-title{display:none;}
#mainStatus .score-row{display:flex;flex-direction:column;gap:2px;margin:0;padding:0 7px;border-right:1px solid #293940;font-size:11px;text-transform:uppercase;letter-spacing:.7px;}
#mainStatus .score-row strong{font-size:26px;line-height:1.05;}
#mainStatus.mobile-status-open{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:35;width:auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;padding:15px 9px;border:1px solid #7e252c;box-shadow:0 0 0 1px #26090d,0 0 24px #e51d2444;}
#mainStatus.mobile-status-open .section-title{display:block;grid-column:1/-1;margin:0 7px 11px;color:var(--retro-green);}
#mainStatus.mobile-status-open .score-row{padding:0 8px;}
#mobileStatus[aria-pressed="true"]{color:var(--retro-green);box-shadow:inset 0 -2px var(--retro-green);}
.mobile-codes-button{display:none!important;}
.mobile-codes-button span{font-size:18px;}
#securityPanel{display:block;position:fixed;left:10px;right:10px;bottom:calc(var(--mobile-color-bottom) + env(safe-area-inset-bottom));z-index:32;width:auto;max-width:none;margin:0;padding:9px 7px;border:1px solid #269fe1;border-radius:5px;background:linear-gradient(#0c1720f5,#05080bf8);box-shadow:0 0 0 1px #06283c,0 0 18px #039fe977;}
#securityPanel .hint,#securityPanel .section-title{display:none;}
#securityPanel .colors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;}
#securityPanel .colors button{min-height:var(--mobile-color-height);padding:10px 2px;text-align:center;border:1px solid #33434c;border-top:6px solid var(--swatch);border-radius:3px;background:#0a1218;color:#f0f7f9;font-size:clamp(13px,3.7vw,16px);font-weight:800;}
#securityPanel .colors button.selected{background:var(--swatch);color:#071015;box-shadow:0 0 9px var(--swatch);}
#controlsPanel,#survivorControls{display:none;}
#sotcControls{order:6;}
#lab,footer{display:none;}
#mobileBar{position:fixed;display:grid;grid-template-columns:1fr;grid-template-rows:auto;left:0;right:0;bottom:0;z-index:30;padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:0;border-top:1px solid #8e272b;border-radius:20px 20px 0 0;background:linear-gradient(#0b1014f5,#030506f8),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/dark_metal_texture.png');box-shadow:0 -8px 24px #000d;}
#mobileStatus,#mobileMenu{display:none!important;}
#mobileBar button{min-height:58px;border:0;border-left:1px solid #202d34;border-radius:0;background:transparent;color:#c3d0d4;font-weight:700;letter-spacing:.8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
#mobileBar button span:last-child{font-size:11px;}
#mobileBar .mobile-trap{grid-column:1;width:100%;min-height:var(--mobile-trap-height);margin:0;border:1px solid #ff2630;border-radius:16px;background:radial-gradient(circle at 50% 20%,#d72832,#5d0a11 75%);color:#fff;box-shadow:0 0 16px #ff1e2d99,inset 0 0 16px #ff6a6a55;font-size:20px;}
#mobileBar .mobile-trap span:last-child{font-size:clamp(27px,8.7vw,34px);line-height:1;letter-spacing:4px;text-shadow:0 0 12px #fff8;}
#mobileBar .trap-glyph{font-size:25px;line-height:20px;}
#mobileBar .nav-glyph{font-size:25px;line-height:22px;color:#cbd6da;}
#mobileMenuPanel{position:fixed;inset:0;z-index:45;padding:20px 12px calc(90px + env(safe-area-inset-bottom));background:#020305dd;backdrop-filter:blur(5px);overflow:auto;}
#mobileMenuPanel[hidden]{display:none!important;}
.mobile-menu-card{display:grid;gap:8px;max-width:420px;margin:auto;padding:18px;border:1px solid #8e272b;border-radius:6px;background:linear-gradient(#12191d,#06090b);box-shadow:0 0 0 2px #27090d,0 0 28px #e51d2444;}
.mobile-menu-card .section-title{margin-bottom:2px;}
.mobile-menu-card button{width:100%;text-align:left;}
.mobile-menu-close{text-align:center!important;color:var(--retro-green);}
.qr-card{max-width:calc(100vw - 24px);}
}
/* Retro horror UI treatment from the supplied asset pack. Functional controls remain HTML. */
:root{--retro-red:#e51d24;--retro-red-dark:#5d1016;--retro-green:#bdff91;--retro-steel:#26313a;--retro-black:#050709}
body{background-color:#050608;background-image:linear-gradient(180deg,#020305cc 0 12%,#050608ee 55%,#090306 100%),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/blood_splatter.png');background-position:center, right 12%/420px auto;background-repeat:no-repeat,no-repeat;color:#dbe6e8;font-family:'Segoe UI',Arial,sans-serif}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/overlay_red_edge_transparent.png');background-size:100% 100%;opacity:.28;mix-blend-mode:screen}
#console{max-width:1390px;padding:16px 28px 24px;position:relative;z-index:1}
header{position:relative;min-height:165px;margin-bottom:10px;padding:8px 18px 10px;border:0;overflow:hidden;background:linear-gradient(90deg,#020406ee 0 28%,#02040655 48%,#020406dd 100%),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/header_house.png') left center/345px 165px no-repeat,url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/header_face.png') right center/303px 165px no-repeat,#050608;box-shadow:0 12px 30px #000c}
header::after{content:'';position:absolute;inset:auto 0 0;height:2px;background:linear-gradient(90deg,transparent,var(--retro-red),transparent);box-shadow:0 0 14px var(--retro-red)}
header>div:first-child{position:relative;z-index:1}
.eyebrow,.section-title{font-family:Consolas,'Courier New',monospace;color:#dce9eb;text-shadow:0 0 7px #8ed7ff88;letter-spacing:2.5px}
h1{margin:2px 0;font-size:0;line-height:1}h1 img#brandLogo{max-width:min(390px,62vw)!important;max-height:118px!important;filter:drop-shadow(0 4px 3px #000) drop-shadow(0 0 8px #e5231e55)}h1 small{display:block;width:max-content;border:0;margin:3px 0 0 68px;padding:0;color:#ff252d;font:700 15px Consolas,monospace;letter-spacing:2px;text-shadow:0 0 8px #ff1d2599}
.status{position:relative;z-index:1;color:#b8cbd0}.status i{background:var(--retro-red);box-shadow:0 0 10px var(--retro-red)}
.toolbar{margin-bottom:12px;gap:7px}.toolbar button{background:linear-gradient(#14191d,#080a0d);border:1px solid #a51b25;border-radius:3px;box-shadow:inset 0 0 0 1px #300b0f,0 0 8px #a6141d33;color:#e8eef0}.toolbar button:hover{background:linear-gradient(#351216,#0d0a0b);border-color:#ff4148;box-shadow:0 0 11px #e91d2c66}.toolbar button:disabled{border-color:#384149;color:#829096}.volume input[type=range]{accent-color:var(--retro-red)}
.workspace{gap:14px}.monitor-top,.monitor-bottom{background:#080d11;border-color:#4a191c;box-shadow:inset 0 0 16px #000,0 0 10px #db172022}.monitor-top{border-radius:8px 8px 0 0;color:#ff252d}.monitor-top #clock{color:var(--retro-green);text-shadow:0 0 9px #9cff78aa}
#screen{border:10px solid transparent;border-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/main_monitor_frame.png') 24 stretch;background:#020507;box-shadow:0 0 0 1px #000,0 0 22px #d71a2638;aspect-ratio:16/9}
#screen::after{color:var(--retro-green);text-shadow:0 0 8px #9cff78aa}
.scanlines{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/overlay_scanlines_transparent.png'),repeating-linear-gradient(transparent 0,transparent 3px,#0005 4px);background-size:cover,auto;opacity:.42;mix-blend-mode:screen}
#screen::before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/vhs_overlay.png'),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/cracked_glass.png'),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/red_vignette.png');background-position:center,left top,right bottom;background-size:cover,260px auto,360px auto;background-repeat:no-repeat;opacity:.17;mix-blend-mode:screen}
#overlay{background:linear-gradient(#07101699,#05090cee),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/vhs_overlay.png') center/cover,radial-gradient(ellipse,#24405266,transparent);text-shadow:0 2px 4px #000}
#overlay h2{font-family:Consolas,'Courier New',monospace;font-weight:800;color:#f1f4f2;text-shadow:0 0 5px #d9ffffaa,3px 3px #071015;font-size:clamp(25px,3.7vw,48px)}#overlay .primary{background:var(--retro-green);color:#111b14;box-shadow:0 0 18px #9cff7866;border-radius:3px}
.monitor-bottom{color:#abc4ca}.monitor-bottom span:first-child,#message{color:var(--retro-green);text-shadow:0 0 7px #9cff7866}
aside{padding:14px;background:linear-gradient(#090d10dd,#090b0de8),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/side_panel.png') center/100% 100% no-repeat;border:10px solid transparent;border-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/side_panel.png') 24 stretch;border-radius:5px;box-shadow:0 0 0 1px #000,0 0 20px #dc1b2633}aside section+section{border-color:#65151c}.section-title{color:#ff252d;text-shadow:0 0 8px #ff1e2a66}.score-row strong{color:var(--retro-green);text-shadow:0 0 8px #9cff7899}.hint{color:#b4c4c8}
.colors button{background:#11191e;border-color:#5b6970;border-top-color:var(--swatch);box-shadow:inset 0 0 8px #000}.colors button.selected{box-shadow:0 0 12px var(--swatch);color:#071015}
.trap{background:linear-gradient(#8e1821,#4b0c12);border-color:#e3222d;box-shadow:inset 0 0 10px #ff5b5b33,0 0 12px #d9152433}.trap:hover{background:linear-gradient(#bf1f2c,#69101a)}
.meter i{background:#1b2730;border:1px solid #172127}.meter.level1 i:first-child{background:#ff2732;box-shadow:0 0 9px #ff2732}.meter.level2 i:nth-child(-n+2){background:#e6b35f}.meter.level3 i{background:var(--retro-green)}
.camera-section{position:relative}.camera{border-color:#27363d;background:#071016;border-radius:4px;box-shadow:0 0 0 1px #020304,0 0 8px #000}.camera img{filter:grayscale(.4) sepia(.12) contrast(1.15);opacity:.8}.camera.selected{border-color:var(--retro-green);box-shadow:0 0 0 1px var(--retro-green),0 0 12px #9cff7855}.camera.selected img{filter:contrast(1.2) saturate(.9);opacity:1}.camera span{background:#07151c;color:#eef4f4}.camera em{color:var(--retro-green)}
footer{color:#819298}
@media(max-width:850px){#console{padding:10px 12px}header{min-height:120px;background-size:250px 120px,220px 120px}.workspace{gap:10px}aside{border-width:7px}}
/* Final visual pass: preserve the locked geometry while matching the supplied reference more closely. */
body{min-height:100vh;overflow-x:hidden;background-image:radial-gradient(ellipse at 50% -10%,#10232e 0,#05080b 43%,#040406 78%,#100306 100%),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/blood_splatter.png');background-position:center,right 12%/420px auto;background-repeat:no-repeat,no-repeat;color:#dbe6e8}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:19;background:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/grunge_noise.png') center/cover no-repeat;opacity:.075;mix-blend-mode:screen}
#console{background:linear-gradient(180deg,#02030524,#02030500 22%,#02030522);box-shadow:0 0 70px #000b;}
header{background:linear-gradient(90deg,#020305f5 0 26%,#02030545 45%,#020305ea 100%),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/header_house.png') 50% center/345px 165px no-repeat,url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/header_face.png') right center/303px 165px no-repeat,#040608;}
header::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0008,transparent 32%,transparent 70%,#000b),radial-gradient(ellipse at 50% 0,#28516a22,transparent 52%);}
header .eyebrow{position:relative;color:#b9d6df;font-size:10px;letter-spacing:2.8px;}
.toolbar{border-top:1px solid #4c1319;border-bottom:1px solid #260b0e;padding:7px 0;}
.toolbar button{min-height:33px;border-radius:2px;letter-spacing:.1px;}
.toolbar button:not(:disabled){background:linear-gradient(180deg,#182026 0%,#0b0e11 55%,#050608 100%);}
.workspace{align-items:start;}.monitor-column{filter:drop-shadow(0 10px 18px #000a)}
.monitor-top{border-top-color:#7f2025;box-shadow:inset 0 2px 0 #a22b2b55,inset 0 -8px 15px #000,0 0 0 1px #130305;}
#screen{box-shadow:inset 0 0 0 1px #c4473a44,inset 0 0 30px #000,0 0 0 1px #160507,0 0 22px #e51d2433;}
#screen video,#screen #still{filter:contrast(1.04) saturate(.88) brightness(.92);}
#screen::before{opacity:.12;background-position:center,left top,right bottom;background-size:cover,300px auto,420px auto;}
.scanlines{opacity:.31;background-image:repeating-linear-gradient(0deg,transparent 0,transparent 2px,#b8e8ff18 3px,#0002 4px),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/overlay_scanlines_transparent.png');background-size:auto,cover;}
.monitor-bottom{border-bottom-color:#762027;box-shadow:inset 0 -8px 14px #000,0 0 0 1px #130305;}
aside{min-height:577px;background-color:#080b0e;background-image:linear-gradient(180deg,#0a1014d9,#050607f2),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui/side_panel.png');background-size:100% 100%;background-repeat:no-repeat;box-shadow:inset 0 0 22px #000,inset 0 0 0 1px #b12a2c44,0 0 0 1px #180506,0 0 22px #d5192733;}
aside section+section{border-top-color:#7d1c23;box-shadow:inset 0 1px 0 #d92d3022;}
.section-title{font-size:12px;color:#ff2d33;text-shadow:0 0 9px #ff202866;}.score-row{color:#b9c8ca}.score-row strong{font-size:26px;letter-spacing:1px;}
.camera-section .section-title{padding:0 3px;}.camera{border-color:#34444b;background:linear-gradient(#101a20,#05090c);box-shadow:inset 0 0 0 1px #000,inset 0 0 12px #000,0 2px 5px #000b;}
.camera:hover{border-color:#c9272d;box-shadow:inset 0 0 0 1px #000,0 0 12px #c9232d66;}.camera.selected{border-color:#c9ffab;box-shadow:inset 0 0 0 1px #f0ffd9,inset 0 0 12px #9cff7844,0 0 14px #9cff7888;}
.camera.selected span{color:#d9ffc3;text-shadow:0 0 7px #9cff7866;}.camera img{filter:grayscale(.7) contrast(1.25) brightness(.7);}.camera.selected img{filter:grayscale(.15) contrast(1.2) brightness(.9);}
.colors button{border-radius:2px;background:linear-gradient(#172228,#0a0e11);}.colors button.selected{color:#061015;text-shadow:none;}.trap{border-radius:2px;text-shadow:0 1px 2px #000;}
input,select{border-radius:2px;box-shadow:inset 0 0 8px #000;background:#080d11;}details{box-shadow:inset 0 0 14px #000,0 0 0 1px #180506;}
/* v3 reference assets: decorative only; the existing DOM and geometry stay locked. */
body{background-color:#050608;background-image:linear-gradient(#040507e8,#040507f4),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/page_background.png');background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed;}
body::before{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/red_edge_vignette.png');background-position:center;background-size:cover;background-repeat:no-repeat;opacity:.22;mix-blend-mode:screen;}
body::after{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/subtle_grime_overlay.png');background-position:center;background-size:cover;background-repeat:no-repeat;opacity:.08;}
header{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/logo_header_reference.png'),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/header_house_reference.png'),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/header_face_reference.png');background-position:left center,center center,right center;background-size:390px 170px,calc(100% - 390px - 303px) 165px,303px 165px;background-repeat:no-repeat;box-shadow:0 9px 24px #000d;}
header::after{height:1px;background:linear-gradient(90deg,transparent,#c21b23 16%,#e63333 50%,#c21b23 84%,transparent);box-shadow:0 0 10px #e51d2488;}
body[data-mode="night"] header .eyebrow,body[data-mode="night"] h1 small,body[data-mode="night"] .status{visibility:hidden;}
body[data-mode="night"] h1 img#brandLogo{opacity:0;}
body[data-mode="night"] header{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/header_cinematic_reference.png');background-position:center;background-size:cover;background-repeat:no-repeat;}
/* The cinematic reference is a fixed-width composition. Stretch it to the
header box so its left edge (including the Night Trap N) is never cropped. */
body[data-mode="night"] header{background-size:100% 100%;}
/* SOTC supplies its own logo in the existing header DOM. Do not expose the
Night Trap logo baked into the v3 background behind it. */
body[data-mode="sotc"] header{background-image:linear-gradient(90deg,#020305 0 31%,#020305ee 34%,#02030522 43%,#020305aa 72%,#020305e8 100%),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/header_cinematic_reference.png');background-position:center;background-size:100% 100%,100% 100%;background-repeat:no-repeat;}
body[data-mode="sotc"] header h1 img#brandLogo{display:block;opacity:1;max-width:min(430px,62vw)!important;max-height:118px!important;object-fit:contain;object-position:left center;}
/* SOTC has a complete supplied header composition; keep the legacy DOM
content in the layout for accessibility/geometry, but do not double-draw it. */
body[data-mode="sotc"] header{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/scene-of-the-crime-header.png');background-position:center;background-size:100% 100%;background-repeat:no-repeat;}
body[data-mode="sotc"] header>div{visibility:hidden;}
#console{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/subtle_grime_overlay.png');background-position:center;background-size:cover;background-repeat:no-repeat;background-blend-mode:screen;}
.monitor-top,.monitor-bottom{background-image:linear-gradient(#080d11e8,#05080ae8),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/dark_metal_texture.png');background-position:center;background-size:cover;background-repeat:no-repeat;}
#screen{border-image:none;border-color:#251719;outline:1px solid #8e272b;outline-offset:-5px;background-image:linear-gradient(#02060933,#02060933),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/dark_metal_texture.png');background-size:cover;background-repeat:no-repeat;}
/* Keep the monitor geometry identical across desktop and mobile. */
@media (max-width:700px), (pointer:coarse){
html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;}
#console{height:auto;min-height:100svh;overflow:visible;padding-bottom:calc(var(--mobile-trap-height) + 34px + env(safe-area-inset-bottom));}
#screen,#screen:has(#overlay:not([hidden])){width:100%;height:auto;aspect-ratio:16/9;}
#screen video,#screen #still{object-fit:contain;}
#securityPanel{position:static;order:6;width:100%;max-width:100%;margin:0;padding:9px 7px;}
#securityPanel .colors{grid-template-columns:repeat(6,minmax(0,1fr));}
#mainStatus{order:5;}
#sotcControls,#survivorControls{order:7;}
#mobileBar{padding-bottom:calc(8px + env(safe-area-inset-bottom));}
#mobileBar .mobile-trap{min-height:clamp(92px,14svh,140px);}
}
#screen::before{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/crt_glass_sheen.png'),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/red_chipped_edge_overlay.png');background-position:center,center;background-size:100% 100%,100% 100%;background-repeat:no-repeat;opacity:.17;mix-blend-mode:screen;}
.scanlines{background-image:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/crt_scanlines_overlay.png'),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/vhs_noise_overlay.png');background-position:center,center;background-size:100% 100%,cover;background-repeat:no-repeat,no-repeat;opacity:.25;mix-blend-mode:screen;}
aside{background-image:linear-gradient(#080d10d9,#050708ef),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/dark_metal_texture.png');background-position:center;background-size:cover;background-repeat:no-repeat;}
aside{position:relative;}
aside::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/red_chipped_edge_overlay.png') center/100% 100% no-repeat;opacity:.13;mix-blend-mode:screen;}
aside>*{position:relative;z-index:1;}
.camera{background-image:linear-gradient(#081219aa,#030609dd),url('https://huggingface.co/datasets/Vintendopower/nighttrap-media/resolve/main/assets/retro-ui-v3/dark_metal_texture.png');background-size:cover;background-repeat:no-repeat;}
.qr-dialog{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#020305d9;backdrop-filter:blur(5px)}.qr-dialog[hidden]{display:none}.qr-card{position:relative;width:min(360px,100%);padding:28px 26px 24px;border:1px solid #d52b31;border-radius:6px;text-align:center;background:linear-gradient(#14191d,#07090b);box-shadow:0 0 0 2px #28090d,0 0 35px #e51d2455}.qr-card h2{margin:0 0 8px;font:700 22px/1.2 Consolas,monospace;color:#f1f4f2}.qr-card p{margin:0 0 18px;color:#b9c8ca;font-size:12px}.qr-card img{display:block;width:240px;height:240px;margin:auto;background:#fff;border:10px solid #fff;border-radius:3px}.qr-card code{display:block;margin-top:14px;color:var(--retro-green);font-size:11px;overflow-wrap:anywhere}.qr-close{position:absolute;top:8px;right:10px;padding:2px 8px;border:0;background:transparent;color:#ff6870;font-size:24px;line-height:1}.qr-close:hover{background:#411116;color:#fff}
#overlay .eyebrow,#overlay .muted,#message{display:none}
|