:root {
    --window-border: 2px solid var(--p-zinc-800);
    --window-padding: 0.75rem;
    --grid-gap: 0.75rem;
    --font-family-sans: 'IBM Plex Sans', sans-serif;
    --font-family-mono: 'IBM Plex Mono', monospace;
    --font-size: 18px;
}

@media (prefers-color-scheme: light) {
    :root {
        --window-border: 2px solid var(--p-zinc-200);
    }
}

* {
    margin: 0;
    padding: 0;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
    height: 100vh;
    overflow: auto;
    user-select: none;
    font-size: var(--font-size);
}

body {
    height: 100vh;
    background-image: repeating-linear-gradient(90deg, hsla(196,0%,79%,0.06) 0px, hsla(196,0%,79%,0.06) 1px,transparent 1px, transparent 96px),repeating-linear-gradient(0deg, hsla(196,0%,79%,0.06) 0px, hsla(196,0%,79%,0.06) 1px,transparent 1px, transparent 96px),repeating-linear-gradient(0deg, hsla(196,0%,79%,0.09) 0px, hsla(196,0%,79%,0.09) 1px,transparent 1px, transparent 12px),repeating-linear-gradient(90deg, hsla(196,0%,79%,0.09) 0px, hsla(196,0%,79%,0.09) 1px,transparent 1px, transparent 12px),linear-gradient(90deg, rgb(255,255,255),rgb(255,255,255));
    font-family: var(--font-family-mono);
    font-size: 1rem;
    color: var(--p-text-color);
}

@media (prefers-color-scheme: dark) {
    body {
        background-image: repeating-linear-gradient(90deg, hsla(57,0%,42%,0.09) 0px, hsla(57,0%,42%,0.09) 1px,transparent 1px, transparent 60px),repeating-linear-gradient(0deg, hsla(57,0%,42%,0.09) 0px, hsla(57,0%,42%,0.09) 1px,transparent 1px, transparent 60px),repeating-linear-gradient(0deg, hsla(57,0%,42%,0.09) 0px, hsla(57,0%,42%,0.09) 1px,transparent 1px, transparent 10px),repeating-linear-gradient(90deg, hsla(57,0%,42%,0.09) 0px, hsla(57,0%,42%,0.09) 1px,transparent 1px, transparent 10px),linear-gradient(90deg, rgb(20,20,20),rgb(20,20,20));
    }
}

#canvas {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 100;
}

button {
    font-family: var(--font-family-mono);
}

.window {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5px);
    box-shadow: rgba(0, 0, 0, 0.5) 0px 8px 32px;
    border: var(--window-border);
    animation: 0.5s fade cubic-bezier(0.47, 0, 0.745, 0.715);
    animation-delay: 0.2s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@media (prefers-color-scheme: dark) {
    .window {
        background-color: rgba(0, 0, 0, 0.25);
    }
}

.window > div {
    padding: var(--window-padding);
}

.window h1 {
    padding: 0.15rem;
    /* background-image: repeating-linear-gradient(90deg, hsla(292,0%,98%,0.05) 0px, hsla(292,0%,98%,0.05) 1px,transparent 1px, transparent 104px),repeating-linear-gradient(0deg, hsla(292,0%,98%,0.05) 0px, hsla(292,0%,98%,0.05) 1px,transparent 1px, transparent 104px),repeating-linear-gradient(0deg, hsla(292,0%,98%,0.07) 0px, hsla(292,0%,98%,0.07) 1px,transparent 1px, transparent 13px),repeating-linear-gradient(90deg, hsla(292,0%,98%,0.07) 0px, hsla(292,0%,98%,0.07) 1px,transparent 1px, transparent 13px),linear-gradient(90deg, rgb(64, 139, 254),rgb(104, 21, 247)); */
    /* background-image: repeating-linear-gradient(90deg, rgba(0,0,0,0.09),rgba(0,0,0,0.02),rgba(0,0,0,0.09),rgba(0,0,0,0.08),rgba(0,0,0,0.02),rgba(0,0,0,0.07),rgba(0,0,0,0.08),transparent,rgba(0,0,0,0.08),rgba(0,0,0,0.08),rgba(0,0,0,0.01),rgba(0,0,0,0.03),rgba(0,0,0,0.06) 3px),linear-gradient(135deg, rgb(2, 229, 227),rgb(83, 0, 141)); */
    /* background-image: repeating-linear-gradient(90deg, hsla(31,0%,65%,0.2) 0px, hsla(31,0%,65%,0.2) 0px,transparent 0px, transparent 1px,hsla(31,0%,65%,0.2) 1px, hsla(31,0%,65%,0.2) 4px,transparent 4px, transparent 5px,hsla(31,0%,65%,0.2) 5px, hsla(31,0%,65%,0.2) 8px),repeating-linear-gradient(0deg, hsla(31,0%,65%,0.2) 0px, hsla(31,0%,65%,0.2) 0px,transparent 0px, transparent 1px,hsla(31,0%,65%,0.2) 1px, hsla(31,0%,65%,0.2) 4px,transparent 4px, transparent 5px,hsla(31,0%,65%,0.2) 5px, hsla(31,0%,65%,0.2) 8px),linear-gradient(135deg, rgb(234, 234, 234),rgb(12, 12, 12)); */
    background-image: repeating-linear-gradient(90deg, hsla(71,0%,0%,0.2) 0px, hsla(71,0%,0%,0.2) 0px,transparent 0px, transparent 1px,hsla(71,0%,0%,0.2) 1px, hsla(71,0%,0%,0.2) 4px,transparent 4px, transparent 5px,hsla(71,0%,0%,0.2) 5px, hsla(71,0%,0%,0.2) 8px),repeating-linear-gradient(135deg, hsla(71,0%,0%,0.2) 0px, hsla(71,0%,0%,0.2) 0px,transparent 0px, transparent 1px,hsla(71,0%,0%,0.2) 1px, hsla(71,0%,0%,0.2) 4px,transparent 4px, transparent 5px,hsla(71,0%,0%,0.2) 5px, hsla(71,0%,0%,0.2) 8px),linear-gradient(45deg, rgb(59, 59, 59),rgb(4, 4, 4));
    font-family: var(--font-family-mono);
    font-size: 1.1rem;
    font-weight: 800;
    text-align: left;
    cursor: move;
    opacity: 0.75;
    text-shadow:
        -1px 0 rgba(0, 0, 0, 0.5), 
        0 1px rgba(0, 0, 0, 0.5), 
        1px 0 rgba(0, 0, 0, 0.5), 0 
        -1px rgba(0, 0, 0, 0.5),
        0 0 32px rgba(255, 255, 255, 0.8);
}

@media (prefers-color-scheme: light) {
    .window h1 {
        color: var(--p-zinc-100);
    }
}

.component-root {
    display: grid; 
    gap: var(--grid-gap);
}

[v-cloak] {
    display: none;
}

@keyframes fade {
    0% {
        opacity: 0;
        filter: blur(5px);
        transform: translate(0, -100%);
    }
    
    100% {
        opacity: 1;
    }
}