@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--color-primary: #7c3aed;--color-primary-deep: #5b21b6;--color-primary-soft: #a78bfa;--color-primary-bg: #f5f3ff;--color-cyan: #06b6d4;--color-cyan-soft: #cffafe;--color-ink: #101828;--color-bg: #fbfafc;--color-text: #1f2937;--color-muted: #6b7280;--color-border: #e5e7eb;--color-card: #ffffff;--color-link: #6d28d9;--max-width: 1120px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--shadow-soft: 0 18px 46px rgba(31, 41, 55, .08);--shadow-float: 0 24px 60px rgba(91, 33, 182, .14);--glow-soft: 0 0 0 1px rgba(124, 58, 237, .12), 0 0 34px rgba(6, 182, 212, .12)}*{box-sizing:border-box}html,body{margin:0;padding:0;color:var(--color-text);font-family:IBM Plex Sans,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.72;text-rendering:optimizeLegibility;background-color:var(--color-bg);background-image:linear-gradient(115deg,#f5f3ffe6,#ffffff59 42%,#ecfeff94),linear-gradient(rgba(124,58,237,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(6,182,212,.04) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}a{color:inherit;text-decoration:none}a:hover{color:var(--color-link)}a:focus-visible,button:focus-visible{outline:2px solid var(--color-primary-soft);outline-offset:2px}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}::view-transition-old(root){animation:page-out .18s cubic-bezier(.22,1,.36,1) both}::view-transition-new(root){animation:page-in .26s cubic-bezier(.22,1,.36,1) both}}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-main{flex:1}@media(min-width:901px){body:has(.home-hero) .site-shell{height:100svh;min-height:100svh;overflow:hidden}body:has(.home-hero) .site-main{display:flex;flex:1 1 auto;min-height:0}body:has(.home-hero) .home-hero{flex:1 1 auto;width:100%;min-height:0;padding:clamp(.55rem,1.5vh,1.05rem) 0}body:has(.home-hero) .home-grid{width:min(100% - 2rem,var(--max-width));margin-inline:auto;min-height:0}body:has(.home-hero) .featured-product{width:min(374px,39vw);padding:.92rem}body:has(.home-hero) .product-topbar{margin-bottom:.68rem}body:has(.home-hero) .featured-product h2{font-size:1.58rem}body:has(.home-hero) .featured-product p:not(.product-label):not(.product-tagline){font-size:.92rem;line-height:1.58}body:has(.home-hero) .privacy-grid{margin-top:.68rem}body:has(.home-hero) .privacy-grid span{padding:.32rem .46rem}body:has(.home-hero) .project-links{margin-top:.72rem}body:has(.home-hero) .footer-inner{align-items:center;padding:.52rem 0 .6rem;line-height:1.38}body:has(.home-hero) .footer-note{margin-top:.12rem}body:has(.home-hero) .footer-links a{padding:0}}.container{width:min(100% - 2rem,var(--max-width));margin-inline:auto}.site-header{position:sticky;top:0;z-index:40;backdrop-filter:blur(16px);background:#fbfafcc7;border-bottom:1px solid rgba(31,41,55,.08)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.86rem 0}.site-brand{font-family:JetBrains Mono,IBM Plex Sans,monospace;font-size:1rem;font-weight:700;letter-spacing:0;color:var(--color-primary-deep);padding:.34rem .62rem;border:1px solid rgba(124,58,237,.2);border-radius:999px;background:#ffffffb8;box-shadow:var(--glow-soft)}.site-nav{display:flex;gap:.5rem;flex-wrap:wrap}.nav-link{padding:.38rem .75rem;border-radius:999px;font-size:.92rem;font-weight:500;color:var(--color-muted);border:1px solid transparent;transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.nav-link:hover{color:var(--color-primary-deep);background:#ffffffc2;border-color:#7c3aed3d;box-shadow:var(--glow-soft)}.nav-link.active{color:var(--color-primary-deep);background:#f5f3fffa;border-color:#7c3aed57;box-shadow:var(--glow-soft)}.section{padding:3.4rem 0}.home-hero{position:relative;display:flex;align-items:center;min-height:calc(100svh - 106px);overflow:hidden;padding:1.55rem 0 1.75rem}.home-hero:before,.home-hero:after{content:"";position:absolute;pointer-events:none}.home-hero:before{inset:1.2rem 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(124,58,237,.38),rgba(6,182,212,.28),transparent)}.home-hero:after{inset:auto 0 2.2rem;height:1px;background:linear-gradient(90deg,transparent,rgba(6,182,212,.22),rgba(124,58,237,.28),transparent)}.home-copy{position:relative;z-index:2;max-width:72ch}.home-grid{position:relative;z-index:2;min-height:min(500px,calc(100svh - 172px));display:flex;align-items:center}.hero-kicker{width:fit-content;margin:0 0 .72rem;padding:.34rem .68rem;border:1px solid rgba(6,182,212,.22);border-radius:999px;background:#ecfeffc2;color:#155e75;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.76rem;letter-spacing:0}.home-hero h1{margin:0;font-size:clamp(3.2rem,6vw,3.85rem);line-height:1.04;letter-spacing:0;font-weight:780;background:linear-gradient(100deg,var(--color-ink) 0%,#4c1d95 50%,var(--color-cyan) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.home-subtitle{margin:.78rem 0 0;font-size:1.03rem;color:var(--color-muted);font-weight:520}.home-slogan{margin:.9rem 0 0;padding:.68rem .9rem;border:1px solid rgba(31,41,55,.08);background:#ffffffc2;border-radius:var(--radius-md);font-size:1rem;color:#27334a;box-shadow:var(--glow-soft);backdrop-filter:blur(10px)}.home-intro{margin:.86rem 0 0;max-width:60ch;color:#374151}.action-row{display:flex;flex-wrap:wrap;gap:.68rem;margin-top:1.16rem}.featured-product{position:absolute;top:50%;right:0;z-index:1;width:min(390px,40vw);overflow:hidden;padding:1.05rem;border:1px solid rgba(167,139,250,.24);border-radius:22px;background:linear-gradient(145deg,#101828f5,#312e81f0 55%,#581c87e6);color:#eef2ff;box-shadow:0 28px 80px #1f29373d,0 0 0 1px #ffffff0f inset;transform:translateY(-50%)}.featured-product:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(180deg,#000,transparent 78%);pointer-events:none}.product-topbar{position:relative;z-index:1;display:flex;gap:.42rem;margin-bottom:.92rem}.product-topbar span{width:.56rem;height:.56rem;border-radius:999px;background:#a78bfa}.product-topbar span:nth-child(2){background:#22d3ee}.product-topbar span:nth-child(3){background:#f8fafc;opacity:.72}.product-label,.featured-product h2,.product-tagline,.featured-product p,.privacy-grid,.featured-product .project-links{position:relative;z-index:1}.product-label{margin:0;color:#93c5fd;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem}.featured-product h2{margin:.22rem 0 0;font-size:1.76rem;line-height:1.15;letter-spacing:0}.product-tagline{margin:.48rem 0 0;color:#c4b5fd;font-size:1rem}.featured-product p:not(.product-label):not(.product-tagline){margin:.68rem 0 0;color:#eef2ffc7}.privacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem;margin-top:.78rem}.privacy-grid span{padding:.4rem .52rem;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#ffffff12;color:#f8fafc;font-size:.78rem}.hero-code-scene{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0%,#000 24%,#000 100%)}.code-window{position:absolute;right:max(1rem,calc((100vw - var(--max-width)) / 2));width:min(38vw,430px);padding:1rem;border:1px solid rgba(124,58,237,.18);border-radius:16px;background:linear-gradient(135deg,#101828eb,#312e81d1);box-shadow:0 24px 70px #312e8133;color:#ecfeffe0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.82rem}.code-window:before{content:"";display:block;width:2.8rem;height:.48rem;margin-bottom:.8rem;border-radius:999px;background:linear-gradient(90deg,#a78bfa 0 28%,#22d3ee 28% 56%,#f8fafc 56% 100%);opacity:.82}.code-window span{display:block;padding:.26rem 0;white-space:nowrap}.code-window.primary{top:18%;transform:rotate(2deg)}.code-window.secondary{right:max(2.6rem,calc((100vw - var(--max-width)) / 2 + 6rem));bottom:16%;width:min(30vw,320px);opacity:.88;transform:rotate(-3deg)}.signal-line{position:absolute;right:0;width:54vw;height:1px;background:linear-gradient(90deg,transparent,rgba(6,182,212,.54),rgba(124,58,237,.28),transparent)}.signal-line.one{top:33%}.signal-line.two{top:68%}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);padding:.58rem 1rem;font-size:.93rem;font-weight:610;border:1px solid var(--color-border);transition:transform .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease}.button.primary{background:linear-gradient(120deg,var(--color-primary),var(--color-primary-deep) 72%,#312e81);border-color:var(--color-primary-deep);color:#fff;box-shadow:0 14px 28px #7c3aed47,inset 0 1px #ffffff47}.button.primary:hover{transform:translateY(-1px);box-shadow:0 16px 30px #7c3aed57}.button.secondary{background:#ffffffbf;backdrop-filter:blur(6px);color:var(--color-primary-deep);border-color:#7c3aed52}.button.secondary:hover{background:#f5f3fffa;border-color:#7c3aed80;transform:translateY(-1px)}.page-title{margin:0;font-size:2.45rem;line-height:1.16;letter-spacing:0;color:var(--color-ink)}.page-title:after{content:"";display:block;width:4.5rem;height:3px;margin-top:.82rem;border-radius:999px;background:linear-gradient(90deg,var(--color-primary),var(--color-cyan))}.page-desc{margin-top:.82rem;color:#374151;max-width:66ch}.page-hint{margin-top:.56rem;color:var(--color-muted);font-size:.92rem}.content-block{margin-top:1.55rem;background:linear-gradient(180deg,#fffffff0,#ffffffd1);border:1px solid rgba(31,41,55,.08);border-radius:var(--radius-md);padding:1.2rem 1.15rem;box-shadow:var(--shadow-soft);backdrop-filter:blur(10px)}.content-block h2{margin:0;font-size:1.07rem;color:#111827}.content-block .page-desc{margin-top:.78rem}.company-wall{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.78rem;margin-top:1rem}.company-logo-card{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.7rem;min-height:128px;overflow:hidden;padding:1rem .8rem;border:1px solid rgba(31,41,55,.08);border-radius:20px;background:linear-gradient(180deg,#ffffffeb,#ffffffb8),radial-gradient(circle at 50% 0%,rgba(167,139,250,.22),transparent 50%);box-shadow:0 18px 42px #1f293712;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.company-logo-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,rgba(124,58,237,.65),rgba(6,182,212,.42),transparent);opacity:0;transition:opacity .2s ease}.company-logo-card:hover{transform:translateY(-3px);border-color:#7c3aed3d;box-shadow:0 22px 52px #5b21b61f}.company-logo-card:hover:before{opacity:1}.company-logo-frame{display:flex;align-items:center;justify-content:center;width:4.35rem;height:4.35rem;border:1px solid rgba(31,41,55,.08);border-radius:22px;background:#fff;box-shadow:inset 0 1px #ffffffd9,0 12px 28px #1f293714}.company-logo-frame img{display:block;max-width:68%;max-height:68%;object-fit:contain}.company-logo-app .company-logo-frame{background:#f00000;border-color:#f000002e;box-shadow:0 14px 28px #f000002e,inset 0 1px #ffffff38}.company-logo-app .company-logo-frame img{max-width:82%;max-height:82%}.company-logo-card p{margin:0;color:#253044;font-size:.92rem;font-weight:700;line-height:1.35;text-align:center}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem;margin-top:1.35rem}.empty-state{margin-top:1.5rem;color:var(--color-muted)}.project-card,.article-card{position:relative;overflow:hidden;background:linear-gradient(180deg,#fffffff5,#ffffffdb);border:1px solid rgba(31,41,55,.08);border-radius:var(--radius-md);padding:1.06rem;box-shadow:var(--shadow-soft);backdrop-filter:blur(6px);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.project-card:before,.article-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-cyan),transparent);opacity:.78}.project-card:hover,.article-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-float);border-color:#7c3aed47}.project-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem}.project-card h3,.article-card h3{margin:0;font-size:1.06rem;line-height:1.35;color:var(--color-ink)}.project-card p,.article-card p{margin:.72rem 0 0;color:#374151}.project-tagline{color:var(--color-primary-deep);font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9rem}.project-card-dark{background:linear-gradient(145deg,#111827fa,#312e81f0);border-color:#a78bfa3d;box-shadow:0 22px 58px #1f293733;color:#eef2ff}.project-card-dark:before{background:linear-gradient(90deg,#a78bfa,#22d3ee,transparent);opacity:1}.project-card-dark h3,.project-card-dark p,.project-card-dark .project-tagline{color:#eef2ff}.project-card-dark p:not(.project-tagline){color:#eef2ffc7}.project-card-dark .status-chip,.project-card-dark .stack-list li{background:#ffffff14;border-color:#ffffff24;color:#e9d5ff}.project-card-dark .text-link{color:#bae6fd}.meta-line{font-size:.86rem;color:var(--color-muted);margin:0}.status-chip{font-size:.78rem;padding:.17rem .62rem;border-radius:999px;background:#f5f3fff2;border:1px solid rgba(124,58,237,.24);color:var(--color-primary-deep);white-space:nowrap}.stack-list{display:flex;flex-wrap:wrap;gap:.44rem;padding:0;margin:.9rem 0 0;list-style:none}.stack-list li{font-size:.8rem;padding:.22rem .54rem;border-radius:999px;background:#f5f3fff2;border:1px solid rgba(124,58,237,.2);color:var(--color-primary-deep)}.text-link{display:inline-block;margin-top:.92rem;font-size:.9rem;font-weight:530;color:var(--color-link)}.project-links{display:flex;flex-wrap:wrap;gap:.78rem;margin-top:1rem}.project-links .text-link{margin-top:0}.text-link:hover{color:var(--color-primary-deep);text-decoration:underline;text-underline-offset:.2rem}.tag-list{display:flex;flex-wrap:wrap;gap:.42rem;padding:0;margin:.86rem 0 0;list-style:none}.tag-list li{font-size:.79rem;padding:.18rem .52rem;border-radius:999px;background:#f5f3fff2;border:1px solid rgba(124,58,237,.2);color:var(--color-primary-deep)}.article-section{padding-top:2.6rem}.article-layout{display:grid;grid-template-columns:240px minmax(0,780px);gap:2.2rem;align-items:start}.article-toc{position:sticky;top:5.6rem;max-height:calc(100vh - 7rem);padding:.9rem 0;overflow:auto;color:var(--color-muted)}.toc-back{display:inline-block;margin-bottom:1.2rem;color:var(--color-primary-deep);font-size:.9rem;font-weight:650}.toc-label{margin:0 0 .7rem;color:#475467;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem}.toc-link{display:block;margin:.18rem 0;padding:.42rem .68rem;border-left:2px solid rgba(124,58,237,.14);border-radius:0 10px 10px 0;color:#667085;font-size:.88rem;line-height:1.35;transition:color .2s ease,background-color .2s ease,border-color .2s ease}.toc-link:hover{color:var(--color-primary-deep);background:#f5f3ffb8;border-color:var(--color-primary)}.toc-depth-3{padding-left:1.25rem;font-size:.82rem}.back-link{display:none;margin-top:0}.article-detail{position:relative;overflow:hidden;padding:2rem 2.1rem 2.4rem;border:1px solid rgba(31,41,55,.08);border-radius:20px;background:linear-gradient(180deg,#fffffffa,#ffffffeb);box-shadow:var(--shadow-soft);backdrop-filter:blur(8px)}.article-detail:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-cyan),transparent)}.article-header{padding-bottom:1.3rem;border-bottom:1px solid rgba(31,41,55,.08)}.article-header .page-title{font-size:2.35rem;line-height:1.18}.article-header .meta-line{margin-top:.9rem}.article-summary{margin-top:.95rem;font-size:1.02rem;color:#475467}.article-prose{margin-top:1.6rem;color:#344054;font-size:1.03rem;line-height:1.82}.article-prose>h1:first-child{display:none}.article-prose h1,.article-prose h2,.article-prose h3{scroll-margin-top:6rem;color:#111827;letter-spacing:0}.article-prose h1{margin:1.8rem 0 .8rem;font-size:2rem;line-height:1.25}.article-prose h2{margin:2.1rem 0 .8rem;padding-top:.1rem;font-size:1.55rem;line-height:1.32}.article-prose h2:before{content:"";display:inline-block;width:.48rem;height:.48rem;margin-right:.58rem;border-radius:999px;background:linear-gradient(135deg,var(--color-primary),var(--color-cyan));vertical-align:.12rem}.article-prose h3{margin:1.6rem 0 .6rem;font-size:1.2rem;line-height:1.35}.article-prose p{margin:.9rem 0}.article-prose blockquote{margin:1.15rem 0;padding:.9rem 1rem;border-left:3px solid var(--color-primary-soft);background:#f5f3ffcc;color:#4c1d95;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.article-prose ul,.article-prose ol{margin:.9rem 0;padding-left:1.25rem}.article-prose li+li{margin-top:.45rem}.article-prose a{color:var(--color-link);text-decoration:underline;text-decoration-color:#7c3aed66;text-underline-offset:.2rem}.article-prose pre{margin:1.2rem 0;padding:1rem;overflow:auto;border-radius:14px;background:#101828;color:#e5e7eb}.article-prose code{font-family:JetBrains Mono,ui-monospace,monospace}.info-list{margin:.86rem 0 0;padding-left:1.18rem;color:#374151}.info-list li::marker{color:var(--color-primary)}.info-list li+li{margin-top:.4rem}.site-footer{margin-top:0;border-top:1px solid rgba(124,58,237,.2);background:linear-gradient(180deg,#f5f3ff99,#fcfafff5)}.footer-inner{padding:.9rem 0 1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.95rem;flex-wrap:wrap;color:var(--color-muted);font-size:.9rem}.footer-copy{margin:0}.footer-note{margin:.32rem 0 0;font-size:.83rem;color:#8b5cf6}.footer-links{display:flex;gap:.86rem}.footer-links a{padding:.2rem 0;font-size:.9rem;color:var(--color-muted);border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease,text-shadow .2s ease}.footer-links a:hover{color:var(--color-primary-deep);border-color:#7c3aed66;text-shadow:0 0 12px rgba(124,58,237,.2)}@keyframes drift{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,16px,0)}}@keyframes page-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:900px){.section{padding:2.8rem 0}.home-hero{min-height:auto}.home-grid{min-height:auto;display:block}.featured-product{position:relative;top:auto;right:auto;width:100%;margin-top:2rem;transform:none}.home-hero h1{font-size:3.2rem}.company-wall{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-code-scene{opacity:.42}.code-window{width:340px}.code-window.secondary{display:none}.article-layout{grid-template-columns:1fr;gap:1.2rem}.article-toc{position:relative;top:auto;max-height:none;padding:.9rem 1rem;border:1px solid rgba(31,41,55,.08);border-radius:var(--radius-md);background:#ffffffc7;box-shadow:var(--shadow-soft)}.article-toc nav{display:flex;flex-wrap:wrap;gap:.4rem}.toc-link{margin:0;padding:.35rem .55rem;border:1px solid rgba(124,58,237,.16);border-radius:999px;background:#f5f3ff9e}.toc-depth-3{padding-left:.55rem}.back-link{display:inline-block}.toc-back{display:none}}@media(max-width:640px){.container{width:min(100% - 1.25rem,var(--max-width))}.section{padding:2.35rem 0}.home-hero{padding:1.1rem 0 1.25rem}.header-inner{flex-direction:column;align-items:flex-start}.home-hero h1{font-size:2.65rem}.home-slogan{padding:.66rem .78rem}.hero-code-scene{display:none}.featured-product{padding:1rem}.company-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.company-logo-card{min-height:118px}.page-title{font-size:2rem}.article-detail{padding:1.2rem 1rem 1.6rem;border-radius:var(--radius-md)}.article-header .page-title{font-size:1.85rem}.article-prose{font-size:1rem;line-height:1.76}.article-prose h2{font-size:1.34rem}.privacy-grid,.card-grid{grid-template-columns:1fr}.footer-inner{align-items:flex-start;flex-direction:column}}
