/* Native SVG operator preview. Coordinates and scene content live in index.html. */
.hero-grid {
  grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  gap: 44px;
}
.hero {
  padding-block: 68px;
}
.hero-art.operator-demo {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 0;
  isolation: isolate;
}
.operator-demo::before {
  content: "";
  position: absolute;
  inset: 6% -6% 10%;
  background: radial-gradient(ellipse, #8b65ff24, transparent 70%);
  z-index: -1;
  pointer-events: none;
}
.operator-overline {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 13px;
  color: #68627d;
  font-size: 11px;
  font-weight: 600;
}
.operator-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #8057ee;
  box-shadow: 0 0 0 4px #8057ee12;
}
.operator-preview-tag {
  margin-right: auto;
  padding: 2px 9px;
  border: 1px solid #e5dff5;
  border-radius: 20px;
  color: #8061b1;
  font-size: 10px;
  font-weight: 400;
}
.operator-screen {
  aspect-ratio: 800 / 590;
  overflow: hidden;
  direction: ltr;
  border: 1px solid #39335b;
  border-radius: 20px;
  background: #111832;
  box-shadow: 0 24px 48px -15px #2023404d, 0 0 0 5px #ffffffb3;
}
.operator-svg {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  direction: ltr;
}
.operator-svg text {
  font-family: var(--font);
  font-size: 15px;
  fill: #edf0ff;
}
.operator-svg .op-rtl {
  direction: rtl;
  unicode-bidi: plaintext;
  text-anchor: start;
}
.operator-svg .op-ltr {
  direction: ltr;
  unicode-bidi: plaintext;
  text-anchor: start;
  font-size: 14px;
}
.operator-svg .op-center {
  direction: rtl;
  text-anchor: middle;
}
.operator-svg .op-small { font-size: 12px; }
.operator-svg .op-micro { font-size: 10px; letter-spacing: 1.5px; }
.operator-svg .op-bold { font-weight: 700; }
.operator-svg .op-muted { fill: #9eaacd; }
.operator-svg .op-white { fill: #f6f5ff; }
.operator-svg .op-lilac { fill: #cfbdff; }
.operator-svg .op-mint { fill: #99edcd; }
.operator-svg .op-gold { fill: #ffdab1; }
.operator-svg .op-icon {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: #a4afd0;
}
.operator-svg .op-icon.op-white { fill: none; color: #f6f5ff; }
.operator-svg .op-icon.op-lilac { fill: none; color: #cfbdff; }
.operator-svg .op-icon.op-mint { fill: none; color: #99edcd; }
.op-scene { display: none; }
.op-scene.is-active { display: inline; }
.op-transient, .op-notification-dot, .op-unread-dot { display: none; }
.operator-demo[data-scene="incoming"] .op-unread-dot,
.operator-demo[data-scene="notification"] .op-notification-dot { display: inline; }
.operator-demo[data-scene="notification"] .op-row-negar,
.operator-demo[data-scene="ai"] .op-row-sara {
  fill: #28204e;
  stroke: #9270e0;
}
.operator-demo[data-scene="notification"] .op-row-ali,
.operator-demo[data-scene="ai"] .op-row-ali {
  fill: #131a36;
  stroke: #232d4d;
}
.operator-demo[data-scene="profile"] .op-profile-button {
  fill: #7146d8;
  filter: drop-shadow(0 0 6px #9060ff60);
}
.operator-demo.is-animating .op-scene.is-active .op-step {
  animation: operator-enter 0.55s var(--op-delay, 0ms) both;
}
.operator-demo.is-animating .op-scene.is-active .op-transient {
  display: inline;
  animation: operator-typing-window 2.25s both;
}
.operator-demo.is-animating .op-typing-dot {
  animation: operator-typing 0.55s infinite alternate;
}
.operator-demo.is-animating .op-typing-dot:nth-of-type(2) { animation-delay: 0.15s; }
.operator-demo.is-animating .op-typing-dot:nth-of-type(3) { animation-delay: 0.3s; }
.operator-demo.is-animating[data-scene="incoming"] .op-unread-dot {
  animation: operator-pulse 1.2s infinite;
  transform-box: fill-box;
  transform-origin: center;
}
.operator-demo.is-animating[data-scene="incoming"] .op-row-ali {
  animation: operator-row-glow 1.6s 3;
}
/* Notification enters as one card; its icon stays attached and still. */
.op-urgent-card { filter: drop-shadow(0 12px 18px #04071980); }
.op-notice-viewed, .op-notice-snoozed { display: none; }
.operator-demo[data-notification="viewed"] .op-notice-viewed,
.operator-demo[data-notification="snoozed"] .op-notice-snoozed { display: inline; }
.operator-demo[data-notification="viewed"] .op-notice-pending,
.operator-demo[data-notification="viewed"] .op-notice-context,
.operator-demo[data-notification="snoozed"] .op-notice-pending { display: none; }
.operator-demo.is-animating[data-scene="notification"] .op-urgent-card {
  transform-box: fill-box;
  transform-origin: center;
  animation: operator-notice-enter 0.42s 0.55s both;
}
.operator-demo.is-animating[data-scene="notification"] .op-notice-veil {
  animation: operator-veil-in 0.25s 0.55s both;
}
.op-alert-action { cursor: pointer; outline: none; }
.op-alert-action rect { transition: fill 0.15s, stroke 0.15s; }
.op-alert-view:hover rect { fill: #8d69ff; }
.op-alert-later:hover rect { fill: #3a3155; }
.op-alert-action:focus-visible rect { stroke: #f4c76b; stroke-width: 3; }
.op-alert-action text { pointer-events: none; }
/* A short wash of color becomes a settled message; no icon transforms. */
.op-ai-color-wash, .op-ai-light-sweep { opacity: 0; pointer-events: none; }
.operator-demo.is-animating[data-scene="ai"] .op-transient { animation-duration: 1.45s; }
.operator-demo.is-animating[data-scene="ai"] .op-ai-response {
  animation: operator-ai-form 1.5s 1.5s both;
}
.operator-demo.is-animating[data-scene="ai"] .op-ai-color-wash {
  animation: operator-ai-wash 1.5s 1.5s both;
}
.operator-demo.is-animating[data-scene="ai"] .op-ai-light-sweep {
  animation: operator-ai-sweep 1.5s 1.5s both;
}
.operator-demo.is-animating[data-scene="ai"] .op-ai-message-content {
  animation: operator-message-reveal 0.45s 2.85s both;
}
.operator-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 18px;
}
.operator-scene-count {
  display: inline-block;
  margin-left: 8px;
  direction: ltr;
  color: #8969b1;
  font-size: 10px;
  font-weight: 700;
}
.operator-caption strong {
  color: #272340;
  font-size: 12px;
}
.operator-caption p {
  margin: 3px 0 0;
  min-height: 22px;
  color: #72768a;
  font-size: 11px;
}
.operator-pause {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  padding: 7px;
  border: 1px solid #ded7eb;
  border-radius: 50%;
  background: #fff;
  color: #7d59af;
  cursor: pointer;
}
.operator-pause svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.operator-pause .op-play-shape { display: none; }
.operator-pause[aria-pressed="true"] .op-play-shape { display: inline; }
.operator-pause[aria-pressed="true"] .op-pause-shape { display: none; }
.operator-pause:disabled { opacity: 0.5; cursor: default; }
.operator-controls {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  margin-top: 5px;
}
.operator-controls[hidden], .operator-pause[hidden] { display: none; }
.operator-controls button {
  min-width: 0;
  padding: 10px 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.operator-controls button span {
  display: block;
  position: relative;
  height: 4px;
  overflow: hidden;
  border-radius: 5px;
  background: #e3e1ed;
}
.operator-controls button[aria-pressed="true"] span { background: #e4d9f6; }
.operator-controls button[aria-pressed="true"] span::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #8c65cc;
  transform-origin: right;
}
.operator-demo.is-animating .operator-controls button[aria-pressed="true"] span::after {
  animation: operator-progress var(--op-duration, 8s) linear both;
}
.operator-controls button:focus-visible, .operator-pause:focus-visible {
  outline: 2px solid #9168da;
  outline-offset: 3px;
}
@keyframes operator-enter {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes operator-typing-window {
  0%, 12%, 100% { opacity: 0; }
  25%, 88% { opacity: 1; }
}
@keyframes operator-typing {
  to { transform: translateY(-4px); opacity: 0.45; }
}
@keyframes operator-pulse {
  50% { transform: scale(1.45); opacity: 0.65; }
}
@keyframes operator-row-glow {
  50% { stroke: #caadff; fill: #332652; }
}
@keyframes operator-notice-enter {
  from { opacity: 0; transform: translateY(-16px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes operator-veil-in {
  from { opacity: 0; }
  to { opacity: 0.68; }
}
@keyframes operator-ai-form {
  0% { opacity: 0; filter: drop-shadow(0 0 0 #a879ff00); }
  22% { opacity: 1; filter: drop-shadow(0 0 12px #a879ff85); }
  55% { opacity: 1; filter: drop-shadow(0 0 15px #5eabef70); }
  80% { opacity: 1; filter: drop-shadow(0 0 8px #f4c76b50); }
  100% { opacity: 1; filter: drop-shadow(0 0 0 #a879ff00); }
}
@keyframes operator-ai-wash {
  0%, 100% { opacity: 0; }
  25%, 55% { opacity: 0.9; }
}
@keyframes operator-ai-sweep {
  0% { opacity: 0; transform: translateX(-220px); }
  25%, 65% { opacity: 0.8; }
  100% { opacity: 0; transform: translateX(410px); }
}
@keyframes operator-message-reveal {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes operator-progress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@media (max-width: 1000px) {
  .hero-grid { grid-template-columns: 1fr; gap: 35px; }
  .hero-copy { text-align: center; }
  .hero-description { margin-inline: auto; max-width: 550px; }
  .hero-buttons, .hero-trust { justify-content: center; }
  .hero-art.operator-demo { width: 100%; max-width: 760px; margin-inline: auto; }
  .hero { padding-block: 50px; }
}
@media (max-width: 640px) {
  .hero { padding-block: 34px; }
  .hero-grid { gap: 32px; }
  /* Keep chat text legible by framing the conversation area on small screens. */
  .operator-screen { aspect-ratio: 528 / 590; border-radius: 17px; }
  .operator-svg { width: 151.515152%; }
  .operator-svg text { font-size: 17px; }
  .operator-svg .op-ltr { font-size: 16px; }
  .operator-svg .op-small { font-size: 13px; }
  .operator-svg .op-micro { font-size: 10px; }
  .operator-overline { font-size: 10px; }
  .operator-preview-tag { font-size: 9px; }
  .operator-caption { padding-top: 15px; gap: 8px; }
  .operator-caption strong { font-size: 11px; }
  .operator-caption p { font-size: 10px; min-height: 38px; }
  .operator-scene-count { font-size: 9px; margin-left: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .operator-demo *, .operator-demo *::after { animation: none !important; }
  .operator-demo .op-transient { display: none !important; }
}
