:root{--font-family:"Inter", sans-serif;--container-width:1280px;--transition:.25s ease;--success:#22c55e;--error:#ef4444}[data-theme=dark]{--bg:#070708;--bg2:#0b0b0d;--bg3:#111113;--nav-bg:#0a0a0a66;--border-color:#ffffff0d;--border:#1e1e20;--border-soft:#18181a;--text:#e8e8ea;--text-muted:#88889a;--text-dim:#7b7b8c;--decor:#556;--white:#fff;--overlay:#000000f7}[data-theme=light]{--bg:#f2f2f2;--bg2:#fff;--bg3:#eaeaea;--nav-bg:#f2f2f266;--border-color:#0000000d;--border:#d4d4d4;--border-soft:#e0e0e0;--text:#111113;--text-muted:#5a5a6a;--text-dim:#686878;--decor:#9a9aaa;--white:#111113;--overlay:#fffffff7}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family), -apple-system, sans-serif;background:var(--bg);color:var(--text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;opacity:1;line-height:1.6;transition:opacity .4s,background .3s,color .3s;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}::selection{background:var(--white);color:var(--bg)}section{padding:120px 48px;position:relative}.section-number{--parallax-offset:0px;letter-spacing:-.05em;color:var(--decor);opacity:.22;pointer-events:none;-webkit-user-select:none;user-select:none;transform:translateY(var(--parallax-offset));will-change:transform;font-size:5rem;font-weight:800;line-height:1;transition:transform .2s ease-out;position:absolute;top:48px;right:48px}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:8px;font-size:.72rem;font-weight:500;display:block}.section-title{letter-spacing:-.03em;color:var(--white);margin-bottom:32px;font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:700;line-height:1.12}.animate{transition:opacity .7s,transform .7s}.animate[data-visible=false]{opacity:0;transform:translateY(40px)}.animate[data-visible=true]{opacity:1;transform:translateY(0)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#2c2c2c}::-webkit-scrollbar-thumb:hover{background:#3d3d3d}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn-primary,.btn-secondary{letter-spacing:-.01em;transition:all var(--transition);justify-content:center;align-items:center;gap:8px;padding:12px 32px;font-size:.82rem;text-decoration:none;display:inline-flex}.btn-primary{background:var(--white);color:var(--bg);border:none;font-weight:600}.btn-primary:hover{opacity:.85}.btn-secondary{color:var(--text-muted);border:1px solid var(--border);background:0 0;font-weight:500}.btn-secondary:hover{border-color:var(--text);color:var(--text)}.navbar{border-bottom:1px solid var(--border-color);z-index:1000;justify-content:space-between;align-items:center;padding:1.5rem 48px;transition:padding .3s;display:flex;position:fixed;inset:0 0 auto}.navbar:before{content:"";z-index:-1;background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color .3s;position:absolute;inset:0}.nav-logo{letter-spacing:-.03em;color:var(--text);font-size:1.35rem;font-weight:700;text-decoration:none}.nav-links{gap:32px;display:flex}.nav-links a{color:var(--text);opacity:.6;font-size:.8rem;font-weight:450;text-decoration:none;transition:opacity .2s,color .2s}.nav-links a:hover{opacity:1}.nav-links a.active{opacity:1;color:var(--text)}.nav-overlay{opacity:0;visibility:hidden;z-index:999;background:#00000073;transition:opacity .3s,visibility .3s;position:fixed;inset:0}.nav-actions{align-items:center;gap:16px;display:flex}.theme-toggle{color:var(--text);opacity:.6;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:opacity .2s,color .3s;display:flex}.theme-toggle:hover{opacity:1}.theme-toggle svg{stroke:var(--text);transition:stroke .3s}[data-theme=dark] .theme-icon-light,[data-theme=light] .theme-icon-dark{display:none}.hamburger{cursor:pointer;z-index:1001;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.hamburger span{background:var(--white);border-radius:1px;width:22px;height:1.5px;transition:transform .3s,opacity .2s;display:block}[data-theme=light] .hamburger span{background:var(--text)}.hamburger.active span:first-child{transform:translateY(6.5px)rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}@media (width<=900px){.navbar{padding:20px 24px}.hamburger{display:flex}.theme-toggle{z-index:1001}.nav-actions{z-index:1001;gap:12px}.nav-overlay.open{opacity:1;visibility:visible}.nav-links{background:var(--overlay);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--border);z-index:1000;flex-direction:column;gap:0;width:240px;height:100vh;padding:100px 32px 32px;transition:transform .35s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-20px 0 40px #0003}.nav-links.open{transform:translate(0)}.nav-links a{opacity:.8;border-bottom:1px solid var(--border-soft);padding:16px 0;font-size:1rem}}.hero{background:var(--bg);align-items:center;min-height:100vh;padding:0 48px;display:flex;position:relative}.hero-inner{justify-content:center;align-items:center;gap:22rem;width:100%;max-width:1280px;margin:0 auto;display:flex}.hero-text{max-width:600px}.hero-desc{color:var(--text-muted);max-width:460px;margin-bottom:20px;font-size:.92rem;font-weight:400;line-height:1.8}.hero-status{color:var(--text);align-items:flex-start;gap:10px;margin-bottom:36px;font-size:.82rem;font-weight:500;line-height:1.6;display:flex}.hero-status:before{content:"";background:var(--white);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:.5em}.hero-t1{color:var(--text-muted);letter-spacing:-.01em;margin-bottom:12px;font-size:1rem;font-weight:400;display:block}.hero-t2{color:var(--white);letter-spacing:-.04em;margin-bottom:8px;font-size:clamp(3.5rem,8vw,6rem);font-weight:800;line-height:.95;display:block}.hero-t3{color:var(--text-muted);letter-spacing:-.03em;margin-bottom:28px;font-size:clamp(1.8rem,4vw,3rem);font-weight:300;line-height:1.05;display:block}.hero-visual{justify-content:center;align-items:center;display:flex}.hero-shape{border:1px solid var(--border);will-change:transform;border-radius:50%;justify-content:center;align-items:center;width:320px;height:320px;transition:transform .12s ease-out;display:flex;position:relative}.hero-shape:before{content:"";border:1px solid var(--border);border-radius:50%;width:200px;height:200px;position:absolute}.hero-shape:after{content:"✦";color:var(--decor);font-size:2rem;animation:20s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero-btns{flex-wrap:wrap;gap:12px;display:flex}.typing-line{color:var(--text-muted);font-weight:300;animation:.7s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero-t1,.hero-t2,.hero-t3,.hero-desc,.hero-status,.hero-btns{animation:.7s cubic-bezier(.2,.7,.2,1) backwards heroIn}.hero-t2{animation-delay:80ms}.hero-t3{animation-delay:.16s}.hero-desc{animation-delay:.26s}.hero-status{animation-delay:.34s}.hero-btns{animation-delay:.42s}.hero-visual{animation:1.2s .3s backwards heroFade}@keyframes heroIn{0%{opacity:0;transform:translateY(16px)}}@keyframes heroFade{0%{opacity:0}}@media (width<=1024px){.hero-inner{justify-content:center}.hero-visual{display:none}.hero-text{max-width:100%}}@media (width<=768px){.hero{padding:0 24px}.hero-inner{gap:0}.hero-desc{max-width:100%}.hero-btns{width:100%}.btn-primary,.btn-secondary{justify-content:center}}@media (width<=480px){.hero-btns{flex-direction:column}.btn-primary,.btn-secondary{width:100%}.hero-t2{font-size:clamp(3rem,15vw,4rem)}.hero-t3{font-size:clamp(1.4rem,7vw,2rem)}}#about{background:var(--bg2)}.about-inner{grid-template-columns:1.2fr .8fr;align-items:start;gap:clamp(3rem,6vw,5rem);max-width:1080px;margin:0 auto;display:grid}.about-text p{color:var(--text-muted);margin-bottom:20px;font-size:.95rem;font-weight:400;line-height:1.9}.about-text p:last-child{margin-bottom:0}.about-stats{border-left:1px solid var(--border);flex-direction:column;gap:0;margin-bottom:40px;padding-left:40px;display:flex}.stat-row{border-bottom:1px solid var(--border-soft);align-items:center;gap:0;padding:24px 0;display:flex}.stat-row:last-child{border-bottom:none}.stat-num{color:var(--white);letter-spacing:-.04em;min-width:64px;font-size:2.4rem;font-weight:700;line-height:1}.stat-row .stat-label{color:var(--text-muted);text-transform:none;letter-spacing:normal;font-size:1.05rem;font-weight:400}.about-timeline{border-left:1px solid var(--border);flex-direction:column;gap:0;padding-left:40px;display:flex}.timeline-item{border-bottom:1px solid var(--border-soft);align-items:flex-start;gap:16px;padding:20px 0;display:flex;position:relative}.timeline-item:last-child{border-bottom:none}.timeline-dot{border:1px solid var(--decor);background:var(--bg2);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px;transition:background .2s,border-color .2s}.timeline-item:hover .timeline-dot{background:var(--text-muted);border-color:var(--text-muted)}.timeline-date{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:.72rem;font-weight:500;display:block}.timeline-text{color:var(--text-muted);font-size:.88rem;font-weight:400;line-height:1.4;transition:color .2s;display:block}.timeline-item:hover .timeline-text{color:var(--text)}@media (width<=1024px){.about-inner{grid-template-columns:1fr;gap:56px}.about-text{max-width:100%}}@media (width<=768px){.about-stats,.about-timeline{border-left:none;padding-left:0}.stat-row{padding:20px 0}}@media (width<=480px){.stat-num{min-width:56px;font-size:2rem}.stat-row,.timeline-item{gap:12px}.timeline-text{font-size:.85rem}}#skills{background:var(--bg)}.skills-inner{max-width:1080px;margin:0 auto}.skills-header{margin-bottom:clamp(2.5rem,5vw,3.5rem)}.skills-grid{background:var(--border);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.skill-group{background:var(--bg2);flex-direction:column;gap:20px;padding:40px 36px;display:flex}.skill-cat{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:.7rem;font-weight:600}.skill-items{flex-direction:column;gap:8px;display:flex}.skill-item{color:var(--text-muted);padding:2px 0;font-size:.95rem;font-weight:400;transition:color .2s}.skill-group:hover .skill-item{color:var(--white)}@media (width<=768px){.skills-grid{grid-template-columns:1fr}}@media (width<=480px){.skill-group{padding:32px 24px}}.project-type-filters{flex-wrap:wrap;gap:8px;margin-bottom:64px;display:flex}.filter-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:8px 20px;font-family:Inter,sans-serif;font-size:.78rem;font-weight:500;transition:border-color .2s,color .2s,background .2s}.filter-btn:hover{border-color:var(--decor);color:var(--text)}.filter-btn.active{background:var(--white);color:var(--bg);border-color:var(--white)}#projects{background:var(--bg2)}.projects-inner{max-width:1080px;margin:0 auto}.projects-header{margin-bottom:clamp(2.5rem,5vw,3.5rem)}.projects-list{flex-direction:column;display:flex}.project-card{border-bottom:1px solid var(--border-soft);grid-template-columns:64px 1fr;gap:32px;padding:40px 0;text-decoration:none;display:grid;position:relative}.project-card:first-child{border-top:1px solid var(--border-soft)}.project-card:after{content:"";background:radial-gradient(circle at var(--mx,50%) var(--my,50%), #ffffff08 0%, transparent 60%);pointer-events:none;opacity:0;z-index:0;width:300px;height:300px;transition:opacity .4s;position:absolute;top:0;left:0}.project-card:hover:after{opacity:1}.project-num{color:var(--text-dim);font-variant-numeric:tabular-nums;padding-top:4px;font-size:.85rem;font-weight:500}.project-content{z-index:1;flex-direction:column;display:flex;position:relative}.project-type{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:6px;font-size:.7rem;font-weight:500}.project-title{color:var(--text-muted);letter-spacing:-.02em;margin-bottom:16px;font-size:1.4rem;font-weight:600;transition:color .2s}.project-card:hover .project-title{color:var(--white)}.project-preview{border:1px solid var(--border);aspect-ratio:640/360;background:var(--bg3);border-radius:6px;width:100%;max-width:640px;margin-bottom:20px;transition:opacity .3s,border-color .3s;position:relative;overflow:hidden}.project-preview:after{content:"";background:radial-gradient(circle at var(--mx,50%) var(--my,50%), #ffffff14 0%, transparent 50%);pointer-events:none;opacity:0;z-index:1;transition:opacity .4s;position:absolute;inset:0}.project-card:hover .project-preview:after{opacity:1}.project-card:hover .project-preview{border-color:var(--decor)}.project-preview img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:block}.project-preview:hover img,.project-preview:focus-visible img{transform:scale(1.02)}.project-preview:focus-visible{outline:1px solid var(--text-muted);outline-offset:4px}.project-desc{color:var(--text-muted);max-width:600px;margin-bottom:16px;font-size:.88rem;font-weight:400;line-height:1.7}.project-highlights{flex-direction:column;gap:8px;max-width:600px;margin-bottom:24px;list-style:none;display:flex}.project-highlights li{color:var(--text-muted);padding-left:20px;font-size:.85rem;font-weight:400;line-height:1.6;position:relative}.project-highlights li:before{content:"";background:var(--decor);width:8px;height:1px;position:absolute;top:.8em;left:0}.project-tags{flex-wrap:wrap;gap:4px 16px;margin-bottom:20px;display:flex}.project-tag{color:var(--text-muted);font-size:.78rem;font-weight:450}.project-tag:not(:last-child):after{content:"/";color:var(--border);margin-left:16px}.project-actions{gap:24px;display:flex}.project-link{color:var(--text-muted);align-items:center;gap:8px;font-size:.92rem;font-weight:500;text-decoration:none;transition:color .2s,gap .2s;display:inline-flex}.project-link:hover{color:var(--white)}.project-link svg{opacity:.5;transition:opacity .2s,transform .2s}.project-card:hover .project-link svg{opacity:1}.project-link:hover svg{transform:translate(2px,-2px)}.lightbox{z-index:9998;opacity:0;visibility:hidden;background:#000000eb;justify-content:center;align-items:center;padding:48px;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.lightbox.open{opacity:1;visibility:visible}.lightbox-img{object-fit:contain;border:1px solid var(--border);opacity:0;max-width:100%;max-height:90vh;transition:transform .4s,opacity .4s;display:block;transform:scale(.95)}.lightbox.open .lightbox-img{opacity:1;transform:scale(1)}.lightbox-close{width:40px;height:40px;color:var(--text-muted);cursor:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:1.5rem;line-height:1;transition:color .2s;display:flex;position:absolute;top:24px;right:24px}.lightbox-close:hover{color:var(--white)}@media (width<=1024px){.project-preview{max-width:100%}}@media (width<=768px){.project-card{grid-template-columns:1fr;gap:16px}.project-num{display:none}.projects-header{margin-bottom:clamp(2.5rem,5vw,3.5rem)}.project-type-filters{margin-bottom:40px}.filter-btn{padding:8px 16px}.lightbox{padding:24px}.lightbox-close{top:16px;right:16px}}@media (width<=480px){.project-card{padding:32px 0}.project-title{font-size:1.2rem}.project-desc{font-size:.85rem}.project-tags{gap:8px 12px}.project-actions{flex-direction:column;align-items:flex-start;gap:12px}.filter-btn{padding:6px 14px;font-size:.72rem}.lightbox{padding:16px}.lightbox-close{top:12px;right:12px}}#contact{background:var(--bg)}.contact-inner{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(3rem,6vw,5rem);max-width:1080px;margin:0 auto;display:grid}.contact-desc{color:var(--text-muted);margin-bottom:36px;font-size:.95rem;font-weight:400;line-height:1.8}.contact-buttons{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.contact-social{flex-direction:column;gap:1px;display:flex}.social-link{color:var(--text-muted);border-bottom:1px solid var(--border-soft);align-items:center;gap:8px;width:fit-content;padding:12px 0;font-size:.9rem;font-weight:450;text-decoration:none;transition:color .2s,padding-left .2s;display:inline-flex}.contact-social>.social-link:first-child{border-top:1px solid var(--border-soft)}.social-link:hover{color:var(--white);padding-left:8px}.contact-email{align-items:center;gap:16px;display:flex}.copy-btn{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.7rem;font-weight:500;transition:color .2s}.copy-btn:hover{color:var(--text)}.contact-form{background:var(--border);flex-direction:column;gap:1px;display:flex}.form-field{background:var(--bg2);border-bottom:1px solid var(--border-soft);flex-direction:column;transition:background .2s,border-bottom-color .2s;display:flex}.form-field label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:14px 16px 4px;font-size:.68rem;font-weight:500;background:0 0!important}.form-field input,.form-field textarea{color:var(--text);outline:none;padding:4px 16px 14px;font-family:Inter,sans-serif;font-size:.88rem;font-weight:400;background:0 0!important;border:none!important}.form-field input:focus,.form-field textarea:focus{outline:none}.form-field:has(input:focus){background:var(--bg3)!important;border-bottom:1px solid var(--white)!important}.form-field:has(textarea:focus){background:var(--bg3)!important}.form-field textarea{resize:none;min-height:110px}.form-submit{background:var(--white);color:var(--bg);cursor:none;border:none;justify-content:space-between;align-items:center;padding:16px 24px;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;transition:opacity .2s;display:flex}.form-submit:hover{opacity:.85}.form-submit svg{transition:transform .2s}.form-submit:hover svg{transform:translate(4px)}.form-status{opacity:0;margin:0 auto;padding:1rem 0;font-size:.9rem;font-weight:500;animation:.35s forwards fadeUp;transform:translateY(8px)}.form-status.success{color:var(--success)}.form-status.error{color:var(--error)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.contact-inner{grid-template-columns:1fr;gap:56px}}@media (width<=768px){.contact-social{margin-bottom:8px}}@media (width<=480px){.contact-buttons{flex-direction:column}.contact-buttons .btn-secondary{justify-content:center;width:100%}.form-submit{justify-content:center;gap:12px}.form-field label{padding:12px 14px 4px}.form-field input,.form-field textarea{padding:4px 14px 12px}}footer{border-top:1px solid var(--border-soft);background:var(--bg2);justify-content:space-between;align-items:center;padding:20px 48px;display:flex}.footer-copy{color:var(--text-dim);font-size:.78rem;font-weight:450}.footer-copy span{color:var(--text);margin-left:8px}@media (width<=768px){footer{text-align:center;justify-content:center;padding:20px 24px}}@media (width<=480px){.footer-copy{font-size:.75rem}}.cursor-dot,.cursor-ring{pointer-events:none;will-change:left, top, width, height;border-radius:50%;display:none;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}@media (width>=901px){.cursor-dot,.cursor-ring{display:block}body,button,a,input,textarea,select,label{cursor:none!important}}.cursor-dot{background:var(--white);z-index:9999;width:6px;height:6px}.cursor-ring{border:1px solid var(--decor);z-index:9998;width:32px;height:32px;transition:width .25s,height .25s,border-color .25s}.cursor-ring.cursor-hover{border-color:var(--white);width:40px;height:40px}.scroll-progress{z-index:9999;width:100%;height:2px;position:fixed;top:0;left:0}.scroll-progress-bar{background:var(--white);width:0;height:100%;transition:width .1s linear}.back-to-top{z-index:99;border:1px solid var(--border);background:var(--bg2);width:42px;height:42px;color:var(--text-muted);opacity:0;visibility:hidden;cursor:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .3s,visibility .3s,transform .3s,border-color .2s,color .2s;display:flex;position:fixed;bottom:32px;right:32px;transform:translateY(12px)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{border-color:var(--text);color:var(--text)}
