@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap";@font-face{font-family:Oxanium;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/oxanium-variable.ttf) format("truetype")}@font-face{font-family:Silkscreen;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/silkscreen-regular.ttf) format("truetype")}*,:before,:after{--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: rgb(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: rgb(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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,sans-serif;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,samp,pre{font-family:JetBrains Mono,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]){-webkit-appearance:button;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]{-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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{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}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 260 28% 5%;--foreground: 260 10% 98%;--card: 260 20% 8%;--card-foreground: 260 10% 98%;--popover: 260 25% 7%;--popover-foreground: 260 10% 98%;--primary: 326 90% 73%;--primary-foreground: 260 28% 5%;--secondary: 183 80% 72%;--secondary-foreground: 260 28% 5%;--accent: 264 85% 76%;--accent-foreground: 0 0% 100%;--warning: 28 95% 58%;--warning-foreground: 0 0% 100%;--muted: 260 15% 10%;--muted-foreground: 260 10% 68%;--destructive: 345 85% 60%;--destructive-foreground: 0 0% 100%;--success: 152 75% 52%;--success-foreground: 260 28% 5%;--border: 260 15% 12%;--input: 260 15% 12%;--ring: 325 90% 62%;--theme-purple: 270 85% 65%;--theme-green: 152 75% 52%;--theme-blue: 217 91% 60%;--theme-yellow: 38 92% 50%;--theme-orange: 25 95% 53%;--gradient-primary: linear-gradient(135deg, hsl(325 90% 62%) 0%, hsl(260 90% 68%) 50%, hsl(185 95% 48%) 100%);--gradient-accent: linear-gradient(135deg, hsl(260 90% 68%) 0%, hsl(185 95% 48%) 50%, hsl(152 75% 52%) 100%);--gradient-text: linear-gradient(135deg, hsl(0 0% 100%) 0%, hsl(185 95% 82%) 50%, hsl(260 90% 88%) 100%);--gradient-ctf: linear-gradient(135deg, hsl(325 90% 62%) 0%, hsl(185 95% 48%) 50%, hsl(260 90% 68%) 100%);--gradient-purple: linear-gradient(135deg, hsl(270 85% 65%) 0%, hsl(325 90% 62%) 50%, hsl(185 95% 48%) 100%);--gradient-green: linear-gradient(135deg, hsl(152 75% 52%) 0%, hsl(185 95% 48%) 50%, hsl(217 91% 60%) 100%);--gradient-blue: linear-gradient(135deg, hsl(217 91% 60%) 0%, hsl(185 95% 48%) 50%, hsl(152 75% 52%) 100%);--gradient-yellow: linear-gradient(135deg, hsl(38 92% 50%) 0%, hsl(28 95% 58%) 50%, hsl(25 95% 53%) 100%);--gradient-orange: linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(325 90% 62%) 50%, hsl(270 85% 65%) 100%);--glow-primary: 0 0 20px hsl(325 90% 62% / .12);--glow-secondary: 0 0 20px hsl(185 95% 48% / .12);--glow-accent: 0 0 20px hsl(260 90% 68% / .12);--glow-warning: 0 0 20px hsl(28 95% 58% / .12);--transition-smooth: all .3s cubic-bezier(.4, 0, .2, 1);--radius: .75rem;--radius-lg: 1rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:JetBrains Mono,monospace;letter-spacing:-.02em}.home-page :is(h1,h2,h3):not(.font-mono),.site-menu{font-family:Oxanium,sans-serif}::-moz-selection{background:hsl(var(--primary) / .2);color:hsl(var(--primary))}::selection{background:hsl(var(--primary) / .2);color:hsl(var(--primary))}.gradient-text{background:var(--gradient-primary);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gradient-text-accent{background:var(--gradient-accent);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gradient-text-purple{background:var(--gradient-purple);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gradient-text-green{background:var(--gradient-green);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gradient-text-blue{background:var(--gradient-blue);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gradient-text-yellow{background:var(--gradient-yellow);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.bg-card{background:#0a081080!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.05)!important;box-shadow:0 8px 32px #00000073}.card-hover{position:relative;--hover-theme: var(--primary)}.card-hover:hover{transition:box-shadow .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),border-color .4s cubic-bezier(.4,0,.2,1),background .4s cubic-bezier(.4,0,.2,1);background:#0f0c1899!important;box-shadow:0 20px 40px -10px #000000b3,0 0 30px -4px hsl(var(--hover-theme) / .22)!important;transform:translateY(-4px);border-color:hsl(var(--hover-theme) / .4)!important}.tech-grid{position:relative}.tech-grid:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(hsl(var(--accent) / .04) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--secondary) / .04) 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(circle at 50% 30%,black 20%,transparent 85%);-webkit-mask-image:radial-gradient(circle at 50% 30%,black 20%,transparent 85%);z-index:0}.cyber-grid{position:relative;background-color:hsl(var(--background));isolation:isolate}.cyber-grid:before,.portfolio-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:url(/assets/cyberpunk-digital-graffiti.webp);background-size:max(1440px,100vw) auto;background-position:center top;opacity:.14;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(black,rgb(0 0 0 / .65));mask-image:linear-gradient(#000,#000000a6);z-index:-1}@keyframes grid-travel{0%{background-position:center 0px,center 0px,center 0px,center 0px}to{background-position:center 80px,center 80px,center 20px,center 20px}}@keyframes float-blob-1{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}to{transform:translate(0) scale(1)}}@keyframes float-blob-2{0%{transform:translate(0) scale(1)}50%{transform:translate(-45px,45px) scale(1.08)}to{transform:translate(0) scale(1)}}.crt-effect{position:relative;overflow:hidden}.crt-effect:after{content:" ";display:block;position:absolute;top:0;left:0;bottom:0;right:0;background:linear-gradient(#12101000 50%,#00000040 50%),linear-gradient(90deg,#ff00ff0a,#00ffff05,#ff00ff0a);z-index:10;background-size:100% 4px,6px 100%;pointer-events:none}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.crt-scanline:before{content:"";position:absolute;width:100%;height:100px;background:linear-gradient(to bottom,transparent,rgba(236,72,153,.06) 50%,transparent);animation:scanline 6s linear infinite;z-index:11;pointer-events:none}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.terminal-cursor{display:inline-block;width:8px;height:15px;background-color:hsl(var(--primary));animation:blink 1s step-end infinite;vertical-align:middle;margin-left:4px}.animated-border.card-hover:hover{box-shadow:0 20px 40px -10px #00000080,0 0 30px hsl(var(--primary) / .15);transform:translateY(-4px);background:linear-gradient(hsl(var(--card)),hsl(var(--card))) padding-box,linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary))) border-box}.tag{display:inline-flex;align-items:center;border-radius:calc(var(--radius) - 2px);padding:.25rem .75rem;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1rem;font-weight:500}@media (max-width: 639px){.home-page .tag{overflow-wrap:anywhere}}@media (max-width: 767px){.skills-page .tag,.certifications-page .tag{font-size:.8125rem;line-height:1.65}}.tag{border-width:1px;border-color:hsl(var(--primary) / .2);background-color:hsl(var(--primary) / .05);color:hsl(var(--primary));transition:var(--transition-smooth)}.tag:hover{border-color:hsl(var(--primary) / .4);background-color:hsl(var(--primary) / .1)}.nav-link:hover:after,.nav-link.active:after{width:100%}.group:hover .title-hover-underline:after,.title-hover-underline:hover:after{width:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:hsl(var(--background))}::-webkit-scrollbar-thumb{background:hsl(var(--muted));border-radius:4px;border:2px solid hsl(var(--background))}::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground) / .5)}.prose{font-family:Inter,sans-serif;color:hsl(var(--foreground))}.prose pre{margin-top:1.5rem;margin-bottom:1.5rem;overflow-x:auto;border-radius:var(--radius);border-width:1px;border-color:hsl(var(--border));background-color:hsl(var(--muted) / .3);padding:1rem;font-family:JetBrains Mono,monospace;font-size:.875rem;line-height:1.25rem;line-height:1.625}@media (max-width: 639px){.home-page .prose pre{overflow-wrap:anywhere}}.prose code{border-radius:.25rem;background-color:hsl(var(--muted) / .5);padding:.125rem .375rem;font-family:JetBrains Mono,monospace;font-size:.875rem;line-height:1.25rem;color:hsl(var(--primary))}@media (max-width: 639px){.home-page .prose code{overflow-wrap:anywhere}}.prose pre code{background-color:transparent;padding:0;color:hsl(var(--foreground))}.prose h1{background:var(--gradient-primary);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1.5rem;border-bottom-width:1px;border-color:hsl(var(--border));padding-bottom:.5rem;font-family:JetBrains Mono,monospace;font-size:1.875rem;line-height:2.25rem;font-weight:700}@media (max-width: 639px){.home-page .prose h1{overflow-wrap:anywhere}}.prose h2{margin-top:2rem;margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:1.5rem;line-height:2rem;font-weight:600;color:hsl(var(--primary))}@media (max-width: 639px){.home-page .prose h2{overflow-wrap:anywhere}}.prose h3{margin-top:1.5rem;margin-bottom:.75rem;font-family:JetBrains Mono,monospace;font-size:1.25rem;line-height:1.75rem;font-weight:600;color:hsl(var(--secondary))}@media (max-width: 639px){.home-page .prose h3{overflow-wrap:anywhere}}.prose a{color:hsl(var(--primary));text-decoration-line:underline;text-decoration-color:hsl(var(--primary) / .3);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.prose a:hover{color:hsl(var(--primary) / .8);text-decoration-color:hsl(var(--primary))}.prose strong{font-weight:600;color:hsl(var(--foreground))}.prose p{margin-bottom:1rem;line-height:1.625;color:hsl(var(--muted-foreground))}.prose ul{margin-bottom:1rem;list-style-position:outside;list-style-type:disc}.prose ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.prose ul{padding-left:1.25rem;color:hsl(var(--muted-foreground))}.prose ol{margin-bottom:1rem;list-style-position:outside;list-style-type:decimal}.prose ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.prose ol{padding-left:1.25rem;color:hsl(var(--muted-foreground))}.prose li{margin-bottom:.25rem}.prose li p{margin:0}.prose hr{margin-top:2rem;margin-bottom:2rem;border-color:hsl(var(--border))}.prose.prose-yellow h1{color:hsl(var(--theme-yellow))}.prose.prose-yellow h2{color:hsl(var(--theme-yellow))!important}.prose.prose-yellow h3{color:#f7b23b!important}.prose.prose-yellow code{color:hsl(var(--theme-yellow))!important}.prose.prose-yellow a{color:hsl(var(--theme-yellow))!important;text-decoration-color:hsla(var(--theme-yellow),.3)!important}.prose.prose-yellow a:hover{color:#f7b23b!important;text-decoration-color:hsl(var(--theme-yellow))!important}.prose.prose-yellow blockquote{border-left-color:hsl(var(--theme-yellow))!important}.prose.prose-orange h1{color:hsl(var(--theme-orange))}.prose.prose-orange h2{color:hsl(var(--theme-orange))!important}.prose.prose-orange h3{color:#fa9247!important}.prose.prose-orange code{color:hsl(var(--theme-orange))!important}.prose.prose-orange a{color:hsl(var(--theme-orange))!important;text-decoration-color:hsla(var(--theme-orange),.3)!important}.prose.prose-orange a:hover{color:#fa9247!important;text-decoration-color:hsl(var(--theme-orange))!important}.prose.prose-orange blockquote{border-left-color:hsl(var(--theme-orange))!important}.prose.prose-green h1{color:hsl(var(--theme-green))}.prose.prose-green h2{color:hsl(var(--success))!important}.prose.prose-green h3{color:#55e7a3!important}.prose.prose-green code{color:hsl(var(--success))!important}.prose.prose-green a{color:hsl(var(--success))!important;text-decoration-color:hsla(var(--success),.3)!important}.prose.prose-green a:hover{color:#55e7a3!important;text-decoration-color:hsl(var(--success))!important}.prose.prose-green blockquote{border-left-color:hsl(var(--success))!important}.prose.prose-blue h1{color:hsl(var(--theme-blue))}.prose.prose-blue h2{color:hsl(var(--theme-blue))!important}.prose.prose-blue h3{color:#6da2f8!important}.prose.prose-blue code{color:hsl(var(--theme-blue))!important}.prose.prose-blue a{color:hsl(var(--theme-blue))!important;text-decoration-color:hsla(var(--theme-blue),.3)!important}.prose.prose-blue a:hover{color:#6da2f8!important;text-decoration-color:hsl(var(--theme-blue))!important}.prose.prose-blue blockquote{border-left-color:hsl(var(--theme-blue))!important}.prose.prose-purple h1{color:hsl(var(--theme-purple))}.prose.prose-purple h2{color:hsl(var(--theme-purple))!important}.prose.prose-purple h3{color:#bf89f5!important}.prose.prose-purple code{color:hsl(var(--theme-purple))!important}.prose.prose-purple a{color:hsl(var(--theme-purple))!important;text-decoration-color:hsla(var(--theme-purple),.3)!important}.prose.prose-purple a:hover{color:#bf89f5!important;text-decoration-color:hsl(var(--theme-purple))!important}.prose.prose-purple blockquote{border-left-color:hsl(var(--theme-purple))!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.left-0{left:0}.left-1\/2{left:50%}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-12{top:3rem}.top-2{top:.5rem}.-z-10{z-index:-10}.z-10{z-index:10}.z-50{z-index:50}.z-\[100\]{z-index:100}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-11{height:2.75rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[800px\]{height:800px}.h-\[calc\(100vh-180px\)\]{height:calc(100vh - 180px)}.h-full{height:100%}.max-h-screen{max-height:100vh}.min-h-11{min-height:2.75rem}.min-h-12{min-height:3rem}.min-h-\[450px\]{min-height:450px}.min-h-screen{min-height:100vh}.w-11{width:2.75rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[115\%\]{width:115%}.w-\[1px\]{width:1px}.w-\[800px\]{width:800px}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[600px\]{max-width:600px}.max-w-lg{max-width:32rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[loading_2s_ease-in-out_infinite\]{animation:loading 2s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.scroll-mt-24{scroll-margin-top:6rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#39ff14\]\/10{border-color:#39ff141a}.border-\[\#39ff14\]\/15{border-color:#39ff1426}.border-\[\#39ff14\]\/20{border-color:#39ff1433}.border-\[\#39ff14\]\/30{border-color:#39ff144d}.border-\[\#39ff14\]\/40{border-color:#39ff1466}.border-\[\#ffd700\]\/40{border-color:#ffd70066}.border-accent\/20{border-color:hsl(var(--accent) / .2)}.border-accent\/30{border-color:hsl(var(--accent) / .3)}.border-accent\/40{border-color:hsl(var(--accent) / .4)}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/30{border-color:#3b82f64d}.border-border{border-color:hsl(var(--border))}.border-border\/10{border-color:hsl(var(--border) / .1)}.border-border\/20{border-color:hsl(var(--border) / .2)}.border-border\/30{border-color:hsl(var(--border) / .3)}.border-border\/40{border-color:hsl(var(--border) / .4)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-destructive\/40{border-color:hsl(var(--destructive) / .4)}.border-muted-foreground\/40{border-color:hsl(var(--muted-foreground) / .4)}.border-orange-500\/20{border-color:#f9731633}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-secondary\/25{border-color:hsl(var(--secondary) / .25)}.border-secondary\/40{border-color:hsl(var(--secondary) / .4)}.border-success{border-color:hsl(var(--success))}.border-success\/20{border-color:hsl(var(--success) / .2)}.border-success\/30{border-color:hsl(var(--success) / .3)}.border-success\/40{border-color:hsl(var(--success) / .4)}.border-transparent{border-color:transparent}.border-warning\/20{border-color:hsl(var(--warning) / .2)}.border-warning\/30{border-color:hsl(var(--warning) / .3)}.border-warning\/40{border-color:hsl(var(--warning) / .4)}.border-warning\/50{border-color:hsl(var(--warning) / .5)}.border-yellow-500\/20{border-color:#eab30833}.border-yellow-500\/30{border-color:#eab3084d}.bg-\[\#050a0f\]\/80{background-color:#050a0fcc}.bg-\[\#050a0f\]\/90{background-color:#050a0fe6}.bg-\[\#0a1a0f\]\/60{background-color:#0a1a0f99}.bg-\[\#0a1a0f\]\/90{background-color:#0a1a0fe6}.bg-\[\#28c840\]{--tw-bg-opacity: 1;background-color:rgb(40 200 64 / var(--tw-bg-opacity, 1))}.bg-\[\#39ff14\]{--tw-bg-opacity: 1;background-color:rgb(57 255 20 / var(--tw-bg-opacity, 1))}.bg-\[\#39ff14\]\/10{background-color:#39ff141a}.bg-\[\#febc2e\]{--tw-bg-opacity: 1;background-color:rgb(254 188 46 / var(--tw-bg-opacity, 1))}.bg-\[\#ff5f57\]{--tw-bg-opacity: 1;background-color:rgb(255 95 87 / var(--tw-bg-opacity, 1))}.bg-\[hsl\(25\,95\%\,53\%\)\]{--tw-bg-opacity: 1;background-color:hsl(25 95% 53% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(38\,92\%\,50\%\)\]{--tw-bg-opacity: 1;background-color:hsl(38 92% 50% / var(--tw-bg-opacity, 1))}.bg-accent\/20{background-color:hsl(var(--accent) / .2)}.bg-accent\/5{background-color:hsl(var(--accent) / .05)}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-black\/25{background-color:#00000040}.bg-border\/60{background-color:hsl(var(--border) / .6)}.bg-card{background-color:hsl(var(--card))}.bg-card\/40{background-color:hsl(var(--card) / .4)}.bg-card\/90{background-color:hsl(var(--card) / .9)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/20{background-color:hsl(var(--destructive) / .2)}.bg-destructive\/5{background-color:hsl(var(--destructive) / .05)}.bg-destructive\/80{background-color:hsl(var(--destructive) / .8)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/20{background-color:hsl(var(--muted-foreground) / .2)}.bg-muted\/10{background-color:hsl(var(--muted) / .1)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/5{background-color:hsl(var(--muted) / .05)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary\/10{background-color:hsl(var(--secondary) / .1)}.bg-secondary\/20{background-color:hsl(var(--secondary) / .2)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-success{background-color:hsl(var(--success))}.bg-success\/20{background-color:hsl(var(--success) / .2)}.bg-success\/5{background-color:hsl(var(--success) / .05)}.bg-success\/80{background-color:hsl(var(--success) / .8)}.bg-transparent{background-color:transparent}.bg-warning{background-color:hsl(var(--warning))}.bg-warning\/20{background-color:hsl(var(--warning) / .2)}.bg-warning\/5{background-color:hsl(var(--warning) / .05)}.bg-warning\/80{background-color:hsl(var(--warning) / .8)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-accent{--tw-gradient-from: hsl(var(--accent)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-destructive{--tw-gradient-from: hsl(var(--destructive)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--destructive) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary{--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-secondary{--tw-gradient-from: hsl(var(--secondary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--secondary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-success{--tw-gradient-from: hsl(var(--success)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--success) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-success\/20{--tw-gradient-from: hsl(var(--success) / .2) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--success) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-warning{--tw-gradient-from: hsl(var(--warning)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--warning) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-amber-300{--tw-gradient-to: rgb(252 211 77 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #fcd34d var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-cyan-300{--tw-gradient-to: rgb(103 232 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #67e8f9 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-fuchsia-300{--tw-gradient-to: rgb(240 171 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #f0abfc var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-fuchsia-400{--tw-gradient-to: rgb(232 121 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #e879f9 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-warning\/20{--tw-gradient-to: hsl(var(--warning) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--warning) / .2) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-accent{--tw-gradient-to: hsl(var(--accent)) var(--tw-gradient-to-position)}.to-destructive{--tw-gradient-to: hsl(var(--destructive)) var(--tw-gradient-to-position)}.to-muted\/20{--tw-gradient-to: hsl(var(--muted) / .2) var(--tw-gradient-to-position)}.to-primary{--tw-gradient-to: hsl(var(--primary)) var(--tw-gradient-to-position)}.to-secondary{--tw-gradient-to: hsl(var(--secondary)) var(--tw-gradient-to-position)}.to-success{--tw-gradient-to: hsl(var(--success)) var(--tw-gradient-to-position)}.to-warning{--tw-gradient-to: hsl(var(--warning)) var(--tw-gradient-to-position)}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-32{padding-bottom:8rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-display{font-family:Oxanium,sans-serif}.font-mono{font-family:JetBrains Mono,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#00b4ff\]{--tw-text-opacity: 1;color:rgb(0 180 255 / var(--tw-text-opacity, 1))}.text-\[\#39ff14\]{--tw-text-opacity: 1;color:rgb(57 255 20 / var(--tw-text-opacity, 1))}.text-\[\#39ff14\]\/70{color:#39ff14b3}.text-\[\#39ff14\]\/80{color:#39ff14cc}.text-\[\#39ff14\]\/90{color:#39ff14e6}.text-\[\#ffd700\]{--tw-text-opacity: 1;color:rgb(255 215 0 / var(--tw-text-opacity, 1))}.text-accent{color:hsl(var(--accent))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-accent\/80{color:hsl(var(--accent) / .8)}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-muted-foreground\/90{color:hsl(var(--muted-foreground) / .9)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary{color:hsl(var(--secondary))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-success{color:hsl(var(--success))}.text-success-foreground{color:hsl(var(--success-foreground))}.text-warning{color:hsl(var(--warning))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.decoration-secondary\/40{text-decoration-color:hsl(var(--secondary) / .4)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.opacity-95{opacity:.95}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);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 rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/60{--tw-shadow-color: rgb(0 0 0 / .6);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-border\/50{--tw-ring-color: hsl(var(--border) / .5)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[120px\]{--tw-blur: blur(120px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-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)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-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}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}@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,.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-100{animation-duration:.1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.page-ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.12;background:radial-gradient(ellipse at 12% 12%,var(--ambient-primary),transparent 60%),radial-gradient(ellipse at 92% 82%,var(--ambient-secondary),transparent 60%),radial-gradient(ellipse at 72% 30%,var(--ambient-tertiary),transparent 65%)}.page-ambient-centered{background-position:center}.reader-page .page-ambient{opacity:.065}.reader-page.cyber-grid:before{opacity:.08}.reader-container{max-width:calc(72ch + 5rem)}.reader-content{padding:1.5rem;min-width:0}.reader-page .reader-article{background:hsl(var(--card) / .9)!important;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.reader-prose{max-width:72ch;margin-inline:auto;font-size:1.0625rem;line-height:1.8;overflow-wrap:anywhere}.reader-prose p,.reader-prose li{line-height:inherit}.reader-prose p,.reader-prose ul,.reader-prose ol{color:hsl(var(--foreground) / .87)}.reader-prose h1{font-size:clamp(1.5rem,4vw,2rem)}.reader-prose h2{font-size:clamp(1.3rem,3.5vw,1.6rem)}.reader-prose h3{font-size:clamp(1.1rem,3vw,1.3rem)}.reader-prose :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:6rem;line-height:1.4;text-wrap:balance}.reader-prose .heading-link{color:inherit!important;text-decoration:none;background:inherit}.reader-prose .heading-link:hover{text-decoration:underline;text-underline-offset:.2em}.reader-prose :not(pre)>code{overflow-wrap:anywhere;white-space:normal}.reader-code{border:1px solid hsl(var(--border));border-radius:.75rem;overflow:hidden;margin-block:1.5rem;background:hsl(var(--muted) / .5)}.reader-code-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-inline:.875rem .25rem;border-bottom:1px solid hsl(var(--border));font:.75rem JetBrains Mono,monospace;color:hsl(var(--muted-foreground))}.reader-code-toolbar button{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding-inline:.75rem;color:hsl(var(--foreground));border-radius:.5rem}.reader-code-toolbar button:hover{background:hsl(var(--accent) / .12)}.reader-copy-status{padding:.25rem .875rem;font-size:.75rem;color:hsl(var(--foreground))}.reader-prose .reader-code pre{margin:0;border:0;border-radius:0;overflow-x:auto;white-space:pre;overflow-wrap:normal;font-size:.8125rem;line-height:1.65;padding:1rem}.reader-prose .reader-code pre code{white-space:pre;overflow-wrap:normal;word-break:normal;color:hsl(var(--foreground))!important;background:transparent;padding:0}.reader-prose .hljs{background:transparent;padding:0}.reader-toc{max-width:72ch;margin:0 auto 2rem;border-bottom:1px solid hsl(var(--border));padding-bottom:1rem}.reader-toc summary{min-height:44px;cursor:pointer;padding-block:.5rem;font-weight:600}.reader-toc summary span{margin-left:.75rem;font-size:.75rem;font-weight:400;color:hsl(var(--muted-foreground))}.reader-toc nav{display:grid;margin-top:.5rem}.reader-toc nav a{min-height:44px;display:flex;align-items:center;padding:.5rem;font-size:.875rem;color:hsl(var(--foreground) / .85);border-radius:.5rem;overflow-wrap:anywhere}.reader-toc nav a:hover{background:hsl(var(--muted))}.reader-toc nav .reader-toc-subsection{padding-left:1.25rem}.reader-image{display:block;max-width:100%;margin-block:1.5rem;text-align:left;cursor:zoom-in}.reader-image img{display:block;margin:0;max-width:100%;height:auto;border-radius:.5rem}.reader-image span{display:block;font-size:.75rem;color:hsl(var(--muted-foreground));margin-top:.5rem}.reader-table{max-width:100%;overflow-x:auto;margin-block:1.5rem}.reader-table table{margin:0;min-width:100%}.reader-table th,.reader-table td{padding:.75rem;border-bottom:1px solid hsl(var(--border));min-width:7rem}.reader-image-dialog{position:fixed;width:min(96vw,1400px);max-width:96vw;max-height:92dvh;padding:3.5rem 1rem 1rem;background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:.75rem}.reader-image-dialog::backdrop{background:#000000d9}.reader-image-dialog img{display:block;max-width:100%;height:auto;margin-inline:auto}.reader-image-close{position:absolute;top:.5rem;right:.5rem;min-width:44px;min-height:44px;display:grid;place-items:center;border-radius:.5rem;background:hsl(var(--muted))}.content-card-link{display:block;min-width:0;border-radius:var(--radius)}.content-card-link>div{height:100%}:is(a,button,summary,[tabindex]):focus-visible{outline:2px solid hsl(var(--secondary));outline-offset:4px}h1,h2,h3{overflow-wrap:anywhere}.home-page section{scroll-margin-top:6rem}::-moz-selection{background:hsl(var(--accent) / .4);color:hsl(var(--foreground))}::selection{background:hsl(var(--accent) / .4);color:hsl(var(--foreground))}@media (max-width: 639px){.reader-content{padding:1rem .5rem}.reader-prose{font-size:1rem;line-height:1.75}.page-ambient{opacity:.085}.bg-card{backdrop-filter:none;-webkit-backdrop-filter:none}.reader-toc summary span{display:inline;margin-left:.5rem}}@media (hover: none){.card-hover:hover{transform:none;box-shadow:none!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.tag{max-width:100%;overflow-wrap:anywhere;white-space:normal}.home-page>nav>div,.reader-container{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.reader-image-dialog{margin:auto}@media (max-width: 639px){.home-page .font-mono{overflow-wrap:anywhere}.home-page section>div>.grid>.bg-card{min-width:0}}.route-loading{min-height:100dvh;display:grid;place-items:center;padding:1rem;color:hsl(var(--muted-foreground))}.article-navigation .article-back-link{gap:.625rem;padding:.5rem .875rem;border-color:hsl(var(--foreground) / .15);border-radius:.625rem;background:hsl(var(--muted) / .45);color:hsl(var(--foreground) / .9)}.article-navigation .article-back-link:hover{border-color:hsl(var(--foreground) / .3);background:hsl(var(--muted) / .8);color:hsl(var(--foreground))}.article-reading-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;font-size:.8125rem;color:hsl(var(--muted-foreground))}.article-reading-tools>span:first-child,.article-reading-tools button{display:inline-flex;align-items:center;gap:.5rem;min-height:44px}.article-reading-tools button{padding-inline:.75rem;border-radius:.5rem;color:hsl(var(--foreground))}.article-reading-tools button:hover{background:hsl(var(--muted))}.article-reading-tools [role=status]:empty{display:none}.article-cover{display:block;width:100%;height:auto;aspect-ratio:1200 / 630;-o-object-fit:cover;object-fit:cover;border-radius:.75rem;margin-bottom:1.5rem}.blog-card-cover{width:100%;height:auto;aspect-ratio:1200 / 630;-o-object-fit:cover;object-fit:cover;border-radius:.75rem .75rem 0 0}.machine-icon{width:48px;height:48px;-o-object-fit:contain;object-fit:contain;border-radius:.625rem;flex-shrink:0}.reader-container,.reader-header{max-width:960px}.reader-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding:1.5rem max(1rem,env(safe-area-inset-left))}.reader-body{min-width:0}.reader-layout-no-toc{max-width:960px}.reader-prose{max-width:78ch}.reader-content{padding:1.5rem 2rem}.reader-sidebar,.reader-related{min-width:0}.reader-related-card{overflow:hidden;border:1px solid hsl(var(--accent) / .4);border-radius:1rem;background:#1c1429e6}.reader-related-card ul{margin:0;padding:0;list-style:none}.reader-related-card li+li{border-top:1px solid hsl(var(--accent) / .25)}.reader-related-card a{--resource-accent: var(--accent);display:flex;flex-direction:column;gap:.875rem;padding:1.25rem;text-decoration:none;overflow-wrap:anywhere;transition:background-color .16s ease}.reader-related-card a[data-source=gitlab]{--resource-accent: 25 95% 70%}.reader-related-card a[data-source=project]{--resource-accent: var(--secondary)}.reader-related-icon{color:hsl(var(--resource-accent));flex-shrink:0;margin-bottom:.375rem}.reader-related-link-title{font-family:Oxanium,sans-serif;font-size:1.125rem;font-weight:600;line-height:1.35;letter-spacing:-.02em;color:hsl(var(--foreground))}.reader-related-description{font-size:.8125rem;line-height:1.7;color:hsl(var(--foreground) / .75)}.reader-related-action{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:44px;margin-top:.375rem;padding:.625rem .75rem;border-radius:.5rem;background:hsl(var(--resource-accent) / .14);color:hsl(var(--resource-accent));font-size:.8125rem;font-weight:600;line-height:1.5}.reader-related-action svg{flex-shrink:0}.reader-related-card a:hover{background:hsl(var(--resource-accent) / .08)}.reader-related-card a:hover .reader-related-action{background:hsl(var(--resource-accent) / .23)}.reader-related-card a:focus-visible{outline-offset:-4px}.reader-toc{max-width:none;margin:0;padding-bottom:.75rem}.reader-toc-desktop{display:none}.reader-toc nav a{text-decoration:none;line-height:1.5}.reader-toc nav a[aria-current=location]{color:hsl(var(--foreground));background:hsl(var(--accent) / .14);font-weight:600}.reader-title{color:hsl(var(--foreground))}.reader-summary{margin:0 0 1.75rem;padding:.25rem 0}.reader-summary-text{max-width:78ch;margin:0;font-size:1.125rem;line-height:1.75;color:hsl(var(--foreground) / .82);overflow-wrap:anywhere}.reader-summary-topics{display:flex;flex-wrap:wrap;gap:.375rem .75rem;margin:1rem 0 0;padding:0;list-style:none;color:hsl(var(--muted-foreground));font-size:.75rem;line-height:1.6}.reader-summary-topics li{max-width:100%;overflow-wrap:anywhere}.reader-summary-topics li+li:before{content:"/";margin-right:.75rem;color:hsl(var(--muted-foreground) / .65)}.reader-page .article-cover{max-height:260px}.reader-intro{margin-bottom:1.5rem;overflow:hidden;border:1px solid hsl(280 28% 36% / .65);border-radius:.75rem;background:#2f2136}.reader-intro .reader-summary{margin:0;padding:clamp(1.25rem,3vw,2rem)}.reader-intro .reader-summary-text{font-size:clamp(1.125rem,1.5vw,1.25rem);line-height:1.7}.reader-page .reader-intro .article-cover{max-height:none;margin:0;border-radius:0}.article-navigation{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.article-reading-tools{gap:.25rem}.skip-link{position:fixed;top:.5rem;left:1rem;z-index:100;padding:.75rem 1rem;background:hsl(var(--foreground));color:hsl(var(--background));border-radius:.5rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.project-title-link{text-decoration:underline;text-decoration-color:hsl(var(--success) / .4);text-underline-offset:.25em}.latest-publication{position:fixed;top:calc(5rem + env(safe-area-inset-top,0px));right:max(1rem,env(safe-area-inset-right));z-index:40;display:flex;align-items:center;gap:.25rem;width:min(360px,calc(100vw - 2rem));padding:.5rem .25rem .5rem .5rem;background:hsl(var(--card) / .84);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsl(var(--foreground) / .12);border-radius:1rem;box-shadow:0 8px 24px #00000040;transform-origin:top right;animation:publication-arrive .2s ease-out both}.latest-publication[data-closing]{animation:publication-pop .16s ease-in both;pointer-events:none}.latest-publication>a{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;border-radius:.625rem}.latest-publication-art{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;overflow:hidden;border-radius:.625rem;background:hsl(var(--muted) / .8);color:hsl(var(--accent))}.latest-publication-art img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.latest-publication-logo img{-o-object-fit:contain;object-fit:contain;padding:3px}.latest-publication-copy{min-width:0}.latest-publication-label{display:block;font-size:.6875rem;color:hsl(var(--muted-foreground));margin-bottom:.25rem}.latest-publication-title{display:block;font-size:.8125rem;line-height:1.45;font-weight:600;overflow-wrap:anywhere}.latest-publication-title svg{display:inline;vertical-align:middle;color:hsl(var(--muted-foreground))}.latest-publication button{align-self:flex-start;flex-shrink:0;min-width:44px;min-height:44px;display:grid;place-items:center;color:hsl(var(--muted-foreground));border-radius:.625rem}.latest-publication button:hover{color:hsl(var(--foreground));background:hsl(var(--foreground) / .08)}@keyframes publication-arrive{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes publication-pop{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@media (prefers-reduced-motion: reduce){.latest-publication,.latest-publication[data-closing]{animation:none}.latest-publication[data-closing]{opacity:0}}@media (min-width: 1100px){.reader-layout{max-width:1484px;grid-template-columns:minmax(0,1fr) minmax(0,4fr) minmax(0,1fr);gap:2rem;align-items:start}.reader-body{grid-column:2;grid-row:1}.reader-sidebar{grid-column:1;grid-row:1}.reader-related{grid-column:3;grid-row:1}.reader-layout-no-toc{max-width:960px;grid-template-columns:minmax(0,1fr)}.reader-layout-no-toc .reader-body{grid-column:1}.reader-sidebar,.reader-related{position:sticky;top:6rem;max-height:calc(100dvh - 7.5rem);overflow-y:auto;scrollbar-width:thin}.reader-toc-desktop{display:block;padding:1rem .875rem;border:1px solid hsl(var(--foreground) / .08);border-radius:.875rem;background:hsl(var(--card) / .4)}.reader-toc-desktop>p{margin:0 0 .75rem;padding-left:.25rem;font-size:.8125rem;font-weight:600;color:hsl(var(--foreground) / .9)}.reader-toc-desktop nav{margin:0 0 0 .25rem;border-left:1px solid hsl(var(--foreground) / .12)}.reader-toc-desktop nav a{position:relative;padding:.5rem .25rem .5rem .875rem;border-radius:0;font-size:.8125rem;color:hsl(var(--muted-foreground))}.reader-toc-desktop nav .reader-toc-subsection{padding-left:1.5rem;font-size:.75rem}.reader-toc-desktop nav a:before{content:"";position:absolute;left:-1px;top:50%;width:2px;height:1rem;border-radius:2px;background:hsl(var(--accent));transform:translateY(-50%);opacity:0}.reader-toc-desktop nav a:hover{background:transparent;color:hsl(var(--foreground))}.reader-toc-desktop nav a[aria-current=location]{background:transparent;color:hsl(var(--foreground));font-weight:600}.reader-toc-desktop nav a[aria-current=location]:before{opacity:1}.reader-toc-desktop nav a:focus-visible{outline-offset:-2px}.reader-toc-mobile{display:none}}@media (max-width: 639px){.reader-summary{margin-bottom:1.25rem;padding-top:0}.reader-summary-text{font-size:1rem;line-height:1.7}.reader-summary-topics{margin-top:.75rem;gap:.375rem .625rem}.article-navigation{align-items:flex-start}.reader-toc summary{font-size:.875rem}.reader-content{padding:1rem}.reader-page .article-cover{max-height:140px;margin-bottom:1rem}.reader-layout{padding-top:.75rem}.article-reading-tools{font-size:.75rem}.reader-header{padding-block:.75rem}}.site-navigation{position:sticky;top:12px;z-index:60;width:min(calc(100% - 3rem),1200px);margin:12px auto 0;isolation:isolate}.site-navigation-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible}.site-navigation-surface{fill:hsl(var(--background) / .97);stroke:hsl(var(--accent) / .35);stroke-width:1;vector-effect:non-scaling-stroke}.site-navigation-trace{fill:none;stroke:hsl(var(--trace-color));stroke-width:1.5;stroke-linecap:round;stroke-dashoffset:var(--trace-start);opacity:0;vector-effect:non-scaling-stroke}.site-navigation-inner{min-height:88px;padding:.875rem 1.75rem 1.5rem;display:grid;grid-template-columns:minmax(0,.35fr) minmax(0,.65fr);align-items:center}.site-brand{display:flex;justify-content:center;align-items:center;text-align:center;transform:translateY(5px);line-height:1.2;font-family:Oxanium,sans-serif;font-size:1.25rem;font-weight:600;letter-spacing:-.025em;color:hsl(var(--foreground))}.site-brand small{display:block;margin-top:.25rem;color:hsl(var(--secondary));font-size:.8125rem;font-weight:400;letter-spacing:.025em}.site-brand small>span{padding-inline:.125rem;color:hsl(var(--muted-foreground))}.site-brand strong{color:hsl(var(--primary));font-weight:600}.site-menu{display:flex;justify-content:center;align-items:center;gap:1.25rem;transform:translateY(-4px)}.site-menu>a{position:relative;display:inline-flex;align-items:center;gap:.375rem;min-height:44px;color:hsl(var(--muted-foreground));font-size:.8125rem;white-space:nowrap}.site-menu>a:hover,.site-menu>a[aria-current]{color:hsl(var(--foreground))}.site-menu>a[aria-current]:after{content:"";position:absolute;height:2px;bottom:0;inset-inline:0;background:hsl(var(--primary))}.site-menu .site-console-link{color:hsl(var(--secondary));border-left:1px solid hsl(var(--border));padding-left:1rem;font-family:JetBrains Mono,monospace}.site-menu-toggle{display:none;min-height:44px;min-width:44px;align-items:center;justify-content:center;color:hsl(var(--secondary))}.portfolio-page{isolation:isolate}.portfolio-container{width:min(100%,1280px);margin-inline:auto;padding:2rem 1.5rem 5rem}.page-back{gap:.625rem;border-color:hsl(var(--foreground) / .15);background:transparent;color:hsl(var(--muted-foreground))}.page-back:hover{background:hsl(var(--accent) / .1);color:hsl(var(--foreground))}.portfolio-page-heading{display:grid;grid-template-columns:1.2fr 1fr;align-items:end;gap:2rem;margin:2.5rem 0 3rem}.portfolio-page-heading h1{font-family:Oxanium,sans-serif;font-size:clamp(3.25rem,6vw,5.5rem);font-weight:700;line-height:1.1;letter-spacing:-.035em;color:hsl(var(--foreground))}.portfolio-page-heading h1>span{color:hsl(var(--primary))}.portfolio-page-heading p{max-width:36ch;margin:0 0 .375rem;font-size:1.0625rem;line-height:1.8;color:hsl(var(--muted-foreground))}.project-toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem;border-block:1px solid hsl(var(--accent) / .2);padding-block:1.125rem;margin-bottom:2rem}.project-filter-controls{display:flex;flex-wrap:wrap;gap:1.5rem}.project-filter-controls label{display:grid;gap:.5rem;color:hsl(var(--muted-foreground));font-size:.75rem}.project-filter-controls select{min-height:44px;min-width:150px;padding:.5rem 2rem .5rem .75rem;border:1px solid hsl(var(--accent) / .25);border-radius:.5rem;background:hsl(var(--card));color:hsl(var(--foreground));font-size:.875rem;color-scheme:dark;text-transform:capitalize}.project-view-controls{display:flex;gap:.25rem}.project-view-controls button{display:grid;place-items:center;width:44px;height:44px;border-radius:.5rem;color:hsl(var(--muted-foreground))}.project-view-controls button[aria-pressed=true]{background:hsl(var(--primary) / .15);color:hsl(var(--primary))}.project-view-controls button:hover{background:hsl(var(--accent) / .12)}.project-showcases{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.project-showcase{--project-hover: var(--accent);--project-hover-surface: 265 30% 13%;position:relative;min-width:0;display:grid;grid-template-columns:100px minmax(0,1fr);align-items:start;gap:1.25rem;padding:1.5rem;border:1px solid hsl(var(--accent) / .22);border-radius:.875rem;background:#181221d9;transition:transform .18s ease,border-color .18s ease,background-color .18s ease}.project-showcase-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:.875rem}.project-showcase-link:focus-visible{outline:none}.project-showcase-link:focus-visible:after{outline:2px solid hsl(var(--project-hover));outline-offset:3px}.project-showcase .project-sources{position:relative;z-index:2;pointer-events:none}.project-showcase .project-sources a{pointer-events:auto}.project-showcase .project-sources a:hover{color:hsl(var(--project-hover))}@media (hover: hover) and (prefers-reduced-motion: no-preference){.project-showcase:hover{transform:translateY(-2px) scale(1.025);border-color:hsl(var(--project-hover) / .65);background:hsl(var(--project-hover-surface) / .95)}}.project-showcase-gosint{--project-hover: 210 92% 72%;--project-hover-surface: 222 35% 13%;background:#121721d9;border-color:#76b8f933}.project-showcase-art{display:grid;place-items:center;min-width:0;min-height:112px}.project-identity{display:block;flex-shrink:0;width:192px;height:192px;-o-object-fit:contain;object-fit:contain}.project-showcase-art .project-identity{width:100%;height:112px;transition:transform .18s ease}.project-showcase-art:hover .project-identity{transform:translateY(-4px)}.project-identity-symbol{display:grid;place-items:center;color:hsl(var(--secondary))}.project-identity-compact{width:64px;height:64px;margin-right:.875rem}.project-showcase-copy{min-width:0}.project-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;margin-bottom:.5rem;color:hsl(var(--muted-foreground));font-size:.6875rem;text-transform:capitalize}.project-status{font-size:.75rem;color:hsl(var(--muted-foreground));white-space:nowrap}.status-in-progress{color:hsl(var(--warning))}.status-completed,.status-active{color:hsl(var(--secondary))}.project-showcase-title{margin:0 0 .625rem;font-family:Oxanium,sans-serif;font-size:1.5rem;font-weight:600;letter-spacing:-.025em}.project-showcase-title a{display:inline-flex;align-items:center;gap:.75rem}.project-showcase-title a>svg{color:hsl(var(--project-hover))}.project-showcase-copy>p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:hsl(var(--muted-foreground));font-size:.875rem;line-height:1.7}.project-technologies{display:flex;flex-wrap:wrap;gap:.375rem .75rem;margin:.875rem 0 .375rem;list-style:none;padding:0;font-family:JetBrains Mono,monospace;font-size:.6875rem;color:hsl(var(--secondary))}.project-sources{display:flex;flex-wrap:wrap;gap:.125rem 1.125rem}.project-sources a{display:inline-flex;align-items:center;gap:.375rem;min-height:44px;color:hsl(var(--foreground) / .85);font-size:.8125rem}.project-sources a:hover{color:hsl(var(--primary))}.project-directory{margin-top:1rem}.project-directory>h2,.blog-archive>h2{margin-bottom:1.5rem;font-family:Oxanium,sans-serif;font-size:1.5rem;font-weight:500}.project-directory-row{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 0;border-top:1px solid hsl(var(--accent) / .18)}.project-directory-main{display:flex;align-items:center;gap:1.25rem;min-width:0}.project-directory-main .project-identity{width:72px;height:72px}.project-directory-main h3{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem;font-family:Oxanium,sans-serif;font-size:1.125rem;font-weight:600}.project-directory-main h3 svg{color:hsl(var(--primary));flex-shrink:0}.project-directory-main p{max-width:60ch;font-size:.875rem;line-height:1.7;color:hsl(var(--muted-foreground))}.project-directory-details{display:grid;justify-items:end;flex-shrink:0;gap:.25rem}.project-result-count{margin-top:1.5rem;color:hsl(var(--muted-foreground));font-size:.75rem}.project-empty{padding-block:4rem;display:grid;justify-items:center;gap:1rem}.blog-feature{display:grid;grid-template-columns:.95fr 1.1fr;align-items:center;gap:2rem;min-width:0}.blog-feature-art{position:relative;display:grid;place-items:center;aspect-ratio:1.3 / 1;min-width:0;border-radius:1rem;overflow:hidden;background:#1d1528;color:hsl(var(--accent))}.blog-feature-art img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:right center;object-position:right center}.blog-feature-art-action{position:absolute;right:1rem;bottom:1rem;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:hsl(var(--secondary));color:hsl(var(--background));transition:transform .18s ease}.blog-feature-art:hover .blog-feature-art-action{transform:translate(2px,-2px)}.blog-feature-copy{min-width:0}.blog-feature time,.blog-archive time{color:hsl(var(--secondary));font-family:JetBrains Mono,monospace;font-size:.75rem}.blog-feature h2{margin:1rem 0 1.25rem;font-family:Oxanium,sans-serif;font-size:clamp(1.625rem,2.35vw,2.25rem);font-weight:600;line-height:1.15;letter-spacing:-.03em}.blog-feature h2 a:hover,.blog-archive h3 a:hover{color:hsl(var(--primary))}.blog-feature-copy>p{font-size:1rem;line-height:1.85;color:hsl(var(--muted-foreground))}.blog-topics{display:flex;flex-wrap:wrap;gap:.5rem .875rem;margin:1.5rem 0;padding:0;list-style:none;color:hsl(var(--accent));font-size:.6875rem}.blog-topics li+li:before{content:"/";padding-right:.875rem;color:hsl(var(--muted-foreground))}.blog-read-link{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:48px;padding-block:.75rem;border-bottom:1px solid hsl(var(--primary));color:hsl(var(--primary));font-size:.9375rem;font-weight:600}.blog-read-link:hover{color:hsl(var(--foreground))}.blog-archive{margin-top:3rem}.blog-archive article{display:grid;grid-template-columns:130px minmax(0,1fr) 180px;align-items:start;gap:2rem;padding-block:1.5rem;border-top:1px solid hsl(var(--accent) / .2)}.blog-archive h3{margin-bottom:.75rem;font-size:1.375rem;font-weight:600}.blog-archive h3 a{display:inline-flex;align-items:center;gap:.75rem}.blog-archive p{color:hsl(var(--muted-foreground));font-size:.875rem;line-height:1.7}.blog-archive img{width:100%;height:auto;border-radius:.5rem}.blog-empty{padding-block:3rem;color:hsl(var(--muted-foreground))}@media (max-width: 1099px){.site-navigation{width:calc(100% - 2rem);top:8px;margin-top:8px}.site-navigation-inner{min-height:88px;padding-inline:1.25rem;grid-template-columns:minmax(0,1fr) 44px;gap:.5rem}.site-menu-toggle{display:inline-flex;grid-column:2;transform:translateY(-4px)}.site-menu{display:none;transform:none;position:absolute;top:100%;inset-inline:0;max-height:calc(100dvh - 68px);overflow-y:auto;padding:.75rem 1rem 1rem;background:hsl(var(--background));border-bottom:1px solid hsl(var(--accent) / .25)}.site-menu.is-open{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1rem}.site-menu>a{padding:.25rem .75rem}.site-menu .site-console-link{border-left:0;padding-left:.75rem}.site-menu>a[aria-current]{background:hsl(var(--primary) / .08);border-radius:.375rem}.site-menu>a[aria-current]:after{display:none}.blog-feature{gap:2rem}.portfolio-page-heading{grid-template-columns:1fr 1fr}}@media (max-width: 767px){.portfolio-container{padding:1.5rem 1rem 3rem}.portfolio-page-heading{grid-template-columns:1fr;gap:1.25rem;margin:2rem 0}.portfolio-page-heading h1{font-size:clamp(2.5rem,12vw,4.25rem)}.portfolio-page-heading p{font-size:.9375rem}.project-showcases{grid-template-columns:1fr;gap:.5rem}.project-showcase{grid-template-columns:64px minmax(0,1fr);gap:.75rem 1rem;padding:1.25rem}.project-showcase-copy{display:contents}.project-showcase-art{grid-column:1;grid-row:1 / 3;min-height:72px}.project-showcase-art .project-identity{height:72px}.project-showcase .project-meta,.project-showcase-title{grid-column:2;margin-bottom:0}.project-showcase-copy>p,.project-showcase .project-technologies,.project-showcase .project-sources{grid-column:1 / -1}.project-showcase-copy>p{-webkit-line-clamp:2}.project-showcase .project-technologies{margin:.25rem 0 0}.project-filter-controls{gap:.75rem}.project-filter-controls select{min-width:0;width:100%;font-size:.8125rem}.project-filter-controls label{min-width:0;flex:1}.project-toolbar{align-items:start;flex-direction:column}.project-filter-controls{width:100%}.project-view-controls{flex-shrink:0}.project-directory-row{align-items:start;flex-direction:column;gap:.75rem}.project-directory-main{gap:1rem}.project-directory-main .project-identity{width:56px;height:56px}.project-directory-details{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding-left:72px}.project-sources{gap:.125rem .75rem}.blog-feature{grid-template-columns:1fr;gap:1.75rem;padding-top:1.5rem}.blog-feature-art{aspect-ratio:1.6 / 1}.blog-feature h2{font-size:2rem}.blog-feature-copy>p{font-size:.9375rem}.blog-archive article{grid-template-columns:minmax(0,1fr) 90px;gap:1rem}.blog-archive time{grid-column:1 / -1}}@media (max-width: 379px){.project-toolbar{align-items:start;flex-direction:column}.project-filter-controls{width:100%}.project-directory-details{padding-left:0}}.project-rail{--channel-edge: 72px}.project-rail-title{margin-bottom:2rem}.project-channel{position:relative;width:100%;overflow:hidden}.project-rail-track{position:relative;z-index:1;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2rem)/2);gap:2rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--channel-edge);padding:1.25rem var(--channel-edge);scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,transparent,black 52px,black calc(100% - 52px),transparent);mask-image:linear-gradient(to right,transparent,black 52px,black calc(100% - 52px),transparent)}.project-rail-track::-webkit-scrollbar{display:none}.project-rail-track:focus-visible{outline-offset:-4px;outline-color:hsl(var(--secondary))}.project-rail-item{min-width:0;scroll-snap-align:start}.project-rail-item .project-showcase{height:100%}.project-rail-item[data-preview=true]{-webkit-mask-image:url(/assets/project-preview-mask.svg);mask-image:url(/assets/project-preview-mask.svg);-webkit-mask-size:100% 100%;mask-size:100% 100%;opacity:.75}.project-rail-footer{display:flex;justify-content:center;margin-top:1.5rem}.project-channel-particles{position:absolute;top:1.25rem;right:0;bottom:1.25rem;left:0;z-index:2;pointer-events:none}.project-channel-field{position:absolute;inset-block:0;width:60px;overflow:hidden;--particle-travel: 28px}.project-channel-field-left{left:0;--field-direction: 1}.project-channel-field-right{right:0;--field-direction: -1}.project-channel-field>span{position:absolute;background:hsl(var(--secondary));opacity:.6;animation:project-channel-stream 3s linear infinite}.project-channel-field>span:nth-child(3n){background:hsl(var(--primary))}.project-channel-field>span:nth-child(3n+1){background:hsl(var(--accent))}.project-rail-controls{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-top:.5rem}.project-rail-edge{display:grid;place-items:center;width:44px;height:44px;color:hsl(var(--secondary));border:1px solid hsl(var(--accent) / .25);border-radius:50%;background:hsl(var(--background) / .8);transition:border-color .16s ease,color .16s ease,background-color .16s ease}.project-rail-edge:hover,.project-rail-edge:focus-visible{color:hsl(var(--primary));border-color:hsl(var(--primary) / .7);background:hsl(var(--primary) / .06)}.project-rail-position{display:grid;gap:.5rem;justify-items:center;font-family:JetBrains Mono,monospace;font-size:.6875rem;font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}.project-rail-total{color:hsl(var(--muted-foreground))}.project-rail-steps{display:flex;gap:4px}.project-rail-steps>span{width:12px;height:2px;background:hsl(var(--accent) / .2);transition:background-color .18s ease}.project-rail-steps>span[data-active=true]{background:hsl(var(--secondary))}@keyframes project-channel-stream{0%{opacity:0;transform:translateZ(0) scale(.6)}15%{opacity:.6}65%{opacity:.85}to{opacity:0;transform:translate3d(calc(var(--field-direction) * var(--particle-travel)),var(--particle-y, 0px),0) scale(1)}}@media (max-width: 1023px){.project-rail{--channel-edge: 40px}.project-rail-track{grid-auto-columns:100%;gap:1rem;-webkit-mask-image:linear-gradient(to right,transparent,black 24px,black calc(100% - 24px),transparent);mask-image:linear-gradient(to right,transparent,black 24px,black calc(100% - 24px),transparent)}.project-channel-field{width:32px}}@media (prefers-reduced-motion: reduce){.project-rail-track{scroll-behavior:auto}.project-channel-field>span{animation:none!important}}@media (max-width: 639px){.cyber-grid:before,.portfolio-page:before{background-size:1050px auto;background-position:76% top}}.hero-signal-heading{font-size:clamp(1.875rem,6vw,4.5rem);line-height:1.12}.hero-signal-heading .hero-signal-line:last-child{font-size:1.15em;letter-spacing:.025em}.hero-signal-line{position:relative;display:table;margin-inline:auto;max-width:100%}.hero-signal-measure{visibility:hidden}.hero-signal-output{position:absolute;top:0;right:0;bottom:0;left:0;white-space:nowrap;background:inherit;background-clip:text;-webkit-background-clip:text}.hero-signal-heading[data-decoding=true] .hero-signal-output{text-shadow:1px 0 hsl(var(--secondary) / .25)}.site-menu{font-size:.9375rem}.site-menu>a{font-size:1rem}.site-brand small{font-family:Oxanium,sans-serif;font-size:1rem;line-height:1.25}@media (prefers-reduced-motion: no-preference){.site-navigation-trace{animation-name:navigation-fragment;animation-timing-function:ease-in-out;animation-iteration-count:infinite}}@keyframes navigation-fragment{0%,38%{stroke-dashoffset:var(--trace-start)}39%,82%{stroke-dashoffset:var(--trace-next)}83%,to{stroke-dashoffset:var(--trace-last)}0%,8%,36%,46%,78%,88%,to{opacity:0}16%,24%{opacity:.9}58%,66%{opacity:.75}94%{opacity:.8}}.reader-title{font-family:Inter,sans-serif}.reader-prose :is(h1,h2,h3,h4,h5,h6){font-family:JetBrains Mono,monospace}.blog-book{margin-block:1rem 2rem}.blog-book-spread{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:.75rem 1.25rem 1.5rem;isolation:isolate}.book-shape{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}.book-cover-shape{fill:#100b1b;stroke:hsl(var(--accent) / .55);stroke-width:1}.book-paper-edge{fill:#30253d;stroke:#9c83b5;stroke-opacity:.35}.book-leaf{position:relative;min-width:0;padding:3rem clamp(1.25rem,3vw,2.75rem) 3.75rem;background:transparent}.blog-book .book-leaf[hidden]{display:none}.book-leaf:nth-child(odd){border-radius:10px 0 0 2px}.book-leaf:nth-child(2n){border-radius:0 10px 2px 0}.blog-book .blog-feature{display:flex;flex-direction:column;align-items:stretch;gap:1.25rem}.blog-book .blog-feature-art{display:block;aspect-ratio:1.9;padding:8px;border:0;border-radius:0;overflow:visible;background:transparent}.book-image-window{display:grid;place-items:center;width:100%;height:100%;overflow:hidden;background:hsl(var(--background))}.book-image-corners{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none}.book-image-corners path{stroke:hsl(var(--secondary) / .8);stroke-width:1;vector-effect:non-scaling-stroke}.book-image-corners path+path{stroke:hsl(var(--accent) / .8)}.blog-book .blog-feature-art:hover{border-color:hsl(var(--secondary) / .55)}.blog-book .blog-feature-art img{-o-object-position:center;object-position:center}.blog-book .blog-feature-art-action{width:38px;height:38px;bottom:.75rem;right:.75rem}.blog-book .blog-book-post-title{font-family:Oxanium,sans-serif;font-weight:600;font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.2;margin:.875rem 0 1rem;letter-spacing:-.025em}.blog-book-post-title a:hover{color:hsl(var(--primary))}.blog-book .blog-feature-copy>p{font-size:.875rem;line-height:1.8}.blog-book .blog-topics{margin-block:1.25rem .75rem}.book-page-number{position:absolute;bottom:2.5rem;right:1.5rem;font-family:JetBrains Mono,monospace;font-size:.625rem;color:hsl(var(--accent));font-variant-numeric:tabular-nums}.book-unfinished{display:flex;flex-direction:column;justify-content:center;background:transparent}.book-incoming-copy{padding-inline:.75rem}.book-incoming-copy :is(h2,h3){font-family:Oxanium,sans-serif;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:500;color:hsl(var(--foreground))}.book-incoming-copy>p{margin-top:.75rem;color:hsl(var(--muted-foreground));font-size:.875rem;line-height:1.8}.book-page-build{display:block;width:100%;max-width:500px;height:auto;margin:1rem auto}.book-build-state{display:flex;align-items:center;gap:.625rem;padding-inline:.75rem;font-family:JetBrains Mono,monospace;font-size:.625rem;color:hsl(var(--secondary))}.book-build-cursor{height:10px;width:5px;background:hsl(var(--secondary));opacity:.7}.book-build-meter{display:block;flex:1;min-width:28px;max-width:90px;height:2px;margin-left:auto;background:hsl(var(--accent) / .2);overflow:hidden}.book-build-meter>span{display:block;width:65%;height:100%;background:hsl(var(--secondary) / .65)}.blog-book-navigation{display:flex;justify-content:center;align-items:center;gap:1.25rem;margin-top:1.25rem;font-family:JetBrains Mono,monospace;font-size:.6875rem;color:hsl(var(--foreground));font-variant-numeric:tabular-nums}.blog-book-navigation button{display:grid;place-items:center;width:44px;height:44px;border:1px solid hsl(var(--accent) / .25);border-radius:50%;color:hsl(var(--secondary))}.blog-book-navigation button:hover:enabled{border-color:hsl(var(--primary) / .7);color:hsl(var(--primary))}.blog-book-navigation button:disabled{opacity:.25;cursor:default}.book-page-total{color:hsl(var(--muted-foreground))}.blog-book-single{grid-template-columns:1fr}.blog-book-single:after{display:none}@media (prefers-reduced-motion: no-preference){.book-published:not([hidden]){animation:book-page-arrive .42s ease-out;transform-origin:left center}.book-build-cursor{animation:book-cursor-breathe 2s ease-in-out infinite}}@keyframes book-page-arrive{0%{transform:perspective(1200px) rotateY(-6deg);opacity:.7}to{transform:perspective(1200px) rotateY(0);opacity:1}}@keyframes book-cursor-breathe{50%{opacity:.2}}@media (max-width: 767px){.blog-book-spread{grid-template-columns:1fr;gap:1.25rem;padding:0}.book-shape{display:none}.blog-book-spread:after{display:none}.book-leaf{padding:1.5rem 1.25rem 3.5rem;background:#131019;border:1px solid hsl(var(--accent) / .25)}.book-page-number{bottom:1.25rem}.book-leaf:nth-child(n){border-radius:0}.blog-book .blog-book-post-title{font-size:1.5rem}.book-incoming-copy{padding-inline:0}.book-page-build{max-width:440px;margin-block:1rem}.book-build-state{padding-inline:0}}.book-edge-flow{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:visible}.book-flow-current{stroke-linecap:round}.book-flow-trail{stroke-width:1;stroke-dasharray:23 77;opacity:.7}.book-flow-particles{stroke-width:1.8;stroke-dasharray:.5 11 1 23;opacity:.9}@media (prefers-reduced-motion: no-preference){.book-flow-trail{animation:book-outward-trail 3.8s linear infinite;animation-delay:var(--flow-delay)}.book-flow-particles{animation:book-outward-particles 2.8s linear infinite;animation-delay:var(--flow-delay)}}@keyframes book-outward-trail{to{stroke-dashoffset:-100}}@keyframes book-outward-particles{to{stroke-dashoffset:-71}}@media (max-width: 767px){.book-edge-flow{opacity:.6}.book-build-state{flex-wrap:wrap}}.incoming-mode-stack,.incoming-mode-debug{visibility:hidden}.incoming-status-labels{display:grid}.incoming-status-labels>span{grid-area:1 / 1}.incoming-instruction,.incoming-recovered-source,.incoming-stack-bytes,.incoming-offset-found,.incoming-debug-command{opacity:1}@media (prefers-reduced-motion: no-preference){.incoming-mode-disassemble{animation:incoming-show-disassemble 36s step-end infinite}.incoming-mode-stack{animation:incoming-show-stack 36s step-end infinite}.incoming-mode-debug{animation:incoming-show-debug 36s step-end infinite}.incoming-instruction{animation:incoming-reveal-line 12s linear infinite;animation-delay:calc(var(--instruction) * .55s)}.incoming-instruction-pointer{animation:incoming-step-instruction 12s steps(4,end) infinite}.incoming-recovered-source{animation:incoming-recover-source 12s linear infinite}.incoming-stack-bytes{animation:incoming-fill-stack 12s linear infinite;animation-delay:calc(var(--slot) * .6s)}.incoming-offset-found{animation:incoming-find-offset 12s linear infinite}.incoming-debug-command{animation:incoming-reveal-command 12s linear infinite;animation-delay:calc(var(--command) * 1.4s)}.incoming-debug-cursor{animation:book-cursor-breathe 2s ease-in-out infinite}.book-build-meter>span{animation:incoming-build-meter 12s linear infinite}}@keyframes incoming-show-disassemble{0%{visibility:visible}33.333333%,to{visibility:hidden}}@keyframes incoming-show-stack{0%,66.666667%,to{visibility:hidden}33.333333%{visibility:visible}}@keyframes incoming-show-debug{0%,to{visibility:hidden}66.666667%{visibility:visible}}@keyframes incoming-reveal-line{0%,to{opacity:0;transform:translate(7px)}12%,88%{opacity:1;transform:translate(0)}97%{opacity:0;transform:translate(0)}}@keyframes incoming-step-instruction{0%,8%{transform:translateY(0)}66%,96%{transform:translateY(120px)}to{transform:translateY(0)}}@keyframes incoming-recover-source{0%,34%,to{opacity:0}48%,92%{opacity:1}}@keyframes incoming-fill-stack{0%,to{opacity:0;clip-path:inset(0 100% 0 0)}24%,85%{opacity:1;clip-path:inset(0)}96%{opacity:0;clip-path:inset(0)}}@keyframes incoming-find-offset{0%,45%,to{opacity:0}60%,94%{opacity:1}}@keyframes incoming-reveal-command{0%,to{opacity:0}10%,90%{opacity:1}97%{opacity:0}}@keyframes incoming-build-meter{0%,8%{width:0}82%,96%{width:100%}to{width:0}}.project-filter{--filter-color: var(--secondary);position:relative;min-width:190px}.project-filter-status{--filter-color: var(--accent)}.project-filter-label{display:block;margin-bottom:.5rem;font-size:.75rem;color:hsl(var(--muted-foreground))}.project-filter-trigger{display:flex;align-items:center;gap:.625rem;min-height:46px;width:100%;padding:.625rem .875rem;border:1px solid hsl(var(--filter-color) / .25);border-radius:4px;background:#131019f2;color:hsl(var(--foreground));text-align:left;font-family:Oxanium,sans-serif;font-size:.9375rem}.project-filter-trigger>svg:first-child{color:hsl(var(--filter-color) / .8)}.project-filter-trigger>svg:last-child{margin-left:auto;color:hsl(var(--filter-color));transition:transform .18s ease}.project-filter-trigger:hover,.project-filter-trigger[aria-expanded=true],.project-filter-trigger[data-filtered=true]{border-color:hsl(var(--filter-color) / .6)}.project-filter-trigger[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.project-filter-trigger:focus-visible{outline:2px solid hsl(var(--filter-color));outline-offset:3px}.project-filter-options{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:max(100%,210px);padding:.375rem;border:1px solid hsl(var(--filter-color) / .35);border-radius:5px;background:#16111c;box-shadow:0 12px 24px #0000004d}.project-filter-options>button{display:flex;align-items:center;gap:.625rem;width:100%;min-height:44px;padding:.5rem .625rem;border-radius:2px;text-align:left;text-transform:capitalize;font-size:.8125rem;color:hsl(var(--foreground) / .9)}.project-filter-options>button:hover,.project-filter-options>button:focus-visible{background:hsl(var(--filter-color) / .09);outline:none;color:hsl(var(--filter-color))}.project-filter-options>button[aria-selected=true]{color:hsl(var(--filter-color))}.project-filter-check{display:grid;place-items:center;width:14px;flex-shrink:0;color:hsl(var(--filter-color))}.project-filter-option-count{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:.625rem;color:hsl(var(--muted-foreground))}@media (max-width: 767px){.project-filter{min-width:0;flex:1}.project-filter-controls{gap:.75rem}.project-filter-trigger{font-size:.8125rem;padding-inline:.625rem;gap:.375rem}.project-filter-trigger>svg:first-child{display:none}.project-filter-options{width:max(100%,180px)}.project-filter-status .project-filter-options{left:auto;right:0}}@media (max-width: 359px){.site-brand{font-size:1.125rem}.site-brand small{font-size:.875rem}}.platform-card-title{display:flex;align-items:center;min-height:80px}.platform-logo{display:block;width:180px;height:80px;max-width:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center}.platform-logo-large{width:240px;height:110px;margin-inline:auto;-o-object-position:center;object-position:center}.hero-topics{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:.25rem .875rem;margin:0 auto 1rem;font-family:Oxanium,sans-serif;font-size:clamp(1.125rem,2.1vw,1.5rem);line-height:1.6}.hero-topics strong{font-weight:600;color:hsl(var(--secondary))}.hero-topics strong:nth-of-type(2){color:hsl(var(--primary))}.hero-topics strong:nth-of-type(3){color:hsl(var(--accent))}.hero-topics>span{color:hsl(var(--muted-foreground) / .6)}@media (hover: hover) and (prefers-reduced-motion: no-preference){.hero-topics strong{transition:text-shadow .18s ease,color .18s ease}.hero-topics strong:hover{text-shadow:0 0 14px currentColor;color:hsl(var(--foreground))}}@media (max-width: 479px){.hero-topics{gap:.125rem .5rem;font-size:clamp(.875rem,4vw,1.0625rem)}}.about-profile{position:relative;isolation:isolate;padding:clamp(1.25rem,3vw,2.75rem)}.profile-frame{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;fill:none;pointer-events:none}.profile-frame-edge{stroke:hsl(var(--secondary) / .45);stroke-width:1;vector-effect:non-scaling-stroke}.profile-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,3vw,3rem);padding-bottom:1.75rem;border-bottom:1px solid hsl(var(--accent) / .15)}.profile-intro h2{font-family:Oxanium,sans-serif;font-size:clamp(2rem,3.5vw,2.75rem);font-weight:600;line-height:1.15;letter-spacing:-.04em}.profile-intro>div>p{margin-top:.625rem;color:hsl(var(--secondary));font-family:Oxanium,sans-serif;font-size:1.125rem}.profile-player-stats{--hud-corner: polygon(8px 0, calc(100% - 8px) 0, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 8px, 100% 8px, 100% calc(100% - 8px) , calc(100% - 4px) calc(100% - 8px) , calc(100% - 4px) calc(100% - 4px) , calc(100% - 8px) calc(100% - 4px) , calc(100% - 8px) 100%, 8px 100%, 8px calc(100% - 4px) , 4px calc(100% - 4px) , 4px calc(100% - 8px) , 0 calc(100% - 8px) , 0 8px, 4px 8px, 4px 4px, 8px 4px);display:grid;width:min(100%,280px);justify-self:end;align-self:center;gap:0;padding:.375rem 1rem;position:relative;isolation:isolate}.profile-player-stats:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:hsl(var(--accent) / .6);clip-path:var(--hud-corner);z-index:-2}.profile-player-stats:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;background:#160f1f;clip-path:var(--hud-corner);z-index:-1}.profile-player-stats>div{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;min-height:38px;padding-block:.375rem}.profile-player-stats>div+div{border-top:1px solid hsl(var(--accent) / .15)}.profile-player-stats dt{display:flex;align-items:center;gap:.75rem;margin:0;font-family:Silkscreen,monospace;font-size:.75rem;line-height:1.4;text-transform:uppercase;color:hsl(var(--foreground) / .8)}.profile-player-stats dt svg{width:12px;height:12px;fill:hsl(var(--secondary));shape-rendering:crispEdges}.profile-player-stats>div:first-child dt svg{fill:hsl(var(--primary))}.profile-player-stats dd{min-height:0;text-align:right;font-family:Silkscreen,monospace;font-weight:400;font-size:1.25rem;line-height:1.3;color:hsl(var(--secondary));text-shadow:2px 2px 0 hsl(183 60% 20%)}.profile-player-stats>div:first-child dd{color:hsl(var(--foreground));text-shadow:2px 2px 0 hsl(var(--accent) / .4)}.profile-skills-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.5rem}.profile-skills-heading h3{font-family:Oxanium,sans-serif;font-size:1.25rem;font-weight:600}.profile-skills-heading .profile-section-action{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:48px;padding:.625rem 1rem;border:1px solid hsl(var(--secondary) / .35);background:hsl(var(--secondary) / .055);border-radius:3px;font-family:Oxanium,sans-serif;font-weight:500;font-size:1rem;color:hsl(var(--secondary));transition:background .18s ease,border-color .18s ease}.profile-section-action:hover{background:hsl(var(--secondary) / .12);border-color:hsl(var(--secondary) / .7)}.about-profile a:focus-visible{outline:2px solid hsl(var(--secondary));outline-offset:4px}.about-profile a:hover{color:hsl(var(--foreground))}.profile-skill-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,3vw,3rem);padding-block:.5rem 1.5rem}.profile-radar{position:relative;min-width:0;background:radial-gradient(ellipse at 50% 50%,hsl(var(--secondary) / .065),transparent 64%)}.profile-radar svg{display:block;width:100%;max-width:510px;margin-inline:auto;overflow:visible}.radar-grid polygon{fill:none;stroke:hsl(var(--accent) / .3);stroke-width:.8}.radar-grid polygon:last-of-type{stroke:hsl(var(--accent) / .65);stroke-width:1}.radar-grid line{stroke:hsl(var(--accent) / .3);stroke-width:.8}.radar-instrument{fill:none;stroke:hsl(var(--accent) / .25);stroke-width:.75}.radar-calibration{stroke-dasharray:2 9;stroke-width:1;stroke:hsl(var(--secondary) / .3)}.radar-active-tracker{pointer-events:none}.radar-active-ring{fill:none;stroke:hsl(var(--primary) / .7);stroke-width:1}.radar-profile-halo{fill:none;stroke:hsl(var(--secondary) / .25);stroke-width:7;filter:blur(5px)}.radar-profile-area{stroke:hsl(var(--secondary));stroke-width:2;stroke-linejoin:round}.radar-selected-axis{stroke:hsl(var(--primary) / 0);stroke-width:1}.radar-axis[data-selected=true] .radar-selected-axis{stroke:hsl(var(--primary) / .55)}.radar-point{fill:hsl(var(--secondary));stroke:#191320;stroke-width:2}.radar-axis[data-selected=true] .radar-point{fill:hsl(var(--primary))}.radar-center{fill:hsl(var(--accent))}.radar-control{cursor:pointer;outline:none}.radar-control rect{fill:transparent;stroke:transparent}.radar-control text{fill:hsl(var(--muted-foreground));font-family:Oxanium,sans-serif;font-size:13px;font-weight:500}.radar-axis[data-selected=true] .radar-control text,.radar-control:hover text{fill:hsl(var(--primary))}.radar-control:focus-visible rect{stroke:hsl(var(--secondary));stroke-width:1}.profile-skill-detail{position:relative;min-height:350px;padding:1.5rem;background:linear-gradient(145deg,hsl(var(--accent) / .045),transparent 70%)}.profile-readout-trace{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;fill:none;stroke:hsl(var(--accent) / .4);stroke-width:.75;pointer-events:none}.profile-area-emblem{display:grid;place-items:center;width:36px;height:36px;margin-bottom:1rem;color:hsl(var(--primary))}.profile-area-link{display:inline-flex;align-items:center;gap:.75rem;min-height:44px;margin-top:1rem;font-family:Oxanium,sans-serif;font-size:.875rem;color:hsl(var(--secondary))}.skill-detail-anchor{scroll-margin-top:130px}.skill-detail-anchor:focus{outline:none}.skill-detail-anchor:focus-visible{outline:1px solid hsl(var(--secondary) / .6);outline-offset:6px}.profile-skill-detail h4{max-width:19ch;font-family:Oxanium,sans-serif;font-size:clamp(1.5rem,2.4vw,1.875rem);font-weight:600;letter-spacing:-.025em;line-height:1.25;margin-bottom:.875rem}.profile-readout-title{position:relative}.profile-readout-measure{display:block;visibility:hidden}.profile-readout-output{position:absolute;top:0;right:0;bottom:0;left:0;color:hsl(var(--foreground));text-shadow:0 0 20px hsl(var(--accent) / .14);overflow-wrap:anywhere}.profile-skill-detail>p{max-width:44ch;color:hsl(var(--foreground) / .7);font-family:JetBrains Mono,monospace;font-size:.8125rem;line-height:1.9}.profile-skill-detail>ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin-top:1.5rem;min-height:105px;align-content:start}.profile-skill-detail li{display:flex;gap:.625rem;align-items:baseline;padding-block:.375rem;font-family:Oxanium,sans-serif;font-weight:500;font-size:.875rem;line-height:1.5;color:hsl(var(--secondary) / .9)}.profile-skill-marker{width:4px;height:4px;transform:rotate(45deg);flex-shrink:0;background:hsl(var(--secondary));box-shadow:0 0 7px hsl(var(--secondary) / .3)}.profile-learning{border-top:1px solid hsl(var(--accent) / .18);padding-bottom:.5rem}.profile-learning-label{display:flex;align-items:center;gap:.5rem;margin-block:1.25rem .875rem;font-family:Oxanium,sans-serif;font-size:.875rem;font-weight:500;color:hsl(var(--primary))}.profile-studies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.profile-study{--study-color: var(--primary);display:flex;flex-direction:column;min-width:0;padding:1.25rem 1.5rem;background:hsl(var(--accent) / .045);border:1px solid hsl(var(--accent) / .22);border-radius:3px}.profile-study[data-ready=true]{--study-color: var(--secondary)}.profile-study-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:.875rem;font-size:.6875rem;color:hsl(var(--muted-foreground))}.profile-study-milestone{display:inline-flex;align-items:center;gap:.5rem;color:hsl(var(--study-color));font-family:JetBrains Mono,monospace;font-size:.625rem}.profile-study-milestone:before{content:"";width:4px;height:4px;background:currentColor;box-shadow:0 0 6px hsl(var(--study-color) / .3)}.profile-study h5{max-width:38ch;margin-bottom:1.5rem;font-family:Oxanium,sans-serif;font-size:1.125rem;font-weight:500;line-height:1.5}.profile-study h5 a{display:block}.profile-study h5 svg{display:inline;margin-left:.5rem;color:hsl(var(--study-color))}.profile-study-progress{margin-top:auto}.profile-progress-caption{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.625rem;color:hsl(var(--muted-foreground));font-size:.6875rem}.profile-progress-caption>span:last-child{color:hsl(var(--study-color));font-family:Silkscreen,monospace;font-size:.75rem}.profile-progress-track{position:relative;height:8px;background:hsl(var(--study-color) / .1);overflow:hidden}.profile-progress-track>span{display:block;width:var(--course-progress);height:100%;background:hsl(var(--study-color) / .85)}.profile-progress-track:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(5% - 3px),hsl(267 28% 10%) calc(5% - 3px),hsl(267 28% 10%) 5%);pointer-events:none}.profile-learning-completed{margin-top:1.75rem;color:hsl(var(--secondary))}.profile-courses{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.875rem}.profile-courses>li{min-width:0}.profile-course{display:flex;flex-direction:column;height:100%;min-height:160px;padding:1rem;position:relative;border:1px solid hsl(var(--accent) / .16);background:hsl(var(--accent) / .025);border-radius:3px;transition:border-color .18s ease,background .18s ease}.profile-course:before{content:"";position:absolute;top:-1px;right:-1px;width:14px;height:14px;border-top:1px solid hsl(var(--secondary) / .5);border-right:1px solid hsl(var(--secondary) / .5)}.profile-course-meta{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.875rem;color:hsl(var(--muted-foreground));font-size:.625rem;line-height:1.6}.profile-course h5{margin-bottom:1.25rem;font-size:.8125rem;font-weight:500;line-height:1.65}.profile-course-verify{display:flex;align-items:center;gap:.5rem;margin-top:auto;font-size:.625rem;color:hsl(var(--secondary))}a.profile-course:hover{border-color:hsl(var(--secondary) / .45);background:hsl(var(--secondary) / .035)}.radar-data-flow{pointer-events:none}.radar-data-flow line{stroke:hsl(var(--secondary));stroke-width:2.5;stroke-linecap:round;stroke-dasharray:.6 99.4;opacity:0}@media (prefers-reduced-motion: no-preference){.about-profile .profile-radar[data-revealed=false] .radar-grid,.about-profile .profile-radar[data-revealed=false] .radar-profile-area,.about-profile .profile-radar[data-revealed=false] .radar-profile-halo,.about-profile .profile-radar[data-revealed=false] .radar-axis,.about-profile .profile-radar[data-revealed=false] .radar-active-tracker{opacity:0}.about-profile .profile-radar[data-revealed=true] .radar-grid polygon{animation:radar-grid-reveal 1s ease both}.about-profile .profile-radar[data-revealed=true] .radar-profile-area{animation:radar-draw 1.8s .35s cubic-bezier(.2,.7,.3,1) both}.about-profile .profile-radar[data-revealed=true] .radar-profile-halo{animation:radar-assemble-node .9s 1.2s both}.about-profile .profile-radar[data-revealed=true] .radar-axis{animation:radar-assemble-node .65s steps(4,end) both}.about-profile .profile-radar[data-revealed=true] .radar-active-tracker{animation:radar-assemble-node .65s 1.6s both}.about-profile .radar-active-tracker{transition:transform .65s cubic-bezier(.22,1,.36,1)}.about-profile .radar-selected-axis{transition:stroke .35s ease}.about-profile .radar-point{transition:r .25s ease,fill .25s ease}.about-profile .profile-skill-detail h4,.about-profile .profile-skill-detail>p,.about-profile .profile-skill-detail>ul{animation:profile-selection-resolve .35s ease both}.about-profile .profile-area-emblem{animation:profile-emblem-resolve .45s ease both}.about-profile .profile-radar[data-revealed=true] .radar-data-flow line{animation:radar-signal-feed 4.5s linear infinite}.about-profile .profile-radar[data-revealed=true] .radar-data-flow{animation:radar-flow-arrive 2.2s linear both}}@keyframes radar-draw{0%{stroke-dasharray:100;stroke-dashoffset:100;fill-opacity:0}65%{fill-opacity:0}to{stroke-dasharray:100;stroke-dashoffset:0;fill-opacity:1}}@keyframes radar-grid-reveal{0%{stroke-dasharray:100;stroke-dashoffset:100;opacity:0}to{stroke-dasharray:100;stroke-dashoffset:0;opacity:1}}@keyframes radar-assemble-node{0%{opacity:0}30%{opacity:.6}45%{opacity:.15}to{opacity:1}}@keyframes profile-selection-resolve{0%{opacity:0;transform:translate(7px)}to{opacity:1;transform:translate(0)}}@keyframes profile-emblem-resolve{0%{opacity:.3;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes radar-flow-arrive{0%,85%{opacity:0}to{opacity:1}}@keyframes radar-signal-feed{0%{stroke-dashoffset:0;opacity:0}15%{opacity:.8}75%{opacity:.8}to{stroke-dashoffset:-100;opacity:0}}@media (max-width: 900px){.profile-skill-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.25rem}.profile-courses{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-skill-detail{min-height:350px}}@media (max-width: 639px){.profile-intro{grid-template-columns:1fr;gap:1.125rem;padding-bottom:1.5rem}.profile-player-stats{justify-self:start}.profile-skill-layout{grid-template-columns:minmax(0,1fr);gap:1.75rem}.profile-radar{margin-inline:-.5rem}.profile-radar svg{max-width:400px;margin-inline:auto}.radar-control text{font-size:19px}.profile-skill-detail{min-height:310px;padding:1.25rem}.profile-skills-heading h3{font-size:1rem}.profile-skills-heading{flex-wrap:wrap;gap:.5rem}.profile-skills-heading .profile-section-action{font-size:.9375rem;padding-inline:.875rem}.profile-learning>.profile-skills-heading{flex-wrap:wrap;gap:.75rem}.profile-studies{grid-template-columns:1fr}.profile-study{padding:1.125rem}.profile-course{padding:.875rem}}@media (max-width: 359px){.profile-player-stats{padding:.5rem .875rem}.profile-player-stats dt{font-size:.6875rem}.profile-player-stats dd{font-size:1.125rem}.profile-courses{grid-template-columns:1fr;gap:.75rem}}@media (prefers-reduced-motion: reduce){.radar-selected-axis,.radar-point,.radar-active-tracker,.profile-section-action,.profile-course{transition:none}}.archive-section{scroll-margin-top:110px}.writeup-archive{position:relative;background:#16111df0;border:1px solid hsl(var(--accent) / .22);border-radius:4px}.writeup-archive:before,.writeup-archive:after{content:"";position:absolute;width:32px;height:16px;pointer-events:none;border-color:hsl(var(--secondary) / .5);border-style:solid}.writeup-archive:before{top:-1px;left:-1px;border-width:1px 0 0 1px}.writeup-archive:after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.archive-platforms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:1rem;gap:.625rem;border-bottom:1px solid hsl(var(--accent) / .18)}.archive-platforms button{position:relative;display:flex;align-items:center;justify-content:center;gap:.75rem;min-width:0;min-height:68px;padding:.625rem .875rem;border:1px solid transparent;border-radius:3px;font-family:Oxanium,sans-serif;font-size:1rem;color:hsl(var(--muted-foreground));transition:border-color .18s ease,background .18s ease}.archive-platforms button[aria-pressed=true]{color:hsl(var(--secondary));border-color:hsl(var(--secondary) / .3);background:hsl(var(--secondary) / .055)}.archive-platforms button:hover{background:hsl(var(--accent) / .08)}.archive-platforms .platform-logo{width:120px;height:44px;-o-object-position:center;object-position:center}.archive-platforms button .platform-logo{opacity:.65;transition:opacity .18s ease}.archive-platforms button:hover .platform-logo,.archive-platforms button[aria-pressed=true] .platform-logo{opacity:1}.archive-filter-count{font-family:Silkscreen,monospace;font-size:.625rem;color:hsl(var(--muted-foreground));flex-shrink:0}.writeup-archive button:focus-visible,.writeup-archive a:focus-visible,.learning-index a:focus-visible{outline:2px solid hsl(var(--secondary));outline-offset:-3px;border-radius:2px}.archive-list-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1.25rem 1.75rem .875rem}.archive-list-heading p{display:flex;align-items:baseline;flex-wrap:wrap;gap:.75rem;font-family:Oxanium,sans-serif;font-size:1.0625rem}.archive-list-heading p>span,.archive-list-heading>span{font-family:Inter,sans-serif;font-size:.6875rem;color:hsl(var(--muted-foreground))}.archive-machine-list{padding-inline:1rem}.archive-machine-list>li{border-bottom:1px solid hsl(var(--entry-color) / .12)}.archive-machine{display:grid;grid-template-columns:48px minmax(0,1fr) 105px 75px 80px 100px 20px;align-items:center;gap:1rem;padding:1.125rem .75rem;background:linear-gradient(90deg,transparent,hsl(var(--entry-color) / .025));transition:background .2s ease}.archive-machine:hover{background:hsl(var(--entry-color) / .075)}.archive-machine-icon{display:grid;place-items:center;width:48px;height:48px;color:hsl(var(--entry-color));background:hsl(var(--entry-color) / .04);border-radius:4px;overflow:hidden}.archive-machine-icon img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.archive-machine h3{margin-bottom:.375rem;font-family:Oxanium,sans-serif;font-size:1.375rem;font-weight:500;line-height:1.3;transition:color .18s ease}.archive-machine:hover h3{color:hsl(var(--entry-color))}.archive-machine-techniques{display:flex;flex-wrap:wrap;gap:.25rem .75rem;color:hsl(var(--muted-foreground));font-size:.6875rem;line-height:1.7}.archive-machine-platform{color:hsl(var(--muted-foreground));font-size:.6875rem}.archive-machine-os{display:flex;align-items:center;gap:.375rem;text-transform:capitalize;color:hsl(var(--muted-foreground));font-size:.6875rem}.archive-difficulty{display:inline-flex;align-items:center;gap:.5rem;font-size:.6875rem;line-height:1.5;color:hsl(var(--entry-color));text-transform:capitalize;white-space:nowrap}.archive-difficulty>span[aria-hidden=true]{width:4px;height:4px;background:currentColor;box-shadow:0 0 5px hsl(var(--entry-color) / .25)}.archive-machine-date{text-align:right;font-size:.625rem;color:hsl(var(--muted-foreground))}.archive-row-arrow{color:hsl(var(--entry-color, var(--category-color, var(--secondary))) / .6);transition:color .18s ease,transform .18s ease}.archive-machine:hover .archive-row-arrow,.archive-challenge:hover .archive-row-arrow{color:hsl(var(--entry-color, var(--category-color, var(--secondary))));transform:translate(2px,-2px)}.archive-list-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:1rem 1.75rem}.archive-difficulty-key{display:flex;flex-wrap:wrap;gap:1rem}.archive-difficulty-key .archive-difficulty{font-size:.625rem}.archive-more{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;min-height:44px;font-family:Oxanium,sans-serif;font-size:.875rem;color:hsl(var(--secondary))}.archive-more svg{transition:transform .18s ease}.archive-more svg.is-expanded{transform:rotate(180deg)}.archive-platform-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem 1.5rem;padding:.875rem 1.75rem;border-top:1px solid hsl(var(--accent) / .18)}.archive-platform-links>span{margin-right:auto;color:hsl(var(--muted-foreground));font-size:.6875rem}.archive-platform-links a{display:inline-flex;align-items:center;gap:.375rem;min-height:36px;font-size:.6875rem;color:hsl(var(--foreground) / .85)}.archive-platform-links a:hover{color:hsl(var(--secondary))}.archive-empty{padding:3rem 1.75rem;text-align:center;color:hsl(var(--muted-foreground));font-size:.9375rem}.archive-empty button{display:inline-flex;align-items:center;min-height:44px;margin-top:.75rem;padding-inline:.75rem;color:hsl(var(--secondary))}.archive-categories{--category-color: var(--secondary);display:flex;flex-wrap:wrap;gap:.625rem;padding:1.25rem 1.5rem;border-bottom:1px solid hsl(var(--accent) / .18)}.archive-categories button{display:inline-flex;align-items:center;gap:.75rem;min-height:46px;padding:.625rem 1rem;border:1px solid hsl(var(--category-color) / .13);border-radius:3px;font-family:Oxanium,sans-serif;font-size:.9375rem;color:hsl(var(--foreground) / .75);transition:background .18s ease,border-color .18s ease}.archive-categories button[aria-pressed=true]{border-color:hsl(var(--category-color) / .55);background:hsl(var(--category-color) / .08);color:hsl(var(--category-color))}.archive-categories button:hover{border-color:hsl(var(--category-color) / .4)}.archive-glyph{display:block;width:15px;height:15px;flex-shrink:0;fill:currentColor;shape-rendering:crispEdges}.archive-categories .archive-glyph{color:hsl(var(--category-color))}.archive-challenge-groups{padding:.75rem 1.75rem 1.75rem}.archive-challenge-group{margin-top:1.25rem}.archive-category-heading{display:flex;align-items:center;gap:.75rem;color:hsl(var(--category-color));margin-bottom:.5rem}.archive-category-heading h3{font-family:Oxanium,sans-serif;font-size:1.125rem;font-weight:500}.archive-category-heading>span{color:hsl(var(--muted-foreground));font-size:.625rem}.archive-category-heading i{flex:1;height:1px;margin-left:.25rem;background:hsl(var(--category-color) / .18)}.archive-challenge-group li{border-bottom:1px solid hsl(var(--category-color) / .1)}.archive-challenge{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 100px 20px;align-items:center;gap:1.5rem;padding:1.125rem .75rem;transition:background .18s ease}.archive-challenge:hover{background:hsl(var(--category-color) / .055)}.archive-challenge h4{font-family:Oxanium,sans-serif;font-size:1.375rem;font-weight:500;line-height:1.3;margin-bottom:.375rem}.archive-challenge:hover h4{color:hsl(var(--category-color))}.archive-challenge-competition{color:hsl(var(--muted-foreground));font-size:.6875rem}.archive-challenge-techniques{display:flex;flex-wrap:wrap;gap:.375rem .75rem;font-family:JetBrains Mono,monospace;color:hsl(var(--foreground) / .65);font-size:.625rem;line-height:1.7}.archive-challenge-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.archive-challenge-meta time{font-size:.625rem;color:hsl(var(--muted-foreground))}.learning-index{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,2fr);gap:2.5rem;padding:2.25rem .5rem 0;margin-top:2.25rem;border-top:1px solid hsl(var(--accent) / .22)}.learning-index h3{font-family:Oxanium,sans-serif;font-size:1.5rem;font-weight:500;margin-bottom:.5rem}.learning-index-intro>p{font-size:.8125rem;line-height:1.8;color:hsl(var(--muted-foreground))}.learning-index li+li{border-top:1px solid hsl(var(--accent) / .15)}.learning-index a{display:grid;grid-template-columns:140px minmax(0,1fr) 18px;gap:1rem;align-items:start;padding:1rem 0}.learning-index-topic{padding-top:.125rem;font-size:.6875rem;color:hsl(var(--secondary))}.learning-index-resource{display:grid;gap:.375rem}.learning-index-resource strong{font-family:Oxanium,sans-serif;font-size:1rem;font-weight:500}.learning-index-resource>span{font-size:.75rem;color:hsl(var(--muted-foreground));line-height:1.8}.learning-index a>svg{margin-top:.125rem;color:hsl(var(--accent))}.learning-index a:hover strong{color:hsl(var(--secondary))}@media (prefers-reduced-motion: no-preference){.archive-machine-list,.archive-challenge-groups{animation:archive-resolve .3s ease both}}@keyframes archive-resolve{0%{opacity:.4;clip-path:inset(0 0 6px 0)}to{opacity:1;clip-path:inset(0)}}@media (max-width: 1100px){.archive-machine{grid-template-columns:44px minmax(0,1fr) 90px 75px 80px 20px;gap:.75rem}.archive-machine-icon{width:44px;height:44px}.archive-machine-platform{display:none}}@media (max-width: 767px){.archive-platforms{grid-template-columns:repeat(2,minmax(0,1fr));padding:.75rem;gap:.5rem}.archive-platforms button{min-height:60px;gap:.5rem;padding:.5rem;font-size:.875rem}.archive-platforms .platform-logo{width:110px;height:40px}.archive-list-heading{padding:1rem 1rem .625rem}.archive-list-heading>span{font-size:.625rem}.archive-machine-list{padding-inline:.5rem}.archive-machine{grid-template-columns:40px minmax(0,1fr) 70px;gap:.25rem .75rem;padding:1rem .5rem}.archive-machine-icon{grid-row:1 / 3;width:40px;height:40px}.archive-machine-main{grid-column:2;grid-row:1 / 3}.archive-machine h3{font-size:1.125rem}.archive-machine-techniques{font-size:.625rem;gap:.125rem .5rem}.archive-machine-os{display:none}.archive-machine>.archive-difficulty{grid-column:3;grid-row:1;justify-self:end;font-size:.625rem}.archive-machine-date{grid-column:3;grid-row:2;font-size:.5625rem}.archive-machine>.archive-row-arrow{display:none}.archive-list-footer{padding:.875rem 1rem;gap:.5rem}.archive-difficulty-key{gap:.75rem}.archive-difficulty-key .archive-difficulty{font-size:.5625rem;gap:.375rem}.archive-platform-links{justify-content:flex-start;padding:.75rem 1rem;gap:.25rem 1rem}.archive-platform-links>span{width:100%}.archive-categories{padding:1rem;gap:.5rem}.archive-categories button{gap:.5rem;padding:.5rem .75rem;font-size:.8125rem}.archive-challenge-groups{padding:.25rem 1rem 1rem}.archive-challenge{grid-template-columns:minmax(0,1fr) 85px;gap:.75rem;padding:1rem .25rem}.archive-challenge-main{grid-row:1}.archive-challenge h4{font-size:1.25rem}.archive-challenge-techniques{grid-column:1 / -1;grid-row:2}.archive-challenge-meta{grid-column:2;grid-row:1}.archive-challenge>.archive-row-arrow{display:none}.learning-index{grid-template-columns:minmax(0,1fr);gap:.75rem;padding-top:1.5rem}.learning-index a{grid-template-columns:minmax(0,1fr) 18px;gap:.375rem .75rem}.learning-index-topic,.learning-index-resource{grid-column:1}.learning-index a>svg{grid-column:2;grid-row:1 / 3}}@media (max-width: 359px){.archive-platforms .platform-logo{width:88px}.archive-platforms button{gap:.375rem;font-size:.75rem}.archive-platforms button>svg{width:18px}.archive-list-heading p{font-size:.9375rem;gap:.5rem}.archive-machine{grid-template-columns:32px minmax(0,1fr) 66px;gap:.25rem .5rem}.archive-machine-icon{width:32px;height:32px}}@media (prefers-reduced-motion: reduce){.archive-platforms button,.archive-platforms button .platform-logo,.archive-machine,.archive-machine h3,.archive-row-arrow,.archive-more svg,.archive-categories button,.archive-challenge{transition:none}}.home-archive-section{padding-block:2.25rem}.archive-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.125rem}.archive-preview-heading h2{font-family:Oxanium,sans-serif;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:600;letter-spacing:-.025em}.archive-preview-heading a{display:inline-flex;align-items:center;gap:.625rem;min-height:44px;color:hsl(var(--secondary));font-family:Oxanium,sans-serif;font-size:.875rem}.archive-preview-heading a:focus-visible{outline:2px solid hsl(var(--secondary));outline-offset:3px}.archive-back{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;margin-bottom:1.5rem;font-size:.875rem}.archive-preview{border-color:hsl(var(--accent) / .18);background:#16111dbf;border-radius:2px}.archive-preview .archive-platforms{display:flex;align-items:center;gap:1.25rem;padding:.5rem 1rem}.archive-preview .archive-platforms button{min-height:44px;padding:.375rem .25rem;gap:.5rem;border:0;border-radius:0;font-size:.8125rem;background:none}.archive-preview .archive-platforms button[aria-pressed=true]{box-shadow:0 1px hsl(var(--secondary))}.archive-preview .archive-platforms button:hover{color:hsl(var(--foreground))}.archive-preview .archive-platforms button>svg{width:16px}.archive-preview .archive-platforms .platform-logo{width:86px;height:28px}.archive-preview .archive-filter-count{font-size:.5625rem}.archive-preview .archive-machine-list{padding-inline:.75rem}.archive-preview .archive-machine{grid-template-columns:34px minmax(0,1fr) 90px 80px 100px 18px;gap:.875rem;padding:.75rem .375rem;background:none}.archive-preview .archive-machine:hover{background:hsl(var(--entry-color) / .055)}.archive-preview .archive-machine-icon{width:34px;height:34px;border-radius:2px}.archive-preview .archive-machine h3{font-size:1.0625rem;margin-bottom:.125rem}.archive-preview .archive-machine-platform{display:none}.archive-preview .archive-machine-techniques{gap:.125rem .625rem;font-size:.625rem}.archive-preview .archive-machine-list>li:last-child{border-bottom:0}.archive-preview .archive-empty{padding:1.5rem 1rem;font-size:.8125rem}.ctf-archive.archive-preview{display:grid;grid-template-columns:132px minmax(0,1fr);background:linear-gradient(110deg,#211528f2,#16111de0 40%);border-color:hsl(var(--primary) / .22)}.ctf-archive.archive-preview:before,.ctf-archive.archive-preview:after{border-color:hsl(var(--primary) / .5)}.ctf-archive-mark{display:grid;place-items:center;grid-column:1;grid-row:1 / 3;padding:.5rem;border-right:1px solid hsl(var(--primary) / .1)}.digital-flag{display:block;width:112px;max-width:100%;height:auto;overflow:visible}.digital-flag-ground{fill:none;stroke:hsl(var(--accent) / .35);stroke-width:1}.digital-flag-pole{fill:hsl(var(--accent) / .8)}.digital-flag-field{fill:hsl(var(--primary) / .12)}.digital-flag-edge{fill:none;stroke:hsl(var(--primary));stroke-width:1}.digital-flag text{font-family:Silkscreen,monospace;font-size:15px;fill:hsl(var(--secondary))}.digital-flag-fragment{fill:hsl(var(--primary) / .65)}.digital-flag-signal{fill:none;stroke:hsl(var(--secondary) / .35)}.digital-flag-cloth{transform-origin:25px 44px}.archive-preview .archive-categories{grid-column:2;grid-row:1;gap:1rem;padding:.5rem 1.125rem;flex-wrap:wrap}.archive-preview .archive-categories button{min-height:40px;padding:.375rem 0;gap:.5rem;border:0;border-radius:0;background:none;font-size:.8125rem}.archive-preview .archive-categories button[aria-pressed=true]{box-shadow:0 1px hsl(var(--category-color))}.archive-preview .archive-categories .archive-glyph{width:12px;height:12px}.archive-preview .archive-challenge-groups{grid-column:2;grid-row:2;padding:0 .75rem}.archive-preview .archive-challenge-group{margin:0}.archive-preview .archive-challenge{grid-template-columns:minmax(0,1fr) minmax(0,.8fr) 95px 18px;gap:1rem;padding:.875rem .375rem;min-height:84px}.archive-preview .archive-challenge h4{font-size:1.1875rem;margin-bottom:.25rem}.archive-preview .archive-challenge-group li:last-child{border-bottom:0}@media (prefers-reduced-motion: no-preference){.digital-flag-cloth{animation:digital-flag-flutter 4s ease-in-out infinite alternate}.digital-flag-fragment{animation:digital-flag-drift 3.4s ease-out infinite}.fragment-two{animation-delay:-1.2s}.fragment-three{animation-delay:-2.4s}}@keyframes digital-flag-flutter{0%{transform:skewY(-2deg) scaleX(.97)}to{transform:skewY(2deg) scaleX(1)}}@keyframes digital-flag-drift{0%{opacity:0;transform:translate(0)}25%{opacity:.65}to{opacity:0;transform:translate(10px,-4px)}}@media (max-width: 1100px){.archive-preview .archive-machine{grid-template-columns:34px minmax(0,1fr) 70px 75px 90px 18px}.archive-preview .archive-machine-os{display:flex}}@media (max-width: 767px){.home-archive-section{padding-block:1.5rem}.archive-preview-heading{margin-bottom:.75rem}.archive-preview-heading a{font-size:.75rem}.archive-preview .archive-platforms{gap:.875rem;padding:.375rem .875rem;overflow-x:auto;scrollbar-width:thin;scrollbar-color:hsl(var(--accent) / .4) transparent}.archive-preview .archive-platforms button{flex-shrink:0}.archive-preview .archive-platforms .platform-logo{width:72px;height:26px}.archive-preview .archive-platforms button:first-child>svg{display:none}.archive-preview .archive-filter-count{display:none}.archive-preview .archive-machine{grid-template-columns:30px minmax(0,1fr) 65px;gap:.125rem .625rem;padding:.75rem .125rem}.archive-preview .archive-machine-icon{width:30px;height:30px}.archive-preview .archive-machine h3{font-size:1rem}.archive-preview .archive-machine-os{display:none}.archive-preview .archive-machine-techniques{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archive-preview .archive-machine-techniques>span+span:before{content:" · "}.archive-preview .archive-machine-date{font-size:.5625rem}.ctf-archive.archive-preview{grid-template-columns:56px minmax(0,1fr)}.ctf-archive-mark{padding:.25rem}.digital-flag{width:52px}.archive-preview .archive-categories{padding:.375rem .625rem;gap:.875rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;scrollbar-color:hsl(var(--primary) / .3) transparent}.archive-preview .archive-categories button{flex-shrink:0;gap:.375rem;font-size:.75rem}.archive-preview .archive-categories .archive-glyph{display:none}.archive-preview .archive-challenge-groups{padding-inline:.5rem}.archive-preview .archive-challenge{grid-template-columns:minmax(0,1fr) 68px;gap:.375rem .5rem;min-height:100px;padding:.75rem .125rem}.archive-preview .archive-challenge h4{font-size:1.0625rem}.archive-preview .archive-challenge-techniques{font-size:.5625rem}.archive-preview .archive-challenge-meta time{font-size:.5625rem}}.htb-showcase{--htb-color: 80 100% 47%}.htb-showcase-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;padding-inline:.25rem}.htb-showcase-header .platform-logo{width:148px;height:34px}.htb-showcase-header>span{display:flex;align-items:baseline;gap:.875rem;color:hsl(var(--foreground) / .8);font-family:Oxanium,sans-serif;font-size:.8125rem}.htb-machine-total{color:hsl(var(--muted-foreground));font-family:Inter,sans-serif;font-size:.625rem}.htb-archive{--htb-color: 80 100% 47%;border:0;border-radius:0;background:none}.htb-archive:before,.htb-archive:after{display:none}.htb-archive-header{display:flex;align-items:center;gap:1.25rem;padding:0 0 1.5rem}.htb-archive-header .platform-logo{width:180px;height:45px}.htb-archive-header>span{color:hsl(var(--muted-foreground));font-size:.8125rem}.htb-online-mark{width:5px;height:5px;margin-left:auto;background:hsl(var(--htb-color))}.htb-difficulty-menu{display:flex;flex-wrap:wrap;gap:.75rem;padding-block:.5rem 1.5rem}.htb-difficulty-menu button{--entry-color: var(--htb-color);display:inline-flex;align-items:center;gap:1.25rem;min-height:46px;padding:.625rem 1.25rem;background:#101723;border:1px solid hsl(var(--entry-color) / .2);border-radius:2px;font-family:Oxanium,sans-serif;font-size:.9375rem}.htb-difficulty-menu button>span:last-child{font-family:Silkscreen,monospace;font-size:.625rem;color:hsl(var(--muted-foreground))}.htb-difficulty-menu button[aria-pressed=true]{border-color:hsl(var(--entry-color) / .8);background:hsl(var(--entry-color) / .08)}.htb-difficulty-menu .archive-difficulty{font-family:Oxanium,sans-serif;font-size:.9375rem}.htb-difficulty-group{margin-top:1.25rem}.htb-difficulty-heading{display:flex;align-items:center;gap:.875rem;margin-bottom:.5rem;color:hsl(var(--entry-color))}.htb-difficulty-heading h2{text-transform:capitalize;font-family:Oxanium,sans-serif;font-size:1.375rem;font-weight:500}.htb-difficulty-heading>span{color:hsl(var(--muted-foreground));font-size:.6875rem}.htb-difficulty-heading>i{flex:1;height:1px;background:hsl(var(--entry-color) / .2)}.htb-archive .archive-machine{grid-template-columns:48px minmax(0,1fr) 80px 85px 110px 20px;background:#0d121c80}.htb-archive .archive-machine:hover{background:hsl(var(--entry-color) / .06)}.htb-archive .archive-machine-list{padding-inline:0}.ctf-archive.archive-preview .ctf-archive-mark{grid-row:1 / 4}.ctf-view-more{grid-column:2;display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:44px;margin:0 .75rem;border-top:1px solid hsl(var(--primary) / .12);color:hsl(var(--secondary));font-family:Oxanium,sans-serif;font-size:.8125rem}@media (max-width: 767px){.htb-showcase-header>span{font-size:.75rem}.htb-machine-total{display:none}.htb-archive .archive-machine{grid-template-columns:36px minmax(0,1fr) 70px;gap:.25rem .625rem;padding:.875rem .5rem}.htb-archive .archive-machine-icon{width:36px;height:36px}.htb-archive .archive-machine-os,.htb-archive .archive-row-arrow{display:none}.htb-difficulty-menu{gap:.5rem}.htb-difficulty-menu button{padding:.5rem .75rem;gap:.75rem}.htb-difficulty-menu .archive-difficulty{font-size:.8125rem}}.ctf-page-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative;margin-block:-.5rem 1rem;padding-bottom:.5rem}.ctf-page-heading h1{font-size:clamp(2rem,4vw,3rem)}.ctf-page-heading .digital-flag{width:104px;margin-right:1.5rem}.ctf-page-heading:after{content:"";position:absolute;right:0;bottom:1rem;width:40%;height:1px;background:linear-gradient(90deg,transparent,hsl(var(--primary) / .35))}.ctf-archive-full{border:0;border-radius:0;background:none}.ctf-archive-full:before,.ctf-archive-full:after{display:none}.ctf-archive-full .archive-categories{padding:0 0 1.25rem;gap:.625rem 1.5rem;border-bottom:1px solid hsl(var(--accent) / .15)}.ctf-archive-full .archive-categories button{padding:.625rem .25rem;border:0;border-radius:0;background:none}.ctf-archive-full .archive-categories button[aria-pressed=true]{background:none;box-shadow:0 1px hsl(var(--category-color))}.ctf-archive-full .archive-categories button:hover{color:hsl(var(--category-color))}.ctf-archive-full .archive-challenge-groups{padding:.25rem 0 0}.ctf-archive-full .archive-challenge-group{margin-top:1.75rem}.ctf-archive-full .archive-category-heading{margin-bottom:.875rem}.ctf-archive-full .archive-category-heading h3{font-size:1.375rem}.ctf-archive-full .archive-challenge{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 110px 20px;padding:1.25rem 1rem;background:linear-gradient(95deg,hsl(var(--category-color) / .035),transparent 65%)}.ctf-archive-full .archive-challenge:hover{background:hsl(var(--category-color) / .07)}.ctf-archive-full .archive-challenge h4{font-size:1.5rem}.archive-challenge-kind{display:flex;align-items:center;gap:.5rem;margin-bottom:.625rem;color:hsl(var(--category-color));font-family:Oxanium,sans-serif;font-size:.6875rem}.archive-challenge-kind .archive-glyph{width:11px;height:11px}.ctf-archive-full .archive-challenge-techniques{font-size:.6875rem}@media (max-width: 767px){.ctf-page-heading{gap:1rem;margin-top:0}.ctf-page-heading .digital-flag{width:72px;margin-right:0}.ctf-page-heading:after{width:50%}.ctf-archive-full .archive-categories{gap:.5rem 1.125rem}.ctf-archive-full .archive-challenge{grid-template-columns:minmax(0,1fr) 85px;padding:1.125rem .5rem;gap:.75rem}.ctf-archive-full .archive-challenge h4{font-size:1.25rem}}.htb-page-heading{margin-bottom:1.5rem}.htb-page-heading h1{font-size:clamp(2rem,4vw,3rem)}.htb-archive-header{padding-bottom:1rem}.htb-difficulty-menu{gap:1.25rem;padding-block:.5rem 1.25rem}.htb-difficulty-menu button{border:0;padding-inline:.25rem;background:none;border-radius:0}.htb-difficulty-menu button[aria-pressed=true]{background:none;box-shadow:0 1px hsl(var(--entry-color))}.htb-difficulty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:start}.htb-difficulty-grid[data-filtered=true]{grid-template-columns:minmax(0,1fr)}.htb-difficulty-group{position:relative;isolation:isolate;margin:0;padding:1.125rem}.htb-difficulty-group:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(145deg,#191221f7,#0d121ce6);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px)}.htb-group-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;fill:none;stroke:hsl(var(--entry-color) / .4);stroke-width:1;pointer-events:none}.htb-difficulty-heading{gap:.75rem;margin:0 0 .875rem;padding:.25rem .25rem .875rem;border-bottom:1px solid hsl(var(--entry-color) / .13)}.htb-difficulty-symbol{display:grid;place-items:center;width:28px;height:28px;color:hsl(var(--entry-color))}.htb-difficulty-heading h2{font-size:1.25rem}.htb-difficulty-heading>span:last-child{margin-left:auto;font-family:Silkscreen,monospace;font-size:.625rem}.htb-difficulty-group .archive-machine{grid-template-columns:38px minmax(0,1fr) 90px 16px;gap:.375rem .75rem;padding:.875rem .375rem;background:none}.htb-difficulty-group .archive-machine-icon{width:38px;height:38px;grid-row:1 / 3}.htb-difficulty-group .archive-machine-main{grid-column:2;grid-row:1 / 3}.htb-difficulty-group .archive-machine h3{font-size:1.125rem}.htb-difficulty-group .archive-machine-os{display:flex;grid-column:3;grid-row:1;justify-content:flex-end}.htb-difficulty-group .archive-machine>.archive-difficulty{display:none}.htb-difficulty-group .archive-machine-date{grid-column:3;grid-row:2}.htb-difficulty-group .archive-row-arrow{display:block;grid-column:4;grid-row:1 / 3;width:16px}.htb-difficulty-group .archive-machine-list>li:last-child{border-bottom:0}.htb-group-empty{padding:1.5rem .5rem;font-size:.8125rem}@media (max-width: 1000px){.htb-difficulty-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 767px){.htb-difficulty-menu{gap:.5rem 1rem}.htb-difficulty-group{padding:1rem .75rem}.htb-difficulty-group .archive-machine{grid-template-columns:32px minmax(0,1fr) 74px;gap:.25rem .625rem}.htb-difficulty-group .archive-machine-icon{width:32px;height:32px}.htb-difficulty-group .archive-row-arrow{display:none}.htb-difficulty-group .archive-machine-techniques{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.htb-difficulty-group .archive-machine-techniques span+span:before{content:" · "}.htb-difficulty-group .archive-machine-os{font-size:.625rem}.htb-difficulty-group .archive-machine-date{font-size:.5625rem}}.htb-showcase{position:relative;isolation:isolate;padding:clamp(1.5rem,3vw,2.75rem) clamp(1rem,3vw,2.75rem) 2rem}.htb-showcase:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(125deg,#181122f5,#0e0f1bf7 55%,#0f1c1ff2);clip-path:polygon(2.75% 0,33.33% 0,35.08% 2.5%,86.67% 2.5%,88.17% 0,97.25% 0,100% 5.5%,100% 85%,97.92% 89%,97.92% 94.5%,97.25% 100%,5.42% 100%,0 89.17%,0 5.5%)}.htb-panel-frame{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%;pointer-events:none}.htb-panel-frame path{vector-effect:non-scaling-stroke;stroke-width:1}.htb-panel-outline{stroke:#a682c959}.htb-panel-cyan{stroke:#63dee9a6}.htb-panel-pink{stroke:#ec79bc99}.htb-panel-seam{stroke:#bf96e980}.htb-showcase-header{flex-wrap:wrap;gap:.75rem 1.5rem;margin-bottom:1rem;padding:0}.htb-showcase-header .platform-logo{width:200px;height:46px}.htb-showcase-header .htb-rack-summary{margin-left:auto}.htb-rack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-block:.75rem}.htb-rack-station{position:relative;min-width:0}.htb-rack-station:before{content:"";position:absolute;top:226px;left:0;right:0;height:1px;background:hsl(var(--htb-color) / .3);pointer-events:none}.htb-rack-station:first-child:before{left:50%}.htb-rack-station:last-child:before{right:50%}.htb-rack-machine{display:grid;justify-items:center;padding:1rem 1.5rem 1.5rem;height:100%;outline-offset:-2px}.htb-rack-machine:focus-visible{outline:2px solid hsl(var(--htb-color))}.htb-rack-art{display:block;position:relative;width:240px;height:210px}.htb-rack-pixels{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none;shape-rendering:crispEdges}.htb-pixel-band-0{fill:#6eecf7}.htb-pixel-band-1{fill:#f881c7}.htb-pixel-band-2{fill:hsl(var(--htb-color))}.htb-rack-cube{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;stroke:hsl(var(--htb-color) / .55);stroke-width:1;stroke-linejoin:round}.htb-rack-hidden-edge{stroke-dasharray:3 5;stroke-opacity:.35}.htb-rack-top{fill:#222914}.htb-rack-side{fill:#12121c}.htb-rack-face{fill:#131420}.htb-rack-detail{stroke:hsl(var(--htb-color) / .8)}.htb-rack-port{stroke:hsl(var(--htb-color) / .4)}.htb-rack-signal{stroke:hsl(var(--htb-color));stroke-width:1.5;stroke-dasharray:16 84;stroke-dashoffset:16;opacity:0}.htb-rack-avatar{position:absolute;left:42.08%;top:50.95%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;color:hsl(var(--htb-color))}.htb-rack-socket{position:absolute;bottom:-4px;left:calc(50% - 4px);width:8px;height:8px;background:#131420;border:1px solid hsl(var(--htb-color) / .8)}.htb-rack-copy{width:100%;max-width:240px;margin-top:1.75rem}.htb-rack-title{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.htb-rack-title h3{font-family:Oxanium,sans-serif;font-size:1.625rem;font-weight:500;line-height:1.25;overflow-wrap:anywhere}.htb-rack-title>svg{flex-shrink:0;color:hsl(var(--htb-color))}.htb-rack-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.75rem;font-size:.8125rem}.htb-rack-os{display:inline-flex;align-items:center;gap:.375rem;color:hsl(var(--foreground) / .75);text-transform:capitalize}.htb-rack-meta .archive-difficulty{font-size:.8125rem}.htb-rack-techniques{display:flex;flex-wrap:wrap;gap:.375rem 1rem;margin-top:.875rem;color:hsl(var(--foreground) / .85);font-size:.75rem;line-height:1.6}.htb-rack-techniques li{overflow-wrap:anywhere}.htb-rack-date{display:block;margin-top:.625rem;color:hsl(var(--muted-foreground));font-size:.75rem;font-variant-numeric:tabular-nums}.htb-rack-machine:is(:hover,:focus-visible) .htb-rack-cube{stroke:hsl(var(--htb-color))}.htb-rack-machine:is(:hover,:focus-visible) .htb-rack-face{fill:#212617}.htb-rack-machine:is(:hover,:focus-visible) .htb-rack-socket{background:hsl(var(--htb-color))}.htb-rack-machine:is(:hover,:focus-visible) h3{color:hsl(var(--htb-color))}@media (prefers-reduced-motion: no-preference){.htb-rack[data-reveal=waiting] .htb-rack-art{opacity:0}.htb-rack[data-reveal=revealed] .htb-rack-art{animation:htb-rack-glitch .62s var(--reveal-delay) steps(1,end) both}.htb-rack[data-reveal=revealed] .htb-rack-pixels{animation:htb-pixels-resolve .62s var(--reveal-delay) steps(1,end) both}.htb-rack[data-reveal=revealed] .htb-pixel-band{animation:htb-pixels-scatter .62s var(--reveal-delay) steps(1,end) both;transform-origin:center}.htb-rack[data-reveal=revealed] .htb-pixel-band-1{animation-direction:reverse}.htb-rack-cube,.htb-rack-face,.htb-rack-title h3{transition:stroke .22s ease-out,fill .22s ease-out,color .22s ease-out}.htb-rack-machine:is(:hover,:focus-visible) .htb-rack-signal{opacity:1;animation:htb-rack-pulse 1.8s ease-out both}}@keyframes htb-rack-glitch{0%{opacity:1;clip-path:polygon(0 10%,70% 10%,70% 25%,100% 25%,100% 42%,30% 42%,30% 60%,90% 60%,90% 85%,0 85%);transform:translate(12px);filter:drop-shadow(-8px 0 hsl(325 90% 74% / .8))}14%{clip-path:polygon(15% 0,100% 0,100% 25%,45% 25%,45% 44%,100% 44%,100% 65%,65% 65%,65% 100%,0 100%,0 55%,15% 55%);transform:translate(-9px);filter:drop-shadow(7px 0 hsl(185 90% 70% / .8))}30%{clip-path:inset(0);transform:translate(5px);filter:drop-shadow(-5px 0 hsl(325 90% 74% / .7)) drop-shadow(5px 0 hsl(185 90% 70% / .7))}46%{clip-path:polygon(0 0,100% 0,100% 48%,75% 48%,75% 56%,100% 56%,100% 100%,0 100%,0 30%,20% 30%,20% 22%,0 22%);transform:translate(-4px);filter:drop-shadow(4px 0 hsl(270 90% 78% / .7))}64%{clip-path:inset(0);transform:translate(2px);filter:drop-shadow(-2px 0 hsl(185 90% 70% / .5))}82%{transform:none;filter:none}to{opacity:1;clip-path:none;transform:none;filter:none}}@keyframes htb-pixels-resolve{0%{opacity:1}30%{opacity:.85}64%{opacity:.5}82%,to{opacity:0}}@keyframes htb-pixels-scatter{0%{transform:translate(12px,-8px) scaleX(1.15)}22%{transform:translate(-10px,4px) scaleX(.85)}46%{transform:translate(6px,-4px)}70%{transform:translate(-3px)}to{transform:none}}@keyframes htb-rack-pulse{to{stroke-dashoffset:-84;opacity:0}}@media (min-width: 1100px){.htb-rack-art{width:280px;height:245px}.htb-rack-avatar{width:68px;height:68px}.htb-rack-station:before{top:261px}}@media (min-width: 641px) and (max-width: 1000px){.htb-rack-art{width:192px}.htb-rack-cube{height:168px;top:42px}.htb-rack-avatar{width:45px;height:45px;top:126px}.htb-rack-machine{padding-inline:.75rem}.htb-rack-title h3{font-size:1.375rem}}@media (max-width: 640px){.htb-showcase{padding:1.75rem 1rem 2.25rem}.htb-showcase-header .platform-logo{width:180px;height:42px}.htb-showcase-header .htb-rack-summary{flex-basis:100%;order:2;margin:0}.htb-rack-archive{margin-left:auto}.htb-showcase-header{gap:.375rem .75rem}.htb-rack{grid-template-columns:minmax(0,1fr);padding-block:.25rem}.htb-rack-machine{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:.75rem;padding:1.25rem 0}.htb-rack-art{width:96px;height:84px}.htb-rack-avatar{width:28px;height:28px}.htb-rack-copy{max-width:none;margin:0}.htb-rack-title h3{font-size:1.375rem}.htb-rack-meta{gap:.375rem 1rem;margin-top:.5rem}.htb-rack-techniques{margin-top:.5rem}.htb-rack-date{margin-top:.375rem}.htb-rack-station:before{top:0;bottom:0;left:48px;right:auto;width:1px;height:auto}.htb-rack-station:first-child:before{top:50%;left:48px}.htb-rack-station:last-child:before{bottom:50%;right:auto}.htb-rack-socket{display:none}}.htb-showcase-header>span{font-size:.875rem}.htb-machine-total{font-size:.75rem}.ctf-showcase{display:grid;grid-template-columns:190px minmax(0,1fr);gap:0 2rem;isolation:isolate;padding:1.75rem 2.5rem 2rem 1.5rem;border:0;border-radius:0;background:none}.ctf-showcase:before{top:0;right:0;bottom:0;left:0;z-index:-1;width:auto;height:auto;border:0;background:linear-gradient(115deg,#1f1226f7,#12101ef7 60%,#0f181ff5);clip-path:polygon(0 8.17%,4.08% 0,22.5% 0,24.5% 2.83%,93.92% 2.83%,100% 14.83%,100% 91.83%,95.92% 100%,77.5% 100%,75.5% 97.17%,2.75% 97.17%,0 91.83%)}.ctf-showcase:after{display:none}.ctf-showcase-frame{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%;pointer-events:none}.ctf-showcase-frame path{vector-effect:non-scaling-stroke;stroke-width:1}.ctf-showcase-outline{stroke:#a682c959}.ctf-showcase-pink{stroke:#ec79bca6}.ctf-showcase-cyan{stroke:#63dee9a6}.ctf-showcase-detail{stroke:#bf96e980}.ctf-showcase-mark{display:flex;flex-direction:column;align-items:center;justify-content:center;grid-column:1;grid-row:1 / 3;align-self:stretch;border-right:1px solid hsl(var(--accent) / .18);padding-right:1rem}.ctf-showcase-mark .digital-flag{width:180px}.ctf-showcase-mark>span{color:hsl(var(--muted-foreground));font-family:Oxanium,sans-serif;font-size:1rem;text-align:center;text-wrap:balance}.ctf-archive-toolbar{display:contents}.ctf-showcase-toolbar{display:flex;align-items:center;gap:1.25rem;grid-column:2;padding:0 1rem .5rem 0;border-bottom:1px solid hsl(var(--accent) / .18)}.ctf-showcase-toolbar>.site-button{flex-shrink:0}.ctf-showcase .archive-categories{flex:1;min-width:0;padding:0;gap:.375rem 1.25rem;border-bottom:0}.ctf-showcase .archive-categories button{border:0;border-radius:0;min-height:44px;padding:.5rem 0;gap:.5rem;font-size:1rem;background:none}.ctf-showcase .archive-categories button[aria-pressed=true]{box-shadow:0 1px hsl(var(--category-color))}.ctf-showcase .archive-filter-count{font-size:.8125rem}.ctf-showcase .archive-challenge-groups{min-width:0;grid-column:2;padding:0}.ctf-showcase .archive-challenge-group{margin:0}.ctf-showcase .archive-challenge-group li:last-child{border-bottom:0}.ctf-showcase .archive-challenge{grid-template-columns:minmax(0,1fr) 128px 20px;gap:.5rem 1.25rem;padding:1rem .5rem}.ctf-showcase .archive-challenge-main{grid-column:1;grid-row:1;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;min-width:0}.ctf-showcase .archive-challenge h3{flex-basis:100%;order:-1;font-family:Oxanium,sans-serif;font-size:1.625rem;font-weight:500;line-height:1.3;overflow-wrap:anywhere}.ctf-showcase .archive-challenge-kind{margin:0;font-size:.9375rem}.ctf-showcase .archive-challenge-competition{font-size:.9375rem}.ctf-showcase .archive-challenge-techniques{grid-column:1;grid-row:2;font-size:.75rem;color:hsl(var(--foreground) / .8);overflow-wrap:anywhere}.ctf-showcase .archive-challenge-meta{grid-column:2;grid-row:1 / 3;gap:.625rem}.ctf-showcase .archive-challenge-meta .archive-difficulty{font-size:.9375rem}.ctf-showcase .archive-challenge-meta time{font-size:.875rem;font-variant-numeric:tabular-nums}.ctf-showcase .archive-row-arrow{grid-column:3;grid-row:1 / 3}.ctf-showcase .archive-challenge:is(:hover,:focus-visible) h3{color:hsl(var(--category-color))}@media (max-width: 1000px){.ctf-showcase{grid-template-columns:140px minmax(0,1fr);gap:0 1.25rem;padding-inline:1.5rem}.ctf-showcase-mark .digital-flag{width:136px}}@media (max-width: 640px){.ctf-showcase{grid-template-columns:72px minmax(0,1fr);gap:0 .75rem;padding:1.5rem 1rem 1.75rem}.ctf-showcase-mark{flex-direction:row;justify-content:flex-start;gap:1rem;grid-column:1 / -1;grid-row:1;border:0;padding:0}.ctf-showcase-mark .digital-flag{width:80px;max-width:none}.ctf-showcase-mark>span{font-size:.9375rem;text-align:left}.ctf-showcase-toolbar{display:contents}.ctf-showcase-toolbar>.site-button{grid-column:1 / -1;grid-row:4;justify-self:center;margin-top:.75rem}.ctf-showcase .archive-categories,.ctf-showcase .archive-challenge-groups{grid-column:1 / -1}.ctf-showcase .archive-categories{grid-row:2;gap:.25rem 1rem;padding-block:.25rem .5rem;border-bottom:1px solid hsl(var(--accent) / .18)}.ctf-showcase .archive-challenge-groups{grid-row:3}.ctf-showcase .archive-challenge{grid-template-columns:minmax(0,1fr);padding:.875rem .25rem;gap:.625rem}.ctf-showcase .archive-challenge h3{font-size:1.375rem}.ctf-showcase .archive-challenge-techniques{grid-column:1;grid-row:2}.ctf-showcase .archive-challenge-meta{grid-column:1;grid-row:3;flex-direction:row;justify-content:space-between;align-items:center}.ctf-showcase .archive-row-arrow{display:none}}.archive-ctf-page{max-width:68rem}.archive-ctf-page .archive-back{margin-bottom:1rem}.ctf-page-heading{justify-content:flex-start;gap:1.25rem;margin:0 0 .875rem;padding:0}.ctf-page-heading h1{font-size:2.5rem;order:1}.ctf-page-heading .digital-flag{width:68px;margin:0;order:0}.ctf-page-heading:after{display:none}.ctf-archive-full .archive-categories{gap:.5rem 1.25rem;padding-bottom:.625rem}.ctf-archive-full .archive-categories button{min-height:44px;font-size:.9375rem}.ctf-archive-full .archive-category-heading{margin-bottom:.5rem}.ctf-archive-full .archive-challenge-group{margin-top:1.25rem}.ctf-archive-full .archive-challenge-group[data-latest=true]{margin-top:.375rem}.ctf-archive-full .archive-challenge-group[data-latest=true]>.archive-category-heading{display:none}.ctf-archive-full .archive-challenge{grid-template-columns:minmax(0,1fr) 132px 18px;gap:.375rem 1rem;padding:.875rem .75rem}.ctf-archive-full .archive-challenge-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .75rem;grid-column:1;grid-row:1}.ctf-archive-full .archive-challenge h4{order:0;margin:0;font-size:1.375rem;line-height:1.35}.ctf-archive-full .archive-challenge-kind{order:1;margin:0;font-size:.75rem}.ctf-archive-full .archive-challenge-competition{order:2;flex-basis:100%;font-size:.8125rem;line-height:1.6}.ctf-archive-full .archive-challenge-techniques{grid-column:1;grid-row:2;gap:.375rem .875rem;font-size:.8125rem;line-height:1.6}.ctf-archive-full .archive-challenge-meta{grid-column:2;grid-row:1 / 3;gap:.5rem}.ctf-archive-full .archive-challenge-meta .archive-difficulty{font-size:.875rem;font-weight:500}.ctf-archive-full .archive-challenge-meta .archive-difficulty>span[aria-hidden=true]{width:5px;height:5px}.ctf-archive-full .archive-challenge-meta time{font-size:.75rem}.ctf-archive-full .archive-row-arrow{display:block;grid-column:3;grid-row:1 / 3}@media (max-width: 767px){.htb-showcase-header>span{font-size:.75rem}.ctf-page-heading h1{font-size:2rem}.ctf-page-heading .digital-flag{width:52px}.ctf-archive-full .archive-challenge{grid-template-columns:minmax(0,1fr) 108px;gap:.5rem .75rem;padding:.875rem .25rem}.ctf-archive-full .archive-challenge h4{font-size:1.25rem}.ctf-archive-full .archive-row-arrow{display:none}.ctf-archive-full .archive-challenge-techniques{grid-column:1 / -1}.ctf-archive-full .archive-challenge-meta{grid-row:1}}.archive-preview-heading{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:1rem}.archive-preview-heading h2{grid-column:2;text-align:center;font-size:clamp(1.875rem,2.8vw,2.25rem)}.archive-preview-heading a{grid-column:3;justify-self:end;white-space:nowrap}@media (max-width: 639px){.archive-preview-heading{grid-template-columns:minmax(0,1fr);gap:.125rem}.archive-preview-heading h2{grid-column:1}.archive-preview-heading a{grid-column:1;justify-self:center;min-height:32px}}.site-section-title{background:var(--gradient-purple);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.site-button{--action-color: var(--primary);--action-edge: .5;--action-fill: .1;--action-hover: .17;--action-cut: 8px;position:relative;isolation:isolate;flex-shrink:0;gap:.75rem;min-height:46px;padding:.625rem 1.125rem;border:0;border-radius:0;background:transparent;color:hsl(var(--foreground));font-family:Oxanium,sans-serif;font-size:.9375rem;font-weight:500;line-height:1.5;box-shadow:none;text-decoration:none;transition:color .18s ease,transform .18s ease}.site-button:before,.site-button:after{content:"";position:absolute;pointer-events:none;clip-path:polygon(0 0,calc(100% - var(--action-cut)) 0,100% var(--action-cut),100% 100%,var(--action-cut) 100%,0 calc(100% - var(--action-cut)));transition:background .18s ease}.site-button:before{top:0;right:0;bottom:0;left:0;z-index:-2;background:hsl(var(--action-color) / var(--action-edge))}.site-button:after{top:1px;right:1px;bottom:1px;left:1px;z-index:-1;background:linear-gradient(hsl(var(--action-color) / var(--action-fill)),hsl(var(--action-color) / var(--action-fill))),#16111d}.site-button:hover{color:hsl(var(--foreground));background:transparent}.site-button:hover:before{background:hsl(var(--action-color) / .85)}.site-button:hover:after{background:linear-gradient(hsl(var(--action-color) / var(--action-hover)),hsl(var(--action-color) / var(--action-hover))),#16111d}.site-button:focus-visible{outline:2px solid hsl(var(--secondary));outline-offset:4px}.site-button:active{transform:translateY(1px)}.site-button:disabled,.site-button[aria-disabled=true]{opacity:.45;pointer-events:none}.site-button>svg{width:18px;height:18px;margin:0}.site-button .action-arrow,.site-button .action-arrow-down{transition:transform .18s ease}.site-button:hover .action-arrow{transform:translate(2px,-2px)}.site-button:hover .action-arrow-down{transform:translateY(2px)}.site-button[data-size=lg]{min-height:52px;padding:.75rem 1.5rem;font-size:1rem}.site-button[data-size=sm]{min-height:44px;padding:.5rem .875rem;font-size:.875rem;--action-cut: 6px}.site-button[data-size=icon]{min-height:44px;width:44px;padding:0}.site-button-secondary{--action-color: var(--secondary)}.site-button-accent{--action-color: var(--accent)}.site-button-danger{--action-color: var(--destructive);--action-fill: .15}.site-button-outline{--action-color: var(--secondary);--action-edge: .3;--action-fill: .025;--action-hover: .09;color:hsl(var(--secondary))}.site-button-ghost,.site-button-link{--action-color: var(--accent);--action-edge: 0;--action-fill: 0;--action-hover: .06;color:hsl(var(--foreground) / .8)}.site-button-ghost:after,.site-button-link:before,.site-button-link:after{background:transparent}.site-button-ghost:hover:before{background:hsl(var(--action-color) / .25)}.site-button-link:hover:before,.site-button-link:hover:after{background:transparent}.site-button-link:hover{color:hsl(var(--secondary));text-decoration:underline;text-underline-offset:4px}.site-button.page-back,.site-button.article-back-link{--action-color: var(--accent);--action-edge: .2;--action-fill: 0;color:hsl(var(--muted-foreground))}.site-button.page-back:hover,.site-button.article-back-link:hover{color:hsl(var(--foreground));background:transparent}.archive-preview-heading .site-button{font-size:.875rem}.ctf-view-more.site-button{--action-cut: 0px;border:0;margin:0 .75rem;color:hsl(var(--secondary))}.ctf-view-more.site-button:before{background:hsl(var(--accent) / .13)}.ctf-view-more.site-button:after{top:1px;right:0;bottom:0;left:0;background:#16111d}.ctf-view-more.site-button:hover:after{background:hsl(var(--accent) / .06)}@media (prefers-reduced-motion: reduce){.site-button,.site-button:before,.site-button:after,.site-button .action-arrow,.site-button .action-arrow-down{transition:none}}.decode-word{position:relative;display:inline-block;white-space:nowrap}.decode-word-measure{color:transparent;-webkit-text-fill-color:transparent;text-shadow:none}.decode-text .decode-word-current{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.scroll-decrypt[data-decoding=true] .site-section-title{background:none}.site-section-title .decode-text-cipher{color:hsl(var(--primary));-webkit-text-fill-color:currentColor}.home-main{--home-section-gap: clamp(3rem, 5vw, 4rem);--home-heading-gap: 2rem;display:flex;flex-direction:column;gap:var(--home-section-gap);padding-block:var(--home-section-gap)}.home-main>section{padding-block:0;scroll-margin-top:7rem}.home-about-content{display:grid;gap:var(--home-section-gap)}.home-page .home-section-title{margin:0 0 var(--home-heading-gap);font-family:Oxanium,sans-serif;font-size:clamp(1.75rem,2.8vw,2.25rem);font-weight:600;line-height:1.25;letter-spacing:-.025em;text-align:center}.home-page .archive-preview-heading{margin-bottom:var(--home-heading-gap)}.home-page .archive-preview-heading .home-section-title{margin:0}.home-section-footer{display:flex;justify-content:center;margin-top:1.5rem}.home-scroll-progress{position:fixed;top:0;left:0;z-index:70;width:100%;height:2px;background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--secondary)));transform:scaleX(0);transform-origin:left;pointer-events:none}.home-main>section[data-motion-active=false] *,.home-main>section[data-motion-active=false] *:before,.home-main>section[data-motion-active=false] *:after{animation-play-state:paused!important}@media (max-width: 767px){.home-main{--home-section-gap: 3rem;--home-heading-gap: 1.5rem;padding-top:1.25rem}.site-navigation-inner{padding-inline:1rem}.site-brand{font-size:1.125rem}.site-brand small{font-size:.8125rem}.project-rail{--channel-edge: 16px}.project-rail-track{-webkit-mask-image:linear-gradient(to right,transparent,black 10px,black calc(100% - 10px),transparent);mask-image:linear-gradient(to right,transparent,black 10px,black calc(100% - 10px),transparent)}.project-channel-field{width:12px}.home-page .project-showcase-copy>p{display:block;font-size:.9375rem;line-height:1.7}.home-page .project-technologies,.home-page .project-meta{font-size:.8125rem}.home-page .project-sources a{min-height:44px;font-size:.875rem}.blog-book{margin-block:0 1.5rem}.book-leaf{padding:1.5rem 1.25rem 3rem}.blog-book .blog-feature-copy>p{font-size:.9375rem;line-height:1.75}.blog-book .blog-feature-copy>time,.blog-book .blog-topics{font-size:.8125rem}.blog-book-navigation{font-size:.8125rem}.latest-publication{position:fixed;top:calc(6rem + env(safe-area-inset-top,0px));right:.75rem;left:auto;width:min(52vw,210px);min-width:170px;max-width:calc(100vw - 1.5rem);margin:0;background:hsl(var(--card) / .98);backdrop-filter:none;-webkit-backdrop-filter:none;animation:phone-notification-arrive .28s cubic-bezier(.22,1,.36,1) both}.latest-publication>button{min-width:44px;min-height:44px}.home-terminal-content{padding:1rem;font-size:.8125rem}.home-terminal .justify-between{flex-wrap:wrap;gap:.5rem}}@media (max-width: 639px){.home-page .hero-topics{font-size:1.0625rem;gap:.125rem .5rem}.home-page .hero-work-action,.home-page .hero-cli-action{width:min(100%,20rem)}.profile-skills-heading{gap:.75rem}.profile-skills-heading h3{font-size:1.125rem}.profile-skills-heading .site-button{font-size:.875rem;padding-inline:1rem}.profile-skill-detail{min-height:0;padding:1.25rem}.profile-skill-detail>p{font-size:.9375rem;line-height:1.75}.profile-skill-detail li{font-size:.9375rem}.radar-control text{font-size:21px}.profile-learning-label{font-size:1rem}.profile-study-meta,.profile-progress-caption{font-size:.8125rem}.profile-study-milestone{font-size:.75rem}.profile-courses{grid-template-columns:minmax(0,1fr);gap:.75rem}.profile-course{min-height:0;padding:1rem 1.125rem}.profile-course h5{font-size:.9375rem;margin-bottom:.75rem}.profile-course-meta{font-size:.8125rem;margin-bottom:.5rem}.profile-course-verify{min-height:32px;font-size:.8125rem}.htb-showcase{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem .5rem}.htb-showcase-header{display:contents}.htb-showcase-header .platform-logo{width:148px;height:36px;align-self:center}.htb-showcase-header .htb-rack-summary{flex-direction:column;align-items:flex-end;justify-content:center;gap:.25rem;margin:0;font-size:.8125rem}.htb-showcase-header .htb-machine-total{display:block;font-size:.75rem}.htb-rack{grid-column:1 / -1;grid-row:2}.htb-rack-archive{grid-column:1 / -1;grid-row:3;justify-self:center;margin:.25rem 0 0}.htb-rack-meta,.htb-rack-meta .archive-difficulty,.htb-rack-techniques{font-size:.875rem}.htb-rack-date,.ctf-showcase .archive-challenge-techniques{font-size:.8125rem}}.site-brand small .site-brand-role{padding:0;color:hsl(var(--secondary))}.site-brand-break,.site-navigation-frame-mobile{display:none}@media (max-width: 767px){.site-navigation{width:calc(100% - 1.5rem)}.site-navigation-inner{grid-template-columns:minmax(0,1fr) 44px;gap:.75rem;min-height:80px;padding:.875rem}.site-navigation-frame-desktop{display:none}.site-navigation-frame-mobile{display:block}.site-brand{justify-content:flex-start;text-align:left;transform:none;min-width:0}.site-brand-copy{display:block;width:100%;min-width:0}.site-brand-name{display:block;white-space:nowrap;font-size:clamp(1.125rem,5vw,1.25rem);line-height:1.2}.site-brand-separator{display:inline;color:hsl(var(--muted-foreground) / .6)}.site-brand small{display:flex;align-items:baseline;gap:.375rem;margin-top:.375rem;font-size:.8125rem;line-height:1.3;letter-spacing:0}.site-brand small>span{padding:0}.site-brand small strong{font-size:.875rem;line-height:1.3}.site-brand small .site-brand-role{font-size:.8125rem}.site-menu-toggle{transform:none}.site-menu.is-open{gap:.375rem;padding:.75rem;border:1px solid hsl(var(--accent) / .3)}.site-menu>a{min-height:48px;padding:.5rem .75rem;font-size:.9375rem}.skills-page .text-xs,.certifications-page .text-xs{font-size:.8125rem;line-height:1.65}.portfolio-page-heading h1{overflow-wrap:anywhere}.reader-content{padding:1.25rem .875rem}.reader-summary-text{font-size:1rem;line-height:1.75}.reader-related-description,.reader-summary-topics{font-size:.875rem}.reader-prose .reader-code pre{font-size:.8125rem}.terminal-page-heading{flex-wrap:wrap;justify-content:flex-start;gap:.75rem;padding:1rem}.terminal-page-heading>div:last-child{font-size:.8125rem}.terminal-page-console{height:calc(100dvh - 15rem);min-height:360px}}@media (max-width: 639px){.htb-difficulty-group .archive-machine{grid-template-columns:38px minmax(0,1fr);gap:.5rem .75rem;padding-block:1rem}.htb-difficulty-group .archive-machine-icon{width:38px;height:38px;grid-row:1 / 4}.htb-difficulty-group .archive-machine-main{grid-column:2;grid-row:1}.htb-difficulty-group .archive-machine h3{font-size:1.25rem}.htb-difficulty-group .archive-machine-techniques{display:flex;font-size:.8125rem}.htb-difficulty-group .archive-machine-os{grid-column:2;grid-row:2;justify-content:flex-start;font-size:.875rem}.htb-difficulty-group .archive-machine-date{grid-column:2;grid-row:3;font-size:.8125rem;text-align:left}.ctf-archive-full .archive-challenge{grid-template-columns:minmax(0,1fr);gap:.75rem;padding:1.25rem .25rem}.ctf-archive-full .archive-challenge h4{font-size:1.375rem}.ctf-archive-full .archive-challenge-main{grid-column:1;grid-row:1}.ctf-archive-full .archive-challenge-techniques{grid-column:1;grid-row:2;font-size:.8125rem}.ctf-archive-full .archive-challenge-meta{grid-column:1;grid-row:3;flex-direction:row;justify-content:space-between;align-items:center}.ctf-archive-full .archive-challenge-meta .archive-difficulty,.ctf-archive-full .archive-challenge-kind,.ctf-archive-full .archive-challenge-competition{font-size:.875rem}.ctf-archive-full .archive-challenge-meta time{font-size:.8125rem}}@keyframes phone-notification-arrive{0%{opacity:0;transform:translate(12px,-18px) scale(.94)}to{opacity:1;transform:none}}@media (max-width: 767px){.latest-publication[data-closing]{animation:phone-notification-leave .16s ease-in both}.latest-publication{padding:.5rem .125rem .5rem .5rem;border-radius:.75rem;transform-origin:top right}.latest-publication>a{gap:.375rem}.latest-publication-art{width:24px;height:24px;border-radius:.25rem}.latest-publication-label{font-size:.625rem;margin-bottom:.125rem}.latest-publication-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.75rem;line-height:1.4}.latest-publication button{align-self:center}.terminal-shell-heading>div:first-child{min-width:0;align-items:flex-start;flex-wrap:wrap;row-gap:.5rem}.terminal-shell-heading>div:first-child>span{flex-basis:100%;overflow-wrap:anywhere;font-size:.75rem}.terminal-output{font-size:.8125rem;overflow-wrap:anywhere}.terminal-output pre{max-width:100%;overflow-x:auto}.terminal-shell form{flex-wrap:wrap}.terminal-shell form input{flex:1 0 100%;min-height:44px;margin:.5rem 0 0;caret-color:#39ff14}.terminal-shell .terminal-cursor{display:none}}@keyframes phone-notification-leave{to{opacity:0;transform:translateY(-12px)}}.hover\:border-accent\/40:hover{border-color:hsl(var(--accent) / .4)}.hover\:bg-\[\#39ff14\]\/20:hover{background-color:#39ff1433}.hover\:bg-accent\/10:hover{background-color:hsl(var(--accent) / .1)}.hover\:bg-blue-500\/10:hover{background-color:#3b82f61a}.hover\:bg-destructive\/20:hover{background-color:hsl(var(--destructive) / .2)}.hover\:bg-destructive\/30:hover{background-color:hsl(var(--destructive) / .3)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/80:hover{background-color:hsl(var(--muted) / .8)}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/15:hover{background-color:hsl(var(--secondary) / .15)}.hover\:bg-secondary\/50:hover{background-color:hsl(var(--secondary) / .5)}.hover\:bg-success\/10:hover{background-color:hsl(var(--success) / .1)}.hover\:bg-success\/30:hover{background-color:hsl(var(--success) / .3)}.hover\:bg-success\/90:hover{background-color:hsl(var(--success) / .9)}.hover\:bg-warning\/30:hover{background-color:hsl(var(--warning) / .3)}.hover\:bg-yellow-500\/10:hover{background-color:#eab3081a}.hover\:text-accent:hover{color:hsl(var(--accent))}.hover\:text-blue-400:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-success:hover{color:hsl(var(--success))}.hover\:text-yellow-400:hover{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-secondary:hover{text-decoration-color:hsl(var(--secondary))}.hover\:opacity-100:hover{opacity:1}.hover\:ring-1:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-accent\/20:hover{--tw-ring-color: hsl(var(--accent) / .2)}.hover\:ring-blue-500\/20:hover{--tw-ring-color: rgb(59 130 246 / .2)}.hover\:ring-destructive\/20:hover{--tw-ring-color: hsl(var(--destructive) / .2)}.hover\:ring-orange-500\/20:hover{--tw-ring-color: rgb(249 115 22 / .2)}.hover\:ring-primary\/20:hover{--tw-ring-color: hsl(var(--primary) / .2)}.hover\:ring-secondary\/20:hover{--tw-ring-color: hsl(var(--secondary) / .2)}.hover\:ring-success\/20:hover{--tw-ring-color: hsl(var(--success) / .2)}.hover\:ring-warning\/20:hover{--tw-ring-color: hsl(var(--warning) / .2)}.hover\:ring-yellow-500\/20:hover{--tw-ring-color: rgb(234 179 8 / .2)}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:-translate-x-1{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-accent{border-color:hsl(var(--accent))}.group:hover .group-hover\:border-destructive{border-color:hsl(var(--destructive))}.group:hover .group-hover\:border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.group:hover .group-hover\:border-primary{border-color:hsl(var(--primary))}.group:hover .group-hover\:border-secondary{border-color:hsl(var(--secondary))}.group:hover .group-hover\:border-success{border-color:hsl(var(--success))}.group:hover .group-hover\:border-warning{border-color:hsl(var(--warning))}.group:hover .group-hover\:text-accent{color:hsl(var(--accent))}.group:hover .group-hover\:text-destructive{color:hsl(var(--destructive))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:text-secondary{color:hsl(var(--secondary))}.group:hover .group-hover\:text-success{color:hsl(var(--success))}.group:hover .group-hover\:text-warning{color:hsl(var(--warning))}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.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],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{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\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-16{padding-top:4rem;padding-bottom:4rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:hidden{display:none}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:p-8{padding:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width: 1024px){.lg\:col-span-5{grid-column:span 5 / span 5}.lg\:col-span-7{grid-column:span 7 / span 7}.lg\:block{display:block}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:items-start{align-items:flex-start}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-20{padding-top:5rem;padding-bottom:5rem}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
