@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');

:root{
  --paper:#f6f3ed; --ink:#1d1d1b; --salmon:#ed947f; --blue:#a8b9be; --yellow:#d8cb58;
  --beige:#d8bfae; --olive:#8a7759; --soft:#f0e6df;
  --max:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Roboto',Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.shell{max-width:var(--max);margin:0 auto;padding:0 42px}
.topbar{height:54px;border-top:1px solid #d8d3cb;border-bottom:1px solid #e2ddd6;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.28em;text-transform:uppercase}
.brandmark{font-weight:500;letter-spacing:.44em}
.nav{display:flex;gap:28px;align-items:center}
.nav a{opacity:.86}
.hero{padding:28px 0 62px}
.hero-graphic{width:100%;height:350px;object-fit:cover;object-position:center top;background:white}
.hero-copy{padding:34px 8px 0}
.hero h1{margin:0 0 12px;font-size:61px;line-height:.96;font-weight:400;letter-spacing:.02em}
.kicker{font-size:19px;font-weight:700;margin:0 0 18px}
.tagline{font-size:20px;line-height:1.28;margin:0 0 10px;max-width:760px}
.experience{font-size:16px;font-style:italic;color:#4c4a45;margin:0}
.section{padding:46px 0}
.section.white{background:#faf8f4}
.section-head{display:grid;grid-template-columns:.9fr 1.4fr;gap:60px;align-items:start;margin-bottom:32px}
.section-head h2{font-size:31px;line-height:.94;letter-spacing:.2em;font-weight:500;margin:0;text-transform:uppercase}
.section-head p{font-size:16px;line-height:1.55;margin:0;max-width:720px}
.projects{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.project-card{display:block}
.project-image{aspect-ratio:1.45/1;overflow:hidden;background:#ddd}
.project-image img{width:100%;height:100%;object-fit:cover}
.project-card:nth-child(2) .project-image img{object-position:center 45%}
.project-meta{padding-top:12px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.project-title{font-size:10px;letter-spacing:.12em;text-transform:uppercase;line-height:1.35}
.project-sub{font-size:10px;margin-top:3px;color:#5f5b55}
.arrow{font-size:20px;line-height:1}
.other-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.other-head h3{margin:0;font-size:15px;letter-spacing:.28em;text-transform:uppercase;font-weight:500}
.other-head a{font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.other-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.other-grid a{aspect-ratio:1.15/1;overflow:hidden;background:#e7e3dd}
.other-grid img{width:100%;height:100%;object-fit:cover}
.about-teaser{display:grid;grid-template-columns:1fr 2fr;min-height:330px;margin-top:48px}
.about-photo{background:#ddd;overflow:hidden}
.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.about-copy{background:var(--salmon);padding:44px 52px;display:flex;flex-direction:column;justify-content:center}
.about-copy h2{font-size:29px;letter-spacing:.08em;font-weight:400;margin:0 0 10px;color:#fff}
.about-copy .hello{font-size:18px;margin:0 0 14px;color:#fff}
.about-copy p{font-size:16px;line-height:1.45;max-width:760px;margin:0 0 22px;color:#fff}
.text-link{display:inline-block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:5px;width:max-content}
.about-detail{padding:52px 10% 80px}
.about-detail h3{font-size:18px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 14px}
.about-detail p{font-size:14px;line-height:1.55;max-width:920px}
.columns{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:920px;margin-top:34px}
.columns h4{font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin:18px 0 6px}
.columns p{font-size:13px;margin:0 0 16px}
.footer-wrap{padding:34px 0 0;background:#faf8f4}
.footer-card{display:grid;grid-template-columns:1.45fr .9fr;min-height:250px;border-top:1px solid #d4cec6}
.footer-graphic{background:#fff;overflow:hidden}
.footer-graphic img{width:100%;height:100%;object-fit:cover;opacity:.34}
.footer-contact{padding:45px 46px;background:#eee8df}
.footer-contact h2{font-size:31px;font-weight:400;margin:0 0 8px}
.footer-contact p{font-size:13px;line-height:1.5;margin:0 0 18px}
.footer-small{display:flex;justify-content:space-between;gap:20px;padding:12px 4px 20px;font-size:8px;letter-spacing:.18em;text-transform:uppercase}
/* detail pages */
.detail-hero{padding:68px 0 34px}
.detail-hero h1{font-size:48px;font-weight:400;margin:0 0 12px}
.detail-hero h2{font-size:21px;font-weight:700;margin:0 0 28px}
.detail-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;padding-bottom:80px}
.detail-copy p{font-size:16px;line-height:1.6}
.role{margin-top:34px}
.role h3{font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.role p{white-space:pre-line;font-size:14px;line-height:1.65}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start}
.gallery figure{margin:0;background:#fff;overflow:hidden}
.gallery img{width:100%;height:100%;max-height:420px;object-fit:cover}
.gallery figure.wide{grid-column:1/-1}
.back{display:inline-block;margin:20px 0 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
@media (max-width:900px){
 .shell{padding:0 20px}.topbar{height:50px}.nav{gap:14px;font-size:9px;letter-spacing:.15em}.hero{padding-top:18px}.hero-graphic{height:250px}.hero-copy{padding:24px 2px 0}.hero h1{font-size:44px}.kicker{font-size:16px}.tagline{font-size:17px}.section-head{grid-template-columns:1fr;gap:18px}.projects{grid-template-columns:1fr 1fr}.other-grid{grid-template-columns:repeat(3,1fr)}.about-teaser{grid-template-columns:1fr;}.about-photo{height:360px}.about-copy{padding:34px 28px}.about-detail{padding:42px 0 60px}.columns{grid-template-columns:1fr;gap:0}.footer-card{grid-template-columns:1fr}.footer-graphic{height:180px}.detail-layout{grid-template-columns:1fr;gap:32px}.detail-hero h1{font-size:38px}
}
@media (max-width:600px){
 .topbar{height:auto;padding:15px 0;align-items:flex-start}.nav{gap:10px;flex-wrap:wrap;justify-content:flex-end}.brandmark{font-size:9px}.hero-graphic{height:190px}.hero h1{font-size:37px}.kicker{font-size:15px}.tagline{font-size:16px}.experience{font-size:14px}.section{padding:34px 0}.section-head h2{font-size:25px}.projects{grid-template-columns:1fr}.project-image{aspect-ratio:1.55/1}.other-grid{grid-template-columns:1fr 1fr}.about-copy h2{font-size:23px}.about-copy p{font-size:15px}.about-photo{height:300px}.footer-contact{padding:34px 26px}.footer-small{flex-direction:column}.gallery{grid-template-columns:1fr}.gallery figure.wide{grid-column:auto}
}

/* About full page and expanded other works */
.about-full{display:grid;grid-template-columns:.72fr 1.28fr;gap:52px;align-items:start;padding:0 0 8px}
.about-full-photo{overflow:hidden;background:#ddd}
.about-full-photo img{width:100%;height:auto;display:block}
.about-full-copy h3{font-size:18px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px}
.about-full-copy p{font-size:15px;line-height:1.6;max-width:900px}
.moved-detail{padding:24px 0 72px}
.moved-detail .columns{max-width:none;margin-top:0}
.other-gallery{grid-template-columns:repeat(3,1fr);gap:16px}
.other-gallery figure{aspect-ratio:1.2/1}
.other-gallery img{max-height:none}
.video-figure{aspect-ratio:auto!important;background:#111!important}
.video-figure video{width:100%;display:block;max-height:720px;background:#111}
@media (max-width:900px){.about-full{grid-template-columns:1fr;gap:28px}.about-full-photo{max-width:460px}.other-gallery{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.other-gallery{grid-template-columns:1fr}}


/* Muut työt: tasakokoiset neliöikonit, alkuperäinen kuva avautuu kokonaisena lightboxiin */
.other-gallery figure{aspect-ratio:1/1;background:#fff;overflow:hidden}
.other-gallery .gallery-link{display:block;width:100%;height:100%;background:#fff;cursor:zoom-in;overflow:hidden}
.other-gallery img{width:100%;height:100%;max-height:none;object-fit:cover;display:block}
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(20,20,18,.92);display:none;align-items:center;justify-content:center;padding:36px}
.lightbox.open{display:flex}
.lightbox-image{max-width:min(94vw,1800px);max-height:92vh;width:auto;height:auto;object-fit:contain;box-shadow:0 10px 50px rgba(0,0,0,.35)}
.lightbox-close{position:fixed;top:18px;right:24px;border:0;background:transparent;color:#fff;font:300 42px/1 'Roboto',Arial,Helvetica,sans-serif;cursor:pointer;padding:8px 12px}
body.lightbox-open{overflow:hidden}
@media (max-width:600px){.lightbox{padding:18px}.lightbox-close{top:8px;right:8px}.other-gallery{grid-template-columns:1fr}}

/* Lightbox navigation */
.lightbox-prev,.lightbox-next{position:fixed;top:50%;transform:translateY(-50%);z-index:1001;border:0;background:rgba(20,20,18,.22);color:#fff;font:300 64px/1 'Roboto',Arial,Helvetica,sans-serif;cursor:pointer;width:64px;height:88px;display:flex;align-items:center;justify-content:center}
.lightbox-prev{left:16px}.lightbox-next{right:16px}
.lightbox-prev:hover,.lightbox-next:hover{background:rgba(20,20,18,.45)}
@media(max-width:600px){.lightbox-prev,.lightbox-next{font-size:48px;width:46px;height:70px}.lightbox-prev{left:4px}.lightbox-next{right:4px}}
