/* base.css: fonts, utilities, buttons and shared primitives. Loaded on every page, before the page stylesheet. */

/* Self-hosted from Google Fonts (SIL Open Font License). latin + latin-ext subsets. */
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-400-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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-500-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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-600-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-600-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;
}
/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/montserrat-400-800-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/montserrat-400-800-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;
}

/* utility classes */
.fx{display:flex}
.col{display:flex;flex-direction:column}
.grid{display:grid}
.ac{align-items:center}
.jc{justify-content:center}
.jb{justify-content:space-between}
.f1{flex:1}
.noshrink{flex-shrink:0}
.wrap{flex-wrap:wrap}
.fw5{font-weight:500}
.fw6{font-weight:600}
.fw7{font-weight:700}
.fw8{font-weight:800}
.fs11{font-size:11px}
.fs12{font-size:12px}
.fs13{font-size:13px}
.fs14{font-size:14px}
.fs15{font-size:15px}
.fs16{font-size:16px}
.fs20{font-size:20px}
.fs22{font-size:22px}
.upper{text-transform:uppercase}
.tc{text-align:center}
.nowrap{white-space:nowrap}
.gap8{gap:8px}
.gap10{gap:10px}
.gap12{gap:12px}
.gap16{gap:16px}
.gap24{gap:24px}
.m0{margin:0}
.mt8{margin-top:8px}
.mt12{margin-top:12px}
.mt16{margin-top:16px}
.mb8{margin-bottom:8px}
.mb12{margin-bottom:12px}
.mb16{margin-bottom:16px}
.posrel{position:relative}
.posabs{position:absolute}
.round{border-radius:50%}
.ohide{overflow:hidden}
.bbox{box-sizing:border-box}
.pointer{cursor:pointer}
.w100{width:100%}
.b0{border:none}

.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace}
.lbl{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#b8440a}
.lbl-d{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#ff9333}
/* ================= BUTTON SYSTEM — pill + circular chip ================= */
/* live "we are open" indicator */
/* ---- ruby: the secondary. It marks what is always on and what we stand behind. ---- */
.ruby{color:#b8440a}
.ruby-d{color:#ff9333}
/* the open-24-hours pulse is the most repeated always-on signal on the site */
.live{width:8px;height:8px;border-radius:50%;background:#b8440a;flex:none;position:relative;
      box-shadow:0 0 0 3px rgba(184,68,10,.20)}
.live:after{content:"";position:absolute;inset:-3px;border-radius:50%;
      box-shadow:0 0 0 1px rgba(184,68,10,.62);animation:livep 2.6s ease-out infinite}
.live-d{background:#ff9333;box-shadow:0 0 0 3px rgba(255,147,51,.22)}
.live-d:after{box-shadow:0 0 0 1px rgba(255,147,51,.64)}
@keyframes livep{0%{transform:scale(.6);opacity:.95}70%{transform:scale(2);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.live:after{animation:none}}
.gold{color:#ff8a2b}
.btn{display:inline-flex;align-items:center;gap:14px;height:54px;padding:0 8px 0 26px;border:0;
     border-radius:100px;font-family:inherit;font-size:15px;font-weight:600;letter-spacing:-.005em;
     cursor:pointer;text-decoration:none;white-space:nowrap;
     transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.btn .chip{display:flex;align-items:center;justify-content:center;width:38px;height:38px;
     border-radius:100px;flex:none;transition:background .18s ease,transform .18s ease}
.btn:hover .chip{transform:translateX(2px)}
.btn-1{background:#7200d7;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 24px -10px rgba(114,0,215,.65)}
.btn-1 .chip{background:rgba(255,255,255,.18)}
.btn-1:hover{background:#57009e;color:#fff}
.btn-1:hover .chip{background:rgba(255,255,255,.3)}
.btn-2{background:transparent;color:#23004c;box-shadow:inset 0 0 0 1px rgba(35,0,76,.22)}
.btn-2 .chip{box-shadow:inset 0 0 0 1px rgba(35,0,76,.2)}
.btn-2:hover{color:#7200d7;box-shadow:inset 0 0 0 1px #7200d7}
.btn-2:hover .chip{background:#f2e8fe;box-shadow:inset 0 0 0 1px #7200d7}
.btn-2d{background:transparent;color:#f6f1fd;box-shadow:inset 0 0 0 1px rgba(246,241,253,.32)}
.btn-2d .chip{box-shadow:inset 0 0 0 1px rgba(246,241,253,.3)}
.btn-2d:hover{color:#fff;box-shadow:inset 0 0 0 1px rgba(246,241,253,.7)}
.btn-2d:hover .chip{background:rgba(246,241,253,.16)}
.btn-w{background:#fff;color:#7200d7;box-shadow:0 10px 26px -12px rgba(0,0,0,.55)}
.btn-w .chip{background:#f2e8fe}
.btn-w:hover{background:#f6f1fd;color:#57009e}
.btn-sm{height:44px;padding:0 6px 0 20px;font-size:13px;gap:10px}
.btn-sm .chip{width:32px;height:32px}
.btn-full{justify-content:center;width:100%}
.lnk{display:inline-flex;align-items:baseline;gap:8px;font-family:"IBM Plex Mono",monospace;
     font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#23004c;text-decoration:none}
.lnk .rule{display:block;height:1px;width:14px;background:#7200d7;transition:width .2s ease}
.lnk:hover{color:#7200d7}
.lnk:hover .rule{width:26px}
.lnk-d{color:#cbaaf7}
.lnk-d:hover{color:#fff}

/* the hidden attribute always wins over component display rules */
[hidden]{display:none !important}
