:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"Inter", "Noto Sans SC", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-size-h1:clamp(2.5rem, 1.5rem + 4vw, 3.75rem);--font-size-h2:clamp(1.75rem, 1.5rem + 1.25vw, 2.25rem);--font-size-h3:1.125rem;--font-size-body:1.0625rem;--font-size-small:.875rem;--line-height-tight:1.1;--line-height-heading:1.2;--line-height-body:1.7;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:5rem;--space-10:6.5rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--transition:.2s ease;--ease-out:cubic-bezier(.2, .8, .2, 1);--bg:#fafafa;--surface:#fff;--surface-muted:#f5f5f5;--header-bg:#fafafacc;--text:#111;--text-secondary:#666;--text-muted:#999;--border:#eaeaea;--border-strong:#d4d4d4;--accent:#0070f3;--accent-strong:#0062cc;--accent-soft:#0070f314;--status:#22c55e;--status-soft:#22c55e1f;--shadow-hover:0 1px 2px #0000000a, 0 8px 24px #0000000f}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0a;--surface:#111;--surface-muted:#1a1a1a;--header-bg:#0a0a0acc;--text:#ededed;--text-secondary:#a1a1a1;--text-muted:#737373;--border:#2a2a2a;--border-strong:#3a3a3a;--accent:#3291ff;--accent-strong:#5aa7ff;--accent-soft:#3291ff24;--status:#4ade80;--status-soft:#4ade8024;--shadow-hover:0 1px 2px #0000004d, 0 8px 24px #0006}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3{margin:0 0 var(--space-4);line-height:var(--line-height-heading);letter-spacing:-.02em;text-wrap:balance;font-weight:600}h1{font-size:var(--font-size-h1);line-height:var(--line-height-tight)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-h3);font-weight:600}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong)}button{font:inherit;color:inherit}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}strong{color:var(--text);font-weight:600}.link-underline{position:relative}.link-underline:after{content:"";transform-origin:0;width:100%;height:1px;transition:transform var(--transition) var(--ease-out);background:currentColor;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.link-underline:hover:after,.link-underline:focus-visible:after{transform:scaleX(1)}noscript{max-width:40rem;padding:var(--space-6) var(--space-5) var(--space-7);margin:0 auto;display:block}noscript h1{font-size:1.9rem}noscript h2{margin-top:var(--space-6);font-size:1.3rem}noscript p{margin-bottom:var(--space-4);color:var(--text-muted)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}body,a,button{transition:background-color var(--transition), color var(--transition), border-color var(--transition)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.container{width:100%;max-width:720px;padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right));margin-inline:auto}.site-header{z-index:40;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-5);min-height:60px;display:flex}.site-brand{color:var(--text);letter-spacing:-.01em;align-items:baseline;font-weight:600;text-decoration:none;display:inline-flex}.brand-tld{color:var(--text-muted);font-weight:500}.header-controls{align-items:center;gap:var(--space-2);display:flex}.lang-switcher{position:relative}.lang-btn{min-width:44px;min-height:44px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;gap:.375rem;font-size:.85rem;font-weight:500;display:inline-flex}.lang-btn:hover,.lang-btn[aria-expanded=true]{border-color:var(--border-strong);color:var(--text)}.lang-caret{transition:transform var(--transition)}.lang-btn[aria-expanded=true] .lang-caret{transform:rotate(180deg)}.lang-menu{z-index:20;min-width:160px;padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-hover);margin:0;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.lang-menu[hidden]{display:none}.lang-option{width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.lang-option:hover{background:var(--accent-soft);color:var(--text)}.lang-option[aria-selected=true]{color:var(--accent);font-weight:600}.icon-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{border-color:var(--border-strong);color:var(--text)}.icon-btn svg{display:block}.icon-moon,[data-theme=dark] .icon-sun{display:none}[data-theme=dark] .icon-moon{display:block}.hero{padding-block:clamp(5rem,12vh,8rem)}.hero-status{margin-bottom:var(--space-5);font-size:var(--font-size-small);color:var(--text-secondary);align-items:center;gap:.5rem;display:inline-flex}.status-dot{border-radius:var(--radius-pill);background:var(--status);width:8px;height:8px;box-shadow:0 0 0 3px var(--status-soft);flex:none}.hero-title{max-width:22ch}.hero-intro{max-width:560px;margin-top:var(--space-5);color:var(--text-secondary);font-size:1.125rem;line-height:1.7}.hero-actions{margin-top:var(--space-6)}.section{padding-block:var(--space-8);scroll-margin-top:72px}.section-title{margin-bottom:var(--space-5)}.about{gap:var(--space-5);align-items:flex-start;max-width:640px;display:flex}.about-avatar{border-radius:var(--radius-pill);background:var(--surface-muted);border:1px solid var(--border);width:48px;height:48px;color:var(--text);flex:none;justify-content:center;align-items:center;font-size:1.125rem;font-weight:600;display:flex}.about-body{min-width:0}.about-text{line-height:var(--line-height-body);color:var(--text);margin:0}.about-text+.about-text{margin-top:1.5em}.product-grid{gap:var(--space-5);grid-template-columns:1fr;display:grid}@media (width>=640px){.product-grid{grid-template-columns:repeat(2,1fr)}}.product-card{gap:var(--space-2);padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);transition:transform var(--transition) var(--ease-out), border-color var(--transition), box-shadow var(--transition);flex-direction:column;text-decoration:none;display:flex}a.product-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.product-card-head{align-items:center;gap:var(--space-3);min-width:0;display:flex}.product-logo{border-radius:var(--radius-sm);background:var(--surface-muted);object-fit:contain;flex:none;width:32px;height:32px}.product-card-head .product-name{flex:1;min-width:0}.product-name{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;font-weight:600;line-height:1.4;overflow:hidden}.product-tagline{color:var(--text-secondary);font-size:var(--font-size-small);white-space:nowrap;text-overflow:ellipsis;margin:0;line-height:1.6;overflow:hidden}.product-desc{color:var(--text-muted);font-size:var(--font-size-small);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.6;display:-webkit-box;overflow:hidden}.product-status{border-radius:var(--radius-pill);background:var(--surface-muted);border:1px solid var(--border);color:var(--text-secondary);align-self:flex-start;margin-top:auto;padding:.2rem .6rem;font-size:.75rem;font-weight:500}.empty-state{text-align:center;align-items:center;gap:var(--space-3);padding:clamp(2.5rem, 6vw, 4rem) var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-md);flex-direction:column;grid-column:1/-1;display:flex}.empty-title{font-size:var(--font-size-h3);color:var(--text);font-weight:600}.empty-body{max-width:44ch;color:var(--text-secondary)}.empty-link{margin-top:var(--space-1)}.site-footer{margin-top:var(--space-8);padding-block:var(--space-7);border-top:1px solid var(--border);color:var(--text-muted);font-size:.8125rem}.footer-inner{gap:var(--space-4);flex-direction:column;display:flex}@media (width>=640px){.footer-inner{flex-direction:row;justify-content:space-between;align-items:flex-start}}.footer-left{gap:var(--space-2);flex-direction:column;display:flex}.footer-right{gap:var(--space-5);display:flex}.footer-right a{color:var(--text-secondary);font-size:inherit}.footer-right a:hover{color:var(--accent)}.btn{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;transition:transform var(--transition) var(--ease-out), background-color var(--transition), border-color var(--transition), color var(--transition);justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.95rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn:active{transform:translateY(0)}.btn svg{transition:transform var(--transition) var(--ease-out);flex:none}.btn:hover svg{transform:translate(3px)}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.hero>.container>*{animation:rise-in .3s var(--ease-out) both}.hero>.container>:nth-child(2){animation-delay:50ms}.hero>.container>:nth-child(3){animation-delay:.1s}.hero>.container>:nth-child(4){animation-delay:.15s}.section,.site-footer{animation:rise-in .3s var(--ease-out) both}}
