:root{--bg:#f1f1ee;--ink:#1c1c1a;--mid:#6e6d67;--dim:#85847d;--acc:#4f6b45;--rule:#e0e0dc;--font:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-nav:14px;--fs-body:15px;--fs-meta:13px;--lh-tight:1;--lh-body:1.8;--lh-prose:1.85;--ls-name:.04em;--s-1:8px;--s-2:16px;--s-3:26px;--s-4:46px;--s-5:96px;--s-6:120px;--measure:64ch;--page-max:1100px;--col-date:96px;--t-theme:.35s ease;--t-hover:.12s ease;--blink:1.15s}:root[data-theme=dark]{--bg:#16171a;--ink:#dcdcd5;--mid:#8e8d86;--dim:#75746d;--acc:#7fb096;--rule:#262729}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;transition:background var(--t-theme), color var(--t-theme);margin:0}a{color:inherit;text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}hr,.rule{border:0;border-top:1px solid var(--rule)}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes fadein{0%{opacity:0}to{opacity:1}}.cursor{width:8px;height:16px;margin-left:var(--s-1);vertical-align:-2px;background:var(--acc);animation:blink var(--blink) steps(1, end) infinite;display:inline-block}@media (prefers-reduced-motion:reduce){.cursor{animation:none}body{transition:none}}.page{max-width:var(--page-max);padding:var(--s-5) 40px var(--s-6);gap:var(--s-4);flex-direction:column;margin:0 auto;display:flex}.masthead{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.wordmark{font-size:var(--fs-body);letter-spacing:var(--ls-name)}.nav{gap:var(--s-3);font-size:var(--fs-nav);color:var(--mid);align-items:baseline;display:flex}.nav [aria-current]{color:var(--acc)}.nav button{all:unset;cursor:pointer;transition:color var(--t-hover)}.nav button:hover{color:var(--ink)}.index{gap:var(--s-2);font-size:var(--fs-body);flex-direction:column;display:flex}.row{gap:var(--s-3);cursor:pointer;transition:opacity var(--t-hover);display:flex}.row:hover{opacity:.55}.row .date{width:var(--col-date);color:var(--dim);white-space:nowrap;flex:none}.row .title{flex:1}.row .kind{color:var(--dim)}.prose{max-width:var(--measure);line-height:var(--lh-prose);flex-direction:column;gap:22px;display:flex}.prose p{color:var(--mid);margin:0}.prose p:first-child{color:var(--ink)}.grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.frame{aspect-ratio:3/2;background:var(--rule);cursor:pointer;opacity:.88;transition:opacity var(--t-hover)}.frame:nth-child(3n+2){opacity:.72}.frame:hover{opacity:1}.lightbox{z-index:50;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:56px;animation:.18s fadein;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;width:min(72vw,1000px);height:min(70vh,660px)}.footer{font-size:var(--fs-meta);color:var(--dim);border-top:1px solid var(--rule);padding-top:var(--s-2);justify-content:space-between;display:flex}@media (width<=700px){.page{gap:34px;padding:56px 20px 72px}.row{gap:6px var(--s-3);flex-wrap:wrap}.row .date{width:auto}.row .kind{width:100%}.grid{grid-template-columns:repeat(2,1fr)}}body{line-height:normal}.tagline{line-height:var(--lh-body)}.prose{line-height:var(--lh-prose)}.prose-about{gap:26px}.wordmark,.wordmark:hover{cursor:pointer;text-decoration:none}.masthead-block{gap:var(--s-2);flex-direction:column;display:flex}.tagline{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--mid)}.nav a{color:inherit;transition:color var(--t-hover);text-decoration:none}.nav a:hover{color:var(--ink);text-decoration:none}.theme-toggle{all:unset;cursor:pointer;font-size:var(--fs-body);color:var(--dim);transition:color var(--t-hover)}.theme-toggle:hover{color:var(--ink)}.theme-toggle:before{content:"◐"}:root[data-theme=dark] .theme-toggle:before{content:"◑"}.row,.row:hover{color:inherit;text-decoration:none}.row .title{color:var(--ink)}.closing{font-size:var(--fs-meta);color:var(--dim);padding-top:14px}.kv{gap:var(--s-1);color:var(--dim);border-top:1px solid var(--rule);font-size:var(--fs-nav);flex-direction:column;padding-top:20px;display:flex}.kv-row{gap:var(--s-3);display:flex}.kv-row .k{width:var(--col-date);flex:none}.kv a.email{color:var(--acc);text-decoration:none}.kv a.email:hover{text-underline-offset:3px;text-decoration:underline}.sets{flex-direction:column;gap:44px;display:flex}.set-block{gap:var(--s-2);color:inherit;cursor:pointer;flex-direction:column;text-decoration:none;display:flex}.set-block:hover{text-decoration:none}.strip{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.strip .frame{aspect-ratio:auto;height:150px;cursor:inherit;opacity:1}.strip .frame:nth-child(2n){opacity:.72}.entry-head{gap:var(--s-3);font-size:var(--fs-body);align-items:baseline;display:flex}.entry-head .back{width:var(--col-date);color:var(--dim);transition:opacity var(--t-hover);flex:none;text-decoration:none}.entry-head .back:hover{opacity:.55;text-decoration:none}.entry-head .title{flex:1}.entry-head .meta{color:var(--dim)}.set-body{flex-direction:column;gap:30px;display:flex}.hint{font-size:var(--fs-meta);color:var(--dim)}.frame img{object-fit:cover;width:100%;height:100%;display:block}.post{gap:var(--s-3);max-width:var(--measure);flex-direction:column;display:flex}.pager{justify-content:space-between;gap:var(--s-3);font-size:var(--fs-meta);color:var(--dim);border-top:1px solid var(--rule);padding-top:18px;display:flex}.footer{margin-top:20px}.pager a{color:inherit;transition:opacity var(--t-hover);text-decoration:none}.pager a:hover{opacity:.55;text-decoration:none}.pager .spacer{flex:1}.lightbox[hidden]{display:none}.lightbox-caption{width:min(72vw,1000px);font-size:var(--fs-meta);color:var(--dim);justify-content:space-between;align-items:baseline;display:flex}.lightbox-caption button{all:unset;cursor:pointer;transition:opacity var(--t-hover)}.lightbox-caption button:hover{opacity:.55}.lightbox-caption button[disabled]{opacity:.25;cursor:default}.lightbox .placeholder{background:var(--rule);width:min(72vw,1000px);height:min(70vh,660px)}@media (prefers-reduced-motion:reduce){.lightbox{animation:none}}@media (width<=700px){.strip,.grid{grid-template-columns:repeat(2,1fr)}.entry-head{gap:6px var(--s-3);flex-wrap:wrap}.entry-head .back{width:auto}.lightbox-caption{width:100%}}
