:root{--paper:#f7f5f0;--paper-deep:#efebe2;--ink:#121212;--ink-soft:#363636;--muted:#6b6760;--rule:#d9d4c9;--rule-strong:#121212;--accent:#326891;--danger:#a61b1b;--nameplate:"UnifrakturMaguntia", "Old English Text MT", "Goudy Text MT", serif;--serif:"Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;--sans:"Libre Franklin", "Franklin Gothic", "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--measure:680px;--page:1200px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--serif);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.55}a{color:inherit;text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}p{margin:0 0 1em}h1,h2,h3{margin:0}.page{width:min(var(--page), 100% - 2.5rem);min-height:60vh;margin-inline:auto;padding-block:1.75rem 3rem}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.hidden{display:none!important}.masthead{width:min(var(--page), 100% - 2.5rem);margin-inline:auto;padding-top:.9rem}.masthead-top{font-family:var(--sans);color:var(--ink-soft);justify-content:space-between;gap:1rem;font-size:.75rem;font-weight:600;display:flex}.nameplate{text-align:center;font-family:var(--nameplate);color:var(--ink);padding:.35rem 0 .6rem;font-size:clamp(2.6rem,7.5vw,5rem);font-weight:400;line-height:1.05;display:block}.nameplate:hover{text-decoration:none}.sections{border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong);flex-wrap:wrap;justify-content:center;gap:.25rem 2rem;padding:.55rem 0;display:flex}.sections a{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600}.sections a[aria-current=page]{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}@media (width<=640px){.masthead-tag{display:none}.masthead-top{justify-content:center}.sections{gap:.25rem 1.25rem}}.kicker{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.45rem;font-size:.72rem;font-weight:700}.hed{font-family:var(--serif);letter-spacing:-.005em;font-weight:700;line-height:1.12}.hed-xl{letter-spacing:-.015em;font-size:clamp(2.2rem,4.2vw,3.4rem);line-height:1.05}.hed-lg{letter-spacing:-.01em;font-size:clamp(2rem,3.6vw,2.9rem);line-height:1.08}.hed-md{font-size:clamp(1.35rem,2vw,1.6rem)}.hed-sm{font-size:1.2rem}.dek{color:var(--ink-soft);margin:.75rem 0 0;font-size:1.2rem;line-height:1.45}.byline{font-family:var(--sans);margin-top:1rem;font-size:.8rem;font-weight:700}.meta{font-family:var(--sans);color:var(--muted);margin-top:.35rem;font-size:.75rem}.dropcap:first-letter{float:left;font-family:var(--serif);padding:.06em .08em 0 0;font-size:4.1em;font-weight:700;line-height:.8}.continue{font-family:var(--sans);margin-top:.25rem;font-size:.8rem;font-weight:700;display:inline-block}.continue:after{content:" →"}.summary{color:var(--ink-soft);margin:.4rem 0 0;font-size:.98rem;line-height:1.45}.empty{color:var(--muted);padding:1rem 0;font-style:italic}.front{grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:0 2rem;padding-bottom:2rem;display:grid}.front-lead{border-right:1px solid var(--rule);padding-right:2rem}.front-lead .dek{max-width:46rem;font-size:1.3rem}.front-lead .dek p:last-child{margin-bottom:0}.story{border-top:1px solid var(--rule);margin-top:1.75rem;padding-top:1.25rem}.story .hed{margin-bottom:.75rem}.story-body{max-width:40rem}.story-body p{margin:0 0 .75rem}.front-rail{flex-direction:column;display:flex}.rail-item{border-bottom:1px solid var(--rule);margin-bottom:1.1rem;padding:0 0 1.1rem}.rail-item p{color:var(--ink-soft);margin:.4rem 0 0;font-size:.98rem;line-height:1.45}.factbox{border-top:2px solid var(--rule-strong);padding-top:.6rem}.factbox .factbox-title{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem;font-size:.72rem;font-weight:800}.factbox dl{grid-template-columns:auto 1fr;gap:.35rem .9rem;margin:0;font-size:.92rem;display:grid}.factbox dt{font-family:var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-top:.18rem;font-size:.72rem;font-weight:600}.factbox dd{margin:0}@media (width<=860px){.front{grid-template-columns:1fr}.front-lead{border-right:0;border-bottom:1px solid var(--rule);margin-bottom:1.5rem;padding-bottom:1.5rem;padding-right:0}}.section{border-top:2px solid var(--rule-strong);padding-top:.6rem}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:1rem;display:flex}.section-head h2{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;font-size:.8rem;font-weight:800}.section-more{font-family:var(--sans);color:var(--accent);font-size:.75rem;font-weight:600}.post-grid{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1.25rem 0;display:grid}.post-card{border-left:1px solid var(--rule);padding:0 1.25rem}.post-card:first-child{border-left:0;padding-left:0}.post-card-link:hover{text-decoration:none}.post-card-link:hover .hed{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}@media (width<=640px){.post-card{border-left:0;border-bottom:1px solid var(--rule);padding:0 0 1.25rem}}.section-front{border-bottom:1px solid var(--rule-strong);margin-bottom:1.5rem;padding-bottom:.75rem}.section-front h1{font-family:var(--serif);font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1.1}.section-front p{margin:.35rem 0 0}.post-list{max-width:56rem;margin:0;padding:0;list-style:none}.post-row{border-bottom:1px solid var(--rule);grid-template-columns:9rem 1fr;gap:1.5rem;padding:1.25rem 0;display:grid}.post-row-date{font-family:var(--sans);color:var(--muted);padding-top:.4rem;font-size:.75rem;font-weight:600}@media (width<=640px){.post-row{grid-template-columns:1fr;gap:.25rem}}.article{max-width:var(--measure);margin-inline:auto}.article-head{border-bottom:1px solid var(--rule);margin-bottom:1.75rem;padding-bottom:1.25rem}.article-body{color:#1c1c1c;font-size:1.15rem;line-height:1.7}.article-foot{border-top:1px solid var(--rule);margin-top:2.5rem;padding-top:1rem}.prose h2{margin:2rem 0 .75rem;font-size:1.55rem;line-height:1.2}.prose h3{margin:1.75rem 0 .5rem;font-size:1.25rem}.prose h4{font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;margin:1.5rem 0 .5rem;font-size:.9rem}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.4rem}.prose li{margin-bottom:.3em}.prose blockquote{border-left:3px solid var(--rule-strong);color:var(--ink-soft);margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;font-style:italic}.prose code{font-family:var(--mono);background:var(--paper-deep);border-radius:2px;padding:.1em .3em;font-size:.85em}.prose pre{background:var(--paper-deep);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:1.5rem 0;padding:1rem 1.1rem;font-size:.9rem;line-height:1.55;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose hr{text-align:center;border:0;margin:2rem 0}.prose hr:before{content:"* * *";letter-spacing:.5em;color:var(--muted)}.prose table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;padding:.45rem .6rem}.prose th{font-family:var(--sans);text-transform:uppercase;letter-spacing:.05em;border-bottom-color:var(--rule-strong);font-size:.75rem}.prose img{max-width:100%;height:auto}.resume{margin-top:2.5rem}.resume .rule-head{margin:1.75rem 0 .25rem}.resume-list{margin:0;padding:0;list-style:none}.resume-list li{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;gap:0 1rem;padding:.65rem 0;display:grid}.resume-role{font-weight:600}.resume-place{color:var(--ink-soft);grid-row:2;font-size:.95rem}.resume-dates{font-family:var(--sans);color:var(--muted);text-align:right;grid-area:1/2/span 2;padding-top:.2rem;font-size:.75rem}.skills{grid-template-columns:7.5rem 1fr;gap:.5rem 1rem;margin:.5rem 0 0;font-size:.98rem;display:grid}.skills dt{font-family:var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding-top:.2rem;font-size:.72rem;font-weight:600}.skills dd{margin:0}@media (width<=520px){.resume-list li{grid-template-columns:1fr}.resume-dates{text-align:left;grid-area:auto;padding-top:.15rem}.skills{grid-template-columns:1fr;gap:0}.skills dd{margin-bottom:.6rem}}.contact{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:2.5rem;max-width:64rem;display:grid}@media (width<=760px){.contact{grid-template-columns:1fr}}.rule-head{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;border-top:2px solid var(--rule-strong);margin-bottom:1rem;padding-top:.6rem;font-size:.8rem;font-weight:800}.contact-links{margin:0;padding:0;list-style:none}.contact-links li{border-bottom:1px solid var(--rule);flex-direction:column;padding:.6rem 0;display:flex}.contact-links span{font-family:var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:600}.contact-links a{color:var(--accent);overflow-wrap:anywhere}.form{gap:1.1rem;display:grid}.field{gap:.35rem;display:grid}label,.check{font-family:var(--sans);font-size:.78rem;font-weight:600}.hint{color:var(--muted);font-weight:400}textarea{width:100%;font:inherit;color:var(--ink);background:#fffdf8;border:1px solid #c9c3b6;border-radius:0;padding:.6rem .7rem;font-size:1rem}input[type=text]{width:100%;font:inherit;color:var(--ink);background:#fffdf8;border:1px solid #c9c3b6;border-radius:0;padding:.6rem .7rem;font-size:1rem}input[type=email]{width:100%;font:inherit;color:var(--ink);background:#fffdf8;border:1px solid #c9c3b6;border-radius:0;padding:.6rem .7rem;font-size:1rem}input[type=password]{width:100%;font:inherit;color:var(--ink);background:#fffdf8;border:1px solid #c9c3b6;border-radius:0;padding:.6rem .7rem;font-size:1rem}textarea:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);outline:none}input[type=text]:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);outline:none}input[type=email]:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);outline:none}input[type=password]:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);outline:none}textarea{resize:vertical}.input-hed{font-weight:700;font-size:1.35rem!important}.input-body{line-height:1.6;font-family:var(--mono)!important;font-size:.9rem!important}.check{align-items:center;gap:.4rem;display:flex}.label-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.btn{font-family:var(--sans);letter-spacing:.04em;color:var(--paper);background:var(--ink);border:1px solid var(--ink);cursor:pointer;border-radius:0;justify-content:center;justify-self:start;align-items:center;padding:.6rem 1.1rem;font-size:.78rem;font-weight:700;display:inline-flex}.btn:hover{background:#333;text-decoration:none}.btn:disabled{opacity:.55;cursor:progress}.btn-ghost{color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--paper-deep)}.btn-sm{padding:.3rem .65rem;font-size:.72rem}.form-error{font-family:var(--sans);color:var(--danger);margin:0;font-size:.85rem}.desk{max-width:60rem;margin-inline:auto}.desk-narrow{max-width:24rem}.desk-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.desk-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.table-wrap{overflow-x:auto}.desk-table{border-collapse:collapse;width:100%;font-size:.98rem}.desk-table th{font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--rule-strong);padding:.5rem .6rem;font-size:.7rem;font-weight:700}.desk-table td{border-bottom:1px solid var(--rule);vertical-align:top;padding:.7rem .6rem}.desk-table td:first-child{font-weight:600}.status{font-family:var(--sans);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:700}.status.live{color:#2d6a2d}.status.draft{color:var(--muted)}.row-actions{white-space:nowrap;font-family:var(--sans);font-size:.78rem}.row-actions a,.row-actions button{margin-left:.8rem}.row-actions a{color:var(--accent)}.link-danger{font:inherit;color:var(--danger);cursor:pointer;background:0 0;border:0;padding:0}.link-danger:hover{text-decoration:underline}.desk-note{margin:-.75rem 0 1.5rem;font-size:.95rem}.text-group{border:0;border-top:2px solid var(--rule-strong);gap:1rem;margin:0 0 1rem;padding:.6rem 0 0;display:grid}.text-group legend{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:0 .6rem 0 0;font-size:.8rem;font-weight:800}.save-bar{background:var(--paper);border-top:1px solid var(--rule);padding:.75rem 0;position:sticky;bottom:0}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.sent{border-left:3px solid var(--rule-strong);padding-left:1rem;font-size:1.1rem;font-style:italic}.letters{margin:0;padding:0;list-style:none}.letter{border-bottom:1px solid var(--rule);padding:1rem 0}.letter-head{font-family:var(--sans);flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;font-size:.85rem;display:flex}.letter-head a{color:var(--accent)}.letter-head .meta{margin:0}.letter-body{white-space:pre-wrap;margin:.5rem 0}.letter .link-danger{font-family:var(--sans);font-size:.78rem}.form-ok{font-family:var(--sans);color:#2d6a2d;margin:0;font-size:.85rem}.preview{background:#fffdf8;border:1px solid #c9c3b6;min-height:20rem;padding:1.25rem 1.5rem}.site-footer{width:min(var(--page), 100% - 2.5rem);border-top:3px double var(--rule-strong);margin-inline:auto;padding-top:1rem}.site-footer .nameplate-sm{text-align:left;padding:0 0 1rem;font-size:2rem}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li{margin-bottom:.35rem}.site-footer p{color:var(--ink-soft);margin:0}.footer-cols{font-family:var(--sans);grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;padding-bottom:1.5rem;font-size:.82rem;display:grid}@media (width<=640px){.footer-cols{grid-template-columns:1fr 1fr}}.footer-head{letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem;font-size:.7rem;font-weight:800}.legal{border-top:1px solid var(--rule);font-family:var(--sans);color:var(--muted);padding:1rem 0 1.5rem;font-size:.72rem}