@media(max-width:700px),(hover:none),(pointer:coarse){.eye-home-page .eye-study{display:none}html.eye-home-page{scroll-snap-type:none}}.eye-home-page{scroll-snap-type:y mandatory}.eye-home-page.home-entrance-seen{scroll-snap-type:none}.home-entrance-seen .eye-study{display:none}.eye-home-page>body>.eye-study,.eye-home-page>body>.site-shell{scroll-snap-align:start;scroll-snap-stop:always}.eye-study{position:relative;z-index:4;height:100svh;overflow:hidden;background:var(--site-bg);color:var(--aalto-text-primary);--eye-diameter: clamp(96px, 22.2vmin, 204px)}.eye-home-page .project-gallery{position:relative;z-index:4;background:var(--site-bg)}.eye-study__origin{position:absolute;top:49%;left:50%;width:calc(var(--eye-diameter) * 1.628571);aspect-ratio:1;transform:translate(-50%,-50%)}.eye-study__orb{position:relative;width:100%;height:100%}.eye-study__orb canvas{position:relative;display:block;width:100%;height:100%}.eye-study__fallback{position:absolute;inset:19.3%;box-sizing:border-box;background:var(--aalto-text-primary);border-radius:50%;overflow:hidden}.eye-study__fallback:before,.eye-study__fallback:after{content:"";position:absolute;background:var(--site-bg);border-radius:50%}.eye-study__fallback:before{inset:23.3%}.eye-study__fallback:after{width:127%;height:127%;left:-13.5%;top:-42%}.eye-study__orb[data-renderer=webgl] .eye-study__fallback{visibility:hidden}@media(prefers-reduced-motion:reduce){.eye-home-page{scroll-snap-type:none}.eye-study__fallback:after{display:none}}.about-section[data-astro-cid-y3bo467a]{--about-gap: var(--site-details-gap);margin-top:var(--project-section-space);padding-top:clamp(var(--site-space-12),6vw,6rem);border-top:1px solid var(--site-line);scroll-margin-top:var(--site-page-start)}.about-section__intro[data-astro-cid-y3bo467a],.about-section__details[data-astro-cid-y3bo467a]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--about-gap);align-items:start}.about-section__copy[data-astro-cid-y3bo467a]{grid-column:span 2;max-width:36rem}h2[data-astro-cid-y3bo467a]{margin:0;font:var(--type-section);letter-spacing:var(--type-tracking-section);text-wrap:balance}.about-section__summary[data-astro-cid-y3bo467a]{margin-top:var(--site-space-6)}p[data-astro-cid-y3bo467a]{margin:0;text-wrap:pretty}.about-section__lead[data-astro-cid-y3bo467a]{max-width:30ch;font:var(--type-lead)}.about-section__bio[data-astro-cid-y3bo467a]{max-width:49ch;margin-top:var(--site-space-5);color:var(--aalto-text-secondary);font:var(--type-body)}.about-section__photo[data-astro-cid-y3bo467a]{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;object-position:center 34%;border-radius:var(--gallery-card-radius)}.about-section__details[data-astro-cid-y3bo467a]{margin-top:clamp(var(--site-space-10),4vw,var(--site-space-16));padding-top:var(--site-space-8);border-top:1px solid var(--site-line)}h3[data-astro-cid-y3bo467a]{margin:0 0 var(--site-space-4);color:var(--aalto-text-secondary);font:var(--type-label);letter-spacing:normal}ul[data-astro-cid-y3bo467a]{display:grid;gap:var(--site-space-2) var(--about-gap);margin:0;padding:0;list-style:none;font:var(--type-body)}.about-section__personal[data-astro-cid-y3bo467a]{min-width:0}.about-section__personal[data-astro-cid-y3bo467a] ul[data-astro-cid-y3bo467a]{gap:0}.about-section__personal[data-astro-cid-y3bo467a] a[data-astro-cid-y3bo467a]{display:inline-flex;align-items:center;min-height:var(--site-control-height);text-decoration:underline;text-decoration-color:var(--site-line);text-underline-offset:.22em;text-decoration-thickness:1px}.about-section__personal[data-astro-cid-y3bo467a] a[data-astro-cid-y3bo467a]:is(:hover,:focus-visible){text-decoration-color:currentColor}.about-section__clients[data-astro-cid-y3bo467a] ul[data-astro-cid-y3bo467a]{grid-template-columns:minmax(0,1fr)}@media(max-width:700px){.about-section__intro[data-astro-cid-y3bo467a],.about-section__details[data-astro-cid-y3bo467a]{grid-template-columns:minmax(0,1fr);gap:var(--site-space-8)}.about-section__copy[data-astro-cid-y3bo467a],.about-section__clients[data-astro-cid-y3bo467a]{grid-column:auto;max-width:none}.about-section__photo[data-astro-cid-y3bo467a]{aspect-ratio:4 / 3;object-position:center 32%}}.site-shell>.project-gallery{padding-top:0}.project-gallery [data-project-gallery]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;scroll-margin-block-start:var(--site-page-start)}.project-gallery .project-grid{grid-column:1 / -1}.project-gallery__filters{min-width:0}.project-gallery__filters .category-selector{width:336px}@media(max-width:700px){.project-gallery [data-project-gallery]{grid-template-columns:minmax(0,1fr)}.project-gallery .project-gallery__toolbar{padding-bottom:var(--site-space-3)}.project-gallery__filters{padding-bottom:var(--site-space-6)}}.project-gallery .project-tile{--tile-media-height: var(--gallery-stage-standard);--tile-media-inset: var(--gallery-inset-standard);display:flex;flex-direction:column;isolation:isolate}.project-gallery .project-tile__caption:after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit}.project-gallery .project-tile__caption:focus-visible:after{outline:var(--site-focus-width) solid var(--aalto-text-primary);outline-offset:var(--site-focus-offset)}.project-gallery .project-tile[data-media-size=compact]{--tile-media-height: var(--gallery-stage-compact)}.project-gallery .project-tile[data-media-size=large]{--tile-media-height: var(--gallery-stage-large)}.project-gallery .project-tile[data-media-padding=tight]{--tile-media-inset: var(--gallery-inset-tight)}.project-gallery .project-tile[data-media-padding=roomy]{--tile-media-inset: var(--gallery-inset-roomy)}.project-gallery .project-tile__stage{position:relative;min-width:0;height:var(--tile-media-height);padding:var(--tile-stage-inset, var(--tile-media-inset));flex-shrink:0}.project-gallery .project-tile__stage>*{position:absolute;inset:0;width:auto;height:auto;min-width:0;min-height:0;padding:inherit}.project-gallery [data-view=grid] .project-tile>.project-tile__stage{flex-grow:1}@media not all and (max-width:600px){.project-gallery [data-view=grid] .gallery-card__description{min-height:2lh}}@media(hover:hover)and (pointer:fine){.project-gallery .gallery-card__description{opacity:0;transition:opacity var(--site-duration-feedback) var(--site-ease-feedback)}.project-gallery .project-tile:is(:hover,:focus-within) .gallery-card__description{opacity:1}}@media(min-width:1024px){.project-gallery [data-view=grid]:has([data-filter=all][aria-pressed=true]) .project-tile[data-column-span="2"]{grid-column:span 2}}.project-gallery [data-view=grid]:has([data-filter=physical][aria-pressed=true]) .project-tile[data-portfolio-project=throttle]{order:-2}.project-gallery [data-view=grid]:has([data-filter=physical][aria-pressed=true]) .project-tile[data-portfolio-project=rshifter]{order:-1}.project-gallery [data-view=list] .project-tile{--tile-media-height: var(--gallery-stage-list);--tile-media-inset: 0px;display:grid}.project-gallery [data-view=list] .gallery-card__caption{min-height:0;margin:0;align-items:center;padding-block:var(--site-space-2)}.project-gallery [data-view=list] .project-tile[data-has-media=false]{grid-template-columns:minmax(0,1fr)}.project-gallery .project-tile[data-has-media=false]{justify-content:center}.project-gallery .project-tile[data-has-media=false] .project-tile__caption{margin-top:0}.project-gallery .project-tile[data-has-media=false] .gallery-card__description{opacity:1}.project-gallery [data-view=showcase] .project-tile{--tile-media-height: var(--gallery-stage-showcase)}.project-gallery [data-view=grid] .project-grid{gap:var(--gallery-row-gap) var(--gallery-column-gap);padding:0}.project-gallery [data-view=grid] .project-tile{border:0;border-radius:var(--gallery-card-radius);margin:0;padding:0}.project-gallery [data-view=grid] .project-tile,.project-gallery .archive-preview-card{background:color-mix(in srgb,var(--site-surface-card) calc(var(--site-card-surface-strength, 1) * 100%),transparent)}.project-gallery [data-view=grid] .project-tile:is(:hover,:focus-within),.project-gallery .archive-preview-card:is(:hover,:focus-visible){background:color-mix(in srgb,var(--site-surface-hover) calc(var(--site-card-surface-strength, 1) * 100%),transparent)}.project-gallery .project-tile__mobile-icon{display:none}@media(max-width:600px){.project-gallery .project-gallery__toolbar{justify-content:center;padding-top:var(--site-space-2);padding-bottom:var(--site-space-1)}.project-gallery__toolbar .site-wordmark__text{display:none}.project-gallery__toolbar .site-wordmark{justify-content:center;min-height:32px;min-width:44px}.project-gallery__filters .category-selector .site-filter-option,.project-gallery__filters .category-selector .site-filter-option[aria-pressed=true]{color:var(--color-white);font-weight:500}.project-gallery [data-mobile-icon=true]>:not(.project-tile__mobile-icon){display:none}.project-gallery [data-mobile-icon=true]>.project-tile__mobile-icon{display:flex}.project-gallery__filters{position:sticky;top:0;z-index:10;margin-inline:calc(-1 * var(--site-page-gutter));margin-bottom:0;padding:var(--site-space-1) var(--site-page-gutter) var(--site-space-3);background:var(--site-bg);border-bottom:var(--site-border-width) solid var(--site-line)}.project-gallery__filters .category-selector{width:min(100%,18rem);margin-inline:auto}.project-gallery [data-view=grid]{--gallery-stage-standard: 8rem;--gallery-stage-compact: var(--gallery-stage-standard);--gallery-stage-large: var(--gallery-stage-standard);--gallery-inset-standard: var(--site-space-5);--gallery-inset-roomy: 1.75rem;--gallery-row-gap: var(--site-space-3);--gallery-column-gap: var(--site-space-3);--gallery-caption-height: 44px;--gallery-caption-padding-top: 0px;--gallery-caption-padding-inline: var(--site-space-3);--gallery-caption-padding-bottom: 1.125rem}.project-gallery [data-view=grid] .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-gallery [data-view=grid] .project-tile[data-preview-style=icon]{--tile-stage-inset: 1.75rem}.project-gallery [data-view=grid] .project-tile__media--icon .project-tile__image{width:70%;max-width:4.5rem;max-height:100%}.project-gallery [data-view=grid] .gallery-card__title{font:var(--type-caption);overflow-wrap:anywhere}.project-gallery [data-view=grid] .project-tile[data-has-media=false] .gallery-card__caption{padding-block:var(--site-space-5)}.project-gallery [data-view=grid] .project-tile[data-has-media=false] .gallery-card__description{font:var(--type-label)}.project-gallery [data-view=grid] .project-tile[data-has-media=true] .gallery-card__description{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.project-gallery [data-view=grid] .archive-preview-card{grid-column:1 / -1}.project-gallery [data-view=list] .gallery-card__title{font:var(--type-caption)}}.project-gallery .archive-preview-card{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:.625rem;min-height:calc(var(--gallery-stage-standard) + var(--gallery-caption-height));border:0;border-radius:var(--gallery-card-radius);color:var(--aalto-text-primary);font:var(--type-body);text-align:center;transition:color var(--site-duration-feedback) var(--site-ease-feedback)}.archive-preview-card__aurora{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 110%,#77899b60,transparent 65%);mix-blend-mode:screen;mask-image:linear-gradient(transparent,#000 55%);opacity:.6;transition:opacity .6s var(--site-ease-feedback)}.archive-preview-card__aurora canvas{display:block;width:100%;height:100%;opacity:0}.archive-preview-card__aurora canvas[data-aurora-ready]{opacity:1}.archive-preview-card__label{display:inline-flex;align-items:center;gap:.625rem}.project-gallery .archive-preview-card:is(:hover,:focus-visible){color:var(--aalto-text-primary)}.archive-preview-card:is(:hover,:focus-visible) .archive-preview-card__aurora{opacity:.8}.project-gallery .archive-preview-card:focus-visible{outline:var(--site-focus-width) solid var(--aalto-text-primary);outline-offset:var(--site-focus-offset)}@media(min-width:1024px){.project-gallery [data-view=grid] .archive-preview-card{grid-column:span 2}}@media(max-width:600px){.project-gallery .archive-preview-card{min-height:220px}}.project-gallery [data-view=list] .archive-preview-card{min-height:140px}@media(prefers-reduced-motion:reduce){.project-gallery .archive-preview-card,.archive-preview-card__aurora{transition:none}}
