 @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');

        :root {
            --rednote: #FF2442;
            --rednote-hover: #E01E3A;
            --rednote-soft: #FFF1F3;
            --rednote-glow: rgba(255, 36, 66, 0.15);
            --ink: #0A0A0B;
            --ink-soft: #1A1A1C;
            --muted: #6B7280;
            --surface: #FFFFFF;
            --surface-2: #FAFAFA;
            --surface-3: #F4F4F5;
            --border: rgba(0, 0, 0, 0.06);
            --border-strong: rgba(0, 0, 0, 0.1);
        }

        * { -webkit-tap-highlight-color: transparent; }

        html { scroll-behavior: smooth; }

        body {
            font-family: 'Inter', system-ui, -apple-system, sans-serif;
            background: #FAFAF9;
            color: var(--ink);
            font-feature-settings: 'cv11', 'ss01', 'ss02';
            -webkit-font-smoothing: antialiased;
        }

        .font-display { font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; letter-spacing: -0.02em; }

        /* Scrollbar */
        .hide-scrollbar::-webkit-scrollbar { display: none; }
        .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

        /* Glass header */
        .glass-header {
            background: rgba(255, 255, 255, 0.82);
            backdrop-filter: saturate(180%) blur(20px);
            -webkit-backdrop-filter: saturate(180%) blur(20px);
            border-bottom: 1px solid var(--border);
        }

.masonry-grid{

    display:grid;

    grid-template-columns:repeat(2,minmax(0,1fr));

    gap:12px;

    align-items:start;

}

@media(min-width:640px){

.masonry-grid{

grid-template-columns:repeat(3,minmax(0,1fr));

gap:16px;

}

}

@media(min-width:1024px){

.masonry-grid{

grid-template-columns:repeat(4,minmax(0,1fr));

gap:20px;

}

}

@media(min-width:1280px){

.masonry-grid{

grid-template-columns:repeat(5,minmax(0,1fr));

}

}

.masonry-item{

display:block;

}

.product-card{

height:100%;

display:flex;

flex-direction:column;

}
        /* Product card */
        .product-card {
            background: var(--surface);
            border-radius: 20px;
            overflow: hidden;
            border: 1px solid var(--border);
            transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                        box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
                        border-color 0.3s ease;
            will-change: transform;
        }
        .product-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.12),
                        0 8px 16px -8px rgba(0, 0, 0, 0.08);
            border-color: var(--border-strong);
        }
        .product-card:hover .card-image {
            transform: scale(1.06);
        }
        .product-card:hover .quick-action {
            opacity: 1;
            transform: translateY(0);
        }

        .image-wrapper{

    aspect-ratio:7 / 9;

    overflow:hidden;

    background:#f3f3f3;

}

.card-image{

    width:100%;

    height:100%;

    display:block;

    object-fit:cover;

    transition:transform .7s cubic-bezier(.22,1,.36,1);

}

        .quick-action {
            opacity: 0;
            transform: translateY(8px);
            transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
        }

        /* Category tabs */
        .category-pill {
            position: relative;
            padding: 8px 16px;
            border-radius: 999px;
            font-size: 13px;
            font-weight: 600;
            letter-spacing: -0.01em;
            color: var(--muted);
            background: transparent;
            border: 1px solid transparent;
            transition: all 0.25s ease;
            white-space: nowrap;
        }
        .category-pill:hover {
            color: var(--ink);
            background: var(--surface-3);
        }
        .category-pill.active {
            color: var(--surface);
            background: var(--ink);
            border-color: var(--ink);
        }

        /* Search */
        .search-wrap {
            position: relative;
            background: var(--surface-3);
            border-radius: 999px;
            transition: all 0.25s ease;
            border: 1.5px solid transparent;
        }
        .search-wrap:focus-within {
            background: var(--surface);
            border-color: var(--ink);
            box-shadow: 0 0 0 4px rgba(10, 10, 11, 0.06);
        }
        .search-wrap input {
            background: transparent;
            width: 100%;
            padding: 11px 16px 11px 44px;
            font-size: 14px;
            font-weight: 500;
            outline: none;
            color: var(--ink);
        }
        .search-wrap input::placeholder { color: #9CA3AF; font-weight: 500; }
        .search-wrap .search-icon {
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--muted);
            font-size: 14px;
        }

        /* Primary button */
        .btn-primary {
            background: var(--ink);
            color: white;
            padding: 10px 20px;
            border-radius: 999px;
            font-size: 14px;
            font-weight: 600;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.25s ease;
            border: 1px solid var(--ink);
        }
        .btn-primary:hover {
            background: var(--ink-soft);
            transform: translateY(-1px);
            box-shadow: 0 8px 20px -8px rgba(10, 10, 11, 0.4);
        }

        .icon-btn {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--ink);
            background: transparent;
            transition: all 0.2s ease;
            position: relative;
        }
        .icon-btn:hover {
            background: var(--surface-3);
        }
        .icon-btn .dot {
            position: absolute;
            top: 9px;
            right: 10px;
            width: 8px;
            height: 8px;
            background: var(--rednote);
            border-radius: 50%;
            border: 2px solid white;
        }

        /* Avatar */
        .avatar {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: linear-gradient(135deg, #FF2442 0%, #FF6B8A 50%, #FFB3C1 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: 700;
            font-size: 14px;
            box-shadow: 0 2px 8px -2px var(--rednote-glow);
            cursor: pointer;
            transition: transform 0.2s ease;
        }
        .avatar:hover { transform: scale(1.05); }

        /* Mobile nav */
        .mobile-nav {
            background: rgba(255, 255, 255, 0.9);
            backdrop-filter: saturate(180%) blur(24px);
            -webkit-backdrop-filter: saturate(180%) blur(24px);
            border-top: 1px solid var(--border);
        }
        .nav-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 3px;
            color: var(--muted);
            font-size: 10px;
            font-weight: 600;
            padding: 6px 12px;
            transition: color 0.2s ease;
            position: relative;
        }
        .nav-item.active { color: var(--ink); }
        .nav-item.active::before {
            content: '';
            position: absolute;
            top: -8px;
            left: 50%;
            transform: translateX(-50%);
            width: 20px;
            height: 3px;
            background: var(--ink);
            border-radius: 0 0 4px 4px;
        }
        .nav-item i { font-size: 18px; }
        .nav-item span { letter-spacing: 0.01em; }

        .fab {
            width: 48px;
            height: 48px;
            background: var(--rednote);
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            box-shadow: 0 8px 24px -4px rgba(255, 36, 66, 0.45);
            transition: all 0.25s cubic-bezier(0.22, 1, 0.36, 1);
            margin-top: -18px;
        }
        .fab:hover {
            transform: translateY(-2px) scale(1.05);
            box-shadow: 0 12px 28px -4px rgba(255, 36, 66, 0.55);
        }
        .fab i { font-size: 20px; }

        /* Skeleton */
        .skeleton {
            background: linear-gradient(90deg, #F4F4F5 0%, #ECECEE 50%, #F4F4F5 100%);
            background-size: 200% 100%;
            animation: shimmer 1.6s ease-in-out infinite;
        }
        @keyframes shimmer {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }

        /* Badge */
        .discount-badge {
            background: var(--rednote);
            color: white;
            font-size: 10px;
            font-weight: 700;
            padding: 5px 9px;
            border-radius: 999px;
            letter-spacing: 0.02em;
            box-shadow: 0 4px 12px -2px var(--rednote-glow);
        }

        .line-clamp-2 {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        /* Fade in */
        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(12px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .fade-up { animation: fadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both; }

        /* Safe area */
        .pb-safe { padding-bottom: env(safe-area-inset-bottom); }

        /* Price */
        .price-main {
            font-family: 'Plus Jakarta Sans', sans-serif;
            font-weight: 800;
            letter-spacing: -0.03em;
            color: var(--ink);
        }

        /* Category label */
        .cat-label {
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: var(--muted);
        }

        /* Featured chip */
        .featured-chip {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            background: #FFFBEB;
            color: #B45309;
            font-size: 10px;
            font-weight: 700;
            padding: 4px 8px;
            border-radius: 6px;
            letter-spacing: 0.02em;
        }
        .featured-chip i { font-size: 9px; }

        /* Page header */
        .page-hero {
            background: linear-gradient(135deg, #FFF1F3 0%, #FFF8F5 100%);
            border-radius: 24px;
            padding: 28px 28px;
            margin-bottom: 28px;
            position: relative;
            overflow: hidden;
            border: 1px solid rgba(255, 36, 66, 0.08);
        }
        .page-hero::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -10%;
            width: 300px;
            height: 300px;
            background: radial-gradient(circle, rgba(255, 36, 66, 0.08) 0%, transparent 70%);
            border-radius: 50%;
        }