@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/outfit-latin-ext-300-normal-BYS6Dpvq.woff2) format("woff2"),url(/assets/outfit-latin-ext-300-normal-CMIMshEd.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/outfit-latin-300-normal-CRYTwY6m.woff2) format("woff2"),url(/assets/outfit-latin-300-normal-AWLfuCom.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2) format("woff2"),url(/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-ext-500-normal-zeox_O30.woff2) format("woff2"),url(/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2) format("woff2"),url(/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-ext-700-normal-CI4iH74K.woff2) format("woff2"),url(/assets/outfit-latin-ext-700-normal-fjS8-Gm7.woff) format("woff");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:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-700-normal-Cu9v6i1X.woff2) format("woff2"),url(/assets/outfit-latin-700-normal-D4itBLBr.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/work-sans-vietnamese-300-normal-DQHlWx2s.woff2) format("woff2"),url(/assets/work-sans-vietnamese-300-normal-NLNV1oy7.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/work-sans-latin-ext-300-normal-CVclhcFk.woff2) format("woff2"),url(/assets/work-sans-latin-ext-300-normal-BQO3H0qq.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/work-sans-latin-300-normal-DD7pq2q9.woff2) format("woff2"),url(/assets/work-sans-latin-300-normal-BaDF4XPg.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-vietnamese-400-normal-BxGuknnG.woff2) format("woff2"),url(/assets/work-sans-vietnamese-400-normal-DFZk_KN_.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-ext-400-normal-zfQnhXzv.woff2) format("woff2"),url(/assets/work-sans-latin-ext-400-normal-j7TZlk-s.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-400-normal-jUejSri3.woff2) format("woff2"),url(/assets/work-sans-latin-400-normal-DE1_0GuN.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-vietnamese-500-normal-Czn2Xkog.woff2) format("woff2"),url(/assets/work-sans-vietnamese-500-normal-90nhZfxs.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-ext-500-normal-CAKEIVkc.woff2) format("woff2"),url(/assets/work-sans-latin-ext-500-normal-CW9ss9Cz.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-500-normal-BKGnScDy.woff2) format("woff2"),url(/assets/work-sans-latin-500-normal-BmdXWF6_.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-vietnamese-600-normal-DizFELYt.woff2) format("woff2"),url(/assets/work-sans-vietnamese-600-normal-ue5fzGW6.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-ext-600-normal-DNiHHggD.woff2) format("woff2"),url(/assets/work-sans-latin-ext-600-normal-B1NFRnx8.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-600-normal-DB-2V89X.woff2) format("woff2"),url(/assets/work-sans-latin-600-normal-Cg-NlmS7.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-vietnamese-700-normal-CqjC4WOy.woff2) format("woff2"),url(/assets/work-sans-vietnamese-700-normal-BYAoORCv.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-ext-700-normal-Bc0iTajH.woff2) format("woff2"),url(/assets/work-sans-latin-ext-700-normal-BP8nCPzd.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-700-normal-CEeo_t6l.woff2) format("woff2"),url(/assets/work-sans-latin-700-normal-mDs79oer.woff) format("woff");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}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg-0);color:var(--text-primary);overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}ul,ol{list-style:none}::selection{background:var(--accent-glow);color:#fff}:root{--bg-0: #eae8e4;--bg-1: #dfdcd8;--surface: #d5d2cd;--surface-elevated: #cbc7c1;--glass-fill: rgba(255, 255, 255, .42);--glass-border: rgba(0, 0, 0, .06);--text-primary: #2c2a27;--text-secondary: #5a5650;--text-muted: #8a857e;--accent: #9a8268;--accent-strong: #7d6a52;--accent-glow: rgba(154, 130, 104, .25);--font-heading: "Outfit", sans-serif;--font-body: "Work Sans", sans-serif;--gap-lg: 48px;--gap-md: 32px;--gap-sm: 20px;--radius: 20px;--dot-color-rgb: 180, 175, 168}[data-theme=dark]{--bg-0: #1a1917;--bg-1: #222120;--surface: #2a2928;--surface-elevated: #333231;--glass-fill: rgba(40, 38, 36, .65);--glass-border: rgba(255, 255, 255, .08);--text-primary: #e8e6e2;--text-secondary: #b0aba4;--text-muted: #7a756e;--accent: #c4a882;--accent-strong: #d4bc9e;--accent-glow: rgba(196, 168, 130, .25);--dot-color-rgb: 140, 135, 128}html.theme-transitioning *{transition:background-color .3s,color .3s,border-color .3s!important}*,*:before,*:after{-webkit-user-select:none;user-select:none}#bg-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}#app{position:relative;z-index:1;max-width:1400px;margin:0 auto;padding:var(--gap-lg)}#hero{min-height:50vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;will-change:transform,opacity;padding:40px 0}#hero h1{font-family:var(--font-heading);font-size:clamp(3rem,7vw,5.5rem);font-weight:700;color:var(--text-primary);margin-bottom:20px;letter-spacing:-.02em}#hero h1 .char{display:inline-block;cursor:default;will-change:transform,color;transform-origin:center bottom}#hero .tagline{color:var(--text-secondary);font-family:var(--font-body);font-size:18px;margin-bottom:32px}#hero .category-chips{display:inline-flex;gap:12px;flex-wrap:wrap;justify-content:center}#hero .chip{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;background:var(--glass-fill);border:1px solid var(--glass-border);border-radius:24px;color:var(--text-muted);cursor:pointer;font-size:15px;transition:all .2s ease}#hero .chip:hover{color:var(--accent);border-color:var(--accent)}#hero .chip.active{color:var(--accent);border-color:var(--accent);background:#9a826814}#cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap-lg);margin-top:80px}.card{position:relative;overflow:hidden;background:var(--glass-fill);backdrop-filter:blur(16px) saturate(120%);border:1px solid var(--glass-border);border-radius:var(--radius);padding:36px 40px;display:flex;align-items:center;gap:28px;text-decoration:none;color:inherit;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s cubic-bezier(.2,.8,.2,1),border-color .3s ease;min-height:160px}.card:hover{transform:translateY(-6px);box-shadow:0 12px 40px #9a82681f;border-color:#9a82682e}.card.hidden{display:none}.card.skeleton .card-icon,.card.skeleton .card-name,.card.skeleton .card-desc{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-elevated) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;color:transparent}.card.skeleton .card-icon{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-elevated) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.card-icon{width:64px;height:64px;border-radius:16px;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent);transition:background .3s ease,color .3s ease,transform .4s cubic-bezier(.2,.8,.2,1)}.card-icon svg{width:30px;height:30px}.card:hover .card-icon{background:var(--accent);color:#fff;transform:scale(1.08)}.card-body{flex:1;min-width:0}.card-name{font-family:var(--font-heading);font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:6px;letter-spacing:-.01em;transition:color .3s ease}.card:hover .card-name{color:var(--accent-strong)}.card-desc{font-family:var(--font-body);font-size:15px;color:var(--text-muted);line-height:1.5}.card-arrow{color:var(--text-muted);display:flex;align-items:center;flex-shrink:0;transition:transform .3s ease,color .3s ease,opacity .3s ease;opacity:0}.card:hover .card-arrow{transform:translate(4px);color:var(--accent);opacity:1}.card-shine{position:absolute;bottom:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:scaleX(0);transition:transform .5s cubic-bezier(.2,.8,.2,1)}.card:hover .card-shine{transform:scaleX(1)}#cursor-dot{position:fixed;left:0;top:0;width:6px;height:6px;background:var(--text-primary);border-radius:50%;pointer-events:none;z-index:9999;will-change:left,top;transition:transform .1s ease;transform:translate(-50%,-50%)}#cursor-ring{position:fixed;left:0;top:0;width:28px;height:28px;border:1.5px solid var(--text-muted);border-radius:50%;pointer-events:none;z-index:9998;mix-blend-mode:normal;will-change:left,top;transform:translate(-50%,-50%)}#context-menu{position:fixed;background:var(--glass-fill);backdrop-filter:blur(16px) saturate(120%);border:1px solid var(--glass-border);border-radius:12px;padding:8px;z-index:10000;min-width:180px}#context-menu.hidden{display:none}#footer{text-align:center;padding:64px 0;color:var(--text-muted);font-size:15px}a:focus-visible,.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:1279px){#cards{grid-template-columns:repeat(2,1fr);gap:var(--gap-md)}}@media(max-width:767px){#cards{grid-template-columns:1fr;gap:var(--gap-sm);margin-top:48px}#app{padding:var(--gap-md)}#hero{min-height:40vh;padding:24px 0}#hero h1{font-size:clamp(2rem,6vw,3.5rem)}#hero .tagline{font-size:15px;margin-bottom:24px}#hero .chip{padding:8px 16px;font-size:13px}.card{padding:24px;gap:18px;min-height:auto}.card-icon{width:48px;height:48px}.card-icon svg{width:22px;height:22px}.card-name{font-size:16px}.card-desc{font-size:13px}.card-arrow{display:none}}@media(max-width:374px){#app{padding:var(--gap-sm)}.card{padding:18px;gap:14px}.card-icon{width:40px;height:40px;border-radius:12px}.card-icon svg{width:18px;height:18px}}@media(hover:none){#cursor-dot,#cursor-ring{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body.no-webgl{background:radial-gradient(ellipse at center,#dfdcd8,#eae8e4)}
