/* Element base. GENERATED from design/system/tokens/base.css. */

*,*::before,*::after{box-sizing:border-box}
/* Heavier than the design system's own default stack — the client explicitly
   asked for more visible grime (repo/README.md, "Grime (texture)"). Doubled
   noise/streak, tripled blotch, doubled soot, plus a vignette the previous
   single-layer version dropped entirely — corrected 2026-08-30, this had been
   flattening every page's background sitewide since the original build.

   Selector is "html body", not bare "body" — load-bearing, not stylistic.
   Blocksy prints its own Customizer-default body background
   (`background-color:var(--theme-palette-color-7);background-image:none;`,
   its stock near-white Global Colors default, not anything anyone configured)
   as inline CSS in <head> via #ct-main-styles-inline-css, which loads AFTER
   this stylesheet. A bare "body" selector here ties Blocksy's on specificity,
   so source order decides and Blocksy's wins — wiping out both the color and
   every grime layer at once. "html body" is one type-selector heavier, so it
   wins outright regardless of load order, without needing !important or
   fighting the Customizer. Verified live 2026-09-01, see
   handoffs/storefront-visual-fixes.md item 6. */
html body{margin:0;font:var(--type-body);color:var(--text-body);background-color:var(--surface-page);background-image:var(--grime-noise),var(--grime-noise),var(--grime-streak),var(--grime-streak),var(--grime-blotch),var(--grime-blotch),var(--grime-blotch),var(--grime-soot),var(--grime-soot),var(--grime-vignette);background-attachment:fixed;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;color:var(--text-strong);text-wrap:balance}
h1{font:var(--type-h1)}h2{font:var(--type-h2)}h3{font:var(--type-h3)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color var(--dur-fast) var(--ease-mech)}
a:hover{color:var(--text-link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ring-focus)}
::selection{background:var(--rust-500);color:var(--action-accent-fg)}
.bkc-stencil{font:var(--type-stencil);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--text-muted)}
.bkc-chamfer{clip-path:polygon(var(--chamfer) 0,100% 0,100% calc(100% - var(--chamfer)),calc(100% - var(--chamfer)) 100%,0 100%,0 var(--chamfer))}
