:root{--sidebar-bg:#282828;--main-bg:#eaeef4;--main-bg-gradient:linear-gradient(145deg,#f5f5f5,#e4e8ef 50%,#f5f5f5);--card-bg:#fff;--white:#fff;--text-color-primary:#1a1a2e;--text-color-secondary:#5c6578;--heading-color:#1e2330;--accent-blue:#fd7f2c;--accent-blue-dark:#c45f1c;--danger-red:#e74c3c;--border-color:#4650641a;--border-color-hover:#46506433;--overlay-bg:#00000080;--hover-bg:#dde2e9;--hover-bgs:#c45f1c4f;--accent-green-rgb:76,175,80;--danger-red-rgb:244,67,54;--accent-blue-rgb:63,81,181;--accent-green-low-opacity:rgba(var(--accent-green-rgb),0.1);--danger-red-low-opacity:rgba(var(--danger-red-rgb),0.1);--accent-blue-low-opacity:rgba(var(--accent-blue-rgb),0.1);--accent-blue-hover:#e56b1f;--accent-green:#174143;--income-blue:#3182ce;--expense-red:var(--danger-red);--success-green:#22c55e;--warning-amber:#f59e0b;--chart-grid:#4650640f;--chart-axis:#46506466;--status-pending-bg:#fef3c7;--status-pending-text:#92400e;--status-success-bg:#d1fae5;--status-success-text:#065f46;--status-info-bg:#dbeafe;--status-info-text:#1e40af;--glass-bg-from:#ffffffd1;--glass-bg-to:#f5f8fca6;--glass-border:#46506e14;--glass-border-strong:#46506e1f;--glass-inset:#fffffff2;--glass-hover:#46506e0a;--glass-shadow:0 2px 16px #46506e14,0 1px 4px #46506e0f;--glass-shadow-hover:0 4px 24px #46506e1f,0 2px 8px #46506e14;--scrollbar-thumb:var(--accent-blue);--scrollbar-thumb-hover:var(--accent-blue-hover);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2.5rem;--border-radius-sm:5px;--border-radius-md:5px;--border-radius-lg:5px;--font-size-base:1rem;--font-weight-regular:400;--font-weight-bold:600;--font-family:"Inter",sans-serif;--sidebar-width-expanded:200px;--sidebar-width-collapsed:60px;--sidebar-text:#ffffffd9;--sidebar-text-muted:#ffffff73;--sidebar-hover-bg:#ffffff14;--sidebar-active-bg:linear-gradient(135deg,#fd7f2c2e,#fd7f2c14);--sidebar-active-accent:#fd7f2c;--sidebar-icon-color:#ffffff80;--sidebar-divider:#ffffff0f;--link-bg-hover:var(--sidebar-hover-bg);--active-link-bg:#fd7f2c33;--active-link-text:var(--accent-blue);--padding-collapsed:10px;--global-padding:1rem;--link-border-radius:5px}.dark-theme,body.dark-theme,html.dark-theme{--main-bg:#333;--main-bg-gradient:#292828;--card-bg:#333;--hover-bg:#2a2a2a;--text-color-primary:#f7f7f7;--text-color-secondary:#a0a0c0;--heading-color:#f7f7f7;--border-color:#ffffff1a;--border-color-hover:#fff3;--overlay-bg:#000000b3;--sidebar-bg:#333;--success-green:#4ade80;--warning-amber:#fbbf24;--chart-grid:#ffffff0f;--chart-axis:#ffffff59;--status-pending-bg:#f59e0b26;--status-pending-text:#fbbf24;--status-success-bg:#22c55e26;--status-success-text:#4ade80;--status-info-bg:#3b82f626;--status-info-text:#93c5fd;--glass-bg-from:#ffffff1a;--glass-bg-to:#ffffff0d;--glass-border:#ffffff26;--glass-border-strong:#fff3;--glass-inset:#ffffff1a;--glass-hover:#ffffff0d;--glass-shadow:0 2px 16px #00000040,0 1px 4px #00000026;--glass-shadow-hover:0 4px 24px #00000059,0 2px 8px #0003;--scrollbar-thumb:var(--accent-blue);--scrollbar-thumb-hover:var(--accent-blue-hover)}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--main-bg-gradient);background-attachment:fixed;color:var(--text-color-primary);font-family:Inter,sans-serif;margin:0;min-height:100vh;padding:0}.app-layout{display:flex;max-height:100vh;min-height:100vh;width:100%}.main-content-wrapper{flex-grow:1;margin-left:calc(var(--sidebar-width-expanded) + 10px);overflow-x:hidden;overflow-y:auto;transition:margin-left .4s cubic-bezier(.4,0,.2,1)}.app-layout.sidebar-collapsed .main-content-wrapper{margin-left:calc(var(--sidebar-width-collapsed) + 10px)}@media (max-width:991px){.app-layout.sidebar-collapsed .main-content-wrapper,.main-content-wrapper{margin-left:0!important}main{padding:5px!important}.mobile-overlay{background-color:initial!important}.main-content{padding-bottom:2rem}.app-layout{padding-bottom:4rem}}.main-content{background-color:var(--main-bg);background-image:radial-gradient(circle at 1px 1px,var(--chart-grid) .7px,#0000 .8px);background-size:4px 4px;box-sizing:border-box;min-height:100%;padding:5px}.main-content>*{background-color:initial!important;background-image:none!important}.mobile-overlay{background-color:var(--overlay-bg);display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:1050}.app-layout.mobile-nav-open .mobile-overlay{display:block}.loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--border-color);border:4px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-blue);height:40px;margin:20px auto;width:40px}*{scrollbar-color:var(--scrollbar-thumb) #0000;scrollbar-width:thin}::-webkit-scrollbar{height:3px;width:3px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.cookie-banner{align-items:center;animation:cookie-slide-up .35s ease-out;background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-md);bottom:1.5rem;box-shadow:var(--glass-shadow-hover);display:flex;gap:1.25rem;left:50%;max-width:680px;padding:.875rem 1.25rem;position:fixed;transform:translateX(-50%);width:calc(100% - 2rem);z-index:9999}.cookie-banner .cookie-banner__text{color:var(--text-color-secondary);flex:1 1;font-size:.8rem;line-height:1.5;margin:0}.cookie-banner .cookie-banner__btn{background:var(--accent-blue);border:none;border-radius:var(--border-radius-sm);color:var(--white);cursor:pointer;flex-shrink:0;font-size:.8rem;font-weight:var(--font-weight-bold);padding:.45rem 1rem;transition:background .2s}.cookie-banner .cookie-banner__btn:hover{background:var(--accent-blue-hover)}@keyframes cookie-slide-up{0%{opacity:0;transform:translateX(-50%) translateY(1rem)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:600px){.cookie-banner{align-items:flex-start;bottom:.75rem;flex-direction:column;gap:.75rem}.cookie-banner__btn{align-self:flex-end}}.portfolio-nav{align-items:center;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:12px;display:flex;height:50px;left:50%;max-width:1300px;position:fixed;top:.5rem;transform:translateX(-50%);transition:all .4s cubic-bezier(.4,0,.2,1);width:95%;z-index:1000}.portfolio-nav.scrolled{background:var(--glass-bg-to);box-shadow:var(--glass-shadow);height:44px;padding:.3rem 0;top:.4rem}.portfolio-nav .nav-container{align-items:center;display:flex;justify-content:space-between;padding:1rem;width:100%}.portfolio-nav .nav-logo{align-items:center;cursor:pointer;display:flex;transition:transform .3s ease}.portfolio-nav .nav-logo:hover{transform:scale(1.05)}.portfolio-nav .nav-logo-img{filter:drop-shadow(0 0 10px var(--accent-blue-low-opacity));height:22px;object-fit:contain;width:auto}.portfolio-nav .nav-actions{align-items:center;display:flex;gap:1.2rem}.portfolio-nav .nav-links-desktop{display:flex;gap:1.2rem}.portfolio-nav .nav-link-btn{background:#0000;border:none;color:var(--text-color-primary);cursor:pointer;font-family:var(--font-family);font-size:.85rem;font-weight:600;letter-spacing:.1em;opacity:.7;text-transform:uppercase;transition:all .3s ease}.portfolio-nav .nav-link-btn:hover{color:var(--accent-blue);opacity:1;transform:translateY(-2px)}.portfolio-nav .nav-link-a{align-items:center;display:inline-flex;text-decoration:none}.portfolio-nav .nav-link-btn--active{color:var(--accent-blue);opacity:1}.portfolio-nav .lang-selector{border-left:1px solid var(--border-color);padding-left:1rem}.portfolio-nav .nav-btn{align-items:center;background:#0000;border:none;border:1px solid var(--border-color);border-radius:12px;color:var(--text-color-primary);cursor:pointer;display:flex;font-family:var(--font-family);font-size:.8rem;font-weight:700;gap:8px;min-height:44px;min-width:44px;padding:8px 16px;transition:all .3s ease}.portfolio-nav .nav-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.portfolio-nav .theme-toggle-btn{align-items:center;background:var(--accent-blue-low-opacity);border:1px solid var(--accent-blue);border-radius:12px;color:var(--accent-blue);cursor:pointer;display:flex;height:44px;justify-content:center;transition:all .3s ease;width:44px}.portfolio-nav .theme-toggle-btn:hover{background:var(--accent-blue);color:var(--white);transform:rotate(15deg)}@media (max-width:991px){.portfolio-nav .nav-links-desktop{display:none}.portfolio-nav{top:1rem;width:95%}}.hero-section-v4{align-items:center;border-radius:0 0 50rem 50rem;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:0;position:relative}.hero-section-v4 .hero-v4-container{align-items:center;display:flex;flex-direction:column;gap:clamp(1rem,3vh,3rem);position:relative;width:100%;z-index:1}.hero-section-v4 .hero-v4-header{align-items:center;display:flex;flex-direction:column;margin-bottom:1rem!important;text-align:center}.hero-section-v4 .hero-v4-pre-name{color:var(--accent-blue);font-family:var(--font-family);font-size:.9rem;font-weight:600;letter-spacing:.4em;margin-bottom:.5rem;opacity:.8;text-transform:uppercase}.hero-section-v4 .hero-v4-name{color:var(--text-color-primary);font-family:var(--font-family);font-size:clamp(1.6rem,5vw,4rem);font-weight:800;letter-spacing:-.06em;line-height:.9;margin-bottom:.1rem!important;text-transform:uppercase}.hero-section-v4 .name-highlight{color:var(--accent-blue);font-weight:800}.hero-section-v4 .hero-v4-role-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:50px;display:inline-block;padding:clamp(6px,1vh,12px) clamp(16px,2vw,32px)}.hero-section-v4 .hero-v4-role-badge h2{color:var(--text-color-primary);font-family:var(--font-family);font-size:.9rem;font-weight:700;letter-spacing:.2em;margin:0;opacity:.9;text-transform:uppercase}.hero-section-v4 .hero-v4-main-visual{align-items:center;display:flex;height:clamp(400px,65vh,850px);justify-content:center;max-width:1600px;perspective:1200px;position:relative;width:100%}.hero-section-v4 .hero-v4-image-container{position:relative;transform:translateZ(80px);width:clamp(260px,25vw,480px);z-index:10}.hero-section-v4 .hero-v4-image-container:before{background:radial-gradient(circle,var(--sidebar-active-accent) 0,#0000 70%);content:"";filter:blur(80px);height:160%;left:50%;opacity:.7;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%) translateZ(-50px);width:160%;z-index:-1}.hero-section-v4 .hero-v4-portrait{display:block;height:100%;margin-bottom:-5rem;object-fit:cover;position:relative;width:100%}.hero-section-v4 .hero-3d-scene{align-items:center;display:flex;height:100%;justify-content:center;perspective:900px;position:relative;transform-style:preserve-3d;width:clamp(260px,25vw,480px);will-change:transform}.hero-section-v4 .orbit-container{left:50%;pointer-events:none;transform:translateX(-50%)}.hero-section-v4 .orbit-container,.hero-section-v4 .orbit-ring{height:100%;position:absolute;top:0;transform-style:preserve-3d;width:100%;will-change:transform}.hero-section-v4 .orbit-ring{animation:ringOrbit 28s linear infinite;left:0}.hero-section-v4 .orbit-icon{height:clamp(36px,3vw,52px);left:50%;margin:clamp(-18px,-1.5vw,-26px) 0 0 clamp(-18px,-1.5vw,-26px);pointer-events:auto;position:absolute;top:50%;transform:rotate(var(--angle)) translateX(clamp(180px,15vw,280px));transform-style:preserve-3d;width:clamp(36px,3vw,52px);will-change:transform}.hero-section-v4 .orbit-counter-spin{animation:counterSpin 28s linear infinite;height:100%;transform-style:preserve-3d;width:100%}.hero-section-v4 .orbit-icon-inner{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-backface-visibility:visible;backface-visibility:visible;background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:var(--border-radius-md);box-shadow:var(--glass-shadow);display:flex;height:100%;justify-content:center;margin-top:1rem!important;padding:6px;transform:rotate(calc(var(--angle)*-1)) rotateX(-75deg);transition:transform .3s ease,box-shadow .3s ease;width:100%}.hero-section-v4 .orbit-icon:hover .orbit-icon-inner{box-shadow:var(--glass-shadow-hover);transform:rotate(calc(var(--angle)*-1)) rotateX(-75deg) scale(1.25)}.hero-section-v4 .orbit-icon-inner img{height:100%;object-fit:contain;width:100%}@media (max-width:991px){.hero-section-v4{align-items:flex-start;min-height:auto;padding-top:70px}.hero-section-v4 .hero-v4-container{gap:.4rem}.hero-section-v4 .hero-v4-main-visual{align-items:center;display:flex;height:360px;justify-content:center}.hero-section-v4 .hero-v4-image-container{width:260px}.hero-section-v4 .hero-v4-image-container:before{filter:blur(40px)!important;opacity:.4!important}.hero-section-v4 .orbit-icon{height:26px;margin:-13px 0 0 -13px;transform:rotate(var(--angle)) translateX(150px);width:26px}.hero-section-v4 .orbit-icon-inner{border-radius:8px;padding:4px}.hero-section-v4 .hero-v4-role-badge,.hero-section-v4 .orbit-icon-inner{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:1px solid var(--border-color)!important}.hero-section-v4 .hero-v4-role-badge{background:var(--card-bg)!important}.hero-section-v4 .orbit-icon:hover .orbit-icon-inner{transform:rotate(calc(var(--angle)*-1)) rotateX(-75deg) scale(1.15)}}@media (max-width:480px){.hero-section-v4 .hero-v4-container{gap:.3rem}.hero-section-v4 .hero-v4-main-visual{height:350px;margin-top:-5px}.hero-section-v4 .hero-v4-name{font-size:1.7rem;margin-bottom:.2rem}.hero-section-v4 .hero-v4-role-badge{margin-bottom:2rem;padding:4px 16px}.hero-section-v4 .hero-v4-role-badge h2{font-size:.75rem;letter-spacing:.12em}.hero-section-v4 .orbit-icon{height:22px;margin:-11px 0 0 -11px;transform:rotate(var(--angle)) translateX(130px);width:22px}.hero-section-v4 .orbit-icon-inner{border-radius:6px;padding:3px}.hero-section-v4 .orbit-icon:hover .orbit-icon-inner{transform:rotate(calc(var(--angle)*-1)) rotateX(-75deg) scale(1.1)}}@keyframes ringOrbit{0%{transform:rotateX(75deg) rotate(0deg)}to{transform:rotateX(75deg) rotate(1turn)}}@keyframes counterSpin{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.services-section{padding:100px 0;position:relative}.services-section .services-grid{grid-row-gap:4rem;grid-column-gap:2rem;column-gap:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin:0 auto;max-width:1700px;padding:0 20px;row-gap:4rem}.services-section .section-header-v3{align-items:center;display:flex;flex-direction:column;margin-bottom:3.5rem;text-align:center;width:100%}.services-section .section-subtitle-v3{color:var(--accent-blue);font-family:var(--font-family);font-size:.85rem;font-weight:800;letter-spacing:.25em;margin-bottom:.5rem}.services-section .section-title-v3{color:var(--heading-color);font-family:var(--font-family);font-size:clamp(1.6rem,5vw,3.5rem);font-weight:800;letter-spacing:-.01em;margin:0;overflow-wrap:normal;word-break:keep-all}.services-section .services-impact-container{margin:-1rem auto 3.5rem;max-width:800px;padding:0 20px;text-align:center}.services-section .services-impact-text{color:var(--text-color-secondary);font-family:var(--font-family);font-size:1.15rem;line-height:1.6}.services-section .services-impact-text strong{color:var(--accent-blue);font-weight:800}.services-section .impact-highlight{color:var(--text-color-primary);display:block;font-weight:600;margin-top:.5rem;opacity:.9}.services-section .service-card-v4{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:18px;display:flex;flex-direction:column;gap:.6rem;height:100%;overflow:hidden;padding:1rem 1.25rem;position:relative;transition:all .4s cubic-bezier(.22,1,.36,1)}.services-section .service-card-v4:hover{border-color:var(--accent-blue);box-shadow:var(--glass-shadow-hover);transform:translateY(-5px)}.services-section .service-icon-wrapper{align-items:center;color:var(--accent-blue);display:flex;height:38px;justify-content:center;position:relative;width:38px;z-index:1}.services-section .service-icon-bg{background:var(--accent-blue);border-radius:10px;inset:0;opacity:.1;position:absolute;transform:rotate(-10deg);transition:transform .4s ease}.services-section .service-card-v4:hover .service-icon-bg{opacity:.15;transform:rotate(0deg) scale(1.1)}.services-section .service-tech-tag{align-items:center;color:var(--accent-blue);display:flex;font-family:var(--font-family);font-size:.62rem;font-weight:700;gap:6px;margin-bottom:.2rem;text-transform:uppercase}.services-section .service-content h3{color:var(--text-color-primary);font-family:var(--font-family);font-size:1.1rem;font-weight:700;margin:0 0 .3rem}.services-section .service-content p{color:var(--text-color-secondary);font-size:.85rem;line-height:1.4;margin:0}.services-section .service-card-glow{background:radial-gradient(circle,var(--accent-blue) 0,#0000 70%);bottom:-20%;filter:blur(40px);height:150px;opacity:.03;pointer-events:none;position:absolute;right:-10%;transition:opacity .4s ease;width:150px}.services-section .service-card-v4:hover .service-card-glow{opacity:.08}@media (max-width:768px){.services-section{padding:60px 0}.services-section .services-grid{grid-template-columns:1fr;row-gap:3rem}.services-section .service-card-v4{padding:1.25rem}.services-section .service-content h3{font-size:1.1rem}.services-section .services-impact-text{font-size:1rem}}.projects-section{padding:100px 0}.projects-section .section-header-v3{align-items:center;display:flex;flex-direction:column;margin-bottom:4rem;text-align:center}.projects-section .section-subtitle-v3{color:var(--accent-blue);font-family:var(--font-family);font-size:.85rem;font-weight:800;letter-spacing:.25em;margin-bottom:.5rem}.projects-section .section-title-v3{color:var(--heading-color);font-family:var(--font-family);font-size:clamp(2.2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.01em;margin:0}.projects-section .projects-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(4,1fr);margin:0 auto;max-width:1700px;padding:0 20px}.projects-section .project-card-v4{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;transition:transform .4s cubic-bezier(.4,0,.2,1),border-color .4s ease;will-change:transform}.projects-section .project-image-wrapper{aspect-ratio:16/10;background:var(--sidebar-bg);overflow:hidden;position:relative;z-index:1}.projects-section .browser-mockup{border-radius:12px 12px 0 0;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.projects-section .browser-header{align-items:center;background:var(--hover-bg);display:flex;gap:10px;height:24px;padding:0 10px}.projects-section .browser-header .dots{display:flex;gap:4px}.projects-section .browser-header .dots span{background:var(--glass-border-strong);border-radius:50%;height:6px;width:6px}.projects-section .url-bar{align-items:center;background:var(--glass-hover);border-radius:4px;color:var(--sidebar-text-muted);display:flex;flex-grow:1;font-family:monospace;font-size:8px;height:14px;overflow:hidden;padding:0 8px}.projects-section .browser-content{background:var(--card-bg);flex-grow:1;overflow:hidden;position:relative}.projects-section .mockup-static-img{height:100%;left:0;object-fit:cover;position:absolute;top:0;transition:opacity .5s ease;width:100%;z-index:1}.projects-section .mockup-static-img.fade-out{opacity:0;pointer-events:none}.projects-section .mockup-iframe{background:var(--card-bg);border:none;height:400%;left:0;pointer-events:none;position:absolute;top:0;transform:scale(.25);transform-origin:top left;width:400%;will-change:transform;z-index:0}.projects-section .project-card-v4:hover .mockup-iframe{transform:scale(.26);transition:transform .6s cubic-bezier(.4,0,.2,1)}.projects-section .project-overlay{align-items:center;background:var(--overlay-bg);display:flex;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:all .4s ease;width:100%;z-index:100}.projects-section .overlay-actions{display:flex;gap:16px;transform:translateY(20px);transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.projects-section .project-card-v4:hover .overlay-actions{transform:translateY(0)}.projects-section .action-btn{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;height:44px;justify-content:center;overflow:hidden;pointer-events:auto;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);width:44px}.projects-section .action-btn.preview-btn{background:linear-gradient(135deg,var(--accent-blue) 0,var(--accent-blue-dark) 100%);box-shadow:var(--glass-shadow);color:var(--white)}.action-btn.visit-btn{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;box-shadow:0 8px 20px #0003;color:#fff}.action-btn:hover{transform:translateY(-5px) scale(1.05)}.action-btn.preview-btn:hover{background:linear-gradient(135deg,var(--accent-blue-hover) 0,var(--accent-blue) 100%);box-shadow:0 12px 28px #fd7f2c80}.action-btn.visit-btn:hover{background:#fff3;border-color:#fff6;box-shadow:0 12px 28px #0006}.action-btn:after{background:#fff3;content:"";height:200%;left:-60%;position:absolute;top:-50%;transform:rotate(30deg);transition:all .6s ease;width:20%}.action-btn:hover:after{left:140%}.project-card-v4:hover .project-overlay{opacity:1;pointer-events:auto}.project-card-v4:hover .overlay-actions{transform:translateY(0)}.project-info-v4{display:flex;flex-direction:column;flex-grow:1;padding:1.25rem}.project-header-row{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.6rem}.project-info-v4 h3{color:var(--text-color-primary);font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700;margin:0}.preview-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000d9;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9999}.preview-modal-content{background:var(--main-bg);border:1px solid var(--glass-border);border-radius:24px;box-shadow:0 30px 60px #00000080;display:flex;flex-direction:column;height:90vh;max-width:1400px;overflow:hidden;width:100%}.preview-modal-header{align-items:center;background:var(--glass-bg-from);border-bottom:1px solid var(--glass-border);display:flex;justify-content:space-between;padding:15px 25px}.preview-info h3{color:var(--text-color-primary);font-family:Outfit,sans-serif;font-size:1.1rem;margin:0}.preview-info a{color:var(--accent-blue);font-size:.75rem;opacity:.8;text-decoration:none}.preview-controls{background:#0000000d;border-radius:12px;display:flex;gap:4px;padding:4px}.preview-controls button{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-color-secondary);cursor:pointer;display:flex;padding:8px 12px;transition:all .2s ease}.preview-controls button.active{background:#fff;box-shadow:0 4px 10px #0000001a;color:var(--accent-blue)}.preview-close{align-items:center;background:#ff00001a;border:none;border-radius:50%;color:#ff4d4d;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.preview-close:hover{background:#ff4d4d;color:#fff}.preview-iframe-container{align-items:flex-start;background:#f0f0f0;display:flex;flex-grow:1;justify-content:center;overflow-y:auto;padding:20px;transition:all .5s cubic-bezier(.4,0,.2,1)}.preview-iframe-container iframe{background:#fff;border-radius:12px;box-shadow:0 20px 50px #00000026;height:100%;transition:all .5s cubic-bezier(.4,0,.2,1);width:100%}.preview-iframe-container.tablet iframe{height:90%;max-width:768px}.preview-iframe-container.mobile iframe{height:85%;max-width:375px}@media (max-width:768px){.preview-modal-content{border-radius:0;height:100vh}.preview-controls{display:none}.preview-modal-header{padding:10px 15px}}.project-tech-minimal{display:flex;flex-wrap:wrap;gap:4px}.project-tech-minimal span{background:#0096ff1a;border-radius:4px;color:var(--accent-blue);font-size:.6rem;font-weight:800;padding:2px 8px;text-transform:uppercase}.project-info-v4 p{color:var(--text-color-secondary);font-size:.85rem;line-height:1.4;margin:0}@media (max-width:1200px){.projects-section .projects-grid{gap:1.25rem;grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.projects-section{padding:60px 0}.projects-section .section-header-v3{margin-bottom:2rem}.projects-section .projects-grid{gap:1rem;grid-template-columns:repeat(2,1fr)}.projects-section .project-header-row{flex-direction:column;gap:.5rem}}@media (max-width:480px){.projects-section .projects-grid{gap:1rem;grid-template-columns:1fr}.projects-section .project-info-v4{padding:1rem}.projects-section .project-info-v4 h3{font-size:1rem}}.skills-section{--term-bg:#0d1117;--term-header:#ffffff08;--term-border:#38bdf814;--term-text:#e2e8f0;--term-prompt:#4ade80;--term-comment:#ffffffd9;--term-dot-opacity:1;--term-scanline:rgba(0,0,0,.015);padding:100px 0;position:relative}body.light-theme .skills-section{--term-bg:var(--white);--term-header:#00000008;--term-border:#00000014;--term-text:var(--text-color-primary);--term-prompt:var(--accent-blue);--term-comment:#0006;--term-scanline:rgba(0,0,0,.005)}.skills-section .skills-header{align-items:center;display:flex;flex-direction:column;margin-bottom:3rem;text-align:center}.skills-section .skills-subtitle{color:var(--accent-blue);font-family:var(--font-family);font-size:.85rem;font-weight:800;letter-spacing:.25em;margin-bottom:.5rem}.skills-section .skills-title{color:var(--heading-color);font-family:var(--font-family);font-size:clamp(2.2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.01em;margin:0}.skills-section .terminal-window{background:var(--term-bg);border:1px solid var(--term-border);border-radius:16px;box-shadow:var(--glass-shadow);font-family:var(--font-family);overflow:hidden;position:relative;transition:background .4s ease,border-color .4s ease}.skills-section .terminal-scanlines{background:repeating-linear-gradient(0deg,#0000,#0000 2px,var(--term-scanline) 2px,var(--term-scanline) 4px);border-radius:inherit;bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.skills-section .terminal-header{align-items:center;background:var(--term-header);border-bottom:1px solid var(--term-border);display:flex;gap:16px;padding:14px 20px}.skills-section .terminal-dots{display:flex;gap:8px}.skills-section .terminal-dot{border-radius:50%;height:12px;transition:filter .3s ease;width:12px}.skills-section .terminal-dot:hover{filter:brightness(1.3)}.skills-section .terminal-dot.red{background:var(--danger-red)}.skills-section .terminal-dot.yellow{background:var(--warning-amber)}.skills-section .terminal-dot.green{background:var(--success-green)}.skills-section .terminal-title{color:var(--term-comment);font-size:.75rem;font-weight:500;letter-spacing:.02em}.skills-section .terminal-body{padding:28px 28px 20px}.skills-section .terminal-welcome{display:flex;flex-direction:column;line-height:1.7;margin-bottom:28px}.skills-section .terminal-comment{color:var(--term-comment);font-size:.78rem;white-space:pre}.skills-section .terminal-block{margin-bottom:24px}.skills-section .terminal-command-line{align-items:center;display:flex;font-size:.85rem;gap:10px;margin-bottom:14px}.skills-section .terminal-prompt{color:var(--term-prompt);font-size:1rem;font-weight:700;text-shadow:0 0 10px var(--accent-blue-low-opacity)}.skills-section .terminal-cmd{color:var(--term-text);font-weight:600}.skills-section .terminal-flag{color:var(--warning-amber)}.skills-section .terminal-arg{color:var(--accent-blue);font-weight:500}.skills-section .terminal-output{display:flex;flex-wrap:wrap;gap:10px;padding-left:24px}.terminal-skill-chip{align-items:center;background:var(--term-header);border:1px solid var(--term-border);border-radius:10px;cursor:default;display:flex;gap:10px;overflow:hidden;padding:8px 16px;position:relative;transition:border-color .35s ease,background .35s ease,transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;will-change:transform}.terminal-skill-chip:before{background:radial-gradient(circle at 30% 50%,var(--skill-color),#0000 70%);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .35s ease;z-index:0}.terminal-skill-chip:hover{background:var(--term-header);border-color:var(--skill-color);box-shadow:0 4px 25px -4px var(--skill-color)}.terminal-skill-chip:hover:before{opacity:.1}.terminal-skill-icon{align-items:center;color:var(--skill-color);display:flex;font-size:1.1rem;justify-content:center;position:relative;transition:transform .3s ease,filter .3s ease;z-index:1}.terminal-skill-icon svg{height:18px;width:18px}.terminal-skill-chip:hover .terminal-skill-icon{filter:drop-shadow(0 0 6px var(--skill-color));transform:scale(1.15)}.terminal-skill-name{color:var(--term-text);font-family:Outfit,sans-serif;font-size:.8rem;font-weight:500;position:relative;white-space:nowrap;z-index:1}.terminal-cursor-line{align-items:center;display:flex;font-size:.85rem;gap:10px;margin-top:8px}.terminal-cursor{animation:terminalBlink 1.2s step-end infinite;background:var(--term-prompt);border-radius:1px;box-shadow:0 0 8px #4ade8066;display:inline-block;height:18px;width:8px}@keyframes terminalBlink{0%,to{opacity:1}50%{opacity:0}}@media (max-width:768px){.skills-section{padding:60px 0}.skills-header{margin-bottom:2rem}.terminal-body{padding:20px 16px 16px}.terminal-output{gap:8px;padding-left:16px}.terminal-skill-chip{padding:6px 12px}.terminal-skill-name{font-size:.75rem}.terminal-command-line{font-size:.78rem}.terminal-comment{font-size:.7rem}}@media (max-width:480px){.terminal-header{padding:10px 14px}.terminal-dot{height:10px;width:10px}.terminal-body{padding:16px 12px}.terminal-output{gap:6px;padding-left:8px}.terminal-skill-chip{gap:6px;padding:5px 10px}.terminal-skill-name{font-size:.7rem}.terminal-skill-icon svg{height:14px;width:14px}.terminal-welcome{display:none}}.about-section{box-sizing:border-box;max-width:100%;overflow:hidden;padding:100px 0;position:relative;width:100%}.about-section .about-header{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;margin-bottom:3.5rem;text-align:center;width:100%}.about-section .about-eyebrow{color:var(--accent-blue);font-family:var(--font-family);font-size:.85rem;font-weight:800;letter-spacing:.25em;margin-bottom:.5rem}.about-section .about-title{color:var(--heading-color);font-family:var(--font-family);font-size:clamp(2.2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.01em;margin:0}.about-section .bento-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:20px;box-sizing:border-box;overflow:hidden;transition:border-color .4s ease,box-shadow .4s ease,transform .4s cubic-bezier(.22,1,.36,1);width:100%;will-change:transform}.about-section .bento-card:hover{border-color:var(--glass-border-strong)}.about-section .bento-manifesto{display:flex;flex-direction:column;grid-column:1/2;grid-row:1/2;justify-content:center;overflow:hidden;padding:40px 36px;position:relative}.about-section .manifesto-accent{color:var(--accent-blue);opacity:.15;position:absolute;right:28px;top:24px}.about-section .manifesto-text{color:var(--text-color-primary);font-family:var(--font-family);font-size:1.15rem;line-height:1.9;margin:0 0 24px;position:relative;z-index:1}.about-section .manifesto-signature{align-items:center;display:flex;gap:14px}.about-section .signature-dash{background:var(--accent-blue);border-radius:2px;height:2px;width:32px}.about-section .signature-name{color:var(--text-color-secondary);font-family:var(--font-family);font-size:1rem;font-weight:600}.about-section .metric-icon{align-items:center;background:var(--accent-blue);border-radius:12px;box-shadow:var(--glass-shadow);color:var(--white);display:flex;flex-shrink:0;height:42px;justify-content:center;width:42px}.about-section .metric-value{color:var(--heading-color);font-family:var(--font-family);font-size:1.8rem;font-weight:800;line-height:1.1}.about-section .metric-label{color:var(--text-color-secondary);font-family:var(--font-family);font-size:.75rem;font-weight:700;letter-spacing:.12em;margin-top:2px;text-transform:uppercase}.about-section .status-pulse{animation:pulseGlow 1.5s ease-in-out infinite;background:var(--success-green);border-radius:50%;box-shadow:0 0 10px var(--success-green);flex-shrink:0;height:12px;width:12px}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 0 var(--success-green);transform:scale(1)}50%{box-shadow:0 0 0 12px #0000;transform:scale(1.2)}}.about-section .status-text{color:var(--text-color-primary);font-family:var(--font-family);font-size:.85rem;font-weight:600}.about-section .info-icon{align-items:center;background:var(--accent-blue-low-opacity);border-radius:12px;color:var(--accent-blue);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.about-section .info-label{color:var(--text-color-secondary);font-family:var(--font-family);font-size:.68rem;font-weight:700;letter-spacing:.12em;margin-bottom:2px;text-transform:uppercase}.about-section .info-value{color:var(--heading-color);font-family:var(--font-family);font-size:.9rem;font-weight:600;line-height:1.4;white-space:normal}.about-section .about-bento{grid-gap:16px;box-sizing:border-box;display:grid;gap:16px;grid-template-columns:1fr 380px;grid-template-rows:auto auto;width:100%}.about-section .bento-metrics-col{display:flex;flex-direction:column;gap:16px;grid-column:2/3;grid-row:1/2}.about-section .bento-metric{align-items:center;cursor:default;display:flex;flex:1 1;gap:16px;padding:20px 22px}.about-section .bento-metric:hover{transform:translateY(-3px)}.about-section .metric-content{display:flex;flex-direction:column}.about-section .bento-status{align-items:center;cursor:default;display:flex;gap:12px;grid-column:1/2;grid-row:2/3;padding:16px 24px}.about-section .bento-info{align-items:center;cursor:default;display:flex;gap:14px;padding:20px 22px}.about-section .bento-info:hover{transform:translateY(-3px)}.about-section .info-content{display:flex;flex-direction:column;min-width:0}@media (max-width:991px){.about-section .about-bento{display:flex;flex-direction:column;gap:12px;grid-template-columns:100%!important;width:100%}.about-section .bento-info,.about-section .bento-manifesto,.about-section .bento-metrics-col,.about-section .bento-status{box-sizing:border-box!important;grid-column:1/-1!important;grid-row:auto!important;max-width:100%!important;width:100%!important}.about-section .bento-metrics-col{display:flex;flex-direction:column;gap:12px}.about-section .bento-metric{width:100%!important}}@media (max-width:768px){.about-section{padding:40px 0}.about-section .about-header{margin-bottom:1.5rem}.about-section .bento-manifesto{padding:24px 20px}.about-section .manifesto-text{font-size:.95rem;line-height:1.6;margin-bottom:16px}.about-section .bento-metrics-col{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.about-section .bento-metric{gap:10px;padding:12px 14px}.about-section .metric-icon{border-radius:8px;height:32px;width:32px}.about-section .metric-value{font-size:1.2rem}.about-section .metric-label{font-size:.65rem}.about-section .bento-info{padding:12px 14px}.about-section .info-icon{height:32px;width:32px}.about-section .info-label{font-size:.6rem}.about-section .info-value{font-size:.78rem}}@media (max-width:480px){.about-section .bento-metrics-col{grid-template-columns:1fr}.about-section .about-title{font-size:1.8rem}.about-section .bento-card{border-radius:12px}}.contact-section{background:#0000;padding:80px 0}.contact-section .contact-container-v3{grid-gap:4rem;align-items:center;display:grid;gap:4rem;grid-template-columns:1fr 1fr}.contact-section .contact-desc{color:var(--text-color-secondary);font-size:1rem;line-height:1.5;margin:1.5rem 0 2rem}.contact-section .contact-socials-v3{display:flex;flex-wrap:wrap;gap:.8rem}.contact-section .social-pill{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:50px;color:var(--text-color-primary);display:flex;font-size:.9rem;font-weight:700;gap:10px;padding:10px 20px;text-decoration:none;transition:all .3s ease}.contact-section .social-pill:hover{border-color:var(--accent-blue);box-shadow:var(--glass-shadow);color:var(--accent-blue);transform:translateY(-3px)}.contact-section .contact-form-v3{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--glass-bg-from);border:1px solid var(--glass-border);border-radius:24px;box-shadow:var(--glass-shadow);padding:2rem}.contact-section .form-group-v3{margin-bottom:1.2rem}.contact-section .form-group-v3 input,.contact-section .form-group-v3 textarea{background:var(--glass-hover);border:1px solid var(--glass-border);border-radius:12px;box-sizing:border-box;color:var(--text-color-primary);font-family:var(--font-family);font-size:.95rem;padding:12px 18px;transition:all .3s ease;width:100%}.contact-section .form-group-v3 input:focus,.contact-section .form-group-v3 textarea:focus{background:var(--card-bg);border-color:var(--accent-blue);box-shadow:0 0 0 4px var(--accent-blue-low-opacity);color:var(--text-color-primary);outline:none}.contact-section .form-group-v3 input::placeholder,.contact-section .form-group-v3 textarea::placeholder{color:var(--text-color-secondary);opacity:.6}.contact-section .form-group-v3 input:-webkit-autofill,.contact-section .form-group-v3 input:-webkit-autofill:focus,.contact-section .form-group-v3 input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text-color-primary);-webkit-box-shadow:0 0 0 1000px var(--card-bg) inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.contact-section .submit-btn-v3{align-items:center;background:var(--accent-blue);border:none;border-radius:12px;box-shadow:var(--glass-shadow);box-sizing:border-box;color:var(--white);cursor:pointer;display:flex;font-family:var(--font-family);font-size:.95rem;font-weight:700;gap:10px;justify-content:center;padding:14px;transition:all .3s ease;width:100%}.contact-section .submit-btn-v3:hover{background:var(--accent-blue-hover);box-shadow:var(--glass-shadow-hover);transform:translateY(-2px)}.contact-section .form-footer-v3{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.contact-section .submit-btn-v3.loading{cursor:not-allowed;opacity:.8}.contact-section .spin-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.contact-section .status-message{align-items:center;border-radius:8px;display:flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;padding:10px}.contact-section .status-message.success{background:var(--status-success-bg);border:1px solid var(--glass-border);color:var(--status-success-text)}.contact-section .status-message.error{background:var(--danger-red-low-opacity);border:1px solid var(--glass-border);color:var(--danger-red)}@media (max-width:991px){.contact-section .contact-container-v3{gap:3rem;grid-template-columns:1fr}}.portfolio-footer{background:var(--main-bg);border-top:1px solid var(--border-color);padding:30px 0 25px;text-align:center}.portfolio-footer .footer-brand h3{font-family:var(--font-family);font-size:1.4rem;font-weight:900;margin-bottom:.2rem}.portfolio-footer .footer-brand p{font-size:.8rem;margin:0}.portfolio-footer .footer-bottom{font-size:.7rem;letter-spacing:.2em;margin-top:1.2rem;opacity:.5;text-transform:uppercase}.portfolio-page{background-color:var(--main-bg);background-size:4px 4px;color:var(--text-color-primary);font-family:var(--font-family);min-height:100vh;overflow-x:hidden;position:relative;transition:background-color .5s cubic-bezier(.4,0,.2,1)}.portfolio-page,body.dark-theme .portfolio-page{background-image:radial-gradient(circle at 1px 1px,var(--chart-grid) .7px,#0000 .8px)}.portfolio-page:after,.portfolio-page:before{border-radius:50%;content:"";filter:blur(120px);height:60vw;opacity:.15;pointer-events:none;position:fixed;transition:opacity .8s ease,background .8s ease;width:60vw;z-index:0}.portfolio-page:before{opacity:.25;right:-10%;top:-10%}.portfolio-page:after,.portfolio-page:before{background:radial-gradient(circle,var(--accent-blue) 0,#0000 70%)}.portfolio-page:after{bottom:-10%;left:-10%;opacity:.1}body.dark-theme .portfolio-page:before{opacity:.2}body.dark-theme .portfolio-page:after{opacity:.08}.portfolio-page .portfolio-main{padding-top:60px;position:relative;z-index:1}.portfolio-page .portfolio-container{margin:0 auto;max-width:1700px;padding:0 var(--spacing-xl)}@media (max-width:768px){.portfolio-page .portfolio-container{padding:0 var(--spacing-md)}}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth iframe{pointer-events:none}