/* AiServa demos: shared base. Generated by tools/demo-build/build-demos.py from the VYROX deck, do not edit by hand. */
:root{--accent:#0071e3;--bg:#e9f2fc;--cyan-b:#35c5ff;--ease:cubic-bezier(.22,.61,.24,1);--ease-out:cubic-bezier(.16,1,.3,1);--ink:#0f2740;--ink-2:#3d5f84;--ink-3:#6b829e;--line:rgba(15,39,64,.14);--line-2:rgba(15,39,64,.08);--mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;}
:root{--bg:      #e9f2fc;
  --bg-2:    #ffffff;
  --ink:     #0f2740;
  --ink-2:   #3d5f84;
  --ink-3:   #6b829e;
  --accent:  #0071e3;
  --cyan:    #0891b2;
  --cyan-b:  #35c5ff;
  --violet:  #7c6cf0;
  --line:    rgba(15,39,64,.14);
  --line-2:  rgba(15,39,64,.08);
  --panel:   rgba(255,255,255,.74);
  --mono:    'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --ease:    cubic-bezier(.22,.61,.24,1);
  --ease-out:cubic-bezier(.16,1,.3,1);}
*{box-sizing: border-box;}
html, body{height: 100%;}
body{margin: 0; background: var(--bg); color: var(--ink-2);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased; line-height: 1.55;
  overflow: hidden;}
::selection{background: rgba(0,113,227,.18);}
img{display: block; max-width: 100%;}
a{color: inherit; text-decoration: none;}
.deck{position: fixed; inset: 0; overflow: hidden;}
.slide{position: absolute; inset: 0; opacity: 0; visibility: hidden; display: flex; align-items: center;}
.slide.is-active{opacity: 1; visibility: visible; z-index: 2;}
.deck::before{content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    repeating-linear-gradient(0deg,  rgba(15,39,64,.055) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(90deg, rgba(15,39,64,.055) 0 1px, transparent 1px 64px);
  -webkit-mask-image: radial-gradient(120% 100% at 70% 40%, #000 30%, transparent 78%);
          mask-image: radial-gradient(120% 100% at 70% 40%, #000 30%, transparent 78%);}
.stage{position: relative; z-index: 3;
  width: min(1300px, 100% - 8vw); margin-inline: auto;
  height: 100%; padding-block: clamp(56px, 8.4vh, 104px);
  display: flex; flex-direction: column; justify-content: center;
  overflow: hidden;}
.fit{width: 100%;}
.up{opacity: 0; transform: translateY(16px); filter: blur(7px);}
.slide.is-active .up{animation: riseIn .9s var(--ease-out) forwards; animation-delay: var(--d, 0s);}
@media (max-width: 700px){.stage{width: calc(100% - 36px); padding-top: 74px; padding-bottom: calc(84px + env(safe-area-inset-bottom));}
.deck::before{display: none;}}
@media (prefers-reduced-motion: reduce){*{animation: none !important; transition: none !important;}}
.deck.no-motion *, .deck .slide.is-settled *, .deck .slide.is-settled{animation: none !important; transition: none !important;}
.deck.no-motion *::before, .deck.no-motion *::after, .deck .slide.is-settled *::before, .deck .slide.is-settled *::after{animation: none !important; transition: none !important;}
.deck .slide:not(.is-active) *, .deck .slide:not(.is-active) *::before, .deck .slide:not(.is-active) *::after{animation-play-state: paused !important;}
.deck.no-motion .up, .deck .slide.is-settled .up{opacity: 1; transform: none; filter: none;}
@media (min-width: 761px){.stage{width: min(1640px, 100% - 6vw); padding-block: clamp(64px, 9vh, 104px) clamp(56px, 7.5vh, 88px);}}
@media (min-width: 761px){.stage{width: min(1720px, 100% - 5vw); padding-block: 4.5vh calc(84px + env(safe-area-inset-bottom));}}
@media (max-width: 760px){.stage{padding-top: calc(28px + env(safe-area-inset-top));}}
@keyframes riseIn{to { opacity: 1; transform: translateY(0); filter: blur(0); }}
