.projects .project-filters{display:flex;flex-wrap:wrap;gap:10px;margin:-24px 0 44px}@media(max-width:768px){.projects .project-filters{gap:8px;margin:-12px 0 32px}}.projects .filter-chip{background:var(--surface);border:1px solid var(--border);border-radius:100px;color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:.84rem;font-weight:500;opacity:.72;padding:9px 16px;transition:color .3s var(--ease),border-color .3s var(--ease),opacity .3s var(--ease),background .3s var(--ease)}.projects .filter-chip:hover{border-color:var(--border-strong);color:var(--text);opacity:.9}.projects .filter-chip.is-active{background:#0000;border-color:#8b5cf6b3;box-shadow:inset 0 0 0 1px #8b5cf659;color:var(--text);opacity:1}.projects .projects-empty{border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-dim);padding:48px 20px;text-align:center}.projects .projects-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:repeat(4,1fr)}@media(max-width:1200px){.projects .projects-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.projects .projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.projects .projects-grid{grid-template-columns:1fr}}.projects .project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;transition:transform .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease),box-shadow .4s var(--ease)}.projects .project-card:hover{background:var(--surface-hover);border-color:#8b5cf673;box-shadow:0 28px 60px #00000080;transform:translateY(-8px)}.projects .project-card:hover .project-thumb img{transform:scale(1.07)}.projects .project-card:hover .project-open{opacity:1;transform:translate(0)}.projects .project-card:hover h3{color:var(--accent-soft)}.projects .project-thumb{aspect-ratio:4/3;background:var(--bg-soft);overflow:hidden;position:relative}.projects .project-thumb img{height:100%;object-fit:cover;object-position:top center;transition:transform .6s var(--ease);width:100%}.projects .project-thumb:after{background:linear-gradient(0deg,#07060cbf,#0000 55%);content:"";inset:0;position:absolute}.projects .project-thumb .project-open{background:var(--gradient);border-radius:50%;color:#fff;display:grid;font-size:1rem;height:36px;opacity:0;place-items:center;position:absolute;right:14px;top:14px;transform:translate(-6px,6px);transition:opacity .4s var(--ease),transform .4s var(--ease);width:36px;z-index:2}.projects .project-info{display:flex;flex:1 1;flex-direction:column;gap:8px;padding:20px}.projects .project-info .project-type{-webkit-line-clamp:1;-webkit-box-orient:vertical;color:var(--accent-2);display:-webkit-box;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;overflow:hidden;text-transform:uppercase}.projects .project-info h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text);display:-webkit-box;font-size:1.05rem;line-height:1.35;overflow:hidden;transition:color .3s var(--ease)}.projects .project-info .project-client{align-items:center;background:#ffffff08;border:1px solid var(--border);border-radius:100px;color:var(--text-muted);display:inline-flex;font-size:.72rem;gap:8px;margin-top:auto;max-width:100%;overflow:hidden;padding:5px 12px 5px 6px;text-overflow:ellipsis;white-space:nowrap;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.projects .project-info .project-client img{border-radius:3px;flex-shrink:0;height:13px;object-fit:cover;width:18px}.projects .projects-more{display:flex;justify-content:center;margin-top:44px}.toast{align-items:center;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#0f0c18e6;border:1px solid var(--border);border-radius:100px;box-shadow:var(--shadow);display:flex;gap:12px;left:50%;max-width:min(440px,100vw - 32px);opacity:0;padding:14px 22px;position:fixed;top:90px;transform:translate(-50%,-18px);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s var(--ease);visibility:hidden;z-index:13000}.toast.is-visible{opacity:1;transform:translate(-50%);visibility:visible}.toast p{color:var(--text);font-size:.9rem}.toast .toast-icon{display:grid;flex-shrink:0;font-size:1.2rem;place-items:center}.toast.toast--success{border-color:#22d3ee66}.toast.toast--success .toast-icon{color:var(--accent-2)}.toast.toast--error{border-color:#f472b666}.toast.toast--error .toast-icon{color:var(--accent-3)}.toast.toast--loading .toast-icon{color:var(--accent-soft)}.toast .spin{animation:spin 1s linear infinite}.App{overflow-x:clip;position:relative}.floating-chat{align-items:center;background:var(--gradient);border-radius:100px;bottom:32px;box-shadow:0 16px 40px #8b5cf666;color:#fff;display:inline-flex;font-size:1.5rem;gap:0;height:56px;padding:0 18px;position:fixed;right:32px;transition:gap .4s var(--ease),transform .4s var(--ease),opacity .4s var(--ease),visibility .4s var(--ease);z-index:9000}.floating-chat.is-hidden{opacity:0;transform:translateY(20px) scale(.85);visibility:hidden}@media(max-width:768px){.floating-chat{bottom:18px;height:52px;padding:0 15px;right:18px}}.floating-chat:after{animation:chat-pulse 2.6s var(--ease) infinite;border:1px solid #8b5cf680;border-radius:100px;content:"";inset:-6px;pointer-events:none;position:absolute}.floating-chat .label{font-family:var(--font-body);font-size:.92rem;font-weight:600;max-width:0;opacity:0;overflow:hidden;transition:max-width .4s var(--ease),opacity .3s var(--ease);white-space:nowrap}.floating-chat:hover{gap:10px;transform:translateY(-3px)}.floating-chat:hover .label{max-width:160px;opacity:1}@keyframes chat-pulse{0%{opacity:.8;transform:scale(1)}70%{opacity:0;transform:scale(1.25)}to{opacity:0}}.hero{align-items:center;display:flex;min-height:100svh;overflow:hidden;padding:160px 0 120px;position:relative}@media(max-width:768px){.hero{padding:140px 0 110px}}.hero .hero-backdrop{inset:0;pointer-events:none;position:absolute}.hero .hero-backdrop .orb{border-radius:50%;filter:blur(90px);opacity:.55;position:absolute}.hero .hero-backdrop .orb--one{animation:float-a 18s ease-in-out infinite;background:radial-gradient(circle,#8b5cf6bf,#0000 68%);height:620px;left:-8%;top:-12%;width:620px}.hero .hero-backdrop .orb--two{animation:float-b 22s ease-in-out infinite;background:radial-gradient(circle,#22d3ee80,#0000 68%);height:560px;right:-12%;top:12%;width:560px}.hero .hero-backdrop .orb--three{animation:float-a 26s ease-in-out infinite reverse;background:radial-gradient(circle,#f472b659,#0000 68%);bottom:-22%;height:520px;left:32%;width:520px}.hero .hero-backdrop .grid{background-image:linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,#0000 0),linear-gradient(180deg,hsla(0,0%,100%,.035) 1px,#0000 0);background-size:64px 64px;inset:0;mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,#000 30%,#0000 75%);-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 40%,#000 30%,#0000 75%);position:absolute}.hero .hero-backdrop .vignette{background:linear-gradient(to bottom,#07060c33 0,#0000 30%,#07060cd9 92%,var(--bg) 100%);inset:0;position:absolute}.hero .hero-inner{align-items:flex-start;display:flex;flex-direction:column;position:relative;z-index:2}.hero .hero-badge{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:var(--surface);border:1px solid var(--border);border-radius:100px;color:var(--text-muted);display:inline-flex;font-size:.84rem;font-weight:500;gap:10px;padding:8px 18px}.hero .hero-badge .pulse{background:#4ade80;border-radius:50%;box-shadow:0 0 10px #4ade80;height:7px;position:relative;width:7px}.hero .hero-badge .pulse:after{animation:chat-pulse 2s var(--ease) infinite;border:1px solid #4ade8099;border-radius:50%;content:"";inset:-4px;position:absolute}.hero .hero-title{font-size:clamp(3.6rem,13vw,9.5rem);font-weight:700;letter-spacing:-.045em;line-height:.88;margin-top:28px}.hero .hero-title .dot{color:var(--accent-2)}.hero .hero-type{color:var(--accent-soft);font-family:var(--font-mono);font-size:clamp(.95rem,2.6vw,1.5rem);font-weight:500;letter-spacing:-.01em;margin-top:26px}.hero .hero-lead{color:var(--text-muted);font-size:clamp(.98rem,1.6vw,1.12rem);margin-top:22px;max-width:560px}.hero .hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}.hero .hero-socials{display:flex;gap:10px;margin-top:56px}.hero .hero-socials a{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:var(--surface);border:1px solid var(--border);border-radius:14px;color:var(--text-muted);display:grid;font-size:1.05rem;height:44px;place-items:center;transition:transform .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease);width:44px}.hero .hero-socials a:hover{background:#8b5cf624;border-color:#8b5cf680;color:var(--text);transform:translateY(-4px)}.hero .hero-scroll{animation:bob 2.4s ease-in-out infinite;border:1px solid var(--border);border-radius:50%;bottom:34px;color:var(--text-muted);display:grid;height:42px;left:50%;margin-left:-21px;place-items:center;position:absolute;width:42px;z-index:2}@media(max-width:768px){.hero .hero-scroll{display:none}}@keyframes float-a{0%,to{transform:translate(0) scale(1)}50%{transform:translate(40px,30px) scale(1.08)}}@keyframes float-b{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,40px) scale(1.12)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.marquee{background:var(--bg-soft);border-bottom:1px solid var(--border);border-top:1px solid var(--border);overflow:hidden;padding:22px 0;position:relative}.marquee:after,.marquee:before{content:"";height:100%;pointer-events:none;position:absolute;top:0;width:160px;z-index:2}.marquee:before{background:linear-gradient(to right,var(--bg-soft),#0000);left:0}.marquee:after{background:linear-gradient(to left,var(--bg-soft),#0000);right:0}.marquee .marquee-track{animation:marquee 38s linear infinite;display:flex;width:-webkit-max-content;width:max-content}.marquee .marquee-track span{align-items:center;color:var(--text-dim);display:inline-flex;font-family:var(--font-display);font-size:1.25rem;font-weight:500;gap:32px;padding-right:32px;white-space:nowrap}.marquee .marquee-track span i{color:var(--accent);font-size:.7rem;font-style:normal}@keyframes marquee{to{transform:translateX(-50%)}}.about .about-grid{grid-gap:80px;align-items:center;display:grid;gap:80px;grid-template-columns:1.15fr .85fr}@media(max-width:980px){.about .about-grid{gap:56px;grid-template-columns:1fr}}.about .about-copy p{color:var(--text-muted);font-size:1.04rem;margin-bottom:20px}.about .about-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-top:44px}@media(max-width:520px){.about .about-stats{grid-template-columns:1fr}}.about .about-stats .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.about .about-stats .stat strong{-webkit-text-fill-color:#0000;background:var(--gradient);-webkit-background-clip:text;background-clip:text;display:block;font-family:var(--font-display);font-size:2rem;font-weight:700;letter-spacing:-.03em}.about .about-stats .stat span{color:var(--text-dim);display:block;font-size:.84rem;line-height:1.4;margin-top:6px}.about .about-visual{justify-self:center;max-width:400px;position:relative;width:100%}.about .about-visual .about-photo{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px;position:relative;transition:transform .5s var(--ease);z-index:2}.about .about-visual .about-photo img{border-radius:20px;filter:grayscale(35%) contrast(1.05);transition:filter .5s var(--ease);width:100%}.about .about-visual .about-photo:hover{transform:translateY(-6px)}.about .about-visual .about-photo:hover img{filter:grayscale(0)}.about .about-visual .about-glow{background:var(--gradient);border-radius:50%;filter:blur(80px);inset:10% -12% -14% 8%;opacity:.32;position:absolute;z-index:1}.expertise .expertise-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}@media(max-width:1024px){.expertise .expertise-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.expertise .expertise-grid{grid-template-columns:1fr}}.expertise .expertise-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;padding:30px;position:relative;transition:transform .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease)}.expertise .expertise-card:before{background:var(--gradient);border-radius:50%;content:"";filter:blur(70px);height:260px;opacity:0;pointer-events:none;position:absolute;right:-30%;top:-60%;transition:opacity .5s var(--ease);width:260px}.expertise .expertise-card:hover{background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-6px)}.expertise .expertise-card:hover:before{opacity:.18}.expertise .expertise-card:hover .icon{background:#8b5cf629;border-color:#8b5cf68c;color:var(--text)}.expertise .expertise-card .icon{background:#ffffff0a;border:1px solid var(--border);border-radius:16px;color:var(--accent-soft);display:grid;font-size:1.4rem;height:52px;place-items:center;transition:color .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease);width:52px}.expertise .expertise-card h3{font-size:1.22rem;margin-top:22px}.expertise .expertise-card p{color:var(--text-dim);font-size:.92rem;margin-top:10px}.expertise .expertise-card .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.expertise .expertise-card .chips span{background:#ffffff08;border:1px solid var(--border);border-radius:100px;color:var(--text-muted);font-family:var(--font-mono);font-size:.72rem;padding:6px 12px}.experience .experience-list{display:flex;flex-direction:column;gap:14px}.experience .experience-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .4s var(--ease),background .4s var(--ease)}.experience .experience-item:hover{border-color:var(--border-strong)}.experience .experience-item.is-open{background:var(--surface-hover);border-color:#8b5cf666}.experience .experience-item.is-open .chevron{color:var(--text);transform:rotate(180deg)}.experience .experience-head{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:flex;gap:20px;padding:22px 26px;text-align:left;width:100%}@media(max-width:768px){.experience .experience-head{gap:14px;padding:18px}}.experience .experience-head .logo{background:#ffffff0f;border:1px solid var(--border);border-radius:14px;display:grid;flex-shrink:0;height:52px;overflow:hidden;padding:8px;place-items:center;width:52px}@media(max-width:768px){.experience .experience-head .logo{height:44px;width:44px}}.experience .experience-head .logo img{height:100%;object-fit:contain;width:100%}.experience .experience-head .heading{flex:1 1;min-width:0}.experience .experience-head .heading .role{display:block;font-family:var(--font-display);font-size:1.12rem;font-weight:600;letter-spacing:-.02em}@media(max-width:768px){.experience .experience-head .heading .role{font-size:1rem}}.experience .experience-head .heading .company{color:var(--accent-soft);display:block;font-size:.9rem;margin-top:2px}.experience .experience-head .period{color:var(--text-dim);flex-shrink:0;font-family:var(--font-mono);font-size:.78rem;white-space:nowrap}@media(max-width:860px){.experience .experience-head .period{display:none}}.experience .experience-head .chevron{border:1px solid var(--border);border-radius:50%;color:var(--text-muted);display:grid;flex-shrink:0;height:34px;place-items:center;transition:transform .4s var(--ease),color .3s var(--ease);width:34px}.experience .experience-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}.experience .is-open .experience-body{grid-template-rows:1fr}.experience .experience-body-inner{overflow:hidden;padding:0 26px}@media(max-width:768px){.experience .experience-body-inner{padding:0 18px}}.experience .experience-body-inner>*{opacity:0;transition:opacity .4s var(--ease) .1s}.experience .is-open .experience-body-inner{padding-bottom:26px}.experience .is-open .experience-body-inner>*{opacity:1}@media(max-width:768px){.experience .is-open .experience-body-inner{padding-bottom:18px}}.experience .meta{display:flex;flex-wrap:wrap;gap:10px 22px;padding-top:4px}.experience .meta a,.experience .meta span{align-items:center;color:var(--text-muted);display:inline-flex;font-family:var(--font-mono);font-size:.8rem;gap:7px}.experience .meta a{color:var(--accent-2);transition:opacity .3s var(--ease)}.experience .meta a:hover{opacity:.75}.experience .experience-body-inner p{color:var(--text-muted);font-size:.98rem;margin-top:16px;max-width:780px}.experience .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.experience .tags span{background:#8b5cf61a;border:1px solid #8b5cf638;border-radius:100px;color:#d5c6ff;font-size:.76rem;padding:7px 14px}.education .education-list{display:flex;flex-direction:column;gap:26px;padding-left:34px;position:relative}.education .education-list:before{background:linear-gradient(to bottom,var(--accent),#22d3ee80,#0000);bottom:8px;content:"";left:0;position:absolute;top:8px;width:1px}.education .education-item{position:relative}.education .education-item .marker{background:var(--bg-soft);border:1px solid var(--border);border-radius:50%;color:var(--accent-soft);display:grid;font-size:.9rem;height:34px;left:-34px;margin-left:-17px;place-items:center;position:absolute;top:20px;width:34px}.education .education-body{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 28px;transition:transform .4s var(--ease),border-color .4s var(--ease)}.education .education-body:hover{border-color:var(--border-strong);transform:translateX(6px)}@media(max-width:768px){.education .education-body{padding:20px}}.education .education-body .period{color:var(--accent-2);display:inline-block;font-family:var(--font-mono);font-size:.76rem;margin-bottom:10px}.education .education-body h3{font-size:1.28rem}@media(max-width:768px){.education .education-body h3{font-size:1.1rem}}.education .education-body .institute{color:var(--text-muted);margin-top:6px}.education .education-body .location{align-items:center;color:var(--text-dim);display:flex;font-family:var(--font-mono);font-size:.78rem;gap:7px;margin-top:10px}.publications .publications-list{display:flex;flex-direction:column;gap:18px}.publications .publication-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;gap:24px;padding:32px;transition:transform .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease)}@media(max-width:768px){.publications .publication-card{gap:18px;padding:24px 20px}}.publications .publication-card:hover{background:var(--surface-hover);border-color:#8b5cf673;transform:translateY(-5px)}.publications .publication-card:hover .publication-icon{background:#8b5cf629;border-color:#8b5cf68c;color:var(--text)}.publications .publication-card:hover .publication-link{color:var(--accent-soft)}.publications .publication-card:hover .publication-link svg{transform:translate(3px,-3px)}.publications .publication-icon{background:#ffffff0a;border:1px solid var(--border);border-radius:16px;color:var(--accent-soft);display:grid;flex-shrink:0;font-size:1.35rem;height:52px;place-items:center;transition:color .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease);width:52px}@media(max-width:768px){.publications .publication-icon{font-size:1.15rem;height:44px;width:44px}}.publications .publication-body{flex:1 1;min-width:0}.publications .publication-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:14px}.publications .publication-meta span{align-items:center;color:var(--text-dim);display:inline-flex;font-family:var(--font-mono);font-size:.74rem;gap:6px}.publications .publication-meta .publisher{background:#22d3ee1a;border:1px solid #22d3ee4d;border-radius:100px;color:var(--accent-2);letter-spacing:.04em;padding:5px 12px}.publications .publication-body h3{font-size:1.35rem;line-height:1.3}@media(max-width:768px){.publications .publication-body h3{font-size:1.1rem}}.publications .venue{color:var(--accent-soft);font-size:.92rem;margin-top:8px}.publications .brief{color:var(--text-muted);font-size:.98rem;margin-top:14px;max-width:780px}.publications .publication-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.publications .publication-tags span{background:#8b5cf61a;border:1px solid #8b5cf638;border-radius:100px;color:#d5c6ff;font-size:.74rem;padding:7px 14px}.publications .publication-link{align-items:center;color:var(--text-muted);display:inline-flex;font-size:.9rem;font-weight:600;gap:8px;margin-top:22px;transition:color .3s var(--ease)}.publications .publication-link svg{transition:transform .3s var(--ease)}.references .references-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}@media(max-width:560px){.references .references-grid{grid-template-columns:1fr}}.references .reference-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:26px;justify-content:space-between;padding:30px;position:relative;transition:transform .4s var(--ease),border-color .4s var(--ease),background .4s var(--ease)}.references .reference-card:hover{background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-6px)}.references .reference-card:hover .avatar img{filter:grayscale(0)}.references .reference-card .quote{color:#8b5cf659;font-size:1.5rem;position:absolute;right:26px;top:24px}.references .reference-head{align-items:flex-start;display:flex;gap:16px}.references .reference-head .avatar{border:1px solid var(--border);border-radius:50%;flex-shrink:0;height:62px;overflow:hidden;width:62px}.references .reference-head .avatar img{filter:grayscale(60%);height:100%;object-fit:cover;transition:filter .4s var(--ease);width:100%}.references .reference-head h3{font-size:1.12rem;padding-right:34px}.references .reference-head ul{list-style:none;margin-top:10px}.references .reference-head ul li{color:var(--text-dim);font-size:.86rem;line-height:1.5;padding-left:14px;position:relative}.references .reference-head ul li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:10px;width:5px}.references .reference-head ul li+li{margin-top:8px}.references .reference-contacts{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px;padding-top:20px}.references .reference-contacts a{align-items:center;color:var(--text-muted);display:flex;font-size:.84rem;gap:10px;transition:color .3s var(--ease);word-break:break-all}.references .reference-contacts a:hover{color:var(--accent-soft)}.getintouch .contact-grid{grid-gap:70px;align-items:start;display:grid;gap:70px;grid-template-columns:1fr 1fr}@media(max-width:980px){.getintouch .contact-grid{gap:50px;grid-template-columns:1fr}}.getintouch .contact-copy>p{color:var(--text-muted);font-size:1.04rem}.getintouch .contact-methods{display:flex;flex-direction:column;gap:12px;margin-top:34px}.getintouch .contact-methods a{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;gap:16px;padding:18px 22px;transition:transform .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease)}.getintouch .contact-methods a:hover{background:var(--surface-hover);border-color:#8b5cf666;transform:translateY(-3px)}.getintouch .contact-methods a:hover .arrow{color:var(--accent-soft);transform:translate(3px,-3px)}.getintouch .contact-methods a .icon{background:#8b5cf624;border-radius:14px;color:var(--accent-soft);display:grid;flex-shrink:0;font-size:1.1rem;height:44px;place-items:center;width:44px}.getintouch .contact-methods a .detail{flex:1 1;font-size:.96rem;font-weight:500;min-width:0;word-break:break-all}.getintouch .contact-methods a .detail small{color:var(--text-dim);display:block;font-family:var(--font-mono);font-size:.7rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.getintouch .contact-methods a .arrow{color:var(--text-dim);flex-shrink:0;transition:transform .35s var(--ease),color .35s var(--ease)}.getintouch .contact-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:34px}@media(max-width:768px){.getintouch .contact-form{padding:24px 20px}}.getintouch .contact-form form{display:flex;flex-direction:column;gap:22px}.getintouch .contact-form .field{position:relative}.getintouch .contact-form .field input,.getintouch .contact-form .field textarea{background:#ffffff05;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:.98rem;padding:26px 18px 12px;resize:none;transition:border-color .3s var(--ease),background .3s var(--ease);width:100%}.getintouch .contact-form .field input:focus,.getintouch .contact-form .field textarea:focus{background:#8b5cf60f;border-color:#8b5cf699;outline:none}.getintouch .contact-form .field input:focus+label,.getintouch .contact-form .field input:not(:placeholder-shown)+label,.getintouch .contact-form .field textarea:focus+label,.getintouch .contact-form .field textarea:not(:placeholder-shown)+label{color:var(--accent-soft);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;top:9px}.getintouch .contact-form .field textarea{padding-top:30px}.getintouch .contact-form .field label{color:var(--text-dim);font-size:.92rem;left:19px;pointer-events:none;position:absolute;top:18px;transition:all .25s var(--ease)}.getintouch .contact-form button{align-self:flex-start}@media(max-width:560px){.getintouch .contact-form button{justify-content:center;width:100%}}.getintouch .contact-form .spin{animation:spin 1s linear infinite}.site-footer{background:var(--bg-soft);border-top:1px solid var(--border);padding:70px 0 40px;position:relative}.site-footer .footer-top{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:30px;justify-content:space-between;padding-bottom:40px}@media(max-width:768px){.site-footer .footer-top{align-items:flex-start;flex-direction:column}}.site-footer .footer-brand h2{font-size:1.9rem;font-weight:700}.site-footer .footer-brand h2 .dot{color:var(--accent-2)}.site-footer .footer-brand p{color:var(--text-dim);font-size:.92rem;margin-top:8px}.site-footer .footer-socials{display:flex;gap:10px}.site-footer .footer-socials a{border:1px solid var(--border);border-radius:12px;color:var(--text-muted);display:grid;height:40px;place-items:center;transition:transform .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);width:40px}.site-footer .footer-socials a:hover{border-color:#8b5cf680;color:var(--text);transform:translateY(-3px)}.site-footer .footer-bottom{align-items:center;display:flex;gap:20px;justify-content:space-between;padding-top:28px}@media(max-width:560px){.site-footer .footer-bottom{flex-direction:column}}.site-footer .footer-bottom p{color:var(--text-dim);font-family:var(--font-mono);font-size:.78rem}.site-footer .to-top{align-items:center;background:none;border:1px solid var(--border);border-radius:100px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:.82rem;gap:8px;padding:10px 18px;transition:color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}.site-footer .to-top:hover{border-color:#8b5cf680;color:var(--text);transform:translateY(-3px)}.project-page{min-height:100vh;overflow-x:clip;position:relative}.project-page .project-backdrop{height:780px;left:0;pointer-events:none;position:absolute;top:0;width:100%}.project-page .project-backdrop .orb{background:radial-gradient(circle,#8b5cf652,#0000 65%);border-radius:50%;filter:blur(90px);height:640px;left:50%;margin-left:-450px;position:absolute;top:-160px;width:900px}.project-page .project-backdrop .grid{background-image:linear-gradient(90deg,hsla(0,0%,100%,.035) 1px,#0000 0),linear-gradient(180deg,hsla(0,0%,100%,.035) 1px,#0000 0);background-size:64px 64px;inset:0;mask-image:linear-gradient(180deg,#000,#0000 80%);-webkit-mask-image:linear-gradient(180deg,#000,#0000 80%);position:absolute}.project-page .project-hero{padding-top:160px;position:relative;z-index:1}@media(max-width:768px){.project-page .project-hero{padding-top:130px}}.project-page .project-hero .back-link{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:100px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.85rem;gap:9px;padding:9px 18px;transition:transform .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}.project-page .project-hero .back-link:hover{border-color:#8b5cf680;color:var(--text);transform:translateX(-4px)}.project-page .project-hero .project-heading{margin-top:40px}.project-page .project-hero .project-heading .project-type{color:var(--accent-2);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}.project-page .project-hero .project-heading h1{font-size:clamp(2.4rem,7vw,4.6rem);font-weight:700;letter-spacing:-.04em;line-height:1.02;margin-top:16px;max-width:900px}.project-page .project-hero .project-meta{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:56px;padding-bottom:40px}.project-page .project-hero .project-meta .meta-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:8px;padding:20px 22px}.project-page .project-hero .project-meta .meta-item small{color:var(--text-dim);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.project-page .project-hero .project-meta .meta-item span{color:var(--text);font-size:.98rem;font-weight:500}.project-page .project-hero .project-meta .meta-item .with-flag{align-items:center;display:inline-flex;gap:10px}.project-page .project-hero .project-meta .meta-item .with-flag img{border-radius:3px;height:18px;object-fit:cover;width:26px}.project-page .project-hero .project-meta .meta-link{transition:transform .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}.project-page .project-hero .project-meta .meta-link span{align-items:center;color:var(--accent-soft);display:inline-flex;gap:8px}.project-page .project-hero .project-meta .meta-link:hover{background:var(--surface-hover);border-color:#8b5cf680;transform:translateY(-3px)}.project-page .project-body{grid-gap:70px;display:grid;gap:70px;grid-template-columns:1.4fr 1fr;padding-bottom:40px;padding-top:40px;position:relative;z-index:1}@media(max-width:900px){.project-page .project-body{gap:46px;grid-template-columns:1fr}}.project-page .project-body h2{font-size:1.5rem;margin-bottom:20px}.project-page .project-body .project-overview p{color:var(--text-muted);font-size:1.08rem;line-height:1.8}.project-page .project-body .stack-chips{display:flex;flex-wrap:wrap;gap:9px}.project-page .project-body .stack-chips span{background:#8b5cf61a;border:1px solid #8b5cf638;border-radius:100px;color:#d5c6ff;font-family:var(--font-mono);font-size:.76rem;padding:9px 16px}.project-page .project-gallery{grid-gap:22px;align-items:start;display:grid;gap:22px;grid-template-columns:repeat(2,1fr);padding-bottom:110px;padding-top:60px;position:relative;z-index:1}@media(max-width:768px){.project-page .project-gallery{grid-template-columns:1fr;padding-bottom:70px}}.project-page .project-gallery .gallery-item{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .45s var(--ease),border-color .45s var(--ease)}.project-page .project-gallery .gallery-item:hover{border-color:#8b5cf666;transform:translateY(-6px)}.project-page .project-gallery .gallery-item img{height:auto;width:100%}.scroll-progress{height:2px;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:12000}.scroll-progress span{background:var(--gradient);display:block;height:100%;transform:scaleX(0);transform-origin:left;width:100%}.navbar{display:flex;justify-content:center;left:0;padding:0 var(--gutter);position:fixed;top:18px;transition:top .4s var(--ease);width:100%;z-index:11000}@media(max-width:768px){.navbar{--gutter:16px;top:12px}}.navbar .navbar-inner{align-items:center;border:1px solid #0000;border-radius:100px;display:flex;gap:20px;justify-content:space-between;max-width:var(--page);padding:10px 10px 10px 22px;transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease),-webkit-backdrop-filter .4s var(--ease);transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease),backdrop-filter .4s var(--ease);transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease),backdrop-filter .4s var(--ease),-webkit-backdrop-filter .4s var(--ease);width:100%}.navbar.navbar--scrolled .navbar-inner{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#0b0913b8;border-color:var(--border);box-shadow:0 18px 50px #0006}.navbar .brand{align-items:baseline;display:inline-flex;font-family:var(--font-display);font-size:1.55rem;font-weight:700;letter-spacing:-.04em;line-height:1}.navbar .brand .dot{color:var(--accent-2)}.navbar .nav-links{align-items:center;display:flex;gap:4px}@media(max-width:940px){.navbar .nav-links{display:none}}.navbar .nav-links a{border-radius:100px;color:var(--text-muted);font-size:.92rem;font-weight:500;padding:9px 16px;position:relative;transition:color .3s var(--ease),background .3s var(--ease)}.navbar .nav-links a:hover{background:var(--surface);color:var(--text)}.navbar .nav-links a.is-active{background:var(--surface-hover);color:var(--text)}.navbar .nav-cta{align-items:center;background:var(--gradient);border-radius:100px;box-shadow:0 10px 30px #8b5cf64d;color:#fff;display:inline-flex;font-size:.9rem;font-weight:600;gap:8px;padding:11px 20px;transition:transform .3s var(--ease),box-shadow .3s var(--ease);white-space:nowrap}.navbar .nav-cta:hover{box-shadow:0 16px 40px #8b5cf673;transform:translateY(-2px)}@media(max-width:940px){.navbar .nav-cta{display:none}}.navbar .nav-toggle{background:var(--surface);border:1px solid var(--border);border-radius:14px;cursor:pointer;display:none;flex-direction:column;gap:6px;height:44px;justify-content:center;padding:0 12px;width:44px}@media(max-width:940px){.navbar .nav-toggle{display:flex}}.navbar .nav-toggle span{background:var(--text);border-radius:2px;display:block;height:1.5px;transition:transform .35s var(--ease),opacity .35s var(--ease);width:100%}.navbar .nav-toggle.is-open span:first-child{transform:translateY(3.75px) rotate(45deg)}.navbar .nav-toggle.is-open span:nth-child(2){transform:translateY(-3.75px) rotate(-45deg)}.mobile-menu{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#07060cf5;inset:0;opacity:0;position:fixed;transition:opacity .4s var(--ease),visibility .4s var(--ease);visibility:hidden;z-index:10500}.mobile-menu.is-open{opacity:1;visibility:visible}.mobile-menu .mobile-glow{background:radial-gradient(circle,#8b5cf647,#0000 65%);border-radius:50%;filter:blur(60px);height:460px;pointer-events:none;position:absolute;right:-32%;top:-18%;width:460px}.mobile-menu .mobile-scroll{display:flex;flex-direction:column;height:100%;overflow-y:auto;overscroll-behavior:contain;padding:96px 22px calc(28px + env(safe-area-inset-bottom));position:relative}@media(max-height:720px){.mobile-menu .mobile-scroll{padding-top:82px}}.mobile-menu .mobile-label{color:var(--text-dim);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase}.mobile-menu .mobile-links{display:flex;flex-direction:column;margin-top:18px}.mobile-menu .mobile-links a{align-items:center;border-bottom:1px solid var(--border);color:var(--text-muted);display:flex;gap:16px;opacity:0;padding:17px 4px;transform:translateY(14px);transition:opacity .45s var(--ease),transform .45s var(--ease),color .3s var(--ease)}@media(max-height:720px){.mobile-menu .mobile-links a{padding:13px 4px}}.mobile-menu .mobile-links a:first-child{border-top:1px solid var(--border)}.mobile-menu .mobile-links a .index{color:var(--text-dim);font-family:var(--font-mono);font-size:.72rem}.mobile-menu .mobile-links a .label{flex:1 1;font-family:var(--font-display);font-size:1.6rem;font-weight:600;letter-spacing:-.02em}@media(max-height:720px){.mobile-menu .mobile-links a .label{font-size:1.32rem}}.mobile-menu .mobile-links a .arrow{color:var(--text-dim);font-size:1.05rem;transition:transform .3s var(--ease),color .3s var(--ease)}.mobile-menu .mobile-links a.is-active{color:var(--text)}.mobile-menu .mobile-links a.is-active .index{color:var(--accent-soft)}.mobile-menu .mobile-links a.is-active .arrow{color:var(--accent-soft);transform:translateX(4px)}.mobile-menu.is-open .mobile-links a{opacity:1;transform:none}.mobile-menu .mobile-foot{display:flex;flex-direction:column;gap:18px;margin-top:auto;padding-top:36px}@media(max-height:720px){.mobile-menu .mobile-foot{gap:13px;padding-top:22px}}.mobile-menu .mobile-cta{background:var(--gradient);border-radius:100px;box-shadow:0 14px 36px #8b5cf652;color:#fff;font-size:1rem;font-weight:600;gap:10px;padding:17px 28px}.mobile-menu .mobile-cta,.mobile-menu .mobile-mail{align-items:center;display:inline-flex;justify-content:center}.mobile-menu .mobile-mail{color:var(--text-muted);font-size:.86rem;gap:9px;word-break:break-all}.mobile-menu .mobile-socials{display:flex;gap:10px;justify-content:center}.mobile-menu .mobile-socials a{background:var(--surface);border:1px solid var(--border);border-radius:50%;color:var(--text-muted);display:grid;font-size:.95rem;height:42px;place-items:center;transition:color .3s var(--ease),border-color .3s var(--ease);width:42px}.mobile-menu .mobile-socials a:hover{border-color:var(--border-strong);color:var(--text)}:root{--bg:#07060c;--bg-soft:#0b0913;--surface:hsla(0,0%,100%,.035);--surface-hover:hsla(0,0%,100%,.065);--border:#ffffff14;--border-strong:#ffffff29;--text:#f3f1fb;--text-muted:#a49fba;--text-dim:#6d6885;--accent:#8b5cf6;--accent-soft:#b79dff;--accent-2:#22d3ee;--accent-3:#f472b6;--gradient:linear-gradient(115deg,#8b5cf6,#6366f1 45%,#22d3ee);--gradient-soft:linear-gradient(115deg,#8b5cf62e,#22d3ee1f);--radius-xs:10px;--radius-sm:14px;--radius:20px;--radius-lg:28px;--shadow:0 24px 70px #00000080;--shadow-glow:0 0 0 1px #8b5cf640,0 24px 70px #8b5cf626;--page:1240px;--gutter:40px;--font-display:"Space Grotesk","Inter",sans-serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"Fira Code",monospace;--ease:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:120px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#07060c;background-color:var(--bg);color:#f3f1fb;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:16px;line-height:1.6}h1,h2,h3,h4{font-family:Space Grotesk,Inter,sans-serif;font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.15}a{color:inherit;text-decoration:none}button{font-family:inherit}code{font-family:JetBrains Mono,ui-monospace,Fira Code,monospace;font-family:var(--font-mono)}img{display:block;max-width:100%}::selection{background:#8b5cf659;color:#fff}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#07060c;background:var(--bg)}::-webkit-scrollbar-thumb{background:#8b5cf659;border:3px solid #07060c;border:3px solid var(--bg);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#8b5cf699}.page{margin:0 auto;max-width:1240px;max-width:var(--page);padding:0 40px;padding:0 var(--gutter);width:100%}@media(max-width:768px){.page{--gutter:22px}}.section{padding:120px 0;position:relative}@media(max-width:768px){.section{padding:80px 0}}.section-head{display:flex;flex-direction:column;gap:14px;margin-bottom:64px}@media(max-width:768px){.section-head{margin-bottom:40px}}.section-head .eyebrow{align-items:center;background:hsla(0,0%,100%,.035);background:var(--surface);border:1px solid #ffffff14;border:1px solid var(--border);border-radius:100px;color:#a49fba;color:var(--text-muted);display:inline-flex;font-family:JetBrains Mono,ui-monospace,Fira Code,monospace;font-family:var(--font-mono);font-size:.72rem;gap:10px;letter-spacing:.14em;padding:6px 14px 6px 10px;text-transform:uppercase;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.section-head .eyebrow:before{background:#8b5cf6;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #8b5cf6;box-shadow:0 0 12px var(--accent);content:"";height:6px;width:6px}.section-head h2{font-size:clamp(2rem,4.4vw,3.1rem)}.section-head p{color:#a49fba;color:var(--text-muted);font-size:1.02rem;max-width:620px}.gradient-text{-webkit-text-fill-color:#0000;background:linear-gradient(115deg,#8b5cf6,#6366f1 45%,#22d3ee);background:var(--gradient);-webkit-background-clip:text;background-clip:text}.btn{align-items:center;border:1px solid #0000;border-radius:100px;cursor:pointer;display:inline-flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-body);font-size:.95rem;font-weight:600;gap:10px;padding:15px 26px;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1),background .3s cubic-bezier(.22,1,.36,1),border-color .3s cubic-bezier(.22,1,.36,1),color .3s cubic-bezier(.22,1,.36,1);transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}.btn:disabled{cursor:not-allowed;opacity:.7}.btn:not(:disabled):hover{transform:translateY(-3px)}.btn--primary{background:linear-gradient(115deg,#8b5cf6,#6366f1 45%,#22d3ee);background:var(--gradient);box-shadow:0 12px 34px #8b5cf652;color:#fff}.btn--primary:not(:disabled):hover{box-shadow:0 18px 44px #8b5cf67a}.btn--ghost{background:hsla(0,0%,100%,.035);background:var(--surface);border-color:#ffffff29;border-color:var(--border-strong);color:#f3f1fb;color:var(--text)}.btn--ghost:hover{background:#8b5cf61f;border-color:#8b5cf6;border-color:var(--accent)}@keyframes spin{to{transform:rotate(1turn)}}.reveal{filter:blur(6px);opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1),filter .8s cubic-bezier(.22,1,.36,1);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease);will-change:opacity,transform}.reveal.reveal--left{transform:translateX(-32px)}.reveal.reveal--right{transform:translateX(32px)}.reveal.reveal--scale{transform:scale(.94)}.reveal.is-visible{filter:blur(0);opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{filter:none;opacity:1;transform:none;transition:none}}.preloader{align-items:center;background:#07060c;background:var(--bg);display:flex;flex-direction:column;gap:26px;inset:0;justify-content:center;position:fixed;transition:opacity .6s cubic-bezier(.22,1,.36,1),visibility .6s cubic-bezier(.22,1,.36,1);transition:opacity .6s var(--ease),visibility .6s var(--ease);z-index:20000}.preloader.is-hidden{opacity:0;visibility:hidden}.preloader:before{background:radial-gradient(circle,#8b5cf638,#0000 65%);border-radius:50%;content:"";filter:blur(40px);height:520px;position:absolute;width:520px}.preloader .preloader-mark{font-family:Space Grotesk,Inter,sans-serif;font-family:var(--font-display);font-size:2.4rem;font-weight:700;letter-spacing:-.04em;position:relative}.preloader .preloader-mark .dot{color:#22d3ee;color:var(--accent-2)}.preloader .preloader-bar{background:#ffffff14;background:var(--border);border-radius:4px;height:2px;overflow:hidden;position:relative;width:180px}.preloader .preloader-bar span{animation:preload 1.1s cubic-bezier(.22,1,.36,1) forwards;animation:preload 1.1s var(--ease) forwards;background:linear-gradient(115deg,#8b5cf6,#6366f1 45%,#22d3ee);background:var(--gradient);inset:0;position:absolute;transform-origin:left}@keyframes preload{0%{transform:scaleX(0)}to{transform:scaleX(1)}}
/*# sourceMappingURL=main.6bac2b8b.css.map*/