1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 <title>The Neighbourhood - Wourld Tour</title> 7 <link rel="icon" type="image/png" href="/images/housefavicon.png" /> 8 9 <!-- Tracking pixels loaded via consent system - see src/services/cookieConsent.ts --> 10 11 <style> 12 /* Removed corrupted PixelFont.ttf - using system monospace fallback */ 13 @font-face { 14 font-family: 'RoadgeekEM'; 15 src: url('/fonts/RG2014EM.ttf') format('truetype'); 16 font-weight: normal; 17 font-style: normal; 18 font-display: swap; 19 } 20 @font-face { 21 font-family: 'RoadgeekEE'; 22 src: url('/fonts/RG2014EEM.ttf') format('truetype'); 23 font-weight: normal; 24 font-style: normal; 25 font-display: swap; 26 } 27 html, body, #app { 28 height: 100%; 29 margin: 0; 30 padding: 0; 31 /* Disable text selection and touch behaviors that interfere with gameplay */ 32 -webkit-user-select: none; 33 -moz-user-select: none; 34 -ms-user-select: none; 35 user-select: none; 36 -webkit-touch-callout: none; 37 -webkit-tap-highlight-color: transparent; 38 touch-action: manipulation;
39 overscroll-behavior: none; 40 } 41 body { background: #000; color: #fff; font-family: 'RoadgeekEM', 'RoadgeekEE', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; } 42 canvas { 43 display: block; 44 position: fixed; 45 inset: 0; 46 z-index: 1; 47 /* Prevent touch interference on canvas */ 48 touch-action: none; 49 } 50 .overlay { 51 position: fixed; 52 inset: 0; 53 display: flex; 54 align-items: center; 55 justify-content: center; 56 background: rgba(0,0,0,0.6); 57 z-index: 2; 58 overflow-y: auto; 59 padding: 16px; 60 } 61 .panel { 62 width: 380px; 63 max-width: 100%; 64 background: rgba(20,20,20,0.9); 65 border: 1px solid #333; 66 border-radius: 12px; 67 padding: 16px; 68 box-shadow: 0 10px 40px rgba(0,0,0,0.5); 69 margin: auto; 70 } 71 .field { display: flex; gap: 8px; margin-top: 8px; } 72 .panel input:not([type="checkbox"]) { 73 flex: 1; 74 min-width: 0; 75 padding: 10px 12px; 76 border-radius: 8px; 77 border: 1px solid #333; 78 background: #111; 79 color: #fff; 80 box-sizing: border-box; 81 /* Re-enable text selection in form inputs */ 82 -webkit-user-select: text; 83 -moz-user-select: text; 84 -ms-user-select: text; 85 user-select: text; 86 } 87 .panel input::placeholder { color: #bfbfbf; } 88 .panel .field button { flex: 1; } 89 button { padding: 10px 12px; border-radius: 8px; border: 1px solid #444; background: #1e1e1e; color: #fff; cursor: pointer; font-family: inherit; transition: all 0.2s; } 90 button:hover { background: #2a2a2a; } 91 92 /* Button variants */ 93 .button-row { margin-top: 16px; } 94 button.primary { background: #2563eb; border-color: #1d4ed8; font-weight: 500; } 95 button.primary:hover { background: #1d4ed8; } 96 button.secondary { background: #1e1e1e; border-color: #444; } 97 button.secondary:hover { background: #2a2a2a; } 98 button.tertiary { background: transparent; border-color: #333; opacity: 0.7; font-size: 13px; } 99 button.tertiary:hover { opacity: 1; background: rgba(255,255,255,0.05); } 100 101 .muted { opacity: 0.7; font-size: 14px; margin-top: 24px; } 102 .hidden { display: none; } 103 .checkbox-field { align-items: flex-start; margin-top: 16px; } 104 .checkbox-field label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; } 105 .checkbox-field input[type="checkbox"] { 106 margin-top: 2px; 107 cursor: pointer; 108 flex-shrink: 0; 109 width: 16px; 110 height: 16px; 111 accent-color: #4a9eff; /* Bright blue accent for better visibility */ 112 background-color: rgba(255, 255, 255, 0.1); 113 border: 1px solid rgba(255, 255, 255, 0.3); 114 border-radius: 3px; 115 } 116 .checkbox-field input[type="checkbox"]:checked { 117 background-color: #4a9eff; 118 border-color: #4a9eff; 119 } 120 .checkbox-field span { font-size: 11px; line-height: 1.4; opacity: 0.85; } 121 .checkbox-field a { color: #8ab4ff; text-decoration: none; } 122 .checkbox-field a:hover { text-decoration: underline; } 123 124 /* Line break control for form heading */ 125 .panel h3 .mobile-break { display: inline; } 126 @media (max-width: 768px) { 127 .panel h3 { 128 font-size: 16px; /* Smaller font on mobile to fit on one line */ 129 } 130 .panel h3 .mobile-break { display: inline; } /* Keep on one line on mobile */ 131 } 132 133 /* Mobile form adjustments */ 134 @media (max-width: 768px) { 135 .panel { 136 padding: 12px; 137 border-radius: 8px; 138 } 139 140 .panel input:not([type="checkbox"]) { 141 padding: 8px 10px; 142 font-size: 14px; 143 } 144 145 button { 146 padding: 8px 10px; 147 font-size: 14px; 148 } 149 150 .checkbox-field input[type="checkbox"] { 151 width: 20px; 152 height: 20px; 153 border: 2px solid rgba(255, 255, 255, 0.4); 154 } 155 156 .checkbox-field input[type="checkbox"]:checked { 157 background-color: #5aa3ff; 158 border-color: #5aa3ff; 159 } 160 161 .checkbox-field span { 162 font-size: 10px; 163 } 164 165 .muted { 166 font-size: 12px; 167 margin-top: 16px; 168 } 169 } 170 #seated-overlay { 171 position: fixed; 172 inset: 0; 173 background: rgba(0,0,0,0.92); 174 z-index: 5; 175 display: none; 176 overflow-y: auto; 177 overflow-x: hidden; 178 /* Re-enable text selection in tour overlay */ 179 -webkit-user-select: text; 180 -moz-user-select: text;
181 -ms-user-select: text; 182 user-select: text; 183 touch-action: auto; 184 } 185 #seated-overlay .close { 186 position: absolute; 187 top: 24px; 188 right: 24px; 189 z-index: 6; 190 font-family: 'RoadgeekEM', sans-serif; 191 background: transparent; 192 border: none; 193 color: #fff; 194 font-size: clamp(14px, 1.5vw, 18px); 195 cursor: pointer; 196 text-transform: uppercase; 197 letter-spacing: 0.5px; 198 padding: 8px 0; 199 border-bottom: 2px solid transparent; 200 transition: border-color 0.2s; 201 border-radius: 0; /* Remove any button border radius */ 202 outline: none; /* Remove focus outline */ 203 -webkit-appearance: none; /* Remove iOS button styling */ 204 appearance: none; /* Remove default button appearance */ 205 } 206 #seated-overlay .close:hover { border-bottom-color: #fff; } 207 #seated-overlay .shop-link { 208 display: inline-block; 209 color: #fff; 210 text-decoration: none; 211 font-family: 'RoadgeekEM', sans-serif; 212 font-size: clamp(14px, 1.5vw, 18px); 213 text-transform: uppercase; 214 letter-spacing: 0.5px; 215 padding: 8px 0; 216 border-bottom: 2px solid transparent; 217 transition: border-color 0.2s; 218 } 219 #seated-overlay .shop-link:hover { 220 border-bottom-color: #fff; 221 } 222 /* Globe container */ 223 #globe-container { 224 background: transparent; 225 height: 800px !important; 226 max-width: 1000px; 227 margin: 0 auto; 228 } 229 230 /* Globe canvas should scroll with content, not be fixed */ 231 #globe-container canvas { 232 position: relative !important; 233 inset: auto !important; 234 } 235 236 /* Tour dates positioned below globe with reduced spacing */ 237 #seated-55fdf2c0 { 238 margin-top: -20px !important; 239 } 240 241 /* Mobile responsive globe and tour dates */ 242 @media (max-width: 768px) { 243 #globe-container { 244 height: 400px !important; 245 max-width: 100%; 246 } 247 248 #seated-55fdf2c0 { 249 margin-top: 10px !important; 250 } 251 252 /* Stack tour dates in single column on mobile */ 253 .tour-list-columns { 254 grid-template-columns: 1fr !important; 255 } 256 257 /* Reduce padding on mobile */ 258 .tour-list { 259 padding: 8px 12px; 260 } 261 262 /* Mobile: compact single-line layout with controlled widths */ 263 .tour-row { 264 font-size: 10px; 265 gap: 0px; 266 } 267 268 .tour-date { 269 font-size: 10px; 270 min-width: fit-content; 271 flex-shrink: 0; 272 margin-right: -3px; 273 } 274 275 .tour-venue { 276 font-size: 10px; 277 flex: 0 1 auto; /* Don't grow, can shrink, auto size */ 278 min-width: 0; 279 overflow: hidden; 280 text-overflow: ellipsis; 281 white-space: nowrap; 282 margin-left: -3px; 283 margin-right: 3px; /* Add space after venue */ 284 } 285 286 .tour-location { 287 font-size: 10px; 288 flex: 0 1 auto; /* Don't grow, can shrink, auto size */ 289 min-width: 0; 290 overflow: hidden; 291 text-overflow: ellipsis; 292 white-space: nowrap; 293 } 294 295 .tour-row > .tour-dots { 296 margin: 0 0px !important; 297 margin-left: -42px !important; /* Adjusted to pull content left and prevent button cutoff */ 298 min-width: 5px !important; 299 flex-shrink: 2; /* Shrink dots more than other elements */ 300 overflow: hidden; 301 white-space: nowrap; 302 } 303 304 .tour-link { 305 font-size: 8px !important; 306 padding: 4px 5px !important; 307 min-width: 36px !important; 308 max-width: 36px !important; 309 width: 36px !important; 310 line-height: 1.2 !important; 311 display: inline-flex !important; 312 align-items: center !important; 313 justify-content: center !important; 314 margin-left: 5.5px !important; 315 margin-right: 0px !important; 316 flex-shrink: 0 !important; 317 flex-grow: 0 !important; 318 } 319 .tour-link.tour-vip { 320 min-width: 22px !important; 321 max-width: 22px !important; 322 width: 22px !important; 323 margin-left: 2px !important; 324 padding: 4px 2px !important; 325 } 326 327 /* Dynamic sizing for longer text */ 328 .tour-row.long-text .tour-venue, 329 .tour-row.long-text .tour-location { 330 font-size: 9px; 331 } 332 333 .tour-support { 334 font-size: 8px;
335 margin-top: 1px; 336 } 337 338 /* Stack header buttons on smaller screens */ 339 #seated-overlay .shop-link { 340 top: 12px !important; 341 left: 12px !important; 342 font-size: 11px !important; 343 padding: 6px 0 !important; 344 } 345 346 #seated-overlay .close { 347 top: 12px !important; 348 right: 12px !important; 349 font-size: 11px !important; 350 padding: 6px 0 !important; 351 } 352 } 353 354 /* Extra small mobile screens */ 355 @media (max-width: 480px) { 356 /* Stack header buttons vertically to prevent overlap */ 357 #seated-overlay .shop-link { 358 top: 8px !important; 359 left: 8px !important; 360 right: 8px !important; 361 text-align: center; 362 font-size: 10px !important; 363 } 364 365 #seated-overlay .close { 366 top: 36px !important; 367 left: 8px !important; 368 right: 8px !important; 369 text-align: center; 370 font-size: 10px !important; 371 } 372 373 /* Adjust container padding to account for stacked headers */ 374 #seated-overlay > div { 375 padding: 8px !important; 376 margin-top: 64px !important; 377 } 378 } 379 380 /* Fallback tour list styling - poster aesthetic */ 381 .tour-list { 382 padding: 12px 24px; 383 max-width: 100%; 384 overflow-x: hidden; 385 } 386 .tour-list-columns { 387 display: grid; 388 grid-template-columns: 1fr 1fr; 389 grid-auto-flow: column; 390 grid-template-rows: repeat(var(--row-count, 10), auto); 391 gap: 8px clamp(16px, 2.5vw, 32px); 392 max-width: 100%; 393 } 394 395 /* Collapse to single column on medium/smaller screens - increased from 1024px to 1280px */ 396 @media (max-width: 1280px) { 397 .tour-list-columns { 398 grid-template-columns: 1fr !important; 399 grid-auto-flow: row !important; 400 grid-template-rows: auto !important; 401 } 402 } 403 .tour-row { 404 display: flex; 405 align-items: baseline; 406 gap: clamp(1px, 0.3vw, 3px); 407 color: #fff; 408 font-size: clamp(12px, 1.3vw, 16px); 409 line-height: 1.5; 410 padding: 0; 411 } 412 .tour-row-wrapper { 413 border-bottom: 1px solid rgba(255,255,255,0.1); 414 padding: 6px 0; 415 } 416 .tour-row-wrapper:last-child { border-bottom: none; } 417 .tour-row-wrapper .tour-link { 418 transform: translateY(35%); 419 } 420 .tour-support { 421 display: flex; 422 align-items: baseline; 423 font-family: 'RoadgeekEE', sans-serif; 424 font-size: clamp(9px, 0.9vw, 12px); 425 color: rgba(255,255,255,0.5); 426 margin-top: 2px; 427 line-height: 1.3; 428 } 429 .tour-support-text { 430 white-space: nowrap; 431 flex-shrink: 0; 432 font-style: italic; 433 } 434 .tour-support .tour-dots { 435 flex: 1; 436 min-width: 15px; 437 transform: translateY(-1px); 438 } 439 .tour-date { font-family: 'RoadgeekEM', sans-serif; white-space: nowrap; flex-shrink: 0; margin-right: -2px; } 440 .tour-venue { 441 font-family: 'RoadgeekEE', sans-serif; 442 white-space: nowrap; 443 flex-shrink: 0; 444 margin-left: -2px; 445 } 446 .tour-location { 447 font-family: 'RoadgeekEM', sans-serif; 448 opacity: 0.8; 449 white-space: nowrap; 450 flex-shrink: 0; 451 } 452 .tour-dots { 453 flex: 1; 454 border-bottom: 2px dotted rgba(255,255,255,0.2); 455 transform: translateY(-2px); 456 margin: 0 clamp(1px, 0.3vw, 2px); 457 min-width: 15px; 458 } 459 .tour-link { 460 margin-left: 12px; 461 color: #fff; 462 text-decoration: none; 463 font-family: 'RoadgeekEM', sans-serif; 464 font-size: clamp(9px, 1vw, 12px); 465 padding: 3px clamp(5px, 0.8vw, 10px); 466 border: 1px solid #fff; 467 border-radius: 2px; 468 transition: all 0.2s; 469 white-space: nowrap; 470 flex-shrink: 0; 471 align-self: baseline; 472 min-width: 70px; 473 text-align: center; 474 } 475 .tour-link:hover { background: #fff; color: #000; } 476 .tour-link.tour-vip { 477 margin-left: 4px; 478 min-width: auto; 479 padding: 3px 6px; 480 border: 1px solid transparent; 481 border-image: linear-gradient(135deg, #d4a844, #f5d98a, #c4923a) 1; 482 color: #d4af37; 483 background: transparent; 484 border-radius: 0; 485 } 486 .tour-link.tour-vip:hover { 487 background: linear-gradient(135deg, #d4a844, #f5d98a, #c4923a); 488 color: #000; 489 border-image: none; 490 } 491 .tour-link.sold-out { 492 background: #c41e1e; 493 border-color: #c41e1e; 494 color: #fff !important; 495 display: inline-flex; 496 align-items: center; 497 justify-content: center; 498 padding-top: 3px; 499 padding-bottom: 3px; 500 } 501 .tour-link.sold-out:hover { 502 background: #a01818; 503 border-color: #a01818; 504 color: #fff !important; 505 } 506 .tour-link .label-mobile { display: none; } 507 .tour-link .label-desktop { display: inline; } 508 @media (max-width: 768px) { 509 .tour-link .label-mobile { display: inline; } 510 .tour-link .label-desktop { display: none; } 511 } 512 .brand-logo { display: block; height: 56px; width: auto; margin: 12px auto 24px auto; } 513 /* Seated widget font overrides (disabled by default; add class to enable) */ 514 body.widget-font-override #seated-55fdf2c0, body.widget-font-override #seated-55fdf2c0 * { 515 font-family: 'RoadgeekEM', 'RoadgeekEE', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif !important; 516 } 517 /* Seated widget layout/theme overrides to resemble fallback list */ 518 body.widget-style-override #seated-55fdf2c0 { color: #fff; font-size: clamp(14px, 1.5vw, 18px); line-height: 1.35; } 519 body.widget-style-override #seated-55fdf2c0 a { color: #8ab4ff; text-decoration: none; } 520 body.widget-style-override #seated-55fdf2c0 a:hover { text-decoration: underline; } 521 /* Try to normalize rows to our layout */ 522 body.widget-style-override #seated-55fdf2c0 li, 523 body.widget-style-override #seated-55fdf2c0 .event, 524 body.widget-style-override #seated-55fdf2c0 [class*="Event"], 525 body.widget-style-override #seated-55fdf2c0 [class*="event"] { 526 display: flex; 527 align-items: baseline; 528 gap: 8px; 529 padding: 6px 0; 530 } 531 /* Date column styling */ 532 body.widget-style-override #seated-55fdf2c0 time, 533 body.widget-style-override #seated-55fdf2c0 .date, 534 body.widget-style-override #seated-55fdf2c0 [class*="date"], 535 body.widget-style-override #seated-55fdf2c0 [class*="Date"] { 536 font-family: 'RoadgeekEM', sans-serif; 537 min-width: 64px; 538 } 539 /* Venue/Location styling */ 540 body.widget-style-override #seated-55fdf2c0 .venue, 541 body.widget-style-override #seated-55fdf2c0 [class*="venue"], 542 body.widget-style-override #seated-55fdf2c0 [class*="Venue"] { 543 font-family: 'RoadgeekEE', sans-serif; 544 } 545 body.widget-style-override #seated-55fdf2c0 .location, 546 body.widget-style-override #seated-55fdf2c0 [class*="location"], 547 body.widget-style-override #seated-55fdf2c0 [class*="Location"] { 548 font-family: 'RoadgeekEM', sans-serif; 549 opacity: 0.95; 550 } 551 /* Tickets link */ 552 body.widget-style-override #seated-55fdf2c0 a[href*="ticket" i], 553 body.widget-style-override #seated-55fdf2c0 a[title*="Ticket" i] { 554 margin-left: clamp(8px, 1vw, 12px); 555 font-family: 'RoadgeekEM', sans-serif; 556 font-size: clamp(12px, 1.3vw, 16px); 557 } 558 /* Dotted leader approximation: add a dotted line between first and last columns when feasible */ 559 body.widget-style-override #seated-55fdf2c0 li::after, 560 body.widget-style-override #seated-55fdf2c0 .event::after, 561 body.widget-style-override #seated-55fdf2c0 [class*="Event"]::after, 562 body.widget-style-override #seated-55fdf2c0 [class*="event"]::after { 563 content: ''; 564 flex: 1; 565 border-bottom: 2px dotted rgba(255,255,255,0.35); 566 transform: translateY(-2px); 567 margin: 0 6px; 568 } 569 </style> 570
570<script type="module" crossorigin src="/assets/index-DtmQrRDo.js"></script>
570 571 </head> 572 <body> 573 <!-- Note: Tracking pixels require JavaScript and user consent (GDPR) --> 574 575 <div id="app"></div> 576 <div id="seated-overlay"> 577 <a href="https://shop.thenbhd.com" target="_blank" rel="noopener noreferrer" class="shop-link" style="position: absolute; top: 24px; left: 24px; z-index: 6;">Visit The Shop</a> 578 <a href="https://nbhd.lnk.to/newsletter" target="_blank" rel="noopener noreferrer" class="close" style="text-decoration: none;">Stay Up To Date With The Neighbourhood</a> 579 <div style="max-width:1400px; margin:0 auto; padding: 12px 12px 80px 12px;"> 580 <div id="globe-container" style="width: 100%; position: relative; pointer-events: none;"></div> 581 <div id="seated-55fdf2c0" data-artist-id="2ab05b88-0d23-4c35-af9f-21eb5442843b" data-css-version="3"></div> 582 <div style="text-align: right; padding: 16px 0 0 0;"> 583 <a href="#" id="privacy-link" style="font-family: 'RoadgeekEM', sans-serif; font-size: 10px; color: rgba(255,255,255,0.35); text-decoration: none; letter-spacing: 0.5px;">Privacy</a> 584 </div> 585 </div> 586 </div> 587 </body> 588 </html> 589 590
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.