:root{--rosewater:#f5e0dc;--flamingo:#f2cdcd;--pink:#f5c2e7;--mauve:#cba6f7;--red:#f38ba8;--maroon:#eba0ac;--peach:#fab387;--yellow:#f9e2af;--green:#a6e3a1;--teal:#94e2d5;--sky:#89dceb;--sapphire:#74c7ec;--blue:#89b4fa;--lavender:#b4befe;--text:#cdd6f4;--subtext-1:#bac2de;--subtext-0:#a6adc8;--overlay-2:#9399b2;--overlay-1:#7f849c;--overlay-0:#6c7086;--surface-2:#585b70;--surface-1:#45475a;--surface-0:#313244;--base:#1e1e2e;--mantle:#181825;--crust:#11111b;--primary:#cdd6f4;--bg-main:#1e1e2e;--bg-section:#181825;--bg-card:#313244;--bg-card-hover:#45475a;--border:#45475a80;--border-hover:#585b70b3;--text-primary:#cdd6f4;--text-secondary:#bac2de;--text-muted:#6c7086;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 3px #00000040, 0 1px 2px #0003;--shadow:0 4px 20px #00000059;--shadow-lg:0 12px 40px #00000073;--container-width:1200px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--accent:#89b4fa;--accent-hover:#74c7ec}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{max-width:var(--container-width);margin:0 auto;padding:0 20px}.navbar{z-index:1000;padding:16px 0;transition:all .3s;position:fixed;top:0;left:0;right:0}.navbar.scrolled{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#1e1e2eeb;padding:10px 0}.navbar-inner{justify-content:space-between;align-items:center;display:flex}.nav-logo{color:var(--text-primary);letter-spacing:-.5px;font-size:18px;font-weight:700;transition:color .3s}.nav-links{gap:32px;display:flex}.nav-links a{color:var(--text-muted);font-size:14px;font-weight:500;transition:color .2s}.nav-links a:hover{color:var(--text-primary)}.navbar.navbar--dark:not(.scrolled) .nav-logo{color:#cdd6f4}.navbar.navbar--dark:not(.scrolled) .nav-toggle span{background:#cdd6f4}.navbar.navbar--dark:not(.scrolled) .nav-links a{color:#cdd6f480}.navbar.navbar--dark:not(.scrolled) .nav-links a:hover{color:#cdd6f4}.navbar.navbar--dark.scrolled{background:#181825f2;border-bottom-color:#45475a4d}.navbar.navbar--dark.scrolled .nav-logo{color:#cdd6f4}.navbar.navbar--dark.scrolled .nav-links a{color:#cdd6f480}.navbar.navbar--dark.scrolled .nav-links a:hover{color:#cdd6f4}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;display:none}.nav-toggle span{background:var(--text-primary);width:24px;height:2px;transition:all .3s}.hero{text-align:center;justify-content:center;align-items:center;height:100vh;min-height:600px;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:0;background:radial-gradient(at 50% 0,#cba6f70a 0%,#0000 60%),radial-gradient(at 80% 60%,#74c7ec08 0%,#0000 50%),#1e1e2e;position:absolute;inset:0}.hero-content{z-index:2;max-width:900px;padding:0 40px;position:relative}.hero{--hero-text:#cdd6f4;--hero-text-sub:#bac2de;--hero-text-muted:#6c7086;--hero-divider:#45475a80;--hero-addr-bg:#313244d9;--hero-addr-border:#45475a66;--hero-btn-bg:#cdd6f4;--hero-btn-color:#1e1e2e}.hero-title-wrap{flex-direction:column;align-items:center;gap:20px;display:flex}.hero-title{letter-spacing:-3px;color:var(--hero-text);text-shadow:0 2px 40px #0006;font-size:clamp(2.5rem,6vw,72px);font-weight:800;line-height:1.1}.hero-subtitle{color:var(--hero-text-sub);letter-spacing:.05em;max-width:600px;font-size:clamp(14px,2vw,18px);font-weight:400}.hero-address{background:var(--hero-addr-bg);border:1px solid var(--hero-addr-border);-webkit-backdrop-filter:blur(12px);border-radius:50px;align-items:center;gap:12px;margin-top:40px;padding:12px 12px 12px 24px;display:inline-flex}.address-label{color:var(--hero-text-muted);font-size:13px}.address-value{color:var(--hero-text);font-size:15px;font-weight:500;font-family:var(--font-mono);letter-spacing:.03em}.copy-btn{background:var(--hero-btn-bg);color:var(--hero-btn-color);border-radius:20px;align-items:center;gap:4px;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .2s;display:inline-flex}.copy-btn:hover{opacity:.8}.copy-btn.copied{opacity:.6;pointer-events:none}.hero-scroll{z-index:2;cursor:pointer;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.hero-scroll-text{letter-spacing:.12em;text-transform:uppercase;color:#cdd6f44d;font-size:11px}.hero-scroll-arrow{color:#cdd6f440;width:22px;height:22px}.section{padding:100px 0}.section-dark{background:var(--bg-section)}.section-title{text-align:center;letter-spacing:-.5px;color:var(--text-primary);margin-bottom:48px;font-size:30px;font-weight:700}.about-wrap{align-items:center;gap:60px;max-width:900px;margin:0 auto;display:flex}.about-avatar{border:3px solid var(--border);width:180px;height:180px;box-shadow:var(--shadow);border-radius:50%;flex-shrink:0;overflow:hidden}.about-avatar img{object-fit:cover;width:100%;height:100%}.about-text{flex:1}.about-text p{color:var(--text-secondary);margin-bottom:16px;font-size:15px;line-height:1.8}.about-text p:last-child{margin-bottom:0}.blog-list{flex-direction:column;gap:16px;max-width:800px;margin:0 auto;display:flex}.blog-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:all .25s}.blog-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow);transform:translateY(-2px)}.blog-card-top{align-items:center;gap:12px;margin-bottom:8px;display:flex}.blog-card-date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.03em}.blog-card-title{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:600;transition:color .2s}.blog-card:hover .blog-card-title{color:var(--accent)}.blog-card-desc{color:var(--text-secondary);font-size:14px;line-height:1.6}.blog-more{text-align:center;margin-top:24px}.blog-more a{color:var(--accent);align-items:center;gap:6px;font-size:14px;font-weight:500;transition:color .2s;display:inline-flex}.blog-more a:hover{color:var(--accent-hover)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;max-width:900px;margin:0 auto;display:grid}.project-card{background:var(--surface-0);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:24px;transition:all .25s;display:flex}.project-card:hover{border-color:var(--sapphire);transform:translateY(-3px);box-shadow:0 0 24px #74c7ec14}.project-card-header{justify-content:space-between;align-items:center;display:flex}.project-card-name{font-size:16px;font-weight:600;font-family:var(--font-mono);color:var(--text-primary);letter-spacing:-.3px}.project-card-status{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid;border-radius:4px;padding:3px 8px}.project-card-status.active{color:var(--green);background:#a6e3a114;border-color:#a6e3a14d}.project-card-status.archived{color:var(--overlay-1);border-color:#7f849c4d}.project-card-desc{color:var(--text-secondary);font-size:13px;line-height:1.6}.project-card-tags{flex-wrap:wrap;gap:6px;display:flex}.project-card-tag{font-size:11px;font-family:var(--font-mono);color:var(--sapphire);background:#74c7ec14;border:1px solid #74c7ec26;border-radius:4px;padding:2px 8px}.project-card-links{gap:12px;margin-top:auto;padding-top:8px;display:flex}.project-card-link{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;font-weight:500;transition:color .2s;display:inline-flex}.project-card-link:hover{color:var(--accent)}.gallery-belt{flex-direction:column;gap:14px;max-width:900px;margin:0 auto;display:flex;overflow:hidden}.gallery-belt-row{overflow:hidden}.gallery-belt-track{will-change:transform;gap:16px;width:fit-content;display:flex}.gallery-belt-track--left{animation:180s linear infinite belt-scroll-left}.gallery-belt-track--right{animation:180s linear infinite belt-scroll-right}@keyframes belt-scroll-left{0%{transform:translate(0)}to{transform:translate(-25%)}}@keyframes belt-scroll-right{0%{transform:translate(-25%)}to{transform:translate(0)}}.gallery-belt-item{border-radius:var(--radius);cursor:pointer;background:var(--surface-0);flex-shrink:0;width:260px;transition:transform .25s;position:relative;overflow:hidden}.gallery-belt-item:hover{transform:translateY(-3px)}.gallery-belt-item img{object-fit:cover;width:100%;height:240px;display:block}.gallery-belt-item-title{color:#fff;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(#0000,#000000a6);padding:20px 12px 10px;font-size:12px;font-weight:500;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.server-info{grid-template-columns:1fr 1fr;gap:24px;max-width:900px;margin:0 auto 32px;display:grid}.server-info-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.server-info-card h3{color:var(--text-primary);margin-bottom:16px;font-size:16px;font-weight:600}.server-info-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.server-info-row:last-child{border-bottom:none}.server-info-label{color:var(--text-muted)}.server-info-value{color:var(--text-secondary);font-family:var(--font-mono)}.server-inline-code{background:var(--surface-1);color:var(--accent);font-family:var(--font-mono);border-radius:4px;padding:1px 6px;font-size:13px}.server-link{color:var(--accent);margin-top:16px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .2s;display:inline-block}.server-link:hover{opacity:.8}.server-link:after{content:"  →"}.friend-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;max-width:800px;margin:0 auto;display:grid}.friend-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:20px;transition:all .25s}.friend-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow);transform:translateY(-2px)}.friend-card-name{color:var(--text-primary);margin-bottom:6px;font-size:15px;font-weight:600}.friend-card-desc{color:var(--text-muted);margin-bottom:12px;font-size:12px;line-height:1.5}.friend-card-btn{color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:6px 16px;font-size:12px;font-weight:500;transition:all .2s;display:inline-block}.friend-card-btn:hover{background:var(--accent);color:var(--crust)}.footer{background:var(--crust);border-top:1px solid var(--border);padding:60px 0 40px}.footer-main{grid-template-columns:1.3fr 1fr 1.2fr;gap:40px;display:grid}.footer-brand{margin-bottom:8px;font-size:18px;font-weight:700}.footer-desc{color:var(--text-secondary);margin-bottom:16px;font-size:14px;line-height:1.7}.footer-email{color:var(--accent);font-size:13px;font-family:var(--font-mono);text-decoration:none;transition:opacity .2s;display:inline-block}.footer-email:hover{opacity:.8}.footer-col-title{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:11px;font-weight:600;font-family:var(--font-mono);margin-bottom:14px}.footer-nav{flex-direction:column;gap:10px;display:flex}.footer-nav-link{color:var(--text-secondary);font-size:14px;text-decoration:none;transition:color .2s}.footer-nav-link:hover{color:var(--text-primary)}.status-panel{font-family:var(--font-mono);font-size:12px;line-height:1.6}.status-header{letter-spacing:.08em;color:var(--overlay-0);text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:8px;font-size:10px}.status-row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.status-key{color:var(--accent);text-transform:uppercase;flex-shrink:0}.status-value{color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums}.footer-bottom{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px 0;margin-top:40px;padding-top:20px;font-size:11px;display:flex}.footer-bottom-item+.footer-bottom-item:before{content:"·";color:var(--overlay-0);margin:0 8px}.footer-bottom-item a{color:var(--text-muted);text-decoration:none;transition:color .2s}.footer-bottom-item a:hover{color:var(--text-secondary)}.footer-pubsec-icon{vertical-align:middle;width:18px;height:18px;margin-right:3px;display:inline-block}.footer-bottom-item a:has(.footer-pubsec-icon){align-items:center;display:inline-flex}@media (width<=900px){.footer-main{grid-template-columns:1fr 1fr}.footer-section--brand{grid-column:1/-1}}@media (width<=600px){.footer-main{grid-template-columns:1fr;gap:32px}.footer-section--brand{grid-column:1}.footer-bottom{flex-direction:column;align-items:flex-start;gap:4px}.footer-bottom-item+.footer-bottom-item:before{content:none}}.lightbox{z-index:9999;background:#000000e6;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.lightbox.open{display:flex}.lightbox img{object-fit:contain;border-radius:var(--radius-sm);max-width:90vw;max-height:90vh}.lightbox-close{color:#fff;cursor:pointer;opacity:.6;background:0 0;border:none;font-size:36px;transition:opacity .2s;position:absolute;top:20px;right:28px}.lightbox-close:hover{opacity:1}.skip-link{z-index:1100;background:var(--accent);color:var(--crust);border-radius:0 0 var(--radius-sm) var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-100%;left:8px}.skip-link:focus{top:0}.fade-up{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(30px)}.fade-up.visible{opacity:1;transform:translateY(0)}@media (width<=768px){.nav-links{backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#181825fa;flex-direction:column;gap:16px;padding:20px;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.open,.nav-toggle{display:flex}.hero-address{border-radius:var(--radius);flex-wrap:wrap;justify-content:center;padding:16px}.section{padding:60px 0}.about-wrap{text-align:center;flex-direction:column;gap:32px}.about-avatar{width:140px;height:140px}.project-grid,.server-info{grid-template-columns:1fr}.server-embed iframe{height:300px}}@media (width<=480px){.hero-title{letter-spacing:-1px}.server-embed iframe{height:220px}}.nav-logo[data-astro-cid-l7arcky5]{align-items:center;gap:10px;display:inline-flex}.nav-avatar[data-astro-cid-l7arcky5]{object-fit:cover;border-radius:50%;flex-shrink:0}
