:root {
    --ip-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ip-font-serif: Georgia, "Times New Roman", serif;

    --ip-text-xs: 0.75rem;
    --ip-text-sm: 0.875rem;
    --ip-text-base: 1rem;
    --ip-text-md: 1.125rem;
    --ip-text-lg: 1.375rem;
    --ip-text-xl: 1.75rem;
    --ip-text-2xl: 2.25rem;
    --ip-text-3xl: 3rem;

    --ip-leading-tight: 1.1;
    --ip-leading-heading: 1.18;
    --ip-leading-body: 1.65;

    --ip-space-1: 0.25rem;
    --ip-space-2: 0.5rem;
    --ip-space-3: 0.75rem;
    --ip-space-4: 1rem;
    --ip-space-5: 1.25rem;
    --ip-space-6: 1.5rem;
    --ip-space-8: 2rem;
    --ip-space-10: 2.5rem;
    --ip-space-12: 3rem;
    --ip-space-16: 4rem;
    --ip-space-20: 5rem;
    --ip-space-24: 6rem;

    --ip-container-sm: 48rem;
    --ip-container-md: 64rem;
    --ip-container-lg: 78rem;
    --ip-container-xl: 88rem;
    --ip-container-padding: clamp(1rem, 4vw, 2.5rem);

    --ip-radius-xs: 0.25rem;
    --ip-radius-sm: 0.375rem;
    --ip-radius-md: 0.5rem;
    --ip-radius-lg: 0.75rem;
    --ip-radius-pill: 999px;

    --ip-border-subtle: 1px solid rgba(255, 255, 255, 0.1);
    --ip-border-strong: 1px solid rgba(255, 255, 255, 0.18);

    --ip-shadow-sm: 0 8px 24px rgba(2, 6, 23, 0.18);
    --ip-shadow-md: 0 18px 48px rgba(2, 6, 23, 0.24);

    --ip-duration-fast: 140ms;
    --ip-duration-base: 220ms;
    --ip-ease: cubic-bezier(0.2, 0, 0, 1);

    --ip-color-ink: #0b1220;
    --ip-color-ink-soft: #334155;
    --ip-color-paper: #ffffff;
    --ip-color-cloud: #f5f7fa;
    --ip-color-mist: #e5eaf0;
    --ip-color-night: #07111f;
    --ip-color-night-2: #0d1b2d;
    --ip-color-steel: #64748b;
    --ip-color-gold: #c69c46;
    --ip-color-gold-strong: #a8791f;
    --ip-color-green: #1f8a5b;
    --ip-color-cyan: #2d9cdb;
    --ip-color-focus: #f2b84b;

    --ip-surface-page: var(--ip-color-paper);
    --ip-surface-muted: var(--ip-color-cloud);
    --ip-surface-inverse: var(--ip-color-night);
    --ip-text-primary: var(--ip-color-ink);
    --ip-text-secondary: var(--ip-color-ink-soft);
    --ip-text-inverse: #f8fafc;
    --ip-text-inverse-muted: #cbd5e1;
    --ip-accent: var(--ip-color-gold);
    --ip-accent-strong: var(--ip-color-gold-strong);

    --ip-breakpoint-sm: 40rem;
    --ip-breakpoint-md: 48rem;
    --ip-breakpoint-lg: 64rem;
    --ip-breakpoint-xl: 80rem;
}

.ip-theme-root {
    background: var(--ip-surface-page);
    color: var(--ip-text-primary);
    font-family: var(--ip-font-sans);
    line-height: var(--ip-leading-body);
}

.ip-container {
    width: min(100% - (var(--ip-container-padding) * 2), var(--ip-container-lg));
    margin-inline: auto;
}

.ip-container--wide {
    width: min(100% - (var(--ip-container-padding) * 2), var(--ip-container-xl));
    margin-inline: auto;
}

.ip-eyebrow {
    color: var(--ip-accent-strong);
    font-size: var(--ip-text-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ip-heading-xl,
.ip-heading-lg,
.ip-heading-md {
    color: inherit;
    font-family: var(--ip-font-sans);
    font-weight: 720;
    letter-spacing: 0;
    line-height: var(--ip-leading-heading);
    margin: 0;
}

.ip-heading-xl {
    font-size: var(--ip-text-3xl);
}

.ip-heading-lg {
    font-size: var(--ip-text-2xl);
}

.ip-heading-md {
    font-size: var(--ip-text-xl);
}

.ip-copy {
    color: var(--ip-text-secondary);
    font-size: var(--ip-text-base);
    line-height: var(--ip-leading-body);
}

.ip-surface-dark {
    background: var(--ip-surface-inverse);
    color: var(--ip-text-inverse);
}

.ip-surface-muted {
    background: var(--ip-surface-muted);
}

.ip-button {
    align-items: center;
    border-radius: var(--ip-radius-pill);
    display: inline-flex;
    font-size: var(--ip-text-sm);
    font-weight: 700;
    gap: var(--ip-space-2);
    justify-content: center;
    line-height: 1;
    min-height: 2.75rem;
    padding: 0.875rem 1.125rem;
    text-decoration: none;
    transition: background-color var(--ip-duration-base) var(--ip-ease), border-color var(--ip-duration-base) var(--ip-ease), color var(--ip-duration-base) var(--ip-ease), transform var(--ip-duration-base) var(--ip-ease);
}

.ip-button--primary {
    background: var(--ip-accent);
    color: var(--ip-color-ink);
}

.ip-button--primary:hover {
    background: #ddb65d;
    color: var(--ip-color-ink);
}

.ip-button--secondary {
    border: var(--ip-border-strong);
    color: inherit;
}

.ip-button--secondary:hover {
    border-color: var(--ip-accent);
    color: var(--ip-accent);
}

:where(.ip-theme-root, .ip-corporate-header, .ip-corporate-footer) a:focus-visible,
:where(.ip-theme-root, .ip-corporate-header, .ip-corporate-footer) button:focus-visible {
    outline: 3px solid var(--ip-color-focus);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
