*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --ink: #04090F;
  --midnight: #050E1A;
  --deep: #081526;
  --navy: #0C2340;
  --royal: #103870;
  --cobalt: #1A5FBF;
  --sapphire: #2477E0;
  --sky: #4DA3FF;
  --ice: #A8D4FF;
  --frost: #D6EEFF;
  --white: #F5F9FF;
  --gold: #C9A84C;
  --gold-soft: #E8C97A;
  --green: #2ECC8A;
  --red: #E05555;
  --border: rgba(77,163,255,0.1);
  --border-mid: rgba(77,163,255,0.16);
}

html, body { height: 100%; }

body {
  background: var(--ink);
  color: var(--white);
  font-family: 'DM Sans', sans-serif;
  height: 100%;
  overflow: hidden;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: -1;
  opacity: 0.4;
}

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--royal); border-radius: 2px; }

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; }
input[type=number] { -moz-appearance: textfield; }


@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

button { outline: none; }
input { caret-color: #4DA3FF; }
input::placeholder { color: rgba(245,249,255,0.2); }
