:root{--hue:170;color-scheme:light dark}:root,:root[data-theme=light]{--primary:oklch(.7 .09 var(--hue));--page-bg:oklch(.95 .01 var(--hue));--card-bg:oklch(.98 .005 var(--hue));--card-bg-solid:white;--text-color:oklch(.25 .02 var(--hue));--text-color-75:oklch(.35 .02 var(--hue));--text-color-50:oklch(.5 .02 var(--hue));--text-color-25:oklch(.65 .015 var(--hue));--btn-content:oklch(.55 .08 var(--hue));--btn-regular-bg:oklch(.95 .025 var(--hue));--btn-regular-bg-hover:oklch(.9 .05 var(--hue));--line-divider:#00000014;--line-color:#0000001a;--selection-bg:oklch(.9 .035 var(--hue));--glass-bg:#fff9;--glass-bg-hover:#ffffffbf;--glass-border:#00000014;--glass-border-hover:#00000024;--glass-blur:20px;--glass-blur-heavy:40px;--glow-subtle:0 0 0 1px #0000000d;--glow-soft:0 0 0 1px #00000014, 0 0 20px -5px oklch(.7 .09 var(--hue) / .12);--glow-strong:0 0 0 1px #0000001f, 0 0 30px -5px oklch(.7 .09 var(--hue) / .2)}:root.dark,:root[data-theme=dark]{--primary:oklch(.75 .09 var(--hue));--page-bg:oklch(.14 .014 var(--hue));--card-bg:oklch(.2 .015 var(--hue));--card-bg-solid:oklch(.2 .015 var(--hue));--text-color:oklch(.9 .01 var(--hue));--text-color-75:oklch(.75 .015 var(--hue));--text-color-50:oklch(.6 .015 var(--hue));--text-color-25:oklch(.45 .01 var(--hue));--btn-content:oklch(.75 .07 var(--hue));--btn-regular-bg:oklch(.3 .035 var(--hue));--btn-regular-bg-hover:oklch(.35 .04 var(--hue));--line-divider:#ffffff14;--line-color:#ffffff1a;--selection-bg:oklch(.4 .055 var(--hue));--glass-bg:#ffffff0d;--glass-bg-hover:#ffffff14;--glass-border:#ffffff1a;--glass-border-hover:#ffffff2e;--glass-blur:20px;--glass-blur-heavy:40px;--glow-subtle:0 0 0 1px #ffffff0f;--glow-soft:0 0 0 1px #ffffff1a, 0 0 20px -5px oklch(.75 .09 var(--hue) / .15);--glow-strong:0 0 0 1px #ffffff26, 0 0 30px -5px oklch(.75 .09 var(--hue) / .25)}:root{--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:32px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--font-sans:"MiSans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.0625rem;--text-xl:1.125rem;--text-2xl:1.25rem;--text-3xl:1.5rem;--text-4xl:2rem;--ease-spring:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.2s;--duration-normal:.35s;--duration-slow:.5s;--press-scale:.97}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);color:var(--text-color);background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;transition:background var(--duration-normal) var(--ease-out), color var(--duration-normal) var(--ease-out);font-size:16px}body{min-height:100vh;line-height:1.6;overflow-x:hidden}::selection{background:var(--selection-bg)}a{color:var(--primary);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--btn-content)}img{max-width:100%;height:auto;display:block}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glow-subtle);transition:background var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-fast) var(--ease-spring)}.glass-card:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glow-soft)}.glass-card.pressable{cursor:pointer;user-select:none}.glass-card.pressable:active{transform:scale(var(--press-scale))}.glass-highlight{position:relative;overflow:hidden}.glass-highlight:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#ffffff26 0%,#ffffff08 40%,#fff0 60%,#ffffff0d 100%);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}:root:not(.dark) .glass-highlight:before{background:linear-gradient(135deg,#ffffff80 0%,#ffffff1a 40%,#fff0 60%,#fff3 100%)}.squircle{border-radius:var(--radius-lg)}.squircle-sm{border-radius:var(--radius-sm)}.squircle-xl{border-radius:var(--radius-xl)}.container{width:100%;max-width:min(90vw,1200px);padding:0 var(--space-lg);margin:0 auto}.section{padding:var(--space-3xl) 0}.section-title{font-size:var(--text-3xl);margin-bottom:var(--space-lg);color:var(--text-color);font-weight:600}.tag{padding:var(--space-xs) var(--space-md);font-size:var(--text-sm);color:var(--btn-content);background:var(--btn-regular-bg);border:1px solid var(--line-divider);transition:all var(--duration-fast) var(--ease-out);border-radius:999px;align-items:center;display:inline-flex}.tag:hover{background:var(--btn-regular-bg-hover);color:var(--primary)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-in{animation:fade-in-up var(--duration-slow) var(--ease-spring) both}.animate-in-delay-1{animation-delay:.1s}.animate-in-delay-2{animation-delay:.2s}.animate-in-delay-3{animation-delay:.3s}.animate-in-delay-4{animation-delay:.4s}.animate-in-delay-5{animation-delay:.5s}.theme-toggle{cursor:pointer;width:36px;height:36px;color:var(--text-color-75);transition:all var(--duration-fast) var(--ease-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.theme-toggle:hover{color:var(--primary);background:var(--btn-regular-bg)}@media (width<=768px){:root{--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px}.section-title{font-size:var(--text-2xl)}}.nav[data-astro-cid-z4jru4n3]{top:var(--space-md);width:calc(100% - var(--space-xl) * 2);z-index:100;max-width:min(90vw,1200px);padding:var(--space-sm) var(--space-md);backdrop-filter:blur(var(--glass-blur-heavy));position:fixed;left:50%;transform:translate(-50%)}.nav-inner[data-astro-cid-z4jru4n3]{justify-content:space-between;align-items:center;display:flex}.nav-brand[data-astro-cid-z4jru4n3]{align-items:center;gap:var(--space-sm);font-size:var(--text-lg);color:var(--text-color);font-weight:600;text-decoration:none;display:flex}.nav-brand[data-astro-cid-z4jru4n3]:hover{color:var(--primary)}.nav-brand-icon[data-astro-cid-z4jru4n3]{border-radius:4px;width:22px;height:22px}.nav-right[data-astro-cid-z4jru4n3]{align-items:center;gap:var(--space-xs);display:flex}.nav-links[data-astro-cid-z4jru4n3]{gap:var(--space-xs);display:flex}.nav-link[data-astro-cid-z4jru4n3]{padding:var(--space-xs) var(--space-md);font-size:var(--text-base);color:var(--text-color-50);transition:all var(--duration-fast) var(--ease-out);border-radius:999px;text-decoration:none}.nav-link[data-astro-cid-z4jru4n3]:hover{color:var(--text-color);background:var(--btn-regular-bg)}.footer[data-astro-cid-z4jru4n3]{padding:var(--space-2xl) 0;border-top:1px solid var(--line-divider)}.footer-inner[data-astro-cid-z4jru4n3]{justify-content:center;align-items:center;gap:var(--space-sm);text-align:center;flex-wrap:wrap;display:flex}.footer-text[data-astro-cid-z4jru4n3]{font-size:var(--text-sm);color:var(--text-color-25)}.footer-text[data-astro-cid-z4jru4n3] a[data-astro-cid-z4jru4n3]{color:var(--text-color-50);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.footer-text[data-astro-cid-z4jru4n3] a[data-astro-cid-z4jru4n3]:hover{color:var(--primary)}.footer-sep[data-astro-cid-z4jru4n3]{color:var(--text-color-25)}.theme-toggle[data-astro-cid-z4jru4n3] .icon-auto[data-astro-cid-z4jru4n3],.theme-toggle[data-astro-cid-z4jru4n3] .icon-sun[data-astro-cid-z4jru4n3],.theme-toggle[data-astro-cid-z4jru4n3] .icon-moon[data-astro-cid-z4jru4n3]{width:18px;height:18px;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);position:absolute}.theme-toggle[data-astro-cid-z4jru4n3] .icon-auto[data-astro-cid-z4jru4n3]{opacity:0;transform:scale(.5)rotate(90deg)}.theme-toggle[data-astro-cid-z4jru4n3] .icon-sun[data-astro-cid-z4jru4n3]{opacity:0;transform:scale(.5)rotate(-90deg)}.theme-toggle[data-astro-cid-z4jru4n3] .icon-moon[data-astro-cid-z4jru4n3]{opacity:0;transform:scale(.5)rotate(90deg)}:root[data-theme-mode=auto] .theme-toggle[data-astro-cid-z4jru4n3] .icon-auto[data-astro-cid-z4jru4n3],:root[data-theme-mode=light] .theme-toggle[data-astro-cid-z4jru4n3] .icon-sun[data-astro-cid-z4jru4n3],:root[data-theme-mode=dark] .theme-toggle[data-astro-cid-z4jru4n3] .icon-moon[data-astro-cid-z4jru4n3]{opacity:1;transform:scale(1)rotate(0)}main[data-astro-cid-z4jru4n3]{padding-top:calc(60px + var(--space-xl) * 2)}.project-card[data-astro-cid-y2vllrex]{gap:var(--space-sm);padding:var(--space-lg);color:var(--text-color);border:1px dashed var(--line-color);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));transition:all var(--duration-normal) var(--ease-out);cursor:pointer;border-radius:1.5rem;flex-direction:column;text-decoration:none;display:flex}.project-card[data-astro-cid-y2vllrex]:hover{border-color:var(--primary);background:var(--glass-bg-hover);box-shadow:var(--glow-soft);transform:translateY(-2px)}.project-card[data-astro-cid-y2vllrex]:active{transform:scale(var(--press-scale))}.project-header[data-astro-cid-y2vllrex]{align-items:center;gap:var(--space-sm);display:flex}.project-icon[data-astro-cid-y2vllrex]{font-size:var(--text-xl)}.project-name[data-astro-cid-y2vllrex]{font-size:var(--text-lg);color:var(--primary);font-weight:600}.project-desc[data-astro-cid-y2vllrex]{font-size:var(--text-base);color:var(--text-color-50);flex:1;line-height:1.5}.project-meta[data-astro-cid-y2vllrex]{align-items:center;gap:var(--space-md);margin-top:var(--space-xs);display:flex}.project-lang[data-astro-cid-y2vllrex]{align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--text-color-75);display:flex}.lang-dot[data-astro-cid-y2vllrex]{border-radius:50%;width:10px;height:10px;display:inline-block}.project-stars[data-astro-cid-y2vllrex]{font-size:var(--text-sm);color:var(--text-color-50)}
