@charset "UTF-8";

.app {
    min-height: 100vh;
    background: var(--gradient-aurora);
}

/* =====================================================
   TOPBAR
===================================================== */

.topbar {
    position: sticky;
    top: 0;
    z-index: 100;
    height: 82px;

    background: rgba(255,255,255,.74);
    backdrop-filter: blur(22px) saturate(1.35);
    border-bottom: 1px solid rgba(227,235,245,.78);

    box-shadow:
        0 8px 28px rgba(13,91,255,.05),
        0 1px 0 rgba(255,255,255,.8) inset;
}

.topbar-inner{
    display:grid;
    grid-template-columns:auto minmax(340px, 520px) 1fr;
    align-items:center;
    gap:28px;

    width:min(1480px,94%);
    height:100%;
    margin:0 auto;
}

/* =====================================================
   BRAND
===================================================== */

.topbar-brand{
    display:flex;
    flex-direction:column;
    line-height:1.15;
    white-space:nowrap;
}

.topbar-brand strong{
    font-size:1.08rem;
    font-weight:800;
    color:var(--color-dark);
    letter-spacing:-.035em;
}

.topbar-brand span{
    margin-top:3px;
    font-size:.76rem;
    color:var(--color-muted);
}

.topbar-brand:focus-visible,
.topbar-nav a:focus-visible{
    outline:3px solid var(--color-primary);
    outline-offset:4px;
}

/* =====================================================
   CONTENT
===================================================== */

.content{
    width:min(1480px,94%);
    margin:0 auto;
    padding:44px 0 80px;
}

.content [id]{
    scroll-margin-top:96px;
}

main{
    width:100%;
}

footer{
    margin-top:80px;
    color:var(--color-muted);
}

/* =====================================================
   SEARCH
===================================================== */

.academy-search{
    display:flex;
    align-items:center;
    gap:14px;

    height:52px;
    padding:0 18px;

    background:rgba(255,255,255,.82);
    border:1px solid rgba(227,235,245,.92);
    border-radius:999px;

    box-shadow:
        0 10px 30px rgba(13,91,255,.07),
        0 1px 0 rgba(255,255,255,.9) inset;

    transition:
        box-shadow var(--transition-normal),
        border-color var(--transition-normal),
        transform var(--transition-normal),
        background var(--transition-normal);
}

.academy-search:hover{
    transform:translateY(-1px);
    background:#fff;
    box-shadow:
        0 14px 38px rgba(13,91,255,.10),
        0 1px 0 rgba(255,255,255,.95) inset;
}

.academy-search:focus-within{
    border-color:rgba(13,91,255,.45);
    box-shadow:
        0 16px 44px rgba(13,91,255,.14),
        0 0 0 4px rgba(13,91,255,.08);
}

.academy-search input{
    flex:1;
    border:0;
    outline:0;
    background:transparent;
    font-size:.94rem;
    color:var(--color-dark);
}

.academy-search input::placeholder{
    color:var(--color-muted);
}

.search-plus{
    font-size:1.35rem;
    font-weight:300;
    color:var(--color-primary);
}

.search-shortcut{
    padding:5px 10px;
    background:rgba(245,248,253,.92);
    border:1px solid rgba(227,235,245,.95);
    border-radius:9px;
    color:var(--color-muted);
    font-size:.72rem;
    font-weight:800;
}

/* =====================================================
   NAV
===================================================== */

.topbar-nav{
    display:flex;
    align-items:center;
    gap:6px;
    justify-self:end;
}

.topbar-nav a{
    position:relative;
    padding:10px 15px;
    border-radius:999px;
    color:var(--color-text);
    font-size:.9rem;
    font-weight:650;
    transition:
        color var(--transition-normal),
        background var(--transition-normal),
        box-shadow var(--transition-normal),
        transform var(--transition-normal);
}

.topbar-nav a:hover{
    background:rgba(13,91,255,.07);
    color:var(--color-primary);
    transform:translateY(-1px);
}

.topbar-nav a.active{
    color:var(--color-primary);
    background:
        linear-gradient(180deg, rgba(255,255,255,.95), rgba(250,252,255,.86));
    box-shadow:
        0 10px 26px rgba(13,91,255,.10),
        0 0 0 1px rgba(13,91,255,.12) inset;
}

.topbar-nav a.active::after{
    content:"";
    position:absolute;
    left:18px;
    right:18px;
    bottom:6px;
    height:2px;
    border-radius:999px;
    background:linear-gradient(90deg, var(--color-primary), var(--color-accent));
}
