/* Direct routes use the site's existing paper, ink, rules and typefaces. */
.skip-link { position:fixed; left:18px; top:12px; z-index:1000; padding:12px 16px; border:2px solid var(--ink); background:var(--bg); color:var(--ink); font:12px/1.5 var(--mono); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.hero .topbar { z-index:60; }
.primary-nav { display:flex; align-items:center; gap:28px; padding:0 28px; min-height:44px; border-bottom:1px solid var(--ink); font:12px var(--mono); position:relative; z-index:45; background:var(--bg); }
.primary-nav a, .profile-menu summary, .profile-links a { color:var(--ink); text-decoration:none; }
.primary-nav a:hover, .profile-menu summary:hover, .profile-links a:hover { color:var(--ink); text-decoration:underline; text-decoration-color:var(--pink); text-underline-offset:4px; }
.primary-nav > a { min-height:44px; display:flex; align-items:center; }
.primary-nav a:focus-visible, .profile-menu summary:focus-visible, .profile-links a:focus-visible, .project-preview:focus-visible, .latest-article:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.profile-menu { position:relative; }
.profile-menu summary { cursor:pointer; list-style:none; min-height:44px; display:flex; align-items:center; gap:6px; }
.profile-menu summary::-webkit-details-marker { display:none; }
.profile-menu summary::after { content:'+'; color:var(--pink); }
.profile-menu[open] summary::after { content:'−'; }
.profile-menu .profile-links { position:absolute; top:100%; left:0; width:250px; display:grid; gap:0; padding:8px 16px; border:1px solid var(--ink); background:var(--bg); }
.language-switcher__menu { border:1px solid var(--ink); box-shadow:none; }
.language-switcher__summary { min-width:44px; min-height:44px; }
.language-switcher__option { min-height:44px; }
.language-switcher__summary:hover, .language-switcher__summary:focus-visible, .language-switcher__details[open] .language-switcher__summary { color:var(--ink); text-decoration-color:var(--pink); }
.language-switcher__option[aria-current='page'] { color:var(--ink); text-decoration:underline; text-decoration-color:var(--pink); text-underline-offset:4px; }
.language-switcher__summary:focus-visible, .language-switcher .language-switcher__option:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.language-switcher .language-switcher__option:hover:focus-visible { outline-offset:0; }
.profile-menu .profile-links a { min-height:44px; display:flex; align-items:center; border-bottom:1px solid rgba(17,17,16,.18); }
.profile-menu .profile-links a:last-child { border:0; }
.project-previews { padding:32px 28px 40px; border-bottom:1px solid var(--ink); }
.project-previews__label { margin-bottom:20px; font:11px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.project-previews__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--ink); }
.project-preview { display:flex; flex-direction:column; gap:12px; padding:24px 28px 0 0; color:var(--ink); text-decoration:none; min-width:0; }
.project-preview + .project-preview { border-left:1px solid rgba(17,17,16,.25); padding-left:28px; }
.project-preview h2 { margin:0; font:800 clamp(18px,1.7vw,26px)/1.25 var(--display); }
.project-preview p { font:16px/1.5 var(--text); max-width:32em; text-wrap:pretty; }
.project-preview__link { margin-top:auto; padding-top:4px; font:11px/1.6 var(--mono); }
.project-preview:hover h2 { text-decoration:underline; text-decoration-color:var(--pink); text-underline-offset:4px; }
.project-preview__link b { color:var(--pink); }
.role-row .role-desc--visible { max-height:none; grid-template-rows:1fr; opacity:.88; }
.role-row .role-desc--visible .role-desc-inner { opacity:1; transform:none; }
.latest-article { display:block; padding:28px 0; margin-bottom:20px; border-top:2px solid var(--ink); border-bottom:1px solid var(--ink); color:var(--ink); text-decoration:none; }
.latest-article__meta { display:block; margin-bottom:14px; font:11px/1.6 var(--mono); letter-spacing:.02em; }
.latest-article__meta b { color:var(--ink); font-weight:500; text-decoration:underline; text-decoration-color:var(--pink); text-underline-offset:4px; }
.latest-article h2, .latest-article h3 { font:800 clamp(22px,2.4vw,36px)/1.25 var(--display); max-width:29em; margin:0 0 16px; text-wrap:balance; }
.latest-article p { font:18px/1.5 var(--text); max-width:40em; margin:0 0 18px; text-wrap:pretty; }
.latest-article__cta { font:12px var(--mono); }
.latest-article__cta span { color:var(--pink); }
.latest-article:hover h2, .latest-article:hover h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.articles-cover { grid-template-columns:minmax(0,1fr); }
.articles-cover .latest-article { margin:0; min-width:0; max-width:100%; }
.archive-language-note { font:14px/1.6 var(--text); margin:0; max-width:42em; }
.archive-language-note a { color:var(--ink); text-underline-offset:3px; }
.s-footer > .profile-links { display:flex; gap:14px 24px; flex-wrap:wrap; margin-top:32px; font:12px/1.6 var(--mono); }
.s-footer > .profile-links a { display:inline-flex; align-items:center; min-height:24px; }
.profile-menu summary, .primary-nav > a { flex-shrink:0; }
/* Both translated reading paths belong beside the label, in equal columns. */
@media(min-width:801px) {
  html[lang='en'] .articles-cover .reading-routes { grid-template-columns:180px repeat(2,minmax(0,1fr)); }
  html[lang='en'] .articles-cover .reading-routes a:not(:last-child) { border-right:0; }
}
@media(min-width:801px) and (max-width:1080px) {
  html[lang='en'] .articles-cover .reading-routes { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:1101px) {
  html[lang='en'] .hero .line--outline { font-size:clamp(56px,9.8vw,188px); }
}
/* Portrait tablets need their own composition: the desktop photo otherwise
   covers the introduction. Keep the portrait between the intro and the name. */
@media(min-width:761px) and (max-width:1100px) {
  .hero { height:auto; min-height:100svh; --shift:3vw; }
  .hero .topbar { padding-left:28px; padding-right:28px; }
  .hero .stage { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr auto; gap:24px; padding:28px; }
  .hero .toc { display:none; }
  .hero .intro { position:static; grid-row:1; max-width:38em; font-size:18px; }
  .hero .photo { position:relative; grid-row:2; justify-self:center; align-self:center; top:auto; right:auto; bottom:auto; height:clamp(240px,38svh,400px); }
  .hero .type { position:static; grid-row:3; max-width:100%; }
  .hero .line { font-size:11vw; }
  html[lang='en'] .hero .line { font-size:10.5vw; }
  .hero .echoes { display:none; }
  .hero .bottom { align-items:center; }
}
@media(max-width:760px) {
  .hero { min-height:760px; }
  html[lang='en'] .hero .photo { display:block; }
  .primary-nav { gap:18px; padding:0 18px; font-size:11px; }
  .profile-menu { position:static; }
  .profile-menu .profile-links { left:18px; width:min(320px,calc(100vw - 36px)); }
  .project-previews { padding:28px 18px; }
  .project-previews__grid { grid-template-columns:1fr; }
  .project-preview, .project-preview + .project-preview { padding:20px 0; border-left:0; border-bottom:1px solid rgba(17,17,16,.25); }
  .project-preview:last-child { border-bottom:0; padding-bottom:0; }
  .project-preview p { font-size:15px; }
  .project-preview__link { margin-top:0; }
  .latest-article { padding:22px 0; }
  .latest-article h2, .latest-article h3 { font-size:21px; }
  .latest-article p { font-size:16px; }
  .s-uslugi .grid, .menu, .menu-item, .menu-line { min-width:0; }
  .menu-name { overflow-wrap:anywhere; }
  .napishi { min-width:0; }
  html[lang='en'] .hero .line { font-size:12.3vw; }
  .latest-article h2, .latest-article h3 { overflow-wrap:break-word; }
}
@media(max-width:360px) {
  .primary-nav { gap:12px; font-size:10px; }
  .menu-line { display:grid; grid-template-columns:1fr; gap:6px; }
  .menu-dots { display:none; }
  .menu-price { text-align:left; }
  .napishi { font-size:10.8vw; }
  .latest-article h2, .latest-article h3 { font-size:19px; }
  html[lang='en'] .articles-cover h1 { font-size:17vw; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .language-switcher *, .primary-nav *, .project-preview, .latest-article { transition:none; }
}
