:root{--bg:#ffffff;--fg:#1a1a1a;--muted:#6b6b6b;--rule:#e6e6e6;--accent:#1e4b8f;--accent-fg:#16386b;--measure:42rem}@view-transition{navigation:auto}*,*::before,*::after{box-sizing:border-box}html{font-size:17px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:"Helvetica Neue",Helvetica,Arial,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.wrap{max-width:var(--measure);margin:0 auto;padding:3.5rem 1.5rem 4rem}a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease,color .15s ease}a:hover{color:var(--accent-fg);border-bottom-color:currentColor}.site-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:1.25rem;margin-bottom:2.75rem;border-bottom:1px solid var(--rule)}.site-name{font-size:1.05rem;font-weight:600;letter-spacing:-0.01em;color:var(--fg);border-bottom:none}.site-name:hover{color:var(--fg)}.site-nav{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}.site-nav a{font-size:0.95rem;color:var(--muted);border-bottom:none}.site-nav a:hover{color:var(--fg)}h1,h2,h3,h4{color:var(--fg);line-height:1.25;letter-spacing:-0.015em;font-weight:600}.content > h1:first-child,.home h1:first-child{margin-top:0}h1{font-size:1.9rem;margin:0 0 1.1rem;letter-spacing:-0.025em}h2{font-size:1.35rem;margin:3rem 0 1.25rem;padding-top:1.5rem;border-top:1px solid var(--rule)}h3{font-size:1.06rem;margin:1.9rem 0 0.15rem}h3 + p em:only-child,h3 + p > em{color:var(--muted);font-style:italic;font-size:0.94rem}.project{display:flex;gap:1.5rem;align-items:stretch;height:15rem;padding:1.25rem 0;border-bottom:1px solid var(--rule)}.project:last-of-type{border-bottom:none}.project-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.project-body h3{margin:0 0 0.15rem;font-size:1rem;line-height:1.25}.project-body .affil{color:var(--muted);font-style:italic;font-size:0.82rem;margin:0 0 0.45rem}.project-body .desc{margin:0;color:var(--fg);font-size:0.8rem;line-height:1.42;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7}.project-body .project-link{margin:auto 0 0;padding-top:0.6rem}.project-figure{flex:0 0 auto;width:11rem;height:11rem;align-self:center;border-radius:4px;overflow:hidden;display:grid;place-items:center}.project-figure img{width:100%;height:100%;object-fit:contain}@media (max-width:34rem){.project{flex-direction:column-reverse;height:auto;gap:1rem}.project-figure{height:auto;width:100%;max-width:11rem;aspect-ratio:1 / 1;align-self:flex-start}.project-body .desc{-webkit-line-clamp:unset}}.hobbies{font-family:"Palatino","Palatino Linotype","Book Antiqua","URW Palladio L",Georgia,serif;font-size:1.06rem;line-height:1.68}.proj{border-bottom:1px solid var(--rule)}.proj:first-of-type{border-top:1px solid var(--rule)}.proj > summary{display:flex;align-items:baseline;gap:0.55rem;padding:0.7rem 0;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}.proj > summary::-webkit-details-marker{display:none}.proj > summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.proj-arrow{flex:none;align-self:center;width:0.4rem;height:0.4rem;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(-45deg);transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .15s ease}.proj[open] > summary .proj-arrow{transform:rotate(45deg)}.proj > summary:hover .proj-arrow{border-right-color:var(--fg);border-bottom-color:var(--fg)}.proj-title{font-size:1rem;font-weight:600;line-height:1.25;letter-spacing:-0.015em;transition:color .15s ease}.proj > summary:hover .proj-title{color:var(--accent)}.proj-body{padding:0 0 1rem 0.95rem}.proj-body >:first-child{margin-top:0}.proj-body >:last-child{margin-bottom:0}.proj-body .affil{color:var(--muted);font-style:italic;font-size:0.82rem;margin:0 0 0.45rem}.proj-body .desc{margin:0;font-size:0.8rem;line-height:1.42}.proj-body .project-link{margin:0;padding-top:0.6rem}@media (prefers-reduced-motion:no-preference){.proj[open] > .proj-body{animation:proj-open .28s cubic-bezier(.2,.8,.2,1)}}@keyframes proj-open{from{opacity:0;transform:translateY(-0.3rem)}to{opacity:1;transform:none}}p{margin:0.75rem 0}strong{font-weight:600}hr{border:none;border-top:1px solid var(--rule);margin:2.5rem 0}blockquote{margin:1.25rem 0;padding-left:1rem;border-left:2px solid var(--rule);color:var(--muted)}a.btn{display:inline-block;font-size:0.82rem;line-height:1.4;padding:0.05rem 0.5rem;margin-left:0.15rem;color:var(--muted);border:1px solid var(--rule);border-radius:4px}a.btn:hover{color:var(--fg);border-color:var(--muted)}code{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:0.86em;background:var(--rule);padding:0.1em 0.35em;border-radius:3px}pre{overflow-x:auto;padding:1rem;background:var(--rule);border-radius:6px}pre code{background:none;padding:0}.lede{color:var(--muted);margin-bottom:2rem}.essay-list{list-style:none;padding:0;margin:0}.essay-item{display:flex;align-items:baseline;justify-content:space-between;gap:1.25rem;padding:0.7rem 0;border-bottom:1px solid var(--rule)}.essay-item-title{color:var(--fg);border-bottom:none}.essay-item-title:hover{color:var(--accent)}.essay-item-date{flex-shrink:0;color:var(--muted);font-size:0.85rem;font-variant-numeric:tabular-nums}table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:0.88rem}th,td{text-align:left;padding:0.4rem 0.6rem 0.4rem 0;border-bottom:1px solid var(--rule)}th{color:var(--muted);font-weight:600;font-size:0.8rem}.links-page ul{list-style:none;padding:0;margin:0}.links-page li{padding:0.7rem 0;border-bottom:1px solid var(--rule);color:var(--muted);font-size:0.95rem;line-height:1.55}.links-page li a{color:var(--fg);border-bottom:none;font-weight:500}.links-page li a:hover{color:var(--accent)}.links-page h2{border-top:none;margin:1.75rem 0 0.5rem;padding-top:0}.links-page h2:first-child{margin-top:0}.essay-header{margin-bottom:2rem}.essay-title{margin-bottom:0.35rem}.essay-date{color:var(--muted);font-size:0.9rem}.essay-body{margin-top:1.5rem;font-family:"Palatino","Palatino Linotype","Book Antiqua","URW Palladio L",Georgia,serif;font-size:1.06rem;line-height:1.68}.essay-body h1,.essay-body h2,.essay-body h3,.essay-body h4{font-family:"Helvetica Neue",Helvetica,Arial,-apple-system,BlinkMacSystemFont,sans-serif;border-top:none;padding-top:0}.essay-body h1{font-size:1.35rem;margin:2.4rem 0 0.6rem}.essay-body h2{font-size:1.12rem;margin:2rem 0 0.5rem}.essay-body h3{font-size:1rem;margin:1.6rem 0 0.4rem}.essay-body >:first-child{margin-top:0}.essay-body img{max-width:100%;height:auto}.essay-back{margin-top:3rem;font-size:0.9rem}.dlog-page ul.task-list{list-style:none;padding:0;margin:0 0 1rem}.dlog-page li.task-list-item{padding:0.2rem 0}.dlog-page input[type="checkbox"]{margin-right:0.5rem}.tag-cloud{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.5rem 1.1rem;max-width:32rem;margin:0 auto 2rem;padding:2.25rem 3rem;border:1px solid var(--rule);border-radius:0.5rem;text-align:center}.tag-cloud-item{font-family:inherit;font-weight:600;letter-spacing:-0.01em;line-height:1;background:none;border:none;padding:0.15rem 0.1rem;cursor:pointer;opacity:0.85;transition:opacity .15s ease,transform .15s ease}.tag-cloud-item:hover{opacity:1;transform:translateY(-1px)}.tag-cloud-item.is-active{opacity:1;text-decoration:underline;text-underline-offset:0.2em}.tag-cloud:has(.is-active) .tag-cloud-item:not(.is-active){opacity:0.35}.entry-list{list-style:none;padding:0;margin:0}.entry-item{display:flex;align-items:baseline;justify-content:space-between;gap:1.25rem;padding:0.7rem 0;border-bottom:1px solid var(--rule)}.entry-item[hidden]{display:none}.entry-item-title{color:var(--fg);border-bottom:none}.entry-item-title:hover{color:var(--accent)}.entry-item-date{flex-shrink:0;color:var(--muted);font-size:0.85rem;font-variant-numeric:tabular-nums}.entry-header{margin-bottom:1.5rem}.entry-title{margin-bottom:0.35rem}.entry-date{color:var(--muted);font-size:0.9rem}.entry-body >:first-child{margin-top:0}.entry-body img{max-width:100%;height:auto}.entry-back{margin-top:3rem;font-size:0.9rem}.tags{margin-top:1.25rem}.tag{display:inline-block;font-size:0.78rem;color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:0.05rem 0.5rem;margin:0 0.4rem 0.4rem 0}.toc{display:none}@media (min-width:68rem) and (pointer:fine){.toc{--toc-gap:2.5rem;display:block;position:fixed;top:50%;left:0;transform:translateY(-50%);z-index:5;padding:1.25rem 1.5rem;width:calc(50vw - (var(--measure) / 2) - var(--toc-gap));max-width:22rem}.toc-list{list-style:none;margin:0;padding:0;opacity:0.55;transition:opacity .3s ease}.toc:hover .toc-list,.toc:focus-within .toc-list{opacity:1}.toc-item + .toc-item{margin-top:0.34rem}.toc a{display:flex;align-items:flex-start;gap:0.6rem;min-height:1rem;border-bottom:none;color:var(--muted)}.toc-dash{flex:none;height:1px;width:0.9rem;margin-top:0.5rem;background:var(--rule);transition:width .3s cubic-bezier(.2,.8,.2,1),background-color .2s ease}.toc-h1 .toc-dash{width:1.4rem}.toc-labelwrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s cubic-bezier(.2,.8,.2,1)}.toc-label{overflow:hidden;font-size:0.78rem;line-height:1.3;letter-spacing:-0.005em;text-align:left;opacity:0;transform:translateX(-0.4rem);transition:opacity .28s ease,transform .38s cubic-bezier(.2,.8,.2,1)}.toc-h1 .toc-label{font-weight:600}.toc-h2 .toc-label{padding-left:0.85rem}.toc a.is-active .toc-dash{background:var(--fg);width:1.8rem}.toc a.is-active .toc-label{color:var(--fg)}.toc:hover .toc-labelwrap,.toc:focus-within .toc-labelwrap{grid-template-rows:1fr}.toc:hover .toc-label,.toc:focus-within .toc-label{opacity:1;transform:none}.toc:hover .toc-dash,.toc:focus-within .toc-dash{width:0.5rem}.toc:hover a.is-active .toc-dash,.toc:focus-within a.is-active .toc-dash{background:var(--fg)}.toc a:hover .toc-label{color:var(--fg)}.toc a:hover .toc-dash{background:var(--fg)}.toc a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.toc-item:nth-child(1) .toc-label{transition-delay:0ms}.toc-item:nth-child(2) .toc-label{transition-delay:18ms}.toc-item:nth-child(3) .toc-label{transition-delay:36ms}.toc-item:nth-child(4) .toc-label{transition-delay:54ms}.toc-item:nth-child(5) .toc-label{transition-delay:72ms}.toc-item:nth-child(6) .toc-label{transition-delay:90ms}.toc-item:nth-child(7) .toc-label{transition-delay:108ms}.toc-item:nth-child(8) .toc-label{transition-delay:126ms}.toc-item:nth-child(9) .toc-label{transition-delay:144ms}.toc-item:nth-child(10) .toc-label{transition-delay:162ms}.toc-item:nth-child(11) .toc-label{transition-delay:180ms}.toc-item:nth-child(12) .toc-label{transition-delay:198ms}.toc-item:nth-child(13) .toc-label{transition-delay:216ms}.toc-item:nth-child(14) .toc-label{transition-delay:234ms}}@media (prefers-reduced-motion:reduce){.toc-list,.toc-dash,.toc-label,.toc-labelwrap{transition:none}}.site-footer{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--rule);display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:0.75rem;font-size:0.88rem}.site-footer .social a{color:var(--muted);margin-right:1rem;border-bottom:none}.site-footer .social a:hover{color:var(--fg)}.site-footer .copyright{color:var(--muted)}.site-footer .copyright .mark{cursor:default;user-select:none;-webkit-user-select:none;transition:opacity .12s ease}.site-footer .copyright .answer{color:var(--muted);border-bottom:none}.site-footer .copyright .answer:hover{color:var(--fg)}@media (prefers-reduced-motion:reduce){.site-footer .copyright .mark{transition:none}}@media (max-width:34rem){.wrap{padding:2.5rem 1.15rem 3rem}h1{font-size:1.65rem}.essay-item,.entry-item{flex-direction:column;gap:0.15rem}}