/* Hide Alpine.js elements until initialized */
[x-cloak] { display: none !important; }

/* Custom Utilities not covered by Tailwind CDN config immediately */
body {
    background-color: rgb(5, 5, 5);
    color: white;
}

.glass-panel {
    background: rgba(10, 10, 10, 0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.text-glow {
    text-shadow: 0 0 20px rgba(255, 112, 52, 0.4);
}

@keyframes slide-in {
    from {
        opacity: 0;
        transform: translateX(50px) rotate(3deg);
    }
    to {
        opacity: 1;
        transform: translateX(0) rotate(0deg);
    }
}

.animate-slide-in {
    animation: slide-in 0.8s ease-out forwards;
}

/* Base element overrides — higher specificity (body h3) beats Tailwind CDN's Preflight (h3) */
p {
    padding: 0.75rem 0 0.75rem 0;
}

body h3 {
    font-size: 1.25rem;
    line-height: 1.5rem;
    font-weight: bold;
    padding: 1.5rem 0 1.5rem 0;
}

body h2 {
    padding: 2rem 0 2rem 0;
    font-weight: bold;
    font-size: 1.5rem; 
    line-height: 2rem;
}

  /* Define a custom class for the counter styles */
.decimal-list ol {
    counter-reset: item;
    list-style-type: none; /* Hide default markers */
}

.decimal-list li {
    display: block; /* Required for ::before pseudo-element positioning */
}

/* Use counters() to concatenate parent and child counter values with a dot */
.decimal-list li::before {
    content: counters(item, ".") ". ";
    counter-increment: item;
    /* Add any other styling, e.g., color, font-weight */
    font-weight: bold;
    margin-right: 0.5rem; /* Spacing */
}

.font-mono-ibm { font-family: 'IBM Plex Mono', monospace; }
.font-sans-ibm { font-family: 'IBM Plex Sans', sans-serif; }

@keyframes terminal-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}
.cursor-blink { animation: terminal-blink 1s step-end infinite; }

@keyframes log-entry-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.log-entry-new { animation: log-entry-in 0.25s ease-out forwards; }

.bg-grid {
    background-image:
        linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
    background-size: 56px 56px;
}

.section-fade {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.65s ease-out, transform 0.65s ease-out;
}
.section-fade.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Reset global h2/h3 overrides for product page */
main h2.reset { padding: 0; }
main h3.reset { padding: 0; }
main p.reset  { padding: 0; }

.metric-bar { transition: width 1.8s cubic-bezier(0.25, 1, 0.5, 1); }

.deploy-tab {
    transition: border-color 0.2s ease, background-color 0.2s ease;
    cursor: pointer;
}
.deploy-tab.active {
    border-color: rgb(255, 112, 52) !important;
    background-color: rgba(255, 112, 52, 0.05);
}

.pricing-card { transition: transform 0.25s ease; }
.pricing-card:hover { transform: translateY(-4px); }

.timeline-node-active { border-color: rgb(255, 112, 52); background-color: rgba(255,112,52,0.1); }
.timeline-node-inactive { border-color: rgba(255,255,255,0.1); background-color: rgba(255,255,255,0.03); }