*{margin:0;padding:0;box-sizing:border-box}html{overflow-y:auto;height:auto}:root{--text: #fff;--text-sub: rgba(255, 255, 255, .5);--text-muted: rgba(255, 255, 255, .35);--text-faint: rgba(255, 255, 255, .25);--card-bg: rgba(255, 255, 255, .06);--card-border: rgba(255, 255, 255, .1);--card-hover-bg: rgba(255, 255, 255, .1);--card-hover-border: rgba(255, 255, 255, .2);--tag-bg: rgba(255, 255, 255, .06);--tag-text: rgba(255, 255, 255, .4);--tag-border: rgba(255, 255, 255, .06);--divider: rgba(255, 255, 255, .06)}html.light{--text: #1a2233;--text-sub: rgba(26, 34, 51, .6);--text-muted: rgba(26, 34, 51, .4);--text-faint: rgba(26, 34, 51, .3);--card-bg: rgba(255, 255, 255, .7);--card-border: rgba(255, 255, 255, .8);--card-hover-bg: rgba(255, 255, 255, .9);--card-hover-border: rgba(255, 255, 255, 1);--tag-bg: rgba(0, 0, 0, .05);--tag-text: rgba(26, 34, 51, .55);--tag-border: rgba(0, 0, 0, .08);--divider: rgba(0, 0, 0, .06)}body{min-height:100vh;background:linear-gradient(180deg,#0a0a1a,#0d1117 40%,#111827);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;position:relative;overflow-x:hidden;overflow-y:visible}body:after{content:"";position:fixed;inset:0;background:linear-gradient(180deg,#e0f0ff,#c8e6ff 40%,#a8d4ff);opacity:0;transition:opacity 1s ease;z-index:-1;pointer-events:none}html.light body:after{opacity:1}.stars-dense{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:1;transition:opacity 1s ease;background-image:radial-gradient(2px 2px at 10% 8%,#fff,transparent),radial-gradient(2.5px 2.5px at 25% 18%,#fff,transparent),radial-gradient(2px 2px at 42% 5%,#fff,transparent),radial-gradient(2.5px 2.5px at 58% 12%,#fff,transparent),radial-gradient(2px 2px at 73% 7%,#fff,transparent),radial-gradient(2.5px 2.5px at 88% 15%,#fff,transparent),radial-gradient(2px 2px at 95% 3%,#fff,transparent),radial-gradient(2px 2px at 5% 28%,#fff,transparent),radial-gradient(2.5px 2.5px at 33% 32%,#fff,transparent),radial-gradient(2px 2px at 67% 28%,#fff,transparent),radial-gradient(2px 2px at 82% 35%,#fff,transparent),radial-gradient(2.5px 2.5px at 15% 45%,#fff,transparent),radial-gradient(2px 2px at 50% 42%,#fff,transparent),radial-gradient(2px 2px at 92% 48%,#fff,transparent),radial-gradient(2.5px 2.5px at 38% 55%,#fff,transparent),radial-gradient(2px 2px at 72% 58%,#fff,transparent),radial-gradient(2px 2px at 8% 62%,#fff,transparent),radial-gradient(2.5px 2.5px at 60% 68%,#fff,transparent),radial-gradient(2px 2px at 85% 65%,#fff,transparent),radial-gradient(2px 2px at 22% 72%,#fff,transparent),radial-gradient(2.5px 2.5px at 48% 78%,#fff,transparent),radial-gradient(2px 2px at 78% 75%,#fff,transparent),radial-gradient(2px 2px at 95% 80%,#fff,transparent),radial-gradient(2px 2px at 12% 88%,#fff,transparent),radial-gradient(2.5px 2.5px at 35% 85%,#fff,transparent),radial-gradient(2px 2px at 55% 92%,#fff,transparent),radial-gradient(2px 2px at 88% 90%,#fff,transparent),radial-gradient(2.5px 2.5px at 3% 95%,#fff,transparent),radial-gradient(2px 2px at 65% 97%,#fff,transparent),radial-gradient(1.5px 1.5px at 7% 3%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 18% 12%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 32% 22%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 47% 15%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 63% 20%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 77% 18%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 91% 10%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 4% 38%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 20% 50%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 40% 38%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 55% 52%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 70% 40%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 85% 52%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 28% 62%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 45% 70%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 62% 82%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 80% 72%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 93% 88%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 15% 78%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 52% 85%,rgba(255,255,255,.8),transparent),radial-gradient(1px 1px at 2% 6%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 14% 20%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 22% 9%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 36% 14%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 44% 26%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 52% 33%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 66% 48%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 74% 52%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 83% 42%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 96% 58%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 9% 72%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 26% 88%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 42% 65%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 58% 75%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 68% 90%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 76% 85%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 90% 95%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 30% 95%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 98% 25%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 1% 50%,rgba(255,255,255,.4),transparent);z-index:0}.stars-twinkle{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:1;transition:opacity 1s ease;background-image:radial-gradient(3px 3px at 15% 10%,#fff,transparent),radial-gradient(2.5px 2.5px at 40% 25%,#fff,transparent),radial-gradient(3px 3px at 62% 8%,#fff,transparent),radial-gradient(2.5px 2.5px at 80% 42%,#fff,transparent),radial-gradient(3px 3px at 25% 65%,#fff,transparent),radial-gradient(2.5px 2.5px at 55% 55%,#fff,transparent),radial-gradient(3px 3px at 90% 72%,#fff,transparent),radial-gradient(2.5px 2.5px at 8% 85%,#fff,transparent),radial-gradient(3px 3px at 45% 90%,#fff,transparent),radial-gradient(2.5px 2.5px at 72% 78%,#fff,transparent),radial-gradient(3px 3px at 35% 48%,#fff,transparent),radial-gradient(2.5px 2.5px at 95% 18%,#fff,transparent);animation:twinkle 3s ease-in-out infinite alternate;z-index:0}@keyframes twinkle{0%{opacity:.2}50%{opacity:.8}to{opacity:1}}html.light .stars-dense,html.light .stars-twinkle{opacity:0!important;animation:none}html.light body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;background-image:radial-gradient(ellipse 300px 80px at 15% 20%,rgba(255,255,255,.6),transparent),radial-gradient(ellipse 250px 60px at 70% 15%,rgba(255,255,255,.5),transparent),radial-gradient(ellipse 200px 50px at 85% 35%,rgba(255,255,255,.4),transparent),radial-gradient(ellipse 350px 70px at 40% 70%,rgba(255,255,255,.3),transparent)}.top-controls{position:fixed;top:1.25rem;right:1.25rem;z-index:100;display:flex;align-items:center;gap:.5rem}.lang-switcher{display:flex;gap:.2rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:.25rem;backdrop-filter:blur(12px);transition:background 1s ease,border-color 1s ease}.lang-btn{padding:.3rem .5rem;font-size:.7rem;font-weight:600;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.lang-btn:hover{color:var(--text)}.lang-btn.active{background:var(--card-hover-bg);color:var(--text)}.theme-toggle{width:44px;height:44px;border:1px solid var(--card-border);border-radius:12px;background:var(--card-bg);backdrop-filter:blur(12px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s ease;font-size:1.2rem;padding:0}.theme-toggle:hover{background:var(--card-hover-bg);border-color:var(--card-hover-border);transform:scale(1.05)}.dark-icon{display:inline}.light-icon,html.light .dark-icon{display:none}html.light .light-icon{display:inline}a{text-decoration:none;color:inherit}body,.content-wrapper,.theme-toggle{transition:color 1s ease}.content-wrapper{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;min-height:100vh;padding-top:3rem;padding-bottom:2rem}.container[data-astro-cid-j7pv25f6]{max-width:600px;width:100%;display:flex;flex-direction:column;align-items:center;gap:2.5rem}.hero[data-astro-cid-j7pv25f6]{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.logo[data-astro-cid-j7pv25f6]{width:72px;height:72px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;color:#fff!important;-webkit-text-fill-color:#fff!important;margin-bottom:.5rem;box-shadow:0 8px 32px #667eea66}h1[data-astro-cid-j7pv25f6]{font-size:2rem;font-weight:700;letter-spacing:-.5px}.accent[data-astro-cid-j7pv25f6]{background:linear-gradient(135deg,#667eea,#f093fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle[data-astro-cid-j7pv25f6]{color:var(--text-sub);font-size:.95rem;transition:color 1s ease}.projects[data-astro-cid-j7pv25f6]{width:100%;display:flex;flex-direction:column;gap:1rem}.card-wrapper[data-astro-cid-j7pv25f6]{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;transition:all .25s ease,background 1s ease,border-color 1s ease;position:relative;overflow:hidden}.card-wrapper[data-astro-cid-j7pv25f6]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);opacity:0;transition:opacity .25s ease}.card-wrapper[data-astro-cid-j7pv25f6]:hover{background:var(--card-hover-bg);border-color:var(--card-hover-border);transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.card-wrapper[data-astro-cid-j7pv25f6]:hover:before{opacity:1}.card-wrapper[data-astro-cid-j7pv25f6].disabled{opacity:.5}.card-wrapper[data-astro-cid-j7pv25f6].disabled .card[data-astro-cid-j7pv25f6]{pointer-events:none}.card[data-astro-cid-j7pv25f6]{display:block;padding:1.25rem 1.5rem}.card-top[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:1rem}.card-icon[data-astro-cid-j7pv25f6]{font-size:2rem;flex-shrink:0}.card-content[data-astro-cid-j7pv25f6]{flex:1;min-width:0}.card-content[data-astro-cid-j7pv25f6] h2[data-astro-cid-j7pv25f6]{font-size:1.05rem;font-weight:600;margin-bottom:.15rem}.card-en[data-astro-cid-j7pv25f6]{font-size:.75rem;color:var(--text-muted);display:block;margin-bottom:.35rem;transition:color 1s ease}.card-content[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{font-size:.85rem;color:var(--text-sub);line-height:1.4;transition:color 1s ease}.card-notice[data-astro-cid-j7pv25f6]{font-size:.75rem;color:#fbbf24;background:#fbbf241f;border-radius:.375rem;padding:.3rem .5rem;margin-top:.4rem;line-height:1.3}html.light .card-notice[data-astro-cid-j7pv25f6]{color:#92400e;background:#fbbf2426}.badge[data-astro-cid-j7pv25f6]{font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:6px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.badge[data-astro-cid-j7pv25f6].live{background:#34d39933;color:#34d399;border:1px solid rgba(52,211,153,.3)}.badge[data-astro-cid-j7pv25f6].coming{background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.25)}.card-arrow[data-astro-cid-j7pv25f6]{font-size:1.2rem;color:var(--text-muted);transition:transform .25s ease,color .25s ease;flex-shrink:0}.card-wrapper[data-astro-cid-j7pv25f6]:hover .card-arrow[data-astro-cid-j7pv25f6]{transform:translate(4px);color:var(--text-sub)}.stack-tags[data-astro-cid-j7pv25f6]{display:flex;flex-wrap:wrap;gap:.35rem;padding-top:.6rem}.stack-tag[data-astro-cid-j7pv25f6]{font-size:.6rem;font-weight:500;padding:.15rem .5rem;border-radius:5px;background:var(--tag-bg);color:var(--tag-text);border:1px solid var(--tag-border);transition:background 1s ease,color 1s ease,border-color 1s ease}.github-link[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:.4rem;padding:.55rem 1.5rem;font-size:.75rem;color:var(--text-muted);transition:color .25s ease}.github-link[data-astro-cid-j7pv25f6]:hover{color:var(--text-sub)}.github-arrow[data-astro-cid-j7pv25f6]{margin-left:auto;font-size:1rem;transition:transform .25s ease}.github-link[data-astro-cid-j7pv25f6]:hover .github-arrow[data-astro-cid-j7pv25f6]{transform:translate(4px)}footer[data-astro-cid-j7pv25f6]{margin-top:1rem;color:var(--text-faint);font-size:.8rem}@media(max-width:480px){h1[data-astro-cid-j7pv25f6]{font-size:1.6rem}.card[data-astro-cid-j7pv25f6]{padding:1rem 1.25rem}.card-icon[data-astro-cid-j7pv25f6]{font-size:1.6rem}}
