:after,:before {
    box-sizing: border-box;
    border: 0 solid #e5e7eb
}

:after,:before {
    --tw-content: ""
}

:host,html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    font-family: ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent
}

body {
    margin: 0;
    line-height: inherit
}

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px
}

abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
}

h1,h2,h3,h4,h5,h6 {
    font-size: inherit;
    font-weight: inherit
}

a {
    color: inherit;
    text-decoration: inherit
}

b,strong {
    font-weight: bolder
}

code,kbd,pre,samp {
    font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;
    font-feature-settings: normal;
    font-variation-settings: normal;
    font-size: 1em
}

small {
    font-size: 80%
}

sub,sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse
}

button,input,optgroup,select,textarea {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
    padding: 0
}

button,select {
    text-transform: none
}

button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]) {
    appearance: button; /* Standard property */
    -webkit-appearance: button; /* Webkit (Chrome, Safari) */
    background-color: transparent;
    background-image: none;
}

:-moz-focusring {
    outline: auto
}

:-moz-ui-invalid {
    box-shadow: none
}

progress {
    vertical-align: baseline
}

::-webkit-inner-spin-button,::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    appearance: textfield;
    -webkit-appearance: textfield;
    outline-offset: -2px
}

::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

summary {
    display: list-item
}

blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre {
    margin: 0
}

fieldset {
    margin: 0
}

fieldset,legend {
    padding: 0
}

menu,ol,ul {
    list-style: none;
    margin: 0;
    padding: 0
}

dialog {
    padding: 0
}

textarea {
    resize: vertical
}

input::-moz-placeholder,textarea::-moz-placeholder {
    opacity: 1;
    color: #9ca3af
}

input::placeholder,textarea::placeholder {
    opacity: 1;
    color: #9ca3af
}

[role=button],button {
    cursor: pointer
}

:disabled {
    cursor: default
}

audio,canvas,embed,iframe,img,object,svg,video {
    display: block;
    /* vertical-align: middle*/
}

img,video {
    max-width: 100%;
    height: auto
}

[hidden] {
    display: none
}

:root {
    --background: 0 0% 100%;
    --foreground: 0 0% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 0 0% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 0 0% 3.9%;
    --primary: 0 0% 9%;
    --primary-foreground: 0 0% 98%;
    --secondary: 0 0% 96.1%;
    --secondary-foreground: 0 0% 9%;
    --muted: 0 0% 96.1%;
    --muted-foreground: 0 0% 45.1%;
    --accent: 0 0% 96.1%;
    --accent-foreground: 0 0% 9%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 89.8%;
    --input: 0 0% 89.8%;
    --ring: 0 0% 3.9%;
    --radius: 0.5rem
}

.dark {
    --background: 0 0% 3.9%;
    --foreground: 0 0% 98%;
    --card: 0 0% 3.9%;
    --card-foreground: 0 0% 98%;
    --popover: 0 0% 3.9%;
    --popover-foreground: 0 0% 98%;
    --primary: 0 0% 98%;
    --primary-foreground: 0 0% 9%;
    --secondary: 0 0% 14.9%;
    --secondary-foreground: 0 0% 98%;
    --muted: 0 0% 14.9%;
    --muted-foreground: 0 0% 63.9%;
    --accent: 0 0% 14.9%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 14.9%;
    --input: 0 0% 14.9%;
    --ring: 0 0% 83.1%
}

* {
    border-color: hsl(var(--border))
}

body {
    background-color: hsl(var(--background));
    color: hsl(var(--foreground))
}

*,:after,:before {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgba(59,130,246,.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style:
}

::backdrop {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgba(59,130,246,.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style:
}

.visible {
    visibility: visible
}

.invisible {
    visibility: hidden
}

.fixed {
    position: fixed
}

.absolute {
    position: absolute
}

.relative {
    position: relative
}

.bottom-0 {
    bottom: 0
}

.left-2 {
    left: .5rem
}

.right-0 {
    right: 0
}

.top-0 {
    top: 0
}

.z-10 {
    z-index: 10
}

.z-20 {
    z-index: 20
}

.z-50 {
    z-index: 50
}

.z-\[2\] {
    z-index: 2
}

.z-\[3\] {
    z-index: 3
}

.z-\[5\] {
    z-index: 5
}

.-mx-1 {
    margin-left: -.25rem;
    margin-right: -.25rem
}

.mx-auto {
    margin-left: auto;
    margin-right: auto
}

.my-1 {
    margin-top: .25rem;
    margin-bottom: .25rem
}

.my-2 {
    margin-top: .5rem
}

.mb-2,.my-2 {
    margin-bottom: .5rem
}

.mb-4 {
    margin-bottom: 1rem
}

.mb-8 {
    margin-bottom: 2rem
}

.mb-20 {
    margin-bottom: 5rem
}

.ml-auto {
    margin-left: auto
}

.ml-selected {
    margin-left: auto;
}

.mr-auto {
    margin-right: auto
}

.mt-20 {
    margin-top: 5rem
}

.mt-auto {
    margin-top: auto
}

.block {
    display: block
}

.flex {
    display: flex
}

.inline-flex {
    display: inline-flex
}

.grid {
    display: grid
}

.hidden {
    display: none
}

.\!aspect-square {
    aspect-ratio: 1/1!important
}

.aspect-square {
    aspect-ratio: 1/1
}

.aspect-video {
    aspect-ratio: 16/9
}

.h-2 {
    height: .5rem
}

.h-3 {
    height: .75rem
}

.h-3\.5 {
    height: .875rem
}

.h-32 {
    height: 8rem
}

.h-4 {
    height: 1rem
}

.h-6 {
    height: 1.5rem
}

.h-8 {
    height: 2rem
}

.h-\[1px\] {
    height: 1px
}

.h-auto {
    height: auto
}

.h-full {
    height: 100%
}

.h-max {
    height: -moz-max-content;
    height: max-content
}

.h-px {
    height: 1px
}

.h-screen {
    height: 100vh
}

.min-h-40 {
    min-height: 10rem
}

.min-h-screen {
    min-height: 100vh
}

.w-0 {
    width: 0
}

.w-2 {
    width: .5rem
}

.w-3 {
    width: .75rem
}

.w-3\.5 {
    width: .875rem
}

.w-32 {
    width: 8rem
}

.w-4 {
    width: 1rem
}

.w-6 {
    width: 1.5rem
}

.w-8 {
    width: 2rem
}

.w-\[1px\] {
    width: 1px
}

.w-\[95\%\] {
    width: 95%
}

.w-full {
    width: 100%
}

.w-max {
    width: -moz-max-content;
    width: max-content
}

.min-w-\[8rem\] {
    min-width: 8rem
}

.max-w-40 {
    max-width: 10rem
}

.max-w-\[100vw\] {
    max-width: 100vw
}

.cursor-default {
    cursor: default
}

.cursor-pointer {
    cursor: pointer
}

nav {
    overflow: hidden;
}

.select-none {
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

.grid-flow-row {
    grid-auto-flow: row
}

.grid-flow-col {
    grid-auto-flow: column
}

.grid-cols-\[1fr_auto_1fr\] {
    grid-template-columns: 1fr auto 1fr
}

.grid-cols-\[auto_max-content\] {
    grid-template-columns: auto max-content
}

.grid-cols-\[max-content_auto\] {
    grid-template-columns: max-content auto
}

.grid-cols-\[max-content_max-content\] {
    grid-template-columns: max-content max-content
}

.grid-cols-\[repeat\(3\2c max-content\)\] {
    grid-template-columns: repeat(3,max-content)
}

.grid-rows-2 {
    grid-template-rows: repeat(2,minmax(0,1fr))
}

.place-items-start {
    place-items: start
}

.place-items-center {
    place-items: center
}

.items-center {
    align-items: center
}

.justify-center {
    justify-content: center
}

.gap-1 {
    gap: .25rem
}

.gap-2 {
    gap: .5rem
}

.gap-4 {
    gap: 1rem
}

.overflow-hidden {
    overflow: hidden
}

.overflow-x-auto {
    overflow-x: auto
}

.overflow-y-hidden {
    overflow-y: hidden
}

.overflow-x-scroll {
    overflow-x: scroll
}

.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.whitespace-pre {
    white-space: pre
}

.rounded-md {
    border-radius: calc(var(--radius) - 2px)
}

.rounded-sm {
    border-radius: calc(var(--radius) - 4px)
}

.rounded-xl {
    border-radius: .75rem
}

.border,.border-\[1px\] {
    border-width: 1px
}

.border-neutral-500 {
    --tw-border-opacity: 1;
    border-color: rgb(115 115 115/var(--tw-border-opacity))
}

.border-zinc-300 {
    --tw-border-opacity: 1;
    border-color: rgb(212 212 216/var(--tw-border-opacity))
}

.\!bg-zinc-400 {
    --tw-bg-opacity: 1!important;
    background-color: rgb(161 161 170/var(--tw-bg-opacity))!important
}

.bg-emerald-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(16 185 129/var(--tw-bg-opacity))
}

.bg-red-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(225 81 81/var(--tw-bg-opacity))
}

.bg-muted {
    background-color: hsl(var(--muted))
}

.bg-neutral-200 {
    --tw-bg-opacity: 1;
    background-color: rgb(229 229 229/var(--tw-bg-opacity));
}

.bg-neutral-300 {
    --tw-bg-opacity: 1;
    background-color: rgb(212 212 212/var(--tw-bg-opacity))
}

.bg-pink-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(236 72 153/var(--tw-bg-opacity))
}

.bg-popover {
    background-color: hsl(var(--popover))
}

.bg-sky-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(14 165 233/var(--tw-bg-opacity))
}

.bg-zinc-300 {
    --tw-bg-opacity: 1;
    background-color: rgb(212 212 216/var(--tw-bg-opacity))
}

.fill-current {
    fill: currentColor
}

.p-1 {
    padding: .25rem
}

.p-2 {
    padding: .5rem
}

.p-\[0\.125rem\] {
    padding: .125rem
}

.px-2 {
    padding-left: .5rem;
    padding-right: .5rem
}

.px-3 {
    padding-left: .75rem;
    padding-right: .75rem
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem
}

.py-1 {
    padding-top: .25rem;
    padding-bottom: .25rem
}

.py-1\.5 {
    padding-top: .375rem;
    padding-bottom: .375rem
}

.py-2 {
    padding-top: .5rem;
    padding-bottom: .5rem
}

.py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem
}

.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem
}

.pb-2 {
    padding-bottom: .5rem
}

.pb-\[5\%\] {
    padding-bottom: 5%
}

.pl-8 {
    padding-left: 2rem
}

.pr-2 {
    padding-right: .5rem
}

.pt-10 {
    padding-top: 2.5rem
}

.pt-2 {
    padding-top: .5rem
}

.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem
}

.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem
}

.text-sm {
    font-size: .875rem;
    line-height: 1.25rem
}

.text-xs {
    font-size: .75rem;
    line-height: 1rem
}

.font-semibold {
    font-weight: 600
}

.tracking-wider {
    letter-spacing: .05em
}

.tracking-widest {
    letter-spacing: .1em
}

.text-\[\#6A9955\] {
    --tw-text-opacity: 1;
    color: rgb(106 153 85/var(--tw-text-opacity))
}

.text-black {
    --tw-text-opacity: 1;
    color: rgb(0 0 0/var(--tw-text-opacity))
}

.text-blue-500 {
    --tw-text-opacity: 1;
    color: rgb(59 130 246/var(--tw-text-opacity))
}

.text-cyan-500 {
    --tw-text-opacity: 1;
    color: rgb(6 182 212/var(--tw-text-opacity))
}

.text-cyan-600 {
    --tw-text-opacity: 1;
    color: rgb(8 145 178/var(--tw-text-opacity))
}

.text-emerald-500 {
    --tw-text-opacity: 1;
    color: rgb(16 185 129/var(--tw-text-opacity))
}

.text-indigo-500 {
    --tw-text-opacity: 1;
    color: rgb(99 102 241/var(--tw-text-opacity))
}

.text-indigo-600 {
    --tw-text-opacity: 1;
    color: rgb(79 70 229/var(--tw-text-opacity))
}

.text-lime-500 {
    --tw-text-opacity: 1;
    color: rgb(132 204 22/var(--tw-text-opacity))
}

.text-neutral-500 {
    --tw-text-opacity: 1;
    color: rgb(115 115 115/var(--tw-text-opacity))
}

.text-orange-500 {
    --tw-text-opacity: 1;
    color: rgb(249 115 22/var(--tw-text-opacity))
}

.text-pink-500 {
    --tw-text-opacity: 1;
    color: rgb(236 72 153/var(--tw-text-opacity))
}

.text-popover-foreground {
    color: hsl(var(--popover-foreground))
}

.text-sky-300 {
    --tw-text-opacity: 1;
    color: rgb(125 211 252/var(--tw-text-opacity))
}

.text-sky-500 {
    --tw-text-opacity: 1;
    color: rgb(14 165 233/var(--tw-text-opacity))
}

.text-teal-700 {
    --tw-text-opacity: 1;
    color: rgb(15 118 110/var(--tw-text-opacity))
}

.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255/var(--tw-text-opacity))
}

.text-zinc-300 {
    --tw-text-opacity: 1;
    color: rgb(212 212 216/var(--tw-text-opacity))
}

.text-zinc-500 {
    --tw-text-opacity: 1;
    color: rgb(113 113 122/var(--tw-text-opacity))
}

.opacity-0 {
    opacity: 0
}

.opacity-60 {
    opacity: .6
}

.shadow-lg {
    --tw-shadow: 0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)
}

.shadow-lg,.shadow-md {
    box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)
}

.shadow-md {
    --tw-shadow: 0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)
}

.outline-none {
    outline: 2px solid transparent;
    outline-offset: 2px
}

.backdrop-blur-2xl {
    --tw-backdrop-blur: blur(40px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
}

.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: .15s
}

.transition-colors {
    transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: .15s
}

.\!delay-300 {
    transition-delay: .3s!important
}

.duration-200 {
    transition-duration: .2s
}

.duration-300 {
    transition-duration: .3s
}

.duration-500 {
    transition-duration: .5s
}

.ease-in-out {
    transition-timing-function: cubic-bezier(.4,0,.2,1)
}

@keyframes enter {
    0% {
        opacity: var(--tw-enter-opacity,1);
        transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))
    }
}

@keyframes exit {
    to {
        opacity: var(--tw-exit-opacity,1);
        transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))
    }
}

.animate-in {
    animation-name: enter;
    animation-duration: .15s;
    --tw-enter-opacity: initial;
    --tw-enter-scale: initial;
    --tw-enter-rotate: initial;
    --tw-enter-translate-x: initial;
    --tw-enter-translate-y: initial
}

.fade-in-0 {
    --tw-enter-opacity: 0
}

.zoom-in-95 {
    --tw-enter-scale: .95
}

.duration-200 {
    animation-duration: .2s
}

.duration-300 {
    animation-duration: .3s
}

.duration-500 {
    animation-duration: .5s
}

.\!delay-300 {
    animation-delay: .3s!important
}

.ease-in-out {
    animation-timing-function: cubic-bezier(.4,0,.2,1)
}

* {
    font-family: Jetbrains Mono,monospace!important
}

body,html {
    scroll-behavior: smooth
}

::-webkit-scrollbar {
    height: 6px;
    width: 6px
}

::-webkit-scrollbar-track {
    background: transparent
}

::-webkit-scrollbar-thumb {
    border-radius: 6px;
    background: #10b981;
    border: 1px solid transparent;
}

::-moz-selection {
    background: hsla(0,0%,100%,.125);
    color: #fff
}

::selection {
    background: hsla(0,0%,100%,.125);
    color: #fff
}

.ascii-art {
    font-family: Courier New,Courier,monospace!important;
    font-size: 1rem;
    line-height: 1rem;
    letter-spacing: -.5px
}

.hover\:border-black:hover {
    --tw-border-opacity: 1;
    border-color: rgb(0 0 0/var(--tw-border-opacity))
}

.hover\:bg-blue-500\/20:hover {
    background-color: rgba(59,130,246,.2)
}

.hover\:bg-emerald-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(4 120 87/var(--tw-bg-opacity))
}

.hover\:bg-red-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(255 81 81/var(--tw-bg-opacity))
}

.hover\:bg-neutral-500\/20:hover {
    background-color: hsla(0,0%,45%,.2)
}

.hover\:bg-pink-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(190 24 93/var(--tw-bg-opacity))
}

.hover\:bg-sky-700:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(3 105 161/var(--tw-bg-opacity))
}

.hover\:text-black:hover {
    --tw-text-opacity: 1;
    color: rgb(0 0 0/var(--tw-text-opacity))
}

.hover\:text-blue-600:hover {
    --tw-text-opacity: 1;
    color: rgb(37 99 235/var(--tw-text-opacity))
}

.hover\:text-blue-700:hover {
    --tw-text-opacity: 1;
    color: rgb(29 78 216/var(--tw-text-opacity))
}

.focus\:bg-accent:focus {
    background-color: hsl(var(--accent))
}

.focus\:text-accent-foreground:focus {
    color: hsl(var(--accent-foreground))
}

.data-\[disabled\]\:pointer-events-none[data-disabled] {
    pointer-events: none
}

.data-\[state\=open\]\:bg-accent[data-state=open] {
    background-color: hsl(var(--accent))
}

.data-\[disabled\]\:opacity-50[data-disabled] {
    opacity: .5
}

.data-\[state\=open\]\:animate-in[data-state=open] {
    animation-name: enter;
    animation-duration: .15s;
    --tw-enter-opacity: initial;
    --tw-enter-scale: initial;
    --tw-enter-rotate: initial;
    --tw-enter-translate-x: initial;
    --tw-enter-translate-y: initial
}

.data-\[state\=closed\]\:animate-out[data-state=closed] {
    animation-name: exit;
    animation-duration: .15s;
    --tw-exit-opacity: initial;
    --tw-exit-scale: initial;
    --tw-exit-rotate: initial;
    --tw-exit-translate-x: initial;
    --tw-exit-translate-y: initial
}

.data-\[state\=closed\]\:fade-out-0[data-state=closed] {
    --tw-exit-opacity: 0
}

.data-\[state\=open\]\:fade-in-0[data-state=open] {
    --tw-enter-opacity: 0
}

.data-\[state\=closed\]\:zoom-out-95[data-state=closed] {
    --tw-exit-scale: .95
}

.data-\[state\=open\]\:zoom-in-95[data-state=open] {
    --tw-enter-scale: .95
}

.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom] {
    --tw-enter-translate-y: -0.5rem
}

.data-\[side\=left\]\:slide-in-from-right-2[data-side=left] {
    --tw-enter-translate-x: 0.5rem
}

.data-\[side\=right\]\:slide-in-from-left-2[data-side=right] {
    --tw-enter-translate-x: -0.5rem
}

.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top] {
    --tw-enter-translate-y: 0.5rem
}

.dark\:border-border:is(.dark *) {
    border-color: hsl(var(--border))
}

.dark\:bg-border:is(.dark *) {
    background-color: hsl(var(--border))
}

.dark\:bg-neutral-800:is(.dark *) {
    --tw-bg-opacity: 1;
    background-color: rgb(38 38 38/var(--tw-bg-opacity))
}

.dark\:bg-neutral-900:is(.dark *) {
    --tw-bg-opacity: 1;
    background-color: rgb(23 23 23/var(--tw-bg-opacity))
}

.dark\:text-cyan-500:is(.dark *) {
    --tw-text-opacity: 1;
    color: rgb(6 182 212/var(--tw-text-opacity))
}

.dark\:text-indigo-400:is(.dark *) {
    --tw-text-opacity: 1;
    color: rgb(129 140 248/var(--tw-text-opacity))
}

.dark\:text-neutral-800:is(.dark *) {
    --tw-text-opacity: 1;
    color: rgb(38 38 38/var(--tw-text-opacity))
}

.dark\:text-white:is(.dark *) {
    --tw-text-opacity: 1;
    color: rgb(255 255 255/var(--tw-text-opacity))
}

.dark\:text-zinc-400:is(.dark *) {
    --tw-text-opacity: 1;
    color: rgb(161 161 170/var(--tw-text-opacity))
}

.dark\:hover\:border-white:hover:is(.dark *) {
    --tw-border-opacity: 1;
    border-color: rgb(255 255 255/var(--tw-border-opacity))
}

.dark\:hover\:text-white:hover:is(.dark *) {
    --tw-text-opacity: 1;
    color: rgb(255 255 255/var(--tw-text-opacity))
}

@media (min-width: 640px) {
    .sm\:grid {
        display:grid
    }

    .sm\:hidden {
        display: none
    }

    .sm\:grid-cols-\[auto_max-content\] {
        grid-template-columns: auto max-content
    }
}

@media (min-width: 768px) {
    .md\:mb-60 {
        margin-bottom:15rem
    }

    .md\:block {
        display: block
    }

    .md\:grid {
        display: grid
    }

    .md\:hidden {
        display: none
    }

    .md\:max-w-none {
        max-width: none
    }

    .md\:grid-cols-2 {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .md\:gap-2 {
        gap: .5rem
    }

    .md\:rounded-lg {
        border-radius: var(--radius)
    }

    .md\:px-4 {
        padding-left: 1rem;
        padding-right: 1rem
    }

    .md\:pt-20 {
        padding-top: 5rem
    }

    .md\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem
    }
}

@media (min-width: 1024px) {
    .lg\:w-\[60\%\] {
        width:60%
    }

    .lg\:w-\[75\%\] {
        width: 75%
    }
}

@media (min-width: 1280px) {
    .xl\:w-\[40\%\] {
        width:40%
    }

    .xl\:grid-cols-4 {
        grid-template-columns: repeat(4,minmax(0,1fr))
    }
}

@font-face {
    font-family: __Fira_Mono_a533b8;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/_next/static/media/c3381f0e3cd55a79-s.woff2) format("woff2");
    unicode-range: u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f
}

@font-face {
    font-family: __Fira_Mono_a533b8;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/_next/static/media/f9fb6c8c6c5421a6-s.woff2) format("woff2");
    unicode-range: u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116
}

@font-face {
    font-family: __Fira_Mono_a533b8;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/_next/static/media/fed1f60a1919a069-s.woff2) format("woff2");
    unicode-range: u+1f??
}

@font-face {
    font-family: __Fira_Mono_a533b8;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/_next/static/media/030df02360e5dc87-s.woff2) format("woff2");
    unicode-range: u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff
}

@font-face {
    font-family: __Fira_Mono_a533b8;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/_next/static/media/88f55461e8246337-s.woff2) format("woff2");
    unicode-range: u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff
}

@font-face {
    font-family: __Fira_Mono_a533b8;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/_next/static/media/8f32c48a86b1398a-s.p.woff2) format("woff2");
    unicode-range: u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd
}

@font-face {
    font-family: __Fira_Mono_Fallback_a533b8;
    src: local("Arial");
    ascent-override:68.79%;descent-override:19.50%;line-gap-override:0.00%;size-adjust:135.93%}

.__className_a533b8 {
    font-family: __Fira_Mono_a533b8,__Fira_Mono_Fallback_a533b8;
    font-weight: 400;
    font-style: normal
}

@keyframes page_fadeInDown__Kqx_e {
    0% {
        opacity: 0;
        transform: translateY(-10px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.page_fade-in-down__pi3Iv {
    opacity: 0;
    transform: translateY(-10px);
    animation: page_fadeInDown__Kqx_e 1s ease-in-out forwards
}

@keyframes page_fadeInUp__FVfor {
    0% {
        opacity: 0;
        transform: translateY(10px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.page_fade-in-up__w8lIO {
    opacity: 0;
    transform: translateY(10px);
    animation: page_fadeInUp__FVfor 1s ease-in-out forwards
}

@keyframes page_fadeInLeft__y6NlD {
    0% {
        opacity: 0;
        transform: translateX(40px)
    }

    to {
        opacity: 1;
        transform: translateX(0)
    }
}

.page_fade-in-left__3pzND {
    opacity: 0;
    transform: translateX(40px);
    animation: page_fadeInLeft__y6NlD 1s ease-in-out forwards
}

@keyframes page_wave__7vhC1 {
    0% {
        transform: rotate(0deg)
    }

    10% {
        transform: rotate(14deg)
    }

    20% {
        transform: rotate(-8deg)
    }

    30% {
        transform: rotate(14deg)
    }

    40% {
        transform: rotate(-4deg)
    }

    50% {
        transform: rotate(10deg)
    }

    60% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(0deg)
    }
}

.page_wave-animation__eZFdU {
    animation-name: page_wave__7vhC1;
    animation-duration: 2.5s;
    animation-iteration-count: infinite;
    transform-origin: 70% 70%;
    display: inline-block
}

@keyframes page_bounceInDown__4IeGb {
    0%,60%,75%,90%,to {
        transition-timing-function: cubic-bezier(.215,.61,.355,1)
    }

    0% {
        opacity: 0;
        transform: translateY(-3000px)
    }

    60% {
        opacity: 1;
        transform: translateY(25px)
    }

    75% {
        transform: translateY(-10px)
    }

    90% {
        transform: translateY(5px)
    }

    to {
        transform: translateY(0);
        opacity: 1
    }
}

.page_bouncing-animation___os1T {
    animation: page_bounceInDown__4IeGb 1s ease-in-out forwards;
    opacity: 0
}

@keyframes page_gradientAnimation__if28P {
    0% {
        background-position: 0 50%
    }

    50% {
        background-position: 100% 50%
    }

    to {
        background-position: 0 50%
    }
}

.page_special-text__JDcjy {
    background: linear-gradient(-45deg,#4da5fe,#4da5fe,#d041c2,#d041c2);
    background: -moz-linear-gradient(-45deg,#4da5fe,#4da5fe,#d041c2,#d041c2);
    background: -webkit-gradient(-45deg,#4da5fe,#4da5fe,#d041c2,#d041c2);
    background-size: 300%;
    -webkit-background-clip: text;
    -moz-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: page_gradientAnimation__if28P 10s ease-in-out infinite;
    -moz-animation: page_gradientAnimation__if28P 10s ease-in-out infinite;
    -webkit-animation: page_gradientAnimation__if28P 10s ease-in-out infinite
}

.page_special-text__JDcjy::-moz-selection {
    color: #fff;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    -webkit-text-fill-color: #fff
}

.page_special-text__JDcjy::selection {
    color: #fff;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    -webkit-text-fill-color: #fff
}

.contact-me-button_button__6aGNI * {
    transition-duration: .25s
}

.contact-me-button_button__6aGNI:hover .contact-me-button_arrow__rPMRA {
    transform: translateX(6px);
    transition-duration: .25s
}

.other-button_button__3a_Ta * {
    transition-duration: .25s
}

.other-button_button__3a_Ta:hover .other-button_boxes__ah_Hp {
    transform: translateY(-2px);
    transition-duration: .25s
}

.projects-button_button__jfbEv * {
    transition-duration: .25s;
    transition-timing-function: ease-in-out
}

.projects-button_button__jfbEv:hover .projects-button_icon__OfzUe {
    transform: rotate(1turn)
}

.technologies_technologies-container__ouFUi::-webkit-scrollbar {
    height: 0
}

.technologies_technologies-container__ouFUi::-webkit-scrollbar-thumb,.technologies_technologies-container__ouFUi::-webkit-scrollbar-track {
    background: transparent
}

@keyframes technology-icon_fadeInRight__j6uzx {
    0% {
        opacity: 0;
        transform: translateX(-100%)
    }

    to {
        opacity: 1;
        transform: translateX(0)
    }
}

.technology-icon_fade-in-right__TGeMO {
    opacity: 0;
    transform: translateX(-100%);
    animation: technology-icon_fadeInRight__j6uzx 1s ease-in-out forwards
}

.contact-me-button_button__6aGNI {
    border: none;
    box-shadow: none;
    outline: none;
}


/* Main Container */
.note-container {
    width: 100%;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    padding: 1rem;
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
}

/* Note Header */
.note-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.note-title {
    font-size: 1.5rem; /* 2xl equivalent */
    font-weight: 600; /* font-semibold equivalent */
}

.note-actions {
    display: flex;
    gap: 0.5rem;
}

.note-action-button {
    padding: 0.5rem 1rem; /* py-2 px-4 equivalent */
    background-color: hsl(var(--popover)); /* Use your existing variable */
    color: hsl(var(--foreground)); /* Ensure text is visible on button */
    border: 1px solid hsl(var(--border));
    border-radius: calc(var(--radius) - 2px); /* rounded-md equivalent */
}

/* Note Body */
.note-body {
    margin-bottom: 1rem;
    font-size: 1.125rem; /* lg equivalent */
}

/* Note Footer */
.note-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
}

.footer-text {
    color: hsl(var(--muted-foreground)); /* text-muted-foreground equivalent */
    font-size: .875rem; /* text-sm equivalent */
}

.container {
    display: flex;
    width: 90%;
}

.container2 {
    display: flex;
    width: 89.3%;
}

.container3 {
    display: flex;
    width: 89.7%;
}

.mt-2 {
    margin-top: .5rem
}

.mt-4 {
    margin-top: 1rem
}

.mt-8 {
    margin-top: 2rem
}

.z-30 {
    z-index: 30
}

.max-w-7x1 {
    max-width: 7.5rem
}

.justify-between {
    justify-content: space-between
}

.md:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem
}

.md:inline {
    display: inline
}

.ml-1 {
    margin-left: .25rem
}

.space-x-2 {
    gap: .5rem
}
 
.max-w-xs {
    max-width: 20rem
}

.md:max-w-none {
    max-width: none
}

.hover:text-black {
    --tw-text-opacity: 1;
    color: rgb(0 0 0/var(--tw-text-opacity))
}

.p-4 {
    padding: 1rem
}

.mt-16 {
    margin-top: 4rem
}

.z-2 {
    z-index: 2
}

.space-y-2 {
    gap: .5rem
}

.mb-12 {
    margin-bottom: 3rem
}

.note-title {
    font-size: 1.5rem; /* 2xl equivalent */
    font-weight: 600; /* font-semibold equivalent */
}

.note-actions {
    display: flex;
    gap: 0.5rem;
}

.note-action-button {
    padding: 0.5rem 1rem; /* py-2 px-4 equivalent */
    background-color: hsl(var(--popover)); /* Use your existing variable */
    color: hsl(var(--foreground)); /* Ensure text is visible on button */
    border: 1px solid hsl(var(--border));
    border-radius: calc(var(--radius) - 2px); /* rounded-md equivalent */
}

/* Note Body */
.note-body {
    margin-bottom: 1rem;
    font-size: 1.125rem; /* lg equivalent */
}

/* Note Footer */
.note-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
}

.footer-text {
    color: hsl(var(--muted-foreground)); /* text-muted-foreground equivalent */
    font-size: .875rem; /* text-sm equivalent */
}

.container {
    display: flex;
    width: 90%;
}

.container2 {
    display: flex;
    width: 89.3%;
}

.container3 {
    display: flex;
    width: 89.7%;
}

.mt-2 {
    margin-top: .5rem
}

.mt-4 {
    margin-top: 1rem
}

.mt-8 {
    margin-top: 2rem
}

.z-30 {
    z-index: 30
}

.max-w-7x1 {
    max-width: 7.5rem
}

.justify-between {
    justify-content: space-between
}

.md:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem
}

.md:inline {
    display: inline
}

.ml-1 {
    margin-left: .25rem
}

.space-x-2 {
    gap: .5rem
}
 
.max-w-xs {
    max-width: 20rem
}

.md:max-w-none {
    max-width: none
}

.hover:text-black {
    --tw-text-opacity: 1;
    color: rgb(0 0 0/var(--tw-text-opacity))
}

.p-4 {
    padding: 1rem
}

.mt-16 {
    margin-top: 4rem
}

.z-2 {
    z-index: 2
}

.space-y-2 {
    gap: .5rem
}

.mb-12 {
    margin-bottom: 3rem
}

/* Skills utilities */
.space-y-6 > :not(:last-child) {
  margin-bottom: 1.5rem;
}

.gap-6 {
  gap: 1.5rem;
}

.flex-1 {
  flex: 1 1 0%;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.ml-6 {
  margin-left: 1.5rem;
}

.mr-20 {
  margin-right: 5rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-neutral-600 {
  color: #525252;
}

.bg-neutral-700 {
  background-color: #404040;
}

/* Gradient helpers used by skill bars */
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-from), var(--tw-gradient-to));
}

.from-orange-500 { --tw-gradient-from: #f97316; }
.to-orange-400   { --tw-gradient-to:   #fb923c; }

.from-blue-500   { --tw-gradient-from: #3b82f6; }
.to-blue-400     { --tw-gradient-to:   #60a5fa; }

.from-yellow-500 { --tw-gradient-from: #eab308; }
.to-yellow-400   { --tw-gradient-to:   #facc15; }

.from-red-500    { --tw-gradient-from: #ef4444; }
.to-red-400      { --tw-gradient-to:   #f87171; }

.from-cyan-500   { --tw-gradient-from: #06b6d4; }
.to-cyan-400     { --tw-gradient-to:   #22d3ee; }

.from-purple-500 { --tw-gradient-from: #a855f7; }
.to-purple-400   { --tw-gradient-to:   #c084fc; }

.from-emerald-500 { --tw-gradient-from: #10b981; }
.to-emerald-400   { --tw-gradient-to:   #34d399; }

.from-pink-500   { --tw-gradient-from: #ec4899; }
.to-pink-400     { --tw-gradient-to:   #f472b6; }

/* Skill dot/name text colors */
.text-orange-400 { color: #fb923c; }
.text-orange-500 { color: #f97316; }

.text-blue-400   { color: #60a5fa; }
.text-blue-500   { color: #3b82f6; }

.text-yellow-400 { color: #facc15; }
.text-yellow-500 { color: #eab308; }

.text-red-400    { color: #f87171; }
.text-red-500    { color: #ef4444; }

.text-cyan-400   { color: #22d3ee; }
.text-cyan-500   { color: #06b6d4; }

.text-purple-400 { color: #c084fc; }
.text-purple-500 { color: #a855f7; }

.text-emerald-400 { color: #34d399; }
.text-emerald-500 { color: #10b981; }

.text-pink-400   { color: #f472b6; }
.text-pink-500   { color: #ec4899; }

.text-gray-400   { color: #9ca3af; }
.t-child {
  margin-bottom: 1.5rem;
}

.gap-6 {
  gap: 1.5rem;
}

.flex-1 {
  flex: 1 1 0%;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.ml-6 {
  margin-left: 1.5rem;
}

.mr-20 {
  margin-right: 5rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-neutral-600 {
  color: #525252;
}

.bg-neutral-700 {
  background-color: #404040;
}

/* Gradient helpers used by skill bars */
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-from), var(--tw-gradient-to));
}

.from-orange-500 { --tw-gradient-from: #f97316; }
.to-orange-400   { --tw-gradient-to:   #fb923c; }

.from-blue-500   { --tw-gradient-from: #3b82f6; }
.to-blue-400     { --tw-gradient-to:   #60a5fa; }

.from-yellow-500 { --tw-gradient-from: #eab308; }
.to-yellow-400   { --tw-gradient-to:   #facc15; }

.from-red-500    { --tw-gradient-from: #ef4444; }
.to-red-400      { --tw-gradient-to:   #f87171; }

.from-cyan-500   { --tw-gradient-from: #06b6d4; }
.to-cyan-400     { --tw-gradient-to:   #22d3ee; }

.from-purple-500 { --tw-gradient-from: #a855f7; }
.to-purple-400   { --tw-gradient-to:   #c084fc; }

.from-emerald-500 { --tw-gradient-from: #10b981; }
.to-emerald-400   { --tw-gradient-to:   #34d399; }

.from-pink-500   { --tw-gradient-from: #ec4899; }
.to-pink-400     { --tw-gradient-to:   #f472b6; }

/* Skill dot/name text colors */
.text-orange-400 { color: #fb923c; }
.text-orange-500 { color: #f97316; }

.text-blue-400   { color: #60a5fa; }
.text-blue-500   { color: #3b82f6; }

.text-yellow-400 { color: #facc15; }
.text-yellow-500 { color: #eab308; }

.text-red-400    { color: #f87171; }
.text-red-500    { color: #ef4444; }

.text-cyan-400   { color: #22d3ee; }
.text-cyan-500   { color: #06b6d4; }

.text-purple-400 { color: #c084fc; }
.text-purple-500 { color: #a855f7; }

.text-emerald-400 { color: #34d399; }
.text-emerald-500 { color: #10b981; }

.text-pink-400   { color: #f472b6; }
.text-pink-500   { color: #ec4899; }

.text-gray-400   { color: #9ca3af; }

.bg-black {
  background-color: #000;
}

.space-y-4 > :not(:last-child) {
  margin-bottom: 1rem;
}

.text-center {
  text-align: center;
}

.about-toolstack-list > :not(:last-child) {
    margin-bottom: 1.25rem;
}

.about-journey-image {
    max-width: 31rem;
    margin-left: auto;
    margin-right: auto;
}

/* About page: add space between Skills and right column, and align right cards */
@media (min-width: 768px) {
    .about-skills-section {
        align-items: stretch;
    }

    .about-right-column {
          margin-left: 7rem;
    }

    .about-right-card {
        max-width: 34rem;
        margin-left: auto;
    }
}