
:root{--ink:#102e43;--teal:#087f78;--muted:#526678;--line:#dbe5ea;--pale:#eef6f7;}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:18px;line-height:1.65}
.navbar{background:#fff!important;border-bottom:1px solid var(--line);padding-block:.75rem}
.navbar-brand{font-weight:750;letter-spacing:.03em;color:var(--ink)!important}
.navbar-logo{max-height:34px}
#quarto-content{max-width:1200px;margin:auto}
h1,h2,h3{color:var(--ink);font-weight:730;letter-spacing:-.025em}
h2{margin-top:2.8rem;font-size:1.8rem}
a{color:var(--teal);text-underline-offset:.2em}
a:hover{color:#064e4a}
.course-hero{padding:3rem 0 2rem;display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:center;border-bottom:1px solid var(--line)}
.course-hero h1{font-size:clamp(2.5rem,5vw,4.4rem);line-height:1.08;max-width:14ch;margin:.6rem 0 1.2rem}
.kicker{font-size:.85rem;font-weight:700;color:var(--teal);letter-spacing:.13em;text-transform:uppercase}
.lede{font-size:1.24rem;line-height:1.5;max-width:48ch;color:var(--muted)}
.byline{font-weight:600;font-size:1rem}
.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.actions a{display:inline-block;border:1px solid var(--teal);border-radius:4px;padding:.55rem 1rem;text-decoration:none;font-size:1rem;font-weight:650}
.actions .primary{background:var(--teal);color:#fff}
.hero-plot{margin:0}
.hero-plot img{width:100%;border-radius:4px}
.hero-plot figcaption{font-size:.84rem;color:var(--muted)}
.course-note{padding:1rem 1.2rem;border-left:4px solid var(--teal);background:var(--pale);margin:1.5rem 0;font-size:1rem}
.session-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1rem;font-size:.92rem;color:var(--muted)}
.download-list{list-style:none;padding:0}
.download-list li{border-bottom:1px solid var(--line);padding:.8rem 0;display:flex;justify-content:space-between;gap:1rem}
.download-list small{color:var(--muted)}
table{font-size:.97rem}
.table td,.table th{padding:.7rem .6rem;vertical-align:top}
pre{font-size:.9rem;border:1px solid var(--line);background:#f6f9fa}
.quarto-title-block{margin-top:2rem}
.footer{border-top:1px solid var(--line)}
@media(max-width:760px){body{font-size:17px}.course-hero{grid-template-columns:1fr;padding-top:1.5rem;gap:1rem}.course-hero h1{font-size:2.8rem}.hero-plot{max-width:430px}.download-list li{display:block}.download-list small{display:block}.session-meta{gap:.4rem 1rem}}
@media print{.navbar,.actions{display:none}.course-hero{padding:0}}

body.course-home #title-block-header{display:none}


/* Guided copy-and-run tutorials. */
.tutorial-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin:2rem 0}
.tutorial-card{padding:1.4rem;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:6px;background:#fff}
.tutorial-card h2{font-size:1.45rem;margin-top:.7rem}
.tutorial-card p{font-size:1rem}
.tutorial-link{display:inline-block;font-weight:700;margin-top:.7rem}
.copy-step{margin:1.8rem 0 .35rem;font-size:.9rem;color:var(--teal)}
.prepared-output{margin:.7rem 0 1.5rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:4px;background:#f7fafb}
.prepared-output summary{cursor:pointer;color:var(--teal);font-weight:650;font-size:.92rem}
.prepared-output pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:24rem;overflow:auto;padding:.6rem;font-size:.78rem}
.prepared-output img{max-width:100%;height:auto;margin:.8rem 0}
.prepared-output .table-responsive{max-width:100%;overflow-x:auto;margin-top:.75rem}
.tutorial-page main{min-width:0}
.tutorial-page div.sourceCode{max-height:38rem;overflow:auto}
@media(max-width:950px){.tutorial-cards{grid-template-columns:1fr}.tutorial-card h2{margin-top:.3rem}}

/* Keep the linear graph equation and inline tensor labels usable on phones. */
.tutorial-page .katex-display{max-width:100%;overflow-x:auto;overflow-y:hidden;padding:.25rem 0}
.tutorial-page :not(pre)>code{white-space:normal;overflow-wrap:anywhere}
