:root{--color-deep: #021a52;--color-ink: #04235e;--color-ink-muted: #24457f;--color-royal: #0349bc;--color-label: #0344ae;--color-link: #0455d2;--color-link-hover: #0036b2;--color-focus: #0c8af7;--color-accent: #2eeaff;--color-accent-hover: #7afff1;--color-page: #eefafc;--color-surface: #ffffff;--color-tint: #d5f6fa;--color-on-dark: #ffffff;--color-on-dark-soft: #ddf8fb;--color-glass: rgb(255 255 255 / 12%);--color-glass-hover: rgb(46 234 255 / 26%);--color-divider-on-dark: rgb(255 255 255 / 20%);--color-status-in-development: #bdf3ff;--color-status-released: #7afff1;--color-status-archived: #dce5f0;--font-sans: "Be Vietnam Pro", "Noto Sans KR", system-ui, sans-serif;--line-height-body: 1.6}:lang(vi){--line-height-body: 1.65}*,*::before,*::after{box-sizing:border-box}body{margin:0;overflow-x:hidden;font-family:var(--font-sans);line-height:var(--line-height-body);color:var(--color-ink);background:var(--color-page);-webkit-text-size-adjust:100%}img,svg{display:block;max-width:100%}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}button{font:inherit}[hidden]{display:none !important}.heading-1{margin:0;font-size:clamp(42px,5.6vw,76px);font-weight:800;line-height:1.05;letter-spacing:-0.03em;text-wrap:balance}.heading-1:lang(vi){line-height:1.12}.heading-1--display{font-size:clamp(44px,6.4vw,88px)}.heading-1--display:lang(vi){font-size:clamp(40px,5.4vw,76px)}.heading-1--section{max-width:900px;font-size:clamp(36px,4.6vw,64px)}.heading-2{margin:0;font-size:clamp(30px,3.6vw,48px);font-weight:800;line-height:1.1;letter-spacing:-0.025em}.heading-2:lang(vi){line-height:1.18}.heading-3{margin:0;font-size:22px;font-weight:800;line-height:1.3;letter-spacing:-0.015em}.heading-3--lg{font-size:28px}.heading-3--sm{font-size:19px}.lead{max-width:36em;margin:0;font-size:clamp(18px,1.6vw,21px);text-wrap:pretty}.text-muted{margin:0;color:var(--color-ink-muted);text-wrap:pretty}.eyebrow{max-width:44ch;margin:0;font-size:15px;font-weight:600;color:var(--color-accent)}.status-text{margin:0;font-size:14px;font-weight:700;color:var(--color-label)}.container{max-width:1280px;margin-inline:auto;padding-inline:clamp(16px,4vw,48px)}.section{display:flex;flex-direction:column;gap:32px;padding-block:clamp(48px,6vw,88px)}.section--loose{gap:56px}.section--tight{gap:24px}.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 48px}.stack{display:flex;flex-direction:column;gap:20px}.stack--sm{gap:10px}.page-hero{position:relative;overflow:hidden;color:var(--color-on-dark);background:var(--color-deep)}.page-hero .lead{color:var(--color-on-dark-soft)}.page-hero__body{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-block:clamp(32px,4vw,56px) clamp(40px,5vw,64px)}.page-hero__body--compact-top{padding-top:clamp(16px,2vw,24px)}.backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.facet-strip{width:100%;height:48px;background:var(--color-deep)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(min(340px, 100%), 1fr));gap:16px}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(300px, 100%), 1fr));gap:16px}.tile-grid--tight{gap:12px}.pillar-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(280px, 100%), 1fr));gap:32px 48px;padding-top:32px}.split{display:flex;flex-wrap:wrap;align-items:flex-start;gap:40px 64px}.split__main{display:flex;flex:999 1 560px;flex-direction:column;gap:36px;min-width:0;font-size:17px}.split__aside{display:flex;flex:1 1 300px;flex-direction:column;gap:12px;min-width:0}.button{clip-path:polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);display:flex;align-items:center;justify-content:center;min-height:56px;padding:0 28px;font-size:17px;font-weight:700;text-decoration:none}.button--primary{transition:background-color .15s ease,transform .15s ease}.button--primary:hover{transform:translateY(-2px)}@media(prefers-reduced-motion: reduce){.button--primary{transition:none}.button--primary:hover{transform:none}}.button--primary:focus-visible{outline:3px solid var(--color-deep);outline-offset:-7px}.button--primary{color:var(--color-deep);background-color:var(--color-accent)}.button--primary:hover{background-color:var(--color-accent-hover)}.button--ghost{transition:background-color .15s ease,transform .15s ease}.button--ghost:hover{transform:translateY(-2px)}@media(prefers-reduced-motion: reduce){.button--ghost{transition:none}.button--ghost:hover{transform:none}}.button--ghost:focus-visible{outline:3px solid var(--color-accent);outline-offset:-7px}.button--ghost{color:var(--color-on-dark);background-color:var(--color-glass)}.button--ghost:hover{background-color:var(--color-glass-hover)}.button--xl{min-height:76px;font-size:19px;font-weight:800}.button-row{display:flex;flex-wrap:wrap;gap:12px;padding-top:4px}.pending-action{clip-path:polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:0 28px;font-size:17px;font-weight:700;color:var(--color-ink);background:var(--color-tint)}.pending-action small{font-size:12px;font-weight:600}.pending-action--xl{min-height:76px;font-size:19px;font-weight:800}.arrow-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:700;color:var(--color-link)}.arrow-link:hover{color:var(--color-link-hover)}.text-link{font-weight:700;color:var(--color-link)}.text-link:hover{color:var(--color-link-hover)}.back-link{display:flex;align-items:center;gap:8px;min-height:44px;font-size:15px;font-weight:600;text-decoration:none}.back-link:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}.skip-link{position:absolute;top:-80px;left:16px;z-index:10;padding:12px 18px;font-weight:700;color:var(--color-deep);background:var(--color-accent)}.skip-link:focus{top:8px}.site-header{position:relative}.site-header__bar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-block:16px}.brand{display:flex;align-items:center;gap:10px;min-height:44px;font-size:24px;font-weight:800;letter-spacing:-0.02em;text-decoration:none}.brand__mark{width:44px;height:44px;object-fit:contain}.menu-toggle{clip-path:polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);display:none;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;font-size:15px;font-weight:700;color:var(--color-on-dark);background:var(--color-glass);cursor:pointer}.site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:15px;font-weight:500}.site-nav__link{display:flex;align-items:center;min-height:44px;text-decoration:none}.site-nav__link:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}.site-nav__link[aria-current=page]{font-weight:700;color:var(--color-accent)}.lang-switch{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700}.lang-switch__item{clip-path:polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);display:flex;align-items:center;justify-content:center;min-width:48px;min-height:44px;text-decoration:none;color:var(--color-on-dark);background-color:var(--color-glass)}.lang-switch__item:focus-visible{outline:3px solid var(--color-accent);outline-offset:-7px}.lang-switch__item:hover{background-color:var(--color-glass-hover)}.lang-switch__item[aria-current=true]{color:var(--color-deep);background:var(--color-accent)}@media(max-width: 720px){.site-nav{flex-direction:column;align-items:stretch;gap:0;width:100%}:root.js .site-nav{display:none}:root.js .site-nav.is-open{display:flex}:root.js .menu-toggle{display:flex}.lang-switch{padding-top:8px}}.site-footer{font-size:14px;color:var(--color-on-dark);background:var(--color-deep)}.site-footer__inner{display:flex;flex-direction:column;gap:28px;padding-block:40px 24px}.site-footer__columns{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px 64px}.site-footer__brand{display:flex;flex:1 1 300px;flex-direction:column;gap:12px;max-width:420px}.site-footer__brand p{margin:0}.site-footer__heading{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--color-accent)}.site-footer__list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.site-footer__list a,.site-footer__list span{display:flex;align-items:center;min-height:44px}.site-footer__list a{text-decoration:none}.site-footer__list a:hover{color:var(--color-accent);text-decoration:underline}.site-footer__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding-top:16px;border-top:1px solid var(--color-divider-on-dark)}.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.chip{clip-path:polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);display:inline-block;padding:5px 14px;font-size:13px;font-weight:700;color:var(--color-ink);background:var(--color-tint)}.chip--in-development{background:var(--color-status-in-development)}.chip--released{background:var(--color-status-released)}.chip--archived{background:var(--color-status-archived)}.project-card{clip-path:polygon(28px 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%, 0 28px);display:flex;flex-direction:column;height:100%;background:var(--color-surface)}.project-card__thumb{flex:none;width:100%;height:132px;object-fit:cover}.project-card__body{display:flex;flex:1 1 auto;flex-direction:column;gap:12px;min-width:0;padding:28px 32px 32px}.project-card__title{margin:0;font-size:26px;font-weight:800;line-height:1.2;letter-spacing:-0.02em}.project-card__cta{align-self:flex-start;margin-top:auto}.project-card--wide{flex-direction:row-reverse}.project-card--wide .project-card__thumb{width:42%;height:auto;min-height:260px}.project-card--wide .project-card__body{flex:1 1 58%;padding:clamp(28px,3vw,44px)}.project-card--wide .project-card__title{font-size:clamp(28px,3vw,40px)}@media(max-width: 720px){.project-card--wide{flex-direction:column}.project-card--wide .project-card__thumb{width:100%;height:132px;min-height:0}}.filter-bar{display:flex;flex-direction:column;gap:12px}.filter-bar__group{display:flex;flex-wrap:wrap;gap:8px}.filter-button{clip-path:polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);min-height:44px;padding:0 20px;border:0;font-size:15px;font-weight:700;color:var(--color-ink);background:var(--color-tint);cursor:pointer}.filter-button:focus-visible{outline-offset:-5px}.filter-button[aria-pressed=true]{color:var(--color-on-dark);background:var(--color-ink)}.tile{clip-path:polygon(28px 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%, 0 28px);display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:28px;background:var(--color-surface)}.tile--roomy{gap:14px;padding:32px}.tile--md{clip-path:polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px)}.tile--start{align-items:flex-start}.fact-list{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;margin:0;font-size:15px}.fact-list dt{font-size:14px;color:var(--color-ink-muted)}.fact-list dd{margin:0;font-weight:700}.icon-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;font-size:17px;font-weight:500;list-style:none}.icon-list li{display:flex;align-items:flex-start;gap:12px}.icon-list svg{flex:none;margin-top:4px}.icon-list--yes svg{color:var(--color-link)}.icon-list--no svg{color:var(--color-ink-muted)}.screenshot{clip-path:polygon(28px 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%, 0 28px);display:flex;align-items:center;justify-content:center;min-height:320px;margin:0;padding:24px;overflow:hidden;font-weight:700;text-align:center;background:var(--color-tint)}.screenshot img{width:100%;height:auto}.screenshot:has(img){padding:0}@media(max-width: 720px){.screenshot{min-height:200px}}.prose-block{display:flex;flex-direction:column;gap:10px}.prose-block .text-muted{max-width:38em}.hero{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:32px 56px;padding-block:clamp(32px,4vw,56px) clamp(56px,6vw,88px)}.hero__copy{display:flex;flex:999 1 560px;flex-direction:column;align-items:flex-start;gap:26px;min-width:0}.hero__art{display:flex;flex:1 1 340px;justify-content:center;min-width:0}.hero__gem{width:min(100%,var(--gem-size, 256px));height:auto}@media(max-width: 720px){.hero__gem{width:176px}}.pillar{display:flex;flex-direction:column;gap:10px}.cta-band{position:relative;overflow:hidden;color:var(--color-on-dark);background:var(--color-royal)}.cta-band .lead{color:var(--color-on-dark-soft)}.cta-band__body{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding-block:clamp(56px,6vw,80px)}