1<!DOCTYPE html> 2<html lang="zh-CN"> 3<head> 4<meta charset="UTF-8">
5<script> 6/* ===== è·¨åååç»å½æåæ¥ï¼github. / cloudflare. / pythonanywhere. ä¹é´äºéï¼===== 7 localStorage æ¯æ origin é离çï¼ä¸¤ä¸ªååååååçï¼æä»¥è¦å Cookie ä¸è½¬ã 8 Cookie 设 Domain=.nb-channel.topï¼ææåååé½è½è¯»å°ã 9 10 è¿é䏿¹é¡µé¢åæ¬çä»»ä½ä»£ç ââ èæ¯å«æ localStorage ç读åï¼ 11 · 页é¢ç»å½æ¶ setItem('nb_session', ...) â 顺æåä¸ä»½å° Cookie 12 · 页é¢ç»åºæ¶ removeItem('nb_session') â é¡ºææ Cookie æ¸ æ 13 · 页é¢å è½½æ¶ Cookie æãæ¬å°æ²¡æ â èªå¨æ³¨å ¥è¿ localStorage 14 æä»¥é£ 57 å¤ç»å½/ç»åºä»£ç ä¸è¡é½ä¸ç¨å¨ã 15 16 â ï¸ è¿æå³ç *.nb-channel.top ä¸ä»»ä½ä¸ä¸ªåååé½è½è¯»å°è¿ä¸ªä»¤çï¼ 17 å æ¬ product-storage é£ä¸ª Workersãå°æ¥æ°å¢ååååå æ³æ¸ æ¥è¿ä»¶äºã */ 18(function () { 19 try { 20 var KEY_S = 'nb_session', KEY_U = 'nb_user'; 21 var DOMAIN = '.nb-channel.top'; 22 var MAXAGE = 30 * 86400; 23 24 // åªå¨ .nb-channel.top å䏿å¯ç¨ï¼æ¬å°å¼æä»¶ãæå«çååè®¿é®æ¶ä¿æåæ ·ï¼ 25 if (location.hostname.indexOf('nb-channel.top') < 0) return; 26 27 function readCookie(n) { 28 var m = document.cookie.match(new RegExp('(?:^|;\\s*)' + n + '=([^;]*)')); 29 return m ? decodeURIComponent(m[1]) : null; 30 } 31 function writeCookie(n, v) { 32 document.cookie = n + '=' + encodeURIComponent(v) + ';path=/;domain=' + DOMAIN + 33 ';max-age=' + MAXAGE + ';SameSite=Lax' + 34 (location.protocol === 'https:' ? ';Secure' : ''); 35 } 36 function dropCookie(n) { 37 document.cookie = n + '=;path=/;domain=' + DOMAIN + ';max-age=0;SameSite=Lax' + 38 (location.protocol === 'https:' ? ';Secure' : ''); 39 } 40 41 // ---- â 页é¢å è½½æ¶ååå¯¹é½ ---- 42 [KEY_S, KEY_U].forEach(function (k) { 43 var c = readCookie(k), l = null; 44 try { l = localStorage.getItem(k); } catch (e) {} 45 if (l) { 46 if (l !== c) writeCookie(k, l); // æ¬å°æ â 忥åºå» 47 } else if (c) { 48 try { localStorage.setItem(k, c); } catch (e) {} // æ¬å°æ²¡æ â éç¨ Cookie 49 } 50 }); 51 52 // ---- â¡ å«æåå ¥ï¼ç»å½æ¶åæ¥å° Cookie ---- 53 var _set = localStorage.setItem; 54 localStorage.setItem = function (k, v) { 55 try { if ((k === KEY_S || k === KEY_U) && v) writeCookie(k, v); } catch (e) {} 56 return _set.call(localStorage, k, v); 57 }; 58 59 // ---- â¢ å«æå é¤ï¼ç»åºæ¶åæ¥æ¸ Cookie ---- 60 var _rm = localStorage.removeItem; 61 localStorage.removeItem = function (k) { 62 try { if (k === KEY_S || k === KEY_U) dropCookie(k); } catch (e) {}
63 return _rm.call(localStorage, k); 64 }; 65 66 // ---- ⣠ä¸ä¸æäººç¨ clear() ---- 67 var _cl = localStorage.clear; 68 localStorage.clear = function () { 69 try { dropCookie(KEY_S); dropCookie(KEY_U); } catch (e) {} 70 return _cl.call(localStorage); 71 }; 72 } catch (e) {} 73})(); 74</script>
74 75<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> 76<!-- ä¸åé referer:Bç«å¾åº(hdslb)é²çé¾,带å¤é¨ç« referer ä¼ 403 导è´å°é¢ä¸æ¾ç¤º --> 77<meta name="referrer" content="no-referrer"> 78<meta name="description" content="NBé¢éï¼NoBooké¢éï¼è§é¢æ¡£æ¡ââåå¦ç©çå®éªãæ¥å¸¸ä½æ»ãå®ç½ä¸äº§åè®°å½ï¼å ¨é¨æ¥èªBç«ãNBæäºå±ãã"> 79<meta property="og:title" content="è§é¢æ¡£æ¡ · NBé¢éå®ç½"> 80<meta property="og:description" content="åå¦ç©çå®éªãæ¥å¸¸ä½æ»ãå®ç½ä¸äº§åè®°å½ââå ¨é¨è§é¢ä¸ç«ç´è¾¾ã"> 81<meta name="theme-color" content="#0f172a"> 82<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%233b82f6'/%3E%3Cstop offset='1' stop-color='%238b5cf6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='64' height='64' rx='14' fill='url(%23g)'/%3E%3Ctext x='32' y='43' font-family='Arial,sans-serif' font-size='26' font-weight='800' fill='%23fff' text-anchor='middle'%3ENB%3C/text%3E%3C/svg%3E"> 83<title>è§é¢æ¡£æ¡ - NBé¢éå®ç½</title>
84<script> 85 // å¤é´æ¨¡å¼:第ä¸å¸§åçæ(æ æ¾å¼éæ©æ¶è·éç³»ç») 86 (function () { 87 try { 88 var t = localStorage.getItem('theme'); 89 if (t === 'dark' || (!t && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches)) { 90 document.documentElement.classList.add('dark'); 91 } 92 } catch (e) {} 93 })(); 94</script>
94 95<style> 96* { margin: 0; padding: 0; box-sizing: border-box; } 97:root { 98 --bg: #f7f8fa; 99 --ink: #1a1d23; 100 --ink-soft: #5a6270; 101 --ink-faint: #8b93a3; 102 --line: #e8eaee; 103 --brand: #3b82f6; 104 --brand-deep: #2563eb; 105 --card: #ffffff; 106 --radius-lg: 20px; 107 --radius-md: 14px; 108 --shadow-1: 0 1px 2px rgba(16,24,40,.04), 0 4px 12px rgba(16,24,40,.06); 109 --shadow-2: 0 2px 4px rgba(16,24,40,.05), 0 24px 48px -20px rgba(16,24,40,.18); 110} 111html.dark { color-scheme: dark; } 112html.dark { 113 --bg: #0a101f; 114 --ink: #e5eaf3; 115 --ink-soft: #9aa7bd; 116 --ink-faint: #64748b; 117 --line: rgba(148,163,184,.16); 118 --card: #101a2e; 119 --shadow-1: 0 1px 2px rgba(0,0,0,.3), 0 6px 18px rgba(0,0,0,.28); 120 --shadow-2: 0 2px 6px rgba(0,0,0,.35), 0 28px 60px -24px rgba(0,0,0,.6); 121} 122html.dark .nav { background: rgba(10,16,31,.72); border-bottom-color: rgba(148,163,184,.12); } 123html.dark .nav.scrolled { background: rgba(10,16,31,.9); } 124html.dark .logo-img { filter: brightness(1.4) saturate(1.15); } 125html.dark .vcat { background: rgba(255,255,255,.04); border-color: rgba(148,163,184,.22); color: var(--ink-soft); } 126html.dark .vcat.on { background: var(--brand); border-color: var(--brand); color: #fff; } 127html.dark .vcard .thumb { background: #0d1526; } 128html.dark .vsearch input { color: var(--ink); } 129html.dark .drawer { background: #0f1a30; } 130html.dark .drawer .d-close { background: rgba(255,255,255,.06); color: var(--ink); } 131html.dark .drawer a.d-item { color: var(--ink-soft); } 132html.dark .drawer a.d-item:hover, html.dark .drawer a.d-item.active { background: rgba(59,130,246,.14); color: #fff; } 133html.dark .drawer .d-brand { color: var(--ink); } 134html.dark .backtop { background: rgba(15,23,42,.85); color: #cbd5e1; border-color: rgba(148,163,184,.25); } 135html.dark .backtop:hover { background: var(--brand); color: #fff; } 136html.dark .footer-bottom { border-color: rgba(255,255,255,.06); } 137 138body { 139 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; 140 background: var(--bg); 141 color: var(--ink); 142 line-height: 1.6; 143 -webkit-font-smoothing: antialiased; 144} 145a { text-decoration: none; color: inherit; } 146::selection { background: rgba(59,130,246,.22); } 147 148/* ============ å¯¼èª ============ */ 149.nav { 150 position: sticky; top: 0; z-index: 100; 151 display: flex; align-items: center; justify-content: space-between; 152 padding: 0 48px; height: 64px; 153 background: rgba(255,255,255,.72); 154 -webkit-backdrop-filter: blur(20px) saturate(1.5); 155 backdrop-filter: blur(20px) saturate(1.5); 156 border-bottom: 1px solid var(--line); 157} 158.nav-logo { 159 display: flex; align-items: center; gap: 10px; 160 font-size: 1.15rem; font-weight: 800; letter-spacing: .3px; 161 margin-left: 12px; 162} 163.logo-img { display: block; height: 32px; width: auto; } 164.logo-text { color: var(--ink); } 165.nav-menu { display: flex; gap: 2px; } 166.nav-menu a { 167 position: relative; padding: 10px 14px; 168 font-size: .92rem; font-weight: 500; letter-spacing: .4px; 169 color: var(--ink-soft); white-space: nowrap; 170 transition: color .3s ease; 171} 172.nav-menu a:hover { color: var(--ink); } 173.nav-menu a.active { color: var(--brand); font-weight: 600; } 174.nav-menu a::after { 175 content: ''; position: absolute; left: 14px; right: 14px; bottom: 4px; 176 height: 1px; background: var(--brand); 177 transform: scaleX(0); transform-origin: left; 178 transition: transform .35s cubic-bezier(.16,1,.3,1); 179} 180.nav-menu a:hover::after { transform: scaleX(1); } 181.nav-menu a.active::after { transform: scaleX(1); } 182.nav-menu a.nav-api { color: var(--brand); font-weight: 600; font-size: .86rem; } 183.nav-menu a.nav-api::after { background: var(--brand-deep); } 184.nav-right-group { display: flex; align-items: center; gap: 10px; } 185.theme-btn { 186 width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); 187 background: var(--bg); cursor: pointer; font-size: .95rem; 188 display: flex; align-items: center; justify-content: center; 189 transition: all .25s ease; 190} 191.theme-btn:hover { border-color: rgba(59,130,246,.4); transform: translateY(-1px); } 192 /* ============ 导èªç»å½åº + å京æ¶é´æ¶é(ä¸é¦é¡µä¸è´) ============ */ 193 .nav-auth-group { display: flex; gap: 8px; align-items: center; } 194 .nav-clock { 195 display: flex; flex-direction: column; align-items: flex-end; 196 margin-right: 8px; flex-shrink: 0; user-select: none; line-height: 1.35; 197 } 198 .nav-clock .nc-time { 199 font-size: 15.5px; font-weight: 800; letter-spacing: 1.5px; 200 color: var(--ink); font-variant-numeric: tabular-nums; 201 } 202 .nav-clock .nc-row { display: flex; align-items: baseline; gap: 6px; font-style: normal; } 203 .nav-clock .nc-date { 204 font-size: 10.5px; font-weight: 600; letter-spacing: .4px; 205 color: var(--ink-soft); font-variant-numeric: tabular-nums; 206 } 207 .nav-clock .nc-label { 208 font-size: 8.5px; font-weight: 600; letter-spacing: 2px; 209 color: var(--ink-faint); 210 } 211 .nav-auth { 212 padding: 8px 18px; border-radius: 999px; 213 background: rgba(255,255,255,.6); color: var(--ink); 214 border: 1px solid var(--line); 215 font-size: .88rem; font-weight: 600; cursor: pointer; 216 transition: all .25s ease; white-space: nowrap; 217 } 218 .nav-auth:hover { background: #fff; border-color: rgba(59,130,246,.4); } 219 .nav-auth.primary { 220 background: linear-gradient(135deg, var(--brand), #6366f1); 221 border-color: transparent; color: #fff; 222 box-shadow: 0 8px 20px -8px rgba(59,130,246,.5); 223 } 224 .nav-auth.primary:hover { background: linear-gradient(135deg, #2563eb, #4f46e5); color: #fff; } 225 html.dark .nav-auth { background: rgba(255,255,255,.05); color: var(--ink); border-color: rgba(148,163,184,.25); } 226 html.dark .nav-auth:hover { background: rgba(255,255,255,.1); border-color: rgba(59,130,246,.5); } 227 .drawer .d-auth { margin-top: 14px; padding-top: 16px; border-top: 1px solid var(--line); display: flex; gap: 10px; } 228 .drawer .d-auth a { flex: 1; text-align: center; padding: 11px; border-radius: 999px; font-size: .9rem; font-weight: 600; } 229 .drawer .d-auth .ga { background: var(--bg); color: var(--ink); border: 1px solid var(--line); } 230 .drawer .d-auth .gab { background: linear-gradient(135deg, var(--brand), #6366f1); color: #fff; } 231
232.nav-burger { 233 display: none; width: 38px; height: 38px; border-radius: 10px; 234 border: 1px solid var(--line); background: var(--bg); 235 font-size: .95rem; cursor: pointer; color: var(--ink); 236 align-items: center; justify-content: center; 237} 238@media (max-width: 900px) { 239 .nav-menu { display: none; } 240 .nav-burger { display: flex; } .nav-clock, .nav-auth-group { display: none; } 241} 242 243/* ============ Hero(è§é¢æ¡£æ¡) ============ */ 244.vhero { 245 position: relative; color: #fff; overflow: hidden; 246 padding: 110px 48px 150px; 247 background: 248 radial-gradient(760px 460px at 12% 4%, rgba(59,130,246,.16), transparent 62%), 249 radial-gradient(640px 420px at 96% 60%, rgba(139,92,246,.12), transparent 60%), 250 linear-gradient(168deg, #0b1220 0%, #101c33 58%, #1c1745 100%); 251} 252.vhero::before { 253 content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5; 254 background-image: radial-gradient(rgba(255,255,255,.045) 1px, transparent 1px); 255 background-size: 34px 34px; 256 mask-image: linear-gradient(to bottom, rgba(0,0,0,.5), transparent 72%); 257 -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.5), transparent 72%); 258} 259.vhero-inner { 260 position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; 261 display: grid; grid-template-columns: 1.05fr .95fr; gap: 70px; align-items: center; 262} 263.hero-eyebrow { 264 display: block; font-size: 11px; font-weight: 400; 265 letter-spacing: 8px; color: rgba(255,255,255,.42); 266 margin-bottom: 40px; 267} 268.vhero h1 { 269 font-size: clamp(2.7rem, 5.2vw, 4.6rem); 270 font-weight: 800; letter-spacing: 10px; color: #fff; line-height: 1.12; 271} 272.vhero h1 .light { font-weight: 200; letter-spacing: 4px; color: #9cc0ff; } 273.vhero-sub { 274 margin: 34px 0 0; max-width: 460px; 275 font-size: .98rem; font-weight: 300; line-height: 2.15; 276 letter-spacing: .6px; color: rgba(255,255,255,.6); 277} 278.vhero-actions { margin-top: 48px; display: flex; gap: 44px; align-items: center; flex-wrap: wrap; } 279.hero-link { 280 font-size: .9rem; letter-spacing: 3px; font-weight: 600; color: #fff; 281 padding: 12px 2px; border-bottom: 1px solid rgba(255,255,255,.32); 282 transition: border-color .35s ease, color .35s ease; 283} 284.hero-link:hover { border-color: #7cb4ff; color: #7cb4ff; }
285/* å³ä¾§æ¡£æ¡å¡ */ 286.vhcard { 287 background: rgba(255,255,255,.045); 288 border: 1px solid rgba(255,255,255,.1); 289 border-radius: 24px; padding: 32px 30px 26px; 290 -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); 291} 292.vhcard .vh-eyebrow { 293 font-size: 10px; letter-spacing: 5px; font-weight: 700; 294 color: rgba(255,255,255,.38); text-transform: uppercase; margin-bottom: 22px; 295} 296.vh-cardrows { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 26px; } 297.vh-row { 298 display: flex; align-items: baseline; justify-content: space-between; 299 padding-bottom: 9px; border-bottom: 1px dashed rgba(255,255,255,.1); 300} 301.vh-row b { font-size: 1.02rem; font-weight: 700; color: #fff; letter-spacing: .5px; } 302.vh-row span { font-size: .74rem; color: rgba(255,255,255,.5); letter-spacing: 1.5px; } 303.vh-row .cnt { color: #9cc0ff; font-size: 1.18rem; font-weight: 300; } 304.vh-foot { 305 display: flex; align-items: center; justify-content: space-between; 306 margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.08); 307} 308.vh-foot .u { font-size: .78rem; color: rgba(255,255,255,.5); letter-spacing: 1px; } 309.vh-foot .d { font-size: .88rem; color: #fff; font-weight: 600; letter-spacing: .5px; } 310/* Hero â æ£ææåè¿æ¸¡ */ 311.vhero-fade { 312 position: absolute; left: 0; right: 0; bottom: 0; height: 130px; z-index: 1; 313 background: linear-gradient(to bottom, transparent, var(--bg)); 314 pointer-events: none; 315} 316 317/* ============ æ£æå®¹å¨ ============ */ 318.vwrap { max-width: 1180px; margin: 0 auto; padding: 60px 48px 110px; } 319 320/* æ¡£æ¡å·¥å ·æ¡:åç±» + æç´¢ + æåº */ 321.vtoolbar { 322 display: flex; align-items: center; justify-content: space-between; 323 gap: 16px; flex-wrap: wrap; margin-bottom: 22px; 324} 325.vcats { display: flex; gap: 6px; flex-wrap: wrap; } 326.vcat { 327 border: 1px solid var(--line); background: var(--card); color: var(--ink-soft); 328 font-size: .86rem; font-weight: 600; letter-spacing: .5px; 329 padding: 7px 17px; border-radius: 999px; cursor: pointer; 330 transition: all .3s ease; 331} 332.vcat:hover { border-color: var(--brand); color: var(--brand); } 333.vcat.on { background: var(--brand); border-color: var(--brand); color: #fff; box-shadow: 0 8px 18px -8px rgba(59,130,246,.55); } 334.vright { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; } 335.vsearch { 336 display: flex; align-items: center; gap: 8px; 337 border-bottom: 1px solid var(--line); padding: 5px 2px; min-width: 220px; 338 transition: border-color .3s ease; 339} 340.vsearch:focus-within { border-color: var(--brand); } 341.vsearch input { border: none; outline: none; background: transparent; font: inherit; font-size: .9rem; color: var(--ink); width: 100%; } 342.vsearch input::placeholder { color: var(--ink-faint); } 343.vsort { display: flex; gap: 2px; } 344.vsort button { 345 border: none; background: none; font: inherit; font-size: .84rem; 346 color: var(--ink-faint); cursor: pointer; padding: 6px 13px; border-radius: 999px; 347 letter-spacing: 1.5px; transition: all .25s ease; 348} 349.vsort button:hover { color: var(--ink); } 350.vsort button.on { background: rgba(59,130,246,.12); color: var(--brand); font-weight: 700; } 351.vcount { 352 font-size: .78rem; color: var(--ink-faint); letter-spacing: 2px; 353 margin-bottom: 18px; text-transform: uppercase; 354} 355.vcount b { color: var(--brand); font-weight: 700; } 356 357/* è§é¢ç½æ ¼ */ 358.video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(255px, 1fr)); gap: 20px; } 359.vcard { 360 background: var(--card); border-radius: var(--radius-lg); overflow: hidden; 361 box-shadow: var(--shadow-1); cursor: pointer; user-select: none; 362 transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease; 363} 364.vcard:hover { transform: translateY(-5px); box-shadow: var(--shadow-2); } 365.vcard .thumb { 366 position: relative; aspect-ratio: 16 / 10; 367 background: #eef1f6; overflow: hidden; 368} 369.vcard .thumb img { 370 position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; 371 transition: transform .9s cubic-bezier(.16,1,.3,1); 372} 373.vcard:hover .thumb img { transform: scale(1.06); } 374.vcard .thumb .dur { 375 position: absolute; right: 8px; bottom: 8px; z-index: 2; 376 background: rgba(0,0,0,.72); color: #fff; 377 font-size: .72rem; padding: 2px 8px; border-radius: 999px; 378 font-variant-numeric: tabular-nums; 379} 380.vcard .thumb .play { 381 position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) scale(.82); 382 width: 46px; height: 46px; border-radius: 50%; 383 background: rgba(255,255,255,.92); color: var(--brand); 384 display: flex; align-items: center; justify-content: center; 385 font-size: .92rem; box-shadow: 0 10px 26px -8px rgba(0,0,0,.45); 386 opacity: 0; transition: all .32s cubic-bezier(.16,1,.3,1); z-index: 2; 387} 388.vcard:hover .thumb .play { opacity: 1; transform: translate(-50%, -50%) scale(1); } 389.vcard:active .thumb img { transform: scale(1.03); } 390.vcard .body { padding: 15px 16px 17px; } 391.vcard h4 { 392 font-size: .95rem; font-weight: 700; line-height: 1.45; color: var(--ink); 393 margin-bottom: 9px; 394 display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; 395 overflow: hidden; min-height: 2.76em; 396} 397.vcard .meta { 398 display: flex; align-items: center; gap: 12px; 399 font-size: .78rem; color: var(--ink-faint); font-variant-numeric: tabular-nums; 400} 401.vcard .meta .cat { 402 margin-left: auto; font-weight: 700; letter-spacing: 1px; color: var(--ink-soft); 403 font-size: .72rem; 404} 405.empty { 406 text-align: center; padding: 90px 20px; color: var(--ink-faint); 407 font-size: .95rem; letter-spacing: 2px; 408} 409.empty b { color: var(--ink-soft); font-weight: 700; } 410 411/* å¡çå ¥åº */ 412.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); } 413.reveal.in { opacity: 1; transform: none; } 414@media (prefers-reduced-motion: reduce) { 415 .reveal { opacity: 1; transform: none; transition: none; } 416} 417 418/* ============ ææ¾å¼¹çª ============ */ 419.vmodal { position: fixed; inset: 0; z-index: 9000; display: none; align-items: center; justify-content: center; padding: 24px; } 420.vmodal.open { display: flex; } 421.vmask { position: absolute; inset: 0; background: rgba(7,10,20,.82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); } 422.vbox { 423 position: relative; width: min(920px, 100%); background: #0b1220; 424 border-radius: 20px; border: 1px solid rgba(255,255,255,.1); overflow: hidden; 425 box-shadow: 0 70px 140px -40px rgba(0,0,0,.85); 426 animation: vUp .38s cubic-bezier(.16,1,.3,1); 427} 428@keyframes vUp { from { opacity: 0; transform: translateY(26px) scale(.97); } to { opacity: 1; transform: none; } } 429.vhead { display: flex; align-items: center; gap: 12px; padding: 13px 18px; border-bottom: 1px solid rgba(255,255,255,.08); } 430.vhead .vt2 { color: #fff; font-size: .95rem; font-weight: 700; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 431.vclose { 432 width: 32px; height: 32px; border-radius: 50%; border: none; cursor: pointer; 433 background: rgba(255,255,255,.08); color: rgba(255,255,255,.85); font-size: .85rem; 434 display: flex; align-items: center; justify-content: center; transition: background .25s ease; 435} 436.vclose:hover { background: rgba(255,255,255,.18); } 437.vframe { position: relative; padding-top: 56.25%; background: #000; } 438.vframe iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; } 439.vact { display: flex; align-items: center; gap: 10px; padding: 13px 18px; } 440.vact .hint { font-size: .74rem; color: rgba(255,255,255,.45); letter-spacing: 1px; } 441.vopen { 442 margin-left: auto; display: inline-flex; align-items: center; gap: 6px; 443 padding: 8px 20px; border-radius: 999px; font-size: .84rem; font-weight: 600; color: #fff; 444 background: rgba(0,161,214,.9); transition: background .25s ease; 445} 446.vopen:hover { background: #00a1d6; } 447body.locked { overflow: hidden; } 448 449/* ============ 页è ============ */ 450.footer { background: linear-gradient(180deg, #0f172a 0%, #0a0f1e 100%); color: #94a3b8; padding: 64px 48px 30px; } 451.footer-grid { 452 max-width: 1180px; margin: 0 auto; 453 display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 44px; 454} 455.footer .brand { font-size: 1.1rem; font-weight: 800; color: #fff; margin-bottom: 14px; display: flex; align-items: center; gap: 10px; letter-spacing: .5px; } 456.footer .desc { font-size: .85rem; font-weight: 300; line-height: 2; margin-bottom: 20px; color: #7c8ba5; } 457.footer h5 { color: #e2e8f0; font-size: .88rem; font-weight: 700; margin-bottom: 18px; letter-spacing: 2px; } 458.footer a { display: block; color: #8fa0b8; font-size: .86rem; margin-bottom: 12px; transition: color .3s ease; } 459.footer a:hover { color: #fff; } 460.footer-bottom { 461 max-width: 1180px; margin: 44px auto 0; padding-top: 22px; 462 border-top: 1px solid rgba(255,255,255,.07); 463 font-size: .76rem; letter-spacing: 1px;
463 color: #5b6a85; text-align: center; 464} 465 466/* ============ ç§»å¨ç«¯æ½å± ============ */ 467.drawer-mask { display: none; position: fixed; inset: 0; z-index: 9000; background: rgba(10,15,28,.5); } 468.drawer { 469 position: fixed; top: 0; right: 0; bottom: 0; z-index: 9001; 470 width: 300px; max-width: 84vw; background: #fff; 471 box-shadow: -20px 0 60px -30px rgba(0,0,0,.4); 472 transform: translateX(105%); transition: transform .35s cubic-bezier(.16,1,.3,1); 473 padding: 22px 20px; overflow-y: auto; 474} 475.drawer.open { transform: none; } 476.drawer .d-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; } 477.drawer .d-brand { font-weight: 800; font-size: 1.05rem; display: flex; align-items: center; gap: 8px; color: var(--ink); } 478.drawer .d-close { width: 36px; height: 36px; border-radius: 10px; border: none; background: var(--bg); font-size: .95rem; cursor: pointer; color: var(--ink); } 479.drawer a.d-item { display: block; padding: 12px 16px; border-radius: 12px; color: var(--ink-soft); font-size: .98rem; font-weight: 600; } 480.drawer a.d-item:hover, .drawer a.d-item.active { background: rgba(59,130,246,.1); color: var(--brand); } 481 482/* ============ åå°é¡¶é¨ ============ */ 483.backtop { 484 position: fixed; right: 26px; bottom: 26px; z-index: 5000; 485 width: 46px; height: 46px; border-radius: 50%; 486 background: rgba(255,255,255,.92); color: var(--brand); 487 border: 1px solid var(--line); cursor: pointer; font-size: 1.05rem; 488 opacity: 0; transform: translateY(12px); transition: all .3s ease; 489 box-shadow: var(--shadow-1); 490} 491.backtop.show { opacity: 1; transform: none; } 492.backtop:hover { background: var(--brand); color: #fff; } 493 494/* ============ ååºå¼ ============ */ 495@media (max-width: 900px) { 496 .vhero { padding: 84px 24px 120px; } 497 .vwrap { padding: 44px 24px 90px; } 498 .footer { padding: 48px 24px 26px; } 499} 500@media (max-width: 760px) { 501 .nav { padding: 0 20px; } 502 .vhero { padding: 72px 20px 110px; } 503 .vhero-inner { grid-template-columns: 1fr; gap: 44px; } 504 .vhero h1 { font-size: 2.4rem; letter-spacing: 6px; } 505 .vhcard { display: none; } 506 .vhero-actions { margin-top: 38px; } 507 .vwrap { padding: 36px 20px 80px; } 508 .video-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } 509 .vcard .body { padding: 11px 12px 13px; } 510 .vcard h4 { font-size: .82rem; min-height: 0; -webkit-line-clamp: 2; margin-bottom: 6px; } 511 .vcard .meta { gap: 6px; font-size: .68rem; flex-wrap: wrap; } 512 .vcard .meta .cat { margin-left: 0; } 513 .vcard .thumb .play { width: 34px; height: 34px; font-size: .72rem; opacity: .92; transform: translate(-50%, -50%) scale(1); } 514 .vcount { margin-bottom: 14px; } 515 .vsearch { min-width: 100%; order: 3; } 516 .vtoolbar { margin-bottom: 16px; } 517 .vmodal { padding: 10px; } 518 .vbox { border-radius: 14px; } 519 .vact .hint { display: none; } 520 .vhero::before { background-size: 26px 26px; } 521 .footer-grid { grid-template-columns: 1fr; gap: 26px; } 522 .backtop { right: 18px; bottom: 18px; width: 42px; height: 42px; } 523} 524 .ui-fx-glow { 525 position: fixed; left: -999px; top: -999px; width: 240px; height: 240px; 526 border-radius: 50%; pointer-events: none; z-index: 9997; 527 transform: translate(-50%, -50%); 528 background: radial-gradient(circle, rgba(59,130,246,.18), rgba(139,92,246,.10) 45%, transparent 65%); 529 opacity: 0; 530 } 531 532 533 /* ===== Hero å ¥åºå¨ç»(å ¨ç«ç»ä¸,ä¸é¦é¡µä¸è´çéå³°æ·¡å ¥) ===== */ 534 @keyframes heroFadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } } 535 .vhero .hero-eyebrow, .vhero h1, .vhero .vhero-sub, .vhero .vhero-actions, 536 .vhero .pd-stats, .vhero .cl-stats, .vhero .acard, .vhero .vhcard, .vhero .com-rules { 537 animation: heroFadeUp .95s cubic-bezier(.16,1,.3,1) both; 538 } 539 .vhero .hero-eyebrow { animation-delay: .08s; } 540 .vhero h1 { animation-delay: .2s; } 541 .vhero .vhero-sub { animation-delay: .34s; } 542 .vhero .vhero-actions { animation-delay: .48s; } 543 .vhero .pd-stats, .vhero .cl-stats, .vhero .acard, .vhero .vhcard, .vhero .com-rules { animation-delay: .32s; } 544 @media (prefers-reduced-motion: reduce) { 545 .vhero .hero-eyebrow, .vhero h1, .vhero .vhero-sub, .vhero .vhero-actions, 546 .vhero .pd-stats, .vhero .cl-stats, .vhero .acard, .vhero .vhcard, .vhero .com-rules { animation: none; } 547 } 548 549 /* ===== å ¨ç«å ¬åæ¡(ä¸é¦é¡µä¸è´) ===== */ 550 .beta-announce { 551 display: flex; align-items: center; gap: 14px; 552 max-width: 1080px; margin: 34px auto 0; padding: 15px 24px; 553 background: var(--card); 554 border-radius: var(--radius-md); 555 box-shadow: var(--shadow-1); 556 position: relative; 557 } 558 .beta-announce::before { 559 content: ''; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; 560 border-radius: 3px; background: var(--brand); 561 } 562 .beta-announce .ba-title { 563 flex-shrink: 0; font-size: .82rem; font-weight: 700; color: var(--brand); 564 background: rgba(59,130,246,.08); border-radius: 999px; padding: 4px 12px; 565 } 566 .beta-announce .ba-track-wrap { flex: 1; overflow: hidden; min-width: 0; } 567 .beta-announce .ba-track { display: inline-block; white-space: nowrap; will-change: transform; } 568 .beta-announce .ba-item { 569 display: inline-block; white-space: nowrap; padding-right: 80px; 570 font-size: .92rem; color: var(--ink-soft); 571 } 572 .beta-announce a { color: var(--brand); text-decoration: underline; } 573 .beta-announce a:hover { color: var(--brand-deep); } 574 html.dark .beta-announce { background: var(--card); } 575 html.dark .beta-announce .ba-item { color: var(--ink-soft); } 576 @media (max-width: 760px) { .beta-announce { align-items: flex-start; flex-wrap: wrap; } } 577 html { scroll-behavior: smooth; } 578 [id] { scroll-margin-top: 86px; } 579 580 581/* ===== ãæ´å¤åè½ã䏿(å¨ç»ä¸åèå项å®å ¨ä¸è´) ===== */ 582.nav-more { position: relative; display: flex; align-items: center; } 583.nav-more-btn { 584 position: relative; padding: 10px 14px; 585 font-size: .92rem; font-weight: 500; letter-spacing: .4px; 586 color: var(--ink-soft); background: none; border: none; cursor: pointer; 587 font-family: inherit; white-space: nowrap; 588 transition: color .3s ease; 589} 590.nav-more-btn::after { 591 content: ''; position: absolute; left: 14px; right: 14px; bottom: 2px; 592 height: 1px; background: var(--brand); 593 transform: scaleX(0); transform-origin: left; 594 transition: transform .35s cubic-bezier(.16,1,.3,1); 595} 596.nav-more-btn:hover { color: var(--ink); } 597.nav-more-btn:hover::after { transform: scaleX(1); } 598.nav-more.open .nav-more-btn { color: var(--ink); } 599.nav-more.open .nav-more-btn::after { transform: scaleX(1); } 600.nav-more-btn.active { color: var(--brand); font-weight: 600; } 601.nav-more-btn.active::after { transform: scaleX(1); } 602.nav-more-panel { 603 display: none; position: absolute; top: calc(100% + 12px); right: 0; 604 min-width: 178px; padding: 8px; 605 background: var(--card); border: 1px solid var(--line); 606 border-radius: 14px; box-shadow: 0 18px 44px -20px rgba(15,23,42,.42); 607 z-index: 300; 608} 609.nav-more.open .nav-more-panel { display: block; } 610.nav-more-panel a { 611 display: block; padding: 9px 12px; border-radius: 9px; 612 font-size: .88rem; color: var(--ink-soft); text-decoration: none; white-space: nowrap; 613 transition: background .18s ease, color .18s ease; 614} 615.nav-more-panel a:hover { background: rgba(59,130,246,.1); color: var(--brand); } 616html.dark .nav-more-panel { background: #0f1a30; border-color: rgba(148,163,184,.22); } 617html.dark .nav-more-panel a:hover { background: rgba(59,130,246,.2); color: #fff; } 618 619/* ===== ç§»å¨ç«¯:乿¾ç¤ºè¿æ¡èåæ (左峿»å¨çå ¨é¨),ä¸ååªé æ±å ¡ ===== */ 620@media (max-width: 900px) { 621 .nav { padding: 0 12px; gap: 6px; } 622 .nav-logo { flex: 0 0 auto; margin-left: 0; } 623 .nav-menu { 624 display: flex; 625 flex: 1 1 auto; 626 min-width: 0; 627 justify-content: flex-start; 628 gap: 0; 629 overflow-x: auto; 630 overflow-y: hidden; 631 scrollbar-width: none; 632 -ms-overflow-style: none; 633 -webkit-overflow-scrolling: touch; 634 /* å³ä¾§æ¸é,æç¤ºè¿è½å¾å³æ» */ 635 -webkit-mask-image: linear-gradient(90deg, #000 0, #000 88%, transparent 100%); 636 mask-image: linear-gradient(90deg, #000 0, #000 88%, transparent 100%); 637 } 638 .nav-menu::-webkit-scrollbar { display: none; } 639 .nav-menu > a, .nav-menu .nav-more-btn { padding: 9px 11px; font-size: .86rem; letter-spacing: .2px; } 640 .nav-menu > a::after, .nav-menu .nav-more-btn::after { left: 11px; right: 11px; } 641 .nav-right-group { flex: 0 0 auto; gap: 6px; } 642 .theme-btn { width: 38px; height: 38px; border-radius: 11px; font-size: 1rem; } 643 .nav-burger { flex: 0 0 auto; } 644 /* 䏿颿¿å¨ææºä¸å± ä¸ä¸ç¹,é¿å è´´è¾¹è¢«è£ */ 645 .nav-more-panel { right: auto; left: 0; } 646} 647@media (max-width: 420px) { 648 .nav-menu > a, .nav-menu .nav-more-btn { padding: 9px 9px; font-size: .82rem; } 649 .nav-logo .logo-img { height: 28px; } 650} 651 652/* ===== ç§»å¨ç«¯ / APP éé å¢å¼º ===== */ 653/* 1) å®å ¨åº:APP å ¨å±è¿è¡æ¶,åæµ·å±/åºé¨æ¨ªæ¡ä¸ååä½å 容 */ 654body { 655 padding-left: env(safe-area-inset-left, 0); 656 padding-right: env(safe-area-inset-right, 0); 657} 658.nav { padding-top: env(safe-area-inset-top, 0); } 659.footer { padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); } 660.backtop { bottom: calc(18px + env(safe-area-inset-bottom, 0px)); } 661.drawer { padding-top: calc(18px + env(safe-area-inset-top, 0px)); padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); } 662.nav-more-panel { max-height: 70vh; overflow-y: auto; } 663.d-modal, .modal-content, .cam-modal > div, .custom-modal > div { 664 max-height: 86vh; overflow-y: auto; 665} 666 667/* 2) 触æ¸ä½éª */ 668a, button, [onclick], .sort-btn, .d-item { 669 -webkit-tap-highlight-color: transparent; 670 touch-action: manipulation; 671} 672html { -webkit-text-size-adjust: 100%; } 673 674/* 3) ææºä¸è¾å ¥æ¡åå·ç»ä¸ 16px: 675 å°äº 16px æ¶ iOS/é¨åå®å WebView èç¦ä¼èªå¨æ¾å¤§æ´é¡µ(æå¸¸è§çä¸éé ææ¥æº) */ 676@media (max-width: 900px) { 677 input:not([type=checkbox]):not([type=radio]), textarea, select { 678 font-size: 16px !important; 679 } 680 /* å ³é®æä½æé®çæå°å¯ç¹åºå(ä¸å½±åå°å¾æ æé®) */ 681 button:not(.d-close):not(.nav-burger):not(.theme-btn):not(.backtop):not(.react-btn):not(.reply-btn):not(.edit-btn):not(.delete-btn):not(.report-btn):not(.sort-btn), 682 .btn, .hero-btn, .vhero-actions a { 683 min-height: 38px; 684 } 685 /* è¡¨æ ¼:å·²ææ¨ªåæ»å¨å®¹å¨çä¿æ,没æçèªå¨å åº */ 686 .table-wrap, .scroll-x, .stock-table-wrap { -webkit-overflow-scrolling: touch; } 687 /* é¿ææ¬é²æº¢åº */ 688 .comment-content, .bn-reason, .d-item, .pd-tip { word-break: break-word;
688 overflow-wrap: anywhere; } 689} 690 691/* 4) APP(ç¬ç«çªå£)ä¸:廿éä¸é«äº®ä¸é¿æèåçå¹²æ°,æ£ææ´æ¥è¿åç */ 692@media (display-mode: standalone) { 693 a, button { -webkit-user-select: none; user-select: none; } 694 .comment-content { -webkit-user-select: text; user-select: text; } 695 .backtop { display: none; } /* APP éç¨ç³»ç»è¿å鮿´èªç¶ */ 696} 697 698/* ===== ææºä¸ãæ´å¤åè½ã䏿çå¤ç ===== 699 åå :çªå±å¯¼èªèåæ¯æ¨ªåæ»å¨ç,èãæ´å¤åè½ãæå¨èåæå³ç«¯, 700 åå§ä½ç½®å¨å±å¹å¤;ä¸èåç overflow 伿弹åºé¢æ¿è£æã 701 å¤ç:ææºä¸éèè¿ä¸ªä¸æ(æ ¸å¿åè½å¨ â° æ½å±é齿),å¹³æ¿/æ¡é¢ä¿æå¯ç¨ã */ 702@media (max-width: 900px) { 703 .nav-more { display: none !important; } 704 .nav-more-panel { display: none !important; } 705} 706/* å¹³æ¿/æ¡é¢:颿¿é å³å¼¹åºæ¶çåºè¾¹è·,é¿å è´´è¾¹ */ 707@media (min-width: 901px) { 708 .nav-more-panel { max-width: calc(100vw - 24px); } 709} 710 711 712/* ===== è¯è®ºå¯ææ¬:ç²ä½ / æä½ / è¡å 代ç (ä¸å¨é¾æ¥é¢è²) ===== */ 713.comment-content b, .comment-content strong { font-weight: 800; } 714.comment-content i, .comment-content em { font-style: italic; opacity: .95; } 715.comment-content code { 716 padding: 1px 6px; border-radius: 6px; 717 background: rgba(120,120,120,.14); 718 font-family: ui-monospace, Consolas, monospace; font-size: .92em; 719} 720.md-tip { font-size: .74rem; color: var(--ink-soft, #5a6270); opacity: .7; margin-top: 6px; } 721.md-tip code { padding: 1px 4px; border-radius: 4px; background: rgba(120,120,120,.14); font-size: .95em; } 722</style> 723<link rel="manifest" href="/manifest.json"> 724<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32.png"> 725<link rel="apple-touch-icon" sizes="180x180" href="/images/app-icon-180.png"> 726<meta name="apple-mobile-web-app-capable" content="yes"> 727<meta name="mobile-web-app-capable" content="yes"> 728<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> 729<meta name="apple-mobile-web-app-title" content="NBé¢é"> 730<meta name="application-name" content="NBé¢é"> 731<!-- nb-theme: 主é¢å ï¼å½åº / ç§æï¼ââ å¿ é¡»å¨é¡µé¢æ ·å¼ä¹åå è½½ --> 732<link rel="stylesheet" href="../css/themes.css?v=35">
733<script src="../js/theme.js?v=9"></script>
733 734</head> 735<body> 736 737<!-- å¯¼èª --> 738<nav class="nav"> 739 <a class="nav-logo" href="index-Beta.html"><img class="logo-img" src="/images/NBé¢éLOGO.png" alt="NBé¢é"></a> 740 <div class="nav-menu"> 741 <a href="index-Beta.html">é¦é¡µ</a> 742 <a href="videos-Beta.html" class="active">è§é¢</a> 743 <a href="about-Beta.html">å ³äº</a> 744 <a href="rules-Beta.html">ç¨æ·å®å</a> 745 <a href="changelog-Beta.html">æ´æ°æ¥å¿</a> 746 <a href="product-Beta.html">æç产å</a> 747 <a href="APP-Beta.html">软件/APP</a> 748 <a href="index-Beta.html#friends">åå</a> 749 <a class="nav-api" href="/api-sdk/" target="_blank" rel="noopener noreferrer" title="NBé¢é API ææ¡£">API<i>â</i></a> 750 <div class="nav-more"> 751 <button class="nav-more-btn" type="button">æ´å¤åè½ â¾</button> 752 <div class="nav-more-panel"> 753 <a href="stock-Beta.html">ð èæè¡ç¥¨</a> 754 <a href="messages-Beta.html">ð æ¶æ¯ä¸å¿</a> 755 <a href="chat-Beta.html">ð¥ 好å / ç§ä¿¡</a> 756 <a href="bank-Beta.html">ð¦ NBé¶è¡</a> 757 <a href="shop-Beta.html">ðï¸ NBååº</a> 758 <a href="backpack-Beta.html">ð æçèå </a> 759 <a href="titles-Beta.html">ð ç§°å·å¤§å ¨</a> 760 <a href="achievements-Beta.html">ð æå°±å¢</a> 761 <a href="lottery-Beta.html">ð ç¾å° · 转ç</a> 762 <a href="lottery_records-Beta.html">ð° æ½å¥è®°å½</a> 763 <a href="tools-Beta.html">ð§ å·¥å ·</a> 764 <a href="product_share-Beta.html">ð¦ ä½åå享</a> 765 <a href="comments-Beta.html">ð¬ è¯è®ºåº</a> 766 <a href="ban-Beta.html">ð« å°é»å±</a> 767 <a href="feedback-Beta.html">ð æ¼æ´/建议åé¦</a> 768 <a href="vote-Beta.html">ð³ï¸ æç¥¨ä¸å¿</a> 769 </div> 770 </div> 771 </div> 772 <div class="nav-right-group"> 773 <div class="nav-clock" id="navClock" title="å京æ¶é´ï¼UTC+8ï¼"> 774 <span class="nc-time" id="bjTime">--:--:--</span> 775 <span class="nc-row"><i class="nc-date" id="bjDate">----.--.--</i><em class="nc-label">å京æ¶é´</em></span> 776 </div> 777 <button class="theme-btn" id="themeBtn" aria-label="忢å¤é´æ¨¡å¼">ð</button> 778 <div class="nav-auth-group" id="betaAuthGroup"> 779 <a class="nav-auth" id="betaProfileBtn" href="#">ð¤ 个人ä¸å¿</a> 780 <a class="nav-auth primary" id="betaAuthBtn" href="#">ç»å½ / 注å</a> 781 </div> 782 </div> 783 <button class="nav-burger" id="navBurger" aria-label="æå¼èå">â°</button> 784 <!-- æ«ç :ææºç«¯å³ä¸è§,卿±å ¡(â°)çå³è¾¹ãåªå¨ APP éæ¾ç¤º ââ ç½é¡µç«¯è°ä¸å¨æå头ã 785 æ´æ®µèªå å«(èªå¸¦æ ·å¼/èæ¬),ä¸ä¾èµæ¬é¡µæ¢æç CSS åéå导èªç»æã --> 786 <a class="nav-scan" id="navScanBtn" href="scan-Beta.html" aria-label="æ«ä¸æ«" title="æ«ä¸æ«"><svg width="21" height="21" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 8.5V6a3 3 0 0 1 3-3h2.5"/><path d="M15.5 3H18a3 3 0 0 1 3 3v2.5"/><path d="M21 15.5V18a3 3 0 0 1-3 3h-2.5"/><path d="M8.5 21H6a3 3 0 0 1-3-3v-2.5"/><path d="M3.2 12h17.6"/></svg></a> 787 <style> 788 .nav-scan{display:none;width:42px;height:42px;border-radius:12px;cursor:pointer;background:rgba(255,255,255,.7);border:1px solid var(--line,#e2e8f0);color:var(--ink,#0f172a);align-items:center;justify-content:center;text-decoration:none;-webkit-tap-highlight-color:transparent} 789 .nav-scan svg{width:21px;height:21px;display:block} 790 .nav-scan:hover{border-color:rgba(59,130,246,.5);color:var(--brand,#3b82f6)} 791 html.dark .nav-scan{background:rgba(255,255,255,.06);border-color:rgba(148,163,184,.25);color:var(--ink,#e2e8f0)} 792 @media (max-width:900px){.nav-scan{display:flex}} 793 </style> 794
794<script>/* æ«ç å ¥å£åªå¨ APP éæ¾ç¤ºãæ§ç APP 乿¾ç¤º ââ ç¹è¿å» scan-Beta.html ä¼æç¤ºä»æ´æ° */ 795 (function(){try{if(!/NBChannelApp/i.test(navigator.userAgent||"")){var b=document.getElementById("navScanBtn");if(b)b.style.display="none";}}catch(e){}})();</script>
795 796 797</nav>
798<script> 799// ===== å¨ APP ééè导èªèåç emoji ===== 800// ç«é¿è¦æ±ï¼APP çãæ´å¤åè½ã䏿èåä¸è¦ emojiï¼ç½é¡µç«¯ä¿çåæ ·ã 801// 802// APP æ¯ Capacitor å¥å£³ï¼å è½½çå°±æ¯æ¬ç« ââ æ¹ HTML ä¼ä¸¤è¾¹ä¸èµ·æ¹ï¼ 803// æä»¥åªè½æ UA åºåï¼APP å¨ UA éæ³¨å ¥äº NBChannelAppï¼ã 804// 夿忳ä¸ä¸é¢ãæ«ä¸æ«ã飿®µä¿æä¸è´ã 805(function () { 806 var isApp = false; 807 try { isApp = /NBChannelApp/i.test(navigator.userAgent || ''); } catch (e) {} 808 if (!isApp) return; // æµè§å¨é ââ emoji ä¿æåæ · 809 810 // 代ç对ï¼U+1F000 以ä¸ï¼+ BMP 符å·åº + åä½éæ©ç¬¦ + é¶å®½è¿æ¥ç¬¦ï¼è¿ååé¢çç©ºæ ¼ä¸èµ·å¥æ 811 var LEAD = /^(?:[\u2190-\u21FF\u2300-\u23FF\u2600-\u27BF\u2B00-\u2BFF\uFE0F\u200D]|[\uD83C-\uDBFF][\uDC00-\uDFFF])+\s*/; 812 813 function strip() { 814 try { 815 var as = document.querySelectorAll('.nav-more-panel a, .drawer a'); 816 // â ï¸ æ¡é¢ä¸æ(.nav-more-panel)卿æºä¸è¢« CSS èäºï¼ææºèµ°çæ¯ 817 // æ±å ¡æ½å±(.drawer)ã两个é½è¦å¤çï¼å¦å APP é伿¼ã 818 for (var i = 0; i < as.length; i++) { 819 var t = as[i].textContent || ''; 820 var n = t.replace(LEAD, ''); 821 if (n !== t) as[i].textContent = n; 822 } 823 } catch (e) {} 824 } 825 strip(); 826 setTimeout(strip, 400); // 导èªè¥æ¯å渲æçï¼è¡¥ä¸¤æ¬¡ 827 setTimeout(strip, 1500); 828})(); 829 830// ===== 导èªãæ´å¤åè½ã䏿 ===== 831(function () { 832 var box = document.querySelector('.nav-more'); 833 if (!box) return; 834 var btn = box.querySelector('.nav-more-btn'); 835 btn.addEventListener('click', function (e) { e.stopPropagation(); box.classList.toggle('open'); }); 836 document.addEventListener('click', function () { box.classList.remove('open'); }); 837 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') box.classList.remove('open'); }); 838 var here = (location.pathname.split('/').pop() || '').toLowerCase(); 839 if (here && box.querySelector('.nav-more-panel a[href="' + here + '"]')) btn.classList.add('active'); 840})(); 841</script>
841 842 843 844<!-- Hero --> 845<header class="vhero"> 846 <div class="vhero-inner"> 847 <div class="hero-copy"> 848 <span class="hero-eyebrow">VIDEO ARCHIVE · BILIBILI</span> 849 <h1>è§é¢<span class="light">æ¡£æ¡</span></h1> 850 <p class="vhero-sub">åå¦ä¸ç©çå®éªãæ¥å¸¸ä½æ»ãå®ç½ä¸äº§åè®°å½ââæ¯ä¸æ¡é½è®¤çæäºãç¹å»ä»»æå°é¢å³å¯ææ¾ï¼æå¨ Bç« ç»ä¸ªä¸è¿</p> 851 <div class="vhero-actions"> 852 <a class="hero-link" href="#vlist">è¿å ¥æ¡£æ¡ â</a> 853 <a class="hero-link" href="https://space.bilibili.com/3493259582114264" target="_blank" rel="noopener noreferrer">Bç«ç©ºé´ â</a> 854 </div> 855 </div> 856 <div class="vhcard" id="vhCard"> 857 <div class="vh-eyebrow">Collection</div> 858 <div class="vh-cardrows" id="vhRows"><!-- JS å¡«å :åç±»ä¸æ°é --></div> 859 <div class="vh-foot"> 860 <span class="u">LATEST UPDATE</span> 861 <span class="d" id="vhLatest">--</span> 862 </div> 863 </div> 864 </div> 865 <div class="vhero-fade"></div> 866</header> 867 868<!-- è§é¢æ¡£æ¡ä¸»åº --> 869<!-- å ¨ç«å ¬å(ä¸é¦é¡µä¸è´;admin_config key=announcement) --> 870<div class="beta-announce" id="betaAnnounce" style="display:none;"> 871 <div class="ba-title">å ¬å</div> 872 <div class="ba-track-wrap"><div class="ba-track" id="baTrack"></div></div> 873</div> 874<main class="vwrap" id="vlist"> 875 <div class="vtoolbar"> 876 <div class="vcats" id="vCats"> 877 <button class="vcat on" data-k="__all__">å ¨é¨</button> 878 </div> 879 <div class="vright"> 880 <div class="vsort"> 881 <button class="on" data-sort="time">ææ°</button> 882 <button data-sort="hot">æç</button> 883 </div> 884 <label class="vsearch"> 885 <span style="font-size:.8rem;color:var(--ink-faint);">â</span> 886 <input type="text" id="vSearch" placeholder="æç´¢è§é¢æ é¢" autocomplete="off"> 887 </label> 888 </div> 889 </div> 890 <div class="vcount" id="vCount">æ£å¨è¯»åè§é¢æ¡£æ¡â¦</div> 891 <div class="video-grid" id="vGrid"></div> 892 <div id="vEmpty" class="empty" style="display:none;"><b>æ²¡ææ¾å°å¹é çè§é¢</b><br>æ¢ä¸ªå ³é®è¯æåç±»è¯è¯</div> 893</main> 894 895<!-- 页è --> 896<footer class="footer"> 897 <div class="footer-grid"> 898 <div> 899 <div class="brand"><img class="logo-img" src="/images/NBé¢éLOGO.png" alt="NBé¢é"><span class="logo-text">NBé¢é</span></div> 900 <p class="desc">NBé¢éï¼NoBooké¢éï¼ââçç±çç§ï¼å使»ï¼ç UP主建ç«çèæå ¬å¸ãåå¦ç©çå®éªãæ¥å¸¸ä½æ»ãèæç»æµï¼ä¸ä¸ªæè¶£çæ°åä¸ç</p> 901 </div> 902 <div> 903 <h5>åè½</h5> 904 <a href="stock-Beta.html">èæè¡ç¥¨</a><a href="bank-Beta.html">NBé¶è¡</a><a href="comments-Beta.html">è¯è®ºåº</a><a href="shop-Beta.html">NBååº</a><a href="tools-Beta.html">å·¥å ·</a><a href="titles-Beta.html">ç§°å·ç³»ç»</a><a href="feedback-Beta.html">æ¼æ´/建议åé¦</a> 905 </div> 906 <div> 907 <h5>åå</h5> 908 <a href="https://orgent.pythonanywhere.com/" target="_blank" rel="noopener noreferrer">Orgentï¼å·²æ³¨éï¼</a> 909 <a href="https://45d.cn/AWM/" target="_blank" rel="noopener noreferrer">AWM</a> 910 <a href="https://fafat.uuk.pp.ua/" target="_blank" rel="noopener noreferrer">Fafat</a> 911 <a href="https://nb-qx.top/" target="_blank" rel="noopener noreferrer">Lemonï¼é½åï¼</a> 912 <a href="https://gaohantu.cn/" target="_blank" rel="noopener noreferrer">GaoHanTu</a> 913 <a href="https://utw.pages.dev" target="_blank" rel="noopener noreferrer">Utw</a> 914 <a href="https://pipetrainingcamp.github.io/" target="_blank" rel="noopener noreferrer">PTCï¼GoodPTCï¼</a> 915 <a href="https://yoyo-user-awa.github.io/UVS/" target="_blank" rel="noopener noreferrer">UVS</a> 916 <a href="https://3f7ceb4e.pinit.eth.limo/" target="_blank" rel="noopener noreferrer">UwLS</a> 917 <a href="https://45d.cn/nb-og.top/" target="_blank" rel="noopener noreferrer">Oganesson</a> 918 <a href="https://78439049.pinit.eth.limo/" target="_blank" rel="noopener noreferrer">SOT</a> 919 </div> 920 <div> 921 <h5>èç³»</h5> 922 <a href="/cdn-cgi/l/email-protection#aec0cccdc6cfc0c0cbc2ee9f989d80cdc1c3"><span class="__cf_email__" data-cfemail="7f111d1c171e11111a133f4e494c511c1012">[email protected]</span></a><a href="https://space.bilibili.com/3493259582114264" target="_blank" rel="noopener noreferrer">
922Bç«ï¼NBæäºå±</a><a href="https://nb-channel.top" target="_blank" rel="noopener noreferrer">nb-channel.top</a> 923 </div> 924 </div> 925 <div class="footer-bottom">© 2026 NBé¢é · èæå ¬å¸ · å¶ä½ï¼NBæäºå± · ç± GitHub Pages / Cloudflare / PythonAnywhere æä¾æ¯æ · è§é¢æ°æ®ç± Bç« API 忥</div><div style="margin-top:8px;font-size:0.78rem;opacity:.72;line-height:1.9;">æ¬ç«ææå 容ï¼é¡µé¢ä»£ç · 徿 · æ°æ®ï¼çæå½ <b>NBé¢é</b> ææï¼æªç»ä¹¦é¢ææç¦æ¢å¤å¶ãéåæé¨ç½²å°å ¶ä»åå</div> 926</footer> 927 928<!-- ç§»å¨ç«¯æ½å± --> 929<div class="drawer-mask" id="drawerMask"></div> 930<aside class="drawer" id="drawer"> 931 <div class="d-head"> 932 <span class="d-brand"><img class="logo-img" src="/images/NBé¢éLOGO.png" alt="NBé¢é"><span class="logo-text">NBé¢é</span></span> 933 <button class="d-close" id="drawerClose" aria-label="å ³éèå">â</button> 934 </div> 935 <a class="d-item" href="vote-Beta.html">æç¥¨ä¸å¿</a> 936 <a class="d-item" href="stock-Beta.html">èæè¡ç¥¨</a> 937 <a class="d-item" href="messages-Beta.html">æ¶æ¯ä¸å¿</a> 938 <a class="d-item" href="chat-Beta.html">好å / ç§ä¿¡</a> 939 <a class="d-item" href="bank-Beta.html">NBé¶è¡</a> 940 <a class="d-item" href="shop-Beta.html">NBååº</a> 941 <a class="d-item" href="backpack-Beta.html">æçèå </a> 942 <a class="d-item" href="titles-Beta.html">ç§°å·å¤§å ¨</a> 943 <a class="d-item" href="achievements-Beta.html">æå°±å¢</a> 944 <a class="d-item" href="lottery-Beta.html">ç¾å° · 转ç</a> 945 <a class="d-item" href="lottery_records-Beta.html">æ½å¥è®°å½</a> 946 <a class="d-item" href="tools-Beta.html">å·¥å ·</a> 947 <a class="d-item" href="product_share-Beta.html">ä½åå享</a> 948 <a class="d-item" href="comments-Beta.html">è¯è®ºåº</a> 949 <a class="d-item" href="ban-Beta.html">å°é»å±</a> 950 <a class="d-item" href="feedback-Beta.html">æ¼æ´/建议åé¦</a> 951 <div class="d-auth"> 952 <a class="ga" id="dProfileBtn" href="#">个人ä¸å¿</a> 953 <a class="gab" id="dAuthBtn" href="#">ç»å½ / 注å</a> 954 </div> 955</aside> 956 957<!-- ææ¾å¼¹çª --> 958<div class="vmodal" id="vModal"> 959 <div class="vmask" id="vMask"></div> 960 <div class="vbox" role="dialog" aria-modal="true"> 961 <div class="vhead"> 962 <div class="vt2" id="vTitle">--</div> 963 <button class="vclose" id="vClose" aria-label="å ³é">â</button> 964 </div> 965 <div class="vframe"><iframe id="vFrame" src="about:blank" title="Bç«ææ¾å¨" allowfullscreen allow="autoplay; fullscreen; encrypted-media; picture-in-picture"></iframe></div> 966 <div class="vact"> 967 <span class="hint">妿æ¾å¨ç©ºç½,è¯·ç´æ¥åå¾ Bç« è§ç</span> 968 <a class="vopen" id="vOpen" href="#" target="_blank" rel="noopener noreferrer">å¨ Bç«æå¼ â</a> 969 </div> 970 </div> 971</div> 972 973<!-- åå°é¡¶é¨ --> 974<button class="backtop" id="backTop" aria-label="åå°é¡¶é¨">â</button> 975 976<!-- è§é¢æ°æ®(data/videos.js ç±åæ¥èæ¬èªå¨æ´æ°,å¿ææ¹) -->
vendor: 109 bytes, lines 976-977
976 977<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
977<script src="/data/videos.js"></script>
vendor: 1 bytes, line 977
977
978<script> 979(function () { 980 'use strict'; 981 var LIST = window.VIDEOS || []; 982 var CAT_ORDER = ['åå¦', 'ç©ç', 'æäºº', 'å®ç½', '产å', 'å ¶ä»']; 983 var grid = document.getElementById('vGrid'); 984 var countEl = document.getElementById('vCount'); 985 var emptyEl = document.getElementById('vEmpty'); 986 var urlCat = ''; 987 try { urlCat = new URLSearchParams(location.search).get('cat') || ''; } catch (e) {} 988 if (CAT_ORDER.indexOf(urlCat) < 0) urlCat = ''; 989 var state = { cat: urlCat || '__all__', q: '', sort: 'time' }; 990 991 function fmtDate(ts) { 992 try { 993 return new Intl.DateTimeFormat('zh-CN', { timeZone: 'Asia/Shanghai', year: 'numeric', month: '2-digit', day: '2-digit' }) 994 .format(new Date(ts * 1000)).replace(/\//g, '.'); 995 } catch (e) { return ''; } 996 } 997 function norm(s) { return String(s || '').replace(/\s+/g, '').toLowerCase(); } 998 function parsePlay(p) { 999 var s = String(p || '0'); 1000 if (/ä¸/.test(s)) { var n = parseFloat(s) || 0; return Math.round(n * 10000); } 1001 return parseInt(s, 10) || 0; 1002 } 1003 function esc(s) { 1004 return String(s).replace(/[&<>"']/g, function (m) { return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[m]; }); 1005 } 1006 1007 // ---- Hero æ¡£æ¡å¡:å类计æ°ä¸æè¿æ´æ° ---- 1008 function fillHero() { 1009 var rows = document.getElementById('vhRows'); 1010 var latest = 0; 1011 var counts = {}; 1012 LIST.forEach(function (v) { 1013 counts[v.category_key] = (counts[v.category_key] || 0) + 1; 1014 if (v.pubdate > latest) latest = v.pubdate; 1015 }); 1016 if (rows) { 1017 rows.innerHTML = CAT_ORDER.map(function (k) { 1018 return '<div class="vh-row"><b>' + k + '</b><span class="cnt">' + (counts[k] || 0) + ' é¨</span></div>'; 1019 }).join(''); 1020 } 1021 var lt = document.getElementById('vhLatest'); 1022 if (lt) lt.textContent = latest ? fmtDate(latest) : '--'; 1023 } 1024 1025 // ---- çéåçè§é¢å表 ---- 1026 function filtered() { 1027 var q = norm(state.q); 1028 return LIST.filter(function (v) { 1029 if (state.cat !== '__all__' && v.category_key !== state.cat) return false; 1030 if (q && norm(v.title).indexOf(q) < 0) return false; 1031 return true; 1032 }).sort(function (a, b) { 1033 return state.sort === 'hot' ? parsePlay(b.play) - parsePlay(a.play) : b.pubdate - a.pubdate; 1034 }); 1035 } 1036 1037 // ---- 渲æ ---- 1038 var io = null; 1039 function ensureIO() { 1040 if (io) return; 1041 io = new IntersectionObserver(function (es) { 1042 es.forEach(function (e) { if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); } }); 1043 }, { threshold: 0.05 }); 1044 } 1045 function render() { 1046 var list = filtered(); 1047 if (countEl) { 1048 countEl.innerHTML = LIST.length 1049 ? (state.cat === '__all__' && !state.q ? '' : '') + 'å ± <b>' + list.length + '</b> é¨' + (state.q ? ' å¹é ã' + esc(state.q) + 'ã' : '') + (state.cat !== '__all__' ? ' · ' + esc(state.cat) + ' ç³»å' : '') 1050 : 'è§é¢æ¡£æ¡æ´çä¸â¦'; 1051 } 1052 if (emptyEl) emptyEl.style.display = (LIST.length && !list.length) ? 'block' : 'none'; 1053 if (!LIST.length) { 1054 if (grid) grid.innerHTML = '<div class="empty"><b>è§é¢æ¡£æ¡ææ¶æ æ³è¯»å</b><br>请ç¨åå·æ°éè¯</div>'; 1055 return; 1056 } 1057 if (grid) { 1058 grid.innerHTML = list.map(function (v, i) { 1059 return '<div class="vcard reveal" role="button" tabindex="0" data-bvid="' + esc(v.bvid) + '" data-title="' + esc(v.title) + '" style="transition-delay:' + Math.min(i * 22, 320) + 'ms">' + 1060 '<div class="thumb"><img loading="lazy" decoding="async" src="' + esc(v.cover) + '" alt="' + esc(v.title) + '"><span class="dur">' + esc(v.duration) + '</span><span class="play">â¶</span></div>' + 1061 '<div class="body"><h4>' + esc(v.title) + '</h4>' + 1062 '<div class="meta"><span>' + esc(v.play) + ' æ¬¡ææ¾</span><span>' + fmtDate(v.pubdate) + '</span><span class="cat">' + esc(v.category_name || v.category_key) + '</span></div></div>' + 1063 '</div>'; 1064 }).join(''); 1065 ensureIO(); 1066 Array.prototype.forEach.call(grid.querySelectorAll('.reveal'), function (el) { io.observe(el); }); 1067 } 1068 } 1069 1070 // ---- åç±» chips ---- 1071 var cats = document.getElementById('vCats'); 1072 if (cats) {
1073 CAT_ORDER.forEach(function (k) { 1074 var b = document.createElement('button'); 1075 b.className = 'vcat'; 1076 b.dataset.k = k; 1077 b.textContent = k; 1078 if (k === state.cat) b.classList.add('on'); 1079 cats.appendChild(b); 1080 }); 1081 // ?cat=xxx ç´è¾¾æ¶:ä¸"å ¨é¨"é«äº®åæ¥ 1082 if (state.cat !== '__all__') { 1083 Array.prototype.forEach.call(cats.querySelectorAll('.vcat'), function (x) { 1084 x.classList.toggle('on', x.dataset.k === state.cat); 1085 }); 1086 } 1087 cats.addEventListener('click', function (e) { 1088 var b = e.target.closest('.vcat'); 1089 if (!b) return; 1090 state.cat = b.dataset.k; 1091 Array.prototype.forEach.call(cats.querySelectorAll('.vcat'), function (x) { x.classList.toggle('on', x === b); }); 1092 render(); 1093 }); 1094 } 1095 1096 // ---- æåº ---- 1097 document.querySelectorAll('.vsort button').forEach(function (b) { 1098 b.addEventListener('click', function () { 1099 state.sort = b.dataset.sort; 1100 document.querySelectorAll('.vsort button').forEach(function (x) { x.classList.toggle('on', x === b); }); 1101 render(); 1102 }); 1103 }); 1104 1105 // ---- æç´¢(å»ç©ºæ ¼å¹é ,æ é¢å¸¦åé´ç©ºæ ¼ä¹è½æå°) ---- 1106 var search = document.getElementById('vSearch'); 1107 if (search) { 1108 var st = null; 1109 search.addEventListener('input', function () { 1110 clearTimeout(st); 1111 st = setTimeout(function () { state.q = search.value.trim(); render(); }, 180); 1112 }); 1113 } 1114 1115 // ---- ææ¾å¼¹çª ---- 1116 var modal = document.getElementById('vModal'); 1117 var frame = document.getElementById('vFrame'); 1118 var mTitle = document.getElementById('vTitle'); 1119 var mOpen = document.getElementById('vOpen'); 1120 function openPlayer(bvid, title) { 1121 if (!modal || !frame) return; 1122 frame.src = 'https://player.bilibili.com/player.html?bvid=' + encodeURIComponent(bvid) + '&autoplay=1&high_quality=1'; 1123 if (mTitle) mTitle.textContent = title || ''; 1124 if (mOpen) mOpen.href = 'https://www.bilibili.com/video/' + encodeURIComponent(bvid); 1125 modal.classList.add('open'); 1126 document.body.classList.add('locked'); 1127 } 1128 function closePlayer() { 1129 if (!modal) return; 1130 modal.classList.remove('open'); 1131 document.body.classList.remove('locked'); 1132 if (frame) frame.src = 'about:blank'; // åæ¢ææ¾ 1133 } 1134 if (grid) { 1135 grid.addEventListener('click', function (e) { 1136 var card = e.target.closest('.vcard'); 1137 if (!card) return; 1138 openPlayer(card.dataset.bvid, card.dataset.title); 1139 }); 1140 grid.addEventListener('keydown', function (e) { 1141 if ((e.key === 'Enter' || e.key === ' ') && e.target.classList.contains('vcard')) { 1142 e.preventDefault(); 1143 openPlayer(e.target.dataset.bvid, e.target.dataset.title); 1144 } 1145 }); 1146 } 1147 var mask = document.getElementById('vMask'); 1148 if (mask) mask.addEventListener('click', closePlayer); 1149 var vc = document.getElementById('vClose'); 1150 if (vc) vc.addEventListener('click', closePlayer); 1151 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') closePlayer(); }); 1152 1153 // ---- å ¥åºæ¸æ¾(容å¨ä¸æ é¢) ---- 1154 (function () { 1155 var els = document.querySelectorAll('.hero-copy, .vhcard, .vtoolbar, .vcount'); 1156 els.forEach(function (el) { el.classList.add('reveal'); }); 1157 requestAnimationFrame(function () { 1158 els.forEach(function (el, i) { el.style.transitionDelay = (i * 90) + 'ms'; el.classList.add('in'); }); 1159 }); 1160 })(); 1161 1162 fillHero(); 1163 render(); 1164})(); 1165</script>
vendor: 1 bytes, line 1165
1165
1166<script> 1167 // ===== ç»å½åºç»å®(ä¸é¦é¡µä¸è´:å¯¼èª + ç§»å¨ç«¯æ½å±ä¸¤å¤å ±ç¨) ===== 1168 function bindAuthPair(pbEl, abEl) { 1169 if (!pbEl && !abEl) return; 1170 var storedU = null; 1171 try { storedU = JSON.parse(localStorage.getItem('nb_user')); } catch (e) {} 1172 if (storedU && storedU.id) { 1173 if (abEl) { 1174 abEl.textContent = 'ç»åºè´¦å·'; 1175 abEl.onclick = function () { localStorage.removeItem('nb_user'); location.reload(); }; 1176 } 1177 if (pbEl) { 1178 pbEl.textContent = 'ð¤ ' + (storedU.username || storedU.name || '个人ä¸å¿'); 1179 pbEl.href = 'profile-Beta.html'; 1180 } 1181 } else { 1182 var loginHref = 'login-Beta.html?redirect=' + encodeURIComponent(location.href); 1183 if (abEl) { abEl.href = loginHref; abEl.textContent = 'ç»å½ / 注å'; } 1184 if (pbEl) { pbEl.href = loginHref; pbEl.textContent = 'ð¤ 个人ä¸å¿'; } 1185 } 1186 } 1187 bindAuthPair(document.getElementById('betaProfileBtn'), document.getElementById('betaAuthBtn')); 1188 bindAuthPair(document.getElementById('dProfileBtn'), document.getElementById('dAuthBtn')); 1189 1190 // ===== å¯¼èªæ å京æ¶é´(ä¸é¦é¡µä¸è´:UTC+8,æ¥æ+ç§) ===== 1191 (function () { 1192 var tEl = document.getElementById('bjTime'); 1193 var dEl = document.getElementById('bjDate'); 1194 if (!tEl) return; 1195 var fmtT = new Intl.DateTimeFormat('zh-CN', { 1196 timeZone: 'Asia/Shanghai', hour: '2-digit', minute: '2-digit', 1197 second: '2-digit', hour12: false, hourCycle: 'h23' 1198 }); 1199 var fmtD = new Intl.DateTimeFormat('zh-CN', { 1200 timeZone: 'Asia/Shanghai', year: 'numeric', month: '2-digit', 1201 day: '2-digit', weekday: 'short' 1202 }); 1203 function tick() { 1204 var now = new Date(); 1205 tEl.textContent = fmtT.format(now); 1206 if (dEl) dEl.textContent = fmtD.format(now).replace(/\//g, '.'); 1207 } 1208 tick(); 1209 setInterval(tick, 1000); 1210 })(); 1211 1212 // ===== å¯¼èªæ»å¨æ(å¸é¡¶å æ·±) + åå°é¡¶é¨æé® ===== 1213 (function () { 1214 var nav = document.querySelector('.nav'); 1215 var backTop = document.getElementById('backTop'); 1216 function onScroll() { 1217 var y = window.scrollY || document.documentElement.scrollTop; 1218 if (nav) nav.classList.toggle('scrolled', y > 10); 1219 if (backTop) backTop.classList.toggle('show', y > 700); 1220 } 1221 window.addEventListener('scroll', onScroll, { passive: true }); 1222 onScroll(); 1223 if (backTop) backTop.addEventListener('click', function () { 1224 window.scrollTo({ top: 0, behavior: 'smooth' }); 1225 }); 1226 })(); 1227 1228 // ===== å¤é´æ¨¡å¼åæ¢ ===== 1229 (function () { 1230 var btn = document.getElementById('themeBtn'); 1231 var root = document.documentElement; 1232 function isDark() { return root.classList.contains('dark'); } 1233 function render() { 1234 if (btn) { btn.textContent = isDark() ? 'âï¸' : 'ð'; btn.title = isDark() ? '忢尿¥é´æ¨¡å¼' : '忢å°å¤é´æ¨¡å¼'; } 1235 } 1236 function apply(dark) { 1237 root.classList.toggle('dark', dark); 1238 try { localStorage.setItem('theme', dark ? 'dark' : 'light'); } catch (e) {} 1239 render(); 1240 } 1241 if (btn) btn.addEventListener('click', function () { 1242 var dark = !isDark(); 1243 if (document.startViewTransition) { 1244 try { document.startViewTransition(function () { apply(dark); }); } catch (e) { apply(dark); } 1245 } else apply(dark); 1246 }); 1247 render(); 1248 })(); 1249 1250 // ===== ç§»å¨ç«¯æ½å± ===== 1251 (function () { 1252 var burger = document.getElementById('navBurger'); 1253 var drawer = document.getElementById('drawer'); 1254 var mask = document.getElementById('drawerMask'); 1255 var closeBtn = document.getElementById('drawerClose'); 1256 if (!burger || !drawer || !mask) return; 1257 function open() { drawer.classList.add('open'); mask.style.display = 'block'; document.body.classList.add('locked'); } 1258 function close() { drawer.classList.remove('open'); mask.style.display = 'none'; document.body.classList.remove('locked'); } 1259 burger.addEventListener('click', open); 1260 closeBtn.addEventListener('click', close); 1261 mask.addEventListener('click', close); 1262 drawer.querySelectorAll('a').forEach(function (a) { a.addEventListener('click', close); }); 1263 })(); 1264 1265 // ===== 鲿¥ç代ç (åè°è¯,é黿 æç¤º) ===== 1266 // éçé¨:URL å« ?dev=1 æ #dev å®å ¨æ¾è¡;妿¯æ window.__allowDevTools = true 1267 (function () { 1268 var DEV = window.__allowDevTools || 1269 /(?:^|[?&#])dev=1(?=&|#|$)/.test(location.href) || 1270 /#dev\b/.test(location.hash); 1271 if (DEV) return; 1272 document.addEventListener('keydown', function (e) { 1273 var k = e.keyCode || e.which; 1274 var ctrl = e.ctrlKey || e.metaKey; 1275 if (k === 123 || e.key === 'F12' || 1276 (ctrl && e.shiftKey && (k === 73 || k === 74 || k === 67)) ||
1277 (ctrl && k === 85)) { 1278 e.preventDefault(); 1279 e.stopPropagation(); 1280 return false; 1281 } 1282 }); 1283 document.addEventListener('contextmenu', function (e) { 1284 e.preventDefault(); 1285 return false; 1286 }); 1287 setInterval(function () { debugger; }, 600); 1288 })(); 1289</script>
vendor: 1 bytes, line 1289
1289
1290<script> 1291 // ===== é¼ æ /触æ¸ç¹æ:è·éå æ + ç¹å»æ³¢çº¹ä¸å½©è²ç²å(é¼ æ + 触å±é½å¯ç¨) ===== 1292 (function () { 1293 var mqFine = window.matchMedia ? window.matchMedia('(pointer: fine)') : null; 1294 var isFine = !!(mqFine && mqFine.matches); 1295 var canTouch = ('ontouchstart' in window) || 1296 !!(window.matchMedia && window.matchMedia('(pointer: coarse)').matches); 1297 var glow = document.createElement('div'); 1298 glow.className = 'ui-fx-glow'; 1299 document.body.appendChild(glow); 1300 var gx = -999, gy = -999, tx = -999, ty = -999; 1301 var colors = ['#3b82f6', '#8b5cf6', '#6366f1', '#06b6d4', '#f59e0b']; 1302 var lastTouch = 0, glowTimer = null; 1303 1304 // å æè·æ:æç²¾ç¡®æé(é¼ æ )å°±è·é¼ æ ,å¦åè·ææ 1305 if (isFine) { 1306 document.addEventListener('mousemove', function (e) { tx = e.clientX; ty = e.clientY; }); 1307 document.addEventListener('mouseenter', function () { glow.style.opacity = '1'; }); 1308 document.addEventListener('mouseleave', function () { glow.style.opacity = '0'; }); 1309 } 1310 if (canTouch) { 1311 document.addEventListener('touchstart', function (e) { 1312 var t = e.touches[0]; if (!t) return; 1313 tx = t.clientX; ty = t.clientY; 1314 if (gx < -100) { gx = tx; gy = ty; } // 馿¬¡å«ä»å±å¹è§è½æ»è¿æ¥ 1315 glow.style.opacity = '1'; 1316 if (glowTimer) { clearTimeout(glowTimer); glowTimer = null; } 1317 lastTouch = Date.now(); 1318 burst(t.clientX, t.clientY, 6, 0.75); 1319 }, { passive: true }); 1320 document.addEventListener('touchmove', function (e) { 1321 var t = e.touches[0]; if (!t) return; 1322 tx = t.clientX; ty = t.clientY; 1323 glow.style.opacity = '1'; 1324 }, { passive: true }); 1325 document.addEventListener('touchend', function () { 1326 if (glowTimer) clearTimeout(glowTimer); 1327 glowTimer = setTimeout(function () { glow.style.opacity = '0'; }, 380); 1328 }, { passive: true }); 1329 document.addEventListener('touchcancel', function () { glow.style.opacity = '0'; }, { passive: true }); 1330 } 1331 1332 var lx = -1e9, ly = -1e9; 1333 (function loop() { 1334 var k = isFine ? 0.14 : 0.32; // ææè·å¾ç´§ä¸äº 1335 gx += (tx - gx) * k; 1336 gy += (ty - gy) * k; 1337 // 鿢æ¶è·³è¿åå ¥:é¿å æ¯å¸§é夿¹ style ç½ç½è§¦åæ ·å¼è®¡ç® 1338 if (Math.abs(gx - lx) > 0.2 || Math.abs(gy - ly) > 0.2) { 1339 glow.style.left = gx + 'px'; 1340 glow.style.top = gy + 'px'; 1341 lx = gx; ly = gy; 1342 } 1343 requestAnimationFrame(loop); 1344 })(); 1345 1346 // ===== ç¹å»æ³¢çº¹ + 彩è²ç²å ===== 1347 function burst(x, y, count, scale) { 1348 var ring = document.createElement('div'); 1349 ring.style.cssText = 'position:fixed; left:' + x + 'px; top:' + y + 'px; width:12px; height:12px; border:2px solid rgba(59,130,246,.75); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%);'; 1350 document.body.appendChild(ring); 1351 setTimeout(function () { if (ring.parentNode) ring.remove(); }, 900); 1352 try { 1353 ring.animate([ 1354 { transform: 'translate(-50%,-50%) scale(1)', opacity: 0.9 }, 1355 { transform: 'translate(-50%,-50%) scale(' + (5.5 * scale) + ')', opacity: 0 } 1356 ], { duration: 600, easing: 'ease-out', fill: 'forwards' }); 1357 } catch (err) { ring.remove(); } 1358 for (var i = 0; i < count; i++) { 1359 var p = document.createElement('div'); 1360 var size = 4 + Math.random() * 6; 1361 var ang = Math.random() * Math.PI * 2; 1362 var dist = (28 + Math.random() * 52) * scale; 1363 p.style.cssText = 'position:fixed; left:' + x + 'px; top:' + y + 'px; width:' + size + 'px; height:' + size + 'px; border-radius:50%; background:' + colors[i % colors.length] + '; pointer-events:none; z-index:9999;'; 1364 document.body.appendChild(p); 1365 var dx = Math.cos(ang) * dist, dy = Math.sin(ang) * dist; 1366 var dur = 500 + Math.random() * 250; 1367 setTimeout(function (el) { 1368 return function () { if (el.parentNode) el.remove(); }; 1369 }(p), dur + 250); 1370 try { 1371 p.animate([ 1372 { transform: 'translate(0,0) scale(1)', opacity: 1 }, 1373 { transform: 'translate(' + dx + 'px,' + dy + 'px) scale(0.1)', opacity: 0 } 1374 ], { duration: dur, easing: 'cubic-bezier(0.15,0.8,0.25,1)', fill: 'forwards' }); 1375 } catch (err) { p.remove(); } 1376 } 1377 } 1378 // é¼ æ ç¹å» 1379 document.addEventListener('click', function (e) { 1380 if (Date.now() - lastTouch < 800) return; // 触æ¸åæµè§å¨ä¼è¡¥å click,å»é 1381 burst(e.clientX, e.clientY, 8, 1); 1382 }); 1383 })(); 1384</script>
vendor: 1 bytes, line 1384
1384
1385<script> 1386 // ===== å ¨ç«å ¬åæ¡:supabase REST 忬¡æå(æ éå è½½ SDK),失败éé»éè ===== 1387 (function () { 1388 var bar = document.getElementById('betaAnnounce'); 1389 var track = document.getElementById('baTrack'); 1390 if (!bar || !track) return; 1391 function esc(s) { 1392 return String(s).replace(/[&<>"']/g, function (m) { 1393 return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[m]; 1394 }); 1395 } 1396 function linkify(s) { 1397 return s.replace(/(https?:\/\/[^\s<>"']+)/g, '<a href="$1" target="_blank" rel="noopener noreferrer" style="color:var(--brand); text-decoration:underline;">$1</a>'); 1398 } 1399 fetch('https://pbaafgjkwdbwcmsikcmg.supabase.co/rest/v1/admin_config?select=value&key=eq.announcement', { 1400 headers: { 1401 'apikey': 'sb_publishable_tv7YVJEisnvs3hvU8ImYUw_b0p6bmRg', 1402 'Authorization': 'Bearer sb_publishable_tv7YVJEisnvs3hvU8ImYUw_b0p6bmRg' 1403 } 1404 }) 1405 .then(function (r) { return r.ok ? r.json() : null; }) 1406 .then(function (rows) { 1407 if (!rows || !rows.length) return; 1408 var raw = String(rows[0].value || '').trim(); 1409 if (!raw) return; 1410 bar.style.display = 'flex'; // å æ¾ç¤ºåæµé(display:none æ¶ offsetWidth æä¸º 0) 1411 var one = '<span class="ba-item">' + linkify(esc(raw)) + '</span>'; 1412 track.innerHTML = one; 1413 var item = track.querySelector('.ba-item'); 1414 var itemW = item ? item.offsetWidth : 0; 1415 if (itemW <= 0) return; 1416 var wrapEl = bar.querySelector('.ba-track-wrap'); 1417 var barW = wrapEl ? wrapEl.clientWidth : 0; 1418 var copies = Math.max(2, Math.ceil(barW / itemW) + 1); 1419 var all = ''; 1420 for (var ci = 0; ci < copies; ci++) all += '<span class="ba-item">' + linkify(esc(raw)) + '</span>'; 1421 track.innerHTML = all; 1422 var dur = Math.max(8, itemW / 45); 1423 if (track.animate) { 1424 track.animate( 1425 [{ transform: 'translateX(0)' }, { transform: 'translateX(-' + itemW + 'px)' }], 1426 { duration: dur * 1000, iterations: Infinity, easing: 'linear' } 1427 ); 1428 } 1429 }) 1430 .catch(function () {}); 1431 })(); 1432</script>
1432 1433
1434<script> 1435 // ===== å®å ¨å¼ºå¶éç»:æ¬å°æç¨æ·ä¿¡æ¯ä½æ ä¼è¯ä»¤ç => è§ä¸ºæªç»å½ ===== 1436 (function () { 1437 try { 1438 var u = localStorage.getItem('nb_user'); 1439 var s = localStorage.getItem('nb_session'); 1440 if (u && !s) { 1441 localStorage.removeItem('nb_user'); 1442 location.reload(); 1443 } 1444 } catch (e) {} 1445 })(); 1446</script>
1446 1447 1448
1449<script> 1450// ===== APP èªæ´æ°(ä» APP å çæ) ===== 1451(function () { 1452 var ua = navigator.userAgent || ''; 1453 var m = /NBChannelApp\/([0-9.]+)/i.exec(ua); 1454 if (!m) return; // 䏿¯ APP ç¯å¢,䏿æ°ç½é¡µç¨æ· 1455 var localVer = m[1]; 1456 var APK = '/download/NBChannel.apk'; 1457 1458 function cmp(a, b) { 1459 var x = String(a).split('.').map(Number), y = String(b).split('.').map(Number); 1460 for (var i = 0; i < 3; i++) { var p = x[i] || 0, q = y[i] || 0; if (p !== q) return p - q; } 1461 return 0; 1462 } 1463 1464 var checking = false; 1465 function check(manual) { 1466 if (checking) return; 1467 checking = true; 1468 fetch('/download/version.json?t=' + Date.now(), { cache: 'no-store' }) 1469 .then(function (r) { if (!r.ok) throw new Error('HTTP ' + r.status); return r.json(); }) 1470 .then(function (info) { 1471 checking = false; 1472 if (!info || !info.versionName) throw new Error('çæ¬ä¿¡æ¯ä¸å®æ´'); 1473 if (cmp(info.versionName, localVer) > 0) showBar(info, manual); 1474 else if (manual) toast('â å·²æ¯ææ°ç v' + localVer); 1475 }) 1476 .catch(function (e) { 1477 checking = false; 1478 if (manual) toast('æ£æ¥æ´æ°å¤±è´¥:' + e.message + '\nè¯·æ£æ¥ç½ç»åéè¯'); 1479 }); 1480 } 1481 1482 // ---- åºé¨æ´æ°æ¡ ---- 1483 function showBar(info, manual) { 1484 if (document.getElementById('nbUpdateBar')) return; 1485 var bar = document.createElement('div'); 1486 bar.id = 'nbUpdateBar'; 1487 bar.style.cssText = 'position:fixed;left:0;right:0;bottom:0;z-index:99999;' + 1488 'padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));' + 1489 'background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;' + 1490 'display:flex;align-items:center;gap:10px;font-size:.86rem;' + 1491 'box-shadow:0 -8px 28px rgba(0,0,0,.3);'; 1492 bar.innerHTML = 1493 '<div style="flex:1;line-height:1.6;min-width:0;">
1493' + 1494 '<b>åç°æ°çæ¬ v' + info.versionName + '</b><br>' + 1495 '<span style="opacity:.9;font-size:.78rem;">å½å v' + localVer + ' · ' + 1496 (info.note || 'ä¿®å¤ä¸ä¼å') + '</span>' + 1497 '</div>' + 1498 '<button id="nbUpdGo" style="background:#fff;color:#3b82f6;border:none;border-radius:999px;' + 1499 'padding:9px 18px;font-weight:800;font-family:inherit;font-size:.86rem;cursor:pointer;white-space:nowrap;">ç«å³æ´æ°</button>' + 1500 '<button id="nbUpdNo" style="background:transparent;border:none;color:#fff;opacity:.75;' + 1501 'font-size:1.05rem;cursor:pointer;padding:4px 6px;">â</button>'; 1502 document.body.appendChild(bar); 1503 document.getElementById('nbUpdNo').onclick = function () { bar.remove(); }; 1504 document.getElementById('nbUpdGo').onclick = function () { 1505 var b = this; 1506 b.textContent = 'ä¸è½½ä¸â¦'; b.disabled = true; b.style.opacity = '.8'; 1507 location.href = info.url || APK; 1508 setTimeout(function () { b.textContent = 'ç«å³æ´æ°'; b.disabled = false; b.style.opacity = '1'; }, 12000); 1509 }; 1510 } 1511 1512 // ---- è½»æç¤º ---- 1513 function toast(msg) { 1514 var t = document.createElement('div'); 1515 t.style.cssText = 'position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:99999;' + 1516 'background:rgba(15,23,42,.94);color:#fff;padding:14px 20px;border-radius:14px;' + 1517 'font-size:.86rem;line-height:1.7;max-width:80vw;text-align:center;white-space:pre-line;' + 1518 'box-shadow:0 12px 36px rgba(0,0,0,.4);'; 1519 t.textContent = msg; 1520 document.body.appendChild(t); 1521 setTimeout(function () { t.remove(); }, 2600); 1522 } 1523 1524 // ---- å¨å¯¼èªãæ´å¤åè½ã䏿 + ææºæ½å±éæ³¨å ¥å ¥å£ ---- 1525 function inject() { 1526 var panel = document.querySelector('.nav-more-panel'); 1527 if (panel && !panel.querySelector('[data-nb-upd]')) { 1528 var a = document.createElement('a'); 1529 a.href = 'javascript:void(0)'; 1530 a.setAttribute('data-nb-upd', '1'); 1531 a.textContent = 'ð æ£æ¥æ´æ°'; 1532 a.addEventListener('click', function (e) { 1533 e.preventDefault(); 1534 var more = document.querySelector('.nav-more'); 1535 if (more) more.classList.remove('open'); 1536 check(true); 1537 }); 1538 panel.insertBefore(a, panel.firstChild); 1539 } 1540 var authBox = document.querySelector('.drawer .d-auth'); 1541 if (authBox && !document.querySelector('[data-nb-upd-d]')) { 1542 var d = document.createElement('a'); 1543 d.className = 'd-item'; 1544 d.href = 'javascript:void(0)'; 1545 d.setAttribute('data-nb-upd-d', '1'); 1546 d.textContent = 'ð æ£æ¥æ´æ°(v' + localVer + ')'; 1547 d.addEventListener('click', function (e) { e.preventDefault(); check(true); }); 1548 authBox.parentNode.insertBefore(d, authBox); 1549 } 1550 } 1551 1552 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', inject); 1553 else inject(); 1554 setTimeout(inject, 1200); // å åº:å¯¼èªæ¯èæ¬æ¸²ææ¶åè¯ä¸æ¬¡ 1555 1556 // å¯å¨èªå¨æ¥ä¸æ¬¡,ä¹åæ¯ 30 åé 1557 setTimeout(function () { check(false); }, 2000); 1558 setInterval(function () { check(false); }, 30 * 60 * 1000); 1559})(); 1560</script>
1560 1561
1562<script> 1563/* ===== Android ä¸è®© Bç«é¾æ¥ä¼å æå¼ Bç« APP ===== */ 1564(function () { 1565 try { 1566 if (!/Android/i.test(navigator.userAgent)) return; // åªå¨å®å䏿¹,æ¡é¢/iPhone ä¿æåæ · 1567 function toIntent(href) { 1568 var m = href.match(/space\.bilibili\.com\/(\d+)/); 1569 if (!m) return null; 1570 // intent:// æ¯å®åä¸å±åè®®:è½æå¼ APP å°±æå¼,æä¸å¼å°±åéå° browser_fallback_url 1571 return 'intent://space/' + m[1] + '#Intent;scheme=bilibili;package=tv.danmaku.bili' + 1572 ';S.browser_fallback_url=' + encodeURIComponent(href) + ';end'; 1573 } 1574 function patch() { 1575 var links = document.querySelectorAll('a[href*="space.bilibili.com"]'); 1576 for (var i = 0; i < links.length; i++) { 1577 var a = links[i]; 1578 if (a.dataset.nbIntent) continue; 1579 var it = toIntent(a.getAttribute('href') || a.href); 1580 if (it) { a.setAttribute('href', it); a.dataset.nbIntent = '1'; } 1581 } 1582 } 1583 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', patch); 1584 else patch(); 1585 setTimeout(patch, 1500); 1586 } catch (e) {} 1587})(); 1588 1589/* ===== åå»è§é¢éºæ»¡å±å¹ ===== */ 1590(function () { 1591 try { 1592 var style = document.createElement('style'); 1593 style.textContent = 1594 'video.nb-fs{position:fixed!important;left:0!important;top:0!important;' + 1595 'width:100vw!important;height:100vh!important;max-width:100vw!important;' + 1596 'max-height:100vh!important;margin:0!important;border-radius:0!important;' + 1597 'z-index:99999!important;background:#000!important;object-fit:contain!important;}' + 1598 'body.nb-fs-lock{overflow:hidden!important;}'; 1599 document.head.appendChild(style); 1600 1601 var current = null; 1602 function exit() { 1603 if (!current) return; 1604 current.classList.remove('nb-fs'); 1605 document.body.classList.remove('nb-fs-lock'); 1606 current = null; 1607 } 1608 function enter(v) { 1609 exit(); 1610 v.classList.add('nb-fs'); 1611 document.body.classList.add('nb-fs-lock'); 1612 current = v; 1613 try { v.play(); } catch (e) {} 1614 } 1615 // åå»:è¿/åºå ¨å± 1616 document.addEventListener('dblclick', function (e) { 1617 var v = e.target && e.target.closest ? e.target.closest('video') : null; 1618 if (!v) return; 1619 e.preventDefault(); 1620 if (current === v) exit(); else enter(v); 1621 }, true); 1622 // å ¨å±ç¶æä¸ç¹ç©ºç½å¤/æ Esc éåº 1623 document.addEventListener('click', function (e) { 1624 if (current && !(e.target.closest && e.target.closest('video'))) exit(); 1625 }, true); 1626 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') exit(); }); 1627 // 页é¢åæ¢/尺寸ååæ¶å åº 1628 window.addEventListener('resize', function () { if (current) exit(); }); 1629 } catch (e) {} 1630})(); 1631</script>
1631 1632 1633<!-- 1634 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1635 NB-CHANNEL ORIGINAL · æ¬é¡µé¢ç± NBé¢é ååå¶ä½ 1636 æå»ºæçº¹ NBC-20261001-B1C0E3BE2CC9 1637 宿¹åå nb-channel.top ï¼github. / cloudflare. / edgeone. / pythonanywhere.ï¼ 1638 å¦æä½ å¨å ¶ä»ååçå°æ¬é¡µï¼è¯´æè¯¥ç«ç¹æªç»ææå¤å¶äº NBé¢é çå å®¹ï¼ 1639 欢è¿ä¸¾æ¥ï¼[email protected] 1640 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1641--> 1642
1643<script>/* æå»ºå ä¿¡æ¯ï¼è¯·å¿å é¤ï¼ä¾µæåè¯ç¨ï¼ */ 1644(function () { 1645 try { 1646 var _nb = "TkJDLTIwMjYxMDAxLUIxQzBFM0JFMkNDOQ"; 1647 if (typeof window !== "undefined") window.__nbBuild = _nb; 1648 } catch (e) {} 1649})(); 1650</script>
vendor: 1 bytes, line 1650
1650
1651<script defer src="../js/science-tips.js?v=26"></script>
vendor: 1 bytes, line 1651
1651
1652<script src="../js/pomodoro.js?v=7" defer></script>
vendor: 1 bytes, line 1652
1652
1653<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2694d6c1b70c42ee8414dc6303584599","r":1,"spa":2}' crossorigin="anonymous"></script>
1653 1654</body> 1655</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.