/* Flawverce kit : navigation, progression, révélations, galerie. Aucune couleur hors marque.
   Une page l'active avec <link rel="stylesheet" href="kit/flawverce-kit.css"> et le module JS. */
/* Montserrat servie avec la page (plus de Google Fonts : -0,9 s de blocage mesuré au Lighthouse le 26/09) */
@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;
  src:url(vendor/montserrat-latin-wght.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:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;
  src:url(vendor/montserrat-latin-ext-wght.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --fk-red:#BB1013; --fk-red-deep:#8E1017; --fk-gold:#C9A96E;
  --fk-black:#0A0A0A; --fk-card:#111111; --fk-border:#222222;
  --fk-w85:rgba(255,255,255,.85); --fk-w50:rgba(255,255,255,.5);
  --fk-ease:cubic-bezier(.16,1,.3,1);
}

/* barre de progression de lecture */
.fk-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none;
  background:linear-gradient(90deg,var(--fk-red-deep),var(--fk-red));
  transform-origin:0 50%;transform:scaleX(var(--fk-p,0))}
@supports (animation-timeline: scroll()){
  .fk-progress{animation:fk-grow linear both;animation-timeline:scroll(root)}
  @keyframes fk-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}

/* sommaire : barre collante sur grand écran, bouton + panneau bas sur téléphone */
.fk-nav{position:fixed;top:14px;left:50%;z-index:55;display:flex;gap:4px;padding:5px;max-width:calc(100vw - 32px);overflow-x:auto;scrollbar-width:none;
  background:rgba(10,10,10,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--fk-border);border-radius:40px;
  transform:translate(-50%,-140%);opacity:0;transition:transform .5s var(--fk-ease),opacity .4s var(--fk-ease)}
.fk-nav.on{transform:translate(-50%,0);opacity:1}
.fk-nav a{font:700 11px/1 Montserrat,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fk-w50);text-decoration:none;padding:10px 14px;border-radius:40px;white-space:nowrap;
  transition:color .3s var(--fk-ease),background .3s var(--fk-ease)}
.fk-nav a:hover{color:#fff}
.fk-nav a:focus-visible{outline:2px solid var(--fk-gold);outline-offset:2px}
.fk-nav a[aria-current="true"]{color:#fff;background:var(--fk-red)}
.fk-fab{display:none}
.fk-sheet{display:none}

@media (max-width:820px){
  .fk-nav{display:none}
  .fk-fab{display:flex;position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:55;
    align-items:center;gap:10px;font:700 12px/1 Montserrat,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;
    color:#fff;background:rgba(10,10,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border:1px solid var(--fk-border);border-radius:40px;padding:14px 18px;cursor:pointer;
    transform:translateY(160%);transition:transform .5s var(--fk-ease)}
  .fk-fab.on{transform:none}
  .fk-fab i{width:6px;height:6px;border-radius:50%;background:var(--fk-red)}
  .fk-sheet{display:block;position:fixed;inset:0;z-index:70;visibility:hidden}
  .fk-sheet.on{visibility:visible}
  .fk-sheet::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.55);opacity:0;transition:opacity .4s var(--fk-ease)}
  .fk-sheet.on::before{opacity:1}
  .fk-sheet nav{position:absolute;left:0;right:0;bottom:0;background:var(--fk-card);border-top:1px solid var(--fk-border);
    border-radius:18px 18px 0 0;padding:10px 20px calc(20px + env(safe-area-inset-bottom));
    transform:translateY(100%);transition:transform .5s var(--fk-ease)}
  .fk-sheet.on nav{transform:none}
  .fk-sheet nav::before{content:"";display:block;width:40px;height:4px;border-radius:4px;background:var(--fk-border);margin:4px auto 12px}
  .fk-sheet a{display:flex;justify-content:space-between;align-items:center;padding:16px 4px;border-bottom:1px solid var(--fk-border);
    font:600 16px/1.2 Montserrat,system-ui,sans-serif;color:var(--fk-w85);text-decoration:none}
  .fk-sheet a:last-child{border-bottom:0}
  .fk-sheet a[aria-current="true"]{color:#fff}
  .fk-sheet a:focus{outline:none}
  .fk-sheet a:focus-visible{outline:none;color:#fff;box-shadow:inset 3px 0 0 var(--fk-gold)}
  .fk-sheet a[aria-current="true"]::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--fk-red)}
}

/* révélation au défilement : natif quand le navigateur sait faire, sinon classe posée par le JS */
/* caché seulement si le script tourne (classe fk-js) : sans JS, le contenu reste visible */
.fk-js [data-fk-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s var(--fk-ease),transform .9s var(--fk-ease)}
.fk-js [data-fk-reveal].fk-in{opacity:1;transform:none}

/* parallaxe douce d'une image de fond (hero, bandeau) */
@supports (animation-timeline: view()){
  [data-fk-parallax]{animation:fk-par linear both;animation-timeline:view();animation-range:cover}
  @keyframes fk-par{from{transform:translateY(-6%) scale(1.12)}to{transform:translateY(6%) scale(1.12)}}
}

/* galerie : curseur loupe, légère montée au survol */
[data-fk-gallery] a{cursor:zoom-in;display:block;overflow:hidden;border-radius:3px}
[data-fk-gallery] img{transition:transform 1.2s var(--fk-ease)}
[data-fk-gallery] a:hover img{transform:scale(1.05)}
[data-fk-gallery] a:focus-visible{outline:2px solid var(--fk-gold);outline-offset:2px}
.pswp{--pswp-bg:#0A0A0A;--pswp-placeholder-bg:#111111;font-family:Montserrat,system-ui,sans-serif}
.fk-caption{position:absolute;left:0;right:0;bottom:0;padding:18px 20px calc(18px + env(safe-area-inset-bottom));
  text-align:center;color:var(--fk-w50);font:500 14px/1.5 Montserrat,system-ui,sans-serif;
  background:linear-gradient(0deg,rgba(10,10,10,.85),transparent)}

@media (prefers-reduced-motion:reduce){
  .fk-js [data-fk-reveal]{opacity:1;transform:none;transition:none}
  [data-fk-parallax]{animation:none}
  .fk-nav,.fk-fab,.fk-sheet nav{transition:none}
}

/* impression / PDF : tout visible, aucune commande flottante */
@media print{
  .fk-js [data-fk-reveal],[data-fk-reveal]{opacity:1!important;transform:none!important}
  [data-fk-parallax]{animation:none!important;transform:none!important}
  .fk-fab,.fk-sheet,.fk-nav,.fk-progress{display:none!important}
}
