/* Academic site styling — light, readable, and close to the reference site. */
:root {
  --site-ink: #213345;
  --site-muted: #627285;
  --site-accent: #26637d;
  --site-accent-soft: #eaf2f5;
  --site-border: #e6eaee;
  --site-bg: #ffffff;
}
html { scroll-behavior: smooth; }
body { color: var(--site-ink); background: var(--site-bg); font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; font-size: 17px; line-height: 1.75; }
a { color: var(--site-accent); text-decoration-color: #afcbd5; text-underline-offset: .19em; text-decoration-thickness: 1px; }
a:hover { color: #153e51; text-decoration-color: currentColor; }
.navbar { border-bottom: 1px solid var(--site-border); background: rgba(255,255,255,.97) !important; box-shadow: none; }
.navbar-brand { font-weight: 700; letter-spacing: -.02em; font-size: 1.18rem; color: var(--site-ink) !important; }
.navbar .nav-link { color: #4e5c67 !important; font-size: .91rem; font-weight: 520; padding: .7rem .72rem !important; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--site-accent) !important; }
h1, h2, h3 { color: var(--site-ink); letter-spacing: -.025em; }
h1 { font-weight: 750; font-size: 2.65rem; margin-bottom: 1.1rem; }
h2 { font-size: 1.45rem; font-weight: 700; margin-top: 2.5rem; padding-bottom: .35rem; border-bottom: 1px solid var(--site-border); }
h3 { font-size: 1.18rem; font-weight: 700; }
p { margin-bottom: 1.13rem; }
strong { font-weight: 670; }
main { padding-top: 2.65rem; padding-bottom: 3.6rem; }
#quarto-content { min-height: calc(100vh - 140px); }
.quarto-about-jolla { max-width: 1070px; margin: 1.4rem auto 2rem; }
.quarto-about-jolla .about-image { box-shadow: 0 10px 32px rgba(33,51,69,.07); border: 6px solid #f4f6f7; }
.quarto-about-jolla .about-links { margin-top: 1.4rem; }
.quarto-about-jolla .about-link { border: 1px solid #dce6ea; color: var(--site-accent); border-radius: 5px; background: #fff; padding: .45rem .75rem; margin: .2rem; font-size: .88rem; }
.quarto-about-jolla .about-link:hover { background: var(--site-accent-soft); }
.quarto-about-jolla .about-contents { text-align: left; }
.quarto-about-jolla h1 { margin-top: 0; }
.quarto-title-block .title { margin-bottom: 1.6rem; }
.quarto-title-meta { display:none; }
#quarto-document-content ul { padding-left: 1.5rem; }
#quarto-document-content li { padding-bottom: .45rem; }
.nav-footer { border-top: 1px solid var(--site-border); color: var(--site-muted); font-size: .8rem; background: #fbfcfd; }
.nav-footer a { color: var(--site-muted); }
/* Styles for the bundled static preview, also used when serving the docs folder directly. */
.static-header { width:100%; border-bottom:1px solid var(--site-border); background:#fff; }
.static-nav { max-width: 1080px; min-height:72px; padding: 0 28px; margin: 0 auto; width:100%; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.static-logo { color:var(--site-ink); text-decoration:none; font-size:1.18rem; font-weight:750; white-space:nowrap; letter-spacing:-.025em; }
.static-menu { display:flex; flex-wrap:nowrap; gap:14px; align-items:center; }
.static-menu a { color:#526270; text-decoration:none; font-size:.88rem; font-weight:550; }
.static-menu a:hover,.static-menu a[aria-current="page"] { color:var(--site-accent); }
.static-shell { max-width: 1080px; padding: 0 32px; margin:0 auto; }
.static-home { display:grid; grid-template-columns: 250px minmax(0, 1fr); gap:66px; padding-top:70px; padding-bottom:88px; align-items:start; }
.static-profile { position:sticky; top:36px; text-align:center; }
.static-profile img { display:block; width:215px; height:215px; max-width:100%; object-fit:cover; border-radius:50%; box-shadow:0 13px 32px rgba(33,51,69,.08); margin:2px auto 24px; border: 7px solid #f4f6f7; }
.static-profile h2 { font-size:1.45rem; margin:0 0 5px; font-weight:720; padding:0; border:0; }
.static-profile .role { color:var(--site-muted); font-size:.84rem; line-height:1.6; margin:0 0 17px; }
.static-links { display:flex; flex-direction:column; align-items:center; gap:7px; }
.static-links a { color:var(--site-accent); text-decoration:none; border:1px solid #dfebef; border-radius:6px; min-width:152px; text-align:center; padding:6px 14px; font-size:.85rem; font-weight:560; transition: .15s background; }
.static-links a:hover { background:var(--site-accent-soft); }
.static-bio { max-width:735px; }
.static-bio .eyebrow { font-size:.71rem; color:var(--site-accent); text-transform:uppercase; letter-spacing:.15em; font-weight:750; margin:0 0 11px; }
.static-bio h1 { font-size:3.05rem; margin:0 0 13px; line-height:1.14; }
.static-bio .subhead { color:var(--site-muted); font-size:.98rem; font-weight:500; margin:0 0 29px; }
.static-bio p { font-size:1.025rem; line-height:1.78; margin:0 0 19px; }
.static-page { padding:56px 32px 75px; max-width: 880px; }
.static-page h1 { font-size:2.75rem; margin:0 0 25px; }
.static-page h2 { margin-top:2.6rem; }
.static-page p,.static-page li { font-size:1.01rem; line-height:1.8; }
.static-page li { margin-bottom:.35rem; }
.static-footer { border-top:1px solid var(--site-border); background:#fbfcfd; color:var(--site-muted); font-size:.82rem; }
.static-footer-inner { max-width:1140px; margin:0 auto; padding:20px 29px; display:flex; justify-content:space-between; gap:16px; }
.static-footer a { color:var(--site-muted); }
@media (max-width: 830px) { .static-home { grid-template-columns:1fr; gap:35px; padding-top:36px; } .static-profile { position:static; } .static-profile img { width:170px; height:170px; } .static-profile h2 { font-size:1.25rem; } .static-links { flex-direction:row; justify-content:center; flex-wrap:wrap; } .static-links a { min-width:0; } .static-nav { flex-direction:column; align-items:flex-start; justify-content:center; padding-top:15px; padding-bottom:15px; gap:10px; } .static-menu { gap:10px 18px; flex-wrap:wrap; } .static-page { padding-top:36px; } }
@media (max-width: 480px) { .static-bio h1 {font-size:2.4rem;} .static-page h1 {font-size:2.2rem;} .static-shell { padding-left:20px; padding-right:20px; } .static-bio p { font-size:1rem; } .static-footer-inner { flex-direction:column; padding-left:20px; } }
