@layer components{.module-card{gap:var(--space-1);padding:var(--space-2) var(--space-4);background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-card);transition:transform var(--motion-duration-instant) var(--motion-easing-out), background-color var(--motion-duration-instant) var(--motion-easing-out), border-color var(--motion-duration-instant) var(--motion-easing-out);isolation:isolate;flex-direction:column;min-width:0;text-decoration:none;display:flex;position:relative;overflow:hidden}.module-card:before{content:"";background:var(--module-color,var(--color-accent-base));transform-origin:0;height:2px;transition:transform var(--motion-duration-normal) var(--motion-easing-out);z-index:1;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.module-card:hover{background:var(--color-bg-hover);border-color:color-mix(in srgb, var(--module-color,var(--color-accent-base)) 50%, transparent)}.module-card:hover:before{transform:scaleX(1)}.module-card:active{transform:translateY(-2px)scale(.99)}.module-card:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.card-header{align-items:center;gap:var(--space-1);min-width:0;display:flex}.card-icon{background:color-mix(in srgb, var(--module-color,var(--color-accent-base)) 8%, transparent);border:1px solid color-mix(in srgb, var(--module-color,var(--color-accent-base)) 38%, transparent);width:22px;height:22px;color:color-mix(in srgb, var(--module-color,var(--color-accent-base)) 75%, var(--color-fg-primary));font-family:var(--font-family-mono);letter-spacing:0;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--color-fg-inverse) 6%, transparent);transition:background-color var(--motion-duration-instant) var(--motion-easing-out), border-color var(--motion-duration-instant) var(--motion-easing-out), transform var(--motion-duration-normal) var(--motion-easing-spring);text-transform:uppercase;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;font-size:.6rem;font-weight:600;line-height:1;display:inline-flex;position:relative}.card-icon:before{content:"";border-top:1px solid var(--module-color,var(--color-accent-base));border-left:1px solid var(--module-color,var(--color-accent-base));opacity:.7;pointer-events:none;border-top-left-radius:2px;width:4px;height:4px;position:absolute;top:-1px;left:-1px}.module-card:hover .card-icon{background:color-mix(in srgb, var(--module-color,var(--color-accent-base)) 16%, transparent);border-color:color-mix(in srgb, var(--module-color,var(--color-accent-base)) 60%, transparent)}.card-title{font-family:var(--font-family-heading);font-size:.85rem;font-weight:var(--font-weight-semibold,600);color:var(--color-fg-primary);text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;transition:color var(--motion-duration-instant) var(--motion-easing-out);flex:1;min-width:0;margin:0;padding-bottom:2px;position:relative;overflow:hidden}.module-card:hover .card-title{color:color-mix(in srgb, var(--module-color,var(--color-accent-base)) 75%, var(--color-fg-primary))}.card-title:after{content:"";opacity:.3;background:currentColor;height:1px;position:absolute;bottom:0;left:0;right:0}.card-title:before{content:"";opacity:0;height:1px;transition:opacity var(--motion-duration-fast) var(--motion-easing-out), transform var(--motion-duration-fast) var(--motion-easing-out);pointer-events:none;background:currentColor;position:absolute;bottom:0;left:0;right:0;transform:translateY(0)}@media (hover:hover){.module-card:hover .card-title:before{opacity:.9;transform:translateY(-2px)}}.card-desc{color:var(--color-text-secondary);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:3em;margin:0;font-size:.75rem;line-height:1.5;display:-webkit-box;overflow:hidden}@media (width<=767.98px){.module-card{width:100%;padding:var(--space-2) var(--space-4)}.card-icon{width:20px;height:20px;font-size:.6rem}.card-title{font-size:.8rem}.card-desc{font-size:.75rem}}@media (width<=480px){.module-card{padding:var(--space-1) var(--space-2);gap:4px}.card-icon{width:18px;height:18px;font-size:.6rem}.card-title{font-size:.75rem}.card-desc{-webkit-line-clamp:2;font-size:.75rem}}}
