/* W2_FONT_TRUTH_V1 — THE ONLY @font-face TABLE IN THE CONSTRUCTOR.
   Every other declaration was deleted, not overridden:
     w2-merged.css carried "ALS" six times (three duplicate pairs) and
     Bagel Fat One / WLT Brand pointing at the same file under two names.

   What was actually wrong before this file existed
   ------------------------------------------------
   - Montserrat was declared on 17 elements — section titles, pick labels, the
     price label and the ADD TO CART button — and loaded by nobody. All of it
     rendered in the OS fallback.
   - DM Sans is the body font. It was fetched by w2-checkout.js, i.e. only when
     the payment sheet opened: the whole app re-flowed into a different typeface
     at the checkout step. Now it is here, local, and first.
   - ALS shipped as .otf (62 KB for two weights). The same two weights are
     23 KB as woff2.
   - The Google Fonts <link> in index.html sat inside <noscript>: it fired only
     for users with JS disabled, i.e. never.

   Vietnamese and Russian
   ----------------------
   DM Sans and Syne carry 13 and 8 of the 256 Vietnamese codepoints; ALS carries
   none. Their unicode-range below therefore STOPS before U+1E00, and Manrope —
   properly subsetted, and already the Vietnamese face on mrhost.asia — is
   declared under the same family names to catch those glyphs. This is family
   composition by unicode-range, the mechanism Google Fonts itself ships, not a
   fallback stack: the selectors never change, the right file just wins.
   Cyrillic goes to ALS where ALS is the family, and to Manrope otherwise.

   Print fonts (Barlow / Permanent Marker / Caveat) are NOT here. They paint the
   word ON THE GARMENT and are still served by Google; their <link> moved out of
   deferred JS into <head> so the customer stops seeing the wrong font on their
   own shirt for the first second. Making them local needs the files. */

/* ── latin core: what these faces actually cover ─────────────────────────── */
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/DMSans-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0259,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2113,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/DMSans-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0259,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2113,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/DMSans-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0259,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2113,U+2122,U+2212,U+FEFF,U+FFFD;}
/* 700-900 on one file: faux-bold on top of a Bold is a smear, and we have no 800. */
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/DMSans-700.woff2") format("woff2");font-weight:700 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0259,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2113,U+2122,U+2212,U+FEFF,U+FFFD;}

@font-face{font-family:"Syne";src:url("/miniapp/construct/fonts/Syne-700.woff2") format("woff2");font-weight:600 700;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0259,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2113,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:"Syne";src:url("/miniapp/construct/fonts/Syne-800.woff2") format("woff2");font-weight:800 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0259,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2113,U+2122,U+2212,U+FEFF,U+FFFD;}

/* ALS keeps Cyrillic — it is the Russian UI face — and stops before Vietnamese. */
@font-face{font-family:"ALS";src:url("/miniapp/construct/fonts/ALSDirect-400.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0301,U+0400-04FF,U+2000-206F,U+20A0-20CF,U+2113,U+2116,U+2122,U+FEFF,U+FFFD;}
@font-face{font-family:"ALS";src:url("/miniapp/construct/fonts/ALSDirect-700.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-024F,U+0301,U+0400-04FF,U+2000-206F,U+20A0-20CF,U+2113,U+2116,U+2122,U+FEFF,U+FFFD;}

/* The brand mark. One file, two names, because both names are already in use. */
@font-face{font-family:"Bagel Fat One";src:url("/miniapp/construct/fonts/BagelFatOne.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"WLT Brand";src:url("/miniapp/construct/fonts/BagelFatOne.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}

/* ── Vietnamese: the market. Loaded only when a Vietnamese glyph appears. ─── */
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-vietnamese-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-vietnamese-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-vietnamese-600.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}

@font-face{font-family:"Syne";src:url("/miniapp/construct/fonts/manrope-vietnamese-600.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:"ALS";src:url("/miniapp/construct/fonts/manrope-vietnamese-400.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap;
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:"ALS";src:url("/miniapp/construct/fonts/manrope-vietnamese-600.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}

/* ── latin-ext beyond what DM Sans carries ───────────────────────────────── */
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-latin-ext-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0250-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-latin-ext-600.woff2") format("woff2");font-weight:500 900;font-style:normal;font-display:swap;
  unicode-range:U+0250-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2C60-2C7F,U+A720-A7FF;}

/* ── Cyrillic for the families that have none ────────────────────────────── */
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-cyrillic-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-cyrillic-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-cyrillic-600.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Syne";src:url("/miniapp/construct/fonts/manrope-cyrillic-600.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-cyrillic-ext-400.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap;
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"DM Sans";src:url("/miniapp/construct/fonts/manrope-cyrillic-ext-600.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"ALS";src:url("/miniapp/construct/fonts/manrope-cyrillic-ext-400.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap;
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:"ALS";src:url("/miniapp/construct/fonts/manrope-cyrillic-ext-600.woff2") format("woff2");font-weight:600 900;font-style:normal;font-display:swap;
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}

/* ===================================================================== */
/* W2_TILE_WEIGHT — the labels under the tiles read heavier.             */
/*                                                                       */
/* Scope is two classes inside two card types and nothing else. The tile  */
/* artwork (.style-preview, .style-brandmark, .heart-thumb, .w2logo-tile) */
/* is untouched: the logo stays exactly as it is. The garment is absent   */
/* from every selector here and an assertion in the patcher proves it.    */
/*                                                                       */
/* .pick-sub runs at 400, so 700 is a real +75% and DM Sans 700 exists —  */
/* the difference is drawn, not requested. .pick-lbl is already at 700    */
/* and DM Sans has nothing above it, so 800 or 900 would render the very  */
/* same file; the stroke is what actually adds mass there, and it leaves  */
/* metrics alone so no tile shifts. */
.pick-card>.pick-sub,.layout-card>.pick-sub{font-weight:700!important}
.pick-card>.pick-lbl,.layout-card>.pick-lbl{
  font-weight:700!important;-webkit-text-stroke:.5px currentColor;paint-order:stroke fill}

@media (max-width:767px){
  /* 400 -> 600 is +50%. 560 was asked for and does not exist as a face:   */
  /* the real neighbours are 500 (+25%) and 600 (+50%), and at 9-10px on   */
  /* a phone falling short shows more than going over.                     */
  .pick-card>.pick-sub,.layout-card>.pick-sub{font-weight:600!important}
  .pick-card>.pick-lbl,.layout-card>.pick-lbl{-webkit-text-stroke:.3px currentColor}
}

/* ===================================================================== */
/* W2_SIGNAL_TEXT — the card copy in the signals gallery reads heavier.   */
/*                                                                       */
/* Exactly one class: .w2sg-d, the description inside a signal card. It   */
/* declared no weight at all (so 400) at 11px under opacity .7, which is  */
/* why it faded out. The intro phrase (.w2sg-sub) and the heading         */
/* (.w2sg-h) are deliberately absent — they were asked to stay as they    */
/* are, and they are separate classes, verified, not assumed.             */
/* W2_DARKCO_V1 — deleted. The card description was stated here AND in
   w2signals.js, and only the !important here actually won, so reading the
   card's own stylesheet told you the wrong answer. The weight and opacity
   now live in w2signals.js next to the size, and this file stops having an
   opinion about a card it does not build. */
/* W2_DARKCO_V1 — deleted with the rule above; the phone value is the one kept. */
