:root{--font-sans:system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;--font-mono:Consolas, Monaco, "Courier New", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:clamp(1.125rem, 1.083rem + .208vw, 1.25rem);--text-xl:clamp(1.25rem, 1.167rem + .417vw, 1.5rem);--text-2xl:clamp(1.5rem, 1.333rem + .833vw, 2rem);--text-3xl:clamp(1.875rem, 1.667rem + 1.042vw, 2.5rem);--space-1:.5rem;--space-2:1rem;--space-3:2rem;--space-4:4rem;--space-5:8rem;--primary:#0b779f;--primary-light:#2fa6d2;--primary-dark:#0a6080;--secondary:#f4bb1a;--secondary-light:#fcd34d;--secondary-dark:#b8860b;--accent:#e62e6b;--accent-light:#f4759f;--accent-dark:#b01550;--footnote-ref:var(--accent-dark);--white:#f5f5f5;--off-white:#efefef;--light-gray:#cecece;--gray:#616161;--dark-gray:#212121;--black:#151513;--success:#00c807;--error:#ff003e;--warning:#fc0;--container-narrow:45rem;--container-default:60rem;--container-wide:80rem;--border-radius:.25rem;--button-radius:1.5625rem;--line-height:1.5}[data-theme=dark]{color-scheme:dark;--primary:#34b0e0;--primary-light:#5cc8f5;--primary-dark:#0e80ab;--secondary:#f7c843;--secondary-light:#ffe07a;--secondary-dark:#d39e1a;--accent:#ff5b8f;--accent-light:#ffb3ce;--accent-dark:#e62e6b;--footnote-ref:var(--accent);--white:#151513;--off-white:#212121;--light-gray:#3a3a3a;--gray:#a0a0a0;--dark-gray:#cecece;--black:#f5f5f5;--success:#00ff0a;--error:#ff4a6e;--warning:gold;& [data-accent]{accent-color:var(--accent)}}[data-accent]{accent-color:var(--accent)}[data-theme=light]{color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background-color:var(--white);color:var(--black);color-scheme:light;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--line-height);scroll-behavior:smooth;tab-size:4}body{min-height:100vh;padding:var(--space-3) var(--space-2);overflow-x:hidden}::selection{background-color:var(--primary);color:var(--white)}h1,h2,h3,h4,h5,h6{margin-bottom:var(--space-3);font-weight:700;line-height:1.2}h1{font-size:var(--text-3xl);letter-spacing:-.05rem}h2{font-size:var(--text-2xl);letter-spacing:-.03rem}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5,h6{font-size:var(--text-base)}p{margin-bottom:var(--space-3)}strong,b{font-weight:700}em,i{font-style:italic}small{font-size:var(--text-sm)}del,s{text-decoration:line-through}ins,u{text-decoration:underline}dfn{font-style:italic}abbr[title]{cursor:help;text-underline-offset:.15em;text-decoration:underline dotted}sub,sup{font-size:var(--text-xs);vertical-align:baseline;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}mark{background-color:var(--accent);border-radius:var(--border-radius);color:#000;padding:.125rem .25rem}a{color:var(--primary);text-decoration:underline;&:hover{color:var(--primary-dark)}&[target=_blank]:after{content:" ↗"}}ul,ol{margin-bottom:var(--space-3);padding-left:var(--space-3)}ul{list-style:outside}ol{list-style:decimal}li{margin-bottom:var(--space-1)}ul.contains-task-list,ul:has(>li>input[type=checkbox]){padding-left:0;list-style:none}.task-list-item,li:has(>input[type=checkbox]:first-child){list-style:none}li>input[type=checkbox]:first-child{margin-right:var(--space-1)}dl{gap:var(--space-1) var(--space-3);margin-bottom:var(--space-3);grid-template-columns:max-content auto;display:grid}dt{font-weight:700}dd{margin:0}blockquote{border-left:var(--space-1) solid var(--primary);color:var(--gray);font-size:var(--text-lg);margin:var(--space-3) 0;padding-left:var(--space-3);font-style:italic;& cite{color:var(--gray);font-size:var(--text-sm);margin-top:var(--space-2);display:block;& :is(em,strong,i,b){color:var(--gray)}&:before{content:"— "}}}cite{color:var(--gray);font-style:italic}.footnote-ref a,a[data-footnote-ref],sup[id^=fnref] a{color:var(--footnote-ref);padding:0 .15em;font-weight:600;text-decoration:none;&:hover,&:focus-visible{text-decoration:underline}}.footnotes,[data-footnotes],section[role=doc-endnotes]{border-top:2px solid var(--light-gray);color:var(--gray);font-size:var(--text-sm);margin-top:var(--space-4);padding-top:var(--space-2);& hr{display:none}& :is(h1,h2,h3,h4,h5,h6),& [id=footnote-label]{font-size:var(--text-base);margin-bottom:var(--space-2)}& ol{margin-bottom:0}& li,& p{margin-bottom:var(--space-1)}& li>p:last-child{margin-bottom:0}& li:target{background-color:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:var(--border-radius);transition:background-color .3s}}.footnote-backref,a[data-footnote-backref],.footnotes a[role=doc-backlink]{color:var(--footnote-ref);margin-left:var(--space-1);text-decoration:none;&:hover,&:focus-visible{text-decoration:underline}}code,kbd,samp{background-color:var(--off-white);border:1px solid var(--light-gray);border-radius:var(--border-radius);font-family:var(--font-mono);font-size:var(--text-sm);padding:.125rem .375rem}kbd{box-shadow:0 2px 0 var(--light-gray)}pre{background-color:var(--dark-gray);border-radius:var(--border-radius);color:var(--white);font-family:var(--font-mono);font-size:var(--text-sm);margin-bottom:var(--space-3);padding:var(--space-2);overflow-x:auto;& code{color:inherit;background:0 0;border:none;padding:0}}hr{border:none;border-top:2px solid var(--primary);margin:var(--space-4) auto;max-width:15%}main{max-width:var(--container-default);margin:0 auto}section,article,aside{margin-bottom:var(--space-4)}header,footer{margin-bottom:var(--space-3)}[data-container]{max-width:var(--container-default);margin-left:auto;margin-right:auto}[data-container=narrow]{max-width:var(--container-narrow)}[data-align=center]{margin-left:auto;margin-right:auto;display:block}[data-align=left]{float:left;margin:0 var(--space-3) var(--space-2) 0;max-width:50%}[data-align=right]{float:right;margin:0 0 var(--space-2) var(--space-3);max-width:50%}[data-align=wide]{margin-bottom:var(--space-2);max-width:var(--container-wide);width:100vw;position:relative;left:50%;transform:translate(-50%)}[data-align=full]{margin-bottom:var(--space-2);width:100vw;max-width:100vw;position:relative;left:50%;transform:translate(-50%)}img,video,canvas,svg{border-radius:var(--border-radius);max-width:100%;height:auto;display:block}figure{margin:var(--space-3) 0}figcaption{color:var(--gray);font-size:var(--text-sm);margin:var(--space-1) auto 0;max-width:var(--container-default)}[data-embed]{border-radius:var(--border-radius);margin:var(--space-3) 0;padding-top:56.25%;position:relative;overflow:hidden;& iframe,& video,& embed,& object{border:0;width:100%;height:100%;position:absolute;top:0;left:0}}[data-gallery]{gap:var(--space-2);margin:var(--space-3) 0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid;& img,& video{aspect-ratio:1;object-fit:cover;width:100%;height:100%;margin:0}}nav{margin-bottom:var(--space-3);& ul{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}& li{margin:0}& a{border-radius:var(--button-radius);padding:var(--space-1) var(--space-2);text-decoration:none;display:block;&:hover{background-color:var(--off-white)}&[aria-current=page]{background-color:var(--primary);color:var(--white);pointer-events:none;font-weight:600}}&[data-scroll=horizontal]{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto;&::-webkit-scrollbar{display:none}& ul{flex-wrap:nowrap;min-width:min-content}& a{white-space:nowrap}}}table{border-collapse:collapse;font-size:var(--text-sm);margin-bottom:var(--space-3);width:100%;min-width:500px}th,td{border:1px solid var(--light-gray);padding:var(--space-2);text-align:left}th{background-color:var(--off-white);font-weight:700}tbody tr:hover{background-color:var(--off-white)}[data-table]{margin-bottom:var(--space-3);overflow-x:auto}form{margin-bottom:var(--space-3);&[data-inline-form]{align-items:flex-end;gap:var(--space-1);display:flex;& button,& input{margin:0;line-height:1}}}fieldset{border:2px solid var(--primary);border-radius:var(--border-radius);margin-bottom:var(--space-3);padding:var(--space-3);& legend{color:var(--primary);padding:0 var(--space-1);font-weight:700}}label{margin-bottom:var(--space-1);font-weight:600;display:block}input,textarea,select{background-color:var(--white);border:1px solid var(--primary);border-radius:var(--border-radius);font:inherit;margin-bottom:var(--space-2);padding:var(--space-1);width:100%;&:focus{box-shadow:0 0 0 2px var(--primary-light);outline:none}&:disabled{background-color:var(--off-white);color:var(--gray);cursor:not-allowed;opacity:.6}}textarea{resize:vertical;min-height:10rem}select{appearance:none;color:var(--black);cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23616161' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2rem}input[type=checkbox],input[type=radio]{appearance:auto;cursor:pointer;height:1.125rem;margin:0 var(--space-1) 0 0;background:0 0;border:none;width:1.125rem;padding:0;&:focus{box-shadow:0 0 0 2px var(--primary-light)}}input[type=file]::file-selector-button{background-color:var(--primary);border-radius:var(--button-radius);color:var(--white);cursor:pointer;margin-right:var(--space-2);padding:var(--space-1) var(--space-2);border:none;font-weight:600;&:hover{background-color:var(--primary-dark)}}[data-button-group]{gap:var(--space-2);flex-flow:wrap;display:flex}button,input[type=submit],input[type=button],input[type=reset],[data-button]{border-radius:var(--button-radius);cursor:pointer;font-family:inherit;font-size:var(--text-base);background-color:var(--primary);border:2px solid var(--primary);color:var(--white);padding:var(--space-1) var(--space-2);font-weight:600;line-height:1;text-decoration:none;transition:all .15s;display:inline-block;&:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}&:disabled{cursor:not-allowed;opacity:.6;pointer-events:none}&[data-variant=secondary]{border:2px solid var(--primary);color:var(--primary);background-color:#0000;&:hover{background-color:var(--primary);color:var(--white)}&:disabled{color:var(--primary);background-color:#0000}}&[data-variant=tertiary]{color:var(--primary);background-color:#0000;border:2px solid #0000;&:hover{background-color:var(--off-white);border-color:var(--light-gray);color:var(--light-gray)}&:disabled{color:var(--primary);background-color:#0000}}&[data-variant=link]{color:var(--primary);background-color:#0000;border:none;padding:0;text-decoration:underline;&:hover{color:var(--primary-dark)}&:disabled{color:var(--primary);background-color:#0000}}&[data-destructive]{background-color:var(--error);border-color:var(--error);color:var(--white);&:hover{background-color:var(--accent-dark);border-color:var(--accent-dark)}&[data-variant=secondary]{border-color:var(--error);color:var(--error);background-color:#0000;&:hover{background-color:var(--error);color:var(--white)}}&[data-variant=tertiary]{color:var(--accent);background-color:#0000;border-color:#0000;&:hover{border-color:var(--accent-light);background-color:#ee2d6d1a}}&[data-variant=link]{color:var(--accent);background-color:#0000;border:none;&:hover{color:var(--accent-dark)}}}}details{border:1px solid var(--light-gray);border-radius:var(--border-radius);margin-bottom:var(--space-2);padding:var(--space-2);&[open]{border-color:var(--primary)}& summary{cursor:pointer;user-select:none;font-weight:700;&:hover{color:var(--primary)}}&[open] summary{margin-bottom:var(--space-2)}}dialog{background-color:var(--white);border-radius:var(--border-radius);color:var(--black);max-width:90vw;padding:var(--space-3);border:none;margin:auto;box-shadow:0 20px 25px #00000026;&::backdrop{background-color:#00000080}&>header{justify-content:space-between;align-items:center;display:flex;& h1,& h2,& h3,& h4,& h5,& h6{margin:0}}&>footer{margin:var(--space-3) 0 0 0}}progress{appearance:none;background-color:var(--off-white);border:1px solid var(--light-gray);border-radius:var(--border-radius);height:1rem;margin-bottom:var(--space-2);width:100%;overflow:hidden;&::-webkit-progress-bar{background-color:var(--off-white);border-radius:var(--border-radius)}&::-webkit-progress-value{background-color:var(--primary);border-radius:var(--border-radius);transition:width .3s}&::-moz-progress-bar{background-color:var(--primary);border-radius:var(--border-radius)}}meter{appearance:none;background-color:var(--off-white);border:1px solid var(--light-gray);border-radius:var(--border-radius);height:1rem;margin-bottom:var(--space-2);width:100%;overflow:hidden;&::-webkit-meter-bar{background-color:var(--off-white);border-radius:var(--border-radius)}&::-webkit-meter-optimum-value{background-color:var(--success);border-radius:var(--border-radius)}&::-webkit-meter-suboptimum-value{background-color:var(--warning);border-radius:var(--border-radius)}&::-webkit-meter-even-less-good-value{background-color:var(--error);border-radius:var(--border-radius)}&::-moz-meter-bar{background-color:var(--success);border-radius:var(--border-radius)}&:-moz-meter-optimum::-moz-meter-bar{background-color:var(--success)}&:-moz-meter-sub-optimum::-moz-meter-bar{background-color:var(--warning)}&:-moz-meter-sub-sub-optimum::-moz-meter-bar{background-color:var(--error)}}[hidden]{display:none!important}[data-visually-hidden]{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}[data-skip-link]{background-color:var(--primary);border-radius:var(--button-radius);color:var(--white);left:var(--space-2);padding:var(--space-1) var(--space-2);z-index:1000;font-weight:600;text-decoration:none;position:absolute;top:-100%;&:focus{top:var(--space-2)}}[data-text=center]{text-align:center}[data-text=left]{text-align:left}[data-text=right]{text-align:right}[data-loading]{cursor:wait;opacity:.6}[data-error]{border-color:var(--error);color:var(--error)}[data-success]{border-color:var(--success);color:var(--success)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{*,:before,:after{box-shadow:none!important;color:#000!important;text-shadow:none!important;background:0 0!important}html{background:#fff;font-size:12pt}body{padding:0}main,[data-container],[data-align]{float:none;width:auto;max-width:none;left:auto;transform:none}nav,[data-skip-link]{display:none!important}pre,code,kbd,samp{border:1px solid #ccc!important}pre{white-space:pre-wrap;word-wrap:break-word}a{text-decoration:underline}a[href^=http]:after,a[target=_blank]:after{content:" (" attr(href) ")";word-break:break-all;font-size:.9em}mark{text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}h1,h2,h3,h4,h5,h6{break-after:avoid;page-break-after:avoid}blockquote,figure,li,pre,table{break-inside:avoid;page-break-inside:avoid}img{max-width:100%!important}.footnotes,[data-footnotes],section[role=doc-endnotes]{border-top:1px solid #000}}:root{--ink-cyan:#009fe3;--ink-magenta:#e6177a;--ink-yellow:#ffc400;--display:clamp(2.5rem, 1.2rem + 6.5vw, 6rem);--radius-img:2.25rem;--hero-r:1.5rem;--ghost-c:var(--ink-cyan);--ghost-m:var(--ink-magenta);--ghost-y:var(--ink-yellow);--primary:#cc1f5b;--primary-light:#e6177a;--primary-dark:#a3174b;--secondary:#009fe3;--secondary-light:#5cc8f5;--secondary-dark:#0a6080;--accent:#e6177a;--accent-light:#f4759f;--accent-dark:#b01550;--plate-c:#009fe3;--plate-m:#e6177a;--plate-y:#ffc400}[data-theme=dark]{--primary:#ff5b8f;--primary-light:#ffb3ce;--primary-dark:#e62e6b;--secondary:#34b0e0;--secondary-light:#5cc8f5;--secondary-dark:#0e80ab}.offset{text-shadow:-.06em 0 0 var(--ghost-c), .06em 0 0 var(--ghost-m), 0 .06em 0 var(--ghost-y)}[data-ink=c]{--ink:var(--plate-c)}[data-ink=m]{--ink:var(--plate-m)}[data-ink=y]{--ink:var(--plate-y)}.project-status,.work-meta,.contact-label,.post-kind{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.project-status,.work-meta,.contact-label{color:var(--gray)}body{padding-left:0;padding-right:0}#main:focus,.facet:focus{outline:none}::view-transition-old(root),::view-transition-new(root){animation:none}.site-header,.site-footer,main>section{padding-inline:var(--space-2)}.site-header{align-items:baseline;gap:var(--space-2);margin:0 auto var(--space-3);max-width:var(--container-default);flex-wrap:wrap;justify-content:space-between;display:flex}.site-header nav{margin-bottom:0}.site-header nav ul{gap:var(--space-1)}.brand{color:var(--black);font-size:var(--text-xl);letter-spacing:-.03rem;font-weight:700;text-decoration:none}.brand:after{color:var(--accent);content:".";transition:opacity .3s .6s}.brand{align-items:center;display:inline-flex;position:relative}.brand-word{transition:opacity .3s .6s}.site-header:not(.site-header--overlay) .brand:hover{color:var(--black)}.brand-sig{pointer-events:none;position:absolute;top:.5em;left:-.25em}.brand-sig svg{width:auto;max-width:none;height:1.5em;display:block;overflow:visible}.brand-sig .sig-line{fill:none;stroke:currentColor;stroke-dasharray:2300;stroke-dashoffset:2300px;stroke-linecap:round;stroke-width:25px;transition:stroke-dashoffset .65s}.brand-sig .sig-dot{fill:var(--accent);opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity .3s,transform .35s cubic-bezier(.34,1.56,.64,1);transform:scale(0)}.brand:hover .brand-word,.brand:hover:after{opacity:0;transition-delay:0s}.brand:hover .sig-line{stroke-dashoffset:0}.brand:hover .sig-dot{opacity:1;transition-delay:.45s;transform:scale(1)}@media (prefers-reduced-motion:reduce){.brand:hover .sig-line{stroke-dashoffset:0;animation:none}.brand:hover .sig-dot{opacity:1;animation:none;transform:scale(1)}}.site-header nav a,.site-footer nav a{color:var(--black);padding:var(--space-1) var(--space-1);background:0 0}.site-header nav a:hover,.site-footer nav a:hover{color:var(--accent);background:0 0}.site-header nav a[aria-current=page]{color:var(--black);background:0 0;font-weight:700}.nav-toggle{display:none}button.nav-toggle,button.nav-toggle:hover,button.nav-toggle:focus,button.nav-toggle:focus-visible,button.nav-toggle:active{background:0 0;border:0}@media (width<=48rem){.nav-toggle{color:var(--black);cursor:pointer;z-index:60;background:0 0;border:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;display:inline-flex;position:relative}.nav-bars{width:26px;height:14px;display:block;position:relative}.nav-bars:before,.nav-bars:after{content:"";background:currentColor;width:100%;height:2px;transition:transform .3s;position:absolute;left:0}.nav-bars:before{top:0}.nav-bars:after{bottom:0}.nav-toggle[aria-expanded=true] .nav-bars:before{transform:translateY(6px)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-bars:after{transform:translateY(-6px)rotate(-45deg)}.site-nav{backdrop-filter:blur(12px);background:color-mix(in srgb, var(--white) 92%, transparent);opacity:0;pointer-events:none;visibility:hidden;z-index:50;justify-content:center;align-items:center;margin:0;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.site-nav.open{opacity:1;pointer-events:auto;visibility:visible}@media (prefers-reduced-motion:no-preference){.site-nav li{transition:transform .4s cubic-bezier(.2,.8,.2,1);transform:translate(1.75rem)}.site-nav.open li{transition-delay:calc(var(--i,0) * 50ms);transform:translate(0)}}.site-nav ul{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.site-nav li{margin:0}.site-nav a,.site-header--overlay .site-nav a{font-size:var(--text-2xl);padding:var(--space-1);font-weight:700;color:var(--black)!important}.site-nav a[aria-current=page]{color:var(--accent)!important}}.index{color:var(--accent);font-size:var(--text-sm);letter-spacing:.1em;margin-bottom:var(--space-1);font-weight:700;display:block}.hero{margin:var(--space-5) auto var(--space-3);max-width:var(--container-default)}.hero h1{font-size:var(--display);letter-spacing:-.04em;margin-bottom:var(--space-3);line-height:.95}.hero .lede{font-size:var(--text-xl);max-width:var(--container-narrow);font-weight:400}:root{--slab-tilt:5deg}.slab-wrap{margin:var(--space-2) calc(-50vw + var(--space-2)) var(--space-4);max-width:none;width:calc(100vw - 2 * var(--space-2));padding:0;position:relative;left:50%}.slab{--slab-bg:#141414;border-radius:var(--hero-r);padding:calc(var(--space-4) + 5vw) 0 calc(var(--space-4) + 4vw);width:100%;position:relative;overflow:hidden}.slab:before{background:var(--slab-bg);clip-path:shape(from var(--hero-r) 5vw, line to calc(100% - var(--hero-r)) 0, arc to 100% var(--hero-r) of var(--hero-r) cw, line to 100% calc(100% - 5vw - var(--hero-r)), arc to calc(100% - var(--hero-r)) calc(100% - 5vw) of var(--hero-r) cw, line to var(--hero-r) 100%, arc to 0 calc(100% - var(--hero-r)) of var(--hero-r) cw, line to 0 calc(5vw + var(--hero-r)), arc to var(--hero-r) 5vw of var(--hero-r) cw, close);content:"";z-index:0;transition:background-color .2s;position:absolute;inset:0}[data-theme=dark] .slab{--slab-bg:#0e0e0e}.slab-inner{max-width:var(--container-default);padding:0 var(--space-2);z-index:1;margin:0 auto;position:relative}.trade{--icon-scale:.14;pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.ficon{color:var(--slab-on,#fff);height:calc(var(--vbh,100) * var(--icon-scale) * var(--iscale,1) * 1px);opacity:0;transform:translate(var(--fx,0), var(--fy,0)) rotate(-6deg);width:calc(var(--vbw,100) * var(--icon-scale) * var(--iscale,1) * 1px);transition:opacity .45s,transform .55s cubic-bezier(.2,.8,.2,1);display:block;position:absolute}.ficon svg{fill:currentColor;width:100%;height:100%;display:block}.ig .ficon:nth-child(2){transition-delay:50ms}.ig .ficon:nth-child(3){transition-delay:.1s}.ig .ficon:nth-child(4){transition-delay:.15s}.slab:has([data-ink=c]:is(:hover,:focus-within)) .ig-c .ficon,.slab:has([data-ink=m]:is(:hover,:focus-within)) .ig-m .ficon,.slab:has([data-ink=y]:is(:hover,:focus-within)) .ig-y .ficon,.slab:has([data-ink=k]:is(:hover,:focus-within)) .ig-k .ficon{opacity:.22;transform:translate(0)rotate(-6deg)}.slab-title{color:#f5f5f5;margin-bottom:var(--space-4)}.facet{color:#f5f5f5;align-items:center;column-gap:var(--space-3);padding:var(--space-3) 0;row-gap:var(--space-1);grid-template-columns:1fr;margin:0;display:grid;position:relative}.slab:has([data-ink=c]:is(:hover,:focus-within)){--slab-bg:var(--plate-c);--slab-on:#000;--num-dim:#00000052;--ghost-c:#fff}.slab:has([data-ink=m]:is(:hover,:focus-within)){--slab-bg:var(--plate-m);--slab-on:#000;--num-dim:#0000004d;--ghost-m:#fff}.slab:has([data-ink=y]:is(:hover,:focus-within)){--slab-bg:var(--plate-y);--slab-on:#000;--num-dim:#0000004d;--ghost-y:#fff}.slab:has([data-ink=k]:is(:hover,:focus-within)){--slab-bg:#000;--slab-on:#fff;--num-dim:#ffffff40}.slab:has(.facet:is(:hover,:focus-within)) :is(.slab-title,.facet-title){color:var(--slab-on)}.slab:has(.facet:is(:hover,:focus-within)) .facet-num{color:var(--num-dim);text-shadow:none}.slab:has(.facet:is(:hover,:focus-within)) .facet-body{color:color-mix(in srgb, var(--slab-on) 55%, transparent)}.slab:has(.facet:is(:hover,:focus-within)) .facet:is(:hover,:focus-within) .facet-num{color:var(--slab-on);text-shadow:-.06em 0 0 var(--ghost-c), .06em 0 0 var(--ghost-m), 0 .06em 0 var(--ghost-y)}.slab:has(.facet:is(:hover,:focus-within)) .facet:is(:hover,:focus-within) .facet-body{color:var(--slab-on)}.facet-num{color:#6e6e6e;font-variant-numeric:tabular-nums;grid-column:1;font-size:4rem;font-weight:800;line-height:.85;transition:color .18s}.facet-title{font-size:var(--text-2xl);grid-column:1;margin:0}.facet-body{color:#b8b8b8;max-width:var(--container-narrow);grid-column:1;margin:0}@media (width>=40rem){.facet{padding:var(--space-4) 0;grid-template-columns:auto 1fr}.facet-num{grid-row:1/3;font-size:clamp(3.5rem,10vw,7rem)}.facet-title{grid-area:1/2;align-self:end}.facet-body{grid-area:2/2;align-self:start}}.facet-num{transition:text-shadow .18s,color .18s}.facet-body{transition:color .18s}@media (prefers-reduced-motion:reduce){.slab,.facet,.facet-num,.facet-body,.ficon{transition:none}}.regmark{--regmark-size:26px;border:1.5px solid var(--black);background:conic-gradient(var(--ink-cyan) 0 25%, var(--ink-magenta) 0 50%, var(--ink-yellow) 0 75%, var(--black) 0);height:var(--regmark-size);width:var(--regmark-size);border-radius:50%;display:inline-block;position:relative}.regmark:before,.regmark:after{background:var(--black);content:"";position:absolute}.regmark:before{width:1.5px;top:-7px;bottom:-7px;left:50%;transform:translate(-50%)}.regmark:after{height:1.5px;top:50%;left:-7px;right:-7px;transform:translateY(-50%)}.regmark.tl,.regmark.tr,.regmark.bl,.regmark.br{position:absolute}.regmark.tl{top:-4px;left:-4px}.regmark.tr{top:-4px;right:-4px}.regmark.bl{bottom:-4px;left:-4px}.regmark.br{bottom:-4px;right:-4px}.section-lede{color:var(--gray);font-size:var(--text-lg);max-width:var(--container-narrow)}.building-head{align-items:start;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=48rem){.building-head{grid-template-columns:1fr 1fr}}.building-head h2{margin:0}.projects{gap:var(--space-3);grid-template-columns:1fr;margin:0;display:grid}@media (width>=48rem){.projects{grid-template-columns:repeat(3,1fr)}}.ink-card{border:2px solid var(--light-gray);border-radius:var(--radius-img);color:var(--black);height:100%;padding:var(--space-3);flex-direction:column;text-decoration:none;transition:background-color .3s,color .3s,border-color .3s,filter .3s,opacity .3s;display:flex}.ink-card[data-ink]{border-color:var(--ink,var(--light-gray))}.ink-card[data-ink]:hover{background:var(--ink);color:#000}.ink-card:hover :is(.project-status,.project-cta,p,.related-meta,.post-kind,.related-go,.work-meta,.contact-label,.contact-note){color:inherit}:where(.projects,.related-grid):has(.ink-card:hover) .ink-card:not(:hover){filter:grayscale();opacity:.5}@media (prefers-reduced-motion:reduce){.ink-card{transition:background-color .3s,color .3s}}.project h3{margin:var(--space-1) 0}.project p{color:var(--gray);margin-bottom:var(--space-2);flex:1}.project-cta{font-weight:600}.project-cta:after{content:" →"}.building-foot{margin-top:var(--space-3)}.contact-grid{gap:var(--space-3);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}@media (width>=40rem){.contact-grid{grid-template-columns:repeat(3,1fr)}}.contact-grid li{margin:0}.contact-card:after{content:none!important}.contact-value{font-size:var(--text-xl);margin:var(--space-1) 0;overflow-wrap:anywhere;font-weight:700}.contact-note{color:var(--gray);font-size:var(--text-sm);padding-top:var(--space-2);margin-top:auto}.post-back{max-width:var(--container-narrow);text-align:center;margin:0 auto}.latest-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.latest-head h2{margin:0}.all-link{border:2px solid var(--black);color:var(--black);white-space:nowrap;border-radius:999px;padding:.45rem 1.1rem;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s}.all-link:hover{background:var(--black);color:var(--white)}.slab-wrap .regmark.angle{bottom:var(--space-2);right:var(--space-4);z-index:2;position:absolute}body.has-hero{padding-top:0}.site-header--overlay{padding-top:var(--space-3);z-index:5;margin:0 auto;position:absolute;left:0;right:0}.site-header--overlay .brand,.site-header--overlay nav a{color:#fff}.site-header--overlay nav a:hover{color:#ffffffb8}.site-header--overlay nav a[aria-current=page]{color:#fff;font-weight:700}.site-header--overlay .brand:after{color:#fff}.site-header--overlay[data-hero-ink=c] :is(.brand,nav a,.nav-toggle),.site-header--overlay[data-hero-ink=m] :is(.brand,nav a,.nav-toggle),.site-header--overlay[data-hero-ink=y] :is(.brand,nav a,.nav-toggle){color:#000}.site-header--overlay[data-hero-ink=c] nav a:hover,.site-header--overlay[data-hero-ink=m] nav a:hover,.site-header--overlay[data-hero-ink=y] nav a:hover{color:#0009}.site-header--overlay[data-hero-ink=c] .brand:after,.site-header--overlay[data-hero-ink=m] .brand:after,.site-header--overlay[data-hero-ink=y] .brand:after{color:#000}.site-header--overlay .nav-toggle{color:#fff}.site-header--overlay[data-hero-ink=paper] :is(.brand,nav a,.nav-toggle){color:var(--black)}.site-header--overlay[data-hero-ink=paper] nav a:hover,.site-header--overlay[data-hero-ink=paper] .brand:after{color:var(--accent)}.color-hero{--hero-gap:var(--space-4);border-radius:var(--hero-r);margin:var(--space-2) calc(-50vw + var(--space-2)) var(--hero-gap);max-width:none;padding:calc(var(--space-5) + var(--space-4) + var(--space-3) - var(--space-2)) 0 calc(var(--space-5) + 5vw);width:calc(100vw - 2 * var(--space-2));position:relative;left:50%;overflow:hidden}.color-hero.ink-paper{--hero-bg:var(--white);color:var(--black);padding-bottom:var(--hero-gap);margin-bottom:0}.color-hero:before{background:var(--hero-bg);clip-path:shape(from var(--hero-r) 0, line to calc(100% - var(--hero-r)) 0, arc to 100% var(--hero-r) of var(--hero-r) cw, line to 100% calc(100% - 5vw - var(--hero-r)), arc to calc(100% - var(--hero-r)) calc(100% - 5vw) of var(--hero-r) cw, line to var(--hero-r) 100%, arc to 0 calc(100% - var(--hero-r)) of var(--hero-r) cw, line to 0 var(--hero-r), arc to var(--hero-r) 0 of var(--hero-r) cw, close);content:"";z-index:0;position:absolute;inset:0}.color-hero .color-hero-inner{z-index:1;position:relative}@media (prefers-reduced-motion:no-preference){@keyframes hero-rise{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.entrance .color-hero-inner>*{animation:.6s cubic-bezier(.2,.8,.2,1) .16s both hero-rise}.entrance .color-hero-inner>:nth-child(2){animation-delay:.24s}.entrance .color-hero-inner>:nth-child(3){animation-delay:.32s}@keyframes header-pop{0%{opacity:0;transform:translateY(-.4rem)}to{opacity:1;transform:translateY(0)}}.entrance .site-header .brand,.entrance .nav-toggle{animation:.5s cubic-bezier(.2,.8,.2,1) both header-pop}}@media (prefers-reduced-motion:no-preference) and (width>=48.0625rem){.entrance .site-header nav li{animation:.5s cubic-bezier(.2,.8,.2,1) both header-pop;animation-delay:calc((var(--i,0) + 1) * 50ms)}}@media (prefers-reduced-motion:no-preference){@keyframes reveal-up{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}@keyframes facet-up{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:none}}.reveal-on :is(main>section:not(.color-hero):not(.slab-wrap),main>article,main>header:not(.color-hero)){opacity:0}.reveal-on :is(main>section:not(.color-hero):not(.slab-wrap),main>article,main>header:not(.color-hero)).is-in{animation:.7s cubic-bezier(.2,.8,.2,1) both reveal-up}.reveal-on .slab-wrap .facet{opacity:0}.reveal-on .slab-wrap.is-in .facet{animation:.5s cubic-bezier(.2,.8,.2,1) both facet-up;animation-delay:calc(var(--i,0) * .12s)}}@media (width<=48rem){:root{--hero-r:2.75rem}.color-hero{padding-top:calc(var(--space-5) + var(--space-2));padding-bottom:var(--space-4)}.slab-inner{padding-inline:var(--space-3)}.site-header--overlay{padding-top:var(--space-3)}.site-header,.color-hero:not(.ink-paper) .color-hero-inner{padding-inline:var(--space-3)}.color-hero.ink-paper .color-hero-inner{padding-inline:0}.site-header--overlay[data-hero-ink=c],.site-header--overlay[data-hero-ink=m],.site-header--overlay[data-hero-ink=y],.site-header--overlay[data-hero-ink=k]{padding-inline:calc(var(--space-2) + var(--space-3))}.site-header--overlay[data-hero-ink=paper]{padding-inline:var(--space-2)}}.color-hero.ink-c{--hero-bg:var(--plate-c);color:#000;--ghost-c:#fff}.color-hero.ink-m{--hero-bg:var(--plate-m);color:#000;--ghost-m:#fff}.color-hero.ink-y{--hero-bg:var(--plate-y);color:#000;--ghost-y:#fff}.color-hero.ink-k{--hero-bg:#141414;color:#fff}.color-hero-inner{max-width:var(--container-default);padding:0 var(--space-2);width:100%;margin:0 auto}@media (width>=48.0625rem){.color-hero .color-hero-inner{padding-inline:var(--space-2)}}.color-hero h1{font-size:var(--display);letter-spacing:-.04em;margin-bottom:var(--space-3);line-height:.95}.color-hero .lede{font-size:var(--text-xl);max-width:var(--container-narrow);margin:0}.post-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.post-item{margin:0}.post-item a{color:var(--black);text-decoration:none;display:block}.post-item.has-cover a{align-items:center;gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=36rem){.post-item.has-cover a{grid-template-columns:14rem 1fr}}.post-thumb-wrap{aspect-ratio:16/10;border-radius:var(--radius-img);width:100%;transition:transform .3s;overflow:hidden}@media (width>=36rem){.post-thumb-wrap{aspect-ratio:1}}.post-thumb{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block;transform:scale(1.15)}.post-item.has-cover a:hover .post-thumb-wrap{transform:skewY(-4deg)}.post-item.has-cover a:hover .post-thumb{transform:skewY(4deg)scale(1.15)}@media (prefers-reduced-motion:reduce){.post-thumb-wrap,.post-thumb{transition:none}.post-item.has-cover a:hover .post-thumb-wrap{transform:none}.post-item.has-cover a:hover .post-thumb{transform:scale(1.15)}}.post-meta{color:var(--gray);font-size:var(--text-sm);align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.post-kind[data-kind=photo]{color:var(--secondary-dark)}.post-kind[data-kind=writing]{color:var(--primary)}.post-title{margin:0 0 var(--space-1)}.post-item a:hover .post-title{text-underline-offset:.12em;text-decoration:underline}.shorty{color:var(--accent);margin-right:.35em;font-style:italic}.post-item a p{color:var(--gray);max-width:var(--container-narrow);margin:0}.post-tags{gap:var(--space-1);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.post-tag{background:var(--light-gray);color:var(--gray);font-size:var(--text-sm);border-radius:999px;padding:.25em .85em;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s}.post-item a:hover .post-tag,a.post-tag:hover,a.post-tag:focus-visible{background:var(--tc);color:var(--tt)}.tags-fab{background:var(--white);border:2px solid var(--black);bottom:var(--space-3);color:var(--black);cursor:pointer;font:inherit;right:var(--space-3);white-space:nowrap;z-index:60;border-radius:999px;padding:.45rem 1.1rem;font-weight:600;transition:background-color .2s,color .2s;position:fixed}button.tags-fab:hover,button.tags-fab:focus-visible{background:var(--black);border-color:var(--black);color:var(--white)}.tags-overlay{backdrop-filter:blur(10px);opacity:0;z-index:50;background:#f5f5f5b8;transition:opacity .45s;position:fixed;inset:0;overflow:hidden}.tags-overlay.open{opacity:1}[data-theme=dark] .tags-overlay{background:#121212b8}.tags-list{align-items:flex-end;gap:var(--space-2);max-height:90vh;padding:0 var(--space-4) 0 0;right:var(--space-3);flex-direction:column;margin:0;list-style:none;display:flex;position:absolute;top:50%;overflow-y:auto;transform:translateY(-50%)}.tags-list li{margin:0}@media (prefers-reduced-motion:no-preference){@keyframes tag-in{0%{opacity:0;transform:translate(60vw)}to{opacity:1;transform:translate(0)}}.tags-overlay.open .tags-list li{animation:.6s cubic-bezier(.16,1,.3,1) both tag-in;animation-delay:calc(var(--i,0) * 50ms)}}.tag-hash{background:var(--tc);border:2px solid var(--tc);color:var(--tt);font-size:var(--text-2xl);border-radius:999px;padding:.12em .55em;font-weight:700;text-decoration:none;transition:background-color .15s,color .15s;display:inline-block}.tag-hash:hover,.tag-hash:focus-visible,.tag-hash.is-active{color:var(--tc);background:0 0}@media (prefers-reduced-motion:reduce){.tags-overlay{transition:none}}.pagination{align-items:center;gap:var(--space-1);margin-top:var(--space-5);justify-content:center;display:flex}.words-rss{font-size:var(--text-sm);margin-top:var(--space-4);text-align:center}.words-rss a{color:var(--gray)}.page-num,.page-arrow{color:var(--black);text-align:center;border-radius:999px;min-width:2.4rem;padding:.55rem .7rem;font-weight:600;line-height:1;text-decoration:none}.page-num:hover,.page-arrow:hover{background:var(--off-white);color:var(--primary)}.page-num.current{background:var(--accent);color:#fff}.post{max-width:var(--container-default);margin:0 auto}.post-header{margin:var(--space-5) auto 0;max-width:var(--container-narrow)}.post-header h1{font-size:var(--display);letter-spacing:-.04em;margin:var(--space-1) 0;line-height:.95}hr+.post{margin-top:0}.post-hero h1{margin:var(--space-1) 0 0}.post-hero .lede{margin-top:var(--space-2)}.post-hero .post-meta{color:color-mix(in srgb, currentColor 70%, transparent);margin-bottom:var(--space-2)}.post-hero .post-kind[data-kind=photo]{color:var(--plate-c)}.post-hero .post-kind[data-kind=writing]{color:var(--plate-m)}.post-hero .post-kind[data-kind=work]{color:inherit}.post-body{max-width:var(--container-narrow);padding-inline:var(--space-2);margin:0 auto;font-size:1.125rem}.post-header,.post-back,.post-footer{padding-inline:var(--space-2)}.post-body :is(img,video){border-radius:var(--radius-img)}.post-body :is(video,iframe,figure){margin-block:var(--space-4)}.post-body :is(video,iframe)[data-align=center]{margin-inline:auto;display:block}.post-body [data-gallery]{align-items:center;gap:var(--space-2);flex-flow:wrap;display:flex}.post-body [data-gallery] img{aspect-ratio:auto;object-fit:fill;width:100%;height:auto;margin:0}@media (width>=40rem){.post-body [data-gallery] img{width:calc(50% - var(--space-2) / 2)}}.post-body figure img{width:100%;display:block}.related{margin:var(--space-5) auto 0;max-width:var(--container-narrow)}.related-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.related-head h2{margin:0}.related-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));margin:0;padding:0;list-style:none;display:grid}.related-card{margin:0}.related-card .ink-card{gap:var(--space-1)}.related-meta{color:var(--gray);font-size:var(--text-xs);flex-direction:column;align-items:flex-start;gap:.25em;display:flex}.related-title{font-size:var(--text-lg);letter-spacing:-.01em;margin:0;line-height:1.15}.related-go{color:var(--gray);padding-top:var(--space-2);margin-top:auto;font-weight:700}.work-cases>h2,.work-exp>h2{margin-bottom:var(--space-3)}.work-grid{gap:var(--space-3);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}@media (width>=48rem){.work-grid{grid-auto-flow:dense;grid-template-columns:repeat(3,1fr)}.work-grid li[data-span="2"]{grid-column:span 2}}.work-grid li{margin:0}.work-card h3{font-size:var(--text-xl);margin:var(--space-1) 0}.work-card p{color:var(--gray);flex:1;margin:0}.browser{border:1px solid var(--light-gray);margin:var(--space-4) auto;border-radius:12px;overflow:hidden}.browser-bar{background:var(--off-white);border-bottom:1px solid var(--light-gray);align-items:center;gap:var(--space-2);padding:.65rem .85rem;display:flex}.browser-dots{flex-shrink:0;gap:.45rem;display:flex}.browser-dots span{border-radius:50%;width:.75rem;height:.75rem}.browser-dots .r{background:#ff5f57}.browser-dots .y{background:#febc2e}.browser-dots .g{background:#28c840}.browser-url{background:var(--white);color:var(--gray);font-size:var(--text-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;flex:1;padding:.3rem .7rem;overflow:hidden}.browser-body{aspect-ratio:16/10;overflow:hidden}.browser-body img{object-fit:cover;object-position:top center;border-radius:0;width:100%;height:100%;margin:0;display:block}.resume{margin-top:var(--space-4)}.resume-actions{margin:0 auto var(--space-2);max-width:var(--container-narrow);padding-inline:var(--space-2);justify-content:flex-end;display:flex}button.resume-dl{border:2px solid var(--black);border-radius:var(--button-radius);color:var(--black);cursor:pointer;font-size:var(--text-sm);padding:var(--space-1) var(--space-3);background:0 0;font-weight:700;transition:background .15s,color .15s}button.resume-dl:hover,button.resume-dl:focus-visible{background:var(--black);border-color:var(--black);color:var(--white)}.resume-body{counter-reset:resume-section}.resume-body h1{letter-spacing:-.04em;margin-bottom:var(--space-2);text-shadow:-.04em 0 0 var(--ghost-c), .04em 0 0 var(--ghost-m), 0 .04em 0 var(--ghost-y);font-size:clamp(3rem,2.1rem + 4.2vw,5.5rem);line-height:.95}.resume-body h1+p{color:var(--accent);font-size:var(--text-base);letter-spacing:.08em;margin-bottom:var(--space-1);text-transform:uppercase;font-weight:700}.resume-body h1+p strong{color:inherit}.resume-body h1+p+p{color:var(--gray);font-size:var(--text-sm)}.phone-print{display:none}.resume-body h2{counter-increment:resume-section}.resume-body h2:before{color:var(--accent);content:counter(resume-section, decimal-leading-zero) "  ";font-variant-numeric:tabular-nums}.resume-body h3{color:var(--primary);margin-bottom:var(--space-1)}.resume-body :is(p,li)>strong:first-child{color:var(--accent)}.resume-body hr{margin-block:var(--space-3)}@page{margin:.6in .5in .5in}@media print{.site-header,.site-footer,.no-print{display:none!important}.resume{margin-top:0}.resume-body{max-width:none;margin:0;padding:0;font-size:10.5pt}.resume-body a{text-decoration:none;color:#000!important}.resume-body a[href^=http]:after,.resume-body a[target=_blank]:after{content:none!important}.resume-body hr{display:none}.resume-body h1{font-size:34pt;font-weight:800;text-shadow:-.045em 0 0 var(--ghost-c), .045em 0 0 var(--ghost-m), 0 .045em 0 var(--ghost-y)!important}.resume-body h1+p{font-size:10pt}.resume-body h2{margin-bottom:var(--space-1);font-size:14pt}.resume-body h3{font-size:11.5pt}.resume-body h3+p{margin-bottom:var(--space-1)}.phone-print{display:inline}.resume-body h2:before,.resume-body :is(p,li)>strong:first-child,.resume-body h1+p+p,.resume-body h1+p+p a{color:var(--accent)!important}.resume-body :is(h1,h2,h3){break-after:avoid}.resume-body :is(li,h3,blockquote){break-inside:avoid}}.work-exp{margin-top:var(--space-5)}.exp-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.exp-item{align-items:start;gap:var(--space-1) var(--space-4);grid-template-columns:1fr;margin:0;display:grid}@media (width>=40rem){.exp-item{grid-template-columns:12rem 1fr}}.exp-when{color:var(--gray);font-size:var(--text-sm);font-weight:600}.exp-what h3{font-size:var(--text-lg);margin:0 0 var(--space-1)}.exp-co{color:var(--gray);font-weight:400}.exp-what p{margin:0}.exp-brands{color:var(--primary);font-size:var(--text-sm);margin-top:var(--space-1);font-weight:600}.case-facts{border-bottom:2px solid var(--light-gray);align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-3);flex-direction:column;display:flex}.case-facts-list{gap:var(--space-2) var(--space-4);flex-wrap:wrap;margin:0;display:flex}.case-facts dt{color:var(--gray);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.case-facts dd{margin:0;font-weight:600}.about-lead{align-items:start;gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=40rem){.about-lead{grid-template-columns:minmax(11rem,16rem) 1fr}}.about-photo{margin:0}.about-photo img{aspect-ratio:3/4;border-radius:var(--radius-img);object-fit:cover;width:100%;height:auto;display:block}.photo-placeholder{aspect-ratio:3/4;background:color-mix(in srgb, var(--light-gray) 40%, transparent);border:2px dashed var(--light-gray);border-radius:var(--radius-img);color:var(--gray);font-size:var(--text-xs);align-items:center;gap:var(--space-2);letter-spacing:.04em;text-align:center;text-transform:uppercase;flex-direction:column;justify-content:center;width:100%;font-weight:600;display:flex}.about-intro p{margin-bottom:var(--space-3);font-size:1.125rem}.about-intro p:last-child{margin-bottom:0}.codex{margin-top:var(--space-5)}.codex-head{margin-bottom:var(--space-4)}.codex-head h2{margin:0 0 var(--space-1)}.codex-grid{gap:var(--space-4) var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=30rem){.codex-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=48rem){.codex-grid{grid-template-columns:repeat(3,1fr)}}.codex-cat h3{border-bottom:2px solid var(--light-gray);font-size:var(--text-base);margin:0 0 var(--space-2);padding-bottom:var(--space-1)}.codex-cat[data-ink] h3{border-color:var(--ink,var(--light-gray))}.codex-intro{color:var(--gray);font-size:var(--text-sm);margin:0 0 var(--space-2)}.codex-cat ul{margin:0;padding:0;list-style:none}.codex-cat li{color:var(--gray);font-size:var(--text-sm);padding:var(--space-1) 0;margin:0}.codex-cat li.is-done{opacity:.55;text-decoration:line-through}.codex-cat li a{color:var(--gray);text-decoration:none}.codex-cat li a:hover{color:var(--primary);text-decoration:underline}.codex-note{opacity:.8;font-style:italic}.codex-gif{margin:var(--space-5) auto 0;text-align:center;max-width:28rem}.codex-gif img{border-radius:var(--radius-img);width:100%;height:auto}.codex-gif figcaption{color:var(--gray);font-size:var(--text-sm);margin-top:var(--space-2)}hr{height:4px;margin:var(--space-5) auto;max-width:var(--container-narrow);padding-inline:var(--space-2);background:0 0;border:0;width:100%;overflow:hidden}hr:after{content:"";background:url(/separator.svg) 0 0/20px 4px repeat-x;width:125px;height:4px;margin:0 auto;animation:1.2s linear infinite squiggle;display:block}.post-header+hr:after{margin-left:0}@keyframes squiggle{to{background-position-x:-20px}}@media (prefers-reduced-motion:reduce){hr:after{animation:none}}.site-footer{color:var(--gray);font-size:var(--text-sm);max-width:var(--container-default);padding-top:var(--space-4);text-align:center;margin:0 auto}main>section:last-child{margin-bottom:0}.site-footer nav ul{flex-wrap:wrap;justify-content:center}.face-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;line-height:0;transition:transform .2s;display:inline-flex}.face-btn:hover{transform:scale(1.08)}.face-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.face-wrap{margin-bottom:var(--space-3);justify-content:center;display:flex}.face{cursor:pointer;width:48px;height:48px}.face-gone{aspect-ratio:1;background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--gray) 55%, transparent), transparent 68%);filter:blur(5px);border-radius:50%;width:52px;height:52px}.face .features{transition:transform .1s linear}.face .mouth{transform-box:fill-box;transform-origin:50%;transform:translate(1px,2px)rotate(-4deg)}.face-bg{fill:#ffd24a;transition:fill .3s}.crater{fill:#00000021;opacity:0;transition:opacity .3s}[data-theme=dark] .face-bg{fill:#5fa8e0}[data-theme=dark] .crater{opacity:1}main>section{margin:0 auto var(--space-5);max-width:var(--container-default)}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
