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}