.modal-overlay{position:fixed;top:var(--klat-vue-haut,0px);bottom:var(--klat-dock-bas,0px);
  left:0;right:0;z-index:1000;display:flex;
  align-items:center;align-items:safe center;justify-content:center;padding:var(--s-5);
  background:var(--c-scrim);backdrop-filter:blur(4px);overflow-y:auto;overscroll-behavior:contain}
.modal-overlay.is-auth{z-index:9700}
.modal-overlay.is-sheet{z-index:8500}
.modal-card{position:relative;width:100%;max-width:440px;max-height:100%;
  overflow-y:auto;overscroll-behavior:contain;padding:var(--s-6);
  border:1px solid var(--c-line);border-radius:var(--r-3);
  background:var(--c-surface);color:var(--c-ink)}
.modal-card h2{font-size:var(--fs-4);font-weight:var(--fw-title);
  line-height:var(--lh-tight);margin-bottom:var(--s-2)}
.modal-card .sub{font-size:var(--fs-1);color:var(--c-ink-2);
  line-height:var(--lh-body)}
.modal-close{position:absolute;top:var(--s-3);inset-inline-end:var(--s-4);
  display:grid;place-items:center;width:36px;height:36px;padding:0;cursor:pointer;
  border:0;border-radius:var(--r-2);background:none;color:var(--c-ink-2);
  font-size:23px;line-height:1}
.modal-close:hover{background:var(--c-surface-2);color:var(--c-ink)}
.modal-sheet-handle{display:none;flex-shrink:0;width:40px;height:4px;
  margin:0 auto var(--s-3);border-radius:var(--r-pill);background:var(--c-line)}
@media (max-width:640px){
  .modal-overlay.is-auth,.modal-overlay.is-sheet{align-items:flex-end;padding:0}
  .modal-overlay.is-auth:not(.kf-sort) .modal-card,
  .modal-overlay.is-sheet:not(.kf-sort) .modal-card{
    max-width:100%;max-height:92%;padding:var(--s-2) var(--s-5) var(--s-5);
    border-radius:24px 24px 0 0;
    animation:modal-sheet-up .3s cubic-bezier(.22,1,.36,1)}
  .modal-overlay.is-auth .modal-sheet-handle,
  .modal-overlay.is-sheet .modal-sheet-handle{display:block}
  .modal-overlay.is-auth .modal-close,
  .modal-overlay.is-sheet .modal-close{top:var(--s-4)}
  .modal-overlay.is-auth.kf-sort > .kfeuille-panneau,
  .modal-overlay.is-sheet.kf-sort > .kfeuille-panneau{animation-name:kf-sortie-bas}}
@keyframes modal-sheet-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){
  .modal-overlay.is-auth .modal-card,
  .modal-overlay.is-sheet .modal-card{animation:none}
}
.btn-google,.btn-social{display:flex;align-items:center;justify-content:center;
  gap:var(--s-2);width:100%;height:54px;padding:var(--s-3);cursor:pointer;
  border:1.5px solid var(--c-line-strong);border-radius:var(--r-2);
  background:var(--c-surface);color:var(--c-ink);
  font-family:inherit;font-size:var(--fs-2);font-weight:var(--fw-ui);
  box-shadow:var(--sh-1);
  transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.btn-google:hover,.btn-social:hover{border-color:var(--c-action);
  background:var(--c-surface-2)}
.btn-google:focus-visible,.btn-social:focus-visible{outline:2px solid var(--c-focus);
  outline-offset:2px}
.btn-google:disabled,.btn-social:disabled{opacity:.6;cursor:not-allowed}
.btn-google svg,.btn-social svg{flex-shrink:0}
.btn-google + .btn-social,.btn-social + .btn-social{margin-top:var(--s-2)}
.google-cgu-note{margin:var(--s-2) 0 0;font-size:var(--fs-0);
  color:var(--c-ink-2);text-align:center;line-height:var(--lh-body)}
.auth-context-icon{display:grid;place-items:center;width:44px;height:44px;
  margin:0 auto var(--s-3);border-radius:var(--r-pill);
  background:var(--c-action-soft)}
.auth-context-icon svg{width:22px;height:22px;color:var(--c-action)}
.auth-banner{display:flex;align-items:flex-start;gap:var(--s-2);
  margin:var(--s-4) 0;padding:var(--s-3);border-radius:var(--r-2);
  font-size:var(--fs-1);line-height:var(--lh-body);text-align:start}
.auth-banner svg{flex:none;width:18px;height:18px;margin-top:2px}
.auth-banner p{margin:0}
.auth-banner.is-error{background:var(--c-danger-soft);
  border:1px solid color-mix(in srgb,var(--c-danger) 35%,transparent);
  color:var(--c-danger)}
.auth-banner.is-blocked{background:var(--c-warn-soft);
  border:1px solid color-mix(in srgb,var(--c-warn) 35%,transparent);
  color:var(--c-warn)}
.auth-connecting{display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:var(--s-8) 0 var(--s-6);text-align:center}
.auth-connecting-spinner{width:36px;height:36px;border-radius:50%;
  border:3px solid var(--c-line);border-top-color:var(--c-action);
  animation:auth-spin .7s linear infinite}
@media (prefers-reduced-motion:reduce){
  .auth-connecting-spinner{animation-duration:2.4s}}
@keyframes auth-spin{to{transform:rotate(360deg)}}
.auth-connecting p.title{margin:var(--s-4) 0 0;font-size:var(--fs-2);
  font-weight:var(--fw-title);color:var(--c-ink)}
.auth-connecting p.sub{margin:var(--s-1) 0 0;font-size:var(--fs-1);
  color:var(--c-ink-2)}
.proj .auth-stage{position:relative;overflow:hidden;
  padding:var(--s-7) 0 var(--s-9)}
.proj .auth-stage::before{content:"";position:absolute;inset:0;
  pointer-events:none;
  background:radial-gradient(1100px 640px at 18% -18%,color-mix(in srgb,var(--c-action) 7%,transparent),transparent 62%),
    radial-gradient(700px 460px at 88% 112%,color-mix(in srgb,var(--c-action) 4%,transparent),transparent 60%)}
.proj .auth-stage .wrap{position:relative;
  width:100%;max-width:calc(var(--w-content) + 2*var(--gutter));
  margin-inline:auto;padding-inline:var(--gutter)}
.proj .auth-hall{display:grid;max-width:1010px;margin:0 auto;
  border:1px solid var(--c-line);border-radius:var(--r-3);overflow:hidden;
  box-shadow:var(--sh-2)}
@media (min-width:880px){
  .proj .auth-hall{grid-template-columns:5fr 6fr}}
.proj .auth-beam{position:relative;display:flex;flex-direction:column;
  justify-content:center;padding:var(--s-8) var(--s-7);
  background:var(--c-bg-2);border-bottom:1px solid var(--c-line)}
@media (min-width:880px){
  .proj .auth-beam{border-bottom:0;border-inline-end:1px solid var(--c-line)}}
.proj .auth-beam::before{content:"";position:absolute;inset:0;
  pointer-events:none;
  background:radial-gradient(560px 420px at 22% 0%,color-mix(in srgb,var(--c-action) 10%,transparent),transparent 65%)}
.proj .auth-beam > *{position:relative}
.proj .ab-icon{width:38px;height:auto;margin-bottom:var(--s-5)}
.proj .ab-title{font-size:clamp(1.5rem,2.4vw,2rem);font-weight:var(--fw-title);
  letter-spacing:var(--ls-title);line-height:var(--lh-tight);
  color:var(--c-ink);margin-bottom:var(--s-4)}
.proj .ab-lead{font-size:var(--fs-2);line-height:var(--lh-body);
  color:var(--c-ink-2);max-width:340px}
.proj .auth-beam .hero-sur{display:block;margin-bottom:var(--s-3);
  font-size:var(--fs-0);font-weight:var(--fw-ui);letter-spacing:.08em;
  text-transform:uppercase;color:var(--c-ink-2)}
.proj .auth-beam .reassure{display:grid;gap:var(--s-2);margin-top:var(--s-5);
  font-size:var(--fs-1);color:var(--c-ink-2)}
.proj .auth-beam .reassure > div{display:flex;align-items:center;gap:var(--s-2)}
.proj .auth-beam .reassure svg{flex:none;width:16px;height:16px;
  color:var(--c-action)}
.proj .auth-card{background:var(--c-surface);color:var(--c-ink);
  padding:var(--s-8) var(--s-7) var(--s-6)}
.proj h2.auth-title{font-size:var(--fs-5);font-weight:var(--fw-title);
  letter-spacing:var(--ls-title);line-height:var(--lh-tight);
  color:var(--c-ink);margin-bottom:var(--s-5)}
.proj .auth-sub{font-size:var(--fs-1);color:var(--c-ink-2);
  line-height:var(--lh-body);margin:calc(-1 * var(--s-3)) 0 var(--s-5)}
.proj .abtn{display:flex;align-items:center;justify-content:center;gap:var(--s-2);
  width:100%;min-height:48px;padding:0 var(--s-4);cursor:pointer;
  border:1.5px solid var(--c-line-strong);border-radius:var(--r-2);
  background:var(--c-surface);color:var(--c-ink);
  font-family:inherit;font-size:var(--fs-2);font-weight:var(--fw-ui);
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.proj .abtn + .abtn{margin-top:var(--s-2)}
.proj .abtn:hover{border-color:var(--c-action);color:var(--c-action)}
.proj .abtn:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px}
.proj .abtn svg{flex:none}
.proj .auth-email-toggle{display:block;width:100%;margin-top:var(--s-3);
  padding:var(--s-2) 0 0;cursor:pointer;border:0;background:none;
  font-family:inherit;font-size:var(--fs-1);font-weight:var(--fw-ui);
  color:var(--c-action);text-align:center}
.proj .auth-email-toggle:hover{text-decoration:underline}
.proj .auth-email-toggle:focus-visible{outline:2px solid var(--c-focus);
  outline-offset:2px}
.proj .auth-div{display:flex;align-items:center;gap:var(--s-3);
  margin:var(--s-4) 0 var(--s-3);font-size:var(--fs-0);letter-spacing:.08em;
  text-transform:uppercase;color:var(--c-ink-2)}
.proj .auth-div::before,.proj .auth-div::after{content:"";flex:1;height:1px;
  background:var(--c-line)}
.proj .auth-note{margin-bottom:var(--s-4);font-size:var(--fs-1);
  line-height:var(--lh-body);color:var(--c-ink-2)}
.proj .field{position:relative;margin-bottom:var(--s-3)}
.proj .field > svg{position:absolute;inset-inline-start:14px;top:50%;
  transform:translateY(-50%);width:18px;height:18px;
  color:var(--c-ink-2);pointer-events:none}
.proj .field input{width:100%;min-height:48px;padding:0 44px 0 40px;
  border:1.5px solid var(--c-line-strong);border-radius:var(--r-2);
  background:var(--c-bg-2);color:var(--c-ink);
  font-family:inherit;font-size:var(--fs-2)}
.proj .field input::placeholder{color:var(--c-ink-3)}
.proj .field input:focus{outline:2px solid var(--c-focus);outline-offset:1px;
  background:var(--c-surface)}
.proj .field-eye{position:absolute;inset-inline-end:6px;top:50%;
  transform:translateY(-50%);display:flex;align-items:center;
  justify-content:center;width:36px;height:36px;cursor:pointer;
  border:0;border-radius:var(--r-2);background:none;color:var(--c-ink-2)}
.proj .field-eye:hover{color:var(--c-ink)}
.proj .field-eye:focus-visible{outline:2px solid var(--c-focus)}
.proj .field-eye svg{width:18px;height:18px}
.proj .auth-hint{margin:calc(-1 * var(--s-1)) 0 var(--s-3);
  font-size:var(--fs-0);color:var(--c-ink-2)}
.proj .auth-forgot{margin:var(--s-1) 0 0;text-align:end}
.proj .auth-forgot a{font-size:var(--fs-1);font-weight:var(--fw-ui);
  color:var(--c-action);text-decoration:none}
.proj .auth-forgot a:hover{text-decoration:underline}
.proj .auth-cgu{margin-top:var(--s-4);font-size:var(--fs-0);
  line-height:var(--lh-body);color:var(--c-ink-2);text-align:center}
.proj .auth-alt{margin-top:var(--s-5);padding-top:var(--s-4);
  border-top:1px solid var(--c-line);text-align:center;
  font-size:var(--fs-1);color:var(--c-ink-2)}
.proj .auth-alt a{font-weight:var(--fw-ui);color:var(--c-action);
  text-decoration:none}
.proj .auth-alt a:hover{text-decoration:underline}
.proj .btn{display:inline-flex;align-items:center;justify-content:center;
  gap:var(--s-2);min-height:var(--control-h);padding-inline:var(--s-5);
  cursor:pointer;border:1px solid transparent;border-radius:var(--r-2);
  font-family:inherit;font-size:var(--fs-1);font-weight:var(--fw-ui);
  text-decoration:none;
  transition:background var(--t-fast) var(--ease)}
.proj .btn-beam{background:var(--c-action);color:var(--c-on-action)}
.proj .btn-beam:hover{background:var(--c-action-hover)}
.proj .btn-full{width:100%}
