/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
:root{--background:#fdfaf4;--ink:#251f19;--body:#3b332b;--meta:#635245;--accent:#0b5d94;--hair:#e7ddcd;--hair-strong:color-mix(in oklab,var(--ink) 35%,var(--background));--tint:#f4eee2;--mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;--ok:#3f7a4f;--cool:#2f699c;--alert:#9d3b22;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-48:48px;--space-56:56px;--gap-bind:var(--space-12);--gap-prose:18px;--gap-block:var(--space-32);--gap-section:var(--space-48);--gap-region:var(--space-56);--measure:592px;--reach:144px;--wide:calc(var(--measure) + 2 * var(--reach));--gutter:22px;--pad:44px;}@media (prefers-color-scheme:dark){:root{--background:#16130e;--ink:#ece5da;--body:#d2c8ba;--meta:#ac9c88;--accent:#7fb2e5;--hair:#2e2820;--tint:#211c15;--ok:#6fae78;--cool:#6f9fce;--alert:#d98a6e;}}*{box-sizing:border-box;}html{background:var(--background);}body{margin:0;background:var(--background);color:var(--ink);font-family:Charter,'Bitstream Charter','Sitka Text',Cambria,Georgia,serif;font-size:17px;line-height:1.6;word-wrap:break-word;word-spacing:1px;}main figure,main audio,main video{margin:2.8em 0;padding:0;text-align:center;}main img{max-width:100%;height:auto;}figcaption{color:var(--meta);font-size:13px;line-height:1.6;text-align:left;}sub,sup{line-height:0;}main p{text-wrap:pretty;}ul{list-style-type:square;}li{margin:0.6em 0;}small{font-size:80%;}q{font-style:italic;}body::before{content:'';display:block;height:3px;background:var(--accent);}::selection{background:color-mix(in oklab,var(--accent) 22%,var(--background));}a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--accent) 45%,transparent);text-underline-offset:3px;text-decoration-thickness:1px;}a:hover{color:var(--accent);text-decoration-color:var(--accent);}.masthead a,.post-list .title a{color:inherit;}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:1px;}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}.page{max-width:calc(var(--measure) + 2 * var(--pad));margin:0 auto;padding:var(--space-48) var(--pad) var(--space-56);min-height:100svh;display:flex;flex-direction:column;}.page > main{flex:1 0 auto;}.masthead{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-16);padding-bottom:var(--space-16);border-bottom:1px solid var(--hair);margin-bottom:var(--gap-section);}.masthead .site-name{font-size:23px;font-weight:700;letter-spacing:-0.01em;margin:0;}.masthead .site-name a{text-decoration:none;}.masthead nav{display:flex;gap:var(--space-16);font-size:15px;}.masthead nav a{text-decoration:none;color:var(--meta);}.masthead nav a:hover{color:var(--accent);}.breadcrumb{margin:0 0 var(--space-16);font-family:var(--mono);font-size:13px;letter-spacing:0.04em;}.breadcrumb a{color:var(--meta);text-decoration:none;}.breadcrumb a:hover{color:var(--accent);}.page-title{font-size:40px;font-weight:700;letter-spacing:-0.02em;line-height:1.2;margin:0 0 var(--space-16);text-wrap:balance;}.intro{margin:0 0 var(--gap-block);color:var(--body);text-wrap:pretty;}.summary{font-size:20px;line-height:1.45;color:color-mix(in oklab,var(--body) 78%,var(--meta));margin:0 0 var(--gap-bind);text-wrap:pretty;}.topic-chart{width:min(var(--measure),100%);margin-top:var(--space-24);margin-bottom:var(--gap-block);}.topic-years{display:flex;align-items:flex-end;gap:var(--space-4);height:42px;border-bottom:1px solid var(--hair);}.topic-years a,.topic-years .nil{flex:1 1 0;}.topic-years a{background:color-mix(in oklab,var(--accent) 44%,var(--background));}.topic-years a:hover,.topic-years a:focus-visible{background:var(--accent);}.topic-years .nil{height:2px;background:var(--hair);}.topic-axis{display:flex;justify-content:space-between;gap:var(--space-16);font-family:var(--mono);font-size:11px;letter-spacing:0.04em;color:var(--meta);margin-top:var(--space-4);}.subscribe-band{background:var(--tint);border-top:1px solid var(--hair);padding:var(--space-24);margin-top:var(--gap-block);margin-bottom:var(--space-4);display:grid;gap:var(--space-16);}.subscribe-band .ask{margin:0;font-size:15px;line-height:1.5;color:var(--body);max-width:520px;text-wrap:pretty;}.subscribe-band form{display:flex;gap:var(--space-12);align-items:center;}.subscribe-band input[type="email"]{width:280px;font-family:var(--mono);font-size:13px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--meta);padding:var(--space-8) 2px;outline:none;}.subscribe-band input[type="email"]::placeholder{color:var(--meta);opacity:.75;}.subscribe-band input[type="email"]:focus{border-bottom-color:var(--accent);}.subscribe-band button{font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--background);background:var(--accent);border:0;padding:var(--space-8) var(--space-16);cursor:pointer;}.subscribe-band button:hover{filter:brightness(0.92);}.strip-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:var(--gap-section);margin-bottom:var(--gap-prose);padding-bottom:var(--space-8);border-bottom:1px solid var(--hair);}.strip-head .list-marker{margin:0;}.strip-head .more{font-family:var(--mono);font-size:13px;letter-spacing:0.04em;}.strip-head .more a{text-decoration:none;color:var(--meta);}.strip-head .more a:hover{color:var(--accent);}.photo-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-12);margin:0;padding:0;list-style:none;}.photo-strip a{display:block;}.photo-strip img{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block;}.list-marker{font-family:var(--mono);font-size:12px;line-height:1.2;letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-top:var(--gap-section);margin-bottom:var(--space-4);}.post-list{list-style:none;margin:0;padding:0;}.post-list li{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-24);align-items:baseline;margin:0;padding:var(--space-12) 0;}.post-list li + li{border-top:1px solid var(--hair);}.post-list .date{font-family:var(--mono);font-size:13px;color:var(--meta);white-space:nowrap;letter-spacing:0.04em;font-variant-numeric:tabular-nums;}.strip-head + .post-list .title{font-size:18px;}.post-list .title a{text-decoration:none;}.post-list .title a:hover{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;}.featured-mark{width:6px;height:6px;margin-left:var(--space-12);}.post-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-16);margin:0 0 var(--gap-block);font-family:var(--mono);font-size:13px;color:var(--meta);letter-spacing:0.04em;}.post-meta .no{color:var(--accent);}.post-meta > :not(:last-child)::after{content:'·' / '';margin-left:var(--space-16);}.post-meta a{color:var(--meta);text-decoration:none;}.post-meta a:hover{color:var(--accent);}article > div > figure{width:min(var(--wide),calc(50vw + var(--measure) / 2 - var(--gutter)),calc(100vw - var(--pad) - var(--gutter)));margin:0 0 var(--gap-section);}article > div > figure img{display:block;width:auto;max-width:100%;max-height:min(80vh,660px);}article > div > figure figcaption{width:min(var(--measure),100%);margin-left:0;margin-right:auto;}#album figure{margin:0 0 var(--gap-region);}#album > *{scroll-margin-top:var(--space-32);}#album figure img{display:block;width:auto;margin:0 auto;max-height:min(80vh,740px);}#album figcaption{width:min(var(--measure),100%);margin:var(--space-16) auto 0;font-size:15px;color:var(--body);text-wrap:pretty;}.disclosure summary{font-family:var(--mono);font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--meta);padding:var(--space-12) 0;cursor:pointer;list-style:none;}.disclosure summary::-webkit-details-marker{display:none;}.disclosure summary::before{content:'+ ' / '';color:var(--accent);}.disclosure[open] summary::before{content:'− ' / '';}.disclosure summary:hover{color:var(--accent);}details.toc{margin:0 0 var(--space-24);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}details.toc ol{margin:0;padding:2px 0 var(--space-16) 2px;list-style:none;}details.toc li{padding:var(--space-4) 0;font-size:15px;}details.toc li a{text-decoration:none;}.body p{margin:0 0 var(--gap-prose);color:var(--body);text-wrap:pretty;}.body ul,.body ol{margin:0 0 var(--gap-prose);padding-left:var(--space-24);color:var(--body);}.body li{margin:var(--space-8) 0;text-wrap:pretty;}.body li ul,.body li ol{margin:var(--space-8) 0 0;}.body li::marker{color:var(--meta);}h2{margin:var(--gap-block) 0 var(--gap-prose);}h3{margin:var(--space-24) 0 var(--gap-prose);}h4{margin:var(--space-24) 0 var(--gap-prose);}.body :is(h2,h3,h4,h5,h6){font-weight:700;position:relative;color:var(--ink);scroll-margin-top:5em;}.body h2{font-size:21px;line-height:1.2;text-wrap:balance;}.body h3{font-size:18px;}.body h4{font-size:16px;font-weight:700;color:var(--ink);}.body a.anchor{position:absolute;left:-22px;top:0;text-decoration:none;color:var(--meta);opacity:0;font-weight:400;}.body :is(h2,h3,h4,h5,h6):hover a.anchor{opacity:.7;}.body a.anchor:hover,.body a.anchor:focus{color:var(--accent);opacity:1;}.body pre{background:var(--tint);border:1px solid var(--hair);padding:var(--space-16);margin:0 0 var(--gap-prose);overflow-x:auto;font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--body);}.body pre[data-lang]::before{content:attr(data-lang);display:block;margin:-16px -16px var(--space-16);padding:var(--space-8) var(--space-16);border-bottom:1px solid var(--hair);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);}:not(pre) > code{padding:0.2em 0.4em;font-size:0.85em;font-family:var(--mono);background:var(--tint);border-radius:3px;}.kicker{font-family:var(--mono);font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--space-12);}.kicker .mark{width:0.6em;height:0.6em;margin-right:var(--space-12);}.kicker .mark,.featured-mark{display:inline-block;background:var(--accent);vertical-align:middle;transform:translateY(calc((1ex - 1cap) / 2)) rotate(45deg);}.post-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4) var(--space-24);margin:var(--space-32) 0 0;padding-top:var(--space-16);border-top:1px solid var(--hair);font-size:14px;line-height:1.4;color:var(--meta);}.post-footer ul{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none;}.post-footer li:not(:last-child)::after{content:'·' / '';margin:0 0.45em;color:var(--meta);}.post-footer a{color:var(--body);text-decoration:none;}.post-footer a:hover{color:var(--accent);}.post-footer a:not(.external){text-decoration:underline;text-decoration-color:var(--hair-strong);text-underline-offset:2px;}.post-footer a:not(.external):hover{text-decoration-color:var(--accent);}.post-footer a.external::after{content:' ↗' / '';font-size:0.85em;color:var(--accent);}.keep-reading{margin:var(--space-48) 0 0;}.keep-reading h2{margin:0 0 var(--space-12);font-family:var(--mono);font-size:11px;font-weight:700;line-height:1.2;letter-spacing:0.08em;text-transform:uppercase;color:var(--accent);}.keep-reading ul{list-style:none;margin:0;padding:0;}.keep-reading li{padding:18px 0;border-top:1px solid var(--hair);}.keep-reading li:last-child{border-bottom:1px solid var(--hair);}.keep-reading li > a{font-size:20px;font-weight:700;line-height:1.25;letter-spacing:-0.015em;color:var(--ink);text-decoration:none;}.keep-reading li > a:hover{color:var(--accent);}.keep-reading .summary{margin:var(--space-4) 0 0;font-size:15px;line-height:1.5;max-width:46em;}aside.note,section.note{background:var(--tint);border:1px solid var(--hair);padding:var(--space-16) var(--space-24);margin:0 0 var(--gap-block);font-size:15px;line-height:1.55;color:var(--body);}aside.note .note-label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-8);}aside.note > :first-child,section.note > :first-child{margin-top:0;}aside.note > :last-child,section.note > :last-child{margin-bottom:0;}blockquote{margin:0 0 var(--gap-prose);padding:2px 0 2px 20px;border-left:2px solid var(--accent);font-style:italic;}.body blockquote p{margin-bottom:var(--space-8);}blockquote footer{font-family:var(--mono);font-size:12px;letter-spacing:0.04em;color:var(--meta);}.body .pullquote{margin:40px 0 36px;padding-left:1em;font-size:23px;line-height:1.4;letter-spacing:-0.01em;font-style:normal;color:var(--ink);text-wrap:balance;}.pullquote::before{content:'';display:block;width:56px;height:2px;background:var(--accent);margin-bottom:var(--space-8);margin-left:-1em;}table{border-collapse:collapse;width:100%;margin:0 0 var(--space-24);font-size:15px;}table th,table td{padding:var(--space-8) 0 var(--space-8) var(--space-32);text-align:right;vertical-align:top;border-bottom:1px solid var(--hair);color:var(--body);font-weight:400;font-variant-numeric:tabular-nums;}table th:first-child,table td:first-child{padding-left:0;text-align:left;}table tr:first-child th{font-family:var(--mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--meta);font-weight:600;border-bottom:1px solid var(--hair-strong);}table tr:hover th,table tr:hover td{background:var(--tint);}.large{overflow-x:auto;}.side-by-side{display:flex;flex-direction:column;justify-content:space-between;}.side-by-side > div{flex:1;}.site-foot{margin-top:var(--gap-region);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--hair);padding-top:var(--space-16);font-size:13px;}.site-foot a{text-decoration:none;color:var(--meta);}.site-foot a:hover{color:var(--accent);}.site-foot .vitals{font-family:var(--mono);font-size:12px;color:var(--meta);}.resume li{clear:both;}.resume .title{font-weight:bold;}.resume .location,.resume .date,.resume .authors{font-style:italic;}.resume a[href$=".pdf"]::after{content:" (PDF)";}.resume a[href$=".pdf"][data-size]::after{content:" (PDF, " attr(data-size) ")";}.messages{padding:0.5em;}.messages--status{background-color:#e8f5e1;color:#325e1c;}.messages--warning{background-color:#fdf4e1;color:#734c00;}.messages--error{background-color:#efd1ca;color:#a51b00;}@media (prefers-color-scheme:dark){.messages--status{background-color:#1a2914;color:#9cc78f;}.messages--warning{background-color:#2a2410;color:#d9bd72;}.messages--error{background-color:#2e1611;color:#f0a48e;}}label{display:block;font-weight:bold;}label.option{display:inline;font-weight:normal;}.form-item{margin-bottom:0.6em;}#topics h3{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:0.08em;color:var(--accent);margin:var(--gap-block) 0 var(--gap-bind);}body.headers-domain .dialog-off-canvas-main-canvas{min-height:100vh;display:flex;flex-direction:column;}body.headers-domain main{flex:1;}@media screen and (min-width:960px){.large,.side-by-side,#album figure{position:relative;width:var(--wide);left:calc(-1 * var(--reach));}.side-by-side{flex-direction:row;justify-content:center;gap:1.2em;}}@media (max-width:560px){:root{--pad:22px;}body{font-size:18px;}.page{padding:var(--space-24) var(--pad) var(--space-48);}.topic-years{gap:2px;}.masthead{flex-wrap:wrap;row-gap:var(--space-12);margin-bottom:var(--gap-block);}.masthead .site-name{width:100%;}.masthead nav{flex-wrap:wrap;gap:var(--space-12) var(--space-16);}.page-title{font-size:28px;}.post-list li{gap:var(--space-16);}.pullquote{font-size:20px;}.photo-strip{grid-template-columns:repeat(2,1fr);}.subscribe-band input[type="email"]{flex:1;width:auto;}.body a.anchor{display:none;}}@media print{@page{margin:1.8cm;}body::before{display:none;}#tabs,#message,footer,.masthead nav,.subscribe-band,details.toc,.photo-strip,.strip-head,figure:has(iframe,video,audio),video,audio{display:none;}body{background:#fff;color:#000;font-size:12pt;line-height:1.45;}.body p{color:#000;}.page{max-width:none;padding:0;min-height:0;}main{padding:0;}a{text-decoration:none;color:inherit;}p,li{orphans:3;widows:3;}h2,h3,h4,h5{break-after:avoid;}figure,img,pre,blockquote,table,tr,.note,.pullquote{break-inside:avoid;}pre{overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;}th{background:transparent;color:inherit;border-bottom:1.5px solid;}table{font-size:0.9em;}th,td{overflow-wrap:anywhere;}}
