:root{--paper: #FCFBF8;--paper-2: #F5F3EC;--ink: #1B1D1A;--muted: #6B6F68;--faint: #9A9D95;--line: #E7E4DB;--accent: #24503B;--accent-2: #EEF1EA;--danger: #9B3B2E;--serif: "Newsreader", Iowan Old Style, Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--measure: 40rem;--wide: 56rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}button{font-family:inherit;cursor:pointer}::selection{background:var(--accent-2)}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px);position:sticky;top:0;z-index:50}.topbar-inner{max-width:var(--wide);margin:0 auto;padding:0 1.25rem;height:60px;display:flex;align-items:center;gap:1.5rem}.wordmark{font-family:var(--serif);font-style:italic;font-size:1.55rem;font-weight:500;letter-spacing:-.01em;color:var(--ink)}.wordmark:hover{text-decoration:none;color:var(--accent)}.nav{display:flex;gap:1.25rem;margin-left:auto;align-items:center}.nav a{font-size:.9rem;color:var(--muted);font-weight:500;padding:.35rem 0;border-bottom:2px solid transparent}.nav a:hover{color:var(--ink);text-decoration:none}.nav a.active{color:var(--ink);border-bottom-color:var(--accent)}.page{max-width:var(--wide);margin:0 auto;padding:2.5rem 1.25rem 5rem}.reading{max-width:var(--measure);margin:0 auto}.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:.75rem}.page-title{font-family:var(--serif);font-weight:500;letter-spacing:-.02em;font-size:2.1rem;line-height:1.15;margin:0 0 .4rem}.lede{color:var(--muted);font-size:1.05rem;margin:0 0 2rem;max-width:34rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9rem;font-weight:500;padding:.55rem 1.1rem;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);transition:opacity .15s}.btn:hover{opacity:.85;text-decoration:none}.btn-accent{background:var(--accent);border-color:var(--accent)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn-ghost:hover{border-color:var(--ink);opacity:1}.btn-ghost.is-on{background:var(--accent-2);border-color:var(--accent);color:var(--accent)}.btn-sm{padding:.35rem .85rem;font-size:.82rem}.btn[disabled]{opacity:.5;cursor:default}.field{margin-bottom:1.1rem}.field label{display:block;font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:.35rem}.input,.textarea{width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.6rem .75rem;transition:border-color .15s}.input:focus,.textarea:focus{outline:none;border-color:var(--accent)}.textarea{resize:vertical;line-height:1.6}.hint{font-size:.8rem;color:var(--faint);margin-top:.35rem}.form-narrow{max-width:24rem;margin:0 auto}.error{background:#fbeae7;color:var(--danger);border:1px solid #f0cfc9;padding:.6rem .8rem;border-radius:10px;font-size:.88rem;margin-bottom:1rem}.postlist{border-top:1px solid var(--line)}.postcard{display:block;padding:1.6rem 0;border-bottom:1px solid var(--line)}.postcard:hover{text-decoration:none}.postcard:hover .postcard-title{color:var(--accent)}.postcard-meta{font-size:.8rem;color:var(--faint);margin-bottom:.4rem}.postcard-meta .by{color:var(--muted);font-weight:500}.postcard-title{font-family:var(--serif);font-weight:500;letter-spacing:-.015em;font-size:1.4rem;line-height:1.25;margin:0 0 .3rem;color:var(--ink)}.postcard-sub{color:var(--muted);font-size:.98rem;margin:0}.draft-tag{display:inline-block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--accent);background:var(--accent-2);padding:.1rem .5rem;border-radius:999px;margin-left:.5rem;vertical-align:middle}.lang-tag{display:inline-block;font-size:.72rem;font-weight:500;color:var(--muted);background:var(--paper-2);padding:.05rem .5rem;border-radius:999px;margin-left:.5rem;vertical-align:middle}.masthead{text-align:center;padding:1rem 0 2rem;border-bottom:1px solid var(--line);margin-bottom:.5rem}.masthead h1{font-family:var(--serif);font-weight:500;font-size:2.3rem;letter-spacing:-.02em;margin:0 0 .3rem}.masthead .handle{color:var(--faint);font-size:.85rem}.masthead .bio{color:var(--muted);max-width:32rem;margin:.9rem auto 1.3rem}.masthead .actions{display:flex;gap:.75rem;justify-content:center;align-items:center}.subcount{color:var(--faint);font-size:.85rem}.rss-link{color:var(--faint);font-size:.82rem}.rss-link:hover{color:var(--accent)}.article-head{text-align:center;margin:.5rem 0 2.5rem}.article-head .kicker{font-size:.85rem;color:var(--muted);margin-bottom:1rem}.article-head .kicker a{color:var(--accent);font-weight:500}.article-title{font-family:var(--serif);font-weight:500;letter-spacing:-.025em;font-size:2.6rem;line-height:1.1;margin:0 0 .6rem}.article-sub{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:1.3rem;line-height:1.35;margin:0}.article-date{color:var(--faint);font-size:.82rem;margin-top:1.1rem}.prose{font-family:var(--serif);font-size:1.2rem;line-height:1.72;color:#26282a}.prose>:first-child{margin-top:0}.prose p{margin:0 0 1.3rem}.prose h1,.prose h2,.prose h3{font-weight:600;letter-spacing:-.01em;line-height:1.25;margin:2.2rem 0 .9rem}.prose h1{font-size:1.7rem}.prose h2{font-size:1.45rem}.prose h3{font-size:1.2rem}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.prose blockquote{margin:1.6rem 0;padding:.2rem 0 .2rem 1.3rem;border-left:3px solid var(--accent);color:var(--muted);font-style:italic}.prose ul,.prose ol{margin:0 0 1.3rem;padding-left:1.4rem}.prose li{margin:.35rem 0}.prose code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.86em;background:var(--paper-2);padding:.12em .35em;border-radius:5px}.prose pre{background:var(--paper-2);padding:1rem 1.1rem;border-radius:10px;overflow-x:auto;margin:0 0 1.4rem}.prose pre code{background:none;padding:0}.prose img{max-width:100%;border-radius:10px}.prose hr{border:none;border-top:1px solid var(--line);margin:2.5rem 0}.article-foot{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.8rem;text-align:center}.article-foot .prompt{color:var(--muted);font-size:.95rem;margin-bottom:1rem}.write-grid{display:grid;gap:1rem}.write-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.title-input{font-family:var(--serif);font-size:1.9rem;font-weight:500;letter-spacing:-.02em;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:.4rem 0}.title-input:focus{border-bottom-color:var(--accent)}.sub-input{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--muted);border:none;border-bottom:1px solid var(--line);border-radius:0;padding:.3rem 0}.body-input{font-family:var(--serif);font-size:1.15rem;line-height:1.7;min-height:45vh;border:none;padding:.5rem 0}.body-input:focus{border-color:transparent}.spacer{margin-left:auto}.empty{text-align:center;padding:3.5rem 1rem;color:var(--muted)}.empty .empty-title{font-family:var(--serif);font-size:1.4rem;color:var(--ink);margin-bottom:.5rem}.center-narrow{max-width:30rem;margin:0 auto;text-align:center}.row-between{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.muted{color:var(--muted)}.pub-item{display:flex;justify-content:space-between;align-items:baseline;padding:1.2rem 0;border-bottom:1px solid var(--line);gap:1rem}.pub-item .name{font-family:var(--serif);font-size:1.25rem;font-weight:500}.pub-item .meta{font-size:.82rem;color:var(--faint)}.loading{text-align:center;color:var(--faint);padding:4rem 1rem;font-style:italic;font-family:var(--serif)}.switch{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.search-box{position:relative;margin-bottom:1.5rem}.search-box input{width:100%;font-family:var(--sans);font-size:1.05rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.7rem 1.1rem .7rem 2.6rem;transition:border-color .15s}.search-box input:focus{outline:none;border-color:var(--accent)}.search-box .icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--faint);font-size:1.05rem}.segmented{display:inline-flex;background:var(--paper-2);border-radius:999px;padding:3px;gap:2px;margin-bottom:1.5rem}.segmented button{border:none;background:transparent;color:var(--muted);font-size:.85rem;font-weight:500;padding:.4rem 1rem;border-radius:999px}.segmented button.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #0000000f}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}.chip{font-size:.82rem;color:var(--muted);background:var(--paper-2);border:1px solid transparent;padding:.3rem .75rem;border-radius:999px;cursor:pointer;transition:all .12s;white-space:nowrap}.chip:hover{color:var(--ink);text-decoration:none}.chip.active{background:var(--accent-2);color:var(--accent);border-color:var(--accent)}.chip .count{color:var(--faint);margin-left:.3rem;font-size:.76rem}.chip.active .count{color:var(--accent)}.tag-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.tag{font-size:.74rem;color:var(--muted);background:var(--paper-2);padding:.15rem .55rem;border-radius:999px}a.tag:hover{color:var(--accent);background:var(--accent-2);text-decoration:none}.section-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:2rem 0 .5rem}.section-label:first-child{margin-top:0}.sort-select{font-family:var(--sans);font-size:.82rem;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem;cursor:pointer}@media (max-width: 640px){.article-title{font-size:2rem}.page-title{font-size:1.7rem}.page{padding:1.75rem 1.1rem 4rem}.nav{gap:.9rem}.nav a span.long{display:none}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
