﻿@layer html, header, navigation, main, aside, footer, accessibility, lightbox, pagination, about, resume, portfolio;:root{--noise: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='5.27' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");--noise-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 250 250' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");--font-emoji: "Twemoji Mozilla", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji";--font-legible: "Atkinson_Hyperlegible";--font-mono: ui-monospace, "Cousine", "IBM Plex Mono", "Cascadia Mono", "Source Code Pro", "Liberation Mono", "Menlo", "Consolas", monospace;--font-rough: "IM_FELL_DW_Pica_PRO";--font-sans-easy: "Atkinson_Hyperlegible", ui-sans-serif, -apple-system, "BlinkMacSystemFont", "Avenir Next", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", "Liberation Sans", source-sans-pro, "Cantarell", "Noto", "Arial", sans-serif;--font-sans: ui-sans-serif, -apple-system, "BlinkMacSystemFont", "Avenir Next", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", "Liberation Sans", source-sans-pro, "Cantarell", "Noto", "Arial", sans-serif;--font-sans-rounded: ui-rounded, "Hiragino Maru Gothic", "Quicksand", "Manjari", "Calibri", source-sans-pro, ui-sans-serif, -apple-system, "Arial Rounded MT Bold", "BlinkMacSystemFont", sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", "URW Palladio L", "P052", ui-serif, "Noto Serif", "Charter", "Bitstream Charter", "Sitka Text", "Cambria", "Source Serif Pro", "Cambria", "Georgia", "Times New Roman", "Times", serif;--font-title: "CrimsonPro", "Iowan Old Style", "Palatino Linotype", "URW Palladio L", p052, serif;--border-radius: 0.5rem;--border-size: 0.08rem;--border-style: solid;--gap: 1rem;--hr-size: 0.05rem;--hr-style: dashed;--max-width: 78rem;--max-width-wide: 90rem;--outline-offset: 0.25rem;--outline-size: 0.1rem;--outline-style: solid;--transitions: background-color 0.25s, color 0.5s;--transitions-hover: box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1)}@media screen and (prefers-color-scheme: light){:root{color-scheme:light;--accessibility-wrapper-background: oklch(255% 0 0 / 50%);--accessibility-wrapper-background-hover: oklch(255% 0 0 / 60%);--box-shadow-high: 0 14px 28px #0000003f, 0 10px 10px #00000038;--box-shadow-medium: 0 5px 12px #0000001e, 0 1px 2px #0000003d;--box-shadow-low: 0 1px 3px #0000001e, 0 1px 2px #0000003d;--color-article-border: #f2f2f2;--color-background: #fff;--color-background-blue: oklch(97% 0.5 242);--color-background-blue-image: linear-gradient(to bottom, oklch(97% 0.5 242), var(--color-background) 10px);--color-blockquote: linear-gradient(200deg, #dbdbdb, #f2f2f2 20rem);--color-blockquote-border: #dbdbdb;--color-body: #000;--color-body-dark: #222;--color-body-inverted: #fff;--color-body-light: #ddd;--color-border: #e3e3e3;--color-button-background: linear-gradient(150deg, oklch(0% 0.29 211), oklch(54% 0.32 215));--color-button-background-active: linear-gradient(150deg, oklch(0% 0.29 211), oklch(32% 0.32 215));--color-button-background-hover: linear-gradient(150deg, oklch(23% 0.29 211), oklch(60% 0.32 215));--color-button-text: #fff;--color-button-text-active: #7d7d7d;--color-date: #696f7c;--color-footer-powered-text: #fff;--color-footer-powered-background: #404040;--color-hr: #c8c8c8ff;--color-href: #0051ff;--color-href-visited: #2b69f0;--color-href-hover: #9100ff;--color-href-active: #002471;--color-href-visited-hover: #9100ff;--color-meter: #c8c8c8;--color-meter-optimum: #00c091;--color-meter-suboptimum: #dda400;--color-meter-even-less-good: #b00;--color-nav-background: linear-gradient(49deg, #222f, #1f1f1fff, #515151, #0c0c0cff);--color-nav-item-background-hover: radial-gradient(#cdc5ffda, #919eff5c, transparent, 90%, transparent);--color-nav-text: #ddd;--color-nav-text-active: #ecf2ff;--color-nav-text-hover: #fff;--color-outline: #00b1ff;--color-page-small-background: #262626;--color-post-home-border: #b4d2fe;--color-post-home-blog: #00b1ff;--color-post-home-thoughtstream: #222;--color-shadow: #000000cb;--header-background: linear-gradient(to bottom left, oklch(97% 0.5 242) 0%, oklch(80% 0.5 250) 100%);--header-background-overlay: linear-gradient(200deg, oklch(0.5593 0.0684 296.65 / 40%) 0%, oklch(0.5593 0.0684 296.65 / 0%) 30%, oklch(0.5371 0.1393 276.35 / 0%) 40%, oklch(0.5371 0.1393 276.35 / 90%) 100%);--header-intro-shadow: 0 0 10px oklch(0% 0 0 / 100%);--header-logo-after-background: linear-gradient(to right, oklch(0% 0 0 / 100%), oklch(0% 0 0 / 40%));--header-logo-shadow: 0 0 25px oklch(0% 0 0 / 98%);--header-text: #fff;--header-text-background: linear-gradient(0deg, oklch(0% 0 0 / 60%), oklch(0% 0 0 / 0%) 80%);--nav-button-background: oklch(100% 0 0 / 80%);--nav-button-background-hover: oklch(100% 0 0 / 100%);--nav-button-background-active: oklch(100% 0 0 / 20%);--nav-button-border: oklch(100% 0 0 / 100%);--nav-button-text: oklch(0% 0 0 / 100%);--nav-button-text-hover: oklch(0% 0 0 / 100%);--nav-button-text-active: oklch(0% 0 0 / 100%);--portfolio-card-bg-columns: linear-gradient(to bottom, #ededed, 2rem, var(--color-body-dark), 11rem, var(--color-body-dark));--portfolio-card-bg-list: var(--color-body-dark);--footer-bullet: graytext;--footer-threads: url("/img/threadsB.svg");--footer-vsco: url("/img/vscoB.png")}}@media screen and (prefers-color-scheme: dark){:root{color-scheme:dark;--accessibility-wrapper-background: oklch(255% 0 0 / 50%);--accessibility-wrapper-background-hover: oklch(255% 0 0 / 60%);--box-shadow-high: 0 14px 28px #0000003f, 0 10px 10px #00000038;--box-shadow-medium: 0 5px 12px #0000001e, 0 1px 2px #0000003d;--box-shadow-low: 0 1px 3px #0000001e, 0 1px 2px #0000003d;--color-article-border: #747474;--color-background: #000;--color-blockquote: linear-gradient(200deg, #293745, #192029 20rem);--color-blockquote-border: #293745;--color-body: #fff;--color-body-dark: #222;--color-body-inverted: #000;--color-body-light: #ddd;--color-border: #5a5a5a;--color-button-background: linear-gradient(150deg, oklch(0% 0.29 211), oklch(54% 0.32 215));--color-button-background-active: linear-gradient(150deg, oklch(0% 0.29 211), oklch(32% 0.32 215));--color-button-background-hover: linear-gradient(150deg, oklch(23% 0.29 211), oklch(60% 0.32 215));--color-button-text: #fff;--color-button-text-active: #7d7d7d;--color-date: #b1b8c9;--color-footer-powered-text: #fff;--color-footer-powered-background: #404040;--color-hr: #c8c8c8ff;--color-href: #6596ff;--color-href-visited: #6383c7;--color-href-hover: #b061eb;--color-href-active: #2a457f;--color-href-visited-hover: #af80d2;--color-meter: #c8c8c8;--color-meter-optimum: #00c091;--color-meter-suboptimum: #dda400;--color-meter-even-less-good: #b00;--color-nav-background: linear-gradient(49deg, #222f, #1f1f1fff, #252525, #0c0c0cff);--color-nav-item-background-hover: radial-gradient(#cdc5ffda, #919eff5c, transparent, 90%, transparent);--color-nav-text: #ddd;--color-nav-text-active: #ecf2ff;--color-nav-text-hover: #fff;--color-outline: #00b1ff;--color-page-small-background: #262626;--color-post-home-border: #313944;--color-post-home-blog: #37a5d6;--color-post-home-thoughtstream: #888;--color-shadow: #000000cb;--header-background: linear-gradient(to bottom left, oklch(50% 0.1 242) 0%, oklch(30% 0.1 250) 100%);--header-background-overlay: linear-gradient(200deg, oklch(0.5593 0.0684 296.65 / 40%) 0%, oklch(0.5593 0.0684 296.65 / 0%) 30%, oklch(0.5371 0.1393 276.35 / 0%) 40%, oklch(0.5371 0.1393 276.35 / 90%) 100%);--header-intro-shadow: 0 0 10px oklch(0% 0 0 / 100%);--header-logo-after-background: linear-gradient(to right, oklch(0% 0 0 / 100%), oklch(0% 0 0 / 40%));--header-logo-shadow: 0 0 25px oklch(0% 0 0 / 98%);--header-text: #fff;--header-text-background: linear-gradient(0deg, oklch(0% 0 0 / 60%), oklch(0% 0 0 / 0%) 80%);--nav-button-background: oklch(100% 0 0 / 80%);--nav-button-background-hover: oklch(100% 0 0 / 100%);--nav-button-background-active: oklch(100% 0 0 / 20%);--nav-button-border: oklch(100% 0 0 / 100%);--nav-button-text: oklch(0% 0 0 / 100%);--nav-button-text-hover: oklch(0% 0 0 / 100%);--nav-button-text-active: oklch(0% 0 0 / 100%);--portfolio-card-bg-columns: linear-gradient(to bottom, #a7a7a7, 2rem, var(--color-body-dark), 11rem, var(--color-body-dark));--portfolio-card-bg-list: var(--color-body-dark);--footer-bullet: graytext;--footer-threads: url("/img/threadsW.svg");--footer-vsco: url("/img/vscoW.png")}img{filter:saturate(80%)}.github{filter:invert(1)}.to-top-emoji{margin-right:.5rem}}@view-transition{navigation:auto}@font-face{font-display:swap;font-family:CrimsonPro;font-feature-settings:"kern" 1;font-kerning:normal;font-style:normal;font-weight:300;src:local("CrimsonPro-Light"),url("CrimsonPro-Light.woff2") format("woff2")}@font-face{font-display:swap;font-family:CrimsonPro;font-feature-settings:"kern" 1;font-kerning:normal;font-style:oblique;font-weight:300;src:local("CrimsonPro-LightItalic"),url("CrimsonPro-LightItalic.woff2") format("woff2")}@font-face{font-display:swap;font-family:CrimsonPro;font-feature-settings:"kern" 1;font-kerning:normal;font-style:normal;font-weight:500;src:local("CrimsonPro-Medium"),url("CrimsonPro-Medium.woff2") format("woff2")}@font-face{font-display:swap;font-family:CrimsonPro;font-feature-settings:"kern" 1;font-kerning:normal;font-style:oblique;font-weight:500;src:local("CrimsonPro-MediumItalic"),url("CrimsonPro-MediumItalic.woff2") format("woff2")}@font-face{font-display:swap;font-family:CrimsonPro;font-feature-settings:"kern" 1;font-kerning:normal;font-style:normal;font-weight:700;src:local("CrimsonPro-Bold"),url("CrimsonPro-Bold.woff2") format("woff2")}@font-face{font-display:swap;font-family:CrimsonPro;font-feature-settings:"kern" 1;font-kerning:normal;font-style:oblique;font-weight:700;src:local("CrimsonPro-BoldItalic"),url("CrimsonPro-BoldItalic.woff2") format("woff2")}@font-face{font-display:swap;font-family:"IM_FELL_DW_Pica_PRO";font-feature-settings:"kern" 1;font-kerning:normal;font-weight:normal;src:local("IM_FELL_DW_Pica_PRO"),url("IMFePIrm29C.woff") format("woff")}@font-face{font-display:swap;font-family:"IM_FELL_DW_Pica_PRO";font-feature-settings:"kern" 1;font-kerning:normal;font-style:oblique;font-weight:normal;src:local("IM_FELL_DW_Pica_PRO_Italic"),url("IMFePIit29C.woff") format("woff")}@font-face{font-display:swap;font-family:"Atkinson_Hyperlegible";font-feature-settings:"kern" 1;font-kerning:normal;font-style:normal;font-weight:normal;src:local("Atkinson-Hyperlegible-Regular-102"),url("Atkinson-Hyperlegible-Regular-102a.woff2") format("woff2"),url("Atkinson-Hyperlegible-Regular-102.woff") format("woff")}@font-face{font-display:swap;font-family:"Atkinson_Hyperlegible";font-feature-settings:"kern" 1;font-kerning:normal;font-style:oblique;font-weight:normal;src:local("Atkinson-Hyperlegible-Italic-102"),url("Atkinson-Hyperlegible-Italic-102a.woff2") format("woff2"),url("Atkinson-Hyperlegible-Italic-102.woff") format("woff")}@font-face{font-display:swap;font-family:"Atkinson_Hyperlegible";font-feature-settings:"kern" 1;font-kerning:normal;font-style:normal;font-weight:bold;src:local("Atkinson-Hyperlegible-Bold-102"),url("Atkinson-Hyperlegible-Bold-102a.woff2") format("woff2"),url("Atkinson-Hyperlegible-Bold-102.woff") format("woff")}@font-face{font-display:swap;font-family:"Atkinson_Hyperlegible";font-feature-settings:"kern" 1;font-kerning:normal;font-style:oblique;font-weight:bold;src:local("Atkinson-Hyperlegible-BoldItalic-102"),url("Atkinson-Hyperlegible-BoldItalic-102a.woff2") format("woff2"),url("Atkinson-Hyperlegible-BoldItalic-102.woff") format("woff")}html{box-sizing:border-box;scroll-behavior:smooth}*,::after,::before{box-sizing:inherit}@layer html{.hidden{display:none;visibility:hidden}.sans-serif{font-family:var(--font-sans)}.serif{font-family:var(--font-serif)}iframe{border-radius:var(--border-radius)}.embedtool{aspect-ratio:16/9;height:0;margin:1rem auto 0;max-width:100%;overflow:hidden;padding-top:56.25%;position:relative}.embedtool iframe,.embedtool object,.embedtool embed{border:1px solid var(--color-border);height:100%;left:0;position:absolute;top:0;width:100%}.embedtool .fluid-vids{position:initial !important}.flex-no-wrap{display:flex;flex-flow:row wrap;width:100%}@media only screen and (min-width: 768px){.flex-no-wrap{flex-flow:row nowrap}}.flex-no-wrap .flex-item{margin:1rem 0 0;width:100%}@media only screen and (min-width: 768px){.flex-no-wrap .flex-item:not(:nth-of-type(1)){margin:1rem 0 0 1rem}}.m0{margin-top:0}body{background:var(--color-background);color:var(--color-body);font-family:var(--font-sans),var(--font-emoji);hanging-punctuation:first;line-height:1.65;margin:0;padding:env(safe-area-inset-top, 0) env(safe-area-inset-right, 0) env(safe-area-inset-bottom, 1.5rem) env(safe-area-inset-left, 0);position:relative}a:link{color:var(--color-href);text-decoration:underline}a:visited{color:var(--color-href-visited);text-decoration:underline}a:hover{color:var(--color-href-hover);text-decoration:underline}a:active{color:var(--color-href-active);text-decoration:unset}.lightbox-figure figcaption a{color:var(--color-body-light)}a:visited:hover{color:var(--color-href-visited-hover)}.header-logo a:link{color:var(--header-text);text-decoration:none}.header-logo a:visited{color:var(--header-text);text-decoration:none}.header-logo a:hover{color:var(--header-text);text-decoration:underline}.header-logo a:active{color:var(--header-text);text-decoration:active}.header-title a:link{color:var(--header-text);transition:text-shadow .25s}.header-title a:visited{color:var(--header-text)}.header-title a:hover{text-shadow:0 0 1.5rem var(--header-text)}.header-title a:active{color:var(--header-text)}.header-credit a:link{color:var(--header-text)}.header-credit a:visited{color:var(--header-text)}.header-credit a:hover{color:var(--header-text);text-decoration:none}.header-credit a:active{color:var(--header-text)}.nav-item a::before{content:"";height:100%;padding:1rem;position:absolute;width:100%;z-index:-1}.nav-item a:link{color:var(--color-nav-text);margin:-0.25rem;padding:.25rem;text-decoration:none}.nav-item a:visited{color:var(--color-nav-text)}.nav-item a:hover{color:var(--color-nav-text-hover);text-decoration:underline}.nav-item a:hover::before{background:var(--color-nav-item-background-hover)}.nav-item a:active{color:var(--color-nav-text-active);text-decoration:underline}.important-header a:link{color:#fff}.important-header a:visited{color:#fff}.important-header a:hover{text-decoration:none}.important-header a:active{color:var(--color-body-light)}.thoughtstream-header a:link{color:var(--color-body);text-decoration:none}.thoughtstream-header a:visited{color:var(--color-body);text-decoration:none}.thoughtstream-header a:hover{color:var(--color-post-home-thoughtstream);text-decoration:underline}.thoughtstream-header a:active{color:var(--color-href-active);text-decoration:underline}.portfolio-card-body a:link{color:var(--color-body-light)}.portfolio-card-body a:visited{color:var(--color-body-light)}.footer-page-feed a:link{display:block}.resume-profile-image a:link{color:rgba(0,0,0,0);display:block;height:100%;width:100%}.page-post-headline-image cite a:link{color:var(--color-body-light);text-decoration:none}.page-post-headline-image cite a:hover{text-decoration:underline}.page-post-headline-image cite a:visited{color:var(--color-body-light);text-decoration:none}.footer-resources ul a:link{display:block}.lightbox-figure figcaption a:hover{color:var(--color-body-light);text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans-rounded);margin:1rem 0 0}h1{font-size:200%;font-weight:900;line-height:1.25}h2{font-size:160%;font-weight:800;line-height:1.25}h3{font-size:120%;font-weight:700;line-height:1.5}h4{font-size:110%;font-weight:600;line-height:1.5}h5{font-size:105%;font-weight:500;line-height:1.5}h6{font-size:100%;font-weight:500;line-height:1.5}em,i{font-style:oblique}hr{border-bottom:none;border-left:none;border-right:none;border-top:var(--hr-size) var(--hr-style) var(--color-hr);color:var(--color-hr);margin:1.5rem 0 0;padding:0}img{display:block;height:auto;max-width:100%}meter{background:var(--color-meter);border-radius:calc(var(--border-radius)*.5);margin:0;overflow:hidden;padding:0;width:100%}meter::-webkit-meter-inner-element{-webkit-appearance:inherit}meter::-webkit-meter-bar{background:none}meter::-webkit-meter-optimum-value{background:var(--color-meter-optimum)}meter::-webkit-meter-suboptimum-value{background:var(--color-meter-suboptimum)}meter::-webkit-meter-even-less-good-value{background:var(--color-meter-even-less-good)}p{margin:1rem 0 0}abbr{cursor:help}nav button,main button,footer button,a.button,.button{align-content:center;align-items:center;background:var(--color-button-background);border-radius:var(--border-radius);border:unset;color:var(--color-button-text);cursor:pointer;display:flex;flex-flow:row wrap;flex:1 1 auto;font-family:var(--font-sans-rounded);font-size:100%;font-weight:500;justify-content:space-around;line-height:1;margin:1rem .1rem 0 0;overflow:hidden;padding:.5rem .75rem;position:relative;text-align:center;text-decoration:none;vertical-align:middle;width:max-content}nav button::before,main button::before,footer button::before,a.button::before,.button::before{background:var(--noise) repeat;background-size:30px;content:"";filter:contrast(160%) brightness(40%) opacity(40%);height:100%;left:0;mask-image:var(--noise-mask);mask-repeat:repeat;mask-size:30px;position:absolute;top:0;width:100%;z-index:0}nav button:hover,main button:hover,footer button:hover,a.button:hover,.button:hover{background-image:var(--color-button-background-hover);color:var(--color-button-text)}nav button:active,main button:active,footer button:active,a.button:active,.button:active{background-image:var(--color-button-background-active);color:var(--color-button-text-active);padding:.55rem .75rem .45rem}nav button:focus-visible,main button:focus-visible,footer button:focus-visible,a.button:focus-visible,.button:focus-visible{outline:var(--outline-size) var(--outline-style) var(--color-outline);outline-offset:var(--outline-offset)}nav button.disabled,main button.disabled,footer button.disabled,a.button.disabled,.button.disabled{background:var(--color-body-inverted);border:var(--border-size) solid var(--color-border);color:var(--color-body);cursor:default}nav button.disabled::before,main button.disabled::before,footer button.disabled::before,a.button.disabled::before,.button.disabled::before{background:unset}cite{display:block;font-family:var(--font-serif);font-size:85%;font-weight:400}.page-post-headline-image cite{background:var(--color-body-dark);border-radius:calc(var(--border-radius)*.5);bottom:.5rem;color:var(--color-body-light);left:.5rem;max-width:calc(100% - 1rem);padding:.25rem .5rem;position:absolute;width:max-content;z-index:1}.embedtool~p cite{margin:1rem 0 0}details{cursor:pointer}details summary:hover{text-decoration:underline}dl{margin:1rem 0 0}input{font-family:var(--font-sans)}li{margin-top:.25rem}li:first-child{margin-top:0}keygen select{font-family:var(--font-sans)}table{background:var(--color-blockquote);border:var(--border-size) solid var(--color-border);border-radius:calc(var(--border-radius)*.5);margin:1rem 0 0}@media only screen and (max-width: 527px){table{padding:0 1rem 1rem}}@media only screen and (min-width: 528px){table{padding:1rem}}@media only screen and (max-width: 527px){table thead{display:none}}table tr{text-align:left;vertical-align:top}table th{border-bottom:.1rem solid var(--color-hr);font-size:105%}@media only screen and (min-width: 528px){table th:nth-of-type(1){padding:0 0 1rem}}@media only screen and (min-width: 528px){table th:not(:nth-of-type(1)){padding:0 0 1rem 1rem}}table td{position:relative}@media only screen and (max-width: 527px){table td::before{font-size:.75rem;font-weight:700;left:0;position:absolute;text-transform:uppercase;top:0}}@media only screen and (max-width: 527px){table td{display:block;margin:1.25rem 0 0;padding:1.25rem 0 0}}@media only screen and (min-width: 528px){table td:nth-of-type(1){padding:1rem 0 0}}@media only screen and (min-width: 528px){table td:not(:nth-of-type(1)){padding:1rem 0 0 1rem}}textarea{font-family:var(--font-sans)}}@layer accessibility{.accessibility-wrapper{align-content:center;align-items:center;background:var(--accessibility-wrapper-background);border:unset;border-radius:var(--border-radius);display:grid;font-size:.8rem;font-weight:500;gap:.3rem;grid-template-columns:repeat(4, max-content);margin:0 auto;max-width:var(--max-width);padding:.1rem .3rem .1rem .5rem;position:absolute;right:1rem;top:1.25rem;transition:background .5s}@media(pointer: coarse){.accessibility-wrapper{line-height:normal}}#accessibility-controls{font-family:var(--font-sans-rounded);margin:0 auto;max-width:var(--max-width);padding:0;position:relative;z-index:4}#accessibility-controls:hover .accessibility-wrapper{background:var(--accessibility-wrapper-background-hover);transition:background .25s}#accessibility-controls label{margin:0 .2rem 0 0;padding:0}#accessibility-buttons{display:flex;gap:.5rem;height:80%;width:min-content}.accessibility-label-visible{align-items:center;color:var(--color-body-dark);display:flex;flex-flow:row nowrap;gap:.25rem}.accessibility-label-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.accessibility-button{background:var(--nav-button-background);color:var(--nav-button-text);box-shadow:unset;border:var(--border-size) solid var(--nav-button-border);filter:unset;font-family:Arial,Verdana,sans-serif;font-size:.75rem;line-height:.75rem;margin:0}.accessibility-button:hover{background:var(--nav-button-background-hover);color:var(--nav-button-text-hover);filter:unset}.accessibility-button:active{background:var(--nav-button-background-active);color:var(--nav-button-text-active);filter:unset}@media(pointer: fine){.accessibility-button:active{padding:.1rem .5rem}}@media(pointer: fine){.accessibility-button{border-radius:calc(var(--border-radius)*.5);padding:.1rem .5rem}}}.ars::before{background-color:rgba(0,0,0,0);background-image:url("/img/ars.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.2rem;width:1rem}.blu::before{background-color:rgba(0,0,0,0);background-image:url("/img/bluesky.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.dro::before{background-color:#ff0;mask-image:url("/img/dropout.png");mask-position:center;mask-repeat:no-repeat;mask-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.fli::before{background-color:rgba(0,0,0,0);background-image:url("/img/flickr.png");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.github::before{background-color:rgba(0,0,0,0);background-image:url("/img/GitHub-Mark-64px.png");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.hac::before{background-color:rgba(0,0,0,0);background-image:url("/img/ycom.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.hel::before{background-color:rgba(0,0,0,0);background-image:url("/img/helloplaydate.png");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.ins::before{background-color:rgba(0,0,0,0);background-image:url("/img/instagram.png");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.lin::before{background-color:#fff;background-image:url("/img/linkedin.png");background-position:center;background-repeat:no-repeat;background-size:contain;border-radius:2px;content:"";height:1rem;left:-1.4rem;position:absolute;top:.2rem;width:1rem}.mac::before{background-color:rgba(0,0,0,0);background-image:url("/img/macrumors.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.3rem;width:1rem}.mas::before{background-color:rgba(0,0,0,0);background-image:url("/img/mastodon.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.25rem;width:1rem}.pla::before{background-color:rgba(0,0,0,0);background-image:url("/img/playdate.png");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.25rem;width:1rem}.tec::before{background-color:rgba(0,0,0,0);background-image:url("/img/techdirt.svg");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.2rem;width:1rem}.the::before{background-color:rgba(0,0,0,0);background-image:url("/img/verge.png");background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.45rem;position:absolute;top:.2rem;width:1rem}.thr::before{background-color:rgba(0,0,0,0);background-image:var(--footer-threads);background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.4rem;position:absolute;top:.25rem;width:1rem}.vsc::before{background-color:rgba(0,0,0,0);background-image:var(--footer-vsco);background-position:center;background-repeat:no-repeat;background-size:contain;content:"";height:1rem;left:-1.45rem;position:absolute;top:.2rem;width:1rem}@layer header{header{background:var(--color-page-small-background) var(--header-background);background-position:right top;background-size:cover;height:100%;margin:0;overflow:hidden;padding:0 1rem;position:relative;text-align:left;text-wrap:balance}header.page{background-blend-mode:overlay}@media only screen and (min-width: 768px){header.page{min-height:24rem}}@media only screen and (min-width: 1024px){header.page{min-height:18rem}}header.page-small{color:var(--header-text);min-height:10rem}header.page-small h1{line-height:1.25}header.page-small-black{background:var(--color-page-small-background);color:var(--color-body-light)}header.page-small-black h1{line-height:1.25}header::before{background:var(--noise) repeat;background-size:30px;content:"";filter:contrast(160%) brightness(40%) opacity(40%);height:100%;left:0;mask-image:var(--noise-mask);mask-repeat:repeat;mask-size:30px;position:absolute;top:0;width:100%;z-index:0;z-index:1}header.home::before{background-size:130px;filter:contrast(200%) brightness(60%) opacity(90%)}.header-text-shadow{background:var(--header-text-background);position:absolute;height:100%;left:0;width:100%;top:0;z-index:1}.header-logo{align-items:center;color:var(--header-text);display:block;font-family:var(--font-sans-rounded);font-size:.9rem;font-weight:400;margin:4.5rem auto 0;max-width:var(--max-width);padding:0 0 0 2rem;position:relative;text-shadow:var(--header-logo-shadow);transition:margin .25s;z-index:2}@media screen and (min-width: 350px){.header-logo{margin:1.25rem auto 0}}.header-logo-background::before{background:url("/img/favicon.svg");background-repeat:no-repeat;background-size:contain;border-radius:calc(var(--border-radius)*.5) 0 0 calc(var(--border-radius)*.5);content:"";height:1.65rem;left:0;position:absolute;top:-0.1rem;width:1.65rem}.header-logo-background::after{background:var(--header-logo-after-background);background-repeat:no-repeat;border-radius:calc(var(--border-radius)*.5);box-shadow:unset;color:rgba(0,0,0,0);content:"DHepworth.com";left:0;margin:-0.1rem -0.75rem -0.1rem 0;padding:.1rem .75rem .1rem 1.75rem;position:absolute;top:0;width:max-content;z-index:-1}.header-text-container{display:flex;flex-flow:column nowrap;margin:0 auto;max-width:var(--max-width);padding:10rem 0 1rem;z-index:2}.header-text-container:has(p){padding:10rem 0 1.5rem}.page-small .header-text-container{isolation:isolate;padding-top:3rem;position:relative;z-index:5}.header-featured-tag{border:var(--border-size) solid #fff;border-radius:calc(var(--border-radius)*.5);color:#fff;font-size:50%;line-height:1;padding:.25rem .5rem;text-transform:uppercase;width:max-content;z-index:2}.header-title{font-family:var(--font-sans-rounded);line-height:1.2;margin:1rem 0 0;max-width:45rem;padding:0;text-shadow:0 0 0 rgba(0,0,0,0);transition:text-shadow .25s;width:100%;z-index:2}.header-date{color:var(--header-text);font-size:80%;font-weight:400;letter-spacing:.1rem;line-height:1.25;margin:.5rem 0 0;padding:0;text-transform:uppercase;width:100%;z-index:2}.header-intro{color:var(--header-text);font-size:85%;font-weight:300;max-width:40rem;text-shadow:var(--header-intro-shadow);z-index:2}.header-credit{color:var(--header-text);font-size:75%;font-style:oblique;z-index:2}}@layer navigation{nav{background:var(--color-nav-background);background-blend-mode:overlay;background-position:0% 75%;background-size:cover;border-bottom:1px solid hsla(0,0%,100%,.0666666667);color:var(--color-body-inverted);margin:0;overflow:hidden;padding:.5rem 0;position:relative;text-wrap:balance;width:100%;z-index:3}nav::before{background:var(--noise) repeat;background-size:30px;content:"";filter:contrast(160%) brightness(40%) opacity(40%);height:100%;left:0;mask-image:var(--noise-mask);mask-repeat:repeat;mask-size:30px;position:absolute;top:0;width:100%;z-index:0}nav .nav-skip{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}nav .nav-skip:focus{box-shadow:var(--box-shadow-high);height:max-content;left:1rem;top:-0.5rem;width:max-content;z-index:4}.nav-list{display:flex;flex-flow:row wrap;gap:.5rem 2.25rem;margin:0 auto;max-width:var(--max-width);padding:.5rem 0;position:relative}.nav-list::before{background:radial-gradient(22rem 9rem at 20rem 9rem, rgba(255, 255, 255, 0.4588235294), transparent);background-position:top left;content:"";height:100%;left:-10rem;position:absolute;top:0;width:50rem}.nav-item{font-family:var(--font-sans-rounded);font-size:100%;font-weight:500;list-style:none;margin:0;padding:0;position:relative;text-decoration:underline}.nav-item:focus-within a:focus{outline:var(--outline-size) var(--outline-style) var(--color-outline);outline-offset:-0.5rem}}@layer toolbar{.toolbar{container:nav-container-query/inline-size}.toolbar-wrapper{align-content:center;align-items:center;display:grid;gap:.5rem 2rem;grid-row:1/1;grid-template-columns:[logo] auto [nav] 1fr [accessibility] auto;grid-template-rows:auto;margin:0 auto;max-width:var(--max-width);padding:.5rem 1rem}.header-logo{grid-row:1/1;margin:0}.nav-contents{grid-column:nav/nav;grid-row:1/1}.nav-list{gap:0 1.5em;margin:0;padding:0}.nav-list::before{content:unset}#accessibility-controls{grid-column:accessibility/accessibility;grid-row:1/1;margin:0;width:min-content}.accessibility-wrapper{position:relative;right:unset;top:unset}@container nav-container-query (max-width: 349px){.header-logo{grid-column:logo/span 3}.nav-contents{grid-column:logo/span 3;grid-row:3/3}.nav-list{gap:0 1rem}#accessibility-controls{grid-column:logo/span 3;grid-row:2/2;margin:.25rem 0 0}}@container nav-container-query (min-width: 350px) and (max-width: 735px){.header-logo{grid-column:logo/span 2}.nav-contents{grid-column:logo/span 3;grid-row:2/2}.nav-list{gap:0 1rem}#accessibility-controls{grid-row:1/1}}}@layer main{main{margin:1rem 0 0;padding:0 1rem}main img{border-radius:var(--border-radius)}main ol{padding-left:1.5rem}main ul{padding-left:1.25rem}body.home main{padding:0 1rem}.article-snippet{background:var(--color-blockquote);border-radius:var(--border-radius);border-left:unset;border:var(--border-size) var(--border-style) var(--color-blockquote-border);margin:1rem 0 0;overflow:hidden;padding:.25rem 1.25rem 1.25rem}.article-snippet h4{margin:.15rem 0 0}.article-snippet h5{font-weight:700}.article-snippet ol,.article-snippet ul{margin:1rem 0 0}.utterances{max-width:unset}.main-container{display:block;gap:0 2rem;margin:2rem auto 0;max-width:var(--max-width);padding:0}@media only screen and (min-width: 768px){.main-container{display:grid;grid-auto-rows:auto;grid-template-columns:[primary] minmax(24rem, 60rem) [secondary] minmax(6rem, 20rem);margin:0 auto}}.main-container-post{margin:1.75rem auto 0}.main-container-post blockquote{border-left:.2rem double var(--color-border);margin:1rem 0 0;overflow:hidden;padding:0 0 1.25rem 1.25rem}.main-container-post blockquote.article-snippet{border-left:unset;border:var(--border-size) var(--border-style) var(--color-blockquote-border);margin:1rem 0 0;padding:.25rem 1.25rem 1.25rem}.main-container-post blockquote blockquote{margin-left:0}.main-container-wide{display:block}.main-container-wide .wide-text{max-width:85ch}.posts-header{grid-column:primary/primary;grid-row:1/1;font-size:180%}.posts-home{font-size:100%;grid-column:primary/primary;grid-row:2/3;margin:1.5rem 0 0;padding:0 0 1rem}@media only screen and (min-width: 528px){.posts-home{border-left:var(--border-size) dashed var(--color-post-home-border);padding:0 0 1rem 1rem}}.posts-home .article-home{container:article-home-container-query/inline-size;display:inline-block;width:100%}.posts-home .article-home:not(:first-of-type){border-top:2px dotted var(--color-article-border);margin:1rem 0 0;padding:1.25rem 0 0}.posts-home .date{color:var(--color-date);font-size:80%;margin:0;text-transform:uppercase}.blog-post-header,.important-header{font-size:140%;line-height:1.25;margin:.25rem 0 0;position:relative}.blog-post-header::before,.important-header::before{background:var(--color-post-home-blog);border-radius:var(--border-radius);box-shadow:0 0 .5rem var(--color-post-home-blog);content:" ";height:.5rem;left:-1.275rem;line-height:1rem;position:absolute;top:50%;transform:translateY(-50%);width:.5rem}@media only screen and (max-width: 527px){.important-header::before{content:unset}}.thoughtstream-header{font-size:120%;font-weight:600;margin:.25rem 0 0;position:relative}.thoughtstream-header::before{background:var(--color-post-home-thoughtstream);border-radius:var(--border-radius);box-shadow:0 0 .5rem var(--color-post-home-thoughtstream);content:" ";height:.5rem;left:-1.275rem;line-height:1rem;position:absolute;top:50%;transform:translateY(-50%);width:.5rem}.post-subtitle{font-size:90%;font-weight:300;margin:0}.post-image{width:100%}.post-image img{border-radius:var(--border-radius);display:block;height:auto;width:100%}.post-cite{display:block;font-size:75%;font-style:oblique;line-height:1.5;margin:.5rem 0 0}.blockquote-normal{border-left:.2rem double var(--color-border);margin:1rem 0 0;padding:.25rem 2rem 1rem 1rem}.blockquote-normal p:first-of-type{margin:.5rem 0 0}@container article-home-container-query (max-width: 527px){.article-home-container{display:flex;flex-flow:column wrap}.article-home-content{order:2}.post-image{order:1}}@container article-home-container-query (min-width: 528px){.article-home-container{display:grid;gap:0 2rem;grid-auto-rows:min-content;grid-auto-columns:auto}.article-home-content{grid-column:1/1}.post-image{grid-column:2/2;max-width:200px}}@media only screen and (min-width: 528px){.post-continue-reading{display:none;visibility:hidden}}.article-home-important-hr{border-top:2px dotted var(--color-article-border);margin:1rem 0 0}.article-home-important{align-content:flex-end;background-size:cover;border-radius:var(--border-radius);color:#fff;container:article-home-important-container-query/inline-size;display:inline-block;margin:1.25rem 0 0;min-height:30rem;padding:1rem 1rem 1rem 0;position:relative;text-wrap:balance;width:100%;z-index:0}.article-home-important::before{background:var(--noise) repeat;background-size:30px;content:"";filter:contrast(160%) brightness(40%) opacity(40%);height:100%;left:0;mask-image:var(--noise-mask);mask-repeat:repeat;mask-size:30px;position:absolute;top:0;width:100%;z-index:0;border-radius:var(--border-radius)}.article-home-important::after{background-image:linear-gradient(to top, var(--color-shadow), transparent);border-radius:var(--border-radius);content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.article-home-important .article-home-content{font-size:120%;max-width:35rem;padding:0 0 0 1rem}.article-home-important .important-header{font-family:var(--font-sans-rounded);font-size:260%;font-weight:900;padding:0 0 0 1rem}.article-home-important .important-header::before{font-family:var(--font-sans-rounded)}.article-home-important .date{color:var(--color-body-light);margin:.5rem 0 0 1rem}.article-home-important .post-cite a{color:var(--color-body-light)}.footnotes{font-size:85%;max-width:90ch;text-wrap:pretty}.footnotes ol{margin:1rem 0 0;padding-left:1.1rem}.footnotes li p:first-of-type{margin:0}.further-reading{text-wrap:balance}}@layer aside{.aside-header{font-size:180%}.aside-home{grid-column:secondary/secondary;grid-row:1/span 4;margin-top:4rem}@media only screen and (min-width: 768px){.aside-home{margin-top:0}}.aside-home .aside-container{margin:1.5rem 0 0}.aside-normal{font-size:85%}.aside-normal:first-of-type{margin:1rem 0 0}.aside-normal:first-of-type h3{margin:0}.aside-normal:not(:first-of-type){border-top:var(--border-size) dotted var(--color-border);margin:1.5rem 0 0}.aside-normal:not(:first-of-type) h3{margin:1.5rem 0 0}.aside-normal blockquote{border-left:.2rem double var(--color-border);margin:1rem 0 0;padding:.25rem 2rem 1rem 1rem}.aside-normal blockquote p:first-of-type{margin:.5rem 0 0}.aside-normal figure{margin-inline:0}.aside-normal figure img{border-radius:var(--border-radius)}.aside-normal figcaption{margin-block-start:.5rem}.aside-normal video{border-radius:var(--border-radius);height:auto;width:100%}.aside-post{font-size:85%}.aside-post:first-of-type{margin:1rem 0 0}.aside-post:first-of-type h3{margin:0}.aside-post:not(:first-of-type){border-top:var(--border-size) dotted var(--color-border);margin:1.5rem 0 0}.aside-post:not(:first-of-type) h3{margin:1.5rem 0 0}.aside-post blockquote{border:unset;margin:1rem 0 0;padding:.25rem 1rem 1rem}.aside-post blockquote blockquote{border-left:.2rem double var(--color-border)}.aside-post blockquote p:first-of-type{margin:.5rem 0 0}.aside-post figure{margin-inline:0}.aside-post figure img{border-radius:var(--border-radius)}.aside-post figcaption{margin-block-start:.5rem}.aside-post video{border-radius:var(--border-radius);height:auto;width:100%}.aside-post-header a{display:block;margin:.25rem 0 0}}.page-date{margin:.25rem 0 0}.page-post{isolation:isolate;margin:1.75rem auto 0;z-index:1}.page-post.page-post-main-image-small{background:linear-gradient(to bottom, var(--color-page-small-background), var(--color-page-small-background) 139px, transparent 140px);margin:-1rem 0 0;padding:0 1rem 1rem;position:relative}.page-post.page-post-main-image-small::before{background:#171717;content:"";height:140px;left:0;position:absolute;top:0;width:100%;z-index:0}@media only screen and (max-width: 527px){.page-post.page-post-main-image-small::after{background:var(--noise) repeat;background-size:30px;content:"";filter:contrast(160%) brightness(40%) opacity(40%);height:100%;left:0;mask-image:var(--noise-mask);mask-repeat:repeat;mask-size:30px;position:absolute;top:0;width:100%;z-index:0;background:#171717;content:"";height:140px;left:0;top:0;width:100%;z-index:0}}@media only screen and (min-width: 768px){.page-post.page-post-main-image-small{background:unset;margin:3rem 0 0;padding:0 1rem}.page-post.page-post-main-image-small::before{content:unset}}.page-post-wide.page-post-main-image-small{background:unset}.page-post-wide.page-post-main-image-small::before{background:unset}@media only screen and (min-width: 768px){.page-post-mobile-tablet{display:none;visibility:hidden}}.page-post-desktop{display:none;visibility:hidden}@media only screen and (min-width: 768px){.page-post-desktop{display:block;visibility:visible}}.page-post-headline{line-height:1.25;text-wrap:balance;z-index:6}.page-post-headline img{border-radius:var(--border-radius)}@media only screen and (min-width: 768px){.page-post-headline{display:grid;gap:.25rem 1rem;grid-template-columns:minmax(24rem, 60rem) minmax(6rem, 20rem);grid-template-rows:[titlerow] auto [daterow] auto [imagerow] auto;margin:-325px auto 0;max-width:var(--max-width);z-index:5}}@media only screen and (min-width: 1024px){.page-post-headline{grid-template-columns:[imagecolumn] 500px [titlecolumn] auto;grid-template-rows:14rem 1fr auto;margin:-240px auto 0}}@media only screen and (min-width: 768px){.page-post-headline-no-image-available{display:block;margin:0 auto}}.page-post-headline-image{align-self:flex-end;position:relative;z-index:1}@media only screen and (min-width: 768px){.page-post-headline-image{grid-row:imagerow/imagerow;max-width:60rem}}@media only screen and (min-width: 1024px){.page-post-headline-image{grid-column:imagecolumn/imagecolumn;grid-row:span 3}}.page-post-headline-image img{display:block;height:auto;width:100%}.page-post-headline-title{display:none;margin:0;visibility:hidden}@media only screen and (min-width: 768px){.page-post-headline-title{align-self:flex-end;display:block;grid-row:titlerow/titlerow;visibility:visible}}@media only screen and (min-width: 1024px){.page-post-headline-title{color:var(--color-body);grid-column:titlecolumn/titlecolumn;grid-row:2;max-width:20ch}}.page-post-headline-image-available .page-post-headline-title{color:var(--color-body-light)}@media only screen and (min-width: 1024px){.page-post-headline-image-available .page-post-headline-title{color:var(--color-body)}}.page-post-date{display:none;visibility:visible}@media only screen and (min-width: 768px){.page-post-date{display:block;grid-row:daterow/daterow;visibility:visible}}@media only screen and (min-width: 1024px){.page-post-date{color:var(--color-body);grid-column:titlecolumn/titlecolumn;grid-row:3}}.page-post-headline-image-available .page-post-date{color:var(--color-body-light);margin:0}@media only screen and (min-width: 1024px){.page-post-headline-image-available .page-post-date{color:var(--color-body)}}@layer about{dl.pol-com{background:var(--color-blockquote);border:var(--border-size) solid var(--color-border);border-radius:var(--border-radius);padding:0 1rem 1rem}dl.pol-com dt{font-weight:500;margin:1rem 0 0;width:100%}dl.pol-com dt:nth-of-type(1){padding:0}dl.pol-com dt:not(:nth-of-type(1)){padding:1rem 0 0}dl.pol-com dd{display:block;margin:0;padding-top:.5rem;width:100%}dl.pol-com dd p{margin:0}@media only screen and (min-width: 768px){dl.pol-com dd{align-items:center;display:grid;gap:1rem;grid-template-columns:minmax(5rem, 9.5rem) minmax(5rem, 100%) minmax(5rem, 10rem);justify-content:space-evenly;margin:0;padding-top:0;width:100%}}.profile-container{display:flex;flex-flow:row wrap;gap:0 1rem}@media only screen and (min-width: 528px){.profile-container{display:grid;grid-template-columns:[img] 300px [text] auto}}@media only screen and (min-width: 768px){.profile-container{display:flex;flex-flow:row wrap}}.profile-container .circled{border:var(--border-size) solid var(--color-border);border-radius:calc(var(--border-radius)*.5);color:var(--color-body);margin:.5rem .1rem 0 0;padding:.15rem .5rem}.profile-pic{grid-column:img/img;grid-row:1/1;margin:1rem 0 0;overflow:hidden;position:relative;text-align:left}.profile-pic img{aspect-ratio:3/2;border-radius:var(--border-radius);display:block;height:100%;width:100%}.profile-pic small{border-radius:calc(var(--border-radius)*.5);border-bottom-left-radius:0;border-top-left-radius:2rem;border-top-right-radius:0;background:rgba(0,0,0,0);bottom:0;color:#fff;cursor:pointer;opacity:.5;padding:.5rem .75rem .5rem 1rem;position:absolute;right:0;text-shadow:0 0 0 hsla(0,0%,100%,0);z-index:2}.profile-pic small:hover{animation:1s ease-in 0s infinite alternate running glowing;background:rgba(0,0,0,.4980392157)}.profile-pic small.animation{animation:4s ease-out 0s infinite alternate running glowing}@keyframes glowing{0%{color:#fff;text-shadow:0 0 0 hsla(0,0%,100%,0)}50%{text-shadow:0 0 .25rem #fff}100%{color:var(--color-primary);text-shadow:0 0 0 hsla(0,0%,100%,0)}}.profile-text{grid-column:text/text;grid-row:1/1;text-align:left;width:100%}.profile-text ul,.profile-text li{display:block}.profile-text-header{margin:.5rem 0 0}.profile-text-location{font-size:90%;margin:0}.profile-donations{margin:1.25rem 0 0;padding:0}.profile-donations li{display:table;font-size:80%;list-style:none;margin:.25rem 0 0}@media only screen and (max-width: 527px){.big-five thead th{padding:0;text-align:left}}@media only screen and (min-width: 528px){.big-five thead th:nth-of-type(1){width:50%}}@media only screen and (max-width: 527px){.big-five tbody td:nth-of-type(1)::before{content:"Dimension"}.big-five tbody td:nth-of-type(2)::before{content:"Result"}.big-five tbody td:nth-of-type(3)::before{content:"Percentile"}.big-five tbody td:nth-of-type(3){text-align:center}}@media only screen and (min-width: 528px){.big-five tbody td:nth-of-type(1){width:50%}.big-five tbody td:nth-of-type(2){width:calc(30% - 1rem)}.big-five tbody td:nth-of-type(3){width:calc(20% - 1rem)}}.wishlist-wrapper{display:flex;flex-flow:row wrap;gap:0 2rem}}@layer footer{footer{display:block;font-size:90%;margin:0;overflow:hidden;padding:0 1rem 2rem}footer .footer-about-header,footer .footer-social-header,footer .footer-sites-header,footer .footer-resources-header{font-size:105%;font-weight:600;margin:0;padding:0}.footer-home-container{display:grid;gap:.5rem 1rem;grid-template-areas:"about" "social" "sites" "resources" "hr" "poweredby" "blogroll";margin:0 auto;max-width:var(--max-width);padding:0 2rem;padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);width:100%}@media screen and (min-width: 432px){.footer-home-container{grid-template-areas:"about about about about about" "social sites resources resources resources" "hr hr hr hr hr" "poweredby poweredby poweredby poweredby poweredby" "blogroll blogroll blogroll blogroll blogroll"}}@media screen and (min-width: 768px){.footer-home-container{gap:.5rem 3rem;grid-template-areas:"about about social sites resources" "hr hr hr hr hr" "blogroll blogroll blogroll poweredby poweredby"}}.footer-about{display:flex;flex-flow:row wrap;grid-area:about;margin:1.5rem 0 0;max-width:40rem}.footer-nav-list{align-self:flex-end;display:flex;flex-flow:row wrap;gap:.25rem 2rem;margin:1rem 0 0;padding:0}.footer-nav-item{list-style:none;margin:0;padding:0;position:relative}.footer-nav-item:not(:last-of-type)::after{content:"/";position:absolute;right:-1.25rem;top:0}.cloudflare{margin-left:.5rem;margin-right:.25rem}.neocities{margin-right:.25rem}.to-top-emoji{background:#fff;border-radius:calc(var(--border-radius)*.5);transition:margin 1s}.footer-social{grid-area:social;margin:1.5rem 0 0}.footer-social ul{list-style:none;margin:1rem 0 0 1.5rem;padding:0}.footer-social ul li{list-style:none;position:relative}.footer-sites{grid-area:sites;margin:1.5rem 0 0}.footer-sites ul{list-style:none;margin:1rem 0 0 1.5rem;padding:0}.footer-sites ul li{list-style:none;position:relative}.footer-resources{grid-area:resources;margin:1.5rem 0 0}.footer-hr{grid-area:hr;grid-column:1/-1;margin:.75rem 0 0}@media screen and (min-width: 768px){.footer-hr{margin:1rem 0 0}}.footer-powered{align-content:center;align-items:start;display:flex;gap:calc(var(--gap)*.5);margin:1rem 0 0}@media screen and (min-width: 432px){.footer-powered{grid-column:1/-1;margin:.5rem 0 0}}@media screen and (min-width: 768px){.footer-powered{grid-column:span 2;margin:.5rem 0 0 auto}}@media screen and (min-width: 1280px){.footer-powered{align-items:center}}.footer-powered p{margin:.1rem}@media screen and (min-width: 1280px){.footer-powered p{margin:0}}.footer-powered ul{align-items:center;display:flex;gap:calc(var(--gap)*.5);list-style:none;margin:0;padding:0}.footer-powered ul li{margin:0;padding:0}.footer-powered-title{text-transform:uppercase;font-size:60%}.footer-powered-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px;text-transform:uppercase;font-size:60%}.footer-powered-code{background:var(--color-footer-powered-background);border-radius:var(--border-radius);color:var(--color-footer-powered-text);cursor:pointer;display:block;font-family:var(--font-mono);padding:.25rem .5rem;width:max-content}.footer-blogroll{grid-area:blogroll;margin:0 auto;padding:0;width:100%}.footer-blogroll ul{display:flex;flex-flow:row wrap;gap:.25rem .5rem;list-style:none;margin:.5rem 0 0;padding:.5rem 0 0;text-align:center}.footer-blogroll ul li{margin:0;padding:0}.footer-blogroll ul li:last-child::after{content:""}.footer-blogroll ul li:not(:last-child)::after{color:var(--footer-bullet);content:"•";padding:0 0 0 .5rem}.footer-page{margin:0 auto;padding:0 1rem}.footer-page-container{align-content:center;display:grid;gap:1rem;grid-template-columns:1fr auto;justify-content:space-between;margin:0 auto;max-width:var(--max-width);padding:0}@media only screen and (min-width: 528px){.footer-page-container{display:flex;flex-flow:row wrap}}.footer-page-buttons{display:block;margin:0 auto 0 0}@media only screen and (min-width: 528px){.footer-page-buttons{display:flex;flex-flow:row wrap;gap:0 1rem}}.footer-page-feed{margin:1rem 0 0 auto}.footer-page-feed img{display:block;height:auto;max-width:2rem;width:100%}}@layer resume{.resume-header-container{margin:0 auto;text-align:center}.resume-profile-image{color:rgba(0,0,0,0);height:200px;margin:1rem auto 0;position:relative;text-align:center;width:200px}.resume-profile-image::before{background-image:url("/img/profile-2.jpeg");background-position:45% top;background-repeat:no-repeat;background-size:200%;border-radius:100px;content:"";height:200px;overflow:hidden;position:absolute;left:0;top:0;width:200px;z-index:-2}.resume-profile-image::after{background-color:#fff;background-image:url("/img/linkedin2x.png");background-repeat:no-repeat;background-size:contain;border:4px solid var(--color-body-inverted);border-radius:8px;bottom:0;content:"";height:40px;position:absolute;right:0;width:40px;z-index:-1}.resume-social{margin:0}.resume-social ul{list-style:none;margin:.75rem 0 0 1.5rem;padding:0}.resume-social ul li{list-style:none;position:relative}.resume-social li.blu::before{top:.4rem}.resume-social li.github::before{top:.37rem}.resume-social li.ins::before{top:.37rem}.resume-social li.lin::before{top:.35rem}.resume-social li.mas::before{top:.4rem}.resume-social li.thr::before{top:.35rem}.resume-social li.vsc::before{top:.3rem}}@layer portfolio{.portfolio header{background:linear-gradient(to right, #2f1a1a, #141016)}@media only screen and (min-width: 528px){.portfolio header{min-height:16rem}}@media only screen and (min-width: 768px){.portfolio header{height:40vw;margin:0 auto;max-height:36rem}}@media(max-width: 350px){.portfolio .header-text-shadow{bottom:0;height:10rem;top:unset}}.portfolio .page-small .header-text-container{padding-top:9rem}.portfolio-body-hero{display:block;height:100%;margin:0 auto;max-width:var(--max-width-wide);overflow:hidden;width:100%}@media only screen and (max-width: 527px){.portfolio-body-hero{background:#000;position:absolute;width:calc(100% + 1px)}}@media only screen and (min-width: 768px){.portfolio-body-hero{position:relative}}@media only screen and (min-width: 1441px){.portfolio-body-hero{border-radius:0 0 calc(var(--border-radius)*1.75) calc(var(--border-radius)*1.75)}}.portfolio-body-hero::before{background-image:linear-gradient(to bottom, black, transparent 10rem, transparent),url("/img/portfolio-bg-lights-off.webp");background-position:52% -30px;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}@media only screen and (max-width: 527px){.portfolio-body-hero::before{background-position:52% 0}}@media(min-width: 1440px){.portfolio-body-hero::before{mask-image:linear-gradient(to right, transparent, black 8%, black, black 92%, transparent);mask-repeat:repeat-y;mask-size:cover}}.portfolio-body-hero::after{background-image:url("/img/portfolio-figure-lights-off.webp");background-position:52% -30px;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;mask-image:url("/img/portfolio-matte.png");mask-position:52% -30px;mask-repeat:no-repeat;mask-size:cover;position:absolute;top:0;width:100%;z-index:2}@media only screen and (max-width: 527px){.portfolio-body-hero::after{background-position:52% 0;mask-position:52% 0}}.portfolio header:has(.header-text-shadow) .header-text-shadow{bottom:0;height:50%;top:unset}.portfolio .portfolio-container{text-wrap:balance}@media only screen and (min-width: 768px){.portfolio .portfolio-container{display:grid;gap:var(--gap);grid-template-columns:[left] minmax(10ch, 50ch) [right] auto;grid-template-rows:auto}.portfolio .portfolio-container h1{grid-column:1/1;grid-row:1/1;margin:0}.portfolio .portfolio-container h2{grid-column:1/1;grid-row:2/2;margin:0}.portfolio .portfolio-container p{grid-column:2/2;grid-row:2/2;margin:0}}.portfolio .portfolio-toggle{background:var(--color-body-dark);border-radius:var(--border-radius);color:var(--color-body-light);display:flex;font-size:80%;gap:var(--gap);margin:3rem auto 0;padding:.25rem .75rem;place-content:center;width:max-content}@media only screen and (max-width: 527px){.portfolio .portfolio-toggle{display:none;visibility:hidden}}.portfolio .portfolio-toggle input{cursor:pointer;margin:0 .25rem 0 0}.portfolio .portfolio-toggle label{align-items:center;cursor:pointer;display:flex}.portfolio .portfolio-toggle label:hover{text-decoration:underline}.portfolio .portfolio-toggle p{margin:0}.portfolio .portfolio-card-container{margin:1rem 0 0}@media only screen and (max-width: 527px){.portfolio .portfolio-card-container{margin:3rem 0 0}}.portfolio .portfolio-card{border-radius:var(--border-radius);break-inside:avoid;height:min-content;margin:0 0 1rem;text-align:center;width:auto}.portfolio .portfolio-card img,.portfolio .portfolio-card video{cursor:pointer;display:block;height:auto;margin:0;object-fit:cover}.portfolio .portfolio-card-body{background:var(--color-body-dark);color:#fff;display:flex;flex-flow:column wrap;gap:0;margin:0;padding:1rem;text-align:left}.portfolio .portfolio-card-image{display:block;margin:0;padding:0}.portfolio .portfolio-card-image:hover img{filter:contrast(120%)}.portfolio .portfolio-card-company{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:hsla(0,0%,100%,.8666666667);border-radius:var(--border-radius);box-shadow:var(--box-shadow-high);color:#000;font-size:70%;font-style:normal;font-weight:500;padding:.25rem .5rem;text-shadow:0 1px #fff;width:max-content}.portfolio .portfolio-card-header{line-height:1.5;margin:.75rem 0 0;text-align:left}.portfolio .portfolio-card-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.portfolio .portfolio-card-title{color:#ffd;font-size:clamp(4rem,20vw,20rem);position:absolute;left:50%;text-align:center;transform:translateX(-50%);top:8%;width:100%}.portfolio .portfolio-toggle:has(input[value=columns]:checked)+.portfolio-card-container{column-gap:1rem;columns:4 15rem}.portfolio .portfolio-toggle:has(input[value=columns]:checked)+.portfolio-card-container .portfolio-card{background:var(--portfolio-card-bg-columns);display:inline-block;overflow:hidden}.portfolio .portfolio-toggle:has(input[value=columns]:checked)+.portfolio-card-container .portfolio-card img,.portfolio .portfolio-toggle:has(input[value=columns]:checked)+.portfolio-card-container .portfolio-card video{border-radius:var(--border-radius) var(--border-radius) 0 0;padding:1px 1px 0;width:100%}.portfolio .portfolio-toggle:has(input[value=columns]:checked)+.portfolio-card-container .portfolio-card-company{margin:-1.9rem 0 0}.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card{background:var(--portfolio-card-bg-columns);overflow:visible}@media only screen and (min-width: 528px){.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card{background:var(--portfolio-card-bg-list);display:flex}}@media only screen and (max-width: 527px){.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card img,.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card video{border-radius:var(--border-radius) var(--border-radius) 0 0;padding:1px 1px 0;width:100%}}@media only screen and (min-width: 528px){.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card img,.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card video{border-radius:var(--border-radius) 0 0 var(--border-radius);max-width:250px;padding:1px 0 1px 1px;position:sticky;top:0;width:auto}}.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card-body{border-radius:0 var(--border-radius) var(--border-radius) 0;width:100%}.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card-image{position:relative}@media only screen and (max-width: 527px){.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card-company{margin:-1.9rem 0 0}}@media only screen and (min-width: 528px){.portfolio .portfolio-toggle:has(input[value=rows]:checked)+.portfolio-card-container .portfolio-card-company{margin:0}}}@layer lightbox{.lightbox-figure{margin:1rem auto 0}.lightbox-figure img{margin:0 auto}.lightbox-figure figcaption{background:var(--color-shadow);border-radius:var(--border-radius);color:var(--color-body-light);font-size:75%;margin:1rem auto 0;max-width:max-content;padding:.1rem .75rem;text-align:center;width:auto}}@layer pagination{.pagination{border-top:var(--border-size) dotted var(--color-border);display:flex;flex-flow:row nowrap;gap:0 .5rem;hanging-punctuation:none;list-style:none;margin:1rem 0 0;padding:.5rem 0 0;width:auto}.pagination .element{flex:0 0 auto;margin:0;padding:.5rem .75rem}}/*# sourceMappingURL=main.css.map */