.prevent-drag{-webkit-user-drag:none;-moz-user-drag:none;-ms-user-drag:none}@font-face{font-family:Valorax;src:url(/fonts/Valorax-lg25V.woff2) format("woff2");font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0100-017F,U+2013,U+2014,U+2018,U+2019,U+201C,U+201D,U+2026,U+00A0}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0100-017F,U+2013,U+2014,U+2018,U+2019,U+201C,U+201D,U+2026,U+00A0}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-BoldItalic.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--almost-white: #fff;--high-viz-yellow: #f4eeb9;--high-viz-yellow-dim: #d6c975;--bright-orange: #d0633a;--neon-orange: #ff5f1f;--reddish-orange: #7b1a0a;--dark-orange: #b64d24;--dark-grey-orange: #362f1b;--blueish-grey: #9cb5c7;--very-small-screen: 450px;--section-font-size: 1.2em;--text-font-family: "Roboto", "Trebuchet MS", "Montserrat", sans-serif;--header-font-family: "Montserrat", Arial, sans-serif;--bullet-color: var(--dark-orange);--bullet-size: .4rem;--bg: #232622;--brand: oklch(60% .12 250)}body{font-family:var(--text-font-family);background:#000;color:var(--text-body, #e0e0e0);margin:0;min-height:100vh;padding:0;max-width:100%}body main{background:var(--bg);min-height:90vh;padding:1.4rem 1.4rem 2rem}body p{color:#fff}html,body{position:relative}h1{font-size:clamp(1.6rem,1.2rem + 2vw,2rem);margin:0 0 .35rem}.neon-text{width:100%}.bright-neon-text,.h2-styles{color:var(--high-viz-yellow);text-shadow:0 0 2px var(--dark-orange),0 0 4px var(--dark-orange),0 0 6px var(--dark-orange);font-family:var(--text-font-family)}.bright-neon-text a,.h2-styles a{color:#87ceeb;text-shadow:0 0 2px #1e90ff,0 0 1px #1e90ff}.bright-neon-text a:hover,.h2-styles a:hover{color:#b3e9ff;text-shadow:0 0 4px #6fc6e8,0 0 6px #1e90ff;text-decoration:underline}.readable-neon-text{font-family:var(--text-font-family);color:var(--blueish-grey);text-shadow:0 0 4px rgba(80,120,180,.5)}.readable-neon-text a{color:#87ceeb;text-shadow:0 0 2px #1e90ff,0 0 1px #1e90ff}.readable-neon-text a:hover{color:#b3e9ff;text-shadow:0 0 4px #6fc6e8,0 0 6px #1e90ff;text-decoration:underline}.bright-neon-text-small{color:var(--high-viz-yellow);text-shadow:0 0 2px var(--dark-orange),0 0 4px var(--dark-orange),0 0 4px var(--dark-orange),0 0 6px var(--dark-orange);font-family:var(--text-font-family)}.dim-neon-text{color:#eee;text-shadow:0 0 2px var(--reddish-orange),0 0 5px var(--reddish-orange),0 0 8px var(--reddish-orange),0 0 10px var(--reddish-orange);font-family:var(--text-font-family)}.dim-neon-text-small{color:var(--bright-orange);text-shadow:0 0 2px var(--reddish-orange),0 0 4px var(--reddish-orange),0 0 4px var(--reddish-orange),0 0 6px var(--reddish-orange);font-family:var(--text-font-family)}.neon-bar{width:80%;margin:0 auto;height:.25rem;background-color:var(--neon-orange);box-shadow:0 0 2px var(--neon-orange),0 0 10px var(--high-viz-yellow);border-bottom:1px solid var(--reddish-orange);border-radius:.2rem}.whitish-bar{width:100%;height:.2rem;background:linear-gradient(to right,transparent 0%,transparent 40%,var(--almost-white) 50%,transparent 60%,transparent 100%)}.custom-bullet-points ul{list-style-type:none}.custom-bullet-points ul li{font-family:var(--text-font-family);color:var(--blueish-grey);text-shadow:0 0 4px rgba(80,120,180,.5);position:relative;font-size:var(--section-font-size);margin:.6rem 0rem}.custom-bullet-points ul li:before{content:"";position:absolute;top:.6em;left:-1.8rem;transform:translateY(-50%);width:var(--bullet-size);height:var(--bullet-size);background-color:var(--bullet-color);border-radius:50%}.custom-bullet-points ul li strong{font-weight:800;color:#eee;text-shadow:0 0 2px var(--reddish-orange),0 0 5px var(--reddish-orange),0 0 8px var(--reddish-orange),0 0 10px var(--reddish-orange)}.h1-styles{font-size:1.6em;font-family:var(--header-font-family);color:#f6fbf7}.h2-styles{font-size:1.4em;font-family:var(--header-font-family)}.h3-styles,.h4-styles{color:#fff;font-size:1.2em;font-family:var(--header-font-family)}.about-grid>*{min-width:0}.content,.sidebar{min-width:0}.content>*{min-width:0}.content :is(img,iframe,table){max-width:100%;height:auto}.content{overflow-wrap:anywhere;hyphens:auto}.content header{overflow:clip}.neon-bar{max-width:100%}.about-page{overflow-x:clip}.projects-page{background:var(--bg);padding:clamp(1rem,2vw,2.25rem) 0}.section__inner,.projects-grid{min-width:0}.projects-grid>*{min-width:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(.9rem,2.8vw,1.25rem);margin:0;padding:0;list-style:none}.project-card{border-radius:1rem;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease}.project-card:hover{transform:translateY(-2px);box-shadow:0 0 12px #ff5f1f24,0 10px 24px #00000059}.project-link{display:grid;grid-template-rows:auto 1fr;color:inherit;text-decoration:none;min-width:0}.project-thumb{position:relative;aspect-ratio:16/9;background:color-mix(in oklab,#0b0d10 90%,var(--neon-orange) 10%);overflow:hidden}.project-thumb img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}.project-thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 40%,#00000040);pointer-events:none;z-index:1}.project-thumb .kind-badge{position:absolute;top:8px;left:8px;z-index:2;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;line-height:1;border:1px solid rgba(255,255,255,.18);background:#00000059;color:#eee;text-transform:uppercase;letter-spacing:.03em}.project-thumb .kind-demo{background:#1a94ff47}.project-thumb .kind-app{background:#32cd3247}.project-thumb .kind-lib{background:#ffc10747}.project-thumb .kind-tool{background:#ff5f1f47}.project-body{padding:.85rem .95rem 1rem;display:grid;gap:.45rem}.project-body .project-title{margin:0;font-size:clamp(1.05rem,1rem + .4vw,1.25rem);color:#f6fbf7}.project-body .project-desc{margin:0;font-size:clamp(.95rem,.9rem + .2vw,1.05rem);line-height:1.55;overflow-wrap:anywhere}.tag-list{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:.25rem 0 0;padding:0}.tag-list .tag{padding:.18rem .5rem;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#eaeaea;font-size:.78rem;line-height:1.1;white-space:nowrap}.section__inner{max-width:1200px;padding:0 clamp(1rem,4vw,2.25rem);margin:0 auto}.section__title{margin:0 0 .35rem}.section__subtitle{margin:0 0 .9rem}@media (max-width: 700px){.projects-grid{grid-template-columns:1fr 1fr}}@media (max-width: 520px){.projects-grid{grid-template-columns:1fr}.project-body{padding:.8rem .85rem .9rem}}.projects-page,.projects-grid,.project-card{overflow-x:clip}.project-link{position:relative}.project-card.is-disabled{opacity:.9}.project-card.is-disabled .project-link{cursor:not-allowed}.project-card.is-disabled:hover{transform:none;box-shadow:0 0 6px #00000040}.project-card.is-disabled .project-link:before{content:"";position:absolute;inset:0;background:#00000073;backdrop-filter:blur(1px);z-index:3;pointer-events:none}.wip-stamp{position:absolute;z-index:4;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-18deg);padding:.25rem .6rem;border:2px solid #ef4444;color:#ef4444;background:color-mix(in oklab,#ef4444 12%,transparent);text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:clamp(.8rem,.7rem + .6vw,1rem);box-shadow:0 0 0 2px #ef444440 inset}.project-thumb{position:relative}.project-thumb:after{z-index:1}.project-thumb img{z-index:1}.project-thumb .kind-badge{z-index:2}.mini-cta{display:inline-block;margin-top:.4rem;padding:.22rem .5rem;font-size:.78rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#eaeaea;text-decoration:none}.mini-cta:hover{background:#ffffff1a}
