/* Self-hosted Poppins / Lato / Inconsolata — the Shoreditch theme fonts.
   latin + latin-ext subsets, downloaded from Google Fonts. */
/* Inconsolata 400 latin-ext */
@font-face {
  font-family: 'Inconsolata';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/inconsolata-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;
}
/* Inconsolata 400 latin */
@font-face {
  font-family: 'Inconsolata';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/inconsolata-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;
}
/* Inconsolata 700 latin-ext */
@font-face {
  font-family: 'Inconsolata';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/inconsolata-700-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;
}
/* Inconsolata 700 latin */
@font-face {
  font-family: 'Inconsolata';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/inconsolata-700-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;
}
/* Lato 400i latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lato-400i-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;
}
/* Lato 400i latin */
@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lato-400i-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;
}
/* Lato 700i latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/lato-700i-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;
}
/* Lato 700i latin */
@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/lato-700i-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;
}
/* Lato 400 latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lato-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;
}
/* Lato 400 latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/lato-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;
}
/* Lato 700 latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/lato-700-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;
}
/* Lato 700 latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/lato-700-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;
}
/* Poppins 400 latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/poppins-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;
}
/* Poppins 400 latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/poppins-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;
}
/* Poppins 700 latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/poppins-700-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;
}
/* Poppins 700 latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/poppins-700-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;
}

/* ---------------------------------------------------------------------------
   Site-wide brand layer.  Loaded on every page; blog pages additionally load
   blog.css.  Poppins headings here are what keep the marketing pages from
   looking like an unthemed Bootstrap demo next to the blog.
   -------------------------------------------------------------------------- */

:root {
  --brand-navy:  #0d3b66;
  --brand-ink:   #14213d;
  --brand-amber: #f4a261;
  --brand-tint:  #f4f7fb;
}

h1, h2, h3, h4, h5, h6, .navbar-brand {
  font-family: Poppins, var(--bs-body-font-family);
}

.btn-brand {
  background: var(--brand-amber);
  border-color: var(--brand-amber);
  color: var(--brand-ink);
  font-weight: 600;
}

.btn-brand:hover,
.btn-brand:focus {
  background: #eb9146;
  border-color: #eb9146;
  color: var(--brand-ink);
}

.btn-outline-brand {
  border-color: var(--brand-navy);
  color: var(--brand-navy);
}

.btn-outline-brand:hover,
.btn-outline-brand:focus {
  background: var(--brand-navy);
  color: #fff;
}

.bg-brand-tint { background: var(--brand-tint); }

/* Feature and step markers: a filled disc, sized so it reads at a glance */
.brand-disc {
  align-items: center;
  background: var(--brand-navy);
  border-radius: 50%;
  color: var(--brand-amber);
  display: inline-flex;
  height: 3rem;
  justify-content: center;
  width: 3rem;
}

.navbar-dark .navbar-nav .nav-link { color: rgba(255, 255, 255, .78); }
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus { color: #fff; }

/* Footer links are small; keep the tap target finger-sized */
footer a { display: inline-block; padding: .25rem 0; }

/* Home-page reading list: brand-coloured, underline only on hover */
.tip-link {
  border-bottom: 1px solid rgba(13, 59, 102, .12);
  color: var(--brand-navy);
  font-weight: 600;
  text-decoration: none;
}

.tip-link:hover,
.tip-link:focus {
  color: var(--brand-ink);
  text-decoration: underline;
}

/* ---- features page ---------------------------------------------------- */

/* anchors land below the section heading, not under it */
.sl-feature-section { scroll-margin-top: 1.5rem; }

.sl-feature-nav {
  position: sticky;
  top: 1.5rem;
  border-left: 2px solid var(--bs-border-color);
  padding-left: 1rem;
}

.sl-feature-nav .nav-link {
  color: var(--bs-secondary-color);
  font-size: .9rem;
  line-height: 1.35;
}

.sl-feature-nav .nav-link:hover,
.sl-feature-nav .nav-link:focus { color: var(--brand-navy); }

/* the feature bullets read as prose, not as a checklist of one-liners */
.sl-feature-list {
  list-style: none;
  padding-left: 0;
}

.sl-feature-list li {
  padding: .35rem 0 .35rem 1.65rem;
  position: relative;
}

.sl-feature-list li:before {
  content: "";
  position: absolute;
  left: .35rem;
  top: .95rem;
  width: .4rem;
  height: .4rem;
  border-radius: 50%;
  background: var(--brand-amber);
}

html { scroll-behavior: smooth; }

/* ---- laptop frame ----------------------------------------------------
 * Drawn in CSS rather than composited into the screenshot, so the shot
 * underneath can be replaced without redoing the artwork, and so it stays
 * sharp on any display. */

.sl-macbook-screen {
  background: #16181d;
  border-radius: .9rem .9rem .2rem .2rem;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
  padding: 1.15rem .7rem .85rem;
  position: relative;
}

/* camera */
.sl-macbook-screen:before {
  background: #3a3d44;
  border-radius: 50%;
  content: "";
  height: .3rem;
  left: 50%;
  position: absolute;
  top: .45rem;
  transform: translateX(-50%);
  width: .3rem;
}

.sl-macbook-screen img {
  border-radius: .15rem;
  display: block;
  height: auto;
  width: 100%;
}

/* the deck, slightly wider than the lid, with the thumb notch */
.sl-macbook-base {
  background: linear-gradient(180deg, #d9dce0, #a9aeb5 55%, #8b9199);
  border-radius: 0 0 .65rem .65rem;
  height: .7rem;
  margin: 0 -5.5%;
}

.sl-macbook-base:after {
  background: #868c94;
  border-radius: 0 0 .3rem .3rem;
  content: "";
  display: block;
  height: .26rem;
  margin: 0 auto;
  width: 15%;
}

/* a nav taller than the viewport must scroll inside itself, or its lower
   entries can never be reached while it is stuck */
@media (min-width: 992px) {
  .sl-feature-nav {
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
  }
}

/* ---- feature index cards ---------------------------------------------- */

.sl-group-heading {
  border-bottom: 2px solid var(--bs-border-color);
  letter-spacing: .04em;
  padding-bottom: .4rem;
}

.sl-feature-card {
  background: var(--brand-tint);
  border: 1px solid transparent;
  color: inherit;
  text-decoration: none;
  transition: border-color .12s ease, transform .12s ease;
}

.sl-feature-card:hover,
.sl-feature-card:focus {
  border-color: var(--brand-navy);
  color: inherit;
  transform: translateY(-1px);
}

.sl-feature-nav .nav-link.active { color: var(--brand-navy); }
