Luxury nail salon interior
Milton's Premier Beauty Destination

Your Hands Deserve
Something Extraordinary

Where meticulous artistry meets uncompromising luxury. At Sassy Nail, every detail is crafted to elevate your experience — from the moment you step through our doors.

10+ Years of Excellence
5k+ Happy Clients
100% Satisfaction
Scroll to discover
Sassy Nail salon workspace
Nail art detail
10+ Years
Crafting Beauty

More Than a Salon —
A Sanctuary of Style

Founded in the heart of Milton, Sassy Nail was born from a simple belief: everyone deserves to feel extraordinary. We've built our reputation not on trends that fade, but on the timeless art of making you look and feel your absolute best.

Our master technicians combine precision craftsmanship with an eye for contemporary design. Every service is performed with premium products, meticulous attention to hygiene, and a level of care that transforms a routine visit into a rejuvenating experience.

Premium Products Only top-tier, long-lasting formulations
Sterile & Safe Hospital-grade sanitation standards
Personalized Care Tailored to your unique style

Curated Services

From classic elegance to bold self-expression, every service is designed to exceed your expectations.

Luxury manicure service

Signature Manicure

A comprehensive nail care ritual including shaping, cuticle treatment, hand massage, and your choice of polish — from classic French to avant-garde art.

Book This Service
Relaxing pedicure service

Luxury Pedicure

Sink into comfort with our spa pedicure featuring warm soak, exfoliation, extended massage, and precision nail finishing for feet that feel renewed.

Book This Service
Gel nail extensions

Gel & Acrylic Extensions

Sculpt the perfect length and shape with our premium gel or acrylic systems. Flawless, durable, and designed to make a lasting impression.

Book This Service
Custom nail art design

Custom Nail Art

Express your personality with hand-painted designs, chrome finishes, ombré blends, and embellishments — each nail becomes a canvas for your style.

Book This Service
Professional hair styling

Hair Styling & Treatments

From precision cuts to restorative treatments, our hair services complete your transformation with expert technique and premium care products.

Book This Service
Spa beauty treatments

Spa & Beauty Services

Pamper yourself with our full range of beauty treatments — eyelash enhancements, waxing, and relaxation therapies in our tranquil setting.

Book This Service
Salon ambiance

Your Glow Awaits

Step into Sassy Nail and discover why Milton trusts us with their most important details. Book your appointment today and experience the difference that true craftsmanship makes.

Visit Sassy Nail

We'd love to welcome you to our salon. Reach out to book your appointment or learn more about our services.

Address 28 Cornelia Ct, Milton 05468-4642
Hours Mon – Sat: 9:00 AM – 7:00 PM
Sunday: Closed

Request an Appointment

/* ============================================ SASSY NAIL — Premium Dark Luxury Styles Teal + Slate Grey + Gold Accent ============================================ */ /* ---------- CSS Custom Properties ---------- */ :root { --color-bg-primary: #0a1a2e; --color-bg-secondary: #0d2137; --color-bg-tertiary: #112d46; --color-bg-card: #0f2740; --color-bg-card-hover: #132f4a; --color-slate-800: #1e3a5f; --color-slate-700: #2a4a6b; --color-teal-900: #0a2e3f; --color-teal-800: #0f4054; --color-teal-700: #145368; --color-gold: #d4af37; --color-gold-light: #e8c94a; --color-gold-dark: #b8941f; --color-gold-muted: rgba(212, 175, 55, 0.15); --color-text-primary: #f0f4f8; --color-text-secondary: #a8bdd0; --color-text-muted: #6b8fa8; --color-border: rgba(212, 175, 55, 0.2); --color-border-subtle: rgba(255, 255, 255, 0.06); --font-display: 'Cormorant Garamond', Georgia, serif; --font-body: 'Montserrat', 'Segoe UI', sans-serif; --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3); --shadow-md: 0 8px 32px rgba(0, 0, 0, 0.4); --shadow-lg: 0 16px 64px rgba(0, 0, 0, 0.5); --shadow-gold: 0 4px 20px rgba(212, 175, 55, 0.2); --radius-sm: 6px; --radius-md: 12px; --radius-lg: 20px; --radius-xl: 32px; --transition-fast: 0.2s ease; --transition-base: 0.3s ease; --transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1); } /* ---------- Reset & Base ---------- */ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: var(--font-body); background-color: var(--color-bg-primary); color: var(--color-text-primary); line-height: 1.6; overflow-x: hidden; } img { max-width: 100%; height: auto; display: block; } a { color: inherit; text-decoration: none; } button { font-family: inherit; cursor: pointer; border: none; background: none; } ul { list-style: none; } /* ---------- Loader ---------- */ .loader { position: fixed; inset: 0; z-index: 10000; background: var(--color-bg-primary); display: flex; align-items: center; justify-content: center; transition: opacity 0.5s ease, visibility 0.5s ease; } .loader.hidden { opacity: 0; visibility: hidden; pointer-events: none; } .loader-inner { display: flex; flex-direction: column; align-items: center; gap: 20px; } .loader-diamond { width: 40px; height: 40px; background: linear-gradient(135deg, var(--color-gold), var(--color-gold-dark)); transform: rotate(45deg) scale(0); animation: loaderPulse 1.2s ease-in-out infinite; box-shadow: var(--shadow-gold); } @keyframes loaderPulse { 0%, 100% { transform: rotate(45deg) scale(0.8); opacity: 0.6; } 50% { transform: rotate(45deg) scale(1.1); opacity: 1; } } /* ---------- Container ---------- */ .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; } /* ---------- Typography ---------- */ .section-tag { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-body); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-gold); margin-bottom: 16px; } .section-tag::before { content: ''; display: block; width: 32px; height: 1px; background: var(--color-gold); } .section-title { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 400; line-height: 1.15; color: var(--color-text-primary); margin-bottom: 20px; } .gold-text { color: var(--color-gold); font-style: italic; } .section-subtitle { font-size: 1rem; color: var(--color-text-secondary); max-width: 560px; line-height: 1.7; } .text-center { text-align: center; } /* ---------- Buttons ---------- */ .btn { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; padding: 14px 32px; border-radius: var(--radius-sm); transition: all var(--transition-base); position: relative; overflow: hidden; } .btn::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,0.1), transparent); opacity: 0; transition: opacity var(--transition-base); } .btn:hover::before { opacity: 1; } .btn-primary { background: linear-gradient(135deg, var(--color-gold), var(--color-gold-dark)); color: var(--color-bg-primary); box-shadow: var(--shadow-gold); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(212, 175, 55, 0.35); } .btn-outline { background: transparent; color: var(--color-text-primary); border: 1px solid rgba(255, 255, 255, 0.25); } .btn-outline:hover { border-color: var(--color-gold); color: var(--color-gold); transform: translateY(-2px); } .btn-outline-light { background: transparent; color: var(--color-text-primary); border: 1px solid rgba(255, 255, 255, 0.35); } .btn-outline-light:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--color-text-primary); transform: translateY(-2px); } .btn-lg { padding: 18px 40px; font-size: 0.9rem; } .btn-full { width: 100%; justify-content: center; } /* ---------- Navbar ---------- */ .navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 20px 0; transition: all var(--transition-base); } .navbar.scrolled { background: rgba(10, 26, 46, 0.95); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); padding: 12px 0; border-bottom: 1px solid var(--color-border-subtle); } .nav-container { max-width: 1200px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; } .nav-logo { display: flex; align-items: center; gap: 10px; font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; letter-spacing: 0.12em; color: var(--color-text-primary); transition: color var(--transition-fast); } .nav-logo:hover { color: var(--color-gold); } .logo-icon { color: var(--color-gold); } .nav-links { display: flex; align-items: center; gap: 36px; } .nav-link { font-size: 0.8rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-secondary); transition: color var(--transition-fast); position: relative; } .nav-link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background: var(--color-gold); transition: width var(--transition-base); } .nav-link:hover, .nav-link.active { color: var(--color-gold); } .nav-link:hover::after, .nav-link.active::after { width: 100%; } .nav-cta { padding: 10px 24px; border: 1px solid var(--color-gold); border-radius: var(--radius-sm); color: var(--color-gold) !important; transition: all var(--transition-base) !important; } .nav-cta::after { display: none; } .nav-cta:hover { background: var(--color-gold) !important; color: var(--color-bg-primary) !important; } .nav-toggle { display: none; flex-direction: column; gap: 5px; padding: 8px; z-index: 1001; } .hamburger { display: block; width: 24px; height: 2px; background: var(--color-text-primary); transition: all var(--transition-base); transform-origin: center; } .hamburger::before, .hamburger::after { content: ''; display: block; width: 24px; height: 2px; background: var(--color-text-primary); transition: all var(--transition-base); } .hamburger::before { transform: translateY(-6px); } .hamburger::after { transform: translateY(6px); } .nav-toggle.active .hamburger { background: transparent; } .nav-toggle.active .hamburger::before { transform: rotate(45deg); } .nav-toggle.active .hamburger::after { transform: rotate(-45deg); } /* ---------- Hero ---------- */ .hero { position: relative; min-height: 100vh; display: flex; align-items: center; overflow: hidden; } .hero-bg { position: absolute; inset: 0; z-index: 0; } .hero-bg img { width: 100%; height: 100%; object-fit: cover; } .hero-overlay { position: absolute; inset: 0; background: linear-gradient( 135deg, rgba(10, 26, 46, 0.92) 0%, rgba(13, 33, 55, 0.85) 40%, rgba(10, 46, 63, 0.7) 100% ); } .hero-content { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; padding: 120px 24px 80px; width: 100%; } .hero-badge { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 32px; } .badge-line { display: block; width: 40px; height: 1px; background: var(--color-gold); } .hero-badge span { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-gold); } .hero-title { font-family: var(--font-display); font-size: clamp(2.8rem, 6vw, 5rem); font-weight: 300; line-height: 1.08; color: var(--color-text-primary); margin-bottom: 24px; max-width: 700px; } .hero-subtitle { font-size: clamp(1rem, 1.5vw, 1.15rem); color: var(--color-text-secondary); max-width: 520px; line-height: 1.8; margin-bottom: 40px; } .hero-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 64px; } .hero-stats { display: flex; align-items: center; gap: 40px; } .stat { display: flex; flex-direction: column; gap: 4px; } .stat-number { font-family: var(--font-display); font-size: 2rem; font-weight: 600; color: var(--color-gold); line-height: 1; } .stat-label { font-size: 0.75rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-text-muted); } .stat-divider { width: 1px; height: 40px; background: rgba(255, 255, 255, 0.1); } .hero-scroll { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--color-text-muted); font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; } .scroll-indicator { width: 20px; height: 32px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 10px; display: flex; justify-content: center; padding-top: 6px; } .scroll-dot { width: 3px; height: 8px; background: var(--color-gold); border-radius: 2px; animation: scrollBounce 2s ease-in-out infinite; } @keyframes scrollBounce { 0%, 100% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(8px); opacity: 0.4; } } /* ---------- About ---------- */ .about { padding: 120px 0; background: var(--color-bg-primary); position: relative; } .about::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 1px; height: 80px; background: linear-gradient(to bottom, transparent, var(--color-gold)); } .about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; } .about-images { position: relative; height: 600px; } .about-img-main { position: absolute; top: 0; left: 0; width: 75%; height: 80%; border-radius: var(--radius-md); overflow: hidden; } .about-img-main img { width: 100%; height: 100%; object-fit: cover; } .about-img-accent { position: absolute; bottom: -20px; right: -20px; width: 75%; height: 80%; border: 1px solid var(--color-gold); border-radius: var(--radius-md); z-index: -1; opacity: 0.3; } .about-img-secondary { position: absolute; bottom: 0; right: 0; width: 55%; height: 55%; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-lg); } .about-img-secondary img { width: 100%; height: 100%; object-fit: cover; } .about-experience-badge { position: absolute; top: 50%; right: 20%; transform: translate(50%, -50%); width: 120px; height: 120px; background: linear-gradient(135deg, var(--color-gold), var(--color-gold-dark)); border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: var(--shadow-gold); z-index: 2; } .about-experience-badge .exp-number { font-family: var(--font-display); font-size: 2.2rem; font-weight: 700; color: var(--color-bg-primary); line-height: 1; } .about-experience-badge .exp-text { font-size: 0.6rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-bg-primary); text-align: center; line-height: 1.3; } .about-content { padding: 20px 0; } .about-text { font-size: 1rem; color: var(--color-text-secondary); line-height: 1.8; margin-bottom: 20px; } .about-features { display: flex; flex-direction: column; gap: 24px; margin-top: 40px; } .feature-item { display: flex; align-items: flex-start; gap: 16px; } .feature-icon { flex-shrink: 0; width: 48px; height: 48px; background: var(--color-gold-muted); border: 1px solid var(--color-border); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; color: var(--color-gold); } .feature-title { display: block; font-size: 0.95rem; font-weight: 600; color: var(--color-text-primary); margin-bottom: 2px; } .feature-desc { font-size: 0.85rem; color: var(--color-text-muted); } /* ---------- Services ---------- */ .services { padding: 120px 0; background: var(--color-bg-secondary); position: relative; } .services::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(to right, transparent, var(--color-border), transparent); } .section-header { margin-bottom: 64px; } .services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; } .service-card { background: var(--color-bg-card); border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--color-border-subtle); transition: all var(--transition-base); opacity: 1; transform: translateY(0); } .service-card:hover { transform: translateY(-8px); border-color: var(--color-border); box-shadow: var(--shadow-md); background: var(--color-bg-card-hover); } .service-img { position: relative; height: 220px; overflow: hidden; } .service-img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); } .service-card:hover .service-img img { transform: scale(1.08); } .service-img-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 26, 46, 0.6), transparent); } .service-body { padding: 28px; } .service-icon { width: 52px; height: 52px; background: var(--color-gold-muted); border: 1px solid var(--color-border); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; color: var(--color-gold); margin-bottom: 20px; transition: all var(--transition-base); } .service-card:hover .service-icon { background: var(--color-gold); color: var(--color-bg-primary); } .service-title { font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; color: var(--color-text-primary); margin-bottom: 12px; } .service-desc { font-size: 0.9rem; color: var(--color-text-secondary); line-height: 1.7; margin-bottom: 20px; } .service-link { display: inline-flex; align-items: center; gap: 8px; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-gold); transition: gap var(--transition-fast); } .service-link:hover { gap: 12px; } /* ---------- Gallery ---------- */ .gallery { padding: 120px 0; background: var(--color-bg-primary); } .gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-template-rows: repeat(2, 280px); gap: 16px; } .gallery-item { position: relative; border-radius: var(--radius-md); overflow: hidden; cursor: pointer; } .gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); } .gallery-item:hover img { transform: scale(1.06); } .gallery-item-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(10, 26, 46, 0.85), transparent 60%); display: flex; align-items: flex-end; padding: 24px; opacity: 0; transition: opacity var(--transition-base); } .gallery-item:hover .gallery-item-overlay { opacity: 1; } .gallery-item-overlay span { font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; color: var(--color-gold); } .gallery-item--large { grid-column: 1 / 8; grid-row: 1 / 2; } .gallery-item--wide { grid-column: 5 / 13; grid-row: 2 / 3; } .gallery-item:not(.gallery-item--large):not(.gallery-item--wide) { grid-column: span 4; } /* ---------- CTA Section ---------- */ .cta-section { position: relative; padding: 120px 0; overflow: hidden; } .cta-bg { position: absolute; inset: 0; } .cta-bg img { width: 100%; height: 100%; object-fit: cover; } .cta-overlay { position: absolute; inset: 0; background: linear-gradient( 135deg, rgba(10, 26, 46, 0.94) 0%, rgba(13, 33, 55, 0.9) 100% ); } .cta-content { position: relative; z-index: 1; text-align: center; max-width: 700px; margin: 0 auto; } .cta-content .section-tag { justify-content: center; } .cta-title { font-family: var(--font-display); font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 300; line-height: 1.1; color: var(--color-text-primary); margin-bottom: 24px; } .cta-text { font-size: 1.05rem; color: var(--color-text-secondary); line-height: 1.8; margin-bottom: 40px; } .cta-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; } /* ---------- Contact ---------- */ .contact { padding: 120px 0; background: var(--color-bg-secondary); position: relative; } .contact::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(to right, transparent, var(--color-border), transparent); } .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; } .contact-text { font-size: 1rem; color: var(--color-text-secondary); line-height: 1.8; margin-bottom: 40px; } .contact-details { display: flex; flex-direction: column; gap: 28px; } .contact-item { display: flex; align-items: flex-start; gap: 16px; } .contact-icon { flex-shrink: 0; width: 52px; height: 52px; background: var(--color-gold-muted); border: 1px solid var(--color-border); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; color: var(--color-gold); } .contact-item-text { display: flex; flex-direction: column; gap: 4px; } .contact-label { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-text-muted); } .contact-item-text span, .contact-item-text a { font-size: 0.95rem; color: var(--color-text-primary); line-height: 1.6; } .contact-item-text a:hover { color: var(--color-gold); } /* ---------- Contact Form ---------- */ .contact-form-wrapper { background: var(--color-bg-card); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-lg); padding: 40px; } .form-title { font-family: var(--font-display); font-size: 1.6rem; font-weight: 600; color: var(--color-text-primary); margin-bottom: 32px; } .form-group { margin-bottom: 20px; } .form-label { display: block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 8px; } .form-input { width: 100%; padding: 14px 16px; background: var(--color-bg-primary); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-sm); color: var(--color-text-primary); font-family: var(--font-body); font-size: 0.9rem; transition: all var(--transition-fast); outline: none; } .form-input::placeholder { color: var(--color-text-muted); } .form-input:focus { border-color: var(--color-gold); box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.1); } .form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 5l3 3 3-3' stroke='%236b8fa8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; cursor: pointer; } .form-select option { background: var(--color-bg-primary); color: var(--color-text-primary); } .form-textarea { resize: vertical; min-height: 100px; } .form-success { display: none; text-align: center; padding: 40px 20px; } .form-success.show { display: block; animation: fadeIn 0.5s ease; } .success-icon { width: 64px; height: 64px; margin: 0 auto 20px; } .form-success h4 { font-family: var(--font-display); font-size: 1.5rem; color: var(--color-gold); margin-bottom: 8px; } .form-success p { font-size: 0.9rem; color: var(--color-text-secondary); } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* ---------- Footer ---------- */ .footer { background: var(--color-bg-primary); border-top: 1px solid var(--color-border-subtle); padding: 60px 0 30px; } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 60px; margin-bottom: 48px; } .footer-brand .nav-logo { margin-bottom: 16px; } .footer-desc { font-size: 0.9rem; color: var(--color-text-muted); line-height: 1.7; max-width: 300px; } .footer-title { font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; color: var(--color-text-primary); margin-bottom: 20px; } .footer-links { display: flex; flex-direction: column; gap: 12px; } .footer-links a { font-size: 0.85rem; color: var(--color-text-muted); transition: color var(--transition-fast); } .footer-links a:hover { color: var(--color-gold); } .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 30px; border-top: 1px solid var(--color-border-subtle); } .footer-copyright { font-size: 0.8rem; color: var(--color-text-muted); } .footer-legal { display: flex; gap: 24px; } .footer-legal a { font-size: 0.8rem; color: var(--color-text-muted); transition: color var(--transition-fast); } .footer-legal a:hover { color: var(--color-gold); } /* ---------- Scroll Reveal ---------- */ .reveal { opacity: 1; transform: translateY(0); transition: opacity 0.6s ease, transform 0.6s ease; } .reveal.revealed { opacity: 1; transform: translateY(0); } /* ---------- Responsive ---------- */ @media (max-width: 1024px) { .about-grid { gap: 48px; } .services-grid { grid-template-columns: repeat(2, 1fr); } .gallery-grid { grid-template-columns: repeat(6, 1fr); grid-template-rows: repeat(3, 220px); } .gallery-item--large { grid-column: 1 / 7; grid-row: 1 / 2; } .gallery-item--wide { grid-column: 1 / 7; grid-row: 3 / 4; } .gallery-item:not(.gallery-item--large):not(.gallery-item--wide) { grid-column: span 3; } .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; } } @media (max-width: 768px) { .nav-toggle { display: flex; } .nav-links { position: fixed; top: 0; right: -100%; width: 80%; max-width: 320px; height: 100vh; background: rgba(10, 26, 46, 0.98); backdrop-filter: blur(20px); flex-direction: column; justify-content: center; gap: 28px; padding: 40px; transition: right var(--transition-base); border-left: 1px solid var(--color-border-subtle); } .nav-links.open { right: 0; } .nav-link { font-size: 1rem; } .hero-title { font-size: clamp(2.2rem, 8vw, 3.2rem); } .hero-stats { flex-wrap: wrap; gap: 24px; } .about-grid { grid-template-columns: 1fr; gap: 48px; } .about-images { height: 400px; } .services-grid { grid-template-columns: 1fr; } .gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; } .gallery-item--large, .gallery-item--wide, .gallery-item:not(.gallery-item--large):not(.gallery-item--wide) { grid-column: span 1; grid-row: auto; height: 220px; } .contact-grid { grid-template-columns: 1fr; gap: 48px; } .contact-form-wrapper { padding: 28px; } .footer-grid { grid-template-columns: 1fr; gap: 32px; } .footer-bottom { flex-direction: column; gap: 16px; text-align: center; } } @media (max-width: 480px) { .hero-actions { flex-direction: column; } .hero-actions .btn { width: 100%; justify-content: center; } .cta-actions { flex-direction: column; align-items: center; } .cta-actions .btn { width: 100%; justify-content: center; } .about-images { height: 320px; } .about-experience-badge { width: 90px; height: 90px; } .about-experience-badge .exp-number { font-size: 1.6rem; } } /* ---------- Reduced Motion ---------- */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } html { scroll-behavior: auto; } .service-card, .gallery-item, .reveal { opacity: 1; transform: none; } }
Is this your business?This is my business