@font-face{font-family:Recursive Variable;font-style:oblique 0deg 15deg;font-display:swap;font-weight:300 1000;src:url(/_astro/recursive-cyrillic-ext-full-normal.DL48ug1z.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Recursive Variable;font-style:oblique 0deg 15deg;font-display:swap;font-weight:300 1000;src:url(/_astro/recursive-vietnamese-full-normal.C9d0lu7G.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Recursive Variable;font-style:oblique 0deg 15deg;font-display:swap;font-weight:300 1000;src:url(/_astro/recursive-latin-ext-full-normal.Ced8ljaz.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Recursive Variable;font-style:oblique 0deg 15deg;font-display:swap;font-weight:300 1000;src:url(/_astro/recursive-latin-full-normal.Bbk0y8ID.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--bg:#f7f7f3;--surface:#fdfdfb;--text:#3e3a37;--accent:#4073cb;--link-hover:#b5fd0d;--accent-inverse:#a3c5ff;--hair:#3d3d2921;--border:#3d3d2929;--border-strong:#3d3d2959;--accent-tint:#5c98ff24;--header-bg:#f7f7f3eb;--shadow:0 1px 2px #3d3d290d;--shadow-lg:0 8px 20px #3d3d291a;--mauve:#da85ff;--card:var(--surface);--brown:var(--text);--charcoal:var(--text);--cyan:var(--accent);--font:"Recursive Variable", "Recursive", ui-monospace, monospace;--font-text:"MONO" 1, "CASL" 0, "CRSV" .5;--font-heading:"MONO" 1, "CASL" .2, "CRSV" .5;--fs-sm:.8rem;--fs-base:1rem;--fs-md:1.25rem;--fs-lg:1.5625rem;--fs-xl:1.953rem;--fs-2xl:2.441rem;--maxw:1120px;--astro-code-foreground:var(--text);--astro-code-background:var(--surface);--astro-code-token-keyword:var(--accent);--astro-code-token-function:var(--accent);--astro-code-token-comment:color-mix(in srgb, var(--text) 55%, transparent);--astro-code-token-constant:var(--text);--astro-code-token-string:var(--text);--astro-code-token-string-expression:var(--text);--astro-code-token-parameter:var(--text);--astro-code-token-punctuation:var(--text);--astro-code-token-link:var(--accent)}:root[data-theme=dark]{color-scheme:dark;--bg:#3e3a37;--surface:#56514d;--text:#f7f7f3;--accent:#a3c5ff;--link-hover:#cdfd5d;--accent-inverse:#4073cb;--hair:#f7f7f31f;--border:#f7f7f324;--border-strong:#f7f7f359;--accent-tint:#a3c5ff29;--header-bg:#3e3a37;--shadow:none;--shadow-lg:0 8px 20px #00000040}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#3e3a37;--surface:#56514d;--text:#f7f7f3;--accent:#a3c5ff;--link-hover:#cdfd5d;--accent-inverse:#4073cb;--hair:#f7f7f31f;--border:#f7f7f324;--border-strong:#f7f7f359;--accent-tint:#a3c5ff29;--header-bg:#3e3a37;--shadow:none;--shadow-lg:0 8px 20px #00000040}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}button,input,select,textarea{font-variation-settings:inherit;font-family:inherit}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--charcoal);font-family:var(--font);font-variation-settings:var(--font-text);padding-bottom:6rem;font-weight:350;line-height:1.7}a{color:inherit;text-underline-offset:3px;transition:color .15s}a:hover{color:var(--link-hover)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.site-header{z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--hair);position:sticky;top:0}nav{max-width:var(--maxw);flex-wrap:wrap;align-items:center;gap:1.9rem;margin:0 auto;padding:1.1rem 1.5rem .9rem;display:flex}nav .logo{font-family:var(--font);font-weight:600;font-size:var(--fs-md);color:var(--brown);border-bottom:2px solid #0000;margin-right:auto;text-decoration:none}nav .logo:hover{color:var(--accent);border-bottom-color:var(--accent)}nav .logo.is-hidden{visibility:hidden}nav a:not(.logo){font-size:var(--fs-base);color:var(--charcoal);opacity:.6;border-bottom:2px solid #0000;padding:.2rem 0;text-decoration:none}nav a:not(.logo):hover{opacity:1;color:var(--accent);border-bottom-color:var(--accent)}nav a[aria-current=page]{opacity:1;border-bottom-color:var(--charcoal);font-weight:500}.theme-toggle{border:1px solid var(--border-strong);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.theme-toggle:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}main{max-width:var(--maxw);margin:0 auto;padding:3rem 1.5rem 0}h1,h2,h3{font-family:var(--font);color:var(--brown);font-weight:600}strong,b{font-weight:600}.eyebrow,.meta,.pill,.milestone,.tl-tick,.servings,.art-filters button,.art-item,.lists-toc a,.coursework .in-progress,.recipe-card td.amount,.recipe-page td.amount,.recipe-page td.kcal-cell{font-weight:400}h1,h2,h3,nav .logo,.index-name,.flip-q{font-variation-settings:var(--font-heading)}h1{font-size:clamp(2rem, 5vw, var(--fs-2xl));letter-spacing:-.01em;line-height:1.15}.page-title{font-size:clamp(1.6rem, 4vw, var(--fs-xl));margin-bottom:2rem}h2{font-size:var(--fs-lg);margin-bottom:1rem}.eyebrow{font-family:var(--font);font-size:var(--fs-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin-bottom:.7rem;display:block}.muted{opacity:.72}section+section{margin-top:3.5rem}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:4px;padding:1.5rem 1.7rem}.card+.card{margin-top:1rem}a.card{color:inherit;text-decoration:none;display:block}.grid2{grid-template-columns:1fr 1fr;gap:1.2rem;display:grid}.grid2 .card+.card{margin-top:0}@media (width<=640px){.grid2{grid-template-columns:1fr}}.meta{font-family:var(--font);font-size:var(--fs-sm);color:var(--cyan);letter-spacing:.04em}.pill{font-family:var(--font);font-size:var(--fs-sm);border:1px solid var(--border-strong);color:var(--charcoal);background:0 0;border-radius:999px;margin:.15rem .2rem 0 0;padding:.15rem .65rem;transition:background .15s,border-color .15s;display:inline-block}.pill:hover{background:var(--accent-tint);border-color:var(--accent)}.pill.alt{border-color:var(--cyan);color:var(--cyan)}.pill.alt:hover{background:var(--accent-tint)}.hero{padding-top:1.5rem}.hero .eyebrow{color:var(--text);opacity:.7}.hero p.lede{font-size:var(--fs-base);max-width:85%;margin-top:1.2rem;line-height:1.75}.hero .cta-row{flex-wrap:wrap;gap:1rem;margin-top:1.8rem;display:flex}.pill.status{border:2px dotted var(--accent);color:var(--accent);align-items:center;gap:.45rem;margin:0;padding:.3rem .75rem;display:inline-flex}.pill.status:hover{border-color:var(--accent);background:0 0}.status-dot{background:var(--link-hover);border-radius:999px;flex:none;width:.6rem;height:.6rem;animation:2.4s ease-in-out infinite status-pulse}@keyframes status-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--link-hover) 55%, transparent)}50%{box-shadow:0 0 0 .35rem color-mix(in srgb, var(--link-hover) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.status-dot{background:var(--link-hover);animation:none}}.cv-widget{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.pill.cv-button{border:1.5px solid var(--accent);width:2rem;height:2rem;color:var(--accent);background:0 0;border-radius:50%;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.pill.cv-button:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.pill.cv-button .cv-icon{flex:none;width:.95rem;height:.95rem}.currently{margin-top:4rem}.grid3{grid-template-columns:repeat(3,1fr);gap:1.2rem;display:grid}.grid3 .card+.card{margin-top:0}.currently .card .meta{margin-bottom:.5rem;display:block}.currently .card h3{font-size:var(--fs-base);margin-bottom:.35rem}.currently .card p{font-size:var(--fs-sm)}.currently .card .cv-widget{margin-top:.9rem}@media (width<=720px){.grid3{grid-template-columns:1fr}}.btn{font-size:var(--fs-base);cursor:pointer;border:none;border-radius:999px;padding:.65rem 1.4rem;font-family:inherit;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-block}.btn.primary{color:var(--accent);border:1.5px solid var(--accent);background:0 0}.btn.primary:hover{background:var(--accent);color:var(--bg)}.btn.ghost{color:var(--text);border:1px solid var(--border-strong);background:0 0}.btn.ghost:hover{border-color:var(--accent);background:var(--accent-tint);color:var(--text)}.explore{margin-top:4rem}.index-list{border-bottom:1px solid var(--hair);flex-direction:column;margin:0 -14px;display:flex}.index-row{border-top:1px solid var(--hair);color:var(--text);grid-template-columns:180px minmax(0,1fr) 24px;align-items:baseline;gap:1rem;padding:1rem 14px;text-decoration:none;transition:background .15s;display:grid}.index-name{font-family:var(--font);font-weight:600;font-size:var(--fs-md);line-height:1.3}.index-desc{font-size:var(--fs-base);opacity:.72}.index-arrow{color:var(--accent);align-self:center;transition:transform .15s;display:flex}.index-row:hover{background:var(--accent);color:var(--bg)}.index-row:hover .index-desc{opacity:1}.index-row:hover .index-arrow{color:var(--bg);transform:translate(4px)}@media (width<=640px){.index-row{grid-template-columns:minmax(0,1fr) 24px;row-gap:.15rem}.index-desc{grid-area:2/1}.index-arrow{grid-area:1/2/span 2}}@media (prefers-reduced-motion:reduce){.index-row:hover .index-arrow{transform:none}}.job{grid-template-columns:130px 1fr;gap:1.5rem;display:grid}@media (width<=640px){.job{grid-template-columns:1fr;gap:.3rem}}.job+.job{border-top:1px solid var(--hair);margin-top:2.2rem;padding-top:2.2rem}.job h3{font-size:var(--fs-md)}.job .role{font-size:var(--fs-base);color:var(--charcoal);margin-bottom:.4rem;font-weight:500}.job ul{font-size:var(--fs-base);padding-left:1.1rem}.job li{margin-top:.3rem}.job ul,.job p,.pub{max-width:85%}.job .adviser{font-size:var(--fs-base);margin-top:.4rem}.job .edu-body ul{font-size:var(--fs-base);padding-left:0;list-style:none}.job .edu-body li{margin-top:.15rem}.job .edu-body p{font-size:var(--fs-base)}.coursework{margin-top:1rem}.coursework ul{font-size:var(--fs-base);margin-top:.25rem;padding-left:0;list-style:none}.coursework li{margin-top:.15rem}.proceedings li{margin-top:.3rem}.proceedings .note{color:inherit;opacity:.72}.artifacts li{margin-top:.3rem}.coursework .note{color:var(--cyan);font-size:var(--fs-sm)}.coursework .in-progress{font-family:var(--font);font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--cyan);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);white-space:nowrap;border-radius:999px;margin-left:.45rem;padding:.05rem .45rem}.tl-head,.timeline{grid-template-columns:3fr 64px 2fr;column-gap:1.5rem;display:grid}.tl-head{margin-bottom:.5rem}.tl-head h2{text-align:left;margin-bottom:0}.timeline,.tl-col,.tl-axis{position:relative}.tl-item+.tl-item{border-top:1px solid var(--hair);margin-top:2.2rem;padding-top:2.2rem}.timeline.is-positioned .tl-cert .tl-item{border-top:0;margin-top:0;padding-top:0;position:absolute;left:0;right:0}.timeline.is-positioned .tl-axis:before{content:"";background:color-mix(in srgb, var(--accent) 30%, transparent);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.tl-tick{background:var(--bg);color:var(--cyan);font-family:var(--font);font-size:var(--fs-sm);letter-spacing:.04em;white-space:nowrap;padding:.1rem .3rem;position:absolute;left:50%;transform:translate(-50%)}.timeline .job{grid-template-columns:1fr;gap:.3rem}@media (width<=720px){.tl-head{display:none}.timeline{grid-template-columns:1fr;column-gap:0}.tl-axis{display:none}}.pub{border-left:3px solid var(--cyan);padding-left:1.2rem}.pub+.pub{margin-top:1.6rem}.pub .title{font-weight:600}.pub .venue{font-style:italic;font-size:var(--fs-base)}.pub .authors{font-size:var(--fs-sm)}.feature{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:4px;grid-template-columns:1.2fr 1fr;align-items:center;gap:2rem;padding:2rem;display:grid}@media (width<=700px){.feature{grid-template-columns:1fr}}.feature h3{color:var(--text);font-size:var(--fs-lg)}.feature .feature-body p{font-size:var(--fs-base);opacity:.9;margin-top:.6rem}.feature a:hover{color:var(--link-hover)}.feature-shot{border:1px solid var(--border);border-radius:4px;width:100%;height:auto;display:block}.project-links{font-size:var(--fs-base);gap:1rem;margin-top:.7rem;display:flex}.feature[id],.card[id]{scroll-margin-top:5rem}.milestones{margin:1.1rem 0 0;padding:0;list-style:none}.milestone{font-family:var(--font);font-size:var(--fs-sm);letter-spacing:.03em;color:var(--charcoal);opacity:.55;grid-template-columns:1.1rem 1fr auto;align-items:baseline;gap:.6rem;padding:.32rem 0;display:grid}.milestone.done,.milestone.ongoing{opacity:1}.milestone.ongoing .tick,.milestone.ongoing .when{opacity:1;font-weight:600}.milestone+.milestone{border-top:1px solid var(--hair)}.milestone .tick{color:var(--cyan);text-align:center}.milestone .note{font-size:var(--fs-sm);letter-spacing:.02em;color:var(--cyan);opacity:.85;margin-top:.15rem;display:block}.milestone.done .tick{font-weight:600}.milestone .when{color:var(--cyan);font-size:var(--fs-sm)}.milestone:not(.done) .when{opacity:.5}.art-filters{flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem;display:flex}.art-filters button{font-family:var(--font);font-size:var(--fs-sm);border:1px solid var(--border-strong);color:var(--charcoal);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .9rem;transition:background .15s,border-color .15s}.art-filters button:hover{border-color:var(--accent);background:var(--accent-tint)}.art-filters button.on{background:var(--charcoal);color:var(--bg);border-color:var(--charcoal)}.art-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.art-item{aspect-ratio:4/5;color:#f7f7f3;font-family:var(--font);font-size:var(--fs-sm);letter-spacing:.06em;text-align:left;cursor:pointer;isolation:isolate;background-position:50%;background-size:cover;border:none;border-radius:4px;outline:2px solid #0000;align-items:flex-end;padding:.8rem;transition:transform .18s,outline-color .18s;display:flex;position:relative;overflow:hidden}.art-item:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000,#1e1e1899);height:40%;position:absolute;inset:auto 0 0}.art-item:hover{outline-color:var(--cyan);transform:scale(1.02)}@media (prefers-reduced-motion:reduce){.art-item:hover{transform:none}}dialog.lightbox{background:var(--card);color:var(--text);border:none;border-radius:4px;max-width:min(90vw,720px);margin:auto;padding:0}dialog.lightbox::backdrop{background:#3d3d2999}dialog.lightbox img,dialog.lightbox .lightbox-swatch{object-fit:contain;width:100%;max-height:70vh;display:block}dialog.lightbox .lightbox-swatch{aspect-ratio:4/5}dialog.lightbox figcaption{padding:1rem 1.3rem 1.2rem}dialog.lightbox figcaption p{color:var(--brown);font-weight:500}dialog.lightbox .lightbox-close{border:1px solid var(--border-strong);background:var(--card);width:32px;height:32px;color:var(--charcoal);cursor:pointer;border-radius:50%;font-size:1.1rem;line-height:1;transition:background .15s,border-color .15s,color .15s;position:absolute;top:.6rem;right:.6rem}dialog.lightbox .lightbox-close:hover{background:var(--cyan);border-color:var(--cyan);color:var(--bg)}.recipe-card h3{font-size:var(--fs-md)}.recipe-card h3 a{color:inherit;text-decoration:none}.recipe-card h3 a:hover{color:var(--accent)}.recipe-card{transition:border-color .18s,box-shadow .18s;position:relative}.recipe-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg)}.recipe-card h3 a:after{content:"";border-radius:4px;position:absolute;inset:0}.recipe-card .servings,.recipe-card table{z-index:1;position:relative}.servings{font-family:var(--font);font-size:var(--fs-sm);align-items:center;gap:.8rem;margin:.9rem 0 1.1rem;display:flex}.servings button{border:1px solid var(--cyan);width:30px;height:30px;color:var(--cyan);cursor:pointer;background:0 0;border-radius:50%;font-size:1rem;transition:background .15s,border-color .15s}.servings button:hover{background:var(--cyan);border-color:var(--cyan);color:var(--bg)}.servings .kcal{text-align:right;color:var(--brown);opacity:.75;margin-left:auto}.recipe-card table,.recipe-page table{border-collapse:collapse;width:100%;font-size:var(--fs-base)}.recipe-card td,.recipe-page td{border-bottom:1px dashed var(--border);padding:.3rem 0}.recipe-card td.amount,.recipe-page td.amount{font-family:var(--font);color:var(--brown);width:110px}.recipe-page td.kcal-cell{font-family:var(--font);color:var(--brown);opacity:.75;text-align:right;white-space:nowrap;width:90px}.recipe-page tfoot td{border-bottom:none;border-top:1px solid var(--border-strong);opacity:1;font-weight:600}.recipe-page .method{max-width:85%;margin-top:2rem}.recipe-page .method p+p,.recipe-page .method ol,.recipe-page .method ul{margin-top:.8rem}.recipe-page .method ol,.recipe-page .method ul{padding-left:1.2rem}.flip-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin:2rem 0 2.5rem;display:grid}.flip-card{cursor:pointer;font:inherit;text-align:left;perspective:900px;background:0 0;border:none;padding:0}.flip-inner{width:100%;min-height:132px;transform-style:preserve-3d;transition:transform .5s;display:grid;position:relative}.flip-card.flipped .flip-inner{transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.flip-inner{transition:none}}.flip-face{backface-visibility:hidden;border-radius:4px;flex-direction:column;grid-area:1/1;justify-content:space-between;gap:.8rem;padding:1.1rem 1.2rem;display:flex}.flip-front{background:var(--accent-tint);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);box-shadow:var(--shadow);transition:border-color .18s}.flip-card:hover .flip-front{border-color:var(--cyan)}.flip-q{font-family:var(--font);font-weight:600;font-size:var(--fs-base);color:var(--brown)}.flip-back{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);transform:rotateY(180deg)}.flip-a{font-size:var(--fs-base)}.list-filters{margin-bottom:2.5rem}.list-filters .fi-star{color:var(--mauve)}.list-filters .fi-x{color:var(--cyan)}.list-filters .fi-o{color:color-mix(in srgb, var(--text) 45%, transparent)}.list-filters button.on .fi-x{color:var(--accent-inverse)}.list-filters button.on .fi-o{color:color-mix(in srgb, var(--bg) 55%, transparent)}.lists-layout{grid-template-columns:1fr 160px;align-items:start;gap:2.5rem;display:grid}.lists-content{grid-area:1/1}.lists-toc{flex-direction:column;grid-area:1/2;gap:.55rem;display:flex;position:sticky;top:5rem}.lists-toc a{font-family:var(--font);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal);opacity:.6;border-bottom:2px solid #0000;align-self:flex-start;padding-bottom:1px;text-decoration:none}.lists-toc a:hover{opacity:1;color:var(--accent);border-bottom-color:var(--accent)}.lists-toc a.active{opacity:1;border-bottom-color:var(--charcoal);font-weight:500}@media (width<=720px){.lists-layout{grid-template-columns:1fr;gap:1.5rem}.lists-toc{flex-flow:wrap;grid-area:1/1;gap:.8rem 1.4rem;position:static}.lists-content{grid-area:2/1}}.list-body{scroll-margin-top:5rem}.list-body h2{margin-bottom:.2rem}.list-body em{opacity:.62;font-size:.9em;font-style:normal}.list-body em:before{content:"— "}.list-body h3{font-family:var(--font);font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--brown);opacity:.75;margin:1.8rem 0 .4rem;font-weight:500}.list-body ul{font-size:var(--fs-base);padding-left:0;list-style:none}.list-body ul ul{padding-left:1.6rem}.list-body li{margin-top:.25rem}.list-body li:not(.task-list-item):before{content:"–";font-family:var(--font);opacity:.4;margin-right:.6em}.list-body .task-list-item input{display:none}.list-body .task-list-item:before{content:"[ ]";font-family:var(--font);color:color-mix(in srgb, var(--text) 45%, transparent);margin-right:.6em;font-size:.8em}.list-body .task-list-item:has(>input:checked):before{content:"[x]";color:var(--cyan)}.fav{color:var(--mauve);margin:0 .35em}.journal-head .page-title{margin-bottom:1rem}.journal-head{margin-bottom:2.5rem}.journal-intro{max-width:85%;line-height:1.75}.journal-ai-note{max-width:85%;font-size:var(--fs-sm);margin-top:.8rem;font-style:italic}.journal-empty{margin-top:2.5rem}.journal-filters{margin:2.2rem 0 2.5rem}.journal-filters button{min-height:32px}.journal-filters .count{opacity:.6}.journal-filters[hidden],.journal-year-group[hidden],.journal-row[hidden]{display:none}.journal-year-group+.journal-year-group{margin-top:2.5rem}.journal-year,.entry-label{font-family:var(--font);font-size:var(--fs-sm);font-variation-settings:var(--font-text);letter-spacing:.16em;text-transform:uppercase;color:var(--text);opacity:.7;margin:0 0 .7rem;font-weight:400;display:block}.journal-row{padding:1.1rem 14px}.journal-text{flex-direction:column;gap:.2rem;min-width:0;display:flex}.journal-row:hover .meta{color:var(--bg)}@media (width<=640px){.journal-row{row-gap:.3rem}.journal-row .journal-date{grid-area:1/1/auto/span 2}.journal-row .journal-text{grid-area:2/1}.journal-row .index-arrow{grid-area:2/2}}.entry-row{flex-wrap:wrap;align-items:flex-start;gap:.6rem 3.5rem;display:flex}.entry-main{flex:999 560px;min-width:0;max-width:680px}.entry-rail{flex-direction:column;flex:220px;gap:1.6rem;min-width:0;padding-top:3.2rem;display:flex}.entry-head{border-bottom:1px solid var(--hair);row-gap:1.5rem;padding-bottom:3rem}.entry-back{font-size:var(--fs-sm);opacity:.72;text-decoration:none}.entry-back:hover{opacity:1}.entry-meta{margin:1.6rem 0 .7rem}.entry-head .page-title{margin-bottom:0}.entry-summary{font-size:var(--fs-md);opacity:.8;margin-top:1.2rem;line-height:1.6}.entry-rail .entry-label{margin-bottom:.6rem}.entry-toc{flex-direction:column;gap:.35rem;list-style:none;display:flex}.entry-toc a{font-size:var(--fs-sm);letter-spacing:.02em;opacity:.6;border-bottom:2px solid #0000;padding-bottom:1px;text-decoration:none}.entry-toc a:hover{opacity:1;color:var(--accent);border-bottom-color:var(--accent)}.entry-toc a[aria-current=true]{opacity:1;border-bottom-color:var(--text);font-weight:500}.entry-project{padding:.9rem 1rem;transition:border-color .15s}.entry-project:hover{border-color:var(--accent);color:inherit}.entry-project .meta,.entry-project-title,.entry-project-cat{display:block}.entry-project-title{font-variation-settings:var(--font-heading);margin-top:.2rem;font-weight:600}.entry-project-cat{font-size:var(--fs-sm);opacity:.72;margin-top:.2rem}.entry-body{max-width:680px;padding-top:2.5rem}.entry-body>*+*{margin-top:1rem}.entry-body>:first-child{margin-top:0}.entry-body>h2{margin:2.5rem 0 1rem;line-height:1.3}.entry-body>h2:first-child{margin-top:0}.entry-body h2{scroll-margin-top:var(--entry-offset,150px)}.entry-body ul,.entry-body ol{padding-left:1.2rem}.entry-body blockquote{border-left:3px solid var(--hair);padding-left:1.2rem}.entry-body>figure{margin-top:1.6rem}.entry-body img{border:1px solid var(--border);border-radius:4px;width:100%;height:auto;display:block}.entry-body figcaption{font-size:var(--fs-sm);opacity:.72;margin-top:.5rem}.entry-body>pre{margin-top:1.4rem}.entry-body pre{border:1px solid var(--border);font-size:var(--fs-sm);border-radius:4px;padding:1rem 1.2rem;line-height:1.7;overflow-x:auto}.entry-body pre code{font:inherit}.entry-body :not(pre)>code{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:0 .3em;font-size:.9em}.sn-ref{color:var(--accent);font-size:.8em;line-height:0}.sidenote{font-size:var(--fs-sm);opacity:.8;line-height:1.6}.sn-num{color:var(--accent);font-weight:500}.sn-inline{display:none}.sn-after{border-left:2px solid var(--hair);margin:.5rem 0 .25rem;padding-left:.8rem;display:block}@media (width>=1004px){.sn-after{display:none}.sn-inline{float:right;clear:right;width:220px;margin-right:calc(-220px - 3.5rem);display:block}}.entry-more{max-width:680px;margin-top:4rem}.entry-pager{border-top:1px solid var(--hair);color:var(--text);grid-template-columns:90px minmax(0,1fr);align-items:baseline;gap:1rem;padding:.9rem 14px;text-decoration:none;transition:background .15s;display:grid}.entry-pager-num{font-size:var(--fs-sm);color:var(--accent);letter-spacing:.04em}.entry-pager-title{font-variation-settings:var(--font-heading);font-weight:600}.entry-pager:hover{background:var(--accent);color:var(--bg)}.entry-pager:hover .entry-pager-num{color:var(--bg)}.entry-bar{border-top:1px solid var(--hair)}.entry-bar[hidden]{display:none}.entry-bar-row{max-width:var(--maxw);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;margin:0 auto;padding:.5rem 1.5rem;display:flex}.entry-bar-label{color:var(--accent);letter-spacing:.04em;white-space:nowrap}.entry-bar-title{min-width:0;font-size:var(--fs-base);font-variation-settings:var(--font-heading);white-space:nowrap;text-overflow:ellipsis;flex:240px;font-weight:600;overflow:hidden}.entry-bar-read{opacity:.72;white-space:nowrap}.entry-bar-project{color:var(--accent);white-space:nowrap;text-decoration:none}.entry-pill{position:relative}.entry-pill summary{cursor:pointer;border:1px solid var(--border-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;min-height:32px;padding:.2rem .8rem;list-style:none;transition:border-color .15s;display:inline-flex}.entry-pill summary::-webkit-details-marker{display:none}.entry-pill summary:hover{border-color:var(--accent)}.entry-pill-prefix{opacity:.7}.entry-pill-current{text-overflow:ellipsis;font-weight:500;overflow:hidden}.entry-pill ol{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:.35rem;min-width:230px;padding:.7rem 1rem;list-style:none;display:flex;position:absolute;top:calc(100% + 6px);right:0}.entry-pill ol a{opacity:.6;border-bottom:2px solid #0000;text-decoration:none}.entry-pill ol a:hover{opacity:1;color:var(--accent)}.entry-pill ol a[aria-current=true]{opacity:1;border-bottom-color:var(--text);font-weight:500}.entry-progress{background:var(--accent);transform-origin:0;height:2px;transform:scaleX(0)}@media (width<=720px){.entry-bar-title{display:none}}@media (width<=480px){.entry-bar-read,.entry-bar-project{display:none}.entry-pill-prefix{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.entry-pill-current{max-width:14ch}}footer{max-width:var(--maxw);font-size:var(--fs-sm);opacity:.6;margin:5rem auto 0;padding:0 1.5rem 2rem}footer p{flex-wrap:wrap;align-items:baseline;gap:.6em;display:flex}
