.cta-btn[data-astro-cid-3ef6ksr2]{align-items:center;padding:.45rem 1rem;border-radius:.5rem;font-size:.78rem;font-weight:600;letter-spacing:-.02em;border:1px solid var(--border-hover);color:var(--accent);white-space:nowrap;transition:background .2s ease,border-color .2s ease}.theme-controls[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.35rem}.theme-picker-wrap[data-astro-cid-3ef6ksr2]{position:relative;display:none}html[data-style-picker="1"] .theme-picker-wrap[data-astro-cid-3ef6ksr2]{display:block}.theme-picker-toggle[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:.45rem;min-width:8.75rem;height:2rem;padding:0 .75rem;border-radius:9999px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-size:.72rem;font-weight:600;letter-spacing:.01em;transition:border-color .2s ease,color .2s ease,background .2s ease}.theme-picker-toggle[data-astro-cid-3ef6ksr2]:hover{border-color:var(--border-hover);color:var(--text);background:var(--bg-surface)}.theme-picker-toggle[data-astro-cid-3ef6ksr2]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-picker-toggle[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{width:.9rem;height:.9rem;flex-shrink:0}.theme-picker-panel[data-astro-cid-3ef6ksr2]{position:absolute;top:calc(100% + .65rem);right:0;width:min(22rem,calc(100vw - 2rem));max-height:70vh;overflow-y:auto;padding:.85rem;border-radius:1rem;border:1px solid var(--border);background:var(--bg-overlay);box-shadow:var(--shadow-card-hover);display:grid;gap:.9rem;z-index:80}.theme-picker-panel[data-astro-cid-3ef6ksr2][hidden]{display:none!important}.theme-group[data-astro-cid-3ef6ksr2]{display:grid;gap:.55rem}.theme-group-title[data-astro-cid-3ef6ksr2]{margin:0;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.theme-option-list[data-astro-cid-3ef6ksr2]{display:grid;gap:.45rem}.theme-option-btn[data-astro-cid-3ef6ksr2]{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.6rem;width:100%;padding:.7rem .8rem;border-radius:.8rem;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);text-align:left;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.theme-option-btn[data-astro-cid-3ef6ksr2]:hover{border-color:var(--border-hover);background:var(--bg-surface);color:var(--text);transform:translateY(-1px)}.theme-option-btn[data-astro-cid-3ef6ksr2].is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.theme-option-btn[data-astro-cid-3ef6ksr2]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-option-meta[data-astro-cid-3ef6ksr2]{font-size:.66rem;font-weight:700;letter-spacing:.08em;color:var(--accent)}.theme-option-name[data-astro-cid-3ef6ksr2]{font-size:.78rem;line-height:1.3}.cta-btn[data-astro-cid-3ef6ksr2]:hover{background:var(--accent-soft);border-color:var(--accent)}.cta-btn[data-astro-cid-3ef6ksr2]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch[data-astro-cid-3ef6ksr2]{position:relative;display:inline-block;width:64px;height:34px;flex-shrink:0;cursor:pointer;transition:filter .5s ease-in-out,transform .5s ease-in-out;transform:scale(.75);filter:saturate(1.25) brightness(1.33)}.switch[data-astro-cid-3ef6ksr2]:hover,.switch[data-astro-cid-3ef6ksr2]:focus-within{filter:saturate(1.5) brightness(1.5)}.switch[data-astro-cid-3ef6ksr2]:focus-within .slider[data-astro-cid-3ef6ksr2]{outline:2px solid var(--accent);outline-offset:2px}.switch[data-astro-cid-3ef6ksr2] input[data-astro-cid-3ef6ksr2]{opacity:0;width:0;height:0}.slider[data-astro-cid-3ef6ksr2]{position:absolute;cursor:pointer;inset:0;background-color:var(--bg-surface);transition:.4s;border-radius:30px}.slider[data-astro-cid-3ef6ksr2]:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:var(--text-muted);transition:.4s;border-radius:50%}.switch[data-astro-cid-3ef6ksr2] .sun[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{position:absolute;top:6px;left:36px;z-index:1;width:24px;height:24px;animation:sw-rotate 30s linear infinite;will-change:transform}.switch[data-astro-cid-3ef6ksr2] .moon[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{fill:var(--text-muted);position:absolute;top:5px;left:5px;z-index:1;width:24px;height:24px;animation:sw-tilt 5s linear infinite;will-change:transform}@keyframes sw-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes sw-tilt{0%{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}to{transform:rotate(0)}}.switch[data-astro-cid-3ef6ksr2] .sun[data-astro-cid-3ef6ksr2]{display:block}.switch[data-astro-cid-3ef6ksr2] .moon[data-astro-cid-3ef6ksr2]{display:none}.switch[data-astro-cid-3ef6ksr2]:has(.input:checked) .sun[data-astro-cid-3ef6ksr2]{display:none}.switch[data-astro-cid-3ef6ksr2]:has(.input:checked) .moon[data-astro-cid-3ef6ksr2]{display:block}.input[data-astro-cid-3ef6ksr2]:checked+.slider[data-astro-cid-3ef6ksr2]{background-color:var(--bg-card)}.input[data-astro-cid-3ef6ksr2]:focus+.slider[data-astro-cid-3ef6ksr2]{box-shadow:0 0 1px var(--bg-card)}.input[data-astro-cid-3ef6ksr2]:checked+.slider[data-astro-cid-3ef6ksr2]:before{transform:translate(30px);background-color:var(--accent-blue)}@media(max-width:767px){.switch[data-astro-cid-3ef6ksr2]{position:absolute;right:15vw}.theme-picker-wrap[data-astro-cid-3ef6ksr2]{display:none}}.hamburger-btn[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer;transition:background .2s ease}.hamburger-btn[data-astro-cid-3ef6ksr2]:hover{background:#ffffff14}.hamburger-btn[data-astro-cid-3ef6ksr2]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hamburger-btn[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{display:block;width:100%;height:1.5px;background:var(--text-muted);border-radius:9999px;transition:transform .3s ease,opacity .3s ease,width .3s ease}.hamburger-btn[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]:nth-child(3){width:65%}.nav-link-sm[data-astro-cid-3ef6ksr2]{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.nav-link-sm[data-astro-cid-3ef6ksr2]:hover{color:var(--text)}.overlay[data-astro-cid-3ef6ksr2]{position:fixed;inset:0;z-index:200;background:var(--bg-overlay);display:flex;flex-direction:column;pointer-events:none;opacity:0;transition:opacity .35s ease}.overlay[data-astro-cid-3ef6ksr2].open{opacity:1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:all}.overlay-glow[data-astro-cid-3ef6ksr2]{position:absolute;top:-10%;right:-5%;width:500px;height:500px;border-radius:50%;background:none;pointer-events:none}.overlay-close[data-astro-cid-3ef6ksr2]{position:absolute;top:1.25rem;right:1.5rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff0a;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;transition:color .2s ease,background .2s ease;z-index:10}.overlay-close[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{width:20px;height:20px}.overlay-close[data-astro-cid-3ef6ksr2]:hover{color:var(--text);background:#ffffff14}.overlay-close[data-astro-cid-3ef6ksr2]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.overlay-inner[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;justify-content:center;flex:1;padding:5rem 6vw 3rem;max-width:860px;position:relative;z-index:2}.overlay-eyebrow[data-astro-cid-3ef6ksr2]{font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin-bottom:2.5rem}.overlay-nav[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;gap:0}.overlay-link[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text-muted);position:relative;overflow:hidden;opacity:0;transform:translateY(18px);transition:opacity .45s ease calc(var(--i) * .07s),transform .45s cubic-bezier(.22,1,.36,1) calc(var(--i) * .07s),color .2s ease}.overlay[data-astro-cid-3ef6ksr2].open .overlay-link[data-astro-cid-3ef6ksr2]{opacity:1;transform:translateY(0)}.overlay-link[data-astro-cid-3ef6ksr2]:hover{color:var(--text)}.overlay-link[data-astro-cid-3ef6ksr2]:before{content:"";position:absolute;inset:0;background:var(--accent-soft);opacity:0;transition:opacity .25s ease}.overlay-link[data-astro-cid-3ef6ksr2]:hover:before{opacity:1}.overlay-num[data-astro-cid-3ef6ksr2]{font-size:.72rem;font-weight:600;letter-spacing:.08em;color:var(--text-dimmer);min-width:2rem;transition:color .2s ease}.overlay-link[data-astro-cid-3ef6ksr2]:hover .overlay-num[data-astro-cid-3ef6ksr2]{color:var(--accent)}.overlay-link-body[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;gap:.2rem;flex:1}.overlay-link-label[data-astro-cid-3ef6ksr2]{font-size:clamp(1.6rem,4vw,2.8rem);font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--text);transition:color .25s ease}.overlay-link[data-astro-cid-3ef6ksr2]:hover .overlay-link-label[data-astro-cid-3ef6ksr2]{color:var(--accent)}.overlay-link-desc[data-astro-cid-3ef6ksr2]{font-size:.8rem;color:var(--text-dim);letter-spacing:.01em;transition:color .2s ease}.overlay-link[data-astro-cid-3ef6ksr2]:hover .overlay-link-desc[data-astro-cid-3ef6ksr2]{color:var(--text-muted)}.overlay-arrow[data-astro-cid-3ef6ksr2]{width:1.5rem;height:1.5rem;color:var(--text-dimmer);flex-shrink:0;transition:color .2s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.overlay-link[data-astro-cid-3ef6ksr2]:hover .overlay-arrow[data-astro-cid-3ef6ksr2]{color:var(--accent);transform:translate(4px,-4px)}.overlay-bottom[data-astro-cid-3ef6ksr2]{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding-top:2rem;border-top:1px solid var(--border);margin-top:1rem}.overlay-bottom-label[data-astro-cid-3ef6ksr2]{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dimmer);width:100%;margin-bottom:.1rem}.overlay-quick-link[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:500;letter-spacing:.04em;color:var(--text-dim);transition:color .2s ease}.overlay-quick-link[data-astro-cid-3ef6ksr2]:hover{color:var(--accent)}.overlay-ext-icon[data-astro-cid-3ef6ksr2]{width:11px;height:11px;opacity:.6}.dm-wrapper[data-astro-cid-3ef6ksr2]{display:none}@media(min-width:1024px){.dm-wrapper[data-astro-cid-3ef6ksr2]{display:grid;grid-template-rows:1fr;opacity:1;border-top:1px solid var(--border);transition:grid-template-rows .55s cubic-bezier(.4,0,.2,1),opacity .4s ease,border-top-color .4s ease}header[data-astro-cid-3ef6ksr2].scrolled .dm-wrapper[data-astro-cid-3ef6ksr2]{grid-template-rows:0fr;opacity:0;border-top-color:transparent}}.desktop-mega[data-astro-cid-3ef6ksr2]{min-height:0;overflow:hidden;display:flex;margin:0 -1rem}.dm-item[data-astro-cid-3ef6ksr2]{flex:1;display:flex;align-items:center;gap:.6rem;padding:.65rem 1rem;border-right:1px solid var(--border);text-decoration:none;color:var(--text-dim);position:relative;overflow:hidden;transition:color .2s ease,background .25s ease,transform .45s cubic-bezier(.4,0,.2,1) calc((var(--i)) * .04s),opacity .35s ease calc((var(--i)) * .04s)}header[data-astro-cid-3ef6ksr2].scrolled .dm-item[data-astro-cid-3ef6ksr2]{transform:translateY(-10px);opacity:0}.dm-item[data-astro-cid-3ef6ksr2]:last-child{border-right:none}.dm-item[data-astro-cid-3ef6ksr2]:before{content:"";position:absolute;inset:0;background:var(--accent-soft);opacity:0;transition:opacity .25s ease}.dm-item[data-astro-cid-3ef6ksr2]:hover:before{opacity:1}.dm-item[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--accent);transition:width .35s cubic-bezier(.22,1,.36,1)}.dm-item[data-astro-cid-3ef6ksr2]:hover:after{width:100%}.dm-num[data-astro-cid-3ef6ksr2]{font-size:.62rem;font-weight:700;letter-spacing:.1em;color:var(--text-dimmer);min-width:1.5rem;transition:color .2s ease;align-self:flex-start;padding-top:2px}.dm-item[data-astro-cid-3ef6ksr2]:hover .dm-num[data-astro-cid-3ef6ksr2]{color:var(--accent)}.dm-body[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.dm-label[data-astro-cid-3ef6ksr2]{font-size:.92rem;font-weight:700;letter-spacing:-.02em;line-height:1;white-space:nowrap;color:var(--text-muted);transition:color .2s ease}.dm-item[data-astro-cid-3ef6ksr2]:hover .dm-label[data-astro-cid-3ef6ksr2]{color:var(--accent)}.dm-desc[data-astro-cid-3ef6ksr2]{font-size:.65rem;color:var(--text-dimmer);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s ease}.dm-item[data-astro-cid-3ef6ksr2]:hover .dm-desc[data-astro-cid-3ef6ksr2]{color:var(--text-dim)}.dm-arrow[data-astro-cid-3ef6ksr2]{width:.85rem;height:.85rem;color:var(--text-dimmer);flex-shrink:0;align-self:flex-start;margin-top:2px;transition:color .2s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.dm-item[data-astro-cid-3ef6ksr2]:hover .dm-arrow[data-astro-cid-3ef6ksr2]{color:var(--accent);transform:translate(3px,-3px)}#overlay-menu[data-astro-cid-3ef6ksr2] .overlay-inner[data-astro-cid-3ef6ksr2]{padding:1rem 6vw 3rem}.nav-link[data-astro-cid-3ef6ksr2].active{color:var(--text)}.nav-link[data-astro-cid-3ef6ksr2].active:after{width:100%}@media(min-width:640px)and (max-width:767px){header[data-astro-cid-3ef6ksr2] .container[data-astro-cid-3ef6ksr2] .gap-3[data-astro-cid-3ef6ksr2]{gap:30vw!important}}@media(min-width:1024px)and (max-width:1279px){.nav-link[data-astro-cid-3ef6ksr2]{padding-bottom:0}header[data-astro-cid-3ef6ksr2] .container[data-astro-cid-3ef6ksr2] .gap-6[data-astro-cid-3ef6ksr2]{gap:1rem!important}}.hero-social-link[data-astro-cid-bbe6dxrz]{color:var(--text-dim);display:inline-flex;align-items:center;border-radius:.125rem;transition:color .2s ease,transform .2s ease}.hero-social-link[data-astro-cid-bbe6dxrz]:hover{color:var(--accent);transform:translateY(-4px)}.hero-social-link[data-astro-cid-bbe6dxrz]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[data-astro-cid-bbe6dxrz][data-theme=light] .hero-social-link[data-astro-cid-bbe6dxrz]{color:#475569}[data-astro-cid-bbe6dxrz][data-theme=light] .hero-social-link[data-astro-cid-bbe6dxrz]:hover{color:#1e293b}.spotlight-bg[data-astro-cid-bbe6dxrz]{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.spotlight[data-astro-cid-bbe6dxrz]{position:absolute;border-radius:50%;pointer-events:none}.spotlight-1[data-astro-cid-bbe6dxrz]{width:90vw;height:90vw;max-width:900px;max-height:900px;background:radial-gradient(circle,var(--accent-soft) 0%,transparent 65%);filter:blur(24px);animation:drift-1 22s ease-in-out infinite alternate}.spotlight-2[data-astro-cid-bbe6dxrz]{width:70vw;height:70vw;max-width:700px;max-height:700px;background:radial-gradient(circle,var(--accent-2-soft) 0%,transparent 65%);filter:blur(36px);animation:drift-2 28s ease-in-out infinite alternate}.spotlight-3[data-astro-cid-bbe6dxrz]{width:40vw;height:40vw;max-width:400px;max-height:400px;background:none;filter:blur(12px);animation:drift-3 18s ease-in-out infinite alternate}@keyframes drift-1{0%{transform:translate(-20%,-10%);opacity:.5}25%{transform:translate(40%,10%);opacity:1}50%{transform:translate(60%,50%);opacity:.6}75%{transform:translate(10%,70%);opacity:.9}to{transform:translate(-10%,40%);opacity:.4}}@keyframes drift-2{0%{transform:translate(80%,60%);opacity:.6}33%{transform:translate(10%,80%);opacity:1}66%{transform:translate(-10%,20%);opacity:.5}to{transform:translate(70%,-10%);opacity:.8}}@keyframes drift-3{0%{transform:translate(50%,20%);opacity:.3}40%{transform:translate(80%,60%);opacity:.8}70%{transform:translate(20%,80%);opacity:.4}to{transform:translate(60%,10%);opacity:.9}}.hero-slide[data-astro-cid-bbe6dxrz]{cursor:pointer}.pf-slide-caption[data-astro-cid-bbe6dxrz]{background:var(--pf-caption-bg, color-mix(in srgb, var(--bg-card) 88%, transparent));border:1px solid var(--pf-caption-border, var(--border));box-shadow:var(--pf-caption-shadow, none);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.slider-nav-btn[data-astro-cid-bbe6dxrz]{position:absolute;top:50%;z-index:30;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--slider-nav-bg, color-mix(in srgb, var(--bg-card) 82%, transparent));backdrop-filter:blur(8px) saturate(1.4);-webkit-backdrop-filter:blur(8px) saturate(1.4);border:1px solid var(--slider-nav-border, var(--border));box-shadow:var( --slider-nav-shadow, 0 4px 18px rgba(0, 0, 0, .26), 0 1px 0 rgba(255, 255, 255, .04) inset );color:var(--slider-nav-color, var(--text-muted));transition:background .25s ease,border-color .25s ease,box-shadow .25s ease,color .2s ease,opacity .3s ease,transform .35s cubic-bezier(.34,1.56,.64,1)}.slider-nav-btn[data-astro-cid-bbe6dxrz].pf-nav-hidden{opacity:0;pointer-events:none}.slider-nav-prev[data-astro-cid-bbe6dxrz]{left:0;transform:translateY(-50%) translate(-50%)}.slider-nav-next[data-astro-cid-bbe6dxrz]{right:0;transform:translateY(-50%) translate(50%)}@keyframes cloud-bob-l{0%,to{transform:translateY(-50%) translate(-50%) translateY(0)}50%{transform:translateY(-50%) translate(-50%) translateY(-6px)}}@keyframes cloud-bob-r{0%,to{transform:translateY(-50%) translate(50%) translateY(0)}50%{transform:translateY(-50%) translate(50%) translateY(-8px)}}.slider-nav-btn[data-astro-cid-bbe6dxrz]:hover{background:var(--slider-nav-hover-bg, var(--accent-soft));border-color:var(--slider-nav-hover-border, var(--border-hover));color:var(--accent);box-shadow:var( --slider-nav-hover-shadow, 0 10px 28px rgba(0, 0, 0, .24), 0 1px 0 rgba(255, 255, 255, .08) inset )}.slider-nav-prev[data-astro-cid-bbe6dxrz]:hover{animation-play-state:paused;transform:translateY(-50%) translate(-50%) scale(1.12)}.slider-nav-next[data-astro-cid-bbe6dxrz]:hover{animation-play-state:paused;transform:translateY(-50%) translate(50%) scale(1.12)}.slider-nav-btn[data-astro-cid-bbe6dxrz]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.slider-dot[data-astro-cid-bbe6dxrz]:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:9999px}.slider-nav-icon[data-astro-cid-bbe6dxrz]{width:18px;height:18px;flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.slider-nav-prev[data-astro-cid-bbe6dxrz]:hover .slider-nav-icon[data-astro-cid-bbe6dxrz]{transform:translate(-2px)}.slider-nav-next[data-astro-cid-bbe6dxrz]:hover .slider-nav-icon[data-astro-cid-bbe6dxrz]{transform:translate(2px)}.text-backdrop[data-astro-cid-bbe6dxrz]{position:relative;z-index:2;background:color-mix(in srgb,var(--bg-surface) 88%,transparent);border-radius:.5rem;padding:.75rem 1rem;border:1px solid var(--border);border-left:2px solid var(--accent)}.project-frame-outer[data-astro-cid-bbe6dxrz]{position:relative;overflow:visible}html[data-theme=light] #home[data-astro-cid-bbe6dxrz],html[data-theme=s1l] #home[data-astro-cid-bbe6dxrz],html[data-theme=s2l] #home[data-astro-cid-bbe6dxrz],html[data-theme=s3l] #home[data-astro-cid-bbe6dxrz],html[data-theme=s4l] #home[data-astro-cid-bbe6dxrz],html[data-theme=s5l] #home[data-astro-cid-bbe6dxrz],html[data-theme=s6l] #home[data-astro-cid-bbe6dxrz],html[data-theme=l16] #home[data-astro-cid-bbe6dxrz],html[data-theme=l17] #home[data-astro-cid-bbe6dxrz],html[data-theme=l18] #home[data-astro-cid-bbe6dxrz],html[data-theme=l19] #home[data-astro-cid-bbe6dxrz],html[data-theme=l20] #home[data-astro-cid-bbe6dxrz],html[data-theme=l21] #home[data-astro-cid-bbe6dxrz],html[data-theme=l22] #home[data-astro-cid-bbe6dxrz],html[data-theme=l23] #home[data-astro-cid-bbe6dxrz]{--hero-canvas-opacity: .18;--pf-frame-bg: rgba(244, 247, 251, .96);--pf-frame-outline: color-mix(in srgb, var(--accent) 42%, var(--border));--pf-frame-shadow: 0 16px 34px rgba(51, 65, 85, .14), 0 0 0 2px rgba(255, 255, 255, .86) inset;--pf-header-bg: linear-gradient( 180deg, rgba(255, 255, 255, .98) 0%, color-mix(in srgb, var(--accent) 8%, #eef4fb) 100% );--pf-header-border-color: color-mix(in srgb, var(--accent) 36%, #ffffff) color-mix(in srgb, var(--border) 70%, #ffffff) color-mix(in srgb, var(--border) 82%, #ffffff) color-mix(in srgb, var(--accent) 36%, #ffffff);--pf-title-color: #172033;--pf-title-weight: 700;--pf-title-shadow: none;--pf-btn-bg: rgba(255, 255, 255, .52);--pf-btn-border: rgba(255, 255, 255, .92) color-mix(in srgb, var(--accent) 28%, var(--border)) color-mix(in srgb, var(--accent) 28%, var(--border)) rgba(255, 255, 255, .92);--pf-btn-hover-bg: rgba(255, 255, 255, .78);--pf-btn-hover-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent);--pf-btn-icon-color: var(--accent);--pf-btn-icon-hover-color: var(--accent);--pf-body-bg: rgba(247, 250, 253, .9);--pf-body-border: color-mix(in srgb, var(--accent) 26%, var(--border)) rgba(255, 255, 255, .88) rgba(255, 255, 255, .88) color-mix(in srgb, var(--accent) 26%, var(--border));--pf-caption-bg: rgba(248, 250, 252, .94);--pf-caption-border: color-mix(in srgb, var(--accent) 34%, var(--border));--pf-caption-shadow: 0 10px 24px rgba(51, 65, 85, .12);--slider-nav-bg: rgba(255, 255, 255, .78);--slider-nav-border: color-mix(in srgb, var(--accent) 24%, var(--border));--slider-nav-shadow: 0 10px 24px rgba(51, 65, 85, .14);--slider-nav-color: var(--accent);--slider-nav-hover-bg: rgba(255, 255, 255, .92);--slider-nav-hover-border: color-mix(in srgb, var(--accent) 42%, var(--border));--slider-nav-hover-shadow: 0 14px 28px rgba(51, 65, 85, .18)}.project-frame[data-astro-cid-bbe6dxrz]{--pf-border: 4px;--pf-header-h: 30px;--pf-header-border: 2px;--pf-btn-gap: 2px;--pf-header-inner: calc(var(--pf-header-h) - var(--pf-header-border) * 2);--pf-btn-size: calc(var(--pf-header-inner) - var(--pf-btn-gap) * 2);position:relative;width:100%;height:100%;overflow:visible;background:var(--pf-frame-bg, var(--bg-card));outline:1.5px solid var(--pf-frame-outline, #000);box-shadow:var( --pf-frame-shadow, 5px 5px 18px rgba(0, 0, 0, .85), inset 1px 1px 0 rgba(255, 255, 255, .05), inset -1px -1px 0 rgba(0, 0, 0, .5) );transition:box-shadow .3s ease,transform .15s ease}.pf-header[data-astro-cid-bbe6dxrz]{position:absolute;box-sizing:border-box;top:var(--pf-border);left:var(--pf-border);width:calc(100% - var(--pf-border) * 2);height:var(--pf-header-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pf-btn-gap) 0 8px;overflow:hidden;background:var(--pf-header-bg, linear-gradient(180deg, #333946 0%, #2c313c 100%));border:var(--pf-header-border) solid;border-color:var( --pf-header-border-color, rgb(48, 68, 115) rgb(8, 12, 26) rgb(8, 12, 26) rgb(48, 68, 115) );cursor:grab;user-select:none}.pf-header[data-astro-cid-bbe6dxrz]:active{cursor:grabbing}.pf-title[data-astro-cid-bbe6dxrz]{flex:1;min-width:0;margin:0;padding:0;font-size:calc(var(--pf-header-inner) - 8px);line-height:var(--pf-header-inner);font-weight:var(--pf-title-weight, normal);font-family:monospace;color:var(--pf-title-color, var(--text));text-shadow:var(--pf-title-shadow, 1px 1px 2px #000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-btn-group[data-astro-cid-bbe6dxrz]{display:flex;align-items:center;gap:2px;flex-shrink:0}.pf-btn[data-astro-cid-bbe6dxrz]{box-sizing:border-box;width:var(--pf-btn-size);height:var(--pf-btn-size);padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:var(--pf-btn-bg, #2c313c);border:2px solid;border-color:var( --pf-btn-border, rgb(38, 55, 98) rgb(8, 12, 26) rgb(8, 12, 26) rgb(38, 55, 98) );transition:box-shadow .2s,background-color .2s}.pf-btn[data-astro-cid-bbe6dxrz]:active{border-color:rgb(8,12,26) rgb(38,55,98) rgb(38,55,98) rgb(8,12,26)}.pf-btn[data-astro-cid-bbe6dxrz]:hover{box-shadow:var( --pf-btn-hover-shadow, 0 0 0 2px color-mix(in srgb, var(--glow-color, var(--accent)) 38%, transparent) );background-color:var(--pf-btn-hover-bg, #333946)}.pf-btn[data-astro-cid-bbe6dxrz]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pf-btn-icon[data-astro-cid-bbe6dxrz]{width:.55em;height:.55em;color:var(--pf-btn-icon-color, var(--text-muted));transition:color .2s;flex-shrink:0}.pf-btn[data-astro-cid-bbe6dxrz]:hover .pf-btn-icon[data-astro-cid-bbe6dxrz]{color:var(--pf-btn-icon-hover-color, #fff)}.pf-body[data-astro-cid-bbe6dxrz]{position:absolute;box-sizing:border-box;overflow:hidden;top:calc(var(--pf-header-h) + var(--pf-border) * 2);left:var(--pf-border);width:calc(100% - var(--pf-border) * 2);height:calc(100% - var(--pf-header-h) - var(--pf-border) * 3);background:var(--pf-body-bg, #282c34);border:2px solid;border-color:var( --pf-body-border, rgb(8, 12, 26) rgb(22, 32, 58) rgb(22, 32, 58) rgb(8, 12, 26) )}.pf-badge[data-astro-cid-bbe6dxrz]{position:absolute;bottom:-2rem;left:-1rem;width:3rem;height:3rem;z-index:22;overflow:hidden;background-color:var(--bg-card);outline:1.5px solid #000;box-shadow:4px 4px 12px #000c,inset 1px 1px #ffffff0d}.pf-counter[data-astro-cid-bbe6dxrz]{position:absolute;bottom:-2rem;left:-1rem;z-index:20;display:flex;align-items:center;gap:.75rem;padding:.55rem 1rem .55rem 3.75rem;background-color:var(--bg-card);outline:1.5px solid #000;box-shadow:4px 4px 12px #000c,inset 1px 1px #ffffff0d}@media(max-width:1023px){.order-1[data-astro-cid-bbe6dxrz]{margin-top:-200px;margin-bottom:-200px}}@media(max-width:639px){.project-frame-sizer[data-astro-cid-bbe6dxrz]{width:min(90vw,380px)!important;height:min(67.5vw,285px)!important}}@media(min-width:640px)and (max-width:1023px){.project-frame-sizer[data-astro-cid-bbe6dxrz]{width:min(82vw,520px)!important;height:min(61.5vw,390px)!important}}@media(min-width:1600px){.project-frame-sizer[data-astro-cid-bbe6dxrz]{width:746px!important;height:560px!important;right:-45px}}.project-frame[data-astro-cid-bbe6dxrz].pf-fullscreen{position:fixed!important;top:5vh!important;left:5vw!important;width:90vw!important;height:90vh!important;z-index:9999;transform:none!important}#pf-overlay[data-astro-cid-bbe6dxrz]{display:none;position:fixed;inset:0;background:#000c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:9998;cursor:pointer}#pf-overlay[data-astro-cid-bbe6dxrz].pf-overlay-active{display:block}.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{display:none;position:absolute;right:-25px;top:-4.5%;pointer-events:none}.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{display:block;z-index:2;right:-4rem}.portrait-peek-img[data-astro-cid-bbe6dxrz]{animation:none}.portrait-peek-img[data-astro-cid-bbe6dxrz]{display:block;width:280px;height:auto;transform:translateY(0);animation-delay:5s}@media(min-width:1280px)and (max-width:1535px){.text-backdrop[data-astro-cid-bbe6dxrz]{width:125%}.portrait-peek-img[data-astro-cid-bbe6dxrz]{transform:scale(.8)}.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{right:calc(-25% - 25px)}}@media(min-width:1024px)and (max-width:1279px){.portrait-peek-img[data-astro-cid-bbe6dxrz]{top:-8.5%;right:-70px;transform:translateY(0) scale(.58);animation-delay:1s;animation:portrait-peek-mobile-horizontal 20s ease-in-out infinite}.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{z-index:1}}@media(min-width:501px)and (max-width:1023px){.portrait-peek-img[data-astro-cid-bbe6dxrz]{transform:scale(.7)}.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{top:-10%;right:-25px;transform:scaleX(-1)}}@media(min-width:440px)and (max-width:500px){.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{top:-8.5%;right:-15%;transform:scaleX(-1)}.portrait-peek-img[data-astro-cid-bbe6dxrz]{transform:scale(.5)}}@media(min-width:400px)and (max-width:439px){.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{top:-8.5%;right:-25%;transform:scaleX(-1)}.portrait-peek-img[data-astro-cid-bbe6dxrz]{transform:scale(.45)}}@media(max-width:399px){.portrait-peek-wrapper[data-astro-cid-bbe6dxrz]{display:none}}@keyframes portrait-peek-mobile{0%{transform:translate(0) rotate(0)}10%{transform:translate(145px) rotate(0)}26%{transform:translate(145px) rotate(12deg)}45%{transform:translate(155px) rotate(20deg)}58%{transform:translate(140px) rotate(20deg)}80%,to{transform:translate(0) rotate(0)}}@keyframes portrait-peek-mobile-horizontal{0%{transform:translate(0) rotate(0) scale(.58)}10%{transform:translate(100px) rotate(0) scale(.58)}26%{transform:translate(115px) rotate(12deg) scale(.58)}45%{transform:translate(134px) rotate(25deg) scale(.6)}55%{transform:translate(100px) rotate(20deg) scale(.58)}70%,to{transform:translate(0) rotate(0) scale(.58)}}@keyframes portrait-peek{0%{transform:translateY(0) rotate(0)}10%{transform:translateY(-200px) rotate(0)}15%{transform:translateY(-220px) rotate(6deg)}22%{transform:translateY(-220px) rotate(11deg)}30%{transform:translateY(-200px) translate(50px) rotate(20deg)}39%{transform:translateY(-200px) translate(50px) rotate(20deg)}43%{transform:translateY(-180px) rotate(0)}48%{transform:translateY(0) rotate(0)}55%{transform:translateY(0) rotate(0)}58%{transform:translateY(0) translate(180px) rotate(0)}63%{transform:translateY(0) translate(180px) rotate(12deg)}69%{transform:translateY(6px) translate(188px) rotate(20deg)}73%{transform:translateY(6px) translate(188px) rotate(20deg)}80%,to{transform:translateY(0) translate(0) rotate(0)}}@media(max-width:1023px){#home[data-astro-cid-bbe6dxrz] p[data-astro-cid-bbe6dxrz].text-sm.tracking-widest.text-highlight.uppercase{display:none}#home[data-astro-cid-bbe6dxrz]{padding-top:3rem}}[data-astro-cid-bbe6dxrz][data-theme=light] .gradient-text[data-astro-cid-bbe6dxrz]{color:var(--accent)}@media(max-width:1023px){.hero-badge-icon[data-astro-cid-bbe6dxrz],.pf-badge[data-astro-cid-bbe6dxrz],.pf-counter[data-astro-cid-bbe6dxrz]{display:none!important}}.hero-slide-img[data-astro-cid-bbe6dxrz]{width:100%;height:100%;object-fit:contain;object-position:center;display:block}#about[data-astro-cid-v2cbyr3p]{background:transparent}.about-card[data-astro-cid-v2cbyr3p]{background:var(--bg-card-solid);border-color:var(--border)}.about-lead[data-astro-cid-v2cbyr3p],.about-meta-title[data-astro-cid-v2cbyr3p]{color:var(--text)}.about-meta-text[data-astro-cid-v2cbyr3p],.about-meta-link[data-astro-cid-v2cbyr3p]{color:var(--text-muted)}.about-meta-link[data-astro-cid-v2cbyr3p]:hover{color:var(--accent)}.services-grid[data-astro-cid-jznfhtox]{display:grid;grid-template-columns:1fr;gap:1.25rem}@media(min-width:640px){.services-grid[data-astro-cid-jznfhtox]{grid-template-columns:1fr 1fr}}.svc-card[data-astro-cid-jznfhtox]{position:relative;border-radius:1rem;border:1px solid var(--border);background:var(--bg-card);transition:border-color .3s ease,transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease}.svc-card[data-astro-cid-jznfhtox]:hover{border-color:#6366f173;transform:translateY(-4px);box-shadow:0 16px 40px #0000004d}.svc-inner[data-astro-cid-jznfhtox]{display:flex;align-items:flex-start;gap:1.25rem;padding:1.5rem;border-radius:inherit;background:transparent;height:100%}.svc-icon-box[data-astro-cid-jznfhtox]{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:.75rem;background:#6366f114;border:1px solid rgba(99,102,241,.15);transition:background .35s ease,border-color .35s ease,transform .4s cubic-bezier(.34,1.56,.64,1);padding:10px}.svc-card[data-astro-cid-jznfhtox]:hover .svc-icon-box[data-astro-cid-jznfhtox]{background:#6366f126;border-color:#6366f166;transform:rotate(-6deg) scale(1.1)}.svc-svg[data-astro-cid-jznfhtox]{width:100%;height:100%;display:block}.svc-card[data-astro-cid-jznfhtox] .svc-svg[data-astro-cid-jznfhtox] stop[data-astro-cid-jznfhtox]{transition:stop-color .4s ease}.svc-card[data-astro-cid-jznfhtox]:hover .svc-svg[data-astro-cid-jznfhtox] stop[data-astro-cid-jznfhtox]:first-child{stop-color:#22d3ee}.svc-card[data-astro-cid-jznfhtox]:hover .svc-svg[data-astro-cid-jznfhtox] stop[data-astro-cid-jznfhtox]:last-child{stop-color:#c026d3}.svc-content[data-astro-cid-jznfhtox]{flex:1}.svc-title[data-astro-cid-jznfhtox]{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.4rem;color:var(--text);transition:color .3s ease}.svc-card[data-astro-cid-jznfhtox]:hover .svc-title[data-astro-cid-jznfhtox]{color:var(--accent)}.svc-desc[data-astro-cid-jznfhtox]{font-size:.875rem;line-height:1.65;color:var(--text-muted);transition:color .3s ease}.svc-card[data-astro-cid-jznfhtox]:hover .svc-desc[data-astro-cid-jznfhtox]{color:var(--text)}[data-theme=light] .svc-card[data-astro-cid-jznfhtox]:hover{box-shadow:0 16px 40px #0000001a}[data-theme=light] .svc-card[data-astro-cid-jznfhtox]:hover .svc-desc[data-astro-cid-jznfhtox]{color:var(--text-muted)}.filter-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem 1rem;border-radius:9999px;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--text-dim);background:var(--bg-section);border:1px solid var(--border);cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s cubic-bezier(.34,1.56,.64,1)}.filter-btn:hover{color:var(--text-muted);background:var(--bg-card);border-color:var(--border-hover);transform:translateY(-1px)}.filter-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-btn.filter-active{color:var(--accent);background:var(--accent-soft);border-color:var(--border-hover)}.filter-count{font-size:.65rem;font-weight:700;color:var(--text-dimmer);background:var(--border);border-radius:9999px;padding:0 .35rem;min-width:1.1rem;text-align:center;transition:color .2s ease,background .2s ease}.filter-btn.filter-active .filter-count{color:var(--accent);background:var(--accent-soft)}.project-card{transition:opacity .2s ease;position:relative;cursor:pointer}.project-card:focus-visible .project-card-inner{outline:2px solid var(--accent);outline-offset:2px}.project-card.pf-hidden{display:none}.project-card.pf-enter{animation:card-enter .4s cubic-bezier(.22,1,.36,1) var(--enter-delay, 0s) both}@keyframes card-enter{0%{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.float-icon-wrap{position:absolute;top:-14px;right:16px;z-index:20;width:44px;height:44px;border-radius:10px;background:var(--bg-card-solid);border:1px solid var(--border);box-shadow:0 4px 16px #0000004d;display:flex;align-items:center;justify-content:center;padding:7px;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,border-color .35s ease}.project-card:hover .float-icon-wrap{transform:translateY(-4px) scale(1.1);border-color:var(--border-hover);box-shadow:0 8px 28px #00000059,0 0 0 1px var(--border-hover)}.float-icon{width:100%;height:100%;object-fit:contain;display:block}.float-icon-mdi{filter:invert(1) brightness(.85)}.category-badge{font-size:.56rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);background:var(--accent-soft);border:1px solid var(--border);opacity:.7;border-radius:9999px;padding:.25rem .75rem;position:relative;z-index:1;white-space:nowrap;transition:color .3s ease,background .3s ease,border-color .3s ease,opacity .3s ease}.project-card:hover .category-badge{color:var(--text-muted);background:var(--accent-soft);border-color:var(--border-hover);opacity:1}.project-card.has-bg .category-badge{color:#e2e8f0a6}.project-ai-entry{display:inline-flex;align-items:center;gap:.38rem;border:1px solid var(--border-hover);border-radius:9999px;background:var(--accent-soft);color:var(--accent);padding:.3rem .58rem;font-size:.68rem;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;position:relative;z-index:2;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.project-ai-entry:hover{color:var(--text);background:var(--accent-soft);border-color:var(--accent);transform:translateY(-1px)}.project-ai-entry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-ai-dot{width:.4rem;height:.4rem;border-radius:9999px;background:var(--accent-2);box-shadow:0 0 0 4px var(--accent-2-soft)}.project-card.has-bg .project-ai-entry{background:color-mix(in srgb,var(--bg-card) 72%,transparent);border-color:var(--border-hover);color:var(--accent)}.card-bg-img{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit}.card-bg-img:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(155deg,#04081661,#0408169e);transition:background .55s ease}.project-card:hover .card-bg-img:after{background:linear-gradient(155deg,#04081642,#04081680)}.card-bg-img img{position:absolute;inset:-10%;width:120%;height:120%;object-fit:cover;object-position:center;filter:blur(24px) saturate(2.1) brightness(.44) grayscale(.25);transition:filter .55s ease}.project-card:hover .card-bg-img img{filter:blur(18px) saturate(2.5) brightness(.56) grayscale(.25)}.project-card-inner{position:relative;display:flex;flex-direction:column;height:100%;border-radius:1rem;border:1px solid var(--border);background:var(--bg-card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow:hidden;transition:transform .45s cubic-bezier(.25,.46,.45,.94),border-color .35s ease,box-shadow .35s ease}.project-card-inner.has-bg-img{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}:is(html[data-theme$=l],html[data-theme=light]) .project-card-inner.has-bg-img{background:#ffffff61;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}:is(html[data-theme$=l],html[data-theme=light]) .card-bg-img:after{background:transparent}:is(html[data-theme$=l],html[data-theme=light]) .project-card:hover .card-bg-img:after{background:transparent}:is(html[data-theme$=l],html[data-theme=light]) .card-bg-img img{filter:blur(24px)}:is(html[data-theme$=l],html[data-theme=light]) .project-card:hover .card-bg-img img{filter:blur(18px)}:is(html[data-theme$=l],html[data-theme=light]) .project-card.has-bg .card-desc{color:var(--text-muted)}:is(html[data-theme$=l],html[data-theme=light]) .project-card.has-bg .category-badge{color:var(--text-dim);background:var(--accent-soft);border-color:var(--border)}.project-card:hover .project-card-inner{transform:translateY(-5px);border-color:var(--border-hover);box-shadow:0 20px 52px #00000047,0 0 0 1px var(--border-hover),inset 0 1px #ffffff0f}.project-title{color:var(--text);transition:color .35s ease}.card-desc{color:var(--text-muted)}.project-card:not(.has-bg):hover .project-title{color:var(--accent)}.project-card.has-bg .project-title{color:var(--text)}.project-card.has-bg:hover .project-title{color:var(--accent)}.project-card.has-bg .card-desc{color:#cbd5e1d1}.project-screenshot-pill{display:inline-flex;align-items:center;border-radius:9999px;border:1px solid var(--border-hover);background:var(--accent-soft);color:var(--accent);font-size:.64rem;font-weight:700;line-height:1.2;padding:.18rem .45rem}.card-glow{display:none}.project-footer{overflow:hidden;border-top:1px solid var(--border);padding:.75rem 1.25rem;display:flex;align-items:center;justify-content:flex-end;background:#0000001a;gap:.75rem;transition:border-top-color .35s ease,background .35s ease}.project-card:hover .project-footer{border-top-color:var(--border-hover);background:var(--accent-soft)}.project-card.has-bg .project-footer{background:#00000052;border-top-color:#ffffff1a;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.project-card.has-bg:hover .project-footer{background:color-mix(in srgb,var(--bg-card) 70%,transparent);border-top-color:var(--border-hover)}.footer-shimmer{display:none}.card-icon{color:var(--accent);transition:color .35s ease}.project-card:hover .view-hint svg{color:var(--accent);transform:rotate(-8deg) scale(1.15)}.view-hint{display:inline-flex;align-items:center;gap:.4rem;border:0;background:transparent;padding:0;font-size:.72rem;font-weight:600;color:var(--text-dimmer);margin-left:auto;position:relative;z-index:1;transition:color .3s ease,gap .35s ease;user-select:none;cursor:pointer}.view-hint:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.25rem}.view-hint-arrow{width:.8rem;height:.8rem;flex-shrink:0;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .3s ease;opacity:.5}.project-card:hover .view-hint{color:var(--accent);gap:.6rem}.project-card:hover .view-hint-arrow{transform:translate(3px,-3px);opacity:1}.project-card.has-bg .view-hint{color:#94a3b88c}.modal-backdrop{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding:5vh 1rem 2rem;background:color-mix(in srgb,var(--bg) 84%,transparent);overflow-y:auto;opacity:0;pointer-events:none;transition:opacity .28s ease}.modal-backdrop[hidden]{display:none!important}.modal-backdrop.modal-open{opacity:1;pointer-events:auto;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.modal-backdrop.modal-closing{opacity:0;pointer-events:none}.modal-container{position:relative;width:100%;max-width:640px;background:var(--bg-overlay);border:1px solid var(--border);border-radius:1.25rem;box-shadow:0 32px 80px #0000008c,0 0 0 1px var(--border),inset 0 1px #ffffff0f;overflow:hidden;transform:translateY(28px) scale(.97);transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .28s ease;opacity:0}@media(min-width:1024px){.modal-container{max-width:1120px}}.modal-open .modal-container{transform:translateY(0) scale(1);opacity:1}.modal-closing .modal-container{transform:translateY(16px) scale(.98);opacity:0}.modal-close{position:absolute;top:.8rem;right:.9rem;z-index:10;width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:background .2s ease,color .2s ease,transform .25s ease}.modal-close:hover{background:var(--accent-soft);color:var(--accent);transform:rotate(90deg)}.modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-layout{display:flex;flex-direction:column}.modal-detail-col,.modal-screenshot-col{min-width:0}@media(min-width:1024px){.modal-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.25fr);min-height:min(74vh,720px);max-height:90vh}.modal-detail-col{display:flex;flex-direction:column;border-right:1px solid var(--border);min-height:0}.modal-screenshot-col{display:flex;min-height:0}.modal-no-screenshots .modal-layout{display:block;min-height:auto;max-height:none}.modal-no-screenshots{max-width:720px}.modal-no-screenshots .modal-detail-col{border-right:0}}.modal-hero{position:relative;height:220px;background-size:cover;background-position:top center;background-color:var(--bg-section);flex-shrink:0}@media(min-width:1024px){.modal-hero{height:245px}.modal-no-screenshots .modal-hero{height:260px;min-height:0}}.modal-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#00000026,#282c34d9 80%,#282c34)}.modal-hero-content{position:absolute;bottom:0;left:0;right:0;padding:1.5rem 1.75rem 1.25rem}.project-image-viewer{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,3vw,2.5rem);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.project-image-viewer[hidden]{display:none!important}.project-image-viewer img{max-width:min(96vw,1280px);max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:.75rem;box-shadow:0 32px 90px #00000094,0 0 0 1px #ffffff1f}.project-image-viewer-close{position:fixed;top:1rem;right:1rem;z-index:10051;width:2.5rem;height:2.5rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border);color:var(--text);cursor:pointer}.project-image-viewer-close:hover{background:var(--accent-soft)}.project-image-viewer-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-cat-badge{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid var(--border-hover);border-radius:9999px;padding:.2rem .65rem;margin-bottom:.6rem}.modal-heading{font-size:1.35rem;font-weight:800;line-height:1.25;color:var(--text);margin:0 0 .3rem}.modal-company{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);opacity:.75;margin:0}.modal-body{padding:1.5rem 1.75rem 1.75rem}@media(min-width:1024px){.modal-body{display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding:1.75rem;flex:1}}.modal-description{font-size:.925rem;line-height:1.65;color:var(--text-muted);margin-bottom:1.25rem}.modal-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.4rem}.modal-screenshots{border-top:1px solid var(--border);padding-top:1.35rem;margin-bottom:1.6rem}.modal-screenshots.hidden{display:none!important}@media(min-width:1024px){.modal-screenshots{display:flex;flex-direction:column;min-height:0;flex:1;border-top:0;margin-bottom:0;padding:1.85rem 1.25rem 1.25rem;width:100%}}.modal-screenshots-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.modal-screenshots-kicker{margin:0 0 .2rem;font-size:.72rem;font-weight:800;letter-spacing:.12em;color:var(--accent)}.modal-screenshot-caption{margin:0;font-size:.85rem;color:var(--text-muted)}.modal-screenshot-count{margin:0;font-size:.75rem;font-weight:700;color:var(--text-dim);white-space:nowrap;padding-right:2.95rem}.modal-screenshot-stage{position:relative;overflow:hidden;border-radius:.85rem;border:1px solid var(--border);background:var(--bg-surface);aspect-ratio:16 / 9}@media(min-width:1024px){.modal-screenshot-stage{flex:1;min-height:0;aspect-ratio:auto}}.modal-screenshot-stage img{width:100%;height:100%;object-fit:contain;object-position:center center;display:block;cursor:zoom-in}.modal-screenshot-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.15rem;height:2.15rem;border-radius:9999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-card) 78%,transparent);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.modal-screenshot-nav:hover{background:var(--accent);color:#fff;transform:translateY(-50%) scale(1.06)}.modal-screenshot-nav:focus-visible,.modal-screenshot-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-screenshot-nav svg{width:1.15rem;height:1.15rem}.modal-screenshot-prev{left:.7rem}.modal-screenshot-next{right:.7rem}.modal-screenshot-thumbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(4.25rem,1fr));gap:.55rem;margin-top:.7rem}.modal-screenshot-thumb{padding:0;border:1px solid var(--border);border-radius:.55rem;overflow:hidden;aspect-ratio:16 / 9;background:transparent;cursor:pointer;opacity:.58;transition:opacity .2s ease,border-color .2s ease,transform .2s ease}.modal-screenshot-thumb:hover,.modal-screenshot-thumb.is-active{opacity:1;border-color:var(--accent);transform:translateY(-1px)}.modal-screenshot-thumb img{width:100%;height:100%;object-fit:contain;object-position:center center;display:block}.modal-cta-wrap{border-top:1px solid var(--border);padding-top:1.5rem;text-align:center}@media(min-width:1024px){.modal-cta-wrap{margin-top:auto}}.modal-cta-link{display:inline-flex;align-items:center;gap:.6rem;font-size:1.1rem;font-weight:800;color:var(--accent);text-decoration:none;transition:gap .3s cubic-bezier(.34,1.56,.64,1),filter .25s ease}.modal-cta-link.hidden{display:none!important}.modal-chat-cta{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;border:1px solid var(--border-hover);border-radius:9999px;background:var(--accent-soft);color:var(--text);padding:.78rem 1rem;font-size:.9rem;font-weight:850;cursor:pointer;box-shadow:inset 0 1px #ffffff14,0 12px 32px #0000001f;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.modal-chat-cta:hover{transform:translateY(-1px);border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 1px #ffffff1f,0 16px 38px #00000029}.modal-chat-cta:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.modal-chat-orbit{width:.58rem;height:.58rem;border-radius:9999px;background:var(--accent-2);box-shadow:0 0 0 4px var(--accent-2-soft)}.modal-cta-link:hover{gap:1rem;filter:brightness(1.15)}.modal-cta-arrow{width:1.1rem;height:1.1rem;flex-shrink:0;color:var(--accent);transition:transform .4s cubic-bezier(.34,1.56,.64,1);-webkit-text-fill-color:initial}.modal-cta-link:hover .modal-cta-arrow{transform:translate(4px,-4px)}.modal-no-link{font-size:.85rem;font-style:italic;color:var(--text-dim)}.modal-cta-wrap a{display:inline-flex;color:var(--text);text-decoration:none;font-size:1.5em;position:relative;padding:.3em;margin-top:.2em;isolation:isolate}.modal-cta-wrap a>*{position:relative;z-index:1}.modal-cta-wrap a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:.25rem}.modal-cta-wrap a:after{display:block;content:" ";width:100%;height:.2em;background-color:var(--bg-overlay);position:absolute;right:0;left:0;bottom:-.2em;opacity:1;transition:height .2s cubic-bezier(.81,.1,.68,.96),bottom .2s cubic-bezier(.81,.1,.68,.96);pointer-events:none;mix-blend-mode:difference;border-radius:.1em;z-index:0}.modal-cta-wrap a:hover:after{bottom:0;height:100%}.modal-cta-link{padding:.5rem 1rem}.modal-body .modal-cta-link img{filter:saturate(2);transform:scale(1.5);margin-right:10px}.modal-cta-wrap a:hover img{filter:saturate(10) invert(1);transform:scale(1.8)}:global(html[data-theme=light]) .modal-cta-wrap a,:global(html[data-theme=s1l]) .modal-cta-wrap a,:global(html[data-theme=s2l]) .modal-cta-wrap a,:global(html[data-theme=s3l]) .modal-cta-wrap a,:global(html[data-theme=s4l]) .modal-cta-wrap a,:global(html[data-theme=s5l]) .modal-cta-wrap a,:global(html[data-theme=s6l]) .modal-cta-wrap a,:global(html[data-theme=l16]) .modal-cta-wrap a,:global(html[data-theme=l17]) .modal-cta-wrap a,:global(html[data-theme=l18]) .modal-cta-wrap a,:global(html[data-theme=l19]) .modal-cta-wrap a,:global(html[data-theme=l20]) .modal-cta-wrap a,:global(html[data-theme=l21]) .modal-cta-wrap a,:global(html[data-theme=l22]) .modal-cta-wrap a,:global(html[data-theme=l23]) .modal-cta-wrap a{background:transparent!important;box-shadow:none!important;color:var(--text);border-radius:.35rem}:global(html[data-theme=light]) .modal-cta-wrap a:hover,:global(html[data-theme=s1l]) .modal-cta-wrap a:hover,:global(html[data-theme=s2l]) .modal-cta-wrap a:hover,:global(html[data-theme=s3l]) .modal-cta-wrap a:hover,:global(html[data-theme=s4l]) .modal-cta-wrap a:hover,:global(html[data-theme=s5l]) .modal-cta-wrap a:hover,:global(html[data-theme=s6l]) .modal-cta-wrap a:hover,:global(html[data-theme=l16]) .modal-cta-wrap a:hover,:global(html[data-theme=l17]) .modal-cta-wrap a:hover,:global(html[data-theme=l18]) .modal-cta-wrap a:hover,:global(html[data-theme=l19]) .modal-cta-wrap a:hover,:global(html[data-theme=l20]) .modal-cta-wrap a:hover,:global(html[data-theme=l21]) .modal-cta-wrap a:hover,:global(html[data-theme=l22]) .modal-cta-wrap a:hover,:global(html[data-theme=l23]) .modal-cta-wrap a:hover{background:transparent!important;box-shadow:none!important;color:var(--accent)}:global(html[data-theme=light]) .modal-cta-wrap a:before,:global(html[data-theme=light]) .modal-cta-wrap a:after,:global(html[data-theme=s1l]) .modal-cta-wrap a:before,:global(html[data-theme=s1l]) .modal-cta-wrap a:after,:global(html[data-theme=s2l]) .modal-cta-wrap a:before,:global(html[data-theme=s2l]) .modal-cta-wrap a:after,:global(html[data-theme=s3l]) .modal-cta-wrap a:before,:global(html[data-theme=s3l]) .modal-cta-wrap a:after,:global(html[data-theme=s4l]) .modal-cta-wrap a:before,:global(html[data-theme=s4l]) .modal-cta-wrap a:after,:global(html[data-theme=s5l]) .modal-cta-wrap a:before,:global(html[data-theme=s5l]) .modal-cta-wrap a:after,:global(html[data-theme=s6l]) .modal-cta-wrap a:before,:global(html[data-theme=s6l]) .modal-cta-wrap a:after,:global(html[data-theme=l16]) .modal-cta-wrap a:before,:global(html[data-theme=l16]) .modal-cta-wrap a:after,:global(html[data-theme=l17]) .modal-cta-wrap a:before,:global(html[data-theme=l17]) .modal-cta-wrap a:after,:global(html[data-theme=l18]) .modal-cta-wrap a:before,:global(html[data-theme=l18]) .modal-cta-wrap a:after,:global(html[data-theme=l19]) .modal-cta-wrap a:before,:global(html[data-theme=l19]) .modal-cta-wrap a:after,:global(html[data-theme=l20]) .modal-cta-wrap a:before,:global(html[data-theme=l20]) .modal-cta-wrap a:after,:global(html[data-theme=l21]) .modal-cta-wrap a:before,:global(html[data-theme=l21]) .modal-cta-wrap a:after,:global(html[data-theme=l22]) .modal-cta-wrap a:before,:global(html[data-theme=l22]) .modal-cta-wrap a:after,:global(html[data-theme=l23]) .modal-cta-wrap a:before,:global(html[data-theme=l23]) .modal-cta-wrap a:after{display:none!important;content:none!important}:global(html[data-theme=light]) .modal-cta-wrap a:hover:after,:global(html[data-theme=s1l]) .modal-cta-wrap a:hover:after,:global(html[data-theme=s2l]) .modal-cta-wrap a:hover:after,:global(html[data-theme=s3l]) .modal-cta-wrap a:hover:after,:global(html[data-theme=s4l]) .modal-cta-wrap a:hover:after,:global(html[data-theme=s5l]) .modal-cta-wrap a:hover:after,:global(html[data-theme=s6l]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l16]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l17]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l18]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l19]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l20]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l21]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l22]) .modal-cta-wrap a:hover:after,:global(html[data-theme=l23]) .modal-cta-wrap a:hover:after{bottom:-.2em;height:.18em;opacity:0}:global(html[data-theme=light]) .modal-cta-wrap a:hover img,:global(html[data-theme=s1l]) .modal-cta-wrap a:hover img,:global(html[data-theme=s2l]) .modal-cta-wrap a:hover img,:global(html[data-theme=s3l]) .modal-cta-wrap a:hover img,:global(html[data-theme=s4l]) .modal-cta-wrap a:hover img,:global(html[data-theme=s5l]) .modal-cta-wrap a:hover img,:global(html[data-theme=s6l]) .modal-cta-wrap a:hover img,:global(html[data-theme=l16]) .modal-cta-wrap a:hover img,:global(html[data-theme=l17]) .modal-cta-wrap a:hover img,:global(html[data-theme=l18]) .modal-cta-wrap a:hover img,:global(html[data-theme=l19]) .modal-cta-wrap a:hover img,:global(html[data-theme=l20]) .modal-cta-wrap a:hover img,:global(html[data-theme=l21]) .modal-cta-wrap a:hover img,:global(html[data-theme=l22]) .modal-cta-wrap a:hover img,:global(html[data-theme=l23]) .modal-cta-wrap a:hover img{filter:saturate(2)}:global(html[data-theme=light]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=s1l]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=s2l]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=s3l]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=s4l]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=s5l]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=s6l]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l16]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l17]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l18]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l19]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l20]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l21]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l22]) .modal-cta-link:hover .modal-cta-arrow,:global(html[data-theme=l23]) .modal-cta-link:hover .modal-cta-arrow{color:var(--accent)}.project-footer .card-icon svg{transition:transform .3s ease,opacity .3s ease}.project-card-inner:hover .project-footer .card-icon svg{transform:translateY(80px);opacity:0}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .float-icon-mdi{filter:none}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) #projects{background:color-mix(in srgb,var(--bg) 86%,var(--border))}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .filter-btn{background:color-mix(in srgb,var(--bg-card) 92%,var(--border));border-color:color-mix(in srgb,var(--border) 88%,transparent)}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .card-bg-img:after{background:linear-gradient(155deg,#e5d6c2bd,#eee5d8a8)}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .card-bg-img{filter:none}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg:hover .card-bg-img{filter:none}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .card-bg-img img{opacity:.46;filter:blur(22px) saturate(.92) brightness(1.08)}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg:hover .card-bg-img img{opacity:.54;filter:blur(18px) saturate(1) brightness(1.1)}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card-inner{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:#ebe0d2d6;box-shadow:0 10px 24px #33415514}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card-inner.has-bg-img{background:#ebe0d2b8}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .project-card-inner{color:#172033}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg h3{color:#101827}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg p{color:#172033c7}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .project-title{color:#101827}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg:hover .project-title{color:var(--accent)}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .card-desc{color:#172033c7}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .category-badge{color:#0f172a99}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .view-hint{color:#475569a6}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card:hover .project-card-inner{box-shadow:0 14px 30px #3341551a,0 0 0 1px color-mix(in srgb,var(--accent) 54%,transparent)}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-footer{background:#e5e2dbd1;border-top-color:color-mix(in srgb,var(--accent) 28%,var(--border));color:var(--text-muted)}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card:hover .project-footer{background:#e2e0dae0}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg .project-footer{background:#e5e2dbd1;border-top-color:color-mix(in srgb,var(--accent) 28%,var(--border))}:where(html[data-theme=s1l],html[data-theme=s2l],html[data-theme=s3l],html[data-theme=s4l],html[data-theme=s5l],html[data-theme=s6l],html[data-theme=l16],html[data-theme=l17],html[data-theme=l18],html[data-theme=l19],html[data-theme=l20],html[data-theme=l21],html[data-theme=l22],html[data-theme=l23]) .project-card.has-bg:hover .project-footer{background:#e2e0dae0}:global(html[data-theme=light]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=s1l]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=s2l]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=s3l]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=s4l]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=s5l]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=s6l]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l16]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l17]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l18]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l19]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l20]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l21]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l22]) .project-card.has-bg .card-bg-img:after,:global(html[data-theme=l23]) .project-card.has-bg .card-bg-img:after{background:linear-gradient(155deg,#ffffffeb,#f4f7fbe6),linear-gradient(90deg,#ffffffa3,#f1f5f9bd)}:global(html[data-theme=light]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=s1l]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=s2l]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=s3l]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=s4l]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=s5l]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=s6l]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l16]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l17]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l18]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l19]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l20]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l21]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l22]) .project-card.has-bg .card-bg-img img,:global(html[data-theme=l23]) .project-card.has-bg .card-bg-img img{opacity:.14;filter:blur(28px) grayscale(1) saturate(.18) brightness(1.24) contrast(.82)}:global(html[data-theme=light]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=s1l]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=s2l]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=s3l]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=s4l]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=s5l]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=s6l]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l16]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l17]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l18]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l19]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l20]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l21]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l22]) .project-card.has-bg:hover .card-bg-img img,:global(html[data-theme=l23]) .project-card.has-bg:hover .card-bg-img img{opacity:.18;filter:blur(24px) grayscale(1) saturate(.22) brightness(1.26) contrast(.86)}:global(html[data-theme=light]) .project-card-inner,:global(html[data-theme=s1l]) .project-card-inner,:global(html[data-theme=s2l]) .project-card-inner,:global(html[data-theme=s3l]) .project-card-inner,:global(html[data-theme=s4l]) .project-card-inner,:global(html[data-theme=s5l]) .project-card-inner,:global(html[data-theme=s6l]) .project-card-inner,:global(html[data-theme=l16]) .project-card-inner,:global(html[data-theme=l17]) .project-card-inner,:global(html[data-theme=l18]) .project-card-inner,:global(html[data-theme=l19]) .project-card-inner,:global(html[data-theme=l20]) .project-card-inner,:global(html[data-theme=l21]) .project-card-inner,:global(html[data-theme=l22]) .project-card-inner,:global(html[data-theme=l23]) .project-card-inner{background:#fffffff0;border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 10px 24px #33415512}:global(html[data-theme=light]) .project-card-inner.has-bg-img,:global(html[data-theme=s1l]) .project-card-inner.has-bg-img,:global(html[data-theme=s2l]) .project-card-inner.has-bg-img,:global(html[data-theme=s3l]) .project-card-inner.has-bg-img,:global(html[data-theme=s4l]) .project-card-inner.has-bg-img,:global(html[data-theme=s5l]) .project-card-inner.has-bg-img,:global(html[data-theme=s6l]) .project-card-inner.has-bg-img,:global(html[data-theme=l16]) .project-card-inner.has-bg-img,:global(html[data-theme=l17]) .project-card-inner.has-bg-img,:global(html[data-theme=l18]) .project-card-inner.has-bg-img,:global(html[data-theme=l19]) .project-card-inner.has-bg-img,:global(html[data-theme=l20]) .project-card-inner.has-bg-img,:global(html[data-theme=l21]) .project-card-inner.has-bg-img,:global(html[data-theme=l22]) .project-card-inner.has-bg-img,:global(html[data-theme=l23]) .project-card-inner.has-bg-img{background:linear-gradient(180deg,#ffffffe6,#f8fafce0),#ffffffe0}:global(html[data-theme=light]) .project-footer,:global(html[data-theme=s1l]) .project-footer,:global(html[data-theme=s2l]) .project-footer,:global(html[data-theme=s3l]) .project-footer,:global(html[data-theme=s4l]) .project-footer,:global(html[data-theme=s5l]) .project-footer,:global(html[data-theme=s6l]) .project-footer,:global(html[data-theme=l16]) .project-footer,:global(html[data-theme=l17]) .project-footer,:global(html[data-theme=l18]) .project-footer,:global(html[data-theme=l19]) .project-footer,:global(html[data-theme=l20]) .project-footer,:global(html[data-theme=l21]) .project-footer,:global(html[data-theme=l22]) .project-footer,:global(html[data-theme=l23]) .project-footer,:global(html[data-theme=light]) .project-card.has-bg .project-footer,:global(html[data-theme=s1l]) .project-card.has-bg .project-footer,:global(html[data-theme=s2l]) .project-card.has-bg .project-footer,:global(html[data-theme=s3l]) .project-card.has-bg .project-footer,:global(html[data-theme=s4l]) .project-card.has-bg .project-footer,:global(html[data-theme=s5l]) .project-card.has-bg .project-footer,:global(html[data-theme=s6l]) .project-card.has-bg .project-footer,:global(html[data-theme=l16]) .project-card.has-bg .project-footer,:global(html[data-theme=l17]) .project-card.has-bg .project-footer,:global(html[data-theme=l18]) .project-card.has-bg .project-footer,:global(html[data-theme=l19]) .project-card.has-bg .project-footer,:global(html[data-theme=l20]) .project-card.has-bg .project-footer,:global(html[data-theme=l21]) .project-card.has-bg .project-footer,:global(html[data-theme=l22]) .project-card.has-bg .project-footer,:global(html[data-theme=l23]) .project-card.has-bg .project-footer{background:#f1f5f9db}[data-theme=light] .modal-backdrop{background:#f1f5f9e0}[data-theme=light] .modal-container{box-shadow:0 24px 60px #00000024,0 0 0 1px var(--border)}[data-theme=light] .modal-close{background:#ffffffb3;border-color:#0000001a;color:#64748b}[data-theme=light] .modal-close:hover{background:var(--accent-soft);color:var(--accent)}[data-theme=light] .modal-hero{background-color:#fff}[data-theme=light] .modal-hero-overlay{background:linear-gradient(90deg,#fffffffa,#ffffffe6 42%,#ffffff4d 72%,#ffffff14),linear-gradient(180deg,#ffffffeb,#f8fafce0 58%,#f8fafcfa)!important}[data-theme=light] .modal-hero-content{color:#0f172a}[data-theme=light] .modal-cat-badge{color:var(--accent);background:var(--accent-soft);border-color:var(--border-hover)}[data-theme=light] .modal-heading{color:#fff;text-shadow:1px 1px 5px rgb(0 0 0)}[data-theme=light] .modal-company{color:#fff;font-weight:700;opacity:1;text-decoration:underline}:global(html[data-theme=light]) .modal-hero,:global(html[data-theme=s1l]) .modal-hero,:global(html[data-theme=s2l]) .modal-hero,:global(html[data-theme=s3l]) .modal-hero,:global(html[data-theme=s4l]) .modal-hero,:global(html[data-theme=s5l]) .modal-hero,:global(html[data-theme=s6l]) .modal-hero,:global(html[data-theme=l16]) .modal-hero,:global(html[data-theme=l17]) .modal-hero,:global(html[data-theme=l18]) .modal-hero,:global(html[data-theme=l19]) .modal-hero,:global(html[data-theme=l20]) .modal-hero,:global(html[data-theme=l21]) .modal-hero,:global(html[data-theme=l22]) .modal-hero,:global(html[data-theme=l23]) .modal-hero{background-color:#fff;background-blend-mode:normal}:global(html[data-theme=light]) .modal-hero-overlay,:global(html[data-theme=s1l]) .modal-hero-overlay,:global(html[data-theme=s2l]) .modal-hero-overlay,:global(html[data-theme=s3l]) .modal-hero-overlay,:global(html[data-theme=s4l]) .modal-hero-overlay,:global(html[data-theme=s5l]) .modal-hero-overlay,:global(html[data-theme=s6l]) .modal-hero-overlay,:global(html[data-theme=l16]) .modal-hero-overlay,:global(html[data-theme=l17]) .modal-hero-overlay,:global(html[data-theme=l18]) .modal-hero-overlay,:global(html[data-theme=l19]) .modal-hero-overlay,:global(html[data-theme=l20]) .modal-hero-overlay,:global(html[data-theme=l21]) .modal-hero-overlay,:global(html[data-theme=l22]) .modal-hero-overlay,:global(html[data-theme=l23]) .modal-hero-overlay{background:linear-gradient(90deg,#fffffffa,#ffffffe6 42%,#ffffff4d 72%,#ffffff14),linear-gradient(180deg,#ffffffeb,#f8fafce0 58%,#f8fafcfa)!important}:global(html[data-theme=light]) .modal-heading,:global(html[data-theme=s1l]) .modal-heading,:global(html[data-theme=s2l]) .modal-heading,:global(html[data-theme=s3l]) .modal-heading,:global(html[data-theme=s4l]) .modal-heading,:global(html[data-theme=s5l]) .modal-heading,:global(html[data-theme=s6l]) .modal-heading,:global(html[data-theme=l16]) .modal-heading,:global(html[data-theme=l17]) .modal-heading,:global(html[data-theme=l18]) .modal-heading,:global(html[data-theme=l19]) .modal-heading,:global(html[data-theme=l20]) .modal-heading,:global(html[data-theme=l21]) .modal-heading,:global(html[data-theme=l22]) .modal-heading,:global(html[data-theme=l23]) .modal-heading{color:var(--text);text-shadow:none}:global(html[data-theme=light]) .modal-company,:global(html[data-theme=s1l]) .modal-company,:global(html[data-theme=s2l]) .modal-company,:global(html[data-theme=s3l]) .modal-company,:global(html[data-theme=s4l]) .modal-company,:global(html[data-theme=s5l]) .modal-company,:global(html[data-theme=s6l]) .modal-company,:global(html[data-theme=l16]) .modal-company,:global(html[data-theme=l17]) .modal-company,:global(html[data-theme=l18]) .modal-company,:global(html[data-theme=l19]) .modal-company,:global(html[data-theme=l20]) .modal-company,:global(html[data-theme=l21]) .modal-company,:global(html[data-theme=l22]) .modal-company,:global(html[data-theme=l23]) .modal-company{color:var(--accent);text-decoration:none;opacity:1}.modal-screenshot-stage,.modal-screenshot-thumb{background:var(--bg-card-solid)}.qr-modal-backdrop{position:fixed;inset:0;z-index:10001;background:#0000008c;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:qr-backdrop-in .2s ease}@keyframes qr-backdrop-in{0%{opacity:0}to{opacity:1}}.qr-modal-container{position:relative;background:var(--bg-card-solid);border:1px solid var(--border);border-radius:1rem;padding:2rem;max-width:90vw;width:auto;box-shadow:0 24px 64px #0006;animation:qr-container-in .25s cubic-bezier(.22,1,.36,1)}@keyframes qr-container-in{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.qr-modal-content{display:flex;flex-direction:column;align-items:center}.qr-modal-images{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.qr-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;border-radius:.75rem;background:var(--bg);border:1px solid var(--border);width:140px}.qr-figure img{width:112px;height:112px;object-fit:contain;border-radius:.5rem;background:#fff;display:block}.qr-figure figcaption{font-size:.75rem;font-weight:700;color:var(--text-dim);text-align:center;line-height:1.3}#certifications[data-astro-cid-n357i2j7]{--cert-education: #d97706}.cert-title[data-astro-cid-n357i2j7]{color:var(--text)}.cert-desc[data-astro-cid-n357i2j7]{color:var(--text-muted)}.cert-meta-row[data-astro-cid-n357i2j7]{border-top:1px solid var(--border)}.cert-date[data-astro-cid-n357i2j7],.cert-no-link[data-astro-cid-n357i2j7]{color:var(--text-dimmer)}.cert-issuer[data-astro-cid-n357i2j7]{color:var(--accent)}.cert-issuer-professional-development[data-astro-cid-n357i2j7],.cert-link-education[data-astro-cid-n357i2j7]{color:color-mix(in srgb,var(--cert-education) 78%,var(--text-muted))}.cert-issuer-in-progress[data-astro-cid-n357i2j7],.cert-link[data-astro-cid-n357i2j7]{color:var(--accent)}.cert-link[data-astro-cid-n357i2j7]:hover,.cert-link-education[data-astro-cid-n357i2j7]:hover{color:var(--accent-2)}.legend-item[data-astro-cid-n357i2j7]{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:500;color:#475569;letter-spacing:.03em}.legend-dot[data-astro-cid-n357i2j7]{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-earned[data-astro-cid-n357i2j7]{background:var(--accent-2)}.dot-pro-dev[data-astro-cid-n357i2j7]{background:#f59e0b}.dot-in-progress[data-astro-cid-n357i2j7]{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.cert-badge[data-astro-cid-n357i2j7]{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:9999px;font-size:.72rem;font-weight:600;white-space:nowrap;flex-shrink:0;border:1px solid}.badge-earned[data-astro-cid-n357i2j7]{background:var(--accent-2-soft);color:var(--accent-2);border-color:color-mix(in srgb,var(--accent-2) 38%,var(--border))}.badge-pro-dev[data-astro-cid-n357i2j7]{background:#f59e0b1f;color:#fcd34d;border-color:#f59e0b40}.badge-in-progress[data-astro-cid-n357i2j7]{background:var(--accent-soft);color:var(--accent);border-color:var(--border-hover)}.badge-pulse-dot[data-astro-cid-n357i2j7]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;will-change:transform,opacity}@keyframes badge-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.issuer-tag[data-astro-cid-n357i2j7]{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;border-radius:4px;font-size:.6rem;font-weight:700;letter-spacing:.08em;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:#fbbf24;vertical-align:middle}.cert-pro-dev[data-astro-cid-n357i2j7]{border-color:#f59e0b1f}.cert-pro-dev[data-astro-cid-n357i2j7]:hover{border-color:#f59e0b59!important;box-shadow:0 8px 40px #f59e0b14!important}.cert-in-progress[data-astro-cid-n357i2j7]{border:1px dashed var(--border-hover);background:var(--bg-card)}.cert-in-progress[data-astro-cid-n357i2j7]:hover{border-color:var(--accent)!important;box-shadow:var(--shadow-card-hover),0 0 0 1px var(--border-hover)!important}.in-progress-label[data-astro-cid-n357i2j7]{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;color:var(--accent);opacity:.8}.ip-pulse[data-astro-cid-n357i2j7]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);animation:badge-dot-pulse 1.6s ease-in-out infinite;flex-shrink:0;will-change:transform,opacity}.sites-bg[data-astro-cid-g5jplrhu]{position:absolute;inset:0;pointer-events:none;overflow:hidden}.sites-bg-svg[data-astro-cid-g5jplrhu]{position:absolute;inset:0;width:100%;height:100%;color:var(--text)}.sites-grid[data-astro-cid-g5jplrhu]{display:grid;grid-template-columns:1fr;gap:1.5rem;max-width:1180px;margin:0 auto;align-items:stretch}@media(min-width:768px){.sites-grid[data-astro-cid-g5jplrhu]{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}}.site-card[data-astro-cid-g5jplrhu]{position:relative;border-radius:1.25rem;border:1px solid var(--border);background:var(--bg-card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:2rem;overflow:hidden;height:100%;transition:border-color .35s ease,box-shadow .35s ease,transform .35s cubic-bezier(.34,1.56,.64,1)}.site-card[data-astro-cid-g5jplrhu]:hover{border-color:var(--card-accent, #6366f1);box-shadow:0 20px 60px #0003,0 0 0 1px color-mix(in srgb,var(--card-accent, #6366f1) 30%,transparent);transform:translateY(-4px)}.site-card-glow[data-astro-cid-g5jplrhu]{position:absolute;top:-40%;right:-20%;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,var(--glow-color, rgba(99, 102, 241, .12)) 0%,transparent 70%);pointer-events:none;transition:opacity .4s ease;opacity:.6}.site-card[data-astro-cid-g5jplrhu]:hover .site-card-glow[data-astro-cid-g5jplrhu]{opacity:1}.site-icon-wrap[data-astro-cid-g5jplrhu]{width:56px;height:56px;border-radius:.875rem;background:var(--icon-bg, rgba(99, 102, 241, .1));border:1px solid var(--icon-border, rgba(99, 102, 241, .18));display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;color:var(--text-muted);transition:transform .4s cubic-bezier(.34,1.56,.64,1),background .3s ease}.site-card[data-astro-cid-g5jplrhu]:hover .site-icon-wrap[data-astro-cid-g5jplrhu]{transform:rotate(-6deg) scale(1.08)}.site-svg[data-astro-cid-g5jplrhu]{width:32px;height:32px}.site-badge[data-astro-cid-g5jplrhu]{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--badge-color, #6366f1);background:color-mix(in srgb,var(--badge-color, #6366f1) 12%,transparent);border:1px solid color-mix(in srgb,var(--badge-color, #6366f1) 25%,transparent);border-radius:9999px;padding:.2rem .6rem;margin-bottom:.5rem}.site-title[data-astro-cid-g5jplrhu]{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:var(--text);margin-bottom:.6rem;transition:color .25s ease}.site-card[data-astro-cid-g5jplrhu]:hover .site-title[data-astro-cid-g5jplrhu]{color:var(--card-accent, #6366f1)}.site-desc[data-astro-cid-g5jplrhu]{font-size:.875rem;line-height:1.7;color:var(--text-muted);margin-bottom:1.25rem;min-height:8.9rem}.site-features[data-astro-cid-g5jplrhu]{list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-direction:column;gap:.5rem}.site-features[data-astro-cid-g5jplrhu] li[data-astro-cid-g5jplrhu]{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:500;color:var(--text-muted)}.site-feature-icon[data-astro-cid-g5jplrhu]{width:16px;height:16px;flex-shrink:0;color:var(--text-dim)}.site-cta[data-astro-cid-g5jplrhu]{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;letter-spacing:.01em;color:var(--cta-color, #6366f1);text-decoration:none;transition:gap .3s cubic-bezier(.34,1.56,.64,1),filter .25s ease;border-bottom:1px solid color-mix(in srgb,var(--cta-color, #6366f1) 30%,transparent);padding-bottom:1px}.site-cta[data-astro-cid-g5jplrhu]:hover{gap:.85rem;filter:brightness(1.2)}.site-cta-arrow[data-astro-cid-g5jplrhu]{width:16px;height:16px;flex-shrink:0;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.site-cta[data-astro-cid-g5jplrhu]:hover .site-cta-arrow[data-astro-cid-g5jplrhu]{transform:translate(4px)}[data-theme=light] .site-card[data-astro-cid-g5jplrhu]{box-shadow:0 4px 24px #0000000f}[data-theme=light] .site-card[data-astro-cid-g5jplrhu]:hover{box-shadow:0 16px 48px #0000001a,0 0 0 1px color-mix(in srgb,var(--card-accent, #6366f1) 30%,transparent)}.contact-lead[data-astro-cid-xmivup5a]{max-width:42rem;margin:1.25rem auto 0;color:var(--text-muted);line-height:1.8}.contact-grid[data-astro-cid-xmivup5a]{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:768px){.contact-grid[data-astro-cid-xmivup5a]{grid-template-columns:repeat(3,minmax(0,1fr))}}.contact-card[data-astro-cid-xmivup5a]{display:flex;align-items:center;gap:1rem;min-height:7.5rem;text-decoration:none;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}.contact-card[data-astro-cid-xmivup5a]:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}.contact-card[data-astro-cid-xmivup5a]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.contact-icon[data-astro-cid-xmivup5a]{width:44px;height:44px;border-radius:.75rem;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.contact-body[data-astro-cid-xmivup5a]{min-width:0;display:flex;flex-direction:column;gap:.3rem}.contact-label[data-astro-cid-xmivup5a]{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.contact-value[data-astro-cid-xmivup5a]{color:var(--text);font-size:.95rem;font-weight:650;overflow-wrap:anywhere}.contact-socials[data-astro-cid-xmivup5a]{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem;color:var(--text-muted)}.contact-socials-label[data-astro-cid-xmivup5a]{font-size:.8rem;font-weight:700;letter-spacing:.08em;color:var(--text-dim)}.contact-socials-list[data-astro-cid-xmivup5a]{display:flex;flex-wrap:wrap;gap:.9rem}.contact-social-link[data-astro-cid-xmivup5a]{color:#64748b;display:inline-flex;align-items:center;transition:color .2s ease,transform .2s ease;border-radius:.125rem}.contact-social-link[data-astro-cid-xmivup5a]:hover{color:var(--accent);transform:translateY(-2px)}.contact-social-link[data-astro-cid-xmivup5a]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[data-theme=light] .contact-card[data-astro-cid-xmivup5a]{box-shadow:0 4px 24px #0000000d}[data-theme=light] .contact-card[data-astro-cid-xmivup5a]:hover{box-shadow:0 16px 42px #0000001a}.footer-grid[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:center}@media(min-width:768px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:minmax(340px,.9fr) minmax(0,1.35fr);gap:1.5rem}}.footer-left[data-astro-cid-sz7xmlte]{display:flex;align-items:center;gap:1.25rem}.footer-right[data-astro-cid-sz7xmlte]{min-width:0;display:flex;align-items:center}@media(max-width:767px){.footer-left[data-astro-cid-sz7xmlte]{align-items:flex-start}.footer-right[data-astro-cid-sz7xmlte]{text-align:left}}.footer-profile[data-astro-cid-sz7xmlte]{min-width:0}.footer-keyword-panel[data-astro-cid-sz7xmlte]{width:100%;display:flex;flex-direction:column;justify-content:center}.footer-keyword-head[data-astro-cid-sz7xmlte]{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.footer-keyword-kicker[data-astro-cid-sz7xmlte]{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:#818cf8}.footer-keyword-desc[data-astro-cid-sz7xmlte]{font-size:.72rem;color:#475569}.footer-keywords[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-start}@media(min-width:768px){.footer-keywords[data-astro-cid-sz7xmlte]{justify-content:flex-end}}.footer-square[data-astro-cid-sz7xmlte]{width:150px;aspect-ratio:2/1;border:3px solid rgba(255,255,255,.35);background:var(--bg);background-size:130% auto;background-position:top left;filter:grayscale(55%) brightness(88%);padding:1.1em 1em .5em;cursor:default;transition:filter .4s ease,border-color .4s ease}.footer-square[data-astro-cid-sz7xmlte]:hover{filter:grayscale(20%) brightness(100%);border-color:#6366f1b3}.footer-glitch[data-astro-cid-sz7xmlte]{color:#fff;left:-1.925rem;top:1rem;font-size:1.5rem;font-weight:400;letter-spacing:3px;position:relative;display:block;line-height:1}.footer-glitch[data-astro-cid-sz7xmlte]:before,.footer-glitch[data-astro-cid-sz7xmlte]:after{content:attr(data-text);position:absolute;top:0;color:#fff;background:var(--bg);overflow:hidden;clip-path:inset(0 0 100% 0)}.footer-glitch[data-astro-cid-sz7xmlte]:before{left:-2px;text-shadow:1px 0 blue;animation:fg-noise-2 3s infinite linear alternate-reverse;animation-play-state:paused}.footer-glitch[data-astro-cid-sz7xmlte]:after{left:2px;text-shadow:-1px 0 red;animation:fg-noise 2s infinite linear alternate-reverse;animation-play-state:paused}.footer-glitch[data-astro-cid-sz7xmlte]:hover:before,.footer-glitch[data-astro-cid-sz7xmlte]:hover:after{animation-play-state:running}@keyframes fg-noise{0%{clip-path:inset(40px 0 0px 0)}5%{clip-path:inset(13px 0 92px 0)}10%{clip-path:inset(63px 0 3px 0)}15%{clip-path:inset(35px 0 1px 0)}20%{clip-path:inset(50px 0 63px 0)}25%{clip-path:inset(93px 0 95px 0)}30%{clip-path:inset(1px 0 71px 0)}35%{clip-path:inset(71px 0 11px 0)}40%{clip-path:inset(92px 0 67px 0)}45%{clip-path:inset(1px 0 50px 0)}50%{clip-path:inset(55px 0 37px 0)}55%{clip-path:inset(62px 0 24px 0)}60%{clip-path:inset(84px 0 94px 0)}65%{clip-path:inset(20px 0 42px 0)}70%{clip-path:inset(26px 0 56px 0)}75%{clip-path:inset(57px 0 23px 0)}80%{clip-path:inset(12px 0 81px 0)}85%{clip-path:inset(60px 0 66px 0)}90%{clip-path:inset(69px 0 63px 0)}95%{clip-path:inset(69px 0 64px 0)}to{clip-path:inset(91px 0 0px 0)}}@keyframes fg-noise-2{0%{clip-path:inset(54px 0 87px 0)}5%{clip-path:inset(52px 0 5px 0)}10%{clip-path:inset(64px 0 69px 0)}15%{clip-path:inset(58px 0 27px 0)}20%{clip-path:inset(54px 0 60px 0)}25%{clip-path:inset(22px 0 94px 0)}30%{clip-path:inset(29px 0 21px 0)}35%{clip-path:inset(1px 0 0px 0)}40%{clip-path:inset(75px 0 95px 0)}45%{clip-path:inset(27px 0 9px 0)}50%{clip-path:inset(1px 0 94px 0)}55%{clip-path:inset(77px 0 31px 0)}60%{clip-path:inset(65px 0 76px 0)}65%{clip-path:inset(75px 0 9px 0)}70%{clip-path:inset(56px 0 36px 0)}75%{clip-path:inset(43px 0 29px 0)}80%{clip-path:inset(26px 0 28px 0)}85%{clip-path:inset(94px 0 91px 0)}90%{clip-path:inset(66px 0 63px 0)}95%{clip-path:inset(86px 0 11px 0)}to{clip-path:inset(46px 0 8px 0)}}.footer-email[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.4rem;color:#475569;font-size:.8rem;font-weight:500;transition:color .2s ease}.footer-email[data-astro-cid-sz7xmlte]:hover{color:#a5b4fc}.footer-kw[data-astro-cid-sz7xmlte]{font-size:.68rem;font-weight:500;letter-spacing:.03em;color:#334155;background:#6366f10a;border:1px solid rgba(99,102,241,.1);border-radius:9999px;padding:.18rem .6rem;transition:color .2s ease,border-color .2s ease;cursor:default}.footer-kw[data-astro-cid-sz7xmlte]:hover{color:#6366f1;border-color:#6366f14d}.footer-divider[data-astro-cid-sz7xmlte]{height:1px;background:linear-gradient(90deg,transparent 0%,rgba(99,102,241,.4) 25%,rgba(14,165,233,.4) 75%,transparent 100%)}.footer-social[data-astro-cid-sz7xmlte]{color:#334155;display:inline-flex;align-items:center;transition:color .2s ease,transform .2s ease}.footer-social[data-astro-cid-sz7xmlte]:hover{color:#a5b4fc;transform:translateY(-2px)}.sd[data-astro-cid-46cv6kzl]{position:relative;width:100%;height:52px;overflow:hidden;margin:-5px 0;z-index:10}.sd-pill[data-astro-cid-46cv6kzl]{position:absolute;top:50%;height:44px;width:100%;background:#00000017;backdrop-filter:brightness(.98);transition:transform 1.1s cubic-bezier(.22,1,.36,1),opacity .4s ease}@media(scripting:enabled){.sd-pill[data-astro-cid-46cv6kzl]{opacity:0}.sd[data-astro-cid-46cv6kzl].visible .sd-l[data-astro-cid-46cv6kzl],.sd[data-astro-cid-46cv6kzl].visible .sd-r[data-astro-cid-46cv6kzl]{opacity:1}}.sd-l[data-astro-cid-46cv6kzl]{right:67%;transform:translate(-115%) translateY(-50%);clip-path:polygon(0 100%,calc(100% - 40px) 100%,100% 99%,calc(100% - 40px) 0,0 0)}.sd[data-astro-cid-46cv6kzl].visible .sd-l[data-astro-cid-46cv6kzl]{transform:translate(0) translateY(-50%)}.sd-r[data-astro-cid-46cv6kzl]{left:67%;transform:translate(115%) translateY(-50%);clip-path:polygon(0 1%,40px 0,100% 0,100% 100%,40px 100%)}.sd[data-astro-cid-46cv6kzl].visible .sd-r[data-astro-cid-46cv6kzl]{transform:translate(0) translateY(-50%)}#resume-print[data-astro-cid-qcuvmvti]{font-family:Inter,Calibri,Arial,sans-serif;font-size:10.5pt;line-height:1.45;color:#000;background:#fff;max-width:100%}.resume-header[data-astro-cid-qcuvmvti]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}.header-left[data-astro-cid-qcuvmvti]{flex:1}.resume-name[data-astro-cid-qcuvmvti]{font-size:22pt;font-weight:700;color:#000;line-height:1.1;margin:0 0 3px;letter-spacing:-.02em}.resume-title[data-astro-cid-qcuvmvti]{font-size:11pt;color:#111;margin:0;font-weight:400}.header-right[data-astro-cid-qcuvmvti]{text-align:right;font-size:9.5pt;color:#111;line-height:1.7;padding-top:4px}.header-rule[data-astro-cid-qcuvmvti]{border:none;border-top:2px solid #000;margin:6px 0}.resume-section[data-astro-cid-qcuvmvti]{margin-bottom:9px}.section-title[data-astro-cid-qcuvmvti]{font-size:10pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#000!important;border-bottom:2px solid #000;padding-bottom:2px;margin:0 0 5px}.body-text[data-astro-cid-qcuvmvti]{margin:0;font-size:10pt;color:#000}.skills-grid[data-astro-cid-qcuvmvti]{display:grid;gap:2px 0}.skill-row[data-astro-cid-qcuvmvti]{display:grid;grid-template-columns:14rem 1fr;gap:0 6px;font-size:9.5pt;line-height:1.55}.skill-category[data-astro-cid-qcuvmvti]{font-weight:600;color:#000}.skill-items[data-astro-cid-qcuvmvti]{color:#111}.cert-list[data-astro-cid-qcuvmvti]{display:flex;flex-wrap:wrap;gap:3px 20px;font-size:9.5pt}.cert-item[data-astro-cid-qcuvmvti]{display:flex;align-items:baseline;gap:4px}.cert-mark[data-astro-cid-qcuvmvti]{font-weight:700;flex-shrink:0}.cert-earned[data-astro-cid-qcuvmvti] .cert-mark[data-astro-cid-qcuvmvti]{color:#000}.cert-earned[data-astro-cid-qcuvmvti]{color:#000;font-weight:500}.cert-planned[data-astro-cid-qcuvmvti] .cert-mark[data-astro-cid-qcuvmvti]{color:#222}.cert-planned[data-astro-cid-qcuvmvti]{color:#222;font-weight:400}.projects-list[data-astro-cid-qcuvmvti]{display:flex;flex-direction:column;gap:5px}.project-item[data-astro-cid-qcuvmvti]{page-break-inside:avoid}.project-header[data-astro-cid-qcuvmvti]{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.project-title[data-astro-cid-qcuvmvti]{font-weight:600;font-size:10pt;color:#000;white-space:nowrap}.project-tags[data-astro-cid-qcuvmvti]{font-size:8.5pt;color:#222;text-align:right;white-space:nowrap}.project-desc[data-astro-cid-qcuvmvti]{margin:1px 0 0;font-size:9pt;color:#111;padding-left:10px;line-height:1.4}.resume-footer-row[data-astro-cid-qcuvmvti]{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
