/* ==========================================================================
   TOKENS
   ========================================================================== */
:root{
  --gold:#C9A24B;      /* GRFP accent — text/buttons on ink ONLY; hairlines on light */
  --ink:#1F2421;       /* dark bands, body text */
  --paper:#FFFEFB;     /* header, floor grid, door plate */
  --cream:#FAF8F3;     /* body background; text on ink */
  --mist:#EFEDE6;      /* proof section background */
  --forest:#185F43;    /* ONE use: the Designer Program handoff link/button */
  --walnut:#6E5039;    /* mono citations on light */
  --line:rgba(31,36,33,.12);
  --line-d:rgba(250,248,243,.16);
  --veil-hero:rgba(20,16,11,.62);
  --veil-custom:rgba(20,16,11,.64);
  --sans:'Helvetica Neue',Helvetica,Arial,sans-serif;
  /* TWO families, and the serif is not one of them. Vollkorn was dropped
     site-wide by ruling (2026-08-17) — everything it used to carry is now
     either Helvetica (prose, statements) or Fragment Mono (data, eyebrows,
     SKUs, addresses, numerals). A --serif token is deliberately absent so a
     future rule cannot quietly reintroduce it. */
  --mono:'Fragment Mono',ui-monospace,'Courier New',monospace;
  --wrap:1200px;

  /* ------------------------------------------------------------------------
     DEPARTMENT ACCENTS — wayfinding, sampled from the materials themselves.
     Every ratio below was computed from the hex, not taken on trust.

     Where they may appear: the breadcrumb department tick (22x3px bar),
     section eyebrows on light grounds, the 3px top rule on department tiles,
     the chapter eyebrow. Where they are BANNED: as text on ink — all five
     land between 1.86:1 and 2.77:1 there, so this is arithmetic, not taste —
     as a text colour over photography, and mixed on one page. One page, one
     department.

     as text:            on cream   on paper   on mist    on ink
     --dept-pool         7.40:1     7.79:1     6.71:1     2.01:1  BANNED
     --dept-shuffle      5.53:1     5.82:1     5.01:1     2.69:1  BANNED
     --dept-furniture    7.99:1     8.41:1     7.24:1     1.86:1  BANNED
     --dept-games        5.92:1     6.23:1     5.36:1     2.51:1  BANNED
     --dept-outdoor      5.37:1     5.65:1     4.86:1     2.77:1  BANNED
     All five clear AA body (4.5:1) on all three light grounds; --dept-outdoor
     on mist at 4.86:1 is the thinnest margin in the set, so nothing smaller
     than body size goes there.
     ------------------------------------------------------------------------ */
  /* THE GROUND THE CATALOGUE IS SHOT ON — measured, not assumed. Every corner and
     edge midpoint of the product photography samples exactly #FFFFFF. Paper is
     #FFFEFB, mist is #EFEDE6, and any shot letterboxed against either one draws a
     visible rectangle: 4 steps of blue against paper, which is faint but real and
     is what Joshua saw on the product pages, and a frankly grey frame against mist.
     So wherever a catalogue shot is displayed `contain`, its plate is this token and
     the shot's own ground disappears into it exactly rather than nearly.
     This is not a palette colour and nothing but a product plate may use it.
     The alternative was removing the backgrounds at the CDN. Measured on a
     12-image sample: e-bgremove silently returns the original, fully opaque, on 6
     of 12 — it fails on exactly the white and light products, the same set that
     mix-blend-mode:multiply destroyed. Half the catalogue cut out and half not is
     worse than a catalogue that is uniform, so this stays until the images are
     real cutouts.
     Cost, stated: mist also served as a placeholder behind a slow or missing image.
     All 587 are mirrored and verified resolving, so that is worth trading for the
     edge going away. */
  --shot-ground:#FFFFFF;
/* THE HEADLINE SCALE, DECLARED ONCE. (Joshua, 2026-08-18: "Please do a full pass to
   make sure that all the H1 and headlines are in synch and match each other.")
   Before this there were four different hero h1 maxima — 5.5, 6.5, 7.5 and 3.1rem —
   and eight different section h2 maxima between 1.75 and 3.5rem, every one of them a
   local override written next to the block it styled. Nothing was wrong with any one
   of them; the problem was that no two pages agreed, and the Designer Program's
   1.75rem read as a mistake beside a 2.7rem heading on the same scroll.
   Three sizes now, and a rule for choosing:
     --h1-hero    a page opener over a photograph or at the top of a page
     h2           EVERY section headline, everywhere, no exceptions per page
     --h2-stmt    the full-bleed statement bands only, where the heading IS the
                  section and there is nothing else in the band to balance
   A block that needs a smaller heading is a LABEL, not a headline, and takes an
   eyebrow class instead of a shrunken h2. */
  --h1-hero:clamp(2.4rem,7.4vw,6rem);
  --h2-stmt:clamp(2rem,4.4vw,3.5rem);
  --dept-pool:#2C5670;      /* billiard cloth blue */
  --dept-shuffle:#8A5A2B;   /* maple / cherry */
  --dept-furniture:#7A3B22; /* cognac leather */
  --dept-games:#1F6B63;     /* powder-coat teal */
  --dept-outdoor:#4A6B7C;   /* weathered blue-grey */

  /* COGNAC — the Plan-a-visit ground on every page, ratified over the earlier
     blue and ink variants. It is the SAME hex as --dept-furniture, declared
     once and aliased rather than twice: one colour doing two jobs, not two
     decisions that could drift apart.
       cream text on cognac       7.99:1  ✓ AA body
       cream-80% mono eyebrow     5.75:1  ✓ AA body
       cream-50% ghost border     3.26:1  ✓ 1.4.11 (UI component, not text)
       gold on cognac             3.53:1  ✗ — gold stays non-text here too,
                                  so the primary button is a GOLD FILL with an
                                  INK label (6.57:1), never gold lettering. */
  --cognac:var(--dept-furniture);

  --sh:0 10px 30px rgba(31,36,33,.10);
  --sh-lift:0 9px 22px rgba(31,36,33,.18);
  /* Card lift, exactly as specified: 3px and this shadow, nothing else. The
     dark-ground variant is darker because a .12 alpha over ink is invisible. */
  --sh-card:0 6px 18px rgba(31,36,33,.12);
  --sh-card-d:0 6px 18px rgba(20,16,11,.4);
  --ink-70:rgba(31,36,33,.72);
  --ink-78:rgba(31,36,33,.78);
  --cream-88:rgba(250,248,243,.88);
}

/* --------------------------------------------------------------------------
   MARKS — each lockup is declared ONCE here and drawn by reference, so
   swapping a mark is a one-line edit.
     --mark-gfp      gold monogram + BLACK wordmark. LIGHT surfaces only (header).
     --mark-gfp-rev  gold monogram + WHITE wordmark. DARK surfaces (door plate, footer).
   Both are trimmed transparent PNGs. -rev is derived from the same artwork by
   inverting only the greyscale channel, so the gold is untouched; swap in the
   official reversed file when it lands.
   The Dallas Market Center mark is inline SVG (vector) further down the page.
   Raster fallback: https://ik.imagekit.io/billiardfactory/grfp/grfp-logo-600.png
   -------------------------------------------------------------------------- */
:root{
  --mark-gfp:url("data:image/png;base64,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");
  --mark-bf:url("data:image/png;base64,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");
  --mark-gfp-rev:url("data:image/png;base64,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");
  --mark-bf-name:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYIAAABACAMAAAAgc4CwAAAABlBMVEX///8PSzPyw2ObAAAAAXRSTlMAQObYZgAAA8ZJREFUeNrtm1uy4zAIRGH/m56qqXFGsng1KNfStfh0goA+6GHHIcaMjglWUxBEcCBIVpMQRnAgjFaTMIGAlRT05PByEgpEZSrpOQlBN1AGAcsp/A4EcP8lRSwikFczUrcaAiTFPUIunoqAIHMQcM37nsb6CDwRH0DAo3ekzM93pQ3lLQi0hRjU8PPtRlUE4GYI7jX6g0G7ck7Ea5gsAhbSXh0BAQiABswj4ME7VuqGCEaBAgiASDocS8Qrjzcg+JQbmQffRkDD6ew9CIjaggsIiIsIaAIC2gpBX6A3DQw1VKUKCBhC0E2CfRC0y1CAAXtGYyAUQe/gRpST2OhQOuRcQ0BCrz6AgDdC8D/ne/05BJJjBQF8kJX7YGEEUs4mgwSBH0dAYxrrIwhqSdYytdAsGJNYFwHaz7EHFAsgiGvwMAK0kGYwA2j11uxVs2Aygkl3x1MQgHsBLgGrqSEI4F7yEJAcaRIC8Hw6B0Hm5484Ah2au7U6CFgbrYYAIoDdHc9FEN6KrhBQAj+BoC2mRwC4TkOgP28pI7AL0xgEEPA0BAQj0BisjIAcNeXrX0XQlZ9HIOodiT+MiLtg150IKa8SgnsHQgiMXpQ7igrbK+4RvXyLA7pVZ0FXCIqgd/aDvcYABPdlmPUd1nd+uu6FLCjiOJv7X80wOwhaS2r476H/QTDBSgSyAPkgaKxEIA/w6bJXshKBIsBjfy2hYCPhITDBUgA47y38cPl2AwXU72OBaE/XvK91KIarGMljrR0Bjx07duzYsWPTbc7h4Y1nkOgJzJTFGyB20Ask4g8TubKYBRGYrRnTxQuTpOQpvjwBpXDjLdjgEOx/o/8FI49JfkmtJ7AyBaXppW8pDD5X3ak0tOT9DwSSyk62Qsu0fhsQaMV1ms9C0Iur9ybfwlmjSPuPlq02D3YgQPK6o6ssLs9ykdqiZXxgrimyuzTi5fYhsDyCyIsYzXt8onayjzyU8oEAUpwr47yQ38rbhIB/muleF4wjMMJpb1FqIN09W3HchEAUwdWhyg4ZLvIbCESRzQ/XMpHAeMC45NF2SCSc8Q8z7+usmD7g+gRILnwoRa/YmDhauDCCoSHkddA4/25AQDnmDdpgDHgOgnGhl7M1z1hPC+ybt474M1+BAh5KtWEkBLERsRXyQXMSVTrcf/yg3A95CIQGd+4LSGv234TAfYYZJ2CFi5BUEPDuCIw/Hohqaqt2x4dhBOIzbwE2gGCfv1Q4e5a8ojgu5vYSTyz84KMa6lFjUy/l1DpeNBYqIBy7wyjpJCrL2x/saBpstCzIJAAAAABJRU5ErkJggg==");
  --mark-dmc:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDUgNjAuOTg5IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiPiA8ZyBpZD0iR3JvdXBfNzQ1MyIgZGF0YS1uYW1lPSJHcm91cCA3NDUzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODUuNzUyIC0xODIuNzg0KSI+IDxwYXRoIGQ9Ik0xMTguMTMsMjMzLjE1Nmw2LjQ2MSwxLjI4NkwxMjAuNSwyNTMuMzY4bC02LjQzNy0xLjM5MloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjM5MyAtOS41OTUpIiBmaWxsPSIjMDBhN2UwIi8+IDxwYXRoIGQ9Ik0xMzUuNDQ4LDE4NC4xNzZsLTMuNjIsMTYuNzQ0LTYuOTI1Ljg2NSw0LjEwOC0xOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjQ1OCAwKSIgZmlsbD0iIzAwYTdlMCIvPiA8cGF0aCBkPSJNMTI5LjE0NCwyMDQuNTg0bC00LjQ4MSwzLjExNi03LjEzOCw0Ljk3LS42OTQuMDktNy42NDcuOTU1LTE4LjEsMi4yNjItLjgxNy02LjUzNCwxMi45LTEuNjEyLDguMzUzLTEuMDQzLDYuNzg3LS44NDgsNi45MjUtLjg2NVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjg2IC00LjE1MykiIGZpbGw9IiMwMGFlNmYiLz4gPHBhdGggZD0iTTE2MS4zMDgsMjA3Ljc4bC0yMC4wMTgsMi41LDExLjYzNS04LjA5MSw3LjU2Ni0uOTQ2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwLjU4IC0zLjUxNykiIGZpbGw9IiMwMGFlNmYiLz4gPHBhdGggZD0iTTEwMC4wMjMsMjI5Ljc2OGw4Ljk2OCwxLjc4Ni0xMy45MzUsOS42OS0zLjc2LTUuNDA3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuMDU2IC04Ljk1KSIgZmlsbD0iI2YxN2ZiMiIvPiA8cGF0aCBkPSJNMTUxLjMzNCwxOTkuNjY4bC0xLjcxNCwxLjE5Mi0xMS42MzUsOC4wOTEtOC45NSw2LjIyMy0uMy4yMDktNC44LTQuNjgxLDcuMTM4LTQuOTY5LDQuNDgxLTMuMTE3aDBsMTIuMDE2LTguMzU2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTcuMjc0IC0yLjE4NikiIGZpbGw9IiNmMTdmYjIiLz4gPHBhdGggZD0iTTEyMS40MjMsMjI0LjU1OGwtMS4xMDctLjIyMUwxMTksMjI0LjA3N2wtNy42NTYtMS41MjQsNC42ODktMy4yNiwzLjMsMy4yMywxLjQ5LDEuNDU3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQuODc2IC02Ljk1NSkiIGZpbGw9IiNmMTdmYjIiLz4gPHBhdGggZD0iTTEyNS4xNzIsMjMyLjg0OGwtNS45NzUtMS4xOS02LjQ2LTEuMjg2LTQuOC0uOTU3LTguOTY4LTEuNzg2TDg1Ljc1MiwyMjVsMS4yODctNi40NTksMTkuNDM0LDMuODcsNy42NTYsMS41MjUsMS4zMTIuMjYxLDEuMTA3LjIyLDMuNDgsMy40WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtNi44MTEpIiBmaWxsPSIjZWUyYjM3Ii8+IDxwYXRoIGQ9Ik0xNTYuODY5LDIzMi4zODVsLTEuMjg2LDYuNDU5LTguNTUtMS43LTguNjI1LTguNDMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwLjAzIC04Ljc0OCkiIGZpbGw9IiNlZTJiMzciLz4gPHBhdGggZD0iTTExMi42MzYsMjA0LjU2OGwtOC4zNTMsMS4wNDMtOC4xNDUtNy45NjUsNC42LTQuNzA5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuOTc4IC0xLjkzNCkiIGZpbGw9IiNmY2IzNGMiLz4gPHBhdGggZD0iTTE0Ny42NzEsMjM5LjY4NmwtNC42LDQuNzA5LTEyLjU4My0xMi4zLTUuMTQ1LTUuMDI5LTMuNDgtMy40LS41OTItLjU3OS0xLjQ5LTEuNDU3LTMuMy0zLjIzLTIuODM5LTIuNzc2LDcuNjQ3LS45NTYuNjk0LS4wOSw0LjgsNC42ODEuMjEuMjA2LDYuNzA2LDYuNTU3LDguNjI1LDguNDMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMzExIC02LjA1NSkiIGZpbGw9IiNmY2IzNGMiLz4gPHBhdGggZD0iTTE3OS42MzMsMTkzLjMyN2gyLjk3NWMyLjksMCw1LjMyNywxLjIzNCw1LjMyNyw0LjUyNiwwLDIuOTEyLTIuMzc3LDQuNDc1LTUuMDU5LDQuNDc1aC0zLjI0MlptMS45ODMsNy4xNzFoMS4wM2MxLjg0MywwLDMuMjI5LS43LDMuMjI5LTIuNzQ2LDAtMS43NjctMS40MTEtMi41OTQtMy4wODktMi41OTRoLTEuMTdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcuODg0IC0yLjAwOCkiIGZpbGw9IiMxRjI0MjEiLz4gPHBhdGggZD0iTTE3OS42MzMsMjE0Ljg5NWgzbDIuMDcyLDUuODc0aC4wMjZsMi4wODQtNS44NzRIMTg5Ljh2OWgtMS45ODN2LTYuOWgtLjAyNmwtMi4zNjUsNi45aC0xLjUxMmwtMi4yNzYtNi45aC0uMDI1djYuOWgtMS45ODNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcuODg0IC02LjExNykiIGZpbGw9IiMxRjI0MjEiLz4gPHBhdGggZD0iTTE4NiwyMzguNzQ4YTIuMTI0LDIuMTI0LDAsMCwwLTEuNy0uNzM3LDIuOTE5LDIuOTE5LDAsMCwwLS4wNjQsNS44LDIuMTU0LDIuMTU0LDAsMCwwLDEuODU2LS45NjdsMS42NTIsMS4yMzNhMy45MjUsMy45MjUsMCwwLDEtMy4yNTQsMS41NjQsNC43MzEsNC43MzEsMCwxLDEsMC05LjQ1OCwzLjg2NiwzLjg2NiwwLDAsMSwzLjAzOSwxLjMyMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNy44ODQgLTEwLjE3MSkiIGZpbGw9IiMxRjI0MjEiLz4gPHBhdGggZD0iTTE5OS4yNTYsMTkzLjMyN2gxLjY0bDMuOTE2LDloLTIuMjM3bC0uNzc1LTEuOTA3aC0zLjVsLS43NSwxLjkwN2gtMi4xODZabS43NjMsMi42MTktMS4wOTQsMi44aDIuMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC44ODEgLTIuMDA4KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMTk5LjksMjE0Ljg5NWgxLjY0bDMuOTE2LDloLTIuMjM3bC0uNzc2LTEuOTA3aC0zLjVsLS43NSwxLjkwN0gxOTYuMDFabS43NjMsMi42MTktMS4wOTQsMi44aDIuMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMS4wMDMgLTYuMTE3KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMTk2LjU2NiwyMzYuNDYyaDYuMTE1djEuODNIMTk4LjU1djEuNjc4aDMuOVYyNDEuOGgtMy45djEuODMxaDQuMzYxdjEuODNoLTYuMzQ0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjEwOSAtMTAuMjI1KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMjEyLjgzMiwxOTMuMzI3aDEuOTgzVjIwMC41aDMuNjc0djEuODNoLTUuNjU4WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI0LjIwOCAtMi4wMDgpIiBmaWxsPSIjMUYyNDIxIi8+IDxwYXRoIGQ9Ik0yMTEuODY2LDIxNC44OTVoMy40ODNjMS44NDMsMCwzLjM5NC42MzUsMy4zOTQsMi43MzNhMi4zMTcsMi4zMTcsMCwwLDEtMS45NDQsMi40NjdsMi4yODgsMy44SDIxNi43MWwtMS44ODItMy42aC0uOTc5djMuNmgtMS45ODNabTEuOTgzLDMuNzI1aDEuMTdjLjcyNSwwLDEuNjY1LS4wMjUsMS42NjUtMSwwLS45LS44MTQtMS4wNDItMS41MzgtMS4wNDJoLTEuM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNC4wMjQgLTYuMTE3KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMjExLjA1NywyMzYuNDYyaDIuNjk1bDMuODI3LDYuMjU1aC4wMjV2LTYuMjU1aDEuOTgzdjloLTIuNTk0bC0zLjkyOS02LjQwN2gtLjAyNXY2LjQwN2gtMS45ODNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuODcgLTEwLjIyNSkiIGZpbGw9IiMxRjI0MjEiLz4gPHBhdGggZD0iTTIyNy43OSwxOTMuMzI3aDEuOTgzVjIwMC41aDMuNjc0djEuODNIMjI3Ljc5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3LjA1NyAtMi4wMDgpIiBmaWxsPSIjMUYyNDIxIi8+IDxwYXRoIGQ9Ik0yMjYuMDg2LDIxNC44OTVoMS45ODN2My43MzhsMy41LTMuNzM4aDIuNTk0bC00LDQuMTgzTDIzNC41LDIyMy45aC0yLjc3MmwtMy42NjEtNC4yNzJWMjIzLjloLTEuOTgzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2LjczMiAtNi4xMTcpIiBmaWxsPSIjMUYyNDIxIi8+IDxwYXRoIGQ9Ik0yMjkuNDU1LDIzOC4yMTdoLTIuNTY4di0xLjc1NGg3LjExOXYxLjc1NGgtMi41Njh2Ny4yNDdoLTEuOTgzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2Ljg4NSAtMTAuMjI1KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMjQzLjgzOCwxOTMuMzI3aDEuNjRsMy45MTYsOWgtMi4yMzdsLS43NzYtMS45MDdoLTMuNWwtLjc1LDEuOTA3aC0yLjE4N1ptLjc2MywyLjYxOS0xLjA5NCwyLjhoMi4yWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI5LjM3MyAtMi4wMDgpIiBmaWxsPSIjMUYyNDIxIi8+IDxwYXRoIGQ9Ik0yNDEuODY0LDIxNC44OTVoNi4xMTV2MS44M2gtNC4xMzJWMjE4LjRoMy45djEuODNoLTMuOXYxLjgzaDQuMzYxVjIyMy45aC02LjM0NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yOS43MzggLTYuMTE3KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMjQxLjg2NCwyMzYuNDYyaDYuMTE1djEuODNoLTQuMTMydjEuNjc4aDMuOVYyNDEuOGgtMy45djEuODMxaDQuMzYxdjEuODNoLTYuMzQ0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI5LjczOCAtMTAuMjI1KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMjYxLjk3MSwxOTUuNDczYTEuOTE5LDEuOTE5LDAsMCwwLTEuNDM3LS42Yy0uNTU5LDAtMS4zMzUuMjU0LTEuMzM1LjkyOCwwLDEuNjQsNC4xNDUuNTg1LDQuMTQ1LDMuNzM4LDAsMi4wMDgtMS42MTQsMi45NjItMy40NywyLjk2MmE0LjI3NCw0LjI3NCwwLDAsMS0zLjAyNi0xLjEzMmwxLjQxMS0xLjU1MWEyLjIsMi4yLDAsMCwwLDEuNzI5Ljg1MmMuNjQ4LDAsMS4zNzMtLjMwNSwxLjM3My0uOTQxLDAtMS42NTMtNC4yMjEtLjc2My00LjIyMS0zLjc2MywwLTEuOTE5LDEuNjY2LTIuOTI0LDMuNDMzLTIuOTI0YTQuMDY1LDQuMDY1LDAsMCwxLDIuNzU4Ljk0MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi41OTIgLTEuOTU0KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMjU4LjY0NywyMTYuNjQ5aC0yLjU2OHYtMS43NTRIMjYzLjJ2MS43NTRIMjYwLjYzVjIyMy45aC0xLjk4M1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi40NDYgLTYuMTE3KSIgZmlsbD0iIzFGMjQyMSIvPiA8cGF0aCBkPSJNMjU1Ljk1MywyMzYuNDYyaDMuNDgzYzEuODQzLDAsMy4zOTQuNjM2LDMuMzk0LDIuNzM0YTIuMzE3LDIuMzE3LDAsMCwxLTEuOTQ0LDIuNDY3bDIuMjg4LDMuOEgyNjAuOGwtMS44ODItMy42aC0uOTc5djMuNmgtMS45ODNabTEuOTgzLDMuNzI1aDEuMTdjLjcyNSwwLDEuNjY1LS4wMjUsMS42NjUtMSwwLS45LS44MTQtMS4wNDItMS41MzgtMS4wNDJoLTEuM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi40MjIgLTEwLjIyNSkiIGZpbGw9IiMxRjI0MjEiLz4gPC9nPiA8L3N2Zz4=");
  --mark-dmc-rev:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDUgNjAuOTg5IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiPiA8ZyBpZD0iR3JvdXBfNzQ1MyIgZGF0YS1uYW1lPSJHcm91cCA3NDUzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODUuNzUyIC0xODIuNzg0KSI+IDxwYXRoIGQ9Ik0xMTguMTMsMjMzLjE1Nmw2LjQ2MSwxLjI4NkwxMjAuNSwyNTMuMzY4bC02LjQzNy0xLjM5MloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjM5MyAtOS41OTUpIiBmaWxsPSIjMDBhN2UwIi8+IDxwYXRoIGQ9Ik0xMzUuNDQ4LDE4NC4xNzZsLTMuNjIsMTYuNzQ0LTYuOTI1Ljg2NSw0LjEwOC0xOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjQ1OCAwKSIgZmlsbD0iIzAwYTdlMCIvPiA8cGF0aCBkPSJNMTI5LjE0NCwyMDQuNTg0bC00LjQ4MSwzLjExNi03LjEzOCw0Ljk3LS42OTQuMDktNy42NDcuOTU1LTE4LjEsMi4yNjItLjgxNy02LjUzNCwxMi45LTEuNjEyLDguMzUzLTEuMDQzLDYuNzg3LS44NDgsNi45MjUtLjg2NVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjg2IC00LjE1MykiIGZpbGw9IiMwMGFlNmYiLz4gPHBhdGggZD0iTTE2MS4zMDgsMjA3Ljc4bC0yMC4wMTgsMi41LDExLjYzNS04LjA5MSw3LjU2Ni0uOTQ2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwLjU4IC0zLjUxNykiIGZpbGw9IiMwMGFlNmYiLz4gPHBhdGggZD0iTTEwMC4wMjMsMjI5Ljc2OGw4Ljk2OCwxLjc4Ni0xMy45MzUsOS42OS0zLjc2LTUuNDA3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuMDU2IC04Ljk1KSIgZmlsbD0iI2YxN2ZiMiIvPiA8cGF0aCBkPSJNMTUxLjMzNCwxOTkuNjY4bC0xLjcxNCwxLjE5Mi0xMS42MzUsOC4wOTEtOC45NSw2LjIyMy0uMy4yMDktNC44LTQuNjgxLDcuMTM4LTQuOTY5LDQuNDgxLTMuMTE3aDBsMTIuMDE2LTguMzU2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTcuMjc0IC0yLjE4NikiIGZpbGw9IiNmMTdmYjIiLz4gPHBhdGggZD0iTTEyMS40MjMsMjI0LjU1OGwtMS4xMDctLjIyMUwxMTksMjI0LjA3N2wtNy42NTYtMS41MjQsNC42ODktMy4yNiwzLjMsMy4yMywxLjQ5LDEuNDU3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQuODc2IC02Ljk1NSkiIGZpbGw9IiNmMTdmYjIiLz4gPHBhdGggZD0iTTEyNS4xNzIsMjMyLjg0OGwtNS45NzUtMS4xOS02LjQ2LTEuMjg2LTQuOC0uOTU3LTguOTY4LTEuNzg2TDg1Ljc1MiwyMjVsMS4yODctNi40NTksMTkuNDM0LDMuODcsNy42NTYsMS41MjUsMS4zMTIuMjYxLDEuMTA3LjIyLDMuNDgsMy40WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtNi44MTEpIiBmaWxsPSIjZWUyYjM3Ii8+IDxwYXRoIGQ9Ik0xNTYuODY5LDIzMi4zODVsLTEuMjg2LDYuNDU5LTguNTUtMS43LTguNjI1LTguNDMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwLjAzIC04Ljc0OCkiIGZpbGw9IiNlZTJiMzciLz4gPHBhdGggZD0iTTExMi42MzYsMjA0LjU2OGwtOC4zNTMsMS4wNDMtOC4xNDUtNy45NjUsNC42LTQuNzA5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuOTc4IC0xLjkzNCkiIGZpbGw9IiNmY2IzNGMiLz4gPHBhdGggZD0iTTE0Ny42NzEsMjM5LjY4NmwtNC42LDQuNzA5LTEyLjU4My0xMi4zLTUuMTQ1LTUuMDI5LTMuNDgtMy40LS41OTItLjU3OS0xLjQ5LTEuNDU3LTMuMy0zLjIzLTIuODM5LTIuNzc2LDcuNjQ3LS45NTYuNjk0LS4wOSw0LjgsNC42ODEuMjEuMjA2LDYuNzA2LDYuNTU3LDguNjI1LDguNDMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMzExIC02LjA1NSkiIGZpbGw9IiNmY2IzNGMiLz4gPHBhdGggZD0iTTE3OS42MzMsMTkzLjMyN2gyLjk3NWMyLjksMCw1LjMyNywxLjIzNCw1LjMyNyw0LjUyNiwwLDIuOTEyLTIuMzc3LDQuNDc1LTUuMDU5LDQuNDc1aC0zLjI0MlptMS45ODMsNy4xNzFoMS4wM2MxLjg0MywwLDMuMjI5LS43LDMuMjI5LTIuNzQ2LDAtMS43NjctMS40MTEtMi41OTQtMy4wODktMi41OTRoLTEuMTdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcuODg0IC0yLjAwOCkiIGZpbGw9IiNmZmYiLz4gPHBhdGggZD0iTTE3OS42MzMsMjE0Ljg5NWgzbDIuMDcyLDUuODc0aC4wMjZsMi4wODQtNS44NzRIMTg5Ljh2OWgtMS45ODN2LTYuOWgtLjAyNmwtMi4zNjUsNi45aC0xLjUxMmwtMi4yNzYtNi45aC0uMDI1djYuOWgtMS45ODNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcuODg0IC02LjExNykiIGZpbGw9IiNmZmYiLz4gPHBhdGggZD0iTTE4NiwyMzguNzQ4YTIuMTI0LDIuMTI0LDAsMCwwLTEuNy0uNzM3LDIuOTE5LDIuOTE5LDAsMCwwLS4wNjQsNS44LDIuMTU0LDIuMTU0LDAsMCwwLDEuODU2LS45NjdsMS42NTIsMS4yMzNhMy45MjUsMy45MjUsMCwwLDEtMy4yNTQsMS41NjQsNC43MzEsNC43MzEsMCwxLDEsMC05LjQ1OCwzLjg2NiwzLjg2NiwwLDAsMSwzLjAzOSwxLjMyMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNy44ODQgLTEwLjE3MSkiIGZpbGw9IiNmZmYiLz4gPHBhdGggZD0iTTE5OS4yNTYsMTkzLjMyN2gxLjY0bDMuOTE2LDloLTIuMjM3bC0uNzc1LTEuOTA3aC0zLjVsLS43NSwxLjkwN2gtMi4xODZabS43NjMsMi42MTktMS4wOTQsMi44aDIuMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC44ODEgLTIuMDA4KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMTk5LjksMjE0Ljg5NWgxLjY0bDMuOTE2LDloLTIuMjM3bC0uNzc2LTEuOTA3aC0zLjVsLS43NSwxLjkwN0gxOTYuMDFabS43NjMsMi42MTktMS4wOTQsMi44aDIuMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMS4wMDMgLTYuMTE3KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMTk2LjU2NiwyMzYuNDYyaDYuMTE1djEuODNIMTk4LjU1djEuNjc4aDMuOVYyNDEuOGgtMy45djEuODMxaDQuMzYxdjEuODNoLTYuMzQ0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIxLjEwOSAtMTAuMjI1KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMjEyLjgzMiwxOTMuMzI3aDEuOTgzVjIwMC41aDMuNjc0djEuODNoLTUuNjU4WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI0LjIwOCAtMi4wMDgpIiBmaWxsPSIjZmZmIi8+IDxwYXRoIGQ9Ik0yMTEuODY2LDIxNC44OTVoMy40ODNjMS44NDMsMCwzLjM5NC42MzUsMy4zOTQsMi43MzNhMi4zMTcsMi4zMTcsMCwwLDEtMS45NDQsMi40NjdsMi4yODgsMy44SDIxNi43MWwtMS44ODItMy42aC0uOTc5djMuNmgtMS45ODNabTEuOTgzLDMuNzI1aDEuMTdjLjcyNSwwLDEuNjY1LS4wMjUsMS42NjUtMSwwLS45LS44MTQtMS4wNDItMS41MzgtMS4wNDJoLTEuM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNC4wMjQgLTYuMTE3KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMjExLjA1NywyMzYuNDYyaDIuNjk1bDMuODI3LDYuMjU1aC4wMjV2LTYuMjU1aDEuOTgzdjloLTIuNTk0bC0zLjkyOS02LjQwN2gtLjAyNXY2LjQwN2gtMS45ODNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjMuODcgLTEwLjIyNSkiIGZpbGw9IiNmZmYiLz4gPHBhdGggZD0iTTIyNy43OSwxOTMuMzI3aDEuOTgzVjIwMC41aDMuNjc0djEuODNIMjI3Ljc5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3LjA1NyAtMi4wMDgpIiBmaWxsPSIjZmZmIi8+IDxwYXRoIGQ9Ik0yMjYuMDg2LDIxNC44OTVoMS45ODN2My43MzhsMy41LTMuNzM4aDIuNTk0bC00LDQuMTgzTDIzNC41LDIyMy45aC0yLjc3MmwtMy42NjEtNC4yNzJWMjIzLjloLTEuOTgzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2LjczMiAtNi4xMTcpIiBmaWxsPSIjZmZmIi8+IDxwYXRoIGQ9Ik0yMjkuNDU1LDIzOC4yMTdoLTIuNTY4di0xLjc1NGg3LjExOXYxLjc1NGgtMi41Njh2Ny4yNDdoLTEuOTgzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI2Ljg4NSAtMTAuMjI1KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMjQzLjgzOCwxOTMuMzI3aDEuNjRsMy45MTYsOWgtMi4yMzdsLS43NzYtMS45MDdoLTMuNWwtLjc1LDEuOTA3aC0yLjE4N1ptLjc2MywyLjYxOS0xLjA5NCwyLjhoMi4yWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI5LjM3MyAtMi4wMDgpIiBmaWxsPSIjZmZmIi8+IDxwYXRoIGQ9Ik0yNDEuODY0LDIxNC44OTVoNi4xMTV2MS44M2gtNC4xMzJWMjE4LjRoMy45djEuODNoLTMuOXYxLjgzaDQuMzYxVjIyMy45aC02LjM0NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yOS43MzggLTYuMTE3KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMjQxLjg2NCwyMzYuNDYyaDYuMTE1djEuODNoLTQuMTMydjEuNjc4aDMuOVYyNDEuOGgtMy45djEuODMxaDQuMzYxdjEuODNoLTYuMzQ0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI5LjczOCAtMTAuMjI1KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMjYxLjk3MSwxOTUuNDczYTEuOTE5LDEuOTE5LDAsMCwwLTEuNDM3LS42Yy0uNTU5LDAtMS4zMzUuMjU0LTEuMzM1LjkyOCwwLDEuNjQsNC4xNDUuNTg1LDQuMTQ1LDMuNzM4LDAsMi4wMDgtMS42MTQsMi45NjItMy40NywyLjk2MmE0LjI3NCw0LjI3NCwwLDAsMS0zLjAyNi0xLjEzMmwxLjQxMS0xLjU1MWEyLjIsMi4yLDAsMCwwLDEuNzI5Ljg1MmMuNjQ4LDAsMS4zNzMtLjMwNSwxLjM3My0uOTQxLDAtMS42NTMtNC4yMjEtLjc2My00LjIyMS0zLjc2MywwLTEuOTE5LDEuNjY2LTIuOTI0LDMuNDMzLTIuOTI0YTQuMDY1LDQuMDY1LDAsMCwxLDIuNzU4Ljk0MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi41OTIgLTEuOTU0KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMjU4LjY0NywyMTYuNjQ5aC0yLjU2OHYtMS43NTRIMjYzLjJ2MS43NTRIMjYwLjYzVjIyMy45aC0xLjk4M1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi40NDYgLTYuMTE3KSIgZmlsbD0iI2ZmZiIvPiA8cGF0aCBkPSJNMjU1Ljk1MywyMzYuNDYyaDMuNDgzYzEuODQzLDAsMy4zOTQuNjM2LDMuMzk0LDIuNzM0YTIuMzE3LDIuMzE3LDAsMCwxLTEuOTQ0LDIuNDY3bDIuMjg4LDMuOEgyNjAuOGwtMS44ODItMy42aC0uOTc5djMuNmgtMS45ODNabTEuOTgzLDMuNzI1aDEuMTdjLjcyNSwwLDEuNjY1LS4wMjUsMS42NjUtMSwwLS45LS44MTQtMS4wNDItMS41MzgtMS4wNDJoLTEuM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMi40MjIgLTEwLjIyNSkiIGZpbGw9IiNmZmYiLz4gPC9nPiA8L3N2Zz4=");
}
.mark{display:block;background-repeat:no-repeat;background-position:center;
      background-size:contain}
.mark-gfp{background-image:var(--mark-gfp);aspect-ratio:699/300}
.mark-gfp-rev{background-image:var(--mark-gfp-rev);aspect-ratio:447/192}
/* EST. 1975 / BILLIARD FACTORY, near-black on transparent. The ONE place the
   Billiard Factory mark appears — see the note on the proof section. */
.mark-bf{background-image:var(--mark-bf);aspect-ratio:1218/337}
/* DALLAS MARKET CENTER — the credential. Two polarities from ONE artwork: the
   supplied SVG letters in white for dark grounds, and --mark-dmc is the same
   file with its 18 white fills set to ink for light grounds. The pinwheel keeps
   its own colours in both. Declared here rather than inlined per page: as inline
   SVG this mark cost 5.4KB on each of 555 pages once it moved into the header. */
.mark-dmc{background-image:var(--mark-dmc);aspect-ratio:145/61}
.mark-dmc-rev{background-image:var(--mark-dmc-rev);aspect-ratio:145/61}

/* ==========================================================================
   BASE
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);
     font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
     overflow-x:hidden}
img{max-width:100%;display:block}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul{padding:0;list-style:none}
a{color:inherit}

h1,h2{font-family:var(--sans);font-weight:700;text-wrap:balance}
/* SENTENCE CASE (Joshua, 2026-08-17) — this REVERSES the 2026-08-08 hard rule
   that set every h1 and h2 in capitals. The redesign sets headlines in sentence
   case and returns the tight tracking that suits it: capitals needed -.005em to
   stop colliding, sentence case wants -.03em to stop looking loose.
   Verbatim client blocks that are given in capitals keep them — they opt IN via
   .verbatim below, rather than every heading on the site opting out. */
h1{font-size:clamp(2.1rem,5.2vw,4.1rem);line-height:1.02;letter-spacing:-.03em}
h2{font-size:clamp(1.75rem,3.6vw,2.7rem);line-height:1.06;letter-spacing:-.022em}

/* VERBATIM — a block of the client's own copy, set exactly as supplied. The
   three that exist are given in capitals ("EXPLORE OUR EXCLUSIVE COLLECTION",
   "TO THE TRADE", "OUR QUALITY, YOUR CREATIVITY"), so this restores the caps
   metrics for those headings only. It is an opt-in exception to the sentence-
   case rule, not a second rule: if a heading does not carry this class it is
   sentence case, and nothing outside these three blocks may claim it. */
.verbatim{text-transform:uppercase;letter-spacing:.005em;line-height:1.1}

/* TYPE ROLES — two families, no third.
   sans (Helvetica Neue) = headlines, prose, nav, buttons, statements
   mono (Fragment Mono)  = data, eyebrows, SKUs, addresses, numerals, captions */
.eyebrow{font-family:var(--sans);font-weight:700;font-size:.74rem;letter-spacing:.17em;
         text-transform:uppercase;display:inline-flex;align-items:center;gap:.7rem}
.eyebrow .bar{display:inline-block;width:26px;height:2px;background:currentColor}
.eyebrow--goldbar{color:rgba(31,36,33,.75)}
.eyebrow--goldbar .bar{background:var(--gold)}

.lede{font-family:var(--sans);font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.45}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
/* padding-block, NOT the shorthand: `.pad` is declared after `.wrap`, so
   `padding: Xrem 0` silently wiped out `.wrap`'s horizontal padding on any
   element carrying both — the hero's copy sat flush against the viewport
   edge on narrow screens. */
.pad{padding-block:clamp(3.5rem,7vw,6.5rem)}
.measure{max-width:34em}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn{display:inline-block;font-family:var(--sans);font-weight:700;font-size:.95rem;
     text-transform:uppercase;letter-spacing:.04em;padding:.95rem 1.9rem;
     border-radius:4px;text-decoration:none;border:1.5px solid transparent;
     transition:transform .22s cubic-bezier(.25,1,.5,1),box-shadow .22s cubic-bezier(.25,1,.5,1),background-color .18s ease,color .18s ease}
.btn:hover{transform:translateY(-2px);box-shadow:var(--sh-lift)}
/* Gold fill, ink label — 6.6:1 on the label, the AA figure that matters here.
   Gold is still never TEXT on a light surface (2.4:1 on paper). */
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-ink{background:var(--ink);color:var(--cream)}
.btn-ghost-cream{border-color:rgba(250,248,243,.6);color:var(--cream);background:transparent}
.btn-ghost-cream:hover{background:var(--cream);color:var(--ink)}
.btn-ghost-forest{border-color:var(--forest);color:var(--forest);background:transparent}
.btn-ghost-forest:hover{background:var(--forest);color:var(--cream)}
/* The light-ground ghost. --forest is the Designer Program only, so a secondary
   button on paper had no variant until the custom band needed one. */
.btn-ghost-ink{border-color:rgba(31,36,33,.45);color:var(--ink);background:transparent}
.btn-ghost-ink:hover{background:var(--ink);color:var(--cream)}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
/* On a photographic band the ground behind a button is whatever the photo is
   doing. A filled button's LABEL carries the AA figure (ink on gold = 6.6:1),
   but its edge can land on a bright patch — over th-sb's white brick the gold
   edge drops to 2.3:1. A soft resting shadow darkens the pixels immediately
   around the button so the edge reads. No border: border + wide shadow is the
   ghost-card tell, so this is shadow only. */
.band .btn{box-shadow:0 2px 10px rgba(20,16,11,.4)}

/* Focus — 2px ink on light, 2px gold on ink/photo */
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}
.on-dark a:focus-visible,.on-dark button:focus-visible{outline-color:var(--gold)}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--cream);
      padding:.8rem 1.2rem;z-index:99;text-decoration:none}
.skip:focus{left:.6rem;top:.6rem}

/* ==========================================================================
   HEADER
   ========================================================================== */
/* Two credentials, side by side, then the nav. Rebuilt 2026-08-17: the header
   was a centred column (lockup stacked over a centred nav); the redesign puts
   the GR lockup, the endorsement and the DMC mark in one left-hand group with a
   hairline divider between the marks, and the nav hard right.

   The DMC mark now rides on EVERY page rather than the door plate only, and the
   ink "Plan a visit" button is the one action in the chrome. It is drawn as the
   inline SVG already in the codebase, not a new file: the mark has to be ink on
   this paper ground and the SVG recolours (see .dmc-head below), where a PNG
   could not. */
.site-head{background:var(--paper);border-bottom:1px solid var(--line)}
.head-in{display:flex;align-items:center;justify-content:space-between;
         gap:clamp(1rem,3vw,2.5rem);flex-wrap:wrap;
         padding-top:clamp(1rem,1.8vw,1.15rem);
         padding-bottom:clamp(1rem,1.8vw,1.15rem)}
/* the marks group: lockup + endorsement as one unit, divider, DMC.
   min-width:0 and flex-wrap are kept as guards rather than as fixes — measured
   from 320px up the group never overflows — because two marks plus a tracked-caps
   line is a wide object and overflow-x:hidden on <body> would hide a regression
   here rather than show a scrollbar. */
.head-marks{display:flex;align-items:center;gap:clamp(1rem,2.4vw,1.5rem);
            flex:0 1 auto;min-width:0;flex-wrap:wrap}
.brand-block{display:flex;flex-direction:column;align-items:flex-start;flex:0 0 auto}
.brand{text-decoration:none;display:block}
/* THE GOLD+BLACK LOCKUP NEVER SITS ON INK — the paper header is what makes that
   rule hold at the top of every visit. */
.brand .mark{height:clamp(44px,4.6vw,56px);width:auto}
.endorse{font-family:var(--mono);font-weight:400;font-size:clamp(.6rem,.75vw,.66rem);
         letter-spacing:.14em;text-transform:uppercase;color:var(--walnut);
         margin-top:.4rem;display:block;white-space:nowrap}
.head-rule{width:1px;height:clamp(36px,4vw,48px);background:var(--line);flex:0 0 auto}
/* THE DMC MARK IS A LINK NOW (Joshua, 2026-08-18). §9 said it "never carries a
   link of its own"; that is reversed. It is still a credential and not a co-brand
   by every other measure — never larger than the GRFP mark, never a second logo in
   the masthead — and a designer who wants the building's own site can now get
   there. The hit area is the mark itself, and it takes the same focus ring as any
   other link in the chrome. */
.dmc-link{display:inline-flex;align-items:center;line-height:0;flex:0 0 auto;
      transition:opacity .18s ease}
.dmc-link:hover{opacity:.72}

/* Drawn from --mark-dmc, the ink-lettered polarity, because the header ground
   is paper. The reversed polarity is for the homepage visit band. */
.dmc-head{height:clamp(40px,4.4vw,56px);width:auto;flex:0 0 auto}
@media (max-width:520px){.endorse{letter-spacing:.1em}}
.nav{display:flex;align-items:center;justify-content:flex-end;
      gap:clamp(.9rem,2.2vw,1.75rem);flex-wrap:wrap}
/* SANS, NOT MONO — a deliberate divergence from the handoff, which specifies a
   mono nav. Fragment Mono is loaded with an italic axis and no weight axis, so
   it ships at 400 and nothing else: asking for 700 gets a browser-synthesised
   faux bold that smears the glyphs rather than a drawn weight. The nav had to
   carry more presence beside the button, and the honest way to get it is the
   family that actually has a 700. Set one step under the button's .95rem so the
   right-hand group reads as a hierarchy rather than two competing buttons. */
.nav a{font-family:var(--sans);font-weight:700;font-size:clamp(.78rem,.9vw,.85rem);
       letter-spacing:.06em;text-transform:uppercase;
       color:var(--ink);white-space:nowrap;
       transition:text-decoration-color .18s ease;
       text-decoration:underline;text-decoration-color:transparent;
       text-underline-offset:6px;text-decoration-thickness:2px}
/* Gold as a RULE on a light ground, never as text — the underline carries the
   hover where a colour shift cannot, because the resting state is already full
   ink and gold lettering on paper is 2.38:1. */
.nav a:hover{text-decoration-color:var(--gold)}
/* the CTA is a button first — win back what `.nav a` would otherwise inherit */
.nav a.btn{font-family:var(--sans);font-weight:700;font-size:.76rem;letter-spacing:.04em;
           padding:.7rem 1.15rem;text-decoration:none}
.nav a.btn:hover{text-decoration:none}
.nav a.btn-ink,.nav a.btn-ink:hover{color:var(--cream)}
@media (max-width:880px){
  /* the marks keep the left, the nav drops to its own full-width row beneath
     rather than shrinking the credentials to fit beside it */
  .head-in{gap:.9rem}
  .nav{flex:1 0 100%;justify-content:flex-start;gap:.15rem 1.1rem}
}
/* NOTE ON A FIX THAT WAS REVERTED. A declared grid break used to live here,
   because headless captures at --window-size=390 showed the Plan-a-visit button
   running off the right edge. It does not: macOS Chrome clamps its window below
   ~400px, so those captures were the left slice of a WIDER layout, and the
   "overflow" was the crop. Measured in a true 390px layout — and at every width from
   320 to 560 — plain flex-wrap has zero overflow and drops the button to its own
   row exactly when it stops fitting (at and below 390, inline from 440 up). The
   grid was not only unnecessary, it forced the break at widths where the button
   fits beside the links. Flex-wrap is the whole mechanism; nothing declares it. */
@media (max-width:420px){
  .head-marks{gap:.7rem}
  .brand .mark{height:38px}
  .dmc-head{height:34px}
  .endorse{letter-spacing:.08em;font-size:.58rem}
}
@media (pointer:coarse){
  .nav a:not(.btn){min-height:44px;display:inline-flex;align-items:center}
}

/* ==========================================================================
   CTA BAND — "Plan a visit", on every page, on cognac.
   Page-specific h2 and a page-specific ghost secondary; everything else is
   identical everywhere, which is the point: a designer meets the same ask in
   the same place whatever page they landed on.
   ========================================================================== */
/* NO BOTTOM PADDING — the credential row beneath it belongs to the same block,
   and the hairline is the only thing that should separate them. */
.cta-band{background:var(--close-bg);color:var(--cream);
          padding-block:clamp(2.5rem,5vw,3.5rem) 0}
/* The page signs itself here, now that the footer no longer carries the lockup. */
.cta-mark{width:min(190px,54%);margin-bottom:1.3rem}
.cta-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;
          gap:clamp(1.5rem,4vw,3rem);align-items:center}
.cta-band .eyebrow-m{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
          text-transform:uppercase;color:rgba(250,248,243,.8);margin:0 0 .75rem}
.cta-band h2{color:var(--cream);margin:0 0 .9rem;max-width:20em}
/* The address and the person, in the face that carries data. line-height 2 is
   the mock's — these are two long lines that must not knit together. */
.cta-contact{font-family:var(--mono);font-size:.75rem;line-height:2;
          color:var(--cream);margin:0}
.cta-contact a{color:var(--cream);text-decoration:underline;text-underline-offset:3px}
.cta-acts{display:flex;flex-direction:column;gap:.75rem;flex:0 0 auto}
/* Gold FILL with an ink label (6.57:1). Gold lettering on cognac is 3.53:1 and
   is never used — the fill is what makes the primary action legible here. */
.cta-acts .btn{text-align:center;white-space:nowrap}
.btn-ghost-cta{border-color:rgba(250,248,243,.5);color:var(--cream);background:transparent}
.btn-ghost-cta:hover{background:var(--cream);color:var(--cognac)}
@media (max-width:760px){
  .cta-grid{grid-template-columns:1fr}
  .cta-acts{flex-direction:row;flex-wrap:wrap}
  .cta-acts .btn{flex:1 1 auto}
}
@media (pointer:coarse){
  .cta-contact a{min-height:44px;display:inline-flex;align-items:center}
}

/* ==========================================================================
   CREDENTIAL STRIP — every page, welded above the footer.
   Two things only: who stands behind this, and where the paperwork lives. The
   DMC mark was removed from here by ruling — it is in the header now.
   ========================================================================== */
/* THE CLOSING BLOCK'S GROUND, declared once and inherited by both halves.
   The page used to end in three bands: a cognac ask, a paper credential strip,
   and a dark footer that repeated the ask's address, phone and email. Two dark
   blocks with a light seam between them read as two footers, and the repetition
   meant every page stated the same four facts twice.
   Now the ask and the credential row share ONE ground with a hairline between
   them. Cognac is the default because the Plan-a-visit ground is cognac
   site-wide by ruling; the home page overrides to ink so its gold-on-ink
   bookend survives — and because the override is a custom property on <body>,
   the footer MARKUP stays byte-identical on all 555 pages, which is what keeps
   the five scrape sites working. */
body{--close-bg:var(--cognac)}
body.is-home{--close-bg:var(--ink)}

.close-foot{padding-block:clamp(1.6rem,3vw,2.25rem) clamp(1.75rem,3.4vw,2.5rem);
      border-top:1px solid rgba(250,248,243,.16)}
.close-cred{display:flex;align-items:center;gap:clamp(1rem,3vw,2.25rem);flex-wrap:wrap}
/* The privacy link sits beside the DMC credential in the footer's bottom row —
   the paperwork row, which is where it belongs (2026-09-10). */
.close-priv{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(250,248,243,.66);text-decoration:none}   /* .close-cred is a flex with a gap — no margin needed */
.close-priv:hover{color:var(--cream);text-decoration:underline;text-underline-offset:.2em}
/* THE PARENT'S MARK IS NOT DRAWN HERE. It rode in this row on a paper chip for one
   build; Joshua removed it globally on 2026-08-18, which reverses the 17-Aug ruling
   that had put it on every page. The parent is still named twice per page and both
   are typography — the endorsement line under the header lockup and the legal line
   below — which is what the original 8-Aug ruling asked for: named, not painted.
   --mark-bf-name stays declared in the token block; nothing references it now. */
/* Forest is the Designer Program's colour and appears nowhere else on the site.
   On paper it was lettering at 7.55:1; on this ground lettering fails, so it
   becomes a FILL with a cream label at 7.18:1 — the same correction gold takes
   on cognac. The colour still means exactly one thing. */
.cred-link{font-family:var(--mono);font-size:.7rem;
      background:var(--forest);color:var(--cream);text-decoration:none;
      padding:.6rem .95rem;border-radius:3px;flex:0 0 auto;
      transition:transform .22s cubic-bezier(.25,1,.5,1)}
.cred-link:hover{transform:translateY(-2px)}
.close-dmc{font-family:var(--mono);font-size:.7rem;color:var(--cream-88);
      text-decoration:underline;text-underline-offset:3px;flex:0 0 auto}
.close-dmc:hover{color:var(--cream)}
@media (pointer:coarse){
  .cred-link,.close-dmc{min-height:44px;display:inline-flex;align-items:center}
}

/* ==========================================================================
   PHOTOGRAPHIC BANDS — one flat rgba veil, never a fade
   ========================================================================== */
.band{position:relative;overflow:hidden;color:var(--cream);isolation:isolate}
/* A PHOTOGRAPHIC BAND IS THE SHAPE OF ITS PHOTOGRAPH. (Joshua, 2026-08-19: "in both of
   these shots you dont see the whole image. please fix this and dont do this anymore.")
   Every band on this site was a fixed height with object-fit:cover over it, which is the
   same as saying "crop this to whatever height I picked". Measured across the site at 1440,
   the fraction of each image actually visible was: category heroes 48-65%, the department
   bands 43-78%, the Custom Built close 48%, its hero 65%, the home page hero 71%. The one
   band showing its whole image was the products hero, and only because it had been given a
   16:9 height by hand.
   So the height comes from the image's own ratio: 100vw divided by it. --ar is declared
   beside the image it belongs to, which is the only place that knows the answer.
   MIN-HEIGHT, NOT ASPECT-RATIO, and for the reason this file has recorded twice already:
   .band sets overflow:hidden, so a fixed aspect box CLIPS copy that needs more room, and on
   a phone it always does. A min-height can only be exceeded.
   The floor is for phones, where 100vw/1.79 cannot hold a heading and a lede. The cap is
   16:9 of 1920 — past that width a band would grow past any screen, so it holds and the
   photograph crops again. Between those two the whole image is on screen. */
.band.is-whole{min-height:clamp(var(--ar-floor,340px),
  calc(100vw / var(--ar,1.7778)), var(--ar-cap,1080px))}
.band>img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.band>.veil{position:absolute;inset:0;z-index:-1}
.band .wrap{position:relative}
.band h1,.band h2{color:var(--cream)}
.band .lede,.band p{color:var(--cream)}

/* ==========================================================================
   5.2 HERO
   ========================================================================== */
.hero{min-height:clamp(560px,80vh,760px);display:flex;align-items:center}
/* When a hero carries .is-whole its height is the photograph's, so the fixed minimum above
   becomes a floor rather than the ruler. Both are min-heights; the larger simply wins. */
.hero>img.bg{object-position:center 55%}
.hero>.veil{background:var(--veil-hero)}
/* the credential sits in the corner of the photograph, clear of the copy */
.dmc-hero{position:absolute;top:clamp(1.5rem,3vw,2.5rem);right:clamp(1.25rem,4vw,3rem);
          width:clamp(120px,11vw,168px);height:auto;z-index:1}
@media (max-width:700px){.dmc-hero{width:104px;top:1.1rem;right:1.1rem}}
.hero .eyebrow{color:var(--cream)}
.hero .eyebrow .bar{background:var(--gold)}
.hero h1{color:#fff}
.hero h1{margin:1.1rem 0 1.1rem;max-width:17em}
/* the hero's h2 and h3 carry the lede and the qualifier. They are headings by
   the client's structure, so they must not inherit the section-heading scale. */
.hero-h2{font-family:var(--sans);font-weight:400;text-transform:none;text-wrap:pretty;
         font-size:clamp(1.15rem,1.9vw,1.5rem);line-height:1.4;letter-spacing:0;
         color:rgba(250,248,243,.92);max-width:34em;margin-bottom:.9rem}
.hero-h3{font-family:var(--sans);font-weight:500;
         text-transform:none;font-size:clamp(1.02rem,1.5vw,1.2rem);line-height:1.4;
         letter-spacing:0;color:#fff;max-width:30em}

/* ==========================================================================
   5.3 THE SHOWROOM
   ========================================================================== */
.room{background:var(--cream);overflow-x:clip}
.room-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
           gap:clamp(2rem,5vw,4.5rem);align-items:center}
.room-copy h2{margin:1.1rem 0 1.3rem}
.room-copy .lede{color:var(--ink);max-width:30em}
.room-copy .body{margin-top:1.1rem;color:var(--ink-78);max-width:32em}
.points{margin-top:1.7rem;max-width:32em;display:grid;gap:.6rem}
.points li{display:flex;gap:.7rem;align-items:baseline;font-size:1rem;
           color:rgba(31,36,33,.85);line-height:1.5}
.points li::before{content:"\25C6";color:var(--gold);font-size:.7rem;flex:0 0 auto}
.room-mono{font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.18em;
           text-transform:uppercase;color:var(--walnut);margin-top:1.8rem}
.room-fig img{border-radius:4px;box-shadow:var(--sh);width:100%;height:100%;
              max-height:560px;object-fit:cover}
@media (min-width:881px){
  .room-fig{margin-right:calc(-1 * (50vw - var(--wrap)/2 + clamp(1.25rem,4vw,3rem)))}
  .room-fig img{max-height:600px}
}
@media (max-width:880px){
  .room-grid{grid-template-columns:1fr}
  .room-fig{margin-right:0}
  .room-fig img{max-height:420px}
}

/* ==========================================================================
   5.4 ON THE FLOOR
   ========================================================================== */
.floor{background:var(--paper)}
.floor h2{margin-bottom:1.2rem}
.floor .lede{color:var(--ink-78);max-width:44em}
/* Six equal 4:3 tiles. The mirrored 5-4-3 spread was tried and pulled: unequal
   widths meant unequal heights, which read as a ragged masonry with voids. */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:3.2rem}
.grid figure{margin:0}
.grid img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;border-radius:4px}
/* captions in the serif, sentence case — a caption is a name, not a label */
.grid figcaption{font-family:var(--mono);font-weight:400;font-size:.8rem;
                 color:var(--ink);margin-top:.8rem;
                 transition:padding-left .22s cubic-bezier(.25,1,.5,1)}
.grid figure:hover figcaption{padding-left:.4rem}
.routing{margin-top:2.6rem;color:var(--ink-78);font-size:.98rem}
.routing a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;font-weight:700}
@media (max-width:880px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid{grid-template-columns:1fr}}
@media (pointer:coarse){.routing a{min-height:44px;display:inline-flex;align-items:center}}

/* ==========================================================================
   5.4b ALSO ON THE FLOOR — the secondary row. Smaller, quieter, 4-up: the
   room is not only game tables, and a designer specifying a whole space
   needs to know that without giving these equal billing.
   ========================================================================== */
.also{margin-top:clamp(2.5rem,5vw,3.75rem);padding-top:clamp(2rem,4vw,2.75rem);
      border-top:1px solid var(--line)}
.also-label{font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.18em;
            text-transform:uppercase;color:var(--walnut)}
.also-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:1.4rem}
.also-grid figure{margin:0}
.also-grid img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;border-radius:4px}
.also-grid figcaption{font-family:var(--mono);font-weight:400;font-size:.74rem;
                      color:var(--ink);margin-top:.6rem}
@media (max-width:880px){.also-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.also-grid{grid-template-columns:1fr}}

/* THE OLD BRAND BLOCK IS GONE, and it was doing harm on its way out. The r8 home page
   had a "lines" section — an argument on the left, a grid of supplier marks on the right —
   which the 4a redesign replaced with the badge wall. Its rules stayed behind, and one of
   them was a bare `.lines{background:var(--mist)}`.
   Custom Built's cards happen to call their bullet list by the same name. So every one of
   those three cards was drawing a mist panel it never asked for, inside a mist header
   strip, inside a bordered card: three nested tinted boxes, from a class collision rather
   than from a decision. Found by sampling the computed background of each level rather
   than reading the rule that was supposed to own it — `.cb-card .lines` sets no
   background, so the rule that mattered was 500 lines away in another file.
   The whole block is deleted: nothing on any of the 555 pages used lines-grid, lines-lead
   or marks. A dead rule with a common name is worse than dead code; it is a trap. */

/* ==========================================================================
   5.6b THE PROGRAM — the one handoff to billiardfactory.com/designers,
   moved out of the spec sheet into a block of its own so the page hands off
   once, deliberately, instead of twice.
   ========================================================================== */
.program{background:var(--paper);overflow-x:clip}
.program-grid{display:grid;grid-template-columns:1fr 1fr;
              gap:clamp(2rem,5vw,4.5rem);align-items:center}
.program h2{margin:.9rem 0 1.2rem}
.program .lede{color:var(--ink-78);max-width:30em}
.program-fig img{border-radius:4px;box-shadow:var(--sh);width:100%;height:auto;
                 max-height:460px;object-fit:cover}
@media (min-width:881px){
  .program-fig{margin-left:calc(-1 * (50vw - var(--wrap)/2 + clamp(1.25rem,4vw,3rem)))}
}
@media (max-width:880px){
  .program-grid{grid-template-columns:1fr}
  .program-fig{margin-left:0;order:-1}
}

/* ==========================================================================
   5.5 CUSTOM
   ========================================================================== */
.custom>.veil{background:var(--veil-custom)}
/* full bleed, copy centred in the band — the one section that is pure statement,
   so it gets the whole frame and the middle of it */
.custom{min-height:clamp(420px,58vh,620px);display:flex;align-items:center;text-align:center}
.custom .wrap{width:100%}
.custom h2{margin:0 auto 1.2rem;max-width:18em}
.custom p{margin:0 auto;max-width:36em;font-family:var(--sans);
          font-size:clamp(1.15rem,1.9vw,1.45rem);line-height:1.45}

/* ==========================================================================
   5.6 PROOF — spec sheet
   ========================================================================== */
.proof{background:var(--mist)}
/* A centred stack, not two columns: the claim, then the proof of it at full
   size, then the numbers. The parent's mark hangs centred beneath its own
   storefront so the two read as one object. */
.proof{text-align:center}
.proof-stack{display:grid;gap:clamp(2rem,4vw,3.2rem);justify-items:center}
.proof-lead{max-width:44em}
.proof-fig{margin:0;width:min(100%,880px)}
.proof-fig img{width:100%;height:auto;border-radius:4px;box-shadow:var(--sh);
               aspect-ratio:3/2;object-fit:cover;display:block}
.proof-fig figcaption{margin-top:clamp(1.4rem,2.6vw,2.2rem)}
.proof-mark{width:clamp(220px,26vw,340px);margin:0 auto}
/* share the photograph's measure: full width pushed each numeral ~150px from
   its own description and they stopped reading as a pair */
.spec{width:min(100%,880px);margin-inline:auto;text-align:left}
.proof-lead h2{margin:1.1rem 0 1.3rem}
.proof-lead .law{font-family:var(--sans);font-weight:500;font-size:clamp(1.15rem,1.8vw,1.35rem);
                 line-height:1.5;color:var(--ink)}
/* the parent's mark and its storefront fill the column that was empty below
   the law statement — this is the block where the brand has to be felt */
.spec{border-top:1px solid rgba(31,36,33,.2)}
.spec-row{display:grid;grid-template-columns:clamp(9rem,18vw,15rem) 1fr;gap:1.4rem;
          align-items:baseline;padding:1.15rem 0;border-bottom:1px solid var(--line)}
.spec-row .num{font-family:var(--mono);font-weight:400;
               font-size:clamp(2.6rem,5vw,4.2rem);color:var(--ink);
               line-height:1;letter-spacing:-.01em;white-space:nowrap}
/* a duration is a longer token than a year or a count — step it down so it
   stays inside the numeral column instead of running into the description */
.spec-row .num--sm{font-size:clamp(1.5rem,2.9vw,2.4rem)}
.spec-row p{font-size:.95rem;color:var(--ink-78)}
.spec-row .t{font-weight:700;color:var(--ink)}
.spec-close{font-family:var(--sans);font-weight:500;font-size:1.2rem;margin-top:1.6rem;color:var(--ink)}
.handoff{margin-top:2.4rem;padding-top:1.8rem;border-top:1px solid rgba(31,36,33,.2)}
.handoff p{color:var(--ink-78);max-width:34em;margin-bottom:1.4rem}
@media (max-width:880px){.proof-lead{max-width:none}}
@media (max-width:480px){.spec-row{grid-template-columns:1fr;gap:.3rem}}

/* ==========================================================================
   5.7 VISIT — ink band + door plate
   ========================================================================== */
/* The ink bookend: the page ends the way the brand starts, gold on ink. */
.visit{background:var(--ink);color:var(--cream)}
.visit h2{color:#fff;margin:1.1rem 0 .5rem}
.visit .eyebrow{color:var(--gold)}
.visit .suiteline{font-family:var(--sans);font-weight:700;font-size:.78rem;
                  letter-spacing:.18em;text-transform:uppercase;
                  color:rgba(250,248,243,.7);margin-bottom:1rem}
.visit .eyebrow .bar{background:var(--gold)}
.visit-grid{display:grid;grid-template-columns:1.15fr .85fr;
            gap:clamp(2rem,5vw,4.5rem);align-items:center}
.visit .lede{color:rgba(250,248,243,.92);max-width:32em}
.visit .callline{margin-top:1.4rem;color:rgba(250,248,243,.92)}
.visit .callline a{color:var(--cream);text-decoration:underline;text-underline-offset:3px;font-weight:700}
.visit .addr-line{font-family:var(--mono);font-size:1rem;
             color:rgba(250,248,243,.78);margin-top:1.5rem;word-break:break-word}
/* Paper plate on the ink band — the spec's orientation, and the only ground
   the gold+black lockup is allowed to sit on. */
.doorplate{background:var(--paper);border-radius:6px;box-shadow:var(--sh);
           padding:clamp(2rem,3.2vw,2.9rem);text-align:center;
           max-width:400px;justify-self:center;width:100%}
.doorplate .gfp-logo{width:min(240px,80%);margin:0 auto}
.doorplate .dmc-logo{display:block;width:min(170px,55%);height:auto;margin:0 auto}
/* rhythm: the suite number and the address are ONE block, so they sit tight
   together and the rules that bracket them get the generous gaps */
.doorplate hr{border:none;border-top:1px solid var(--line);margin:1.75rem auto;width:56px}
/* the DMC wordmark ships white for dark grounds; on the paper plate it has to
   be ink. The pinwheel keeps its own colours. */
.doorplate .dmc-logo path[fill="#fff"]{fill:var(--ink)}

/* Kept, with a NEW reason. This rule existed because Vollkorn defaulted to
   old-style figures, where 1 reads as I and 0 as O — and Vollkorn is gone.
   Fragment Mono and Helvetica both ship lining figures, so on the faces the
   site actually loads this is a no-op. It stays as a guard: every selector
   here is a place where a numeral carries information a reader has to act on
   (a suite number, an address, a phone number), and if a face is ever swapped
   in that defaults to old-style, these are exactly the lines that must not
   silently become ambiguous. */
.doorplate .suite,.doorplate .addr,.cta-contact,.visit2-addr,.addr-line,
.visit .callline,.spec-row .num,.spec-row p,.room-mono,.lede{
  font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}

/* the NAME is the engraved moment — a suite number is an address line, not a
   headline, and the lockup came off the plate so the name is not said twice */
.doorplate .suite{font-family:var(--sans);font-weight:700;
                  font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:.01em;
                  line-height:1.15;color:var(--ink);text-wrap:balance}
.doorplate .addr{font-family:var(--mono);font-size:.98rem;line-height:1.75;
                 color:rgba(31,36,33,.75);margin-top:.6rem}
@media (max-width:820px){
  .visit-grid{grid-template-columns:1fr}
  .doorplate{justify-self:start}
}
@media (pointer:coarse){.visit .callline a{min-height:44px;display:inline-flex;align-items:center}}

/* ==========================================================================
   5.8 FOOTER
   ========================================================================== */
/* The footer is the closing block's LAST ROW, not a band of its own. It carries
   no top padding, because the block above it carries no bottom padding and the
   hairline inside this element is the whole seam. The strip that used to sit
   between them on a paper ground is gone: what was a light band interrupting two
   dark ones is now this row, on the same ground as the ask. */
/* Same ground as the block above, and NO top border: the gold rule that used to
   sit here was the seam between two footers, and there is only one footer now. */
.site-foot{background:var(--close-bg);color:var(--cream)}
/* An email address is one unbreakable token, and Fragment Mono is wider per
   character than the sans this used to be set in — so at the widths where the
   closing block goes two-column, jana@gameroomfurniturepartners.com ran 21px past
   the viewport, hidden by overflow-x:hidden on <body>. Every mono block that
   carries the address gets the same treatment; there is nowhere else for a long
   token to go but a second line. The footer's own copy of this was dropped with
   the duplicate contact block — these two selectors are the ones still standing. */
.cta-contact a,.visit2-addr a{overflow-wrap:anywhere}
.foot-legal{margin:1.3rem 0 0;font-size:.8rem;color:rgba(250,248,243,.7);font-family:var(--mono)}

/* ==========================================================================
   MOTION — three moves, all off under reduced-motion
   ========================================================================== */
/* The reveal is an ENHANCEMENT, never a gate. Content is visible by default;
   it is only hidden once the head script has confirmed it can un-hide it
   (`.js-reveal` on <html>). A prerender, a headless capture, a background tab
   and a no-JS reader all never fire IntersectionObserver — they get the whole
   page, not a blank one. */
.js-reveal .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js-reveal .reveal.in{opacity:1;transform:none}

/* belt and braces: printing must never lose a section to the staging state */
@media print{.js-reveal .reveal{opacity:1!important;transform:none!important}}

@media (prefers-reduced-motion:reduce){
  .js-reveal .reveal{opacity:1;transform:none;transition:none}
  .btn,.points li,.grid figcaption,.nav a,.cred-link,.routing a{transition:none}
  .cred-link:hover{transform:none}
  .btn:hover{transform:none;box-shadow:none}
  .points li:hover{padding-left:0}
  .grid figure:hover figcaption{padding-left:0}
  *{scroll-behavior:auto}
}


/* ==========================================================================
   HOME PAGE — design article 4a, 2026-08-17.
   Replaces the r8 section set (a room not a store / on the floor / the lines /
   custom / proof / program / visit). The three problems it fixes, in the
   designer's own words: a departments band hands amplitude into the click, the
   badge wall becomes a calm typographic grid, and the door plate stays the
   visit's anchor. Every department carries its accent from this page onward.
   ========================================================================== */

/* --- hero: the photo band ------------------------------------------------- */
/* mono kicker rather than the tracked-sans eyebrow. Gold on a veiled photograph is the one
   ground §7 lets gold letter on — but that permission was written against a DARK room, and
   it does not survive a bright one. On the home page's 2026-08-19 photograph, a sunlit loft,
   gold measured 2.21:1 at the worst pixel behind the copy against the 4.5:1 a small line
   needs, and the cream-88 lede measured 4.03:1. Both failed at the inherited .62 veil.
   This is the third bright photograph in two days to force the same two changes — a deeper
   veil and cream lettering — so the pair now has a name: .is-bright. The TICK stays gold in
   every case, because a 22x3px bar is a rule and the ban is on gold as text. */
.kicker-m{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);margin:0}
.band.is-bright>.veil{background:rgba(20,16,11,.74)}
.band.is-bright .kicker-m{color:var(--cream)}
.band.is-bright .kicker-m .tick{background:var(--gold)}
.hp-hero h1{font-size:var(--h1-hero);line-height:1;letter-spacing:-.03em;
  max-width:13em;margin:1.25rem 0 1.1rem}
.hp-hero .lede{max-width:34em}

/* --- 01 departments: the wayfinding band ---------------------------------- */
.depts{background:var(--cream)}
.sec-m{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--walnut);margin:0 0 .875rem}
.depts h2{margin:0 0 .875rem}
.depts>.wrap>p{max-width:70ch;color:var(--ink-78)}
/* TWO EVEN ROWS OF THREE. (Joshua, 2026-08-18: "should not be broken up into 2
   sections. it should be 2 Rows of 3 all the same size.") It was five department
   tiles over a second, separately-headed row of three room shots — one band wearing
   two headings, and a 5-then-3 rhythm that never resolved. Six tiles at three
   across resolves flush with no orphan, and the sixth is Custom built, which is a
   real destination already in the nav rather than a tile invented to fill a slot.
   The three room shots came out: all three were Furniture categories, which the
   Furniture tile already covers. */
/* FIVE TILES, NOT SIX, since Outdoor seating left the floor on 2026-08-24 and it was
   the only category in the Outdoor department — so the department went with it.
   Joshua's ruling was "2 Rows of 3 all the same size", and five cannot make even rows
   of three. Five across is the arrangement that keeps his actual requirement — every
   tile the same size, no ragged row — on the width most of this audience uses. The
   3-column step between 620 and 1080 is the one place it lands 3+2; flagged rather
   than hidden. */
.dept-grid{list-style:none;margin:2rem 0 0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media (min-width:1080px){.dept-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* The 3px top rule is the department's accent, and it is the ONLY place the
   accent appears on this page — as a rule, never as text, which is the ban the
   token block records. */
.dept-tile{display:block;background:var(--paper);border:1px solid var(--line);
  border-top:3px solid var(--acc,var(--dept-pool));padding:1.25rem;
  text-decoration:none;color:var(--ink);height:100%;
  transition:transform .22s cubic-bezier(.25,1,.5,1),box-shadow .22s cubic-bezier(.25,1,.5,1)}
.dept-tile:hover{transform:translateY(-3px);box-shadow:var(--sh-card)}
.dept-tile.d-pool{--acc:var(--dept-pool)}
.dept-tile.d-shuffle{--acc:var(--dept-shuffle)}
.dept-tile.d-furniture{--acc:var(--dept-furniture)}
.dept-tile.d-games{--acc:var(--dept-games)}
.dept-tile.d-outdoor{--acc:var(--dept-outdoor)}
.dept-tile img{width:100%;height:clamp(150px,14.5vw,205px);object-fit:cover;
  display:block;margin-bottom:.875rem;background:var(--mist)}
/* THE OUTDOOR EXCEPTION IS GONE, 2026-08-18. A rule lived here to hold the one
   department with no room photograph: every outdoor image was a catalogue cutout on
   white, so that tile alone used contain on its own ground rather than being cropped
   like a room shot. Its comment said to remove it the day an outdoor room was
   photographed and that the tile would need no other change. Joshua supplied that
   photograph, and a room for Custom built with it, so both predictions held — the
   rule came out and the two tiles took no other edit. All six tiles are rooms. */
.dept-tile h3{font-family:var(--sans);font-weight:700;font-size:1.0625rem;
  letter-spacing:-.01em;margin:0 0 .4rem}
.dept-tile span{display:block;font-family:var(--mono);font-size:.66rem;
  line-height:1.7;color:var(--walnut)}
/* Custom built is the sixth department for wayfinding purposes, so it takes an
   accent like the other five. Cognac, because that is the ground its own CTA sits
   on site-wide and the colour already means "talk to us about building it". */
.dept-tile.d-custom{--acc:var(--cognac)}

@media (max-width:620px){.dept-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* --- TO THE TRADE: the catalog transition --------------------------------- */
/* Copy left on ink, photograph filling the right half to the page edge. The
   heading is one of the three verbatim client blocks — see .verbatim. */
.trade{background:var(--ink);color:var(--cream);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.trade-copy{padding:clamp(2.5rem,5.6vw,4.5rem) clamp(1.25rem,4vw,3.5rem);
  display:flex;flex-direction:column;justify-content:center}
.dia-kicker{display:flex;align-items:center;gap:.7rem;margin:0 0 1.1rem}
.dia-kicker i{width:10px;height:10px;background:var(--gold);transform:rotate(45deg);flex:0 0 auto}
.dia-kicker span{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;color:var(--gold)}
.trade h2{font-size:var(--h2-stmt);line-height:1;letter-spacing:-.025em;
  color:var(--cream);margin:0 0 1.25rem}
.trade p{color:var(--cream-88);max-width:44ch}
.trade-fig{margin:0;min-height:clamp(240px,32vw,460px);min-width:0}
.trade-fig img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:820px){
  .trade{grid-template-columns:1fr}
  .trade-fig{min-height:240px;order:-1}
}

/* --- 03 names you already spec: the badge wall ---------------------------- */
/* The ONE place supplier names surface on the whole site, by ruling. A hairline
   grid rather than a tinted container: an empty cell can then never paint itself
   grey, the failure the floor grid's marks block already documents. */
.badges{background:var(--mist)}
.badges-h{display:flex;justify-content:space-between;align-items:baseline;
  gap:1rem;flex-wrap:wrap;margin:0 0 1.4rem}
.badges-note{font-family:var(--mono);font-size:.62rem;color:var(--walnut);margin:0;
  text-align:right}
.badge-grid{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--line);border-left:1px solid var(--line)}
.badge-grid li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:clamp(1.4rem,2.6vw,2rem);display:flex;align-items:center;justify-content:center;
  min-height:132px}
/* A 34px cap inside an 88px cell made seven marks a designer is meant to
   RECOGNISE too small to read, which defeats the whole block. 58px in a 132px
   cell is where a wordmark resolves. The files are already served at h-160, so
   this asks nothing new of the images. */
.badge-grid img{max-height:58px;max-width:100%;width:auto;object-fit:contain}
/* OPTICAL CAP, NOT MEASURED CAP. Three of these are badge marks — a shield, a
   roundel, an enclosed vector — and a badge set to the same measured height as a
   wordmark shouts, because it fills its box in both directions where lettering
   fills one. The marks block on the old floor grid already makes this same
   correction; this is that rule, applied here. */
.badge-grid li.is-badge img{max-height:46px}
/* Six marks, three across, two rows (Joshua, 2026-09-08: California House off the
   wall, the "rest of the wall" type cell gone, "just stack the logos"). Six divides by
   three and by two, so the grid closes at both widths with no filler cell. */
@media (max-width:760px){.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* --- the Designer Program block ------------------------------------------- */
/* 2px forest rule on the TOP EDGE ONLY — side stripes are banned — and forest
   appears nowhere else on the site. Cream on forest is 7.18:1. */
/* MEASURED BEFORE CHANGING IT, because the fault was not where it looked. The
   horizontal gap between the copy and the picture was only 56px — the waste was all
   vertical: 202px of standard section padding wrapped around 292px of copy, plus
   108px of dead height because a 400px portrait picture stood beside 292px of text.
   A 610px band to say four things.
   So this stops being a wrapped grid inside standard padding and becomes what the
   TO THE TRADE band on the home page already is: the copy holds one half with its
   own padding and SETS the height, the photograph holds the other and takes whatever
   that height turns out to be, out to the page edge. There is nothing left for the
   two halves to disagree about, so there is no air between them to trim.
   The 2px forest rule on the top edge is unchanged — side stripes are still banned,
   and forest still appears nowhere else on the site. */
.dp{background:var(--paper);border-top:2px solid var(--forest);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.68fr)}
.dp-copy{padding:clamp(2.25rem,4.2vw,3.25rem) clamp(1.25rem,4vw,3.5rem);
  display:flex;flex-direction:column;justify-content:center}
/* The button is a flex item now, and a flex item in a column stretches to the full
   cross axis by default — it ran the whole width of the copy half, which reads as a
   bar rather than a button. It sizes to its label. */
.dp-copy .btn{align-self:start}
.dp .sec-m{color:var(--forest)}
.dp h2{margin:0 0 .75rem;max-width:20em}
/* The proof line was .7rem — 11.2px under a 43px heading — and ran the full width of
   the copy column, so it broke mid-phrase ("white-glove delivery / and install") and
   read as a caption rather than as the three facts it carries. Larger, and given a
   measure so the break lands between facts instead of inside one. */
.dp-proof{font-family:var(--mono);font-size:.8rem;line-height:1.9;color:var(--ink-78);
  margin:0 0 1.7rem;max-width:60ch}
/* THREE FACTS, AND A BREAK ONLY BETWEEN THEM. Wrapping alone cannot do this: the
   browser fills each line greedily, so at every measure I tried it broke inside a
   fact — "white-glove / delivery and install" — which reads as two half-claims.
   Each fact is its own unbreakable span, so the only place a line CAN break is at a
   separator. That holds at every width instead of at one lucky one.
   THE PHONE IS THE EXCEPTION, and it has to be. The longest fact is 46 characters of
   mono, about 353px, and a 320px viewport has roughly 280px of room — so nowrap there
   forced the whole copy column 64px past the edge, invisible behind overflow-x:hidden
   and caught only by measuring. Below 520px the facts wrap internally, because on a
   phone they simply cannot not. The threshold is deliberately generous rather than
   the 400px the arithmetic allows: if Fragment Mono has not loaded, the fallback mono
   is wider per character and the same rule has to survive that too. */
.dp-proof span{white-space:nowrap}
@media (max-width:520px){.dp-proof span{white-space:normal}}
.btn-forest{background:var(--forest);color:var(--cream)}
.btn-forest:hover{background:var(--ink);color:var(--cream)}
/* The picture fills its half. It is a 4:5 portrait and this half is landscape-ish, so
   `cover` crops the sides rather than the top and bottom — which is the right axis to
   lose on this photograph, because the subject is a person leaning over a table in the
   middle of the frame and the crop takes room off the edges. A min-height stops the
   half collapsing on a short copy block. */
/* THE PICTURE MUST NOT DRIVE THE HEIGHT, and getting this wrong is what made the band
   TALLER than the version it replaced. `height:100%` on a grid-item image cannot
   resolve while the row is still being sized, so the browser falls back to the
   image's own aspect ratio at full column width: 777px wide at 4:5 is 964px tall, and
   that became the band. The TO THE TRADE band carries the same declarations and never
   showed it, because its photograph is landscape — at the same width its aspect height
   lands under the copy's, so it never wins the row.
   Taking the image out of flow entirely is what makes it safe for any aspect ratio:
   the row is sized by the copy and by this half's own min-height, and the picture
   fills whatever that comes to. */
.dp-fig{margin:0;min-width:0;position:relative;min-height:clamp(260px,24vw,380px);
  background:var(--mist)}
.dp-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:820px){
  /* stacked, the picture goes back to a bounded band rather than a full-width slab */
  .dp{grid-template-columns:1fr}
  .dp-fig{min-height:clamp(240px,42vw,320px)}
}

/* --- the ink visit band, with the door plate as its anchor ---------------- */
.visit2{background:var(--close-bg);color:var(--cream);padding-bottom:0}
.visit2-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(1.75rem,5vw,4rem);align-items:center}
/* The REVERSED lockup — gold monogram, white wordmark — is the only GR artwork
   allowed directly on ink; the gold+black one always gets paper. */
.visit2 .mark-gfp-rev{width:min(200px,58%);margin-bottom:1.4rem}
.visit2 .sec-m{color:rgba(250,248,243,.7)}
.visit2 h2{color:var(--cream);margin:0 0 .9rem}
.visit2-addr{font-family:var(--mono);font-size:.75rem;line-height:2;color:var(--cream-88);margin:0}
.visit2-addr a{color:var(--cream);text-decoration:underline;text-underline-offset:3px}
.visit2-acts{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.6rem}
.visit2-acts .mark-dmc-rev{width:clamp(76px,8vw,110px);flex:0 0 auto}
/* THE DOOR PLATE — paper on ink, the thing a designer can literally walk to. */
.plate{background:var(--paper);color:var(--ink);padding:clamp(1.75rem,3vw,2.5rem);
  text-align:center;max-width:360px;width:100%;justify-self:center;box-shadow:var(--sh)}
.plate .dia{width:10px;height:10px;background:var(--gold);transform:rotate(45deg);
  display:block;margin:0 auto 1.1rem}
.plate .suite-n{font-family:var(--sans);font-weight:700;
  font-size:clamp(2.25rem,4vw,3.25rem);line-height:1;letter-spacing:-.02em;margin:0}
.plate .suite-a{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;line-height:2;color:var(--walnut);margin:.9rem 0 0}
@media (max-width:820px){
  .visit2-grid{grid-template-columns:1fr}
  .plate{justify-self:start}
}
@media (pointer:coarse){.visit2-addr a{min-height:44px;display:inline-flex;align-items:center}}


/* ==========================================================================
   GALLERY — design article 3c, 2026-08-18. Hand-built page, direct edit.
   Image-led: featured installs, then the 54-photo record, captioned honestly.
   ========================================================================== */

/* The hero is TYPE ON CREAM, not a photographic band — the one hero on the site
   that is not a photograph. On a page whose entire argument is the photography
   below it, a hero image competes with the work instead of introducing it. */
.gal-hero{background:var(--cream);padding-top:clamp(2.5rem,5.5vw,4rem);
  padding-bottom:clamp(1.5rem,3vw,2.5rem)}
.gal-hero .kicker-m{color:var(--walnut)}
.gal-hero .kicker-m .tick{display:inline-block;width:22px;height:3px;background:var(--gold);
  vertical-align:middle;margin-right:.65rem}
.gal-hero h1{font-size:var(--h1-hero);line-height:.98;letter-spacing:-.03em;
  margin:1.25rem 0 1rem;text-transform:none}
/* The lede was ink-78, written when this hero was a cream plate. It is now a photo
   under the is-bright dark veil, and 78% ink on a near-black veil read as grey mud
   (Joshua, 2026-09-08: "hard to read"). Cream at 92%, the same value the Visit band
   uses on its dark ground: 12:1 against the veil. */
.gal-hero .lede{max-width:44em;color:rgba(250,248,243,.92)}

/* 01 Featured installs — pure image, no captions. One large beside two stacked.
   minmax(0,1fr) on both tracks and min-height:0 on the stacked children, or the
   images' intrinsic size pushes the 420px column open and the rows stop being
   equal. */
.installs{background:var(--paper);border-top:1px solid var(--line)}
.installs-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:1.25rem}
.installs-stack{display:grid;grid-template-rows:1fr 1fr;gap:1.25rem;min-height:0}
.installs figure{margin:0;min-height:0}
.installs button{display:block;width:100%;height:100%;padding:0;border:0;
  background:var(--mist);cursor:zoom-in}
.installs img{display:block;width:100%;height:100%;object-fit:cover}
.installs-grid>figure{height:clamp(240px,29vw,420px)}
.installs-stack{height:clamp(240px,29vw,420px)}
@media (max-width:760px){
  .installs-grid{grid-template-columns:1fr}
  .installs-grid>figure,.installs-stack{height:auto}
  .installs-stack{grid-template-rows:none}
  .installs-stack figure{height:200px}
  .installs-grid>figure{height:260px}
}

/* The Designer Program block sits on MIST here (paper on the home page), per the
   shared-component spec. Forest is its one sanctioned appearance on the site. */
.dp.is-mist{background:var(--mist)}

/* 02 The photo record — 3-up, 200px, cover. The caption is a ruling: these are
   installed rooms photographed on site, they are UNGROUPED, and not one of them
   is Suite 1D102. */
.record{background:var(--cream);border-top:1px solid var(--line)}
.record-h{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  flex-wrap:wrap;margin:0 0 1.4rem}
.record-note{font-family:var(--mono);font-size:.62rem;color:var(--walnut);margin:0}
.rgrid2{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.rgrid2 figure{margin:0}
.rgrid2 button{display:block;width:100%;padding:0;border:0;background:var(--mist);cursor:zoom-in}
.rgrid2 img{display:block;width:100%;height:clamp(140px,15vw,200px);object-fit:cover}
.rgrid2 button:hover img{opacity:.92}
/* THE REST OF THE RECORD. The design draws a "+ 49 more" tile; making it a
   <details> summary means the other 49 are in the document, reachable, and
   lightbox-able — a decorative tile would leave 49 of 54 photographs on a page
   titled "The photo record · 54" unreachable. <details> toggles natively, so
   this needs no script and works with JavaScript off. */
.record-more{margin:0}
.record-more>summary{list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;text-align:center;
  /* It spans the full width rather than sitting in a grid cell, so it does not
     need a cell's height — a full-width 200px slab of mist reads as an empty
     region, not as an affordance. */
  min-height:64px;padding:1.25rem;margin-top:1.25rem;
  border:1px solid var(--line);background:var(--mist);
  font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--walnut);transition:border-color .18s ease,color .18s ease}
.record-more>summary::-webkit-details-marker{display:none}
.record-more>summary:hover{border-color:var(--gold);color:var(--ink)}
.record-more[open]>summary{display:none}
/* the revealed photographs continue the grid rather than starting a new one */
.record-more .rgrid2{margin-top:0}
@media (max-width:760px){.rgrid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.rgrid2{grid-template-columns:1fr}}

/* ==========================================================================
   PHOTO SLOTS — placeholders, and deliberately not design
   ==========================================================================
   Joshua, 2026-08-19: "Build out the pages and blocks with Stub photos or empty
   photo blocks for me to fill." A slot reserves the exact shape the finished
   photograph will occupy, labels what belongs in it, and looks unmistakably
   unfinished so it can never be mistaken for a shipped surface. It takes --ar
   the same way a real band does, so filling one does not move the layout.

   TO FILL ONE: replace the whole <figure class="slot"> with the band's normal
   image markup — <img loading="lazy" decoding="async" src="…?tr=w-1200,q-78"
   alt="…"> — keeping the same --ar. If the photograph's true ratio differs,
   change --ar to match it rather than cropping to the slot: §8, a photographic
   band is the shape of its photograph.
   COUNT THEM: grep -ro 'class="slot' grfp-site --include='*.html' | wc -l */
.slot{position:relative;display:grid;place-items:center;margin:0;padding:1.1rem;
  aspect-ratio:var(--ar,1.7778);background:var(--mist);
  border:2px dashed rgba(31,36,33,.4);text-align:center;color:var(--ink)}
.slot b{display:block;font-family:var(--sans);font-weight:700;
  font-size:clamp(.62rem,1.6vw,.72rem);letter-spacing:.14em;text-transform:uppercase;
  margin:0 0 .45rem}
.slot span{display:block;max-width:32ch;font-family:var(--mono);
  font-size:clamp(.66rem,1.7vw,.76rem);line-height:1.6}
.slot i{display:block;margin:.55rem 0 0;font-style:normal;font-family:var(--mono);
  font-size:clamp(.6rem,1.5vw,.68rem);color:var(--ink-78)}
/* On an ink or accent ground the mist fill reads as a hole. Same object, inverted. */
.on-dark .slot,.slot.is-dark{background:rgba(250,248,243,.06);
  border-color:rgba(250,248,243,.45);color:var(--cream)}
.on-dark .slot i,.slot.is-dark i{color:var(--cream)}

/* ==========================================================================
   6.2b · CUSTOM FIRST — the home page's opening argument
   ==========================================================================
   The feedback that produced this band: "GFP is missing the mark on attracting
   custom jobs … would really like to strategize a front and center message …
   that we are the leaders in custom furniture instead of just 'here is
   brunswick' and 'here are our stock brands'."
   It sits between the hero and the department grid on purpose. Custom used to be
   one tile out of six, three sections down, which is the same as saying it is one
   more category — and the badge wall two sections later was the loudest thing on
   the page. The order now states the argument before it states the inventory. */
.custom-lead{background:var(--paper)}
.custom-lead h2{max-width:26em;margin:.2rem 0 0}
.custom-lead .lede{max-width:64ch;margin:1rem 0 0;text-wrap:pretty}
.cu-work{display:grid;gap:1rem;margin:clamp(1.6rem,4vw,2.4rem) 0 0;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
/* A filled photograph and an empty slot are interchangeable in this row: both are
   a figure carrying --ar, so swapping one for the other never moves the layout. */
.cu-work .cu-shot{margin:0;min-width:0}
.cu-work .cu-shot img{display:block;width:100%;aspect-ratio:var(--ar,1.7778);
  object-fit:cover}
/* The steps are a real sequence — measure, draw, choose, install — so they are
   numbered. §7 bans numbered eyebrows as scaffolding; a genuine ordered process
   is the exception the rule names. */
.cu-steps{list-style:none;counter-reset:cu;margin:clamp(1.8rem,4vw,2.6rem) 0 0;padding:0;
  display:grid;gap:1.4rem 1.6rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.cu-steps li{counter-increment:cu;padding-top:.9rem;border-top:1px solid rgba(31,36,33,.18)}
.cu-steps li::before{content:counter(cu,decimal-leading-zero);display:block;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--walnut);
  margin:0 0 .5rem}
.cu-steps h3{font-family:var(--sans);font-weight:700;font-size:1rem;margin:0 0 .35rem}
.cu-steps p{margin:0;font-size:.92rem;color:var(--ink-78);max-width:34ch}
.custom-lead .btn-row{margin-top:clamp(1.8rem,4vw,2.6rem)}

/* ==========================================================================
   6.5b · C.L. BAILEY — the brand block, home page
   ==========================================================================
   Joshua asked for "a CL Bailey Image and talk about the Brand, not just a
   link", directly below the badge wall. Copy left, photograph right, on cream
   so it reads as its own chapter rather than a third shelf of product.
   ⚠️ Draft: see the markup, and §8 on supplier marks. */
.clb-brand{background:var(--cream)}
/* COPY, THEN THE PHOTOGRAPH FULL WIDTH — not two columns, and the numbers made that
   call rather than taste. The photograph Joshua supplied is 16:9 (1376x768), and in a
   side-by-side the narrow column gave two bad options: fill it and cover crops 40.7% at
   1440 and 50% at 860 — the exact thing §8 bans — or give it its true ratio and get a
   479x267 picture with 91-126px of dead space beside the copy, which is the "too much
   white space and the image way too big/small" note from 2026-08-19 in reverse.
   Full width below the copy, it is 1104x616 at 1440: the whole frame, no crop, no gap. */
.clb-brand-grid{display:grid;gap:clamp(1.4rem,3.4vw,2.6rem);grid-template-columns:1fr}
/* THE C.L. BAILEY MARK, leading the copy column. Capped by HEIGHT and left to find
   its own width: the file is 2039x550 (3.71:1), so a width cap would make it tower
   on a phone. The height is read against the badge row's own numbers up the page — 58px
   is where a WORDMARK resolves in a 132px cell and an enclosed mark sits below that
   at 46px, but those share a row with six competitors. This one identifies its own
   band, so it caps at 80px — above the wordmark number, still well short of the h2
   beneath it, and 208px wide at 390 where the badge-row copy of this same file is
   less than half that. */
.clb-brand-mark{display:block;height:clamp(56px,5.8vw,80px);width:auto;max-width:100%;
  margin:0 0 clamp(.9rem,1.8vw,1.25rem)}
.clb-brand h2{margin:.2rem 0 0;max-width:22em}
.clb-brand .lede{max-width:56ch;margin:1rem 0 0;text-wrap:pretty}
.clb-brand-note{margin:.9rem 0 0;font-family:var(--mono);font-size:.78rem;
  line-height:1.8;color:var(--ink-78);max-width:52ch}
.clb-brand .btn-row{margin-top:clamp(1.4rem,3vw,2rem)}
/* A filled photograph and an empty slot are interchangeable here too: both are a
   figure carrying --ar, so filling one never moves the layout. */
.clb-brand-grid .clb-shot{margin:0;min-width:0}
.clb-brand-grid .clb-shot img{display:block;width:100%;aspect-ratio:var(--ar,1.7778)}
