.overlay-root[data-v-ab1a5376]{display:contents}.modal-wrap[data-v-ab1a5376]{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:60px 16px 40px;overflow-y:auto}.modal-backdrop[data-v-ab1a5376]{position:fixed;inset:0;background:rgba(0,0,0,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-dialog[data-v-ab1a5376]{position:relative;z-index:1;width:100%;max-width:900px;border-radius:var(--radius);overflow:hidden;background:var(--bg-surface);border:1px solid var(--border);box-shadow:0 40px 100px -20px rgba(0,0,0,.8)}.modal-header[data-v-ab1a5376]{padding:28px 32px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;position:relative;min-height:200px;background-size:cover;background-position:50%}.modal-header-overlay[data-v-ab1a5376]{position:absolute;inset:0;pointer-events:none}.modal-title[data-v-ab1a5376]{font-family:Space Grotesk,sans-serif;font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:-.01em;position:relative;z-index:1}.modal-close[data-v-ab1a5376]{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:hsla(0,0%,100%,.15);border:none;color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease;position:relative;z-index:1;align-self:flex-start}.modal-close[data-v-ab1a5376]:hover{background:hsla(0,0%,100%,.3)}.modal-body[data-v-ab1a5376]{padding:0;background:var(--bg-surface)}.modal-content[data-v-ab1a5376]{padding:32px;color:var(--text-muted);font-size:.95rem;line-height:1.75}.modal-actions[data-v-ab1a5376]{padding:0 32px 28px;display:flex;justify-content:flex-start}.modal-enter-active[data-v-ab1a5376],.modal-leave-active[data-v-ab1a5376]{transition:opacity .25s ease}.modal-enter-active .modal-dialog[data-v-ab1a5376],.modal-leave-active .modal-dialog[data-v-ab1a5376]{transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .25s ease}.modal-enter[data-v-ab1a5376],.modal-leave-active[data-v-ab1a5376]{opacity:0}.modal-enter .modal-dialog[data-v-ab1a5376]{transform:translateY(20px) scale(.97);opacity:0}.modal-leave-active .modal-dialog[data-v-ab1a5376]{transform:translateY(10px);opacity:0}.modal-content .paragraph{margin:16px 0}.modal-content .center{text-align:center}.modal-content iframe.youtube{width:100%;min-height:300px;border-radius:8px}.modal-content .pc-screenshot,.modal-content .phone-screenshot{width:100%;border-radius:8px}.modal-content a{color:var(--accent);text-decoration:underline;opacity:1}.modal-content a:hover{opacity:.75}.modal-content ul{padding-left:20px}.modal-content li{margin:6px 0}.modal-content img[src*="badge-color.svg"]{height:40px}.modal-content img[src*="github.png"]{height:48px}@media (min-width:640px){.modal-content iframe.youtube{height:400px}.modal-content .phone-screenshot{margin:8px;width:260px}.modal-content .pc-screenshot{margin:8px;width:calc(50% - 16px);max-width:520px}}.modal-content .pc-screenshot,.modal-content .phone-screenshot{cursor:zoom-in;transition:transform .2s ease,box-shadow .2s ease}.modal-content .pc-screenshot:hover,.modal-content .phone-screenshot:hover{transform:scale(1.02);box-shadow:0 8px 32px rgba(0,0,0,.5)}.lightbox{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}.lightbox-img{max-width:100%;max-height:90vh;border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.8);-o-object-fit:contain;object-fit:contain}.lightbox-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;background:hsla(0,0%,100%,.15);border:none;color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.lightbox-close:hover{background:hsla(0,0%,100%,.3)}.lightbox-enter-active,.lightbox-leave-active{transition:opacity .2s ease}.lightbox-enter,.lightbox-leave-active{opacity:0}.hero[data-v-714cb6de]{position:relative;min-height:calc(100vh - var(--nav-h));display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:80px 24px}.hero-bg[data-v-714cb6de]{position:absolute;inset:0;overflow:hidden}.hero-bg-photo[data-v-714cb6de]{position:absolute;inset:-20% 0 0 0;background-image:url(/img/hero-bg.jpg);background-size:cover;background-position:center 30%;will-change:transform,opacity;pointer-events:none}.hero-bg-overlay[data-v-714cb6de]{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,9,15,.45) 0,rgba(7,9,15,.72) 60%,#07090f);pointer-events:none}.hero-glow[data-v-714cb6de]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.45;pointer-events:none}.hero-glow-1[data-v-714cb6de]{width:600px;height:600px;background:rgba(30,80,180,.3);top:-100px;left:-100px;animation:float1-714cb6de 12s ease-in-out infinite}.hero-glow-2[data-v-714cb6de]{width:500px;height:500px;background:rgba(61,139,232,.1);bottom:-80px;right:-80px;animation:float2-714cb6de 16s ease-in-out infinite}@keyframes float1-714cb6de{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-20px,30px) scale(.95)}}@keyframes float2-714cb6de{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-30px,20px) scale(.95)}66%{transform:translate(20px,-30px) scale(1.05)}}.hero-inner[data-v-714cb6de]{position:relative;z-index:1;max-width:1200px;width:100%;margin:0 auto;display:grid;grid-template-columns:1fr;gap:48px;align-items:center}.hero-content[data-v-714cb6de]{animation:heroIn-714cb6de .8s cubic-bezier(.16,1,.3,1) both}.hero-visual[data-v-714cb6de]{display:flex;align-items:center;justify-content:center;margin:0 auto;animation:heroIn-714cb6de .9s cubic-bezier(.16,1,.3,1) .2s both}.hv-avatar[data-v-714cb6de]{width:220px;height:220px;border-radius:50%;overflow:hidden;border:2px solid var(--border-accent);background:var(--bg-card);box-shadow:0 0 0 6px rgba(61,139,232,.08),0 0 56px var(--accent-glow)}.hv-avatar img[data-v-714cb6de]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}@media (min-width:900px){.hero-inner[data-v-714cb6de]{grid-template-columns:1fr auto;gap:64px}.hero-visual[data-v-714cb6de]{margin:0}.hv-avatar[data-v-714cb6de]{width:260px;height:260px}}@keyframes heroIn-714cb6de{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.hero-badge[data-v-714cb6de]{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:99px;border:1px solid var(--border-accent);background:var(--accent-dim);font-size:.8rem;font-weight:500;color:var(--accent);margin-bottom:28px;letter-spacing:.02em;animation:heroIn-714cb6de .8s cubic-bezier(.16,1,.3,1) .1s both}.hero-badge-dot[data-v-714cb6de]{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 2px rgba(74,222,128,.3);animation:pulse-714cb6de 2s ease-in-out infinite}@keyframes pulse-714cb6de{0%,to{box-shadow:0 0 0 2px rgba(74,222,128,.3)}50%{box-shadow:0 0 0 5px rgba(74,222,128,.1)}}.hero-name[data-v-714cb6de]{font-size:clamp(2.8rem,8vw,5rem);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin-bottom:20px;animation:heroIn-714cb6de .8s cubic-bezier(.16,1,.3,1) .15s both}.hero-hi[data-v-714cb6de]{display:block;font-size:.5em;font-weight:400;color:var(--text-muted);letter-spacing:0;margin-bottom:4px}.hero-subtitle[data-v-714cb6de]{font-family:Space Grotesk,sans-serif;font-size:clamp(1.2rem,3vw,1.6rem);font-weight:500;color:var(--text-muted);margin-bottom:20px;animation:heroIn-714cb6de .8s cubic-bezier(.16,1,.3,1) .2s both}.hero-amp[data-v-714cb6de]{color:var(--accent)}.hero-bio[data-v-714cb6de]{font-size:1rem;color:var(--text-muted);max-width:500px;line-height:1.7;margin-bottom:36px;animation:heroIn-714cb6de .8s cubic-bezier(.16,1,.3,1) .25s both}.hero-actions[data-v-714cb6de]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px;animation:heroIn-714cb6de .8s cubic-bezier(.16,1,.3,1) .3s both}.hero-social[data-v-714cb6de]{display:flex;gap:16px;animation:heroIn-714cb6de .8s cubic-bezier(.16,1,.3,1) .35s both}.hero-social a[data-v-714cb6de]{color:var(--text-muted);font-size:1.2rem;opacity:1;transition:color .2s ease,transform .2s ease}.hero-social a[data-v-714cb6de]:hover{color:var(--accent);transform:translateY(-2px)}.section-about[data-v-714cb6de]{padding:100px 24px}.about-grid[data-v-714cb6de]{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}.about-featured[data-v-714cb6de]{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);overflow:hidden;cursor:pointer;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease;position:sticky;top:calc(var(--nav-h) + 24px)}.about-featured[data-v-714cb6de]:hover{border-color:var(--border-accent);box-shadow:0 20px 60px -12px var(--accent-glow);transform:translateY(-3px)}.af-label[data-v-714cb6de]{padding:12px 16px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px}.af-image[data-v-714cb6de]{height:200px;background-size:cover;background-position:50%;position:relative;transition:transform .5s ease}.about-featured:hover .af-image[data-v-714cb6de]{transform:scale(1.03)}.af-image-overlay[data-v-714cb6de]{position:absolute;inset:0;background:linear-gradient(0deg,rgba(17,24,39,.7) 0,transparent 60%)}.af-body[data-v-714cb6de]{padding:20px;display:flex;flex-direction:column;gap:10px}.af-tags[data-v-714cb6de]{display:flex;flex-wrap:wrap;gap:6px}.af-title[data-v-714cb6de]{font-size:1.2rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.af-desc[data-v-714cb6de]{font-size:.85rem;color:var(--text-muted);line-height:1.6;margin:0}.af-cta[data-v-714cb6de]{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--accent);margin-top:4px;transition:gap .2s ease}.about-featured:hover .af-cta[data-v-714cb6de]{gap:10px}.about-text[data-v-714cb6de]{display:flex;flex-direction:column;gap:16px}.about-heading[data-v-714cb6de]{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.02em;line-height:1.2}.about-text p[data-v-714cb6de]{color:var(--text-muted);font-size:.95rem;line-height:1.75;margin:0}.about-text a[data-v-714cb6de]{color:var(--accent)}.about-stats[data-v-714cb6de]{display:flex;gap:32px;padding-top:16px;border-top:1px solid var(--border);margin-top:8px;flex-wrap:wrap}.stat[data-v-714cb6de]{display:flex;flex-direction:column;gap:2px}.stat-number[data-v-714cb6de]{font-family:Space Grotesk,sans-serif;font-size:1.75rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.stat-label[data-v-714cb6de]{font-size:.8rem;color:var(--text-muted)}.section-work[data-v-714cb6de]{padding:0 0 80px;background:linear-gradient(180deg,transparent,var(--bg-surface) 30%,var(--bg-surface) 70%,transparent)}.section-work .container[data-v-714cb6de]{padding-top:64px;padding-bottom:64px}.work-header[data-v-714cb6de]{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:40px;flex-wrap:wrap}.section-heading[data-v-714cb6de]{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;letter-spacing:-.02em;margin-top:8px}.work-grid[data-v-714cb6de]{display:grid;grid-template-columns:1fr;gap:20px}.work-card[data-v-714cb6de]{height:260px;border-radius:var(--radius);overflow:hidden;position:relative;cursor:pointer;border:1px solid var(--border);transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease}.work-card[data-v-714cb6de]:hover{border-color:var(--border-accent);box-shadow:0 20px 60px -10px rgba(0,0,0,.6);transform:translateY(-4px)}.work-card-image[data-v-714cb6de]{position:absolute;inset:0;background-size:cover;background-position:50%;transition:transform .5s ease}.work-card:hover .work-card-image[data-v-714cb6de]{transform:scale(1.05)}.work-card-overlay[data-v-714cb6de]{position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,9,15,.7) 0,transparent 60%)}.work-card-footer[data-v-714cb6de]{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.work-card-title[data-v-714cb6de]{font-family:Space Grotesk,sans-serif;font-weight:600;color:#fff;font-size:.95rem}.work-card-tags[data-v-714cb6de]{display:flex;gap:6px}.card-tag[data-v-714cb6de]{font-size:.7rem;font-weight:500;padding:2px 8px;border-radius:99px;background:rgba(0,0,0,.35);color:hsla(0,0%,100%,.85);border:1px solid hsla(0,0%,100%,.15)}@media (min-width:640px){.work-grid[data-v-714cb6de]{grid-template-columns:repeat(2,1fr)}}@media (min-width:860px){.about-grid[data-v-714cb6de]{grid-template-columns:340px 1fr;gap:56px}}@media (min-width:960px){.work-grid[data-v-714cb6de]{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion:reduce){.hero-badge-dot[data-v-714cb6de],.hero-content[data-v-714cb6de],.hero-glow-1[data-v-714cb6de],.hero-glow-2[data-v-714cb6de],.hero-visual[data-v-714cb6de]{animation:none}.hero-bg-photo[data-v-714cb6de]{will-change:auto}}