body { font-family: 'IBM Plex Sans', system-ui, sans-serif; }
        h1, h2, h3, h4, h5, .font-display { font-family: 'Sora', system-ui, sans-serif; letter-spacing: -0.02em; }
        /* Eyebrow / technical labels — IBM Plex Mono, tracked uppercase */
        .eyebrow { font-family: 'IBM Plex Mono', ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.16em; }
        ::-webkit-scrollbar { width: 8px; }
        ::-webkit-scrollbar-track { background: #F4F8FB; }
        ::-webkit-scrollbar-thumb { background: #C3D2DE; border-radius: 4px; }
        ::-webkit-scrollbar-thumb:hover { background: #8A99A8; }
        /* Signature halftone dot motif — fades out, never full-strength behind text */
        .dot-motif { position: absolute; inset: 0; pointer-events: none;
            background-image: radial-gradient(circle, rgba(41,171,226,0.55) 1.6px, transparent 1.9px);
            background-size: 17px 17px;
            -webkit-mask-image: radial-gradient(115% 95% at 82% 8%, #000 0%, transparent 62%);
                    mask-image: radial-gradient(115% 95% at 82% 8%, #000 0%, transparent 62%); }
        .chart-container { position: relative; width: 100%; max-width: 800px; margin-left: auto; margin-right: auto; height: 300px; max-height: 400px; }
        @media (min-width: 768px) { .chart-container { height: 350px; } }
        .fade-in { animation: fadeIn 0.8s ease-in-out; }
        @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
        .glass-panel { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(228, 236, 242, 0.8); }
        .lang-btn { cursor: pointer; font-weight: 600; padding: 4px 8px; border-radius: 6px; transition: all 0.2s; font-size: 0.75rem; }
        .lang-btn:hover { background: rgba(41, 171, 226, 0.1); color: #1577BE; }
        .lang-btn.active { background: #29ABE2; color: white; }
        .service-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; position: relative; overflow: hidden; height: fit-content; }
        .service-card:hover { transform: translateY(-8px); box-shadow: 0 20px 25px -5px rgba(10, 42, 67, 0.12), 0 10px 10px -5px rgba(10, 42, 67, 0.05); border-color: #29ABE2; }
        .expand-content { max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.4s ease-in-out, opacity 0.4s ease-in-out, margin 0.3s; }
        .service-card:hover .expand-content { max-height: 500px; opacity: 1; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #E4ECF2; }
        .arrow-icon { transition: transform 0.3s ease; }
        .service-card:hover .arrow-icon { transform: rotate(180deg); }
        .ai-spinner { border: 3px solid rgba(41, 171, 226, 0.15); border-radius: 50%; border-top: 3px solid #29ABE2; width: 24px; height: 24px; animation: spin 1s linear infinite; }
        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
        :focus-visible { outline: 2px solid #29ABE2; outline-offset: 2px; }