/* Shared language visibility, including the small Reading feature on About. */
html[lang="it"] [data-l="en"],html:not([lang="it"]) [data-l="it"]{display:none!important}
.brand{gap:2px}
.brand sup{flex:none}
.co-brand sup{margin-left:-8px}
.ff-word{gap:.015em}

/* One continuous, fine dot grid across About, including the page edges. */
body.on-about{background-image:radial-gradient(circle,color-mix(in srgb,var(--ink) 14%,transparent) .5px,transparent .8px);background-size:18px 18px}
body.on-about .desk{background:transparent;border-radius:0;color:var(--ink)}
body.on-about .desk::before{display:none}
body.on-about .ff{background:transparent}
body.on-about .cv-id h1,body.on-about .cv-meta dd,body.on-about .cv-lead,body.on-about .cv-exp b,body.on-about .cv-skills,body.on-about .cv-skills.chips li,body.on-about .cv-tools{color:var(--ink)}
body.on-about .cv-meta dt,body.on-about .cv-block h2,body.on-about .cv-lead.dim,body.on-about .cv-exp span,body.on-about .cv-skills .dim,body.on-about .desk-hint{color:var(--mute)}
body.on-about .cv-meta a{border-color:var(--line)}
body.on-about .cv-meta a:hover{border-color:var(--ink)}
.rd-bar{justify-content:center;flex-wrap:wrap}

/* Separate cards keep the three footer groups aligned and easy to scan. */
.ff-grid{grid-template-columns:1fr 1.15fr 1fr;gap:14px;padding-block:24px 28px;border-top:0;align-items:stretch}
.ff-grid>div{background:var(--paper);border-radius:22px;padding:clamp(20px,2.4vw,30px);min-height:0;display:flex;flex-direction:column;gap:16px;font-size:13px;line-height:1.45;min-width:0}
.ff-grid h4{margin:0;font:500 10px var(--mono);letter-spacing:.07em}
.ff-links{display:grid;grid-template-columns:1fr 1fr;gap:11px 16px}
.ff-links a{width:max-content;max-width:100%;padding-block:2px}
.ff-grid .ff-legal{font-size:11px;color:var(--mute);margin-top:4px}
.ff-project-list{display:grid;gap:14px}
.ff-project-link{display:grid;gap:3px}
.ff-project-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.ff-project-title i{font-style:normal;color:var(--mute);font-size:12px}
.ff-project-link small{font-size:11px;color:var(--mute)}
.ff-grid .ff-email{font-weight:500;overflow-wrap:anywhere}
.ff-contact p{margin:0;color:var(--mute);max-width:27ch;font-size:12px}
.ff-location{font-size:11px!important}
.ff-social{display:flex;flex-wrap:wrap;gap:14px;margin-top:2px;font-size:11px}

/* Weather icons retain their square shape at any zoom or text length. */
.wx{--wx-size:clamp(156px,13.5vw,200px);width:var(--wx-size);min-height:var(--wx-size);height:auto;aspect-ratio:auto;container-type:inline-size;gap:18px;flex:none;overflow:visible}
.wx svg{width:28%;max-width:44px;height:auto;aspect-ratio:1;flex:none;align-self:flex-start}
.wx p{font-size:clamp(13px,10cqi,18px);line-height:1.2;overflow-wrap:anywhere}
.wx p i{white-space:normal}
.ff-right{max-width:100%}
@media(max-width:760px){
  .ff-grid{grid-template-columns:1fr 1fr;gap:10px;padding-block:24px 26px}
  .ff-grid>div{padding:20px 16px;border-radius:18px}
  .ff-grid .ff-contact{grid-column:1/-1}
  .ff-links{grid-template-columns:1fr;gap:9px}
  .ff-project-title{gap:6px}
  .ff-contact p{max-width:36ch}
  .wx{--wx-size:128px}
  .wx svg{width:28%;max-width:32px}
}
@media(max-width:360px){
  .ff-grid{grid-template-columns:1fr}
  .ff-grid>div{padding:20px}
  .ff-links{grid-template-columns:1fr;gap:8px}
}
