@layer base{:root{color-scheme:light dark;--bg:light-dark(#f5f4ec,#171a14);--text:light-dark(#1f231b,#e3e4d9);--muted:light-dark(#585e4e,#a4a995);--link:light-dark(#3e5024,#b3c287);--rule:light-dark(#d5d5c7,#30352a);--contour:light-dark(#1f231b0c,#e3e4d90d);--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--column:36rem;--rail:11rem;--rail-gap:3rem;--page:calc(var(--rail) + var(--rail-gap) + var(--column));--into-rail:calc(-1 * (var(--rail) + var(--rail-gap)));--dots:radial-gradient(circle, var(--muted) .9px, transparent 1.3px)}*,:before,:after{box-sizing:border-box}body{isolation:isolate;background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-body);margin:0;font-size:1.25rem;line-height:1.58;position:relative;&:before{content:"";z-index:-1;background-color:var(--contour);pointer-events:none;position:absolute;inset:0;mask-image:url(/_astro/contours.Br9IZARZ.svg);mask-size:1200px 1200px;mask-repeat:repeat;@media (prefers-contrast:more),(forced-colors:active){display:none}}}html{scrollbar-gutter:stable;@media (prefers-reduced-motion:no-preference){scroll-behavior:smooth}}[id]{scroll-margin-top:1.5rem}:target>h2,h2:target,h3:target{@media (prefers-reduced-motion:no-preference){animation:1.6s ease-out target-flash}}@keyframes target-flash{0%{background-color:color-mix(in srgb, var(--link) 18%, transparent)}}p{text-wrap:pretty;margin:0 0 1em}::selection{background:var(--link);color:var(--bg)}h1,h2,h3{font-family:var(--font-heading);text-wrap:balance}h1{margin:0 0 .5em;font-size:2.4em;font-weight:500;line-height:1.1}h2{margin:0 0 .9em;font-size:1.45em;font-weight:500;line-height:1.25}h3{margin:0 0 .25em;font-size:1.2em;font-weight:700;line-height:1.25}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px;&:hover{text-decoration-thickness:2px}@media (prefers-reduced-motion:no-preference){transition:text-decoration-thickness .15s ease-out}&:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:2px}}code,pre{font-family:var(--font-mono);font-size:.9em}}@layer layout{body{padding-block:28px 40px;padding-inline:clamp(18px,6vw,64px);container:page/inline-size}body>header,body>main,body>footer{max-width:var(--column);margin-inline:auto}body>main:focus{outline:none}body>header,main section,body>footer,.case-header,.case-nav{background-image:var(--dots);background-repeat:repeat-x;background-size:7px 6px}body>header{background-position:0 100%;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:2.2em;padding-bottom:20px;font-size:1rem;display:flex;& nav a{color:var(--text);text-decoration:none;&:hover{color:var(--link)}&[aria-current=page]{text-decoration:underline}}}body>header nav ul,body>footer nav ul{flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;list-style:none;display:flex}.name{color:var(--text);font-family:var(--font-heading);font-size:1.15rem;font-weight:700;text-decoration:none}main section{background-position:0 0;margin-top:2.4em;padding-top:1.3em}body>footer{background-position:0 0;margin-top:2.4em;padding-top:1.3em;font-size:.9em;& nav ul{gap:4px 22px}}@container page (width>=50rem){body>header,body>main,body>footer{max-width:var(--page)}main{grid-template-columns:var(--rail) minmax(0, 1fr);column-gap:var(--rail-gap);display:grid;&>*{grid-column:2}}main>section,main>.resume,main>.resume>section{grid-column:1/-1;grid-template-columns:subgrid;display:grid}main>.resume>*{grid-column:2}main>section,.resume>section{&>h2{grid-area:1/1/span 50;align-self:start;margin:.15em 0 0;font-size:1.15em;position:sticky;top:1.5rem}&>:not(h2){grid-column:2}}body>footer{grid-template-columns:var(--rail) minmax(0, 1fr);column-gap:var(--rail-gap);display:grid;& nav{grid-column:2}}}@media (forced-colors:active){body>header,.case-header{border-bottom:1px solid canvastext}main section,body>footer,.case-nav{border-top:1px solid canvastext}}}@layer components{.skip{background:var(--bg);border:1px solid var(--link);padding:.4rem .8rem;font-size:1rem;position:absolute;top:.5rem;left:1rem;transform:translateY(-300%);&:focus{transform:none}}.facts{color:var(--muted);letter-spacing:.01em;margin:0 0 .55em;font-size:.82em}.entry{margin-bottom:2.4em;&:last-child,&>:last-child{margin-bottom:0}}.entry-case-study h3{font-size:1.3em}.entry-short{margin-bottom:1.7em;& h3{font-size:1.05em}}dl.facts{color:var(--text);letter-spacing:0;grid-template-columns:max-content minmax(0,1fr);gap:.15em 1.25em;margin:0 0 1.2em;font-size:.9em;display:grid;& div{display:contents}& dt{color:var(--muted)}& dd{margin:0}}.case-header{background-position:0 100%;margin-bottom:1.6em;padding-bottom:1.4em;& .outcome{margin-bottom:0}}main>article>h2{margin-top:1.6em}.case-nav{background-position:0 0;margin-top:2.4em;padding-top:1.3em;& ul{flex-wrap:wrap;gap:.5em 2em;margin:0;padding:0;list-style:none;display:flex}}@container page (width>=50rem){.case-header{grid-template-columns:var(--rail) minmax(0, 1fr);column-gap:var(--rail-gap);margin-left:var(--into-rail);grid-template-rows:auto auto 1fr;display:grid;&>*{grid-column:2}&>dl.facts{grid-area:1/1/-1;grid-template-columns:max-content minmax(0,1fr);align-self:start;gap:.35em .75em;margin:.9em 0 0;font-size:.82em}}}.resume{& header p{margin-bottom:.3em}& .contact{flex-wrap:wrap;gap:0 1.1em;margin:0 0 1em;padding:0;font-size:.9em;list-style:none;display:flex}& .pdf-link{font-size:.9em}& section{margin-top:1.8em;padding-top:1.1em}& h2{margin-bottom:.6em;font-size:1.25em}& h3{font-size:1.05em}& article{margin-bottom:1.4em;&:last-child{margin-bottom:0}}& ul:not(.contact){margin:0;padding-left:1.1em}& li{margin-bottom:.35em}& dl{margin:0}& dt{font-weight:700}& dd{margin:0 0 .6em}@container page (width>=50rem){&>section>h2{margin:.15em 0 0;font-size:1.15em}}}}@layer print{@media print{:root{color-scheme:light;--bg:#fff;--text:#000;--muted:#444;--link:#000;--rule:#999}body{min-height:0;padding:0;font-size:11pt;line-height:1.4;&:before{display:none}}body>header,body>footer,.skip,.pdf-link,.case-nav{display:none}body>main{max-width:none;&>:not(.resume){max-width:6in}}main section,.case-header{background:0 0}main section{border-top:.5pt solid var(--rule);margin-top:1.4em;padding-top:.8em}h1{font-size:2em}h2,h3{break-after:avoid}.entry,.flow li,.figure{break-inside:avoid}main a[href^=http]:after{content:" (" attr(href) ")";word-break:break-all;font-size:.85em}.resume{font-size:1em;line-height:1.36;& a{color:inherit;text-decoration:none;&[href^=http]:after{content:none}}& h1{margin-bottom:.15em;font-size:1.9em}& header p{margin-bottom:.1em}& .contact{gap:0 1.4em;margin-bottom:0;font-size:1em}& section{margin-top:1em;padding-top:.6em;padding-left:1.45in}& section>h2{float:left;width:1.15in;margin:0 0 0 -1.45in;font-size:1.15em}& h3{font-size:1em}& .facts{margin-bottom:.25em}& article{break-inside:avoid;margin-bottom:.7em}& li{margin-bottom:.15em}& dl>div{margin-bottom:.2em}& dt,& dd{margin:0;display:inline}& dt:after{content:": "}}}}@page{size:letter;margin:.55in .6in}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
