*{box-sizing:border-box;margin:0;padding:0}html{font-size:62.5%;scroll-behavior:smooth}:root{--space-xxs:.4rem;--space-xs:.8rem;--space-sm:1.6rem;--space-md:2.4rem;--space-lg:3.2rem;--space-xl:4rem;--space-xxl:4.8rem;--space-xxxl:6.4rem;--line-height-text:1.6;--line-height-heading:1.3;--paragraph-max-width:65ch;--transition-fast:0.2s;--transition-medium:0.3s;--transition-slow:0.5s;--border-radius-sm:.4rem;--border-radius-md:.8rem;--border-radius-lg:1.6rem;--color-primary:#0a0a0a;--color-secondary:#1a1a1a;--color-text:#f8f8f8;--color-text-secondary:#ccc;--color-accent:#e0f7ff;--color-accent-dark:#0077b6;--color-grid:rgba(100,100,100,.15);--bg-projects:rgba(0,40,80,.08);--bg-about:rgba(80,0,40,.08);--bg-contact:rgba(40,80,0,.08);--btn-rainbow:linear-gradient(90deg,#00c0ff 0%,#ffcf00 25%,#fc4f4f 50%,#ffcf00 75%,#00c0ff 100%);--font-weight-normal:400;--font-weight-medium:500;--font-weight-bold:700;--min-font-size:16px;--max-font-size:20px;--min-width:320px;--max-width:2000px;--fluid-typography-ratio:.5vw}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans",sans-serif;color:var(--color-text);background:var(--color-primary);overflow-x:hidden;min-height:100vh;font-size:clamp(var(--min-font-size),calc(var(--min-font-size) + var(--fluid-typography-ratio)),var(--max-font-size));line-height:calc(1.6em + 0.3vw);font-weight:var(--font-weight-normal);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;letter-spacing:.01em}a:focus-visible,button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.nav-wrapper{position:fixed;top:0;width:100%;padding:var(--space-sm) var(--space-md);display:flex;justify-content:space-between;align-items:center;z-index:100;background:rgba(10,10,10,.9);backdrop-filter:blur(1rem)}.nav-links{display:flex;gap:var(--space-md);transition:all var(--transition-medium) ease}.nav-list{list-style:none;display:flex;gap:var(--space-md)}.nav-item{display:inline-block}.nav-link{color:var(--color-text);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--transition-medium);white-space:nowrap;padding:var(--space-xs) var(--space-sm);font-size:clamp(1.4rem,1.2vw+0.8rem,1.8rem);border-radius:var(--border-radius-sm)}.nav-link:hover,.nav-link:focus{color:var(--color-accent);background:rgba(255,255,255,.05)}.menu-toggle{display:none;cursor:pointer;flex-direction:column;justify-content:space-between;width:3rem;height:2.1rem;z-index:101;background:transparent;border:none;padding:0}.menu-bar{display:block;height:.3rem;width:100%;background-color:var(--color-text);border-radius:var(--border-radius-sm);transition:all var(--transition-medium) ease}section{position:relative;min-height:100vh;width:100%;display:flex;overflow:hidden}.hero-section .content{max-width:50rem}.projects-section .content-container{background:var(--bg-projects);margin-left:auto}.about-section .content-container{background:var(--bg-about)}.contact-section .content-container{background:var(--bg-contact);margin-left:auto}.content-container{display:grid;place-content:center;width:50%;padding:var(--space-xxxl);z-index:2;position:relative}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:calc(1.3em + 0.2vw);margin-bottom:var(--space-md);color:var(--color-text)}h1{font-size:clamp(3.2rem,6vw+1rem,6rem);margin-bottom:var(--space-md);line-height:calc(1.2em + 0.2vw);letter-spacing:-.03em}h2{font-size:clamp(2rem,3.2vw+0.5rem,2.6rem);font-weight:var(--font-weight-medium);margin-bottom:var(--space-lg);color:var(--color-text-secondary)}.section-subtitle{font-size:clamp(1.8rem,3.2vw+0.5rem,2.4rem);font-weight:var(--font-weight-medium);margin-bottom:var(--space-lg);color:var(--color-text-secondary)}.section-description{font-size:clamp(1.6rem,1.8vw+0.5rem,1.8rem);line-height:calc(1.6em + 0.3vw);margin-bottom:var(--space-lg);color:var(--color-text);max-width:var(--paragraph-max-width);font-weight:var(--font-weight-normal)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-medium) ease;font-weight:var(--font-weight-medium);font-size:inherit}.content{max-width:60rem;opacity:0;transform:translateY(5rem);transition:all var(--transition-slow) ease;margin-bottom:var(--space-lg)}section.active .content{opacity:1;transform:translateY(0)}.canvas-container,.mobile-canvas-container{width:50%;position:relative;z-index:1}.threejs-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block;z-index:1;opacity:0;transition:opacity 1s ease}.threejs-canvas.active{opacity:1}.mobile-canvas-container{display:none}.content-grid-effect{position:absolute;top:0;left:0;width:100%;height:100%;background-image:repeating-linear-gradient(0deg,transparent,transparent 1.9rem,var(--color-grid) 1.9rem,var(--color-grid) 2rem),repeating-linear-gradient(90deg,transparent,transparent 1.9rem,var(--color-grid) 1.9rem,var(--color-grid) 2rem);mask-image:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%),white 0%,white 15%,transparent 60%);-webkit-mask-image:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%),white 0%,white 15%,transparent 60%);opacity:0;transition:opacity var(--transition-medium) ease;pointer-events:none;z-index:1}.content-container:hover .content-grid-effect{opacity:1}.custom-cursor{position:absolute;width:var(--space-xs);height:var(--space-xs);background-color:rgba(255,255,255,.8);border-radius:50%;pointer-events:none;z-index:3;transform:translate(-50%,-50%);opacity:0;transition:opacity var(--transition-fast) ease}.btn-wrapper{display:flex;justify-content:center;align-items:center;padding-top:var(--space-lg)}.btn-container{display:inline-block;width:18.6rem;height:5.6rem;position:relative}.btn-rainbow{width:100%;height:100%;background-image:var(--btn-rainbow);background-size:200% 100%;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;animation:slidebg 3s linear infinite}.btn-content{width:18rem;height:5rem;background-color:var(--color-primary);border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-text);font-size:1.6rem;font-weight:var(--font-weight-medium);transition:all var(--transition-medium) ease}.btn-container:hover .btn-content,.btn-container:focus .btn-content{background-color:var(--color-secondary);color:var(--color-text)}@keyframes slidebg{to{background-position:200%}}.loading-placeholder{width:100%;height:100%;background:var(--color-secondary)}.skills-carousel-container{position:relative;width:30rem;height:30rem;perspective:100rem;margin:var(--space-lg) auto var(--space-xxl);z-index:4}.skills-carousel{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:rotate 20s infinite linear}.skill-item{position:absolute;width:12rem;padding:var(--space-sm);background:#fff;border-radius:var(--border-radius-md);box-shadow:0 .2rem .8rem rgba(0,0,0,.1);display:flex;align-items:center;justify-content:center;transform-origin:center;left:50%;top:50%;color:#010c11;z-index:5;font-size:1.6rem}.skill-item i{font-size:1.6rem;color:#02141d;margin-right:var(--space-xs)}.skill-1{transform:translate(-50%,-50%) rotateY(0deg) translateZ(20rem)}.skill-2{transform:translate(-50%,-50%) rotateY(72deg) translateZ(20rem)}.skill-3{transform:translate(-50%,-50%) rotateY(144deg) translateZ(20rem)}.skill-4{transform:translate(-50%,-50%) rotateY(216deg) translateZ(20rem)}.skill-5{transform:translate(-50%,-50%) rotateY(288deg) translateZ(20rem)}@keyframes rotate{from{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}.page-footer{display:flex;justify-content:center;align-items:center;padding:var(--space-lg);text-align:center;background:var(--color-primary);width:100%;position:relative;z-index:2;font-size:1.6rem}.footer-content{width:100%;max-width:1200px;margin:0 auto}.footer-nav{margin-top:var(--space-sm)}.footer-links{list-style:none;display:flex;justify-content:center;gap:var(--space-md);flex-wrap:wrap}.footer-link{color:var(--color-text-secondary);transition:color var(--transition-medium)}.footer-link:hover{color:var(--color-accent)}.copyright{margin-bottom:var(--space-xs)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:1200px){.content-container{padding:var(--space-xxl)}.section-description{max-width:55ch}}@media (max-width:992px){.content-container{padding:var(--space-xl)}h1{font-size:clamp(3rem,6vw,5rem)}.skills-carousel-container{width:28rem;height:28rem}}@media (max-width:768px){section{flex-direction:column}.content-container,.canvas-container,.mobile-canvas-container{width:100%}.canvas-container{display:none}.mobile-canvas-container{display:block;position:absolute;height:100%;z-index:0;opacity:.5}.content-container{min-height:100vh;padding:var(--space-xxl) var(--space-lg) var(--space-xl);background-color:rgba(10,10,10,.336)}.menu-toggle{display:flex}.nav-links{position:fixed;top:0;right:-100%;width:70%;max-width:30rem;height:100vh;background:rgba(10,10,10,.98);backdrop-filter:blur(1.5rem);flex-direction:column;justify-content:center;align-items:center;padding:var(--space-xl);transition:right var(--transition-medium) ease}.nav-list{flex-direction:column;gap:var(--space-md)}.nav-links.active{right:0}.nav-link{margin:var(--space-sm) 0;font-size:1.8rem;padding:var(--space-sm) var(--space-md)}.menu-toggle.active .menu-bar:first-child{transform:translateY(.9rem) rotate(45deg)}.menu-toggle.active .menu-bar:nth-child(2){opacity:0}.menu-toggle.active .menu-bar:last-child{transform:translateY(-.9rem) rotate(-45deg)}.content{margin-bottom:var(--space-md)}.btn-wrapper{padding-top:var(--space-md)}.skills-carousel-container{margin:var(--space-lg) auto;width:25rem;height:25rem}.section-description{max-width:100%;line-height:1.6em}h1{font-size:clamp(3.2rem,8vw,4.5rem);line-height:1.2;margin-bottom:var(--space-md)}h2,.section-subtitle{font-size:clamp(2rem,4vw,2.4rem);line-height:1.4}body{line-height:1.6em}}@media (max-width:576px){.content-container{padding:var(--space-xl) var(--space-md) var(--space-lg)}h1{font-size:clamp(3rem,9vw,4rem)}h2,.section-subtitle{font-size:clamp(1.8rem,4.5vw,2.2rem)}.section-description{font-size:1.6rem}.btn-container{width:16rem;height:5rem}.btn-content{width:98%;height:4.5rem}.skill-item{width:10rem;padding:var(--space-xs);font-size:1.4rem}.nav-links{width:80%}}@media (max-width:400px){.content-container{padding:var(--space-xl) var(--space-sm) var(--space-lg)}h1{margin-bottom:var(--space-sm);font-size:clamp(2.8rem,9vw,3.8rem)}.btn-container{width:100%}}strong,b{font-weight:var(--font-weight-bold)}small,.text-small{font-size:.85em;line-height:calc(1.6em + 0.2vw)}