@font-face{font-family:Titan One;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/titan-one-latin-ext-400-normal.BW7cdQ38.woff2)format("woff2"),url(/_astro/titan-one-latin-ext-400-normal.CiNNQIOC.woff)format("woff");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:Titan One;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/titan-one-latin-400-normal.DwVbh4mi.woff2)format("woff2"),url(/_astro/titan-one-latin-400-normal.VZVzRR2h.woff)format("woff");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:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/lexend-vietnamese-wght-normal.RvljkFvg.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:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/lexend-latin-ext-wght-normal.B6JQhE1e.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:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/lexend-latin-wght-normal.ci0D1wrL.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{--kepo-ink:#1e1a3a;--kepo-night:#15122b;--kepo-orange:#ff6b2c;--kepo-cream:#fff8ee;--kepo-sky:#3aa8ff;--kepo-mint:#2fd08a;--kepo-sun:#ffc43d;--kepo-grape:#8b5cf6;--kepo-pink:#ff6fa3;--bg:#f2f0f9;--surface:#fff;--surface-2:#e8e5f4;--text:var(--kepo-ink);--text-2:#5b5677;--line:#dcd8ec;--brand:var(--kepo-orange);--brand-press:#e4541a;--on-brand:#fff;--focus:var(--kepo-sky);--shadow-tile:0 1px 0 #1e1a3a0f, 0 8px 20px -12px #1e1a3a59;--font-display:"Titan One", ui-rounded, system-ui, sans-serif;--font-body:"Lexend Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--header-h:68px;--sidebar-w:224px;--gutter:clamp(16px, 2.4vw, 28px);--tile-radius:18px;--ui-radius:12px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:var(--kepo-night);--surface:#1f1b3d;--surface-2:#29244d;--text:var(--kepo-cream);--text-2:#b4aed4;--line:#322c5c;--shadow-tile:0 10px 24px -14px #000c;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);margin:0;font-size:15px;font-weight:380;line-height:1.55}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}h1,h2,h3{font-family:var(--font-display);letter-spacing:.005em;margin:0;font-weight:400;line-height:1.1}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:calc(100dvh - var(--header-h));background:linear-gradient(var(--line), var(--line)) no-repeat calc(var(--sidebar-w) - 1px) 0 / 1px 100%;display:grid}.main{padding:20px var(--gutter) 0;min-width:0}@media (width<=960px){.shell{background:0 0;grid-template-columns:minmax(0,1fr)}}.btn{cursor:pointer;background:var(--brand);color:var(--on-brand);box-shadow:0 4px 0 var(--brand-press);border:0;border-radius:999px;align-items:center;gap:8px;padding:12px 22px;font-size:15px;font-weight:600;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:hover{box-shadow:0 5px 0 var(--brand-press);transform:translateY(-1px)}.btn:active{box-shadow:0 1px 0 var(--brand-press);transform:translateY(3px)}.btn svg{width:18px;height:18px}.icon-btn{cursor:pointer;background:var(--surface-2);width:40px;height:40px;color:var(--text);border:0;border-radius:12px;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--line)}.icon-btn svg{width:20px;height:20px}.tile{border-radius:var(--tile-radius);aspect-ratio:4/3;background:var(--surface-2);box-shadow:var(--shadow-tile);transition:transform .18s cubic-bezier(.3,.7,.4,1.4);display:block;position:relative;overflow:hidden}.tile>svg{width:100%;height:100%;position:absolute;inset:0}.tile:hover{transform:translateY(-3px)scale(1.02)}.tile-name{color:#fff;opacity:0;background:linear-gradient(#15122b00,#15122bd9);padding:28px 12px 10px;font-size:14px;font-weight:600;line-height:1.2;transition:opacity .15s,transform .15s;position:absolute;inset:auto 0 0;transform:translateY(6px)}.tile:hover .tile-name,.tile:focus-visible .tile-name{opacity:1;transform:none}@media (hover:none){.tile-name{opacity:1;transform:none}}.badge{color:var(--kepo-ink);background:#fff;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;line-height:1.4;position:absolute;top:10px;left:10px}.badge[data-kind=new]{background:var(--kepo-mint);color:var(--kepo-ink)}.badge[data-kind=hot]{background:var(--brand);color:#fff}.row{margin-top:32px}.row-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.row-head h2{font-size:clamp(20px,2vw,24px)}.row-head a{color:var(--text-2);font-size:14px;font-weight:500}.row-head a:hover{color:var(--text)}.row-track{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:clamp(170px,17vw,230px);grid-auto-flow:column;gap:14px;margin:-6px -4px -10px;padding:6px 4px 10px;display:grid;overflow-x:auto}.row-track::-webkit-scrollbar{display:none}.row-track>*{scroll-snap-align:start}.grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;display:grid}.prose{max-width:68ch;color:var(--text-2)}.prose h2{color:var(--text);margin:0 0 12px;font-size:24px}.prose h3{color:var(--text);margin:26px 0 8px;font-size:18px}.prose p{margin:0 0 12px}.prose a{color:var(--text);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.header[data-astro-cid-nen7h5rs]{z-index:30;height:var(--header-h);padding:0 var(--gutter);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);align-items:center;gap:16px;display:flex;position:sticky;top:0}.brand[data-astro-cid-nen7h5rs]{width:132px;color:var(--text);flex:none;display:block}.brand[data-astro-cid-nen7h5rs] .logo-svg{width:100%;height:auto}.menu-btn[data-astro-cid-nen7h5rs]{display:none}.search[data-astro-cid-nen7h5rs]{background:var(--surface);border:1px solid var(--line);max-width:460px;height:44px;color:var(--text-2);border-radius:999px;flex:1;align-items:center;gap:8px;margin-left:auto;margin-right:auto;padding:0 16px;display:flex;position:relative}.search[data-astro-cid-nen7h5rs]:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 25%, transparent)}.search[data-astro-cid-nen7h5rs] input[data-astro-cid-nen7h5rs]{min-width:0;font:inherit;color:var(--text);background:0 0;border:0;outline:0;flex:1}.search-results[data-astro-cid-nen7h5rs]{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;box-shadow:0 18px 40px -18px #1e1a3a73}.search-results[data-astro-cid-nen7h5rs] a{color:var(--text);border-radius:10px;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.search-results[data-astro-cid-nen7h5rs] a:hover,.search-results[data-astro-cid-nen7h5rs] [aria-selected=true] a{background:var(--surface-2)}.search-results[data-astro-cid-nen7h5rs] small{color:var(--text-2)}.search-results[data-astro-cid-nen7h5rs] .empty{color:var(--text-2);padding:10px 12px}@media (width<=960px){.menu-btn[data-astro-cid-nen7h5rs]{display:inline-grid}.brand[data-astro-cid-nen7h5rs]{width:108px}}@media (width<=560px){.header[data-astro-cid-nen7h5rs]{gap:10px}.search[data-astro-cid-nen7h5rs]{padding:0 12px}}.sidebar[data-astro-cid-wv7whodv]{top:var(--header-h);height:calc(100dvh - var(--header-h));padding:16px 12px 24px;position:sticky;overflow-y:auto}ul[data-astro-cid-wv7whodv]{margin:0;padding:0;list-style:none}a[data-astro-cid-wv7whodv]{color:var(--text-2);border-radius:12px;align-items:center;gap:12px;padding:9px 12px;font-weight:500;display:flex}a[data-astro-cid-wv7whodv]:hover{background:var(--surface-2);color:var(--text)}a[data-astro-cid-wv7whodv][aria-current=page]{background:var(--surface);color:var(--text);box-shadow:inset 3px 0 0 var(--brand)}a[data-astro-cid-wv7whodv] svg{flex:none;width:20px;height:20px}.side-title[data-astro-cid-wv7whodv]{font-family:var(--font-body);color:var(--text-2);padding:20px 12px 6px;font-size:13px;font-weight:600}.scrim[data-astro-cid-wv7whodv]{display:none}@media (width<=960px){.sidebar[data-astro-cid-wv7whodv]{z-index:50;width:min(290px,84vw);height:auto;padding-top:calc(16px + env(safe-area-inset-top,0px));background:var(--bg);border-right:1px solid var(--line);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}body[data-menu-open] .sidebar[data-astro-cid-wv7whodv]{transform:none;box-shadow:20px 0 50px -20px #0006}.scrim[data-astro-cid-wv7whodv]:not([hidden]){z-index:40;background:#15122b73;display:block;position:fixed;inset:0}}.footer[data-astro-cid-jo6i4kqk]{padding:32px 0 calc(32px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);color:var(--text-2);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px;margin-top:56px;font-size:14px;display:grid}h2[data-astro-cid-jo6i4kqk]{font-family:var(--font-body);color:var(--text);margin-bottom:8px;font-size:14px;font-weight:600}ul[data-astro-cid-jo6i4kqk]{gap:6px;margin:0;padding:0;list-style:none;display:grid}a[data-astro-cid-jo6i4kqk]:hover{color:var(--text)}.copy[data-astro-cid-jo6i4kqk]{grid-column:1/-1;margin:8px 0 0}
