:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#edf0f3;--panel:#f8fafb;--panel-2:#f2f5f7;--rule:#d3dbe0;--grid:#dce4e9;--ink-max:#0e1720;--ink-display:#16202b;--ink-title:#16202b;--ink-strong:#1b2733;--ink-list:#22303d;--ink:#2b3a47;--ink-dim:#5a6a78;--ink-faint:#8a99a6;--orbit:#2f5d9e;--gaze:#a8721b;--shader:#8e3b6b;--led:#2e7d63;--print:#5b5ba6;--tab-accent:var(--orbit);--accent-mix:10%;--lede-ink:#243240;--lede-accent:#a8721b;--piece-ink:#33424f;--select-bg:#cbdcea;--select-ink:var(--ink-max);--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Consolas, monospace;--serif:"Iowan Old Style", Charter, "Bitstream Charter", "Palatino Linotype", Palatino, Georgia, serif;--sans:var(--serif);--fs-nano:9.5px;--fs-micro:10px;--fs-tiny:10.5px;--fs-xs:11px;--fs-sm:11.5px;--fs-code:12.5px;--fs-meta:13px;--fs-body:14px;--fs-prose:15.5px;--fs-read:16.5px;--fw-normal:400;--fw-semi:600;--fw-bold:600;--wrap-max:1080px;--gutter:20px;--measure:68ch;--bar-h:46px;--fs-brand:16px;--fs-thesis:clamp(14px,1.9vw,17px);--masthead-top:52px;--masthead-top-sm:36px;--hairline:1px;--radius-sm:2px;--radius-pill:999px;--dur-fast:.18s;--dur-med:.2s;--dur-slow:.35s;--ease:ease}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#111820;--panel:#182129;--panel-2:#1e2831;--rule:#2b3742;--grid:#233039;--ink-max:#f2f5f7;--ink-display:#e8edf1;--ink-title:#e8edf1;--ink-strong:#dce3e9;--ink-list:#cbd4dc;--ink:#b9c4ce;--ink-dim:#8494a2;--ink-faint:#61717e;--orbit:#6c97d6;--gaze:#d3a04a;--shader:#c46e9f;--led:#5bb394;--print:#9494d9;--accent-mix:18%;--lede-ink:#d3dbe2;--lede-accent:#d3a04a;--piece-ink:#c3cdd6;--select-bg:#2e4a66}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#111820;--panel:#182129;--panel-2:#1e2831;--rule:#2b3742;--grid:#233039;--ink-max:#f2f5f7;--ink-display:#e8edf1;--ink-title:#e8edf1;--ink-strong:#dce3e9;--ink-list:#cbd4dc;--ink:#b9c4ce;--ink-dim:#8494a2;--ink-faint:#61717e;--orbit:#6c97d6;--gaze:#d3a04a;--shader:#c46e9f;--led:#5bb394;--print:#9494d9;--accent-mix:18%;--lede-ink:#d3dbe2;--lede-accent:#d3a04a;--piece-ink:#c3cdd6;--select-bg:#2e4a66}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--mono);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;transition:background-color var(--dur-slow) var(--ease), color var(--dur-slow) var(--ease);margin:0;line-height:1.5}::selection{background:var(--select-bg);color:var(--ink-max)}a{color:inherit}:focus-visible{outline:2px solid var(--tab-accent);outline-offset:3px}.wrap{max-width:var(--wrap-max);padding:0 var(--gutter);margin:0 auto}.masthead{padding:var(--masthead-top) 0 0}.name{font-family:var(--serif);font-weight:var(--fw-bold);letter-spacing:-.02em;white-space:nowrap;color:var(--ink-display);transition:color var(--dur-slow) var(--ease);margin:0;font-size:clamp(30px,5.4vw,58px);line-height:1}.name span{color:var(--ink-faint)}.name-banner{border:1px solid var(--rule);width:100%;height:auto;display:block}.thesis{font-family:var(--serif);font-weight:var(--fw-normal);font-size:var(--fs-thesis);letter-spacing:-.01em;color:var(--ink);margin:20px 0 0;line-height:1.45}.meta{font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);flex-wrap:wrap;gap:6px 22px;margin-top:26px;display:flex}.meta a{border-bottom:1px solid var(--ink-faint);padding-bottom:1px;text-decoration:none}.meta a:hover{color:var(--ink);border-color:var(--ink)}.links{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.linkbtn{font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:var(--hairline) solid var(--rule);transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:9px;padding:11px 17px;text-decoration:none;display:inline-flex}.linkbtn svg{fill:currentColor;opacity:.85;flex:none;width:15px;height:15px}.linkbtn:hover{color:var(--ink-max);border-color:var(--tab-accent);background:color-mix(in srgb, var(--tab-accent) var(--accent-mix), var(--panel))}.linkbtn:hover svg{opacity:1}.linkbtn .todo{letter-spacing:.1em;color:var(--tab-accent);border:var(--hairline) solid var(--rule);margin-left:2px;padding:2px 5px;font-size:9px}.tabs{border-bottom:var(--hairline) solid var(--rule);z-index:20;background:var(--ground);transition:background-color var(--dur-slow) var(--ease);margin-top:0;position:sticky;top:0}.bar-inner{max-width:var(--wrap-max);padding:0 var(--gutter);justify-content:space-between;align-items:stretch;gap:24px;margin:0 auto;display:flex}.bar-right{align-items:stretch;gap:26px;min-width:0;display:flex}.tab-links{align-items:stretch;gap:30px;min-width:0;display:flex}.bar-links{align-items:center;gap:14px;display:flex}.bar-links a{color:var(--ink-faint);transition:color var(--dur-fast) var(--ease);align-items:center;display:flex}.bar-links svg{fill:currentColor;width:14px;height:14px;display:block}.bar-links a:hover{color:var(--tab-accent)}.brand{font-family:var(--serif);font-weight:var(--fw-bold);font-size:var(--fs-brand);letter-spacing:-.025em;color:var(--ink-display);white-space:nowrap;transition:color var(--dur-fast) var(--ease);flex:none;align-items:center;text-decoration:none;display:flex}.brand:hover{color:var(--tab-accent)}.tab{appearance:none;font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;transition:color var(--dur-med) var(--ease), border-color var(--dur-med) var(--ease);background:0 0;border:0;border-bottom:2px solid #0000;align-items:baseline;gap:10px;margin-bottom:-1px;padding:15px 0 13px;display:flex}.tab:hover{color:var(--ink-dim)}.tab{text-decoration:none}.tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--tab-accent)}.theme-toggle{appearance:none;color:var(--ink-faint);cursor:pointer;opacity:.7;transition:color var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);background:0 0;border:0;align-items:center;margin:0;padding:0 0 0 4px;display:flex}.theme-toggle:hover{color:var(--tab-accent);opacity:1}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;display:block}.skills{border-top:var(--hairline) solid var(--rule);border-bottom:var(--hairline) solid var(--rule);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 14px;margin:34px 0 0;padding:0;list-style:none;display:flex}.skills li{font-family:var(--serif);letter-spacing:-.005em;color:var(--ink-list);padding:17px 0;font-size:clamp(13px,1.7vw,16px);position:relative}.skills-sep{color:var(--tab-accent);opacity:.85;align-self:center;padding:0}@media (width<=620px){.skills{border-bottom:0;gap:0 9px;padding-bottom:6px}.skills li{font-size:var(--fs-meta);padding:9px 0}}.pdf-link{text-align:center;font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin:18px 0 0}.pdf-link a{color:inherit;border-bottom:1px solid var(--ink-faint);padding-bottom:2px;text-decoration:none}.pdf-link a:hover{color:var(--ink);border-color:var(--ink)}.sec-head{font-size:var(--fs-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);justify-content:space-between;align-items:baseline;gap:16px;padding:46px 0 18px;display:flex}.sec-head b{font-weight:var(--fw-normal);color:var(--ink-dim)}.cards{counter-reset:fig;flex-direction:column;gap:14px;display:flex}.card{counter-increment:fig;background:var(--panel);border:var(--hairline) solid var(--rule);grid-template-columns:236px 1fr;display:grid;position:relative;overflow:hidden}.card:before{content:"";background:var(--hue);opacity:.55;width:2px;position:absolute;top:0;bottom:0;left:0}.viz{border-right:var(--hairline) solid var(--rule);background:radial-gradient(120% 100% at 20% 0%, color-mix(in srgb, var(--hue) 10%, transparent), transparent 70%), repeating-linear-gradient(to right, var(--grid) 0 1px, transparent 1px 22px), repeating-linear-gradient(to bottom, var(--grid) 0 1px, transparent 1px 22px), var(--panel-2);flex-direction:column;display:flex;position:relative}.viz canvas{flex:none;width:100%;height:236px;display:block;position:sticky;top:56px}.viz .viz-tag{z-index:2;font-family:var(--mono);font-size:var(--fs-nano);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);padding:10px 13px 0;position:sticky;top:300px}.viz .viz-tag:before{content:"Fig. " counter(fig) " — ";color:var(--hue)}.body{padding:24px 26px 26px}.rowhead{flex-wrap:wrap;align-items:baseline;gap:8px 14px;display:flex}.org{font-family:var(--serif);font-weight:var(--fw-bold);letter-spacing:-.02em;color:var(--ink-title);font-size:clamp(21px,3.4vw,27px);line-height:1.1}.dates{font-size:var(--fs-xs);letter-spacing:.1em;color:var(--ink-dim);white-space:nowrap;margin-left:auto}.role{font-size:var(--fs-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--hue);margin-top:8px}.prose{font-family:var(--serif);font-size:var(--fs-prose);color:var(--ink);white-space:pre-line;max-width:66ch;margin-top:18px;line-height:1.72}.prose p{margin:0 0 1.05em}.prose p:last-child{margin-bottom:0}.prose strong{font-weight:var(--fw-semi);color:var(--ink-strong)}.stack{border-top:var(--hairline) solid var(--rule);font-size:var(--fs-sm);color:var(--ink-dim);letter-spacing:.02em;word-spacing:.1em;margin:20px 0 0;padding:14px 0 0}.index{background:var(--rule);border:var(--hairline) solid var(--rule);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}@media (width<=880px){.index{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.index{grid-template-columns:1fr}}.index div{background:var(--panel);padding:16px 18px}.index dt{font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:7px}.index dd{font-size:var(--fs-code);color:var(--ink);margin:0;line-height:1.65}.lede{font-family:var(--serif);color:var(--lede-ink);letter-spacing:-.01em;max-width:44ch;margin:52px 0 0;font-size:clamp(18px,3vw,25px);line-height:1.5}.lede em{color:var(--lede-accent);font-style:italic}.piece .body{padding:24px 26px 26px}.piece .prose{font-family:var(--serif);font-size:var(--fs-read);color:var(--piece-ink);line-height:1.7}.piece .org{font-family:var(--serif);font-style:italic;font-weight:var(--fw-normal);letter-spacing:-.015em}.slot{border:1px dashed var(--rule);border-radius:var(--radius-sm);font-size:var(--fs-tiny);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-top:20px;padding:14px 16px}.slot b{font-weight:var(--fw-normal);color:var(--ink-dim)}.tags{font-family:var(--mono);font-size:var(--fs-tiny);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);flex-wrap:wrap;gap:8px 10px;margin-top:22px;display:flex}.tags span{border:var(--hairline) solid var(--rule);border-radius:var(--radius-pill);padding:5px 9px}footer{border-top:var(--hairline) solid var(--rule);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 24px;margin-top:66px;padding:34px 0 66px;display:flex}.foot-links{margin-top:0}.linkbtn.cta{border-color:var(--tab-accent);color:var(--tab-accent)}.linkbtn.cta:hover{background:color-mix(in srgb, var(--tab-accent) var(--accent-mix), var(--panel));color:var(--tab-accent)}.foot-meta{flex-wrap:wrap;gap:6px 22px;display:flex}@media (width<=760px){.card{grid-template-columns:1fr}.viz{border-right:0;border-bottom:var(--hairline) solid var(--rule);min-height:132px}.body,.piece .body{padding:20px 18px 22px}.dates{width:100%;margin-left:0}.masthead{padding:var(--masthead-top-sm) 0 0}.tab{font-size:var(--fs-tiny);letter-spacing:.12em}.tab-links{gap:16px}.bar-right{gap:14px}.bar-links{gap:10px}.bar-inner{scrollbar-width:none;gap:14px;overflow-x:auto}.bar-inner::-webkit-scrollbar{display:none}}.posts{border-top:var(--hairline) solid var(--rule);margin:0;padding:0;list-style:none}.posts li{border-bottom:var(--hairline) solid var(--rule)}.posts a{transition:background-color var(--dur-fast) var(--ease);grid-template-columns:104px 1fr;align-items:baseline;gap:0 24px;padding:20px 0;text-decoration:none;display:grid}.posts a:hover{background:var(--panel)}.posts .date{font-size:var(--fs-tiny);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}.posts a:hover .date{color:var(--tab-accent)}.posts .post-title{font-family:var(--serif);font-size:17px;font-weight:var(--fw-semi);letter-spacing:-.015em;color:var(--ink-strong);line-height:1.3}.posts .summary{font-family:var(--serif);color:var(--ink-dim);grid-column:2;max-width:62ch;margin-top:5px;font-size:13.5px;line-height:1.55}.more{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--ink-faint);margin-top:20px;padding-bottom:3px;text-decoration:none;display:inline-block}.more:hover{color:var(--ink);border-color:var(--tab-accent)}@media (width<=620px){.posts a{grid-template-columns:1fr;gap:6px 0}.posts .summary{grid-column:1}}.sketches{grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;list-style:none;display:grid}@media (width<=880px){.sketches{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.sketches{grid-template-columns:1fr}}.sketches a{background:var(--panel);border:var(--hairline) solid var(--rule);transition:border-color var(--dur-fast) var(--ease);text-decoration:none;display:block}.sketches a:hover{border-color:var(--tab-accent)}.sketches .thumb{aspect-ratio:4/3;object-fit:cover;background:var(--panel-2);border-bottom:var(--hairline) solid var(--rule);width:100%;display:block}.sketches .cap{padding:13px 15px 15px;display:block}.sketches .cap b{font-family:var(--serif);font-weight:var(--fw-semi);font-size:var(--fs-body);letter-spacing:-.01em;color:var(--ink-strong);display:block}.sketches .cap span{font-size:var(--fs-sm);color:var(--ink-dim);margin-top:5px;line-height:1.5;display:block}.empty{border:1px dashed var(--rule);font-size:var(--fs-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);text-align:center;padding:26px 22px}.post-head{max-width:var(--measure);border-bottom:var(--hairline) solid var(--rule);margin:0 auto;padding:52px 0 30px}.post-head h1{font-family:var(--serif);font-weight:var(--fw-bold);letter-spacing:-.03em;color:var(--ink-display);max-width:22ch;margin:14px 0 0;font-size:clamp(24px,4vw,38px);line-height:1.15}.post-head .date{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.post-body{font-family:var(--serif);font-size:var(--fs-read);color:var(--ink);max-width:var(--measure);margin:34px auto 0;line-height:1.72}.post-body h2{font-size:20px;font-weight:var(--fw-semi);letter-spacing:-.02em;color:var(--ink-strong);margin:2.1em 0 .7em}.post-body h3{font-size:16.5px;font-weight:var(--fw-semi);color:var(--ink-strong);margin:1.8em 0 .6em}.post-body p{margin:0 0 1.15em}.post-body ul,.post-body ol{margin:0 0 1.15em;padding-left:1.4em}.post-body li{margin:0 0 .4em}.post-body a{color:var(--tab-accent)}.post-body strong{font-weight:var(--fw-semi);color:var(--ink-strong)}.post-body code{font-family:var(--mono);font-size:var(--fs-code);background:var(--panel);border:var(--hairline) solid var(--rule);padding:1px 5px}.post-body pre{font-family:var(--mono);font-size:var(--fs-code);background:var(--panel);border:var(--hairline) solid var(--rule);border-left:2px solid var(--tab-accent);margin:0 0 1.4em;padding:16px 18px;line-height:1.6;overflow-x:auto}.post-body pre code{font-size:inherit;background:0 0;border:0;padding:0}.post-body blockquote{border-left:var(--hairline) solid var(--rule);color:var(--ink-dim);margin:0 0 1.3em;padding:2px 0 2px 20px}.post-body hr{border:0;border-top:var(--hairline) solid var(--rule);margin:2.4em 0}.cite{max-width:var(--measure);border-top:var(--hairline) solid var(--rule);margin:3em auto 0;padding-top:1.4em}.cite h2{font-family:var(--mono);font-size:var(--fs-tiny);letter-spacing:.1em;text-transform:uppercase;font-weight:var(--fw-semi);color:var(--ink-dim);margin:0 0 .9em}.cite-row{align-items:flex-start;gap:12px;margin:0 0 .8em;display:flex}.cite-text{font-size:var(--fs-code);color:var(--ink);word-break:break-word;flex:1;margin:0}.cite pre{font-family:var(--mono);font-size:var(--fs-code);background:var(--panel);border:var(--hairline) solid var(--rule);flex:1;margin:0;padding:12px 14px;line-height:1.6;overflow-x:auto}.cite button{font:inherit;font-family:var(--mono);font-size:var(--fs-tiny);letter-spacing:.08em;color:var(--ink-dim);border:var(--hairline) solid var(--rule);cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease);background:0 0;flex:none;padding:3px 9px}.cite button:hover{color:var(--tab-accent);border-color:var(--tab-accent)}@media (width<=600px){.cite-row{flex-direction:column}}.contact{grid-template-columns:repeat(2,1fr);gap:14px;max-width:640px;margin-top:6px;display:grid}.contact .full{grid-column:1/-1}.contact label{font-size:var(--fs-tiny);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:7px;display:block}.contact input,.contact textarea{width:100%;font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink);background:var(--panel);border:var(--hairline) solid var(--rule);transition:border-color var(--dur-fast) var(--ease);padding:11px 13px}.contact textarea{resize:vertical;min-height:150px;line-height:1.6}.contact input:focus,.contact textarea:focus{border-color:var(--tab-accent);outline:none}.contact input[aria-invalid=true],.contact textarea[aria-invalid=true]{border-color:var(--shader)}.contact .err{font-size:var(--fs-xs);letter-spacing:.04em;color:var(--shader);margin:6px 0 0}.contact .trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact button{appearance:none;font-family:var(--mono);font-size:var(--fs-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:var(--hairline) solid var(--rule);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);justify-self:start;padding:13px 24px}.contact button:hover:not(:disabled){color:var(--ink-max);border-color:var(--tab-accent);background:color-mix(in srgb, var(--tab-accent) var(--accent-mix), var(--panel))}.contact button:disabled{opacity:.5;cursor:default}.form-note{font-size:var(--fs-sm);letter-spacing:.04em;color:var(--ink-dim);grid-column:1/-1;margin:0}.form-note.ok{color:var(--led)}.form-note.bad{color:var(--shader)}@media (width<=620px){.contact{grid-template-columns:1fr}}.edit-panel{right:var(--gutter);bottom:var(--gutter);z-index:101;width:420px;max-width:calc(100vw - 2 * var(--gutter));background:var(--panel);border:var(--hairline) solid var(--rule);max-height:72vh;font-family:var(--mono);font-size:var(--fs-xs);position:fixed;overflow-y:auto;box-shadow:0 4px 24px #00000029}.edit-panel header{background:var(--panel);border-bottom:var(--hairline) solid var(--rule);align-items:center;gap:8px;padding:11px 13px;display:flex;position:sticky;top:0}.edit-panel header b{color:var(--tab-accent);text-transform:uppercase;letter-spacing:.16em;font-weight:var(--fw-semi)}.edit-panel header span{color:var(--ink-faint)}.edit-panel header button:first-of-type{margin-left:auto}.edit-panel button{border:var(--hairline) solid var(--rule);color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:4px 9px}.edit-panel button:hover:not(:disabled){border-color:var(--tab-accent);color:var(--tab-accent)}.edit-panel button:disabled{opacity:.45;cursor:default}.edit-panel button.danger:hover{border-color:var(--shader);color:var(--shader)}.edit-panel section{border-bottom:var(--hairline) solid var(--rule);padding:12px 13px}.edit-panel h3{font-size:var(--fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:var(--fw-normal);margin:0 0 9px}.edit-panel h3 span{text-transform:none;letter-spacing:.04em;opacity:.8;margin-left:8px}.panel-note{color:var(--tab-accent);border-bottom:var(--hairline) solid var(--rule);margin:0;padding:9px 13px}.panel-empty{color:var(--ink-faint);margin:0}.panel-list{margin:0 0 10px;padding:0;list-style:none}.panel-list li{border-bottom:var(--hairline) solid var(--rule);padding:9px 0}.panel-list li:last-child{border-bottom:0}.panel-list li.is-live{background:color-mix(in srgb, var(--tab-accent) 7%, transparent)}.panel-list .row{align-items:center;gap:8px;display:flex}.panel-list .row button{margin-left:auto}.panel-list .tag{font-size:var(--fs-nano);letter-spacing:.14em;text-transform:uppercase;color:var(--tab-accent);border:var(--hairline) solid var(--rule);padding:2px 6px}.panel-list .where{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.panel-list .sha{color:var(--ink-faint)}.panel-list .was{color:var(--ink-faint);overflow-wrap:anywhere;margin-top:4px}.panel-list .now{color:var(--ink);overflow-wrap:anywhere;margin-top:4px}.post-body table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:var(--fs-code);margin:0 0 1.7em}.post-body th,.post-body td{text-align:left;border-bottom:var(--hairline) solid var(--rule);padding:9px 12px}.post-body th{color:var(--ink-faint);font-weight:var(--fw-normal);letter-spacing:.12em;text-transform:uppercase;font-size:var(--fs-micro)}.post-body td:not(:first-child),.post-body th:not(:first-child){text-align:right;color:var(--ink-strong)}.post-body tbody tr:last-child td{border-bottom:0}.ai-chip{border:var(--hairline) solid var(--rule);border-radius:var(--radius-pill);font-family:var(--mono);font-size:var(--fs-nano);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;vertical-align:baseline;margin-left:6px;padding:1px 6px;display:inline-block}.post-head .ai-chip{vertical-align:middle}.post-fig{max-width:var(--measure);margin:2.6em auto;padding:0}.post-fig img{background:repeating-linear-gradient(to right, var(--grid) 0 1px, transparent 1px 22px), repeating-linear-gradient(to bottom, var(--grid) 0 1px, transparent 1px 22px), var(--panel);border:var(--hairline) solid var(--rule);width:100%;height:auto;display:block}.post-fig img[src$=".px.png"]{width:auto;max-width:100%;image-rendering:pixelated;margin-inline:auto}.post-fig:has(img[src$=".px.png"]) figcaption{text-align:center}.post-more{max-width:var(--measure);margin-inline:auto}.post-fig figcaption{font-family:var(--mono);font-size:var(--fs-tiny);letter-spacing:.1em;color:var(--ink-dim);margin-top:9px}body.edit-mode :not(.edit-ui):not(.edit-ui *):hover{outline:var(--hairline) dashed var(--tab-accent);outline-offset:2px;cursor:context-menu}.edit-active{outline-offset:2px;background:color-mix(in srgb, var(--tab-accent) 8%, transparent);outline:2px solid var(--tab-accent)!important}.edit-badge{left:var(--gutter);bottom:var(--gutter);z-index:100;background:var(--panel);border:var(--hairline) solid var(--tab-accent);font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--ink-dim);align-items:center;gap:12px;padding:10px 14px;display:flex;position:fixed;box-shadow:0 2px 14px #00000024}.edit-badge b{color:var(--tab-accent);text-transform:uppercase;letter-spacing:.16em;font-weight:var(--fw-semi)}.edit-badge .warn{color:var(--shader)}.edit-menu,.edit-note{z-index:101;background:var(--panel);border:var(--hairline) solid var(--rule);font-family:var(--mono);font-size:var(--fs-sm);position:fixed;box-shadow:0 4px 20px #0000002e}.edit-menu{flex-direction:column;min-width:150px;padding:4px;display:flex}.edit-menu button{text-align:left;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:9px 12px}.edit-menu button:hover{background:color-mix(in srgb, var(--tab-accent) 12%, transparent);color:var(--tab-accent)}.edit-note{width:320px;max-width:calc(100vw - 2 * var(--gutter));padding:12px}.edit-note-head{font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin-bottom:9px;overflow:hidden}.edit-note textarea{resize:vertical;width:100%;min-height:96px;font:inherit;color:var(--ink);background:var(--ground);border:var(--hairline) solid var(--rule);padding:9px 10px}.edit-note textarea:focus{border-color:var(--tab-accent);outline:none}.edit-note-actions{font-size:var(--fs-micro);color:var(--ink-faint);align-items:center;gap:8px;margin-top:9px;display:flex}.edit-note-actions button:last-child{margin-left:0}.edit-note-actions button{border:var(--hairline) solid var(--rule);color:var(--ink);font:inherit;cursor:pointer;background:0 0;margin-left:auto;padding:6px 11px}.edit-note-actions button:hover{border-color:var(--tab-accent);color:var(--tab-accent)}.edit-backdrop{z-index:100;position:fixed;inset:0}.edit-badge button{border:var(--hairline) solid var(--rule);color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:5px 10px}.edit-badge button:hover:not(:disabled){border-color:var(--tab-accent);color:var(--tab-accent)}.edit-badge button:disabled{opacity:.45;cursor:default}.edit-badge button.primary{border-color:var(--tab-accent);color:var(--tab-accent)}.edit-badge .note{color:var(--ink);max-width:44ch}.edit-entries-toggle{border:var(--hairline) solid var(--rule);color:var(--ink-dim);font:inherit;cursor:pointer;background:0 0;padding:5px 10px}.edit-entries-toggle:hover{border-color:var(--tab-accent);color:var(--tab-accent)}.edit-entries{left:var(--gutter);bottom:calc(var(--gutter) + 44px);z-index:100;background:var(--panel);border:var(--hairline) solid var(--rule);max-width:60ch;max-height:40vh;font-family:var(--mono);font-size:var(--fs-xs);position:fixed;overflow-y:auto;box-shadow:0 4px 20px #0000002e}.edit-entries ul{margin:0;padding:0;list-style:none}.edit-entries li{border-bottom:var(--hairline) solid var(--rule);align-items:baseline;gap:8px;padding:7px 12px;display:flex}.edit-entries li:last-child{border-bottom:0}.edit-entries-status{color:var(--ink-faint)}.edit-entries-status.sent{color:var(--tab-accent)}.edit-entries-kind{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);flex-shrink:0}.edit-entries-label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.edit-source{left:var(--gutter);right:var(--gutter);top:var(--gutter);bottom:calc(var(--gutter) + 52px);z-index:102;background:var(--panel);border:var(--hairline) solid var(--rule);font-family:var(--mono);font-size:var(--fs-xs);flex-direction:column;display:flex;position:fixed;box-shadow:0 4px 28px #00000038}.edit-source header{border-bottom:var(--hairline) solid var(--rule);align-items:center;gap:8px;padding:11px 13px;display:flex}.edit-source header b{color:var(--tab-accent);letter-spacing:.08em;font-weight:var(--fw-semi)}.edit-source header span{color:var(--ink-faint)}.edit-source header .warn{color:var(--shader);max-width:60ch}.edit-source header button:nth-last-of-type(2){margin-left:auto}.edit-source header button{font:inherit;color:var(--ink);border:var(--hairline) solid var(--rule);cursor:pointer;background:0 0;padding:3px 9px}.edit-source header button:hover:not(:disabled){border-color:var(--tab-accent);color:var(--tab-accent)}.edit-source header button:disabled{opacity:.45;cursor:default}.edit-source header button.primary{border-color:var(--tab-accent);color:var(--tab-accent)}.edit-source textarea{resize:none;width:100%;font:inherit;tab-size:2;color:var(--ink);background:var(--ground);border:0;flex:1;padding:14px 16px;line-height:1.6}.edit-source textarea:focus{outline:none}.edit-source footer{color:var(--ink-faint);border-top:var(--hairline) solid var(--rule);padding:8px 13px}
