html{
    scroll-behavior:smooth;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{

    --bg:#072f20;

    --bg-dark:#021710;

    --accent:#65d39c;

    --accent-light:#6ee7b7;

    --text:#ffffff;

    --muted:#d2d2d2;

    --cream:#f5f3ef;

    --radius:20px;

}

body{

    font-family:'Space Grotesk',sans-serif;

    background:var(--bg);

    color:var(--text);

    overflow-x:hidden;

    opacity:0;

    transition:opacity .45s cubic-bezier(.22,1,.36,1);

}

body.page-ready{

    opacity:1;

}

img{

    max-width:100%;

    display:block;

}

a{

    text-decoration:none;

}

button{

    font:inherit;

    cursor:pointer;

}

main{

    min-height:100vh;

}

.nav{

    position:fixed;

    top:0;

    left:0;

    right:0;

    height:72px;

    padding:0 7%;

    display:flex;

    align-items:center;

    justify-content:space-between;

    background:rgba(3,31,23,.72);

    backdrop-filter:blur(18px);

    border-bottom:1px solid rgba(255,255,255,.06);

    z-index:999;

    transition:.35s ease;

}

.nav-scrolled{

    background:rgba(3,31,23,.92);

    backdrop-filter:blur(25px);

    box-shadow:0 15px 40px rgba(0,0,0,.2);

}

.brand{

    color:white;

    font-size:1.1rem;

    font-weight:700;

    letter-spacing:4px;

}

.nav-links{

    display:flex;

    gap:30px;

    align-items:center;

}

.nav-links a{

    color:rgba(255,255,255,.78);

    font-size:.92rem;

    transition:.3s;

}

.nav-links a:hover{

    color:white;

    transform:translateY(-2px);

}

.nav-links a.active{

    color:var(--accent);

}
.hero{

    min-height:100vh;

    display:flex;

    align-items:center;

    padding:110px 10% 60px;

    background:
        radial-gradient(circle at 75% 25%,rgba(101,211,156,.12),transparent 38%),
        linear-gradient(135deg,#05261a,#0a3d2b,#05261a);

}

.hero-content{

    max-width:900px;

}

.eyebrow{

    display:block;

    margin-bottom:25px;

    color:var(--accent);

    letter-spacing:5px;

    font-size:.9rem;

    text-transform:uppercase;

}

h1{

    font-size:clamp(4rem,10vw,8rem);

    line-height:.92;

    margin-bottom:30px;

    font-weight:700;

}

.hero p,
.page-hero p{

    max-width:720px;

    font-size:1.3rem;

    line-height:1.8;

    color:var(--muted);

    margin-bottom:42px;

}

.hero-buttons{

    display:flex;

    flex-wrap:wrap;

    gap:18px;

}

.btn-primary,
.btn-secondary{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:18px 42px;

    border-radius:12px;

    font-weight:700;

    transition:
        transform .45s cubic-bezier(.16,1,.3,1),
        background .35s,
        box-shadow .35s;

}

.btn-primary{

    background:var(--accent);

    color:#042115;

}

.btn-primary:hover{

    transform:translateY(-5px);

    box-shadow:0 15px 35px rgba(101,211,156,.22);

}

.btn-secondary{

    border:1px solid rgba(255,255,255,.15);

    color:white;

    background:transparent;

}

.btn-secondary:hover{

    background:rgba(255,255,255,.05);

    transform:translateY(-4px);

}

.hero-animate>*{

    opacity:0;

    transform:translateY(25px);

    animation:heroIn .9s cubic-bezier(.16,1,.3,1) forwards;

}

.hero-animate>*:nth-child(2){

    animation-delay:.08s;

}

.hero-animate>*:nth-child(3){

    animation-delay:.16s;

}

.hero-animate>*:nth-child(4){

    animation-delay:.24s;

}

@keyframes heroIn{

    to{

        opacity:1;

        transform:none;

    }

}

.fade-up{

    opacity:0;

    transform:translate3d(0,45px,0);

    transition:

        opacity .9s cubic-bezier(.16,1,.3,1),

        transform 1s cubic-bezier(.16,1,.3,1);

}

.fade-up.show{

    opacity:1;

    transform:none;

}
.stats{

    display:flex;

    justify-content:center;

    gap:80px;

    padding:120px 40px;

    background:#071b16;

}

.stat{

    text-align:center;

}

.stat h2{

    font-size:4rem;

    color:var(--accent-light);

    margin-bottom:12px;

}

.stat p{

    color:rgba(255,255,255,.7);

    letter-spacing:2px;

    text-transform:uppercase;

}

.quote-section{

    background:var(--cream);

    padding:140px 40px;

    display:flex;

    justify-content:center;

}

.quote-box{

    max-width:900px;

    text-align:center;

}

.quote-box p{

    font-family:Georgia,serif;

    color:#1d4738;

    font-size:3rem;

    line-height:1.45;

}

.about-yrc{

    min-height:100vh;

    padding:120px 8%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    background:var(--cream);

    overflow:hidden;

}

.about-text{

    max-width:650px;

}

.about-text h2{

    color:#14372b;

    font-size:4rem;

    margin-bottom:30px;

}

.about-text p{

    color:#333;

    font-size:1.28rem;

    line-height:1.9;

    margin-bottom:30px;

}

.about-word{

    writing-mode:vertical-rl;

    transform:rotate(180deg);

    font-size:9rem;

    font-weight:900;

    color:#14372b;

    opacity:.12;

}

.departments{

    padding:120px 10%;

}

.departments h2{

    text-align:center;

    font-size:3rem;

    margin-bottom:60px;

}

.department-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:28px;

}

.department-card{

    background:rgba(255,255,255,.04);

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

    border-radius:24px;

    padding:36px;

    transition:

        transform .55s cubic-bezier(.16,1,.3,1),

        background .35s,

        box-shadow .35s;

    transition-delay:var(--delay,0ms);

}

.department-card:hover{

    transform:translateY(-8px);

    background:rgba(255,255,255,.06);

    box-shadow:0 20px 45px rgba(0,0,0,.18);

}

.department-card h3{

    color:var(--accent-light);

    margin-bottom:16px;

    font-size:1.4rem;

}

.department-card p{

    color:rgba(255,255,255,.72);

    line-height:1.7;

}
.mission{

    padding:40px 10% 90px;

}

.mission-content{

    max-width:1100px;

    margin:auto;

}

.mission h2{

    font-size:3rem;

    margin-bottom:30px;

}

.mission p{

    color:rgba(255,255,255,.85);

    line-height:1.8;

    font-size:1.15rem;

    margin-bottom:22px;

}

.team{

    padding:120px 10%;

}

.team h2{

    text-align:center;

    font-size:3rem;

    margin-bottom:60px;

}

.team-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:30px;

}

.team-card{

    padding:40px;

    border-radius:24px;

    text-align:center;

    background:rgba(255,255,255,.04);

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

    transition:
        transform .55s cubic-bezier(.16,1,.3,1),
        background .35s,
        box-shadow .35s;

    transition-delay:var(--delay,0ms);

}

.team-card:hover{

    transform:translateY(-8px);

    background:rgba(255,255,255,.06);

    box-shadow:0 20px 45px rgba(0,0,0,.18);

}

.team-card h3{

    margin-bottom:12px;

    color:var(--accent-light);

    font-size:1.35rem;

}

.team-card span{

    color:rgba(255,255,255,.82);

    line-height:1.6;

}

.footer{

    background:#01140f;

    padding:80px 40px;

    text-align:center;

}

.footer-content{

    max-width:900px;

    margin:auto;

}

.footer h3{

    font-size:2.2rem;

    margin-bottom:18px;

}

.footer p{

    color:rgba(255,255,255,.65);

    margin-bottom:35px;

    line-height:1.7;

}

.footer-links{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:28px;

    margin-bottom:40px;

}

.footer-links a{

    color:var(--accent-light);

    font-weight:600;

    transition:.3s;

}

.footer-links a:hover{

    color:white;

}

.footer-btn{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:16px 38px;

    border-radius:12px;

    background:var(--accent);

    color:#032117;

    font-weight:700;

    transition:.35s;

}

.footer-btn:hover{

    transform:translateY(-4px);

    box-shadow:0 15px 35px rgba(101,211,156,.2);

}

.footer-copy{

    margin-top:40px;

    color:rgba(255,255,255,.45);

    font-size:.95rem;

}

.flash-container{

    position:fixed;

    top:90px;

    right:30px;

    z-index:9999;

    display:flex;

    flex-direction:column;

    gap:12px;

}

.flash{

    padding:16px 22px;

    border-radius:12px;

    background:#123a2b;

    color:white;

    transition:.35s;

}

.flash.success{

    background:#17784c;

}

.flash.warning{

    background:#9b6b12;

}

.flash.error{

    background:#9f2e2e;

}
.page-hero{

    padding:180px 10% 100px;

    background:
        radial-gradient(circle at 75% 25%,rgba(101,211,156,.12),transparent 38%),
        linear-gradient(135deg,#05261a,#0a3d2b,#05261a);

}

.page-hero h1{

    font-size:clamp(3.5rem,8vw,7rem);

}

.editorial-grid{

    padding:90px 10% 130px;

    background:var(--cream);

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

    gap:35px;

}

.article-card{

    background:white;

    color:#14372b;

    border-radius:20px;

    overflow:hidden;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

    transition:
        transform .55s cubic-bezier(.16,1,.3,1),
        box-shadow .35s;

}

.article-card:hover{

    transform:translateY(-8px);

    box-shadow:0 22px 50px rgba(0,0,0,.12);

}

.article-card img,
.article-placeholder{

    width:100%;

    height:230px;

    object-fit:cover;

    background:linear-gradient(135deg,#0a3d2b,#65d39c);

}

.article-card div:last-child{

    padding:28px;

}

.article-card h2{

    margin:12px 0;

    font-size:1.8rem;

}

.article-card p{

    color:#555;

    line-height:1.7;

    margin-bottom:20px;

}

.card-meta{

    font-size:.82rem;

    color:#58826d;

    text-transform:uppercase;

    letter-spacing:1.5px;

}

.article-page{

    max-width:950px;

    margin:auto;

    padding:170px 30px 120px;

}

.article-subtitle{

    font-size:2rem;

    margin-top:18px;

    color:var(--accent-light);

}

.article-byline{

    margin:25px 0 45px;

    color:rgba(255,255,255,.6);

}

.article-cover{

    width:100%;

    border-radius:22px;

    margin-bottom:55px;

    max-height:550px;

    object-fit:cover;

}

.article-body{

    font-size:1.18rem;

    line-height:2;

    color:rgba(255,255,255,.88);

}

.article-body h2{

    margin:55px 0 20px;

    color:var(--accent-light);

}

.article-body p{

    margin-bottom:24px;

}

.article-body blockquote{

    margin:40px 0;

    padding:28px;

    border-left:5px solid var(--accent);

    background:rgba(255,255,255,.05);

    border-radius:12px;

    font-style:italic;

}

.references{

    margin-top:30px;

    padding-left:20px;

}

.references li{

    margin-bottom:12px;

}

.back-link{

    display:inline-block;

    margin-bottom:45px;

    color:var(--accent);

}

.join-page{

    min-height:100vh;

    display:flex;

    align-items:center;

    padding:130px 8%;

    background:
        radial-gradient(circle at 75% 25%,rgba(101,211,156,.12),transparent 38%),
        linear-gradient(135deg,#05261a,#0a3d2b,#05261a);

}

.join-panel{

    max-width:900px;

}

.join-panel h1{

    font-size:clamp(4rem,9vw,8rem);

}

.join-panel p{

    max-width:760px;

    line-height:1.9;

    margin-bottom:24px;

    color:var(--muted);

}

.research-list{

    padding:100px 10% 130px;

    background:var(--cream);

}

.empty-state{

    max-width:850px;

    margin:auto;

    text-align:center;

    color:#14372b;

}

.empty-state h2{

    font-size:3rem;

    margin-bottom:20px;

}

.empty-state p{

    line-height:1.8;

    margin-bottom:35px;

}

.auth-page{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:130px 20px;

}

.admin-form{

    width:min(560px,100%);

    padding:45px;

    background:rgba(255,255,255,.04);

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

    border-radius:24px;

}

.admin-form.wide{

    width:min(900px,100%);

}

.admin-form h1{

    font-size:3rem;

    margin-bottom:20px;

}

.admin-form label{

    display:block;

    margin-top:22px;

    color:rgba(255,255,255,.8);

}

.admin-form input,
.admin-form textarea{

    width:100%;

    margin-top:8px;

    padding:15px;

    border-radius:12px;

    border:1px solid rgba(255,255,255,.12);

    background:#05261a;

    color:white;

    font:inherit;

}

.admin-form textarea{

    resize:vertical;

    min-height:150px;

}

.admin-form textarea.long{

    min-height:380px;

}

.dashboard{

    max-width:1200px;

    margin:auto;

    padding:150px 30px 100px;

}

.dashboard-head{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:40px;

    margin-bottom:50px;

}

.admin-actions{

    display:flex;

    flex-wrap:wrap;

    gap:15px;

}

.admin-list{

    display:grid;

    gap:14px;

    margin-bottom:55px;

}

.admin-list>div{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:25px;

    padding:20px;

    border-radius:14px;

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

    background:rgba(255,255,255,.03);

}

.admin-list nav{

    display:flex;

    gap:15px;

    align-items:center;

}

.admin-list nav a,
.admin-list nav button{

    color:var(--accent);

    background:none;

    border:none;

    cursor:pointer;

    font:inherit;

}
.error{

    color:#ffb4b4;

    margin:15px 0;

}

.text-link{

    color:var(--accent);

    font-weight:600;

    transition:.3s;

}

.text-link:hover{

    color:white;

}

hr{

    border:none;

    height:1px;

    background:rgba(255,255,255,.12);

    margin:60px 0;

}

::selection{

    background:var(--accent);

    color:#042115;

}

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#041d15;

}

::-webkit-scrollbar-thumb{

    background:#2b7b5b;

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:#49a97d;

}

@media(max-width:1000px){

    .dashboard-head{

        flex-direction:column;

    }

    .about-yrc{

        flex-direction:column;

        gap:60px;

    }

    .about-word{

        display:none;

    }

}

@media(max-width:760px){

    .nav{

        padding:0 5%;

    }

    .nav-links{

        gap:14px;

        flex-wrap:wrap;

        justify-content:flex-end;

    }

    .nav-links a{

        font-size:.82rem;

    }

    h1{

        font-size:clamp(3rem,16vw,5.5rem);

    }

    .hero{

        padding:110px 7% 70px;

    }

    .page-hero{

        padding:160px 7% 90px;

    }

    .hero-buttons{

        flex-direction:column;

    }

    .btn-primary,

    .btn-secondary{

        width:100%;

    }

    .stats{

        flex-direction:column;

        gap:45px;

    }

    .quote-box p{

        font-size:2rem;

    }

    .departments,

    .team,

    .mission,

    .editorial-grid,

    .research-list{

        padding-left:7%;

        padding-right:7%;

    }

    .team-grid,

    .department-grid{

        grid-template-columns:1fr;

    }

    .article-page{

        padding:150px 25px 90px;

    }

    .article-subtitle{

        font-size:1.5rem;

    }

    .admin-form{

        padding:35px;

    }

    .admin-list>div{

        flex-direction:column;

        align-items:flex-start;

    }

    .admin-list nav{

        width:100%;

        justify-content:flex-start;

        flex-wrap:wrap;

    }

}

@media(max-width:500px){

    .footer-links{

        flex-direction:column;

        gap:18px;

    }

    .brand{

        letter-spacing:2px;

    }

    .hero p,

    .page-hero p{

        font-size:1.05rem;

    }

    .stat h2{

        font-size:3rem;

    }

}

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

    html{

        scroll-behavior:auto;

    }

    *,

    *::before,

    *::after{

        animation:none!important;

        transition:none!important;

    }

}