@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

:root{
    --bg:#08070d;
    --bg-soft:#100d19;
    --surface:rgba(20,15,31,.76);
    --surface-solid:#151020;
    --surface-light:rgba(255,255,255,.045);
    --text:#f7f3ff;
    --text-soft:#c4bccf;
    --text-muted:#8f8799;
    --purple:#8e62d9;
    --purple-light:#b994ff;
    --violet:#6540a7;
    --violet-dark:#322052;
    --line:rgba(180,140,255,.18);
    --line-strong:rgba(180,140,255,.38);
    --shadow:rgba(91,48,153,.25);
    --white:#fff;
}

body.light-mode{
    --bg:#f6f1fb;
    --bg-soft:#eee6f6;
    --surface:rgba(255,255,255,.78);
    --surface-solid:#fffaff;
    --surface-light:rgba(110,68,165,.055);
    --text:#21182c;
    --text-soft:#5f526a;
    --text-muted:#81758b;
    --purple:#7043a9;
    --purple-light:#8d5bd0;
    --violet:#8053b5;
    --violet-dark:#d7c3eb;
    --line:rgba(105,62,157,.17);
    --line-strong:rgba(105,62,157,.38);
    --shadow:rgba(94,51,144,.16);
    --white:#fff;
}

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

html{
    scroll-behavior:smooth;
}

body{
    background:var(--bg);
    color:var(--text);
    font-family:'Roboto',sans-serif;
    overflow-x:hidden;
    min-height:100vh;
    transition:background .5s ease,color .5s ease;
}

body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(rgba(174,130,255,.025) 1px,transparent 1px),
        linear-gradient(90deg,rgba(174,130,255,.025) 1px,transparent 1px);
    background-size:55px 55px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 90%);
    z-index:-3;
}

.ambient-glow{
    position:fixed;
    border-radius:50%;
    pointer-events:none;
    filter:blur(80px);
    z-index:-2;
    transition:opacity .5s ease;
}

.glow-one{
    width:500px;
    height:500px;
    left:-230px;
    top:80px;
    background:rgba(115,65,180,.14);
}

.glow-two{
    width:430px;
    height:430px;
    right:-220px;
    top:500px;
    background:rgba(156,108,230,.11);
}

.stars{
    position:fixed;
    inset:0;
    pointer-events:none;
    opacity:.3;
    z-index:-1;
    background-image:
        radial-gradient(circle at 15% 20%,rgba(255,255,255,.7) 0 1px,transparent 1.5px),
        radial-gradient(circle at 78% 14%,rgba(210,180,255,.8) 0 1px,transparent 1.5px),
        radial-gradient(circle at 65% 72%,rgba(255,255,255,.6) 0 1px,transparent 1.5px),
        radial-gradient(circle at 28% 80%,rgba(205,170,255,.5) 0 1px,transparent 1.5px);
    background-size:310px 280px,420px 350px,370px 320px,500px 420px;
}

.topbar{
    position:relative;
    width:100%;
    min-height:72px;
    padding:0 6%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--line);
    background:rgba(8,7,13,.65);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    z-index:20;
}

.light-mode .topbar{
    background:rgba(246,241,251,.7);
}

.brand{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--text);
    text-decoration:none;
    font-size:.7rem;
    font-weight:600;
    letter-spacing:3px;
}

.brand-mark{
    color:var(--purple-light);
    font-size:1.15rem;
    text-shadow:0 0 12px rgba(185,148,255,.7);
}

.theme-toggle{
    display:flex;
    align-items:center;
    gap:9px;
    border:1px solid var(--line-strong);
    background:var(--surface-light);
    color:var(--text-soft);
    padding:9px 14px;
    border-radius:30px;
    font-family:'Roboto',sans-serif;
    font-size:.63rem;
    letter-spacing:1.5px;
    cursor:pointer;
    transition:.3s ease;
}

.theme-toggle:hover{
    color:var(--text);
    border-color:var(--purple-light);
    box-shadow:0 0 18px var(--shadow);
}

.theme-icon{
    font-size:.9rem;
    color:var(--purple-light);
}

.hero{
    width:min(1250px,92%);
    margin:0 auto;
    padding:45px 0 30px;
}

.hero-frame{
    position:relative;
    width:100%;
    aspect-ratio:1080 / 611;
    overflow:hidden;
    border:1px solid var(--line-strong);
    background:var(--surface-solid);
    box-shadow:0 25px 80px rgba(0,0,0,.35),0 0 60px var(--shadow);
}

.hero-frame::before{
    content:"";
    position:absolute;
    inset:12px;
    border:1px solid rgba(255,255,255,.12);
    z-index:4;
    pointer-events:none;
}

.hero-banner{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
    opacity:.92;
    transition:transform 1.2s ease,opacity .5s ease;
}

.hero-frame:hover .hero-banner{
    transform:scale(1.025);
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,rgba(10,5,18,.68),transparent 50%),
        linear-gradient(0deg,rgba(10,5,18,.62),transparent 55%);
    z-index:2;
    pointer-events:none;
}

.hero-caption{
    position:absolute;
    left:6%;
    bottom:8%;
    z-index:5;
    max-width:500px;
}

.hero-caption span{
    display:inline-block;
    margin-bottom:14px;
    padding-left:12px;
    border-left:2px solid #c9a6ff;
    color:#eee5ff;
    font-size:.65rem;
    font-weight:500;
    letter-spacing:3px;
}

.hero-caption h1{
    font-size:clamp(3.2rem,8vw,7rem);
    line-height:.85;
    font-weight:300;
    letter-spacing:-3px;
    color:#fff;
    text-shadow:0 4px 30px rgba(0,0,0,.5);
}

.hero-caption p{
    margin-top:18px;
    color:#eee8f4;
    font-size:.9rem;
    font-weight:300;
    letter-spacing:.5px;
}

.intro{
    width:min(1100px,84%);
    margin:0 auto;
    padding:110px 0 90px;
    display:grid;
    grid-template-columns:1.25fr .75fr;
    gap:70px;
    align-items:center;
}

.eyebrow{
    display:inline-block;
    color:var(--purple-light);
    font-size:.62rem;
    font-weight:600;
    letter-spacing:3px;
    margin-bottom:20px;
}

.intro-copy h2{
    font-size:clamp(2.3rem,4vw,4rem);
    line-height:1.08;
    font-weight:300;
    letter-spacing:-1.5px;
    margin-bottom:30px;
}

.intro-copy h2 strong{
    color:var(--purple-light);
    font-weight:500;
}

.intro-copy p{
    max-width:680px;
    color:var(--text-soft);
    font-size:.95rem;
    line-height:1.95;
    font-weight:350;
    margin-bottom:20px;
}

.intro-copy p strong{
    color:var(--text);
    font-weight:600;
}

.member-signature{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:35px;
    color:var(--text-muted);
    font-size:.58rem;
    letter-spacing:2px;
}

.signature-line{
    width:45px;
    height:1px;
    background:var(--purple-light);
    box-shadow:0 0 8px var(--purple-light);
}

.chibi-area{
    position:relative;
    min-height:410px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.chibi-glow{
    position:absolute;
    width:270px;
    height:270px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(151,101,221,.25),transparent 68%);
    filter:blur(12px);
    animation:chibiGlow 3s ease-in-out infinite;
}

.chibi{
    position:relative;
    width:330px;
    height:330px;
    z-index:2;
    animation:chibiFloat 4s ease-in-out infinite;
}

.chibi::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:10px;
    transform:translateX(-50%);
    width:58%;
    height:22px;
    border-radius:50%;
    background:rgba(142,98,217,.25);
    filter:blur(10px);
    animation:shadowFloat 4s ease-in-out infinite;
}

.chibi img{
    position:relative;
    width:100%;
    height:100%;
    object-fit:contain;
    display:block;
    z-index:2;
    filter:drop-shadow(0 12px 18px rgba(70,38,105,.25));
}

.chibi-caption{
    position:absolute;
    bottom:8px;
    padding:8px 14px;
    border:1px solid var(--line);
    background:var(--surface);
    backdrop-filter:blur(10px);
    border-radius:20px;
    color:var(--text-muted);
    font-size:.58rem;
    letter-spacing:1px;
    z-index:5;
}

.chibi-spark{
    position:absolute;
    color:var(--purple-light);
    font-size:1.1rem;
    z-index:5;
    animation:sparkFloat 3s ease-in-out infinite;
}

.spark-one{
    top:45px;
    left:25%;
}

.spark-two{
    top:120px;
    right:18%;
    animation-delay:1s;
}

.spark-three{
    bottom:90px;
    left:18%;
    animation-delay:1.7s;
}

.about-grid{
    width:min(1100px,84%);
    margin:0 auto;
    padding:20px 0 110px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px;
}

.about-card{
    position:relative;
    min-height:270px;
    padding:28px;
    border:1px solid var(--line);
    background:var(--surface);
    overflow:hidden;
    transition:.35s ease;
}

.about-card::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:2px;
    background:linear-gradient(90deg,transparent,var(--purple-light),transparent);
    opacity:.65;
}

.about-card:hover{
    transform:translateY(-6px);
    border-color:var(--line-strong);
    box-shadow:0 20px 45px var(--shadow);
}

.about-card.featured{
    background:linear-gradient(145deg,var(--surface),rgba(107,62,160,.1));
}

.card-number{
    position:absolute;
    right:20px;
    top:18px;
    color:var(--text-muted);
    font-size:.55rem;
    letter-spacing:2px;
}

.card-icon{
    display:block;
    color:var(--purple-light);
    font-size:1.6rem;
    margin-bottom:45px;
    text-shadow:0 0 15px rgba(177,132,255,.4);
}

.about-card h3{
    color:var(--text);
    font-size:1.15rem;
    font-weight:500;
    margin-bottom:12px;
}

.about-card p{
    color:var(--text-muted);
    font-size:.78rem;
    line-height:1.8;
    font-weight:350;
}

.blog-section{
    width:min(1100px,84%);
    margin:0 auto;
    padding:80px 0 120px;
    border-top:1px solid var(--line);
}

.blog-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px;
    margin-bottom:45px;
}

.blog-header h2{
    font-size:clamp(2rem,4vw,3.4rem);
    font-weight:300;
    letter-spacing:-1px;
}

.blog-status{
    padding:8px 13px;
    border:1px solid var(--line);
    color:var(--purple-light);
    font-size:.56rem;
    letter-spacing:2px;
    border-radius:20px;
}

.blog-placeholder{
    min-height:380px;
    border:1px dashed var(--line-strong);
    background:
        radial-gradient(circle at 50% 40%,rgba(130,83,190,.1),transparent 45%),
        var(--surface);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:50px;
}

.placeholder-symbol{
    font-size:2.8rem;
    color:var(--purple-light);
    margin-bottom:25px;
    animation:softSpin 6s linear infinite;
}

.blog-placeholder h3{
    color:var(--text);
    font-size:1.25rem;
    font-weight:400;
    margin-bottom:15px;
}

.blog-placeholder p{
    max-width:520px;
    color:var(--text-muted);
    font-size:.8rem;
    line-height:1.8;
}

.placeholder-decoration{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:30px;
}

.placeholder-decoration span{
    width:55px;
    height:1px;
    background:var(--line-strong);
}

.placeholder-decoration i{
    color:var(--purple-light);
    font-style:normal;
}

.future-section{
    width:min(1100px,84%);
    margin:0 auto;
    padding:90px 0 130px;
    border-top:1px solid var(--line);
}

.future-content{
    max-width:700px;
}

.future-content h2{
    font-size:clamp(2.5rem,5vw,4.8rem);
    line-height:1;
    font-weight:300;
    letter-spacing:-2px;
    margin-bottom:28px;
}

.future-content h2 strong{
    color:var(--purple-light);
    font-weight:500;
}

.future-content p{
    max-width:600px;
    color:var(--text-muted);
    font-size:.9rem;
    line-height:1.9;
    margin-bottom:35px;
}

.back-button{
    display:inline-flex;
    align-items:center;
    padding:12px 18px;
    border:1px solid var(--line-strong);
    color:var(--text-soft);
    text-decoration:none;
    font-size:.6rem;
    letter-spacing:2px;
    transition:.3s ease;
}

.back-button:hover{
    color:var(--text);
    border-color:var(--purple-light);
    background:var(--surface-light);
    box-shadow:0 0 20px var(--shadow);
}

footer{
    width:100%;
    padding:30px 6%;
    display:flex;
    justify-content:center;
    gap:12px;
    border-top:1px solid var(--line);
    color:var(--text-muted);
    font-size:.55rem;
    letter-spacing:2px;
}

@keyframes chibiFloat{
    0%,100%{transform:translateY(0) rotate(-1deg)}
    50%{transform:translateY(-13px) rotate(1deg)}
}

@keyframes shadowFloat{
    0%,100%{transform:translateX(-50%) scale(1);opacity:.45}
    50%{transform:translateX(-50%) scale(.82);opacity:.2}
}

@keyframes chibiGlow{
    0%,100%{transform:scale(.92);opacity:.6}
    50%{transform:scale(1.08);opacity:1}
}

@keyframes sparkFloat{
    0%,100%{transform:translateY(0) rotate(0deg);opacity:.45}
    50%{transform:translateY(-12px) rotate(15deg);opacity:1}
}

@keyframes softSpin{
    0%{transform:rotate(0deg)}
    50%{transform:rotate(8deg)}
    100%{transform:rotate(0deg)}
}

@media(max-width:900px){
    .intro{
        grid-template-columns:1fr;
        gap:30px;
        padding-top:80px;
    }

    .chibi-area{
        min-height:380px;
    }

    .about-grid{
        grid-template-columns:1fr;
    }

    .about-card{
        min-height:220px;
    }

    .card-icon{
        margin-bottom:30px;
    }
}

@media(max-width:650px){
    .topbar{
        padding:0 5%;
    }

    .brand{
        font-size:.58rem;
        letter-spacing:2px;
    }

    .theme-toggle{
        padding:8px 10px;
    }

    .theme-text{
        display:none;
    }

    .hero{
        width:94%;
        padding-top:20px;
    }

    .hero-frame{
        aspect-ratio:1080 / 611;
    }

    .hero-banner{
        object-fit:contain;
        background:var(--surface-solid);
    }

    .hero-overlay{
        background:
            linear-gradient(0deg,rgba(8,4,15,.78),transparent 65%),
            linear-gradient(90deg,rgba(8,4,15,.18),transparent);
    }

    .hero-caption{
        left:7%;
        bottom:7%;
    }

    .hero-caption h1{
        font-size:3.5rem;
    }

    .hero-caption p{
        font-size:.72rem;
        max-width:280px;
        line-height:1.6;
    }

    .intro,
    .about-grid,
    .blog-section,
    .future-section{
        width:90%;
    }

    .intro{
        padding:70px 0 60px;
    }

    .intro-copy h2{
        font-size:2.3rem;
    }

    .intro-copy p{
        font-size:.82rem;
    }

    .chibi{
        width:280px;
        height:280px;
    }

    .chibi-area{
        min-height:340px;
    }

    .blog-section{
        padding:60px 0 80px;
    }

    .blog-header{
        align-items:flex-start;
        flex-direction:column;
        gap:15px;
    }

    .blog-placeholder{
        min-height:320px;
        padding:30px 20px;
    }

    .blog-placeholder h3{
        font-size:1rem;
    }

    .blog-placeholder p{
        font-size:.72rem;
    }

    .future-section{
        padding:70px 0 90px;
    }

    .future-content h2{
        font-size:2.8rem;
    }

    footer{
        font-size:.45rem;
        letter-spacing:1.5px;
    }
}

@media(max-width:430px){
    .hero-frame{
        aspect-ratio:1080 / 611;
    }

    .hero-caption h1{
        font-size:3rem;
    }

    .hero-caption span{
        font-size:.52rem;
        letter-spacing:2px;
    }

    .chibi{
        width:245px;
        height:245px;
    }

    .chibi-area{
        min-height:300px;
    }

    .about-card{
        padding:24px;
    }
}

@media(prefers-reduced-motion:reduce){
    *,
    *::before,
    *::after{
        animation:none;
        transition:none;
    }
}