*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.12) transparent}
body{font-family:'Inter','Segoe UI','PingFang SC','Microsoft YaHei',system-ui,-apple-system,sans-serif;background:#0a0a0a;color:#e0e0e0;overflow-x:hidden;line-height:1.6}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:3px}
:root{--glass-bg:rgba(255,255,255,0.035);--glass-border:rgba(255,255,255,0.07);--glass-hover:rgba(255,255,255,0.07);--text-primary:#f0f0f0;--text-secondary:rgba(255,255,255,0.5);--text-muted:rgba(255,255,255,0.25);--card-radius:16px}
/* Nav */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px 32px;display:flex;justify-content:space-between;align-items:center;background:rgba(10,10,10,0.65);backdrop-filter:blur(20px) saturate(1.2);border-bottom:1px solid var(--glass-border)}
.nav-logo{font-size:1.15rem;font-weight:600;color:var(--text-primary);letter-spacing:1px;display:flex;align-items:center;gap:6px}
.nav-logo span{font-weight:300;color:var(--text-muted)}
.nav-links{display:flex;gap:6px;align-items:center}
.nav-links a{color:var(--text-secondary);text-decoration:none;font-size:.82rem;padding:8px 14px;border-radius:8px;transition:all .25s ease;font-weight:450;display:inline-flex;align-items:center;gap:5px}
.nav-links a:hover{color:var(--text-primary);background:var(--glass-hover)}
.nav-cta{background:rgba(255,255,255,0.08);color:var(--text-primary)!important;padding:8px 18px!important;border-radius:18px!important;font-weight:500!important;border:1px solid rgba(255,255,255,0.1)}
.nav-cta:hover{background:rgba(255,255,255,0.14)!important;border-color:rgba(255,255,255,0.2)}
.nav-links a svg{width:16px;height:16px;stroke-width:1.8}
/* Hero */
.hero{min-height:85vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:100px 24px 60px;position:relative;z-index:1;background:#0a0a0a;overflow:hidden}
.hero-overlay{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,#0a0a0a,transparent);z-index:1;pointer-events:none}
.hero>*:not(#light-rays-bg):not(.hero-overlay){position:relative;z-index:2}
#light-rays-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 18px;border-radius:18px;background:var(--glass-bg);border:1px solid var(--glass-border);font-size:.8rem;color:var(--text-muted);margin-bottom:28px;letter-spacing:.3px}
.hero-badge .dot{width:5px;height:5px;border-radius:50%;background:#888;animation:pulse-dot 2s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}
.hero h1{font-size:clamp(2.8rem,8vw,6rem);font-weight:700;line-height:1.05;margin-bottom:6px;color:var(--text-primary);letter-spacing:-1px}
.hero .subtitle{font-size:clamp(.95rem,1.8vw,1.15rem);color:var(--text-muted);max-width:520px;margin:16px auto 36px;font-weight:300;letter-spacing:.3px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.btn-primary,.btn-secondary{padding:13px 30px;border-radius:26px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px;letter-spacing:.3px}
.btn-primary{background:#fff;color:#0a0a0a}
.btn-primary:hover{background:#ddd;transform:translateY(-2px)}
.btn-secondary{background:transparent;border:1px solid rgba(255,255,255,0.15);color:var(--text-secondary)}
.btn-secondary:hover{background:var(--glass-hover);border-color:rgba(255,255,255,0.25);transform:translateY(-2px)}
.btn-primary svg,.btn-secondary svg{width:16px;height:16px;stroke-width:2}
.hero-scroll-indicator{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}
.hero-scroll-indicator span{font-size:.7rem;color:var(--text-muted);letter-spacing:2.5px;text-transform:uppercase}
.scroll-line{width:1px;height:36px;background:linear-gradient(to bottom,rgba(255,255,255,0.4),transparent);animation:scrollLine 2s ease-in-out infinite}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top;opacity:1}50%{transform:scaleY(1);transform-origin:top;opacity:1}50.1%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom;opacity:1}}
/* Sections */
main{background:#0a0a0a}
section{padding:100px 24px;position:relative;z-index:1;background:#0a0a0a}
.section-header{text-align:center;margin-bottom:60px}
.section-tag{display:inline-block;padding:5px 14px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--glass-border);font-size:.72rem;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}
.section-header h2{font-size:clamp(1.6rem,3.5vw,2.5rem);font-weight:600;color:var(--text-primary);letter-spacing:-.5px}
.section-header p{color:var(--text-muted);max-width:460px;margin:10px auto 0;font-size:.9rem;font-weight:300}
/* Grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;max-width:1200px;margin:0 auto}
.card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--card-radius);padding:24px;transition:all .4s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden;cursor:pointer}
.card::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--card-radius);background:linear-gradient(135deg,rgba(255,255,255,0.03),transparent 60%);opacity:0;transition:opacity .4s ease}
.card:hover::before{opacity:1}
.card:hover{border-color:rgba(255,255,255,0.15);transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,0.5)}
.card-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;position:relative;z-index:1;background:rgba(255,255,255,0.04)}
.card-icon svg{width:20px;height:20px;stroke-width:1.5;color:rgba(255,255,255,0.6)}
.card h3{font-size:1.05rem;font-weight:550;color:var(--text-primary);margin-bottom:8px;position:relative;z-index:1}
.card p{font-size:.82rem;color:var(--text-muted);position:relative;z-index:1;font-weight:300}
.card-img{width:100%;height:180px;border-radius:10px;margin-bottom:14px;background:rgba(255,255,255,0.02);border:1px solid var(--glass-border);position:relative;z-index:1;display:flex;align-items:center;justify-content:center;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-img .placeholder-glow{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.025),transparent);animation:shimmer 2.5s infinite}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
/* 3D Model */
.model-layout{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:20px}
.model-text{flex:0 0 320px;padding-left:20px}
.model-text .section-tag{display:inline-block;padding:5px 14px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--glass-border);font-size:.72rem;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}
.model-text h2{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600;color:var(--text-primary);letter-spacing:-.5px;margin-bottom:12px}
.model-text .desc{color:var(--text-muted);font-size:.9rem;font-weight:300;line-height:1.7;margin-bottom:20px}
.model-text .features{display:flex;flex-direction:column;gap:8px}
.model-text .features span{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text-secondary);font-weight:300}
.model-text .features span svg{width:14px;height:14px;stroke-width:2;color:var(--text-muted)}
.model-viewer-wrap{flex:1;min-height:500px;position:relative}
.model-viewer-wrap canvas{display:block;width:100%!important;height:100%!important}
.model-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);font-size:.85rem;font-weight:300;letter-spacing:.5px;z-index:1;pointer-events:none;transition:opacity .6s ease}
.model-loading .spinner{width:24px;height:24px;border:2px solid rgba(255,255,255,0.06);border-top-color:rgba(255,255,255,0.3);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.model-loading.hidden{opacity:0}
/* About */
.about-container{max-width:960px;margin:0 auto;display:grid;grid-template-columns:1fr 1.5fr;gap:48px;align-items:center}
.about-avatar{position:relative;width:260px;height:260px;margin:0 auto}
.about-avatar .avatar-ring{position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(255,255,255,0.1)}
.about-avatar .avatar-placeholder{width:100%;height:100%;border-radius:50%;background:#141414;border:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;font-size:4.5rem;position:relative;overflow:hidden}
.about-avatar .avatar-placeholder img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.about-avatar .avatar-placeholder .glow-orb{position:absolute;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.04),transparent);top:30%;left:20%;filter:blur(40px);animation:orbFloat 6s ease-in-out infinite}
.about-avatar .avatar-placeholder .glow-orb:nth-child(2){top:50%;left:60%;animation-delay:3s}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(8px,-12px) scale(1.08)}}
.about-content h2{font-size:1.8rem;font-weight:600;color:var(--text-primary);margin-bottom:6px}
.about-content .handle{color:var(--text-muted);font-size:.9rem;margin-bottom:18px;font-weight:300}
.about-content .bio{color:var(--text-secondary);font-size:.9rem;line-height:1.8;margin-bottom:22px;font-weight:300}
.about-stats{display:flex;gap:36px}
.about-stats .stat h4{font-size:1.4rem;font-weight:600;color:var(--text-primary)}
.about-stats .stat span{font-size:.75rem;color:var(--text-muted);font-weight:300}
/* Timeline */
.timeline{max-width:640px;margin:0 auto;position:relative}
.timeline::before{content:'';position:absolute;left:20px;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,rgba(255,255,255,0.15),rgba(255,255,255,0.03),transparent)}
.timeline-item{padding-left:56px;position:relative;margin-bottom:34px}
.timeline-item .dot{position:absolute;left:14px;top:6px;width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,0.15);border:2px solid rgba(255,255,255,0.05)}
.timeline-item .time{font-size:.75rem;color:var(--text-muted);margin-bottom:4px;font-weight:300}
.timeline-item h4{font-size:.95rem;font-weight:500;color:var(--text-primary);margin-bottom:4px;display:flex;align-items:center;gap:6px}
.timeline-item h4 svg{width:16px;height:16px;stroke-width:1.8;color:var(--text-muted)}
.timeline-item p{font-size:.8rem;color:var(--text-muted);font-weight:300}
/* Cooperation */
.coop-container{max-width:660px;margin:0 auto;text-align:center}
.coop-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--card-radius);padding:44px 32px;position:relative;overflow:hidden}
.coop-card::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 40% 50%,rgba(255,255,255,0.025) 0%,transparent 50%),radial-gradient(circle at 60% 50%,rgba(255,255,255,0.015) 0%,transparent 50%);animation:coopBgFloat 10s ease-in-out infinite}
@keyframes coopBgFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(-8px,8px)}}
.coop-card>*{position:relative;z-index:1}
.coop-card h3{font-size:1.3rem;font-weight:550;color:var(--text-primary);margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:8px}
.coop-card h3 svg{width:24px;height:24px;stroke-width:1.5;color:var(--text-muted)}
.coop-card p{color:var(--text-muted);margin-bottom:24px;font-size:.88rem;font-weight:300;line-height:1.7}
.coop-contacts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.coop-contacts .contact-item{display:flex;align-items:center;gap:7px;padding:9px 18px;border-radius:10px;background:rgba(255,255,255,0.03);border:1px solid var(--glass-border);font-size:.82rem;color:var(--text-secondary);text-decoration:none;transition:all .25s ease}
.coop-contacts .contact-item:hover{background:rgba(255,255,255,0.07);border-color:rgba(255,255,255,0.15);color:var(--text-primary)}
.coop-contacts .contact-item svg{width:16px;height:16px;stroke-width:1.8}
/* Footer */
footer{text-align:center;padding:44px 24px;border-top:1px solid var(--glass-border);position:relative;z-index:1;background:#0a0a0a}
footer p{font-size:.8rem;color:var(--text-muted);font-weight:300}
footer .social-links{display:flex;gap:14px;justify-content:center;margin-bottom:14px}
footer .social-links a{width:38px;height:38px;border-radius:50%;background:var(--glass-bg);border:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:all .3s ease}
footer .social-links a:hover{border-color:rgba(255,255,255,0.2);transform:translateY(-3px)}
footer .social-links a svg{width:18px;height:18px;stroke-width:1.5;color:var(--text-muted)}
footer .social-links a:hover svg{color:var(--text-primary)}
/* Works page tabs & masonry */
.works-tabs{display:flex;justify-content:center;gap:4px;margin-bottom:40px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:4px;display:inline-flex}
.works-tabs a{padding:9px 22px;border-radius:10px;font-size:.85rem;color:var(--text-secondary);text-decoration:none;transition:all .2s}
.works-tabs a:hover{color:var(--text-primary)}
.works-tabs a.active{background:rgba(255,255,255,0.08);color:var(--text-primary)}
.works-grid{max-width:1200px;margin:0 auto}
.works-grid .grid-item{width:calc(33.333% - 14px);margin-bottom:20px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--card-radius);overflow:hidden;transition:all .3s}
.works-grid .grid-item:hover{border-color:rgba(255,255,255,0.15);transform:translateY(-4px)}
.works-grid .grid-item img{width:100%;display:block}
.works-grid .grid-item .info{padding:16px}
.works-grid .grid-item .info h3{font-size:.95rem;font-weight:500;color:var(--text-primary);margin-bottom:4px}
.works-grid .grid-item .info p{font-size:.78rem;color:var(--text-muted);font-weight:300}
/* Post detail */
.post-detail{max-width:720px;margin:0 auto;padding-top:40px}
.post-detail .back{margin-bottom:24px}
.post-detail .back a{color:var(--text-muted);text-decoration:none;font-size:.85rem;display:inline-flex;align-items:center;gap:6px}
.post-detail .back a:hover{color:var(--text-primary)}
.post-detail h1{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}
.post-detail .meta{font-size:.8rem;color:var(--text-muted);margin-bottom:24px}
.post-detail .content{color:var(--text-secondary);font-size:.92rem;line-height:1.9;font-weight:300}
.post-detail .content p{margin-bottom:16px}
.post-detail .download-section{margin-top:32px;padding:24px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--card-radius);display:flex;align-items:center;justify-content:space-between}
.post-detail .download-section .file-info{display:flex;align-items:center;gap:12px}
.post-detail .download-section .file-info span{font-size:.9rem;color:var(--text-primary)}
.post-detail .download-section .file-info small{font-size:.75rem;color:var(--text-muted)}
/* No JS notice */
.no-js{display:none}
@media(max-width:900px){
.model-layout{flex-direction:column;gap:16px}
.model-text{flex:none;width:100%;text-align:center;padding-left:0}
.model-text .features{align-items:center}
.model-viewer-wrap{width:100%;min-height:380px}
.works-grid .grid-item{width:calc(50% - 10px)}
}
@media(max-width:768px){
nav{padding:12px 16px}
.nav-links a{font-size:.75rem;padding:6px 9px}
.nav-links a:not(.nav-cta):nth-child(n+4){display:none}
section{padding:60px 16px}
.hero{padding:80px 16px 40px}
.hero-scroll-indicator{bottom:30px}
.grid{grid-template-columns:1fr}
.about-container{grid-template-columns:1fr;text-align:center}
.about-avatar{width:190px;height:190px}
.about-stats{justify-content:center;gap:24px}
.coop-contacts{flex-direction:column;align-items:center}
.works-grid .grid-item{width:100%}
.model-viewer-wrap{min-height:320px}
#model-showcase{padding:40px 16px}
.post-detail{padding-top:20px}
}
