/* =========================================================
   PAGE 404 · « Fausse note ! »
   ========================================================= */

.nf404{
    --nf-pink:var(--pink,#ff2d8d);
    --nf-cyan:var(--cyan,#00d9e8);

    position:relative;
    overflow:hidden;
    isolation:isolate;

    min-height:calc(100vh - 90px);
    padding:60px 20px 140px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:
        radial-gradient(ellipse at 50% 35%, rgba(255,45,141,.14), transparent 60%),
        radial-gradient(ellipse at 50% 100%, rgba(0,217,232,.10), transparent 55%),
        #07090e;
}

/* Ondes radio */
.nf404__waves{
    position:absolute;
    left:50%;
    top:42%;
    z-index:-1;
    pointer-events:none;
}

.nf404__waves i{
    position:absolute;
    left:0;
    top:0;
    width:0;
    height:0;
    border:2px solid var(--nf-pink);
    border-radius:50%;
    opacity:0;
    transform:translate(-50%,-50%);
    animation:nf404-pulse 6s ease-out infinite;
}

.nf404__waves i:nth-child(2){ animation-delay:2s; border-color:var(--nf-cyan); }
.nf404__waves i:nth-child(3){ animation-delay:4s; }

@keyframes nf404-pulse{
    0%  { width:0;     height:0;     opacity:.55; }
    100%{ width:900px; height:900px; opacity:0;   }
}

/* Carte */
.nf404__card{
    width:100%;
    max-width:640px;
    padding:48px 40px 40px;

    text-align:center;

    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.09);
    border-radius:30px;

    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);

    box-shadow:0 30px 70px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);

    animation:nf404-rise .7s cubic-bezier(.2,.8,.2,1) both;
}

@keyframes nf404-rise{
    from{ opacity:0; transform:translateY(24px); }
    to  { opacity:1; transform:none; }
}

/* 4 [disque] 4 */
.nf404__code{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:clamp(4px,1.5vw,14px);

    font-family:"Space Grotesk",Arial,sans-serif;
    font-weight:900;
    font-size:clamp(84px,18vw,150px);
    line-height:1;
}

.nf404__code > span:not(.nf404__vinyl){
    background:linear-gradient(180deg,var(--nf-cyan),var(--nf-pink));
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    filter:drop-shadow(0 0 18px rgba(255,45,141,.35));
}

.nf404__vinyl{
    position:relative;
    flex:0 0 auto;
    width:.82em;
    height:.82em;
    border-radius:50%;

    background:
        radial-gradient(circle, #111 0 14%, transparent 15%),
        repeating-radial-gradient(circle, #15161b 0 2px, #0a0b0e 2px 4px);

    box-shadow:0 0 0 2px rgba(255,255,255,.08), 0 0 30px rgba(0,217,232,.25);

    animation:nf404-spin 3.2s linear infinite;
}

/* Reflet du disque */
.nf404__vinyl::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:50%;
    background:conic-gradient(from 20deg, transparent 0 20%, rgba(255,255,255,.14) 28%, transparent 36% 70%, rgba(255,255,255,.1) 78%, transparent 86%);
}

/* Étiquette centrale */
.nf404__vinyl b{
    position:absolute;
    left:50%;
    top:50%;
    width:34%;
    height:34%;
    border-radius:50%;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle,#07090e 0 12%, var(--nf-pink) 13%);
}

@keyframes nf404-spin{
    to{ transform:rotate(360deg); }
}

/* Égaliseur */
.nf404__eq{
    height:34px;
    margin:14px 0 18px;

    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:5px;
}

.nf404__eq i{
    width:5px;
    height:100%;
    border-radius:3px;
    background:linear-gradient(180deg,var(--nf-cyan),var(--nf-pink));
    transform-origin:bottom;
    transform:scaleY(.2);
    animation:nf404-eq 1.1s ease-in-out infinite;
}

.nf404__eq i:nth-child(2){ animation-delay:-.9s; }
.nf404__eq i:nth-child(3){ animation-delay:-.5s; }
.nf404__eq i:nth-child(4){ animation-delay:-.2s; }
.nf404__eq i:nth-child(5){ animation-delay:-.7s; }
.nf404__eq i:nth-child(6){ animation-delay:-.3s; }
.nf404__eq i:nth-child(7){ animation-delay:-1s; }
.nf404__eq i:nth-child(8){ animation-delay:-.6s; }
.nf404__eq i:nth-child(9){ animation-delay:-.4s; }

@keyframes nf404-eq{
    0%,100%{ transform:scaleY(.18); }
    50%    { transform:scaleY(1); }
}

/* Textes */
.nf404__title{
    margin:0 0 16px;

    color:#fff;
    font-family:"Space Grotesk",Arial,sans-serif;
    font-weight:900;
    font-size:clamp(34px,7vw,56px);
    line-height:1.05;
    letter-spacing:.02em;
}

.nf404__title strong{
    color:var(--nf-pink);
    text-shadow:0 0 28px rgba(255,45,141,.45);
}

.nf404__text{
    margin:0 0 20px;

    color:#b9bcc4;
    font-size:clamp(15px,2.4vw,17px);
    line-height:1.65;
}

.nf404__path{
    margin:0 0 28px;
}

.nf404__path code{
    display:inline-block;
    max-width:100%;
    padding:6px 12px;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    vertical-align:bottom;

    color:var(--nf-cyan);
    font-family:ui-monospace,Consolas,monospace;
    font-size:12px;

    background:rgba(0,217,232,.07);
    border:1px solid rgba(0,217,232,.2);
    border-radius:8px;
}

/* Boutons */
.nf404__actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
    margin-bottom:26px;
}

.nf404__btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 28px;

    color:#fff;
    font-weight:800;
    font-size:13px;
    letter-spacing:.06em;
    text-transform:uppercase;
    text-decoration:none;

    border:1px solid rgba(255,255,255,.18);
    border-radius:50px;

    transition:transform .25s cubic-bezier(.175,.885,.32,1.275), background .2s, box-shadow .2s, border-color .2s;
}

.nf404__btn:hover{
    transform:translateY(-2px) scale(1.04);
    border-color:var(--nf-cyan);
}

.nf404__btn--main{
    color:#07090e;
    border-color:transparent;
    background:linear-gradient(90deg,var(--nf-cyan),#6ff3ff);
}

.nf404__btn--main:hover{
    border-color:transparent;
    box-shadow:0 12px 30px rgba(0,217,232,.4);
}

/* Liens utiles */
.nf404__links{
    padding-top:22px;

    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px 22px;

    border-top:1px solid rgba(255,255,255,.08);
}

.nf404__links a{
    color:#9da1ab;
    font-size:12px;
    font-weight:600;
    text-decoration:none;
    transition:color .2s;
}

.nf404__links a i{
    margin-right:6px;
    color:var(--nf-pink);
}

.nf404__links a:hover{
    color:#fff;
}

@media(max-width:600px){

    .nf404{ padding:36px 14px 120px; }

    .nf404__card{ padding:34px 20px 28px; border-radius:24px; }

    .nf404__btn{ width:100%; justify-content:center; }
}

@media(prefers-reduced-motion:reduce){

    .nf404__card,
    .nf404__vinyl,
    .nf404__eq i,
    .nf404__waves i{ animation:none; }

    .nf404__eq i{ transform:scaleY(.6); }
}
