/* ==========================================
   GLOBAL PAGE BASE
========================================== */

.page{
    min-height:100vh;
    position:relative;
    overflow:hidden;
}

/* ==========================================
   GLOBAL SECTIONS
========================================== */

.section{
    position:relative;
    width:min(1240px, 92%);
    margin:0 auto;
    padding:125px 0;
}

.section::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:180px;
    height:1px;
    background:linear-gradient(90deg, var(--color-primary), transparent);
    opacity:.85;
    box-shadow:0 0 22px rgba(255,106,0,.45);
}

.section::after{
    content:"";
    position:absolute;
    top:55px;
    right:-8%;
    width:420px;
    height:420px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(255,106,0,.08), transparent 70%);
    filter:blur(45px);
    pointer-events:none;
    z-index:-1;
}

/* ==========================================
   SECTION HEADER
========================================== */

.section-header{
    position:relative;
    max-width:890px;
    margin-bottom:70px;
}

.section-header h2{
    font-family:var(--font-heading);
    font-size:clamp(3.4rem, 7vw, 6rem);
    line-height:.92;
    letter-spacing:1px;
    text-transform:uppercase;
    margin:18px 0 24px;
    color:var(--color-white);
    text-shadow:
        0 0 45px rgba(255,106,0,.16),
        0 8px 35px rgba(0,0,0,.55);
}

.section-header p{
    max-width:820px;
    color:var(--color-muted);
    font-size:1.08rem;
    line-height:1.85;
}

/* ==========================================
   PROGRESS
========================================== */

.progress-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:24px;
}

.progress-card{
    position:relative;
    overflow:hidden;
    padding:32px;
    border-radius:28px;
    background:
        linear-gradient(145deg, rgba(24,24,24,.82), rgba(8,8,8,.94));
    border:1px solid rgba(255,255,255,.07);
    box-shadow:
        0 24px 55px rgba(0,0,0,.35),
        inset 0 0 0 1px rgba(255,255,255,.025);
    backdrop-filter:blur(18px);
}

.progress-card::before{
    content:"";
    position:absolute;
    top:-110px;
    right:-110px;
    width:240px;
    height:240px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(255,106,0,.16), transparent 70%);
}

.progress-card::after{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(255,106,0,.55), transparent);
    opacity:.7;
}

.progress-card span,
.progress-card strong,
.progress-card div{
    position:relative;
    z-index:2;
}

.progress-card span{
    display:block;
    color:var(--color-muted);
    font-weight:800;
    margin-bottom:10px;
}

.progress-card strong{
    display:block;
    color:var(--color-primary);
    font-size:2rem;
    font-weight:900;
    margin-bottom:18px;
    text-shadow:0 0 22px rgba(255,106,0,.32);
}

.progress-card div{
    width:100%;
    height:10px;
    overflow:hidden;
    border-radius:999px;
    background:rgba(255,255,255,.08);
}

.progress-card i{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
    box-shadow:0 0 24px rgba(255,106,0,.45);
}

.progress-dashboard[data-completes-to-online] .progress-card{
    max-height:220px;
    transition:
        opacity .45s ease,
        transform .45s ease,
        max-height .65s ease,
        padding .65s ease,
        border-width .65s ease;
}

.progress-dashboard .system-status-card{
    max-height:0;
    padding-top:0;
    padding-bottom:0;
    border-width:0;
    opacity:0;
    transform:translateY(18px) scale(.98);
    pointer-events:none;
}

.system-status-card{
    text-align:center;
}

.system-status-card span{
    color:var(--color-white);
    font-size:clamp(1.05rem, 3vw, 1.5rem);
    text-transform:uppercase;
    letter-spacing:.16em;
}

.system-status-card strong{
    margin:0;
    font-size:clamp(2.5rem, 8vw, 5rem);
    letter-spacing:.04em;
}

.progress-dashboard.is-clearing > .progress-card:not(.system-status-card){
    max-height:0;
    padding-top:0;
    padding-bottom:0;
    border-width:0;
    opacity:0;
    transform:translateY(-16px) scale(.98);
    pointer-events:none;
}

.progress-dashboard.is-complete .system-status-card{
    max-height:220px;
    padding:48px 32px;
    border-width:1px;
    opacity:1;
    transform:none;
    pointer-events:auto;
}

.progress-dashboard.is-settled > .progress-card:not(.system-status-card){
    display:none;
}

@media (prefers-reduced-motion: reduce){
    .progress-dashboard[data-completes-to-online] .progress-card{
        transition:none;
    }
}

/* ==========================================
   ROADMAP SPECIAL
========================================== */

.roadmap-progress{
    width:min(520px, 100%);
    margin:45px auto 0;
    text-align:left;
}

.roadmap-progress strong,
.roadmap-progress > div{
    transition:opacity .35s ease, transform .35s ease;
}

.roadmap-progress.is-loading strong{
    animation:roadmap-loading-pulse .8s ease-in-out infinite alternate;
}

.roadmap-progress.is-release strong{
    font-size:clamp(1.35rem, 4vw, 2rem);
}

.roadmap-progress.is-release > div{
    opacity:0;
    transform:scaleX(.96);
}

@keyframes roadmap-loading-pulse{
    to{
        opacity:.45;
    }
}

@media (prefers-reduced-motion: reduce){
    .roadmap-progress.is-loading strong{
        animation:none;
    }
}

.section + .section{
    margin-top:10px;
}
