body{display:flex;flex-flow:column nowrap;font-family:var(--theme--text--FontFamily);font-size:18px;line-height:var(--theme--text--LineHeight);min-block-size:100vh;overflow-y:auto;scroll-padding-block-start:20px;scroll-snap-type:y proximity;&:before{--grid-size:40px;background-color:transparent;background-image:linear-gradient(to right,var(--theme--surface--color) 1pt,transparent 1pt),linear-gradient(to bottom,var(--theme--surface--color) 1pt,transparent 1pt);background-size:40px 40px;background-size:var(--grid-size) var(--grid-size);block-size:100vh;content:"";display:block;inline-size:100vw;inset:0;position:fixed;z-index:-2}>main{display:flex;flex-flow:column nowrap;flex-grow:1}@media print{font-size:14px}}#background{block-size:auto;inline-size:100%;inset-block-start:0;inset-inline:0;position:fixed;z-index:-1}button::-moz-focus-inner{border:0;padding:0}:is(img,embed,object,video){block-size:auto;max-inline-size:100%}:is(img){aspect-ratio:1/1;aspect-ratio:var(--aspect-ratio,1/1);block-size:auto;border:var(--image--BorderWidth,0) solid var(--image--BorderColor,var(--theme--ui--color--subtle));border-radius:var(--image--BorderRadius,var(--theme--BorderRadius));inline-size:250px;inline-size:var(--image-size,250px)}:is(iframe){block-size:auto;inline-size:min(100%,100%);inline-size:min(var(--video--Width,100%),100%);&:where([src*="youtube.com"]){aspect-ratio:16/9}}:is(svg){align-self:center;block-size:auto;fill:currentColor;inline-size:100%;min-block-size:2.5em}:is(hr){border:none;border-block-start:2px solid var(--theme--ui--color);inline-size:100%}:where(p){font-size:clamp(1rem,.96rem + .22cqi,1.125rem);font-weight:var(--theme--FontWeight);line-height:var(--theme--text--LineHeight);margin:0;:is(b,strong){font-weight:var(--theme--FontWeight--semi-bold)}&:is(.extra){font-size:1.2em;:is(b,strong){font-weight:var(--theme--FontWeight--medium)}}:is(.underline){font-style:normal;text-decoration:underline;text-decoration-color:var(--theme--ui--color);text-decoration-thickness:.2ex}}:where(.title,.headline),:where(h1,h2,h3,h4,h5,h6){color:var(--theme--heading--Color);font-family:var(--theme--heading--FontFamily);line-height:var(--theme--heading--LineHeight);margin-block:.8em .4em;&:where(:not(:has(+p))){margin-block-end:0}&:first-child{margin-block-start:0}&:where(.accent){color:var(--theme--heading--Color--accent)}a{color:inherit;font-weight:inherit;text-decoration-color:color-mix(in sRGB,var(--theme--ui--color--subtle),#000 20%);text-decoration-line:underline;text-decoration-style:solid;&:hover{color:var(--theme--link--Color--hover);text-decoration-color:var(--theme--link--Color--hover)}&:where(:focus,:focus-visible){color:var(--theme--link--Color--focus);text-decoration:none}}}.no-wrap{white-space:nowrap;@media screen and (max-width:612px){white-space:normal}}.title{font-family:var(--theme--heading--FontFamily);font-size:1em;font-size:var(--title--FontSize,1em);font-weight:var(--theme--FontWeight--medium);inline-size:-moz-max-content;inline-size:max-content;line-height:var(--title--LineHeight,var(--theme--heading--LineHeight));max-inline-size:100%;padding:0;padding:var(--title--Padding,0);text-transform:uppercase;text-transform:var(--title--TextTransform,uppercase);&:is(.highlight){color:contrast-color(var(--theme--ui--color));position:relative;transform-origin:left;z-index:1;a-card[video] &{--animation-direction:1;transform-origin:right;&:before{inset-inline-start:-.5em}}&:before{background:var(--theme--ui--color);block-size:2em;content:"";display:block;inline-size:100cqi;inset-block-start:-.5em;inset-inline-end:-.5em;pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion:reduce){@supports (animation-timeline:scroll()){animation:roll-in linear both;animation:var(--animation,roll-in) linear both;animation-range:0 30vh;animation-timeline:view()}@supports not (animation-timeline:scroll()){animation:roll-in .8s linear forwards;animation:var(--animation,roll-in) .8s linear forwards}}}a{text-decoration-color:color-mix(in hsl,var(--theme--ui--color) 80%,transparent)}&:not(:only-child){margin-block-end:1em}}}.headline{font-size:calc(1em + 2.4cqi);font-size:var(--headline--FontSize,calc(1em + 2.4cqi));font-weight:var(--theme--FontWeight--light);line-height:var(--theme--text--LineHeight);@container (width <= 500px){--headline--FontSize:calc(1.2em + 2.6cqi)}@media (prefers-color-scheme:dark){font-weight:var(--theme--FontWeight)}&.company-name{margin-block:0}}.headline-summary{font-family:var(--theme--heading--FontFamily);font-size:1.4em;font-size:var(--headline-summary--FontSize,1.4em);font-weight:var(--theme--FontWeight--light);line-height:var(--theme--text--LineHeight);@container box (width <= 500px){--headline-summary--FontSize:1.2em;font-weight:var(--theme--FontWeight)}}.signature{font-family:var(--theme--text--FontFamily--signature);font-size:1.2em;font-weight:var(--theme--FontWeight--medium);:is(b,strong){font-weight:var(--theme--FontWeight--bold)}}.date{font-weight:var(--theme--FontWeight--light)}:is(ul,ol){margin:0;&:not(:last-child){margin-block-end:1.5em}}li{margin:0;&:not([class]){font-size:.8em;line-height:var(--theme--LineHeight)}}li:has(b,strong):not(:last-child){margin-block-end:.2em}li :is(b,strong){font-size:.9em;font-weight:var(--theme--FontWeight--medium);-webkit-text-decoration:solid underline var(--theme--ui--color);text-decoration:solid underline var(--theme--ui--color);text-decoration-thickness:var(--theme--BorderWidth)}blockquote{background-color:color-mix(in sRGB,var(--theme--ui--color) 10%,var(--theme--surface--color));border-inline-start:4px solid var(--theme--ui--color);border-radius:var(--theme--BorderRadius);box-sizing:border-box;font-size:.9em;inline-size:min(100%,-moz-max-content);inline-size:min(100%,max-content);margin-block-start:2em;margin-inline-start:0;max-inline-size:calc(100% - 2em);padding:1em;position:relative;&:is(h1,h2,h3,h4,h5,h6):first-child{padding-block-start:2.5em}strong{font-weight:var(--theme--FontWeight--extra-bold)}:is(pre,code){max-inline-size:100%;overflow-x:auto}h4{background-color:var(--theme--surface--color--accent);border-radius:0 var(--theme--BorderRadius) 0 var(--theme--BorderRadius);box-shadow:0 0 .8em 0 color-mix(in sRGB,var(--theme--text--Color) 10%,transparent);color:#fff;display:inline-block;font-size:1.1em;inset-block-start:-.4em;inset-inline-start:.8em;margin:0;padding:.2em .5em;position:absolute}}details{background-color:var(--theme--surface--color);border-radius:var(--theme--BorderRadius);color:var(--theme--text--Color);inline-size:100%;max-inline-size:100%;min-inline-size:var(--theme--content--MaxWidth);summary{align-items:center;background-color:var(--theme--surface--color--emphasis);container-type:size;cursor:pointer;display:flex;justify-content:space-between;list-style:none;padding:1em;position:relative;&::-webkit-details-marker,&::marker{display:none}&:after{--details--marker--size:2px;block-size:.5em;border-style:solid;border-width:0 2px 2px 0;border-width:0 var(--details--marker--size) var(--details--marker--size) 0;content:"";display:inline-block;inline-size:.5em;transform:rotate(45deg);transition:.3s}}&:where([open]) summary:after{transform:rotate(-135deg)}}:where(.content){max-inline-size:min(80ch,100%);>:not(:last-child){margin-block-end:1em}section:has(+section){margin-block-end:2em}}:is(.stacked){display:flex;flex-flow:column nowrap;row-gap:var(--theme--content--space)}:is(.columns){align-items:center;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));justify-content:center;grid-gap:2em;gap:2em}:is(.container){padding-block:var(--theme--container--space)}:is(.flex){display:flex;flex-flow:row nowrap;gap:calc(var(--theme--content--space)*2)}:is(.floated){:is(.float){float:inline-start;margin-block-end:.5em;margin-inline-end:1em}.content:has(+.content){margin-block-end:var(--theme--content--space)}}:is(.row){&:where(:not(a-box)){display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card--Width),1fr));grid-gap:var(--theme--content--space);gap:var(--theme--content--space)}}.skip-link{inset-block-start:1em;inset-inline-start:1em;position:absolute;&:not(:focus){block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin-block:-1px;margin-inline:-1px;overflow:hidden;padding:0;white-space:nowrap}}.navigation{flex-grow:1;ul{color:inherit;display:inline-flex;flex-wrap:wrap;gap:calc(var(--theme--content--space)*2);list-style-type:none;margin:0;padding:0}.cta-button{transition:background .2s ease-out,color .2s ease-out;transition:background var(--cta-button--timing,.2s) var(--cta-button--easing,ease-out),color var(--cta-button--timing,.2s) var(--cta-button--easing,ease-out)}ul:not(:has(:hover)) [aria-current=page] .cta-button{--cta-button--timing:400ms;--cta-button--easing:ease-in;background:var(--theme--ui--color--hover)}}.listing{--band--body--Direction:column;--band--body--AlignItems:center}.cta{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:none;border:none;cursor:pointer;display:inline-block;font-family:inherit;font-size:100%;line-height:var(--theme--text--LineHeight);margin:0;padding:0;text-decoration:none;a{color:var(--theme--link--Color);font-family:var(--theme--heading--FontFamily);font-size:1em;&:hover{color:var(--theme--link--Color--hover)}&:focus{color:var(--theme--link--Color--focus)}&:active{color:var(--theme--link--Color--active)}&:focus-visible{border-radius:calc(var(--theme--BorderRadius)/2);outline:2px solid var(--theme--link--Color--focus);outline-offset:4px;outline-offset:var(--theme--OutlineOffset,4px)}}}.cta-link{font-size:1.1em;text-decoration:underline;text-decoration-color:var(--theme--link--Color);text-decoration-thickness:.2ex;text-underline-offset:.2ex;&:is([href^=http]):after{content:"↬";display:inline-block;margin-inline-start:.25em;transition:transform .2s ease-in-out}&:is(:hover,:focus,:focus-visible):after{transform:translateX(.25em)}}:is(.cta-button){align-self:start;background:var(--theme--surface--color);border-color:var(--theme--ui--color);border-radius:var(--theme--BorderRadius);border-style:solid;border-width:var(--theme--BorderWidth--thin);color:inherit;cursor:pointer;display:inline-block;margin:0;padding:.5em 1em;text-decoration:none;&:hover{background:var(--theme--ui--color--hover)}&:is(:focus,:focus-visible){background:var(--theme--ui--color--active);&:is(.active,[aria-current]){outline-offset:var(--theme--OutlineOffset)}}&:focus-visible{border-radius:var(--theme--BorderRadius);outline:var(--theme--OutlineWidth) solid var(--theme--ui--color--active);outline-offset:var(--theme--OutlineOffset,var(--theme--OutlineWidth))}&:active{background-color:var(--theme--ui--color--active)}}.metadata{display:flex;flex-flow:row wrap;flex-grow:1;gap:calc(var(--theme--content--space)/2);inline-size:100%;.author{font-weight:var(--theme--FontWeight--extra-light);&:has(+.date):after{color:inherit;content:"•";display:inline-block;margin-inline-start:var(--theme--content--space)}.name{font-weight:400}}.cta{flex-grow:1;margin-inline:.5em;text-align:end}@media screen and (max-width:768px){flex-direction:column;flex-wrap:nowrap;.author:has(+.date):after{display:none}.date{flex-grow:1;margin-inline-end:2em}.cta{margin-inline-start:0}}}a-band:where(:has(.title.highlight[slot=header]+:is(a-card,a-box):is([slot=header]))){--band--header--Gap--vertical:calc(var(--theme--content--space)*2)}a-band:where(#intro){--band--Background:color-mix(in sRGB,var(--theme--surface--color) 60%,transparent)}a-card{>:first-child{margin-block-start:0}>:last-child{margin-block-end:0}&:where([slot=header]){--card--Background:color-mix(in sRGB,var(--theme--surface--color) 50%,transparent);--card--BorderWidth:var(--theme--BorderWidth--thin)}&:is(.decorative){--card--header--Gap--vertical:0;--card--header--BorderWidth:var(--theme--BorderWidth--thin);--card--Width:100%;border:var(--theme--BorderWidth--thin) solid var(--theme--ui--color--subtle);border-radius:var(--theme--BorderRadius);box-shadow:5px 5px 10px 0 color-mix(in sRGB,var(--theme--text--Color) 10%,transparent);padding:var(--theme--container--space)}&:is(.contact-card){--card--body--JustifyContent:center;--image-size:calc(120px + 5cqi);--card--Width:80ch;max-inline-size:80ch;picture{float:inline-end;margin-block-end:0;margin-block-start:-50px;img{shape-image-threshold:50%;shape-margin:.1em;shape-outside:var(--image-url)}}@media screen and (max-width:768px){.content p:first-of-type{margin-block-start:0}}}&:is(.headshot-card){--card--Width:250px;--card--BorderRadius:2em 0;--card--body--AlignItems:center;--card--footer--AlignItems:center}&:has(.mobile-headshot){--mobile-image-size:80px;--headline--FontSize:calc(1em + 2cqi);--headline-summary--FontSize:calc(0.8em + 1cqi)}}@container card (inline-size <= 500px){a-card:is(.contact-card) picture{display:none}}a-box{&:is(.row){--box--body--Direction:row;--box--body--JustifyContent:space-between;&:has(>:only-child){--box--body--JustifyContent:center}:is(.content:not(:only-of-type)){inline-size:calc(50% - var(--theme--content--space))}:where(.content:is(:only-of-type)){inline-size:var(--theme--content--MaxWidth)}}}#header{--image-size:min(calc(80px + 5cqi),120px);@media screen and (max-width:612px){--image-size:80px;--band--footer--JustifyContent:center;.icon-group{display:none}}}.masthead{--band--body--AlignItems:center;--band--footer--Direction:row;--band--footer--Wrap:nowrap;--band--footer--JustifyContent:space-between;--band--footer--AlignItems:center;--band--Grid--areas:"body" "footer";--band--Grid--rows:1fr auto;--band--Width:var(--theme--content--MaxWidth);--headline--FontSize:3.4em;--headline-summary--FontSize:1.4em;>div:first-child{flex-grow:1;a:first-child{--theme--BorderRadius:var(--theme--BorderRadius--circle);max-inline-size:var(--image-size)}}.headline{line-height:1.1}}#about{--card--Width:100ch;--card--body--AlignItems:center;--card--footer--Direction:row;--card--footer--Wrap:wrap;--card--footer--AlignItems:baseline;--card--footer--JustifyContent:space-around}#services{--card--Width:50ch}#consulting{--card--Width:365px;--band--body--Gap--vertical:calc(var(--theme--container--space)*2);--band--body--Width:var(--theme--content--MaxWidth);.presentations,.projects{inline-size:100%;padding-block-start:calc(var(--theme--container--space)*2);.row{font-size:.8em;padding-block-start:var(--theme--content--space)}}.projects{--box--body--Direction:row;--box--body--Wrap:wrap;a-card{--card--body--Display:flex;--card--footer--BorderWidth:0;flex-basis:min(360px,100%);flex-grow:1}.headline a{text-decoration:none}}.presentations{--card--Width:200px}}:is(.mobile-contacts),div[slot=header]:has(.mobile-headshot){display:none}:is(.mobile-headshot){--image--BorderRadius:50%;--image-size:var(--mobile-image-size)}:is(.mobile-contacts){justify-content:space-between}@container card (inline-size < 650px){.floated .float{display:none}:is(.mobile-headshot,.mobile-contacts){display:flex}}