@import"https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@300..800&display=swap";@import"https://fonts.googleapis.com/css2?family=Red+Hat+Mono:wght@300..700&display=swap";section[data-astro-cid-sh445jdo]{min-height:100vh}.container[data-astro-cid-sh445jdo]{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;min-height:100vh;width:100%;gap:1rem}:root{--font-sans: "Host Grotesk", sans-serif;--font-mono: "Red Hat Mono", monospace;--color-bg: #1a1a1a;--color-text: #fffffe;--color-primary: #00f5d4;--color-accent: #ff8906;--color-muted: #a7a9be;--color-danger: #ff5555;--color-highlight: #ffe566;--accent: 89 89 88;--accent-light: 242 242 233;--accent-dark: 1 13 0;--size-xs: .5rem;--size-sm: .75rem;--size-md: 1rem;--size-lg: 1.5rem;--size-xl: 2rem;--size-xxl: 3rem;--space-xxs: .25rem;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 24px;--shadow-md: 0 2px 10px rgba(0, 0, 0, .2);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .3);--easing: cubic-bezier(.65, 0, .35, 1);--transition: all .3s var(--easing);--accent-gradient: linear-gradient( 45deg, rgba(var(--accent), .5), rgb(var(--accent-dark)) 30%, rgba(var(--accent), .5) 70% );--secondary-glow: conic-gradient( from 10deg at 50% 50%, #d9bea7 0deg, #f2dcb3 55deg, #223d40 120deg, #72878c 160deg, transparent 360deg );--third-glow: conic-gradient( from 90deg at 50% 50%, #223d40 0deg, #72878c 160deg, #d9bea7 120deg, #f2dcb3 55deg, transparent 360deg )}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-mono);background:rgb(var(--accent-dark));scroll-behavior:smooth;width:100vw;overflow-x:hidden}body{position:relative;margin:0;min-height:100vh;overflow-x:hidden;color:var(--color-text);font-family:var(--font-sans)}body:before,body:after{content:"";position:absolute;z-index:-1;width:100vw;height:60%;border-radius:50%;filter:blur(90px);opacity:.5}body:before{background:var(--third-glow);top:40%;left:40vw;animation:blob-before 8s ease-in-out infinite}body:after{background:var(--secondary-glow);bottom:50%;left:20vw;animation:blob-after 8s ease-in-out infinite}@keyframes blob-before{0%{transform:translateY(0)}50%{transform:translateY(-200px) scale(.8)}to{transform:translateY(0)}}@keyframes blob-after{0%{transform:translate(0)}50%{transform:translate(-250px) scale(1.2)}to{transform:translate(0)}}h1,h2,h3{font-family:var(--font-sans);font-weight:800;margin:0 0 1rem;line-height:1.15;color:var(--color-text);text-wrap:pretty;letter-spacing:1px}h1{font-size:calc(var(--size-xxl) * 2)}h2{font-size:calc(var(--size-xl) * 2)}h3{font-size:calc(var(--size-lg) * 2)}p,a,label,em,li{font-family:var(--font-sans);font-size:calc(var(--size-md) * 2);line-height:1.25;font-weight:400;margin:0;color:var(--color-text);text-wrap:pretty;letter-spacing:.3px}a{text-decoration:none}em{font-family:var(--font-mono);font-style:normal}button{background:rgba(var(--accent-light),.6);border:0;border-radius:.25rem;color:rgb(var(--accent-dark));cursor:pointer;font-family:var(--font-sans);font-size:2rem;padding:1rem 2rem;transition:background-color .3s ease-in-out}button:hover{background:rgb(var(--accent-light))}input,textarea{width:100%;background:rgba(var(--accent-dark),.6);border:0;border-radius:.25rem;color:rgb(var(--accent-light));font-family:var(--font-mono);font-size:1.5rem;padding:1rem 2rem;transition:background-color .3s ease-in-out}input:focus,textarea:focus{outline:none}input:hover,textarea:hover{background:rgb(var(--accent-dark))}.container{width:90%;max-width:1200px;margin-inline:auto}.flex-center{display:flex;align-items:center;justify-content:center}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.p-md{padding:var(--space-md)}.rounded-md{border-radius:var(--radius-md)}.shadow-md{box-shadow:var(--shadow-md)}.fade-in-up{opacity:0;transform:translateY(40px);transition:all .8s var(--easing)}.fade-in-up.is-visible{opacity:1;transform:translateY(0)}.clip-reveal{overflow:hidden;position:relative}.clip-reveal>*{transform:translateY(100%);transition:all .8s var(--easing);display:inline-block}.clip-reveal.is-visible>*{transform:translateY(0)}.pulse-border{position:relative}.pulse-border:after{content:"";position:absolute;inset:-6px;border:2px solid currentColor;border-radius:12px;opacity:0;animation:pulse-anim 2s infinite}@keyframes pulse-anim{0%{opacity:.6;transform:scale(1)}70%{opacity:0;transform:scale(1.3)}to{opacity:0;transform:scale(1.3)}}.type{white-space:nowrap;overflow:hidden;display:inline-block;animation:typewriter 3s steps(40,end);border-right:2px solid var(--color-primary)}[data-animate]{opacity:0}[data-animate].is-visible{opacity:1}.timeline{position:relative;padding-left:2rem;border-left:2px solid var(--color-primary);animation:fade-in-up 1s ease-out forwards}.project-card{background:#0f0e17;color:var(--color-text);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-md);animation:flip-up 1s ease-in-out}.contact-form{background:#111;padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:pulse-border 2.5s infinite}div:has(canvas){transition:all .8s var(--easing)}canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.logo-svg{height:100px;width:100px;fill:rgb(var(--accent-light))}.header,footer{display:flex;width:100%;padding:2rem}footer{flex-direction:column;justify-content:center;align-items:flex-end}#v-pointer{position:fixed;top:-.75rem;left:-.75rem;padding:.75rem;background:rgba(var(--accent-light));mix-blend-mode:exclusion;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);z-index:99999;transition:padding .3s ease-in-out}@media (max-width: 1024px){h1{font-size:calc(var(--size-xxl) * 1.5)}h2{font-size:calc(var(--size-xl) * 1.5)}h3{font-size:calc(var(--size-lg) * 1.5)}p,a,label,em,li{font-size:calc(var(--size-md) * 1.5)}}@media (max-width: 768px){h1{font-size:calc(var(--size-xxl) * 1.25)}h2{font-size:calc(var(--size-xl) * 1.25)}h3{font-size:calc(var(--size-lg) * 1.25)}p,a,label,em,li{font-size:calc(var(--size-md) * 1.25)}}@media (max-width: 575px){h1{font-size:calc(var(--size-xxl) * 1.1)}h2{font-size:calc(var(--size-xl) * 1.1)}h3{font-size:calc(var(--size-lg) * 1.1)}p,a,label,em,li{font-size:calc(var(--size-md) * 1.1)}button,input,textarea{font-size:1rem;padding:.5rem 1rem}}
