/* Olavi Fellman – tyylit / styles */
:root {
  --cream:#f5f2ec; --warm-white:#faf8f4; --charcoal:#1c1c1a;
  --mid:#6b6860; --light:#b8b5ae;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Jost',sans-serif; font-weight:300; background:var(--warm-white); color:var(--charcoal); font-size:16px; line-height:1.7; }
nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; justify-content:space-between; align-items:center; padding:1.25rem 3rem; background:rgba(250,248,244,0.96); backdrop-filter:blur(8px); border-bottom:0.5px solid rgba(0,0,0,0.08); }
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-weight:400; letter-spacing:0.04em; text-decoration:none; color:var(--charcoal); }
.nav-links { display:flex; gap:2rem; list-style:none; align-items:center; }
.nav-links a { text-decoration:none; color:var(--mid); font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; transition:color 0.2s; }
.nav-links a:hover { color:var(--charcoal); }
.nav-lang { display:flex; gap:0.5rem; }
.nav-lang a { text-decoration:none; color:var(--light); font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; transition:color 0.2s; }
.nav-lang a.active, .nav-lang a:hover { color:var(--charcoal); }
.nav-lang span { color:var(--light); }
.nav-social { display:flex; gap:1rem; align-items:center; }
.nav-social a { color:var(--light); text-decoration:none; font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; transition:color 0.2s; }
.nav-social a:hover { color:var(--charcoal); }
.hero { height:100vh; display:flex; align-items:flex-end; padding:4rem 3rem; position:relative; overflow:hidden; background:var(--cream); }
.hero-bg-img { position:absolute; inset:0; background-image:url('/images/_G2A1018-3000.jpg'); background-size:cover; background-position:center 30%; opacity:0.18; }
.hero-content { position:relative; z-index:2; }
.hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(4rem,10vw,9rem); font-weight:300; line-height:0.9; letter-spacing:-0.02em; margin-bottom:1.5rem; }
.hero-sub { font-size:0.8rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--mid); }
.hero-scroll { position:absolute; bottom:2.5rem; right:3rem; font-size:0.7rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--light); writing-mode:vertical-rl; }
section { padding:6rem 3rem; }
.section-label { font-size:0.95rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--mid); margin-bottom:3rem; display:flex; align-items:center; gap:1rem; }
.section-label::after { content:''; flex:1; height:0.5px; background:var(--light); opacity:0.4; }
#about { background:var(--warm-white); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.about-img { width:65%; aspect-ratio:3/4; object-fit:cover; background:var(--cream); display:block; margin:0 auto; }
.about-text h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,4vw,3.5rem); font-weight:300; line-height:1.1; margin-bottom:2rem; font-style:italic; }
.about-text p { color:var(--mid); margin-bottom:1.2rem; font-size:1.05rem; }
#manifesti { background:var(--charcoal); color:var(--cream); }
#manifesti .section-label { color:rgba(245,242,236,0.6); }
#manifesti .section-label::after { background:rgba(245,242,236,0.2); }
.man-grid { display:grid; grid-template-columns:2fr 1fr; gap:4rem; align-items:center; }
.manifesti-content h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,4vw,3rem); font-weight:300; font-style:italic; margin-bottom:2rem; color:var(--cream); }
.manifesti-content p { color:rgba(245,242,236,0.7); margin-bottom:1.2rem; font-size:1.05rem; }
.man-portrait { width:80%; aspect-ratio:3/4; object-fit:cover; opacity:0.9; margin:0 auto; display:block; }
#teokset { background:var(--cream); }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:0.85rem; }
.gallery-item { position:relative; overflow:hidden; aspect-ratio:3/4; cursor:pointer; background:var(--light); }
.gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.5s ease, opacity 0.3s ease; }
.gallery-item:hover img { transform:scale(1.04); opacity:0.88; }
.gallery-item-info { position:absolute; bottom:0; left:0; right:0; padding:1.25rem 0.85rem 0.85rem; background:linear-gradient(transparent,rgba(28,28,26,0.85)); color:white; opacity:0; transition:opacity 0.3s ease; }
.gallery-item:hover .gallery-item-info { opacity:1; }
.gallery-item-info .title { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:0.92rem; margin-bottom:0.15rem; }
.gallery-item-info .meta { font-size:0.68rem; letter-spacing:0.08em; color:rgba(255,255,255,0.65); }
#projektit { background:var(--warm-white); }
.projektit-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
.projekti-item h3 { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:400; font-style:italic; margin-bottom:0.8rem; }
.projekti-item p { color:var(--mid); font-size:1rem; }
#cv { background:var(--cream); }
.cv-grid { display:grid; grid-template-columns:1fr 2fr; gap:5rem; }
.cv-section { margin-bottom:2.5rem; }
.cv-section h3 { font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--light); margin-bottom:1rem; padding-bottom:0.5rem; border-bottom:0.5px solid var(--light); }
.cv-item { display:grid; grid-template-columns:70px 1fr; gap:1rem; margin-bottom:0.8rem; font-size:1rem; }
.cv-year { color:var(--light); font-size:0.82rem; }
.cv-desc { color:var(--mid); }
.cv-desc strong { color:var(--charcoal); font-weight:400; }
footer { background:var(--charcoal); color:rgba(245,242,236,0.5); padding:3rem; display:grid; grid-template-columns:1fr 1fr 1fr; gap:2rem; align-items:start; }
footer h4 { font-family:'Cormorant Garamond',serif; font-size:1.1rem; color:var(--cream); font-weight:400; margin-bottom:1rem; }
footer a { color:rgba(245,242,236,0.5); text-decoration:none; display:block; font-size:0.85rem; margin-bottom:0.4rem; transition:color 0.2s; }
footer a:hover { color:var(--cream); }
.footer-copy { font-size:0.75rem; letter-spacing:0.08em; margin-top:2rem; padding-top:1.5rem; border-top:0.5px solid rgba(245,242,236,0.1); grid-column:1 / -1; }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; padding:0.25rem; }
.nav-toggle span { display:block; width:22px; height:1px; background:var(--charcoal); margin:5px 0; transition:all 0.3s; }
@media (max-width:900px) {
  nav { padding:1rem 1.5rem; }
  .nav-toggle { display:block; }
  .nav-center { display:none; position:absolute; top:100%; left:0; right:0; background:var(--warm-white); padding:1.5rem; flex-direction:column; gap:1rem; border-bottom:0.5px solid rgba(0,0,0,0.08); }
  .nav-center.open { display:flex; }
  .nav-links { flex-direction:column; gap:1rem; }
  .hero h1 { font-size:4rem; }
  .hero { padding:4rem 1.5rem; }
  .hero-scroll { right:1.5rem; }
  section { padding:6rem 1.5rem; }
  footer { padding:3rem 1.5rem; grid-template-columns:1fr; }
  .about-grid, .projektit-grid, .cv-grid, .man-grid { grid-template-columns:1fr; gap:2.5rem; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); gap:0.6rem; }
}

.cv-col { }
.cv-section a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.cv-item em { font-style:italic; color:var(--light); }

/* Linkit-osion erikoistyylit */
#links .cv-grid { display:block; }
#links .cv-item { display:block; margin-bottom:0.8rem; }