.navbar[data-v-6a7755e7]{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-height);transition:all .4s var(--easing);background:transparent}.navbar.scrolled[data-v-6a7755e7]{background:#ffffffd9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-sm)}.nav-inner[data-v-6a7755e7]{max-width:var(--max-width);margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;justify-content:space-between}.nav-logo[data-v-6a7755e7]{font-size:1.15rem;font-weight:600;letter-spacing:.05em;display:flex;align-items:center;gap:8px}.logo-dot[data-v-6a7755e7]{width:7px;height:7px;border-radius:50%;background:var(--c-accent)}.nav-toggle[data-v-6a7755e7]{display:none;width:24px;height:18px;position:relative;z-index:1001}.toggle-line[data-v-6a7755e7],.toggle-line[data-v-6a7755e7]:before,.toggle-line[data-v-6a7755e7]:after{display:block;width:100%;height:2px;background:var(--c-text);transition:transform .3s var(--easing);position:absolute;left:0;border-radius:1px}.toggle-line[data-v-6a7755e7]{top:50%;transform:translateY(-50%)}.toggle-line[data-v-6a7755e7]:before{content:"";top:-7px}.toggle-line[data-v-6a7755e7]:after{content:"";top:7px}.toggle-line.open[data-v-6a7755e7]{background:transparent}.toggle-line.open[data-v-6a7755e7]:before{top:0;transform:rotate(45deg)}.toggle-line.open[data-v-6a7755e7]:after{top:0;transform:rotate(-45deg)}.nav-links[data-v-6a7755e7]{display:flex;gap:32px;align-items:center}.nav-link[data-v-6a7755e7]{font-size:.85rem;font-weight:400;color:var(--c-text-dim);letter-spacing:.05em;transition:all .3s var(--easing);position:relative;padding:4px 0;display:flex;align-items:center;gap:6px}.link-indicator[data-v-6a7755e7]{width:4px;height:4px;border-radius:50%;background:transparent;transition:all .3s var(--easing)}.nav-link[data-v-6a7755e7]:hover{color:var(--c-text)}.nav-link:hover .link-indicator[data-v-6a7755e7]{background:var(--c-accent)}@media(max-width:768px){.nav-toggle[data-v-6a7755e7]{display:block}.nav-links[data-v-6a7755e7]{position:fixed;top:0;right:0;width:70%;max-width:280px;height:100vh;flex-direction:column;justify-content:center;gap:20px;background:#fffffff7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transform:translate(100%);transition:transform .4s var(--easing);border-left:1px solid var(--c-border);padding:80px 40px}.nav-links.open[data-v-6a7755e7]{transform:translate(0)}.nav-link[data-v-6a7755e7]{font-size:1rem;color:var(--c-text)}}.footer[data-v-6fe7b201]{padding:48px 24px 24px;border-top:1px solid var(--c-border)}.footer-inner[data-v-6fe7b201]{max-width:var(--max-width);margin:0 auto}.footer-main[data-v-6fe7b201]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:24px}.footer-brand[data-v-6fe7b201]{display:flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:600}.footer-dot[data-v-6fe7b201]{width:6px;height:6px;border-radius:50%;background:var(--c-accent)}.footer-nav[data-v-6fe7b201]{display:flex;gap:24px;flex-wrap:wrap}.footer-link[data-v-6fe7b201]{font-size:.8rem;color:var(--c-text-dim);transition:color .3s var(--easing)}.footer-link[data-v-6fe7b201]:hover{color:var(--c-accent)}.footer-bottom[data-v-6fe7b201]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:20px;border-top:1px solid var(--c-border)}.footer-copy[data-v-6fe7b201]{font-size:.75rem;color:var(--c-text-dim)}.footer-built[data-v-6fe7b201]{font-size:.75rem;color:var(--c-text-dim);font-family:var(--font-mono)}.back-to-top[data-v-6fe7b201]{position:fixed;bottom:32px;right:32px;width:40px;height:40px;border-radius:50%;background:var(--c-accent);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(12px);pointer-events:none;transition:all .4s var(--easing);z-index:100;box-shadow:var(--shadow-md)}.back-to-top.visible[data-v-6fe7b201]{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top[data-v-6fe7b201]:hover{background:#0f766e;transform:translateY(-3px)}.page-enter-active,.page-leave-active{transition:opacity .35s var(--easing),transform .35s var(--easing)}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}.three-canvas[data-v-33b6bc7a]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.ambient[data-v-e2492479]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.orb[data-v-e2492479]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.6;animation:orbFloat-e2492479 var(--duration, 8s) ease-in-out infinite}@keyframes orbFloat-e2492479{0%,to{transform:translate(0) scale(1);opacity:.5}25%{transform:translate(var(--drift-x, 30px),calc(var(--drift-y, -20px) * -1)) scale(var(--scale-to, 1.06));opacity:.7}50%{transform:translate(calc(var(--drift-x, 30px) * -1),var(--drift-y, 10px)) scale(calc(2 - var(--scale-to, 1.06)));opacity:.4}75%{transform:translate(var(--drift-x, 10px),var(--drift-y, 30px)) scale(var(--scale-to, 1.06));opacity:.65}}.mouse-glow[data-v-e2492479]{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(13,148,136,.04),transparent 60%);pointer-events:none;transform:translate(calc(var(--mx, 0px) - 300px),calc(var(--my, 0px) - 300px));transition:transform .3s ease-out}.hero[data-v-8ecc6630]{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:120px 24px 80px;overflow:hidden;background:radial-gradient(ellipse at 20% 50%,rgba(13,148,136,.05) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(234,179,8,.04) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(13,148,136,.04) 0%,transparent 50%),linear-gradient(180deg,#f7f8fa,#eef2f1);background-size:200% 200%;animation:breatheGradient-8ecc6630 12s ease-in-out infinite}@keyframes breatheGradient-8ecc6630{0%{background-position:10% 40%,70% 30%,40% 70%,0 0}25%{background-position:20% 50%,80% 20%,30% 80%,0 0}50%{background-position:30% 40%,70% 30%,50% 60%,0 0}75%{background-position:15% 55%,85% 25%,45% 75%,0 0}to{background-position:10% 40%,70% 30%,40% 70%,0 0}}.hero-overlay[data-v-8ecc6630]{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 30%,rgba(247,248,250,.3) 100%);z-index:1;pointer-events:none}.hero[data-v-8ecc6630]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(13,148,136,.05) .8px,transparent .8px);background-size:32px 32px;z-index:0;pointer-events:none}.hero-content[data-v-8ecc6630]{position:relative;z-index:2;text-align:center;max-width:700px}.hero-badge[data-v-8ecc6630]{display:inline-block;font-size:.8rem;color:var(--c-accent);letter-spacing:.15em;padding:6px 16px;border:1px solid rgba(13,148,136,.2);border-radius:20px;background:#0d94880d;margin-bottom:32px;opacity:0;transform:translateY(10px);transition:all .6s var(--easing)}.hero-badge.show[data-v-8ecc6630]{opacity:1;transform:translateY(0)}.hero-title[data-v-8ecc6630]{margin-bottom:20px;overflow:hidden}.title-line[data-v-8ecc6630]{display:block;font-size:clamp(3rem,10vw,6rem);font-weight:700;letter-spacing:-.03em;color:var(--c-text);clip-path:inset(0 100% 0 0);transition:clip-path 1s var(--easing) .2s;line-height:1.1}.hero-title.show .title-line[data-v-8ecc6630]{clip-path:inset(0 0 0 0)}.hero-typewrap[data-v-8ecc6630]{font-family:var(--font-mono);font-size:clamp(1rem,2vw,1.3rem);color:var(--c-text-dim);min-height:1.8em;margin-bottom:48px}.type-cursor[data-v-8ecc6630]{animation:blink .8s step-end infinite;color:var(--c-accent)}.hero-actions[data-v-8ecc6630]{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;opacity:0;transform:translateY(20px);transition:all .8s var(--easing)}.hero-actions.show[data-v-8ecc6630]{opacity:1;transform:translateY(0)}.btn-primary[data-v-8ecc6630]{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:var(--c-accent);color:#fff;font-size:.9rem;font-weight:500;letter-spacing:.05em;border-radius:var(--radius-sm);transition:all .3s var(--easing)}.btn-primary[data-v-8ecc6630]:hover{background:#0f766e;transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-primary svg[data-v-8ecc6630]{transition:transform .3s var(--easing)}.btn-primary:hover svg[data-v-8ecc6630]{transform:translate(4px)}.btn-secondary[data-v-8ecc6630]{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border:1px solid var(--c-border);color:var(--c-text);font-size:.9rem;font-weight:400;letter-spacing:.05em;border-radius:var(--radius-sm);transition:all .3s var(--easing)}.btn-secondary[data-v-8ecc6630]:hover{border-color:var(--c-accent);color:var(--c-accent);background:#0d94880a;transform:translateY(-2px)}.scroll-indicator[data-v-8ecc6630]{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2;opacity:0;transition:opacity .8s var(--easing)}.scroll-indicator.show[data-v-8ecc6630]{opacity:1}.scroll-text[data-v-8ecc6630]{font-size:.6rem;letter-spacing:.3em;color:var(--c-text-dim)}.scroll-line[data-v-8ecc6630]{width:1px;height:32px;background:linear-gradient(to bottom,var(--c-accent),transparent);animation:scrollAnim-8ecc6630 2s ease-in-out infinite}@keyframes scrollAnim-8ecc6630{0%{transform:scaleY(0);transform-origin:top;opacity:1}50%{transform:scaleY(1);transform-origin:top;opacity:.5}50.01%{transform:scaleY(1);transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom;opacity:0}}.about[data-v-c37562ed]{padding:120px 24px;position:relative;overflow:hidden}.about-inner[data-v-c37562ed]{max-width:var(--max-width);margin:0 auto;position:relative;z-index:1}.section-header[data-v-c37562ed]{display:flex;align-items:center;gap:16px;margin-bottom:64px}.section-number[data-v-c37562ed]{font-family:var(--font-mono);font-size:.8rem;color:var(--c-accent);opacity:.6}.section-label[data-v-c37562ed]{font-size:.85rem;font-weight:500;color:var(--c-text);letter-spacing:.15em;text-transform:uppercase}.section-line[data-v-c37562ed]{flex:1;height:1px;background:linear-gradient(to right,var(--c-border),transparent)}.about-grid[data-v-c37562ed]{display:grid;grid-template-columns:1fr 1.8fr;gap:80px;align-items:center}.avatar-ring[data-v-c37562ed]{width:280px;height:280px;border-radius:50%;padding:3px;background:linear-gradient(135deg,var(--c-accent),var(--c-accent2));margin:0 auto;animation:float 4s ease-in-out infinite}.avatar-inner[data-v-c37562ed]{width:100%;height:100%;border-radius:50%;background:var(--c-bg-card);display:flex;align-items:center;justify-content:center;overflow:hidden}.avatar-text[data-v-c37562ed]{font-size:3rem;font-weight:700;color:var(--c-accent);letter-spacing:.1em}.about-name[data-v-c37562ed]{font-size:2rem;font-weight:600;margin-bottom:8px;letter-spacing:-.02em}.about-subtitle[data-v-c37562ed]{font-size:.9rem;color:var(--c-text-dim);margin-bottom:24px;letter-spacing:.05em}.about-desc[data-v-c37562ed]{font-size:.95rem;color:var(--c-text-dim);line-height:1.9;margin-bottom:32px;max-width:480px}.about-stats[data-v-c37562ed]{display:flex;gap:40px;margin-bottom:32px}.stat-item[data-v-c37562ed]{display:flex;flex-direction:column;gap:4px}.stat-value[data-v-c37562ed]{font-size:1.8rem;font-weight:700;color:var(--c-accent)}.stat-label[data-v-c37562ed]{font-size:.75rem;color:var(--c-text-dim);letter-spacing:.05em}.about-tags[data-v-c37562ed]{display:flex;gap:8px;flex-wrap:wrap}.about-tag[data-v-c37562ed]{font-size:.75rem;padding:4px 14px;border:1px solid var(--c-border);color:var(--c-text-dim);border-radius:20px;transition:all .3s var(--easing)}.about-tag[data-v-c37562ed]:hover{border-color:var(--c-accent);color:var(--c-accent);background:#0d94880a}@media(max-width:768px){.about-grid[data-v-c37562ed]{grid-template-columns:1fr;gap:48px}.avatar-ring[data-v-c37562ed]{width:200px;height:200px}.avatar-text[data-v-c37562ed]{font-size:2rem}.about-stats[data-v-c37562ed]{gap:24px}}.skills[data-v-25ca684b]{padding:120px 24px;background:var(--c-bg-alt);position:relative;overflow:hidden}.skills[data-v-25ca684b]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(13,148,136,.07) .8px,transparent .8px);background-size:28px 28px;pointer-events:none}.skills .skills-inner[data-v-25ca684b]:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,.15),rgba(234,179,8,.1),transparent)}.skills-inner[data-v-25ca684b]{max-width:var(--max-width);margin:0 auto;position:relative;z-index:1}.section-header[data-v-25ca684b]{display:flex;align-items:center;gap:16px;margin-bottom:64px}.section-number[data-v-25ca684b]{font-family:var(--font-mono);font-size:.8rem;color:var(--c-accent);opacity:.6}.section-label[data-v-25ca684b]{font-size:.85rem;font-weight:500;color:var(--c-text);letter-spacing:.15em;text-transform:uppercase}.section-line[data-v-25ca684b]{flex:1;height:1px;background:linear-gradient(to right,var(--c-border),transparent)}.skills-grid[data-v-25ca684b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.skill-card[data-v-25ca684b]{padding:28px 24px;background:linear-gradient(var(--c-bg-card),var(--c-bg-card)) padding-box,linear-gradient(135deg,rgba(13,148,136,.1),transparent,rgba(234,179,8,.08)) border-box;border:1px solid transparent;border-radius:var(--radius-md);transition:all .4s var(--easing);cursor:default;box-shadow:var(--shadow-sm);position:relative}.skill-card[data-v-25ca684b]:after{content:"";position:absolute;top:0;left:24px;right:24px;height:2px;background:linear-gradient(90deg,#0d94884d,#eab30833);border-radius:2px}.skill-card[data-v-25ca684b]:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#0d948833}.skill-icon[data-v-25ca684b]{width:32px;height:32px;color:var(--c-accent);margin-bottom:16px;transition:transform .3s var(--easing)}.skill-card:hover .skill-icon[data-v-25ca684b]{transform:scale(1.1)}.skill-name[data-v-25ca684b]{font-size:1.05rem;font-weight:600;margin-bottom:6px}.skill-desc[data-v-25ca684b]{font-size:.8rem;color:var(--c-text-dim);margin-bottom:20px;line-height:1.6}.skill-bar[data-v-25ca684b]{width:100%;height:3px;background:#0000000f;border-radius:2px;overflow:hidden}.skill-bar-fill[data-v-25ca684b]{height:100%;background:linear-gradient(90deg,var(--c-accent),var(--c-accent2));border-radius:2px;transition:width 1.2s var(--easing)}@media(max-width:768px){.skills-grid[data-v-25ca684b]{grid-template-columns:1fr}}.experience[data-v-807e7b41]{padding:120px 24px;position:relative;overflow:hidden}.exp-inner[data-v-807e7b41]{max-width:var(--max-width);margin:0 auto;position:relative;z-index:1}.section-header[data-v-807e7b41]{display:flex;align-items:center;gap:16px;margin-bottom:64px}.section-number[data-v-807e7b41]{font-family:var(--font-mono);font-size:.8rem;color:var(--c-accent);opacity:.6}.section-label[data-v-807e7b41]{font-size:.85rem;font-weight:500;color:var(--c-text);letter-spacing:.15em;text-transform:uppercase}.section-line[data-v-807e7b41]{flex:1;height:1px;background:linear-gradient(to right,var(--c-border),transparent)}.exp-timeline[data-v-807e7b41]{position:relative;padding-left:32px}.exp-timeline[data-v-807e7b41]:before{content:"";position:absolute;left:6px;top:0;bottom:0;width:1.5px;background:linear-gradient(to bottom,var(--c-accent),var(--c-accent2),transparent)}.exp-item[data-v-807e7b41]{position:relative;margin-bottom:48px}.exp-dot[data-v-807e7b41]{position:absolute;left:-25px;top:24px;width:12px;height:12px;border-radius:50%;background:var(--c-bg);border:2px solid var(--c-accent);z-index:1;transition:all .3s var(--easing)}.exp-item:hover .exp-dot[data-v-807e7b41]{transform:scale(1.3);background:var(--c-accent)}.exp-card[data-v-807e7b41]{padding:28px;background:linear-gradient(var(--c-bg-card),var(--c-bg-card)) padding-box,linear-gradient(135deg,rgba(13,148,136,.08),transparent,rgba(234,179,8,.06)) border-box;border:1px solid transparent;border-radius:var(--radius-md);transition:all .4s var(--easing)}.exp-card[data-v-807e7b41]:hover{border-color:#0d948833;box-shadow:var(--shadow-md);transform:translate(6px)}.exp-meta[data-v-807e7b41]{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}.exp-date[data-v-807e7b41]{font-family:var(--font-mono);font-size:.8rem;color:var(--c-accent);letter-spacing:.05em}.exp-company[data-v-807e7b41]{font-size:.75rem;padding:2px 10px;border:1px solid var(--c-border);color:var(--c-text-dim);letter-spacing:.05em;border-radius:4px}.exp-title[data-v-807e7b41]{font-size:1.15rem;font-weight:600;margin-bottom:16px}.exp-desc[data-v-807e7b41]{font-size:.85rem;color:var(--c-text-dim);line-height:1.8;margin-bottom:8px}.exp-tags[data-v-807e7b41]{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.exp-tag[data-v-807e7b41]{font-size:.7rem;padding:3px 10px;border:1px solid var(--c-border);color:var(--c-text-dim);border-radius:4px;transition:all .3s var(--easing)}.exp-tag[data-v-807e7b41]:hover{border-color:var(--c-accent);color:var(--c-accent)}.projects[data-v-df7d1da2]{padding:120px 24px;background:var(--c-bg-alt);position:relative;overflow:hidden}.projects[data-v-df7d1da2]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(13,148,136,.06) .8px,transparent .8px);background-size:28px 28px;pointer-events:none}.projects .projects-inner[data-v-df7d1da2]:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(13,148,136,.15),rgba(234,179,8,.1),transparent)}.projects-inner[data-v-df7d1da2]{max-width:var(--max-width);margin:0 auto;position:relative;z-index:1}.section-header[data-v-df7d1da2]{display:flex;align-items:center;gap:16px;margin-bottom:64px}.section-number[data-v-df7d1da2]{font-family:var(--font-mono);font-size:.8rem;color:var(--c-accent);opacity:.6}.section-label[data-v-df7d1da2]{font-size:.85rem;font-weight:500;color:var(--c-text);letter-spacing:.15em;text-transform:uppercase}.section-line[data-v-df7d1da2]{flex:1;height:1px;background:linear-gradient(to right,var(--c-border),transparent)}.projects-grid[data-v-df7d1da2]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.project-card[data-v-df7d1da2]{position:relative;padding:28px;background:linear-gradient(var(--c-bg-card),var(--c-bg-card)) padding-box,linear-gradient(135deg,rgba(13,148,136,.1),transparent,rgba(234,179,8,.08)) border-box;border:1px solid transparent;border-radius:var(--radius-md);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;opacity:0;transform:perspective(1000px) translateY(50px);transition:opacity .6s cubic-bezier(.34,1.56,.64,1),transform .7s cubic-bezier(.34,1.56,.64,1),box-shadow .4s var(--easing),border-color .4s var(--easing)}.project-card.visible[data-v-df7d1da2]{opacity:1;transform:perspective(1000px) translateY(0)}.project-card[data-v-df7d1da2]:hover{box-shadow:var(--shadow-lg);border-color:#0d948833}.project-card[data-v-df7d1da2]:after{content:"";position:absolute;top:0;left:24px;right:24px;height:2px;background:linear-gradient(90deg,#0d948840,#eab30826);border-radius:2px}.project-sweep[data-v-df7d1da2]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(105deg,transparent 30%,rgba(13,148,136,.06) 45%,rgba(234,179,8,.04) 50%,rgba(13,148,136,.06) 55%,transparent 70%);transform:translate(-110%);transition:transform 0s;pointer-events:none}.project-card:hover .project-sweep[data-v-df7d1da2]{transform:translate(110%);transition:transform .7s cubic-bezier(.25,.46,.45,.94)}.ripple[data-v-df7d1da2]{position:absolute;width:8px;height:8px;border-radius:50%;background:#0d948840;transform:translate(-50%,-50%) scale(0);animation:rippleAnim-df7d1da2 .6s ease-out forwards;pointer-events:none;z-index:2}@keyframes rippleAnim-df7d1da2{to{transform:translate(-50%,-50%) scale(35);opacity:0}}.project-top[data-v-df7d1da2]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.project-icon[data-v-df7d1da2]{font-size:1.8rem;transition:transform .4s var(--easing)}.project-card:hover .project-icon[data-v-df7d1da2]{transform:scale(1.15) rotate(-8deg)}.project-lang[data-v-df7d1da2]{font-family:var(--font-mono);font-size:.7rem;color:var(--c-text-dim);padding:2px 10px;border:1px solid var(--c-border);border-radius:4px}.project-title[data-v-df7d1da2]{font-size:1.1rem;font-weight:600;margin-bottom:10px;transition:color .3s var(--easing)}.project-card:hover .project-title[data-v-df7d1da2]{color:var(--c-accent)}.project-desc[data-v-df7d1da2]{font-size:.85rem;color:var(--c-text-dim);line-height:1.7;margin-bottom:16px;flex:1}.project-tags[data-v-df7d1da2]{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.project-tag[data-v-df7d1da2]{font-size:.7rem;padding:2px 8px;border:1px solid var(--c-border);color:var(--c-text-dim);border-radius:4px}.project-footer[data-v-df7d1da2]{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--c-border);position:relative;z-index:1}.project-stars[data-v-df7d1da2]{font-size:.8rem;color:var(--c-text-dim)}.project-link[data-v-df7d1da2]{font-size:.8rem;color:var(--c-accent);transition:transform .3s var(--easing)}.project-card:hover .project-link[data-v-df7d1da2]{transform:translate(4px)}.modal-mask[data-v-df7d1da2]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .25s ease}.modal-content[data-v-df7d1da2]{background:var(--c-bg);max-width:500px;width:100%;border-radius:var(--radius-md);padding:40px 36px 32px;position:relative;animation:fadeInScale .3s var(--easing);box-shadow:var(--shadow-lg)}.modal-close[data-v-df7d1da2]{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--c-text-dim);transition:all .3s var(--easing)}.modal-close[data-v-df7d1da2]:hover{background:#0000000d;color:var(--c-text)}.modal-icon[data-v-df7d1da2]{font-size:2.5rem;margin-bottom:16px}.modal-title[data-v-df7d1da2]{font-size:1.4rem;font-weight:600;margin-bottom:16px;letter-spacing:-.02em}.modal-desc[data-v-df7d1da2]{font-size:.9rem;color:var(--c-text-dim);line-height:1.8;margin-bottom:24px}.modal-section[data-v-df7d1da2]{margin-bottom:28px}.modal-section-title[data-v-df7d1da2]{font-size:.8rem;font-weight:500;color:var(--c-accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}.modal-tags[data-v-df7d1da2]{display:flex;gap:8px;flex-wrap:wrap}.modal-tag[data-v-df7d1da2]{font-size:.8rem;padding:4px 14px;border:1px solid var(--c-border);color:var(--c-text-dim);border-radius:4px;transition:all .3s var(--easing)}.modal-tag[data-v-df7d1da2]:hover{border-color:var(--c-accent);color:var(--c-accent)}.modal-link[data-v-df7d1da2]{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--c-accent);color:#fff;font-size:.85rem;font-weight:500;border-radius:var(--radius-sm);transition:all .3s var(--easing)}.modal-link[data-v-df7d1da2]:hover{background:#0f766e;box-shadow:var(--shadow-md)}.modal-link svg[data-v-df7d1da2]{transition:transform .3s var(--easing)}.modal-link:hover svg[data-v-df7d1da2]{transform:translate(4px)}.interests[data-v-9be1b609]{padding:120px 24px;background:var(--c-bg);position:relative;overflow:hidden}.interests-inner[data-v-9be1b609]{max-width:var(--max-width);margin:0 auto;position:relative;z-index:1}.section-header[data-v-9be1b609]{display:flex;align-items:center;gap:16px;margin-bottom:16px}.section-number[data-v-9be1b609]{font-family:var(--font-mono);font-size:.8rem;color:var(--c-accent);opacity:.6}.section-label[data-v-9be1b609]{font-size:.85rem;font-weight:500;color:var(--c-text);letter-spacing:.15em;text-transform:uppercase}.section-line[data-v-9be1b609]{flex:1;height:1px;background:linear-gradient(to right,var(--c-border),transparent)}.interests-intro[data-v-9be1b609]{font-size:.9rem;color:var(--c-text-dim);margin-bottom:48px;margin-left:calc(.8rem + 32px)}.interests-grid[data-v-9be1b609]{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.interest-card[data-v-9be1b609]{padding:36px 28px;background:linear-gradient(var(--c-bg-card),var(--c-bg-card)) padding-box,linear-gradient(135deg,rgba(13,148,136,.08),transparent,rgba(234,179,8,.06)) border-box;border:1px solid transparent;border-radius:var(--radius-md);text-align:center;transition:all .4s var(--easing);box-shadow:var(--shadow-sm)}.interest-card[data-v-9be1b609]:hover{border-color:#0d948833;transform:translateY(-4px);box-shadow:var(--shadow-md)}.interest-emoji[data-v-9be1b609]{font-size:2.4rem;display:block;margin-bottom:16px}.interest-title[data-v-9be1b609]{font-size:1.1rem;font-weight:600;margin-bottom:10px}.interest-desc[data-v-9be1b609]{font-size:.85rem;color:var(--c-text-dim);line-height:1.7}@media(max-width:768px){.interests-grid[data-v-9be1b609]{grid-template-columns:1fr}.interests-intro[data-v-9be1b609]{margin-left:0;text-align:center}}.contact[data-v-dc676931]{padding:120px 24px;position:relative;overflow:hidden}.contact-inner[data-v-dc676931]{max-width:var(--max-width);margin:0 auto;position:relative;z-index:1}.section-header[data-v-dc676931]{display:flex;align-items:center;gap:16px;margin-bottom:64px}.section-number[data-v-dc676931]{font-family:var(--font-mono);font-size:.8rem;color:var(--c-accent);opacity:.6}.section-label[data-v-dc676931]{font-size:.85rem;font-weight:500;color:var(--c-text);letter-spacing:.15em;text-transform:uppercase}.section-line[data-v-dc676931]{flex:1;height:1px;background:linear-gradient(to right,var(--c-border),transparent)}.contact-content[data-v-dc676931]{text-align:center}.contact-intro[data-v-dc676931]{font-size:.95rem;color:var(--c-text-dim);margin-bottom:48px}.contact-cards[data-v-dc676931]{display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.contact-card[data-v-dc676931]{min-width:240px;padding:28px 24px;background:linear-gradient(var(--c-bg-card),var(--c-bg-card)) padding-box,linear-gradient(135deg,rgba(13,148,136,.08),transparent,rgba(234,179,8,.06)) border-box;border:1px solid transparent;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .4s var(--easing);cursor:pointer}.contact-card[data-v-dc676931]:hover{border-color:#0d948833;transform:translateY(-4px);box-shadow:var(--shadow-md)}.contact-icon[data-v-dc676931]{color:var(--c-accent);margin-bottom:4px}.contact-value[data-v-dc676931]{font-size:.9rem;font-weight:500}.contact-label[data-v-dc676931]{font-size:.75rem;color:var(--c-text-dim);letter-spacing:.05em}.detail-page[data-v-cd0310e4]{min-height:100vh;padding:120px 24px 80px}.detail-container[data-v-cd0310e4]{max-width:680px;margin:0 auto}.detail-back[data-v-cd0310e4]{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--c-text-dim);transition:color .3s var(--easing);margin-bottom:48px}.detail-back[data-v-cd0310e4]:hover{color:var(--c-accent)}.detail-content[data-v-cd0310e4]{animation:fadeInUp .6s var(--easing)}.detail-header[data-v-cd0310e4]{display:flex;align-items:center;gap:16px;margin-bottom:24px}.detail-icon[data-v-cd0310e4]{font-size:2.5rem}.detail-title[data-v-cd0310e4]{font-size:1.8rem;font-weight:600;letter-spacing:-.02em}.detail-desc[data-v-cd0310e4]{font-size:.95rem;color:var(--c-text-dim);line-height:1.9;margin-bottom:32px}.detail-section[data-v-cd0310e4]{margin-bottom:32px}.detail-heading[data-v-cd0310e4]{font-size:1rem;font-weight:600;margin-bottom:12px;color:var(--c-accent)}.detail-tags[data-v-cd0310e4]{display:flex;gap:8px;flex-wrap:wrap}.detail-tag[data-v-cd0310e4]{font-size:.8rem;padding:4px 14px;border:1px solid var(--c-border);color:var(--c-text-dim);border-radius:4px}.detail-link[data-v-cd0310e4]{display:inline-block;padding:12px 28px;border:1px solid var(--c-accent);color:var(--c-accent);font-size:.85rem;transition:all .3s var(--easing);border-radius:var(--radius-sm)}.detail-link[data-v-cd0310e4]:hover{background:var(--c-accent);color:var(--c-bg)}.detail-notfound[data-v-cd0310e4]{text-align:center;padding:80px 0;color:var(--c-text-dim)}.detail-back-link[data-v-cd0310e4]{display:inline-block;margin-top:16px;color:var(--c-accent)}:root{--c-bg: #f7f8fa;--c-bg-alt: #f0f4f3;--c-bg-card: #ffffff;--c-text: #1a1a2e;--c-text-dim: #6b7280;--c-accent: #0d9488;--c-accent2: #eab308;--c-border: rgba(0, 0, 0, .07);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--easing: cubic-bezier(.25, .1, .25, 1);--easing-out: cubic-bezier(0, .55, .45, 1);--duration-slow: .8s;--duration-medium: .5s;--duration-fast: .3s;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--nav-height: 64px;--max-width: 1100px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background-color:var(--c-bg);color:var(--c-text);line-height:1.7;overflow-x:hidden}::selection{background:var(--c-accent);color:#fff}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}button{border:none;background:none;cursor:pointer;font-family:inherit;color:inherit}input,textarea{font-family:inherit}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes revealClip{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes lineGrow{0%{height:0}to{height:100%}}.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s var(--easing),transform .7s var(--easing)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translate(-30px);transition:opacity .7s var(--easing),transform .7s var(--easing)}.reveal-left.visible{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transform:translate(30px);transition:opacity .7s var(--easing),transform .7s var(--easing)}.reveal-right.visible{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transform:scale(.92);transition:opacity .7s var(--easing),transform .7s var(--easing)}.reveal-scale.visible{opacity:1;transform:scale(1)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}.delay-6{transition-delay:.6s}.delay-7{transition-delay:.7s}
