:root {
    --parallax-ratio: 0;
    --bg-offset: 0px;

    --bg: rgb(14, 6, 48);
    --loader: #454545;
    --txt: #ffffff;
    --semi: #ffffff;

    --gray01: rgba(255, 255, 255, 0.01);
    --gray03: rgba(255, 255, 255, 0.03);
    --gray05: rgba(255, 255, 255, 0.05);
    --gray075: rgba(255, 255, 255, 0.075);
    --gray10: rgba(255, 255, 255, 0.1);
    --gray15: rgba(255, 255, 255, 0.15);

    --gray20: rgba(255, 255, 255, 0.2);
    --gray25: rgba(255, 255, 255, 0.25);
    --gray30: rgba(255, 255, 255, 0.3);

    --gray: rgba(255, 255, 255, 0.5);
    --gray60: rgba(255, 255, 255, 0.6);
    --gray70: rgba(255, 255, 255, 0.7);

    --grayb: rgba(0, 0, 0, 0.5);
    --gray60b: rgba(0, 0, 0, 0.6);
    --gray70b: rgba(0, 0, 0, 0.7);

    --white: rgba(0, 0, 0, 0.5);
    --white60: rgba(0, 0, 0, 0.6);
    --white70: rgba(0, 0, 0, 0.7);

    --tp: rgba(255, 255, 255, 0);

    --header-h: 6rem;
}

@supports (font-variation-settings: normal) {
  :root { font-family: InterVariable, "Apple SD Gothic Neo", sans-serif !important; }
}

* {
    outline: none;
    box-sizing: border-box;
    word-break: break-word;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    letter-spacing: -.025rem;
    margin: 0;
    padding: 0;
	font-family: inherit;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-tap-highlight-color: transparent;
	font-variant-numeric: tabular-nums slashed-zero;
	font-feature-settings: "cv01", "cv02", "cv03", "cv04", "cv09", "calt", "tnum", "case", "zero", "ss02", "ss07", "ss08";
}

html, body {
    height: 100%;
    margin: 0;
    overflow: hidden;
    scroll-behavior: smooth;
    background-color: var(--bg);
    scrollbar-width: none;
    letter-spacing: -.025rem;
}

.hidden {
    display: none;
}

.load {
    position: fixed;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    background: var(--bg);
    opacity: 1;
    visibility: visible;
    transition: all .3s ease;
}

.load.hidden {
    opacity: 0;
    visibility: hidden;
}

.loader {
  width: 1rem;
  aspect-ratio: 1;
  background:
    linear-gradient(var(--loader) 0 0),
    linear-gradient(var(--txt) 0 0),
    var(--loader);
  background-repeat: no-repeat;
  animation: l1 1.5s infinite; 
}

@keyframes l1 {
  0%   {background-size:100%    0,0    100%}
  30%,
  50%  {background-size:100%    0,100% 100%}
  80%,
  100% {background-size:100% 100%,100% 100%}
}

header {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 2;
}

header * {
    user-select: none;
}

.header-wrap {
    padding: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .5rem;
}

.header-contents {
    padding: 1rem;
    display: flex;
    align-items: center;
	justify-content: center;
    border-radius: .3rem;
    gap: 2.5rem;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    transition: all .2s ease;
}

.logo {
	color: var(--txt);
	font-size: .9rem;
	line-height: .9rem;
	height: .9rem;
	font-weight: 600;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: .25rem;
}

main {
    width: 100%;
    height: 100%;
    padding: var(--header-h) 2rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

section {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    max-width: 22rem;
}

#initialView {
    height: 100%;
    padding-bottom: var(--header-h);
    justify-content: space-between;
}

.finder-header {
    font-size: 2rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    flex-direction: column;
    color: var(--txt);
}

/* From Uiverse.io by KSAplay */ 
.circle {
  display: flex;
  align-items: center;
  justify-content: center;
}

.circle::before,
.circle::after {
  position: absolute;
  content: "";
  height: 10rem;
  width: 10rem;
  border: .075rem solid var(--txt);
  border-radius: 50%;
  animation: loader_79178 2s linear infinite;
}

.circle::after {
  opacity: 0;
  animation-delay: 1s;
}

@keyframes loader_79178 {
  0% {
    border: 1em solid var(--txt);
    transform: scale(0);
    opacity: 1;
  }

  100% {
    border: 0 solid var(--txt);
    transform: scale(1);
    opacity: 0;
  }
}

.guide-text {
    font-size: .9rem;
    color: var(--gray60);
    text-align: center;
}

.device-list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-height: 100%;
    flex-shrink: 1;
    overflow-y: scroll;
    scrollbar-width: none;
}

.empty-state {
    font-size: .9rem;
    color: var(--gray60);
    padding: 0 1rem;
}

.device-card {
    border: solid .075rem var(--gray075);
    border-radius: 1rem;
    overflow: hidden;
    cursor: pointer;
    padding: .75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    flex-shrink: 0;
    transition: all .2s ease;
}

.device-card.selected {
    border-color: var(--gray10);
}

.device-card-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    background: linear-gradient(to right, var(--gray05), var(--tp));
    transition: all .2s ease;
}

.device-card:hover > .device-card-bg, .device-card.selected > .device-card-bg {
    opacity: 1;
}

.device-card.selected > .device-circle {
    border-radius: .25rem;
    background: var(--txt);
    box-shadow: 0 0 1rem 0 var(--gray);
}

.device-circle {
    width: 1rem;
    height: 1rem;
    border: solid .1rem var(--gray20);
    border-radius: 50%;
    transition: all .2s ease;
}

.device-name {
    color: var(--txt);
    font-weight: 500;
    margin-bottom: .25rem;
}

.device-status {
    color: var(--gray60);
    font-size: .9rem;
}