    *, ::before, ::after {
        box-sizing: border-box;
    }

    html {
        scroll-behavior: smooth;
        scroll-padding-top: 5rem;
    }

    body {
        margin: 0;
    }

    .sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    /* Custom Scrollbar */
    ::-webkit-scrollbar {
        width: 8px;
    }
    ::-webkit-scrollbar-track {
        background: #f9f5f9;
    }
    ::-webkit-scrollbar-thumb {
        background: #d4b3d4;
        border-radius: 4px;
    }
    ::-webkit-scrollbar-thumb:hover {
        background: #b582b5;
    }

    /* Utility: Thin Lines */
    .line {
        width: 100%;
        height: 1px;
        background: linear-gradient(90deg, transparent, #e8d6e8, transparent);
    }
    .line-accent {
        width: 100%;
        height: 1px;
        background: linear-gradient(90deg, transparent, #fde68a, transparent);
    }

    /* Card Shadows */
    .shadow-subtle {
        box-shadow: 0 4px 20px -2px rgba(150, 81, 150, 0.05), 0 2px 8px -2px rgba(150, 81, 150, 0.03);
    }
    .shadow-float {
        box-shadow: 0 20px 40px -12px rgba(150, 81, 150, 0.15);
    }

    /* Animations */
    .fade-up {
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .fade-up.visible {
        opacity: 1;
        transform: translateY(0);
    }
    .stagger-1 { transition-delay: 100ms; }
    .stagger-2 { transition-delay: 200ms; }
    .stagger-3 { transition-delay: 300ms; }
    .stagger-4 { transition-delay: 400ms; }

    /* Hero Floating Cards */
    @media (min-width: 768px) {
        .hero-float-1 {
            position: absolute;
            top: -2rem;
            right: -2rem;
            animation: float 6s ease-in-out infinite;
        }
        .hero-float-2 {
            position: absolute;
            bottom: 2rem;
            left: -1rem;
            animation: float 7s ease-in-out infinite reverse;
        }
        .hero-float-3 {
            position: absolute;
            top: 50%;
            right: -3rem;
            animation: float 8s ease-in-out infinite;
        }
    }

    @keyframes float {
        0%, 100% { transform: translateY(0px); }
        50% { transform: translateY(-12px); }
    }

    /* Button Hover Effects */
    .btn-primary {
        position: relative;
        overflow: hidden;
        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .btn-primary::before {
        content: '';
        position: absolute;
        top: 0;
        left: -100%;
        width: 100%;
        height: 100%;
        background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
        transition: left 0.5s;
    }
    .btn-primary:hover::before {
        left: 100%;
    }
    .btn-primary:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 24px -8px rgba(150, 81, 150, 0.4);
    }

    /* Service Card Hover */
    .service-card {
        transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .service-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 24px 48px -12px rgba(150, 81, 150, 0.12);
    }
    .service-card:hover .service-icon {
        transform: scale(1.1) rotate(5deg);
        color: #965196;
    }
    .service-icon {
        transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* Mobile Menu */
    #mobile-menu {
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
    }
    #mobile-menu.closed {
        transform: translateX(100%);
        opacity: 0;
        pointer-events: none;
    }
    #mobile-menu.open {
        transform: translateX(0);
        opacity: 1;
        pointer-events: all;
    }

    /* Image Aspect Ratios */
    .aspect-card {
        aspect-ratio: 4/3;
    }
    .aspect-portrait {
        aspect-ratio: 3/4;
    }
    .aspect-square {
        aspect-ratio: 1/1;
    }

    /* Focus Styles */
    a:focus-visible, button:focus-visible {
        outline: 2px solid #965196;
        outline-offset: 2px;
        border-radius: 4px;
    }

    /* Reduced Motion */
    @media (prefers-reduced-motion: reduce) {
        *, ::before, ::after {
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
        }
        html {
            scroll-behavior: auto;
        }
        .fade-up {
            opacity: 1;
            transform: none;
        }
        .hero-float-1, .hero-float-2, .hero-float-3 {
            animation: none;
        }
    }

    /* Print Styles */
    @media print {
        .no-print { display: none; }
        body { background: white; color: black; }
        a { text-decoration: underline; }
    }
