@tailwind base;
@tailwind components;
@tailwind utilities;

body {
    background-color: #FAFBFC;
    color: #4B5873;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* App-style homepage: no scroll */
body.app-layout {
    overflow: hidden;
}

.editorial-rule {
    border-top: 1px solid #E8EAEF;
}

.headline-serif {
    letter-spacing: -0.015em;
    line-height: 1.1;
    color: #273E57;
}

.text-reading {
    line-height: 1.65;
}

/* Custom scrollbar for panes */
::-webkit-scrollbar {
    width: 4px;
    height: 4px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #E8EAEF;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #0EA5E9;
}

/* Animations */
@keyframes subtle-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.animate-subtle-pulse {
    animation: subtle-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes drift-up {
    0% { transform: translateY(100vh); opacity: 0; }
    10% { opacity: 0.4; }
    90% { opacity: 0.4; }
    100% { transform: translateY(-20vh); opacity: 0; }
}

.eu-node {
    position: absolute;
    animation: drift-up linear infinite;
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 0.05em;
    color: #8B98B0;
    border: 1px solid rgba(232, 234, 239, 0.8);
    padding: 4px 8px;
    border-radius: 4px;
    background: rgba(250, 251, 252, 0.4);
    backdrop-filter: blur(2px);
}

.window-drag-area {
    cursor: grab;
}

.window-drag-area:active {
    cursor: grabbing;
}

/* FAQ */
details > summary {
    list-style: none;
}

details > summary::-webkit-details-marker {
    display: none;
}

details[open] summary ~ * {
    animation: slideDown 0.3s ease-out forwards;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

details[open] summary .icon-plus {
    display: none;
}

details:not([open]) summary .icon-minus {
    display: none;
}

/* Mobile: desktop-only elements hidden */
@media (max-width: 1024px) {
    .desktop-only { display: none !important; }
    body.app-layout { overflow: auto; }
}
