@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-cyrillic-ext-wght-normal.D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-cyrillic-wght-normal.CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-vietnamese-wght-normal.U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-latin-ext-wght-normal.CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-latin-wght-normal.BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#1e1e2e;--mantle:#181825;--crust:#11111b;--surface:#313244;--line:#45475a;--fg:#cdd6f4;--muted:#a6adc8;--dim:#6c7086;--accent:#cba6f7;--green:#a6e3a1;--pink:#f5c2e7;--red:#f38ba8;--yellow:#f9e2af;--on-accent:#1e1e2e;--dot:#cdd6f412;--sans:"Nunito Variable", "Nunito", -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans SC", sans-serif;--mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;color-scheme:dark}:root[data-theme=light]{--bg:#eff1f5;--mantle:#e6e9ef;--crust:#dce0e8;--surface:#ccd0da;--line:#bcc0cc;--fg:#4c4f69;--muted:#5c5f77;--dim:#7c7f93;--accent:#8839ef;--green:#40a02b;--pink:#ea76cb;--red:#d20f39;--yellow:#df8e1d;--on-accent:#eff1f5;--dot:#4c4f691a;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg) radial-gradient(var(--dot) 1px, transparent 1px) 0 0 / 22px 22px;color:var(--fg);font:17px/1.75 var(--sans);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--accent);color:var(--on-accent)}.wrap{max-width:44rem;margin:0 auto;padding:0 1.4rem}.wrap.wide{max-width:62rem}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline wavy}h1,h2,h3,h4{font-family:var(--sans);letter-spacing:-.02em;color:var(--fg);font-weight:800}.ps{color:var(--green);font-family:var(--mono);font-weight:500}.cursor{background:var(--green);vertical-align:text-bottom;width:.6em;height:1.05em;margin-left:.25em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}html{scroll-behavior:auto}}header.site{background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:blur(10px);z-index:10;border-bottom:1px solid var(--line);position:sticky;top:0}header.site .wrap{justify-content:space-between;align-items:center;max-width:62rem;height:4rem;display:flex}.brand{color:var(--fg);font:700 1.1rem var(--mono);align-items:center;display:flex}.brand:hover{text-decoration:none}.brand .path{color:var(--accent)}nav{font:500 .9rem var(--mono);align-items:center;gap:1.4rem;display:flex}nav a{color:var(--muted)}nav a:before{content:"./";color:var(--dim)}nav a:hover{color:var(--fg);text-decoration:none}nav a[aria-current]{color:var(--green)}#theme-toggle{all:unset;cursor:pointer;color:var(--muted);border-radius:10px;place-items:center;width:2.3rem;height:2.3rem;display:grid}#theme-toggle:hover{background:var(--surface);color:var(--fg)}#theme-toggle:focus-visible{outline:2px solid var(--accent)}#theme-toggle .sun{display:grid}#theme-toggle .moon,:root[data-theme=light] #theme-toggle .sun{display:none}:root[data-theme=light] #theme-toggle .moon{display:grid}main{min-height:70vh;padding:0 0 5rem}footer.site{border-top:1px solid var(--line);background:var(--mantle);color:var(--dim);font:.82rem var(--mono)}footer.site .wrap{justify-content:space-between;align-items:center;gap:1rem;max-width:62rem;padding-top:1.6rem;padding-bottom:2.2rem;display:flex}footer .links{gap:1rem;display:flex}footer .links a{color:var(--muted);display:grid}footer .links a:hover{color:var(--accent)}h1{margin:2.6rem 0 1rem;font-size:2.3rem;font-weight:900;line-height:1.12}h2{margin:2.6rem 0 .8rem;font-size:1.55rem;line-height:1.2}h3{margin:2rem 0 .6rem;font-size:1.2rem;line-height:1.3}.lede{color:var(--muted);margin:0 0 1.2rem}.lede a{color:var(--accent)}.hero{padding:3.4rem 0 .5rem}.hero h1{letter-spacing:-.04em;max-width:14em;margin:0 0 2rem;font-size:clamp(2.8rem,9vw,5.2rem);line-height:1.04}.grad{background:linear-gradient(100deg, var(--accent), var(--pink));color:#0000;-webkit-background-clip:text;background-clip:text}.term,.card{background:var(--mantle);border:1px solid var(--line);border-radius:14px;overflow:hidden}.bar{background:var(--crust);border-bottom:1px solid var(--line);align-items:center;gap:.4rem;padding:.6rem .9rem;display:flex}.bar .d{border-radius:50%;width:.7rem;height:.7rem;display:block}.d.r{background:var(--red)}.d.y{background:var(--yellow)}.d.g{background:var(--green)}.bar .file{font:.75rem var(--mono);color:var(--dim);text-overflow:ellipsis;white-space:nowrap;margin-left:.6rem;overflow:hidden}.term{max-width:38rem}.term-body{font:.92rem/1.7 var(--mono);align-items:flex-start;gap:1.1rem;padding:1.2rem 1.3rem 1.3rem;display:flex}.term-body p{margin:0}.term-body .out{color:var(--muted);margin-bottom:.5rem}.term-body .kao{color:var(--pink);white-space:nowrap}.avatar{object-fit:cover;width:4.5rem;height:4.5rem;box-shadow:0 0 0 3px var(--bg), 0 0 0 5px var(--accent);border-radius:50%;flex:none}.actions{flex-wrap:wrap;gap:.8rem;margin:1.8rem 0 0;display:flex}.btn{font:600 .9rem var(--mono);border-radius:10px;padding:.7rem 1.2rem;line-height:1;display:inline-block}.btn:hover{text-decoration:none}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--pink)}.btn.ghost{color:var(--fg);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.ghost:hover{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent)}.btn:focus-visible{outline:2px solid var(--green);outline-offset:3px}@media (width<=34rem){.term-body{flex-direction:column}}.section-title{font:700 1.3rem var(--mono);margin:3.6rem 0 1.4rem}.year{align-items:baseline;gap:.5rem;display:flex}.year sup{font:.6em var(--mono);color:var(--dim)}ul.cards{grid-template-columns:repeat(auto-fill,minmax(18.5rem,1fr));gap:1.4rem;margin:0;padding:0;list-style:none;display:grid}.card{height:100%;color:var(--fg);flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.card:hover{border-color:var(--accent);box-shadow:0 10px 30px color-mix(in srgb, var(--accent) 22%, transparent);text-decoration:none;transform:translateY(-4px)}.card:focus-visible{outline:2px solid var(--green);outline-offset:3px}.thumb{aspect-ratio:16/9;background:var(--crust);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.thumb img{object-fit:contain;border-radius:0;width:100%;height:100%;margin:0;padding:.9rem;position:absolute;inset:0}.thumb .ph{color:var(--accent);place-items:center;font-size:3.4rem;font-weight:900;display:grid;position:absolute;inset:0}.card .body{flex-direction:column;flex:1;padding:1.1rem 1.25rem 1.3rem;display:flex}.card .meta{font:.74rem var(--mono);color:var(--dim);margin-bottom:.55rem}.card h3{margin:0 0 .5rem;font-size:1.12rem;line-height:1.3}.card:hover h3{color:var(--accent)}.card p{color:var(--muted);margin:0 0 1rem;font-size:.92rem;line-height:1.6}.chips{font:.74rem var(--mono);color:var(--green);flex-wrap:wrap;gap:.3rem .7rem;margin-top:auto;display:flex}article h1{letter-spacing:-.03em;margin:2.8rem 0 1rem;font-size:clamp(2rem,5vw,2.9rem);line-height:1.1}article .meta{font:.82rem var(--mono);color:var(--dim);border-bottom:1px dashed var(--line);margin:0 0 2.2rem;padding-bottom:1.2rem}article .meta a{color:var(--green)}article h2{margin-top:2.8rem}article h2:before{content:"## ";color:var(--dim);font-family:var(--mono);font-weight:500}article h3:before{content:"### ";color:var(--dim);font-family:var(--mono);font-size:.9em;font-weight:500}article p{margin:1.1rem 0}article a,.about a{text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 50%, transparent);text-underline-offset:3px}article img{border:1px solid var(--line);border-radius:12px;max-width:100%;height:auto;margin:1.8rem 0;display:block}article pre,.about pre{background:var(--mantle);border:1px solid var(--line);border-radius:12px;padding:1.05rem 1.2rem;font-size:.84rem;line-height:1.65;overflow-x:auto}code{font:.85em var(--mono);background:var(--surface);color:var(--pink);border-radius:6px;padding:.14em .42em}pre code{color:inherit;background:0 0;padding:0}.astro-code,.astro-code span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}blockquote{border-left:3px solid var(--accent);background:var(--mantle);color:var(--muted);border-radius:0 10px 10px 0;margin:1.6rem 0;padding:.2rem 1.2rem}table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}th,td{border:1px solid var(--line);padding:.45rem .75rem}th{background:var(--mantle)}hr{border:0;border-top:1px dashed var(--line);margin:2.4rem 0}.tags{font:.82rem var(--mono);margin:2.6rem 0 0}.tags a{color:var(--green);margin:0 .8rem .4rem 0;display:inline-block;text-decoration:none!important}.tags a:before{content:"#"}.tags a:hover{color:var(--pink)}.share{background:var(--mantle);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.5rem .6rem;margin-top:2rem;padding:.9rem 1.1rem;display:flex}.share span{font:500 .82rem var(--mono);color:var(--green);margin-right:.5rem}.share span:before{content:"$ "}.share a,.share button{all:unset;cursor:pointer;font:500 .8rem var(--mono);color:var(--fg);background:var(--surface);border-radius:8px;padding:.4rem .8rem;text-decoration:none!important}.share a:hover,.share button:hover{background:var(--accent);color:var(--on-accent)}.share button:focus-visible,.share a:focus-visible{outline:2px solid var(--green);outline-offset:2px}ul.plain{flex-wrap:wrap;gap:.6rem;padding:0;list-style:none;display:flex}ul.plain li a{font:.9rem var(--mono);color:var(--green);background:var(--mantle);border:1px solid var(--line);border-radius:8px;padding:.35rem .8rem;display:inline-block}ul.plain li a:hover{border-color:var(--green);text-decoration:none}ul.plain .meta{color:var(--dim);font:.75rem var(--mono)}.about h1{margin-bottom:1.2rem}.about ul{padding-left:1.2rem}.about li{margin:.5rem 0}.about img{vertical-align:-.15em;border:0;border-radius:3px;height:1.1em;margin:0 .2em 0 0;display:inline}@media (width<=34rem){ul.cards{grid-template-columns:1fr}.hero{padding-top:2rem}}.archived-note{font:.8rem/1.5 var(--mono);color:var(--yellow);background:var(--mantle);border:1px dashed var(--yellow);border-radius:10px;margin:2.2rem 0 -1.6rem;padding:.6rem .9rem}.archive ul.cards{opacity:.78}.archive ul.cards:hover{opacity:1}.section-title sup{color:var(--dim);margin-left:.3rem;font-size:.55em}.project-group h2{margin-bottom:1rem}.project{background:var(--mantle);border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:1rem;margin:0 0 .9rem;padding:1rem 1.15rem;display:flex}.project .row{flex-wrap:wrap;align-items:center;gap:.45rem .55rem;display:flex}.project h3{margin:0 .3rem 0 0;font-size:1.1rem}.project h3:before{content:none!important}.project .desc{color:var(--muted);margin:.55rem 0 0;font-size:.95rem;line-height:1.6}.plat,.chip,.status{font:500 .74rem/1 var(--mono);white-space:nowrap;border-radius:7px;padding:.32rem .6rem}.plat{color:var(--pink);background:color-mix(in srgb, var(--pink) 14%, transparent)}.status{color:var(--yellow);background:color-mix(in srgb, var(--yellow) 14%, transparent)}.chip{all:unset;box-sizing:border-box;cursor:pointer;font:500 .74rem/1 var(--mono);color:var(--fg);background:var(--surface);border-radius:7px;align-items:center;gap:.35rem;padding:.32rem .6rem;display:inline-flex;text-decoration:none!important}.chip:hover{background:var(--accent);color:var(--on-accent)}.chip:hover .ps{color:inherit}.chip:focus-visible{outline:2px solid var(--green);outline-offset:2px}.chip.install{box-shadow:inset 0 0 0 1px var(--green)}.chip .hint{color:var(--dim);font-size:.68rem}.chip:hover .hint{color:inherit}.chip.pending{cursor:default;color:var(--yellow);box-shadow:inset 0 0 0 1px var(--yellow);background:0 0}.chip.pending:hover{color:var(--yellow);background:0 0}.stack{font:.74rem var(--mono);color:var(--dim);margin-left:.2rem}.contact{margin-top:2.6rem}.contact a{white-space:nowrap}.contact svg{vertical-align:-.15em}.project .logo{object-fit:contain;border:0;border-radius:22%;flex:none;width:56px;height:56px;margin:.1rem 0 0}.project .info{flex:1;min-width:0}.alum{color:var(--muted);margin-top:.4rem;font-size:.95rem}@media (width<=34rem){.project .logo{width:44px;height:44px}.project{gap:.75rem}}.about .emails{margin:.6rem 0 0;padding:0;list-style:none}.about .emails li{flex-direction:column;align-items:flex-start;gap:.35rem;margin:.9rem 0;display:flex}.emails .tag{font:500 .78rem/1 var(--mono);color:var(--green);background:color-mix(in srgb, var(--green) 14%, transparent);border-radius:7px;padding:.3rem .55rem;display:inline-block}footer .legal{flex-direction:column;gap:.25rem;display:flex}footer .legal a{color:var(--muted);text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--line)}footer .legal a:hover{color:var(--accent)}
