body { font-family: 'Inter', sans-serif; background: #020617; color: #fff; scroll-behavior: smooth; }
.bg-dark {background: #020617;}
.gradient-text { background: linear-gradient(to right, #a78bfa, #c084fc, #fb923c); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* Global Nav Styles */
.glass-nav { 
	background: rgba(2, 6, 23, 0.98) !important; 
	backdrop-filter: blur(12px) saturate(180%); 
	-webkit-backdrop-filter: blur(12px) saturate(180%);
	border-bottom: 1px solid rgba(124, 58, 237, 0.3) !important;
	box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.5);
}
.nav-shrink { height: 64px !important; }
#mobile-menu { transform:translateY(-100%); transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1); visibility:hidden; opacity:0;}
#mobile-menu.open {	transform:translateY(0); visibility:visible; opacity:1;}
.hero-glow { box-shadow: 0 0 100px -20px rgba(124, 58, 237, 0.3); }
.animate-pulse-subtle { animation: pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
@keyframes pulse { 0%, 100% { opacity: 0.1; } 50% { opacity: 0.3; } }

/* FAQ Accordion */
.faq-content-wrapper { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 400ms cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; }
.faq-item.active { border-color: rgba(124, 58, 237, 0.6); background: rgba(15, 23, 42, 0.8); }
.faq-item.active .faq-content-wrapper { grid-template-rows: 1fr; }
.faq-content { min-height: 0; opacity: 0; transition: opacity 300ms ease; }
.faq-item.active .faq-content { opacity: 1; padding-bottom: 2rem; }
.faq-item.active .chevron-box { background: #7c3aed; border-color: #7c3aed; transform: rotate(180deg); }
.faq-trigger { cursor: pointer; }

/* Global Resonance Map */
.map-container { mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent); }
.map-dot { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; filter: drop-shadow(0 0 2px rgba(124, 58, 237, 0.5)); }
.map-dot:hover, .map-dot.active { fill: #7c3aed; filter: drop-shadow(0 0 12px #7c3aed); }
@keyframes ring-pulse { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(3); opacity: 0; } }
.pulse-ring { pointer-events: none; stroke: #7c3aed; fill: none; transform-origin: center; animation: ring-pulse 2s infinite; }
.connection-line { stroke: #7c3aed; stroke-dasharray: 1000; stroke-dashoffset: 1000; opacity: 0.1; transition: all 0.8s ease; }
.connection-line.active { stroke-dashoffset: 0; opacity: 0.4; }
@keyframes draw-path { to { stroke-dashoffset: 0; } }
.synthesis-path { stroke-dasharray: 200; stroke-dashoffset: 200; animation: draw-path 3s linear infinite; }

/* Language Marquee */
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.marquee-content { display: flex; animation: marquee 40s linear infinite; }

.actor-card:hover { border-color: #7c3aed; transform: translateY(-4px); }

/* "Or" Divider Style */
.divider { margin:20px 0; text-align:center; position:relative; color:#64748b;}
.divider::before { content: ""; position:absolute; top:50%; left:0; width:40%; height:1px; background-color:#1e293b;}
.divider::after { content: ""; position:absolute; top:50%; right:0; width:40%; height:1px; background-color:#1e293b;}
.gsi-material-button { -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; -webkit-appearance: none; background-color: #0f172a;
background-image: none; border: 1px solid #9c6af3;  -webkit-border-radius: 20px; border-radius: 20px; -webkit-box-sizing: border-box; box-sizing: border-box;
color: #e3e3e3; cursor: pointer; font-family: 'Roboto', arial, sans-serif; font-size: 14px; height:50px; letter-spacing: 0.25px; outline: none; overflow: hidden;
padding: 0 12px; position: relative; text-align: center;
-webkit-transition: background-color .218s, border-color .218s, box-shadow .218s;
transition: background-color .218s, border-color .218s, box-shadow .218s;
vertical-align: middle; white-space: nowrap; width: auto; max-width: 400px; min-width: min-content; width:340px;}
.gsi-material-button:hover{ background:#020617;}
.gsi-material-button .gsi-material-button-icon { height: 20px; margin-right: 10px; min-width: 20px; width: 20px;}
.gsi-material-button .gsi-material-button-content-wrapper { -webkit-align-items: center; align-items: center; display: flex; -webkit-flex-direction: row; flex-direction: row; -webkit-flex-wrap: nowrap; flex-wrap: nowrap; height: 100%; justify-content: center; position: relative; width: 100%;}
.gsi-material-button .gsi-material-button-contents { -webkit-flex-grow: 0; flex-grow: 0; font-family: 'Roboto', arial, sans-serif; font-weight: 500; overflow: hidden; text-overflow: ellipsis; vertical-align:top;}
.gsi-material-button .gsi-material-button-state { -webkit-transition: opacity .218s; transition:opacity .218s; bottom:0; left:0; opacity:0; position:absolute; right:0; top:0;}
.gsi-material-button:disabled { cursor: default; background-color: #13131461; border-color: #8e918f1f;}
.gsi-material-button:disabled .gsi-material-button-state { background-color: #e3e3e31f;}
.gsi-material-button:disabled .gsi-material-button-contents { opacity: 38%;}
.gsi-material-button:disabled .gsi-material-button-icon { opacity: 38%;}
.gsi-material-button:not(:disabled):active .gsi-material-button-state, 
.gsi-material-button:not(:disabled):focus .gsi-material-button-state { background-color: white; opacity: 12%;}
.gsi-material-button:not(:disabled):hover { -webkit-box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30), 0 1px 3px 1px rgba(60, 64, 67, .15); box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30), 0 1px 3px 1px rgba(60, 64, 67, .15);}
.gsi-material-button:not(:disabled):hover .gsi-material-button-state { background-color: white; opacity: 8%;}