@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Oswald:wght@500;700&family=JetBrains+Mono:wght@400;500&display=swap";@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}body{line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font-primary);background-color:var(--bg);color:var(--fg)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}:root{--font-primary: "Inter", sans-serif;--font-display: "Oswald", sans-serif;--font-mono: var(--font-mono)}:root{--bg: #050505;--bg-warm: #0a0a0a;--fg: #ffffff;--muted: #888888;--accent: #ffffff;--accent-hover: #cccccc;--crimson: #ff3333;--text-xs: .75rem;--text-sm: 1rem;--text-base: 1.3125rem;--text-md: 1.75rem;--text-lg: 2.375rem;--text-xl: 3.125rem;--text-2xl: 4.1875rem;--text-3xl: 5.5625rem;--text-hero: 7.4375rem;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-5: 2.5rem;--space-6: 3rem;--space-8: 4rem;--space-10: 5rem;--space-12: 6rem;--space-16: 8rem;--space-20: 10rem;--space-24: 12rem}html{background-color:var(--bg)}body{background:var(--bg);color:var(--fg);font-family:var(--font-primary);font-size:var(--text-sm);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:1.1;font-weight:800;margin:0}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer}@media (pointer: fine){body{cursor:none}}.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-3);width:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--space-4)}@media (min-width: 768px){.grid-12{gap:var(--space-4);padding-inline:var(--space-8)}}@media (min-width: 1024px){.grid-12{padding-inline:var(--space-12)}}.col-span-full{grid-column:1 / -1}.col-span-6{grid-column:span 6 / span 6}.col-span-4{grid-column:span 4 / span 4}.col-span-8{grid-column:span 8 / span 8}.col-span-3{grid-column:span 3 / span 3}.col-span-9{grid-column:span 9 / span 9}@media (max-width: 767px){.md\:col-span-6,.md\:col-span-4,.md\:col-span-8{grid-column:1 / -1}}@media (min-width: 768px){.md\:col-span-6{grid-column:span 6 / span 6}.md\:col-span-4{grid-column:span 4 / span 4}.md\:col-span-8{grid-column:span 8 / span 8}}.grain-overlay{position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.custom-cursor{position:fixed;inset:0;pointer-events:none;z-index:10001;overflow:hidden}.cursor-canvas{width:100%;height:100%;pointer-events:none;display:block}.preloader{position:fixed;inset:0;z-index:10000;pointer-events:auto;display:flex;flex-direction:column;justify-content:center;align-items:center}.preloader-columns{position:absolute;inset:0;display:flex;z-index:0}.preloader-column{flex:1;height:100%;background-color:var(--bg);border-right:1px solid rgba(255,255,255,.03)}.preloader-column:last-child{border-right:none}.preloader-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:20px}.preloader-counter{font-family:var(--font-primary);font-size:clamp(80px,15vw,220px);font-weight:700;color:var(--fg);line-height:.85;letter-spacing:-.05em;display:flex;align-items:flex-end}.preloader-counter .percent{font-family:var(--font-mono);font-size:clamp(20px,4vw,50px);font-weight:400;color:var(--muted);margin-bottom:clamp(10px,2vw,30px);margin-left:10px}.preloader-log{font-family:var(--font-mono);font-size:clamp(10px,1vw,14px);color:#0f8;text-transform:uppercase;letter-spacing:.2em;opacity:.8;animation:logBlink .1s infinite alternate}@keyframes logBlink{0%{opacity:.8;text-shadow:0 0 5px rgba(0,255,136,.2)}to{opacity:1;text-shadow:0 0 10px rgba(0,255,136,.6)}}.marquee-container{position:fixed;top:50%;left:0;width:100vw;transform:translateY(-50%) rotate(-5deg);z-index:1;pointer-events:none;overflow:hidden;white-space:nowrap;opacity:.15}.marquee-track{display:flex;width:max-content;animation:scrollText 40s linear infinite}.marquee-text{font-family:var(--font-display);font-weight:700;font-size:15vw;color:transparent;-webkit-text-stroke:1px var(--fg);text-transform:uppercase;padding-right:2vw}@keyframes scrollText{0%{transform:translate(0)}to{transform:translate(-50%)}}.hero-section{min-height:100vh;width:100%;position:relative;display:flex;align-items:center;justify-content:center;background-color:var(--bg);overflow:hidden;padding:0}.hero-marquee-bg{position:absolute;top:60%;left:50%;transform:translate(-50%,-50%);width:120vw;display:flex;flex-direction:column;gap:2vh;pointer-events:none}.marquee-track{display:flex;white-space:nowrap;font-family:var(--font-primary);font-weight:700;font-size:clamp(80px,15vw,240px);line-height:1.1;padding:1vh 0;text-transform:uppercase;animation:scrollMarquee 40s linear infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.hero-marquee-bg.bottom-layer{z-index:1}.hero-marquee-bg.bottom-layer .marquee-track{color:var(--fg);opacity:.15;-webkit-text-stroke:0}.hero-marquee-bg.bottom-layer .marquee-track.reverse{animation-direction:reverse;opacity:1}@keyframes scrollMarquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.hero-center-image{position:relative;width:clamp(300px,35vw,600px);aspect-ratio:4 / 5;z-index:0;-webkit-mask-image:linear-gradient(to bottom,black 65%,transparent 100%);mask-image:linear-gradient(to bottom,black 65%,transparent 100%)}.hero-profile-img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%) contrast(.8) brightness(.7);transition:filter .4s ease,transform .4s ease}.hero-center-image:hover .hero-profile-img{filter:grayscale(0%) contrast(1.1) brightness(1);transform:scale(1.03)}.hero-corner{position:absolute;z-index:20;padding:3vw;font-family:var(--font-mono);font-size:clamp(10px,.9vw,14px);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;line-height:1.6}.hero-logo{display:flex;flex-direction:column;font-family:var(--font-primary);font-size:clamp(24px,3vw,40px);font-weight:700;line-height:.8;color:var(--fg);letter-spacing:-.02em;cursor:pointer;-webkit-user-select:none;user-select:none}.hero-corner p{margin:0 0 .5rem}.hero-corner.top-left{top:0;left:0}.hero-corner.top-right{top:0;right:0;text-align:right}.hero-corner.bottom-left{bottom:0;left:0}.hero-corner.bottom-right{bottom:0;right:0;text-align:right;display:flex;flex-direction:column;gap:1rem}.hero-action-btn{display:inline-block;font-family:var(--font-mono);font-size:clamp(10px,.9vw,14px);text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border-bottom:1px solid transparent;padding-bottom:4px;transition:all .3s ease}.hero-action-btn.primary{color:var(--fg);border-bottom-color:var(--fg)}.hero-action-btn.secondary{color:var(--muted)}.hero-action-btn:hover{opacity:.7}.hero-metadata{position:absolute;top:15vh;right:5vw;text-align:right;font-family:var(--font-mono);font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:5px;text-transform:uppercase;letter-spacing:.1em}.space-invaders-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000;z-index:9999;display:flex;flex-direction:column;overflow:hidden;font-family:"Press Start 2P",monospace;color:#fff}.game-canvas{flex-grow:1;display:block}.space-invaders-header{position:absolute;top:20px;left:0;width:100%;padding:0 50px;display:flex;justify-content:space-between;align-items:flex-start;box-sizing:border-box;z-index:10000;pointer-events:none}.score-block{display:flex;flex-direction:column;gap:15px;font-size:1.2rem;line-height:1.2}.score-block.center{align-items:center}.close-game-btn{pointer-events:auto;background:transparent;color:#0f8;border:2px solid #00ff88;padding:10px 15px;font-family:"Press Start 2P",monospace;font-size:.8rem;cursor:pointer;transition:all .2s ease}.close-game-btn:hover{background:#0f8;color:#000}.game-over-screen{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:10001;display:flex;flex-direction:column;gap:40px;align-items:center}.game-over-screen h2{color:#f05;font-size:3rem;margin:0;text-shadow:2px 2px 0px #fff}.blink-text{animation:blinker 1s linear infinite}@keyframes blinker{50%{opacity:0}}.return-btn{background:transparent;color:#fff;border:none;font-family:"Press Start 2P",monospace;font-size:1.5rem;cursor:pointer;animation:blinker 1.5s linear infinite}.return-btn:hover{color:#0f8}.work-section{position:relative;width:100%;padding:20vh 5vw;z-index:10;display:flex;flex-direction:column}.project-card{display:grid;grid-template-columns:1fr 1.5fr;align-items:center;gap:6vw;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:10vh;margin-bottom:10vh}.project-image-wrapper{width:100%;aspect-ratio:16 / 9;background-color:var(--bg-warm);overflow:hidden;position:relative}.project-info{flex:1;display:flex;flex-direction:column;gap:1.5rem}.project-title{font-family:var(--font-primary);font-size:clamp(24px,5vw,64px);font-weight:700;color:var(--fg);margin:0;line-height:1.1;text-transform:uppercase;letter-spacing:-.02em}.project-description{font-family:var(--font-primary);font-size:clamp(14px,1.1vw,16px);color:var(--muted);line-height:1.5;max-width:80%}.project-tech{font-family:var(--font-mono);font-size:11px;color:var(--fg);text-transform:uppercase;letter-spacing:.15em;opacity:.6}.project-link{font-family:var(--font-mono);font-size:12px;color:var(--fg);text-decoration:none;text-transform:uppercase;letter-spacing:.1em;margin-top:1rem}.project-link:hover{text-decoration:line-through}@media (max-width: 900px){.project-card,.project-card.reverse{flex-direction:column;gap:3rem}.project-image-wrapper{width:100%;flex:none}}.skills-section{width:100%;min-height:100vh;padding:20vh 5vw;display:flex;flex-direction:column;position:relative;z-index:10}.skills-metadata{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:15vh}.skills-container{display:flex;flex-direction:column;gap:0}.skill-line{display:flex;flex-direction:column;will-change:transform,opacity;margin-bottom:3vh}.skill-line.align-left{align-items:flex-start;padding-left:0}.skill-line.align-right{align-items:flex-end;padding-right:5vw}.skill-title-row{display:flex;align-items:center;line-height:.8}.skill-title{font-family:var(--font-primary);font-size:clamp(30px,8.5vw,120px);font-weight:700;color:var(--fg);text-transform:uppercase;letter-spacing:-.04em;white-space:nowrap}.skill-bracket{font-family:var(--font-mono);font-size:clamp(14px,1.5vw,24px);color:var(--muted);margin-left:2vw;display:inline-flex;align-items:center;letter-spacing:.1em}.skill-tech-list{font-family:var(--font-mono);font-size:clamp(10px,.9vw,14px);color:var(--muted);text-transform:uppercase;letter-spacing:.15em;margin-top:1.5vh;opacity:.7}.skills-footer-text{align-self:flex-end;margin-top:15vh;max-width:400px;font-family:var(--font-primary);font-size:clamp(14px,1vw,16px);color:var(--muted);line-height:1.6;text-align:left}@media (max-width: 900px){.skill-line.align-left,.skill-line.align-right{justify-content:flex-start;padding-left:0;padding-right:0}}.about-section{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20vh 5vw;z-index:10;position:relative}.about-content{max-width:800px;display:flex;flex-direction:column;gap:3vh}.about-line{font-family:var(--font-display);font-weight:500;font-size:clamp(24px,4vw,42px);color:var(--fg);line-height:1.4;will-change:transform,opacity,filter}.highlight{color:var(--accent);font-style:italic}.contact-section{width:100%;min-height:80vh;display:flex;flex-direction:column;justify-content:flex-end;padding:10vh 5vw 0 5vw;z-index:10;position:relative;text-align:left}.contact-preheading{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:2vh}.get-in-touch-massive{font-family:var(--font-display);font-weight:800;font-size:clamp(60px,13vw,250px);color:var(--fg);line-height:.8;letter-spacing:-.02em;text-transform:uppercase;margin:0 0 5vh;width:100%}.contact-bottom-row{width:100%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:5vh;margin-bottom:10vh}.contact-title{font-family:var(--font-primary);font-weight:500;font-size:clamp(16px,2vw,32px);color:var(--fg);margin:0;will-change:transform,opacity}.contact-links{display:flex;gap:3vw;align-items:center;will-change:transform,opacity}.magnetic-btn{background:transparent;border:1px solid var(--accent);color:var(--fg);font-family:var(--font-primary);font-size:14px;font-weight:500;padding:12px 24px;border-radius:4px;cursor:none;transition:background-color .3s ease,color .3s ease;will-change:transform}.magnetic-btn:hover{background-color:var(--accent);color:var(--bg)}.contact-link{font-family:var(--font-primary);font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:4px;cursor:none;transition:color .3s ease}.contact-link:hover{color:var(--fg)}.footer{width:100%;display:grid;grid-template-columns:repeat(12,1fr);align-items:center;padding:4vh 5vw;border-top:1px solid rgba(255,255,255,.1);font-family:var(--font-primary);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.footer-brand{grid-column:span 4}.footer-nav{grid-column:span 4;text-align:center}.time-display{grid-column:span 4;text-align:right;font-family:var(--font-mono)}@media (max-width: 768px){.contact-links{flex-direction:column;gap:20px}.footer{flex-direction:column;gap:15px;text-align:center}}.project-page{width:100%;min-height:100vh;position:relative;z-index:10;padding:5vh 5vw;background:#00000080;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.project-nav{margin-bottom:10vh}.back-link{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-decoration:none;text-transform:uppercase;letter-spacing:.1em}.back-link:hover{color:var(--fg);text-decoration:underline}.project-page-content>*{will-change:transform,opacity;opacity:0}.project-header{margin-bottom:15vh}.project-metadata{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.15em;display:block;margin-bottom:2vh}.project-title-massive{font-family:var(--font-display);font-size:clamp(60px,15vw,250px);font-weight:800;color:var(--fg);margin:0;line-height:.8;letter-spacing:-.02em}.project-tagline{font-family:var(--font-primary);font-size:clamp(16px,1.5vw,24px);color:var(--muted);margin-top:5vh;max-width:60%}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;margin-bottom:15vh}.project-section-title{font-family:var(--font-primary);font-size:24px;font-weight:700;color:var(--fg);margin-bottom:3vh;letter-spacing:-.02em}.project-text{font-family:var(--font-primary);font-size:clamp(14px,1vw,16px);color:var(--muted);line-height:1.6}.project-tech-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1vh;font-family:var(--font-mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.project-features{margin-bottom:15vh}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:5vw}.feature-item{border-top:1px solid rgba(255,255,255,.1);padding-top:3vh}.feature-item h3{font-family:var(--font-mono);font-size:12px;color:var(--fg);margin:0 0 2vh;letter-spacing:.1em}.feature-item p{font-family:var(--font-primary);font-size:14px;color:var(--muted);line-height:1.5}.project-actions{display:flex;gap:4vw;padding-bottom:10vh}.action-btn{font-family:var(--font-mono);font-size:14px;color:var(--fg);text-decoration:none;border-bottom:1px solid var(--fg);padding-bottom:4px;letter-spacing:.1em}.action-btn:hover{opacity:.7}@media (max-width: 900px){.project-grid,.feature-list{grid-template-columns:1fr;gap:5vh}}
