@font-face{font-family:"Source Sans 3";src:url(/fonts/source-sans-3/SourceSans3VF-Upright.woff2) format("woff2");font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/fonts/source-sans-3/SourceSans3VF-Italic.woff2) format("woff2");font-style:italic;font-weight:200 900;font-display:swap}:root{--color-paper: #f6f4ee;--color-ink: #171717;--color-muted-ink: #68655f;--color-rule: #c9c4b8;--color-prussian-blue: #003153;--font-reading: "Source Sans 3", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-utility: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: "Arial Narrow", "Liberation Sans Narrow", "Helvetica Neue", Arial, sans-serif;--editorial-measure: 72rem;--reading-measure: 44rem}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p,pre,figure,blockquote,dl,dd,hr{margin:0}ul,ol,menu{margin:0;padding:0;list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}html{background:var(--color-paper);color:var(--color-ink);scroll-behavior:smooth}body{margin:0;background-color:var(--color-paper);color:var(--color-ink);font-family:var(--font-reading);font-size:1.05rem;line-height:1.65}button,input,select,textarea{font:inherit}::selection{background:var(--color-prussian-blue);color:var(--color-paper)}.editorial-shell{min-height:100vh}.editorial-main{width:min(100% - 2rem,var(--editorial-measure));margin:0 auto;padding:5rem 0 6rem}.editorial-measure{width:min(100%,var(--reading-measure))}.editorial-page__header{max-width:var(--reading-measure);margin:0 0 3.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-rule)}.editorial-page__header h1,.editorial-page h1{margin:0;font-size:clamp(2.75rem,8vw,6.75rem);font-weight:400;letter-spacing:-.045em;line-height:.95}.editorial-page__header p{margin:1.25rem 0 0}.editorial-section{max-width:var(--reading-measure);margin:0 0 4rem}.editorial-section h2,.editorial-article h2{margin:0 0 1rem;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:400;line-height:1.1}.editorial-section h3,.editorial-article h3{margin:2rem 0 .5rem;font-size:1.25rem;font-weight:400;line-height:1.2}.editorial-section p,.editorial-article p,.editorial-article ul,.editorial-article ol,.editorial-article blockquote{max-width:var(--reading-measure)}.editorial-empty{color:var(--color-muted-ink)}.blog-index__list h2{margin:0;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:400;line-height:1.1}.blog-index__description{color:var(--color-prussian-blue)}.blog-index__tags{margin-top:.75rem}.blog-index__image{max-width:16rem}.blog-article__metadata{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin-top:1.25rem}.blog-article__body{max-width:var(--reading-measure);font-size:1.08rem}.blog-author-signature{max-width:var(--reading-measure);margin-top:3rem}.blog-author-signature hr{margin:0 0 1.5rem;border:0;border-top:1px solid var(--color-rule)}.blog-author-signature p{max-width:var(--reading-measure);margin:0;font-size:.95rem;font-style:italic}.blog-article__body>:first-child{margin-top:0}.blog-article__body p{margin:1.25rem 0}.blog-article__body h2,.blog-article__body h3,.blog-article__body h4{margin:2.75rem 0 .85rem;font-weight:400;line-height:1.15}.blog-article__body h2{font-size:clamp(1.75rem,4vw,2.5rem)}.blog-article__body h3{font-size:1.5rem}.blog-article__body h4{font-size:1.2rem}.blog-article__body ul,.blog-article__body ol{margin:1.25rem 0;padding-inline-start:1.5rem}.blog-article__body li+li{margin-top:.5rem}.blog-article__body blockquote{margin:2rem 0}.blog-article__body figure{margin:2rem 0}.blog-article__body figcaption{color:var(--color-muted-ink);font-family:var(--font-utility);font-size:.875rem}.blog-article__body img{display:block;max-width:100%;height:auto}.blog-article__body hr{margin:3rem 0;border:0;border-top:1px solid var(--color-rule)}.blog-article__body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.blog-article__body th,.blog-article__body td{padding:.5rem .75rem;border:1px solid var(--color-rule);text-align:left}.editorial-list{margin:0;padding:0;list-style:none}.editorial-list>li{padding:1.5rem 0;border-top:1px solid var(--color-rule)}.editorial-list>li:last-child{border-bottom:1px solid var(--color-rule)}.editorial-list p{margin:.5rem 0 0}.eyebrow,.metadata,.utility,.accent{color:var(--color-muted-ink);font-family:var(--font-utility);font-size:.9rem;letter-spacing:0;line-height:1.4;text-transform:none}.accent{color:var(--color-prussian-blue)}article{overflow-wrap:break-word}.blog-article{position:relative}.blog-index__image-link,.blog-article__image{display:block;margin-bottom:1.5rem}.margin-note-rail{display:none}.blog-article[data-margin-note-cleanup-failed=true] .margin-note-rail{display:block;visibility:visible}@media(min-width:72rem){.margin-note-rail[data-margin-note-measuring],.blog-article[data-margin-notes-enhanced=true] .margin-note-rail{position:absolute;top:0;inset-inline-start:calc(100% + 2rem);display:block;width:16rem;height:100%}.blog-article[data-margin-note-cleanup-failed=true] .margin-note-rail{position:static;display:block;width:auto;height:auto;margin-top:2rem}.margin-note-rail[data-margin-note-measuring]{visibility:hidden}.blog-article[data-margin-notes-enhanced=true] [data-footnotes]{display:none}.blog-article[data-margin-notes-enhanced=true] .margin-note-rail>ol,.blog-article[data-margin-notes-enhanced=true] .margin-note-rail>ul{position:relative;height:100%;margin:0;padding:0;list-style:none}.blog-article[data-margin-notes-enhanced=true] .margin-note-rail>ol>li{position:absolute;inset-inline:0;top:var(--margin-note-top, 0);margin:0;list-style:none;font-size:.875rem;line-height:1.45}.blog-article[data-margin-note-cleanup-failed=true] .margin-note-rail>ol{margin:0;padding-inline-start:1.5rem}}blockquote{margin:2rem 0;padding-left:1.25rem;border-left:2px solid var(--color-prussian-blue)}pre,code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}pre{overflow-x:auto;padding:1rem;background:color-mix(in srgb,var(--color-rule) 24%,var(--color-paper))}a{color:var(--color-prussian-blue);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.16em}a:hover{color:var(--color-ink)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-prussian-blue);outline-offset:4px}a.no-underline{text-decoration:none}.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--color-rule);background:color-mix(in srgb,var(--color-paper) 94%,transparent);backdrop-filter:blur(.5rem)}.site-header__inner{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;width:min(100% - 2rem,var(--editorial-measure));margin:0 auto;padding:1rem 0}.site-brand{flex:0 0 auto;color:var(--color-ink);font-size:1rem;font-weight:500;font-family:var(--font-utility);letter-spacing:-.02em}.primary-navigation{display:flex;align-items:center;gap:1rem}.primary-navigation__menu-button{display:none;align-items:center;gap:.5rem;padding:.35rem .6rem;border:1px solid var(--color-rule);background:transparent;color:var(--color-ink);cursor:pointer;font-family:var(--font-utility);font-size:.9rem;letter-spacing:0;text-transform:none}.primary-navigation__list{display:flex;align-items:center;gap:clamp(.75rem,2vw,1.75rem);margin:0;padding:0;list-style:none}.primary-navigation__link{color:var(--color-ink);font-family:var(--font-utility);font-size:.9rem;letter-spacing:0;text-transform:none}.primary-navigation__link[aria-current=page]{color:var(--color-prussian-blue);text-decoration-thickness:.15em}.social-links{display:flex;align-items:center;gap:.75rem;width:min(100% - 2rem,var(--editorial-measure));margin:0 auto;padding:0 0 2rem}.social-links a{display:inline-flex;color:var(--color-ink)}@media(max-width:47.999rem){.site-header__inner{align-items:center}.primary-navigation{position:relative}.primary-navigation[data-js-ready] .primary-navigation__menu-button{display:inline-flex}.primary-navigation[data-js-ready] .primary-navigation__panel[data-open=false]{display:none}.primary-navigation__panel{position:absolute;top:calc(100% + 1rem);right:0;min-width:13rem;padding:.75rem 1rem;border:1px solid var(--color-rule);background:var(--color-paper);box-shadow:.4rem .4rem 0 var(--color-rule)}.primary-navigation__list{align-items:stretch;flex-direction:column;gap:.75rem}}@media(min-width:48rem){.primary-navigation__panel{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media print{html,body{background:#fff;color:#000}.site-header,.social-links,.primary-navigation__menu-button{display:none!important}.editorial-main{width:100%;padding:0}a{color:inherit;text-decoration:underline}.margin-note-rail{display:none!important}.blog-article[data-margin-note-cleanup-failed=true] .margin-note-rail{position:static!important;display:block!important;width:auto!important;height:auto!important;margin-top:2rem!important;visibility:visible!important}.blog-article [data-footnotes]{display:block!important}}@media(min-width:48rem){.editorial-main{width:min(100% - 4rem,var(--editorial-measure));padding-top:6rem}}.site-header{position:absolute;inset:0 0 auto;border:0;background:transparent;backdrop-filter:none;pointer-events:none}.site-header__inner{align-items:center;width:min(100% - 2rem,var(--editorial-measure));padding:1rem 0 0;pointer-events:none}.primary-navigation{position:relative;width:100%;justify-content:space-between;pointer-events:none}.site-brand,.primary-navigation__menu-button,.primary-navigation__panel{pointer-events:auto}.site-brand{font-size:.875rem}.primary-navigation[data-home=true] .site-brand{display:none}.site-header__inner:has(.primary-navigation[data-home=true]){width:100%;max-width:none;padding-right:clamp(1rem,2vw,2.5rem);padding-left:clamp(1rem,2vw,2.5rem)}.site-header:has(.primary-navigation[data-home=true]),.site-header__inner:has(.primary-navigation[data-home=true]),.primary-navigation{overflow:visible}.primary-navigation[data-home=true][data-js-ready]{justify-content:flex-end}.primary-navigation[data-home=true][data-js-ready] .primary-navigation__panel{top:calc(100% + 3rem)}.primary-navigation[data-js-ready] .primary-navigation__menu-button{display:block;flex:0 0 auto;width:clamp(2.75rem,4vw,4rem);height:clamp(2.75rem,4vw,4rem);padding:0;border:0;border-radius:0;background-color:var(--color-ink)}.primary-navigation[data-js-ready] .primary-navigation__menu-button:hover{background-color:var(--color-ink)}.primary-navigation[data-js-ready] .primary-navigation__panel{position:absolute;top:calc(100% + .75rem);right:0;min-width:13rem;padding:1.25rem;border:1px solid var(--color-rule);background:var(--color-paper);box-shadow:none}.primary-navigation[data-js-ready] .primary-navigation__panel[data-open=false]{display:none}.primary-navigation__list{align-items:stretch;flex-direction:column;gap:1rem}.primary-navigation:not([data-js-ready]){min-width:0}.primary-navigation:not([data-js-ready]) .primary-navigation__panel{position:static;min-width:0;padding:0;border:0;box-shadow:none}.primary-navigation:not([data-js-ready]) .primary-navigation__list{align-items:center;flex-direction:row;flex-wrap:wrap;gap:.75rem}.primary-navigation:not([data-js-ready]) .primary-navigation__link{font-size:.85rem}.site-header:has(.primary-navigation:not([data-js-ready])){position:relative}@media print{.site-header{display:none}}[data-ink-hover]{--ink-hover-x: 50%;--ink-hover-y: 50%;--ink-hover-radius: 5rem;--ink-hover-gradient: radial-gradient( circle var(--ink-hover-radius) at var(--ink-hover-x) var(--ink-hover-y), #00a9b7 0%, #6246c8 24%, #d25572 49%, #d99a2e 73%, transparent 100% );--ink-hover-mask: radial-gradient( circle var(--ink-hover-radius) at var(--ink-hover-x) var(--ink-hover-y), #000 0%, #000 45%, transparent 100% );--ink-hover-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.2'/%3E%3C/svg%3E")}[data-ink-hover=text]{position:relative;isolation:isolate;overflow:visible;color:var(--color-ink);opacity:1}.ink-hover__glow-copy{position:absolute;inset:0;z-index:0;display:block;box-sizing:border-box;padding:inherit;overflow:visible;pointer-events:none;white-space:inherit;text-align:inherit;color:transparent;-webkit-text-fill-color:transparent;visibility:hidden}.ink-hover__foreground{position:relative;z-index:1;display:block;color:var(--color-ink);opacity:1}.home-directions a[data-ink-hover=text],.about-introduction a[data-ink-hover=text]{color:var(--color-ink)}[data-ink-hover=text][data-ink-hover-active=true]>.ink-hover__glow-copy{visibility:visible;filter:blur(8px);opacity:.95;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-image:var(--ink-hover-texture),var(--ink-hover-gradient);background-size:7rem 7rem,auto;background-repeat:repeat,no-repeat;background-blend-mode:soft-light,normal;mask-image:var(--ink-hover-mask);-webkit-mask-image:var(--ink-hover-mask)}.primary-navigation .primary-navigation__menu-button[data-ink-hover=surface][data-ink-hover-active=true]{--ink-hover-radius: 4.75rem;position:relative;isolation:isolate;overflow:visible;background-color:transparent}.primary-navigation .primary-navigation__menu-button[data-ink-hover=surface][data-ink-hover-active=true]:before{content:"";position:absolute;inset:-1rem;z-index:0;border-radius:50%;pointer-events:none;filter:blur(10px);opacity:.95;background-image:var(--ink-hover-texture),var(--ink-hover-gradient);background-size:7rem 7rem,auto;background-repeat:repeat,no-repeat;background-blend-mode:soft-light,normal}.primary-navigation .primary-navigation__menu-button[data-ink-hover=surface][data-ink-hover-active=true]:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--color-ink)}.portfolio-home,.home-directions,.about-title,.about-introduction,.about-skills,.about-contact{overflow:visible}@media(prefers-reduced-motion:reduce){[data-ink-hover]{transition:none}}:root{--interior-page-gutter: clamp(1rem, 4vw, 4rem);--interior-reading-width: 44rem;--interior-section-space: clamp(3.5rem, 8vw, 6.5rem)}.interior-page{width:min(calc(100% - 2 * var(--interior-page-gutter)),var(--editorial-measure));margin-inline:auto}.interior-page__header{max-width:var(--interior-reading-width);margin-bottom:var(--interior-section-space)}.interior-page__title{font-size:clamp(2.75rem,8vw,6.75rem);font-weight:400;letter-spacing:-.045em;line-height:.95}.interior-page__section{max-width:var(--interior-reading-width);margin-block:var(--interior-section-space)}
