:where(.site,.archive-page){--aalto-text-light-primary: #25251f;--aalto-text-light-secondary: #67655f;--aalto-text-dark-primary: #eee7dc;--aalto-text-dark-secondary: #b9b1a6;--aalto-text-primary: var(--aalto-text-light-primary);--aalto-text-secondary: var(--aalto-text-light-secondary)}.site--dark,.archive-page{--aalto-text-primary: var(--aalto-text-dark-primary);--aalto-text-secondary: var(--aalto-text-dark-secondary)}:where(.site,.archive-page){--site-stage: #262421;--site-paper: #f5f1e8;--site-ink: var(--aalto-text-light-primary);--site-text-description: #a1a1a1;--site-blue: #173df5;--site-accent: var(--color-supreme);--site-bg: var(--site-paper);--site-line: color-mix( in srgb, var(--aalto-text-primary) 10%, var(--site-bg) );--site-model-surface: #302d29;--site-model-wire: #eee7dc;--site-model-paper-surface: #c4bbaa;--site-model-paper-wire: #514d45;--site-surface-card: color-mix( in srgb, var(--aalto-text-primary) 3%, var(--site-bg) );--site-surface-hover: color-mix( in srgb, var(--aalto-text-primary) 7%, var(--site-bg) );--site-surface-control: var(--site-surface-hover);--site-surface-selected: var(--aalto-text-primary);--site-on-selected: var(--site-bg);--site-control-disabled-fg: var(--aalto-text-secondary);--site-control-disabled-bg: transparent;--site-control-disabled-border: var(--site-line);--site-control-disabled-opacity: .55;--site-radius-image: 3px;--site-radius-card: var(--site-radius-image);--site-radius-screen: 10px;--site-radius-panel: 16px;--site-radius-pill: 999px;--site-border-width: 1px;--site-focus-width: 2px;--site-focus-offset: 3px;--site-space-1: .25rem;--site-space-2: .5rem;--site-space-3: .75rem;--site-space-4: 1rem;--site-space-5: 1.25rem;--site-space-6: 1.5rem;--site-space-8: 2rem;--site-space-10: 2.5rem;--site-space-12: 3rem;--site-space-16: 4rem;--site-control-height: 44px;--site-wordmark-height: 2rem;--site-control-padding-y: .625rem;--site-control-padding-x: .875rem;--site-control-gap: var(--site-space-2);--site-control-icon: 18px;--site-control-track-inset: 4px;--site-meta-label-width: 5.5rem;--site-meta-row-gap: .625rem;--site-page-gutter: 3.5rem;--site-page-max-width: 1560px;--site-page-start: var(--site-space-8);--site-page-end: clamp(3rem, 6vw, 6rem);--site-header-height: 5rem;--site-header-inset: var(--site-space-4);--site-footer-inset: clamp(2.5rem, 5vw, 5rem);--site-section-space: clamp(4rem, 9vw, 9rem);--site-media-gap: clamp(2rem, 5vw, 5rem);--site-section-heading-gap: clamp(2rem, 4vw, 4rem);--site-details-gap: clamp(1.5rem, 4vw, 4rem);--site-duration-feedback: .18s;--site-duration-shift: .24s;--site-duration-reflow: .42s;--site-duration-reveal: .7s;--site-reveal-stagger: .1s;--site-reveal-distance: 12px;--site-ease-feedback: ease-out;--site-ease-shift: cubic-bezier(.2, .7, .2, 1);--site-ease-reveal-gsap: power2.out;--site-ease-reflow-gsap: power2.inOut}.site--dark{--site-bg: var(--site-stage)}.project-showcase{--project-rhythm-1: .5rem;--project-rhythm-2: .8125rem;--project-rhythm-3: 1.3125rem;--project-rhythm-4: 2.125rem;--project-rhythm-5: 3.4375rem;--project-rhythm-6: 5.5625rem;--project-rhythm-7: 9rem;--project-columns: minmax(0, 1.618fr) minmax(0, 1fr);--project-columns-reverse: minmax(0, 1fr) minmax(0, 1.618fr);--project-section-space: clamp( var(--project-rhythm-5), 8vw, var(--project-rhythm-7) );--project-media-gap: clamp( var(--project-rhythm-3), 4vw, var(--project-rhythm-5) );--project-heading-gap: clamp( var(--project-rhythm-4), 4vw, var(--project-rhythm-5) );--project-media-inset: clamp(0rem, 4vw, var(--project-rhythm-5));--project-copy-measure: 48ch;--project-caption-measure: 44ch;--project-media-max: 75rem;--project-phone-min: 15rem;--project-meta-value-min: 12rem;--project-icon-width: 20rem;--project-model-min: 18rem;--project-model-max: 38rem;--project-model-aspect: 1.618;--site-duration-reveal: .56s;--site-reveal-stagger: 70ms;--site-reveal-distance: 12px}@media(max-width:1023px){:where(.site,.archive-page){--site-page-gutter: 2rem}}@media(max-width:700px){:where(.site,.archive-page){--site-media-gap: var(--site-space-8);--site-section-space: var(--site-space-16);--site-radius-panel: 12px}.project-showcase{--project-media-inset: 0rem;--project-model-aspect: 1}}@media(max-width:600px){:where(.site,.archive-page){--site-wordmark-height: 1.875rem;--site-page-gutter: 1.25rem;--site-page-start: var(--site-space-6)}}@media(max-width:400px){:where(.site,.archive-page){--site-control-padding-x: .625rem}}@media(prefers-reduced-motion:reduce){:where(.site,.archive-page),.project-showcase{--site-duration-feedback: 0ms;--site-duration-shift: 0ms;--site-duration-reflow: 0ms;--site-duration-reveal: 0ms;--site-reveal-stagger: 0ms;--site-reveal-distance: 0px}}.personal{background:var(--site-bg);color-scheme:dark}.personal-body{background:var(--site-bg);color:var(--aalto-text-primary);font:var(--type-body)}.personal-body a{color:inherit;text-decoration:none}.personal-body a:where(:not(.site-wordmark):is(:hover,:focus-visible)){text-decoration:underline;text-underline-offset:.22em}.personal-body :focus-visible{outline:var(--site-focus-width) solid currentColor;outline-offset:var(--site-focus-offset);border-radius:var(--site-radius-image)}.personal-body ::selection{background:var(--aalto-text-primary);color:var(--site-bg)}.personal-shell{width:min(100% - var(--site-page-gutter) * 2,42rem);margin-inline:auto}.personal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--site-space-6);padding-block:var(--site-space-8);font:var(--type-caption)}.personal-header a{display:inline-flex;align-items:center;gap:var(--site-space-2);min-height:var(--site-control-height)}.personal-header .site-header__author{color:var(--aalto-text-secondary)}.personal-main{padding-block:clamp(2.5rem,8vw,6rem) var(--site-section-space)}.personal-heading{margin-bottom:var(--site-space-12)}.personal-heading h1{margin:0;font:var(--type-section);letter-spacing:var(--type-tracking-section);text-wrap:balance;overflow-wrap:break-word}.personal-category,.personal-meta{color:var(--aalto-text-secondary);font:var(--type-caption)}.personal-category{margin:0 0 var(--site-space-3)}.personal-meta{display:flex;flex-wrap:wrap;gap:var(--site-space-2) var(--site-space-5);margin-top:var(--site-space-5)}.personal-siblings{display:flex;flex-wrap:wrap;gap:0 var(--site-space-5);margin-top:var(--site-space-5);color:var(--aalto-text-secondary);font:var(--type-caption)}.personal-siblings a{display:inline-flex;align-items:center;min-height:var(--site-control-height)}.personal-siblings a[aria-current=page]{color:var(--aalto-text-primary);text-decoration:underline;text-underline-offset:.22em}.personal-empty{color:var(--aalto-text-secondary);margin:0}.personal-post-year{display:grid;grid-template-columns:var(--site-meta-label-width) minmax(0,1fr);align-items:baseline;column-gap:var(--site-space-8)}.personal-post-year+.personal-post-year{margin-top:var(--site-space-12);padding-top:var(--site-space-8);border-top:var(--site-border-width) solid var(--site-line)}.personal-post-year-heading{margin:0;color:var(--aalto-text-secondary);font:var(--type-body);font-variant-numeric:tabular-nums}.personal-posts{padding:0;margin:0;list-style:none}.personal-posts li+li{margin-top:var(--site-space-8)}.personal-posts a{display:block;padding-block:var(--site-space-3)}.personal-posts h3{margin:0;font:var(--type-lead);overflow-wrap:anywhere}.personal-posts time{display:block;color:var(--aalto-text-secondary);margin-top:var(--site-space-2);font:var(--type-caption)}.personal-prose{font:var(--type-body);overflow-wrap:break-word}.personal-prose>*+*{margin-top:1.5em}.personal-prose :is(h2,h3){margin-top:2em;font:var(--type-lead)}.personal-prose a{text-decoration:underline;text-underline-offset:.22em}.personal-prose :is(img,video){max-width:100%;height:auto}.personal-prose pre{max-width:100%;overflow-x:auto;padding:var(--site-space-4);background:var(--site-surface-card);border-radius:var(--site-radius-image)}.personal-prose blockquote{margin-inline:0;padding-left:var(--site-space-5);border-left:2px solid var(--site-line)}@media(max-width:600px){.personal-post-year{grid-template-columns:minmax(0,1fr);row-gap:var(--site-space-3)}.personal-header{padding-block:var(--site-space-4)}}.personal-shell--wide{width:min(100% - var(--site-page-gutter) * 2,76rem)}.personal-heading--title h1{font:var(--type-title);letter-spacing:var(--type-tracking-title)}
