@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-Thin-CRkY2mTm.ttf)format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-ThinItalic-LjzA74zw.ttf)format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-ExtraLight-CYc6p82r.ttf)format("truetype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-ExtraLightItalic-D2cvosgA.ttf)format("truetype");font-weight:200;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-Light-DkoATPO5.ttf)format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-LightItalic-CNmcqZur.ttf)format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-Regular-DclQP95x.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-Italic-D1_tFiOv.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-Medium-Cqd8-UKy.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-MediumItalic-DvPLs9Ko.ttf)format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-SemiBold-DssImD8l.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-SemiBoldItalic-lOAmgs4k.ttf)format("truetype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-Bold-Drs1_b80.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-BoldItalic-DtPBAwHW.ttf)format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-ExtraBold-cGAjEVZC.ttf)format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-ExtraBoldItalic-DMJYguIQ.ttf)format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-Black-BoGusltX.ttf)format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-BlackItalic-D26fnRK9.ttf)format("truetype");font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:Finlandica Text;src:url(/build/assets/FinlandicaText-VariableFont_wght-4haym3Ld.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--gold:#d4af37;--sans:"Finlandica Text",sans-serif;--serif:"Finlandica Text",sans-serif;--foreground:#171717;--muted:#525252;--border:#e5e5e5;--surface:#f5f5f5;--accent-text:#8a6b14}*,:before,:after{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{font-family:var(--sans);scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:96px;line-height:1.5}body{background:var(--background);color:var(--foreground);min-width:320px;font-size:16px}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button{cursor:pointer;background:0 0}img,svg{display:block}svg{flex-shrink:0}img{max-width:100%;height:auto}button,a,input{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:6px}::selection{color:#bfdbfe;background:#3b82f64d}[hidden]{display:none!important}.sr-only,.skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:fixed;overflow:hidden}.skip-link:focus{background:var(--gold);color:#000;z-index:200;padding:8px 16px;position:fixed;top:12px;left:12px}.gold{color:var(--accent-text);font-weight:500}.site-header{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#fffc;justify-content:center;align-items:center;height:80px;padding:0 24px;animation:.6s ease-out both header-in;display:flex;position:fixed;top:0;left:0;right:0}.brand img{object-fit:contain;width:auto;max-width:100%;height:64px}.portfolio-hero{z-index:1;flex-direction:column;justify-content:flex-start;align-items:center;max-width:1440px;min-height:100vh;margin-inline:auto;padding:112px 24px 32px;display:flex;position:relative;overflow:hidden}.hero-copy{flex-direction:column;gap:40px;width:100%;max-width:768px;padding-right:16px;animation:.8s ease-out .2s backwards copy-in;display:flex;position:relative}.hero-title{flex-direction:column;gap:24px;display:flex}.role-line{color:#737373;font-size:20px;line-height:28px}.role-line strong{color:var(--foreground);font-weight:700}.typed-role{color:var(--foreground)}.typing-cursor{color:var(--gold);animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}h1{font-family:var(--serif);color:var(--foreground);white-space:pre-line;font-size:36px;font-weight:400;line-height:1.2}.intro{flex-direction:column;gap:16px;animation:.8s ease-out .8s backwards fade-in;display:flex}.intro h2{font-family:var(--serif);color:var(--foreground);font-size:30px;font-weight:400;line-height:36px}.intro p{color:var(--muted);max-width:672px;font-size:18px;line-height:1.625}.pill{border:1px solid var(--foreground);border-radius:9999px;justify-content:center;align-items:center;gap:8px;width:fit-content;transition:color .3s,background .3s,border-color .3s;display:inline-flex}.pill:hover{color:#fff;background:var(--foreground);border-color:var(--foreground)}.project-grid-wrap{flex-shrink:0;width:100%;margin-top:32px;padding:16px;position:relative}.project-grid{aspect-ratio:66/71;grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:16px;width:100%;max-width:528px;margin-inline:auto;display:grid;container-type:size}.project-card{text-align:left;perspective:1000px;appearance:none;background:0 0;border-radius:16px;min-width:0;display:block;position:relative}.project-card-featured{grid-row:span 2}.project-card-inner{width:100%;height:100%;transform-style:preserve-3d;animation:card-in .5s ease-out var(--entrance-delay) backwards;border-radius:16px;position:relative}.project-face{backface-visibility:hidden;border-radius:16px;flex-direction:column;justify-content:space-between;padding:24px;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.project-front{background:var(--card-color)}.project-front:focus-visible{outline-offset:-6px}.card-brand-logo{object-fit:contain;pointer-events:none;z-index:1;width:84%;height:auto;max-height:calc(100% - 48px);margin:auto;position:absolute;inset:0}.project-front:before{content:"";left:calc(-87cqw - var(--stamp-x,0px));top:calc(34cqh - 87.73cqw - var(--stamp-y,0px));aspect-ratio:1080/900.06;opacity:.04;pointer-events:none;background:url(/build/assets/dyu-stamp-DBzZqC8y.svg) 50%/contain no-repeat;width:250cqw;position:absolute}.project-card:nth-child(2),.project-card:nth-child(3),.project-card:nth-child(5){--stamp-x:calc(50cqw + 8px)}.project-card:nth-child(3){--stamp-y:calc((100cqh + 16px)/3)}.project-card:nth-child(4),.project-card:nth-child(5){--stamp-y:calc((100cqh + 16px)*2/3)}.case-study-link{color:var(--foreground);z-index:1;text-align:left;align-self:flex-end;align-items:center;gap:4px;font-size:14px;font-weight:500;line-height:20px;display:flex}.case-study-link>span{text-underline-offset:2px;-webkit-text-decoration:underline #1717174d;text-decoration:underline #1717174d}.case-study-link svg{width:12px;height:12px}.project-back{background:var(--surface);justify-content:center;align-items:center;transform:rotateY(180deg)}.project-back .case-study-link{color:var(--muted);align-self:center}.site-footer{z-index:1;background:var(--background);border-top:1px solid var(--border);padding:80px 24px;position:relative}.contact-row{flex-direction:column;justify-content:space-between;align-items:flex-start;margin-bottom:80px;display:flex}.contact-row h2{font-family:var(--serif);color:var(--foreground);font-size:28px;font-weight:400;line-height:1.3}.contact-button{margin-top:32px;padding:16px 32px;font-size:16px;line-height:24px}.footer-bottom{color:#737373;text-align:center;flex-direction:column;justify-content:center;align-items:center;font-size:14px;line-height:20px;display:flex}.footer-bottom p{text-align:center}.footer-credit{margin-top:4px;font-size:.5em;line-height:1.5;display:block}.footer-bottom p a{text-underline-offset:2px;text-decoration:underline}body.contact-open{overflow:hidden}.contact-dialog{border:1px solid var(--border);background:var(--background);width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 32px);color:var(--foreground);overscroll-behavior:contain;border-radius:24px;margin:auto;padding:0;overflow-y:auto;box-shadow:0 24px 80px #17171726}.contact-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#17171766}.contact-dialog-content{padding:28px}.contact-dialog-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.contact-dialog-top img{width:180px;height:auto}.contact-close{color:#381500;background:#f5f0eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.contact-close:hover{background:#e1c8b1}.contact-dialog h2{color:#381500;font-size:32px;font-weight:500;line-height:1.2}.contact-description{color:var(--muted);margin-top:12px;margin-bottom:24px;font-size:16px;line-height:1.5}.contact-form{flex-direction:column;gap:16px;display:flex}.contact-field{flex-direction:column;gap:8px;min-width:0;display:flex}.contact-field label{color:#381500;font-size:14px;font-weight:600}.contact-field input,.contact-field textarea{background:#fcfaf8;border:1px solid #ded8d2;border-radius:12px;width:100%;min-width:0;padding:12px 14px;font-size:16px;line-height:24px;transition:border-color .2s,box-shadow .2s}.contact-field textarea{resize:vertical;min-height:104px;max-height:240px}.contact-field input::placeholder,.contact-field textarea::placeholder{color:#756b63}.contact-field input:focus,.contact-field textarea:focus{border-color:#9c7859;outline:0;box-shadow:0 0 0 3px #cfad9033}.contact-field [aria-invalid=true]{border-color:#b42318}.contact-field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.contact-consent label{color:var(--muted);cursor:pointer;grid-template-columns:18px 1fr;align-items:start;gap:12px;font-size:14px;line-height:20px;display:grid}.contact-consent input{accent-color:#381500;cursor:pointer;width:18px;height:18px;margin-top:2px}.contact-field-error,.contact-form-error{color:#b42318;font-size:13px;line-height:18px}.contact-consent .contact-field-error{margin-top:8px}.contact-honeypot{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-submit{color:#fff;background:#381500;border-color:#381500;justify-content:center;gap:12px;min-height:48px;padding:12px 24px;font-size:16px;font-weight:500}.contact-submit:hover{background:#5c3215;border-color:#5c3215}.contact-submit:disabled{opacity:.6;cursor:wait}.contact-close:focus-visible,.contact-submit:focus-visible,.contact-consent input:focus-visible{outline-offset:3px;outline:2px solid #381500}.contact-form>.contact-submit{width:100%}.contact-success{padding-top:24px}.contact-success h3{color:#381500;font-size:24px;font-weight:500;line-height:1.3}.contact-success p{color:var(--muted);margin-top:12px;margin-bottom:24px}@media (width<=479px){.contact-dialog-content{padding:24px}.contact-field-row{grid-template-columns:1fr}.contact-dialog h2{font-size:28px}}@media (width>=768px){.site-header,.portfolio-hero,.site-footer{padding-left:48px;padding-right:48px}.role-line{font-size:24px;line-height:32px}h1{font-size:53px}.case-study-link svg{width:16px;height:16px}.contact-row{flex-direction:row;align-items:center}.contact-row h2{font-size:40px}.contact-button{margin-top:0}.footer-bottom{text-align:left;flex-direction:row}}@media (width>=1024px){.portfolio-hero{flex-direction:row;justify-content:center;min-height:max(100vh,680px);padding-top:80px;padding-bottom:0}.hero-copy{gap:48px;width:50%;padding-right:48px}.project-grid-wrap{width:50%;margin-top:0;padding-left:48px}}@keyframes header-in{0%{opacity:0;transform:translateY(-100px)}to{opacity:1;transform:translateY(0)}}@keyframes copy-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes card-in{0%{opacity:0;translate:0 20px}to{opacity:1;translate:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.typing-cursor{opacity:1}}
