*{margin:0;padding:0;box-sizing:border-box}
:root{
    --primary-color:rgba(255,255,255,.9);
    --secondary-color:rgba(255,255,255,.7);
    --primary-dark:rgba(255,255,255,.95);
    --primary-light:rgba(255,255,255,.6);
    --accent-color:rgba(255,255,255,.8);
    --bg-primary:transparent;
    --bg-secondary:rgba(255,255,255,.05);
    --bg-card:rgba(255,255,255,.15);
    --text-primary:rgba(255,255,255,.95);
    --text-secondary:rgba(255,255,255,.8);
    --text-light:rgba(255,255,255,.6);
    --shadow-light:0 10px 30px rgba(0,0,0,.3);
    --shadow-medium:0 20px 40px rgba(0,0,0,.4);
    --shadow-strong:0 25px 50px rgba(0,0,0,.5);
    --border-radius:16px;
    --transition-fast:.15s cubic-bezier(.4,0,.2,1);
    --transition-medium:.3s cubic-bezier(.4,0,.2,1);
    --transition-slow:.5s cubic-bezier(.4,0,.2,1)
}
body{
      font-family:'Outfit','Space Grotesk','Fira Code','-apple-system','BlinkMacSystemFont','Segoe UI','Roboto','Helvetica Neue','Arial','Noto Sans','sans-serif','Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';
    background:transparent;
    min-height:100vh;
    color:var(--text-primary);
    line-height:1.5;
    text-rendering:optimizeLegibility;
    font-feature-settings:'kern' 1,'liga' 1;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
    overflow-y:auto;
    position:relative;
    font-weight:400;
        font-display: swap;
}

body.fonts-loaded {
    -webkit-font-smoothing: antialiased;
}
.background-container{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index:-1;
    overflow:hidden
}
.background-video{
    position:absolute;
    top:50%;
    left:50%;
    min-width:100%;
    min-height:100%;
    transform:translate(-50%,-50%);
    object-fit:cover;
    opacity:0;
    transition:opacity 1s ease-in-out
}
.background-video.loaded{
    opacity:1
}
.background-image{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0;
    transition:opacity 1s ease-in-out
}
.background-image.loaded{
    opacity:1
}
.background-overlay{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:linear-gradient(135deg,rgba(0,0,0,.3) 0,rgba(0,0,0,.5) 100%);
    z-index:1
}
.loading-screen{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);
    z-index:9999;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background 1s ease-in-out
}
.loading-container{
    text-align:center
}
.loading-text{
    font-size:4rem;
    font-weight:700;
    letter-spacing:.5rem;
    margin-bottom:2rem;
    font-family:'Inter',monospace
}
.loading-char{
    display:inline-block;
    color:#fff;
    opacity:0;
    transform:translateY(30px) scale(.8);
    animation:charAppear .6s cubic-bezier(.4,0,.2,1) forwards
}
.loading-char:nth-child(1){animation-delay:.1s}
.loading-char:nth-child(2){animation-delay:.2s}
.loading-char:nth-child(3){animation-delay:.3s}
.loading-char:nth-child(4){animation-delay:.4s}
.loading-char:nth-child(5){animation-delay:.5s}
.loading-char:nth-child(6){animation-delay:.6s}
@keyframes charAppear{
    0%{opacity:0;transform:translateY(30px) scale(.8)}
    50%{opacity:1;transform:translateY(-5px) scale(1.05)}
    100%{opacity:1;transform:translateY(0) scale(1)}
}
.loading-progress{
    width:300px;
    height:4px;
    background:rgba(255,255,255,.1);
    border-radius:2px;
    margin:0 auto 1.5rem;
    overflow:hidden
}
.progress-bar{
    height:100%;
    background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));
    border-radius:2px;
    width:0;
    animation:progressGrow 2s ease-out forwards
}
@keyframes progressGrow{
    0%{width:0}
    100%{width:100%}
}
.loading-subtitle{
    font-size:1rem;
    color:rgba(255,255,255,.7);
    letter-spacing:.1rem;
    opacity:0;
    animation:fadeIn 1s ease-in 1.5s forwards
}
@keyframes fadeIn{
    to{opacity:1}
}
.main-content{
    min-height:100vh;
    opacity:0;
    position:relative;
    z-index:2
}
.header{
    background:rgba(255,255,255,.1);
    backdrop-filter:blur(10px);
    padding:20px 0;
    border-bottom:1px solid rgba(255,255,255,.1)
}
.logo{
    text-align:center;
    color:white;
    font-size:2.5rem;
    font-weight:800;
    text-shadow:0 2px 10px rgba(0,0,0,.3);
    letter-spacing:-0.02em
}
.container{
    max-width:1200px;
    margin:0 auto;
    padding:40px 20px 100px 20px;
    display:grid;
    grid-template-columns:350px 1fr;
    gap:40px;
    align-items:start;
    position:relative;
    z-index:2;
    height:100vh;
    overflow:hidden;
    padding-bottom:40px
}
.desktop-info-section{
    display:flex;
    position:sticky;
    top:20px;
    height:fit-content;
    max-height:calc(100vh - 40px);
    overflow:visible;
    flex-direction:column;
    gap:30px
}

.mobile-avatar-section,
.mobile-info-section{
    display:none
}
@media (max-width:768px){
    body{
        margin:0;
        padding:0;
        min-height:100vh
    }

        .desktop-info-section{
        display:none
    }

        .mobile-avatar-section,
    .mobile-info-section{
        display:block
    }

        .mobile-info-section-fixed{
        display:none
    }

        .header{
        position:sticky;
        top:0;
        z-index:100;
        background:rgba(0,0,0,0.8);
        backdrop-filter:blur(10px);
        padding:15px 20px;
        border-bottom:1px solid rgba(255,255,255,.1);
        margin-bottom:0
    }

    .logo{
        font-size:1.8rem;
        margin:0;
        text-align:center
    }

        .container{
        display:block;
        width:100%;
        max-width:100%;
        padding:0;
        margin:0;
        min-height:100vh;
        background:transparent;
        position:static;
        overflow-y:visible
    }

        .mobile-avatar-section{
        padding:30px 20px;
        text-align:center;
        background:rgba(0,0,0,0.2);
        backdrop-filter:blur(5px)
    }

    .avatar-section{
        display:inline-block;
        background:var(--bg-card);
        padding:25px 30px;
        border-radius:20px;
        max-width:400px;
        margin:0 auto;
        backdrop-filter:blur(10px)
    }

        .cards-section{
        padding:30px 20px;
        background:transparent
    }

    .cards-grid{
        display:grid;
        grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
        gap:20px;
        max-width:400px;
        margin:0 auto
    }

        .mobile-info-section{
        padding:30px 20px;
        text-align:center;
        background:rgba(0,0,0,0.2);
        backdrop-filter:blur(5px)
    }

    .mobile-info-section .info-card{
        display:inline-block;
        background:var(--bg-card);
        padding:25px 30px;
        border-radius:20px;
        max-width:400px;
        margin:0 auto;
        backdrop-filter:blur(10px)
    }

        .website-card{
        flex-direction:column;
        text-align:center;
        align-items:center;
        padding:25px;
        gap:15px;
        min-height:120px
    }

    .website-icon{
        width:60px;
        height:60px;
        min-width:60px;
        font-size:1.8rem
    }

    .website-title{
        font-size:1.2rem;
        line-height:1.4;
        white-space:normal;
        text-align:center
    }

        .back-to-top{
        bottom:30px;
        right:30px;
        width:56px;
        height:56px
    }

        #main-content{
        background:transparent;
        padding-top:0
    }
}
.info-card{
    background:var(--bg-card);
    backdrop-filter:blur(10px);
    border-radius:var(--border-radius);
    padding:30px;
    box-shadow:var(--shadow-medium);
    border:1px solid rgba(255,255,255,.2);
    margin-bottom:30px
}
.info-card h2{
    color:var(--text-primary);
    font-size:1.5rem;
    margin-bottom:25px;
    display:flex;
    align-items:center;
    gap:10px
}
.info-content{
    display:flex;
    flex-direction:column;
    gap:20px
}
.info-item{
    display:flex;
    align-items:center;
    gap:15px;
    padding:15px;
    background:var(--bg-card);
    backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.2);
    border-radius:12px;
    transition:transform var(--transition-medium) ease,box-shadow var(--transition-medium) ease
}
.info-item:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-light)
}
.info-icon{
    font-size:2rem;
    width:50px;
    text-align:center
}
.info-item h3{
    color:var(--text-primary);
    font-size:1.1rem;
    margin-bottom:5px
}
.info-item p{
    color:var(--text-secondary);
    font-size:.9rem
}
.highlight{
    color:var(--primary-color);
    font-weight:600
}
.avatar-section{
    background:var(--bg-card);
    backdrop-filter:blur(10px);
    border-radius:var(--border-radius);
    padding:30px 25px;
    text-align:center;
    margin:30px 0;
    position:relative;
    overflow:hidden
}
.avatar-container{
    position:relative;
    display:inline-block;
    margin-bottom:20px
}
.avatar-ring{
    position:absolute;
    top:-10px;
    left:-10px;
    right:-10px;
    bottom:-10px;
    border:3px solid transparent;
    border-radius:50%;
    background:linear-gradient(45deg,var(--primary-color),var(--secondary-color),var(--accent-color));
    background-size:300% 300%;
    animation:ringRotate 3s ease-in-out infinite;
    z-index:1
}
@keyframes ringRotate{
    0%,100%{background-position:0% 50%;transform:rotate(0deg)}
    50%{background-position:100% 50%;transform:rotate(180deg)}
}
.avatar-img{
    position:relative;
    width:120px;
    height:120px;
    border-radius:50%;
    overflow:hidden;
    border:4px solid white;
    box-shadow:var(--shadow-medium);
    z-index:2;
    transition:transform var(--transition-medium) ease
}
.avatar-img:hover{
    transform:scale(1.05)
}
.avatar-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease
}
.avatar-img:hover img{
    transform:scale(1.1)
}
.avatar-status{
    position:absolute;
    bottom:8px;
    right:8px;
    width:24px;
    height:24px;
    background:linear-gradient(135deg,#4ade80,#22c55e);
    border:3px solid white;
    border-radius:50%;
    z-index:3;
    animation:pulse 2s infinite
}
@keyframes pulse{
    0%{box-shadow:0 0 0 0 rgba(74,222,128,.7)}
    70%{box-shadow:0 0 0 10px rgba(74,222,128,0)}
    100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}
}
.avatar-glow{
    position:absolute;
    top:-20px;
    left:-20px;
    right:-20px;
    bottom:-20px;
    background:radial-gradient(circle,rgba(124,58,237,.1) 0,transparent 70%);
    border-radius:50%;
    z-index:0;
    animation:glowPulse 3s ease-in-out infinite
}
@keyframes glowPulse{
    0%,100%{opacity:.5;transform:scale(1)}
    50%{opacity:1;transform:scale(1.05)}
}
.avatar-info{
    text-align:center
}
.avatar-name{
    font-size:1.5rem;
    font-weight:700;
    color:var(--text-primary);
    margin-bottom:5px;
    background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    letter-spacing:-0.01em
}
.avatar-title{
    font-size:.9rem;
    color:var(--text-secondary);
    margin-bottom:20px;
    font-weight:500
}
.avatar-stats{
    display:flex;
    justify-content:space-around;
    gap:15px
}
.stat-item{
    text-align:center;
    flex:1
}
.stat-number{
    display:block;
    font-size:1.2rem;
    font-weight:700;
    color:var(--primary-color);
    margin-bottom:5px
}
.stat-label{
    display:block;
    font-size:.75rem;
    color:var(--text-secondary);
    text-transform:uppercase;
    letter-spacing:.5px
}
.footer-info{
    background:var(--bg-card);
    backdrop-filter:blur(10px);
    border-radius:12px;
    padding:20px;
    text-align:center
}
.icp-info{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-bottom:10px
}
.icp-info:last-child{
    margin-bottom:0
}
.icp-icon{
    font-size:1rem
}
.icp-link{
    color:var(--text-primary);
    text-decoration:none;
    font-size:.85rem;
    transition:color var(--transition-fast) ease
}
.icp-link:hover{
    color:var(--primary-color);
    text-decoration:underline
}
.cards-section{
    height:calc(100vh - 160px);
    overflow:hidden;
    position:relative;
    z-index:1;
    width:100%;
    margin-bottom:0
}
.cards-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
    gap:25px;
    overflow-y:auto;
    overflow-x:hidden;
    position:relative;
    height:100%;
    padding-right:5px;
    scrollbar-width:none;
    -ms-overflow-style:none;
    align-content:start;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch
}
.cards-grid::-webkit-scrollbar{
    display:none;
    width:0;
    height:0
}
.website-card{
    background:var(--bg-card);
    backdrop-filter:blur(10px);
    border-radius:var(--border-radius);
    padding:20px;
    box-shadow:var(--shadow-light);
    border:1px solid rgba(255,255,255,.2);
    transition:transform var(--transition-medium) cubic-bezier(.4,0,.2,1),
                box-shadow var(--transition-medium) cubic-bezier(.4,0,.2,1);
    cursor:pointer;
    position:relative;
    overflow:hidden;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    z-index:1;
    display:flex;
    align-items:center;
    gap:20px;
    text-align:left;
    width:100%;
    box-sizing:border-box
}
.website-card::before{
    content:'';
    position:absolute;
    top:0;
    left:-100%;
    width:100%;
    height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
    transition:left .6s cubic-bezier(.4,0,.2,1);
    pointer-events:none;
    z-index:-1
}
.website-card::after{
    content:'';
    position:absolute;
    inset:0;
    background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(124,58,237,.08) 0,transparent 60%);
    opacity:0;
    transition:opacity var(--transition-fast) ease;
    pointer-events:none;
    z-index:-1
}
.website-card:hover{
    transform:translateY(-8px);
    box-shadow:
        0 20px 40px rgba(124,58,237,.25),
        0 8px 16px rgba(124,58,237,.15)
}
.website-card:hover::before{
    left:100%
}
.website-card:hover::after{
    opacity:1
}
.website-card:active{
    transform:translateY(-4px);
    transition-duration:var(--transition-fast)
}
.website-icon{
    width:50px;
    height:50px;
    min-width:50px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.5rem;
    background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);
    color:white;
    position:relative;
    overflow:hidden;
    flex-shrink:0
}
.website-icon img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:12px
}
.website-content{
    flex:1;
    min-width:0
}
.website-title{
    font-size:1.1rem;
    font-weight:600;
    color:var(--text-primary);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    margin:0
}
.back-to-top{
    position:fixed;
    bottom:30px;
    right:30px;
    width:50px;
    height:50px;
    background:#43b244;
    border:none;
    border-radius:50%;
    color:white;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 4px 20px rgba(67,178,68,.4);
    transition:transform var(--transition-medium) cubic-bezier(.4,0,.2,1),
                box-shadow var(--transition-medium) cubic-bezier(.4,0,.2,1),
                opacity var(--transition-fast) ease;
    opacity:0;
    visibility:hidden;
    z-index:1000;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    pointer-events:none
}

body.loading-active .back-to-top {
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:none !important
}

body.loading-active #main-content {
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    display:none !important
}






.back-to-top.show{
    opacity:1;
    visibility:visible
}
.back-to-top:hover{
    transform:translateY(-3px);
    box-shadow:0 8px 30px rgba(124,58,237,.6)
}
.back-to-top:active{
    transform:translateY(-1px);
    transition-duration:var(--transition-fast)
}
.fade-in{
    animation:fadeInOptimized var(--transition-slow) cubic-bezier(.4,0,.2,1) forwards
}
.slide-up{
    animation:slideUpOptimized var(--transition-slow) cubic-bezier(.4,0,.2,1) forwards
}
@keyframes fadeInOptimized{
    from{opacity:0}
    to{opacity:1}
}
@keyframes slideUpOptimized{
    from{opacity:0;transform:translateY(20px)}
    to{opacity:1;transform:translateY(0)}
}
.loading{
    pointer-events:none;
    opacity:.6
}
.loading::after{
    content:'';
    position:absolute;
    top:50%;
    left:50%;
    width:20px;
    height:20px;
    margin:-10px 0 0 -10px;
    border:2px solid rgba(124,58,237,.3);
    border-top:2px solid var(--primary-color);
    border-radius:50%;
    animation:spin .8s linear infinite
}
@keyframes spin{
    0%{transform:rotate(0deg)}
    100%{transform:rotate(360deg)}
}
@media (max-width:480px){
    .logo{
        font-size:1.6rem
    }

    .mobile-avatar-section{
        padding:25px 15px
    }

    .avatar-section{
        padding:20px;
        max-width:350px
    }

    .cards-section{
        padding:25px 15px
    }

    .cards-grid{
        grid-template-columns:1fr;
        gap:15px;
        max-width:350px
    }

    .mobile-info-section{
        padding:25px 15px
    }

    .mobile-info-section .info-card{
        padding:20px;
        max-width:350px
    }

    .website-card{
        padding:20px;
        gap:15px;
        flex-direction:column;
        text-align:center;
        align-items:center;
        min-height:120px
    }

    .website-icon{
        width:50px;
        height:50px;
        min-width:50px;
        font-size:1.5rem
    }

    .website-title{
        font-size:1.1rem;
        white-space:normal;
        line-height:1.3;
        text-align:center
    }

    .avatar-img{
        width:80px;
        height:80px
    }

    .back-to-top{
        bottom:25px;
        right:25px;
        width:50px;
        height:50px
    }
}

@media (max-width:375px){
    .header{
        padding:12px 20px;
        margin-bottom:12px
    }

    .logo{
        font-size:1.4rem
    }

    .mobile-avatar-section{
        padding:0 20px 20px 20px
    }

    .avatar-section{
        padding:20px;
        max-width:300px
    }

    .cards-section{
        padding:0 20px 20px 20px
    }

    .cards-grid{
        gap:12px;
        max-width:300px
    }

    .mobile-info-section{
        padding:0 20px 25px 20px
    }

    .mobile-info-section .info-card{
        padding:15px;
        max-width:300px
    }

    .website-card{
        padding:18px;
        gap:10px
    }

    .website-icon{
        width:50px;
        height:50px;
        min-width:50px;
        font-size:1.4rem
    }

    .website-title{
        font-size:1rem;
    }

    .avatar-img{
        width:65px;
        height:65px
    }

    .back-to-top{
        bottom:20px;
        right:20px;
        width:44px;
        height:44px
    }
}

@media (max-width:320px){
    .mobile-avatar-section{
        padding:20px 10px
    }

    .avatar-section{
        padding:15px;
        max-width:300px
    }

    .cards-section{
        padding:20px 10px
    }

    .cards-grid{
        gap:12px;
        max-width:300px
    }

    .mobile-info-section{
        padding:20px 10px
    }

    .mobile-info-section .info-card{
        padding:15px;
        max-width:300px
    }

    .website-card{
        padding:15px;
        gap:12px
    }

    .website-icon{
        width:40px;
        height:40px;
        min-width:40px;
        font-size:1.2rem
    }

    .website-title{
        font-size:1rem;
        line-height:1.2
    }

    .avatar-img{
        width:60px;
        height:60px
    }

    .back-to-top{
        width:40px;
        height:40px
    }
}