@font-face{font-family:Archivo;src:url(/fonts/archivo-latin-wdth-normal.woff2)format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}:root{color-scheme:light dark;--paper:#f5f4f0;--paper-2:#e9e7e0;--ink:#121311;--ink-2:#565750;--line:#cfccc3;--line-dark:#3a3b37;--on-ink-2:#b4b3ab;--red:#d0021b;--red-fill:#d0021b;--band:#121311;--band-fg:#f5f4f0;--gutter:clamp(16px, 3.6vw, 56px);--section:clamp(56px, 8vw, 128px);--nav-h:54px;--condensed:74%}@media (prefers-color-scheme:dark){:root{--paper:#121311;--paper-2:#1e1f1b;--ink:#f0efe9;--ink-2:#aeada4;--line:#363732;--red:#ff4d58;--band:#1b1c19}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}@view-transition{navigation:auto}}body{background:var(--paper);color:var(--ink);font-variant-numeric:tabular-nums;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));margin:0;font-family:Archivo,system-ui,-apple-system,Segoe UI,sans-serif;font-size:clamp(1rem,.96rem + .2vw,1.125rem);line-height:1.55}img,picture{max-width:100%;height:auto;display:block}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-color:var(--red);color:var(--red)}:focus-visible{outline:3px solid var(--red);outline-offset:2px}.wrap{max-width:1760px;padding-inline:var(--gutter);margin-inline:auto}.skip{z-index:50;background:var(--band);color:var(--band-fg);padding:10px 16px;position:absolute;top:-60px;left:8px}.skip:focus{top:8px}.display-1,.display-2,.display-3{font-stretch:var(--condensed);letter-spacing:-.012em;text-wrap:balance;font-weight:800}.display-1{font-size:clamp(2.75rem,6.8vw,7rem);line-height:.94}.hero-title{font-size:clamp(3rem,8.7vw,9.5rem);line-height:.92}.display-2{font-size:clamp(2.2rem,5.6vw,5.6rem);line-height:.98}.display-3{font-size:clamp(1.6rem,2.6vw,2.6rem);line-height:1.04}.label{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.6em;font-size:.8125rem;font-weight:600;display:flex}.label:before{content:"";background:var(--red);width:.62em;height:.62em}.lead{max-width:38ch;font-size:clamp(1.125rem,1rem + .6vw,1.5rem);line-height:1.4}.prose{max-width:62ch}.muted{color:var(--ink-2)}.visually-hidden{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.button{border:1.5px solid var(--ink);background:var(--ink);min-height:52px;color:var(--paper);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:0 24px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--red-fill);border-color:var(--red-fill);color:#fff}.button-ghost{color:var(--ink);background:0 0}.button-red{background:var(--red-fill);border-color:var(--red-fill);color:#fff}.button-red:hover{color:var(--ink);background:#fff;border-color:#fff}.site-header{z-index:30;background:var(--paper);border-bottom:1px solid var(--ink);position:sticky;top:0}.site-header-row{justify-content:space-between;align-items:center;gap:24px;min-height:60px;display:flex}.logo{color:var(--ink);padding-block:8px;line-height:0;display:block}.logo:hover{color:var(--ink)}.logo-mark{width:auto;height:22px;display:block}@media (width>=860px){.logo-mark{height:26px}}.site-nav{z-index:40;padding-bottom:env(safe-area-inset-bottom);background:var(--band);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;inset:auto 0 0}.site-nav a{height:var(--nav-h);color:var(--band-fg);border-top:3px solid #0000;place-items:center;font-size:.875rem;font-weight:500;font-stretch:88%;text-decoration:none;display:grid}.site-nav a:hover{color:var(--band-fg)}.site-nav a[aria-current=page]{border-top-color:var(--red);font-weight:700}.site-tel{white-space:nowrap;padding:10px 0 10px 12px;font-size:1.0625rem;font-weight:700;text-decoration:none}@media (width>=860px){body{padding-bottom:0}.site-header-row{min-height:72px}.site-nav{background:0 0;gap:clamp(20px,3vw,44px);margin-left:auto;padding:0;display:flex;position:static}.site-nav a{height:auto;color:var(--ink);border:0;padding:10px 0;font-size:1rem;font-stretch:100%;box-shadow:inset 0 -2px #0000}.site-nav a:hover{color:var(--red)}.site-nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--red);font-weight:600}.site-tel{border-left:1px solid var(--line);padding-left:clamp(12px,2vw,32px)}}.hero{isolation:isolate;min-height:calc(100svh - 60px - var(--nav-h) - env(safe-area-inset-bottom));color:#fff;background:#0c0d0b;align-content:end;display:grid;position:relative;overflow:hidden}.hero-stage{z-index:-1;position:absolute;inset:0}.hero-slide{opacity:0;transition:opacity 1.2s;position:absolute;inset:0}.hero-slide.is-active{opacity:1}.hero-slide picture{position:absolute;inset:0}.hero-slide img{object-fit:cover;width:100%;height:100%}.hero-pos-a img{object-position:44% 50%}.hero-pos-b img{object-position:50% 30%}.hero-pos-c img{object-position:50% 50%}.hero-slide:after{content:"";pointer-events:none;background:linear-gradient(#08090700 35%,#0809078c 62%,#080907e6 100%);position:absolute;inset:0}.hero-body{pointer-events:none;gap:18px;width:100%;padding-block:0 44px;display:grid}.hero-body>*{pointer-events:auto}.hero-title{max-width:13ch;font-size:clamp(2.6rem,12vw,7.5rem);font-stretch:var(--condensed);letter-spacing:-.012em;text-wrap:balance;font-weight:800;line-height:.94}.hero-actions{grid-template-columns:3fr 2fr;gap:10px;display:grid}.hero-cap{z-index:1;color:#ffffffdb;font-size:.8125rem;position:absolute;bottom:12px;left:0;right:44px}.hero-cap a{color:#fff}.hero-cap a:hover{color:#fff;text-decoration-color:var(--red)}.hero-pause{z-index:2;color:#fff;cursor:pointer;background:0 0;border:0;width:44px;height:44px;position:absolute;bottom:0;right:6px}.hero-pause:before{content:"";border-inline:3px solid;width:10px;height:12px;margin:auto;display:block}.hero-pause[aria-pressed=true]:before{border:7px solid #0000;border-inline:0;border-left:11px solid;width:0;height:0}.hero-pause[hidden]{display:none}.button-light{color:#121311;background:#fff;border-color:#fff}.button-outline{color:#fff;background:0 0;border-color:#fff}.button-light:hover,.button-outline:hover{background:var(--red-fill);border-color:var(--red-fill);color:#fff}@media (width>=860px){.hero{min-height:min(100svh - 72px,980px)}.hero-title{max-width:16ch;font-size:clamp(4rem,7vw,7.5rem)}.hero-actions{display:flex}.hero-body{padding-bottom:56px}.hero-pos-a img{object-position:50% 62%}}.clients{border-bottom:1px solid var(--line);padding-block:14px;font-size:.875rem;font-weight:600;line-height:1.4}.clients span{color:var(--ink-2);font-weight:400;display:block}@media (width>=720px){.clients span{margin-right:1em;display:inline}}.section-title{margin-bottom:clamp(20px,3vw,40px)}.press-note{margin-top:-12px;margin-bottom:24px}.press-nav{gap:8px;display:none}@media (width>=860px){.press-nav:not([hidden]){display:flex}}.press-arrow{border:1.5px solid var(--ink);width:52px;height:52px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;font-size:1.25rem}.press-arrow:hover{background:var(--red-fill);border-color:var(--red-fill);color:#fff}.press-track{scroll-snap-type:x mandatory;scrollbar-width:thin;margin-inline:calc(var(--gutter) * -1);padding-bottom:16px;padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);grid-auto-columns:minmax(270px,78vw);grid-auto-flow:column;gap:24px;display:grid;overflow-x:auto}.press-card{scroll-snap-align:start}.press-card a{text-decoration:none;display:block}.press-card a:hover{color:inherit}.press-card a:hover h3{color:var(--red)}.press-card img{aspect-ratio:16/10;object-fit:cover;background:var(--paper-2);width:100%}.press-noimg{aspect-ratio:16/10;background:repeating-linear-gradient(135deg, var(--line) 0 1px, transparent 1px 7px)}.press-meta{color:var(--ink-2);margin-top:12px;font-size:.875rem}.press-meta strong{color:var(--ink);font-weight:700}.press-card h3{text-wrap:pretty;margin-top:4px;font-size:1.1875rem;font-weight:700;font-stretch:88%;line-height:1.2}.press-project{color:var(--ink-2);margin-top:6px;font-size:.875rem}@media (width>=720px){.press-track{grid-auto-columns:minmax(300px,34vw)}}@media (width>=1200px){.press-track{grid-auto-columns:minmax(320px,26vw)}}.project-press a{margin-top:8px;font-size:.9375rem;font-weight:500;display:block}.project-press strong{font-size:.8125rem;display:block}.section{padding-block:var(--section)}.section-head{gap:16px;margin-bottom:clamp(28px,4vw,64px);display:grid}.section-head .more{justify-self:start}@media (width>=860px){.section-head.with-more{grid-template-columns:1fr auto;align-items:end}.section-head.with-more .label{grid-column:1/-1}}.more{padding-block:8px;font-weight:600}.more:after{content:" →"}.service-rows{border-bottom:1px solid var(--ink)}.service-row{border-top:1px solid var(--ink);gap:6px 24px;padding-block:18px 22px;text-decoration:none;display:grid}.service-row h3{transition:color .12s}.service-row:hover{color:inherit}.service-row:hover h3{color:var(--red)}.service-row p{max-width:54ch}@media (width>=860px){.service-row{grid-template-columns:1fr 1fr;align-items:baseline;padding-block:24px 30px}}.refs{padding-block:0 var(--section)}.mosaic{gap:32px clamp(16px,2vw,28px);padding-top:0;display:grid}.ref-card{text-decoration:none;display:block}.ref-card:hover{color:inherit}.ref-card picture{max-width:none;margin-inline:calc(var(--gutter) * -1);display:block}.ref-card img{aspect-ratio:4/3;object-fit:cover;background:var(--paper-2);width:100%}.ref-card:hover h3{color:var(--red)}.ref-client{margin-top:10px;font-size:.875rem;font-weight:700}.ref-card h3{text-wrap:balance;margin-top:1px;font-size:clamp(1.3125rem,1.7vw,1.75rem);font-weight:700;font-stretch:86%;line-height:1.12;transition:color .12s}.ref-meta{color:var(--ink-2);margin-top:3px;font-size:.8125rem}.refs-foot{justify-items:start;gap:16px;padding-top:28px;display:grid}.refs-foot .button{width:100%}.now{font-size:.875rem;line-height:1.5}.now .status{margin-right:.5em}@media (width>=720px){.mosaic{grid-template-columns:repeat(12,1fr);padding-top:28px}.ref-card picture{margin-inline:0}.mosaic>:first-child{grid-column:1/-1}.mosaic>:first-child img{aspect-ratio:21/9}.mosaic>:nth-child(2){grid-column:span 7}.mosaic>:nth-child(3){grid-column:span 5}.mosaic>:nth-child(n+4){grid-column:span 4}.mosaic>:nth-child(2) img,.mosaic>:nth-child(3) img{aspect-ratio:auto;height:clamp(320px,38vw,640px)}.refs-foot{grid-template-columns:1fr auto;align-items:center}.refs-foot .button{width:auto}}.status{white-space:nowrap;align-items:center;gap:.45em;font-size:.8125rem;font-weight:700;display:inline-flex}.status:before{content:"";background:var(--red);border-radius:50%;width:.6em;height:.6em}.band{background:var(--band);color:var(--band-fg);padding-block:clamp(48px,7vw,104px)}.band a:hover{color:var(--band-fg);text-decoration-color:var(--red)}.band-grid{gap:28px;display:grid}.band-actions{align-content:end;justify-items:start;gap:16px;display:grid}.band-tel{font-size:clamp(2.6rem,6vw,5rem);font-weight:800;font-stretch:var(--condensed);line-height:1;text-decoration:none;display:block}.band .button{width:100%}.band .button-red:hover{color:var(--ink)}@media (width>=860px){.band-grid{grid-template-columns:7fr 5fr;gap:64px}.band .button{width:auto}}.site-footer{background:var(--band);color:var(--on-ink-2);border-top:1px solid var(--line-dark);padding-block:14px;font-size:.6875rem;line-height:1.5}.site-footer a{color:inherit}.site-footer a:hover{color:var(--band-fg);text-decoration-color:var(--red)}.page-head{padding-block:clamp(24px,4vw,72px) clamp(20px,3vw,40px)}.page-head .lead{max-width:52ch;margin-top:16px}.service{border-top:1px solid var(--ink);gap:24px;padding-block:clamp(28px,4vw,64px);scroll-margin-top:72px;display:grid}.service-body>*+*{margin-top:16px}.service-body ul{padding-left:1.1em;list-style:square}.service-body li::marker{color:var(--red)}.service picture{max-width:none;margin-inline:calc(var(--gutter) * -1);order:-1}.service img{aspect-ratio:3/2;object-fit:cover;background:var(--paper-2);width:100%}.spec{grid-template-columns:max-content 1fr;gap:2px 16px;font-size:.9375rem;display:grid}.spec dt{color:var(--ink-2)}.spec dd{font-weight:600}.spec a{font-weight:500}@media (width>=860px){.service{grid-template-columns:4fr 4fr 4fr;gap:40px}.service-body{grid-column:2}.service>picture{order:0;grid-column:3;margin-inline:0}}.filter{border:0;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 20px;padding:0;display:flex}.filter legend{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.filter input{opacity:0;position:absolute}.filter label{border:1.5px solid var(--ink);cursor:pointer;align-items:center;gap:.4em;min-height:44px;padding:0 16px;font-weight:600;display:inline-flex}.filter label span{color:var(--ink-2);font-weight:400}.filter label:hover{border-color:var(--red);color:var(--red)}.filter input:checked+label{background:var(--ink);color:var(--paper)}.filter input:checked+label span{color:var(--on-ink-2)}.filter input:focus-visible+label{outline:3px solid var(--red);outline-offset:2px}.reflist:has(#f-silta:checked) tbody tr:not([data-t=silta]),.reflist:has(#f-tunneli:checked) tbody tr:not([data-t=tunneli]),.reflist:has(#f-rata:checked) tbody tr:not([data-t=rata]),.reflist:has(#f-muu:checked) tbody tr:not([data-t=muu]){display:none}.ref-table{border-collapse:collapse;width:100%}.ref-table caption,.ref-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.ref-table tr{padding-block:0 20px;display:block}.ref-table td{padding:0;display:block}.ref-table .c-thumb{margin-inline:calc(var(--gutter) * -1);margin-bottom:10px}.ref-table .c-thumb img{aspect-ratio:16/10;object-fit:cover;background:var(--paper-2);width:100%}.ref-table .c-thumb-empty{background:repeating-linear-gradient(135deg, var(--line) 0 1px, transparent 1px 7px);display:none}.ref-table .c-thumb:has(.c-thumb-empty){border-top:1px solid var(--line);margin-bottom:0;padding-top:14px}.ref-table .c-client{font-weight:700}.ref-name{margin:0;font-size:1.1875rem;font-weight:700;font-stretch:88%;line-height:1.15}.ref-name a{text-decoration:none}.ref-name a:hover{text-decoration:underline;text-decoration-color:var(--red)}.ref-table .c-desc{color:var(--ink-2);margin-top:2px;font-size:.9375rem}.ref-table .c-place,.ref-table .c-date{color:var(--ink-2);font-size:.9375rem}@media (width>=860px){.ref-table{display:table}.ref-table thead{clip-path:none;width:auto;height:auto;display:table-header-group;position:static;overflow:visible}.ref-table th{letter-spacing:.04em;color:var(--ink-2);text-align:left;padding:0 16px 10px 0;font-size:.8125rem;font-weight:600}.ref-table tr{padding:0;display:table-row}.ref-table td{vertical-align:top;border-top:1px solid var(--ink);padding:16px 16px 18px 0;display:table-cell}.ref-table .c-thumb{width:136px;margin:0}.ref-table .c-thumb:has(.c-thumb-empty){border-top:1px solid var(--ink);padding-top:16px}.ref-table .c-thumb img,.ref-table .c-thumb-empty{aspect-ratio:4/3;width:120px;display:block}.ref-table .c-name{width:42%}.ref-name{font-size:1.375rem}.ref-table td.c-place,.ref-table td.c-date{color:var(--ink);font-size:1rem}.ref-table .c-date{white-space:nowrap;padding-right:0}}.tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.tools p{max-width:64ch;color:var(--ink-2);font-size:.9375rem}.print-only{display:none}.project{padding-bottom:var(--section);gap:32px;display:grid}.project-meta{align-content:start;gap:14px;display:grid}.project-meta dt{letter-spacing:.04em;color:var(--ink-2);font-size:.8125rem;font-weight:600}.project-meta dd{font-size:1.0625rem;font-weight:600;line-height:1.3}.project-meta dd.client{font-size:clamp(1.25rem,1.8vw,1.625rem);font-weight:800}.gallery{columns:1;margin-inline:calc(var(--gutter) * -1);column-gap:clamp(8px,1.4vw,20px)}.gallery a{break-inside:avoid;margin-bottom:clamp(8px,1.4vw,20px);display:block}.gallery img{background:var(--paper-2);width:100%}.gallery a:first-child{column-span:all}@media (width>=720px){.gallery{columns:2;margin-inline:0}}@media (width>=860px){.project{grid-template-columns:3fr 9fr;gap:48px}.project-meta{position:sticky;top:96px}}.pager{border-top:1px solid var(--ink);grid-template-columns:1fr 1fr;gap:16px;padding-block:16px 40px;display:grid}.pager a{font-weight:600;text-decoration:none}.pager a span{color:var(--ink-2);font-size:.8125rem;font-weight:500;display:block}.pager a:last-child{text-align:right}.pager a:hover{text-decoration:underline;text-decoration-color:var(--red)}.contact-cta{margin-top:20px}.contact-cta .button{width:100%}@media (width>=720px){.contact-cta .button{width:auto}}.people{border-top:1px solid var(--ink);padding-block:24px 32px}.folds{padding-bottom:var(--section)}.fold{border-top:1px solid var(--ink)}.fold:last-of-type{border-bottom:1px solid var(--ink)}.fold summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:56px;font-weight:700;list-style:none;display:flex}.fold summary::-webkit-details-marker{display:none}.fold summary:after{content:"+";font-size:1.5rem;font-weight:400}.fold[open] summary:after{content:"−"}.fold .datatable{padding-bottom:20px}.address{color:var(--ink-2);margin-top:20px;font-size:.9375rem}.datatable{font-size:1rem;display:grid}.datatable>div{border-bottom:1px solid var(--line);gap:2px 24px;padding-block:10px;display:grid}.datatable>div:first-child{border-top:1px solid var(--line)}.datatable dt{color:var(--ink-2)}.datatable dd{overflow-wrap:anywhere;font-weight:600}.datatable .note{color:var(--ink-2);font-weight:400}.inline-link{margin-left:.5em;font-weight:500}.selectable{-webkit-user-select:all;user-select:all}@media (width>=720px){.datatable>div{grid-template-columns:4fr 8fr}}.people{gap:28px;display:grid}@media (width>=720px){.people{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px}}.person h3{font-size:1.375rem;font-weight:800;font-stretch:88%;line-height:1.15}.person-role{color:var(--ink-2);margin-top:2px;font-size:.9375rem}.person-tel{margin-top:10px;padding-block:4px;font-size:1.375rem;font-weight:700;text-decoration:none;display:inline-block}.person-mail{overflow-wrap:anywhere;padding-block:8px;font-size:1rem;display:block}.notfound{padding-block:var(--section)}.notfound .button{margin-top:28px}@media print{@page{size:A4;margin:16mm 14mm}:root{--paper:#fff;--ink:#000;--ink-2:#000;--line:#000;color-scheme:light}body{color:#000;background:#fff;padding:0;font-size:10pt}.site-header,.site-footer,.band,.filter,.tools,.no-print{display:none!important}.print-only{margin-bottom:10pt;display:block}.print-only strong{font-size:14pt;display:block}.wrap{max-width:none;padding:0}.page-head{padding:0 0 8pt}.display-1{font-size:26pt;line-height:1.05}.page-head .lead{max-width:none;margin-top:4pt;font-size:10pt}.section{padding:0}.ref-table{font-size:9pt;display:table}.ref-table thead{clip-path:none;width:auto;height:auto;display:table-header-group;position:static;overflow:visible}.ref-table th{text-align:left;padding:0 8pt 4pt 0;font-size:8pt}.ref-table tr{break-inside:avoid;display:table-row}.ref-table td{vertical-align:top;border-top:.5pt solid #000;padding:4pt 8pt 4pt 0;display:table-cell;color:#000!important;font-size:9pt!important}.ref-table .c-thumb,.ref-table th:first-child{display:none}.ref-name{font-size:10pt}.ref-table .c-desc{color:#000;font-size:8.5pt}.ref-table .c-date{white-space:nowrap;padding-right:0}.ref-table .c-name{width:52%}.status:before{display:none}.status{font-size:9pt}a{color:#000;text-decoration:none}}
