.site-nav[data-v-0df3db8c]{z-index:200;padding:var(--space-3) 0;-webkit-backdrop-filter:blur(12px);background:#0d0d0dbf;border-bottom:1px solid #ffffff0d;position:fixed;top:0;left:0;right:0}.nav-inner[data-v-0df3db8c]{max-width:var(--content-max-width);padding:0 var(--space-6);justify-content:flex-end;align-items:center;margin:0 auto;display:flex}.nav-toggle[data-v-0df3db8c]{color:var(--color-text-secondary);cursor:pointer;padding:var(--space-2);transition:color var(--transition-fast);background:0 0;border:none;display:none}.nav-toggle[data-v-0df3db8c]:hover{color:var(--color-accent)}.nav-list[data-v-0df3db8c]{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.nav-link[data-v-0df3db8c]{color:var(--color-text-tertiary);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-family:inherit}.nav-link[data-v-0df3db8c]:hover{color:var(--color-text-primary);background:#ffffff0d}.nav-link.active[data-v-0df3db8c]{color:var(--color-accent);background:var(--color-accent-dim)}.nav-fade-enter-active[data-v-0df3db8c],.nav-fade-leave-active[data-v-0df3db8c]{transition:opacity var(--transition-normal), transform var(--transition-normal)}.nav-fade-enter-from[data-v-0df3db8c],.nav-fade-leave-to[data-v-0df3db8c]{opacity:0;transform:translateY(-100%)}@media (width<=640px){.nav-toggle[data-v-0df3db8c]{display:block}.nav-list[data-v-0df3db8c]{-webkit-backdrop-filter:blur(12px);padding:var(--space-2) var(--space-6);background:#0d0d0df2;border-bottom:1px solid #ffffff0d;flex-direction:column;display:none;position:absolute;top:100%;left:0;right:0}.nav-list.open[data-v-0df3db8c]{display:flex}.nav-link[data-v-0df3db8c]{padding:var(--space-3) var(--space-4)}}.hero[data-v-f6cda710]{justify-content:center;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.hero-bg-gradient[data-v-f6cda710]{pointer-events:none;z-index:0;background:radial-gradient(60% 50% at 50% 0,#d4a5740f 0%,#0000 100%),radial-gradient(80% 60% at 50% 100%,#d4a57408 0%,#0000 100%),linear-gradient(120deg,#fff6ec05 0%,#0000 38%,#d4a57408 100%);position:absolute;inset:0}.hero-content[data-v-f6cda710]{z-index:2;position:relative}.hero-inner[data-v-f6cda710]{text-align:center;padding:var(--space-16) 0;will-change:transform}.hero-avatar-wrapper[data-v-f6cda710]{width:120px;height:120px;margin:0 auto var(--space-8);will-change:transform;position:relative}.hero-avatar[data-v-f6cda710]{object-fit:cover;border:2px solid #d4a5744d;border-radius:50%;width:100%;height:100%;animation:4s ease-in-out infinite breathe-f6cda710}.hero-avatar-ring[data-v-f6cda710]{border:1px solid #d4a5741a;border-radius:50%;animation:4s ease-in-out infinite ring-pulse-f6cda710;position:absolute;inset:-6px}@keyframes breathe-f6cda710{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes ring-pulse-f6cda710{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.08)}}.hero-name[data-v-f6cda710]{font-size:var(--text-hero);letter-spacing:-.03em;margin-bottom:var(--space-4);background:linear-gradient(135deg, var(--color-text-primary) 0%, var(--color-accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700;line-height:1.1}.hero-occupation[data-v-f6cda710]{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.hero-occupation .divider[data-v-f6cda710]{margin:0 var(--space-2);color:var(--color-text-tertiary)}.hero-slogan[data-v-f6cda710]{font-size:var(--text-base);color:var(--color-accent);margin-bottom:var(--space-8);font-style:italic}.hero-links[data-v-f6cda710]{justify-content:center;gap:var(--space-6);margin-bottom:var(--space-16);display:flex}.hero-link[data-v-f6cda710]{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);transition:color var(--transition-fast);display:inline-flex}.hero-link[data-v-f6cda710]:hover{color:var(--color-accent)}.hero-link-icon[data-v-f6cda710]{opacity:.7}.scroll-hint[data-v-f6cda710]{align-items:center;gap:var(--space-2);color:var(--color-text-tertiary);font-size:var(--text-xs);cursor:pointer;transition:color var(--transition-fast);flex-direction:column;animation:2s ease-in-out infinite float-f6cda710;display:inline-flex}.scroll-hint[data-v-f6cda710]:hover{color:var(--color-accent)}.scroll-arrow[data-v-f6cda710]{opacity:.5}@keyframes float-f6cda710{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width<=640px){.hero-avatar-wrapper[data-v-f6cda710]{width:96px;height:96px}}.section-header[data-v-bda8eb45]{margin-bottom:var(--space-12)}.section-title[data-v-bda8eb45]{font-size:var(--text-3xl);color:var(--color-text-primary);letter-spacing:-.02em;font-weight:600}.section-subtitle[data-v-bda8eb45]{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-2);font-family:var(--font-mono)}.section-line[data-v-bda8eb45]{background:var(--color-accent);width:40px;height:2px;margin-top:var(--space-4);border-radius:1px}.about-section[data-v-6e65597d]{padding:var(--space-16) 0 var(--space-12)}.about-card[data-v-6e65597d]{padding:var(--space-8);background:var(--color-bg-card);border-radius:var(--radius-lg);transition:all var(--transition-normal);border:1px solid #ffffff0d}.about-card[data-v-6e65597d]:hover{background:var(--color-bg-card-hover);border-color:#d4a57426}.about-text[data-v-6e65597d]{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-6);line-height:1.8}.about-meta[data-v-6e65597d]{gap:var(--space-4);display:flex}.about-location[data-v-6e65597d]{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary);display:inline-flex}.about-location svg[data-v-6e65597d]{opacity:.6}.tag-cloud[data-v-cd5233f3]{padding:var(--space-12) 0;border-top:1px solid #ffffff08}.tag-list[data-v-cd5233f3]{justify-content:center;gap:var(--space-4) var(--space-6);flex-wrap:wrap;display:flex}.tag-item[data-v-cd5233f3]{font-size:var(--text-sm);color:var(--color-text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--color-bg-card);transition:all var(--transition-fast);cursor:default;border:1px solid #ffffff0f}.tag-item[data-v-cd5233f3]:hover{color:var(--color-accent);background:var(--color-accent-dim);border-color:#d4a5744d}.project-card[data-v-f7964832]{color:inherit;text-decoration:none;display:block}.card-inner[data-v-f7964832]{padding:var(--space-6);background:var(--color-bg-card);border-radius:var(--radius-lg);height:100%;transition:all var(--transition-normal);border:1px solid #ffffff0d;position:relative}.project-card.is-clickable:hover .card-inner[data-v-f7964832]{box-shadow:var(--shadow-lg);background:var(--color-bg-card-hover);border-color:#d4a57426;transform:translateY(-4px)}.project-tag[data-v-f7964832]{font-size:var(--text-xs);color:var(--color-accent);background:var(--color-accent-dim);border-radius:var(--radius-full);margin-bottom:var(--space-4);transition:all var(--transition-fast);padding:2px 10px;display:inline-block}.project-card.is-clickable:hover .project-tag[data-v-f7964832]{color:var(--color-accent-hover);background:#d4a57440}.project-title[data-v-f7964832]{font-size:var(--text-xl);margin-bottom:var(--space-3);color:var(--color-text-primary);font-weight:600}.project-desc[data-v-f7964832]{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4);line-height:1.7}.project-link-text[data-v-f7964832]{font-size:var(--text-sm);color:var(--color-accent);opacity:0;transition:all var(--transition-normal);transform:translate(-8px)}.project-card.is-clickable:hover .project-link-text[data-v-f7964832]{opacity:1;transform:translate(0)}.project-link-text.is-static[data-v-f7964832]{opacity:1;color:var(--color-text-secondary);transform:none}.projects-grid[data-v-6f683c9c]{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=768px){.projects-grid[data-v-6f683c9c]{grid-template-columns:1fr}}.skills-grid[data-v-25a58ab5]{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=768px){.skills-grid[data-v-25a58ab5]{grid-template-columns:1fr}}.skill-category[data-v-25a58ab5]{padding:var(--space-6);background:var(--color-bg-card);border-radius:var(--radius-lg);transition:all var(--transition-normal);border:1px solid #ffffff0d}.skill-category[data-v-25a58ab5]:hover{background:var(--color-bg-card-hover);border-color:#d4a57426}.skill-label[data-v-25a58ab5]{font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:var(--space-4);font-weight:600}.skill-tags[data-v-25a58ab5]{gap:var(--space-2);flex-wrap:wrap;display:flex}.skill-tag[data-v-25a58ab5]{font-size:var(--text-xs);color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:#ffffff0a;padding:4px 12px}.skill-tag[data-v-25a58ab5]:hover{color:var(--color-accent);background:var(--color-accent-dim)}.contact-links[data-v-6ed00764]{gap:var(--space-6);flex-wrap:wrap;justify-content:center;display:flex}.contact-link[data-v-6ed00764]{align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-8);background:var(--color-bg-card);border-radius:var(--radius-lg);color:var(--color-text-primary);transition:all var(--transition-normal);border:1px solid #ffffff0d;text-decoration:none;display:inline-flex}.contact-link[data-v-6ed00764]:hover{background:var(--color-bg-card-hover);border-color:#d4a57433;transform:translateY(-2px)}.contact-icon[data-v-6ed00764]{color:var(--color-text-secondary);transition:color var(--transition-fast)}.contact-link:hover .contact-icon[data-v-6ed00764]{color:var(--color-accent)}.contact-url[data-v-6ed00764]{font-size:var(--text-sm);color:var(--color-text-secondary);font-family:var(--font-mono)}.moment-section[data-v-7aae424c]{padding:var(--space-20) 0;overflow:hidden}.moment-inner[data-v-7aae424c]{position:relative}.curtain-images[data-v-7aae424c]{columns:2;column-gap:var(--space-4);perspective:1000px}@media (width<=640px){.curtain-images[data-v-7aae424c]{columns:1}}.curtain-image[data-v-7aae424c]{border-radius:var(--radius-lg);cursor:pointer;width:100%;transform-style:preserve-3d;will-change:transform, filter;break-inside:avoid;margin-bottom:var(--space-4);overflow:hidden}.curtain-image[data-v-7aae424c]:hover{transform:translateY(-4px)scale(1.02)}.curtain-image:hover .photo-img[data-v-7aae424c]{transform:scale(1.05)}.photo-img[data-v-7aae424c]{object-fit:cover;width:100%;transition:transform var(--transition-slow);display:block}.private-section[data-v-7aae424c]{margin-top:var(--space-24);padding-bottom:var(--space-8)}.private-locked[data-v-7aae424c]{justify-content:center;display:flex}.lock-card[data-v-7aae424c]{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-12);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0a;border:1px solid #ffffff0f;flex-direction:column;display:flex}.lock-card[data-v-7aae424c]:hover{box-shadow:var(--shadow-glow);background:#ffffff12;border-color:#d4a57433;transform:translateY(-2px)}.lock-icon[data-v-7aae424c]{color:var(--color-accent);opacity:.7}.lock-text[data-v-7aae424c]{font-size:var(--text-lg);color:var(--color-text-primary);font-weight:600}.lock-hint[data-v-7aae424c]{font-size:var(--text-sm);color:var(--color-text-tertiary)}.private-grid[data-v-7aae424c]{columns:2;column-gap:var(--space-4);perspective:1000px}@media (width<=640px){.private-grid[data-v-7aae424c]{columns:1}}.private-photo-card[data-v-7aae424c]{border-radius:var(--radius-lg);cursor:pointer;transform-style:preserve-3d;will-change:transform, filter;break-inside:avoid;margin-bottom:var(--space-4);overflow:hidden}.private-photo-card[data-v-7aae424c]:hover{transform:translateY(-4px)scale(1.02)}.private-photo-card:hover .photo-img[data-v-7aae424c]{transform:scale(1.05)}.modal-overlay[data-v-7aae424c]{z-index:10000;cursor:default;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-7aae424c]{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-8);width:90%;max-width:380px;box-shadow:var(--shadow-lg);border:1px solid #ffffff14}.modal-title[data-v-7aae424c]{font-size:var(--text-lg);color:var(--color-text-primary);margin-bottom:var(--space-6);text-align:center;font-weight:600}.password-field[data-v-7aae424c]{margin-bottom:var(--space-6)}.password-input[data-v-7aae424c]{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-base);transition:border-color var(--transition-fast);background:#ffffff0d;border:1px solid #ffffff1f;outline:none;font-family:inherit}.password-input[data-v-7aae424c]::placeholder{color:var(--color-text-tertiary)}.password-input[data-v-7aae424c]:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px #d4a57426}.password-input.error[data-v-7aae424c]{border-color:#e74c3c;animation:.4s shake-7aae424c}@keyframes shake-7aae424c{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.error-msg[data-v-7aae424c]{margin-top:var(--space-2);font-size:var(--text-sm);color:#e74c3c}.modal-actions[data-v-7aae424c]{gap:var(--space-3);justify-content:flex-end;display:flex}.btn-cancel[data-v-7aae424c],.btn-confirm[data-v-7aae424c]{padding:var(--space-2) var(--space-6);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);font-weight:500}.btn-cancel[data-v-7aae424c]{color:var(--color-text-secondary);background:0 0;border:1px solid #ffffff1f}.btn-cancel[data-v-7aae424c]:hover{background:#ffffff0d}.btn-confirm[data-v-7aae424c]{background:var(--color-accent);color:#0d0d0d;border:none}.btn-confirm[data-v-7aae424c]:hover{background:var(--color-accent-hover)}.lightbox-overlay[data-v-7aae424c]{z-index:10001;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-close[data-v-7aae424c]{top:var(--space-4);right:var(--space-4);color:#fff9;cursor:pointer;padding:var(--space-2);transition:color var(--transition-fast);background:0 0;border:none;position:absolute}.lightbox-close[data-v-7aae424c]:hover{color:#fff}.lightbox-arrow[data-v-7aae424c]{color:#ffffff80;cursor:pointer;padding:var(--space-3);transition:color var(--transition-fast);background:0 0;border:none;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-arrow[data-v-7aae424c]:hover{color:#fff}.lightbox-prev[data-v-7aae424c]{left:var(--space-4)}.lightbox-next[data-v-7aae424c]{right:var(--space-4)}.lightbox-img-wrapper[data-v-7aae424c]{align-items:center;max-width:85vw;max-height:85vh;display:flex}.lightbox-img[data-v-7aae424c]{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:75vh}.modal-enter-active[data-v-7aae424c],.modal-leave-active[data-v-7aae424c]{transition:opacity var(--transition-normal)}.modal-enter-from[data-v-7aae424c],.modal-leave-to[data-v-7aae424c]{opacity:0}.modal-enter-active .modal-content[data-v-7aae424c]{animation:modal-in-7aae424c var(--transition-normal) ease}.modal-leave-active .modal-content[data-v-7aae424c]{animation:modal-out-7aae424c var(--transition-fast) ease}@keyframes modal-in-7aae424c{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modal-out-7aae424c{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(10px)scale(.98)}}.lightbox-enter-active[data-v-7aae424c],.lightbox-leave-active[data-v-7aae424c]{transition:opacity var(--transition-normal)}.lightbox-enter-from[data-v-7aae424c],.lightbox-leave-to[data-v-7aae424c]{opacity:0}.site-footer[data-v-960d5d3f]{padding:var(--space-12) 0;border-top:1px solid #ffffff0d}.footer-inner[data-v-960d5d3f]{text-align:center}.footer-running[data-v-960d5d3f]{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-2);font-family:var(--font-mono)}.footer-copyright[data-v-960d5d3f]{font-size:var(--text-xs);color:var(--color-text-tertiary)}.footer-icp[data-v-960d5d3f]{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary)}.footer-icp a[data-v-960d5d3f]{color:inherit;text-decoration:none}.footer-icp a[data-v-960d5d3f]:hover{color:var(--color-text-secondary);text-decoration:underline}.go-top[data-v-88a04ba9]{bottom:var(--space-8);right:var(--space-8);padding:var(--space-3) var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);z-index:100;border:1px solid #ffffff14;flex-direction:column;align-items:center;gap:2px;display:flex;position:fixed}.go-top[data-v-88a04ba9]:hover{background:var(--color-bg-card-hover);color:var(--color-accent);border-color:#d4a57433}.go-top-percent[data-v-88a04ba9]{font-size:10px;font-family:var(--font-mono);opacity:.6}.fade-enter-active[data-v-88a04ba9],.fade-leave-active[data-v-88a04ba9]{transition:opacity var(--transition-fast)}.fade-enter-from[data-v-88a04ba9],.fade-leave-to[data-v-88a04ba9]{opacity:0}@media (width<=640px){.go-top[data-v-88a04ba9]{bottom:var(--space-4);right:var(--space-4)}}.page-reveal[data-v-df02ef97]{z-index:10000;pointer-events:none;display:flex;position:fixed;inset:0}.reveal-half[data-v-df02ef97]{background:var(--color-bg-primary);width:50%;height:100%;position:relative}.reveal-half--left[data-v-df02ef97]{padding-right:var(--space-4);justify-content:flex-end;align-items:center;display:flex}.reveal-logo[data-v-df02ef97]{font-size:var(--text-2xl);color:var(--color-accent);letter-spacing:.1em;font-weight:700}.scroll-progress[data-v-a16a28e1]{z-index:300;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.scroll-progress-bar[data-v-a16a28e1]{background:linear-gradient(90deg, var(--color-accent), var(--color-accent-hover));border-radius:0 2px 2px 0;height:100%;transition:width 50ms linear;box-shadow:0 0 8px #d4a57466}:root{--color-bg-primary:#0d0d0d;--color-bg-secondary:#1a1a1a;--color-bg-card:#ffffff0a;--color-bg-card-hover:#ffffff12;--color-text-primary:#f0f0f0;--color-text-secondary:#888;--color-text-tertiary:#555;--color-accent:#d4a574;--color-accent-hover:#e8c49a;--color-accent-dim:#d4a57426;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-hero:clamp(40px, 8vw, 72px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-glow:0 0 30px #d4a5741a;--transition-fast:.15s ease;--transition-normal:.3s ease;--transition-slow:.5s ease;--content-max-width:1140px;--section-padding:var(--space-20)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);line-height:1.6}@media (hover:hover){body,body a,body button,body [role=button]{cursor:none}}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-text-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.container{width:100%;max-width:var(--content-max-width);padding:0 var(--space-6);margin:0 auto}.section{padding:var(--section-padding) 0}.section+.section{border-top:1px solid #ffffff0d}.app{min-height:100vh}
