/* ============================================================
   uncorrelated-wordmark.css — per-pairing ratios.

   LANDED 18 Aug 2026 (Phase 1 §3). Approved as proposed; the
   three items below were ratified, not left open. Verify any
   future edit against assets/wordmark/_lockup-probe.html —
   19 assertions, measured under a hostile * { margin: 0 } reset.

   What is wrong with the file today
   ---------------------------------
   It declares ONE global ratio (--unc-event-ratio:0.977) and
   reaches AltsOps' 1.000 by overriding font-size inside
   .evlock--sans. So a new city that writes <div class="evlock">
   and nothing else silently inherits LONDON's ratio, renders
   plausibly, and is wrong. The doctrine is per-pairing; the code
   is "London default plus exceptions."

   The change, in one sentence
   --------------------------
   Remove the default. A ratio must be named per pairing, and a
   mark with no city class computes its city at zero — visibly
   broken instead of plausibly wrong. Same convention as the
   London deploy page: fail closed, never fail green.

   Blast radius — measured, not assumed
   ------------------------------------
   .evlock is referenced in 4 files in the evidence set:
     assets/wordmark/uncorrelated-wordmark.css  (definition, 12)
     assets/wordmark/_export-sheet.html         (8 — the PNG source)
     00-brand-system/Wordmark Implementation Spec (7 — docs)
     00-brand-system/README.md                  (1 — docs)
   No deliverable, package, tearsheet or template uses .evlock —
   they set their own .evmark / .lock / .et-lock classes. The live
   London page hardcodes font-size:.977em and is unaffected.
   So the only file that must be edited alongside this one is
   _export-sheet.html: every block in it needs a city class added
   before the PNGs are re-exported.

   Three things to approve
   -----------------------
   1. Fail closed (city at zero) rather than defaulting to 1.000.
      1.000 would be safer to ship and worse to trust: a wrong
      mark that looks right is the failure this pass exists to end.
   2. .evlock--sans keeps face and colour but loses its font-size
      override; its 1.000 becomes explicit as a ratio token.
   3. City colour is its own role, not an accent variant —
      matching --acc-london-city in colors_and_type.css.
   ============================================================ */

/* ---- fonts (self-host; paths relative to this file) ---- */
@font-face{font-family:'Inter';src:url('../fonts/Inter-900-latin.woff2') format('woff2');font-weight:900;font-style:normal;font-display:block}
@font-face{font-family:'Inter';src:url('../fonts/Inter-400-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
/* Inter 600 and Bodoni Moda 700/800 are NOT yet self-hosted — the
   kits fall back to the Google CDN for those. Adding them here is
   a separate task; it is listed as a gap, not fixed by this file. */

:root{
  /* ---- inks ---- */
  --unc-ink:#08080A;          /* wordmark on light — matches --ink-mark */
  --unc-paper:#FFFFFF;        /* wordmark on dark */
  --unc-miami:#0CC0DF;        /* U-Alts hyphen */
  --unc-grey-dark:#9AA0A8;    /* location line on dark */
  --unc-grey-light:#585D63;   /* location line on light */

  /* ---- city colours — a ROLE, not an accent variant ----
     The city word carries its own hex. It is not the accent's
     lighter sibling: London's live page declares --acc-lt:#D9987F
     for text and --city:#CE8B72 for the mark, separately. Sans
     cities carry no colour at all — they inherit the wordmark. */
  --unc-city-london:#CE8B72;        /* London on dark */
  --unc-city-london-print:#8E4E38;  /* London on light / in print */
  --unc-rosewood:#B0674F;           /* rosewood RULES and dividers only */

  /* Sans cities DO take their event accent — corrected 19 Aug 2026.
     The former `color:inherit` rendered Cayman, Puerto Rico and
     AltsOps NYC monochrome; every shipped page does the opposite.
     One token per city, mirroring the ratified conference accent in
     colors_and_type.css (var() first so a page that loads the system
     gets the live token, hex second so the kit stands alone).
     A city with no ratified accent gets NO token — see .evlock--altsops. */
  --unc-city-pr:var(--acc-pr,#C9A84C);          /* = --acc-pr */
  --unc-city-cayman:var(--acc-cayman,#009E59);  /* = --acc-cayman */

  /* ============================================================
     RATIOS — measured per pairing, never inherited.

     Inter's d-ascender is 0.73375em. Each city's face is scaled
     so its FLAT cap lands on it. Round caps overshoot by design;
     do not correct that out.

     A ratio is measured for ONE face at ONE weight. Change the
     face and the number is void — do not carry it across.
     ============================================================ */
  --unc-inter-ascender:0.73375em;   /* the derivation constant, stated once */

  --unc-ratio-london:0.977;   /* Bodoni Moda 700 — measured. 0.978 appears in
                                 four comparison tables; it is a rounding of
                                 this number, not a second value. */
  --unc-ratio-altsops:1.000;  /* Inter 900, peer weight — same face, so 1:1 */
  --unc-ratio-cayman:1.000;   /* Inter 900 */
  --unc-ratio-pr:1.000;       /* Inter 900. The Cinzel 1.022 kit is retired. */
  /* --unc-ratio-newport: OPEN. Do not fill this until the face is
     chosen. Round one (Libre Caslon Display, 1.044) was rejected;
     round two proposes Archivo 500 caps at 1.068. Leaving the token
     absent means a Newport mark cannot be built by accident. */

  /* ---- sales-tier descriptor (Tier 2) ----
     Inter 600, caps, +.14em, at 0.32 x the CITY size, never below
     11px. That floor sets the Tier-2 minimum at a 34px wordmark;
     below it you do not shrink the descriptor, you switch to
     Tier 1. Stated here so it is not rediscovered per city. */
  --unc-descriptor-ratio:0.32;
  --unc-descriptor-floor:11px;
}

/* ---- 1 · company wordmark ---- */
.unc-wordmark{
  font-family:'Inter',system-ui,sans-serif;
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1;
  text-transform:none;          /* guard against inherited utility classes */
  font-feature-settings:normal;
  white-space:nowrap;
  color:var(--unc-paper);
}
.unc-wordmark--ink{color:var(--unc-ink)}
a.unc-wordmark,a .unc-wordmark{color:inherit;text-decoration:none}
/* The period is part of the mark. It takes the mark's colour.
   There is deliberately no dot rule here — do not add one. */

/* ---- 2 · U-Alts wordmark (custom hyphen, em-scaled) ---- */
.ualts{font-family:'Inter',system-ui,sans-serif;font-weight:900;letter-spacing:-.03em;line-height:1;white-space:nowrap;text-transform:none;color:var(--unc-paper);display:inline-block}
.ualts--ink{color:var(--unc-ink)}
.ualts .hy{display:inline-block;width:.342em;height:.151em;background:var(--unc-miami);vertical-align:.252em;margin:0 .03em 0 .08em}
.ualts-endorse{font-family:'Inter',system-ui,sans-serif;font-weight:800;letter-spacing:-.01em;white-space:nowrap}
/* .ualts is inline-block, NOT flex: vertical-align has no effect on
   a flex item and the dash drops to the baseline, reading "U_Alts". */

/* ============================================================
   3 · EVENT LOCKUP

   A city class is REQUIRED. .evlock alone sets no ratio, so the
   city computes to zero and the omission is visible immediately.
   ============================================================ */
.evlock{
  display:flex;
  align-items:center;
  gap:calc(var(--wm) * .60);    /* gap on the CONTAINER, never margins on the
                                   children — a host-page * { margin:0 } reset
                                   silently collapses margins to zero while
                                   every colour and ratio still checks out. */
  color:var(--unc-paper);
  --wm:44px;
  --unc-event-ratio:0;          /* NO DEFAULT. Fail closed. */
  /* The lockup wraps before it overflows. Corrected 19 Aug 2026: the
     degradation ladder was documented in MARK SIZE and implemented in
     VIEWPORT WIDTH, so a lockup that outgrew its own container never
     degraded — the London hero rendered 394px inside a 312px column and
     scrolled the document. Both halves stay nowrap individually; the
     break falls in the 0.60em gap, which becomes the row gap. Nothing
     here reads the window, so this holds in a nav, a card or a modal. */
  flex-wrap:wrap;
  max-width:100%;
}
.evlock .wm{font-family:'Inter',system-ui,sans-serif;font-weight:900;letter-spacing:-.03em;line-height:1;font-size:var(--wm);white-space:nowrap}
.evlock .city{line-height:1;font-size:calc(var(--wm) * var(--unc-event-ratio));white-space:nowrap}
.evlock .loc{font-family:'Inter',system-ui,sans-serif;font-weight:600;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--unc-grey-dark);white-space:nowrap}
.evlock--ink{color:var(--unc-ink)}
.evlock--ink .loc{color:var(--unc-grey-light)}

/* --fit: scale the mark to the room it has instead of wrapping. Driven by
   the lockup's OWN inline size, not the window. --unc-lockup-em is the
   lockup's natural width in --wm units (≈ 13.6 for "uncorrelated." plus a
   city and year; measure per string if it is much longer).
   The variant claims its full inline size itself — width:100% + stretch.
   Without that, a shrink-to-fit box (a flex item, an inline-block, a float)
   resolves inline-size containment as if it were EMPTY, so 100cqi is 0 and
   the whole mark renders at font-size 0. Do not remove those two lines. */
.evlock--fit{container-type:inline-size;--unc-lockup-em:13.6;width:100%;align-self:stretch}
.evlock--fit .wm{font-size:min(var(--wm),calc(100cqi / var(--unc-lockup-em)))}
.evlock--fit .city{font-size:calc(min(var(--wm),calc(100cqi / var(--unc-lockup-em))) * var(--unc-event-ratio))}

/* --sm: the mark-size step in the ladder, declared rather than guessed at
   from the viewport. Bodoni needs 800 below a 30px wordmark, so any London
   lockup set under --wm:30px carries it — nav and footer marks permanently. */
.evlock--sm.evlock--london .city{font-weight:800}

/* The vertical rule survives in STACKED and 4:1 BANNER forms only,
   where the halves drift far enough apart that it does structural
   work. It was removed from the single line (Option C, 13 Aug). */
.evlock--ruled{gap:0}
.evlock--ruled .div{width:2px;align-self:stretch;background:currentColor;opacity:.28;margin:0 calc(var(--wm)*.59) 0 calc(var(--wm)*.45)}

/* ---- per-city classes: face + ratio + colour, together ----
   One class per pairing. Adding a city means adding a ratio token
   and a class here — two deliberate acts, neither inheritable. */

/* London — the serif seat. The only one. */
.evlock--london{--unc-event-ratio:var(--unc-ratio-london)}
.evlock--london .city{font-family:'Bodoni Moda',serif;font-weight:700;letter-spacing:-.015em;color:var(--unc-city-london)}
.evlock--london.evlock--ink .city{color:var(--unc-city-london-print)}

/* Sans cities — Inter both halves, city in the EVENT ACCENT.
   Same grammar as London: only the city and year take colour, never
   the period. --unc-city is set by the per-city class below; a city
   class that sets no --unc-city falls back to the wordmark's colour,
   so an unratified city cannot borrow another city's accent. */
.evlock--sans .city{font-family:'Inter',system-ui,sans-serif;font-weight:900;letter-spacing:-.035em;color:var(--unc-city,inherit)}
/* On light, sans cities fall back to ink: no print-safe accent has been
   ratified for gold or kelly on white (both fail 4.5:1). OPEN GAP —
   needs --acc-pr-print / --acc-cayman-print, as London has. */
.evlock--sans.evlock--ink .city{color:inherit}
.evlock--altsops{--unc-event-ratio:var(--unc-ratio-altsops)}
/* .evlock--altsops sets no --unc-city: AltsOps NYC has no accent token.
   OPEN GAP — needs --acc-altsops. --acc-mgs belongs to Manager Growth
   Summit NYC and must NOT be reused here. Until then the city renders
   in the wordmark's colour, as it does today. */
.evlock--cayman {--unc-event-ratio:var(--unc-ratio-cayman);--unc-city:var(--unc-city-cayman)}
.evlock--pr     {--unc-event-ratio:var(--unc-ratio-pr);--unc-city:var(--unc-city-pr)}
/* .evlock--newport — deliberately absent until the face is chosen. */

/* ---- degradation ladder ----
   When space runs out, drop in this order:
   venue -> date -> year -> the serif itself. */
@media (max-width:900px){.evlock .loc .venue{display:none}}
@media (max-width:600px){.evlock .loc{display:none}}
@media (max-width:380px){
  .evlock--london .city{font-weight:800}           /* Bodoni needs 800 below 30px */
}
/* Below a 15px wordmark, drop the serif entirely: add .evlock--sans
   alongside .evlock--london rather than scaling Bodoni further. */

/* ---- accessible name ----
   The gap is layout, not a text node, so the name concatenates to
   "uncorrelated.London 2026" unless set. Put
   aria-label="Uncorrelated London 2026" on the lockup wrapper and
   aria-hidden on any decorative rule. */
.unc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
