@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("/fonts/newsreader-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Newsreader"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("/fonts/newsreader-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Newsreader"; font-style: italic; font-weight: 200 800; font-display: swap; src: url("/fonts/newsreader-italic-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Newsreader"; font-style: italic; font-weight: 200 800; font-display: swap; src: url("/fonts/newsreader-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root, :root[data-theme="dark"] {
  color-scheme: dark;
  --ground: #1f1f21;
  --glow: #2c2c2f;
  --deep: #18181a;
  --text: #f2f2f0;
  --title: #ffffff;
  --muted: #9b9b9f;
  --locality: #c9c9cc;
  --gold: #c9a85a;
  --gold-deep: #a3863e;
  --gold-light: #e2c77d;
  --gold-line: #c9a85a99;
  --gold-frame: #c9a85a40;
  /* The emblems' foil, top to base. Their #press filter tints their top
     inner edge --press-rim and bottom inner edge --press-floor, and lays a ledge --press-ledge and a soft
     halo --press-halo around them: raised in dark mode, pressed into the page in light. */
  --foil-0: #f2dc9c;
  --foil-1: #dec27b;
  --foil-2: #c6a557;
  --foil-3: #ab8c45;
  --foil-4: #8f7230;
  --press-rim: #fff4d699;
  --press-floor: transparent;
  --press-ledge: #000000cc;
  --press-halo: transparent;
  --hair: #ffffff14;
  --fine: #ffffff59;
  --grab: #ffffff33;
  --edge: #ffffff1f;
  --seat: #9b9b9f88;
  --chip: #2a2a2d;
  --chip-on: #f2f2f0;
  --chip-on-text: #1f1f21;
  --button: #1f1f21b3;
  --button-edge: var(--gold);
  --button-text: var(--gold-light);
  --title-glow: #000a;
  --shadow: #0007;
  --here: #7cc4ff;
  --lit-glow: 0 0 12px var(--gold);
  --sheet-shadow: 0 -4px 24px #0006;
  --card: radial-gradient(120% 80% at 50% 25%, #343437, #242426 75%);
  --card-shadow: inset 0 1px 0 #ffffff12, 0 18px 30px -10px #000a, 0 40px 80px -20px #000b;
  --tile: var(--card);
  --tile-shadow: inset 0 0 0 1px var(--hair), 0 1px 2px var(--shadow), 0 12px 22px -12px var(--shadow);
  --tile-pressed: inset 0 0 0 1px var(--hair), 0 1px 1px var(--shadow);
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --purple: #8a2be2;
}
:root[data-theme="light"] {
  color-scheme: light;
  --ground: #f6f5f2;
  --glow: #ffffff;
  --deep: #ebe9e4;
  --text: #1d1d1f;
  --title: #111111;
  --muted: #6f6b64;
  --locality: #57534c;
  --gold: #a8812f;
  --gold-deep: #8a6d26;
  --gold-light: #7a5a1a;
  --gold-line: #a8812fb0;
  --gold-frame: #a8812f55;
  --foil-0: #e0c172;
  --foil-1: #d0ad5b;
  --foil-2: #bf9946;
  --foil-3: #a88232;
  --foil-4: #88641c;
  --press-rim: #3d2a0866;
  --press-floor: transparent;
  --press-ledge: transparent;
  --press-halo: #ffffff;
  --hair: #0000001a;
  --fine: #00000066;
  --grab: #0000002e;
  --edge: #00000014;
  --seat: #6f6b6488;
  --chip: #ebe9e4;
  --chip-on: #1d1d1f;
  --chip-on-text: #ffffff;
  --button: transparent;
  --button-edge: var(--gold);
  --button-text: var(--gold-light);
  --title-glow: transparent;
  --shadow: #0002;
  --here: #1f6fd1;
  --lit-glow: none;
  --sheet-shadow: 0 -4px 24px #00000014;
  --card: radial-gradient(120% 80% at 50% 25%, #ffffff, #f1efea 75%);
  --card-shadow: inset 0 0 0 1px #0000000f, 0 18px 30px -10px #0003, 0 40px 80px -20px #0003;
  --tile: linear-gradient(#ffffff, #fcfbf9);
  --tile-shadow: inset 0 0 0 1px #00000017, 0 1px 1px #00000014, 0 6px 14px -8px #00000026;
  --tile-pressed: inset 0 0 0 1px #00000017, 0 1px 1px #00000014;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) { color-scheme: light; }
}
* { box-sizing: border-box; margin: 0; }
/* Safari tints its bars from a plain background colour; a gradient has none, so they'd stay white. */
html { background: var(--ground); }
html, body { height: 100%; }
body { background: var(--ground); color: var(--text); font: 16px/1.35 system-ui, sans-serif; overflow: hidden; }

.map { position: fixed; inset: 0; }
.map #map { position: absolute; inset: 0; }
#map { opacity: 0; transition: opacity 0.6s ease-out; }
body.drawn #map { opacity: 1; }
.map::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* Solid at the top, so Safari tints its status bar the page's ink. --s is where the solid ends. */
  --s: calc(env(safe-area-inset-top) + 9dvh + 1.5rem);
  background: linear-gradient(to bottom,
    var(--ground) 0, var(--ground) var(--s),
    color-mix(in srgb, var(--ground) 95%, transparent) calc(var(--s) + 1.5rem), color-mix(in srgb, var(--ground) 87%, transparent) calc(var(--s) + 3rem),
    color-mix(in srgb, var(--ground) 65%, transparent) calc(var(--s) + 4.5rem), color-mix(in srgb, var(--ground) 44%, transparent) calc(var(--s) + 5.5rem),
    color-mix(in srgb, var(--ground) 24%, transparent) calc(var(--s) + 6.5rem), color-mix(in srgb, var(--ground) 9%, transparent) calc(var(--s) + 7.5rem),
    transparent calc(var(--s) + 8.5rem));
}

.where { position: fixed; z-index: 2; top: 0; left: 0; right: 0; display: grid; justify-items: center; padding: calc(9dvh + env(safe-area-inset-top)) 1.5rem 0; text-align: center; pointer-events: none; }
.brand { color: var(--text); font: 400 0.92rem/1 system-ui, sans-serif; letter-spacing: 0.01em; opacity: 0.88; }
.brand .sign { width: 0.72em; height: 0.72em; vertical-align: -0.04em; color: var(--gold); }
.brand .rule { margin: 0 0.5em; opacity: 0.4; }
a.brand { text-decoration: none; pointer-events: auto; -webkit-tap-highlight-color: transparent; }

@keyframes drop { from { transform: translateY(-2.5rem) scale(0.6); opacity: 0; } }
