/* Styles propres à la page /oarvacyber/ */
a:focus-visible{outline:2px solid #2A63B5;outline-offset:3px;border-radius:8px}
.card{background:#FFFFFF;border:1px solid #ECEBE8;border-radius:16px;box-shadow:0 1px 2px rgba(47,46,43,.04),0 10px 30px rgba(47,46,43,.06)}
a.card{text-decoration:none;color:#2F2E2B;transition:transform .2s ease,box-shadow .2s ease}
a.card:hover{color:#2F2E2B;transform:translateY(-3px);box-shadow:0 18px 40px rgba(47,46,43,.10)}
.kicker{font-size:15px;font-weight:500;color:#6F6E69;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;box-sizing:border-box;transition:transform .15s ease,background .15s ease}
.btn-light{background:#FFFFFF;color:#2F2E2B}
.btn-light:hover{color:#2F2E2B;transform:translateY(-1px)}
.btn-line{color:#FFFFFF;border:1px solid rgba(255,255,255,.35)}
.btn-line:hover{color:#FFFFFF;border-color:#FFFFFF}
.tile{display:flex;flex-direction:column;border-radius:20px;overflow:hidden;text-decoration:none;color:#2F2E2B}
.sable{background:#ECE8DF}
.ciel{background:#DCE6F2}
.vert{background:#3B7A4E;color:#FFFFFF}
.encre{background:#2F2E2B;color:#FFFFFF}
.demo{font-size:12.5px;color:#6F6E69;margin:0}
.go{margin-top:auto;font-size:14px;font-weight:600;color:#3B7A4E}
.log{display:flex;gap:14px;padding:13px 0;border-top:1px solid rgba(255,255,255,.1);font-size:14px;line-height:1.5}
.log time{min-width:46px;color:#9B9A95;font-variant-numeric:tabular-nums}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.07);opacity:1}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}
.breathe{animation:breathe 5.5s ease-in-out infinite}
.live{animation:blink 2.4s ease-in-out infinite}
/* ===== ANIMATIONS ===== */
@keyframes wordIn{from{opacity:0;translate:0 .38em;filter:blur(8px)}to{opacity:1;translate:0 0;filter:blur(0)}}
:is(section:has(h1) :has(> h1),section:has(> h1)) > :not(h1){animation:riseIn .9s cubic-bezier(.2,.7,.2,1) .5s both}
:is(section:has(h1) :has(> h1),section:has(> h1)) > :not(h1):nth-child(1){animation-delay:.05s}
:is(section:has(h1) :has(> h1),section:has(> h1)) > :not(h1):nth-child(3){animation-delay:.6s}
:is(section:has(h1) :has(> h1),section:has(> h1)) > :not(h1):nth-child(4){animation-delay:.72s}
:is(section:has(h1) :has(> h1),section:has(> h1)) > :not(h1):nth-child(n+5){animation-delay:.84s}
section:has(h1) .wrap:not(:has(> h1)) > :not(:has(h1)){animation:tileIn 1.1s cubic-bezier(.2,.7,.2,1) .35s both}
.anim-on [data-r]{transition:opacity .8s ease var(--d,0ms),translate .95s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .25s ease,box-shadow .25s ease,background-color .2s ease,color .2s ease,border-color .2s ease}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
