@charset "UTF-8";.title-wrapper{display:flex;align-items:center;width:100%;gap:16px}.title-text{font-size:30px;line-height:36px;margin:0;font-weight:800;letter-spacing:-.3px}@media (max-width: 640px){.title-text{font-size:24px;line-height:30px}}.symbol{color:#c9a3ff}.line{height:2px;flex:1 1 auto;background:linear-gradient(90deg,#a68fffe6,#c9a3ff99);border-radius:2px}.project-card{width:100%;max-width:520px;border-radius:28px;overflow:hidden;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 70px #00000059,0 10px 40px #c9a3ff1a;transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column;min-height:460px;height:100%}.project-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 30px 90px #00000061,0 14px 44px #c9a3ff24}.project-image{height:240px;background:#0f1016;flex:0 0 auto}.project-image img{width:100%;height:100%;object-fit:cover;display:block}.project-body{display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:16px 16px 18px;flex:1 1 auto}.project-tech{font-size:14px;color:#b8bed0}.project-info{display:flex;flex-direction:column;gap:8px}.project-info .name{font-size:22px;font-weight:700;margin:0;color:#fff}.project-info .desc{margin:0;color:#b8bed0}.project-actions{margin-bottom:10px}.project-actions .btn-primary{display:inline-flex}.skill-card{width:240px;border-radius:20px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);overflow:hidden;box-shadow:0 14px 40px #00000040;transition:transform .25s ease,box-shadow .25s ease}.skill-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 18px 50px #00000047}.skill-title{padding:12px 14px;font-weight:700;color:#fff}.skill-stack{padding:12px 14px;color:#b8bed0;border-top:1px solid rgba(255,255,255,.12)}@media (max-width: 640px){.skill-card{width:100%}}.home-wrapper{display:flex;flex-direction:column;gap:60px;position:relative}.section-panel{padding:36px 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff05,#fff0);position:relative;overflow:visible;z-index:0}.section-panel:before,.section-panel:after{content:"";position:absolute;left:calc(50% - 50vw);right:calc(50% - 50vw);height:160px;pointer-events:none;filter:blur(60px);opacity:.5;z-index:-1}.section-panel:before{top:-80px;background:radial-gradient(700px 200px at 15% 50%,rgba(166,143,255,.22),transparent 62%)}.section-panel:after{bottom:-80px;background:radial-gradient(700px 200px at 85% 50%,rgba(201,163,255,.22),transparent 62%)}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;min-height:520px}@media (max-width: 1000px){.hero{grid-template-columns:1fr;gap:24px}}.hero-left{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}.brace{color:#d9ceff;font-size:52px;line-height:1;transform:translateY(6px)}.hero-title{margin:0;font-weight:800;font-size:56px;line-height:1.04;letter-spacing:-.5px}@media (max-width: 640px){.hero-title{font-size:40px}.brace{font-size:36px;transform:translateY(2px)}}.hero-right{display:flex;flex-direction:column;gap:18px;align-items:flex-start}.hero-note{color:#b8bed0;max-width:520px}.hero-cta{border-radius:999px}.hero-stats{display:block}.calendar{display:flex;justify-content:center}.calendar .react-activity-calendar{gap:10px;font-size:14px;color:#b8bed0}.calendar .react-activity-calendar__scroll-container{max-width:100%;overflow-x:auto;overflow-y:hidden;padding-top:4px;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain}.calendar .react-activity-calendar{width:100%}.calendar .react-activity-calendar__calendar{display:block}.calendar .react-activity-calendar__calendar{overflow:visible}.calendar .react-activity-calendar__legend-month text{fill:#b8bed0}.calendar rect{stroke:#ffffff0f}.calendar footer{color:#b8bed0;gap:6px 20px}.calendar footer svg rect{stroke:#ffffff0f}.calendar .react-activity-calendar__calendar rect{transition:filter .2s ease,transform .15s ease}.calendar .react-activity-calendar__calendar rect[data-level="0"]{stroke:#ffffff0a;filter:none}.calendar .react-activity-calendar__calendar rect[data-level="1"]{stroke:#c9a3ff2e;filter:none}.calendar .react-activity-calendar__calendar rect[data-level="2"]{stroke:#c9a3ff38;filter:none}.calendar .react-activity-calendar__calendar rect[data-level="3"]{stroke:#c9a3ff5c;filter:drop-shadow(0 0 14px rgba(201,163,255,.8)) drop-shadow(0 0 26px rgba(166,143,255,.6))}.calendar .react-activity-calendar__calendar rect[data-level="4"]{stroke:#c9a3ff66;filter:drop-shadow(0 0 16px rgba(201,163,255,.95)) drop-shadow(0 0 30px rgba(166,143,255,.7))}.calendar .react-activity-calendar__calendar rect[data-level="3"]:hover,.calendar .react-activity-calendar__calendar rect[data-level="4"]:hover{filter:drop-shadow(0 0 20px rgb(201,163,255)) drop-shadow(0 0 36px rgba(166,143,255,.9));transform:translateY(-1px)}.calendar footer svg rect{transition:filter .2s ease}.calendar footer svg rect+rect{filter:none}.calendar footer svg rect+rect+rect{filter:none}.calendar footer svg rect+rect+rect+rect{filter:drop-shadow(0 0 14px rgba(201,163,255,.8)) drop-shadow(0 0 26px rgba(166,143,255,.6))}.calendar footer svg rect+rect+rect+rect+rect{filter:drop-shadow(0 0 16px rgba(201,163,255,.95)) drop-shadow(0 0 30px rgba(166,143,255,.7))}.projects-content .projects-content-top{display:flex;height:50px;align-items:center;gap:20px}.projects-content .projects-content-top .view-all{display:flex;align-items:center;gap:20px}.projects-content .projects-content-top .nowrap{white-space:nowrap}.projects-content .projects{margin-top:40px}.skills-content .skills{display:flex}@media (max-width: 1200px){.skills-content .skills{flex-direction:column}}.skills-content .skills .left{position:relative;max-width:650px;width:100%;min-height:450px;z-index:0}@media (max-width: 1200px){.skills-content .skills .left{width:650px;height:450px}}@media (max-width: 768px){.skills-content .skills .left{width:100%;height:auto}}.skills-content .skills .left .dot{fill:#abb2bf;position:absolute}.skills-content .skills .left .top-left{top:40px;left:40px}.skills-content .skills .left .top-right{right:200px;top:200px}.skills-content .skills .left .sq{position:absolute}.skills-content .skills .left .top-right-2{top:20px;right:80px}.skills-content .skills .left .bottom-right{right:0;bottom:80px}.skills-content .skills .left .ovl{position:absolute;bottom:4px;left:40px}.skills-content .skills .right{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;align-content:flex-start;gap:20px;margin-top:40px}@media (max-width: 1200px){.skills-content .skills .right{justify-content:flex-start}}@media (max-width: 640px){.skills-content .skills .right{justify-content:center;padding:0 10px}}.navigation-wrapper{width:100%;display:flex;align-items:center;justify-content:space-between;height:80px;padding-left:0;padding-right:0;-webkit-backdrop-filter:saturate(120%) blur(6px);backdrop-filter:saturate(120%) blur(6px)}@media (max-width: 768px){.navigation-wrapper{padding-left:20px;padding-right:20px}}.brand{font-size:24px;line-height:32px}.brand{font-weight:800;letter-spacing:-.3px}.menu-desktop{display:none}@media (min-width: 768px){.menu-desktop{display:flex;align-items:center;gap:20px}}.link{font-size:16px;font-weight:500;color:#b8bed0;text-decoration:none;transition:color .2s ease}.link:hover{color:#fff}.link-active{font-size:16px;font-weight:500;color:#fff;text-decoration:none}.hash{color:#c9a3ff}.burger{display:inline-flex;color:#fff}@media (min-width: 768px){.burger{display:none}}.menu-mobile{position:fixed;z-index:999;top:0;left:0;width:100%;height:100%;background:radial-gradient(1000px 600px at 50% -10%,rgba(201,163,255,.1),transparent 60%),radial-gradient(1400px 800px at 50% 110%,rgba(166,143,255,.08),transparent 65%),#0b0b0f;-webkit-backdrop-filter:blur(8px) saturate(110%);backdrop-filter:blur(8px) saturate(110%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#fff;font-size:18px;transform:translate(100%);transition:transform .35s ease;padding:calc(18px + env(safe-area-inset-top)) 20px calc(22px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}.menu-mobile.opened{transform:translate(0)}.menu-mobile.closed{transform:translate(100%)}@media (min-width: 768px){.menu-mobile{display:none}}.m-link,.m-link-active{font-size:16px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:16px;border:1px solid transparent;transition:color .2s ease,background .25s ease,border-color .25s ease,transform .2s ease}.m-link{color:#b8bed0}.m-link:hover{color:#fff;background:#ffffff0f;border-color:#ffffff1a;transform:translateY(-1px)}.m-link-active{color:#fff;background:#ffffff14;border-color:#c9a3ff66;box-shadow:0 10px 30px #c9a3ff26}.close{position:absolute;top:calc(10px + env(safe-area-inset-top));right:12px;color:#fff;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.close:hover{background:#ffffff14;border-color:#ffffff2e}.projects-top{margin-top:40px}.projects-top .subtitle{margin-top:14px;font-weight:500;color:#b8bed0}.projects-content{margin-top:60px;position:relative;overflow:visible}.projects-content .projects-content-top{margin-bottom:24px;align-items:center}.contacts-wrapper{margin-top:80px}.contacts-top{margin-bottom:24px}.contacts-content{display:grid;grid-template-columns:1fr;gap:24px}@media (min-width: 768px){.contacts-content{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{padding:24px;border-radius:24px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.lead{font-size:18px;margin-bottom:8px;color:#e6eaf3}.form{display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:24px}.input,.textarea{padding:12px 14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#fff;border-radius:14px}.input:focus,.textarea:focus{outline:none;border-color:#c9a3ff80;box-shadow:0 0 0 3px #c9a3ff26}.btn-primary{align-self:flex-start}.footer-wrapper{border-top:1px solid #2a2f37;margin-top:60px;padding:28px 0 22px}.footer-wrapper .container{width:100%;max-width:1500px;margin:0 auto;padding:0 60px}@media (max-width: 768px){.footer-wrapper .container{padding:0 15px}}.footer-wrapper .footer-top{display:flex;justify-content:space-between;align-items:center;gap:20px}@media (max-width: 640px){.footer-wrapper .footer-top{flex-direction:column;align-items:center;text-align:center;gap:12px}}.footer-wrapper .brand-block{display:flex;flex-direction:column;gap:6px}.footer-wrapper .brand{font-weight:800;color:#c9a3ff;font-size:22px;line-height:30px;margin:0;letter-spacing:-.2px}.footer-wrapper .tag{margin:0;color:#b8bed0;font-size:14px}.footer-wrapper .social{display:flex;gap:10px}.footer-wrapper .social-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#fff;transition:transform .2s ease,background .2s ease,border-color .2s ease}.footer-wrapper .social-btn:hover{transform:translateY(-2px);background:#ffffff14;border-color:#ffffff2e}.footer-wrapper .footer-divider{height:1px;background:linear-gradient(90deg,#a68fff00,#a68fff59,#c9a3ff00);margin:16px 0;opacity:.8}.footer-wrapper .footer-bottom{display:flex;justify-content:center;align-items:center;min-height:44px}.footer-wrapper .footer-bottom p{color:#b8bed0;font-size:13px;margin:0}@media (max-width: 640px){.footer-wrapper .footer-bottom{padding:0 15px;text-align:center}}.app-wrapper{width:100%;min-height:100vh;color:#fff;position:relative;overflow:visible}.app-content{width:100%;max-width:1500px;margin-left:auto;margin-right:auto}@media (max-width: 768px){.app-content{padding-left:10px;padding-right:10px}}.social-media{position:fixed;top:0;left:0;display:flex;flex-direction:column;align-items:center;width:50px;gap:16px}@media (max-width: 768px){.social-media{display:none}}.social-media .line{width:1px;height:250px;background-color:#abb2bf}.social-media a svg{fill:#abb2bf;transition:fill .2s ease}.social-media a:hover svg{fill:#fff}*{font-family:Fira Code,serif;font-optical-sizing:auto}*{box-sizing:border-box}html,body,#root{height:100%}html,body{margin:0;padding:0}html,body{overflow-x:hidden;height:100%}body{background:radial-gradient(1800px 1000px at 50% 8%,#c9a3ff66,#a68fff2e 38%,#0000 66%),linear-gradient(180deg,#0b0b0f,#0b0b0f 55%,#100b16),radial-gradient(1600px 900px at -10% -10%,rgba(0,0,0,.55),transparent 55%),radial-gradient(1600px 900px at 110% -10%,rgba(0,0,0,.55),transparent 55%),radial-gradient(1600px 900px at -10% 110%,rgba(0,0,0,.55),transparent 55%),radial-gradient(1600px 900px at 110% 110%,rgba(0,0,0,.55),transparent 55%),#0b0b0f;color:#fff;overflow-x:hidden;font-synthesis-weight:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-wrapper{position:relative}#cyber-canvas-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1}.app-content{padding:0}.app-content{width:100%;max-width:1500px;margin:0 auto;padding-left:20px;padding-right:20px}@media (max-width: 640px){.app-content{padding-left:12px;padding-right:12px}}.text-secondary{color:#b8bed0}.glass{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.glass-strong{background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}h1,h2,h3,h4,h5,h6{color:#fff}p{color:#b8bed0}.brand-title{font-weight:800;letter-spacing:.5px}h1,h2,h3{font-weight:800}h1{font-size:48px;line-height:1.1}h2{font-size:36px;line-height:1.15}@media (max-width: 640px){h1{font-size:36px}h2{font-size:28px}}p{font-weight:500}.btn-primary{border:0;border-radius:999px;padding:12px 20px;color:#0b0b0f;background:linear-gradient(90deg,#a68fff,#c9a3ff);text-decoration:none;font-weight:600;box-shadow:0 10px 30px #c9a3ff40;transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 50px #c9a3ff47}.btn-primary:active{transform:translateY(0);opacity:.95}.btn-ghost{border-radius:999px;padding:12px 20px;background:#ffffff0f;color:#fff;border:1px solid rgba(255,255,255,.14);transition:background .25s ease,border-color .25s ease}.btn-ghost:hover{background:#ffffff14;border-color:#ffffff2e}.project-card{background:#ffffff0f;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16);border-radius:24px;overflow:hidden;position:relative;transition:transform .35s ease,box-shadow .35s ease,background .35s ease;will-change:transform,box-shadow,background;background:#ffffff0d;box-shadow:0 30px 80px #00000059,0 10px 30px #c9a3ff1f;transform-style:preserve-3d;perspective:800px}.project-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 20px 50px #c9a3ff14,0 2px #a68fff33 inset}.project-card:hover{transform:translateY(-6px)}.project-card .project-image{height:220px}.project-card .project-image img{width:100%;height:100%;object-fit:cover;display:block}.project-card .project-tech{border-top:1px solid rgba(255,255,255,.16);color:#b8bed0;font-size:14px;padding:6px 10px}.project-card .project-info{border-top:1px solid rgba(255,255,255,.16);padding:14px 12px 16px}.project-card .project-info .name{font-size:20px;color:#fff;margin:6px 0 4px}.project-card .project-info .desc{color:#b8bed0;margin-bottom:12px}.skill-card{background:#ffffff0f;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#ffffff0d;width:220px}.skill-card .skill-title{padding:10px 12px;color:#fff;font-weight:600}.skill-card .skill-stack{border-top:1px solid rgba(255,255,255,.16);padding:10px 12px;color:#b8bed0}.container{width:100%;max-width:1500px;margin:0 auto;padding-left:40px;padding-right:40px}.grid-projects{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}.grid-projects>.project-card{grid-column:span 4}@media (max-width: 1200px){.grid-projects>.project-card{grid-column:span 6}}@media (max-width: 700px){.grid-projects{gap:16px}.grid-projects>.project-card{grid-column:span 12}}.nav-glass{background:#ffffff0f;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:10px 14px}.reveal{opacity:0;transform:translateY(10px) scale(.98);filter:saturate(.98);transition:opacity .6s ease,transform .6s ease,filter .6s ease;will-change:opacity,transform,filter}.reveal.visible{opacity:1;transform:none;filter:saturate(1)}.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}.reveal-delay-4{transition-delay:.32s}.reveal-delay-5{transition-delay:.4s}.tilt-hover{transform:translateZ(0);transition:transform .25s ease,box-shadow .25s ease}.tilt-hover:hover{transform:translateY(-4px) scale(1.01)}.animated-line{position:relative}.animated-line:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:linear-gradient(90deg,#a68fff00,#a68fffe6,#c9a3ffe6,#c9a3ff00);background-size:200% 100%;animation:lineFlow 3.6s linear infinite;border-radius:2px;opacity:.8}@keyframes lineFlow{0%{background-position:0% 0%}to{background-position:200% 0%}}.neon-text{color:#fff;background:none;text-shadow:none}.glow-border,.glow-border:before{all:unset}body{cursor:default}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#a68fff59,#c9a3ff8c);border-radius:10px;border:2px solid rgba(11,11,15,.9)}*::-webkit-scrollbar-track{background:#ffffff0a;border-radius:10px}*{scrollbar-width:thin;scrollbar-color:rgba(201,163,255,.55) rgba(255,255,255,.04)}.cyber-divider{height:2px;width:100%;background:linear-gradient(90deg,transparent,#A68FFF 20%,#C9A3FF 80%,transparent);opacity:.6}
