@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--radius: .625rem;--app-shell: oklch(.964435 .001327 286.375);--page-canvas: oklch(.988087 0 0);--surface: oklch(1 0 0);--surface-raised: oklch(1 0 0);--surface-hover: oklch(.967 .001 286.375);--surface-border: oklch(.92 .004 286.32);--foreground: oklch(.141 .005 285.823);--muted-foreground: oklch(.552 .016 285.938);--primary: oklch(.21 .006 285.885);--primary-foreground: oklch(.985 0 0);--border: oklch(.945 .003 286.32);--brand: oklch(.55 .16 255);--brand-foreground: oklch(.985 0 0);--brand-wash: oklch(.55 .16 255 / 8%);--surface-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 1px 1px rgb(15 23 42 / .03);--menu-shadow: 0 8px 24px rgb(15 23 42 / .08), 0 2px 6px rgb(15 23 42 / .05);--font-sans: "Inter Variable", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif;--font-mono: "Geist Mono Variable", ui-monospace, "SF Mono", monospace;--w: min(1024px, calc(100vw - clamp(1.5rem, 5vw, 4rem)) )}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--app-shell: oklch(.155 .005 285.823);--page-canvas: oklch(.18 .005 285.823);--surface: oklch(.21 .006 285.885);--surface-raised: oklch(.235 .007 285.885);--surface-hover: oklch(.274 .006 286.033);--surface-border: oklch(1 0 0 / 10%);--foreground: oklch(.985 0 0);--muted-foreground: oklch(.705 .015 286.067);--primary: oklch(.92 .004 286.32);--primary-foreground: oklch(.21 .006 285.885);--border: oklch(1 0 0 / 6%);--brand: oklch(.65 .16 255);--brand-wash: oklch(.65 .16 255 / 12%);--surface-shadow: 0 1px 2px rgb(0 0 0 / .2), 0 1px 1px rgb(0 0 0 / .16);--menu-shadow: 0 10px 28px rgb(0 0 0 / .3), 0 2px 8px rgb(0 0 0 / .18)}}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--app-shell);color:var(--foreground);font-size:.9375rem;line-height:1.75;-webkit-font-smoothing:antialiased;text-autospace:ideograph-alpha ideograph-numeric;padding:.5rem}.island{background:var(--page-canvas);border-radius:calc(var(--radius) * 1.4);box-shadow:var(--surface-shadow),0 0 0 1px var(--surface-border);overflow:clip;min-height:calc(100vh - 1rem)}a{color:inherit}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.rv{opacity:1}@media (prefers-reduced-motion: no-preference){.rv{opacity:0;transform:translateY(14px);transition:opacity .5s ease-out,transform .5s cubic-bezier(.22,1,.36,1)}.rv.is-in{opacity:1;transform:none}}.nav{border-bottom:1px solid var(--border);background:var(--page-canvas);position:sticky;top:.5rem;z-index:40;border-radius:calc(var(--radius) * 1.4) calc(var(--radius) * 1.4) 0 0}.nav__in{width:var(--w);margin-inline:auto;display:flex;align-items:center;gap:1.25rem;height:3.5rem}.nav__mark{display:flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:600;font-size:.95rem}.nav__mark img{width:22px;height:24px}.nav__links{margin-left:auto;display:flex;align-items:center;gap:1.1rem}.nav__links a{text-decoration:none;font-size:.85rem;color:var(--muted-foreground)}.nav__links a:hover{color:var(--foreground)}.nav__prod{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--surface-border);border-radius:calc(var(--radius) * 2.6);padding:.22rem .8rem;font-size:.82rem;font-weight:500;color:var(--foreground)!important;background:var(--surface)}.nav__prod:hover{background:var(--surface-hover)}@media (max-width: 680px){.nav__links a:not(.nav__prod){display:none}}.hero{position:relative;background-image:radial-gradient(color-mix(in oklch,var(--foreground) 9%,transparent) 1px,transparent 1px);background-size:22px 22px}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 30%,var(--page-canvas));pointer-events:none}.hero__in{position:relative;z-index:1;width:var(--w);margin-inline:auto;padding-block:clamp(4rem,9vw,6.5rem) clamp(3rem,6vw,4.5rem)}.hero__kicker{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;letter-spacing:.12em;font-weight:500;color:var(--brand);border:1px solid color-mix(in oklch,var(--brand) 30%,transparent);background:var(--brand-wash);border-radius:calc(var(--radius) * 2.6);padding:.25rem .9rem}.hero h1{margin-top:1.4rem;font-size:clamp(1.9rem,5vw,3rem);font-weight:600;line-height:1.3;letter-spacing:-.01em;max-width:22ch}.hero h1 em{font-style:normal;color:var(--brand)}.hero__lead{margin-top:1.2rem;max-width:58ch;color:var(--muted-foreground);font-size:clamp(.95rem,1.3vw,1.05rem)}.hero__cta{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.8rem}.btn{display:inline-flex;align-items:center;gap:.45rem;border-radius:var(--radius);text-decoration:none;font-size:.9rem;font-weight:500;padding:.55rem 1.25rem;border:1px solid transparent;position:relative;overflow:hidden}.btn:active{transform:translateY(1px)}.btn--brand{background:var(--brand);color:var(--brand-foreground)}.btn--ghost{border-color:var(--surface-border);background:var(--surface);color:var(--foreground)}.btn--ghost:hover{background:var(--surface-hover)}@media (prefers-reduced-motion: no-preference){.btn--brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 30%,oklch(1 0 0 / 22%) 50%,transparent 70%);transform:translate(-110%)}.btn--brand:hover:after{transform:translate(110%);transition:transform .6s ease-out}}.sect{width:var(--w);margin-inline:auto;padding-block:clamp(3.2rem,7vw,5rem)}.sect__tag{font-size:.78rem;letter-spacing:.14em;font-weight:500;color:var(--brand)}.sect h2{margin-top:.6rem;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:600;line-height:1.4;max-width:26ch}.sect__lead{margin-top:.9rem;max-width:58ch;color:var(--muted-foreground)}.prod{margin-top:2.4rem;background:var(--surface);border:1px solid var(--surface-border);border-radius:calc(var(--radius) * 1.4);box-shadow:var(--surface-shadow);padding:clamp(1.6rem,4vw,2.6rem);position:relative;overflow:hidden}@media (prefers-reduced-motion: no-preference){.prod{transition:box-shadow .25s ease-out,border-color .25s ease-out}.prod:hover{border-color:color-mix(in oklch,var(--brand) 35%,var(--surface-border));box-shadow:var(--menu-shadow)}}.prod:before{content:"";position:absolute;top:-40%;right:-15%;width:55%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--brand-wash),transparent);pointer-events:none}.prod__head{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.prod__head img{width:40px;height:44px}.prod__name{font-size:1.35rem;font-weight:600}.prod__type{font-size:.85rem;color:var(--muted-foreground)}.prod__oss{margin-left:auto;font-size:.75rem;font-weight:500;border:1px solid color-mix(in oklch,var(--brand) 30%,transparent);color:var(--brand);background:var(--brand-wash);border-radius:calc(var(--radius) * 2.6);padding:.18rem .75rem}.prod__desc{margin-top:1.1rem;max-width:60ch;color:var(--muted-foreground)}.prod__points{margin:1.4rem 0 0;padding:0;list-style:none;display:grid;gap:.7rem 2rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.prod__points li{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem}.prod__points svg{flex-shrink:0;width:16px;height:16px;margin-top:.32em;color:var(--brand)}.prod__cta{margin-top:1.8rem;display:flex;flex-wrap:wrap;gap:.8rem}.cols{margin-top:2.2rem;display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.col{background:var(--surface);border:1px solid var(--surface-border);border-radius:calc(var(--radius) * 1.4);box-shadow:var(--surface-shadow);padding:1.5rem 1.6rem}.col h3{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.col h3 svg{width:16px;height:16px;color:var(--brand)}.col p{margin-top:.55rem;font-size:.9rem;color:var(--muted-foreground)}.col a{color:var(--brand);font-weight:500}.footer{border-top:1px solid var(--border);background:var(--surface)}.footer__in{width:var(--w);margin-inline:auto;padding-block:2.4rem;display:flex;flex-wrap:wrap;gap:1.4rem 3rem;font-size:.84rem;color:var(--muted-foreground)}.footer__co b{color:var(--foreground);font-weight:600}.footer__grp{display:grid;gap:.28rem}.footer__grp span{font-weight:500;color:var(--foreground)}.footer__grp a{text-decoration:none}.footer__grp a:hover{color:var(--brand)}.footer__legal{width:100%;border-top:1px solid var(--border);padding-top:1.1rem;font-size:.78rem}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
