@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600&display=swap");
/* @import url("https://fonts.googleapis.com/css2?family=Work+Sans:wght@250;300;350;400;500;600&display=swap"); */
@import url("https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;600;700&display=swap");

:root {
  --sans-serif: "Nunito", sans-serif;
  --serif: "Libre Baskerville", serif;
}

#observablehq-sidebar-close {
  display: none !important;
}

#observablehq-footer {
  display: none;
}

html {
  font-size: clamp(16px, 1.1vw, 20px);
}

/* Inline code */

strong { font-weight: 800; color: var(--theme-foreground-focus); }

/* Block code */
pre code {
  font-size: 0.7rem;
}

h1 { font-size: 1.85rem; max-width:80%;}
h2 { font-size: 1.4rem; }
h3 { font-size: 1.2rem; }
h4 { font-size: 1rem; }
h5 { font-size: 0.9rem; }

p, label, button, input, li {
    font-family: var(--sans-serif);
    /* font-family: var(--sans-serif); */
    font-size: 0.84rem;
    line-height: 1.25rem;
    font-weight: 400;
    color: var(--theme-foreground);
    opacity: 1.0;
    margin-top:0px;
    letter-spacing: 0.0em;
}


.observablehq-link a {
    font-size: 0.8rem;
    line-height: 1.1rem;
}

#observablehq-toc li {
  line-height: 1.1rem;
}

.two-col li {
    font-family: var(--sans-serif);
    /* font-family: var(--sans-serif); */
    font-size: 0.8rem;
    line-height: 1.3rem;
    font-weight: 350;
    color: var(--theme-foreground);
    opacity: 1.0;
    margin-top:0px;
    letter-spacing: 0.0em;
}


.lil-gui {
    font-family: var(--sans-serif);
    --width: 250px;           
    --font-size: 14px;        
    --input-font-size: 14px;
    --widget-height: 24px;    
    --spacing: 6px;
    --padding: 6px;
}


h1 {
    font-family: var(--serif);
    font-weight: 500;
    margin-top : 0.0em;
    margin-bottom  : 0.8em;
    letter-spacing : 0.0em;
    line-height: 3rem;
}

h2 {
    font-family: var(--serif);
    margin-top: 1.4em;
    margin-bottom: 0.6em;
    font-weight:500;
    letter-spacing: 0.0em;
}

h3 {
    font-family: var(--serif);
    margin-top: 1.2em;
    margin-bottom: 0.6em;
    font-weight:500;
    letter-spacing: 0.0em;
}

h4 {
    font-family: var(--serif);
    margin-top: 1.5em;
    margin-bottom: 0.6em;
    font-weight:500;
    letter-spacing: 0.0em;
}

h5 {
    font-family: var(--serif);
    margin-top: 1.2em;
    margin-bottom: 0.5em;
    font-weight:700;
    letter-spacing: 0.01em;
}

h6{
    font-family: var(--sans-serif);
    margin-top: 0.0em;
    margin-bottom: 0.4em;
    font-size: 1.5rem;
    font-weight:300;
    letter-spacing: -0.01em;
}


.img-center-1 {
  border: 2px solid var(--theme-foreground-faintest);
  border-radius: 10px;
  width: 850px;
  display: block;
  margin: 0 auto;
  margin-top:20px;
  margin-bottom:20px;
}

@media (min-width: 1200px) {
    .two-col {
        column-count: 2;
        column-gap: 2.0rem;
    }
}

.katex {
  font-size: 1em;  /* scale up slightly; fractions breathe proportionally */
  line-height: 0em;
  font-weight: 100;
}

.katex-display {
  font-size: 1.2em;  /* block equations can go a touch larger */
  letter-spacing:0.03em;
}


/* ── Guide ──────────────────────────────────────────── */
.guide-wrap { padding: 0rem 0 1rem; font-family: var(--sans-serif); }
.guide-section { margin-bottom: 2rem; }
.guide-h2 { font-size: 1rem; font-weight: 500; letter-spacing: 0.1em; color: var(--theme-foreground); margin: 0 0 1rem; padding-bottom: 8px; border-bottom: 1px solid var(--theme-foreground-fainter); }
.guide-steps { display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: column; grid-template-rows: repeat(4, auto); gap: 0 2rem; }
.guide-step { display: flex; gap: 14px; padding: 12px 0; border-bottom: 0px solid rgba(255,255,255,0.04); }
.guide-step:last-child { border-bottom: none; }
.guide-step-num { font-size: 1.1rem; font-weight: 500; color: var(--theme-foreground-faint); min-width: 20px; padding-top: 2px; }
.guide-step-body { flex: 1; }
.guide-step-title { font-size: 1rem; font-weight: 500; color: var(--theme-foreground); margin: 0 0 3px; }
.guide-step-desc { font-size: 0.8rem; color: var(--theme-foreground); margin: 0; line-height: 1.5; }
.guide-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; }
.guide-card { background: var(--theme-background-alt); border: 1px solid var(--theme-foreground-fainter); border-radius: 4px; padding: 12px 14px; }
.guide-card-title { font-size: 0.9rem; font-weight: 500; color: var(--theme-foreground); margin: 0 0 4px; }
.guide-card-desc { font-size: 0.8rem; color: var(--theme-foreground); margin: 0; line-height: 1.55; }
.guide-tips-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 6px; }
.guide-tip { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; background: var(--theme-background-alt); border: 1px solid var(--theme-foreground-fainter); border-radius: 4px; margin-top: 0; }
.guide-tip-text { font-size: 0.9rem; color: var(--theme-foreground); margin: 0; line-height: 1.6; }
.guide-kbd { display: inline-block; font-family: var(--mono); font-size: 0.75rem; color: var(--theme-foreground); background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 3px; padding: 1px 5px; }


svg {
  max-height: 1600px;
}


table {
  font-size: 0.8rem;
}

/* Optional: style the header specifically */
table th {
  font-size: 0.8rem;
  text-transform: uppercase;
}