@font-face{font-family:"Schibsted Grotesk";src:url(/assets/fonts/sg-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url(/assets/fonts/sg-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url(/assets/fonts/sg-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--night:#10171d;--night-2:#1c2a35;--paper:#f4f5f3;--ink:#1a1e1d;--muted:#5b625f;--line:#dcdfdb;--accent:#2f6f8f;--glow:#a8dcc8;--maxw:1320px;--gut:clamp(16px,4vw,48px);--font:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sky :focus-visible,.site-head :focus-visible,.site-foot :focus-visible,.lb :focus-visible{outline-color:var(--glow)}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:#fff;color:var(--ink);padding:8px 14px;border-radius:4px}
.skip:focus{left:12px}
/* Yläpalkki */
.site-head{position:sticky;top:0;z-index:50;background:rgba(16,23,29,.94);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.is-home .site-head{position:absolute;left:0;right:0;background:linear-gradient(rgba(16,23,29,.75),rgba(16,23,29,0));-webkit-backdrop-filter:none;backdrop-filter:none}
.site-head .in{max-width:var(--maxw);margin:0 auto;padding:14px var(--gut);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.brand img{width:148px;height:auto}
.nav{display:flex;flex-wrap:wrap;gap:6px clamp(16px,2.6vw,34px);list-style:none;margin:0;padding:0;font-weight:500;font-size:.98rem}
.nav a{text-decoration:none;color:rgba(255,255,255,.82);padding:4px 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current]{color:#fff;border-bottom-color:currentColor}
/* Etusivun leijuvat kuvat */
.sky{position:relative;height:100vh;height:100svh;min-height:580px;max-height:1150px;overflow:hidden;color:#fff;background:radial-gradient(110% 80% at 72% 8%,var(--night-2) 0%,var(--night) 62%)}
.sky::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(1px 1px at 12% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 33% 64%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 58% 14%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 81% 41%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 91% 78%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 47% 88%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 6% 71%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 69% 59%,#fff 50%,transparent 51%)}
.sky::after{content:"";position:absolute;inset:0;z-index:15;pointer-events:none;background:linear-gradient(20deg,rgba(16,23,29,.92) 0%,rgba(16,23,29,.55) 30%,rgba(16,23,29,0) 58%)}
.floats{position:absolute;inset:0;--mx:0;--my:0;--sy:0}
.float{position:absolute;left:var(--x);top:var(--y);width:var(--w);z-index:var(--zi);display:block;cursor:zoom-in;border-radius:3px;transform:translate3d(calc(var(--mx) * var(--z) * 1px),calc((var(--my) * var(--z) - var(--sy) * var(--z)) * 1px),0);transition:transform 1.1s cubic-bezier(.2,.7,.2,1);animation:appear 1.8s ease var(--in) both}
.float .drift{display:block;animation:drift var(--t) ease-in-out var(--dl) infinite alternate}
.float img{width:100%;border-radius:3px;box-shadow:0 22px 60px rgba(0,0,0,.5);transform:rotate(var(--r));filter:brightness(var(--b)) saturate(.95);transition:filter .5s ease,transform .5s ease}
.float:hover img,.float:focus-visible img{filter:brightness(1.03) saturate(1);transform:rotate(0deg) scale(1.05)}
.float:hover{z-index:12}
@keyframes drift{0%{transform:translate(0,0)}50%{transform:translate(var(--dx),var(--dy))}100%{transform:translate(calc(var(--dx) * -.7),calc(var(--dy) * .6))}}
@keyframes appear{from{opacity:0}to{opacity:1}}
.sky-text{position:absolute;left:var(--gut);bottom:clamp(36px,9vh,100px);z-index:20;max-width:min(660px,88vw);pointer-events:none}
.sky-text h1{font-size:clamp(3.3rem,10vw,8rem);line-height:.9;letter-spacing:-.045em;font-weight:700;margin:0 0 .22em;text-shadow:0 4px 40px rgba(0,0,0,.45)}
.sky-text p{font-size:clamp(1.08rem,1.7vw,1.35rem);line-height:1.4;max-width:28ch;color:#dbe4e8;margin:0 0 1.5em}
.actions{display:flex;gap:12px;flex-wrap:wrap;pointer-events:auto}
.btn{display:inline-block;padding:.72em 1.3em;border-radius:999px;text-decoration:none;font-weight:500;background:#fff;color:var(--night);transition:background .2s}
.btn:hover{background:var(--glow)}
.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.btn.ghost:hover{background:rgba(255,255,255,.1)}
/* Osiot */
.section{max-width:var(--maxw);margin:0 auto;padding:clamp(56px,8vw,112px) var(--gut) 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 24px;padding-bottom:14px;border-bottom:1px solid var(--line)}
h2{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.1;letter-spacing:-.02em;font-weight:700;margin:0}
.section-head a{color:var(--accent);font-weight:500;text-decoration:none}
.section-head a:hover{text-decoration:underline;text-underline-offset:4px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:clamp(10px,1.4vw,18px)}
.tile{position:relative;display:block;overflow:hidden;border-radius:4px;aspect-ratio:4/5;background:var(--night);color:#fff;text-decoration:none}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.tile:hover img{transform:scale(1.04)}
.tile span{position:absolute;left:0;right:0;bottom:0;padding:56px 18px 16px;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.7));font-weight:500;font-size:1.15rem;line-height:1.25;letter-spacing:-.01em}
.gallery{columns:4 250px;column-gap:12px}
.gallery a{display:block;margin:0 0 12px;break-inside:avoid;overflow:hidden;border-radius:3px;background:#e6e8e4;cursor:zoom-in}
.gallery img{width:100%;transition:opacity .3s}
.gallery a:hover img{opacity:.9}
.wide{max-width:1640px;margin:0 auto;padding:0 var(--gut)}
/* Sisäsivut */
.page-head{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,7vw,96px) var(--gut) clamp(28px,4vw,52px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(20px,5vw,80px);align-items:end}
.page-head.solo{grid-template-columns:minmax(0,1fr)}
.crumb{font-size:.92rem;color:var(--muted);margin:0 0 10px}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}
.page-head h1{font-size:clamp(2.4rem,6.2vw,4.8rem);line-height:.98;letter-spacing:-.035em;font-weight:700;margin:0}
.prose{max-width:66ch}
.prose p,.prose ul,.prose ol{margin:0 0 1em}
.prose h2,.prose h3,.prose h4{font-size:1.2rem;letter-spacing:-.01em;margin:1.5em 0 .5em}
.prose a{color:var(--accent);text-underline-offset:3px}
.prose>:last-child{margin-bottom:0}
.videos{max-width:var(--maxw);margin:0 auto clamp(28px,4vw,48px);padding:0 var(--gut);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:18px}
.video{aspect-ratio:var(--ar,16/9);background:#0b1014;border-radius:4px;overflow:hidden}
.video iframe{width:100%;height:100%;border:0;display:block}
.contact{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,7vw,96px) var(--gut) 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:center}
.contact h1{font-size:clamp(2.4rem,6.2vw,4.8rem);line-height:.98;letter-spacing:-.035em;margin:0 0 .5em}
.mail{display:inline-block;font-size:clamp(1.5rem,3.4vw,2.6rem);font-weight:500;letter-spacing:-.02em;color:var(--accent);text-decoration:none;border-bottom:2px solid currentColor;line-height:1.2}
.mail:hover{color:var(--ink)}
.contact .meta{color:var(--muted);margin:1.4em 0 0}
.contact figure{margin:0}
.contact figure img{border-radius:4px;width:100%}
.more{margin-top:clamp(56px,7vw,96px)}
/* Alapalkki */
.site-foot{margin-top:clamp(72px,10vw,140px);background:var(--night);color:#c4ced3;font-size:.97rem}
.site-foot .in{max-width:var(--maxw);margin:0 auto;padding:56px var(--gut) 36px;display:grid;grid-template-columns:1.5fr repeat(3,minmax(0,1fr));gap:32px}
.site-foot img{width:132px;margin-bottom:14px}
.site-foot h2{font-size:1rem;letter-spacing:0;color:#fff;font-weight:500;margin:0 0 12px}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{margin:0 0 7px}
.site-foot a{text-decoration:none}
.site-foot a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.site-foot p{margin:0 0 4px}
.fine{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;font-size:.88rem;color:#8b979d}
/* Kuvakatselin */
.lb{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(8,12,15,.96);color:#fff}
.lb.open{display:flex}
.lb figure{margin:0;display:flex;flex-direction:column;align-items:center}
.lb img{max-width:min(94vw,1800px);max-height:84vh;width:auto;height:auto;border-radius:2px;user-select:none;-webkit-user-drag:none}
.lb figcaption{margin-top:12px;font-size:.92rem;color:#aab6bc;text-align:center;padding:0 60px}
.lb button{position:absolute;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:400 26px/1 var(--font);cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb button:hover{background:rgba(255,255,255,.2)}
.lb .x{top:14px;right:14px}
.lb .prev{left:14px;top:50%;margin-top:-24px}
.lb .next{right:14px;top:50%;margin-top:-24px}
body.lb-open{overflow:hidden}
@media (max-width:860px){
 .page-head,.contact{grid-template-columns:minmax(0,1fr)}
 .site-foot .in{grid-template-columns:1fr 1fr}
 .site-foot .in>div:first-child{grid-column:1/-1}
}
@media (max-width:640px){
 .brand img{width:124px}
 .nav{font-size:.92rem}
 .floats{top:92px}
 .float:nth-child(n+11){display:none}
 .gallery{columns:2 140px;column-gap:8px}
 .gallery a{margin-bottom:8px}
 .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tile span{font-size:1rem;padding:40px 12px 12px}
 .lb .prev,.lb .next{top:auto;bottom:18px;margin-top:0}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .float,.float .drift{animation:none;transition:none}
 .tile img,.float img{transition:none}
}

