.tweet-moment[data-astro-cid-u7su5ov5]{margin-block:0 var(--showcase-space);padding:clamp(3rem,8vw,8rem) clamp(1rem,4vw,3rem);border-radius:var(--gallery-card-radius, 3px);background:color-mix(in srgb,var(--tweet-accent) 2%,var(--site-bg));scroll-margin-top:2rem}.tweet-moment[data-astro-cid-u7su5ov5][data-embedded]{margin:0;padding:0;background:transparent}tweet-moment[data-astro-cid-u7su5ov5]{display:block;width:min(100%,550px);margin-inline:auto}.tweet-moment__body[data-astro-cid-u7su5ov5]{min-height:360px;display:grid;align-content:center;text-align:center}.tweet-moment__host[data-astro-cid-u7su5ov5]{width:100%}.tweet-moment__host[data-astro-cid-u7su5ov5] iframe{border-radius:16px;overflow:hidden;color-scheme:normal;background:transparent}tweet-moment[data-astro-cid-u7su5ov5][data-state=loading] .tweet-moment__host[data-astro-cid-u7su5ov5]{min-height:360px}.tweet-moment__status[data-astro-cid-u7su5ov5]{margin:0;font-size:.875rem;line-height:1.5;color:var(--aalto-text-secondary)}.tweet-moment__status[data-astro-cid-u7su5ov5]:empty{display:none}tweet-moment[data-astro-cid-u7su5ov5][data-state]:not([data-state=unavailable]) .tweet-moment__source[data-astro-cid-u7su5ov5]{display:none}.tweet-moment__source[data-astro-cid-u7su5ov5]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;margin-top:1.25rem;font-size:.875rem;line-height:1.5}.tweet-moment__source[data-astro-cid-u7su5ov5]:hover{text-decoration:underline;text-underline-offset:4px}.tweet-moment__source[data-astro-cid-u7su5ov5]:focus-visible{outline:2px solid currentColor;outline-offset:4px}@media(prefers-reduced-motion:no-preference){.tweet-moment[data-astro-cid-u7su5ov5]:not([data-embedded]) tweet-moment[data-astro-cid-u7su5ov5][data-revealed=true] .tweet-moment__body[data-astro-cid-u7su5ov5]{animation:tweet-arrive .65s cubic-bezier(.22,1,.36,1) both}@keyframes tweet-arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}}.design-study{--study-ink: #454940;--study-paper: #e7e8e1;color:var(--study-ink);background:var(--study-paper);border-radius:var(--site-radius-image);overflow:hidden;height:100%;scroll-margin-top:var(--site-space-8)}.design-study[data-study-format=closeup]{--study-ink: #4d4540;--study-paper: #eae2d7}.design-study[data-study-format=material]{--study-ink: #414953;--study-paper: #dfe4e8}.design-study__meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--site-space-2);padding:var(--site-space-5) var(--site-space-6) 0;font:var(--type-caption)}.design-study__meta span:last-child{opacity:.7}.design-study__stage{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;width:100%;aspect-ratio:var(--study-ratio, 1.7);min-height:230px;max-height:420px;padding:clamp(24px,4vw,56px)}.design-study ul,.design-study ol{list-style:none;padding:0;margin:0}.design-study__sequence,.design-study__materials{display:flex;width:100%;align-items:start;justify-content:center;gap:clamp(12px,2vw,32px)}.design-study__sequence li,.design-study__materials li{display:grid;gap:var(--site-space-3);flex:1;min-width:0;max-width:160px;text-align:center;font:var(--type-caption)}.design-study__frame{display:flex;flex-direction:column;justify-content:end;align-items:start;min-width:0;width:100%;gap:var(--site-space-2);aspect-ratio:.8;padding:16%;border:1px solid currentColor;border-radius:12px;background:#ffffff38;color:color-mix(in srgb,var(--study-ink) 45%,transparent)}.design-study__frame>span:first-child{margin-bottom:auto}.design-study__frame-text{color:var(--study-ink);max-width:100%;overflow-wrap:anywhere;text-align:left;margin-block:var(--site-space-3)}.design-study__frame-line{height:1px;width:100%;background:currentColor}.design-study__frame-line:last-child{width:60%}.design-study__crop{display:grid;gap:var(--site-space-6);justify-items:center}.design-study__crop-target{width:72%;max-width:270px;aspect-ratio:1.65;padding:12%;border:1px dashed color-mix(in srgb,var(--study-ink) 45%,transparent);border-radius:3px;transform:rotate(-4deg)}.design-study__crop-target span{display:grid;place-items:center;width:100%;height:100%;min-height:60px;text-align:center;font:var(--type-caption);border:1px solid currentColor;background:#ffffff50;transform:rotate(4deg) scale(1.15)}.design-study__crop ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;font:var(--type-caption)}.design-study__sample{display:grid;place-items:center;padding:12%;margin-inline:auto;width:82%;aspect-ratio:1;border-radius:50%;border:1px solid color-mix(in srgb,var(--study-ink) 35%,transparent);background:#ffffff38}.design-study__materials li:nth-child(2) .design-study__sample{background:#ffffff90}.design-study__materials li:nth-child(3) .design-study__sample{background:#41495320}.design-study__brief{padding:0 var(--site-space-6) var(--site-space-6)}.design-study .design-study__brief h3{margin:0;font:var(--type-lead);letter-spacing:var(--type-tracking-text)}.design-study .design-study__brief p{margin:var(--site-space-3) 0 0;max-width:52ch;font:var(--type-body)}.project-showcase-artifacts:has(>[data-study]){grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.project-showcase-artifacts>[data-study]{max-width:none}.project-showcase-artifacts>[data-study][data-artifact-layout=wide]{grid-column:1 / -1}.project-showcase-artifacts>[data-study]>.project-artifact__surface{height:100%}.design-studies-index{padding-block:var(--site-space-10)}.design-studies-index__intro{margin-bottom:var(--site-space-16)}.design-studies-index__intro h1{font:var(--type-title);letter-spacing:var(--type-tracking-title)}.design-studies-index__intro>p{max-width:60ch;margin-top:var(--site-space-6);font:var(--type-lead)}.design-studies-index__intro>.design-studies-index__note{font:var(--type-body);color:var(--aalto-text-secondary)}.design-studies-index__intro nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:var(--site-space-8);max-width:80ch}.design-studies-index a{text-underline-offset:4px}.design-studies-index a:focus-visible{outline:2px solid currentColor;outline-offset:5px}.design-studies-index__project{scroll-margin-top:var(--site-space-8)}.design-studies-index__project>header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--site-space-4);margin-bottom:var(--site-space-6)}@media(max-width:700px){.design-study__frame{padding:12%}.design-study__frame-text{font-size:12px}.project-showcase-artifacts:has(>[data-study]){grid-template-columns:minmax(0,1fr)}.design-study__stage{padding:24px;min-height:200px}.design-study__meta,.design-study__brief{padding-inline:20px}}.figure-caption{color:inherit;font:var(--type-caption);text-wrap:balance}.figure-caption--centered{max-width:54ch;margin:var(--site-space-4) auto 0;text-align:center;overflow-wrap:anywhere}.figure-caption--editorial{max-width:var(--project-caption-measure, 44ch);margin:var(--project-rhythm-2, .8125rem) 0 0;color:var(--aalto-text-secondary);font:var(--type-caption);text-wrap:pretty;text-align:start}.figure-caption--block{max-width:38ch;margin:0;text-align:center}.figure-caption--story{width:min(100%,var(--story-media-width));margin-inline:auto;text-align:start;text-wrap:pretty}.project-showcase{--showcase-space: var(--project-section-space);--showcase-gap: var(--project-media-gap);--showcase-phone: var(--project-phone-width);--site-model-surface: var(--site-model-paper-surface);--site-model-wire: var(--site-model-paper-wire);font:var(--type-body)}.project-showcase :where(h1,h2,h3,p,figure,dl){margin:0}.project-showcase :where(h1,h2,h3,p,dd,figcaption){overflow-wrap:anywhere}.project-showcase :where(h1,h2,h3){text-wrap:balance}.project-showcase :where(h2){font:var(--type-section);letter-spacing:var(--type-tracking-section)}.project-showcase :where(h3){font:var(--type-lead);letter-spacing:var(--type-tracking-text)}.project-showcase .project-detail-opening{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--project-heading-gap);padding-block:0 var(--showcase-space)}.project-showcase .project-detail-intro{display:grid;grid-template-columns:var(--project-columns);gap:var(--project-rhythm-4) var(--showcase-gap);align-items:end;padding:0}.project-showcase .project-detail-intro h1{font:var(--type-title);letter-spacing:var(--type-tracking-title);overflow-wrap:anywhere}.project-showcase .project-detail-app-icon{display:block;width:var(--site-space-16);height:var(--site-space-16);margin-bottom:var(--site-space-6);object-fit:contain}.project-showcase .project-detail-description{max-width:32ch;margin:0;font:var(--type-lead);letter-spacing:var(--type-tracking-text)}.project-showcase .project-detail-hero{grid-column:auto;grid-row:auto;display:grid;place-items:center;min-width:0;min-height:0;margin:0;padding:0;background:transparent;overflow:visible}.project-showcase .project-detail-hero>img{display:block;width:100%;height:auto;max-width:var(--project-media-max);max-height:none;object-fit:contain;background:transparent;border-radius:var(--site-radius-image)}.project-showcase .model-viewer--detail,.project-showcase .assembly-study .model-viewer--exploded{width:100%;height:auto;min-height:0;max-width:var(--project-media-max)}.project-showcase :is(.model-viewer--detail,.model-viewer--exploded)>.model-viewer__viewport{flex:none;width:100%;aspect-ratio:var(--project-model-aspect);min-height:var(--project-model-min);max-height:var(--project-model-max)}.project-showcase .model-viewer--detail .model-viewer__toolbar{margin-top:var(--project-rhythm-3)}.project-showcase[data-portfolio-project=rshifter] .project-detail-hero .model-viewer__toolbar{display:none}.project-showcase[data-showcase-layout=centered] .project-detail-opening{grid-template-columns:minmax(0,1fr);gap:var(--site-space-6)}.project-showcase[data-portfolio-project=waalk]{--showcase-space: clamp( var(--project-rhythm-4), 4vw, var(--project-rhythm-5) )}.project-showcase[data-portfolio-project=waalk][data-showcase-layout=centered] .project-detail-opening,.project-showcase[data-portfolio-project=waalk][data-showcase-layout=centered] .project-detail-intro{gap:var(--project-rhythm-3)}.project-showcase[data-portfolio-project=waalk] .project-detail-app-icon{margin-bottom:var(--project-rhythm-3)}.project-showcase[data-showcase-layout=centered] .project-detail-intro{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}.project-showcase[data-showcase-layout=centered] .project-detail-app-icon{width:150px;height:150px;margin-inline:auto}.project-showcase[data-showcase-layout=centered] .project-detail-intro h1{font:var(--type-section);letter-spacing:var(--type-tracking-section)}.project-showcase[data-showcase-layout=centered] .project-showcase-action{justify-self:center}.project-showcase[data-showcase-layout=centered] .project-showcase-colophon{grid-template-columns:minmax(0,1fr);justify-items:stretch;gap:var(--project-rhythm-3);text-align:left}.project-showcase[data-showcase-layout=centered] .project-showcase-colophon dl{justify-items:stretch}.project-showcase[data-showcase-layout=centered] .project-showcase-colophon dl>div{justify-content:flex-start}.project-showcase-action{justify-self:start;width:fit-content}.project-showcase[data-showcase-format=screen] .project-detail-hero{--device-width: min(100%, var(--project-media-max))}.project-showcase[data-showcase-format=handheld] .project-detail-hero{--device-width: var(--project-phone-hero-width)}.project-showcase[data-showcase-format=handheld] .project-detail-hero>.project-showcase-media{width:min(100%,var(--device-width))}.project-showcase[data-showcase-format=icon] .project-detail-hero>img{width:min(70%,var(--project-icon-width));border-radius:23%;margin-block:var(--project-rhythm-4)}.project-showcase-colophon{grid-column:1 / -1;display:grid;grid-template-columns:var(--project-columns);gap:var(--showcase-gap);padding:0;font:var(--type-body)}.project-showcase-colophon>p{max-width:var(--project-copy-measure);color:var(--aalto-text-secondary)}.project-showcase-colophon dl{display:grid;gap:var(--site-meta-row-gap);align-content:start;margin:0}.project-showcase-colophon dl:only-child{grid-column:1 / -1}.project-showcase-colophon dl>div{display:flex;flex-wrap:wrap;gap:var(--site-space-1) var(--site-space-4);align-items:baseline}.project-showcase-colophon dt{flex:0 0 var(--site-meta-label-width);margin:0;color:var(--aalto-text-secondary);font:var(--type-label)}.project-showcase-colophon dd{flex:1 1 var(--project-meta-value-min);min-width:0;margin:0;font:var(--type-caption)}.project-showcase-colophon--end{margin-block:0 var(--showcase-space);padding-top:var(--site-space-8);border-top:var(--site-border-width) solid var(--site-line);text-align:center}.project-showcase-colophon>.project-showcase-credits{max-width:70ch;margin-top:var(--site-space-6);font:var(--type-label);font-size:var(--type-size-label);line-height:var(--type-leading-label);opacity:.72}.project-detail-section,.project-showcase-gallery,.project-showcase-film{margin:0 0 var(--showcase-space)}.project-detail-section__heading{display:grid;grid-template-columns:var(--project-columns);align-items:baseline;gap:var(--project-rhythm-3) var(--showcase-gap);margin-bottom:var(--project-heading-gap)}.project-detail-section__heading h2{font:var(--type-section);letter-spacing:var(--type-tracking-section)}.project-detail-section__heading p{max-width:var(--project-copy-measure);color:var(--aalto-text-secondary);font:var(--type-body)}.project-editorial__spread{display:grid;grid-template-columns:var(--project-columns);align-items:start;gap:var(--showcase-gap)}.project-editorial__spread figure{min-width:0}.project-editorial__spread figure[data-layout=inset]{align-self:end}.project-editorial__spread figure[data-layout=wide]{grid-column:1 / -1}.project-editorial__spread img{display:block;width:100%;height:auto;border-radius:var(--site-radius-image)}.project-showcase-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--project-heading-gap) var(--showcase-gap)}.project-showcase-gallery figure{min-width:0;margin:0}.project-showcase-gallery[data-flow=phone]{padding-inline:var(--project-media-inset);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--project-phone-min)),1fr))}.project-showcase-gallery[data-flow=phone] figure{width:100%;max-width:var(--showcase-phone);justify-self:center;--device-width: var(--showcase-phone)}.project-showcase-gallery[data-flow=object] .project-detail-media img{height:auto;object-fit:contain;background:transparent}.project-showcase-gallery[data-flow=screen] figure:first-child,.project-showcase-gallery figure:only-child,.project-showcase-gallery[data-flow=object] figure:last-child:nth-child(odd){grid-column:1 / -1}.project-showcase-gallery[data-flow=screen] .project-detail-media{--device-width: min(100%, var(--project-media-max))}.project-showcase .assembly-study{margin-block:0 var(--showcase-space);border-top:0}.project-showcase .assembly-study__stage{grid-template-columns:var(--project-columns-reverse);gap:var(--showcase-gap);padding-block:0}.project-showcase .assembly-study__copy h2{max-width:16ch;font:var(--type-section);letter-spacing:var(--type-tracking-section)}.project-showcase .assembly-study__parts{margin-top:var(--project-rhythm-4);gap:var(--project-rhythm-2)}.project-showcase .assembly-study__parts li{font:var(--type-body)}.project-showcase .assembly-study__intro{max-width:var(--project-copy-measure);margin-top:var(--project-rhythm-3);font:var(--type-body)}.project-showcase-film video{display:block;width:100%;height:auto;max-height:none}.project-showcase-media{position:relative;width:100%;min-width:0}.project-detail-eyebrow{margin:0 0 var(--site-space-4);color:var(--aalto-text-secondary);font:var(--type-label)}.project-showcase-software>.project-showcase-blocks{margin-bottom:0}.project-showcase .project-detail-dock__heading{flex-wrap:wrap;gap:var(--project-rhythm-3)}.project-showcase .project-detail-dock__heading h2{font:var(--type-section)}.project-showcase .project-detail-dock__track{gap:var(--gallery-row-gap) var(--gallery-column-gap);padding:0}.project-showcase .project-detail-dock__item{border:0;margin:0;padding:0;text-align:center;background:var(--site-surface-card)}.project-showcase .project-detail-dock__item:is(:hover,:focus-within){background:var(--site-surface-hover)}.project-showcase .project-detail-dock__item[data-has-media=false]{display:grid;place-content:center}.project-showcase .project-detail-dock{padding-bottom:0}@media(min-width:1024px){.project-showcase[data-showcase-format=handheld]:not([data-showcase-layout=centered]) .project-detail-opening{grid-template-columns:var(--project-columns-reverse);align-items:start;gap:var(--showcase-gap)}.project-showcase[data-showcase-layout=media-left] .project-detail-opening{grid-template-columns:var(--project-columns);align-items:start;gap:var(--showcase-gap)}.project-showcase[data-showcase-layout=media-right] .project-detail-opening{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:var(--showcase-gap)}.project-showcase[data-showcase-layout=media-right] .project-detail-hero{--project-model-aspect: 1}.project-showcase[data-showcase-layout=media-left] .project-detail-hero{grid-column:1;grid-row:1}.project-showcase[data-showcase-layout=media-left] .project-detail-intro{grid-column:2;grid-row:1}.project-showcase:not([data-showcase-layout=centered]):is([data-showcase-format=handheld],[data-showcase-layout=media-left],[data-showcase-layout=media-right]) .project-detail-intro{display:block}.project-showcase:not([data-showcase-layout=centered]):is([data-showcase-format=handheld],[data-showcase-layout=media-left],[data-showcase-layout=media-right]) :is(.project-detail-description,.project-showcase-action){margin-top:var(--project-rhythm-3)}.project-showcase:not([data-showcase-layout=centered]):is([data-showcase-format=handheld],[data-showcase-layout=media-left],[data-showcase-layout=media-right]) .project-showcase-colophon{grid-template-columns:minmax(0,1fr);gap:var(--project-rhythm-3);margin-top:var(--project-rhythm-4)}}@media(max-width:700px){.project-showcase .project-detail-app-icon{width:var(--site-space-12);height:var(--site-space-12)}.project-showcase .project-detail-intro,.project-showcase-colophon,.project-detail-section__heading,.project-editorial__spread,.project-showcase-gallery,.project-showcase .assembly-study__stage{grid-template-columns:minmax(0,1fr)}.project-showcase .project-detail-intro{gap:var(--project-rhythm-3)}.project-editorial__spread figure[data-layout=inset]{width:100%}.project-showcase .assembly-study__copy h2{max-width:none}.project-showcase .assembly-study__parts{display:flex;flex-wrap:wrap;gap:var(--site-space-2) var(--site-space-4);margin-top:var(--project-rhythm-3)}.project-showcase .assembly-study__parts li{gap:var(--site-space-2);font:var(--type-caption)}}@media(prefers-reduced-motion:reduce){.project-showcase [data-project-section-reveal]{transform:none!important;opacity:1!important;visibility:visible!important}}.project-showcase .project-detail-app-icon{--artifact-icon-size: 100%}.project-showcase .project-detail-hero>.project-artifact{max-width:var(--project-media-max)}.project-showcase[data-portfolio-project=scanner] .project-detail-hero>.project-artifact{width:60%;max-width:calc(var(--project-media-max) * .6)}.project-showcase .project-detail-hero>[data-artifact-layout=inset]{max-width:min(var(--project-copy-measure),32rem)}.project-showcase[data-showcase-format=handheld] .project-detail-hero>.project-artifact{width:min(100%,var(--device-width))}.project-showcase[data-showcase-format=icon] .project-detail-hero>.project-artifact{--artifact-icon-size: 100%;width:min(70%,var(--project-icon-width));margin-block:var(--project-rhythm-4)}.project-showcase .project-detail-hero .project-media-image:not(.project-media-image--crop)>img{border-radius:var(--site-radius-image)}.project-showcase-artifacts{display:grid;gap:var(--showcase-gap);justify-items:center}.project-showcase .project-showcase-artifacts,.project-showcase .project-showcase-assembly,.project-showcase .project-showcase-tweet{margin-bottom:var(--showcase-space)}.project-showcase-artifacts>.project-artifact{max-width:var(--project-media-max)}.project-showcase-tweet>.project-artifact__surface{padding:clamp(2.5rem,6vw,5rem) clamp(1rem,4vw,3rem);border-radius:var(--site-radius-panel);background:color-mix(in srgb,var(--site-line) 28%,var(--site-bg))}.project-showcase-artifacts>[data-artifact-layout=inset]{max-width:var(--project-copy-measure)}.project-showcase-artifacts>[data-artifact-layout=handheld]{--device-width: var(--project-phone-width);max-width:var(--project-phone-width)}.project-showcase .project-detail-media[data-bezel=none] :is(img,video){max-height:none}.project-showcase[data-portfolio-project=disco][data-showcase-format=handheld] .project-detail-intro{display:flex;flex-direction:column;align-items:stretch;gap:0}.project-showcase[data-portfolio-project=disco][data-showcase-format=handheld] .project-detail-eyebrow{font:var(--type-lead);color:inherit;margin-bottom:var(--site-space-4)}.project-showcase[data-portfolio-project=disco][data-showcase-format=handheld] .project-showcase-colophon{margin-top:var(--site-space-8);gap:var(--site-space-6)}.project-showcase[data-portfolio-project=disco][data-showcase-format=handheld] .project-showcase-colophon dl{gap:var(--site-space-2)}.project-showcase .project-product-hero-icon{width:var(--site-space-16);height:var(--site-space-16);margin:0 auto var(--site-space-5)}.project-showcase[data-showcase-layout=product-hero] .project-detail-opening{grid-template-columns:minmax(0,1fr);gap:clamp(var(--site-space-8),4vw,var(--site-space-16));padding-top:clamp(var(--site-space-8),5vw,5rem)}.project-showcase[data-showcase-layout=product-hero] .project-detail-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--site-space-4);justify-items:center;text-align:center}.project-showcase[data-showcase-layout=product-hero] .project-detail-eyebrow{margin-bottom:var(--site-space-4);color:inherit;font:var(--type-lead)}.project-showcase[data-showcase-layout=product-hero] .project-detail-intro h1{max-width:22ch;font:var(--type-title);font-weight:600;letter-spacing:var(--type-tracking-title)}.project-showcase[data-showcase-layout=product-hero] .project-detail-hero{width:min(100%,65rem);justify-self:center}.project-showcase[data-showcase-layout=product-hero] .project-detail-hero :is(img,video){border-radius:var(--site-radius-panel)}.project-showcase[data-showcase-layout=product-hero] .project-showcase-action{justify-self:center}.project-product-hero-context{width:100%;margin:0 auto var(--showcase-space)}.project-product-hero-description{max-width:36ch;font:var(--type-lead);line-height:1.2;color:var(--site-text-description);text-wrap:balance}
