html{overflow-x:clip}.ea-home{--brand-blue:#4a8eb8;--brand-blue-deep:#4a8eb8;--brand-blue-hover:#3d7da6;--brand-lime:#7ab82a;--brand-lime-hover:#6a9e24;--brand-slate:#8a8378;--ink:#5c574e;--ink-soft:#6e685e;--ink-muted:#8a847a;--ink-heading:#1e1c19;--ink-warm:#8a847a;--surface:#fffefb;--surface-page:#f7f4ef;--surface-elevated:#f4f0ea;--border:#ebe6df;--border-soft:#ebe6df;--accent:#6f675c;--accent-hover:#4a453e;--hero-accent-wash:#d4c4ae2e;--cover-wash:#f3eee7;--warm-shadow:#8a7a6817;--layer-up:var(--brand-lime);--layer-mid:var(--brand-blue);--layer-down:#4a8f6a;--layer-back:#6b8496;--layer-core:var(--brand-lime);--layer-core-alt:var(--brand-blue);--layer-infra:#8a8378;--case-friso:var(--brand-blue);--case-iff:var(--brand-lime);--case-earlysight:var(--brand-blue);--case-infinitus:var(--layer-down);--case-fulai:#0e7490;--radius:8px;--radius-md:6px;--radius-lg:8px;--radius-pill:999px;--font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-heading:"Plus Jakarta Sans","Noto Sans SC","PingFang SC",sans-serif;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--leading-snug:1.5;--leading-normal:1.75;--leading-relaxed:1.85;--max:1080px;--header-h:72px;--space-page-x:32px;width:100vw;font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:var(--leading-normal);letter-spacing:.02em;color:var(--ink);background:var(--surface-page);-webkit-font-smoothing:antialiased;flex-grow:1;margin-top:-2rem;margin-bottom:-2rem;margin-left:calc(50% - 50vw)}.ea-home img{max-width:100%;height:auto;display:block}.ea-home button,.ea-home select,.ea-home a{font-family:inherit}.ea-home .ea-container{width:100%;max-width:var(--max);padding:0 var(--space-page-x);margin:0 auto}.ea-home .hero{background:radial-gradient(ellipse 90% 70% at 8% -10%,var(--hero-accent-wash),transparent 58%),var(--surface-page);border-bottom:1px solid var(--border);padding:clamp(40px,7vh,72px) 0 40px}.ea-home .hero__intro{max-width:40rem;margin-bottom:40px;position:relative}.ea-home .pill{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:16px;display:inline-block}.ea-home .hero h1{font-family:var(--font-body);font-size:clamp(1.75rem,1.15rem + 1.6vw,2.5rem);font-weight:var(--weight-normal);letter-spacing:.08em;color:var(--ink-warm);margin:0 0 16px;line-height:1.5}.ea-home .hero__sub{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink-muted);max-width:34rem;margin:0}.ea-home .collapse-btn{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);height:34px;color:var(--ink-muted);font-size:var(--text-xs);cursor:pointer;align-items:center;gap:6px;margin-top:20px;padding:0 12px;display:inline-flex}.ea-home .collapse-btn:hover{color:var(--ink-heading);border-color:color-mix(in srgb,#c4b8a8 40%,var(--border))}.ea-home .stack-wrap{opacity:1;max-height:1400px;transition:max-height .45s,opacity .3s,margin .3s;overflow:hidden}.ea-home .stack-wrap.collapsed{opacity:0;max-height:0;margin:0}.ea-home .stack{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 24px 24px;position:relative}.ea-home .stack-head{text-align:center;border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:20px}.ea-home .stack-head h2{font-family:var(--font-heading);font-size:clamp(1.15rem,1rem + .6vw,1.4rem);font-weight:var(--weight-semibold);letter-spacing:.04em;color:var(--ink-heading);margin-bottom:6px}.ea-home .stack-head p{font-size:var(--text-sm);color:var(--ink-muted);margin-bottom:12px}.ea-home .stack-badge{font-size:var(--text-xs);color:var(--ink-muted);letter-spacing:.02em;align-items:center;gap:8px;display:inline-flex}.ea-home .stack-badge i{background:#c4b8a8;border-radius:50%;width:6px;height:6px}.ea-home .stack-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.ea-home .stack-group{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-page);min-width:0;padding:14px}.ea-home .stack-label{font-size:11px;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-pill);color:var(--ink-muted);background:var(--surface);border:1px solid var(--border);align-items:center;gap:6px;margin-bottom:10px;padding:3px 10px;display:inline-flex}.ea-home .stack-label:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.ea-home .mini-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.ea-home .mini-card,.ea-home .core-card,.ea-home .infra-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);text-align:left;cursor:pointer;width:100%;padding:12px 12px 11px;transition:border-color .2s,background .2s}.ea-home .mini-card strong,.ea-home .core-card strong,.ea-home .infra-card strong{font-family:var(--font-heading);font-size:12px;font-weight:var(--weight-semibold);color:var(--ink-heading);margin-bottom:2px;display:block}.ea-home .mini-card span,.ea-home .core-card span,.ea-home .infra-card span{color:var(--ink-muted);font-size:11px;line-height:1.4;display:block}.ea-home .layer-up{background:color-mix(in srgb,var(--layer-up)9%,var(--surface));border-color:color-mix(in srgb,var(--layer-up)22%,var(--border))}.ea-home .layer-up .stack-label{color:color-mix(in srgb,var(--layer-up)62%,var(--ink-heading));border-color:color-mix(in srgb,var(--layer-up)28%,var(--border));background:color-mix(in srgb,var(--layer-up)8%,var(--surface))}.ea-home .layer-up .mini-card{border-color:color-mix(in srgb,var(--layer-up)20%,var(--border));border-left:3px solid color-mix(in srgb,var(--layer-up)58%,var(--border));background:color-mix(in srgb,var(--layer-up)6%,var(--surface))}.ea-home .layer-up .mini-card:hover{border-color:color-mix(in srgb,var(--layer-up)36%,var(--border));background:var(--surface)}.ea-home .layer-mid{background:color-mix(in srgb,var(--layer-mid)9%,var(--surface));border-color:color-mix(in srgb,var(--layer-mid)22%,var(--border))}.ea-home .layer-mid .stack-label{color:color-mix(in srgb,var(--layer-mid)58%,var(--ink-heading));border-color:color-mix(in srgb,var(--layer-mid)28%,var(--border));background:color-mix(in srgb,var(--layer-mid)8%,var(--surface))}.ea-home .layer-mid .mini-card{border-color:color-mix(in srgb,var(--layer-mid)20%,var(--border));border-left:3px solid color-mix(in srgb,var(--layer-mid)58%,var(--border));background:color-mix(in srgb,var(--layer-mid)6%,var(--surface))}.ea-home .layer-mid .mini-card:hover{border-color:color-mix(in srgb,var(--layer-mid)36%,var(--border));background:var(--surface)}.ea-home .layer-down{background:color-mix(in srgb,var(--layer-down)9%,var(--surface));border-color:color-mix(in srgb,var(--layer-down)22%,var(--border))}.ea-home .layer-down .stack-label{color:color-mix(in srgb,var(--layer-down)58%,var(--ink-heading));border-color:color-mix(in srgb,var(--layer-down)28%,var(--border));background:color-mix(in srgb,var(--layer-down)8%,var(--surface))}.ea-home .layer-down .mini-card{border-color:color-mix(in srgb,var(--layer-down)20%,var(--border));border-left:3px solid color-mix(in srgb,var(--layer-down)58%,var(--border));background:color-mix(in srgb,var(--layer-down)6%,var(--surface))}.ea-home .layer-down .mini-card:hover{border-color:color-mix(in srgb,var(--layer-down)36%,var(--border));background:var(--surface)}.ea-home .layer-back{background:color-mix(in srgb,var(--layer-back)10%,var(--surface));border-color:color-mix(in srgb,var(--layer-back)22%,var(--border))}.ea-home .layer-back .stack-label{color:color-mix(in srgb,var(--layer-back)55%,var(--ink-heading));border-color:color-mix(in srgb,var(--layer-back)28%,var(--border));background:color-mix(in srgb,var(--layer-back)8%,var(--surface))}.ea-home .layer-back .mini-card{border-color:color-mix(in srgb,var(--layer-back)20%,var(--border));border-left:3px solid color-mix(in srgb,var(--layer-back)55%,var(--border));background:color-mix(in srgb,var(--layer-back)6%,var(--surface))}.ea-home .layer-back .mini-card:hover{border-color:color-mix(in srgb,var(--layer-back)36%,var(--border));background:var(--surface)}.ea-home .core-box.layer-core{border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--layer-core)24%,color-mix(in srgb,var(--layer-core-alt)14%,var(--border)));background:linear-gradient(165deg,color-mix(in srgb,var(--layer-core)10%,var(--surface))0%,var(--surface)48%,color-mix(in srgb,var(--layer-core-alt)8%,var(--surface))100%);margin:8px 0 16px;padding:16px}.ea-home .layer-core .stack-label{color:color-mix(in srgb,var(--layer-core)62%,var(--ink-heading));border-color:color-mix(in srgb,var(--layer-core)28%,var(--border));background:color-mix(in srgb,var(--layer-core)8%,var(--surface))}.ea-home .core-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ea-home .core-card.sales{border-color:color-mix(in srgb,var(--layer-core)28%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--layer-core)10%,var(--surface))0%,var(--surface)100%)}.ea-home .core-card.sales strong{color:color-mix(in srgb,var(--layer-core)62%,var(--ink-heading))}.ea-home .core-card.sales:hover{border-color:color-mix(in srgb,var(--layer-core)42%,var(--border))}.ea-home .core-card.crm{border-color:color-mix(in srgb,var(--layer-core-alt)28%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--layer-core-alt)10%,var(--surface))0%,var(--surface)100%)}.ea-home .core-card.crm strong{color:color-mix(in srgb,var(--layer-core-alt)55%,var(--ink-heading))}.ea-home .core-card.crm:hover{border-color:color-mix(in srgb,var(--layer-core-alt)42%,var(--border))}.ea-home .infra-row.layer-infra{border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--layer-infra)18%,var(--border));background:linear-gradient(90deg,color-mix(in srgb,var(--layer-mid)6%,var(--surface))0%,color-mix(in srgb,var(--layer-up)7%,var(--surface))50%,color-mix(in srgb,var(--layer-mid)6%,var(--surface))100%);grid-template-columns:repeat(3,1fr);gap:10px;padding:12px;display:grid}.ea-home .layer-infra .infra-card{background:color-mix(in srgb,var(--surface)88%,transparent);border-color:color-mix(in srgb,var(--layer-infra)16%,var(--border));border-left:3px solid color-mix(in srgb,var(--layer-infra)45%,var(--border))}.ea-home .layer-infra .infra-card:hover{border-color:color-mix(in srgb,var(--layer-infra)32%,var(--border));background:var(--surface)}.ea-home .demos{background:var(--surface-page);scroll-margin-top:var(--header-h);padding:0 0 72px}.ea-home .section-nav-wrap{top:var(--header-h);z-index:40;background:var(--surface-page);border-bottom:1px solid var(--border);margin-bottom:28px;padding:12px 0;position:sticky}.ea-home .section-nav{width:100%;max-width:var(--max);border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 auto;padding:6px;display:grid}.ea-home .section-nav button{--tab:var(--brand-blue);--tab-hover:var(--brand-blue-hover);border:1px solid color-mix(in srgb,var(--tab)28%,var(--border));background:color-mix(in srgb,var(--tab)9%,var(--surface-elevated));height:48px;color:color-mix(in srgb,var(--tab)72%,var(--ink-heading));font:inherit;font-size:1.0625rem;font-weight:var(--weight-medium);letter-spacing:.04em;cursor:pointer;white-space:nowrap;border-radius:8px;padding:0 12px;transition:background .18s,border-color .18s,color .18s}.ea-home .section-nav button[data-view=demos]{--tab:#4a8eb8;--tab-hover:#3d7da6}.ea-home .section-nav button[data-view=cases]{--tab:#7ab82a;--tab-hover:#6a9e24}.ea-home .section-nav button[data-view=videos]{--tab:#c4853a;--tab-hover:#a96f2c}.ea-home .section-nav button[data-view=hub]{--tab:#3d7a6a;--tab-hover:#316357}.ea-home .section-nav button:hover{color:var(--tab-hover);border-color:color-mix(in srgb,var(--tab)55%,var(--border));background:color-mix(in srgb,var(--tab)16%,var(--surface))}.ea-home .section-nav button.is-active{background:var(--tab);border-color:var(--tab);color:#fff;font-weight:var(--weight-semibold)}.ea-home .section-nav button.is-active:hover{background:var(--tab-hover);border-color:var(--tab-hover);color:#fff}.ea-home .demos__head{justify-content:flex-end;align-items:flex-end;gap:16px;min-height:0;margin-bottom:24px;display:flex}.ea-home .filter{position:relative}.ea-home .filter-btn{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;height:36px;font-size:var(--text-sm);color:var(--ink-soft);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.ea-home .filter-btn b{color:var(--ink-heading);font-weight:var(--weight-medium)}.ea-home .filter-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:10;min-width:160px;box-shadow:0 10px 28px var(--warm-shadow);padding:6px;display:none;position:absolute;top:calc(100% + 6px);right:0}.ea-home .filter-menu.open{display:block}.ea-home .filter-menu button{text-align:left;border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);cursor:pointer;color:var(--ink-soft);background:0 0;border:0;padding:8px 10px}.ea-home .filter-menu button:hover,.ea-home .filter-menu button.active{background:color-mix(in srgb,#d4c4ae 16%,var(--surface));color:var(--ink-heading)}.ea-home .cat{margin-bottom:48px}.ea-home .cat-banner{border-bottom:1px solid var(--border);margin-bottom:24px;padding:0 0 16px}.ea-home .cat-banner h3{font-family:var(--font-body);font-size:1.25rem;font-weight:var(--weight-medium);color:var(--ink-heading);letter-spacing:.04em}.ea-home .cat-banner p{color:var(--ink-muted);font-size:var(--text-sm);margin-top:4px}.ea-home .cat-banner.case{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.ea-home .perm-chip{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--ink-muted);border:1px solid var(--border);border-radius:var(--radius-pill);background:0 0;flex-shrink:0;padding:5px 12px}.ea-home .card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.ea-home .demo-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;height:100%;min-height:100%;scroll-margin-top:calc(var(--header-h) + 16px);color:inherit;border-radius:10px;flex-direction:column;text-decoration:none;transition:border-color .25s,background .25s,box-shadow .25s;display:flex;overflow:hidden;box-shadow:0 1px #8a7a680d}.ea-home .demo-card:hover{border-color:color-mix(in srgb,#c4b8a8 45%,var(--border));background:var(--surface);box-shadow:0 10px 28px var(--warm-shadow)}.ea-home .badge{font-size:11px;font-weight:var(--weight-medium);color:var(--ink-muted);border:1px solid var(--border);border-radius:var(--radius-pill);white-space:nowrap;background:0 0;padding:2px 8px}.ea-home .demo-card__cover{isolation:isolate;border-radius:var(--radius-md);background:var(--surface-elevated);border:1px solid var(--border);height:188px;margin:12px 12px 0;position:relative;overflow:hidden}.ea-home .demo-card__cover img{object-fit:cover;object-position:center top;filter:saturate(.7)sepia(.14)contrast(.97)brightness(1.03);width:100%;height:100%;display:block}.ea-home .demo-card__cover:after{content:"";z-index:1;pointer-events:none;mix-blend-mode:soft-light;background:#d2bea529;position:absolute;inset:0}.ea-home .demo-card__cover .badge{z-index:2;background:color-mix(in srgb,var(--surface)92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:absolute;top:8px;right:8px}.ea-home .demo-card__body{flex-direction:column;flex:1;padding:16px 18px 18px;display:flex}.ea-home .demo-card__body h3{font-size:1rem;font-weight:var(--weight-semibold);color:var(--ink-heading);line-height:var(--leading-snug);letter-spacing:.01em;margin-bottom:8px}.ea-home .demo-card__body p{color:var(--ink-muted);font-size:var(--text-sm);line-height:var(--leading-relaxed);flex:1;margin:0}.ea-home .demo-card__foot{color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-medium);align-items:center;gap:6px;margin-top:16px;display:flex}.ea-home .demo-card:hover .demo-card__foot{color:var(--accent-hover)}.ea-home .demo-card__foot .arrow{transition:transform .2s}.ea-home .demo-card:hover .demo-card__foot .arrow{transform:translate(3px)}.ea-home .video-card .demo-card__cover img{filter:none;object-fit:cover;object-position:center}.ea-home .video-card .demo-card__cover:after{background:0 0}.ea-home .video-card .video-card__play{z-index:2;background:color-mix(in srgb,var(--surface)90%,transparent);border:1px solid var(--border);width:52px;height:52px;box-shadow:0 8px 20px var(--warm-shadow);pointer-events:none;border-radius:999px;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ea-home .video-card .video-card__play:after{content:"";border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent var(--ink-heading);width:0;height:0;margin-left:3px}.ea-home .video-card:hover .video-card__play{background:var(--surface)}.ea-home .case-meta{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.ea-home .case-client,.ea-home .case-product{font-size:11px;font-weight:var(--weight-medium);border-radius:var(--radius-pill);border:1px solid var(--border);background:0 0;padding:2px 8px}.ea-home .case-client{color:var(--ink-soft);border-color:var(--border);background:var(--surface-elevated)}.ea-home .case-product{color:var(--ink-muted);border-color:var(--border);background:0 0}.ea-home .case-cover{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--cover-wash);align-items:center;gap:14px;height:188px;margin:12px 12px 0;padding:16px 18px;display:flex;position:relative;overflow:hidden}.ea-home .case-cover img.case-cover__logo,.ea-home .case-cover span.case-cover__logo{object-fit:contain;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-shrink:0;width:64px;height:64px;padding:8px}.ea-home .case-cover span.case-cover__logo{font-family:var(--font-heading);font-size:14px;font-weight:var(--weight-semibold);letter-spacing:.02em;text-align:center;justify-content:center;align-items:center;line-height:1.1;display:inline-flex}.ea-home .case-cover__text{color:var(--ink-heading);min-width:0}.ea-home .case-cover__text em{color:var(--ink-muted);margin-bottom:4px;font-size:11px;font-style:normal;display:block}.ea-home .case-cover__text strong{font-size:16px;line-height:1.35;font-weight:var(--weight-semibold);color:var(--ink-heading);display:block}.ea-home .case-cover__text span{color:var(--ink-muted);margin-top:6px;font-size:11px;display:block}.ea-home .case-cover .badge{z-index:2;background:color-mix(in srgb,var(--surface)92%,transparent);color:var(--ink-soft);position:absolute;top:8px;right:8px}.ea-home .case-card[data-client=friso],.ea-home .case-card[data-client=friso-social]{border-color:color-mix(in srgb,var(--case-friso)22%,var(--border))}.ea-home .case-card[data-client=friso]:hover,.ea-home .case-card[data-client=friso-social]:hover{border-color:color-mix(in srgb,var(--case-friso)36%,var(--border));box-shadow:0 10px 28px color-mix(in srgb,var(--case-friso)10%,transparent)}.ea-home .case-card[data-client=friso] .case-cover,.ea-home .case-card[data-client=friso-social] .case-cover{background:linear-gradient(135deg,color-mix(in srgb,var(--case-friso)12%,var(--surface))0%,color-mix(in srgb,var(--case-friso)4%,var(--cover-wash))100%);border-color:color-mix(in srgb,var(--case-friso)16%,var(--border))}.ea-home .case-card[data-client=friso] .case-cover__logo,.ea-home .case-card[data-client=friso-social] .case-cover__logo{border-color:color-mix(in srgb,var(--case-friso)22%,var(--border));background:color-mix(in srgb,var(--case-friso)6%,var(--surface))}.ea-home .case-card[data-client=friso] .case-client,.ea-home .case-card[data-client=friso-social] .case-client{color:color-mix(in srgb,var(--case-friso)55%,var(--ink-heading));border-color:color-mix(in srgb,var(--case-friso)24%,var(--border));background:color-mix(in srgb,var(--case-friso)8%,var(--surface))}.ea-home .case-card[data-client=friso] .demo-card__foot,.ea-home .case-card[data-client=friso-social] .demo-card__foot{color:color-mix(in srgb,var(--case-friso)48%,var(--ink-heading))}.ea-home .case-card[data-client=iff]{border-color:color-mix(in srgb,var(--case-iff)22%,var(--border))}.ea-home .case-card[data-client=iff]:hover{border-color:color-mix(in srgb,var(--case-iff)36%,var(--border));box-shadow:0 10px 28px color-mix(in srgb,var(--case-iff)10%,transparent)}.ea-home .case-card[data-client=iff] .case-cover{background:linear-gradient(135deg,color-mix(in srgb,var(--case-iff)12%,var(--surface))0%,color-mix(in srgb,var(--case-iff)4%,var(--cover-wash))100%);border-color:color-mix(in srgb,var(--case-iff)16%,var(--border))}.ea-home .case-card[data-client=iff] .case-cover__logo{color:color-mix(in srgb,var(--case-iff)58%,var(--ink-heading));border-color:color-mix(in srgb,var(--case-iff)22%,var(--border));background:color-mix(in srgb,var(--case-iff)6%,var(--surface))}.ea-home .case-card[data-client=iff] .case-client{color:color-mix(in srgb,var(--case-iff)58%,var(--ink-heading));border-color:color-mix(in srgb,var(--case-iff)24%,var(--border));background:color-mix(in srgb,var(--case-iff)8%,var(--surface))}.ea-home .case-card[data-client=iff] .demo-card__foot{color:color-mix(in srgb,var(--case-iff)48%,var(--ink-heading))}.ea-home .case-card[data-client=early-sight]{border-color:color-mix(in srgb,var(--case-earlysight)22%,var(--border))}.ea-home .case-card[data-client=early-sight]:hover{border-color:color-mix(in srgb,var(--case-earlysight)36%,var(--border));box-shadow:0 10px 28px color-mix(in srgb,var(--case-earlysight)10%,transparent)}.ea-home .case-card[data-client=early-sight] .case-cover{background:linear-gradient(135deg,color-mix(in srgb,var(--case-earlysight)14%,var(--surface))0%,color-mix(in srgb,var(--brand-lime)8%,var(--cover-wash))100%);border-color:color-mix(in srgb,var(--case-earlysight)16%,var(--border))}.ea-home .case-card[data-client=early-sight] .case-cover__logo{color:color-mix(in srgb,var(--case-earlysight)58%,var(--ink-heading));border-color:color-mix(in srgb,var(--case-earlysight)22%,var(--border));background:color-mix(in srgb,var(--case-earlysight)6%,var(--surface))}.ea-home .case-card[data-client=early-sight] .case-client{color:color-mix(in srgb,var(--case-earlysight)55%,var(--ink-heading));border-color:color-mix(in srgb,var(--case-earlysight)24%,var(--border));background:color-mix(in srgb,var(--case-earlysight)8%,var(--surface))}.ea-home .case-card[data-client=early-sight] .demo-card__foot{color:color-mix(in srgb,var(--case-earlysight)48%,var(--ink-heading))}.ea-home .case-card[data-client=infinitus]{border-color:color-mix(in srgb,var(--case-infinitus)22%,var(--border))}.ea-home .case-card[data-client=infinitus]:hover{border-color:color-mix(in srgb,var(--case-infinitus)36%,var(--border));box-shadow:0 10px 28px color-mix(in srgb,var(--case-infinitus)10%,transparent)}.ea-home .case-card[data-client=infinitus] .case-cover{background:linear-gradient(135deg,color-mix(in srgb,var(--case-infinitus)12%,var(--surface))0%,color-mix(in srgb,var(--case-infinitus)4%,var(--cover-wash))100%);border-color:color-mix(in srgb,var(--case-infinitus)16%,var(--border))}.ea-home .case-card[data-client=infinitus] .case-cover__logo{color:color-mix(in srgb,var(--case-infinitus)58%,var(--ink-heading));border-color:color-mix(in srgb,var(--case-infinitus)22%,var(--border));background:color-mix(in srgb,var(--case-infinitus)6%,var(--surface));font-size:12px}.ea-home .case-card[data-client=infinitus] .case-client{color:color-mix(in srgb,var(--case-infinitus)55%,var(--ink-heading));border-color:color-mix(in srgb,var(--case-infinitus)24%,var(--border));background:color-mix(in srgb,var(--case-infinitus)8%,var(--surface))}.ea-home .case-card[data-client=infinitus] .demo-card__foot{color:color-mix(in srgb,var(--case-infinitus)48%,var(--ink-heading))}.ea-home .case-empty{text-align:center;color:var(--ink-muted);font-size:var(--text-sm);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);margin-top:8px;padding:28px}@media (max-width:1080px){.ea-home .mini-grid{grid-template-columns:1fr}}@media (max-width:767px){.ea-home .ea-container{padding-left:20px;padding-right:20px}}@media (max-width:720px){.ea-home .cat-banner.case{flex-direction:column;align-items:flex-start}.ea-home .stack-row,.ea-home .core-cards,.ea-home .card-grid,.ea-home .infra-row.layer-infra{grid-template-columns:1fr}.ea-home .section-nav{grid-template-columns:1fr 1fr}.ea-home .section-nav button{height:50px;font-size:var(--text-sm);padding:0 8px}}.ea-topbar{--brand-blue:#4a8eb8;--brand-blue-hover:#3d7da6;--brand-lime:#7ab82a;--brand-lime-hover:#6a9e24;--ink:#5c574e;--ink-soft:#6e685e;--ink-muted:#8a847a;--ink-heading:#1e1c19;--surface:#fffefb;--surface-elevated:#f4f0ea;--border:#ebe6df;--border-soft:#ebe6df;--radius:8px;--radius-md:6px;--radius-pill:999px;--font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-heading:"Plus Jakarta Sans","Noto Sans SC","PingFang SC",sans-serif;--text-xs:.8125rem;--text-sm:.875rem;--weight-medium:500;--weight-semibold:600;--max:1080px;--header-h:72px;--space-page-x:32px;z-index:50;height:var(--header-h);background:color-mix(in srgb,var(--surface)92%,transparent);-webkit-backdrop-filter:blur(12px)saturate(1.05);border-bottom:1px solid var(--border-soft);font-family:var(--font-body);color:var(--ink);align-items:center;display:flex;position:sticky;top:0}.ea-topbar .topbar__inner{width:100%;max-width:var(--max);padding:0 var(--space-page-x);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:20px;height:100%;margin:0 auto;display:flex}.ea-topbar .topbar__brand{align-items:center;gap:12px;min-width:0;display:flex}.ea-topbar .brand{flex-shrink:0;align-items:center;line-height:0;text-decoration:none;display:flex}.ea-topbar .brand img{object-fit:contain;opacity:.86;filter:saturate(.78);width:auto;max-width:min(100%,240px);height:28px;transition:opacity .22s,filter .22s;display:block}.ea-topbar .brand:hover img{opacity:.94;filter:saturate(.88)}html[lang=en] .ea-topbar .brand img{max-width:min(100%,200px);height:26px}.ea-topbar .brand__here{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.04em;white-space:nowrap;border-radius:var(--radius-pill);background:var(--brand-blue);color:#fff;align-items:center;height:34px;padding:0 12px;line-height:1.2;text-decoration:none;display:inline-flex}.ea-topbar .brand__here:hover{background:var(--brand-blue-hover);color:#fff}.ea-topbar .topbar__back{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);height:34px;color:var(--ink-soft);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;align-items:center;padding:0 12px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.ea-topbar .topbar__back:hover{color:var(--brand-blue);border-color:color-mix(in srgb,var(--brand-blue)40%,var(--border));background:color-mix(in srgb,var(--brand-blue)8%,var(--surface))}.ea-topbar .topbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.ea-topbar .btn-admin{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);height:34px;color:var(--ink-soft);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;align-items:center;gap:6px;padding:0 12px;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.ea-topbar .btn-admin:hover{background:var(--surface-elevated);border-color:color-mix(in srgb,#c4b8a8 40%,var(--border));color:var(--ink-heading)}.ea-topbar .btn-admin svg path{stroke:currentColor}.ea-topbar .admin-wrap{position:relative}.ea-topbar .btn-login,.ea-topbar .btn-contact{border-radius:var(--radius-md);height:34px;font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);justify-content:center;align-items:center;padding:0 14px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.ea-topbar .btn-contact{background:var(--brand-lime);border-color:color-mix(in srgb,var(--brand-lime-hover)25%,var(--brand-lime));color:#fff}.ea-topbar .btn-contact:hover{background:var(--brand-lime-hover);border-color:var(--brand-lime-hover);color:#fff}.ea-topbar .btn-login:hover{color:var(--brand-blue);border-color:color-mix(in srgb,var(--brand-blue)40%,var(--border));background:color-mix(in srgb,var(--brand-blue)8%,var(--surface))}.ea-topbar .admin-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:20;min-width:148px;padding:6px;display:none;position:absolute;top:calc(100% + 6px);right:0}.ea-topbar .admin-menu.open{display:block}.ea-topbar .admin-menu a{text-align:left;border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);color:var(--ink);cursor:pointer;background:0 0;border:0;padding:8px 10px;text-decoration:none;display:block}.ea-topbar .admin-menu a:hover{background:var(--surface-elevated);color:var(--ink-heading)}.ea-topbar .user-chip{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-pill);height:34px;font-size:var(--text-xs);color:var(--ink-soft);align-items:center;gap:6px;max-width:148px;padding:0 10px;display:inline-flex}.ea-topbar .user-chip:hover{border-color:color-mix(in srgb,#c4b8a8 40%,var(--border));color:var(--ink-heading)}.ea-topbar .user-chip__dot{background:#c4b8a8;border-radius:50%;flex-shrink:0;width:6px;height:6px}.ea-topbar .link-icon{height:34px;color:var(--ink-muted);font-size:var(--text-xs);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:0;align-items:center;gap:5px;padding:0 10px;text-decoration:none;display:inline-flex}.ea-topbar .link-icon.outlined{border:1px solid var(--border);background:var(--surface)}.ea-topbar .link-icon:hover{color:var(--ink-heading);background:var(--surface-elevated)}.ea-topbar .lang{font-size:var(--text-xs);color:var(--ink-muted);align-items:center;gap:6px;display:inline-flex}.ea-topbar .lang button,.ea-topbar .lang a{color:var(--ink-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;background:0 0;border:0;padding:4px 2px;text-decoration:none}.ea-topbar .lang button:hover,.ea-topbar .lang a:hover{color:var(--ink-heading)}.ea-topbar .lang button.active,.ea-topbar .lang a.active{color:var(--ink-heading);font-weight:var(--weight-semibold)}.ea-topbar .lang span{color:var(--border)}.ea-topbar .menu-toggle{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:34px;height:34px;color:var(--ink-soft);cursor:pointer;justify-content:center;align-items:center;display:none}.ea-topbar .topbar__mobile{display:none}@media (max-width:900px){.ea-topbar .topbar__inner{padding-left:24px;padding-right:24px}.ea-topbar .topbar__back,.ea-topbar .topbar__actions>:not(.menu-toggle){display:none}.ea-topbar .menu-toggle{display:inline-flex}.ea-topbar .topbar__mobile.open{top:var(--header-h);z-index:49;background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:8px;padding:12px 24px 16px;display:flex;position:absolute;left:0;right:0;box-shadow:0 10px 28px #8a7a6817}.ea-topbar .topbar__mobile .topbar__back{display:inline-flex}.ea-topbar .topbar__mobile .admin-links{flex-direction:column;gap:4px;width:100%;display:flex}.ea-topbar .topbar__mobile .admin-links a{border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--ink);padding:8px 10px;text-decoration:none}.ea-topbar .topbar__mobile .admin-links a:hover{background:var(--surface-elevated);color:var(--ink-heading)}}.ea-demo-page{--brand-blue:#4a8eb8;--brand-blue-hover:#3d7da6;--brand-lime:#7ab82a;--brand-lime-hover:#6a9e24;--ink:#5c574e;--ink-soft:#6e685e;--ink-muted:#8a847a;--ink-heading:#1e1c19;--surface:#fffefb;--surface-page:#f7f4ef;--surface-elevated:#f4f0ea;--border:#ebe6df;--radius:8px;--radius-md:6px;--radius-pill:999px;--font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-heading:"Plus Jakarta Sans","Noto Sans SC","PingFang SC",sans-serif;--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--weight-medium:500;--weight-semibold:600;--leading-relaxed:1.85;--max:1080px;--space-page-x:32px;--warm-shadow:#8a7a6817;background:var(--surface-page);width:100vw;font-family:var(--font-body);font-size:var(--text-base);letter-spacing:.02em;color:var(--ink);flex-grow:1;margin-top:-2rem;margin-bottom:-2rem;margin-left:calc(50% - 50vw);padding:40px 0 72px;line-height:1.75}.ea-demo-page .ea-container{width:100%;max-width:var(--max);padding:0 var(--space-page-x);margin:0 auto}.ea-demo-page .ea-container--wide{width:100%;max-width:1440px;padding:0 var(--space-page-x);margin:28px auto 0}.ea-demo-page .back-link{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);height:34px;color:var(--ink-soft);font-size:var(--text-xs);font-weight:var(--weight-medium);align-items:center;gap:6px;margin-bottom:20px;padding:0 12px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.ea-demo-page .back-link:hover{color:var(--brand-blue);border-color:color-mix(in srgb,var(--brand-blue)40%,var(--border));background:color-mix(in srgb,var(--brand-blue)8%,var(--surface))}.ea-demo-page h1{font-family:var(--font-heading);font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem);font-weight:var(--weight-semibold);letter-spacing:.02em;color:var(--ink-heading);margin:0 0 14px;line-height:1.4}.ea-demo-page .demo-intro p{color:var(--ink-soft);font-size:1.0625rem;line-height:var(--leading-relaxed);margin:0}.ea-demo-page .demo-bullets{flex-direction:column;gap:10px;margin:18px 0 0;display:flex}.ea-demo-page .demo-bullets li{color:var(--ink);align-items:flex-start;gap:10px;line-height:1.7;display:flex}.ea-demo-page .demo-bullets .check{width:18px;height:18px;color:var(--brand-lime);flex-shrink:0;margin-top:4px}.ea-demo-page .demo-frame{border:1px solid var(--border);background:var(--surface);width:100%;box-shadow:0 10px 28px var(--warm-shadow);border-radius:10px;overflow:hidden}.ea-demo-page .demo-frame iframe,.ea-demo-page .demo-frame video{display:block}.ea-demo-page .ext-primary{background:var(--brand-blue);border:1px solid var(--brand-blue);color:#fff}.ea-demo-page .ext-primary:hover{background:var(--brand-blue-hover);border-color:var(--brand-blue-hover)}.ea-demo-page .ext-outline{background:var(--surface);border:1px solid color-mix(in srgb,var(--brand-blue)45%,var(--border));color:var(--brand-blue)}.ea-demo-page .ext-outline:hover{background:color-mix(in srgb,var(--brand-blue)8%,var(--surface))}@media (max-width:767px){.ea-demo-page .ea-container,.ea-demo-page .ea-container--wide{padding-left:20px;padding-right:20px}}.ea-home .hub-hero{border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--brand-blue)7%,var(--surface))0%,color-mix(in srgb,var(--brand-lime)5%,var(--surface))100%);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;padding:20px 22px;display:flex}.ea-home .hub-hero h3{font-size:1.25rem;font-weight:var(--weight-semibold);color:var(--ink-heading);margin:0 0 8px}.ea-home .hub-hero p{max-width:40rem;font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed);margin:0}.ea-home .hub-hero__actions{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex}.ea-home .hub-filters{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.ea-home .hub-filters button{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);height:34px;color:var(--ink-soft);font:inherit;font-size:var(--text-sm);cursor:pointer;padding:0 14px}.ea-home .hub-filters button.is-active{border-color:color-mix(in srgb,var(--brand-blue)35%,var(--border));background:color-mix(in srgb,var(--brand-blue)10%,var(--surface));color:var(--ink-heading);font-weight:var(--weight-medium)}.ea-home .hub-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.ea-home .hub-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;gap:8px;padding:16px 18px;transition:border-color .2s,box-shadow .2s;display:flex}.ea-home .hub-card--mcp{border-color:color-mix(in srgb,var(--brand-blue)22%,var(--border));background:color-mix(in srgb,var(--brand-blue)6%,var(--surface))}.ea-home .hub-card--skill{border-color:color-mix(in srgb,var(--brand-lime)22%,var(--border));background:color-mix(in srgb,var(--brand-lime)6%,var(--surface))}.ea-home .hub-card:hover{border-color:color-mix(in srgb,#c4b8a8 45%,var(--border));box-shadow:0 10px 28px var(--warm-shadow)}.ea-home .hub-card__meta{flex-wrap:wrap;gap:6px;display:flex}.ea-home .hub-pill{font-size:11px;font-weight:var(--weight-medium);border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--ink-soft);background:var(--surface);padding:2px 8px}.ea-home .hub-pill--muted{color:var(--ink-muted)}.ea-home .hub-card h3{font-size:1rem;font-weight:var(--weight-semibold);color:var(--ink-heading);line-height:var(--leading-snug);margin:0}.ea-home .hub-card p{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed);flex:1;margin:0}.ea-home .hub-card__tags{flex-wrap:wrap;gap:6px;display:flex}.ea-home .hub-card__tags span{color:var(--ink-soft);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-elevated)80%,transparent);border:1px solid var(--border);padding:2px 8px;font-size:11px}.ea-home .hub-card__foot{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--accent);align-items:center;gap:6px;margin-top:4px;display:flex}.ea-home .hub-detail{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:24px;padding:20px 22px}.ea-home .hub-detail__bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.ea-home .hub-detail__bar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ea-home .hub-detail h3{color:var(--ink-heading);margin:0 0 8px;font-size:1.2rem}.ea-home .hub-detail__summary{font-size:var(--text-sm);color:var(--ink-soft);margin:0 0 10px}.ea-home .hub-detail__desc{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed);margin:0 0 16px}.ea-home .hub-detail__dl{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0 0 18px;display:grid}.ea-home .hub-detail__dl dt{color:var(--ink-muted);margin-bottom:2px;font-size:11px}.ea-home .hub-detail__dl dd{font-size:var(--text-sm);color:var(--ink-heading);margin:0}.ea-home .hub-detail__block h4{font-size:var(--text-sm);color:var(--ink-heading);margin:0 0 8px}.ea-home .hub-detail__endpoint{font-size:var(--text-xs);color:var(--ink-muted);margin:0 0 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ea-home .hub-detail__block ul,.ea-home .hub-detail__block ol{color:var(--ink-soft);font-size:var(--text-sm);margin:0;padding-left:1.2rem;line-height:1.6}.ea-home .hub-detail__block code{font-size:.85em}.ea-home .hub-detail__media{margin-top:4px}.ea-home .hub-detail__video{border:1px solid var(--border);background:#111;border-radius:10px;width:100%;max-height:420px;display:block}.ea-home .hub-detail__links{gap:8px;padding-left:0;list-style:none;display:grid}.ea-home .hub-detail__link{color:var(--brand-blue-deep);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.ea-home .hub-detail__link:hover{color:var(--brand-blue-hover);text-decoration:underline}.ea-home .hub-detail__actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.ea-home .hub-detail__hint{font-size:var(--text-xs);color:var(--ink-muted);margin:0;line-height:1.5}.ea-home .hub-pill--status{border-color:#0000}.ea-home .hub-pill--pending_review,.ea-home .hub-pill--pending{background:color-mix(in srgb,#c4853a 16%,var(--surface));color:#8a5a18}.ea-home .hub-pill--published,.ea-home .hub-pill--approved{background:color-mix(in srgb,var(--brand-lime)16%,var(--surface));color:#4d7418}.ea-home .hub-pill--rejected{background:color-mix(in srgb,#c45c4a 14%,var(--surface));color:#8a3228}.ea-home .hub-pill--unpublished{background:color-mix(in srgb,#8a8f98 16%,var(--surface));color:#5a6068}.ea-home .hub-admin__catalog{margin-top:16px}.ea-home .hub-admin__panel-head h4{margin:0 0 4px}.ea-home .hub-admin__panel-head p{margin:0 0 12px}.ea-home .hub-admin{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:20px 22px}.ea-home .hub-admin__head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.ea-home .hub-admin__head h3{color:var(--ink-heading);margin:0 0 6px}.ea-home .hub-admin__head p{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.ea-home .hub-admin__grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.ea-home .hub-admin__panel{border:1px solid var(--border);background:var(--surface-elevated);border-radius:10px;padding:14px}.ea-home .hub-admin__panel h4{font-size:var(--text-sm);color:var(--ink-heading);margin:0 0 12px}.ea-home .hub-admin-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-bottom:10px;padding:12px}.ea-home .hub-admin-card:last-child{margin-bottom:0}.ea-home .hub-admin-card h4{font-size:var(--text-sm);color:var(--ink-heading);margin:8px 0 4px}.ea-home .hub-admin-card p{font-size:var(--text-xs);color:var(--ink-soft);margin:0 0 6px}.ea-home .hub-admin-card__meta{flex-wrap:wrap;gap:6px;display:flex}.ea-home .hub-admin-card__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}@media (max-width:720px){.hub-admin__grid{grid-template-columns:1fr}}.ea-home .hub-publish{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:20px 22px}.ea-home .hub-publish__head h3{color:var(--ink-heading);margin:0 0 6px}.ea-home .hub-publish__head p{font-size:var(--text-sm);color:var(--ink-muted);margin:0 0 18px}.ea-home .hub-form{gap:14px;max-width:640px;display:grid}.ea-home .hub-field{font-size:var(--text-sm);color:var(--ink-soft);gap:6px;display:grid}.ea-home .hub-field input,.ea-home .hub-field textarea{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-page);width:100%;color:var(--ink-heading);font:inherit;padding:10px 12px}.ea-home .hub-form__row{border:0;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0;padding:0;display:flex}.ea-home .hub-form__row legend{width:100%;font-size:var(--text-sm);color:var(--ink-soft);margin-bottom:6px}.ea-home .hub-check{font-size:var(--text-sm);color:var(--ink-soft);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.ea-home .hub-products{flex-wrap:wrap;gap:8px 14px;display:flex}.ea-home .hub-form__actions{justify-content:flex-end;gap:8px;display:flex}.ea-home .hub-form__status{min-height:1.2em;font-size:var(--text-sm);color:var(--ink-muted);margin:0}.ea-home .hub-form__status.is-ok{color:color-mix(in srgb,var(--brand-lime)55%,var(--ink-heading))}.ea-home .hub-form__status.is-error{color:#a34a3a}.ea-home .hub-upload__meta{gap:4px;display:grid}.ea-home .hub-upload__bar{background:var(--border);border-radius:999px;width:100%;height:6px;overflow:hidden}.ea-home .hub-upload__bar>span{background:var(--brand-blue);border-radius:999px;width:0;height:100%;transition:width .2s;display:block}.ea-home .hub-upload__bar>span.is-done{background:color-mix(in srgb,var(--brand-lime)55%,var(--brand-blue))}.ea-home .hub-upload__bar>span.is-error{background:#a34a3a}.ea-home .hub-upload__text{font-size:var(--text-xs,12px);color:var(--ink-muted);word-break:break-all;margin:0}.ea-home .hub-upload__text.is-done{color:color-mix(in srgb,var(--brand-lime)55%,var(--ink-heading))}.ea-home .hub-upload__text.is-error{color:#a34a3a}.ea-home .btn:disabled{opacity:.55;cursor:not-allowed}.ea-home .infra-card.hub-entry{border-color:color-mix(in srgb,var(--brand-blue)22%,var(--border));background:color-mix(in srgb,var(--brand-blue)6%,var(--surface))}.ea-home .btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;height:36px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink);justify-content:center;align-items:center;padding:0 16px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.ea-home .btn:hover{border-color:color-mix(in srgb,#c4b8a8 40%,var(--border));color:var(--ink-heading)}.ea-home .btn.primary{background:var(--brand-blue);color:var(--surface);border-color:var(--brand-blue)}.ea-home .btn.primary:hover{background:var(--brand-blue-hover);border-color:var(--brand-blue-hover);color:var(--surface)}.ea-home .btn.danger{border-color:color-mix(in srgb,#a34a3a 45%,var(--border));color:#a34a3a}.ea-home .btn.danger:hover{color:var(--surface);background:#a34a3a;border-color:#a34a3a}.ea-home .btn.is-active{background:var(--ink-heading);color:var(--surface);border-color:var(--ink-heading)}
.ea-admin,.ea-login{--adm-blue:#4a8eb8;--adm-blue-deep:#3d7da6;--adm-blue-soft:#6fa5c6;--adm-blue-ink:#35698c;--adm-lime:#7ab82a;--adm-lime-soft:#93c74e;--adm-lime-hover:#6a9e24;--adm-lime-ink:#4c721c;--adm-lime-wash:#f0f6e2;--adm-teal:#3d7a6a;--adm-amber:#cf8f3f;--adm-red:#c05741;--adm-ink:#5c574e;--adm-ink-soft:#6e685e;--adm-ink-muted:#8a847a;--adm-ink-strong:#453f36;--adm-ink-heading:#1e1c19;--adm-surface:#fffefb;--adm-surface-page:#f7f4ef;--adm-surface-elevated:#f4f0ea;--adm-border:#ebe6df;--adm-warm-shadow:#8a7a6817;--adm-font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif}.ea-admin{width:100vw;min-height:calc(100vh - var(--header-h,72px));font-family:var(--adm-font-body);color:var(--adm-ink);background:radial-gradient(ellipse 90% 70% at 8% -10%,#d4c4ae2e,transparent 58%),var(--adm-surface-page);-webkit-font-smoothing:antialiased;flex-grow:1;margin-top:-2rem;margin-bottom:-2rem;margin-left:calc(50% - 50vw);border-radius:0!important}.ea-admin .bg-white,.ea-login .bg-white{background-color:var(--adm-surface)}.ea-admin .bg-white\/80,.ea-login .bg-white\/80{background-color:color-mix(in srgb,var(--adm-surface)85%,transparent)}.ea-login{min-height:100vh;font-family:var(--adm-font-body);color:var(--adm-ink);background:radial-gradient(ellipse 90% 70% at 8% -10%,#d4c4ae2e,transparent 58%),var(--adm-surface-page);-webkit-font-smoothing:antialiased}.ea-admin .bg-accent,.ea-login .bg-accent{background-color:#ece5d8}.ea-admin .bg-blue-50,.ea-login .bg-blue-50{background-color:#eaf2f7}.ea-admin .bg-blue-500,.ea-login .bg-blue-500{background-color:var(--adm-blue)}.ea-admin .bg-gray-100,.ea-login .bg-gray-100{background-color:#ece7df}.ea-admin .bg-gray-200,.ea-login .bg-gray-200{background-color:var(--adm-border)}.ea-admin .bg-gray-50,.ea-login .bg-gray-50{background-color:var(--adm-surface-elevated)}.ea-admin .bg-gray-50\/50,.ea-login .bg-gray-50\/50{background-color:color-mix(in srgb,var(--adm-surface-elevated)50%,transparent)}.ea-admin .bg-green-400,.ea-login .bg-green-400{background-color:var(--adm-lime-soft)}.ea-admin .bg-green-50,.ea-login .bg-green-50{background-color:var(--adm-lime-wash)}.ea-admin .bg-green-500,.ea-login .bg-green-500{background-color:var(--adm-lime-hover)}.ea-admin .bg-green-500\/10,.ea-login .bg-green-500\/10{background-color:color-mix(in srgb,var(--adm-lime-hover)10%,transparent)}.ea-admin .bg-orange-500\/10,.ea-login .bg-orange-500\/10{background-color:#cf8f3f1a}.ea-admin .bg-pink-500,.ea-login .bg-pink-500{background-color:#b5765c}.ea-admin .bg-primary,.ea-login .bg-primary{background-color:var(--adm-blue)}.ea-admin .bg-primary\/10,.ea-login .bg-primary\/10{background-color:color-mix(in srgb,var(--adm-blue)10%,transparent)}.ea-admin .bg-purple-50,.ea-login .bg-purple-50{background-color:#eaf3f0}.ea-admin .bg-purple-500,.ea-login .bg-purple-500{background-color:#3d7a6a}.ea-admin .bg-purple-500\/10,.ea-login .bg-purple-500\/10{background-color:#3d7a6a1a}.ea-admin .bg-red-400,.ea-login .bg-red-400{background-color:#d0705c}.ea-admin .bg-red-50,.ea-login .bg-red-50{background-color:#faeeeb}.ea-admin .bg-yellow-50,.ea-login .bg-yellow-50{background-color:#faf3df}.ea-admin .bg-yellow-500,.ea-login .bg-yellow-500{background-color:#cfae4f}.ea-admin .border-blue-200,.ea-login .border-blue-200{border-color:#c9ddea}.ea-admin .border-blue-400,.ea-login .border-blue-400{border-color:var(--adm-blue-soft)}.ea-admin .border-gray-100,.ea-login .border-gray-100{border-color:#ece7df}.ea-admin .border-gray-200,.ea-login .border-gray-200{border-color:var(--adm-border)}.ea-admin .border-gray-300,.ea-login .border-gray-300{border-color:#d8d1c6}.ea-admin .border-green-200,.ea-login .border-green-200{border-color:#dcebc2}.ea-admin .border-green-300,.ea-login .border-green-300{border-color:#c7dd9f}.ea-admin .border-primary,.ea-login .border-primary{border-color:var(--adm-blue)}.ea-admin .border-purple-200,.ea-login .border-purple-200{border-color:#cfe3dc}.ea-admin .border-red-200,.ea-login .border-red-200{border-color:#ecd2ca}.ea-admin .border-red-400,.ea-login .border-red-400{border-color:#d0705c}.ea-admin .border-yellow-200,.ea-login .border-yellow-200{border-color:#ecdcb0}.ea-admin .disabled\:bg-gray-100:disabled,.ea-login .disabled\:bg-gray-100:disabled{background-color:#ece7df}.ea-admin .disabled\:bg-gray-300:disabled,.ea-login .disabled\:bg-gray-300:disabled{background-color:#d8d1c6}.ea-admin .divide-gray-50,.ea-login .divide-gray-50{border-color:var(--adm-surface-elevated)}.ea-admin .focus\:border-primary:focus,.ea-login .focus\:border-primary:focus{border-color:var(--adm-blue)}.ea-admin .focus\:ring-primary:focus,.ea-login .focus\:ring-primary:focus{--tw-ring-color:var(--adm-blue)}.ea-admin .focus\:ring-primary\/20:focus,.ea-login .focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in srgb,var(--adm-blue)20%,transparent)}.ea-admin .focus\:ring-red-100:focus,.ea-login .focus\:ring-red-100:focus{--tw-ring-color:#f5e0da}.ea-admin .from-blue-50,.ea-login .from-blue-50{--tw-gradient-from:color-mix(in srgb,var(--adm-blue)7%,transparent)}.ea-admin .from-blue-500,.ea-login .from-blue-500{--tw-gradient-from:var(--adm-blue)}.ea-admin .from-blue-600,.ea-login .from-blue-600{--tw-gradient-from:var(--adm-blue-deep)}.ea-admin .from-gray-50,.ea-login .from-gray-50{--tw-gradient-from:color-mix(in srgb,var(--adm-surface-elevated)55%,transparent)}.ea-admin .from-green-400,.ea-login .from-green-400{--tw-gradient-from:var(--adm-lime-soft)}.ea-admin .from-green-50,.ea-login .from-green-50{--tw-gradient-from:color-mix(in srgb,var(--adm-lime)8%,transparent)}.ea-admin .from-green-500,.ea-login .from-green-500{--tw-gradient-from:var(--adm-lime-hover)}.ea-admin .from-green-600,.ea-login .from-green-600{--tw-gradient-from:#5b8a1d}.ea-admin .from-orange-400,.ea-login .from-orange-400{--tw-gradient-from:#d9a05b}.ea-admin .from-orange-50,.ea-login .from-orange-50{--tw-gradient-from:color-mix(in srgb,var(--adm-amber)8%,transparent)}.ea-admin .from-pink-500,.ea-login .from-pink-500{--tw-gradient-from:#b5765c}.ea-admin .from-primary,.ea-login .from-primary{--tw-gradient-from:var(--adm-blue)}.ea-admin .from-purple-50,.ea-login .from-purple-50{--tw-gradient-from:#3d7a6a12}.ea-admin .from-purple-500,.ea-login .from-purple-500{--tw-gradient-from:#3d7a6a}.ea-admin .from-purple-600,.ea-login .from-purple-600{--tw-gradient-from:#316357}.ea-admin .from-slate-50,.ea-login .from-slate-50{--tw-gradient-from:transparent}.ea-admin .from-yellow-500,.ea-login .from-yellow-500{--tw-gradient-from:#cfae4f}.ea-admin .group-hover\:shadow-blue-500\/40:is(.group:hover *),.ea-login .group-hover\:shadow-blue-500\/40:is(.group:hover *){--tw-shadow-color:color-mix(in srgb,var(--adm-blue)40%,transparent);--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .group-hover\:shadow-green-500\/40:is(.group:hover *),.ea-login .group-hover\:shadow-green-500\/40:is(.group:hover *){--tw-shadow-color:color-mix(in srgb,var(--adm-lime-hover)40%,transparent);--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .group-hover\:shadow-purple-500\/40:is(.group:hover *),.ea-login .group-hover\:shadow-purple-500\/40:is(.group:hover *){--tw-shadow-color:#3d7a6a66;--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .group-hover\:text-blue-600:is(.group:hover *),.ea-login .group-hover\:text-blue-600:is(.group:hover *){color:var(--adm-blue-deep)}.ea-admin .group-hover\:text-primary:is(.group:hover *),.ea-login .group-hover\:text-primary:is(.group:hover *){color:var(--adm-blue)}.ea-admin .group-hover\:text-purple-600:is(.group:hover *),.ea-login .group-hover\:text-purple-600:is(.group:hover *){color:#316357}.ea-admin .hover\:bg-blue-50\/50:hover,.ea-login .hover\:bg-blue-50\/50:hover{background-color:#eaf2f780}.ea-admin .hover\:bg-blue-600:hover,.ea-login .hover\:bg-blue-600:hover{background-color:var(--adm-blue-deep)}.ea-admin .hover\:bg-gray-100:hover,.ea-login .hover\:bg-gray-100:hover{background-color:#ece7df}.ea-admin .hover\:bg-gray-50:hover,.ea-login .hover\:bg-gray-50:hover{background-color:var(--adm-surface-elevated)}.ea-admin .hover\:bg-green-600:hover,.ea-login .hover\:bg-green-600:hover{background-color:#5b8a1d}.ea-admin .hover\:bg-primary\/10:hover,.ea-login .hover\:bg-primary\/10:hover{background-color:color-mix(in srgb,var(--adm-blue)10%,transparent)}.ea-admin .hover\:bg-primary\/90:hover,.ea-login .hover\:bg-primary\/90:hover{background-color:color-mix(in srgb,var(--adm-blue)90%,transparent)}.ea-admin .hover\:border-blue-200\/50:hover,.ea-login .hover\:border-blue-200\/50:hover{border-color:#c9ddea80}.ea-admin .hover\:border-gray-200:hover,.ea-login .hover\:border-gray-200:hover{border-color:var(--adm-border)}.ea-admin .hover\:border-gray-300:hover,.ea-login .hover\:border-gray-300:hover{border-color:#d8d1c6}.ea-admin .hover\:border-primary\/20:hover,.ea-login .hover\:border-primary\/20:hover{border-color:color-mix(in srgb,var(--adm-blue)20%,transparent)}.ea-admin .hover\:border-purple-200\/50:hover,.ea-login .hover\:border-purple-200\/50:hover{border-color:#cfe3dc80}.ea-admin .hover\:text-gray-600:hover,.ea-login .hover\:text-gray-600:hover{color:var(--adm-ink-soft)}.ea-admin .hover\:text-gray-900:hover,.ea-login .hover\:text-gray-900:hover{color:var(--adm-ink-heading)}.ea-admin .hover\:text-primary:hover,.ea-login .hover\:text-primary:hover{color:var(--adm-blue)}.ea-admin .hover\:text-text-main:hover,.ea-login .hover\:text-text-main:hover{color:var(--adm-ink-strong)}.ea-admin .shadow-blue-500\/25,.ea-login .shadow-blue-500\/25{--tw-shadow-color:color-mix(in srgb,var(--adm-blue)25%,transparent);--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .shadow-blue-500\/30,.ea-login .shadow-blue-500\/30{--tw-shadow-color:color-mix(in srgb,var(--adm-blue)30%,transparent);--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .shadow-gray-200\/50,.ea-login .shadow-gray-200\/50{--tw-shadow-color:color-mix(in srgb,var(--adm-border)50%,transparent);--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .shadow-green-500\/30,.ea-login .shadow-green-500\/30{--tw-shadow-color:color-mix(in srgb,var(--adm-lime-hover)30%,transparent);--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .shadow-purple-500\/30,.ea-login .shadow-purple-500\/30{--tw-shadow-color:#3d7a6a4d;--tw-shadow:var(--tw-shadow-colored);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ea-admin .text-blue-700,.ea-login .text-blue-700{color:var(--adm-blue-ink)}.ea-admin .text-gray-400,.ea-login .text-gray-400,.ea-admin .text-gray-500,.ea-login .text-gray-500{color:var(--adm-ink-muted)}.ea-admin .text-gray-600,.ea-login .text-gray-600{color:var(--adm-ink-soft)}.ea-admin .text-gray-700,.ea-login .text-gray-700{color:var(--adm-ink)}.ea-admin .text-gray-800,.ea-login .text-gray-800{color:var(--adm-ink-strong)}.ea-admin .text-gray-900,.ea-login .text-gray-900{color:var(--adm-ink-heading)}.ea-admin .text-green-500,.ea-login .text-green-500{color:var(--adm-lime-hover)}.ea-admin .text-green-600,.ea-login .text-green-600{color:#5b8a1d}.ea-admin .text-green-700,.ea-login .text-green-700{color:var(--adm-lime-ink)}.ea-admin .text-orange-500,.ea-login .text-orange-500{color:#cf8f3f}.ea-admin .text-primary,.ea-login .text-primary{color:var(--adm-blue)}.ea-admin .text-purple-500,.ea-login .text-purple-500{color:#3d7a6a}.ea-admin .text-purple-700,.ea-login .text-purple-700{color:#2c5a4e}.ea-admin .text-red-500,.ea-login .text-red-500{color:#c05741}.ea-admin .text-red-700,.ea-login .text-red-700{color:#9c3f2c}.ea-admin .text-text-main,.ea-login .text-text-main{color:var(--adm-ink-strong)}.ea-admin .text-yellow-700,.ea-login .text-yellow-700{color:#8a6d1f}.ea-admin .to-blue-400,.ea-login .to-blue-400{--tw-gradient-to:var(--adm-blue-soft)}.ea-admin .to-blue-50,.ea-login .to-blue-50{--tw-gradient-to:color-mix(in srgb,var(--adm-blue)7%,transparent)}.ea-admin .to-blue-500,.ea-login .to-blue-500{--tw-gradient-to:var(--adm-blue)}.ea-admin .to-blue-600,.ea-login .to-blue-600{--tw-gradient-to:var(--adm-blue-deep)}.ea-admin .to-cyan-500,.ea-login .to-cyan-500{--tw-gradient-to:var(--adm-blue)}.ea-admin .to-cyan-600,.ea-login .to-cyan-600{--tw-gradient-to:var(--adm-blue-deep)}.ea-admin .to-emerald-400,.ea-login .to-emerald-400{--tw-gradient-to:var(--adm-lime-soft)}.ea-admin .to-emerald-50,.ea-login .to-emerald-50{--tw-gradient-to:color-mix(in srgb,var(--adm-lime)8%,transparent)}.ea-admin .to-emerald-500,.ea-login .to-emerald-500{--tw-gradient-to:var(--adm-lime-hover)}.ea-admin .to-emerald-600,.ea-login .to-emerald-600{--tw-gradient-to:#5b8a1d}.ea-admin .to-indigo-50,.ea-login .to-indigo-50{--tw-gradient-to:color-mix(in srgb,var(--adm-surface-elevated)55%,transparent)}.ea-admin .to-indigo-500,.ea-login .to-indigo-500{--tw-gradient-to:var(--adm-blue)}.ea-admin .to-orange-400,.ea-login .to-orange-400{--tw-gradient-to:#d9a05b}.ea-admin .to-pink-400,.ea-login .to-pink-400{--tw-gradient-to:#c08a72}.ea-admin .to-pink-50,.ea-login .to-pink-50{--tw-gradient-to:#b5765c12}.ea-admin .to-pink-500,.ea-login .to-pink-500{--tw-gradient-to:#b5765c}.ea-admin .to-pink-600,.ea-login .to-pink-600{--tw-gradient-to:#a1664e}.ea-admin .to-rose-400,.ea-login .to-rose-400{--tw-gradient-to:#c08a72}.ea-admin .to-slate-50,.ea-login .to-slate-50{--tw-gradient-to:transparent}.ea-admin .to-yellow-400,.ea-login .to-yellow-400{--tw-gradient-to:#d9c07a}.ea-admin .to-yellow-50,.ea-login .to-yellow-50{--tw-gradient-to:color-mix(in srgb,var(--adm-amber)8%,transparent)}.ea-admin .via-blue-50,.ea-login .via-blue-50{--tw-gradient-via:color-mix(in srgb,var(--adm-blue)7%,transparent)}
