:root{--paper:#f5f6f2;--paper-deep:#ebede7;--ink:#1a1d1a;--ink-soft:#646c63;--line:#e0e3dc;--sage:#3d6a4c;--font-sans:var(--font-geist), ui-sans-serif, system-ui, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, monospace;--font-serif:var(--font-instrument-serif), ui-serif, Georgia, serif;--ease-out:cubic-bezier(.23, 1, .32, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#111311;--paper-deep:#1b1e1b;--ink:#e7ebe6;--ink-soft:#949b93;--line:#262a26;--sage:#8fc09d}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100dvh;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;color:var(--ink);background:var(--paper)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--sage);outline-offset:3px;border-radius:4px}.lab{flex-direction:column;gap:64px;width:min(100% - 48px,680px);min-height:100dvh;margin-inline:auto;padding:40px 0 32px;display:flex}.lab-head{font-family:var(--font-mono);color:var(--ink-soft);gap:8px;font-size:12px;display:flex}.lab-mark{color:var(--ink)}.lab-intro h1{font-family:var(--font-serif);letter-spacing:-.02em;margin-bottom:16px;font-size:clamp(56px,12vw,96px);font-weight:400;line-height:.9}.lab-intro em{color:var(--sage)}.lab-intro p{max-width:52ch;color:var(--ink-soft);text-wrap:pretty;font-size:15px;line-height:1.6}.lab-list{border-top:1px solid var(--line);list-style:none}.lab-row{border-bottom:1px solid var(--line);padding:20px 0;position:relative}.lab-link{grid-template-columns:32px 1fr auto;align-items:baseline;gap:6px 16px;display:grid}.lab-index{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px}.lab-title{font-family:var(--font-serif);transition:color .16s var(--ease-out);font-size:36px;line-height:1}.lab-arrow{font-family:var(--font-mono);color:var(--ink-soft);transition:transform .16s var(--ease-out), color .16s var(--ease-out);font-size:14px}.lab-summary{max-width:46ch;color:var(--ink-soft);grid-column:2/4;font-size:14px;line-height:1.55}.lab-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-top:12px;padding-left:48px;display:flex}.lab-pages ul{flex-wrap:wrap;gap:4px 14px;list-style:none;display:flex}.lab-pages a{z-index:1;font-family:var(--font-mono);color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:4px;transition:color .16s var(--ease-out), text-decoration-color .16s var(--ease-out);font-size:12px;position:relative}.lab-pages a:hover{color:var(--sage);text-decoration-color:currentColor}.lab-after{font-family:var(--font-mono);color:var(--ink-soft);font-size:11px}.lab-after a{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}.lab-after a:hover{color:var(--ink)}.lab-cover{aspect-ratio:3/4;pointer-events:none;opacity:0;width:150px;transition:opacity .2s var(--ease-out), transform .32s var(--ease-out);border-radius:10px;position:absolute;top:50%;right:-220px;overflow:hidden;transform:translateY(-50%)rotate(4deg)scale(.94)}.lab-cover img{object-fit:cover;width:100%;height:100%}@media (hover:hover){.lab-link:hover .lab-title{color:var(--sage)}.lab-link:hover .lab-arrow{color:var(--ink);transform:translate(4px)}}@media (hover:hover) and (min-width:1100px){.lab-link:hover .lab-cover{opacity:1;transform:translateY(-50%)rotate(4deg)scale(1)}}.lab-archive-title{font-family:var(--font-mono);color:var(--ink-soft);margin-bottom:12px;font-size:12px;font-weight:400}.lab-row-archived .lab-title{color:var(--ink-soft);font-weight:400}.lab-status{font-family:var(--font-mono);color:var(--ink-soft);font-size:11px}.lab-row-archived .lab-meta{justify-content:flex-start}.lab-foot{font-family:var(--font-mono);color:var(--ink-soft);justify-content:space-between;margin-top:auto;font-size:12px;display:flex}.lab-foot a:hover{color:var(--ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important}}.sr-only{white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}
