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

.logo{
    color:rgb(119, 119, 119);
    transition: color 10ms cubic-bezier(0.260, 0.050, 0.250, 1.000), color 330ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */
} .logo:hover{
    color:rgb(220, 220, 220);
}

body{
    background-color: #1f2323ff;
    /* background-color: rgb(86, 92, 92); */
    overflow: hidden;
    color:white;
    font-family:Poppins; 
}
body > canvas{
    position: fixed;
    width:100vw;
    height:50vh;
    z-index: 1;
}

button, .buttonlike{
    border: solid 1px rgba(255, 255, 255, 0.446);
    border-radius: 100vh;
    color:white;

    display:flex;
    align-items: center;
    justify-content: center;

    padding: 0rem 0.75rem 0rem 0.75rem;
    height:2.25rem;
    margin:0.3rem;
    background-color: transparent;
    z-index: 10;
    overflow-x: hidden;
    white-space: nowrap;

    width:80%;

    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

    font-size: clamp(0.2rem, min(1.5vh, 1.5vw), 1.5rem);

    cursor:pointer;
    transition: background-color 230ms cubic-bezier(0.260, 0.050, 0.250, 1.000), color 330ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */
}

.large-btn{
    border: solid 1px white;
    border-radius: 100vh;
    color:white;

    padding: 0.25rem 0.5rem 0.25rem 0.5rem;
    margin-left: 0.6rem;
    margin-right: 0.6rem;
    margin-top: 0.6rem;
    margin-bottom: 0.6rem;
    background-color: transparent;
    z-index: 10;

    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

    font-size: 1rem;

    cursor:pointer;
    transition: all 230ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */
}

.buttonlike:hover{
    text-decoration: none;
    color:black
}

.absolute-btn{
    width:auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

button:disabled{
    opacity:0.5;
    cursor:not-allowed
}

button:disabled p{
    cursor:not-allowed
}

button:disabled:hover{
    background-color: transparent;
}

.del-btn{
    background-color:transparent;
    border-color:red;
    color:red
}
.del-btn:hover{
    background-color:red;
    color:black;
}
.del-btn:disabled:hover{
    color:red;
}

.terminal-btn{
    width:1.5rem;
    height:1.5rem;
    display: flex;
    align-items: center; justify-content: center;
    margin: 0 0.15rem 0 0.15rem;

    backdrop-filter: blur(3r);

    border: none;
    border-radius: 0.3rem;
    background-color: #2d3031e2;
}
.terminal-btn:hover{
    background-color: #798287e2;
}

.default-upload{
    min-width:2.25rem;
    width:2.25rem;
    height:2.25rem;
    transition: all 400ms cubic-bezier(0.665, 0.005, 0.080, 1.000); /* custom */
    transition-delay: 125ms;
    display: flex;
    flex-direction: row;
    text-align: center;
    padding:0;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
}
.default-upload:hover{
    width:27rem;
}

.default-upload-decor{
    line-height:0;
    font-weight: 700;

    transform: rotate(90deg) translate(0rem, 0.0775rem) !important;
    -moz-transform:rotate(90deg) translate(0rem, -0.03875rem) !important;
    
    min-width:2.25rem;
    width:2.25rem;
    height:2.25rem;

    display: flex;
    justify-content: center;
    align-items: center;
}

.subtle-txt{
    font-family: "Montserrat";
    margin:0;
    padding:0;
    text-align:center;
    z-index: 10;
}

#position_debug{
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    background-color: #181a1b7b;
    padding: 0.3rem 0.5rem 0.3rem 0.5rem;
    border-radius: 0.4rem;
    transition: all 230ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.248), -5px 5px 20px 0px rgba(0, 0, 0, 0.17);
    border: 1px solid #373c3c;
    margin:1rem 1rem 0 0;
}

.subtle-btn{
    display: flex;
    align-items: center;
    justify-content: center;

    border:none;
    margin:0px 0.1rem 0px 0.1rem;
    background-color: transparent;
    padding:0;
    border-radius: 0.6rem;
    width: 2.5rem;
    height: 2.5rem;
    transition: background-color 200ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */
    z-index: 10;
}
.subtle-btn:hover{
    padding:0;
    background-color: rgba(255, 255, 255, 0.2);
}
.hovering-subtle-btn, .hovering-subtle-btn:hover{
    padding:0;
    background-color: rgba(255, 255, 255, 0.24);
}

/* TEXT STYLE STUFF */

p{
    cursor: default;
    font-weight: 400;
    font-size: 0.85rem;
    margin:0;
    z-index: 10;
}
.legal p{
    font-size: 0.85rem;
}

h1{
    cursor: default;
    font-weight: 300;
    font-size: 3rem;
    letter-spacing: 5px;
    margin:0;
    z-index: 10;
}
.legal h1{
    font-size: 2.5rem;
}

h2{
    cursor: default;
    font-weight: 300;
    font-size: 2rem;
    font-family: Montserrat;
    letter-spacing: 5px;
    margin:0;
    z-index: 10;
    transition: color 10ms cubic-bezier(0.260, 0.050, 0.250, 1.000), color 330ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */
}
.legal h2{
    font-size: 2rem;
}

h3{
    font-size: 1.5rem;
    font-weight: 400;
    margin:0;
    z-index: 10;
}
.legal h3{
    font-size: 1.5rem;
}

h4{
    font-size: 1.25rem;
    font-weight: 500;
    margin:0;
    z-index: 10;
    opacity: 1;
}
.legal h4{
    font-size: 1.2rem;
}

h5{
    z-index: 10;
}
.legal h5{
    font-size: 1rem;
}


a{
    color: rgb(69, 165, 255);
    text-decoration: none;
}

a:hover{
    text-decoration: underline;
}

.spoiler, .spoiler2{
    padding: 0 0.3rem 0 0.3rem;
    color: black; 
    border-radius: 0.2rem;
    background-color:black;
    transition: all 300ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */

    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.spoiler:hover{
    color: rgba(255, 255, 255, 0.741);
    background-color:rgb(68, 68, 68);

    -webkit-touch-callout: initial;
    -webkit-user-select: initial;
    -khtml-user-select: initial;
    -moz-user-select: initial;
    -ms-user-select: initial;
    user-select: initial;
}

.spoiler2:hover { 
    background-color:white; 
}

/* TEXT STYLE END */


button:hover, .buttonlike:hover{
    background-color: #fff;
    color:black
}

.absolute-btn:hover{
    background-color: #fff;
    color:black
}

.absolute-btn.disable{
    opacity:0.5;
    cursor: not-allowed;
}

.absolute-btn.disable:hover{
    padding-left: 1rem;
    padding-right: 1rem;
}

.absolute-btn.disable p{
    cursor: not-allowed;
}

button p{
    cursor: pointer;
}

.notransition {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -o-transition: none !important;
    transition: none !important;
}

.unselectable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.nolinkunderline{
    text-decoration: none;
}

.copyrightmsg{
    font-size: 0.8rem;
}

#node-menu:before{
    content: "";
    position:absolute;
    top:-60px;
    left:0;
    height:60px;
    width: 60px;
    border-bottom-left-radius: 50%;
    background:transparent;
    box-shadow: 0 30px 0 0 #181a1b;
}

#node-menu:after {
    content: "";
    position:absolute;
    top:-60px;
    right:0;
    height:60px;
    width: 60px;
    border-bottom-right-radius: 50%;
    background:transparent;
    box-shadow: 0 30px 0 0 #181a1b;
}

.menu-container{
    /* background-color: rgb(119, 0, 0); */
    background-color: #181a1b;
    position:absolute;
    transition: background-color 150ms cubic-bezier(0.260, 0.050, 0.250, 1.000); /* custom */
    z-index: 3;

    /* box-shadow: 0 0 20px black */
}

.no-scroll-bar {
    -ms-overflow-style: none;  /* Internet Explorer 10+ */
    scrollbar-width:none;  /* Firefox */
}
.no-scroll-bar::-webkit-scrollbar { 
    display: none;  /* Safari and Chrome */
}

.terminal{
    width:100%;
    overflow:auto;
    display:flex;
    flex-direction:column;
    background-color: #0f1011;
    border: 1px solid #333737;
    border-bottom: 1px solid rgba(255, 255, 255, 0.145);
    padding: 0.5rem 0.5rem 0.5rem 0.5rem;
    border-radius: 0.7rem 0.7rem 0 0;
    color:#b3b3b3;
    word-wrap: break-word;
    margin:0;

    /* hide scrollbar */
    -ms-overflow-style: none;  /* Internet Explorer 10+ */
    scrollbar-width:none;  /* Firefox */
}

.terminal::-webkit-scrollbar{
    /* Hide scrollbar for Chrome, Safari and Opera */
    display: none;
}

.terminal:hover ~ #terminal-ctrl{
    opacity: 1;
}
#terminal-ctrl{
    opacity: 0;
    transition: all 230ms cubic-bezier(0.260, 0.050, 0.250, 1.000);
    overflow: none;
    padding:0;
}
#terminal-ctrl:hover{
    opacity: 1;
}

.terminal-in{
    width:100%;
    min-height:1.8rem;
    display:flex;
    flex-direction:column;
    justify-content:center;
    text-align: left;
    background-color: #0f1011;
    border: 1px solid #333737;
    padding: 0rem 0.75rem 0rem 0.75rem;
    border-radius:0 0 0.7rem 0.7rem;
    border-top: none;
    color:#ffffff;
    word-wrap: wrap;
    font-size: 0.7rem;
    letter-spacing: -0.3px;
    font-family: "Source Code Pro";
}

.terminal-in:focus {
    outline: none;
}

.terminal span{
    margin-top:0.75rem;
    line-height:1rem;
    font-family: "Source Code Pro";
    font-size: 0.75rem;
    cursor:text;
}

.terminal span.info{
    margin:0;
    color:#727272
}

h3.section-text{
    font-size: clamp(0.3rem, min(2.5vh, 1.5vw), 3rem);
}

h5.section-text{
    font-size: clamp(0.2rem, min(1.5vh, 1vw), 2.75rem);
}

p.section-text{
    font-size: clamp(0.15rem, min(1.7vh, 0.6vw), 2.5rem);
}

hr{
    opacity: 0.3;
    
}

.hr{
    position: absolute;
    width:100vw;
    height:2px;
    background-color: rgba(255, 255, 255, 0.062);
}

.vr{
    width:1px;
    margin: 0 0.5rem 0 0.5rem;
    background-color: rgba(255, 255, 255, 0.062);
    z-index: 10;
    background-color:#ffffff3d
}

.node{
    position:absolute;
    z-index: 2;
    text-align: center;
    border: 2px solid;
    border-color: transparent;
    transition: all 500ms cubic-bezier(0.355, 0.010, 0.200, 1.010); /* custom */
    display:flex; align-items: center; justify-content: center; flex-direction: column;
}

.crosshair{
    position:absolute;
    background-color: transparent;
    padding: 0px;
    margin: 0px;
    color:red;
    z-index: 1;
}

.node-drag{
    cursor: move;
    background-color: #2e2e2e;
    border-radius: 15px;
    padding: 0.5rem 1rem 0.5rem 1rem;
    box-shadow: -0.1rem 0.1rem 20px 5px rgba(0, 0, 0, 0.576), 0rem 0rem 10px 2px rgba(0, 0, 0, 0.151);
    border: 1.5px solid;
    border-color: #424242;
    transition: opacity 300ms cubic-bezier(0.355, 0.010, 0.200, 1.010); /* custom */
}

.node-dragging{
    opacity:0.7 !important
}
.node-edge-dragging:hover{
    background-color: #424242 !important;
    border-color: #666666 !important;

    /* animation-name: node-blink;
    animation-duration: 0.4s;
    animation-delay: 4s;
    animation-iteration-count: infinite; */
}
@keyframes node-blink {
    from {filter: brightness(1);}
    50%  {filter: brightness(0.8);} /* ignored */
    to   {filter: brightness(1);}
}

.selected-node{
    border-color: rgb(177, 0, 0);
    border-width: 1.2px;
}

.node-out{
    cursor: grab;
    background-color: rgb(255, 208, 0);
    width:8px;
    height:8px;
    margin-top:5px;
    border-radius: 1.5px;
    z-index: 3;
}

.node-in{
    cursor: normal;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 8px solid rgb(19, 224, 0);
    margin-bottom:5px;
    cursor: grab;
}

.node-title{
    font-size: 1rem;
    font-weight: 500;
    margin:0;
    font-family: "Montserrat"
}

.node-text{
    color:lightgray;
    font-size: 0.8rem;
    font-weight: 400;
    margin:0;
    z-index: 2;
    font-family: "Montserrat";
    white-space: nowrap;
}

/* node menu container */

.node-menu-container{
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    min-height: 10rem;
    height:calc(100vh - 21rem);
    width:100%;
    padding-top: 1rem;
}

#default-node-menu{
    justify-content: center;
    padding: 0;
}

/* slider */

.slider{
    -webkit-appearance: none;
    appearance: none;
    background: #2d3031;
    height: 0.25rem;
    border-radius: 100vw;
    width: 70%;
    outline: none;
}

.slider::-webkit-slider-thumb{
    -webkit-appearance: none;
    appearance: none;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: #2d3031;
    border: 0.225rem solid #bdbdbd;
    cursor: pointer;
    transition: all 170ms cubic-bezier(0.260, 0.050, 0.250, 1.000)/* custom */
}
.slider::-moz-range-thumb{
    -webkit-appearance: none;
    appearance: none;
    width: 0.3rem;
    height: 0.3rem;
    border-radius: 50%;
    background: #2d3031;
    border: 0.27rem solid #bdbdbd;
    cursor: pointer;
    transition: all 170ms cubic-bezier(0.260, 0.050, 0.250, 1.000)/* custom */
}

.slider::-webkit-slider-thumb:hover{
    border-width: 0.4rem;
    width: 1.2rem;
    height: 1.2rem;
}
.slider::-moz-range-thumb:hover {
    border-width: 0.5rem;
}

.slider::-webkit-slider-thumb:disabled {
    -webkit-appearance: none;
    appearance: none;
    border-radius: 50%;
    background: #404040;
    border:none;
    cursor: pointer;
}
.slider::-moz-range-thumb:disabled{
    -webkit-appearance: none;
    appearance: none;
    border-radius: 50%;
    background: #404040;
    border:none;
    cursor: pointer;
}

.slider-container{
    width:100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin:0.1rem;
}

.input-parent-container{
    width:87%;
}

.input-parent-container p{
    font-weight: 500;
    font-size: 0.7rem;
    margin-top: 0rem
}

/* number input */
.number-box{
    width: 3.25rem;
    padding: 0.2rem 0 0.2rem 0;
    border: 1px solid #ffffff52;
    border-radius: 100vh;
    text-align: center;
    background-color: transparent;
    color:white;
    outline: none;
    font-size: 0.85rem;
}

.number-box:disabled{
    color:gray;
}

/* Make the terminal prompt outline red when clicked */
/* input[type=text]:focus{
    border-top: 1px solid #be1a00;
    border-color: #be1a00;
} */

#networkname{
    background-color: transparent;
    z-index:100;
    color:rgb(236, 236, 236);
    font-family: poppins;
    font-size: 1.3rem;
    outline: none;
    border:none;
    font-weight: 600;
}

#networkname:focus{
    border:none
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Check boxes */
/* The switch - the box around the slider */
 .switch {
    position: relative;
    display: inline-block;
    width: 2.4rem;
    height: 1.5rem;
    margin:0;
}
  
/* Hide default HTML checkbox */
.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
  
/* The slider */
.checkbox-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #44484b;

    border:1px solid #60666b;

    -webkit-transition: .4s;
    transition: .4s;
}
  
.checkbox-slider:before {
    position: absolute;
    content: "";
    height: 1.3rem;
    width: 1.3rem;

    left: 0rem;
    top:0.025rem;

    background-color: white;
    -webkit-transition: .2s;
    transition: .2s;
}
  
.custom-checkbox:checked + .checkbox-slider {
    background-color: #2196F3;
    border:1px solid #48a4ee;
}
  
.custom-checkbox:focus + .checkbox-slider {
    box-shadow: 0 0 1px #2196F3;
}

.custom-checkbox:checked + .checkbox-slider:before {
    -webkit-transform: translateX(calc(calc(min(1.5vw, 2.5vh) * 1.8) - 100% - calc((min(1.5vw, 2.5vh) - min(1.3vw, 2.3vh)) / 4)));
    -ms-transform: translateX(calc(calc(min(1.5vw, 2.5vh) * 1.8) - 100% - calc((min(1.5vw, 2.5vh) - min(1.3vw, 2.3vh)) / 4)));
    transform: translateX(1rem);
}
  
  /* Rounded sliders */
.checkbox-slider.round {
    border-radius: 100vh;
}
  
.checkbox-slider.round:before {
    border-radius: 50%;
} 

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}
input[type=number]:focus{
    border-color: #be1a00;
}

.node-selection{
    text-decoration: none;
}

#temp_edge{
    opacity:0.5;
    z-index: 2;
}


/* ===== all selector css ==== */

 /* The container must be positioned relative: */

select{
    background:url("selectarrow.svg");
    border: 1px solid rgba(255, 255, 255, 0.349);
    color:white;
    border-radius: 100vh;
    padding: 0.35rem 0 0.35rem 0.6vw;
    font-size: 0.8rem;
    margin:0;
    cursor: pointer;
    outline:none;
    -webkit-appearance:none;
    -moz-appearance: none;
    appearance: none;

    width:100%;

    overflow: hidden;
    background-size:contain;
    background-repeat: no-repeat;
    background-position-x: right;
}

select option {
    color: black;
    padding: 0 10px;
}

/* ===== all tool tips css ===== */