CEE Révolution Inc. | Équipements Forestiers Québec :root { –forest-dark: #1a1e1a; –forest-green: #2d4a2d; –forest-light: #3d5c3d; –bark-brown: #3d2914; –rust-orange: #d35400; –safety-orange: #ff6b35; –cream: #f5f1e8; –steel: #4a5568; –wood-light: #ddd0bb; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: ‘Barlow’, sans-serif; background: var(–forest-dark); color: var(–cream); overflow-x: hidden; } /* Noise Texture Overlay */ body::before { content:  »; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: url(« data:image/svg+xml,%3Csvg viewBox=’0 0 200 200′ xmlns=’http://www.w3.org/2000/svg’%3E%3Cfilter id=’noiseFilter’%3E%3CfeTurbulence type=’fractalNoise’ baseFrequency=’0.9′ numOctaves=’4′ stitchTiles=’stitch’/%3E%3C/filter%3E%3Crect width=’100%25′ height=’100%25′ filter=’url(%23noiseFilter)’/%3E%3C/svg%3E »); opacity: 0.03; pointer-events: none; z-index: 1000; } /* Navigation */ nav { position: fixed; top: 0; width: 100%; padding: 1rem 3rem; display: flex; justify-content: space-between; align-items: center; z-index: 100; background: linear-gradient(180deg, rgba(26,30,26,0.95) 0%, rgba(26,30,26,0) 100%); transition: all 0.4s ease; } nav.scrolled { background: rgba(26,30,26,0.98); box-shadow: 0 4px 30px rgba(0,0,0,0.4); } .logo { height: 60px; filter: brightness(1.1); transition: transform 0.3s ease; } .logo:hover { transform: scale(1.05); } .nav-links { display: flex; gap: 2.5rem; list-style: none; } .nav-links a { color: var(–cream); text-decoration: none; font-family: ‘Barlow Condensed’, sans-serif; font-weight: 600; font-size: 1.1rem; letter-spacing: 0.5px; text-transform: uppercase; position: relative; transition: color 0.3s ease; } .nav-links a::after { content:  »; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: var(–safety-orange); transition: width 0.3s ease; } .nav-links a:hover { color: var(–safety-orange); } .nav-links a:hover::after { width: 100%; } /* Hero Section */ .hero { height: 100vh; position: relative; display: flex; align-items: center; overflow: hidden; } .hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(26,30,26,0.9) 0%, rgba(45,74,45,0.7) 50%, rgba(26,30,26,0.85) 100%), url(‘https://www.ceerevolution.ca/wp-content/uploads/2025/01/banner_home-scaled.jpg’); background-size: cover; background-position: center; filter: saturate(0.8); } .hero-content { position: relative; z-index: 2; padding: 0 8%; max-width: 900px; } .hero-badge { display: inline-flex; align-items: center; gap: 0.5rem; background: var(–rust-orange); color: var(–cream); padding: 0.5rem 1.2rem; font-family: ‘Barlow Condensed’, sans-serif; font-weight: 700; font-size: 0.85rem; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 1.5rem; animation: slideInLeft 0.8s ease forwards; opacity: 0; } .hero h1 { font-family: ‘Bebas Neue’, sans-serif; font-size: clamp(4rem, 10vw, 8rem); line-height: 0.95; letter-spacing: -2px; margin-bottom: 1.5rem; animation: slideUp 0.8s ease 0.2s forwards; opacity: 0; } .hero h1 span { display: block; color: var(–safety-orange); } .hero-subtitle { font-size: 1.4rem; font-weight: 400; color: rgba(245,241,232,0.85); max-width: 550px; line-height: 1.6; margin-bottom: 2.5rem; animation: slideUp 0.8s ease 0.4s forwards; opacity: 0; } .hero-cta { display: flex; gap: 1.5rem; animation: slideUp 0.8s ease 0.6s forwards; opacity: 0; } .btn-primary { display: inline-flex; align-items: center; gap: 0.8rem; background: var(–safety-orange); color: var(–forest-dark); padding: 1rem 2rem; font-family: ‘Barlow Condensed’, sans-serif; font-weight: 700; font-size: 1.1rem; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; border: none; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; } .btn-primary::before { content:  »; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); transition: left 0.5s ease; } .btn-primary:hover { background: #ff8c5a; transform: translateY(-3px); box-shadow: 0 10px 30px rgba(255,107,53,0.4); } .btn-primary:hover::before { left: 100%; } .btn-secondary { display: inline-flex; align-items: center; gap: 0.8rem; background: transparent; color: var(–cream); padding: 1rem 2rem; font-family: ‘Barlow Condensed’, sans-serif; font-weight: 700; font-size: 1.1rem; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; border: 2px solid var(–cream); cursor: pointer; transition: all 0.3s ease; } .btn-secondary:hover { background: var(–cream); color: var(–forest-dark); } /* Scroll Indicator */ .scroll-indicator { position: absolute; bottom: 3rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 0.5rem; animation: bounce 2s infinite; } .scroll-indicator span { font-size: 0.7rem; letter-spacing: 2px; text-transform: uppercase; opacity: 0.6; } .scroll-indicator svg { width: 24px; height: 24px; stroke: var(–cream); opacity: 0.6; } /* Stats Bar */ .stats-bar { background: var(–bark-brown); padding: 3rem 8%; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; position: relative; } .stats-bar::before { content:  »; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(–safety-orange), var(–rust-orange), var(–safety-orange)); } .stat-item { text-align: center; } .stat-number { font-family: ‘Bebas Neue’, sans-serif; font-size: 3.5rem; color: var(–safety-orange); line-height: 1; } .stat-label { font-family: ‘Barlow Condensed’, sans-serif; font-size: 1rem; letter-spacing: 1px; text-transform: uppercase; opacity: 0.8; margin-top: 0.5rem; } /* Section Titles */ .section-title { font-family: ‘Bebas Neue’, sans-serif; font-size: clamp(3rem, 6vw, 5rem); line-height: 1; margin-bottom: 1rem; } .section-title span { color: var(–safety-orange); } .section-subtitle { font-size: 1.1rem; opacity: 0.7; max-width: 600px; } /* Products Section */ .products { padding: 8rem 8%; background: linear-gradient(180deg, var(–forest-dark) 0%, var(–forest-green) 50%, var(–forest-dark) 100%); } .products-header { text-align: center; margin-bottom: 5rem; } .product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 2.5rem; } .product-card { background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); overflow: hidden; transition: all 0.4s ease; position: relative; } .product-card::before { content:  »; position: absolute; top: 0; left: 0; width: 4px; height: 0; background: var(–safety-orange); transition: height 0.4s ease; } .product-card:hover { transform: translateY(-10px); box-shadow: 0 20px 60px rgba(0,0,0,0.5); border-color: var(–safety-orange); } .product-card:hover::before { height: 100%; } .product-image { height: 280px; overflow: hidden; position: relative; } .product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; } .product-card:hover .product-image img { transform: scale(1.1); } .product-badge { position: absolute; top: 1rem; right: 1rem; background: var(–safety-orange); color: var(–forest-dark); padding: 0.4rem 1rem; font-family: ‘Barlow Condensed’, sans-serif; font-weight: 700; font-size: 0.8rem; letter-spacing: 1px; text-transform: uppercase; } .product-content { padding: 2rem; } .product-name { font-family: ‘Bebas Neue’, sans-serif; font-size: 2rem; margin-bottom: 0.5rem; } .product-desc { font-size: 0.95rem; opacity: 0.75; line-height: 1.6; margin-bottom: 1.5rem; } .product-specs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; } .spec-tag { background: rgba(255,255,255,0.1); padding: 0.3rem 0.8rem; font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; } .product-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,0.1); } .product-price { font-family: ‘Bebas Neue’, sans-serif; font-size: 2.2rem; color: var(–safety-orange); } .product-price small { font-family: ‘Barlow’, sans-serif; font-size: 0.8rem; opacity: 0.6; display: block; } /* Featured Product – La Forestière */ .featured { padding: 8rem 8%; background: var(–forest-dark); position: relative; overflow: hidden; } .featured::before { content: ‘LA FORESTIÈRE’; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-family: ‘Bebas Neue’, sans-serif; font-size: 20vw; color: rgba(255,255,255,0.02); white-space: nowrap; pointer-events: none; } .featured-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; } .featured-image { position: relative; } .featured-image img { width: 100%; border: 4px solid var(–bark-brown); box-shadow: 20px 20px 0 var(–safety-orange); } .featured-image::before { content:  »; position: absolute; top: -20px; left: -20px; right: 40px; bottom: 40px; border: 2px solid var(–forest-light); z-index: -1; } .featured-content { position: relative; z-index: 2; } .featured-label { display: inline-block; background: var(–safety-orange); color: var(–forest-dark); padding: 0.5rem 1.2rem; font-family: ‘Barlow Condensed’, sans-serif; font-weight: 700; font-size: 0.85rem; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 1.5rem; } .featured h2 { font-family: ‘Bebas Neue’, sans-serif; font-size: 4rem; line-height: 1; margin-bottom: 1.5rem; } .featured h2 span { color: var(–safety-orange); } .featured-desc { font-size: 1.15rem; line-height: 1.8; opacity: 0.85; margin-bottom: 2rem; } .feature-list { list-style: none; margin-bottom: 2.5rem; } .feature-list li { display: flex; align-items: center; gap: 1rem; padding: 0.8rem 0; border-bottom: 1px solid rgba(255,255,255,0.1); font-size: 1.05rem; } .feature-list li svg { width: 24px; height: 24px; stroke: var(–safety-orange); flex-shrink: 0; } .price-box { background: rgba(0,0,0,0.3); padding: 2rem; display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .price-box .label { font-size: 0.9rem; opacity: 0.6; text-transform: uppercase; letter-spacing: 1px; } .price-box .price { font-family: ‘Bebas Neue’, sans-serif; font-size: 3rem; color: var(–safety-orange); } .price-box .financing { text-align: right; } .price-box .financing span { font-family: ‘Bebas Neue’, sans-serif; font-size: 1.8rem; color: var(–cream); } /* Testimonials */ .testimonials { padding: 8rem 8%; background: linear-gradient(135deg, var(–bark-brown) 0%, var(–forest-dark) 100%); } .testimonials-header { text-align: center; margin-bottom: 5rem; } .testimonial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 2rem; } .testimonial-card { background: rgba(0,0,0,0.3); padding: 2.5rem; border-left: 4px solid var(–safety-orange); position: relative; } .testimonial-card::before { content: ‘ »‘; position: absolute; top: 1rem; right: 2rem; font-family: ‘Bebas Neue’, sans-serif; font-size: 8rem; color: var(–safety-orange); opacity: 0.15; line-height: 1; } .testimonial-text { font-size: 1.1rem; line-height: 1.8; font-style: italic; margin-bottom: 2rem; position: relative; z-index: 2; } .testimonial-author { display: flex; align-items: center; gap: 1rem; } .testimonial-author img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; border: 3px solid var(–safety-orange); } .author-info h4 { font-family: ‘Barlow Condensed’, sans-serif; font-size: 1.2rem; font-weight: 700; letter-spacing: 0.5px; } .author-info span { font-size: 0.85rem; opacity: 0.6; } .stars { display: flex; gap: 0.25rem; margin-top: 0.5rem; } .stars svg { width: 16px; height: 16px; fill: var(–safety-orange); } /* About / Team */ .about { padding: 8rem 8%; background: var(–forest-dark); } .about-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 5rem; align-items: center; } .about-content .section-title { margin-bottom: 2rem; } .about-text { font-size: 1.1rem; line-height: 1.9; opacity: 0.85; margin-bottom: 2rem; } .values-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 3rem; } .value-item { background: rgba(255,255,255,0.05); padding: 1.5rem; border-left: 3px solid var(–safety-orange); } .value-item h4 { font-family: ‘Barlow Condensed’, sans-serif; font-size: 1.2rem; font-weight: 700; letter-spacing: 0.5px; margin-bottom: 0.5rem; color: var(–safety-orange); } .value-item p { font-size: 0.9rem; opacity: 0.7; line-height: 1.5; } .team-image { position: relative; } .team-image img { width: 100%; filter: grayscale(20%); } .team-image::before { content:  »; position: absolute; bottom: -20px; right: -20px; width: 80%; height: 80%; background: var(–safety-orange); z-index: -1; } .team-badge { position: absolute; bottom: 2rem; left: 2rem; background: var(–forest-dark); padding: 1.5rem 2rem; } .team-badge h4 { font-family: ‘Bebas Neue’, sans-serif; font-size: 1.5rem; } .team-badge span { font-size: 0.85rem; opacity: 0.7; } /* Distributors */ .distributors { padding: 8rem 8%; background: linear-gradient(180deg, var(–forest-green) 0%, var(–forest-dark) 100%); } .distributors-header { text-align: center; margin-bottom: 5rem; } .distributor-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .distributor-card { background: rgba(0,0,0,0.4); padding: 2rem; border: 1px solid rgba(255,255,255,0.1); transition: all 0.3s ease; text-align: center; } .distributor-card:hover { border-color: var(–safety-orange); transform: translateY(-5px); } .distributor-card h4 { font-family: ‘Bebas Neue’, sans-serif; font-size: 1.6rem; margin-bottom: 0.5rem; } .distributor-card .location { color: var(–safety-orange); font-weight: 600; margin-bottom: 1rem; } .distributor-card .products-list { font-size: 0.85rem; opacity: 0.7; margin-bottom: 1.5rem; } .distributor-card .contact-info { font-size: 0.9rem; } .distributor-card .contact-info a { color: var(–cream); text-decoration: none; display: block; padding: 0.3rem 0; transition: color 0.3s ease; } .distributor-card .contact-info a:hover { color: var(–safety-orange); } /* CTA Section */ .cta-section { padding: 8rem 8%; background: linear-gradient(135deg, rgba(26,30,26,0.95) 0%, rgba(61,44,20,0.9) 100%), url(‘https://www.ceerevolution.ca/wp-content/uploads/2025/03/FORESTIERE-AU-TRAVAIL-2-scaled.jpg’); background-size: cover; background-position: center; background-attachment: fixed; text-align: center; } .cta-section h2 { font-family: ‘Bebas Neue’, sans-serif; font-size: clamp(3rem, 7vw, 5rem); margin-bottom: 1.5rem; } .cta-section h2 span { color: var(–safety-orange); } .cta-section p { font-size: 1.2rem; opacity: 0.8; max-width: 600px; margin: 0 auto 2.5rem; } .cta-buttons { display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; } /* Footer */ footer { background: #0d0f0d; padding: 5rem 8% 2rem; } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 4rem; margin-bottom: 4rem; } .footer-brand img { height: 70px; margin-bottom: 1.5rem; } .footer-brand p { font-size: 0.95rem; opacity: 0.7; line-height: 1.7; margin-bottom: 1.5rem; } .social-links { display: flex; gap: 1rem; } .social-links a { width: 45px; height: 45px; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .social-links a:hover { background: var(–safety-orange); } .social-links svg { width: 22px; height: 22px; fill: var(–cream); } .footer-col h4 { font-family: ‘Barlow Condensed’, sans-serif; font-size: 1.1rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 1.5rem; color: var(–safety-orange); } .footer-col ul { list-style: none; } .footer-col ul li { margin-bottom: 0.8rem; } .footer-col ul a { color: var(–cream); opacity: 0.7; text-decoration: none; font-size: 0.95rem; transition: all 0.3s ease; } .footer-col ul a:hover { opacity: 1; color: var(–safety-orange); } .footer-bottom { padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.1); display: flex; justify-content: space-between; align-items: center; font-size: 0.85rem; opacity: 0.6; } /* Animations */ @keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); } 40% { transform: translateX(-50%) translateY(-10px); } 60% { transform: translateX(-50%) translateY(-5px); } } @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .animate-on-scroll { opacity: 0; transform: translateY(30px); transition: all 0.8s ease; } .animate-on-scroll.visible { opacity: 1; transform: translateY(0); } /* Responsive */ @media (max-width: 1024px) { .featured-grid, .about-grid { grid-template-columns: 1fr; } .footer-grid { grid-template-columns: repeat(2, 1fr); } .stats-bar { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { nav { padding: 1rem 1.5rem; } .nav-links { display: none; } .hero-content { padding: 0 5%; } .hero-cta { flex-direction: column; } .product-grid, .testimonial-grid, .distributor-grid { grid-template-columns: 1fr; } .footer-grid { grid-template-columns: 1fr; text-align: center; } .social-links { justify-content: center; } .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; } }
Fabriqué en Beauce, Québec

ÉQUIPEMENTS FORESTIERS

Débusqueuse, treuil, poulie et fendeuse. Des équipements robustes et performants conçus pour simplifier vos travaux en forêt.

Défiler
4500
Lbs de traction
125
Pieds de câble
6
Distributeurs au QC
2024
Fondée en Beauce

NOS PRODUITS

Des équipements forestiers de qualité supérieure, conçus et fabriqués au Québec pour répondre à vos besoins spécifiques.

La Forestière V07 Populaire

La Forestière V07

La plus complète. Équipée d’un treuil hydraulique haute performance et d’une fendeuse intégrée. Idéale pour réduire vos équipements.

Treuil hydraulique Fendeuse 125 pi câble Pour VTT
La Forestière V08 Érablières

La Forestière V08

Compacte et maniable. Mât conçu pour ne pas accrocher les tubulures d’érablière. Se faufile facilement partout.

Treuil hydraulique Profil bas 125 pi câble Pour VTT
La Forestière V04 Économique

La Forestière V04

Treuil électrique haute performance avec télécommande. Parfaite pour les travaux occasionnels à petit budget.

Treuil électrique Télécommande Câble nylon 1/4"
Poulie CP-5

Poulie CP-5

Capacité de charge de 6000 lbs. Conçue pour dévier les charges ou multiplier la capacité de traction de vos équipements.

6000 lbs Câble nylon/acier Robuste
Treuil CT-5 sur mât

Treuil CT-5 sur Mât

Treuil hydraulique robuste de 4500 lbs assemblé sur mât. Installez-le où vous le souhaitez pour une flexibilité maximale.

4500 lbs Hydraulique Sur mât
Valve CVC-11 Exclusif!

Valve CVC-11

Exclusivité CEE Révolution! Facilite le démarrage de vos unités hydrauliques par temps froid. Fonctionne sur fendeuse et Forestière.

Démarrage facile Temps froid Exclusivité

CE QU’EN DISENT NOS CLIENTS

Des propriétaires forestiers satisfaits à travers tout le Québec

« Super content de mon achat. La forestière travaille très bien, facile à bouger et à placer où on veut. Le treuil nous a bien impressionné avec la grosseur des troncs que nous avons sortis du bois dès notre premier essai. La fendeuse va très bien aussi. Je recommande! »

Frédéric Ladouceur

Frédéric Ladouceur

St-Émile-de-Suffolk

« Je sors du cèdre en longueur de 20 à 30 pieds sans problème, même plusieurs à la fois. »

Samuel Desrochers

Samuel Desrochers

Services Forestiers Desrochers – Estrie

« Le treuil est assez puissant pour ma part. Le tracteur est pas gros. C’est un set up que je recommande et que j’adore. Très bonne machine. 💪 »

Nyl Carrier

Nyl Carrier

Thetford Mines

« On sort du bois depuis 1 semaine à travers la tubulure dans l’érablière. Dans un secteur pas trop beau. VTT avec la Forestière, ça fait une belle job. »

David Pelletier

David Pelletier

Propriétaire d’érablière

« 100% de différence, fendeuse à 27°F, ça part toute de suite au premier essai. Satisfait. »

Yvan Thibault

Coaticook — Valve CVC-11

« À date très satisfait de la machine, ça va très bien. »

Julien Bélanger

Julien Bélanger

Victoriaville

NOTRE ÉQUIPE

Fondée en 2024 par René Drouin et Sylvain Quirion, CEE RÉVOLUTION se spécialise dans le développement d’équipements polyvalents et modulaires adaptés aux besoins et aux budgets de chaque client.

Nous concevons tous nos équipements en interne, assurant ainsi une qualité optimale et une attention particulière à chaque détail. Nos produits sont fabriqués avec soin en Beauce, dans le respect des normes les plus strictes.

Qualité

Équipements durables et haute performance conçus pour durer

Innovation

Conception modulaire et évolutive selon vos besoins

Service

Équipe disponible pour vous accompagner à chaque étape

Local

Fièrement fabriqué au Québec, en Beauce

L'équipe CEE Révolution - René Drouin et Sylvain Quirion

René & Sylvain

Fondateurs – Depuis 2024

NOS DISTRIBUTEURS

René et Sylvain, toujours à votre écoute pour vous offrir l’assistance dont vous avez besoin.

CEE Révolution Inc.

Saint-Georges & Saint-Philibert

Forestière – Treuil – Poulie

Écoforêt Inc.

Jonquière, Saguenay

Forestière – Treuil – Poulie

O’Bois Équipement Inc.

Coaticook

Forestière – Treuil – Poulie

Bran de Scie & Cie

Saint-Pacôme

Forestière – Treuil – Poulie

Armand Lapointe

Saint-Victor

Poulie

Grimard et Fils Inc.

Fortierville

Poulie

PRÊT À RÉVOLUTIONNER
VOS TRAVAUX FORESTIERS?

Contactez-nous dès maintenant pour des conseils personnalisés ou visitez notre boutique en ligne.

// Navbar scroll effect const navbar = document.getElementById(‘navbar’); window.addEventListener(‘scroll’, () => { if (window.scrollY > 50) { navbar.classList.add(‘scrolled’); } else { navbar.classList.remove(‘scrolled’); } }); // Scroll animation const animateElements = document.querySelectorAll(‘.animate-on-scroll’); const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add(‘visible’); } }); }, { threshold: 0.1, rootMargin: ‘0px 0px -50px 0px’ }); animateElements.forEach(el => observer.observe(el)); // Smooth scroll for anchor links document.querySelectorAll(‘a[href^= »# »]’).forEach(anchor => { anchor.addEventListener(‘click’, function(e) { e.preventDefault(); const target = document.querySelector(this.getAttribute(‘href’)); if (target) { target.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ }); } }); }); // Counter animation for stats const stats = document.querySelectorAll(‘.stat-number’); const statsObserver = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { const target = entry.target; const finalValue = parseInt(target.textContent); let currentValue = 0; const increment = finalValue / 50; const timer = setInterval(() => { currentValue += increment; if (currentValue >= finalValue) { target.textContent = finalValue.toLocaleString(); clearInterval(timer); } else { target.textContent = Math.floor(currentValue).toLocaleString(); } }, 30); statsObserver.unobserve(target); } }); }, { threshold: 0.5 }); stats.forEach(stat => statsObserver.observe(stat));