@font-face{font-family:Neotrax;src:url('./fonts/Neotrax.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url('./fonts/Inter-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url('./fonts/Inter-Italic-Variable.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Rajdhani;src:url('./fonts/Rajdhani-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}:root{--bg-dark:oklch(0.92 0.1 293);--bg:oklch(0.96 0.1 293);--bg-light:oklch(1 0.1 293);--text:oklch(0.15 0.2 293);--text-muted:oklch(0.4 0.2 293);--highlight:oklch(1 0.2 293);--primary:oklch(0.4 0.2 293);--secondary:oklch(0.4 0.2 113);--border:oklch(0.6 0.2 293);--border-muted:oklch(0.7 0.2 293);--danger:oklch(0.5 0.2 30);--warning:oklch(0.5 0.2 100);--success:oklch(0.5 0.2 160);--info:oklch(0.5 0.2 260);--html-color:#E34C26;--css-color:#1572B6;--js-color:#F7DF1E;--php-color:#8993BE;--mysql-color:#4479A1;--react-color:#61DAFB;--vite-color:#646CFF;--figma-color:#F24E1E;--no-code-color:#ccc;--header-height:72px}[data-theme=dark]{--bg-dark:oklch(0.08 0.1 293);--bg:oklch(0.15 0.15 293);--bg-light:oklch(0.22 0.18 293);--text:oklch(0.96 0.1 293);--text-muted:oklch(0.78 0.15 293);--highlight:oklch(0.28 0.18 293);--primary:oklch(0.7 0.2 293);--secondary:oklch(0.7 0.2 113);--border:oklch(0.42 0.18 293);--border-muted:oklch(0.35 0.18 293);--danger:oklch(0.65 0.25 30);--warning:oklch(0.8 0.2 100);--success:oklch(0.8 0.2 160);--info:oklch(0.7 0.2 260)}.card,.contact-button,.contact-card,.contact-form,.contact-input,.contact-select,.contact-textarea,.footer,.header,.navbar,.navlink,.service-card,.skill-category,body{transition:background-color .3s ease,color .3s ease,border-color .3s ease}*,::after,::before{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{font-family:Inter,Arial,Helvetica,sans-serif;background-color:var(--bg-dark);color:var(--text-muted);line-height:1.6;overflow-x:hidden}main{padding-top:var(--header-height)}h1{font-family:Neotrax,sans-serif;font-weight:700;color:var(--text);text-transform:uppercase;font-size:4rem}h2{font-family:Rajdhani,sans-serif;font-weight:700;color:var(--text);font-size:2rem}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:Inter,Arial,Helvetica,sans-serif;cursor:pointer;border:none;background:0 0}.theme-toggle{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;margin-right:1rem}.theme-toggle:hover{transform:rotate(20deg)}.theme-toggle:active{transform:scale(.95) rotate(20deg)}.theme-toggle svg{position:absolute;width:24px;height:24px;color:var(--text);transition:all .3s ease}.sun-icon{opacity:1;transform:rotate(0) scale(1)}.moon-icon{opacity:0;transform:rotate(90deg) scale(0)}[data-theme=dark] .sun-icon{opacity:0;transform:rotate(-90deg) scale(0)}[data-theme=dark] .moon-icon{opacity:1;transform:rotate(0) scale(1)}.header{width:100%;min-height:72px;padding:.7em 1em;background-color:var(--bg-light);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;z-index:100}.header .logo{font-family:Neotrax,sans-serif;font-size:1.2rem;color:var(--text)}.header-controls{display:flex;align-items:center;gap:1rem}.main-nav{display:flex;align-items:center;justify-content:space-between}.navbar{display:none;list-style:none}.main-nav .navbar{position:fixed;top:var(--header-height,72px);left:0;right:0;width:100%;min-height:calc(100dvh - var(--header-height,72px));padding:3rem 1.5rem;background-color:var(--bg);border-top:1px solid var(--border-muted);box-shadow:0 16px 40px rgba(0,0,0,.25);z-index:90;flex-direction:column;align-items:center;justify-content:flex-start;gap:1.5rem}.main-nav .navbar.open{display:flex}.main-nav .navbar .navlink{font-size:1.2rem;font-weight:600;opacity:.85}.hamburger{display:flex;flex-direction:column;gap:6px;width:32px;height:32px;background:0 0;border:none;align-items:center;justify-content:center;z-index:120}.hamburger span{display:block;width:24px;height:3px;background-color:var(--text);border-radius:2px;transition:.3s}.navlink{padding:0;text-decoration:none;color:var(--text-muted);opacity:1;font-size:1rem;font-weight:500;display:inline-block;border-left:2px solid transparent;transition:.2s ease}.navlink:hover{color:var(--text);opacity:100%;transition:opacity 250ms ease}.navlink-underline{position:relative;padding-bottom:.25rem}.navlink-underline::after{content:"";position:absolute;width:100%;height:.12rem;bottom:0;left:0;background-color:var(--border);transform:scaleX(0);transform-origin:left;transition:transform 250ms ease}.navlink-underline:hover::after{transform:scaleX(1)}.footer{width:100%;padding:1em 1.5em;background-color:var(--bg-light);border-top:1px solid var(--border-muted);display:flex;flex-direction:column;justify-content:space-between;align-items:center}.footer-links{display:flex;align-items:center;justify-content:space-between}.footer .logo{font-family:Neotrax,sans-serif;font-size:1.5rem;color:var(--text)}.footer-socials{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.5rem}.footer-copy{font-size:.875rem;color:var(--text-muted);opacity:1}.socials-list{list-style:none;display:flex;align-items:center;gap:1rem}.socials-list li{display:flex;margin:0;padding:0}.social-link{display:inline-block;transition:transform .2s ease-in-out}.social-icon{width:1.5rem;height:1.5rem;filter:brightness(0) saturate(100%) invert(22%) sepia(77%) saturate(2613%) hue-rotate(250deg) brightness(98%) contrast(102%);transition:filter .3s ease,transform .2s ease-in-out}[data-theme=dark] .social-icon{filter:brightness(0) saturate(100%) invert(96%) sepia(6%) saturate(1500%) hue-rotate(250deg) brightness(105%) contrast(96%)}.social-link:hover .social-icon{transform:scale(1.1);filter:brightness(1.2)}[data-theme=dark] .social-link:hover .social-icon{filter:brightness(0) saturate(100%) invert(96%) sepia(6%) saturate(1500%) hue-rotate(250deg) brightness(120%) contrast(96%)}.page-section{width:100%;min-height:auto;height:auto;padding:clamp(2.5rem,4vw,4rem) clamp(1.5rem,6vw,5rem);background-color:var(--bg-dark);display:grid;grid-template-rows:auto 1fr;align-items:start;text-align:left;scroll-margin-top:90px}.section-balanced{min-height:clamp(520px,60vh,680px)}.section-content{width:100%;max-width:1200px;margin-inline:auto}.section-content-small{max-width:760px}.section-balanced .section-content{align-self:start;padding-top:clamp(1rem,4vh,3rem)}.section-title{width:fit-content;margin:0 0 clamp(1.25rem,2.5vw,2rem);padding:.35rem .8rem;background-color:var(--bg);border:1px solid var(--border);font-family:Rajdhani,sans-serif;font-weight:700;display:flex;align-self:flex-start;color:var(--text);text-transform:uppercase;font-size:clamp(1.8rem, 4vw, 2.8rem);line-height:1}#hero-section{width:100%;min-height:100vh;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;text-align:center;padding:2.5em}.hero-kicker{font-family:Rajdhani,sans-serif;font-size:1rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.12em}#hero-section .hero-name{font-family:Neotrax,sans-serif;font-weight:700;color:var(--text);text-transform:uppercase;font-size:clamp(2.5rem, 8vw, 4rem)}#hero-section .tagline{max-width:900px;font-size:clamp(1.5rem, 4vw, 2.5rem);color:var(--text);font-weight:700;line-height:1.1}.hero-subtitle{max-width:720px;font-size:1rem;color:var(--text-muted)}.hero-actions{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}#hero-section .button{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.2rem;border-radius:4px;font-family:Rajdhani,sans-serif;font-weight:700;text-transform:uppercase;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}#hero-section .button:hover{transform:translateY(-2px)}#hero-section .button-primary{background-color:var(--primary);color:var(--highlight);border:2px solid var(--primary)}#hero-section .button-secondary{background-color:transparent;color:var(--text);border:2px solid var(--border)}#hero-section .button-secondary:hover{background-color:var(--bg);border-color:var(--primary)}#hero-section .hero-highlights{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1rem;list-style:none}#hero-section .hero-highlights li{padding:.4rem .75rem;background-color:var(--bg);color:var(--text-muted);border:2px solid var(--border-muted);border-radius:999px;font-size:.85rem}#about-section .about-content{height:auto;display:block}#about-section .about-text{max-width:760px;text-align:left;line-height:1.8}#services-section .services-content{align-self:start}#services-section .section-intro{max-width:760px;margin-bottom:2rem;color:var(--text-muted);font-size:1rem;line-height:1.7}.services-grid{display:grid;grid-template-columns:1fr;gap:1.2rem;width:100%}.service-card{display:flex;flex-direction:column;min-height:320px;gap:1rem;padding:1.25rem;background-color:var(--bg);border:1px solid var(--border-muted);border-radius:8px}.service-title{font-family:Rajdhani,sans-serif;font-size:1.5rem;font-weight:700;color:var(--text);text-transform:uppercase}.service-description{color:var(--text-muted);font-size:.95rem}.service-list{display:flex;flex-direction:column;gap:.4rem;padding-left:1.2rem;color:var(--text-muted);font-size:.9rem}.service-list li::marker{color:var(--primary)}#projects-section .projects-content{width:100%;display:block}.projects-grid{display:grid;grid-template-columns:1fr;width:100%;gap:1.2rem}.card{display:flex;flex-direction:column;width:100%;height:100%;gap:1rem;padding:1rem;background-color:var(--bg);border:1px solid var(--border-muted);border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.1);touch-action:manipulation;overflow:hidden}.card--not-available{box-shadow:none;background-color:rgba(247,80,70,.2);border-color:#f75046}.card-thumbnail{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center;border:var(--border-muted) 1px solid;border-radius:4px}.card--not-available .card-thumbnail{filter:grayscale(100%) opacity(.7)}.card-text{display:flex;flex-direction:column;gap:.5rem}.badge{width:fit-content;padding:.25rem .6rem;border-radius:999px;font-family:Rajdhani,sans-serif;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border-muted)}.badge--progress{color:#052e6f;background-color:#d9e8ff;border-color:#0559d2}.badge--done{color:#064e26;background-color:#ddf8e8;border-color:#008237}.badge--wip{color:#4a3500;background-color:#fff0b8;border-color:#806000}[data-theme=dark] .badge--progress{color:#dceaff;background-color:#12366e;border-color:#5c9eff}[data-theme=dark] .badge--done{color:#d8ffe9;background-color:#12472a;border-color:#00d97e}[data-theme=dark] .badge--wip{color:#fff2bf;background-color:#4a3500;border-color:#ffb700}.project-header{display:flex;flex-direction:column;gap:.6rem}.project-title{font-family:Rajdhani,sans-serif;font-weight:700;color:var(--text);text-transform:uppercase;line-height:1.1}.project-description{font-size:.85rem;color:var(--text-muted);line-height:1.6}.project-details{display:flex;flex-direction:column;gap:.5rem;padding-left:1.1rem;margin-top:.5rem;color:var(--text-muted);font-size:.8rem;line-height:1.5}.project-details li::marker{color:var(--primary)}.project-details strong{color:var(--text)}.card-status-btn{margin-top:auto;display:flex;flex-direction:column;gap:.75rem}.tags ul{display:flex;flex-direction:row;gap:.5rem;padding:0;list-style:none}.tags li{padding:0 .5rem;border-radius:4px}.html-tag{background-color:var(--html-color);color:#000}.css-tag{background-color:var(--css-color);color:#fff}.js-tag{background-color:var(--js-color);color:#000}.figma-tag{background-color:var(--figma-color);color:#fff}.no-code-tag,.super-so-tag{background-color:var(--no-code-color);color:#000}.card-action{color:var(--text);font-family:Rajdhani,sans-serif;font-weight:700;font-size:1em;padding:.5rem 1rem;background-color:var(--bg-light);text-align:center;border:2px solid var(--border-muted);border-radius:4px}.card-action:hover{background-color:var(--bg-dark);border:2px solid var(--border);transition:background-color .3s ease;cursor:pointer}.card-action:active{background-color:var(--bg);color:var(--text-muted);transform:scale(.98);transition:transform .2s ease,background-color .2s ease,color .2s ease}.card-action--disabled{background-color:#ffd8d5;color:#7a140f;border:2px solid #ba0d01;opacity:1}[data-theme=dark] .card-action--disabled{background-color:#4a1714;color:#ffd8d5;border-color:#ff4136}.card-action--disabled:hover{background-color:rgba(247,80,70,.2);border:2px solid #f75046;cursor:not-allowed}.card-action--disabled:active{background-color:#f75046;color:#fff;transform:none}#skills-section .skills-content{width:100%;display:block}.skills-categories{display:grid;grid-template-columns:1fr;gap:1.2rem;width:100%}.skill-category{display:flex;flex-direction:column;gap:1rem;min-height:260px;padding:1.25rem;background-color:var(--bg);border:1px solid var(--border-muted);border-radius:8px;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.skill-category-title{font-family:Rajdhani,sans-serif;font-size:1.5rem;font-weight:700;color:var(--text);text-transform:uppercase;line-height:1.1}.skill-category-description{color:var(--text-muted);font-size:.95rem;line-height:1.6}.skill-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto;list-style:none}.skill-tags li{padding:.35rem .7rem;background-color:var(--bg-light);color:var(--text-muted);border:1px solid var(--border-muted);border-radius:999px;font-size:.85rem;font-weight:500}.skill-category:hover{transform:translateY(-4px);border-color:var(--border);box-shadow:0 8px 24px rgba(0,0,0,.15)}[data-theme=dark] .skill-category:hover{box-shadow:0 8px 24px rgba(0,0,0,.4)}#contact-section .contact-content{width:100%;display:grid;grid-template-columns:1fr;gap:2.5rem}.contact-info{display:flex;flex-direction:column;gap:1.5rem}.contact-kicker{font-family:Rajdhani,sans-serif;font-size:1rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.08em}.contact-text{max-width:720px;color:var(--text-muted);font-size:1.1rem;line-height:1.7}.contact-cards{display:grid;grid-template-columns:1fr;gap:1rem}.contact-card{padding:1.25rem;background-color:var(--bg);border:1px solid var(--border-muted);border-radius:8px;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.contact-card:hover{transform:translateY(-4px);border-color:var(--border);box-shadow:0 8px 24px rgba(0,0,0,.15)}[data-theme=dark] .contact-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.4)}.contact-card-title{margin-bottom:.8rem;font-family:Rajdhani,sans-serif;font-size:1.3rem;font-weight:700;color:var(--text);text-transform:uppercase}.contact-card-list{display:flex;flex-direction:column;gap:.4rem;padding-left:1.1rem;color:var(--text-muted);font-size:.95rem}.contact-card-list li::marker{color:var(--primary)}.contact-methods{display:flex;flex-direction:column;gap:.7rem;color:var(--text-muted);font-size:.95rem}.contact-methods a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.contact-methods a:hover{color:var(--secondary)}.contact-form{display:flex;flex-direction:column;gap:1rem;width:100%;padding:1.25rem;background-color:var(--bg);border:1px solid var(--border-muted);border-radius:8px}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-row{display:grid;grid-template-columns:1fr;gap:1rem}.contact-label{font-family:Rajdhani,sans-serif;font-weight:700;color:var(--text);font-size:1.1rem}.contact-input,.contact-select,.contact-textarea{font-family:Inter,Arial,Helvetica,sans-serif;width:100%;padding:.8rem;font-size:1rem;color:var(--text);background-color:var(--bg-light);border:1px solid var(--border);border-radius:4px}.contact-input::placeholder,.contact-textarea::placeholder{color:var(--text-muted);opacity:.7}.contact-textarea{resize:vertical;min-height:150px}.contact-button{width:100%;padding:.85rem;margin-top:.5rem;font-size:1rem;font-weight:700;color:var(--highlight);background-color:var(--primary);border:2px solid var(--primary);border-radius:4px;cursor:pointer;text-transform:uppercase;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.contact-button:hover{background-color:var(--secondary);border-color:var(--secondary);color:var(--highlight)}.contact-button:active{transform:scale(.98)}@media (max-width:480px){.header{padding:.8rem 1rem}.header .logo{font-size:1rem}.theme-toggle{width:40px;height:40px;margin-right:0}.hamburger{width:40px;height:40px}}@media (min-width:768px){body{font-size:18px}.main-nav .navbar{gap:2rem}.section-title{font-size:2.5rem}#projects-section{height:fit-content}.projects-grid{grid-template-columns:repeat(2,1fr);gap:2rem}.skills-categories{grid-template-columns:repeat(2,1fr);gap:1.5rem}.contact-content{align-items:center;justify-content:center}.contact-text{align-self:start;text-align:left}.form-row{grid-template-columns:repeat(2,1fr)}.contact-cards{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){:root{--header-height:80px}body{font-size:1.25rem}.header{padding:1em 4em;align-items:center}.header .logo{font-size:1.5rem}.navbar{display:flex;flex-direction:row;position:static;width:auto;box-shadow:none;gap:3em;padding:0}.main-nav .navbar{display:flex;position:static;top:auto;left:auto;right:auto;width:auto;min-height:auto;padding:0;background-color:transparent;border-top:none;box-shadow:none;z-index:auto;flex-direction:row;align-items:center;justify-content:center;gap:3em}.navlink{display:flex;align-items:center}.hamburger{display:none}#hero-section{min-height:100vh;padding:0}#hero-section .tagline{font-size:2rem}.section-title{font-size:2.5rem}.projects-grid{grid-template-columns:repeat(3,1fr);gap:3rem}.skills-categories{grid-template-columns:repeat(2,1fr);gap:2rem}#contact-section .contact-content{grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:start;gap:clamp(3rem,6vw,6rem)}#contact-section .contact-info{max-width:620px}#contact-section .contact-form{max-width:520px}.footer{flex-direction:row}.footer-links{flex-direction:row;gap:2rem}.footer .navbar{font-size:1rem;gap:1rem}.footer-socials{flex-direction:row;gap:2rem}.services-grid{grid-template-columns:repeat(3,1fr);gap:2rem}.hero-actions{flex-direction:row}}.skip-link{position:absolute;top:-100px;left:0;background:var(--primary);color:var(--bg-light);padding:.5rem 1rem;text-decoration:none;z-index:1000;font-weight:600;transition:top .3s ease}.skip-link:focus{top:0;outline:2px solid var(--secondary);outline-offset:2px}:focus{outline:0}.card-action:focus,.hamburger:focus,.navlink:focus,.social-link:focus,.theme-toggle:focus{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.contact-input:focus,.contact-select:focus,.contact-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(82,25,166,.1);outline:0}[data-theme=dark] .contact-input:focus,[data-theme=dark] .contact-select:focus,[data-theme=dark] .contact-textarea:focus{box-shadow:0 0 0 3px rgba(166,128,255,.15)}.contact-button:focus{outline:2px solid var(--secondary);outline-offset:2px}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.15);border-color:var(--border)}[data-theme=dark] .card:hover{box-shadow:0 8px 24px rgba(0,0,0,.4)}.card--not-available:hover{transform:none;box-shadow:none;border-color:#f75046}[data-theme=dark] .card--not-available:hover{box-shadow:none}.card:focus-within{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.15);border-color:var(--primary)}.card--not-available:focus-within{transform:none;box-shadow:none;border-color:#f75046}.card-thumbnail{transition:transform .3s ease}.card--not-available .card-thumbnail{transition:none}.card:hover .card-thumbnail{transform:scale(1.05)}.card--not-available:hover .card-thumbnail{transform:none}.hamburger{padding:4px}.hamburger span{transition:all .3s ease;transform-origin:center}.hamburger.active span:first-child{transform:translateY(9px) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.navlink.active{color:var(--text);opacity:100%}.navlink-underline.active::after{transform:scaleX(1);background-color:var(--primary)}.contact-input.error,.contact-select.error,.contact-textarea.error{border-color:var(--danger);background-color:rgba(186,13,1,.05)}[data-theme=dark] .contact-input.error,[data-theme=dark] .contact-select.error,[data-theme=dark] .contact-textarea.error{background-color:rgba(255,65,54,.1)}.error-message{color:var(--danger);font-size:.875rem;margin-top:.25rem;display:block}.contact-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-message{padding:1rem;border-radius:4px;margin-top:1rem;font-weight:500;animation:slideIn .3s ease-out}.form-message--success{background-color:var(--success);color:#fff}.form-message--error{background-color:var(--danger);color:#fff}@keyframes slideIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#hero-section .tagline,.hero-name{animation:fadeIn .5s ease-out}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!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}@media print{.footer,.hamburger,.header,.skip-link,.theme-toggle{display:none!important}body{background:#fff;color:#000}a[href^=http]:after{content:" (" attr(href) ")";font-size:.8em}}