@font-face{font-family:Barlow;src:url('/site/fonts/barlow-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Barlow Condensed;src:url('/site/fonts/barlow-condensed-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Barlow Condensed;src:url('/site/fonts/barlow-condensed-700.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Barlow Condensed;src:url('/site/fonts/barlow-condensed-900.woff2') format('woff2');font-style:normal;font-weight:900;font-display:swap}
@font-face{font-family:Barlow;src:url('/site/fonts/barlow-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url('/site/fonts/barlow-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Barlow;src:url('/site/fonts/barlow-700.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
/* Shared visual contract for the public website and the game. */
:root{
  --mastro-bg:#181818;
  --mastro-surface:#242424;
  --mastro-deep:#101010;
  --mastro-raised:#2e2e2e;
  --mastro-subtle:#1f1f1f;
  --mastro-line:#464646;
  --mastro-line-strong:#707070;
  --mastro-paper:#e6e6df;
  --mastro-ink:#202020;
  --mastro-muted:#b7b7b3;
  --mastro-gold:#ffd12a;
  --mastro-gold-hover:#ffdf66;
  --mastro-gold-border:#ffe887;
  --mastro-gold-subtle:#343120;
  --mastro-success:#9bdfbf;
  --mastro-danger:#ffa296;
  --mastro-danger-surface:#382925;
  --mastro-danger-line:#a66e61;
  --mastro-shadow:#080808;
  --mastro-shadow-soft:#08080880;
  --mastro-backdrop:#050505db;
  --mastro-glow:#ffd12a06;
  --mastro-discord:#4f4d9e;
  --mastro-discord-hover:#6560b9;
  --mastro-discord-line:#aaa2ff;
  --mastro-white:#fff;
  --mastro-font-medium:500;
  --mastro-font-body:Barlow,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --mastro-font-display:Barlow Condensed,Impact,sans-serif;
  --mastro-radius-control:4px;
  --mastro-radius-card:6px;
  --mastro-space-xs:6px;
  --mastro-space-sm:10px;
  --mastro-space-md:12px;
  --mastro-space-lg:16px;
  --mastro-space-xl:24px;
  --mastro-control-height:44px;
  --mastro-font-screen:2.8rem;
  --mastro-font-card:1.55rem;
  --mastro-font-body-size:.875rem;
  --mastro-font-small:.75rem;
}

/* Purple identifies the training guide without changing the city's palette. */
.in-tutorial{
  --mastro-tutorial-surface:#241a32;
  --mastro-tutorial-raised:#38264d;
  --mastro-tutorial-hover:#45305e;
  --mastro-tutorial-line:#9674bc;
  --mastro-tutorial-accent:#d3adff;
  --mastro-tutorial-text:#f6efff;
  --mastro-tutorial-muted:#d0bedf;
}

/* Shared symbols, help controls and readable tooltips across site and game. */
.ui-icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.125em;pointer-events:none}
/* The icon occupies one fixed square; the invisible hit area never changes layout. */
.tooltip-trigger,.tooltip-trigger:hover,.tooltip-trigger:focus-visible,.tooltip-trigger:active{position:relative;display:inline-flex!important;align-items:center;justify-content:center;flex:none;width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;padding:0!important;margin-block:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:none!important;cursor:help;line-height:1!important;text-decoration:none;transition:color .15s}
.tooltip-trigger{color:var(--mastro-muted)!important}
:root .tooltip-trigger:hover,:root .tooltip-trigger:focus-visible{color:var(--mastro-gold)!important}
.tooltip-trigger::before{content:'';position:absolute;inset:-4px}
.tooltip-trigger>.ui-icon{width:15px!important;height:15px!important;font-size:15px!important}
.interface-tooltip{position:fixed;z-index:180;max-width:min(310px,calc(100vw - 24px));padding:12px 14px;border:1px solid var(--mastro-line-strong);border-radius:var(--mastro-radius-card);background:var(--mastro-paper);color:var(--mastro-ink);box-shadow:0 7px 24px var(--mastro-shadow-soft);font:500 .875rem/1.45 var(--mastro-font-body);text-align:left;white-space:normal;overflow-wrap:anywhere}
.interface-tooltip ul{margin:0;padding-left:18px}
.interface-tooltip li+li{margin-top:6px}
.interface-tooltip p{margin:12px 0 0;color:inherit}
.interface-tooltip[hidden]{display:none}
@media(pointer:coarse){.tooltip-trigger::before{inset:-5px}}

[data-tooltip]:focus-visible{outline:2px solid var(--mastro-gold);outline-offset:3px}

/* Medium is the interface's single weight; size and color carry hierarchy. */
body{font-weight:var(--mastro-font-medium)}
body :is(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,a,button,input,select,textarea,label,summary,li,dt,dd,th,td,time,code,legend){font-weight:var(--mastro-font-medium)!important}
body :where(p,span,small,strong,b,em,a,button,input,select,textarea,label,summary,li,dt,dd,th,td,time,legend){font-family:inherit}

/* The consent dialog is mounted independently on both public and game pages. */
:root .analytics-choice{font:500 .875rem/1.45 var(--mastro-font-body);padding:14px;background:var(--mastro-surface);border-color:var(--mastro-line-strong);border-radius:var(--mastro-radius-card);color:var(--mastro-paper);box-shadow:0 6px 30px var(--mastro-shadow-soft)}
:root .analytics-choice::backdrop{background:var(--mastro-backdrop)}
:root .analytics-choice a{color:var(--mastro-gold)}
:root .analytics-choice button{font-family:var(--mastro-font-body);border-radius:var(--mastro-radius-control)}
:root .analytics-choice .analytics-option{display:flex;align-items:flex-start;gap:10px;margin:10px 0;padding:10px;border:1px solid var(--mastro-line);border-radius:var(--mastro-radius-control);font-size:.875rem;color:var(--mastro-paper);cursor:pointer}
:root .analytics-option input{width:18px;height:18px;min-height:18px;flex:none;margin:2px 0 0;accent-color:var(--mastro-gold)}
:root .analytics-option small{display:block;font-size:.75rem;line-height:1.4;color:var(--mastro-muted);margin-top:3px}
:root .analytics-choice .analytics-audience-note{font-size:.75rem;line-height:1.4;margin:10px 0 12px}
