/* ============================================================
   AEORATE v2 brutalist theme — shared styles for static pages
   (mirrors the homepage design system)
   ============================================================ */
html { scroll-behavior: smooth; }
body { background: #0A0A0A; }
::selection { background: #00FF87; color: #0A0A0A; }

/* ---- Scrollbar: industrial ---- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #111; }
::-webkit-scrollbar-thumb { background: #2A2A2A; border: 2px solid #111; }
::-webkit-scrollbar-thumb:hover { background: #00FF87; }

/* ---- Status pulse dot ---- */
@keyframes pulse-dot { 0%, 100% { box-shadow: 0 0 0 0 rgba(0,255,135,0.5); } 50% { box-shadow: 0 0 0 6px rgba(0,255,135,0); } }
.pulse-dot { animation: pulse-dot 1.2s ease-out infinite; }

/* ---- Scanline texture over glass panels ---- */
.scanlines::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: repeating-linear-gradient(0deg, rgba(255,255,255,0.018) 0px, rgba(255,255,255,0.018) 1px, transparent 1px, transparent 3px);
}

/* ---- Film grain ---- */
@keyframes grain { 0%,100%{transform:translate(0,0)} 20%{transform:translate(-2%,2%)} 40%{transform:translate(2%,-1%)} 60%{transform:translate(-1%,-2%)} 80%{transform:translate(1%,2%)} }
.grain {
    position: fixed; inset: -50%; width: 200%; height: 200%; pointer-events: none; z-index: 60; opacity: 0.05;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    animation: grain 8s steps(10) infinite;
}

/* ---- Slow drifting mesh blobs behind the glass ---- */
@keyframes drift-a { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(8vw, -6vh) scale(1.15); } }
@keyframes drift-b { 0%,100% { transform: translate(0,0) scale(1.1); } 50% { transform: translate(-7vw, 8vh) scale(0.95); } }
.blob-a { animation: drift-a 26s ease-in-out infinite; }
.blob-b { animation: drift-b 32s ease-in-out infinite; }

/* ---- Scroll reveal ---- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1), transform 0.9s cubic-bezier(0.16,1,0.3,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ---- Marquee strip ---- */
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee-track { animation: marquee 28s linear infinite; }

/* ---- FAQ details styling ---- */
details.faq summary { cursor: pointer; list-style: none; }
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary .faq-mark::before { content: "+"; }
details.faq[open] summary .faq-mark::before { content: "\2212"; color: #00FF87; }

/* ---- Input caret ---- */
.term-input { caret-color: #00FF87; }
.term-input::placeholder { color: #555; }

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

/* ---- Mobile drawer + accordions ---- */
#mobileDrawer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
#mobileDrawer.drawer-open { max-height: 85vh; overflow-y: auto; }
[data-accordion] + div { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
[data-accordion] + div.acc-open { max-height: 600px; }
[data-accordion] .acc-chevron { transition: transform 0.2s ease; }
[data-accordion].acc-active .acc-chevron { transform: rotate(180deg); }
#navToggle span { display: block; width: 20px; height: 1px; background: #A3A3A3; transition: transform 0.3s ease, opacity 0.3s ease; }
#navToggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
#navToggle.is-open span:nth-child(2) { opacity: 0; }
#navToggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

