        :root {
            --cream: #FAF9F6;
            --beige: #F2EDE4;
            --tan: #D7C0AE;
            --espresso: #3C2A21;
            --caramel: #967E76;
            --leaf: #606C38;
        }

        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            background-color: var(--cream);
            color: var(--espresso);
            overflow-x: hidden;
            scroll-behavior: smooth;
        }

        .serif { font-family: 'Playfair Display', serif; }
        .handwritten { font-family: 'Dancing Script', cursive; }

        /* Animations */
        @keyframes fadeInUp {
            from { opacity: 0; transform: translateY(40px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .reveal { animation: fadeInUp 1s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
        
        /* Steam Animation */
        @keyframes steam {
            0% { transform: translateY(0) scale(1); opacity: 0; }
            50% { opacity: 0.4; }
            100% { transform: translateY(-60px) scale(2); opacity: 0; }
        }
        .steam {
            position: absolute;
            width: 20px;
            height: 20px;
            background: rgba(255,255,255,0.3);
            filter: blur(10px);
            border-radius: 50%;
            animation: steam 4s infinite;
        }

        .nav-glass {
            background: rgba(250, 249, 246, 0.9);
            backdrop-filter: blur(12px);
            transition: all 0.4s ease;
        }

        .btn-espresso {
            background-color: var(--espresso);
            color: white;
            transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
            position: relative;
            overflow: hidden;
        }
        .btn-espresso::after {
            content: '';
            position: absolute;
            top: 0; left: -100%; width: 100%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
            transition: 0.5s;
        }
        .btn-espresso:hover::after { left: 100%; }
        .btn-espresso:hover { background-color: var(--caramel); transform: translateY(-3px); }

        .image-placeholder {
            background: linear-gradient(135deg, #F2EDE4 0%, #E7DED0 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #967E76;
            font-weight: 500;
            text-align: center;
            padding: 40px;
            position: relative;
        }

        .page { display: none; opacity: 0; transition: opacity 0.5s ease; }
        .page.active { display: block; opacity: 1; }

        .parallax-section {
            background-attachment: fixed;
            background-position: center;
            background-repeat: no-repeat;
            background-size: cover;
        }

        .filter-pill.active {
            background: var(--espresso);
            color: white;
            border-color: var(--espresso);
        }

        .cart-drawer {
            transition: transform 0.6s cubic-bezier(0.85, 0, 0.15, 1);
            z-index: 1001;
        }

        .line-clamp-3 {
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;  
            overflow: hidden;
        }
        /* Steam animation */
.steam {
  position: absolute;
  width: 60px;
  height: 120px;
  background: radial-gradient(circle at 50% 80%, rgba(255,255,255,0.35), transparent 70%);
  filter: blur(12px);
  animation: steam 6s infinite ease-in-out;
}

@keyframes steam {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  20% { opacity: 0.4; }
  50% { transform: translateY(-80px) scale(1.2); opacity: 0.25; }
  100% { transform: translateY(-160px) scale(1.4); opacity: 0; }
}

/* Marquee */
.marquee {
  display: flex;
  width: max-content;
  animation: marquee 25s linear infinite;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4em;
  text-transform: uppercase;
}

.marquee span {
  padding-right: 4rem;
}

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
