/* ===== IBPROD WordPress : polices auto-hébergées, animations validées, formulaire ===== */
@font-face{font-family:'Archivo';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url('../fonts/archivo-latin-wdth-normal.woff2') format('woff2-variations'),url('../fonts/archivo-latin-wdth-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url('../fonts/archivo-latin-ext-wdth-normal.woff2') format('woff2-variations'),url('../fonts/archivo-latin-ext-wdth-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--f:40ms;--ease:cubic-bezier(.2,.7,.2,1)}
.admin-bar .site-header{top:32px}
/* titres de cartes en condensé : le survol les élargit */
.project-meta h3{font-family:'Archivo',Manrope,Arial,sans-serif;font-stretch:72%;font-weight:800;text-transform:uppercase;letter-spacing:0;transition:font-stretch calc(10*var(--f)) var(--ease)}
.project-card:hover .project-meta h3,.project-card a:focus-visible .project-meta h3{font-stretch:100%}
.project-card img{transition:transform calc(10*var(--f)) var(--ease)}
.project-card:hover img{transform:scale(1.03)}
/* accueil : lignes du titre et surlignage */
.js-motion .hero h1 .ln{display:block;overflow:hidden;padding-bottom:.04em}
.js-motion .hero h1 .ln>span{display:block;animation:ib-up calc(15*var(--f)) var(--ease) both;animation-delay:calc((4 + var(--i)*2)*var(--f))}
.js-motion .hero h1 mark{background-repeat:no-repeat;background-position:left;animation:ib-mark calc(10*var(--f)) var(--ease) calc(22*var(--f)) both}
.js-motion .hero .lead,.js-motion .hero .hero-actions{animation:ib-rise calc(10*var(--f)) var(--ease) calc(26*var(--f)) both}
.js-motion .hero .hero-actions{animation-delay:calc(30*var(--f))}
@keyframes ib-up{from{transform:translateY(105%)}to{transform:none}}
@keyframes ib-mark{from{background-size:0% 100%}to{background-size:100% 100%}}
@keyframes ib-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* apparition des sections, une seule fois */
.js-motion .reveal-pending{opacity:0;transform:translateY(16px)}
.js-motion .reveal-in{animation:ib-rise calc(12*var(--f)) var(--ease) both}
/* formulaire */
.contact-form .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status{padding:14px 16px;border:1px solid var(--line);font-size:14px}
.form-status.ok{border-color:#2f6b3f;color:#2f6b3f}
.form-status.err{border-color:#9b3b1f;color:#9b3b1f}
.contact-form button[disabled]{opacity:.6;cursor:wait}
/* fiche projet : note visible seulement des éditeurs */
.todo-note a{text-decoration:underline}
@media (prefers-reduced-motion:reduce){.js-motion .hero h1 .ln>span,.js-motion .hero h1 mark,.js-motion .hero .lead,.js-motion .hero .hero-actions,.js-motion .reveal-in{animation:none!important}.js-motion .reveal-pending{opacity:1;transform:none}}
