.post-item__date{white-space:nowrap}@media(min-width:34.001rem){.post-item{grid-template-columns:8rem minmax(0,1fr)}}.home .post-item{align-items:first baseline;padding-block:1.25rem}.home .post-item:first-child{padding-block-start:0}.home .post-item__date{padding-block-start:0}:root{--canvas:light-dark(#fbfcfd, #262b30);--canvas-alt:light-dark(#f3f6f9, #2d3339);--surface:light-dark(#eaeff4, #363e46);--ink:light-dark(#12171d, #e1e6eb);--ink-2:light-dark(#4a5663, #bbc5ce);--ink-3:light-dark(#78848f, #a3aeb9);--rule:light-dark(#e0e6ec, #404951);--rule-strong:light-dark(#c4ced7, #57636e);--accent-soft:light-dark(#e7f0f8, #30434d);--sel-bg:light-dark(#d5e5f4, #415b6b);--syn-comment:light-dark(#8a96a2, #a3afba);--syn-punct:light-dark(#5b6874, #b0bbc5);--syn-ins-bg:light-dark(#e2f2ec, #2b4038);--syn-del-bg:light-dark(#f9e6e6, #483238);--syn-hl-bg:light-dark(#e6eefa, #354553);--accent:#0d7490;--accent:light-dark(#0d7490, #67c9dd);--font-prose:"Iowan Old Style", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--w-page:46rem}.letter,.letter-dialog{--letter-paper:light-dark(#ffffff, #2d3437);--letter-field:light-dark(#f7f8f7, #343d40);--letter-ink:light-dark(#343b39, #e2e7e4);--letter-muted:light-dark(#69736f, #b6c1bc);--letter-rule:light-dark(#e4e9e6, #515d57);--letter-red:light-dark(#a64e43, #e7a297);color:var(--letter-ink);background-color:var(--letter-paper);font-family:var(--font-body)}.letter{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1.25rem;margin-block:1.75rem;padding:1rem 1.25rem;border:1px solid var(--letter-rule);border-radius:10px;text-align:left}.letter h2{margin:0;font-family:var(--font-body);font-size:.9rem;font-weight:500;line-height:1.5}.letter__description{color:var(--letter-muted);font-size:.75rem;line-height:1.6;margin:.15rem 0 0}.letter__button{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;border:1px solid var(--letter-rule);border-radius:7px;padding:.7rem 1rem;color:var(--letter-ink);background:0 0;font:inherit;font-size:.85rem;cursor:pointer}.letter__button[hidden]{display:none}.letter__button:hover:enabled{border-color:var(--letter-red);color:var(--letter-red)}.letter__button:disabled{opacity:.5;cursor:not-allowed}.letter__button:focus-visible,.letter-form__close:focus-visible{outline:2px solid var(--letter-red);outline-offset:4px}.letter>.letter__button{border:1px solid var(--letter-rule);padding:.5rem .75rem;gap:.65rem;color:var(--letter-red);font-size:.8rem}.letter-dialog{box-sizing:border-box;width:min(32rem,calc(100% - 2rem));max-height:90dvh;margin:auto;padding:0;border:1px solid var(--letter-rule);border-radius:12px;box-shadow:0 16px 60px #15251b1a}.letter-dialog::backdrop{background:#17241e55;backdrop-filter:blur(3px)}.letter-form{padding:clamp(1rem,4vw,1.5rem)}.letter-form__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.2rem;color:var(--letter-muted);font-size:.75rem;letter-spacing:.02em}.letter-form__close{border:0;background:0 0;color:var(--letter-muted);font-size:1.6rem;width:2.75rem;height:2.75rem;border-radius:50%;cursor:pointer}.letter-form h2{margin:1rem 0 .35rem;font-family:var(--font-body);font-weight:500;font-size:1.15rem}.letter-form__about{color:var(--letter-muted);font-size:.8rem;margin-bottom:1rem;overflow-wrap:anywhere}.letter-form label{display:block;margin-bottom:.5rem;font-size:.8rem}.letter-form label span{color:var(--letter-muted);font-size:.7rem}.letter-form input:not([type=hidden]),.letter-form textarea{box-sizing:border-box;width:100%;border:1px solid var(--letter-rule);border-radius:7px;padding:.65rem .75rem;background:var(--letter-field);color:var(--letter-ink);font:inherit;font-size:1rem}.letter-form textarea{resize:vertical;font-family:var(--font-body);line-height:1.8;min-height:8rem;padding:.75rem}.letter-form input::placeholder,.letter-form textarea::placeholder{color:var(--letter-muted);opacity:1}.letter-form input:focus,.letter-form textarea:focus{outline:2px solid var(--letter-red);outline-offset:3px}.letter-form__count{display:block;margin-top:.4rem;text-align:right;font-size:.65rem;color:var(--letter-muted)}.letter-form__fields{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1rem}.letter-form__trap{display:none}.letter-form__privacy,.letter-form__unavailable{font-size:.72rem;color:var(--letter-muted);margin:1rem 0;line-height:1.6}.letter-form__status{font-size:.85rem;color:var(--letter-ink)}.letter-form__status:empty{display:none}.letter-form__send{width:100%;margin-top:.5rem;background:var(--letter-ink);color:var(--letter-paper);border-color:var(--letter-ink)}.letter-form__send:hover:enabled{background:var(--letter-red);border-color:var(--letter-red);color:var(--letter-paper)}.letter-form__close:hover{background:var(--letter-field)}@media(max-width:520px){.letter{padding:.85rem 1rem}.letter-form__fields{grid-template-columns:1fr}}.letter-editor__tabs{display:flex;gap:1rem;margin-bottom:.7rem;border-bottom:1px solid var(--letter-rule)}.letter-editor__tabs button{border:0;border-bottom:2px solid transparent;padding:.4rem 0;background:0 0;color:var(--letter-muted);font:inherit;font-size:.75rem;cursor:pointer}.letter-editor__tabs button[aria-pressed=true]{border-bottom-color:var(--letter-red);color:var(--letter-ink)}.letter-editor__tabs button:focus-visible{outline:2px solid var(--letter-red);outline-offset:2px}.letter-editor__preview{min-height:8rem;max-height:22rem;overflow:auto;overflow-wrap:anywhere;font-family:var(--font-body);font-size:1rem;line-height:1.8}.letter-editor__preview>:first-child{margin-top:0}.letter-editor__preview>:last-child{margin-bottom:0}.letter-editor__preview p{margin-block:.6rem}.letter-editor__preview :is(ul,ol){padding-left:1.5rem}.letter-editor__preview blockquote{margin:.75rem 0;padding-left:1rem;border-left:2px solid var(--letter-rule);color:var(--letter-muted)}.letter-editor__preview pre{overflow-x:auto;padding:.6rem;border-radius:6px;background:var(--letter-field)}.letter-editor__preview code{font-family:var(--font-mono);font-size:.85em}.letter-editor__preview table{display:block;overflow-x:auto;border-collapse:collapse}.letter-editor__preview :is(td,th){border:1px solid var(--letter-rule);padding:.3rem .6rem}.letter-editor__preview .katex-display{overflow-x:auto;overflow-y:hidden;padding-block:.25rem}.letter-editor__help{margin:.6rem 0 0;color:var(--letter-muted);font-size:.68rem;line-height:1.7}.letter-editor__help code{font-size:1em}.letter-sent{padding:1.75rem;text-align:center}.letter-sent[hidden]{display:none}.letter-sent__scene{position:relative;height:6rem;width:100%;overflow:hidden}.letter-sent__envelope{position:absolute;width:6rem;height:4.6rem;top:.5rem;left:calc(50% - 3rem);color:var(--letter-muted)}.letter-sent__check{position:absolute;inset:0;display:grid;place-items:center;color:var(--letter-red);font-size:1.8rem}.letter-sent h2{font-family:var(--font-body);font-weight:500;font-size:1.2rem;margin:.25rem 0}.letter-sent p{color:var(--letter-muted);font-size:.85rem;margin:.4rem 0 1.25rem}@media(prefers-reduced-motion:no-preference){.letter-sent:not([hidden]) .letter-sent__envelope{animation:letter-depart 1.5s cubic-bezier(.4,0,.2,1)both}.letter-sent:not([hidden]) .letter-sent__check{animation:letter-arrive .35s 1.2s ease-out both}@keyframes letter-depart{0%{opacity:0;transform:translateY(12px)rotate(-5deg)}20%,40%{opacity:1;transform:translateY(0)rotate(0)}55%{opacity:1;transform:translate(-8px,3px)rotate(-8deg)}100%{opacity:0;transform:translate(150px,-75px)rotate(-18deg)scale(.6)}}@keyframes letter-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}@media(prefers-reduced-motion:reduce){.letter-sent__envelope{display:none}}.letter-sending{position:relative;padding:2rem 1.75rem;text-align:center}.letter-sending[hidden]{display:none}.letter-sending__close{position:absolute;top:.4rem;right:.4rem}.letter-sending__scene{width:15rem;max-width:100%;margin:0 auto .5rem}.letter-sending__scene svg{display:block;width:100%;height:auto}.letter-sending h2{margin:.25rem 0;font-size:1.1rem;font-weight:500}.letter-sending h2:focus{outline:none}.letter-sending p{color:var(--letter-muted);font-size:.8rem;margin:.5rem 0 0}@media(prefers-reduced-motion:no-preference){.letter-sending:not([hidden]) .letter-sending__mail{transform-box:fill-box;transform-origin:center;animation:letter-to-mailbox 2s ease-in-out infinite}.letter-sending:not([hidden]) .letter-sending__trail{animation:letter-mail-trail 2s ease-in-out infinite}@keyframes letter-to-mailbox{0%{opacity:0;transform:translate(-12px,8px)rotate(-8deg)}15%{opacity:1;transform:translate(0,0)rotate(-4deg)}45%{opacity:1;transform:translate(50px,-12px)rotate(5deg)}72%,100%{opacity:0;transform:translate(110px,-8px)scale(.2)}}@keyframes letter-mail-trail{0%,65%,100%{opacity:0}20%,40%{opacity:1}}}.language-switcher{position:relative;flex:none}.language-switcher__trigger{display:inline-flex;flex-flow:row nowrap;align-items:center;justify-content:center;gap:.35rem;width:max-content;height:2.25rem;white-space:nowrap;padding:.25rem .45rem;border-radius:6px;color:var(--ink-2);font-size:.7rem;line-height:1;letter-spacing:.03em;list-style:none;cursor:pointer}.language-switcher__trigger>svg{display:block;flex:none;width:1rem;height:1rem}.language-switcher__trigger>.language-switcher__chevron{width:.65rem;height:.65rem}.language-switcher__trigger:hover,.language-switcher__trigger[aria-expanded=true]{background:var(--canvas-alt);color:var(--ink)}.language-switcher__trigger[aria-expanded=true] .language-switcher__chevron{transform:rotate(180deg)}.language-switcher__options{position:absolute;z-index:20;inset:calc(100% + .5rem)0 auto auto;width:9rem;padding:.35rem;border:1px solid var(--rule);border-radius:9px;background:var(--canvas);box-shadow:0 6px 20px #00000012}.site-nav .language-switcher__options a{display:flex;align-items:center;justify-content:space-between;padding:.55rem .65rem;border:0;border-radius:5px;font-size:.8rem;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--ink-2);text-decoration:none}.site-nav .language-switcher__options a:hover,.site-nav .language-switcher__options a[aria-current=page]{background:var(--canvas-alt);color:var(--ink)}.language-switcher__check{color:var(--accent);font-size:.75rem}.language-switcher__trigger:focus-visible,.language-switcher__options a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.language-switcher__options[hidden]{display:none}