:root{--color-primary:#2563eb;--color-primary-dark:#1d4ed8;--color-primary-light:#dbeafe;--color-primary-soft:rgba(37,99,235,.07);--color-bg:#f1f5f9;--color-surface:#fff;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--shadow-card:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow-card-hover:0 16px 32px rgba(0,0,0,.08),0 4px 8px rgba(0,0,0,.04);--shadow-nav:0 1px 3px rgba(0,0,0,.05);--font-sans:"GoogleSans","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--max-width:1200px;--nav-height:68px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--ease:cubic-bezier(0.4,0,0.2,1);--transition:200ms var(--ease);--transition-slow:350ms var(--ease)}@font-face{font-family:GoogleSans;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/GoogleSans-Regular.ttf) format("truetype")}@font-face{font-family:GoogleSans;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/GoogleSans-Medium.ttf) format("truetype")}@font-face{font-family:GoogleSans;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/GoogleSans-Bold.ttf) format("truetype")}@font-face{font-family:GoogleSans;font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/GoogleSans-Italic.ttf) format("truetype")}@font-face{font-family:GoogleSans;font-style:italic;font-display:swap;font-weight:500;src:url(/fonts/GoogleSans-MediumItalic.ttf) format("truetype")}@font-face{font-family:GoogleSans;font-style:italic;font-display:swap;font-weight:700;src:url(/fonts/GoogleSans-BoldItalic.ttf) format("truetype")}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.navbar{position:-webkit-sticky;position:sticky;top:0;z-index:100;height:var(--nav-height);background:hsla(0,0%,100%,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-nav)}.navbar__inner{max-width:var(--max-width);margin:0 auto;height:100%;justify-content:space-between;padding:0 24px}.navbar__brand,.navbar__inner{display:flex;align-items:center}.navbar__brand{gap:14px}.navbar__logo{width:44px;height:auto;transition:transform var(--transition)}.navbar__logo:hover{transform:scale(1.05)}.navbar__title{font-size:18px;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.navbar__subtitle{font-size:12px;color:var(--color-text-muted);font-weight:500;letter-spacing:.02em}.page{min-height:100vh;display:flex;flex-direction:column}.page__content{flex:1 1;max-width:var(--max-width);margin:0 auto;width:100%;padding:0 24px}.hero{padding:48px 0 36px}.hero__label{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius-xl);font-size:13px;font-weight:600;margin-bottom:16px;letter-spacing:.01em}.hero__label-dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);animation:pulse 2s ease-in-out infinite}.hero__title{font-size:36px;font-weight:700;color:var(--color-text);line-height:1.2;letter-spacing:-.03em;margin-bottom:10px}.hero__description{font-size:16px;color:var(--color-text-secondary);max-width:520px;line-height:1.6}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px;padding-bottom:64px}@media (max-width:900px){.catalog-grid{grid-template-columns:repeat(2,1fr);gap:20px}}@media (max-width:600px){.catalog-grid{grid-template-columns:1fr;gap:16px}.hero__title{font-size:28px}.hero{padding:32px 0 24px}}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;box-shadow:var(--shadow-card);transition:transform var(--transition-slow),box-shadow var(--transition-slow),border-color var(--transition);display:flex;flex-direction:column;animation:fadeInUp .5s var(--ease) both}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);border-color:var(--color-primary-light)}.card:first-child{animation-delay:.05s}.card:nth-child(2){animation-delay:.1s}.card:nth-child(3){animation-delay:.15s}.card:nth-child(4){animation-delay:.2s}.card:nth-child(5){animation-delay:.25s}.card:nth-child(6){animation-delay:.3s}.card:nth-child(7){animation-delay:.35s}.card:nth-child(8){animation-delay:.4s}.card:nth-child(9){animation-delay:.45s}.card__image-wrap{position:relative;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.card__image{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}.card:hover .card__image{transform:scale(1.04)}.card__image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.04));pointer-events:none}.card__body{padding:20px;display:flex;flex-direction:column;flex:1 1}.card__title{font-size:17px;font-weight:600;color:var(--color-text);line-height:1.35;margin-bottom:8px;letter-spacing:-.01em}.card__description{font-size:13px;color:var(--color-text-secondary);line-height:1.6;flex:1 1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.card__actions{padding:0 20px 20px;display:flex;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;transition:background var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition);white-space:nowrap}.btn:active{transform:scale(.97)}.btn--primary{background:var(--color-primary);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.25)}.btn--primary:hover{background:var(--color-primary-dark);box-shadow:0 4px 12px rgba(37,99,235,.3)}.btn--outline{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn--outline:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-text-muted)}.btn__icon{width:16px;height:16px;flex-shrink:0}.skeleton-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px;padding-bottom:64px}@media (max-width:900px){.skeleton-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.skeleton-grid{grid-template-columns:1fr}}.skeleton-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;animation:fadeInUp .4s var(--ease) both}.skeleton-card:nth-child(2){animation-delay:.08s}.skeleton-card:nth-child(3){animation-delay:.16s}.skeleton-card:nth-child(4){animation-delay:.24s}.skeleton-card:nth-child(5){animation-delay:.32s}.skeleton-card:nth-child(6){animation-delay:.4s}.skeleton__image{aspect-ratio:4/3;background:linear-gradient(90deg,#f1f5f9 25%,#e8ecf1 50%,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.skeleton__body{padding:20px}.skeleton__line{height:14px;border-radius:6px;background:linear-gradient(90deg,#f1f5f9 25%,#e8ecf1 50%,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite;margin-bottom:10px}.skeleton__line--title{height:18px;width:70%;margin-bottom:14px}.skeleton__line--short{width:50%}.skeleton__actions{padding:0 20px 20px;display:flex;gap:10px}.skeleton__btn{height:38px;width:110px;border-radius:var(--radius-sm);background:linear-gradient(90deg,#f1f5f9 25%,#e8ecf1 50%,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.error-state{text-align:center;padding:80px 24px}.error-state__icon{width:56px;height:56px;margin:0 auto 16px;color:var(--color-text-muted)}.error-state__title{font-size:18px;font-weight:600;color:var(--color-text);margin-bottom:8px}.error-state__message{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px}.error-state__btn{padding:10px 24px;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:14px;font-weight:600;transition:background var(--transition)}.error-state__btn:hover{background:var(--color-primary-dark)}.empty-state{text-align:center;padding:80px 24px;color:var(--color-text-muted)}.empty-state__icon{width:64px;height:64px;margin:0 auto 16px;opacity:.5}.empty-state__text{font-size:16px;font-weight:500}.footer{border-top:1px solid var(--color-border);padding:28px 24px;text-align:center;background:var(--color-surface)}.footer__text{font-size:13px;color:var(--color-text-muted);font-weight:500}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}