/* V5: a floating V4-like navigation, quiet heading links with a rose active
   item and calm prose. No original-version selectors or inherited overrides. */
body.v5 {
 --paper:#f8f4ed; --ink:#403b36; --muted:#6f5f54; --accent:#825744;
 --soft:#ede2d6; --line:#d9cbbd; --rose:#f0e1e9; --rose-active:#dfc3d3;
 --body:system-ui,-apple-system,"Segoe UI",sans-serif;
 --heading:Georgia,"Times New Roman",serif; --weight:400;
 --floating-top:14px; --nav-clearance:156px; --reading-offset:calc(var(--nav-clearance) + 16px);
}
.v5 .site-shell { max-width:1200px; margin:auto; padding:14px 48px 0; }
.v5 .floating-header {
 position:sticky; top:var(--floating-top); z-index:9; display:grid;
 grid-template-columns:1fr auto; align-items:center; gap:.65rem;
 padding:.8rem 1.5rem .6rem; background:#f7f2eb;
 border:1px solid var(--line); border-radius:16px;
 box-shadow:0 6px 20px #453e370b;
}
.v5 .brand { font-family:system-ui,sans-serif; font-size:1rem; }
.v5 .brand-mark { position:relative; isolation:isolate; font-family:Georgia,serif; color:var(--accent); font-size:2.4rem; }
.v5 .brand-mark::before { content:""; position:absolute; z-index:-1; width:1.4em; height:1.4em; top:50%; left:50%; border-radius:6px; background:var(--rose); transform:translate(-50%,-50%) rotate(-6deg); pointer-events:none; }
.v5 .header-note { font-family:Georgia,serif; font-size:.8rem; font-style:italic; color:var(--muted); }
.v5 .desktop-nav { grid-column:1/-1; display:flex; justify-content:center; gap:2rem; border-top:1px solid var(--line); padding-top:.35rem; font-family:system-ui,sans-serif; }
.v5 .desktop-nav a[aria-current] { text-decoration:underline; text-underline-offset:.5em; }
.v5 .site-main { padding-top:2.5rem; }
.v5 .v5-opening { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:3rem; align-items:center; }
.v5 .v5-introduction h1 { font-size:clamp(2rem,3vw,2.8rem); max-width:25ch; margin:.8rem 0 1rem; }
.v5 .v5-introduction h1 br { display:none; }
.v5 h1 em { background:var(--rose); padding:0 .1em; color:#69415b; }
.v5 .footnote { font-size:.8rem; margin-bottom:1.2rem; color:var(--muted); }
.v5 .v5-personal-route { font:1rem/1.7 Georgia,serif; border-left:2px solid var(--rose-active); padding-left:1rem; margin-top:1.2rem; }
.v5 .v5-personal-route .text-link { display:inline-flex; margin-top:.4rem; }
.v5 .v5-portrait .image-group { margin:0; }
.v5 .v5-portrait .image-frame { border-radius:6px 24px 6px 6px; }
.v5 .v5-portrait figcaption { display:none; }
.v5 .reading-header h1 { font-size:clamp(2.1rem,3.5vw,3rem); }
.v5 .page-intro .intro-copy p:first-child { font:1.2rem/1.75 Georgia,serif; }
.v5 .v5-reading { display:grid; grid-template-columns:205px minmax(0,720px); gap:0 3rem; max-width:1040px; margin:auto; }
.v5 .reading-header { grid-column:2; grid-row:1; }
.v5 .b-reading-body { grid-column:2; min-width:0; }
.v5 .v5-reading.without-outline { display:block; max-width:720px; }
.v5 .reading-outline { grid-column:1; grid-row:1 / span 2; border:0; border-radius:0; box-shadow:none; background:var(--paper); padding:.6rem .8rem; top:calc(var(--nav-clearance) + 16px); max-height:calc(100dvh - var(--nav-clearance) - 36px); }
.v5 .reading-outline summary { padding:.6rem .3rem; }
.v5 .reading-outline a { position:relative; isolation:isolate; padding:.5rem .75rem; border:0; border-radius:8px; background:transparent; text-decoration:none; line-height:1.55; }
.v5 .reading-outline a:hover { text-decoration:underline; color:var(--ink); }
.v5 .reading-outline a[aria-current="location"] { color:#442e3b; font-weight:650; }
.v5 .reading-outline a[aria-current="location"]::before { content:""; position:absolute; z-index:-1; inset:4px 2px; border-radius:inherit; background:var(--rose); transform:rotate(-2deg); pointer-events:none; }
.v5 .outline-sub { padding-left:.45rem; border-left:0; }
.v5 .content-section { padding-top:1.8rem; border-top:1px solid var(--line); margin-top:2.7rem; }
.v5 .content-section .section-heading { display:flex; align-items:baseline; gap:1rem; margin-bottom:1.3rem; }
.v5 .section-no { font:italic .9rem/1.5 Georgia,serif; color:var(--muted); }
.v5 .section-copy { max-width:680px; }
.v5 .section-copy p { line-height:1.9; }
.v5 .reading-introduction { max-width:680px; }
.v5 .reading-introduction:empty { display:none; }
.v5 .b-home-work h2 { font-size:1.9rem; }
.v5 .b-completed-work { background:#e7ede6; padding:1.4rem; border:1px solid #c6d5c4; border-radius:4px 24px 4px 4px; }
.v5 .b-small-projects article:first-child { border-color:#c9bbda; }
.v5 .b-small-projects article:nth-child(2) { border-color:#b9cfc5; }
.v5 .b-project-group .project-item { border-top:1px solid var(--line); padding-top:1.2rem; }
.v5 .b-project-group.tehtya .project-item { background:#e7ede6; padding:1.5rem; border:1px solid #c6d5c4; border-radius:4px 20px 4px 4px; }
.v5 .ideavihko .b-project-collection { grid-template-columns:1fr; }
.v5 .ideavihko .project-item { display:grid; grid-template-columns:1fr 1.3fr; gap:.5rem 2rem; padding:1.3rem; background:#eee7d8; border-radius:12px 2px 2px; }
.v5 .ideavihko .project-meta { grid-column:1/-1; }
.v5 .ideavihko .project-item > p { grid-column:2; grid-row:2 / span 2; }
.v5 .image-group { margin:1.8rem 0; }
.v5 .planned-image { min-width:0; margin:0; max-width:var(--image-max-width,none); }
.v5 .image-frame { aspect-ratio:var(--image-ratio); overflow:hidden; background:var(--paper); border-radius:3px; }
.v5 .planned-image img { width:100%; height:100%; object-fit:var(--image-fit); object-position:var(--image-position); }
.v5 .planned-image figcaption { font:.85rem/1.65 system-ui,sans-serif; color:var(--muted); margin-top:.7rem; }
.v5 .image-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; align-items:start; }
.v5 .image-document { margin-inline:auto; }
.v5 .image-document .image-frame { background:#fff; border:1px solid var(--line); }
.v5 .image-enlarge { display:block; width:100%; height:100%; }
.v5 .image-enlarge:focus-visible { outline-offset:-4px; }
.v5 .image-open { display:inline-block; margin-top:.3rem; }
.v5 .image-inset { max-width:560px; margin-left:auto; }
.v5 .image-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.3rem; padding-block:1rem; border-block:1px solid var(--line); }
.v5 .image-timeline .planned-image:first-child { grid-column:1/-1; max-width:600px; }
.v5 .image-description { font:.9rem/1.6 system-ui,sans-serif; margin-top:.7rem; }
.v5 .image-description summary { text-decoration:underline; }
.v5 .image-description p { margin-top:.6rem; }
.v5 .project-item .image-group { margin-block:1.2rem; }
.v5 .status { background:#f1e8df; border-color:#d8c7b2; }
.v5 .site-footer { font-family:system-ui,sans-serif; }
html:has(body.v5) { scroll-padding-top:var(--v5-anchor-offset,216px); }
.v5 :is(.content-section,.subsection,.b-project-group,#main,#viite,#tyopoydalla) { scroll-margin-top:16px; }
@media (max-width:1100px) {
 .v5 .v5-reading { display:block; max-width:720px; }
 .v5 .reading-outline { position:static; max-height:none; margin-block:0 1.5rem; }
 .v5 .reading-outline a[aria-current="location"]::before { inset-block:5px; transform:rotate(-.75deg); }
 .v5 .v5-opening { grid-template-columns:minmax(0,1fr) 210px; gap:2rem; }
}
@media (max-width:900px) {
 .v5 { --nav-clearance:106px; }
 .v5 .floating-header { display:flex; padding:.7rem 1rem; min-height:76px; }
 .v5 .header-note,.v5 .desktop-nav { display:none; }
 .v5 .mobile-nav { display:block; margin-left:auto; }
 .v5 .mobile-nav summary { display:flex; gap:1rem; align-items:center; font:.9rem/1.5 system-ui,sans-serif; list-style:none; padding:.65rem .8rem; border:1px solid var(--line); border-radius:5px; min-height:44px; }
 .v5 .mobile-nav summary::-webkit-details-marker { display:none; }
 .v5 .mobile-nav[open] summary span { transform:rotate(45deg); }
 .v5 .mobile-nav nav { position:absolute; z-index:5; right:0; top:calc(100% + .5rem); display:grid; min-width:min(18rem,calc(100vw - 2rem)); background:#f7f2eb; border:1px solid var(--line); border-radius:10px; padding:.6rem; box-shadow:0 6px 20px #453e3715; max-height:calc(100dvh - var(--nav-clearance) - 20px); overflow:auto; }
 .v5 .mobile-nav nav a { padding:.65rem .8rem; text-decoration:none; min-height:44px; }
 .v5 .mobile-nav nav a[aria-current] { background:var(--soft); color:var(--accent); font-weight:650; }
}
@media (max-width:760px) {
 .v5 { --floating-top:10px; --nav-clearance:104px; }
 .v5 .site-shell { padding:10px 22px 0; }
 .v5 .floating-header { margin-inline:-10px; }
 .v5 .brand { gap:.65rem; font-size:.94rem; }
 .v5 .brand-mark { font-size:2.2rem; }
 .v5 .site-main { padding-top:1.6rem; }
 .v5 .v5-opening { grid-template-columns:minmax(0,1fr) 96px; gap:1rem; align-items:start; }
 .v5 .v5-introduction { display:contents; }
 .v5 .v5-introduction > :is(.eyebrow,h1,.footnote,.opening-links,.v5-personal-route) { grid-column:1/-1; }
 .v5 .v5-introduction h1 { font-size:2rem; margin:0; }
 .v5 .v5-introduction .footnote { margin:-.3rem 0 0; }
 .v5 .current-role { grid-column:1; grid-row:4; margin:0; font-size:.95rem; }
 .v5 .v5-portrait { grid-column:2; grid-row:4; }
 .v5 .opening-links,.v5 .v5-personal-route { margin:0; }
 .v5 .v5-personal-route { font-size:.95rem; }
 .v5 .reading-outline { padding:.4rem .65rem; }
 .v5 .reading-outline a { padding-block:.6rem; }
 .v5 .b-completed-work { padding:1rem; }
 .v5 .b-project-group.tehtya .project-item { padding:1rem; }
 .v5 .ideavihko .project-item { display:block; }
 .v5 .image-pair { grid-template-columns:1fr; }
 .v5 .image-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .v5 .planned-image img { object-position:var(--image-mobile-position); }
 .v5 .image-pages .planned-image { max-width:360px; margin:auto; }
 .v5 .content-section { margin-top:2rem; padding-top:1.4rem; }
}
@media (max-width:480px) {
 .v5 .reading-outline a[aria-current="location"]::before { inset-block:6px; transform:rotate(-1.5deg); }
}
@media print {
 .v5 .floating-header { position:static; box-shadow:none; }
 .v5 .reading-outline { display:none; }
 .v5 .v5-reading { display:block; }
}
/* A quiet language choice; the existing header grid and colours stay intact. */
.v5 .header-tools { display:flex; align-items:center; gap:1.25rem; justify-content:flex-end; }
.v5 .language-switch { display:flex; align-items:center; gap:.15rem; font:.8rem/1.5 system-ui,sans-serif; color:var(--muted); }
.v5 .language-switch a { padding:.45rem .35rem; text-decoration:none; border-radius:4px; }
.v5 .language-switch a[aria-current="page"] { color:var(--accent); font-weight:700; text-decoration:underline; text-underline-offset:.3em; }
.v5 .language-switch a:hover { color:var(--ink); text-decoration:underline; }
.v5 .mobile-nav summary small { font:inherit; font-size:.72rem; color:var(--muted); }
.v5 .language-mobile { padding:.4rem .6rem; margin-top:.4rem; border-top:1px solid var(--line); }
@media (max-width:900px) {
 .v5 .header-tools { display:none; }
 .v5 .language-mobile a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; padding:.5rem; }
 .v5 .mobile-nav summary { gap:.5rem; }
}
@media print { .v5 .header-tools { display:none; } }
