/* bg.css: CSD background graphics (FIX-C, 2026-10-10). Generated by
   /Users/joshuakimmes/Claude/_clients/crawl-space-doctors/forge-web/mockup-redteam-2026-10/work/bg/gen_bg.py
   Four motifs from the crawl space itself, drawn as masks so colour and weight are tokens:
   .bg-joists  section drawing: subfloor, joists end-on, girder, brick piers, grade, vapor barrier, 18 IN clearance
   .bg-contour humidity isolines around one wet spot, the 20% line dashed and tagged
   .bg-seams   long taped liner seams
   .bg-brick   the hatch's brick foundation course, as a top edge
   Add .bg--dark on ink sections. One motif per section, never on adjacent sections of the same family. */
:root{
  --bg-c:var(--ink);        /* motif colour on light grounds */
  --bg-c-dark:var(--paper); /* motif colour on dark grounds */
  --bg-w:.22;               /* weight on light grounds (raised 2026-10-10, Josh: needs to read) */
  --bg-w-dark:.16;          /* weight on dark grounds */
  --bgm-joists:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22768%22 height=%22200%22 viewBox=%220 0 768 200%22%3E%3Cpath d=%22M0 6H768M0 12H768M0 22H768%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Crect x=%2226%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M26 22L38 76M38 22L26 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%2290%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M90 22L102 76M102 22L90 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22154%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M154 22L166 76M166 22L154 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22218%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M218 22L230 76M230 22L218 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22282%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M282 22L294 76M294 22L282 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22346%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M346 22L358 76M358 22L346 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22410%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M410 22L422 76M422 22L410 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22474%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M474 22L486 76M486 22L474 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22538%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M538 22L550 76M550 22L538 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22602%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M602 22L614 76M614 22L602 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22666%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M666 22L678 76M678 22L666 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22730%22 y=%2222%22 width=%2212%22 height=%2254%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M730 22L742 76M742 22L730 76%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M0 76H768M0 102H768%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M0 84.5H768M0 93.5H768%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 102V178M192 102V178%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M144 111H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M168 102V111%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 120H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M156 111V120%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M180 111V120%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 129H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M168 120V129%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 138H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M156 129V138%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M180 129V138%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 147H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M168 138V147%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 156H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M156 147V156%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M180 147V156%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 165H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M168 156V165%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 174H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M156 165V174%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M180 165V174%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M144 178H192%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M168 174V178%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22132%22 y=%22178%22 width=%2272%22 height=%2212%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M528 102V178M576 102V178%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M528 111H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M552 102V111%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 120H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M540 111V120%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M564 111V120%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 129H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M552 120V129%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 138H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M540 129V138%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M564 129V138%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 147H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M552 138V147%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 156H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M540 147V156%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M564 147V156%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 165H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M552 156V165%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 174H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M540 165V174%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M564 165V174%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M528 178H576%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Cpath d=%22M552 174V178%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.8%22/%3E%3Crect x=%22516%22 y=%22178%22 width=%2272%22 height=%2212%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M0 162H144M192 162H528M576 162H768%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cpath d=%22M4 166l-6 6M15 166l-6 6M30 166l-5 5M41 166l-7 7M52 166l-6 6M67 166l-5 5M82 166l-5 5M93 166l-5 5M106 166l-6 6M117 166l-5 5M128 166l-7 7M196 166l-5 5M211 166l-5 5M222 166l-7 7M237 166l-7 7M248 166l-7 7M263 166l-6 6M274 166l-5 5M285 166l-7 7M296 166l-6 6M309 166l-5 5M324 166l-5 5M339 166l-6 6M354 166l-7 7M365 166l-5 5M380 166l-7 7M395 166l-5 5M408 166l-5 5M423 166l-7 7M434 166l-7 7M445 166l-7 7M456 166l-6 6M471 166l-7 7M484 166l-6 6M497 166l-7 7M510 166l-6 6M580 166l-5 5M591 166l-7 7M602 166l-5 5M617 166l-6 6M632 166l-6 6M645 166l-7 7M658 166l-6 6M673 166l-5 5M684 166l-7 7M697 166l-5 5M710 166l-5 5M723 166l-6 6M734 166l-7 7M745 166l-7 7M760 166l-6 6%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.9%22/%3E%3Cpath d=%22M0 158H140V128M196 128V158H524V128M580 128V158H768%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22 stroke-dasharray=%2212 5%22/%3E%3Cpath d=%22M360 104V156M354 104H366M354 156H366%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.9%22/%3E%3Ctext x=%22372%22 y=%22137%22 font-family=%22Arial,Helvetica,sans-serif%22 font-size=%2212%22 font-weight=%22700%22 letter-spacing=%22.5%22%3E18 IN%3C/text%3E%3C/svg%3E");
  --bgm-contour:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%221000%22 height=%22800%22 viewBox=%220 0 1000 800%22%3E%3Cpath d=%22M587 400C585 403 583 405 581 407C580 410 578 412 577 414C576 416 575 419 574 421C573 424 572 427 569 429C567 431 565 433 562 435C558 436 555 437 551 438C548 439 544 439 540 439C536 439 532 439 529 439C525 438 521 437 518 436C514 435 511 434 508 432C505 430 503 427 501 424C499 422 498 419 497 416C496 413 496 411 495 408C495 405 494 403 494 400C494 397 494 395 494 392C495 389 495 386 497 384C498 381 500 379 502 376C504 374 507 372 510 370C513 369 516 367 519 366C522 365 526 364 529 364C533 363 537 363 540 363C543 364 547 364 550 365C554 365 557 366 561 367C564 367 568 368 572 369C575 370 579 372 582 374C585 376 588 378 590 381C591 384 592 388 591 391C591 394 589 397 587 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.4%22/%3E%3Cpath d=%22M631 400C627 405 622 410 619 414C616 419 614 422 612 427C610 432 609 437 607 442C604 447 602 452 598 457C594 461 588 466 582 469C576 472 569 474 562 475C555 476 547 476 540 477C533 477 525 477 518 476C511 475 503 474 496 471C489 469 482 466 477 462C472 458 467 453 464 448C460 442 459 437 457 431C455 426 454 421 453 416C452 410 451 405 450 400C450 395 450 389 450 384C451 379 453 373 455 368C458 363 462 358 466 354C470 350 476 346 481 342C487 339 493 336 499 334C506 332 512 330 519 329C526 328 533 328 540 329C547 329 553 330 560 331C567 332 573 333 580 334C587 336 595 337 602 339C609 341 618 344 624 348C629 352 635 357 638 363C641 369 641 376 640 382C638 388 634 395 631 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.4%22/%3E%3Cpath d=%22M673 400C667 408 660 414 655 421C651 427 648 433 645 440C643 447 642 454 639 462C636 469 633 478 627 485C621 492 612 499 603 503C594 508 583 510 573 512C562 514 551 514 540 515C529 515 518 515 507 513C496 512 484 510 474 507C464 503 454 498 446 492C438 486 432 478 427 471C422 463 420 454 417 446C414 438 413 431 411 423C410 415 408 408 407 400C406 392 405 384 407 376C408 368 410 360 414 352C418 345 423 338 430 331C436 325 444 319 452 314C461 309 470 305 479 301C489 298 499 296 509 295C519 293 530 293 540 294C550 294 560 296 570 297C580 298 590 300 601 302C611 304 623 305 634 308C645 312 657 315 666 322C675 328 683 336 686 345C690 354 690 365 687 374C685 383 678 392 673 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.4%22/%3E%3Cpath d=%22M713 400C705 410 696 418 690 427C684 435 681 443 678 452C675 461 676 472 672 482C668 493 664 505 656 514C649 523 637 532 625 538C613 544 598 547 584 550C570 552 555 553 540 553C525 553 510 553 496 551C481 549 466 547 452 542C439 538 425 531 415 523C405 514 397 503 390 493C384 483 381 471 378 461C375 451 373 440 371 430C368 420 365 410 364 400C363 390 361 379 363 368C364 358 367 347 372 337C377 327 385 317 393 309C402 300 413 292 424 286C435 279 447 274 459 269C472 265 486 262 499 260C513 259 527 259 540 259C553 260 566 262 580 263C593 265 607 266 621 269C635 271 651 272 666 277C680 281 697 286 709 295C720 303 731 315 735 326C740 338 738 353 734 365C731 378 720 390 713 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.4%22/%3E%3Cpath d=%22M751 400C742 413 730 422 723 433C716 443 714 453 711 464C708 476 709 490 705 503C701 516 696 532 686 544C677 555 662 566 647 573C632 581 613 585 595 588C577 591 558 591 540 592C522 592 503 592 485 590C466 587 447 584 430 578C413 572 397 563 384 553C372 542 362 529 355 516C347 503 344 488 340 475C336 462 333 450 330 437C327 425 323 413 321 400C319 387 317 374 319 361C320 347 324 333 330 321C337 309 346 297 357 286C368 275 381 266 395 258C409 249 424 242 440 237C455 232 472 228 489 226C506 224 523 224 540 225C557 225 573 228 590 229C607 231 623 233 642 235C660 238 680 239 699 244C717 250 738 257 753 267C767 278 780 293 784 308C789 323 786 342 780 357C775 372 761 387 751 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-dasharray=%2210 6%22/%3E%3Cpath d=%22M787 400C776 415 762 426 754 438C747 451 746 462 743 476C741 491 744 508 739 524C735 540 729 560 717 574C706 588 688 601 669 610C651 618 628 623 606 626C585 630 562 630 540 631C518 631 495 631 473 628C451 626 428 622 408 614C388 607 368 596 353 583C339 570 328 553 319 538C311 522 307 505 302 489C298 474 294 459 291 445C287 430 281 415 279 400C276 385 273 368 275 353C276 337 281 320 288 305C296 290 308 276 321 263C334 251 349 239 366 229C383 220 401 211 420 205C439 199 459 194 479 192C499 189 520 190 540 190C560 191 579 193 600 195C620 197 641 198 663 201C685 204 710 205 732 212C755 218 781 227 797 240C814 253 828 271 833 290C837 308 832 331 824 349C817 368 799 385 787 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.4%22/%3E%3Cpath d=%22M821 400C807 417 792 429 784 444C777 458 777 472 775 489C774 506 778 526 774 546C769 565 763 588 749 605C735 622 714 636 692 647C670 657 643 661 617 665C592 669 566 670 540 670C514 670 488 670 462 667C436 664 409 660 386 651C362 642 340 628 323 613C306 598 294 577 285 559C275 541 271 521 266 503C260 485 256 469 251 451C246 434 240 418 236 400C233 382 229 363 230 345C232 326 237 307 246 289C255 272 269 255 284 240C299 226 318 213 337 201C357 190 378 180 400 173C422 165 446 160 469 158C493 155 517 155 540 156C563 156 586 159 610 161C634 162 658 163 684 166C710 169 740 170 767 178C793 185 823 196 843 211C862 227 877 250 881 272C885 293 877 320 867 342C857 363 835 383 821 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.4%22/%3E%3Cpath d=%22M853 400C837 419 821 432 813 449C806 466 808 481 808 501C807 521 814 545 809 568C805 591 797 617 781 637C766 656 740 673 715 684C690 695 658 700 629 704C600 709 570 709 540 710C510 710 480 710 450 707C421 703 390 698 363 687C337 676 311 660 293 642C274 625 261 601 251 580C240 559 237 537 230 517C224 496 219 478 213 458C207 439 198 420 193 400C189 380 184 358 186 337C187 316 193 293 204 273C214 254 230 234 248 218C265 201 286 186 308 173C331 160 355 149 380 141C405 132 433 127 459 124C486 120 513 121 540 121C567 122 592 124 620 126C648 127 676 127 706 130C736 133 772 134 802 143C832 152 867 164 888 183C909 201 926 228 929 254C932 279 920 310 908 334C895 359 869 381 853 400Z%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.4%22/%3E%3Cpath d=%22M533 400H547M540 393V407%22 stroke=%22%23000%22 stroke-width=%221.6%22/%3E%3Cdefs%3E%3Cmask id=%22k%22%3E%3Crect x=%22677%22 y=%22490%22 width=%2256%22 height=%2226%22 fill=%22%23fff%22/%3E%3Ctext x=%22705%22 y=%22508%22 text-anchor=%22middle%22 font-family=%22Arial,Helvetica,sans-serif%22 font-size=%2215%22 font-weight=%22700%22 fill=%22%23000%22%3E20%25%3C/text%3E%3C/mask%3E%3C/defs%3E%3Crect x=%22679%22 y=%22491%22 width=%2252%22 height=%2224%22 rx=%223%22 fill=%22%23000%22 mask=%22url(%23k)%22/%3E%3C/svg%3E");
  --bgm-seams:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22520%22 height=%221300%22 viewBox=%220 0 520 1300%22%3E%3Cpath d=%22M-402 1300L118 0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 /%3E%3Cpath d=%22M-378 1300L142 0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 /%3E%3Cpath d=%22M-393 1300L127 0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221%22 /%3E%3Cpath d=%22M118 1300L638 0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 /%3E%3Cpath d=%22M142 1300L662 0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 /%3E%3Cpath d=%22M127 1300L647 0%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221%22 /%3E%3Cpath d=%22M322 1080C364 940 416 880 447 760%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.9%22/%3E%3Cpath d=%22M94 520C125 430 156 400 198 330%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%22.9%22/%3E%3C/svg%3E");
  --bgm-brick:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2294%22 height=%2236%22 viewBox=%220 0 94 36%22%3E%3Crect x=%220%22 y=%220%22 width=%2294%22 height=%223%22 fill=%22%23000%22/%3E%3Crect x=%22-47%22 y=%226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%220%22 y=%226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%2247%22 y=%226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%2294%22 y=%226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%22-70.5%22 y=%2216%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%22-23.5%22 y=%2216%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%2223.5%22 y=%2216%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%2270.5%22 y=%2216%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%22-47%22 y=%2226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%220%22 y=%2226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%2247%22 y=%2226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3Crect x=%2294%22 y=%2226%22 width=%2244%22 height=%228%22 fill=%22%23000%22/%3E%3C/svg%3E");
}
.bg-joists,.bg-contour,.bg-seams,.bg-brick{position:relative;isolation:isolate}
.bg-joists::after,.bg-contour::after,.bg-seams::after,.bg-brick::after{content:"";position:absolute;left:0;right:0;z-index:-1;pointer-events:none;
  background:var(--bg-c);opacity:var(--bg-w);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.bg--dark::after{background:var(--bg-c-dark);opacity:var(--bg-w-dark)}

.bg-joists::after{bottom:0;height:200px;-webkit-mask-image:var(--bgm-joists);mask-image:var(--bgm-joists);
  -webkit-mask-size:768px 200px;mask-size:768px 200px;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-position:left bottom;mask-position:left bottom}

.bg-contour::after{top:0;bottom:0;
  -webkit-mask-image:var(--bgm-contour),linear-gradient(90deg,transparent 30%,#000 62%);mask-image:var(--bgm-contour),linear-gradient(90deg,transparent 30%,#000 62%);
  -webkit-mask-size:1000px 800px,100% 100%;mask-size:1000px 800px,100% 100%;
  -webkit-mask-position:right -120px center,0 0;mask-position:right -120px center,0 0;
  -webkit-mask-composite:source-in;mask-composite:intersect}

.bg-seams::after{top:0;bottom:0;-webkit-mask-image:var(--bgm-seams);mask-image:var(--bgm-seams);
  -webkit-mask-size:520px 1300px;mask-size:520px 1300px;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-position:center top;mask-position:center top}

.bg-brick::after{top:0;height:36px;opacity:calc(var(--bg-w) * 1.1);-webkit-mask-image:var(--bgm-brick);mask-image:var(--bgm-brick);
  -webkit-mask-size:94px 36px;mask-size:94px 36px;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x}
.bg-brick{padding-top:calc(clamp(56px,8vw,96px) + 10px)}

@media(max-width:700px){
  .bg-joists::after{height:120px;-webkit-mask-size:461px 120px;mask-size:461px 120px}
  .bg-contour::after{-webkit-mask-size:620px 496px,100% 100%;mask-size:620px 496px,100% 100%;
    -webkit-mask-position:right -150px bottom -60px,0 0;mask-position:right -150px bottom -60px,0 0}
  .bg-seams::after{-webkit-mask-size:364px 910px;mask-size:364px 910px}
  .bg-brick::after{height:29px;-webkit-mask-size:75px 29px;mask-size:75px 29px}
}
/* Grounds. A motif section names its ground so the label knockout below matches it exactly. */
.bg-joists,.bg-contour,.bg-seams,.bg-brick{--bg-ground:var(--paper)}
.bg-g-cream{--bg-ground:var(--cream)}.bg-g-white{--bg-ground:var(--card)}.bg-g-stone{--bg-ground:var(--stone)}.bg--dark{--bg-ground:var(--ink)}
/* Map-label knockout, as on a contour map: small red and grey text sits on a clean patch of its own
   ground, so no line ever runs behind it. Invisible wherever no motif passes. */
:is(.bg-joists,.bg-contour,.bg-seams) :is(.eyebrow:not(.eyebrow--light),.bc-date,.bc-link,.ms-src,.sv-src,.h-line-k span,.sv-scale-k span,.h-meter-photo figcaption,.svc-n,.sv-decide-foot a,.bl-count),.bg-contour.areas2 li>a{
  background-color:var(--bg-ground);-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* QA switch: html.no-bg hides every motif (used by the contrast proof) */
.no-bg .bg-joists::after,.no-bg .bg-contour::after,.no-bg .bg-seams::after,.no-bg .bg-brick::after{display:none}

/* Blog index dates sit over seams: keep this one section at the original light weight (contrast 4.19 at .12). */
.bl-file.bg-seams{--bg-w:.06}
/* Large red figures over contours (22.2% on home, Monroe housing %): original weight keeps them >= 3:1. */
#measure.bg-contour,#housing.bg-contour,#housing .bg-contour{--bg-w:.075}
#housing.bg-joists{--bg-w:.075}
/* Bolder pass (Josh 2026-10-10: "bolder"): full weight in the gutters and edges, fading to ~40% behind the
   content column so body text keeps AA. */
.bg-seams::after{
  -webkit-mask-image:var(--bgm-seams),linear-gradient(90deg,#000 0,#000 9%,rgba(0,0,0,.38) 24%,rgba(0,0,0,.38) 76%,#000 91%,#000 100%);
  mask-image:var(--bgm-seams),linear-gradient(90deg,#000 0,#000 9%,rgba(0,0,0,.38) 24%,rgba(0,0,0,.38) 76%,#000 91%,#000 100%);
  -webkit-mask-size:520px 1300px,100% 100%;mask-size:520px 1300px,100% 100%;
  -webkit-mask-repeat:repeat,no-repeat;mask-repeat:repeat,no-repeat;
  -webkit-mask-position:center top,0 0;mask-position:center top,0 0;
  -webkit-mask-composite:source-in;mask-composite:intersect}
.bg-contour::after{
  -webkit-mask-image:var(--bgm-contour),linear-gradient(90deg,transparent 30%,rgba(0,0,0,.4) 55%,rgba(0,0,0,.4) 80%,#000 93%);
  mask-image:var(--bgm-contour),linear-gradient(90deg,transparent 30%,rgba(0,0,0,.4) 55%,rgba(0,0,0,.4) 80%,#000 93%)}
@media(max-width:700px){
  .bg-seams::after{-webkit-mask-size:364px 910px,100% 100%;mask-size:364px 910px,100% 100%;
    -webkit-mask-image:var(--bgm-seams),linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.45));mask-image:var(--bgm-seams),linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.45))}
  .bg-contour::after{-webkit-mask-image:var(--bgm-contour),linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.45));mask-image:var(--bgm-contour),linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.45))}
}
#what-goes-in.bg-joists{--bg-w:.14}
/* Home #measure: push the contour (and its 20% tag) right so the tag clears the copy column. */
#measure.bg-contour::after{-webkit-mask-position:right -470px center,0 0;mask-position:right -470px center,0 0}
@media(max-width:700px){#measure.bg-contour::after{-webkit-mask-position:right -380px bottom -60px,0 0;mask-position:right -380px bottom -60px,0 0}}
/* Final judge: home Areas contour tag floated by the town links; push it off the edge like #measure. */
#areas.bg-contour::after{-webkit-mask-position:right -470px center,0 0;mask-position:right -470px center,0 0}
@media(max-width:700px){#areas.bg-contour::after{-webkit-mask-position:right -380px bottom -60px,0 0;mask-position:right -380px bottom -60px,0 0}}
/* Final judge: bolder seams read as scratches on the home services and FAQ sections; ease them there only. */
#services.bg-seams{--bg-w-dark:.1}
#faq.bg-seams{--bg-w:.14}
.page-home #process.bg-seams,body:has(#hero) #process.bg-seams{--bg-w:.15}
