.glide{position:relative;width:100%;box-sizing:border-box}.glide *{box-sizing:inherit}.glide__slides,.glide__track{overflow:hidden}.glide__slides{position:relative;width:100%;list-style:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d;touch-action:pan-Y;margin:0;padding:0;white-space:nowrap;display:flex;flex-wrap:nowrap;will-change:transform}.glide__slide,.glide__slides--dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}.glide__slide{width:100%;height:100%;flex-shrink:0;white-space:normal;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.glide__slide a{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-select:none;-ms-user-select:none}.glide__arrows,.glide__bullets{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.glide--rtl{direction:rtl}.glide__arrow{position:absolute;display:block;top:50%;z-index:2;color:#fff;text-transform:uppercase;padding:9px 12px;background-color:transparent;border:2px solid rgba(255,255,255,.5);border-radius:4px;box-shadow:0 .25em .5em 0 rgba(0,0,0,.1);text-shadow:0 .25em .5em rgba(0,0,0,.1);opacity:1;cursor:pointer;transition:opacity .15s ease,border .3s ease-in-out;transform:translateY(-50%);line-height:1}.glide__arrow:focus{outline:none}.glide__arrow:hover{border-color:#fff}.glide__arrow--left{left:2em}.glide__arrow--right{right:2em}.glide__arrow--disabled{opacity:.33}.glide__bullets{position:absolute;z-index:2;bottom:2em;left:50%;display:inline-flex;list-style:none;transform:translateX(-50%)}.glide__bullet{background-color:rgba(255,255,255,.5);width:9px;height:9px;padding:0;border-radius:50%;border:2px solid transparent;transition:all .3s ease-in-out;cursor:pointer;line-height:0;box-shadow:0 .25em .5em 0 rgba(0,0,0,.1);margin:0 .25em}.glide__bullet:focus{outline:none}.glide__bullet:focus,.glide__bullet:hover{border:2px solid #fff;background-color:rgba(255,255,255,.5)}.glide__bullet--active{background-color:#fff}.glide--swipeable{cursor:grab;cursor:-webkit-grab}.glide--dragging{cursor:grabbing;cursor:-webkit-grabbing}@font-face{font-family:fontello;src:url(/assets/css/font/fontello.eot?76575524);src:url(/assets/css/font/fontello.eot?76575524#iefix) format("embedded-opentype"),url(/assets/css/font/fontello.woff?76575524) format("woff"),url(/assets/css/font/fontello.ttf?76575524) format("truetype"),url(/assets/css/font/fontello.svg?76575524#fontello) format("svg");font-weight:400;font-style:normal}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@property --labs-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes labsCardBorderSpin{to{--labs-border-angle:1turn}}@keyframes labsCardFrameSpin{to{transform:translate(-50%,-50%) rotate(1turn)}}@keyframes donateHeartBeat{0%,45%,to{transform:scale(1)}15%{transform:scale(1.3)}30%{transform:scale(1.08)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes cardPopIn{0%{opacity:0;transform:translateY(60px) scale(.9)}60%{opacity:1;transform:translateY(-6px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dragonBubbleIn{0%{opacity:0;transform:translateY(8px) scale(.85)}70%{opacity:1;transform:translateY(-2px) scale(1.04)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes headingReveal{0%{opacity:0;transform:translateY(-30px);letter-spacing:.3em}to{opacity:1;transform:translateY(0);letter-spacing:normal}}:root{color-scheme:dark;--bg:#121213;--bg-hero:radial-gradient(at 40% 20%,#3d3e43,#000);--bg-hero-mobile:#121213;--text:#dfdde1;--text-strong:#ffffff;--text-muted:#cccccc;--text-dim:#999999;--accent:#4a6cf7;--card-border:#333333;--card-border-soft:rgba(255,255,255,0.08);--card-surface:linear-gradient(160deg,#26282d,#1a1b1f);--card-shadow:rgba(0,0,0,0.55);--card-highlight:rgba(255,255,255,0.06);--card-accent-glow:rgba(74,108,247,0.25);--tag-border:rgba(255,255,255,0.3);--invert-surface:#ffffff;--invert-text:#333333;--glass-bg:rgba(30,31,36,0.55);--glass-active:rgba(255,255,255,0.12);--particle-dim:#999999}body{background-color:var(--bg);font-family:Poppins,Courier New,Courier,monospace;font-size:16px;color:var(--text);margin:0}h2{font-size:2.5rem;text-transform:uppercase}a{color:var(--text-strong);text-decoration:none;transition:color .3s ease}a:hover{color:var(--text)}ul{list-style:none;margin:0;padding:0}.col-4{width:33.3333333333%}.col-8{width:66.6666666667%}.text-gray{color:var(--text-dim)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.color-gray{color:var(--text-dim)}.text-center{text-align:center}.text-left{text-align:left}.uppercase{text-transform:uppercase}.justify-center{justify-content:center}.item-center{align-items:center}.mt-20{margin-top:20px}.mt-40{margin-top:40px}.mt-80{margin-top:80px}.mr-40{margin-right:40px}.hide{display:none}.main-container{text-align:center;margin:0 auto;justify-content:center;max-width:1200px;padding:0 20px}@media screen and (max-width:767px){.main-container{width:100%;padding:0 20px;box-sizing:border-box}}.flex{display:flex;flex-wrap:wrap;gap:20px}.flex-col{flex-direction:column}.flex-center{align-items:center;justify-content:center}@media screen and (max-width:767px){.flex-mobile-col{flex-direction:column}}.inline-flex{display:inline-flex;flex-wrap:nowrap}.icon{font-family:fontello;font-style:normal;font-weight:400;text-decoration:inherit;width:1em;margin:0 .2em;text-align:center;opacity:.8;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1em;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn,.icon{display:inline-block}.btn{min-width:200px;position:relative;z-index:200;border:1px solid var(--invert-surface);padding:10px 20px;line-height:28px;color:var(--invert-surface);text-transform:uppercase;font-weight:700;border-radius:40px;transition:all .3s ease}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--invert-surface);color:var(--invert-text)}.rounded{border-radius:50%}.btn-primary{background-color:var(--invert-surface);color:var(--invert-text);margin-right:8px}.btn-primary:hover{opacity:.8}.glide__bullets{bottom:-2em!important;z-index:200;position:relative}.glide__arrow{border-radius:50%!important;background:var(--invert-surface)!important;color:var(--invert-text)!important;border-color:var(--invert-surface)!important}.glide__arrow:hover,.glide__bullet{background:var(--text-dim)!important}.glide__bullet--active{background:var(--text-strong)!important}@media screen and (max-width:767px){.name{font-size:6rem}.glide__arrow--left{left:0!important}.glide__arrow--right{right:0!important}.glide__arrow{top:40%!important;padding:4px 6px!important}}#hero header,.blog-page header{position:fixed;top:0;left:0;z-index:100;font-weight:700;line-height:19px;float:left;padding-top:30px;padding-left:50px;transition:transform .35s ease,opacity .35s ease}#hero header a,.blog-page header a{font-family:Poppins,sans-serif;font-size:16px}#hero header.nav-hidden,.blog-page header.nav-hidden{transform:translateY(-150px);opacity:0}@media screen and (max-width:767px){#hero header,.blog-page header{padding-top:20px;padding-left:20px}}#hero .lang-corner,.blog-page .lang-corner{display:none}@media screen and (max-width:767px){#hero .lang-corner,.blog-page .lang-corner{display:block;position:fixed;top:0;right:0;z-index:100;font-weight:700;line-height:19px;padding-top:30px;padding-right:50px;font-family:Poppins,sans-serif;font-size:16px;text-transform:uppercase}}#hero .settings-corner,.blog-page .settings-corner{position:fixed;top:0;right:0;z-index:101;padding-top:15px;padding-right:20px;transition:transform .35s ease,opacity .35s ease}@media screen and (min-width:768px){#hero .settings-corner,.blog-page .settings-corner{top:23px;right:50px;padding-top:0;padding-right:0}}#hero .settings-corner.nav-hidden,.blog-page .settings-corner.nav-hidden{transform:translateY(-150px);opacity:0}#hero .settings-corner .settings-toggle,.blog-page .settings-corner .settings-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--card-border-soft);border-radius:50%;background:rgba(0,0,0,0);color:var(--text-strong);cursor:pointer;transition:background .2s ease,border-color .2s ease}#hero .settings-corner .settings-toggle svg,.blog-page .settings-corner .settings-toggle svg{width:18px;height:18px}#hero .settings-corner .settings-toggle:hover,#hero .settings-corner .settings-toggle[aria-expanded=true],.blog-page .settings-corner .settings-toggle:hover,.blog-page .settings-corner .settings-toggle[aria-expanded=true]{background:var(--glass-active)}#hero .settings-corner .settings-panel,.blog-page .settings-corner .settings-panel{position:absolute;top:54px;right:20px;min-width:220px;padding:12px;border-radius:16px;border:1px solid var(--card-border-soft);background:var(--glass-bg);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);text-align:left;text-transform:none;font-size:13px}#hero .settings-corner .settings-panel .settings-group+.settings-group,.blog-page .settings-corner .settings-panel .settings-group+.settings-group{margin-top:12px;padding-top:12px;border-top:1px solid var(--card-border-soft)}#hero .settings-corner .settings-panel .settings-label,.blog-page .settings-corner .settings-panel .settings-label{display:block;margin-bottom:6px;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.5px}#hero .settings-corner .settings-panel .settings-options,.blog-page .settings-corner .settings-panel .settings-options{display:flex;gap:6px}#hero .settings-corner .settings-panel button.settings-option,.blog-page .settings-corner .settings-panel button.settings-option{flex:1 1;padding:6px 4px;border:1px solid var(--card-border-soft);border-radius:10px;background:rgba(0,0,0,0);color:var(--text);font-size:12px;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}#hero .settings-corner .settings-panel button.settings-option:hover,.blog-page .settings-corner .settings-panel button.settings-option:hover{background:var(--glass-active)}#hero .settings-corner .settings-panel button.settings-option.is-active,.blog-page .settings-corner .settings-panel button.settings-option.is-active{background:#000;border-color:#000;color:#fff}#hero nav,.blog-page nav{position:fixed;top:0;right:65px;float:right;text-transform:uppercase;padding-top:26px;z-index:100;transition:top .35s ease,right .35s ease,left .35s ease,transform .35s ease,padding .35s ease,border-radius .35s ease,background .35s ease,border-color .35s ease,opacity .6s ease}#hero nav ul,.blog-page nav ul{list-style:none;margin-right:10px}#hero nav ul li,.blog-page nav ul li{display:inline;margin-right:40px}@media screen and (min-width:768px){#hero nav.nav-floating,.blog-page nav.nav-floating{top:20px;right:auto;left:50%;transform:translateX(-50%);float:none;padding:8px;border-radius:26px;border:1px solid var(--card-border-soft);background:var(--glass-bg);backdrop-filter:blur(3px) saturate(180%);-webkit-backdrop-filter:blur(3px) saturate(180%)}#hero nav.nav-floating ul,.blog-page nav.nav-floating ul{margin-right:0;display:flex;align-items:center}#hero nav.nav-floating ul li,.blog-page nav.nav-floating ul li{display:flex;margin-right:0}#hero nav.nav-floating ul li a,.blog-page nav.nav-floating ul li a{display:block;padding:8px 16px;border-radius:18px;transition:background .2s ease,color .2s ease}#hero nav.nav-floating ul li a:hover,.blog-page nav.nav-floating ul li a:hover{background:var(--glass-active)}#hero nav.nav-floating ul li.nav-lang,.blog-page nav.nav-floating ul li.nav-lang{display:none}}@media screen and (max-width:767px){#hero nav,.blog-page nav{position:fixed;z-index:999;top:auto;bottom:0;left:50%;right:auto;transform:translateX(-50%);float:none;width:max-content;max-width:calc(100vw - 24px);margin:0 0 max(14px,env(safe-area-inset-bottom));padding:8px;text-align:center;font-size:13px;border-radius:26px;border:1px solid var(--card-border-soft);background:var(--glass-bg);backdrop-filter:blur(3px) saturate(180%);-webkit-backdrop-filter:blur(3px) saturate(180%)}#hero nav ul,.blog-page nav ul{margin:0;padding:0;display:flex;align-items:center;white-space:nowrap}#hero nav ul li,.blog-page nav ul li{display:flex;margin:0}#hero nav ul li a,.blog-page nav ul li a{display:block;padding:2px 8px;border-radius:18px;transition:background .2s ease,color .2s ease;-webkit-tap-highlight-color:rgba(0,0,0,0)}#hero nav ul li a:active,.blog-page nav ul li a:active{background:var(--glass-active);color:var(--text-strong)}#hero nav ul li.nav-lang,.blog-page nav ul li.nav-lang{display:none}}@media screen and (min-width:768px){#hero nav.nav-hidden,.blog-page nav.nav-hidden{transform:translateY(-150px)}#hero nav.nav-floating.nav-hidden,.blog-page nav.nav-floating.nav-hidden{transform:translateX(-50%) translateY(-150px)}}@media screen and (max-width:767px){#hero nav.nav-hidden,.blog-page nav.nav-hidden{transform:translate(-50%,150px)}}#hero .lang-corner,#hero .settings-corner,#hero header{opacity:0;transition:transform .35s ease,opacity .35s ease}#hero .lang-corner.is-ready,#hero .settings-corner.is-ready,#hero header.is-ready{opacity:1}#hero .lang-corner.is-ready.nav-hidden,#hero .settings-corner.is-ready.nav-hidden,#hero header.is-ready.nav-hidden,#hero nav{opacity:0}#hero nav.is-ready{opacity:1}#hero{background:var(--bg-hero);height:100vh;position:relative;overflow:hidden}@media screen and (max-width:767px){#hero{background:var(--bg-hero-mobile)}}#hero .silk-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}#hero .cta{opacity:0}#hero .cta .btn{margin-right:8px;min-width:100px}#hero .dragon-canvas{z-index:0}#hero .dragon-bubble{pointer-events:auto;position:relative;top:50px;display:inline-block;white-space:nowrap;padding:8px 16px;border-radius:999px;background:var(--card-surface);border:1px solid var(--card-border-soft);color:var(--text-strong);font-size:14px;font-weight:600;line-height:1;text-decoration:none;cursor:pointer;box-shadow:0 6px 18px var(--card-shadow),0 0 18px var(--card-accent-glow);transform-origin:center bottom;animation:dragonBubbleIn .5s ease-out both;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}#hero .dragon-bubble:after{content:"";position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);border-left:8px solid rgba(0,0,0,0);border-right:8px solid rgba(0,0,0,0);border-top:8px solid var(--card-border-soft)}#hero .dragon-bubble:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 22px var(--card-shadow),0 0 24px var(--card-accent-glow)}@media(max-width:767px){#hero .dragon-bubble{top:30px}}#hero .main-container{width:900px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;display:flex;flex-direction:column;align-items:center}@media screen and (max-width:500px){#hero .main-container{width:100%;margin:0}}#hero .main-container h1{opacity:0;font-family:Poppins,sans-serif;font-size:10rem;font-weight:700;line-height:1;margin:0;color:var(--text-strong)}@media screen and (max-width:500px){#hero .main-container h1{font-size:8rem}}#hero .main-container h1.hero-particles{width:1280px;max-width:90vw;height:440px}@media screen and (max-width:500px){#hero .main-container h1.hero-particles{width:100%;height:320px}}#hero .main-container .hero-particles-canvas{display:block;width:100%;height:100%}#hero .main-container h4{opacity:0}#hero .main-container .title{color:var(--text-strong);margin:16px 0 0;font-size:30px}@media screen and (max-width:767px){#hero .main-container .title{font-size:24px}}#hero .main-container .cta{margin-top:24px}#about{position:relative;overflow:hidden;opacity:0;padding-top:120px;padding-bottom:80px;min-height:600px}#about.in-view{animation:fadeInUp 1s ease-out forwards;animation-delay:.3s}#about .about-particles-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}@media screen and (max-width:767px){#about{padding-top:0;min-height:1270px}#about .main-container .inline-flex{flex-direction:column}#about .main-container .inline-flex .avatar{margin:0 auto;width:100%;padding-left:0;padding-top:0;padding-bottom:20px}#about .main-container .inline-flex .avatar img{border-radius:100%;width:200px;height:200px}}#about .main-container{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:0 20px;opacity:0;animation:fadeIn 1s ease-out forwards;animation-delay:.3s}#about .main-container h2{padding-top:20px;margin:0 0 40px;text-align:center;position:relative}@media screen and (max-width:767px){#about .main-container h2{padding-top:60px}}#about .main-container p{text-align:left;margin-bottom:20px;line-height:1.8}@media screen and (max-width:767px){#about .main-container p{width:100%}}#about .main-container .avatar{padding:20px}#about .main-container .avatar img{border-radius:16px;width:275px;height:275px;object-fit:cover}@media screen and (max-width:767px){#about .main-container .intro{width:100%}}#about .main-container .tech-stack-heading{margin:48px 0 20px;text-align:center;font-size:18px;font-weight:500;color:var(--text-muted)}#about .main-container .tech-stack{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}#about .main-container .tech-stack li{font-size:.85rem;line-height:1;padding:8px 16px;border:1px solid var(--tag-border);border-radius:40px;color:var(--text-muted);white-space:nowrap}#companies{padding:60px 20px}#companies .main-container{max-width:900px;margin:0 auto;padding:40px 48px;background:#fff;border-radius:40px}#companies .companies-heading{text-align:center;font-size:18px;font-weight:500;color:#333;margin:0 0 36px}#companies .companies-grid{flex-wrap:wrap;gap:32px 48px}#companies .companies-grid,#companies .company-logo{display:flex;justify-content:center;align-items:center}#companies .company-logo{height:48px}#companies .company-logo img{max-height:48px;max-width:140px;width:auto;height:auto;object-fit:contain}@media screen and (max-width:767px){#companies{padding:48px 16px}#companies .main-container{padding:32px 24px;border-radius:28px}#companies .companies-grid{gap:24px 32px}#companies .company-logo{height:40px}#companies .company-logo img{max-height:40px;max-width:110px}}#services{padding-top:100px;padding-bottom:60px}@media screen and (max-width:767px){#services{padding-top:0}}#services{opacity:0}#services.in-view{opacity:1}#services.in-view h2{animation:headingReveal .9s cubic-bezier(.22,1,.36,1) both}#services.in-view .pricing-card{animation:cardPopIn .8s cubic-bezier(.34,1.56,.64,1) both}#services.in-view .pricing-card:first-child{animation-delay:.2s}#services.in-view .pricing-card:nth-child(2){animation-delay:.38s}#services.in-view .pricing-card:nth-child(3){animation-delay:.56s}@media(prefers-reduced-motion:reduce){#services{opacity:1}#services.in-view .pricing-card,#services.in-view h2{animation:none}}@media screen and (max-width:767px){#services{opacity:1}}#services h2{padding-top:20px;text-align:center;margin-bottom:60px;position:relative;padding-bottom:15px}@media screen and (max-width:767px){#services h2{padding-top:60px}}#services h3{text-align:center;margin-bottom:20px;position:relative;padding-bottom:15px;font-size:2rem}#services .pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:30px;gap:30px;margin-top:40px}#services .pricing-grid .pricing-card{border-radius:14px;padding:40px 30px;text-align:center;position:relative;background:var(--card-surface);border:1px solid var(--card-border-soft);box-shadow:0 10px 30px var(--card-shadow),0 2px 6px var(--card-shadow),inset 0 1px 0 var(--card-highlight);transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,border-color .35s ease}#services .pricing-grid .pricing-card:hover{transform:translateY(-10px);border-color:var(--accent);box-shadow:0 20px 45px var(--card-shadow),0 6px 14px var(--card-accent-glow),inset 0 1px 0 var(--card-highlight)}#services .pricing-grid .pricing-card .pricing-header{margin-bottom:25px}#services .pricing-grid .pricing-card .pricing-header h3{font-size:1.5rem;margin:0 0 10px}#services .pricing-grid .pricing-card .pricing-header .price{font-size:2rem;font-weight:700;color:var(--accent);margin:10px 0}#services .pricing-grid .pricing-card .pricing-header .subtitle{color:var(--text-muted);margin-top:20px}#services .pricing-grid .pricing-card .pricing-features{list-style:none;padding:0;margin:0 0 25px;text-align:left;height:180px}#services .pricing-grid .pricing-card .pricing-features li{position:relative;padding:8px 0 8px 25px;color:var(--text-muted)}#services .pricing-grid .pricing-card .pricing-features li:before{content:"✓";color:var(--accent);position:absolute;left:0;font-weight:700}#services .flex{padding-left:20px;margin-top:40px;margin-left:70px}@media screen and (max-width:767px){#services .flex{padding-left:0;margin-left:0}}#services .flex ul{width:40%}@media screen and (max-width:767px){#services .flex ul{width:100%}}#services .flex img{border-radius:10px}@media screen and (max-width:767px){#services .flex img{width:100%;height:auto}}#projects{padding-top:80px}@media screen and (max-width:767px){#projects{padding-top:0}}#projects img{width:100%;height:310px;object-fit:cover;border-radius:10px}@media screen and (max-width:767px){#projects img{height:200px}}#projects .project-video{display:block;width:100%;height:auto;border-radius:10px}#projects .main-container{padding-top:0;padding-bottom:60px;max-width:1050px;margin:0 auto}@media screen and (max-width:767px){#projects .main-container{max-width:700px;padding:0 15px}}#projects .main-container .project{padding:40px 0;display:flex;align-items:center;gap:48px}#projects .main-container .project .project-info,#projects .main-container .project .project-media{flex:1 1 50%;min-width:0}#projects .main-container .project h3{margin-top:0;text-align:left}#projects .main-container .project p{text-align:left}#projects .main-container .project .project-tags{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}#projects .main-container .project .project-tags li{font-size:.8rem;line-height:1;padding:6px 12px;border:1px solid var(--tag-border);border-radius:40px;color:var(--text-muted);white-space:nowrap}#projects .main-container .project .project-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start}@media screen and (max-width:767px){#projects .main-container .project{flex-direction:column;gap:0;padding:20px 0}#projects .main-container .project .project-info,#projects .main-container .project .project-media{flex:none;width:100%}#projects .main-container .project h3{margin-top:40px;margin-bottom:40px;text-align:center}#projects .main-container .project .project-links{justify-content:center}}#projects h2{margin-top:20px;margin-bottom:0;text-align:center;position:relative}@media screen and (max-width:767px){#projects h2{padding-top:40px;margin-bottom:40px}}#projects h3{font-size:2rem;margin-top:80px;margin-bottom:20px;text-align:center;position:relative}@media screen and (max-width:767px){#projects h3{margin-bottom:40px}}#projects .project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));grid-gap:40px;gap:40px;margin-top:50px}@media screen and (max-width:767px){#projects .project-grid{grid-template-columns:1fr;gap:30px}}#projects .project-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 5px 15px rgba(0,0,0,.05);transition:transform .3s ease,box-shadow .3s ease}#projects .project-card img{width:100%;height:250px;object-fit:cover;transition:transform .5s ease}@media screen and (max-width:767px){#projects .project-card img{height:200px}}#projects .project-card-content{padding:25px}#projects .project-card-content h3{margin:0 0 15px;font-size:1.5rem;color:#333}#projects .project-card-content p{color:#666;margin:0 0 20px;line-height:1.6}#projects .project-card-content .technologies{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}#projects .project-card-content .technologies span{color:#4a6cf7;padding:5px 12px;border-radius:20px;font-size:.8rem;font-weight:600}#projects .btn{margin:50px auto 0;display:table}@media screen and (max-width:767px){#projects .btn{text-align:center}}#resume{padding-top:30px}#resume .work{width:320px}@media screen and (max-width:767px){#resume .work{width:260px}#resume h2{padding-top:40px}}#resume.in-view{animation:fadeInUp 1s ease-out forwards;animation-delay:.3s}#resume .main-container{max-width:1200px;margin:0 auto;padding:0 20px}#resume .main-container ul ul{list-style:disc;margin-top:20px;margin-left:20px}#resume .main-container .resume{margin:40px auto;width:100%;overflow-x:scroll}@media screen and (max-width:767px){#resume .main-container .resume{width:100%}#resume .main-container .resume .text-center{width:100%;text-align:left}#resume .main-container .resume>ul{margin-left:0}#resume .main-container .resume>ul li{text-align:left}#resume .main-container .resume>ul>li{margin-bottom:60px}}#resume .main-container .resume .flex{gap:40px;width:4680px}#resume .main-container .resume li{text-align:left}#resume .main-container .resume span{font-size:1.5rem;font-weight:600}#resume .main-container .resume .text-left{padding-top:20px}@media screen and (max-width:767px){#resume .main-container .resume .text-left{margin-left:0;padding-left:0}}#resume .main-container .resume .resume-logo-container{display:flex;gap:4px}#resume .main-container .resume .resume-logo-container .resume-logo{width:100px;height:100px;border-radius:50%;background-color:#fff;margin:10px;padding:10px;justify-content:center;display:flex;align-items:center}@media screen and (max-width:767px){#resume .main-container .resume .resume-logo-container .resume-logo{width:70px;height:70px;margin:0;padding:0}}#resume .main-container .resume .resume-logo-container .resume-logo img{width:90%}#contact{opacity:0;padding-top:10px;height:70vh}@media screen and (max-width:767px){#contact{height:auto;padding-bottom:100px}}#contact.in-view{animation:fadeInUp 1s ease-out forwards;animation-delay:.3s}#contact i{font-size:3rem}#contact .contact-actions{flex-wrap:wrap;gap:28px}#contact .contact-actions .contact-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text);transition:transform .2s ease,color .2s ease}#contact .contact-actions .contact-icon svg{width:44px;height:44px}#contact .contact-actions .contact-icon:hover{transform:translateY(-3px) scale(1.08);color:var(--accent)}#contact h2{padding-top:20px}@media screen and (max-width:767px){#contact h2{padding-top:60px}}#contact p{margin-top:50px;margin-bottom:50px}#contact .contact-cover{border-radius:20px}@media screen and (max-width:767px){#contact .contact-cover{width:100%}}.blog-page{min-height:100vh;padding:110px 0 80px}@media screen and (max-width:767px){.blog-page{padding-top:40px;padding-bottom:100px}}.blog-page .main-container{text-align:left}.blog-page h2{text-align:center;margin:0 0 10px;color:var(--text-strong)}.blog-page .blog-intro{text-align:center;color:var(--text-muted);margin:0 0 10px}.blog-page .blog-card-date{font-size:.8rem;color:var(--text-dim);letter-spacing:.05em}.blog-page .blog-tags{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.blog-page .blog-tags li{font-size:.75rem;line-height:1;padding:6px 12px;border:1px solid var(--tag-border);border-radius:40px;color:var(--text-muted);white-space:nowrap}.blog-page .blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:30px;gap:30px;margin-top:40px}@media screen and (max-width:767px){.blog-page .blog-grid{grid-template-columns:1fr;gap:24px}}.blog-page .blog-card{display:flex;flex-direction:column;align-items:flex-start;border-radius:14px;padding:30px;text-decoration:none;background:var(--card-surface);border:1px solid var(--card-border-soft);box-shadow:0 10px 30px var(--card-shadow),0 2px 6px var(--card-shadow),inset 0 1px 0 var(--card-highlight);transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,border-color .35s ease;animation:cardPopIn .8s cubic-bezier(.34,1.56,.64,1) both}.blog-page .blog-card:first-child{animation-delay:.1s}.blog-page .blog-card:nth-child(2){animation-delay:.22s}.blog-page .blog-card:nth-child(3){animation-delay:.34s}.blog-page .blog-card:nth-child(4){animation-delay:.46s}.blog-page .blog-card:nth-child(5){animation-delay:.58s}.blog-page .blog-card:nth-child(6){animation-delay:.7s}@media(prefers-reduced-motion:reduce){.blog-page .blog-card{animation:none}}.blog-page .blog-card:hover{transform:translateY(-10px);border-color:var(--accent);box-shadow:0 20px 45px var(--card-shadow),0 6px 14px var(--card-accent-glow),inset 0 1px 0 var(--card-highlight)}.blog-page .blog-card:hover .read-more{text-decoration:underline}.blog-page .blog-card h3{font-size:1.25rem;line-height:1.4;margin:12px 0 0;color:var(--text-strong)}.blog-page .blog-card p{color:var(--text-muted);line-height:1.7;margin:16px 0 20px;flex:1 1}.blog-page .blog-card .read-more{color:var(--accent);font-weight:600;font-size:.9rem}.blog-page .blog-list{display:flex;flex-direction:column;max-width:760px;margin:40px auto 0}.blog-page .blog-row{display:flex;padding:24px 0;text-decoration:none;border-bottom:1px solid var(--card-border-soft);animation:fadeInUp .6s ease-out both}.blog-page .blog-row:first-child{animation-delay:0s}.blog-page .blog-row:nth-child(2){animation-delay:.06s}.blog-page .blog-row:nth-child(3){animation-delay:.12s}.blog-page .blog-row:nth-child(4){animation-delay:.18s}.blog-page .blog-row:nth-child(5){animation-delay:.24s}.blog-page .blog-row:nth-child(6){animation-delay:.3s}.blog-page .blog-row:nth-child(7){animation-delay:.36s}.blog-page .blog-row:nth-child(8){animation-delay:.42s}@media(prefers-reduced-motion:reduce){.blog-page .blog-row{animation:none}}.blog-page .blog-row:first-child{border-top:1px solid var(--card-border-soft)}.blog-page .blog-row:hover h3{color:var(--accent)}.blog-page .blog-row .blog-row-body{flex:1 1;min-width:0}.blog-page .blog-row .blog-row-body .blog-card-date{display:block;margin-bottom:8px}.blog-page .blog-row .blog-row-body h3{font-size:1.15rem;line-height:1.4;margin:0 0 8px;color:var(--text-strong);transition:color .25s ease}.blog-page .blog-row .blog-row-body p{color:var(--text-muted);line-height:1.7;margin:0 0 12px}.blog-page .blog-row .blog-row-body .blog-tags{margin:0}@media screen and (max-width:767px){.blog-page .blog-row{flex-direction:column;gap:8px}}.blog-page.labs-page .blog-grid{grid-template-columns:repeat(auto-fit,minmax(280px,340px));justify-content:center}.blog-page .labs-card{position:relative;padding:0;overflow:hidden;z-index:0;animation:none;animation-delay:0s;opacity:0}.blog-page .labs-card.is-in{opacity:1;animation:cardPopIn .8s cubic-bezier(.34,1.56,.64,1) both}.blog-page .labs-card .labs-card-frame{position:absolute;inset:0;z-index:2;border-radius:inherit;padding:2px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .3s ease;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.blog-page .labs-card .labs-card-frame i{position:absolute;top:50%;left:50%;width:220%;aspect-ratio:1;transform:translate(-50%,-50%);background:conic-gradient(transparent 0deg,rgba(254,247,46,.4) 100deg,#fef72e 140deg,transparent 150deg,transparent 180deg,rgba(254,247,46,.4) 280deg,#fef72e 320deg,transparent 330deg)}.blog-page .labs-card:hover{border-color:rgba(0,0,0,0)}.blog-page .labs-card:hover .labs-card-frame{opacity:1}.blog-page .labs-card:hover .labs-card-frame i{animation:labsCardFrameSpin 2.4s linear infinite}@media(prefers-reduced-motion:reduce){.blog-page .labs-card .labs-card-frame i{animation:none}}.blog-page .labs-card .labs-thumb{position:relative;z-index:0;display:block;width:100%;margin:0;aspect-ratio:16/10;background:var(--card-border-soft);overflow:hidden}.blog-page .labs-card .labs-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.blog-page .labs-card:hover .labs-thumb img{transform:scale(1.04)}.blog-page .labs-card .labs-card-title{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:40px 20px 16px;font-size:1.05rem;font-weight:600;line-height:1.4;color:#fff;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}.blog-page .labs-card:hover .labs-card-title{opacity:1;transform:none}@media(hover:none){.blog-page .labs-card .labs-card-title{opacity:1;transform:none}}.blog-page .lab-detail{max-width:760px;margin:0 auto;animation:fadeInUp .8s ease-out both}@media(prefers-reduced-motion:reduce){.blog-page .lab-detail{animation:none}}.blog-page .lab-detail .back-link{color:var(--text-dim);font-size:.9rem}.blog-page .lab-detail .back-link:hover{color:var(--accent)}.blog-page .lab-detail .lab-detail-media{margin:24px 0 0;border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:var(--card-border-soft);border:1px solid var(--card-border-soft);box-shadow:0 10px 30px var(--card-shadow)}.blog-page .lab-detail .lab-detail-media img{width:100%;height:100%;object-fit:cover;display:block}.blog-page .lab-detail h1{font-size:2rem;line-height:1.35;color:var(--text-strong);margin:28px 0 16px}@media screen and (max-width:767px){.blog-page .lab-detail h1{font-size:1.5rem}}.blog-page .lab-detail .blog-tags{margin:0}.blog-page .lab-detail .lab-detail-desc{color:var(--text-muted);line-height:1.9;margin:20px 0 32px}.blog-page .lab-detail .lab-detail-actions{display:flex;flex-wrap:wrap;gap:12px}.blog-page .lab-detail .lab-detail-actions .btn{margin:0;text-align:center}@media screen and (max-width:767px){.blog-page .lab-detail .lab-detail-actions .btn{flex:1 1 100%;min-width:0}}.blog-page.labs-view-page{padding:0}.blog-page.labs-view-page .main-container{display:none}.blog-page .labs-view-main{display:flex;align-items:stretch;height:100vh}@media screen and (max-width:767px){.blog-page .labs-view-main{flex-direction:column;height:100dvh}}.blog-page .labs-view-back{display:inline-block;font-size:.95rem;font-weight:600;color:var(--text-strong);margin-bottom:16px;text-decoration:none}.blog-page .labs-view-back:hover{color:var(--accent)}.blog-page .labs-view-toggle,.blog-page .labs-view-topbar{display:none}.blog-page .labs-view-sidebar{position:relative;flex:0 0 320px;overflow-y:auto;padding:24px 20px 40px;border-right:1px solid var(--card-border-soft);transition:flex-basis .25s ease}.blog-page .labs-view-sidebar.is-collapsed{flex:0 0 40px;overflow:hidden;padding:24px 0}.blog-page .labs-view-sidebar.is-collapsed .labs-view-sidebar-inner{opacity:0;visibility:hidden;pointer-events:none}.blog-page .labs-view-sidebar .labs-view-collapse-toggle{display:none}@media screen and (min-width:768px){.blog-page .labs-view-sidebar .labs-view-collapse-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:24px;right:8px;width:24px;height:24px;border-radius:50%;border:1px solid var(--card-border-soft);background:var(--card-surface);color:var(--text-strong);cursor:pointer;z-index:2;font-size:.9rem;line-height:1}.blog-page .labs-view-sidebar .labs-view-collapse-toggle:hover{border-color:var(--accent);color:var(--accent)}}.blog-page .labs-view-sidebar .labs-view-sidebar-inner{opacity:1;visibility:visible;transition:opacity .2s ease}@media screen and (max-width:767px){.blog-page .labs-view-sidebar{flex:none;border-right:none;border-bottom:1px solid var(--card-border-soft);position:fixed;inset:0;z-index:999;max-height:none;height:100dvh;padding:0 20px;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;background:var(--bg);transition:opacity .3s ease,visibility .3s ease}.blog-page .labs-view-sidebar .labs-view-sidebar-inner>.labs-view-back{display:none}.blog-page .labs-view-sidebar.is-open{padding:72px 20px calc(100px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;opacity:1;visibility:visible;pointer-events:auto}.blog-page .labs-view-topbar{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:1000;padding:14px;background:var(--glass-bg);backdrop-filter:blur(3px) saturate(180%);-webkit-backdrop-filter:blur(3px) saturate(180%);border-bottom:1px solid var(--card-border-soft)}.blog-page .labs-view-topbar .labs-view-back{margin-bottom:0}.blog-page .labs-view-main{box-sizing:border-box;padding-top:60px}.blog-page .labs-view-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:32px;height:32px;flex:none;border-radius:50%;border:1px solid var(--card-border-soft);background:rgba(0,0,0,0)}.blog-page .labs-view-toggle span{display:block;width:16px;height:2px;border-radius:1px;background:var(--text-strong);transition:transform .25s ease,opacity .25s ease}.blog-page .labs-view-toggle.is-open span:first-child{transform:translateY(6px) rotate(45deg)}.blog-page .labs-view-toggle.is-open span:nth-child(2){opacity:0}.blog-page .labs-view-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}}.blog-page .labs-view-list{list-style:none;margin:0 0 100px;padding:0;display:flex;flex-direction:column;gap:10px}.blog-page .labs-view-list button{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px;border-radius:10px;border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);cursor:pointer;text-align:left;overflow:hidden;z-index:0;transition:background .25s ease,border-color .25s ease}.blog-page .labs-view-list button:before{content:"";position:absolute;inset:0;padding:2px;border-radius:inherit;background:conic-gradient(from var(--labs-border-angle,0deg),transparent 0deg,rgba(254,247,46,.4) 100deg,#fef72e 140deg,transparent 150deg,transparent 180deg,rgba(254,247,46,.4) 280deg,#fef72e 320deg,transparent 330deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:1}.blog-page .labs-view-list button:hover{background:var(--card-surface)}.blog-page .labs-view-list button:hover:before{opacity:1;animation:labsCardBorderSpin 2.4s linear infinite}.blog-page .labs-view-list button.is-active{background:var(--card-surface);border-color:var(--accent)}.blog-page .labs-view-list .labs-view-thumb{flex:0 0 64px;width:64px;height:44px;border-radius:6px;overflow:hidden;background:var(--card-border-soft)}.blog-page .labs-view-list .labs-view-thumb img{width:100%;height:100%;object-fit:cover;display:block}.blog-page .labs-view-list .labs-view-item-text{display:flex;flex-direction:column;gap:6px;min-width:0}.blog-page .labs-view-list .labs-view-item-text strong{font-size:.9rem;color:var(--text-strong);line-height:1.3}.blog-page .labs-view-list .labs-view-item-text .blog-tags{margin:0;gap:6px}.blog-page .labs-view-list .labs-view-item-text .blog-tags li{font-size:.65rem;padding:3px 8px}.blog-page .labs-view-stage{flex:1 1;min-width:0;min-height:0;display:flex;flex-direction:column}.blog-page .labs-view-frame-wrap{flex:1 1;min-height:0;overflow:hidden;background:var(--card-surface)}.blog-page .labs-view-frame-wrap iframe{width:100%;height:100%;border:0;display:block}.blog-page .blog-post{max-width:760px;margin:0 auto;animation:fadeInUp .8s ease-out both}@media(prefers-reduced-motion:reduce){.blog-page .blog-post{animation:none}}.blog-page .blog-post .back-link{color:var(--text-dim);font-size:.9rem}.blog-page .blog-post .back-link:hover{color:var(--accent)}.blog-page .blog-post h1{font-size:2.2rem;line-height:1.35;color:var(--text-strong);margin:20px 0 16px}@media screen and (max-width:767px){.blog-page .blog-post h1{font-size:1.6rem}}.blog-page .blog-post .post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--card-border-soft)}.blog-page .blog-post .post-meta .blog-tags{margin:0}.blog-page .blog-post .post-meta .post-author{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--text-strong)}.blog-page .blog-post .post-meta .post-author img{width:38px;height:38px;border-radius:50%;object-fit:cover}.blog-page .blog-post .post-body h2{font-size:1.35rem;text-transform:none;text-align:left;color:var(--text-strong);margin:40px 0 12px}.blog-page .blog-post .post-body p{line-height:1.9;margin:0 0 20px;color:var(--text)}.blog-page .blog-post .post-body .post-body-figure{margin:0 0 28px}.blog-page .blog-post .post-body .post-body-figure .post-body-image{display:block;width:100%;border-radius:12px;border:1px solid var(--card-border-soft)}.blog-page .blog-post .post-body .post-body-figure figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:10px;font-size:.9rem;color:var(--text-soft,var(--text))}.blog-page .blog-post .post-body .post-body-figure figcaption a{flex-shrink:0;color:var(--accent);white-space:nowrap}.blog-page .blog-post .post-body .post-body-figure figcaption a:hover{text-decoration:underline}.blog-page .blog-post .post-footer{margin-top:50px;padding-top:40px;border-top:1px solid var(--card-border-soft);display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.blog-page .blog-post .post-footer .btn{min-width:0}footer{position:fixed;z-index:900;bottom:0;width:100%}footer ul{padding-bottom:40px;padding-left:50px;float:left;margin:0;width:30px}@media screen and (max-width:767px){footer ul{padding-left:20px}}footer ul li{display:inline-block;margin-right:20px;line-height:2rem}footer ul li:last-child{margin-right:0}footer .line{position:relative;top:-9px;margin:0 10px;display:inline-block}.donate-fab{position:fixed;right:24px;bottom:24px;z-index:500;display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:30px;border:1px solid var(--card-border-soft);background:var(--card-surface);box-shadow:0 8px 24px var(--card-shadow);color:var(--text);font-family:inherit;font-size:14px;cursor:pointer;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.donate-fab:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 12px 28px var(--card-accent-glow)}.donate-fab .donate-fab-icon{display:inline-block;color:#ff4d5e;font-size:16px;line-height:1;animation:donateHeartBeat 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.donate-fab .donate-fab-icon{animation:none}}@media screen and (max-width:767px){.donate-fab{right:16px;bottom:calc(76px + env(safe-area-inset-bottom));padding:10px 16px;font-size:13px}}.donate-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.donate-modal{position:relative;box-sizing:border-box;width:100%;max-width:420px;padding:32px 28px 28px;border-radius:14px;border:1px solid var(--card-border);background:var(--card-surface);box-shadow:0 20px 50px var(--card-shadow)}.donate-modal h3{margin:0 0 12px;font-size:20px;color:var(--text-strong)}.donate-modal p{margin:0;color:var(--text-muted);font-size:14px;line-height:1.7}.donate-modal .donate-info{margin-top:16px;padding:14px 16px;border-radius:8px;border:1px solid var(--card-border-soft);background:var(--card-highlight);color:var(--text);font-size:14px;line-height:1.8}.donate-modal .donate-close{position:absolute;top:10px;right:12px;padding:0;border:none;background:none;color:var(--text-dim);font-size:24px;line-height:1;cursor:pointer;transition:color .2s ease}.donate-modal .donate-close:hover{color:var(--text-strong)}