/* =====================================================================
   FF Theme · pagina Chi sono (/chi-sono/), dopo pagina.css
   Dal concept pagine/federicofloris-chisono-concept.html (blocco «PAGINA CHI SONO»).
   In più: stati senza JavaScript (competenze tutte aperte).
   ===================================================================== */
.ff-hero .ff-facts{margin-top:4px}

/* ===== 02 · Percorso: passi più compatti (sono otto), l'anno grande sopra il titolo ===== */
.ff-tl .ff-step{min-height:min(56vh,560px)}
.ff-tl-y{display:block;margin-bottom:.12em;font:italic 400 clamp(3.4rem,6vw,6rem)/.9 var(--ff-serif);letter-spacing:-.02em;color:var(--accent)}
.ff-tl .ff-step h3{font-size:clamp(1.8rem,2.8vw,2.6rem)}
/* desktop: l'ultimo passo è alto quanto il palco, così quando arriva a metà schermo il disegno fermo
   (che si ferma con la fine della sezione) è ancora centrato accanto al suo testo e non resta più in alto */
@media (min-width:900px){
  .ff-tl .ff-step:last-child{min-height:calc(100vh - var(--ff-head) - var(--ff-barh))}
}

/* ===== 03 · Come lavoro: quattro principi in griglia 2×2 ===== */
.ff-prin{list-style:none;margin:clamp(40px,7vh,72px) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.ff-prin li{display:grid;gap:12px;align-content:start;padding:clamp(24px,4vh,40px) clamp(20px,3vw,48px) clamp(24px,4vh,40px) 0;border-bottom:1px solid var(--line);min-width:0}
.ff-prin li:nth-child(even){padding-left:clamp(20px,3vw,48px);padding-right:0;border-left:1px solid var(--line)}
.ff-prin li>span{font-size:.72rem;color:var(--accent)}
.ff-prin b{font-size:clamp(1.5rem,2.4vw,2.2rem);font-weight:600;letter-spacing:-.03em;line-height:1.05}
.ff-prin p{margin:0;max-width:44ch;color:var(--muted)}

/* ===== 04 · Strumenti: due righe di nomi che scorrono all'infinito in direzioni opposte ===== */
.ff-tools{display:grid;gap:10px;margin:clamp(40px,7vh,72px) calc(var(--ff-pad-r) * -1) 0 calc(var(--ff-pad-l) * -1);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ff-tools-r{display:flex;width:max-content;animation:ff-tools 46s linear infinite}
.ff-tools-r--rev{animation-direction:reverse;animation-duration:52s}
.ff-tools:hover .ff-tools-r{animation-play-state:paused}
.ff-tools-t{display:flex;flex:none}
.ff-tools-t span{flex:none;padding:0 clamp(14px,1.6vw,26px);font-size:clamp(1.8rem,3.6vw,3.4rem);font-weight:600;letter-spacing:-.04em;line-height:1.15;white-space:nowrap;color:color-mix(in srgb,var(--fg) 82%,transparent);transition:color var(--ff-t-fast)}
.ff-tools-r--rev .ff-tools-t span{font:italic 400 clamp(1.8rem,3.6vw,3.4rem)/1.15 var(--ff-serif);letter-spacing:-.01em;color:var(--muted)}
.ff-tools-t span::after{content:"·";margin-left:clamp(28px,3.2vw,52px);color:var(--accent);font-style:normal}
.ff-tools-t span:hover{color:var(--accent)}
@keyframes ff-tools{to{transform:translateX(-50%)}}

/* competenze: righe che si aprono */
.ff-skill-list{margin-top:clamp(40px,7vh,64px);border-top:1px solid var(--line)}
.ff-sk{border-bottom:1px solid var(--line)}
.ff-sk button{width:100%;display:grid;grid-template-columns:3rem minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:clamp(16px,2.6vh,22px) 0;background:none;border:0;text-align:left;cursor:pointer;color:var(--fg);font:600 clamp(1.15rem,1.7vw,1.5rem)/1.2 var(--ff-sans);letter-spacing:-.02em;transition:padding var(--ff-t-mid) var(--ff-ease-out)}
.ff-sk button small{font-size:.7rem;font-weight:400;letter-spacing:0;color:var(--accent)}
.ff-sk button i{position:relative;width:14px;height:14px;align-self:center}
.ff-sk button i::before,.ff-sk button i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:currentColor;transition:transform var(--ff-t-mid) var(--ff-ease-out)}
.ff-sk button i::after{transform:rotate(90deg)}
.ff-sk button[aria-expanded="true"] i::after{transform:rotate(0)}
.ff-sk button:hover{padding-left:8px}
.ff-sk button:hover span{color:var(--accent)}
.ff-sk-p{display:grid;grid-template-rows:0fr;transition:grid-template-rows 420ms var(--ff-ease-out)}
.ff-sk-p>div{overflow:hidden;min-height:0}
.ff-sk-p p{margin:0 0 clamp(18px,3vh,24px) 3rem;padding-left:12px;max-width:62ch;color:var(--muted)}
.ff-sk button[aria-expanded="true"]+.ff-sk-p{grid-template-rows:1fr}
.ff-skills-a{margin-top:clamp(32px,5vh,48px)}
/* senza JavaScript le righe non si aprono: tutte aperte, senza il segno più */
html:not(.ff-js) .ff-sk-p{grid-template-rows:1fr}
html:not(.ff-js) .ff-sk button{cursor:default;pointer-events:none}
html:not(.ff-js) .ff-sk button i{display:none}

/* ===== 05 · Collaborazioni: tabella con la barra degli anni ===== */
.ff-cl{margin-top:clamp(40px,7vh,72px)}
.ff-cl-h,.ff-cl-r{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.2fr) 8.5rem;gap:16px;align-items:baseline}
.ff-cl-h{padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--fg) 45%,transparent);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ff-cl-r{position:relative;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--fg);transition:padding var(--ff-t-mid) var(--ff-ease-out)}
/* barra sottile sul bordo: da quando è iniziata la collaborazione fino a oggi */
.ff-cl-r::after{content:"";position:absolute;left:calc(var(--a) * 100%);right:0;bottom:-1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform 600ms var(--ff-ease-out)}
.ff-cl-r:hover::after,.ff-cl-r:focus-visible::after{transform:scaleX(1)}
.ff-cl-r b{font-weight:600;font-size:1.05rem;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ff-cl-r b i{margin-left:8px;font-style:normal;font-weight:400;color:var(--muted);transition:color var(--ff-t-fast)}
.ff-cl-r span{color:var(--muted);font-size:.92rem;min-width:0}
.ff-cl-y{font-size:.74rem!important;text-align:right}
.ff-cl-y em{font-style:normal;color:var(--fg)}
.ff-cl-r:hover{padding-left:8px}
.ff-cl-r:hover b,.ff-cl-r:hover b i{color:var(--accent)}
/* progetto proprio */
.ff-own{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"k i" "b i" "p i";gap:8px 24px;margin-top:clamp(48px,8vh,80px);padding:clamp(22px,3vw,36px);border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 60%,transparent);text-decoration:none;color:var(--fg);transition:border-color var(--ff-t-mid)}
.ff-own>span{grid-area:k;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.ff-own b{grid-area:b;font:italic 400 clamp(2rem,4vw,3.4rem)/1 var(--ff-serif);overflow-wrap:anywhere}
.ff-own p{grid-area:p;margin:0;max-width:56ch;color:var(--muted)}
.ff-own i{grid-area:i;align-self:center;font-style:normal;font-size:1.6rem;transition:transform var(--ff-t-mid) var(--ff-ease-out),color var(--ff-t-fast)}
.ff-own:hover{border-color:var(--accent)}
.ff-own:hover i{color:var(--accent);transform:translate(3px,-3px)}

/* foto tonda piccola prima del pulsante, in bianco e nero: diametro uguale all'altezza del pulsante (42px) */
.ff-actions .ff-ca-av{position:relative;flex:none;width:42px;height:42px;border-radius:50%;overflow:hidden;background:var(--fg);align-self:center}
.ff-ca-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}

/* ===== Tablet e telefono ===== */
@media (max-width:1180px){
  .ff-cl-h,.ff-cl-r{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 7.5rem}
  .ff-cl-h span:nth-child(3),.ff-cl-r span:nth-child(3){display:none}
}
@media (max-width:899px){
  .ff-tl .ff-step{min-height:0}
  .ff-tl-y{font-size:clamp(3rem,14vw,4.2rem)}
  .ff-tools{margin-left:calc(var(--ff-gutter) * -1);margin-right:calc(var(--ff-gutter-r) * -1)}
}
@media (max-width:640px){
  .ff-prin{grid-template-columns:1fr}
  .ff-prin li,.ff-prin li:nth-child(even){padding:24px 0;border-left:0}
  .ff-cl-h{display:none}
  .ff-cl-r{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
  .ff-cl-r span:nth-child(2){grid-column:1;grid-row:2;font-size:.85rem}
  .ff-cl-y{grid-column:2;grid-row:1}
  .ff-sk button{grid-template-columns:2.4rem minmax(0,1fr) auto}
  .ff-sk-p p{margin-left:2.4rem}
}
/* telefono: i tre numeri dell'apertura stanno sempre in riga («WordPress» compreso), azioni su più righe */
@media (max-width:599px){
  .ff-hero .ff-facts div{min-width:0;padding-right:10px}
  .ff-hero .ff-facts dd{font-size:clamp(1.15rem,5.2vw,1.6rem)}
  .ff-page .ff-scene .ff-skills-a{flex-wrap:wrap;overflow:visible;-webkit-mask-image:none;mask-image:none;margin-inline:0;padding-inline:0}
}
@media (prefers-reduced-motion:reduce){
  /* niente scorrimento: i nomi vanno a capo, la copia sparisce */
  .ff-tools-r{animation:none;flex-wrap:wrap;width:auto}
  .ff-tools-t[aria-hidden]{display:none}
  .ff-tools-t{flex-wrap:wrap;flex:1}
  .ff-sk-p{transition:none}
}
