:root{--color-primary:#b0e4cc;--color-primary-dark:#408a71;--color-primary-hover:#90d3b6;--shadow-color:#0006;--bg-body:#0a0a0a;--bg-surface:#1a1a1a;--bg-surface-secondary:#222;--bg-surface-secondary-hover:#252525;--bg-surface-tertiary:#2a2a2a;--border-color:#2a2a2a;--text-primary:#fff;--text-secondary:#e4e4e4;--text-tertiary:#a8a8a8;--text-muted:#949494;--text-body-gray:#dcdcdc;--dock-bg:#1a1a1ab3;--dock-border:#ffffff0f;--dialog-overlay:#08080abf;--dialog-close-bg:#0a0a0a99;--dialog-close-border:#ffffff26;--active-btn-text:#1a1a1a;--timeline-marker-border:#1a1a1a;--accent-color:#b0e4cc;--accent-hover-color:#90d3b6;--bg-accent-alpha:#b0e4cc1a;--bg-accent-alpha-2:#b0e4cc33;--border-accent-alpha:#b0e4cc4d;--shadow-accent:#b0e4cc4d;--dialog-bg:linear-gradient(145deg, #16161a 0%, #0c0c0e 100%);--bg-surface-alpha:#ffffff05;--border-color-alpha:#ffffff0f;--border-color-alpha-hover:#ffffff1f;--bg-surface-alpha-hover:#ffffff0a}[data-theme=light]{--bg-body:#f4f6f5;--bg-surface:#fff;--bg-surface-secondary:#f8fafc;--bg-surface-secondary-hover:#f1f5f9;--bg-surface-tertiary:#e2e8f0;--border-color:#e2e8f0;--text-primary:#0f172a;--text-secondary:#334155;--text-tertiary:#475569;--text-muted:#5c6e84;--text-body-gray:#334155;--dock-bg:#ffffffd9;--dock-border:#0000000f;--dialog-overlay:#0f172a66;--dialog-close-bg:#ffffffe6;--dialog-close-border:#0000001a;--active-btn-text:#fff;--timeline-marker-border:#fff;--shadow-color:#0f172a14;--accent-color:#408a71;--accent-hover-color:#34705c;--bg-accent-alpha:#408a711a;--bg-accent-alpha-2:#408a7126;--border-accent-alpha:#408a7140;--shadow-accent:#408a7133;--dialog-bg:linear-gradient(145deg, #fff 0%, #f8fafc 100%);--bg-surface-alpha:#00000005;--border-color-alpha:#0000000f;--border-color-alpha-hover:#0000001f;--bg-surface-alpha-hover:#0000000a}*{box-sizing:border-box}body,.portfolio-modern,.portfolio-sidebar,.portfolio-main,.profile-card,.profile-info,.profile-title,.card-inner-container,.portfolio-dock,.dock-item,.service-card,.project-card-modern,.blog-card,.contact-info-card,.contact-form,.contact-form input,.contact-form textarea,.timeline-content,.timeline-marker,.page-title,.info-toggle-btn,.theme-toggle-btn,.lang-switcher-container,.lang-btn,.certification-badge{transition:background .3s,background-color .3s,border-color .3s,color .3s,box-shadow .3s,transform .3s}body.dialog-open{overflow:hidden}.portfolio-modern{background:var(--bg-body);min-height:100vh;color:var(--text-secondary);isolation:isolate;width:100%;max-width:100vw;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;position:relative;overflow-x:hidden}.dark-firefly-background{z-index:0;pointer-events:none;opacity:1;background-color:#0000;background-image:linear-gradient(#04070ab8,#04070ad1),url(/bg-dark.webp);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:0;overflow:hidden}.dark-firefly-background:after{content:"";z-index:0;background:radial-gradient(circle at 20% 20%,#b0e4cc14,#0000 30%),radial-gradient(circle at 80% 10%,#ffdc7812,#0000 28%),#00000047;position:absolute;inset:0}[data-theme=light] .dark-firefly-background{opacity:0;visibility:hidden}.light-season-background{z-index:0;pointer-events:none;opacity:0;visibility:hidden;background-color:#0000;background-image:linear-gradient(#fffae84d,#ffeec461),url(/light.webp);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:0;overflow:hidden}.light-season-background:before{content:"";background:radial-gradient(circle at 16% 12%,#ffffff9e,#0000 24%),radial-gradient(circle at 82% 18%,#ffc76833,#0000 30%),linear-gradient(#ffffff14,#ffe8b92e);position:absolute;inset:0}[data-theme=light] .light-season-background{opacity:1;visibility:visible}.falling-leaf{top:-12vh;left:var(--leaf-left);width:var(--leaf-size);height:calc(var(--leaf-size) * .58);opacity:.82;transform:rotate(var(--leaf-rotate));animation:leafFall var(--leaf-duration) linear infinite;animation-delay:var(--leaf-delay);background:linear-gradient(135deg,#ffeb96eb,#e0782eeb 58%,#8b4d23e6);border-radius:85% 0;position:fixed;box-shadow:0 0 14px #c1722d29}.falling-leaf:before{content:"";background:#6e482273;width:1px;height:86%;position:absolute;top:8%;left:47%;transform:rotate(-42deg)}.falling-leaf:first-child{--leaf-left:4vw;--leaf-size:17px;--leaf-duration:13s;--leaf-delay:-2s;--leaf-rotate:18deg}.falling-leaf:nth-child(2){--leaf-left:11vw;--leaf-size:24px;--leaf-duration:18s;--leaf-delay:-9s;--leaf-rotate:62deg}.falling-leaf:nth-child(3){--leaf-left:18vw;--leaf-size:15px;--leaf-duration:15s;--leaf-delay:-5s;--leaf-rotate:-24deg}.falling-leaf:nth-child(4){--leaf-left:26vw;--leaf-size:21px;--leaf-duration:20s;--leaf-delay:-12s;--leaf-rotate:40deg}.falling-leaf:nth-child(5){--leaf-left:34vw;--leaf-size:18px;--leaf-duration:14s;--leaf-delay:-7s;--leaf-rotate:-58deg}.falling-leaf:nth-child(6){--leaf-left:42vw;--leaf-size:26px;--leaf-duration:22s;--leaf-delay:-16s;--leaf-rotate:28deg}.falling-leaf:nth-child(7){--leaf-left:49vw;--leaf-size:16px;--leaf-duration:16s;--leaf-delay:-3s;--leaf-rotate:72deg}.falling-leaf:nth-child(8){--leaf-left:56vw;--leaf-size:23px;--leaf-duration:19s;--leaf-delay:-10s;--leaf-rotate:-35deg}.falling-leaf:nth-child(9){--leaf-left:63vw;--leaf-size:19px;--leaf-duration:15s;--leaf-delay:-1s;--leaf-rotate:50deg}.falling-leaf:nth-child(10){--leaf-left:70vw;--leaf-size:27px;--leaf-duration:23s;--leaf-delay:-14s;--leaf-rotate:-18deg}.falling-leaf:nth-child(11){--leaf-left:77vw;--leaf-size:15px;--leaf-duration:17s;--leaf-delay:-8s;--leaf-rotate:80deg}.falling-leaf:nth-child(12){--leaf-left:84vw;--leaf-size:22px;--leaf-duration:21s;--leaf-delay:-18s;--leaf-rotate:-48deg}.falling-leaf:nth-child(13){--leaf-left:91vw;--leaf-size:18px;--leaf-duration:14s;--leaf-delay:-6s;--leaf-rotate:24deg}.falling-leaf:nth-child(14){--leaf-left:97vw;--leaf-size:25px;--leaf-duration:20s;--leaf-delay:-11s;--leaf-rotate:-66deg}.falling-leaf:nth-child(15){--leaf-left:8vw;--leaf-size:20px;--leaf-duration:24s;--leaf-delay:-20s;--leaf-rotate:34deg}.falling-leaf:nth-child(16){--leaf-left:38vw;--leaf-size:14px;--leaf-duration:13s;--leaf-delay:-4s;--leaf-rotate:-30deg}.falling-leaf:nth-child(17){--leaf-left:67vw;--leaf-size:21px;--leaf-duration:18s;--leaf-delay:-15s;--leaf-rotate:58deg}.falling-leaf:nth-child(18){--leaf-left:88vw;--leaf-size:16px;--leaf-duration:16s;--leaf-delay:-13s;--leaf-rotate:-12deg}@keyframes leafFall{0%{transform:translate3d(0, -12vh, 0) rotate(var(--leaf-rotate));opacity:0}10%{opacity:.86}35%{transform:translate3d(-6vw, 32vh, 0) rotate(calc(var(--leaf-rotate) + 120deg))}68%{transform:translate3d(7vw, 72vh, 0) rotate(calc(var(--leaf-rotate) + 260deg))}to{transform:translate3d(-3vw, 112vh, 0) rotate(calc(var(--leaf-rotate) + 430deg));opacity:0}}.firefly{pointer-events:none;z-index:1;width:.4vw;min-width:3px;height:.4vw;min-height:3px;margin:-.2vw 0 0 9.8vw;animation:none;position:fixed;top:50%;left:50%}.firefly:before,.firefly:after{content:"";transform-origin:-10vw;border-radius:50%;width:100%;height:100%;position:absolute}.firefly:before{opacity:.4;background:#000000a6;animation:infinite alternate fireflyDrift}.firefly:after{opacity:0;background:#fff8c8;animation:infinite alternate fireflyDrift,infinite fireflyFlash;box-shadow:0 0 #ffec5c00}.firefly:nth-child(15n+1){animation-name:fireflyMove1}.firefly:nth-child(15n+1):before{animation-duration:12s}.firefly:nth-child(15n+1):after{animation-duration:12s,7.2s;animation-delay:0s,.9s}.firefly:nth-child(15n+2){animation-name:fireflyMove2}.firefly:nth-child(15n+2):before{animation-duration:17s}.firefly:nth-child(15n+2):after{animation-duration:17s,9.8s;animation-delay:0s,2.8s}.firefly:nth-child(15n+3){animation-name:fireflyMove3}.firefly:nth-child(15n+3):before{animation-duration:12s}.firefly:nth-child(15n+3):after{animation-duration:12s,8.9s;animation-delay:0s,4.9s}.firefly:nth-child(15n+4){animation-name:fireflyMove4}.firefly:nth-child(15n+4):before{animation-duration:18s}.firefly:nth-child(15n+4):after{animation-duration:18s,11s;animation-delay:0s,5.4s}.firefly:nth-child(15n+5){animation-name:fireflyMove5}.firefly:nth-child(15n+5):before{animation-duration:15s}.firefly:nth-child(15n+5):after{animation-duration:15s,11.5s;animation-delay:0s,4.5s}.firefly:nth-child(15n+6){animation-name:fireflyMove6}.firefly:nth-child(15n+6):before{animation-duration:20s}.firefly:nth-child(15n+6):after{animation-duration:20s,7.7s;animation-delay:0s,3s}.firefly:nth-child(15n+7){animation-name:fireflyMove7}.firefly:nth-child(15n+7):before{animation-duration:16s}.firefly:nth-child(15n+7):after{animation-duration:16s,8.6s;animation-delay:0s,1.2s}.firefly:nth-child(15n+8){animation-name:fireflyMove8}.firefly:nth-child(15n+8):before{animation-duration:16s}.firefly:nth-child(15n+8):after{animation-duration:16s,9.3s;animation-delay:0s,6.4s}.firefly:nth-child(15n+9){animation-name:fireflyMove9}.firefly:nth-child(15n+9):before{animation-duration:14s}.firefly:nth-child(15n+9):after{animation-duration:14s,7.8s;animation-delay:0s,3.1s}.firefly:nth-child(15n+10){animation-name:fireflyMove10}.firefly:nth-child(15n+10):before{animation-duration:19s}.firefly:nth-child(15n+10):after{animation-duration:19s,10.9s;animation-delay:0s,.7s}.firefly:nth-child(15n+11){animation-name:fireflyMove11}.firefly:nth-child(15n+11):before{animation-duration:12s}.firefly:nth-child(15n+11):after{animation-duration:12s,8.3s;animation-delay:0s,4.7s}.firefly:nth-child(15n+12){animation-name:fireflyMove12}.firefly:nth-child(15n+12):before{animation-duration:15s}.firefly:nth-child(15n+12):after{animation-duration:15s,12s;animation-delay:0s,5.6s}.firefly:nth-child(15n+13){animation-name:fireflyMove13}.firefly:nth-child(15n+13):before{animation-duration:11s}.firefly:nth-child(15n+13):after{animation-duration:11s,7.4s;animation-delay:0s,2.1s}.firefly:nth-child(15n+14){animation-name:fireflyMove14}.firefly:nth-child(15n+14):before{animation-duration:17s}.firefly:nth-child(15n+14):after{animation-duration:17s,9.7s;animation-delay:0s,4.3s}.firefly:nth-child(15n+15){animation-name:fireflyMove15}.firefly:nth-child(15n+15):before{animation-duration:13s}.firefly:nth-child(15n+15):after{animation-duration:13s,6.6s;animation-delay:0s,1.3s}@keyframes fireflyDrift{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fireflyFlash{0%,30%,to{opacity:0;box-shadow:0 0 #ffec5c00}5%{opacity:1;box-shadow:0 0 2vw .4vw #ffec5ceb}}@keyframes fireflyMove1{0%{transform:translate(-34vw)translateY(18vh)scale(.42)}20%{transform:translate(22vw)translateY(-31vh)scale(.88)}40%{transform:translate(45vw)translateY(16vh)scale(.54)}60%{transform:translate(-18vw)translateY(-42vh)scale(.96)}80%{transform:translate(-47vw)translateY(35vh)scale(.62)}to{transform:translate(12vw)translateY(44vh)scale(.78)}}@keyframes fireflyMove2{0%{transform:translate(41vw)translateY(-14vh)scale(.7)}25%{transform:translate(-26vw)translateY(-38vh)scale(1)}50%{transform:translate(-43vw)translateY(8vh)scale(.45)}75%{transform:translate(31vw)translateY(37vh)scale(.84)}to{transform:translate(5vw)translateY(-48vh)scale(.58)}}@keyframes fireflyMove3{0%{transform:translate(-8vw)translateY(-46vh)scale(.5)}20%{transform:translate(36vw)translateY(-21vh)scale(.93)}45%{transform:translate(11vw)translateY(42vh)scale(.66)}70%{transform:translate(-39vw)translateY(27vh)scale(.82)}to{transform:translate(47vw)translateY(3vh)scale(.48)}}@keyframes fireflyMove4{0%{transform:translate(15vw)translateY(40vh)scale(.95)}18%{transform:translate(-44vw)translateY(12vh)scale(.52)}38%{transform:translate(-7vw)translateY(-35vh)scale(.78)}64%{transform:translate(49vw)translateY(-9vh)scale(.44)}to{transform:translate(-30vw)translateY(-47vh)scale(.89)}}@keyframes fireflyMove5{0%{transform:translate(-48vw)translateY(-5vh)scale(.64)}22%{transform:translate(-12vw)translateY(46vh)scale(.9)}44%{transform:translate(34vw)translateY(24vh)scale(.5)}72%{transform:translate(19vw)translateY(-43vh)scale(.76)}to{transform:translate(-36vw)translateY(16vh)scale(1)}}@keyframes fireflyMove6{0%{transform:translate(28vw)translateY(32vh)scale(.5)}24%{transform:translate(44vw)translateY(-30vh)scale(.86)}48%{transform:translate(-20vw)translateY(-44vh)scale(.62)}74%{transform:translate(-46vw)translateY(30vh)scale(.94)}to{transform:translate(9vw)translateY(5vh)scale(.45)}}@keyframes fireflyMove7{0%{transform:translate(-24vw)translateY(-28vh)scale(.8)}20%{transform:translate(3vw)translateY(47vh)scale(.52)}42%{transform:translate(48vw)translateY(28vh)scale(.92)}68%{transform:translate(17vw)translateY(-17vh)scale(.57)}to{transform:translate(-49vw)translateY(2vh)scale(.74)}}@keyframes fireflyMove8{0%{transform:translate(6vw)translateY(12vh)scale(.6)}25%{transform:translate(-37vw)translateY(-20vh)scale(.88)}50%{transform:translate(23vw)translateY(-49vh)scale(.47)}75%{transform:translate(43vw)translateY(39vh)scale(.98)}to{transform:translate(-14vw)translateY(30vh)scale(.66)}}@keyframes fireflyMove9{0%{transform:translate(47vw)translateY(4vh)scale(.48)}21%{transform:translate(19vw)translateY(45vh)scale(.82)}43%{transform:translate(-31vw)translateY(33vh)scale(.58)}71%{transform:translate(-41vw)translateY(-34vh)scale(.92)}to{transform:translate(30vw)translateY(-22vh)scale(.7)}}@keyframes fireflyMove10{0%{transform:translate(-5vw)translateY(49vh)scale(.96)}20%{transform:translate(-45vw)translateY(-8vh)scale(.54)}40%{transform:translate(39vw)translateY(-41vh)scale(.76)}65%{transform:translate(11vw)translateY(20vh)scale(.44)}to{transform:translate(-28vw)translateY(-24vh)scale(.88)}}@keyframes fireflyMove11{0%{transform:translate(33vw)translateY(-47vh)scale(.62)}23%{transform:translate(-18vw)translateY(-12vh)scale(.92)}46%{transform:translate(-34vw)translateY(43vh)scale(.5)}73%{transform:translate(46vw)translateY(18vh)scale(.86)}to{transform:translate(2vw)translateY(-3vh)scale(.58)}}@keyframes fireflyMove12{0%{transform:translate(-42vw)translateY(39vh)scale(.74)}19%{transform:translate(27vw)translateY(30vh)scale(.48)}39%{transform:translate(41vw)translateY(-26vh)scale(.96)}69%{transform:translate(-9vw)translateY(-49vh)scale(.66)}to{transform:translate(-35vw)translateY(1vh)scale(.84)}}@keyframes fireflyMove13{0%{transform:translate(21vw)translateY(-6vh)scale(.44)}24%{transform:translate(49vw)translateY(22vh)scale(.78)}48%{transform:translate(-4vw)translateY(37vh)scale(.56)}76%{transform:translate(-47vw)translateY(-31vh)scale(.96)}to{transform:translate(14vw)translateY(-45vh)scale(.68)}}@keyframes fireflyMove14{0%{transform:translate(-16vw)translateY(6vh)scale(.86)}22%{transform:translate(-38vw)translateY(48vh)scale(.52)}45%{transform:translate(8vw)translateY(-38vh)scale(.98)}70%{transform:translate(44vw)translateY(-2vh)scale(.6)}to{transform:translate(-27vw)translateY(-44vh)scale(.78)}}@keyframes fireflyMove15{0%{transform:translate(38vw)translateY(36vh)scale(.5)}25%{transform:translate(-22vw)translateY(19vh)scale(.9)}50%{transform:translate(-49vw)translateY(-17vh)scale(.62)}75%{transform:translate(25vw)translateY(-46vh)scale(.82)}to{transform:translate(48vw)translateY(11vh)scale(.46)}}@media (prefers-reduced-motion:reduce){.firefly,.firefly:before,.firefly:after,.falling-leaf{animation:none}.firefly:after{opacity:.45;box-shadow:0 0 1.4vw .22vw #ffec5ca6}}.portfolio-sidebar{z-index:2;-webkit-backdrop-filter:blur(16px);background:#0a0a0a57;border-right:1px solid #ffffff14;flex-direction:column;width:350px;height:100vh;padding:30px 25px;display:flex;position:fixed;overflow-y:auto}[data-theme=light] .portfolio-sidebar{-webkit-backdrop-filter:blur(14px);background:#ffffff94;border-right-color:#ffffff9e}.profile-card{flex-direction:column;justify-content:space-between;align-items:center;width:100%;height:100%;min-height:max-content;display:flex}.profile-header{flex-direction:column;flex-shrink:0;align-items:center;width:100%;display:flex;position:relative}.profile-avatar{background:var(--bg-surface-tertiary);border:3px solid var(--bg-surface-tertiary);cursor:pointer;border-radius:20px;outline:none;width:120px;height:120px;margin-bottom:15px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.profile-avatar:hover,.profile-avatar:focus-visible{border-color:var(--accent-color);box-shadow:0 8px 24px color-mix(in srgb, var(--accent-color) 20%, transparent);transform:scale(1.05)}.profile-avatar .avatar-img{object-fit:cover;backface-visibility:hidden;width:100%;height:100%;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .5s;position:absolute;inset:0}.profile-avatar .avatar-img.original{opacity:1;z-index:2}.profile-avatar .avatar-img.cartoon{opacity:0;z-index:1}.profile-avatar.show-cartoon .avatar-img.original{opacity:0}.profile-avatar.show-cartoon .avatar-img.cartoon{opacity:1;z-index:3}.profile-avatar:active .avatar-img{transform:rotate(10deg)scale(.95)}.profile-name{color:var(--text-primary);text-align:center;margin:0 0 8px;font-size:22px;font-weight:600}.profile-title{color:var(--text-tertiary);background:var(--bg-surface-tertiary);text-align:center;border-radius:8px;margin:0 0 20px;padding:5px 14px;font-size:13px}.profile-info{background:var(--bg-surface-secondary);border-radius:16px;flex-direction:column;flex-shrink:0;justify-content:center;width:100%;margin-bottom:20px;padding:18px;display:flex}.profile-info-wrapper{width:100%;max-height:0;transition:max-height .5s ease-in-out;overflow:hidden}.portfolio-sidebar.expanded .profile-info-wrapper{border-top:1px solid var(--border-color);max-height:500px;margin-top:20px;padding-top:20px}.info-item{border-bottom:1px solid var(--border-color);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.info-item:last-child{border-bottom:none;padding-bottom:0}.info-item:first-child{padding-top:0}.info-icon{color:var(--accent-color);flex-shrink:0;margin-top:2px;font-size:16px}.info-item>div{flex-direction:column;flex:1;gap:3px;display:flex}.info-label{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;font-size:10px;font-weight:500}.info-value{color:var(--text-secondary);word-break:break-all;font-size:12px;line-height:1.4;text-decoration:none}.info-value:hover{color:var(--accent-color)}.profile-social{flex-shrink:0;gap:12px;margin-top:15px;display:flex}.profile-social a{background:var(--bg-surface-tertiary);width:38px;height:38px;color:var(--text-tertiary);border-radius:10px;justify-content:center;align-items:center;font-size:16px;transition:all .3s;display:flex}.profile-social a:hover{background:var(--accent-color);color:var(--active-btn-text);transform:translateY(-3px)}.portfolio-main{z-index:1;flex:1;width:100%;max-width:calc(100vw - 350px);margin-left:350px;padding:40px 60px;position:relative;overflow-x:hidden}.portfolio-card-wrapper{box-shadow:0 10px 30px var(--shadow-color);-webkit-backdrop-filter:blur(16px);background:#0a0a0a57;border:1px solid #ffffff14;border-radius:20px}[data-theme=light] .portfolio-card-wrapper{-webkit-backdrop-filter:blur(14px);background:#ffffff94;border-color:#ffffff9e;box-shadow:0 14px 36px #7e54281f}.animated-border-box{border-radius:20px;padding:3px;position:relative;overflow:hidden;background:linear-gradient(45deg,#408a71,#408a71,#b0e4cc,#408a71,#408a71) 0 0/400% 400%!important;border:none!important;animation:6s infinite gradientMove!important}.card-inner-container{background:0 0;border-radius:19px;flex-direction:column;width:100%;height:100%;display:flex}[data-theme=light] .card-inner-container{background:0 0}@keyframes gradientMove{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.portfolio-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:30px;margin-bottom:0;padding:25px 30px;display:flex;background:0 0!important}[data-theme=light] .portfolio-header{border-bottom-color:#7e542824}.portfolio-content{min-height:calc(100vh - 250px);padding:40px;background:0 0!important}.page-title{color:var(--text-primary);flex-shrink:0;margin:0;padding-bottom:8px;font-size:32px;font-weight:700;position:relative}.page-title:after{content:"";background:var(--accent-color);border-radius:3px;width:50px;height:3px;position:absolute;bottom:0;left:0}.portfolio-dock{background:var(--dock-bg);-webkit-backdrop-filter:blur(12px);padding:var(--gap,6px);gap:var(--gap,6px);border:1px solid var(--dock-border);box-shadow:0 4px 20px var(--shadow-color);border-radius:16px;display:flex;position:relative}.dock-item{width:var(--item-width,70px);height:var(--item-height,50px);color:var(--text-tertiary);cursor:pointer;z-index:1;background:0 0;border:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;transition:color .3s;display:flex;position:relative}.dock-item:hover{color:var(--text-secondary)}.dock-item.active{color:var(--active-btn-text)}.dock-icon{pointer-events:none;margin-bottom:1px;font-size:18px}.dock-label{pointer-events:none;white-space:nowrap;font-size:10px;font-weight:500}.dock-indicator{top:var(--gap,6px);left:var(--gap,6px);width:var(--item-width,70px);height:var(--item-height,50px);background:var(--accent-color);z-index:0;transform:translateX(calc(var(--active-index,0) * (var(--item-width,70px) + var(--gap,6px))));pointer-events:none;border-radius:12px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275);position:absolute}.ghost-icon{color:var(--accent-color);opacity:0;pointer-events:none;z-index:10;font-size:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ghost-icon.floating{animation:.8s ease-out forwards ghostFloat}@keyframes ghostFloat{0%{opacity:.9;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-180%)scale(1.5)}}.portfolio-nav{background:0 0;border-radius:0;flex-wrap:wrap;gap:10px;margin:0;padding:0;display:flex}.portfolio-nav button{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .3s}.portfolio-nav button:hover{color:var(--text-secondary);background:var(--bg-surface-tertiary)}.portfolio-nav button.active{background:var(--accent-color);color:var(--active-btn-text)}.content-section{width:100%;max-width:100%;margin-bottom:50px;overflow-x:hidden}.content-section:last-child{margin-bottom:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-skeleton{flex-direction:column;gap:14px;display:flex}.skeleton-section{pointer-events:none}.skeleton-line,.skeleton-icon,.skeleton-service-card,.skeleton-skill-pill,.skeleton-skill-icon{background:linear-gradient(90deg, var(--bg-surface-secondary) 0%, var(--bg-surface-tertiary) 45%, var(--bg-surface-secondary) 90%);background-size:220% 100%;animation:1.4s ease-in-out infinite skeletonLoading}.skeleton-line{border-radius:999px;width:100%;height:14px}.skeleton-title{width:min(260px,70%);height:32px;margin-bottom:30px}.skeleton-paragraph{flex-direction:column;gap:14px;margin-bottom:28px;display:flex}.skeleton-short{width:62%}.skeleton-services-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.skeleton-service-card{border:1px solid var(--border-color);border-radius:16px;gap:16px;min-height:138px;padding:24px;display:flex}.skeleton-icon{border-radius:14px;flex-shrink:0;width:48px;height:48px}.skeleton-card-copy{flex-direction:column;flex:1;gap:12px;padding-top:4px;display:flex}.skeleton-card-title{width:48%;height:18px}.skeleton-skill-track{gap:20px;display:flex;overflow:hidden}.skeleton-skill-pill{border:1px solid var(--border-color);border-radius:12px;align-items:center;gap:12px;min-width:160px;padding:14px 24px;display:flex}.skeleton-skill-icon{border-radius:8px;flex-shrink:0;width:28px;height:28px}.skeleton-skill-name{width:90px}@keyframes skeletonLoading{0%{background-position:120% 0}to{background-position:-120% 0}}.section-title{color:var(--text-primary);margin-bottom:30px;padding-bottom:15px;font-size:28px;font-weight:700;position:relative}.section-title:after{content:"";background:linear-gradient(90deg, var(--accent-color), transparent);width:50px;height:3px;position:absolute;bottom:0;left:0}.about-text{color:var(--text-body-gray);word-wrap:break-word;overflow-wrap:break-word;max-width:100%;margin-bottom:20px;font-size:15px;line-height:1.8}.about-content{max-width:100%;overflow:hidden}.services-grid{grid-template-columns:repeat(2,1fr);gap:20px;max-width:100%;margin-top:30px;display:grid;overflow:hidden}.service-card{background:var(--bg-surface-secondary);border:1px solid var(--border-color);box-sizing:border-box;border-radius:20px;gap:20px;max-width:100%;padding:25px;transition:all .4s cubic-bezier(.165,.84,.44,1);display:flex;position:relative;overflow:hidden}.service-card:hover{border-color:var(--service-color,var(--accent-color));box-shadow:0 12px 30px #00000040, 0 0 20px color-mix(in srgb, var(--service-color,var(--accent-color)) 15%, transparent);background:var(--bg-surface-secondary-hover);transform:translateY(-6px)}@media (min-width:769px){.services-grid .service-card:last-child:nth-child(odd){grid-column:1/span 2;justify-self:center;width:calc(50% - 10px)}}@media (min-width:769px) and (max-width:992px){.services-grid .service-card:last-child:nth-child(odd){width:calc(50% - 7.5px)}}.service-icon-container{background:color-mix(in srgb, var(--service-color,var(--accent-color)) 8%, transparent);border:1px solid color-mix(in srgb, var(--service-color,var(--accent-color)) 20%, transparent);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;transition:all .4s;display:flex;position:relative;overflow:hidden}.service-card:hover .service-icon-container{background:color-mix(in srgb, var(--service-color,var(--accent-color)) 12%, transparent);border-color:var(--service-color,var(--accent-color));box-shadow:0 0 15px color-mix(in srgb, var(--service-color,var(--accent-color)) 25%, transparent);transform:scale(1.05)rotate(5deg)}.service-content{flex:1;min-width:0;overflow:hidden}.service-title{color:var(--text-primary);word-wrap:break-word;overflow-wrap:break-word;margin:0 0 10px;font-size:16px;font-weight:600}.service-description{color:var(--text-tertiary);word-wrap:break-word;overflow-wrap:break-word;max-width:100%;margin:0;font-size:13px;line-height:1.6}.skills-section-title{color:var(--text-primary);margin-top:40px;margin-bottom:20px;font-size:20px;font-weight:600}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;max-width:100%;margin-top:30px;display:grid;overflow:hidden}.skill-item-modern{background:var(--bg-surface-secondary);box-sizing:border-box;border-radius:12px;max-width:100%;padding:20px;overflow:hidden}.skill-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.skill-name{color:var(--text-secondary);font-size:14px;font-weight:500}.skill-percentage{color:var(--text-tertiary);font-size:13px}.skill-bar{background:var(--bg-surface-tertiary);border-radius:10px;height:8px;overflow:hidden}.skill-progress{background:var(--skill-progress-gradient);border-radius:10px;height:100%;transition:width 1s}.resume-container{width:100%}.timeline{padding-left:40px;position:relative}.timeline:before{content:"";background:var(--border-color);width:2px;position:absolute;top:0;bottom:0;left:0}.timeline-item{margin-bottom:40px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-marker{background:var(--accent-color);border:3px solid var(--timeline-marker-border);z-index:1;border-radius:50%;width:12px;height:12px;position:absolute;top:0;left:-44px}.timeline-content{background:var(--bg-surface-secondary);border-left:3px solid var(--accent-color);border-radius:12px;padding:25px}.timeline-period{color:var(--accent-color);background:var(--bg-accent-alpha);border-radius:6px;margin-bottom:12px;padding:4px 12px;font-size:12px;display:inline-block}.timeline-title{color:var(--text-primary);margin:10px 0 5px;font-size:18px;font-weight:600}.timeline-subtitle{color:var(--text-tertiary);margin:0 0 15px;font-size:14px;font-weight:400}.timeline-description{color:var(--text-body-gray);margin:0;font-size:14px;line-height:1.6}.certifications-grid-modern{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:25px;max-width:100%;margin-top:30px;display:grid}.certification-flip-card{perspective:1100px;opacity:0;min-height:360px;animation:certCardIn .5s ease var(--cert-delay,0s) forwards;outline:none}.certification-flip-inner{width:100%;height:100%;min-height:360px;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.4,.2,.2,1);position:relative}.certification-flip-card:hover .certification-flip-inner,.certification-flip-card:focus-within .certification-flip-inner,.certification-flip-card:focus .certification-flip-inner{transform:rotateY(180deg)}.certification-face{backface-visibility:hidden;border:1px solid var(--border-color);box-shadow:0 12px 32px var(--shadow-color);border-radius:16px;position:absolute;inset:0;overflow:hidden}.certification-front{background:linear-gradient(180deg, color-mix(in srgb, var(--accent-color) 8%, transparent), transparent 34%), var(--bg-surface-secondary);pointer-events:auto}.certification-front:after{content:"";pointer-events:none;background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--accent-color) 16%, transparent), transparent 30%), linear-gradient(145deg, transparent, #ffffff08);position:absolute;inset:0}.certification-back{background:linear-gradient(145deg, color-mix(in srgb, var(--accent-color) 18%, transparent), transparent 42%), var(--dialog-bg);pointer-events:none;flex-direction:column;justify-content:space-between;gap:14px;padding:24px;display:flex;transform:rotateY(180deg)}.certification-flip-card:hover .certification-front,.certification-flip-card:focus-within .certification-front,.certification-flip-card:focus .certification-front{pointer-events:none}.certification-flip-card:hover .certification-back,.certification-flip-card:focus-within .certification-back,.certification-flip-card:focus .certification-back{pointer-events:auto}[data-theme=light] .certification-front,[data-theme=light] .certification-back{background:linear-gradient(145deg, #ffffffc7, #fff8e89e), color-mix(in srgb, var(--accent-color) 8%, transparent);border-color:#7e542824;box-shadow:0 12px 32px #7e54281f}.certification-image{background:var(--bg-surface-tertiary);border-bottom:1px solid var(--border-color);width:100%;height:190px;position:relative;overflow:hidden}.certification-image:after{content:"";pointer-events:none;background:linear-gradient(#0000 42%,#0000008c);position:absolute;inset:0}.certification-image img{transition:transform .5s}.certification-flip-card:hover .certification-image img,.certification-flip-card:focus .certification-image img{transform:scale(1.05)}.cert-front-content{z-index:1;flex-direction:column;min-height:170px;padding:20px;display:flex;position:relative}.cert-issuer-tag{color:var(--accent-color);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.cert-card-title{color:var(--text-primary);margin:0 0 12px;font-size:16px;font-weight:600;line-height:1.4}.cert-card-meta{color:var(--text-tertiary);align-items:center;gap:15px;margin-bottom:16px;font-size:13px;display:flex}.cert-flip-hint{color:var(--text-tertiary);letter-spacing:.08em;text-transform:uppercase;margin-top:auto;font-size:11px;font-weight:700}.cert-back-icon{background:var(--accent-color);width:54px;height:54px;color:var(--active-btn-text);box-shadow:0 10px 24px color-mix(in srgb, var(--accent-color) 24%, transparent);border-radius:16px;justify-content:center;align-items:center;font-size:26px;display:flex}.cert-back-date{color:var(--text-tertiary);margin:0;font-size:13px}.cert-back-orbit{pointer-events:none;opacity:.18;position:absolute;inset:18px}.cert-back-orbit span{border:1px solid var(--accent-color);border-radius:999px;position:absolute}.cert-back-orbit span:first-child{width:110px;height:110px;top:-20px;right:-24px}.cert-back-orbit span:nth-child(2){width:72px;height:72px;bottom:42px;left:-18px}.cert-back-orbit span:nth-child(3){width:42px;height:42px;bottom:-10px;right:38px}.cert-card-actions{z-index:1;flex-direction:column;gap:10px;margin-top:auto;display:flex;position:relative}.cert-btn-action{cursor:pointer;border:1px solid var(--border-color);background:0 0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:transform .25s,background .25s,border-color .25s;display:inline-flex}.cert-btn-view{background:var(--bg-surface-tertiary);color:var(--text-primary)}.cert-btn-view:hover{background:var(--bg-surface-secondary-hover);border-color:var(--text-tertiary)}.cert-btn-verify{background:var(--accent-color);border-color:var(--accent-color);color:var(--active-btn-text)!important}.cert-btn-verify:hover{opacity:.9;transform:translateY(-1px)}@keyframes certCardIn{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.portfolio-filters{flex-wrap:wrap;gap:10px;margin-bottom:30px;display:flex}.filter-btn{background:var(--bg-surface-secondary);border:1px solid var(--border-color);color:var(--text-tertiary);cursor:pointer;text-transform:capitalize;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .3s}.filter-btn:hover{color:var(--text-secondary);border-color:var(--accent-color)}.filter-btn.active{background:var(--accent-color);color:var(--active-btn-text);border-color:var(--accent-color);font-weight:600}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:25px;max-width:100%;margin-top:30px;display:grid}.project-card-modern{perspective:1100px;opacity:0;min-height:430px;animation:certCardIn .5s ease var(--project-delay,0s) forwards;box-sizing:border-box;max-width:100%}.project-flip-trigger{width:100%;height:100%;min-height:430px;color:inherit;text-align:left;cursor:pointer;perspective:inherit;background:0 0;border:0;padding:0}.project-flip-trigger:focus-visible{outline:2px solid var(--project-color,var(--accent-color));outline-offset:5px;border-radius:16px}.project-flip-inner{width:100%;height:100%;min-height:430px;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.4,.2,.2,1);display:block;position:relative}.project-card-modern:hover .project-flip-inner,.project-card-modern:focus-within .project-flip-inner,.project-card-modern.is-expanded .project-flip-inner{transform:rotateY(180deg)}.project-face{backface-visibility:hidden;border:1px solid var(--border-color);box-shadow:0 12px 32px var(--shadow-color);border-radius:16px;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.project-front{background:linear-gradient(180deg, color-mix(in srgb, var(--project-color,var(--accent-color)) 9%, transparent), transparent 34%), var(--bg-surface-secondary);pointer-events:auto}.project-front:after{content:"";pointer-events:none;background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--project-color,var(--accent-color)) 18%, transparent), transparent 30%), linear-gradient(145deg, transparent, #ffffff08);position:absolute;inset:0}.project-back{background:linear-gradient(145deg, color-mix(in srgb, var(--project-color,var(--accent-color)) 18%, transparent), transparent 42%), var(--dialog-bg);pointer-events:none;gap:13px;padding:22px;transform:rotateY(180deg)}.project-card-modern:hover .project-front,.project-card-modern:focus-within .project-front,.project-card-modern.is-expanded .project-front{pointer-events:none}.project-card-modern:hover .project-back,.project-card-modern:focus-within .project-back,.project-card-modern.is-expanded .project-back{pointer-events:auto}[data-theme=light] .project-front,[data-theme=light] .project-back{background:linear-gradient(145deg, #fffc, #fff8e89e), color-mix(in srgb, var(--project-color,var(--accent-color)) 7%, transparent);border-color:#7e542824;box-shadow:0 12px 32px #7e54281f}.project-image{background:var(--bg-surface-tertiary);border-bottom:1px solid var(--border-color);width:100%;height:210px;display:block;position:relative;overflow:hidden}.project-image:after{content:"";pointer-events:none;background:linear-gradient(#0000 42%,#00000094);position:absolute;inset:0}.project-image img{transition:transform .5s}.project-card-modern:hover .project-image img,.project-card-modern.is-expanded .project-image img{transform:scale(1.05)}.project-front-content{z-index:1;flex-direction:column;min-height:220px;padding:20px;display:flex;position:relative}.project-category-tag{width:fit-content;max-width:100%;color:var(--project-color,var(--accent-color));text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:700}.project-card-title{color:var(--text-primary);margin:0 0 12px;font-size:17px;font-weight:700;line-height:1.35;display:block}.project-back-head{z-index:1;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:relative}.project-featured-badge{color:var(--active-btn-text);background:var(--project-color,var(--accent-color));border-radius:8px;flex-shrink:0;padding:5px 10px;font-size:11px;font-weight:700}.project-back-description{color:var(--text-body-gray);-webkit-line-clamp:5;z-index:1;-webkit-box-orient:vertical;font-size:13px;line-height:1.6;display:-webkit-box;position:relative;overflow:hidden}.project-tech{z-index:1;flex-wrap:wrap;gap:6px;display:flex;position:relative}.project-tech-back{max-height:76px;padding-right:2px;overflow:auto}.tech-tag{background:color-mix(in srgb, var(--project-color,var(--accent-color)) 16%, transparent);color:var(--project-color,var(--accent-color));border:1px solid color-mix(in srgb, var(--project-color,var(--accent-color)) 30%, transparent);border-radius:6px;padding:4px 10px;font-size:11px}.project-flip-hint{color:var(--text-tertiary);letter-spacing:.08em;text-transform:uppercase;margin-top:auto;font-size:11px;font-weight:700}.project-back-glow{background:color-mix(in srgb, var(--project-color,var(--accent-color)) 22%, transparent);filter:blur(4px);opacity:.45;pointer-events:none;border-radius:50%;width:160px;height:160px;position:absolute;top:-48px;right:-50px}.project-links-container{z-index:1;flex-direction:column;gap:10px;margin-top:auto;display:flex;position:relative}.project-btn{cursor:pointer;border:1px solid var(--border-color);border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .25s,background .25s,border-color .25s;display:inline-flex}.project-btn-primary{background:var(--project-color,var(--accent-color));border-color:var(--project-color,var(--accent-color));color:var(--active-btn-text)!important}.project-btn-secondary{background:var(--bg-surface-tertiary);color:var(--text-primary)}.project-btn:hover{transform:translateY(-1px)}.project-btn-secondary:hover{background:var(--bg-surface-secondary-hover);border-color:var(--text-tertiary)}.project-read-more-btn{color:var(--project-color,var(--accent-color));cursor:pointer;z-index:2;background:0 0;border:none;align-self:flex-start;margin:4px 0 10px;padding:0;font-size:12px;font-weight:700;text-decoration:underline;transition:opacity .2s}.project-read-more-btn:hover{opacity:.8}.blog-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;width:100%;margin-bottom:25px;display:flex}.blog-search-container{flex-shrink:0;width:100%;max-width:320px;position:relative}.blog-search-input{background:var(--bg-surface-secondary);border:1px solid var(--border-color);width:100%;color:var(--text-primary);border-radius:12px;outline:none;padding:11px 16px 11px 40px;font-family:inherit;font-size:14px;transition:all .3s}.blog-search-input:focus{border-color:var(--accent-color);box-shadow:0 0 12px var(--shadow-accent)}.blog-search-icon{color:var(--text-muted);pointer-events:none;font-size:16px;transition:color .3s;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.blog-search-input:focus+.blog-search-icon{color:var(--accent-color)}.blog-filters{margin-bottom:0!important;padding-bottom:0!important}@media (max-width:768px){.blog-controls{flex-direction:column;align-items:stretch;gap:15px}.blog-search-container{max-width:100%}}.blog-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:25px;margin-top:30px;display:grid}.blog-card{background:var(--bg-surface-secondary);cursor:pointer;border:1px solid var(--border-color);border-radius:16px;outline:none;flex-direction:column;min-height:445px;transition:all .3s;display:flex;overflow:hidden}.blog-card:hover,.blog-card:focus-visible{border-color:var(--accent-color);box-shadow:0 12px 32px var(--shadow-color);transform:translateY(-8px)}.blog-image{aspect-ratio:16/10;background:radial-gradient(circle at 50% 35%, var(--bg-surface-secondary-hover), var(--bg-surface-tertiary));width:100%;min-height:220px;position:relative;overflow:hidden}.blog-image img{transition:transform .5s}.blog-card:hover .blog-image img{transform:scale(1.1)}.blog-category{background:var(--accent-color);color:var(--active-btn-text);border-radius:8px;padding:6px 14px;font-size:12px;font-weight:600;position:absolute;top:15px;left:15px}.blog-content{flex-direction:column;flex:1;min-width:0;padding:25px;display:flex}.blog-meta{color:var(--text-tertiary);flex-wrap:wrap;gap:15px;margin-bottom:12px;font-size:12px;display:flex}.blog-meta span{align-items:center;gap:5px;display:inline-flex}.blog-title{color:var(--text-primary);overflow-wrap:anywhere;margin:0 0 12px;font-size:18px;font-weight:600;line-height:1.4}.blog-excerpt{color:var(--text-body-gray);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 15px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.blog-read-more{border:1px solid var(--border-color);width:fit-content;color:var(--accent-color);cursor:pointer;background:0 0;border-radius:8px;margin-top:auto;padding:10px 20px;font-size:13px;font-weight:500;transition:all .3s}.blog-read-more:hover{background:var(--accent-color);color:var(--active-btn-text);border-color:var(--accent-color)}.blog-dialog-overlay{z-index:10000;background:var(--dialog-overlay);opacity:0;visibility:hidden;-webkit-backdrop-filter:blur(10px);justify-content:center;align-items:center;padding:clamp(16px,4vw,40px);transition:opacity .25s,visibility .25s;display:flex;position:fixed;inset:0}.blog-dialog-overlay.show{opacity:1;visibility:visible}.blog-dialog{border:1px solid var(--border-color-alpha-hover);background:var(--dialog-bg);border-radius:16px;flex-direction:column;width:min(720px,100%);max-height:min(88dvh,760px);transition:transform .25s;display:flex;overflow:hidden;transform:translateY(18px)scale(.98);box-shadow:0 24px 70px #00000075}.blog-dialog.show{transform:translateY(0)scale(1)}.blog-dialog-header{background:radial-gradient(circle at 50% 35%, var(--bg-surface-secondary-hover), var(--bg-surface-tertiary));flex:none;width:100%;height:clamp(190px,32dvh,250px);position:relative;overflow:hidden}.blog-dialog-header img{object-position:center}.blog-dialog-gradient{z-index:1;background:linear-gradient(#00000014,#000000d6),linear-gradient(90deg,#0009,#0000 72%);position:absolute;inset:0}.dialog-close-btn{z-index:3;border:1px solid var(--dialog-close-border);background:var(--dialog-close-bg);width:38px;height:38px;color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(8px);border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:transform .2s,background .2s;display:inline-flex;position:absolute;top:18px;right:18px}.dialog-close-btn:hover,.dialog-close-btn:focus-visible{background:var(--accent-color);color:var(--active-btn-text);outline:none;transform:scale(1.06)}.blog-dialog-title{z-index:2;color:#fff;text-shadow:0 2px 14px #00000073;overflow-wrap:anywhere;margin:0;font-size:clamp(19px,3vw,28px);font-weight:800;line-height:1.2;position:absolute;bottom:clamp(16px,3vw,24px);left:clamp(18px,4vw,30px);right:76px}.blog-dialog-content{overscroll-behavior:contain;flex:1;min-height:0;padding:clamp(20px,4vw,30px);overflow-y:auto}.blog-dialog-meta{color:var(--text-tertiary);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:18px;font-size:13px;display:flex}.blog-dialog-meta span{align-items:center;gap:6px;display:inline-flex}.blog-dialog-category{background:var(--accent-color);border-radius:8px;padding:6px 12px;font-weight:700;color:var(--active-btn-text)!important}.blog-dialog-excerpt{color:var(--text-primary);margin:0 0 18px;font-size:15px;font-weight:600;line-height:1.7}.blog-dialog-body{white-space:pre-wrap;color:var(--text-body-gray);font-size:15px;line-height:1.85}.contact-container{max-width:800px}.contact-info-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:40px;display:grid}.contact-info-card{background:var(--bg-surface-secondary);border:1px solid var(--border-color);border-radius:12px;align-items:flex-start;gap:15px;padding:20px;transition:all .3s;display:flex}.contact-info-card:hover{border-color:var(--accent-color);background:var(--bg-surface-secondary-hover)}.contact-icon{background:var(--bg-accent-alpha);width:45px;height:45px;color:var(--accent-color);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.contact-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;font-size:12px}.contact-value{color:var(--text-secondary);margin:0;font-size:14px;text-decoration:none}.contact-value:hover{color:var(--accent-color)}.contact-form{background:var(--bg-surface-secondary);border:1px solid var(--border-color);border-radius:16px;padding:30px}.form-row{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.form-group{margin-bottom:25px}.form-group label{color:var(--text-secondary);margin-bottom:10px;font-size:13px;font-weight:500;display:block}.form-group input,.form-group textarea{background:var(--bg-surface);border:1px solid var(--border-color);width:100%;color:var(--text-secondary);border-radius:10px;padding:14px 16px;font-family:inherit;font-size:14px;transition:all .3s}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent-color);background:var(--bg-surface-secondary);outline:none}.form-group textarea{resize:vertical;min-height:120px}.submit-btn{background:var(--accent-color);width:100%;color:var(--active-btn-text);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:16px 32px;font-size:15px;font-weight:600;transition:all .3s;display:flex}.submit-btn:hover{background:var(--accent-hover-color);box-shadow:0 5px 15px var(--shadow-accent);transform:translateY(-2px)}.submit-btn:disabled{background:var(--text-muted);cursor:not-allowed;transform:none}.success-message{color:#10b981;text-align:center;background:#10b9811a;border:1px solid #10b9814d;border-radius:10px;margin-top:20px;padding:15px;font-size:14px}@media (max-width:1200px){.portfolio-sidebar{width:300px}.portfolio-main{max-width:calc(100vw - 300px);margin-left:300px;padding:30px 40px}.profile-avatar{width:100px;height:100px}.profile-controls-row{top:53px}.profile-controls-row .theme-toggle-btn{left:calc(50% - 99px)}.profile-controls-row .lang-switcher-container{left:calc(50% + 65px)}.services-grid{grid-template-columns:repeat(2,1fr)}.portfolio-header{padding:18px 25px}.page-title{font-size:28px}}.info-toggle-btn{display:none}@media (max-width:992px){.portfolio-modern{flex-direction:column}.portfolio-sidebar{width:100%;height:auto;padding:25px 20px 0;position:relative}.portfolio-sidebar.expanded{padding-bottom:25px}.info-toggle-btn{background:var(--bg-surface-tertiary);width:30px;height:30px;color:var(--accent-color);cursor:pointer;z-index:10;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .3s;display:flex;position:absolute;top:20px;right:20px}.info-toggle-btn svg{transition:transform .3s}.info-toggle-btn svg.rotated{transform:rotate(180deg)}.profile-header{flex-flow:wrap;align-items:center;gap:15px;width:100%;margin-bottom:10px;padding-bottom:15px;display:flex}.portfolio-sidebar.expanded .profile-header{margin-bottom:20px}.profile-avatar{flex-shrink:0;width:80px;height:80px;margin-bottom:0}.profile-text{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;display:flex}.profile-name{text-align:left;margin:0 0 8px;font-size:20px}.profile-title{text-align:left;margin:0}.profile-info{opacity:0;max-height:0;margin-bottom:0;padding:0 18px;transition:max-height .4s,opacity .3s,padding .3s;overflow:hidden}.profile-info.show{opacity:1;max-height:500px;margin-bottom:20px;padding:18px}.profile-social{opacity:0;max-height:0;margin-top:0;transition:max-height .4s,opacity .3s;overflow:hidden}.portfolio-sidebar.expanded .profile-social{opacity:1;max-height:100px;margin-top:15px}.portfolio-main{width:100%;max-width:100vw;margin-left:0;padding:15px 20px 80px;overflow-x:hidden}.portfolio-content{padding:30px 20px 100px;overflow-x:hidden}.portfolio-header{flex-direction:column;align-items:center;gap:20px;padding:20px}.page-title{font-size:26px}:root{--item-width:50px;--item-height:44px;--gap:4px}.portfolio-dock{width:max-content;max-width:95vw;box-shadow:0 10px 30px var(--shadow-color);z-index:9999;border-radius:20px;transition:transform .3s ease-in-out;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(0)}.portfolio-dock.dock-hidden{transform:translate(-50%)translateY(120%)}.dock-label{display:none}.dock-icon{margin-bottom:0;font-size:20px}.dock-indicator{border-radius:10px}.portfolio-nav button.active{background:var(--accent-color);color:var(--active-btn-text);border-radius:10px}.services-grid,.skeleton-services-grid{grid-template-columns:repeat(2,1fr);gap:15px}.skills-grid{grid-template-columns:repeat(2,1fr)}.certifications-grid,.certifications-grid-modern,.form-row{grid-template-columns:1fr}}@media (max-width:768px){.services-grid{grid-template-columns:1fr}}@media (max-width:576px){.section-title{font-size:24px}.portfolio-header{gap:15px;padding:15px}.page-title{font-size:22px}.page-title:after{width:40px}.portfolio-nav{gap:5px}.portfolio-nav button{padding:10px 16px;font-size:13px}.projects-grid,.skills-grid{grid-template-columns:1fr}.portfolio-main{padding:20px 15px}.portfolio-content{padding:25px 15px}.service-card{text-align:center;flex-direction:column;align-items:center;padding:20px}.skeleton-services-grid{grid-template-columns:1fr}.skeleton-service-card{flex-direction:column;min-height:156px;padding:20px}.service-icon{font-size:36px}}.portfolio-sidebar::-webkit-scrollbar{width:6px}.portfolio-sidebar::-webkit-scrollbar-track{background:var(--bg-surface)}.portfolio-sidebar::-webkit-scrollbar-thumb{background:var(--bg-surface-tertiary);border-radius:3px}.portfolio-sidebar::-webkit-scrollbar-thumb:hover{background:var(--bg-surface-secondary-hover)}.profile-controls-row{z-index:5;pointer-events:none;width:100%;display:block;position:absolute;top:63px;left:0;right:0;transform:translateY(-50%)}.profile-controls-row .theme-toggle-btn{pointer-events:auto;position:relative;top:-20px;left:calc(50% - 115px);transform:translateY(-50%)}.profile-controls-row .lang-switcher-container{pointer-events:auto;position:absolute;top:-50%;left:calc(50% + 81px);transform:translateY(-50%)}.theme-toggle-btn{color:var(--text-tertiary);cursor:pointer;background:#ffffff08;border:1px solid #ffffff0d;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:16px;transition:all .3s;display:flex}.theme-toggle-btn:hover{color:var(--text-primary);background:#ffffff14;transform:rotate(15deg)}@media (min-width:993px){.profile-controls-row .theme-toggle-btn:hover{transform:translateY(-50%)rotate(15deg)}}.lang-switcher-container{background:#ffffff08;border:1px solid #ffffff0d;border-radius:10px;justify-content:center;align-items:center;gap:4px;height:34px;padding:4px 6px;display:flex}.lang-btn{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:12px;font-weight:600;transition:all .2s}.lang-btn:hover{color:var(--text-primary)}.lang-btn.active{color:var(--accent-color);text-shadow:0 0 8px var(--shadow-accent)}.lang-divider{color:var(--border-color);font-size:12px}[data-theme=light] .theme-toggle-btn,[data-theme=light] .lang-switcher-container{background:#00000008;border:1px solid #0000000d}[data-theme=light] .theme-toggle-btn:hover{background:#0000000f}@media (max-width:992px){.profile-controls-row{z-index:5;pointer-events:auto;border-top:1px dashed var(--border-color);justify-content:space-between;align-items:center;width:100%;margin-top:15px;padding-top:15px;display:flex;position:relative;top:auto;left:auto;right:auto;transform:none}.profile-controls-row .theme-toggle-btn,.profile-controls-row .lang-switcher-container{position:relative;top:auto;left:auto;transform:none}}@keyframes sectionFadeIn{0%{opacity:0;filter:blur(4px);transform:translateY(22px)scale(.985)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.section-animate{animation:.5s cubic-bezier(.16,1,.3,1) forwards sectionFadeIn}.download-cv-btn{background:var(--accent-color);width:100%;color:var(--active-btn-text);cursor:pointer;box-shadow:0 4px 15px color-mix(in srgb, var(--accent-color) 25%, transparent);border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-top:20px;padding:12px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .35s cubic-bezier(.165,.84,.44,1);display:flex}.download-cv-btn:hover{background:var(--accent-hover-color);box-shadow:0 8px 25px color-mix(in srgb, var(--accent-color) 35%, transparent);transform:translateY(-2px)}.download-cv-btn:active{transform:translateY(0)}.scroll-to-top{border:1px solid var(--border-color);background:var(--bg-surface-secondary);width:48px;height:48px;color:var(--text-secondary);cursor:pointer;z-index:999;opacity:0;visibility:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;justify-content:center;align-items:center;transition:all .35s cubic-bezier(.165,.84,.44,1);display:flex;position:fixed;bottom:30px;right:30px;transform:translateY(12px);box-shadow:0 4px 20px #0003}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top:hover{background:var(--accent-color);color:var(--active-btn-text);border-color:var(--accent-color);box-shadow:0 8px 25px color-mix(in srgb, var(--accent-color) 30%, transparent);transform:translateY(-3px)}@media (max-width:768px){.scroll-to-top{width:42px;height:42px;bottom:90px;right:18px}}.not-found-page{background:var(--bg-body);text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.not-found-container{max-width:500px;animation:.6s cubic-bezier(.16,1,.3,1) forwards sectionFadeIn}.not-found-code{background:linear-gradient(135deg, var(--accent-color), var(--color-primary-dark));-webkit-text-fill-color:transparent;letter-spacing:-4px;-webkit-background-clip:text;background-clip:text;margin:0 0 10px;font-size:140px;font-weight:800;line-height:1}.not-found-title{color:var(--text-primary);margin:0 0 12px;font-size:24px;font-weight:700}.not-found-description{color:var(--text-tertiary);margin:0 0 35px;font-size:15px;line-height:1.7}.not-found-btn{background:var(--accent-color);color:var(--active-btn-text);box-shadow:0 4px 15px color-mix(in srgb, var(--accent-color) 25%, transparent);border:none;border-radius:12px;align-items:center;gap:8px;padding:14px 28px;font-size:15px;font-weight:600;text-decoration:none;transition:all .35s cubic-bezier(.165,.84,.44,1);display:inline-flex}.not-found-btn:hover{box-shadow:0 8px 25px color-mix(in srgb, var(--accent-color) 35%, transparent);transform:translateY(-2px)}.cv-modal-overlay{background:var(--dialog-overlay);-webkit-backdrop-filter:blur(12px);z-index:9999;justify-content:center;align-items:center;padding:20px;animation:.3s forwards fadeIn;display:flex;position:fixed;inset:0}.cv-modal-content{background:var(--dialog-bg);border:1px solid var(--border-color);border-radius:20px;flex-direction:column;width:100%;max-width:1000px;height:90vh;animation:.3s cubic-bezier(.34,1.56,.64,1) forwards scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 50px #0006}.cv-modal-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;padding:16px 24px;display:flex}.cv-modal-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.cv-modal-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.cv-lang-tabs{background:var(--bg-surface-secondary);border:1px solid var(--border-color);border-radius:10px;padding:4px;display:flex}.cv-lang-tab{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .25s}.cv-lang-tab:hover{color:var(--text-secondary)}.cv-lang-tab.active{background:var(--accent-color);color:var(--active-btn-text)}.cv-modal-btn{background:var(--bg-surface-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all .25s;display:inline-flex}.cv-modal-btn:hover{border-color:var(--accent-color);color:var(--text-primary);transform:translateY(-1px)}.cv-modal-btn.download-btn{background:var(--accent-color);color:var(--active-btn-text);border:none}.cv-modal-btn.download-btn:hover{background:var(--accent-hover-color);color:var(--active-btn-text)}.cv-modal-close{background:var(--dialog-close-bg);border:1px solid var(--dialog-close-border);color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .25s;display:flex}.cv-modal-close:hover{color:#fff;background:#ff3b30;border-color:#ff3b30;transform:rotate(90deg)}.cv-modal-body{background:#1e1e1e;flex-direction:column;flex:1;display:flex;position:relative}[data-theme=light] .cv-modal-body{background:#f1f5f9}.cv-iframe{border:none;flex:1;width:100%;height:100%}.cv-mobile-fallback{text-align:center;background:var(--bg-surface);color:var(--text-secondary);border-top:1px solid var(--border-color);flex-direction:column;justify-content:center;align-items:center;gap:15px;padding:30px 20px;display:none}.cv-fallback-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.fallback-btn{background:var(--accent-color);color:var(--active-btn-text);border-radius:10px;align-items:center;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .25s;display:inline-flex}.fallback-btn:hover{background:var(--accent-hover-color)}.fallback-btn.secondary{background:var(--bg-surface-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.fallback-btn.secondary:hover{border-color:var(--accent-color);color:var(--text-primary)}.form-group input.input-error,.form-group textarea.input-error{border-color:#ff3b30!important;box-shadow:0 0 8px #ff3b3033!important}.error-message-text{color:#ff453a;margin-top:6px;font-size:12px;font-weight:500;animation:.25s forwards fadeIn;display:block}[data-theme=light] .error-message-text{color:#ff3b30}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (max-width:768px){.cv-iframe{display:none}.cv-mobile-fallback{flex:1;display:flex}.cv-modal-content{height:auto;max-height:85vh}.cv-modal-header{padding:14px 18px}.cv-modal-title{font-size:16px}}.project-card-modern.is-desc-expanded,.project-card-modern.is-desc-expanded .project-flip-trigger,.project-card-modern.is-desc-expanded .project-flip-inner{height:auto!important;min-height:auto!important}.project-card-modern.is-desc-expanded .project-back{height:auto!important;min-height:430px!important;position:relative!important;inset:auto!important}.project-card-modern.is-desc-expanded .project-front{display:none!important}.project-back-description.expanded{-webkit-line-clamp:unset!important;max-height:none!important;display:block!important;overflow:visible!important}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ghost-icon.floating{animation:none!important;transform:none!important}.section-animate{opacity:1!important;filter:none!important;animation:none!important;transform:none!important}}.btn-loading-content{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-spinner{flex-shrink:0;font-size:16px;animation:1s linear infinite btnSpinnerRotate}@keyframes btnSpinnerRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
