/* Typography pass.
   Pixelify Sans at heavy weights closes its C and G ("Orew", "Qunner"), so short labels,
   buttons, tabs and titles use Jersey 10 (also from the Infinite Monkey Industries site),
   which stays crisp at small sizes. Body copy keeps Pixelify Sans at its regular weight. */
body { font-family: var(--font-label, 'Jersey 10'), sans-serif; font-size: 17px; line-height: 1.15; }
:root {
  --font-label: 'Jersey 10', 'Pixelify Sans', 'Trebuchet MS', 'Segoe UI', sans-serif;
}
.btn, .tab, .item .t, #card h3, .perk .t, .roster li b, .sw b, .whistle b, .manage, .pill, .chip,
.card h5, .toast, #toolBar, .act span, .act-use b, .desk-title span, .brand-text span, .stat label,
.row-btns .btn, .icon-btn, .bank, .floor, .claim, .claim b, .kv dt, .kv dd, .item .lock, .roster .st,
.sheet .sub, .title-tag, .title-foot, .menu .btn, .switches .sw span, #panel h4, .ledger div, .climb {
  font-family: var(--font-label);
  font-weight: 400;
  letter-spacing: 0.02em;
}
.btn { font-size: 18px; }
.btn.sm { font-size: 16px; }
.tab { font-size: 19px; }
.item .t { font-size: 19px; }
.item .d { font-size: 13px; }
#card h3 { font-size: 21px; font-weight: 400; }
#card h3 small { font-size: 15px; }
.perk .t { font-size: 18px; }
.roster li { font-size: 17px; }
.roster li b { font-size: 18px; font-weight: 400; }
.roster .st { font-size: 15px; }
.sw b { font-size: 16px; }
.sw span { font-size: 13px; }
.whistle b { font-size: 18px; }
.whistle span { font-size: 14px; }
.manage { font-size: 20px; }
.pill { font-size: 14px; }
.chip { font-size: 14px; }
.card h5 { font-size: 19px; }
.toast { font-size: 17px; }
#toolBar { font-size: 18px; }
.act span { font-size: 14px; }
.act-use b { font-size: 14px; font-family: var(--font-title); }
.stat label { font-size: 13px; letter-spacing: 0.1em; }
.claim { font-size: 15px; }
.claim b { font-size: 15px; }
.kv { font-size: 16px; }
.kv dt { color: var(--mute); }
.item .lock { font-size: 15px; }
#panel h4 { font-size: 15px; letter-spacing: 0.14em; }
.sheet .sub { font-size: 17px; }
.title-tag { font-size: 20px; }
.title-foot { font-size: 15px; }
.menu .btn { font-size: 21px; }
.ledger div { font-size: 18px; }
.climb { font-size: 19px; }
.floor { font-size: 24px; }
.bank { font-size: 26px; }
.icon-btn { font-family: var(--font-num); }
.brand-text span { font-size: 13px; letter-spacing: 0.12em; }
.desk-title span { font-size: 14px; }
#hint .hint-in { font-size: 16px; }
#hint b { font-weight: 400; }
.note { font-size: 13px; }
#card p { font-size: 14px; }
.kv dd { font-size: 16px; }
#banner .b-sub { font-family: var(--font-label); font-size: 20px; }
#log { font-size: 19px; }
.result-note { font-size: 17px; }

/* compact layouts: tuned for small screens */
.compact .btn { font-size: 18px; }
.compact .tab { font-size: 19px; }
.compact .sw b { font-size: 15px; }
.compact .whistle b { font-size: 14px; }
.compact .whistle span { font-size: 12px; }
.compact #waveBox label { font-size: 12px; letter-spacing: 0.04em; }
.compact #hint .hint-in { font-size: 15px; }
.compact .toast { font-size: 16px; }
.compact #toolBar { font-size: 16px; }
.compact .item .d { font-size: 14px; }
.compact .sheet .sub { font-size: 16px; }
.compact .title-tag { font-size: 18px; }
.compact .menu .btn { font-size: 20px; }
.compact .ledger { font-size: 17px; }
.compact .manage { font-size: 19px; }
.portrait .manage { font-size: 17px; }
.touch .act span { font-size: 13px; }
.touch .act-use span { font-size: 12px; max-width: 92px; }

/* descriptive copy: same legible face, sized up to match its small x-height */
.item .d { font-size: 16px; line-height: 1.12; }
.note { font-size: 16px; line-height: 1.15; }
#card p { font-size: 16px; line-height: 1.15; }
.card { font-size: 17px; line-height: 1.15; }
.perk .d { font-size: 15px; }
.zone-info { font-size: 16px; }
.result-note { font-size: 18px; }
.result-note, .zone-info, .card, .perk .d, .note, .item .d, #card p, #hint .hint-in, .sheet .sub, .title-tag { font-family: var(--font-label); }
#hint .hint-in { font-size: 18px; line-height: 1.12; }
.compact #hint .hint-in { font-size: 16px; }
.compact .item .d { font-size: 16px; }
kbd { font-family: var(--font-ui); }
.title-pre { font-family: var(--font-label); font-size: 17px; }
.climb, .ledger, .ledger div { font-family: var(--font-label); }

/* override cooldown: dim the label so the countdown reads cleanly */
.sw .cool { background: rgba(5, 8, 20, 0.88); }
.sw .cool-t { font-size: 28px; color: #c8d2ff; text-shadow: 0 0 8px rgba(0, 0, 0, 0.9); }
.whistle.messy:not(:disabled) { background: #5a3a10; animation: none; }
.whistle.messy:not(:disabled) b { color: #ffe0a0; }
.sw.cooling b, .sw.cooling span, .sw.cooling kbd { opacity: 0.38; }
.sw .cool-t { inset: auto 6px 2px auto; display: block; font-size: 26px; line-height: 1; }
.compact .sw .cool-t { inset: 0; display: grid; place-items: center; font-size: 26px; }
.compact .sw.cooling b { opacity: 0.25; }
