/* Nexora: shared finishing layer for every public and console screen. */
.nx-system-strip.nx-live-activity { display:block; margin:20px clamp(16px,3vw,40px) 0; padding:18px 22px 12px; border:1px solid #3d7bff20; border-radius:14px; background:linear-gradient(125deg,#151c2f,#0f1420 65%); font-family:var(--font); }
.nx-live-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.nx-live-top strong { font:600 10px/1.5 var(--mono); letter-spacing:.12em; color:#dde6f5; }
.nx-live-top strong span { color:#7fb0ff; }
.nx-live-top p { margin:3px 0 0; color:#7c8aa3; font-size:10px; }
.nx-live-statuses { display:flex; gap:8px; flex-wrap:wrap; }
.nx-live-statuses > div { display:flex; align-items:center; gap:7px; padding:6px 9px; border:1px solid #ffffff0d; border-radius:6px; font-size:10px; color:#9fa9b6; background:#ffffff03; }
.nx-live-statuses > [data-online="true"] { color:#bcd4ff; border-color:#3d7bff20; }
.nx-live-activity .nx-live-statuses i { width:5px; height:5px; flex-shrink:0; background:#8b93a6; }
.nx-live-activity .nx-live-statuses [data-online="true"] i { background:#3d7bff; }
.nx-live-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:20px 0 16px; }
.nx-live-metrics > div + div { border-left:1px solid #ffffff0c; padding-left:20px; }
.nx-live-metrics dt { color:#a0ae95; font-size:10px; line-height:1.5; }
.nx-live-metrics dd { margin:6px 0 0; color:#eef5e5; font:600 clamp(22px,3vw,32px)/1.2 var(--font); font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
.nx-live-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; border-top:1px solid #ffffff09; padding-top:10px; font:9px/1.4 var(--mono); color:#7d8d72; }
@keyframes nx-online-pulse { 50% { opacity:.45; } }
@media (prefers-reduced-motion:no-preference) { .nx-live-statuses [data-online="true"] i { animation:nx-online-pulse 2.8s ease-in-out infinite; } }
@media (max-width:560px) {
  .nx-system-strip.nx-live-activity { padding:14px 14px 10px; margin:14px 14px 0; }
  .nx-live-metrics { gap:8px; margin:16px 0; }
  .nx-live-metrics > div + div { padding-left:10px; }
  .nx-live-metrics dt { font-size:9px; }
  .nx-live-statuses > div { font-size:9px; padding:5px 7px; }
}
.nx-system-strip { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 16px; padding:10px clamp(16px,3vw,40px); border-bottom:1px solid #ffffff09; background:#0e1420; color:#8d9bb3; font:10px/1.5 var(--mono); }
.nx-system-strip > span { display:inline-flex; align-items:center; gap:8px; }
.nx-system-strip i { width:5px; height:5px; border-radius:50%; background:#7d889e; }
.nx-system-strip[data-state="online"] i { background:#3d7bff; }
.nx-system-strip[data-state="unavailable"] i, .nx-system-strip[data-state="offline"] i { background:#e4b36a; }
.nx-system-strip time { color:#76829a; }
.nx-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:24px; margin-top:auto; padding:30px clamp(20px,3vw,48px); border-top:1px solid #ffffff10; background:#0a0e18; }
.nx-footer > div { display:grid; gap:6px; }
.nx-footer strong { color:#dce4f2; font-size:13px; }
.nx-footer span, .nx-footer small { color:#828fa6; font-size:11px; line-height:1.6; }
.nx-footer nav { display:flex; flex-wrap:wrap; gap:20px; }
.nx-footer a { color:#a9b4c9; font-size:12px; text-decoration:none; padding:10px 0; transition: color var(--dur-base,220ms) ease; }
.nx-footer a:hover { color:#7fb0ff; }
.nx-footer small { flex-basis:100%; font-size:10px; }
.stat-card .value { font-variant-numeric:tabular-nums; }
@media (prefers-reduced-motion:no-preference) {
  .nx-reveal { opacity:0; transform:translateY(12px); animation:none!important; transition:opacity 380ms ease,transform 380ms var(--ease-out); }
  .nx-reveal.nx-revealed { opacity:1; transform:none; }
  :is(.btn,.yu-btn,.yu-nav-cta) { transition:transform 160ms var(--ease-out),background-color 160ms ease,border-color 160ms ease,opacity 160ms ease; }
  :is(.btn,.yu-btn,.yu-nav-cta):active { transform:translateY(1px) scale(.98)!important; }
}
@media (hover:hover) and (pointer:fine) {
  :is(.btn,.yu-btn,.yu-nav-cta):not(:disabled):not([aria-disabled="true"]):hover { transform:translateY(-2px); }
}
.nx-light-effects :is(.card,.panel-card,.yu-feature,.app-topbar,.yu-topbar,.vx-ring) { backdrop-filter:none!important; -webkit-backdrop-filter:none!important; filter:none!important; }
.nx-light-effects :is(.card,.panel-card,.yu-feature)::after { display:none; }
.nx-light-effects .nx-reveal { transition-duration:240ms; }
@media (max-width:560px) { .nx-footer { gap:18px; padding-block:24px; } .nx-footer nav { gap:24px; } .nx-system-strip { font-size:9px; } }
:root { color-scheme: dark; --focus:#3d7bff; --dur-base:220ms; --dur-slow:360ms; --dur-reveal:460ms; }
body { background-color:#080a12; background-attachment:scroll; }
body::before, body::after, .grain, .dl-orb, .dl-orb-2 { display:none!important; }
.app-sidebar::before, .app-sidebar::after, .btn::before, .vx-ring::before { animation:none!important; }
.vx-logo-mark { filter:none!important; object-fit:contain; }
.vx-logo-mark { will-change:auto; }
.vx-orb::before { display:none; }
.vx-ring { animation:none!important; border-color:#3d7bff30; }
.vx-splash, #boot-splash { background:#080a12; }
html.vx-splash-leaving #boot-splash { transition:opacity 180ms ease; opacity:0; pointer-events:none; }
.yu-brand img, .picker-logo, .bot-profile-avatar { object-fit:contain; }
.yunite-hero .yu-nav-cta { background:#1d2a15; }
.yunite-hero .yu-title { text-wrap:balance; }
.yunite-hero .yu-feature, .card, .panel-card, .server-card, .host-preset-card { border-color:#ffffff14; }
.btn, .yu-btn, .yu-nav-cta, .server-card, .host-preset-card, .yu-feature { transition:transform 180ms var(--ease-out), background-color 180ms ease, border-color 180ms ease, opacity 180ms ease; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
button, .btn, .yu-btn, .yu-nav-cta { touch-action:manipulation; }
:is(a,button,input,select,textarea):focus-visible { outline:2px solid #3d7bff; outline-offset:4px; }
:is(button,.btn,.yu-btn):active { transform:translateY(1px) scale(.985); }
button:disabled, .btn[aria-disabled="true"] { opacity:.5; cursor:not-allowed; transform:none; }
.skeleton { background:#ffffff0c; animation:nexora-pulse 1.4s ease-in-out infinite; }
@keyframes nexora-pulse { 50% { opacity:.4; } }
@keyframes fade-up { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media (hover:hover) and (pointer:fine) {
  .yu-feature:hover, .server-card:hover, .host-preset-card:hover { transform:translateY(-3px); border-color:#3d7bff60; box-shadow: 0 16px 36px -12px #3d7bff30; }
}
@media (max-width:760px), (pointer:coarse) {
  .yu-topbar, .app-topbar, .app-bar, .app-sidebar, .card, .panel-card { backdrop-filter:none!important; -webkit-backdrop-filter:none!important; }
  .yunite-hero .yu-topbar-inner { gap:12px; padding-inline:16px; }
  .yu-brand { flex-shrink:0; }
  .yu-links { flex-wrap:wrap; gap:12px; }
  .yu-nav-cta, button, .btn { min-height:44px; }
  input, select, textarea { font-size:16px!important; }
  .vx-preview { box-shadow:0 12px 32px #0004; }
  .vx-preview-bar { padding:16px; font-size:9px; }
  .app-main, .main-content, .panel-card, .card { min-width:0; }
  .table-wrap { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
}
@media (max-width:380px) {
  .yu-links { display:none; }
  .yunite-hero .yu-btn-row { grid-template-columns:1fr; }
  .vx-preview-heading h2 { font-size:20px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* Competition console: graphite-navy surfaces, precise electric-blue accents. */
.app-shell.v2 {
  --lime:#3d7bff; --lime-hot:#7fb0ff; --lime-deep:#2450c9;
  --lime-rgb:61,123,255; --volt:var(--lime); --volt-hot:var(--lime-hot);
  --volt-dim:var(--lime-deep); --accent:var(--lime); --accent-hover:var(--lime-hot);
  --ink:#eef2f9; --muted:#8d97ab; --bg:#080a12; --card:#111a29;
  --line:#ffffff10; --line-bright:#ffffff24; --sidebar-w:264px;
  --glow-volt:0 4px 16px #3d7bff18;
  background:#080a12;
}
.app-shell.v2 .app-sidebar { background:linear-gradient(170deg,#131c30,#0d1220 55%); border-right:1px solid #ffffff0d; }
.app-shell.v2 .app-sidebar::before { inset:0 0 auto; height:240px; background:radial-gradient(ellipse at 0 0,#3d7bff14,transparent 70%); }
.app-shell.v2 .app-sidebar::after { display:none; }
.app-sidebar-brand { min-height:88px; gap:12px; padding:20px; }
.app-sidebar-brand img { width:42px; height:42px; filter:none; flex-shrink:0; }
/* Rotate only the logo layer: no layout, shadow or filter animation. */
@keyframes nexora-logo-spin { from { rotate:0deg; } to { rotate:360deg; } }
@media (prefers-reduced-motion:no-preference) {
  .vx-logo-mark, .app-sidebar-brand img, .yu-brand img, .picker-logo {
    animation:nexora-logo-spin 10s linear infinite!important;
    transform-origin:50% 50%;
  }
  .vx-logo-mark { animation-duration:5s!important; }
}
.nexora-brand-copy { min-width:0; }
.nexora-brand-copy strong { display:block; font:700 15px/1.4 var(--font); letter-spacing:.02em; }
.nexora-brand-copy > span { display:block; margin-top:4px; color:#7c896e; font:8px/1.4 var(--mono); letter-spacing:.15em; white-space:nowrap; }
.app-sidebar-nav { padding:14px 12px; gap:4px; scrollbar-gutter:stable; overscroll-behavior:contain; }
.nav-group-label { font:9px/1.5 var(--mono); letter-spacing:.14em; color:#73806b; margin:22px 12px 8px; }
.app-sidebar .nav-item { min-height:44px; border:1px solid transparent; padding:11px 13px; border-radius:9px; color:#9aa593; font-weight:500; font-size:12.5px; transition:transform 180ms ease,background-color 180ms ease,color 180ms ease,border-color 180ms ease; }
.app-sidebar .nav-item.active { color:#bcd4ff; background:#3d7bff0e; border-color:#3d7bff28; box-shadow:inset 0 1px 0 #ffffff04; animation:nexora-nav-select 240ms ease both; }
.app-sidebar .nav-item.active::before { background:#3d7bff; width:3px; height:18px; box-shadow:none; }
.app-sidebar .nav-item:hover { background:#ffffff06; color:#edf6e3; transform:translateX(2px); }
.app-sidebar .nav-item.active:hover { background:#3d7bff16; }
.app-sidebar .nav-ico { display:inline-grid; place-items:center; width:20px; height:20px; font-size:15px; }
.app-sidebar .nav-item:hover .nav-ico { transform:translateY(-1px); }
.app-sidebar-nav > * { animation-duration:320ms; }
.app-sidebar-nav > *:nth-child(n+8) { animation-delay:210ms; }
.app-sidebar-foot { padding:14px 12px; background:#0a0e18; }
.app-sidebar-foot .server-mini { padding:12px; border:1px solid #ffffff0a; background:#ffffff03; }
.app-shell.v2 .app-topbar { min-height:72px; height:auto; background:#0d1420f5; backdrop-filter:none; padding:14px 26px; }
.app-shell.v2 .sidebar-toggle { display:inline-grid; place-items:center; flex-shrink:0; }
.app-shell.v2 .app-topbar-search input { background:#ffffff03; border-color:#ffffff0d; min-height:40px; }
.app-shell.v2 .app-content { padding:32px clamp(20px,3vw,48px) 56px; content-visibility:visible; }
.app-shell.v2 .app-panel { max-width:1440px; margin-inline:auto; }
.app-shell.v2 :is(.card,.panel-card,.stat-card,.yu-panel) { background:linear-gradient(150deg,#171d17,#111612); border:1px solid #ffffff10; border-radius:14px; box-shadow:0 6px 20px #0002; }
.app-shell.v2 :is(.card,.panel-card)::before { height:1px; background:linear-gradient(90deg,#3d7bff50,#8b6cff00 80%); opacity:.65; }
.app-shell.v2 :is(.card,.panel-card,.stat-card)::after { display:none; }
.app-shell.v2 :is(.card,.panel-card):hover { transform:none; box-shadow:0 6px 20px #0002, 0 0 0 1px #3d7bff1a; border-color:#3d7bff2e; }
.app-shell.v2 .stat-card { padding:22px; }
.app-shell.v2 .stat-card .label { font:10px/1.5 var(--mono); text-transform:uppercase; letter-spacing:.1em; color:#9ba792; }
.app-shell.v2 .stat-card .value { font:600 clamp(28px,3vw,40px)/1.15 var(--font); color:#edf4e5; letter-spacing:-.05em; margin-top:12px; }
.app-shell.v2 .stat-card .hint { color:#798673; line-height:1.6; }
.app-shell.v2 .yu-panel-head { padding:20px 24px; border-bottom:1px solid #ffffff0a; }
.app-shell.v2 :is(input,select,textarea) { border-color:#ffffff14; background-color:#0c110d; }
.app-shell.v2 :is(input,select,textarea):focus { border-color:#3d7bff70; box-shadow:0 0 0 3px #3d7bff0f; }
.app-shell.v2 :is(a,button,input,select,textarea):focus-visible { outline-color:#3d7bff; }
.app-shell.v2 .btn:not(.ghost):not(.danger) { box-shadow:none; }
.app-shell.v2 .btn.ghost { background:#ffffff03; border-color:#ffffff16; }
.app-shell.v2 th { color:#8b96ac; font:10px/1.5 var(--mono); letter-spacing:.07em; padding-block:14px; }
.app-shell.v2 td { padding-block:16px; border-color:#ffffff09; }
.app-shell.v2 tbody tr:hover { background:#3d7bff06; }
@keyframes nexora-nav-select { from { opacity:.6; transform:translateX(-3px); } to { opacity:1; transform:none; } }
@media (min-width:901px) {
  .app-shell.v2 { transition:grid-template-columns 240ms var(--ease-out); }
  .app-shell.v2.sidebar-collapsed .nexora-brand-copy { display:none; }
  .app-shell.v2.sidebar-collapsed .app-sidebar-brand { padding:20px 16px; }
  .app-shell.v2.sidebar-collapsed .app-sidebar-nav { padding-inline:8px; scrollbar-gutter:auto; }
  .app-shell.v2.sidebar-collapsed .app-sidebar-foot { padding:8px; }
  .app-shell.v2.sidebar-collapsed .server-mini { padding:8px; justify-content:center; }
}
@media (max-width:900px) {
  html.nexora-drawer-open, html.nexora-drawer-open body { overflow:hidden; }
  .app-shell.v2.sidebar-collapsed { grid-template-columns:1fr; }
  .app-shell.v2.sidebar-collapsed .nav-group-label, .app-shell.v2.sidebar-collapsed .server-mini-text, .app-shell.v2.sidebar-collapsed .app-sidebar-brand strong, .app-shell.v2.sidebar-collapsed .nav-item span:not(.nav-ico) { display:block; }
  .app-shell.v2.sidebar-collapsed .nav-item { justify-content:flex-start; }
  .app-shell.v2 .app-sidebar { height:100dvh; transition:transform 260ms var(--ease-out),visibility 260ms; visibility:hidden; will-change:auto; }
  .app-shell.v2.mobile-nav-open .app-sidebar { visibility:visible; }
  .app-shell.v2 .app-topbar { padding:12px 14px; gap:8px; }
  .app-shell.v2 .app-content { padding:22px 14px 40px; }
  .app-sidebar .nav-item:hover { transform:none; }
  .app-sidebar-nav > * { animation-delay:0ms!important; }
}

/* Lightweight page and card reveals: transform and opacity only. */
@keyframes child-rise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes card-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.panel-swap > *, .panel-swap .stat-grid > .stat-card, .panel-swap .grid > .card, .panel-swap .panel-grid > .panel-card { animation-duration:280ms; animation-delay:calc(var(--i,0) * 25ms); }
.yunite-hero .yu-feature { border-radius:14px; }
.yunite-hero .yu-title { text-shadow:none; }
.yu-btn:focus-visible, .yu-nav-cta:focus-visible { outline-offset:5px; }
.yu-feature, .server-card { overflow-wrap:anywhere; }
.vx-splash-bar > i { background:linear-gradient(90deg,transparent,#3d7bff,transparent); }
.vx-splash-status { color:#a9b59e; }
.vx-splash[data-mode="error"] .vx-logo-mark { animation-play-state:paused!important; }
@media (max-width:760px) {
  .yunite-hero .yu-topbar-inner { flex-wrap:wrap; }
  .yunite-hero .yu-title { font-size:clamp(40px,10vw,68px); }
  .yu-btn-row > * { min-width:0; }
  .app-shell.v2 .stat-card { padding:18px; }
  .panel-swap > *, .panel-swap .stat-grid > .stat-card { animation-delay:0ms; }
}
@media (max-width:560px) {
  .app-shell.v2 .app-topbar { flex-wrap:wrap; }
  .app-shell.v2 .app-topbar-search { order:10; flex:1 0 100%; max-width:none; }
  .app-shell.v2 .user-chip, .app-shell.v2 .app-topbar > a[href="/privacy"] { display:none; }
  .app-shell.v2 .server-pill { flex:1; min-width:0; }
  .app-shell.v2 .server-pill-text { max-width:110px; overflow:hidden; text-overflow:ellipsis; }
}

/* Send Message As Bot — builder + live Discord-style preview */
.msg-builder-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:20px; align-items:start; }
.msg-builder-form { display:grid; gap:16px; min-width:0; }
.msg-builder-form .card { margin:0; }
.msg-builder-preview { position:sticky; top:16px; display:grid; gap:8px; min-width:0; }
.msg-preview-label { font:10px/1.5 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.msg-inline-check { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--muted); font-weight:500; text-transform:none; letter-spacing:0; }
.msg-inline-check input { width:auto; }
.msg-fields-list, .msg-buttons-list { display:grid; gap:10px; margin:10px 0; }
.msg-field-row, .msg-button-row {
  display:grid; gap:8px; padding:12px; border:1px solid var(--line); border-radius:var(--radius-sm);
  background:rgba(255,255,255,0.02);
}
.msg-field-row { grid-template-columns:1fr 1fr auto auto; align-items:center; }
.msg-field-row input { margin:0; }
.msg-button-row .row { gap:8px; margin-bottom:0; }
.msg-button-row .row + .row { margin-top:8px; }
.msg-button-row select, .msg-button-row input { margin:0; }
.sm-remove-field, .sm-remove-button { flex-shrink:0; padding:6px 10px; }

@media (max-width:900px) {
  .msg-builder-grid { grid-template-columns:1fr; }
  .msg-builder-preview { position:static; }
  .msg-field-row { grid-template-columns:1fr 1fr; }
}

/* Discord-style live preview — deliberately matches Discord's own dark UI, not Nexora's palette */
.dc-message {
  display:flex; gap:14px; padding:16px; border-radius:var(--radius);
  background:#313338; border:1px solid #26282c; font-family:"gg sans","Work Sans",system-ui,sans-serif;
}
.dc-avatar { width:40px; height:40px; border-radius:50%; flex-shrink:0; object-fit:cover; }
.dc-msg-body { min-width:0; flex:1; }
.dc-msg-head { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.dc-author { color:#f2f3f5; font-weight:600; font-size:15px; }
.dc-bot-tag { background:#5865f2; color:#fff; font-size:10px; font-weight:600; padding:1px 5px; border-radius:3px; line-height:1.5; }
.dc-time { color:#949ba4; font-size:12px; }
.dc-content { color:#dbdee1; font-size:14px; line-height:1.45; margin-top:2px; white-space:pre-wrap; overflow-wrap:anywhere; }
.dc-embed { display:flex; gap:12px; margin-top:10px; max-width:432px; border-left:4px solid #3d7bff; border-radius:4px; background:#2b2d31; padding:12px; }
.dc-embed-body { min-width:0; flex:1; display:grid; gap:8px; }
.dc-embed-title { color:#f2f3f5; font-weight:600; font-size:15px; overflow-wrap:anywhere; }
.dc-embed-desc { color:#dbdee1; font-size:13px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
.dc-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:8px 12px; }
.dc-field { grid-column:span 3; min-width:0; }
.dc-field.dc-field-inline { grid-column:span 1; }
.dc-field-name { color:#f2f3f5; font-weight:600; font-size:13px; margin-bottom:2px; overflow-wrap:anywhere; }
.dc-field-value { color:#dbdee1; font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.dc-embed-image { margin-top:4px; }
.dc-embed-image img { width:100%; max-height:260px; object-fit:cover; border-radius:4px; display:block; }
.dc-embed-thumb { width:80px; height:80px; object-fit:cover; border-radius:4px; flex-shrink:0; }
.dc-embed-footer { display:flex; align-items:center; gap:8px; color:#949ba4; font-size:12px; margin-top:2px; }
.dc-embed-footer img { width:20px; height:20px; border-radius:50%; object-fit:cover; }
.dc-buttons { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.dc-btn {
  display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border:0; border-radius:8px;
  font:500 14px/1.2 "gg sans","Work Sans",system-ui,sans-serif; color:#fff; cursor:default;
}
.dc-btn:disabled { opacity:1; }
.dc-btn-primary { background:#5865f2; }
.dc-btn-secondary, .dc-btn-link { background:#4e5058; }
.dc-btn-success { background:#248046; }
.dc-btn-danger { background:#da373c; }
.dc-btn-emoji { font-size:15px; }
.dc-btn-ext { opacity:.75; font-size:12px; }
.dc-empty { color:#80848e; font-size:13px; padding:6px 0; }
@media (max-width:480px) {
  .dc-embed { max-width:none; }
}

/* First-entry broadcast ident. All moving atmospheric layers use transform/opacity. */
#boot-splash.nx-intro { --intro-ease:cubic-bezier(.16,1,.3,1); background:#05070b; overflow:hidden; isolation:isolate; padding:0; color:#f4f6fb; }
#boot-splash[hidden], .nx-intro-skipped #boot-splash, .nx-intro-done #boot-splash { display:none!important; }
html.vx-booting { overflow:hidden; }
.nx-intro-atmosphere,.nx-intro-grain,.nx-intro-grid,.nx-intro-dust,.nx-intro-scan { position:absolute; pointer-events:none; }
.nx-intro-atmosphere { inset:0; background:radial-gradient(ellipse at 50% 44%,#244b9228,transparent 46%),radial-gradient(ellipse at 68% 80%,#46357212,transparent 55%); animation:nx-atmosphere 2.6s ease-out both; }
.nx-intro-grain { inset:-4%; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E"); animation:nx-grain .38s steps(2) 8; }
.nx-intro-grid { inset:12% 9%; border-inline:1px solid #9fbcff0b; background:linear-gradient(#9fbcff08 1px,transparent 1px); background-size:100% 25%; mask-image:radial-gradient(ellipse,#000,transparent 75%); opacity:0; animation:nx-fade 1.4s .25s both; }
.nx-intro-dust { inset:15%; opacity:.35; background:radial-gradient(circle at 19% 27%,#a8c7ff 0 1px,transparent 1.5px),radial-gradient(circle at 82% 39%,#a8c7ff 0 1px,transparent 1.5px),radial-gradient(circle at 35% 83%,#a8c7ff 0 1px,transparent 1.5px),radial-gradient(circle at 72% 74%,#a8c7ff 0 1px,transparent 1.5px); animation:nx-dust 3.3s ease-out both; }
.nx-intro-scan { top:0; bottom:0; left:0; width:1px; background:linear-gradient(transparent 12%,#6d9fffb0 48%,transparent 88%); box-shadow:0 0 24px 5px #3d7bff0c; animation:nx-scan 1.35s .18s cubic-bezier(.65,0,.25,1) both; }
.nx-intro-top,.nx-intro-bottom { position:absolute; left:clamp(24px,5vw,80px); right:clamp(24px,5vw,80px); display:flex; justify-content:space-between; gap:20px; font:500 9px/1.5 'IBM Plex Mono',monospace; letter-spacing:.16em; color:#778399; animation:nx-fade .7s .08s both; }
.nx-intro-top { top:max(36px,env(safe-area-inset-top)); }
.nx-intro-top span:first-child { color:#b5c3da; }
.nx-intro-top i { display:inline-block; width:4px; height:4px; margin:0 10px 2px 0; background:#7faaff; box-shadow:0 0 10px #3d7bff55; }
.nx-intro-bottom { bottom:64px; padding-top:17px; border-top:1px solid #ffffff0c; }
.nx-intro-center { position:relative; display:flex; align-items:center; flex-direction:column; width:min(90%,520px); transform:translateY(-8px); }
.nx-intro-mark { position:relative; display:grid; place-items:center; width:164px; height:150px; margin-bottom:24px; overflow:hidden; }
.nx-intro-mark img { width:136px; height:auto; object-fit:contain; animation:nx-mark 1.15s .48s var(--intro-ease) both; }
/* A small clipped image avoids an opaque masking panel over the atmosphere. */
.nx-intro-mark::after { display:none; }
.nx-intro-glint { position:absolute; inset:0; background:linear-gradient(110deg,transparent 35%,#dbe7ff80 50%,transparent 65%); mix-blend-mode:screen; transform:translateX(-150%); animation:nx-glint .75s 1.1s ease-in-out both; }
.nx-intro-name { overflow:hidden; padding:8px 0; }
.nx-intro-name strong { display:block; padding-left:.23em; font:600 clamp(42px,5.1vw,68px)/1 'Work Sans',system-ui,sans-serif; letter-spacing:.23em; animation:nx-word .95s 1.12s var(--intro-ease) both; }
.nx-intro-tagline { margin:14px 0 28px; color:#a0adc3; font:500 10px/1.4 'IBM Plex Mono',monospace; letter-spacing:.25em; animation:nx-word .8s 1.38s var(--intro-ease) both; }
.nx-intro-tagline b { color:#507bc1; margin:0 5px; font-weight:400; }
.nx-intro-rule { width:40px; height:1px; background:#6797e4; transform-origin:left; animation:nx-rule 1s 1.55s var(--intro-ease) both; }
.nx-intro-status { margin:20px 0 0; height:16px; color:#778eaf; font:500 9px/16px 'IBM Plex Mono',monospace; letter-spacing:.18em; transition:opacity 140ms ease,transform 180ms ease; }
.nx-intro-status.is-out { opacity:0; transform:translateY(-4px); }
.nx-intro-status.is-in { opacity:1; transform:none; }
.nx-intro-skip { position:absolute; right:clamp(24px,5vw,80px); bottom:12px; min-height:44px; border:0; padding:8px 0 8px 14px; background:transparent; color:#8190a8; font:500 10px 'IBM Plex Mono',monospace; cursor:pointer; }
.nx-intro-skip span { margin-left:12px; color:#b1c5e5; }
.nx-intro-entering #boot-splash { animation:nx-veil 650ms cubic-bezier(.4,0,.2,1) both; pointer-events:none; }
.nx-intro-entering .nx-intro-center { animation:nx-ident-exit 450ms cubic-bezier(.4,0,.2,1) both; }
.nx-boot-notice { position:fixed; z-index:4100; left:50%; bottom:20px; transform:translateX(-50%); width:min(520px,calc(100% - 32px)); padding:16px 20px; border:1px solid #799ace40; border-radius:12px; background:#101724; box-shadow:0 8px 30px #0005; }
.nx-boot-notice[hidden] { display:none; }
.nx-boot-notice .vx-splash-error { margin:0; color:#d3ddec; }
/* Mask each hero line independently; never animate the whole page or its layout. */
.yunite-hero .yu-title .nx-hero-line { display:block; overflow:hidden; padding-bottom:.08em; margin-bottom:-.08em; background:none; -webkit-text-fill-color:currentColor; }
.yunite-hero .yu-title .nx-hero-line > span { display:block; background:none; -webkit-text-fill-color:currentColor; }
.yunite-hero .yu-title .nx-hero-accent > span { background:linear-gradient(100deg,#7fb0ff,#3d7bff 55%,#8b6cff); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.vx-booting .nx-hero-line > span { opacity:0; transform:translateY(110%); }
.nx-intro-entering .nx-hero-line > span { animation:nx-hero-in 720ms 330ms cubic-bezier(.16,1,.3,1) backwards; }
.nx-intro-entering .nx-hero-line:nth-child(2) > span { animation-delay:440ms; }
.nx-intro-entering .nx-hero-line:nth-child(3) > span { animation-delay:550ms; }
/* Retain the reveal class until every line has landed. */
.nx-hero-revealing .nx-hero-line > span { animation:nx-hero-in 720ms 330ms cubic-bezier(.16,1,.3,1) backwards; }
.nx-hero-revealing .nx-hero-line:nth-child(2) > span { animation-delay:440ms; }
.nx-hero-revealing .nx-hero-line:nth-child(3) > span { animation-delay:550ms; }
.nx-intro-skipped .yunite-hero .yu-rise,.nx-intro-skipped .yu-cta > *,.nx-intro-skipped .yu-topbar { animation:none; }
@keyframes nx-fade { from { opacity:0; } to { opacity:1; } }
@keyframes nx-atmosphere { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:scale(1); } }
@keyframes nx-grain { 0%,100% { transform:translate(0,0); } 50% { transform:translate(2%,-2%); } }
@keyframes nx-dust { from { opacity:0; transform:translateY(12px); } to { opacity:.35; transform:translateY(-6px); } }
@keyframes nx-scan { 0% { opacity:0; transform:translateX(0); } 20%,65% { opacity:.6; } 100% { opacity:0; transform:translateX(100vw); } }
@keyframes nx-mask { from { transform:scaleX(1); } to { transform:scaleX(0); } }
@keyframes nx-mark { 0% { opacity:0; clip-path:inset(0 100% 0 0); transform:translateY(10px) scale(.9); filter:blur(5px); } 65% { opacity:1; clip-path:inset(0); filter:blur(0); } 100% { opacity:1; clip-path:inset(0); transform:none; filter:blur(0); } }
@keyframes nx-glint { 0% { transform:translateX(-150%); opacity:0; } 30% { opacity:.5; } 100% { transform:translateX(150%); opacity:0; } }
@keyframes nx-word { from { opacity:0; transform:translateY(110%); } to { opacity:1; transform:none; } }
@keyframes nx-rule { from { transform:scaleX(0); opacity:0; } to { transform:scaleX(1); opacity:1; } }
@keyframes nx-veil { from { opacity:1; } to { opacity:0; } }
@keyframes nx-ident-exit { from { opacity:1; transform:translateY(-8px) scale(1); } to { opacity:0; transform:translateY(-20px) scale(1.025); } }
@keyframes nx-hero-in { from { opacity:0; transform:translateY(110%); } to { opacity:1; transform:translateY(0); } }
@media (max-width:600px) {
  .nx-intro-center { transform:translateY(-18px); }
  .nx-intro-mark { width:128px; height:120px; margin-bottom:20px; }
  .nx-intro-mark img { width:110px; animation-name:nx-mark-mobile; }
  .nx-intro-name strong { font-size:42px; letter-spacing:.18em; padding-left:.18em; }
  .nx-intro-tagline { font-size:8px; letter-spacing:.17em; margin-top:12px; }
  .nx-intro-tagline b { margin-inline:3px; }
  .nx-intro-top,.nx-intro-bottom { font-size:8px; letter-spacing:.1em; }
  .nx-intro-bottom span:last-child { display:none; }
  .nx-intro-grid { inset:16% 24px; background-size:100% 33.333%; }
  .nx-intro-grain { animation:none; opacity:.025; }
  .nx-intro-dust { animation:none; opacity:.18; }
  .nx-intro-entering .nx-intro-center { animation-name:nx-ident-exit-mobile; }
  @keyframes nx-mark-mobile { from { opacity:0; clip-path:inset(0 100% 0 0); transform:translateY(6px) scale(.96); } to { opacity:1; clip-path:inset(0); transform:none; } }
  @keyframes nx-ident-exit-mobile { from { opacity:1; transform:translateY(-18px); } to { opacity:0; transform:translateY(-24px); } }
}
@media (prefers-reduced-motion:reduce) {
  #boot-splash.nx-intro { display:none!important; }
  html.vx-booting #app { visibility:visible!important; pointer-events:auto!important; }
  html.vx-booting { overflow:auto; }
  .vx-booting .nx-hero-line > span { opacity:1; transform:none; }
}
