.p-topbar{text-align:right}.p-topbar .theme-toggle{font-size:1.1rem}.p-hero{margin:clamp(1.75rem,4vw,3rem)0 clamp(.5rem,1.5vw,1rem)}.p-hero h1{font-family:clean serif,serif;font-size:clamp(2rem,5.5vw,2.8rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}.p-acronym{font-family:clean serif,serif;font-size:clamp(1.1rem,2.8vw,1.25rem);font-style:italic;opacity:.6;margin:.35em 0 0}.p-desc{font-size:clamp(1.15rem,3vw,1.35rem);margin:.5em 0 .4em;max-width:80ch;line-height:1.7;opacity:.85}.p-quicknav{font-size:clamp(1rem,2.5vw,1.15rem);margin:1.8em 0 2.2em;max-width:80ch;line-height:1.8}.p-quicknav a{white-space:nowrap}.p-section{margin:2.5rem 0;max-width:80ch}.p-section>p,.p-section li{font-size:clamp(1.15rem,3vw,1.35rem);line-height:1.7}.p-section h2{font-family:clean serif,serif;font-size:clamp(1.5rem,4.5vw,1.7rem);margin:2rem 0 1rem;line-height:1.3}.p-section h3{font-family:clean serif,serif;font-size:clamp(1.3rem,4vw,1.5rem);margin:1.5rem 0 .5rem}pre{font-family:ui-monospace,sf mono,Menlo,Consolas,monospace;font-size:.9rem;line-height:1.6;background:color-mix(in srgb,var(--text) 4%,transparent);border:1px solid var(--rule);border-radius:4px;padding:.9em 3.5em .9em 1.1em;margin:.6em 0;overflow-x:auto;white-space:pre;max-width:100%;position:relative}pre code{font:inherit;background:0 0;padding:0}:not(pre)>code{font-family:ui-monospace,sf mono,Menlo,Consolas,monospace;font-size:.85em;background:color-mix(in srgb,var(--text) 8%,transparent);border:1px solid color-mix(in srgb,var(--text) 12%,transparent);border-radius:4px;padding:.15em .4em}span[comment]{color:color-mix(in srgb,var(--text) 50%,transparent);font-style:italic}.p-footnote{font-size:.9rem;opacity:.75;margin:.7em 0 0;max-width:80ch}.p-footnote table{font-size:.9rem;border-collapse:collapse;width:100%;margin:.7em 0}.p-footnote th,.p-footnote td{padding:.5em .6em;text-align:left;border-top:1px solid var(--rule)}.p-footnote thead tr{border-bottom:1px solid var(--rule)}.h-projects{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:1.5rem;max-width:80ch}.h-card{display:flex;flex-direction:column;gap:.5rem;padding:1.2rem 1.4rem;border:1px solid var(--text);text-decoration:none;color:var(--text);transition:background .15s ease,color .15s ease}.h-card:hover{background:var(--text);color:var(--bg);text-decoration:none}.h-card-name{font-family:clean serif,serif;font-size:clamp(1.3rem,3vw,1.6rem)}.h-card-desc{font-size:.95rem;opacity:.7;line-height:1.5}.h-card:hover .h-card-desc{opacity:.85}@media(max-width:640px){.h-projects{grid-template-columns:1fr}}.checkbox-list{list-style:none;padding:0;margin:.7em 0;max-width:80ch}.checkbox-list li{display:flex;align-items:center;gap:.6em;margin:.35em 0;font-size:clamp(1.05rem,2.5vw,1.2rem);line-height:1.4}.checkbox-list li::before{content:"☐";flex-shrink:0;font-size:1.1em;opacity:.6}.checkbox-list li.checked::before{content:"☑";opacity:1;color:var(--link)}.checkbox-list li.crossed::before{content:"☒";color:#b43c3c}.checkbox-list li.checked,.checkbox-list li.crossed{opacity:.65}.checkbox-list li.checked span,.checkbox-list li.crossed span{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--text) 30%,transparent)}.checkbox-list li.crossed span{text-decoration-color:#b43c3c}.copy-btn{position:absolute;top:50%;transform:translateY(-50%);right:.6em;width:2.1em;height:2.1em;padding:.4em;border:1px solid var(--rule);border-radius:4px;background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.7;transition:border-color .15s ease,opacity .15s ease}.copy-btn:hover{border-color:var(--link);opacity:1}.copy-btn svg{width:1.1em;height:1.1em;stroke:var(--text);fill:none}.copy-btn.copied svg{stroke:var(--link)}