:root{--paper:#fffbf4;--ink:#2e2820;--ink-soft:#6b6155;--amber:#e4c856;--amber-deep:#a8912f;--spruce:#3d6b54;--grid:#e4c8561f;--rule:#e8dfd0;--font-display:"Fraunces", Georgia, serif;--font-body:"Karla", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.65}body{flex-direction:column;min-height:100vh;margin:0;display:flex}h1{color:var(--amber-deep)}main{flex:1;width:min(42rem,100% - 3rem);margin:0 auto}.intro{align-items:center;gap:2rem;margin-top:0;display:flex}.intro-text{flex:1}.intro-text h1{margin-top:0}.portrait{border:3px solid var(--amber);border-radius:10px;flex-shrink:0;width:200px;height:auto}@media (width<=600px){.intro{flex-direction:column-reverse}.portrait{width:65%;margin:0 auto}}.kicker{margin:2.25rem 0 0}.intro{margin-top:1rem}.site-header{background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);border-bottom:1px solid var(--rule);background-size:22px 22px;padding:2.2rem 0 1.6rem}.site-header .inner{width:min(42rem,100% - 3rem);margin:0 auto}.wordmark{font-family:var(--font-display);color:var(--ink);font-size:1.35rem;font-weight:600;text-decoration:none}.wordmark span{color:var(--amber)}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.2}h1{margin:2.5rem 0 .75rem;font-size:2.3rem}h2{margin:2.5rem 0 .5rem;font-size:1.4rem}.kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:.78rem}a{color:var(--spruce);text-decoration-color:var(--amber);text-underline-offset:3px}a:hover{color:var(--amber-deep)}a:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.header-row{justify-content:space-between;align-items:baseline;display:flex}.site-nav{font-family:var(--font-mono);gap:1.25rem;font-size:.85rem;display:flex}.site-nav a{color:var(--ink-soft);text-decoration:none}.site-nav a:hover{color:var(--spruce)}.spectrum{color:var(--amber);margin:2.75rem auto;display:block}.site-footer{border-top:1px solid var(--rule);font-family:var(--font-mono);color:var(--ink-soft);margin-top:4rem;padding:1.4rem 0 2rem;font-size:.78rem}.footer-links{gap:1rem;display:flex}.site-footer .inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;width:min(42rem,100% - 3rem);margin:0 auto;display:flex}@media (prefers-reduced-motion:no-preference){a{transition:color .12s}}.cv-frame{border:1px solid var(--rule);width:100%;height:90vh}.cv-download{margin-bottom:1rem}.materials-intro{color:var(--ink-soft)}.course{border-top:1px solid var(--rule)}.course:last-of-type{border-bottom:1px solid var(--rule)}.course-summary{cursor:pointer;align-items:baseline;gap:.75rem;padding:1.1rem 0;list-style:none;display:flex}.course-summary::-webkit-details-marker{display:none}.course-summary .course-kicker,.course-summary .course-title{margin:0}.course-summary .course-title{font-size:1.25rem}.course-count{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:.8rem}.course-summary:after{content:"▸";color:var(--amber-deep);margin-left:auto;transition:transform .15s;display:inline-block}.course[open] .course-summary:after{transform:rotate(90deg)}.course[open] .note-list{padding-bottom:1.5rem}.course-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--rule);padding-bottom:.5rem;font-family:IBM Plex Mono,monospace;font-size:.8rem}.note-list{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.note-card{border:1px solid var(--rule);color:var(--ink);border-radius:6px;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem;text-decoration:none;transition:border-color .12s;display:flex}.note-card:hover{border-color:var(--amber-deep)}.note-title{font-family:Fraunces,serif;font-size:1.05rem;font-weight:600}.note-desc{color:var(--ink-soft);font-size:.9rem}.note-meta{color:var(--ink-soft);margin-top:.25rem;font-family:IBM Plex Mono,monospace;font-size:.7rem}.post-list{margin:2rem 0 0;padding:0;list-style:none}.post-link{border-bottom:1px solid var(--rule);color:var(--ink);padding:1.25rem 0;text-decoration:none;display:block}.post-link:hover .post-title{color:var(--amber-deep)}.post-title{font-family:Fraunces,serif;font-size:1.2rem;font-weight:600;display:block}.post-meta{color:var(--ink-soft);margin-top:.3rem;font-family:IBM Plex Mono,monospace;font-size:.7rem;display:block}.post-desc{color:var(--ink-soft);margin-top:.4rem;display:block}.post .katex-display{padding:.5rem 0;overflow-x:auto}.post h2{color:var(--amber-deep)}
