:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#172033;font-synthesis:none;text-rendering:optimizelegibility;--page:#f6f8fc;--surface:#ffffffeb;--surface-solid:#fff;--text:#172033;--muted:#697586;--quiet:#98a2b3;--border:#cbd5e1bd;--border-strong:#cbd5e1;--blue:#2563eb;--blue-soft:#eff6ff;--applications:#df624f;--applications-rgb:223, 98, 79;--games:#7655ca;--games-rgb:118, 85, 202;--tools:#24839f;--tools-rgb:36, 131, 159;--shadow:0 16px 44px #0f172a14;--shadow-hover:0 28px 64px #1e40af26;--serif:"Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", STSong, SimSun, Georgia, serif;--sans:"Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;background:#f6f8fc;font-family:Microsoft YaHei UI,PingFang SC,Noto Sans CJK SC,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--page);scroll-behavior:smooth;min-width:320px}body{background:var(--page);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,a{color:inherit;-webkit-tap-highlight-color:transparent}.site-shell{--pointer-x:50;--pointer-y:50;--pointer-shift-x:0px;--pointer-shift-y:0px;--pointer-shift-x-soft:0px;--pointer-shift-y-soft:0px;--pointer-shift-x-inverse:0px;--pointer-shift-y-inverse:0px;isolation:isolate;width:min(100%,1536px);min-height:100vh;margin:0 auto;padding:16px 30px 0;position:relative}.ambient{z-index:-3;pointer-events:none;background:linear-gradient(#fbfcff 0%,#f4f7fc 100%);position:fixed;inset:0;overflow:hidden}.ambient:after{z-index:4;content:"";opacity:.22;background-image:radial-gradient(circle at 18% 24%,#2563eb17 0 .7px,#0000 .9px),radial-gradient(circle at 72% 68%,#7655ca14 0 .6px,#0000 .9px);background-position:0 0,8px 11px;background-size:23px 23px,29px 29px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0003 72%,#0000);mask-image:linear-gradient(#000,#0003 72%,#0000)}.ambient__field{z-index:0;filter:blur(100px);opacity:.2;will-change:transform, opacity;border-radius:50%;width:56vw;min-width:560px;height:56vw;min-height:560px;animation:10s ease-in-out infinite alternate field-breathe;position:absolute}.ambient__field--one{transform:translate3d(var(--pointer-shift-x), var(--pointer-shift-y), 0);background:#6797ff94;top:-34vw;right:-15vw}.ambient__field--two{transform:translate3d(var(--pointer-shift-x-inverse), var(--pointer-shift-y-inverse), 0);background:#8b6ae26b;animation-delay:-4s;bottom:-43vw;right:7vw}.ambient__veil{z-index:0;opacity:.34;filter:blur(54px);width:88vw;height:76vh;transform:translate3d(var(--pointer-shift-x-soft), var(--pointer-shift-y-soft), 0) scale(1.08);will-change:transform, opacity;background:conic-gradient(from 212deg at 58% 54%,#0000 0deg,#4580e22e 38deg,#4ebecf1a 72deg,#0000 128deg);border-radius:50%;animation:24s ease-in-out infinite alternate veil-turn;position:absolute;top:-36vh;left:7vw}.ambient__halo{z-index:1;opacity:.52;width:76vw;height:36vw;min-height:360px;transform:perspective(920px) rotateX(67deg) rotateZ(-7deg) translate3d(var(--pointer-shift-x-inverse), var(--pointer-shift-y), 0);transform-origin:50%;will-change:transform, opacity;background:radial-gradient(#fff0 54%,#4e86e00e 66%,#7c5ccd07 74%,#0000 78%);border:1px solid #4a78d41f;border-radius:50%;animation:15s ease-in-out infinite alternate halo-float;position:absolute;bottom:-17vh;right:-11vw;box-shadow:0 -1px #fffc,inset 0 12px 46px #5581d509}.ambient__particles{z-index:2;opacity:.88;width:100%;height:100%;display:block;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 58% 46%,#000 0%,#000000e6 52%,#0000 100%);mask-image:radial-gradient(at 58% 46%,#000 0%,#000000e6 52%,#0000 100%)}.ambient__grid{z-index:1;opacity:.24;width:92vw;height:78vh;transform:perspective(700px) rotateX(62deg) translate3d(var(--pointer-shift-x-inverse), var(--pointer-shift-y), 0);transform-origin:bottom;will-change:transform, background-position;background-image:radial-gradient(circle,#2563eb38 0 1px,#0000 1.2px);background-size:22px 22px;animation:18s linear infinite grid-drift;position:absolute;bottom:-36vh;right:-12vw;-webkit-mask-image:linear-gradient(#0000 5%,#000 58%,#0000 100%);mask-image:linear-gradient(#0000 5%,#000 58%,#0000 100%)}.site-header,main,.site-footer{z-index:2;position:relative}.site-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffc7;border:1px solid #e2e8f0e0;border-radius:17px;justify-content:space-between;align-items:center;min-height:66px;padding:0 28px;display:flex;box-shadow:0 12px 36px #0f172a0d,inset 0 1px #ffffffe6}.wordmark{color:#172033;font-family:var(--sans);letter-spacing:.025em;font-size:20px;font-weight:800;text-decoration:none}.site-nav{align-self:stretch;gap:clamp(24px,3.2vw,50px);display:flex}.site-nav a{color:#526071;justify-content:center;align-items:center;min-width:40px;font-size:14px;font-weight:520;text-decoration:none;transition:color .18s;display:flex;position:relative}.site-nav a:after{content:"";background:var(--blue);transform-origin:50%;border-radius:999px 999px 0 0;height:2px;transition:transform .18s;position:absolute;bottom:-1px;left:4px;right:4px;transform:scaleX(0)}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current=page]{color:var(--blue);outline:none}.site-nav a[aria-current=page]:after{transform:scaleX(1)}.hero{align-items:center;min-height:238px;padding:44px 62px 12px;display:flex}.hero__copy{max-width:760px;animation:.65s cubic-bezier(.22,1,.36,1) both content-rise}.hero h1{color:var(--text);letter-spacing:-.045em;margin:0;font-size:clamp(38px,4.4vw,60px);font-weight:740;line-height:1.2}.hero p{color:var(--muted);margin:18px 0 0;font-size:16px;line-height:1.8}.portal-section{padding:30px 62px 8px;scroll-margin-top:20px}.section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:16px;display:flex}.section-heading h2{color:#253046;letter-spacing:-.018em;margin:0;font-size:21px;font-weight:690}.section-heading p{color:var(--quiet);margin:0 0 1px;font-size:12px;line-height:1.7}.category-grid,.project-grid{gap:22px;display:grid}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.category-card,.project-card{--accent:var(--blue);--accent-rgb:37, 99, 235}.category-card--applications,.project-card--applications,.category-page--applications{--accent:var(--applications);--accent-rgb:var(--applications-rgb)}.category-card--games,.project-card--games,.category-page--games{--accent:var(--games);--accent-rgb:var(--games-rgb)}.category-card--tools,.project-card--tools,.category-page--tools{--accent:var(--tools);--accent-rgb:var(--tools-rgb)}.category-card{min-height:72px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:14px;grid-template-columns:38px 1fr 23px;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;transition:color .18s,border-color .18s,background-color .18s,transform .18s;animation:.56s cubic-bezier(.22,1,.36,1) both content-rise;display:grid}.category-card:nth-child(2){animation-delay:70ms}.category-card:nth-child(3){animation-delay:.14s}.category-card:hover,.category-card:focus-visible{border-color:rgba(var(--accent-rgb), .15);background:#ffffff94;outline:none;transform:translateY(-2px)}.category-card__icon{width:38px;height:38px;color:var(--blue);place-items:center;display:grid}.category-card__icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:27px;height:27px}.category-card__icon rect{fill:none}.category-card__copy{flex-direction:row;align-items:baseline;gap:10px;min-width:0;display:flex}.category-card__title{color:var(--blue);white-space:nowrap;font-size:16px;font-weight:680}.category-card__description{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.55;overflow:hidden}.arrow-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:24px;height:16px;transition:transform .18s;overflow:visible}.arrow-icon--left{transform:rotate(180deg)}.category-card>.arrow-icon{color:var(--blue)}.category-card:hover>.arrow-icon,.category-card:focus-visible>.arrow-icon,.project-card:hover .project-card__action .arrow-icon,.project-card:focus-visible .project-card__action .arrow-icon{transform:translate(4px)}.back-link:hover .arrow-icon--left,.back-link:focus-visible .arrow-icon--left{transform:rotate(180deg)translate(4px)}.projects-section{padding-top:32px;padding-bottom:68px}.project-card{--card-rx:0deg;--card-ry:0deg;--card-mx:50%;--card-my:50%;min-width:0;color:var(--text);transform:perspective(1100px) rotateX(var(--card-rx)) rotateY(var(--card-ry)) translateY(0);transform-style:preserve-3d;will-change:transform;animation:.68s cubic-bezier(.22,1,.36,1) backwards card-reveal;animation-delay:var(--card-delay,0s);background:#ffffffe8;border:1px solid #cbd5e1e6;border-radius:19px;flex-direction:column;text-decoration:none;transition:transform .26s cubic-bezier(.22,1,.36,1),border-color .22s,box-shadow .26s;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 38px #0f172a13,inset 0 1px #ffffffe0}.project-card__shine{z-index:5;pointer-events:none;border-radius:inherit;opacity:0;background:radial-gradient(circle at var(--card-mx) var(--card-my), #ffffffa3, #ffffff29 18%, transparent 43%);mix-blend-mode:soft-light;transition:opacity .22s;position:absolute;inset:0}.project-card__media{aspect-ratio:16/9;background:#e9edf4;border-bottom:1px solid #cbd5e1b8;display:block;position:relative;overflow:hidden}.project-card__media:after{pointer-events:none;content:"";border:1px solid #ffffff6b;border-radius:18px 18px 0 0;position:absolute;inset:0;box-shadow:inset 0 -42px 80px #0f172a0f}.project-card__image-frame{will-change:transform;width:100%;height:100%;transition:transform .52s cubic-bezier(.22,1,.36,1);display:block;transform:scale(1.001)}.project-card__media img{object-fit:cover;width:100%;height:100%;display:block}.project-card__body{z-index:2;background:#ffffffe6;flex-direction:column;flex:1;min-height:108px;padding:17px 19px 16px;display:flex;position:relative}.project-card__heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.project-card__title{overflow-wrap:anywhere;color:#202a3c;letter-spacing:-.02em;min-width:0;font-size:20px;font-weight:720;line-height:1.3}.project-card__category{color:var(--accent);background:rgba(var(--accent-rgb), .09);border-radius:7px;flex:none;padding:4px 8px;font-size:11px;font-weight:650}.project-card__tagline{color:#4f5c6f;margin-top:8px;font-size:12px;font-weight:530;line-height:1.65}.project-card__description{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.7}.project-card__footer{z-index:2;background:#ffffffed;border-top:1px solid #e2e8f0e6;justify-content:space-between;align-items:center;min-height:52px;padding:0 19px;display:flex;position:relative}.status{color:#667085;white-space:nowrap;align-items:center;gap:7px;font-size:12px;display:inline-flex}.status__dot{background:#22b66f;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #22b66f17}.project-card__action{color:var(--blue);align-items:center;gap:11px;font-size:12px;font-weight:650;display:inline-flex}.project-card--detailed .project-card__body{min-height:150px;padding:20px 22px 18px}.project-card--detailed .project-card__title{font-size:clamp(23px,2.1vw,30px)}.project-card--detailed .project-card__tagline{margin-top:10px;font-size:14px}.project-card--detailed .project-card__description{font-size:13px}.project-card--detailed .project-card__footer{min-height:58px;padding:0 22px}.category-page{min-height:calc(100vh - 200px);animation:.42s both content-fade}.category-intro{padding:38px 62px 30px}.back-link{color:#607087;align-items:center;gap:12px;font-size:13px;font-weight:540;text-decoration:none;display:inline-flex}.back-link:hover,.back-link:focus-visible{color:var(--blue);outline:none}.category-intro h1{color:#1b2538;letter-spacing:-.05em;margin:26px 0 0;font-size:clamp(48px,6vw,72px);font-weight:760;line-height:1.05}.category-intro p{color:#596579;max-width:720px;margin:16px 0 0;font-size:15px;line-height:1.8}.category-intro__count{color:#758197;margin-top:12px;font-size:12px;display:block}.category-projects{padding:12px 62px 50px}.project-grid--category{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:1260px;margin:0 auto}.empty-state{border:1px dashed rgba(var(--accent-rgb), .4);max-width:860px;min-height:250px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff9e;border-radius:18px;grid-template-columns:110px 1fr;align-items:center;gap:34px;padding:42px;display:grid}.empty-state__mark{color:rgba(var(--accent-rgb), .58);font-family:var(--serif);text-align:center;font-size:92px;font-weight:200;line-height:1}.empty-state h2{color:#253046;margin:0;font-size:26px;font-weight:680}.empty-state p{max-width:520px;color:var(--muted);margin:14px 0 0;font-size:13px;line-height:1.8}.other-categories{justify-content:center;align-items:center;gap:30px;padding:0 62px 52px;display:flex}.other-categories>span{color:var(--quiet);font-size:12px}.other-categories a{color:var(--blue);align-items:center;gap:9px;font-size:13px;font-weight:620;text-decoration:none;display:inline-flex}.other-categories a:hover,.other-categories a:focus-visible{color:#174fbd;outline:none}.other-categories .arrow-icon{width:20px}.site-footer{color:#8490a2;border-top:1px solid #cbd5e194;grid-template-columns:1fr 1fr auto;align-items:center;gap:30px;min-height:78px;padding:18px 62px;font-size:11px;display:grid}.site-footer a,.site-footer__item{align-items:center;gap:9px;display:inline-flex}.site-footer a{width:-moz-fit-content;width:fit-content;text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{color:var(--blue);outline:none}.site-footer svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:18px;height:18px}.site-footer__copyright{color:#667085;white-space:nowrap}@media (hover:hover) and (pointer:fine){.project-card:hover,.project-card:focus-visible{border-color:rgba(var(--accent-rgb), .33);box-shadow:var(--shadow-hover);transform:perspective(1100px) rotateX(var(--card-rx)) rotateY(var(--card-ry)) translateY(-7px);outline:none}.project-card:hover .project-card__shine,.project-card:focus-visible .project-card__shine{opacity:.76}.project-card:hover .project-card__image-frame,.project-card:focus-visible .project-card__image-frame{transform:scale(1.045)}}@media (max-width:1080px){.site-shell{padding-left:24px;padding-right:24px}.hero,.portal-section,.category-intro,.category-projects,.other-categories,.site-footer{padding-left:28px;padding-right:28px}.category-grid{gap:10px}.category-card__copy{flex-direction:column;gap:2px}.project-grid:not(.project-grid--category){grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid:not(.project-grid--category)>:last-child:nth-child(odd){grid-column:1/-1;max-width:calc(50% - 11px)}}@media (max-width:820px){.site-shell{padding:12px 16px 0}.site-header{flex-direction:column;align-items:stretch;min-height:108px;padding:14px 18px 0}.wordmark{font-size:19px}.site-nav{justify-content:space-between;gap:10px;min-height:54px}.site-nav a{min-width:38px;font-size:13px}.hero{min-height:210px;padding:38px 4px 14px}.hero h1{font-size:clamp(36px,9.8vw,48px);line-height:1.28}.hero p{margin-top:13px;font-size:14px}.portal-section{padding:28px 4px 6px}.section-heading{margin-bottom:13px}.category-grid,.project-grid,.project-grid--category,.project-grid:not(.project-grid--category){grid-template-columns:1fr}.category-card{background:#ffffff70;padding-left:8px;padding-right:8px}.category-card__copy{flex-direction:row;gap:8px}.project-grid:not(.project-grid--category)>:last-child:nth-child(odd){grid-column:auto;max-width:none}.projects-section{padding-top:30px;padding-bottom:48px}.project-card{will-change:auto;transform:none}.project-card__shine{display:none}.category-intro{padding:32px 4px 28px}.category-intro h1{margin-top:27px;font-size:52px}.category-intro p{font-size:14px}.category-projects{padding:8px 4px 46px}.project-grid--category{gap:22px}.empty-state{grid-template-columns:1fr;gap:4px;min-height:290px;padding:30px 24px}.empty-state__mark{text-align:left}.other-categories{flex-direction:column;align-items:flex-start;gap:16px;padding:0 4px 48px}.site-footer{grid-template-columns:1fr;gap:16px;min-height:142px;padding:26px 4px}.ambient__grid{opacity:.14;width:170vw;right:-70vw}.ambient__particles{opacity:.68}.ambient__halo{opacity:.38;width:190vw;height:88vw;bottom:-7vh;right:-84vw}.ambient__veil{opacity:.24;width:180vw;top:-22vh;left:-48vw}}@media (max-width:420px){.site-header{padding-left:14px;padding-right:14px}.category-card{grid-template-columns:34px 1fr 21px;gap:9px}.category-card__icon{width:34px;height:34px}.category-card__icon svg{width:24px;height:24px}.category-card__description{font-size:11px}.project-card__body{min-height:104px}.project-card__title{font-size:19px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ambient__field,.ambient__veil,.ambient__halo,.ambient__grid,.project-card,.project-card__image-frame{transform:none!important}.ambient__particles{opacity:.42}}@keyframes content-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes content-fade{0%{opacity:0}to{opacity:1}}@keyframes card-reveal{0%{opacity:0;transform:perspective(1100px)translateY(24px)scale(.985)}to{opacity:1;transform:perspective(1100px)translateY(0)scale(1)}}@keyframes field-breathe{0%{opacity:.16;filter:blur(100px)saturate(.9)}to{opacity:.25;filter:blur(112px)saturate(1.12)}}@keyframes grid-drift{0%{background-position:0 0}to{background-position:36px 18px}}@keyframes veil-turn{0%{opacity:.24;transform:translate3d(var(--pointer-shift-x-soft), var(--pointer-shift-y-soft), 0) scale(1.03) rotate(-3deg)}to{opacity:.4;transform:translate3d(var(--pointer-shift-x-soft), var(--pointer-shift-y-soft), 0) scale(1.12) rotate(4deg)}}@keyframes halo-float{0%{opacity:.42;transform:perspective(920px) rotateX(67deg) rotateZ(-7deg) translate3d(var(--pointer-shift-x-inverse), var(--pointer-shift-y), 0)}to{opacity:.6;transform:perspective(920px) rotateX(65deg) rotateZ(-4deg) translate3d(calc(var(--pointer-shift-x-inverse) - 18px), calc(var(--pointer-shift-y) - 10px), 0)}}
