/* ═══════════════════════════════════════════════════════════════════════
   AURORAVOLT — DESIGN DIRECTIVE TOKEN LAYER (v1.0 · 2026-07-07)
   Source of truth: Architecture Bible → "AuroraVolt Design Directive" §1–§6.
   Ported (Directive-conformant) pages load THIS file and av_shell.js.
   They do NOT load global_aurora.css (legacy layer, retiring in Phase 4).
   Namespace isolation: --av-* lives at :root (collision-free); short design
   aliases (--bg, --mint, …) exist ONLY under .av-skin so legacy pages that
   read global_aurora.css short names are never affected.
   Cache: served max-age=0 must-revalidate (netlify.toml /*.css) + sw.js
   network-first. NEVER give this file immutable/long cache headers.
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  /* Z-index scale (semantic — no 9999) */
  --av-z-dropdown: 10;
  --av-z-sticky: 20;
  --av-z-strip: 40;
  --av-z-nav: 50;
  --av-z-modal-bg: 60;
  --av-z-modal: 70;
  --av-z-toast: 80;
  --av-z-overlay: 90;

  /* VOID + SURFACES */
  --av-void:  #04050B;
  --av-bg:    #060810;
  --av-bg2:   #0A0D18;
  --av-panel: #0F1324;
  --av-panel2:#141A30;
  --av-line:  #222A45;
  --av-line2: #313C62;

  /* INK */
  --av-ink:  #F4F6FF;
  --av-ink2: #AEB6D6;
  --av-ink3: #8B94B8; /* WCAG AA on --av-bg (was #6B7396) */

  /* ACCENTS — one equal-luma family; never invent an eighth (§1) */
  --av-mint:  #7CFFB2;
  --av-teal:  #38E5D6;
  --av-blue:  #6B8CFF;
  --av-violet:#A98BFF;
  --av-pink:  #FF4FA0;
  --av-coral: #FF7A59;
  --av-gold:  #FFD87C;

  /* BRAND RIBBON */
  --av-aurora:      linear-gradient(115deg,#7CFFB2 0%,#38E5D6 26%,#6B8CFF 52%,#A98BFF 74%,#FF4FA0 100%);
  --av-aurora-chip: linear-gradient(115deg,#7CFFB2,#38E5D6 40%,#A98BFF);
}

/* ── Anti-flicker (paint before shell JS; reserve chrome slots) ──
   Multipage navigations used to flash white / shove content when #av-nav
   was empty until av_shell.js mounted. Keep the canvas dark from first paint. */
html {
  background: #060810;
  color-scheme: dark;
}
/* View transitions intentionally OFF — MPA sticky chrome + strip morphs left
   a jarring "banner" ghost between pages. Keep navigations hard-cut. */

/* Short aliases for Directive-conformant markup — scoped, never global */
.av-skin {
  --void: var(--av-void); --bg: var(--av-bg); --bg2: var(--av-bg2);
  --panel: var(--av-panel); --panel2: var(--av-panel2);
  --line: var(--av-line); --line2: var(--av-line2); --line-2: var(--av-line2);
  --ink: var(--av-ink); --ink2: var(--av-ink2); --ink-2: var(--av-ink2); --ink3: var(--av-ink3); --ink-3: var(--av-ink3);
  --mint: var(--av-mint); --teal: var(--av-teal); --blue: var(--av-blue);
  --violet: var(--av-violet); --pink: var(--av-pink); --coral: var(--av-coral);
  --gold: var(--av-gold);
  --aurora: var(--av-aurora); --aurora-chip: var(--av-aurora-chip);
  --volt: var(--av-mint);
  --volt-rgb: 124, 255, 178;
  --aurora-rgb: 124, 255, 178;
  --pink-rgb: 255, 79, 160;
  --purple-rgb: 169, 139, 255;
  --teal-rgb: 56, 229, 214;
  --pink-2: var(--av-pink);
  --pink-deep: var(--av-pink);
  --purple: var(--av-violet);
  --cta: var(--av-pink);
  --cta-2: var(--av-violet);
  --body: 'Archivo', system-ui, sans-serif;
  --mono: 'JetBrains Mono', monospace;
  --cond: 'Archivo', sans-serif;
  --font-display: 'Archivo', sans-serif;
  --font-ui: 'Archivo', system-ui, sans-serif;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-snap: cubic-bezier(0.2, 0, 0, 1);
  --dur-fast: 0.15s;
  --dur-med: 0.22s;
  --r-sm: 4px;
  --r-md: 9px;
  --r-lg: 10px;
  --r-pill: 999px;

  margin: 0;
  background: var(--av-bg);
  color: var(--av-ink);
  font-family: 'Archivo', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden; /* §6: no horizontal page scroll, ever */
}
/* Pages without .av-skin still get a dark canvas (av_shell adds the class later) */
body {
  margin: 0;
  background: var(--av-bg, #060810);
  color: var(--av-ink, #F4F6FF);
}
.av-skin *, .av-skin *::before, .av-skin *::after { box-sizing: border-box; }
.av-skin ::selection { background: var(--av-pink); color: var(--av-bg); }

/* ── Layout constitution (§6) ── */
.av-container { max-width: 1260px; margin: 0 auto; padding-left: clamp(20px,3.5vw,40px); padding-right: clamp(20px,3.5vw,40px); }
.av-rail { display: flex; overflow-x: auto; scrollbar-width: none; }
.av-rail::-webkit-scrollbar { display: none; }

/* Shell mount: reserve 64px so content doesn't jump when av_shell injects .av-nav.
   :empty matches the HTML placeholder before JS runs (first paint). */
#av-nav { min-height: 64px; }
#av-nav:empty {
  background: rgba(6, 8, 16, .85);
  border-bottom: 1px solid var(--av-line, #222A45);
}

/* ── AV-01 Nav Shell ── */
.av-skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.av-skip:focus{left:16px;top:12px;width:auto;height:auto;padding:10px 14px;z-index:calc(var(--av-z-overlay) + 1);background:var(--av-mint);color:var(--av-void);font:700 13px 'Archivo';border-radius:8px;text-decoration:none}
.av-skin :focus-visible{outline:2px solid var(--av-mint);outline-offset:2px}
.av-skin button:focus:not(:focus-visible),.av-skin a:focus:not(:focus-visible){outline:none}

/* Workspace ecosystem bridge (collector/player — Phase 4 shell unify) */
.av-eco-bar{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;padding:8px clamp(20px,3.5vw,40px);background:var(--av-void);border-bottom:1px solid var(--av-line);font:600 11px 'JetBrains Mono',monospace;letter-spacing:.06em}
.av-eco-bar a{color:var(--av-ink3);text-decoration:none;padding:8px 10px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}
.av-eco-bar a:hover{color:var(--av-ink)}
.av-eco-bar a.on{color:var(--av-mint);background:rgba(124,255,178,.08)}
.av-eco-label{color:var(--av-ink2);margin-right:4px}
/* Nav budget: lab bar is desktop-only; primary av-nav + mobile tabbar handle phones */
@media (max-width:900px){
  .av-eco-bar{display:none!important}
}

.av-nav { position: sticky; top: 0; z-index: var(--av-z-nav); display: flex; align-items: center; gap: 20px; height: 64px; padding: 0 clamp(20px,3.5vw,40px); background: rgba(6,8,16,.85); backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%); border-bottom: 1px solid var(--av-line); }
.av-nav-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; flex-shrink: 0; }
.av-nav-mark { width: 33px; height: 33px; border-radius: 9px; background: var(--av-aurora); display: flex; align-items: center; justify-content: center; }
.av-nav-mark span { width: 11px; height: 11px; border-radius: 3px; background: var(--av-void); transform: rotate(45deg); }
.av-nav-word { font: 800 19px 'Archivo'; letter-spacing: -.02em; color: var(--av-ink); }
.av-nav-word b { font-weight: 800; color: var(--av-mint); }
.av-nav-links { display: flex; align-items: center; gap: 18px; white-space: nowrap; }
.av-nav-link { font: 600 13.5px 'Archivo'; color: var(--av-ink3); text-decoration: none; padding: 21px 0 19px; border-bottom: 2px solid transparent; }
.av-nav-link:hover { color: var(--av-ink); }
.av-nav-link.active { color: var(--nav-accent, var(--av-mint)); border-bottom-color: var(--nav-accent, var(--av-mint)); }
/* Bazaar home portal — the only always-loud nav control (stall mark, not emoji) */
.av-nav-portal{
  display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 14px 0 10px;
  border-radius:var(--r-lg, 10px);text-decoration:none;flex-shrink:0;
  border:1px solid rgba(124,255,178,.38);
  background:var(--av-panel);
  color:var(--av-ink);font:700 13.5px 'Archivo';
  box-shadow:inset 0 1px 0 rgba(124,255,178,.12);
  transition:border-color var(--dur-fast,.15s) var(--ease-out,ease), box-shadow var(--dur-fast,.15s) var(--ease-out,ease), transform var(--dur-fast,.15s) var(--ease-out,ease);
}
.av-nav-portal:hover{border-color:rgba(124,255,178,.7);transform:translateY(-1px);box-shadow:0 0 18px rgba(124,255,178,.2), inset 0 1px 0 rgba(124,255,178,.18)}
.av-nav-portal.on{border-color:var(--av-mint);background:rgba(124,255,178,.1);box-shadow:0 0 18px rgba(124,255,178,.22)}
.av-nav-portal:focus-visible{outline:2px solid var(--av-mint);outline-offset:2px}
.av-portal-mark{
  width:22px;height:22px;border-radius:6px;flex:none;position:relative;
  background:linear-gradient(180deg,rgba(124,255,178,.35),rgba(56,229,214,.12));
  border:1px solid rgba(124,255,178,.45);
  display:inline-flex;align-items:center;justify-content:center;
}
.av-portal-mark::before{
  content:'';position:absolute;top:3px;left:3px;right:3px;height:4px;border-radius:2px 2px 0 0;
  background:repeating-linear-gradient(90deg,var(--av-mint) 0 3px,#0E7E74 3px 6px);opacity:.9;
}
.av-portal-pip{
  width:7px;height:7px;border-radius:50%;flex:none;position:relative;z-index:1;
  background:var(--av-mint);box-shadow:0 0 8px var(--av-mint);opacity:.8;
}
.av-portal-pip.hot{opacity:1;animation:av-blink 1.6s infinite}
.av-nav-portal-label{letter-spacing:.01em}
.av-nav-portal-badge{
  min-width:18px;height:18px;padding:0 5px;border-radius:999px;
  background:var(--av-pink);color:var(--av-void);
  font:700 10px 'JetBrains Mono',monospace;display:inline-flex;align-items:center;justify-content:center;
}
.av-nav-portal-badge[hidden]{display:none!important}
/* While you were away — one bright strip under nav */
.av-away{position:sticky;top:64px;z-index:var(--av-z-sticky);background:rgba(4,5,11,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--av-line)}
.av-away[hidden]{display:none!important}
.av-away-in{
  max-width:1260px;margin:0 auto;padding:8px clamp(20px,3.5vw,40px);
  display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;min-height:44px;
}
.av-away-kicker{
  font:600 11px 'Archivo';color:var(--av-ink3);flex:none;
  display:inline-flex;align-items:center;gap:7px;
}
.av-away-kicker::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--av-mint);
  box-shadow:0 0 8px var(--av-mint);animation:av-blink 1.8s infinite;
}
.av-away-bits{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:0}
.av-away-bit{
  font:600 12.5px 'Archivo';text-decoration:none;padding:8px 12px;border-radius:var(--r-md,9px);min-height:36px;
  display:inline-flex;align-items:center;border:1px solid var(--av-line2);color:var(--av-ink2);background:var(--av-panel);
  transition:border-color .15s,color .15s,transform .15s;
}
.av-away-bit:hover{color:var(--av-ink);border-color:var(--av-ink3);transform:translateY(-1px)}
.av-away-bit:focus-visible{outline:2px solid var(--av-mint);outline-offset:2px}
.av-away-mint{border-color:rgba(124,255,178,.45);color:var(--av-mint);background:rgba(124,255,178,.06)}
.av-away-pink{border-color:rgba(255,79,160,.4);color:var(--av-pink);background:rgba(255,79,160,.06)}
.av-away-violet{border-color:rgba(169,139,255,.4);color:var(--av-violet);background:rgba(169,139,255,.06)}
.av-away-teal{border-color:rgba(56,229,214,.4);color:var(--av-teal);background:rgba(56,229,214,.06)}
.av-away-go{
  font:700 13px 'Archivo';color:var(--av-void);text-decoration:none;flex:none;min-height:36px;
  display:inline-flex;align-items:center;padding:0 14px;border-radius:var(--r-md,9px);background:var(--av-mint);
}
.av-away-go:hover{box-shadow:0 0 16px rgba(124,255,178,.35)}
.av-away-x{
  flex:none;min-height:32px;padding:0 10px;border-radius:999px;border:1px solid var(--av-line2);
  background:transparent;color:var(--av-ink3);cursor:pointer;
  font:650 12px 'Archivo',system-ui,sans-serif;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;letter-spacing:0;
}
.av-away-x:hover{color:var(--av-ink);border-color:var(--av-ink3);background:rgba(255,255,255,.04)}
/* Mobile thumb portal — desktop only now; phone uses .av-dock */
.av-floor-fab{
  display:none;position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));
  z-index:var(--av-z-toast);min-height:52px;padding:0 18px 0 14px;border-radius:999px;
  align-items:center;gap:10px;text-decoration:none;
  background:var(--av-mint);color:var(--av-void);font:800 14px 'Archivo';
  box-shadow:0 12px 32px rgba(0,0,0,.55),0 0 24px rgba(124,255,178,.35);
}
.av-floor-fab .av-portal-mark{background:rgba(4,5,11,.2);border-color:rgba(4,5,11,.25)}
.av-floor-fab .av-portal-pip{background:var(--av-void);box-shadow:none}
body.av-skin.bz-page .av-floor-fab,
body.av-skin[data-av-on-bazaar] .av-floor-fab,
body.av-has-dock .av-floor-fab{display:none!important}

/* ── Bottom dock (phone clubhouse path) ──
   Hard-isolate from legacy `nav { top:0; height:… }` in auroravolt_core.css.
   Without these resets, hybrid pages stretch #avDock to full viewport. */
.av-dock,
nav.av-dock,
#avDock.av-dock,
#avDock{
  display:none;
  position:fixed !important;
  top:auto !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  inset:auto 0 0 0 !important;
  width:100% !important;
  height:auto !important;
  max-height:calc(72px + env(safe-area-inset-bottom,0px)) !important;
  min-height:0 !important;
  z-index:var(--av-z-toast);
  background:rgba(4,5,11,.94) !important;
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  border:0 !important;
  border-top:1px solid var(--av-line) !important;
  border-bottom:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
  flex-wrap:nowrap !important;
  flex-direction:row !important;
  align-items:stretch !important;
  justify-content:space-around !important;
  gap:2px;
  padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px)) !important;
  margin:0 !important;
  overflow:hidden;
  pointer-events:auto;
}
.av-dock-item{
  flex:1 1 0;min-width:0;min-height:48px;max-height:56px;height:auto !important;
  border:0;background:transparent !important;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  text-decoration:none;color:var(--av-ink3);border-radius:10px;
  font:700 10px 'Archivo',system-ui,sans-serif;letter-spacing:0;padding:4px 2px;
  -webkit-tap-highlight-color:transparent;position:relative;
  transition:color .15s,background .15s;
  align-self:center;
}
.av-dock-item:hover,.av-dock-item:focus-visible{color:var(--av-ink);outline:none}
.av-dock-item:focus-visible{box-shadow:inset 0 0 0 2px var(--av-mint)}
.av-dock-item:active{
  transform:scale(.97);
  background:rgba(124,255,178,.12)!important;
  color:var(--av-ink);
  transition:transform 160ms ease-out,background 160ms ease-out,color 160ms ease-out;
}
.av-dock-item.on{color:var(--av-mint);background:rgba(124,255,178,.08)}
.av-dock-item.hot{color:var(--av-mint)}
@media (prefers-reduced-motion:reduce){
  .av-dock-item:active{transform:none}
}
.av-dock-ic{font-size:14px;line-height:1;opacity:.9}
.av-dock-lbl{line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av-dock-pip{
  position:absolute;top:4px;right:calc(50% - 14px);width:7px;height:7px;border-radius:50%;
  background:var(--av-pink);box-shadow:0 0 8px var(--av-pink);
}
.av-dock-pull.hot .av-dock-ic{animation:av-blink 1.4s infinite}

/* FOMO free-pull chip — desktop / no-dock only. Phone dock owns Pull. */
.av-pull-chip{
  display:none;position:fixed;z-index:var(--av-z-toast);
  left:max(10px,env(safe-area-inset-left,0px));
  bottom:calc(58px + env(safe-area-inset-bottom,0px));
  align-items:center;gap:7px;min-height:40px;padding:0 14px;
  border-radius:999px;text-decoration:none;
  font:700 12px 'Archivo',system-ui,sans-serif;letter-spacing:-.01em;
  color:var(--av-ink);background:var(--av-panel2);border:1px solid var(--av-line2);
  box-shadow:0 10px 28px rgba(0,0,0,.5);
  -webkit-tap-highlight-color:transparent;
}
.av-pull-chip.hot{
  color:var(--av-void);background:var(--av-mint);border-color:transparent;
  box-shadow:0 10px 28px rgba(0,0,0,.45),0 0 20px rgba(124,255,178,.35);
}
.av-pull-chip-dot{
  width:7px;height:7px;border-radius:50%;background:var(--av-void);
  box-shadow:0 0 8px rgba(4,5,11,.4);animation:av-blink 1.2s infinite;flex:none;
}
.av-pull-chip-s{opacity:.75;font-weight:600;font-size:11px}
.av-pull-chip.hot .av-pull-chip-s{opacity:.9}

@media (max-width:760px){
  .av-dock,
  nav.av-dock,
  #avDock.av-dock,
  #avDock{display:flex !important}
  /* Hideout landscape owns the viewport — dock must lose the force-flex cascade */
  body.ho-land .av-dock,
  body.ho-land nav.av-dock,
  body.ho-land #avDock.av-dock,
  body.ho-land #avDock{
    display:none !important;
  }
  /* One invitation for Pull: dock item only (no floating FOMO stack) */
  body.av-has-dock .av-pull-chip,
  body.av-has-dock .bz-pull-chip,
  body.av-skin.bz-page #avPullChip{
    display:none!important;
  }
  body.av-has-dock{
    padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important;
  }
  /* Dual bottom chrome kill: clubhouse dock wins over lab tabbar + legacy sticky */
  body.av-has-dock .avc-tabbar,
  body.av-has-dock .av-bz-sticky,
  body.av-has-dock #avBzSticky,
  body.av-has-dock .av-floor-fab{
    display:none!important;
  }
  body.av-has-dock.avc-ws{
    padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important;
  }
}
@media (min-width:761px){
  .av-dock,.av-pull-chip{display:none!important}
  body.av-has-dock{padding-bottom:0!important}
}
@media (max-width:760px){
  .av-floor-fab{
    display:inline-flex;min-height:44px;padding:0 14px 0 12px;font-size:13px;
    right:max(10px,env(safe-area-inset-right,0px));
    bottom:max(12px,calc(10px + env(safe-area-inset-bottom,0px)));
  }
  .av-nav-portal{padding:0 9px 0 7px;min-height:36px;gap:6px}
  .av-nav-portal-label{font-size:12.5px;font-weight:700;letter-spacing:0}
  /* Away strip: compact card — less vertical stack, more content air */
  .av-away{top:48px}
  .av-away-in{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "kicker x"
      "bits go";
    gap:8px 10px;
    align-items:center;
    padding:8px 12px;
    min-height:0;
  }
  .av-away-kicker{grid-area:kicker;font-size:11px;color:var(--av-ink2)}
  .av-away-x{grid-area:x;min-height:30px;padding:0 10px;font-size:11.5px}
  .av-away-bits{
    grid-area:bits;width:100%;flex-wrap:nowrap;overflow-x:auto;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;min-width:0;
  }
  .av-away-bits::-webkit-scrollbar{display:none}
  .av-away-bit{flex:none;min-height:32px;padding:0 10px;font-size:12px;font-weight:600;border-radius:999px}
  .av-away-go{
    grid-area:go;width:auto;justify-content:center;min-height:34px;white-space:nowrap;
    padding:0 12px;font-size:12.5px;font-weight:700;letter-spacing:-.01em;border-radius:9px;
  }
}
@media (max-width:380px){
  /* Very narrow: Open floor full width under bits */
  .av-away-in{
    grid-template-areas:
      "kicker x"
      "bits bits"
      "go go";
  }
  .av-away-go{width:100%}
}
/* Stall "tonight" job — shared product pattern */
.av-job{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-radius:var(--r-lg,10px);border:1px solid rgba(124,255,178,.4);
  background:var(--av-panel);padding:16px 18px;
  box-shadow:inset 0 0 0 1px rgba(124,255,178,.06);
}
.av-job-k{font:600 12px 'Archivo',system-ui,sans-serif;letter-spacing:0;color:var(--av-mint);margin:0 0 4px;text-transform:none}
.av-job-t{font:800 18px/1.2 'Archivo';color:var(--av-ink);margin:0;letter-spacing:-.015em;text-wrap:balance}
.av-job-s{font:400 13.5px/1.5 'Archivo';color:var(--av-ink2);margin:6px 0 0;max-width:52ch}
.av-job-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.av-job-cta{
  font:700 14px/1.2 'Archivo',system-ui,sans-serif;letter-spacing:-.01em;color:var(--av-void);
  background:var(--av-mint);border:0;border-radius:11px;padding:0 18px;cursor:pointer;text-decoration:none;
  min-height:44px;display:inline-flex;align-items:center;justify-content:center;
  transition:transform .15s,box-shadow .15s;
}
.av-job-cta:hover{transform:translateY(-1px);box-shadow:0 0 18px rgba(124,255,178,.35)}
.av-job-cta:focus-visible{outline:2px solid var(--av-mint);outline-offset:2px}
.av-job-cta.ghost{background:transparent;color:var(--av-ink);border:1px solid var(--av-line2)}
.av-job-cta.ghost:hover{border-color:var(--av-ink3);box-shadow:none}
@media (max-width:640px){
  .av-job{
    flex-direction:column;align-items:stretch;gap:14px;padding:16px;
  }
  .av-job-t{font-size:clamp(1.15rem,4.8vw,1.35rem);font-stretch:105%;line-height:1.15}
  .av-job-s{font-size:14px;max-width:none}
  .av-job-actions{width:100%;flex-direction:column;gap:8px}
  /* Primary first on phone (HTML has ghost then primary) */
  .av-job-actions .av-job-cta:not(.ghost){order:-1}
  .av-job-cta,.av-job-cta.ghost{width:100%;min-height:48px;font-size:15px}
}
/* Stall activation stamps (first-session progress) */
.av-stamps{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.av-stamp{
  font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.04em;padding:6px 10px;border-radius:999px;
  border:1px solid var(--av-line2);color:var(--av-ink3);background:transparent;min-height:28px;
  display:inline-flex;align-items:center;gap:6px;
}
.av-stamp.on{border-color:rgba(124,255,178,.5);color:var(--av-mint);background:rgba(124,255,178,.08)}
.av-stamp.on::before{content:'✓';font-weight:800}
.av-stamp:not(.on)::before{content:'○';opacity:.5}

/* ── The Registry device (night-market terminal chassis, de-branded 2026-07-11) ── */
.dex-navline{margin-bottom:10px}
.dex-back{font:600 13px 'Archivo';color:var(--av-ink3);text-decoration:none}
.dex-back:hover{color:var(--av-mint)}
.dex-boot{padding:48px 20px;text-align:center;font:600 14px 'Archivo';color:var(--av-ink2)}
.dex-boot.err{color:var(--av-coral)}
.dex-device{
  border-radius:18px;border:1px solid var(--av-line2);overflow:hidden;
  background:linear-gradient(165deg,#14161C 0%,#0C0E13 40%,var(--av-void) 100%);
  box-shadow:0 24px 60px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);
}
.dex-chrome{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:14px 16px;background:linear-gradient(180deg,#1C1F27,#111318);
  border-bottom:2px solid rgba(124,255,178,.28);
}
.dex-lens{
  width:36px;height:36px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 35% 35%,#EAFFF6,#1E9E68 45%,#06331F 70%);
  border:3px solid #eee;box-shadow:0 0 0 2px #333,0 0 16px rgba(124,255,178,.5);
}
.dex-leds{display:flex;gap:6px}
.dex-leds i{width:10px;height:10px;border-radius:50%;display:block;border:1px solid rgba(0,0,0,.35)}
.dex-leds .r{background:#ff5252;box-shadow:0 0 8px #ff5252}
.dex-leds .y{background:#ffd54f;box-shadow:0 0 8px #ffd54f}
.dex-leds .g{background:#69f0ae;box-shadow:0 0 8px #69f0ae}
.dex-title{font:800 15px 'Archivo';color:#fff;letter-spacing:.02em;flex:1}
.dex-pct{font:600 11px 'JetBrains Mono',monospace;color:rgba(255,255,255,.85)}
.dex-pct b{color:#fff;font-size:14px}
.dex-body{display:grid;grid-template-columns:minmax(240px,0.95fr) 1.15fr;min-height:480px}
@media(max-width:820px){.dex-body{grid-template-columns:1fr;min-height:0}}
.dex-col-list{border-right:1px solid var(--av-line);background:var(--av-bg);display:flex;flex-direction:column;min-height:0}
@media(max-width:820px){
  .dex-col-list{border-right:0;border-bottom:1px solid var(--av-line);max-height:42vh}
  .dex-device.dex-phone.dex-mode-list .dex-col-list{max-height:none;border-bottom:0;flex:1}
  .dex-device.dex-phone.dex-mode-list .dex-list-scroll{max-height:min(62vh,640px)}
  .dex-device.dex-phone.dex-mode-detail .dex-col-detail{min-height:min(70vh,720px)}
  .dex-back-list{
    display:flex;align-items:center;width:100%;min-height:48px;padding:0 16px;border:0;border-bottom:1px solid var(--av-line);
    background:var(--av-panel);color:var(--av-mint);font:700 14px 'Archivo';cursor:pointer;text-align:left;
  }
  .dex-device.dex-phone .dex-name{font-size:clamp(22px,7vw,28px)}
  .dex-device.dex-phone .dex-screen{width:min(160px,42vw);height:min(160px,42vw)}
  .dex-device.dex-phone .dex-hero{width:85%;height:85%}
}
.dex-tools{padding:12px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--av-line)}
.dex-search{
  width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--av-line2);
  background:var(--av-panel);color:var(--av-ink);font:500 15px 'Archivo';min-height:44px;
}
.dex-gen{
  width:100%;padding:10px 12px;border-radius:9px;border:1px solid var(--av-line2);
  background:var(--av-panel);color:var(--av-ink2);font:600 12px 'Archivo';min-height:40px;
}
.dex-filters{display:flex;gap:8px}
.dex-f{
  flex:1;min-height:40px;border-radius:9px;border:1px solid var(--av-line2);
  background:var(--av-panel);color:var(--av-ink3);font:700 12px 'Archivo';cursor:pointer;
}
.dex-f.on{border-color:var(--av-mint);color:var(--av-mint);background:rgba(124,255,178,.08)}
.dex-list-head{
  display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;
  padding:8px 12px;font:600 11px 'JetBrains Mono',monospace;color:var(--av-ink3);
}
.dex-next{
  border:1px solid rgba(124,255,178,.4);background:rgba(124,255,178,.08);color:var(--av-mint);
  border-radius:999px;padding:6px 12px;font:700 11px 'Archivo';cursor:pointer;min-height:32px;
}
.dex-list-scroll{overflow:auto;flex:1;max-height:min(52vh,520px);padding:0 8px 12px}
.dex-row{
  width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:4px;
  border-radius:10px;border:1px solid transparent;background:transparent;color:var(--av-ink2);
  cursor:pointer;text-align:left;font:600 13px 'Archivo';min-height:44px;
}
.dex-row:hover{background:var(--av-panel);border-color:var(--av-line)}
.dex-row.on{background:rgba(124,255,178,.1);border-color:rgba(124,255,178,.35);color:var(--av-ink)}
.dex-row.missing{opacity:.72}
.dex-num{font:600 11px 'JetBrains Mono',monospace;color:var(--av-ink3);width:40px;flex:none}
.dex-mini{width:32px;height:32px;image-rendering:pixelated;flex:none}
.dex-mini.sil,.dex-hero.sil{filter:brightness(0) opacity(.45)}
.dex-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dex-own-dot{width:8px;height:8px;border-radius:50%;background:var(--av-mint);box-shadow:0 0 8px var(--av-mint);flex:none}
.dex-list-more{padding:10px;text-align:center;font:500 12px 'Archivo';color:var(--av-ink3)}
.dex-col-detail{padding:16px 18px 22px;background:var(--av-bg2);overflow:auto}
.dex-empty-detail{padding:32px 12px;color:var(--av-ink2)}
.dex-empty-title{font:800 18px 'Archivo';color:var(--av-ink);margin-bottom:8px}
.dex-detail-top{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.dex-screen{
  width:140px;height:140px;border-radius:14px;flex:none;
  background:linear-gradient(160deg,#0a1628,#12243a);border:2px solid var(--av-line2);
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 0 24px rgba(124,255,178,.08);
}
.dex-hero{width:110px;height:110px;image-rendering:pixelated;object-fit:contain}
.dex-idnum{font:700 12px 'JetBrains Mono',monospace;color:var(--av-mint);letter-spacing:.08em}
.dex-name{font:900 28px/1 'Archivo';letter-spacing:-.02em;text-transform:uppercase;margin:4px 0 6px;color:var(--av-ink);text-wrap:balance}
.dex-genus{font:500 13px 'Archivo';color:var(--av-ink3);margin-bottom:8px}
.dex-types{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.dex-type{font:700 10px 'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:999px;background:var(--av-panel);border:1px solid var(--av-line2);color:var(--av-ink2)}
.dex-t-grass{color:#7CFFB2;border-color:rgba(124,255,178,.4)}
.dex-t-fire{color:#FF7A59;border-color:rgba(255,122,89,.4)}
.dex-t-water{color:#6B8CFF;border-color:rgba(107,140,255,.4)}
.dex-t-electric{color:#FFD87C;border-color:rgba(255,216,124,.4)}
.dex-t-psychic{color:#A98BFF;border-color:rgba(169,139,255,.4)}
.dex-t-poison{color:#A98BFF;border-color:rgba(169,139,255,.35)}
.dex-meta-line{font:600 11px 'JetBrains Mono',monospace;color:var(--av-ink3)}
.dex-reg{color:var(--av-mint)}
.dex-unreg{color:var(--av-ink3)}
.dex-flavor{
  font:400 14px/1.55 'Archivo';color:var(--av-ink2);padding:14px 16px;border-radius:12px;
  border:1px solid var(--av-line);background:var(--av-panel);margin-bottom:16px;max-width:62ch;
}
.dex-stats{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
.dex-stat{display:grid;grid-template-columns:36px 1fr 32px;gap:8px;align-items:center}
.dex-stat-l{font:700 10px 'JetBrains Mono',monospace;color:var(--av-ink3)}
.dex-stat-v{font:700 11px 'JetBrains Mono',monospace;color:var(--av-ink2);text-align:right}
.dex-stat-track{height:6px;border-radius:99px;background:var(--av-bg);border:1px solid var(--av-line);overflow:hidden}
.dex-stat-track i{display:block;height:100%;background:var(--av-mint);border-radius:99px}
.dex-cards-h{font:800 13px 'Archivo';text-transform:uppercase;letter-spacing:.04em;color:var(--av-ink);margin-bottom:10px}
.dex-miss-hint{font:400 13px/1.5 'Archivo';color:var(--av-ink3);max-width:42ch;margin:0 0 12px}
.dex-cta{
  display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:10px;
  background:var(--av-mint);color:var(--av-void);font:700 13px 'Archivo';text-decoration:none;
}
.dex-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.dex-card{
  border:1px solid var(--av-line);border-radius:10px;background:var(--av-panel);padding:8px;
  cursor:pointer;text-align:left;color:inherit;font:inherit;min-height:44px;
  transition:border-color .15s,transform .15s;
}
.dex-card:hover{border-color:var(--av-mint);transform:translateY(-2px)}
.dex-card img{width:100%;border-radius:6px;display:block;aspect-ratio:5/7;object-fit:cover;background:var(--av-panel2)}
.dex-card-ph{display:flex;align-items:center;justify-content:center;aspect-ratio:5/7;background:var(--av-panel2);border-radius:6px}
.dex-card-n{display:block;font:700 11px 'Archivo';color:var(--av-ink);margin-top:6px;line-height:1.25}
.dex-card-m{display:block;font:500 10px 'JetBrains Mono',monospace;color:var(--av-ink3);margin-top:2px}
.dex-foot{
  padding:10px 16px;font:500 10.5px 'JetBrains Mono',monospace;color:var(--av-ink3);
  border-top:1px solid var(--av-line);background:rgba(0,0,0,.25);letter-spacing:.04em;
}
/* Hideout dex prop hotspot */
.ho-dex-prop{
  position:absolute;z-index:6;cursor:pointer;border:1px solid rgba(124,255,178,.35);
  border-radius:12px;padding:10px 12px;background:rgba(4,5,11,.78);
  display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;color:var(--av-ink);
  backdrop-filter:blur(8px);transition:border-color .15s,transform .15s;
}
.ho-dex-prop:hover{border-color:var(--av-mint);transform:translateY(-2px);color:var(--av-ink)}
.ho-dex-prop .ic{
  width:34px;height:34px;border-radius:8px;background:linear-gradient(160deg,#1C1F27,#0C0E13);border:1px solid rgba(124,255,178,.35);
  display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;
}
.ho-dex-prop .t{font:800 12px 'Archivo';letter-spacing:.04em;text-transform:uppercase}
.ho-dex-prop .s{font:600 10px 'JetBrains Mono',monospace;color:var(--av-mint)}
@media (prefers-reduced-motion:reduce){
  .dex-card:hover,.ho-dex-prop:hover{transform:none}
}
.av-nav-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.av-nav-signin { font: 600 13px 'Archivo'; color: var(--av-ink2); text-decoration: none; padding: 10px 16px; border-radius: 10px; border: 1px solid var(--av-line2); min-height:44px; display:inline-flex; align-items:center; }
.av-nav-signin:hover { color: var(--av-ink); border-color: var(--av-ink3); }
.av-nav-cta { font: 700 13px 'Archivo'; color: var(--av-void); text-decoration: none; padding: 10px 18px; border-radius: 10px; background: var(--av-aurora); transition: transform .15s, box-shadow .15s; min-height:44px; display:inline-flex; align-items:center; }
.av-nav-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 26px rgba(124,255,178,.35); }
@media (max-width: 760px) {
  .av-nav { gap: 14px; }
  .av-nav-links { overflow-x: auto; scrollbar-width: none; }
  .av-nav-links::-webkit-scrollbar { display: none; }
  .av-nav-right > .av-nav-signin { display: none; } /* AV-01: first right-cluster item drops */
}

/* ── AV-02 Live Strip ── */
.av-strip { position: relative; z-index: var(--av-z-strip); height: 44px; display: flex; align-items: center; overflow: hidden; background: var(--av-void); border-bottom: 1px solid var(--av-line); }
.av-strip-label { flex: none; display: flex; align-items: center; gap: 7px; height: 100%; padding: 0 16px; background: var(--av-panel2); border-right: 1px solid var(--av-line); z-index: 2; font: 600 10px 'JetBrains Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--av-ink2); }
.av-strip-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--av-mint); box-shadow: 0 0 10px var(--av-mint); animation: av-blink 1.8s infinite; }
.av-strip-tapewrap { flex: 1; min-width: 0; overflow: hidden; height: 100%; display: flex; align-items: center; }
.av-strip-tape { display: flex; white-space: nowrap; animation: av-scroll 40s linear infinite; }
.av-strip-cd { flex: none; margin-left: auto; display: flex; align-items: center; gap: 10px; height: 100%; padding: 0 18px; border-left: 1px solid var(--av-line); background: var(--av-void); z-index: 2; font: 600 10.5px 'JetBrains Mono', monospace; letter-spacing: .08em; color: var(--av-ink3); }

/* ── AV-14 Legal Footer ── */
.av-foot { border-top: 1px solid var(--av-line); background: var(--av-void); }
.av-foot-in { max-width: 1260px; margin: 0 auto; padding: 20px clamp(20px,3.5vw,40px); display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.av-foot-legal { font: 500 11px 'JetBrains Mono', monospace; color: var(--av-ink3); }
.av-foot-links { display: flex; gap: 18px; }
.av-foot-links a { font: 500 11px 'JetBrains Mono', monospace; color: var(--av-ink3); text-decoration: none; }
.av-foot-links a:hover { color: var(--av-ink2); }

/* ── Motion vocabulary (§5) — transform/opacity only ── */
@keyframes av-blink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes av-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes av-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes av-star{0%,100%{opacity:.12}50%{opacity:.9}}
@keyframes av-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes av-drift1{0%,100%{transform:translateX(-8%) skewX(-8deg) scaleY(1)}50%{transform:translateX(10%) skewX(6deg) scaleY(1.18)}}
@keyframes av-drift2{0%,100%{transform:translateX(6%) skewX(9deg) scaleY(1.12)}50%{transform:translateX(-10%) skewX(-7deg) scaleY(.9)}}
@keyframes av-drift3{0%,100%{transform:translateX(0) skewX(-4deg) scaleY(1.05)}50%{transform:translateX(-14%) skewX(8deg) scaleY(1.2)}}
@keyframes av-float{0%,100%{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-16px) rotate(var(--rot,0deg))}}
@keyframes av-flicker{0%,100%{opacity:1;transform:scale(1)}22%{opacity:.6;transform:scale(.92)}54%{opacity:.95}76%{opacity:.7;transform:scale(.95)}}
@keyframes av-lava{0%,100%{background-position:50% 90%}50%{background-position:50% 10%}}
.av-nav-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 26px rgba(124,255,178,.35); }
@media (max-width: 760px) {
  .av-nav { gap: 14px; }
  .av-nav-links { overflow-x: auto; scrollbar-width: none; }
  .av-nav-links::-webkit-scrollbar { display: none; }
  .av-nav-right > .av-nav-signin { display: none; } /* AV-01: first right-cluster item drops */
}

/* ── AV-02 Live Strip ── */
.av-strip { position: relative; z-index: var(--av-z-strip); height: 44px; display: flex; align-items: center; overflow: hidden; background: var(--av-void); border-bottom: 1px solid var(--av-line); }
.av-strip-label { flex: none; display: flex; align-items: center; gap: 7px; height: 100%; padding: 0 16px; background: var(--av-panel2); border-right: 1px solid var(--av-line); z-index: 2; font: 600 10px 'JetBrains Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--av-ink2); }
.av-strip-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--av-mint); box-shadow: 0 0 10px var(--av-mint); animation: av-blink 1.8s infinite; }
.av-strip-tapewrap { flex: 1; min-width: 0; overflow: hidden; height: 100%; display: flex; align-items: center; }
.av-strip-tape { display: flex; white-space: nowrap; animation: av-scroll 40s linear infinite; }
.av-strip-cd { flex: none; margin-left: auto; display: flex; align-items: center; gap: 10px; height: 100%; padding: 0 18px; border-left: 1px solid var(--av-line); background: var(--av-void); z-index: 2; font: 600 10.5px 'JetBrains Mono', monospace; letter-spacing: .08em; color: var(--av-ink3); }

/* ── AV-14 Legal Footer ── */
.av-foot { border-top: 1px solid var(--av-line); background: var(--av-void); }
.av-foot-in { max-width: 1260px; margin: 0 auto; padding: 20px clamp(20px,3.5vw,40px); display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.av-foot-legal { font: 500 11px 'JetBrains Mono', monospace; color: var(--av-ink3); }
.av-foot-links { display: flex; gap: 18px; }
.av-foot-links a { font: 500 11px 'JetBrains Mono', monospace; color: var(--av-ink3); text-decoration: none; }
.av-foot-links a:hover { color: var(--av-ink2); }

/* ── Motion vocabulary (§5) — transform/opacity only ── */
@keyframes av-blink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes av-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes av-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes av-star{0%,100%{opacity:.12}50%{opacity:.9}}
@keyframes av-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes av-drift1{0%,100%{transform:translateX(-8%) skewX(-8deg) scaleY(1)}50%{transform:translateX(10%) skewX(6deg) scaleY(1.18)}}
@keyframes av-drift2{0%,100%{transform:translateX(6%) skewX(9deg) scaleY(1.12)}50%{transform:translateX(-10%) skewX(-7deg) scaleY(.9)}}
@keyframes av-drift3{0%,100%{transform:translateX(0) skewX(-4deg) scaleY(1.05)}50%{transform:translateX(-14%) skewX(8deg) scaleY(1.2)}}
@keyframes av-float{0%,100%{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-16px) rotate(var(--rot,0deg))}}
@keyframes av-flicker{0%,100%{opacity:1;transform:scale(1)}22%{opacity:.6;transform:scale(.92)}54%{opacity:.95}76%{opacity:.7;transform:scale(.95)}}
@keyframes av-lava{0%,100%{background-position:50% 90%}50%{background-position:50% 10%}}
@keyframes av-fall{0%{transform:translateY(-6px);opacity:0}15%{opacity:.9}85%{opacity:.6}100%{transform:translateY(40px);opacity:0}}
@keyframes av-up{0%{transform:translateY(36px);opacity:0}15%{opacity:.9}100%{transform:translateY(-10px);opacity:0}}
@keyframes av-scan{0%{transform:translateY(0)}100%{transform:translateY(41px)}}
@keyframes av-sway{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes av-eq{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}

/* Workspace + legal docs under Directive skin */
body.av-skin.ws-page { background: var(--av-bg); color: var(--av-ink); }
body.av-skin.ws-page .av-ticker { display: none; }
body.av-skin.ws-page .ws-badge { font: 600 11px 'JetBrains Mono', monospace; color: var(--av-ink2); border: 1px solid var(--av-line2); border-radius: 999px; padding: 6px 12px; background: var(--av-panel); display: inline-flex; align-items: center; gap: 0; flex-shrink: 0; white-space: nowrap; }
/* Status dot used to sit on the first letter of the tier name — remove it */
body.av-skin.ws-page .ws-badge .dot { display: none !important; }
body.av-skin.ws-page .sec-nav { background: rgba(6,8,16,.92); border-bottom: 1px solid var(--av-line); position: sticky; top: 64px; z-index: var(--av-z-sticky); }
body.av-skin.ws-page .sec-tab { min-height: 44px; }
body.av-skin.doc-page { background: var(--av-bg); color: var(--av-ink); }
body.av-skin.doc-page .doc-wrap { max-width: 72ch; margin: 0 auto; padding: 48px clamp(20px,3.5vw,40px) 80px; }
body.av-skin.doc-page .doc-wrap h1 { font: 900 clamp(32px,4vw,48px)/1.05 'Archivo',sans-serif; letter-spacing: -.02em; color: var(--av-ink); }
body.av-skin.doc-page .doc-wrap h2 { font: 800 22px/1.2 'Archivo',sans-serif; color: var(--av-ink); margin-top: 2em; }
body.av-skin.doc-page .doc-wrap p, body.av-skin.doc-page .doc-wrap li { font: 400 15px/1.65 'Archivo',sans-serif; color: var(--av-ink2); }
body.av-skin.doc-page .doc-wrap a { color: var(--av-mint); }
body.av-skin.doc-page .meta { font: 600 12px 'JetBrains Mono',monospace; color: var(--av-ink3); }
body.av-skin.doc-page .highlight { border: 1px solid var(--av-line2); background: var(--av-panel); border-radius: 12px; padding: 16px 18px; margin: 20px 0; }
body.av-skin.doc-page .doc-nav { display: none; }

/* §5: honor prefers-reduced-motion — gate ambience, keep functional state */
@media (prefers-reduced-motion: reduce) {
  .av-skin *, .av-skin *::before, .av-skin *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .avc-tile:hover { transform: none; }
  .av-nav-portal:hover,.av-job-cta:hover,.av-away-bit:hover,.av-floor-fab{transform:none!important}
  .av-portal-pip.hot,.av-away-kicker::before,.av-strip-dot{animation:none!important;opacity:1}
}

/* ── AV-03 Arena Router (Workspace Hub) ── */
body.avc-ws { padding-bottom: 0; }
.avc-hero { padding: 52px 0 34px; text-align: center; position: relative; z-index: 1; }
/* Status line — not a tracked ALL-CAPS section eyebrow (DESIGN.md ban) */
.avc-status { display: inline-flex; align-items: center; gap: 8px; font: 600 13px/1.4 'Archivo', system-ui, sans-serif; letter-spacing: 0; text-transform: none; color: var(--av-ink2); margin: 0 0 18px; }
.avc-status .dot, .avc-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ac, var(--av-mint)); box-shadow: 0 0 8px var(--ac, var(--av-mint)); animation: av-blink 2s infinite; flex-shrink: 0; }
.avc-eyebrow { display: none; } /* legacy class suppressed */

.avc-hero h1 { font-family: 'Archivo', sans-serif !important; font-weight: 900 !important; font-size: clamp(44px, 6vw, 76px) !important; line-height: .96 !important; letter-spacing: -.02em !important; text-transform: uppercase; color: var(--av-ink); margin: 0 0 14px; }
.avc-hero h1 .gl { color: var(--nav-accent, var(--av-pink)); text-shadow: 0 0 24px var(--nav-accent, var(--av-pink)); }
.avc-sub { font-size: 16px; color: var(--av-ink2); max-width: 60ch; margin: 0 auto; line-height: 1.65; }

/* Hub grids */
.avc-arenas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; padding: 26px 0 64px; position: relative; z-index: 1; }
.avc-tile { position: relative; overflow: hidden; border-radius: 16px; min-height: 250px; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; text-decoration: none; cursor: pointer; border: 2px solid rgba(var(--acr), 0.22); background: linear-gradient(160deg, rgba(var(--acr), 0.16) 0%, rgba(6, 8, 16, 0.55) 60%, var(--av-void) 100%); transition: transform .32s var(--av-motion-ease, cubic-bezier(.22,.61,.36,1)), box-shadow .32s var(--av-motion-ease), border-color .32s; }
.avc-tile:hover { transform: translateY(-8px); border-color: rgba(var(--acr), 0.65); box-shadow: 0 34px 80px rgba(0,0,0,.75), 0 0 60px rgba(var(--acr), 0.3); }
.avc-tile-eyebrow { display: none; }
.avc-tile-meta { font: 600 12px/1.3 'JetBrains Mono', monospace; letter-spacing: .04em; color: var(--ac); margin-bottom: 8px; }
.avc-tile-label { font-family: 'Archivo'; font-weight: 900; font-stretch: 125%; font-size: 46px; line-height: .94; letter-spacing: -.02em; text-transform: uppercase; color: var(--av-ink); text-shadow: 0 0 24px rgba(var(--acr), 0.85); }
.avc-tile-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.avc-chip { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--av-ink2); border: 1px solid rgba(var(--acr), 0.38); background: rgba(var(--acr), 0.1); border-radius: 999px; padding: 5px 12px; cursor: default; }
button.avc-chip { appearance: none; -webkit-appearance: none; font: inherit; }
.avc-tile-desc { font-size: 14.5px; line-height: 1.65; color: var(--av-ink2); margin-top: 10px; max-width: 52ch; }
.avc-tile-arrow { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-family: 'Archivo'; font-weight: 700; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--ac); transition: gap .22s var(--av-motion-ease); }
.avc-tile:hover .avc-tile-arrow { gap: 14px; }

/* Arena active view head */
.avc-arena-head { padding: 44px 0 10px; text-align: center; position: relative; z-index: 1; }
.avc-arena-head h1 { font-family: 'Archivo' !important; font-weight: 900 !important; font-size: clamp(36px, 5vw, 60px) !important; line-height: .96 !important; letter-spacing: -.02em !important; text-transform: uppercase; color: var(--av-ink); margin: 0 0 10px; }
.avc-arena-head h1 .gl { color: var(--ac); text-shadow: 0 0 24px var(--ac); }
.avc-back { display: inline-flex; align-items: center; gap: 7px; background: linear-gradient(135deg, rgba(var(--acr), 0.08), transparent); border: 1px solid rgba(var(--acr), 0.35); color: var(--av-ink2); border-radius: 999px; padding: 8px 18px; font-family: 'Archivo'; font-weight: 700; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; margin-bottom: 20px; transition: .2s var(--av-motion-ease); min-height: 44px; }
.avc-back:hover { border-color: var(--ac); color: var(--ac); box-shadow: 0 0 18px rgba(var(--acr), 0.3); transform: translateX(-3px); }
.avc-pills { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding: 18px 0 30px; }
.avc-pill { background: transparent; border: 1px solid var(--av-line); color: var(--av-ink2); border-radius: 999px; padding: 9px 20px; font-family: 'Archivo'; font-weight: 600; font-size: 15px; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; transition: .18s; white-space: nowrap; min-height: 44px; }
.avc-pill:hover { color: var(--av-ink); border-color: rgba(var(--acr), 0.5); }
.avc-pill.on { background: var(--ac); border-color: var(--ac); color: var(--av-void); font-weight: 700; box-shadow: 0 0 22px rgba(var(--acr), 0.45); }

/* Mobile bottom tab bar (thumb-reach) */
.avc-tabbar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 140; background: rgba(4, 5, 11, 0.94); backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%); border-top: 1px solid var(--av-line); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); justify-content: space-around; align-items: stretch; }
.avc-tab { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; background: none; border: none; cursor: pointer; padding: 6px 2px; min-height: 52px; border-radius: 12px; font-family: 'Archivo'; font-weight: 700; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--av-ink3); transition: .18s; }
.avc-tab .tdot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: .55; transition: .18s; }
.avc-tab.on { color: var(--tc, var(--av-pink)); text-shadow: 0 0 14px var(--tc, var(--av-pink)); }
.avc-tab.on .tdot { opacity: 1; box-shadow: 0 0 10px var(--tc, var(--av-pink)); }

/* Retrofitted Price Ticker */
body[data-avc-ticker] { padding-top: 108px !important; }
body[data-avc-ticker] nav.av-nav { top: 44px !important; }
.avc-ticker { overflow: hidden; background: var(--av-void); border-bottom: 1px solid var(--av-line); position: fixed; top: 0; left: 0; right: 0; z-index: 130; height: 44px; display: flex; align-items: center; }
.avc-ticker-track { display: flex; white-space: nowrap; animation: av-scroll 40s linear infinite; }
.avc-tick { display: inline-flex; align-items: center; gap: 8px; padding: 0 28px; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--av-ink2); }
.avc-tick .tn { color: var(--av-ink); font-weight: 600; }
.avc-tick .tp { color: var(--av-pink); font-weight: 600; }
.avc-tick .tn2 { color: var(--av-ink3); }

/* Sprite Percher */
.avc-sprite { image-rendering: pixelated; pointer-events: none; filter: drop-shadow(0 4px 8px rgba(0,0,0,.65)); z-index: 3; }

/* Responsive adjustments */
@media (max-width: 860px) {
  .avc-arenas { grid-template-columns: 1fr; }
  .avc-tile-label { font-size: 38px; }
}
@media (max-width: 680px) {
  /* Lab tabbar only when dock is NOT mounted (dock is the phone thumb system) */
  .avc-tabbar { display: flex; }
  body.av-has-dock .avc-tabbar { display: none !important; }
  .avc-ticker { display: none !important; }
  body[data-avc-ticker] { padding-top: 64px !important; }
  body[data-avc-ticker] nav.av-nav { top: 0 !important; }
  body.avc-ws { padding-bottom: calc(70px + env(safe-area-inset-bottom)) !important; }
  body.av-has-dock.avc-ws { padding-bottom: calc(64px + env(safe-area-inset-bottom,0px)) !important; }
  body.avc-ws .sec-nav { display: none !important; }
  /* CLS: reserve hub tile mass before content paints */
  .avc-tile { min-height: 200px; content-visibility: auto; contain-intrinsic-size: 200px; }
  .avc-hero { min-height: 160px; }
  .avc-arenas { min-height: 420px; }
  /* Touch target floors */
  input, select, textarea { font-size: 16px !important; }
  select, input:not([type=checkbox]):not([type=radio]) { min-height: 44px; }
  .avc-pill { padding: 11px 20px; min-height: 44px; }
  .avc-back { min-height: 44px; }
  .avc-tile { min-height: 200px; padding: 22px; }
  
  /* Prevent full-screen mobile height jumping by using dvh */
  body, .av-skin { min-height: 100dvh; }
}

/* ── Mobile-safe Table Responsiveness ── */
.av-tablescroll { width: 100% !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; }
.av-tablewrap { max-width: 100% !important; overflow: hidden !important; }

/* ── Nav dropdown styles ── */
.av-nav-dropdown { position: relative; display: inline-block; }
.av-nav-dropdown-btn { font: 600 13px 'Archivo'; color: var(--av-ink2); background: none; border: none; cursor: pointer; padding: 10px 14px; display: flex; align-items: center; gap: 4px; outline: none; text-transform: uppercase; letter-spacing: .08em; min-height: 44px; }
.av-nav-dropdown-btn:hover, .av-nav-dropdown.active .av-nav-dropdown-btn, .av-nav-dropdown.is-open .av-nav-dropdown-btn { color: var(--av-ink); }
.av-nav-dropdown-menu { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); background: var(--av-panel2); border: 1px solid var(--av-line2); border-radius: 10px; padding: 6px; min-width: 168px; box-shadow: 0 18px 50px rgba(0,0,0,.7); z-index: var(--av-z-dropdown); }
/* Hover + keyboard focus + touch .is-open (shell JS) — never hover-only */
.av-nav-dropdown:hover .av-nav-dropdown-menu,
.av-nav-dropdown:focus-within .av-nav-dropdown-menu,
.av-nav-dropdown.is-open .av-nav-dropdown-menu { display: block; }
.av-nav-dropdown-link { display: flex; align-items: center; min-height: 40px; padding: 8px 12px; font: 600 13.5px 'Archivo'; color: var(--av-ink2); text-decoration: none; border-radius: 8px; transition: background .15s, color .15s; letter-spacing: 0; text-transform: none; }
.av-nav-dropdown-link:hover { background: var(--av-line); color: var(--av-ink); }
.av-nav-dropdown-link.active { color: var(--av-mint); background: rgba(124, 255, 178, 0.08); }
/* Four-lane map inside Lanes dropdown */
.av-lanes-menu {
  min-width: min(280px, calc(100vw - 24px));
  max-height: min(72vh, 520px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 8px;
}
.av-lane-group {
  padding: 4px 0 8px;
  border-bottom: 1px solid var(--av-line);
  margin-bottom: 4px;
}
.av-lane-group:last-child,
.av-lane-extra { border-bottom: none; margin-bottom: 0; }
.av-lane-head {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 8px 12px 4px;
}
.av-lane-k {
  font: 800 11px 'Archivo', system-ui, sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--lane-c, var(--av-mint));
}
.av-lane-hint {
  font: 500 11px 'Archivo', system-ui, sans-serif;
  color: var(--av-ink3);
  letter-spacing: 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   MOBILE TYPE + CONTROL SYSTEM (Impeccable polish · 2026-07-09 pass 2)
   Diagnosis of pass 1 “funny” look:
   - Forced min-height:44 on EVERY button while labels stayed 10–13px mono
     → puffy empty pills (text swimming in space)
   - Display type kept desktop font-stretch 125% + lh .92 on phones
     → crushed, uneven multi-line headers
   Fix: size type to the control, drop extreme stretch, use three control
   roles (primary / chip / icon), expand hit area without bloating visuals.
   ═══════════════════════════════════════════════════════════════════════ */
html {
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.av-skin {
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
  min-height: 100dvh;
}
.av-foot {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.av-foot-links a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 6px 0;
}

/* Shared mobile control anatomy — COMPACT immersive scale (pass 2026-07-09)
   Problem: 48px chrome + large type made phones feel big AND tight (no air).
   Fix: slightly denser controls (still ≥40px tap), smaller display type, less stack. */
.av-skin {
  --av-ctl-h: 42px;          /* primary CTA visual height */
  --av-ctl-h-sm: 40px;       /* chips / secondary — ≥40 thumb */
  --av-ctl-r: 11px;          /* primary radius */
  --av-ctl-r-pill: 999px;    /* filters / tabs */
  --av-type-display: clamp(1.5rem, 6vw, 2.05rem);   /* 24–33px */
  --av-type-h2: clamp(1.2rem, 4.2vw, 1.5rem);       /* 19–24px */
  --av-type-body: 0.9375rem; /* 15px */
  --av-type-ui: 0.875rem;    /* 14px primary labels */
  --av-type-chip: 0.8125rem; /* 13px chip/tab labels */
}

/* Coarse pointer: active press, not sticky hover */
@media (pointer: coarse) {
  .av-nav-link {
    padding: 12px 6px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
  .av-job-cta:active,
  .av-nav-cta:active,
  .av-floor-fab:active,
  .av-skin .btn-primary:active,
  .av-skin .hm-cta:active,
  .av-skin .mb-cta:active,
  .av-skin .ho-cta:active {
    transform: scale(.97);
  }
}

@media (max-width: 760px) {
  .av-container {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
  }

  /* ── DISPLAY / HEADERS ──
     Phone is not a billboard: relax condensed stretch, give multi-line air. */
  .av-skin h1,
  .av-skin .hm-h1,
  .av-skin .hm-h2,
  .av-skin .bz-mh1,
  .av-skin .bz-floor-h2,
  .av-skin .bz-pull-h2,
  .av-skin .mb-h1,
  .av-skin .mb-h2,
  .av-skin .ho-h1,
  .av-skin .avc-hero h1,
  .av-skin .avc-arena-head h1,
  .av-skin .avc-tile-label {
    font-stretch: 105% !important;
    line-height: 1.08 !important;
    letter-spacing: -0.02em !important;
    text-wrap: balance;
  }
  .av-skin h1,
  .av-skin .hm-h1,
  .av-skin .bz-mh1,
  .av-skin .mb-h1,
  .av-skin .ho-h1,
  .av-skin .avc-hero h1,
  .av-skin .avc-arena-head h1 {
    font-size: var(--av-type-display) !important;
  }
  .av-skin h2,
  .av-skin .hm-h2,
  .av-skin .bz-floor-h2,
  .av-skin .bz-pull-h2,
  .av-skin .mb-h2 {
    font-size: var(--av-type-h2) !important;
  }
  .av-skin .avc-tile-label {
    font-size: clamp(1.75rem, 8vw, 2.25rem) !important;
  }
  .av-skin .avc-sub,
  .av-skin .hm-lead,
  .av-skin .bz-floor-lead,
  .av-skin .ho-lead {
    font-size: var(--av-type-body);
    line-height: 1.55;
  }

  /* ── FORMS ── iOS zoom floor only on real fields */
  .av-skin input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]),
  .av-skin select,
  .av-skin textarea {
    font-size: 16px !important;
    min-height: var(--av-ctl-h-sm);
    line-height: 1.3;
    border-radius: 11px;
  }
  .av-skin textarea { min-height: 96px; }

  /* ── PRIMARY CTAs ── type mass matches control mass */
  .av-skin .btn-primary,
  .av-skin .btn.main,
  .av-skin .av-job-cta:not(.ghost),
  .av-skin .av-nav-cta,
  .av-skin .hm-cta,
  .av-skin .mb-cta,
  .av-skin .ho-cta,
  .av-skin .bz-steal-cta,
  .av-skin .dex-cta,
  .av-skin a.btn-primary {
    box-sizing: border-box;
    min-height: var(--av-ctl-h);
    height: auto;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: 'Archivo', system-ui, sans-serif !important;
    font-size: var(--av-type-ui) !important;
    font-weight: 700 !important;
    font-stretch: normal !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    line-height: 1.2 !important;
    border-radius: var(--av-ctl-r) !important;
    white-space: nowrap;
  }

  /* ── SECONDARY / GHOST ── same geometry as primary, quieter fill
     Do NOT include .av-nav-signin — bulk display:inline-flex was undoing
     the mobile hide rule and blowing the nav into a 2-row collision. */
  .av-skin .btn-ghost,
  .av-skin .hm-ghost,
  .av-skin .av-job-cta.ghost,
  .av-skin .avc-back {
    box-sizing: border-box;
    min-height: var(--av-ctl-h);
    height: auto;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Archivo', system-ui, sans-serif !important;
    font-size: var(--av-type-ui) !important;
    font-weight: 650 !important;
    font-stretch: normal !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    line-height: 1.2 !important;
    border-radius: var(--av-ctl-r) !important;
  }

  /* ── CHIPS / TABS / FILTERS ── readable 13px UI, not 10.5 mono in a fat pill */
  .av-skin .bz-chip,
  .av-skin .bz-tab,
  .av-skin .ho-chip,
  .av-skin .avc-pill,
  .av-skin .avc-chip,
  .av-skin .btn-sm {
    box-sizing: border-box;
    min-height: var(--av-ctl-h-sm);
    height: auto;
    padding: 0 14px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Archivo', system-ui, sans-serif !important;
    font-size: var(--av-type-chip) !important;
    font-weight: 700 !important;
    font-stretch: normal !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    line-height: 1.2 !important;
    border-radius: var(--av-ctl-r-pill) !important;
  }

  /* ── ICON / CLOSE / TOGGLE ── do NOT force 48px visual height */
  .av-skin .av-away-x,
  .av-skin .modal-x,
  .av-skin button.hide,
  .av-skin .bv-tog button,
  .av-skin [aria-label="Close"],
  .av-skin [aria-label="Dismiss"] {
    min-height: 40px !important;
    min-width: 40px;
    padding: 0 10px !important;
    font-size: 15px !important;
  }

  /* Nav chrome — ONE compact row. Peer links hide; Lanes menu has the map. */
  .av-nav {
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    gap: 6px;
    flex-wrap: nowrap !important;
    overflow: visible;
    padding-left: max(10px, env(safe-area-inset-left, 0px));
    padding-right: max(10px, env(safe-area-inset-right, 0px));
  }
  #av-nav { min-height: 48px; height: auto; }
  .av-nav-word { font-size: 14px; letter-spacing: -0.02em; }
  .av-nav-mark { width: 28px; height: 28px; border-radius: 8px; flex: none; }
  .av-nav-logo {
    flex: none; min-width: 44px; min-height: 44px;
    display: inline-flex; align-items: center; padding: 4px 2px 4px 0;
  }
  .av-nav-links {
    flex: 1 1 auto;
    min-width: 0;
    gap: 6px;
    overflow: visible;
    justify-content: flex-start;
  }
  /* Hide inline peers on phone — open Lanes for the four-door map */
  .av-nav-links > .av-nav-link { display: none !important; }
  .av-nav-right {
    flex: none;
    gap: 6px;
    margin-left: 2px;
  }
  .av-nav-right > .av-nav-signin { display: none !important; }
  .av-nav-cta {
    min-height: 44px !important;
    height: 44px !important;
    padding: 0 14px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    border-radius: 10px !important;
    white-space: nowrap;
  }
  .av-nav-cta-full { display: none !important; }
  .av-nav-cta-short { display: inline !important; }
  .av-nav-portal {
    min-height: 44px;
    height: 44px;
    padding: 0 10px 0 8px;
    flex: none;
  }
  .av-nav-portal-label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
  }
  .av-nav-dropdown { flex: none; }
  .av-nav-dropdown-btn {
    min-height: 44px;
    height: 44px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    padding: 0 12px;
    border: 1px solid var(--av-line2);
    border-radius: 10px;
    color: var(--av-ink2);
  }
  .av-nav-dropdown.is-open .av-nav-dropdown-btn,
  .av-nav-dropdown-btn:hover {
    color: var(--av-ink);
    border-color: var(--av-ink3);
  }
  .av-nav-dropdown-menu,
  .av-lanes-menu {
    position: fixed !important;
    left: max(10px, env(safe-area-inset-left, 0px)) !important;
    right: max(10px, env(safe-area-inset-right, 0px)) !important;
    top: 52px !important;
    transform: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    max-height: min(75vh, 560px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: calc(var(--av-z-nav) + 5);
    box-shadow: 0 20px 50px rgba(0,0,0,.75);
  }
  .av-nav-dropdown-link {
    min-height: 40px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
  }
  .av-away { top: 48px; }
  body.av-skin.ws-page .sec-nav { top: 48px; }

  .av-strip-cd { display: none; }
  .av-strip-label { padding: 0 10px; font-size: 9px; letter-spacing: .1em; }

  .av-nav,
  .av-away,
  .avc-tabbar {
    backdrop-filter: blur(10px) saturate(140%);
    -webkit-backdrop-filter: blur(10px) saturate(140%);
  }

  .av-floor-fab {
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: max(16px, calc(12px + env(safe-area-inset-bottom, 0px)));
    min-height: 48px;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -0.01em;
  }

  .av-tablescroll,
  .av-tablewrap {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  body.av-skin:not(.avc-ws) {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .av-skin main section + section {
    content-visibility: auto;
    contain-intrinsic-size: auto 480px;
  }

  /* Workspace pills / tiles */
  .avc-pill {
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
  }
  .avc-tab {
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: none;
    font-weight: 700;
  }
}

/* Desktop CTA label (short only on phone) */
@media (min-width: 761px) {
  .av-nav-cta-full { display: inline; }
  .av-nav-cta-short { display: none; }
}

/* iPhone SE / compact — logo mark only so Bazaar + More + Join fit without overlap */
@media (max-width: 420px) {
  .av-nav-word { display: none; }
  .av-nav-portal-label {
    max-width: 5em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .av-skin {
    --av-type-display: clamp(1.75rem, 8.5vw, 2.125rem);
    --av-type-h2: 1.25rem;
  }
  .av-nav-cta {
    padding: 0 11px !important;
    font-size: 12.5px !important;
  }
  .av-nav-dropdown-btn { padding: 0 10px; font-size: 12.5px; }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  .av-strip-tape,
  .avc-ticker-track { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   SITEWIDE MOBILE POLISH (Impeccable · full-site pass · 2026-07-09)
   Covers tool pages, labs, legal, footer — not just Bazaar shell.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 760px) {
  /* Tool / desk page display titles (Flip, Grading, HQ, Roadmap, etc.) */
  .av-skin .fl-h1,
  .av-skin .fl-h2,
  .av-skin .gd-h1,
  .av-skin .gd-h2,
  .av-skin .hq-h1,
  .av-skin .hq-h2,
  .av-skin .rm-h1,
  .av-skin .rm-h2,
  .av-skin .hm-h1,
  .av-skin .hm-h2 {
    font-stretch: 105% !important;
    line-height: 1.08 !important;
    letter-spacing: -0.02em !important;
    text-wrap: balance;
  }
  .av-skin .fl-h1,
  .av-skin .gd-h1,
  .av-skin .hq-h1,
  .av-skin .rm-h1 {
    font-size: var(--av-type-display) !important;
  }
  .av-skin .fl-h2,
  .av-skin .gd-h2,
  .av-skin .hq-h2,
  .av-skin .rm-h2 {
    font-size: var(--av-type-h2) !important;
  }
  .av-skin .fl-sub,
  .av-skin .gd-sub,
  .av-skin .hq-sub,
  .av-skin .fl-lead,
  .av-skin .gd-lead {
    font-size: 15px;
    line-height: 1.55;
  }

  /* Eyebrows: quieter, not broadcast mono */
  .av-skin .fl-desk-eyebrow,
  .av-skin .hq-eyebrow,
  .av-skin .rm-eyebrow,
  .av-skin .fl-xp-k,
  .av-skin .fl-kpi-k,
  .av-skin .hq-panel .k,
  .av-skin .gd-cell .k {
    font-family: 'Archivo', system-ui, sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  /* Stat / filter chips across tool pages */
  .av-skin .fl-stat,
  .av-skin .gd-stat,
  .av-skin .hq-stat,
  .av-skin .fl-chip,
  .av-skin .rm-chip,
  .av-skin .bz-set-chip,
  .av-skin [class*="set-chip"] {
    font-family: 'Archivo', system-ui, sans-serif !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
    min-height: 44px;
    height: auto;
    padding: 0 14px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
  }
  .av-skin .fl-search {
    width: 100% !important;
    min-height: 48px;
    font-size: 16px !important;
    border-radius: 12px;
  }
  .av-skin .fl-bar,
  .av-skin .fl-head-in,
  .av-skin .gd-head-in,
  .av-skin .hq-head-in {
    gap: 12px;
  }
  .av-skin .fl-showing {
    width: 100%;
    margin-left: 0 !important;
    font-size: 12px;
    letter-spacing: 0;
  }

  /* Primary CTAs on tool pages */
  .av-skin .fl-gate-cta,
  .av-skin .gd-cta,
  .av-skin .hq-cta,
  .av-skin .fl-desk-link {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px !important;
    font-family: 'Archivo', system-ui, sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    border-radius: 12px !important;
  }
  .av-skin .fl-desk-link {
    min-height: 44px;
    font-size: 13px !important;
  }

  /* Horizontal data boards: touch scroll + room for thumb bar */
  .av-skin .fl-scroll,
  .av-skin .gd-scroll,
  .av-skin .mb-lscroll,
  .av-skin .hm-mscroll {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    margin: 0 -4px;
    padding: 0 4px 4px;
  }

  /* Footer: stack cleanly */
  .av-foot-in {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 20px max(16px, env(safe-area-inset-left, 0px)) calc(16px + env(safe-area-inset-bottom, 0px));
  }
  .av-foot-legal {
    font-size: 11px;
    line-height: 1.45;
    max-width: 42ch;
  }
  .av-foot-links {
    flex-wrap: wrap;
    gap: 8px 16px;
  }
  .av-foot-links a {
    font-size: 12px;
    min-height: 40px;
  }

  /* Live strip: less chrome */
  .av-strip {
    height: 40px;
  }
  .av-strip-label {
    font-size: 9px;
    letter-spacing: 0.08em;
    padding: 0 10px;
  }

  /* Doc / legal pages */
  body.av-skin.doc-page .doc-wrap {
    padding: 32px max(16px, env(safe-area-inset-left, 0px)) calc(48px + env(safe-area-inset-bottom, 0px));
  }
  body.av-skin.doc-page .doc-wrap h1 {
    font-size: clamp(1.75rem, 7vw, 2.25rem) !important;
    font-stretch: 105%;
    line-height: 1.1;
  }
  body.av-skin.doc-page .doc-wrap p,
  body.av-skin.doc-page .doc-wrap li {
    font-size: 15px !important;
    line-height: 1.65 !important;
  }

  /* Labs / legacy core buttons under av-skin */
  body.av-skin.ws-page .btn,
  body.av-skin.ws-page .btn-primary,
  body.av-skin.ws-page .btn-signin {
    min-height: 44px;
    font-size: 14px !important;
    letter-spacing: 0 !important;
  }
  body.av-skin.ws-page .sec-tab {
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
    min-height: 44px;
  }

  /* Non-dock fallback (desktop or pre-dock paint) */
  body.av-skin:not(.bz-page):not(.avc-ws):not(.av-has-dock) {
    padding-bottom: max(56px, calc(48px + env(safe-area-inset-bottom, 0px)));
  }

  /* HQ / Flip gate rows */
  .av-skin .hq-gaterow,
  .av-skin .fl-gate {
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    gap: 12px;
  }
  .av-skin .hq-gaterow .hq-cta,
  .av-skin .fl-gate .fl-gate-cta {
    width: 100%;
    box-sizing: border-box;
  }

  /* Roadmap month rail */
  .av-skin .rm-mo {
    width: 140px;
  }
  .av-skin .rm-chip {
    font-size: 12.5px !important;
  }

  /* Calc grids / KPI values readable */
  .av-skin .fl-kpi-v,
  .av-skin .gd-cell .v {
    font-size: clamp(16px, 4.5vw, 22px) !important;
  }
  .av-skin .gd-calc-cells {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* Extra-tight phones */
@media (max-width: 390px) {
  .av-skin .fl-h1,
  .av-skin .gd-h1,
  .av-skin .hq-h1,
  .av-skin .rm-h1 {
    font-size: clamp(1.7rem, 8.5vw, 2.1rem) !important;
  }
  .av-skin .hq-tier {
    grid-template-columns: 44px 1fr !important;
  }
}
\n\n

/* ── Unified toast (AV.toast) ── */
.av-toast-host{
  position:fixed;z-index:calc(var(--av-z-overlay,90) + 20);pointer-events:none;
  display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 24px));
}
@media (max-width:760px){
  .av-toast-host{
    top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);
    align-items:center;width:min(420px,calc(100vw - 24px));
  }
}
@media (min-width:761px){
  .av-toast-host{
    bottom:max(24px,env(safe-area-inset-bottom));right:max(20px,env(safe-area-inset-right));
    align-items:flex-end;
  }
}
.av-toast{
  pointer-events:auto;min-height:48px;padding:12px 16px;border-radius:12px;
  border:1px solid var(--av-line2);background:rgba(8,10,18,.96);color:var(--av-ink);
  font:650 14px/1.35 Archivo,system-ui,sans-serif;
  box-shadow:0 12px 40px rgba(0,0,0,.55),0 0 0 1px rgba(124,255,178,.06);
  display:flex;align-items:center;gap:10px;
  opacity:0;transform:translateY(12px) scale(.96);
  transition:opacity 150ms cubic-bezier(.2,.8,.2,1),transform 180ms cubic-bezier(.2,.8,.2,1);
  will-change:transform,opacity;
}
.av-toast.show{opacity:1;transform:translateY(0) scale(1)}
.av-toast--success{
  border-color:rgba(124,255,178,.45);
  box-shadow:0 12px 40px rgba(0,0,0,.55),0 0 24px rgba(124,255,178,.18);
}
.av-toast--error{
  border-color:rgba(255,122,89,.5);
  box-shadow:0 12px 40px rgba(0,0,0,.55),0 0 20px rgba(255,122,89,.15);
}
.av-toast--info{border-color:var(--av-line2)}
.av-toast-dot{width:8px;height:8px;border-radius:50%;flex:none}
.av-toast--success .av-toast-dot{background:var(--av-mint);box-shadow:0 0 10px var(--av-mint)}
.av-toast--error .av-toast-dot{background:var(--av-coral);box-shadow:0 0 10px var(--av-coral)}
.av-toast--info .av-toast-dot{background:var(--av-teal)}
.av-toast-msg{flex:1;min-width:0}
@media (prefers-reduced-motion:reduce){
  .av-toast{transition:opacity 120ms linear;transform:none}
  .av-toast.show{transform:none}
}

/* ── Operator density (Persona spec §7, P4) ──────────────────────────────
   av_shell stamps data-density on <body> (operator = desktop default,
   scout = touch/small; localStorage av_density overrides). Desktop-gated:
   Scout tap floors (44px) are never violated on touch widths. */
@media (min-width:981px){
  body[data-density="operator"] .fl-cols,
  body[data-density="operator"] .fl-row{padding-top:7px;padding-bottom:7px;gap:8px}
  body[data-density="operator"] .dash-grid{gap:10px}
  body[data-density="operator"] .avw-row{padding-top:4px;padding-bottom:4px}
}
