@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=DM+Sans:wght@300;400;500&display=swap";@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=DM+Sans:wght@300;400;500&display=swap";.sidebar[data-v-867a22b6]{background:#fafaf9;border-right:1px solid #ece9e4;flex-direction:column;flex-shrink:0;width:220px;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo[data-v-867a22b6]{justify-content:space-between;align-items:center;padding:1.25rem 1.25rem 1rem;display:flex}.logo-text[data-v-867a22b6]{color:#1a1a18;font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;text-decoration:none}.logo-dot[data-v-867a22b6]{color:#3a7d5a}.sidebar-close[data-v-867a22b6]{cursor:pointer;color:#78766f;background:0 0;border:none;padding:4px;display:none}.sidebar-user[data-v-867a22b6]{align-items:center;gap:10px;padding:0 1.25rem 1rem;display:flex}.user-avatar[data-v-867a22b6]{color:#fafaf9;background:#1a1a18;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:500;display:flex}.user-name[data-v-867a22b6]{color:#1a1a18;font-size:13px;font-weight:500}.user-role[data-v-867a22b6]{color:#9c9a93;margin-top:1px;font-size:11px}.sidebar-divider[data-v-867a22b6]{background:#ece9e4;height:1px;margin:0 1.25rem}.sidebar-nav[data-v-867a22b6]{flex-direction:column;flex:1;gap:2px;padding:1rem .75rem;display:flex}.nav-group-label[data-v-867a22b6]{color:#b0ada6;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;padding:0 .5rem;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500}.nav-item[data-v-867a22b6]{color:#78766f;border-radius:7px;align-items:center;gap:9px;padding:8px 10px;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-item[data-v-867a22b6]:hover{color:#1a1a18;background:#f0efed}.nav-item--active[data-v-867a22b6]{color:#1a1a18;background:#f0efed;font-weight:500}.nav-badge[data-v-867a22b6]{color:#fff;background:#e55050;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:500}.sidebar-footer[data-v-867a22b6]{border-top:1px solid #ece9e4;padding:.75rem}.logout-btn[data-v-867a22b6]{color:#78766f;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;width:100%;padding:8px 10px;font-family:DM Sans,sans-serif;font-size:13px;transition:background .15s,color .15s;display:flex}.logout-btn[data-v-867a22b6]:hover{color:#e55050;background:#fff0f0}@media (width<=768px){.sidebar[data-v-867a22b6]{z-index:50;transition:left .25s;position:fixed;top:0;bottom:0;left:-220px}.sidebar--open[data-v-867a22b6]{left:0}.sidebar-close[data-v-867a22b6]{display:flex}}.admin-layout[data-v-1a9e7251]{background:#f5f4f2;min-height:100vh;font-family:DM Sans,sans-serif;display:flex}.admin-main[data-v-1a9e7251]{flex-direction:column;flex:1;min-width:0;display:flex}.topbar[data-v-1a9e7251]{z-index:10;background:#fafaf9;border-bottom:1px solid #ece9e4;align-items:center;gap:1rem;height:56px;padding:0 2rem;display:flex;position:sticky;top:0}.topbar-burger[data-v-1a9e7251]{cursor:pointer;color:#78766f;background:0 0;border:none;padding:4px;display:none}.topbar-title[data-v-1a9e7251]{color:#1a1a18;flex:1;font-size:14px;font-weight:500}.topbar-link[data-v-1a9e7251]{color:#9c9a93;font-size:12px;text-decoration:none;transition:color .18s}.topbar-link[data-v-1a9e7251]:hover{color:#1a1a18}.admin-content[data-v-1a9e7251]{flex:1;padding:2rem}.sidebar-overlay[data-v-1a9e7251]{z-index:40;background:#0000004d;display:none;position:fixed;inset:0}@media (width<=768px){.topbar-burger[data-v-1a9e7251]{display:flex}.sidebar-overlay[data-v-1a9e7251]{display:block}.admin-content[data-v-1a9e7251]{padding:1.25rem}}.page[data-v-b1e4432e]{font-family:DM Sans,sans-serif}.page-header[data-v-b1e4432e]{margin-bottom:1.5rem}.page-title[data-v-b1e4432e]{color:#1a1a18;font-size:18px;font-weight:500}.form-card[data-v-b1e4432e]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;flex-direction:column;gap:1.5rem;max-width:640px;padding:2rem;display:flex}.field[data-v-b1e4432e]{flex-direction:column;gap:6px;display:flex}.field-label[data-v-b1e4432e]{color:#4a4a45;font-size:13px;font-weight:500}.field-input[data-v-b1e4432e]{color:#1a1a18;background:#fff;border:1px solid #e5e5e3;border-radius:8px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .18s}.field-input[data-v-b1e4432e]:focus{border-color:#1a1a18}.field-input--error[data-v-b1e4432e]{border-color:#e55050}.field-textarea[data-v-b1e4432e]{resize:vertical;min-height:100px}.field-error[data-v-b1e4432e]{color:#e55050;font-size:12px}.image-upload[data-v-b1e4432e]{cursor:pointer;background:#f5f4f2;border:1px dashed #d6d3cc;border-radius:50%;justify-content:center;align-items:center;width:160px;height:160px;transition:border-color .18s;display:flex;overflow:hidden}.image-upload[data-v-b1e4432e]:hover{border-color:#1a1a18}.image-preview[data-v-b1e4432e]{object-fit:cover;width:100%;height:100%}.image-placeholder[data-v-b1e4432e]{color:#9c9a93;text-align:center;flex-direction:column;align-items:center;gap:6px;padding:1rem;display:flex}.placeholder-text[data-v-b1e4432e]{font-size:12px}.placeholder-sub[data-v-b1e4432e]{color:#b0ada6;font-size:11px}.file-hidden[data-v-b1e4432e]{display:none}.tags-wrap[data-v-b1e4432e]{background:#fff;border:1px solid #e5e5e3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:8px 12px;display:flex}.tag[data-v-b1e4432e]{color:#fafaf9;background:#1a1a18;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;display:inline-flex}.tag-remove[data-v-b1e4432e]{color:#fafaf9;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.tag-remove[data-v-b1e4432e]:hover{opacity:1}.tag-input[data-v-b1e4432e]{color:#1a1a18;background:0 0;border:none;outline:none;min-width:140px;font-size:13px}.cv-wrap[data-v-b1e4432e]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.cv-link[data-v-b1e4432e]{color:#1a1a18;font-size:13px;text-decoration:underline}.cv-file[data-v-b1e4432e]{color:#78766f;font-size:13px}.form-actions[data-v-b1e4432e]{justify-content:flex-end;display:flex}.btn-primary[data-v-b1e4432e]{color:#fafaf9;cursor:pointer;background:#1a1a18;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 24px;font-size:13px;font-weight:500;transition:background .18s;display:inline-flex}.btn-primary[data-v-b1e4432e]:hover:not(:disabled){background:#333330}.btn-primary[data-v-b1e4432e]:disabled{opacity:.6;cursor:not-allowed}.btn-ghost[data-v-b1e4432e]{color:#78766f;cursor:pointer;background:0 0;border:1px solid #e5e5e3;border-radius:8px;align-items:center;padding:8px 16px;font-size:13px;text-decoration:none;transition:border-color .18s;display:inline-flex}.btn-ghost[data-v-b1e4432e]:hover{border-color:#b0ada6}.spinner[data-v-b1e4432e]{border:2px solid #fafaf94d;border-top-color:#fafaf9;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin-b1e4432e}@keyframes spin-b1e4432e{to{transform:rotate(360deg)}}.page[data-v-d5bfe5c4]{font-family:DM Sans,sans-serif}.page-header[data-v-d5bfe5c4]{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.page-title[data-v-d5bfe5c4]{color:#1a1a18;margin-bottom:3px;font-size:18px;font-weight:500}.page-sub[data-v-d5bfe5c4]{color:#9c9a93;font-size:13px}.table-wrap[data-v-d5bfe5c4]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;overflow:hidden}.table[data-v-d5bfe5c4]{border-collapse:collapse;width:100%}.table thead tr[data-v-d5bfe5c4]{border-bottom:1px solid #ece9e4}.table th[data-v-d5bfe5c4]{text-align:left;color:#9c9a93;letter-spacing:.06em;text-transform:uppercase;padding:11px 16px;font-size:11px;font-weight:500}.table td[data-v-d5bfe5c4]{vertical-align:middle;border-bottom:1px solid #f5f4f2;padding:14px 16px}.table tbody tr:last-child td[data-v-d5bfe5c4]{border-bottom:none}.table tbody tr:hover td[data-v-d5bfe5c4]{background:#fdfcfb}.contact-name[data-v-d5bfe5c4]{color:#1a1a18;margin-bottom:2px;font-size:13px;font-weight:500}.contact-email[data-v-d5bfe5c4]{color:#9c9a93;font-size:12px}.contact-subject[data-v-d5bfe5c4]{color:#1a1a18;margin-bottom:2px;font-size:13px;font-weight:500}.contact-preview[data-v-d5bfe5c4]{color:#9c9a93;font-size:12px}.date-cell[data-v-d5bfe5c4]{color:#9c9a93;white-space:nowrap;font-size:13px}.actions[data-v-d5bfe5c4]{gap:6px;display:flex}.btn-delete[data-v-d5bfe5c4]{color:#e55050;cursor:pointer;background:0 0;border:1px solid #fce8e8;border-radius:6px;padding:5px 12px;font-family:DM Sans,sans-serif;font-size:12px;transition:background .15s}.btn-delete[data-v-d5bfe5c4]:hover{background:#fff0f0}.empty[data-v-d5bfe5c4]{text-align:center;padding:4rem}.empty p[data-v-d5bfe5c4]{color:#9c9a93;font-size:14px}.page[data-v-7164948f]{font-family:DM Sans,sans-serif}.page-header[data-v-7164948f]{margin-bottom:2rem}.page-title[data-v-7164948f]{color:#1a1a18;margin-bottom:3px;font-size:18px;font-weight:500}.page-sub[data-v-7164948f]{color:#9c9a93;font-size:13px}.stats-grid[data-v-7164948f]{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2.5rem;display:grid}.stat-card[data-v-7164948f]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;flex-direction:column;gap:12px;padding:1.5rem;display:flex}.stat-icon[data-v-7164948f]{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-icon--projects[data-v-7164948f]{color:#3a7d5a;background:#edf7f2}.stat-icon--skills[data-v-7164948f]{color:#3b82f6;background:#eff6ff}.stat-icon--messages[data-v-7164948f]{color:#d97706;background:#fef9ec}.stat-value[data-v-7164948f]{color:#1a1a18;margin-bottom:4px;font-size:2rem;font-weight:600;line-height:1}.stat-label[data-v-7164948f]{color:#9c9a93;font-size:13px}.stat-breakdown[data-v-7164948f]{flex-wrap:wrap;gap:6px;display:flex}.breakdown-item[data-v-7164948f]{color:#9c9a93;background:#f5f4f2;border-radius:20px;padding:3px 8px;font-size:11px}.breakdown-item--green[data-v-7164948f]{color:#3a7d5a;background:#edf7f2}.breakdown-item--yellow[data-v-7164948f]{color:#d97706;background:#fef9ec}.quick-title[data-v-7164948f]{color:#9c9a93;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-size:12px;font-weight:500}.quick-grid[data-v-7164948f]{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.quick-card[data-v-7164948f]{background:#fafaf9;border:1px solid #ece9e4;border-radius:10px;align-items:center;padding:1rem 1.25rem;text-decoration:none;transition:border-color .18s,box-shadow .18s;display:flex}.quick-card[data-v-7164948f]:hover{border-color:#d6d3cc;box-shadow:0 2px 8px #0000000d}.quick-label[data-v-7164948f]{color:#1a1a18;font-size:13px;font-weight:500}@media (width<=768px){.stats-grid[data-v-7164948f]{grid-template-columns:1fr}.quick-grid[data-v-7164948f]{grid-template-columns:repeat(2,1fr)}}.page[data-v-98f0fe6a]{max-width:680px;font-family:DM Sans,sans-serif}.page-header[data-v-98f0fe6a]{margin-bottom:1.5rem}.back-link[data-v-98f0fe6a]{color:#9c9a93;margin-bottom:8px;font-size:13px;text-decoration:none;transition:color .18s;display:inline-block}.back-link[data-v-98f0fe6a]:hover{color:#1a1a18}.page-title[data-v-98f0fe6a]{color:#1a1a18;font-size:18px;font-weight:500}.form-card[data-v-98f0fe6a]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;flex-direction:column;gap:20px;padding:2rem;display:flex}.form-row[data-v-98f0fe6a]{grid-template-columns:1fr 1fr;gap:16px;display:grid}.field[data-v-98f0fe6a]{flex-direction:column;gap:6px;display:flex}.field-label[data-v-98f0fe6a]{color:#4a4a45;font-size:13px;font-weight:500}.field-input[data-v-98f0fe6a]{color:#1a1a18;background:#fff;border:1px solid #e5e5e3;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .18s,box-shadow .18s}.field-input[data-v-98f0fe6a]:focus{border-color:#1a1a18;box-shadow:0 0 0 3px #1a1a180f}.field-input--error[data-v-98f0fe6a]{border-color:#e55050}.field-textarea[data-v-98f0fe6a]{resize:vertical;min-height:100px}.field-error[data-v-98f0fe6a]{color:#e55050;font-size:12px}.field-hint[data-v-98f0fe6a]{color:#b0ada6;font-size:11px}.image-upload[data-v-98f0fe6a]{cursor:pointer;border:1.5px dashed #dddbd6;border-radius:10px;justify-content:center;align-items:center;min-height:160px;transition:border-color .18s;display:flex;overflow:hidden}.image-upload[data-v-98f0fe6a]:hover{border-color:#b0ada6}.image-preview[data-v-98f0fe6a]{object-fit:cover;width:100%;height:220px;display:block}.image-placeholder[data-v-98f0fe6a]{color:#b0ada6;flex-direction:column;align-items:center;gap:8px;padding:2rem;display:flex}.placeholder-text[data-v-98f0fe6a]{color:#78766f;font-size:13px;font-weight:500}.placeholder-sub[data-v-98f0fe6a]{font-size:12px}.file-hidden[data-v-98f0fe6a]{display:none}.tags-input[data-v-98f0fe6a]{cursor:text;background:#fff;border:1px solid #e5e5e3;border-radius:8px;flex-wrap:wrap;gap:6px;min-height:44px;padding:8px 10px;display:flex}.tag-chip[data-v-98f0fe6a]{color:#fafaf9;background:#1a1a18;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.tag-remove[data-v-98f0fe6a]{color:#fafaf9;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:14px;line-height:1;transition:opacity .15s}.tag-remove[data-v-98f0fe6a]:hover{opacity:1}.tag-field[data-v-98f0fe6a]{color:#1a1a18;background:0 0;border:none;outline:none;flex:1;min-width:120px;font-family:DM Sans,sans-serif;font-size:13px}.toggle-label[data-v-98f0fe6a]{cursor:pointer;background:#fff;border:1px solid #e5e5e3;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.toggle-check[data-v-98f0fe6a]{cursor:pointer;width:16px;height:16px}.toggle-text[data-v-98f0fe6a]{color:#4a4a45;font-size:14px}.form-actions[data-v-98f0fe6a]{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.btn-primary[data-v-98f0fe6a]{color:#fafaf9;cursor:pointer;background:#1a1a18;border:none;border-radius:7px;align-items:center;gap:8px;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-flex}.btn-primary[data-v-98f0fe6a]:hover:not(:disabled){background:#333330}.btn-primary[data-v-98f0fe6a]:disabled{opacity:.6;cursor:not-allowed}.btn-ghost[data-v-98f0fe6a]{color:#78766f;background:0 0;border:1px solid #e5e5e3;border-radius:7px;align-items:center;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:none;transition:border-color .15s;display:inline-flex}.btn-ghost[data-v-98f0fe6a]:hover{border-color:#b0ada6}.spinner[data-v-98f0fe6a]{border:2px solid #fafaf94d;border-top-color:#fafaf9;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin-98f0fe6a}@keyframes spin-98f0fe6a{to{transform:rotate(360deg)}}@media (width<=500px){.form-row[data-v-98f0fe6a]{grid-template-columns:1fr}.form-card[data-v-98f0fe6a]{padding:1.25rem}}.page[data-v-52c7334d]{max-width:680px;font-family:DM Sans,sans-serif}.page-header[data-v-52c7334d]{margin-bottom:1.5rem}.back-link[data-v-52c7334d]{color:#9c9a93;margin-bottom:8px;font-size:13px;text-decoration:none;transition:color .18s;display:inline-block}.back-link[data-v-52c7334d]:hover{color:#1a1a18}.page-title[data-v-52c7334d]{color:#1a1a18;font-size:18px;font-weight:500}.form-card[data-v-52c7334d]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;flex-direction:column;gap:20px;padding:2rem;display:flex}.form-row[data-v-52c7334d]{grid-template-columns:1fr 1fr;gap:16px;display:grid}.field[data-v-52c7334d]{flex-direction:column;gap:6px;display:flex}.field-label[data-v-52c7334d]{color:#4a4a45;font-size:13px;font-weight:500}.field-input[data-v-52c7334d]{color:#1a1a18;background:#fff;border:1px solid #e5e5e3;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .18s,box-shadow .18s}.field-input[data-v-52c7334d]:focus{border-color:#1a1a18;box-shadow:0 0 0 3px #1a1a180f}.field-input--error[data-v-52c7334d]{border-color:#e55050}.field-textarea[data-v-52c7334d]{resize:vertical;min-height:100px}.field-error[data-v-52c7334d]{color:#e55050;font-size:12px}.field-hint[data-v-52c7334d]{color:#b0ada6;font-size:11px}.image-upload[data-v-52c7334d]{cursor:pointer;border:1.5px dashed #dddbd6;border-radius:10px;justify-content:center;align-items:center;min-height:160px;transition:border-color .18s;display:flex;overflow:hidden}.image-upload[data-v-52c7334d]:hover{border-color:#b0ada6}.image-preview[data-v-52c7334d]{object-fit:cover;width:100%;height:220px;display:block}.image-placeholder[data-v-52c7334d]{color:#b0ada6;flex-direction:column;align-items:center;gap:8px;padding:2rem;display:flex}.placeholder-text[data-v-52c7334d]{color:#78766f;font-size:13px;font-weight:500}.placeholder-sub[data-v-52c7334d]{font-size:12px}.file-hidden[data-v-52c7334d]{display:none}.tags-input[data-v-52c7334d]{background:#fff;border:1px solid #e5e5e3;border-radius:8px;flex-wrap:wrap;gap:6px;min-height:44px;padding:8px 10px;display:flex}.tag-chip[data-v-52c7334d]{color:#fafaf9;background:#1a1a18;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.tag-remove[data-v-52c7334d]{color:#fafaf9;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.tag-remove[data-v-52c7334d]:hover{opacity:1}.tag-field[data-v-52c7334d]{color:#1a1a18;background:0 0;border:none;outline:none;flex:1;min-width:120px;font-family:DM Sans,sans-serif;font-size:13px}.toggle-label[data-v-52c7334d]{cursor:pointer;background:#fff;border:1px solid #e5e5e3;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.toggle-check[data-v-52c7334d]{cursor:pointer;width:16px;height:16px}.toggle-text[data-v-52c7334d]{color:#4a4a45;font-size:14px}.form-actions[data-v-52c7334d]{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.btn-primary[data-v-52c7334d]{color:#fafaf9;cursor:pointer;background:#1a1a18;border:none;border-radius:7px;align-items:center;gap:8px;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-flex}.btn-primary[data-v-52c7334d]:hover:not(:disabled){background:#333330}.btn-primary[data-v-52c7334d]:disabled{opacity:.6;cursor:not-allowed}.btn-ghost[data-v-52c7334d]{color:#78766f;background:0 0;border:1px solid #e5e5e3;border-radius:7px;align-items:center;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:none;transition:border-color .15s;display:inline-flex}.btn-ghost[data-v-52c7334d]:hover{border-color:#b0ada6}.spinner[data-v-52c7334d]{border:2px solid #fafaf94d;border-top-color:#fafaf9;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin-52c7334d}@keyframes spin-52c7334d{to{transform:rotate(360deg)}}@media (width<=500px){.form-row[data-v-52c7334d]{grid-template-columns:1fr}.form-card[data-v-52c7334d]{padding:1.25rem}}.page[data-v-101f5653]{font-family:DM Sans,sans-serif}.page-header[data-v-101f5653]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title[data-v-101f5653]{color:#1a1a18;margin-bottom:3px;font-size:18px;font-weight:500}.page-sub[data-v-101f5653]{color:#9c9a93;font-size:13px}.btn-primary[data-v-101f5653]{color:#fafaf9;white-space:nowrap;background:#1a1a18;border-radius:7px;align-items:center;padding:9px 18px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-flex}.btn-primary[data-v-101f5653]:hover{background:#333330}.table-wrap[data-v-101f5653]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;overflow:hidden}.table[data-v-101f5653]{border-collapse:collapse;width:100%}.table thead tr[data-v-101f5653]{border-bottom:1px solid #ece9e4}.table th[data-v-101f5653]{text-align:left;color:#9c9a93;letter-spacing:.06em;text-transform:uppercase;padding:11px 16px;font-size:11px;font-weight:500}.table td[data-v-101f5653]{vertical-align:middle;border-bottom:1px solid #f5f4f2;padding:14px 16px}.table tbody tr:last-child td[data-v-101f5653]{border-bottom:none}.table tbody tr:hover td[data-v-101f5653]{background:#fdfcfb}.project-cell[data-v-101f5653]{align-items:center;gap:12px;display:flex}.project-thumb[data-v-101f5653]{background:#f0efed;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:36px;display:flex;overflow:hidden}.thumb-img[data-v-101f5653]{object-fit:cover;width:100%;height:100%}.thumb-placeholder[data-v-101f5653]{color:#c0bdb5;font-size:16px;font-weight:600}.project-title[data-v-101f5653]{color:#1a1a18;margin-bottom:2px;font-size:13px;font-weight:500}.project-desc[data-v-101f5653]{color:#9c9a93;font-size:12px}.tags-cell[data-v-101f5653]{flex-wrap:wrap;gap:4px;display:flex}.tag[data-v-101f5653]{color:#78766f;background:#f5f4f2;border:1px solid #e5e5e3;border-radius:4px;padding:2px 7px;font-size:11px}.toggle[data-v-101f5653]{color:#9c9a93;cursor:pointer;background:#f5f4f2;border:1px solid #e5e5e3;border-radius:20px;padding:3px 10px;font-family:DM Sans,sans-serif;font-size:12px;transition:all .18s}.toggle--on[data-v-101f5653]{color:#3a7d5a;background:#edf7f2;border-color:#c6e8d6}.order-cell[data-v-101f5653]{color:#9c9a93;text-align:center;font-size:13px}.actions[data-v-101f5653]{gap:6px;display:flex}.btn-edit[data-v-101f5653]{color:#4a4a45;background:#f0efed;border-radius:6px;padding:5px 12px;font-family:DM Sans,sans-serif;font-size:12px;text-decoration:none;transition:background .15s}.btn-edit[data-v-101f5653]:hover{background:#e5e5e3}.btn-delete[data-v-101f5653]{color:#e55050;cursor:pointer;background:0 0;border:1px solid #fce8e8;border-radius:6px;padding:5px 12px;font-family:DM Sans,sans-serif;font-size:12px;transition:background .15s}.btn-delete[data-v-101f5653]:hover{background:#fff0f0}.empty[data-v-101f5653]{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:4rem;display:flex}.empty p[data-v-101f5653]{color:#9c9a93;font-size:14px}.modal-overlay[data-v-101f5653]{z-index:100;background:#0000004d;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal[data-v-101f5653]{background:#fafaf9;border:1px solid #ece9e4;border-radius:14px;width:100%;max-width:400px;padding:2rem}.modal-title[data-v-101f5653]{color:#1a1a18;margin-bottom:8px;font-size:16px;font-weight:500}.modal-text[data-v-101f5653]{color:#78766f;margin-bottom:1.5rem;font-size:14px;line-height:1.6}.modal-actions[data-v-101f5653]{justify-content:flex-end;gap:8px;display:flex}.btn-ghost[data-v-101f5653]{color:#78766f;cursor:pointer;background:0 0;border:1px solid #e5e5e3;border-radius:7px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:13px;transition:border-color .15s}.btn-ghost[data-v-101f5653]:hover{border-color:#b0ada6}.btn-danger[data-v-101f5653]{color:#fff;cursor:pointer;background:#e55050;border:none;border-radius:7px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:13px;transition:background .15s}.btn-danger[data-v-101f5653]:hover{background:#cc3c3c}.page[data-v-a6ed56c8]{max-width:680px;font-family:DM Sans,sans-serif}.page-header[data-v-a6ed56c8]{margin-bottom:1.5rem}.back-link[data-v-a6ed56c8]{color:#9c9a93;margin-bottom:8px;font-size:13px;text-decoration:none;transition:color .18s;display:inline-block}.back-link[data-v-a6ed56c8]:hover{color:#1a1a18}.page-title[data-v-a6ed56c8]{color:#1a1a18;font-size:18px;font-weight:500}.form-card[data-v-a6ed56c8]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;flex-direction:column;gap:20px;padding:2rem;display:flex}.form-row[data-v-a6ed56c8]{grid-template-columns:1fr 1fr;gap:16px;display:grid}.field[data-v-a6ed56c8]{flex-direction:column;gap:6px;display:flex}.field-label[data-v-a6ed56c8]{color:#4a4a45;font-size:13px;font-weight:500}.field-input[data-v-a6ed56c8]{color:#1a1a18;background:#fff;border:1px solid #e5e5e3;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .18s,box-shadow .18s}.field-input[data-v-a6ed56c8]:focus{border-color:#1a1a18;box-shadow:0 0 0 3px #1a1a180f}.field-input--error[data-v-a6ed56c8]{border-color:#e55050}.field-textarea[data-v-a6ed56c8]{resize:vertical;min-height:100px}.field-error[data-v-a6ed56c8]{color:#e55050;font-size:12px}.field-hint[data-v-a6ed56c8]{color:#b0ada6;font-size:11px}.image-upload[data-v-a6ed56c8]{cursor:pointer;border:1.5px dashed #dddbd6;border-radius:10px;justify-content:center;align-items:center;min-height:160px;transition:border-color .18s;display:flex;overflow:hidden}.image-upload[data-v-a6ed56c8]:hover{border-color:#b0ada6}.image-preview[data-v-a6ed56c8]{object-fit:cover;width:100%;height:220px;display:block}.image-placeholder[data-v-a6ed56c8]{color:#b0ada6;flex-direction:column;align-items:center;gap:8px;padding:2rem;display:flex}.placeholder-text[data-v-a6ed56c8]{color:#78766f;font-size:13px;font-weight:500}.placeholder-sub[data-v-a6ed56c8]{font-size:12px}.file-hidden[data-v-a6ed56c8]{display:none}.form-actions[data-v-a6ed56c8]{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.btn-primary[data-v-a6ed56c8]{color:#fafaf9;cursor:pointer;background:#1a1a18;border:none;border-radius:7px;align-items:center;gap:8px;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-flex}.btn-primary[data-v-a6ed56c8]:hover:not(:disabled){background:#333330}.btn-primary[data-v-a6ed56c8]:disabled{opacity:.6;cursor:not-allowed}.btn-ghost[data-v-a6ed56c8]{color:#78766f;background:0 0;border:1px solid #e5e5e3;border-radius:7px;align-items:center;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:none;transition:border-color .15s;display:inline-flex}.btn-ghost[data-v-a6ed56c8]:hover{border-color:#b0ada6}.spinner[data-v-a6ed56c8]{border:2px solid #fafaf94d;border-top-color:#fafaf9;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin-a6ed56c8}@keyframes spin-a6ed56c8{to{transform:rotate(360deg)}}@media (width<=500px){.form-row[data-v-a6ed56c8]{grid-template-columns:1fr}.form-card[data-v-a6ed56c8]{padding:1.25rem}}.page[data-v-6511a723]{max-width:680px;font-family:DM Sans,sans-serif}.page-header[data-v-6511a723]{margin-bottom:1.5rem}.back-link[data-v-6511a723]{color:#9c9a93;margin-bottom:8px;font-size:13px;text-decoration:none;transition:color .18s;display:inline-block}.back-link[data-v-6511a723]:hover{color:#1a1a18}.page-title[data-v-6511a723]{color:#1a1a18;font-size:18px;font-weight:500}.form-card[data-v-6511a723]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;flex-direction:column;gap:20px;padding:2rem;display:flex}.form-row[data-v-6511a723]{grid-template-columns:1fr 1fr;gap:16px;display:grid}.field[data-v-6511a723]{flex-direction:column;gap:6px;display:flex}.field-label[data-v-6511a723]{color:#4a4a45;font-size:13px;font-weight:500}.field-input[data-v-6511a723]{color:#1a1a18;background:#fff;border:1px solid #e5e5e3;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .18s,box-shadow .18s}.field-input[data-v-6511a723]:focus{border-color:#1a1a18;box-shadow:0 0 0 3px #1a1a180f}.field-input--error[data-v-6511a723]{border-color:#e55050}.field-textarea[data-v-6511a723]{resize:vertical;min-height:100px}.field-error[data-v-6511a723]{color:#e55050;font-size:12px}.field-hint[data-v-6511a723]{color:#b0ada6;font-size:11px}.image-upload[data-v-6511a723]{cursor:pointer;border:1.5px dashed #dddbd6;border-radius:10px;justify-content:center;align-items:center;min-height:160px;transition:border-color .18s;display:flex;overflow:hidden}.image-upload[data-v-6511a723]:hover{border-color:#b0ada6}.image-preview[data-v-6511a723]{object-fit:cover;width:100%;height:220px;display:block}.image-placeholder[data-v-6511a723]{color:#b0ada6;flex-direction:column;align-items:center;gap:8px;padding:2rem;display:flex}.placeholder-text[data-v-6511a723]{color:#78766f;font-size:13px;font-weight:500}.placeholder-sub[data-v-6511a723]{font-size:12px}.file-hidden[data-v-6511a723]{display:none}.tags-input[data-v-6511a723]{background:#fff;border:1px solid #e5e5e3;border-radius:8px;flex-wrap:wrap;gap:6px;min-height:44px;padding:8px 10px;display:flex}.tag-chip[data-v-6511a723]{color:#fafaf9;background:#1a1a18;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.tag-remove[data-v-6511a723]{color:#fafaf9;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.tag-remove[data-v-6511a723]:hover{opacity:1}.tag-field[data-v-6511a723]{color:#1a1a18;background:0 0;border:none;outline:none;flex:1;min-width:120px;font-family:DM Sans,sans-serif;font-size:13px}.toggle-label[data-v-6511a723]{cursor:pointer;background:#fff;border:1px solid #e5e5e3;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.toggle-check[data-v-6511a723]{cursor:pointer;width:16px;height:16px}.toggle-text[data-v-6511a723]{color:#4a4a45;font-size:14px}.form-actions[data-v-6511a723]{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.btn-primary[data-v-6511a723]{color:#fafaf9;cursor:pointer;background:#1a1a18;border:none;border-radius:7px;align-items:center;gap:8px;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-flex}.btn-primary[data-v-6511a723]:hover:not(:disabled){background:#333330}.btn-primary[data-v-6511a723]:disabled{opacity:.6;cursor:not-allowed}.btn-ghost[data-v-6511a723]{color:#78766f;background:0 0;border:1px solid #e5e5e3;border-radius:7px;align-items:center;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:none;transition:border-color .15s;display:inline-flex}.btn-ghost[data-v-6511a723]:hover{border-color:#b0ada6}.spinner[data-v-6511a723]{border:2px solid #fafaf94d;border-top-color:#fafaf9;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin-6511a723}@keyframes spin-6511a723{to{transform:rotate(360deg)}}@media (width<=500px){.form-row[data-v-6511a723]{grid-template-columns:1fr}.form-card[data-v-6511a723]{padding:1.25rem}}.page[data-v-d5e0fcc4]{font-family:DM Sans,sans-serif}.page-header[data-v-d5e0fcc4]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title[data-v-d5e0fcc4]{color:#1a1a18;margin-bottom:3px;font-size:18px;font-weight:500}.page-sub[data-v-d5e0fcc4]{color:#9c9a93;font-size:13px}.btn-primary[data-v-d5e0fcc4]{color:#fafaf9;white-space:nowrap;background:#1a1a18;border-radius:7px;align-items:center;padding:9px 18px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-flex}.btn-primary[data-v-d5e0fcc4]:hover{background:#333330}.table-wrap[data-v-d5e0fcc4]{background:#fafaf9;border:1px solid #ece9e4;border-radius:12px;overflow:hidden}.table[data-v-d5e0fcc4]{border-collapse:collapse;width:100%}.table thead tr[data-v-d5e0fcc4]{border-bottom:1px solid #ece9e4}.table th[data-v-d5e0fcc4]{text-align:left;color:#9c9a93;letter-spacing:.06em;text-transform:uppercase;padding:11px 16px;font-size:11px;font-weight:500}.table th[data-v-d5e0fcc4]:nth-child(3){text-align:left}.table th[data-v-d5e0fcc4]:last-child{text-align:right}.table td[data-v-d5e0fcc4]{vertical-align:middle;border-bottom:1px solid #f5f4f2;padding:14px 16px}.table tbody tr:last-child td[data-v-d5e0fcc4]{border-bottom:none}.table tbody tr:hover td[data-v-d5e0fcc4]{background:#fdfcfb}.skill-cell[data-v-d5e0fcc4]{align-items:center;gap:12px;display:flex}.skill-thumb[data-v-d5e0fcc4]{background:#f0efed;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:36px;display:flex;overflow:hidden}.thumb-img[data-v-d5e0fcc4]{object-fit:cover;width:100%;height:100%}.thumb-placeholder[data-v-d5e0fcc4]{color:#c0bdb5;font-size:16px;font-weight:600}.skill-icon-img[data-v-d5e0fcc4]{object-fit:contain;border-radius:6px;width:36px;height:36px}.skill-title[data-v-d5e0fcc4]{color:#1a1a18;margin-bottom:2px;font-size:13px;font-weight:500}.skill-desc[data-v-d5e0fcc4]{color:#9c9a93;font-size:12px}.order-cell[data-v-d5e0fcc4]{color:#9c9a93;text-align:left;vertical-align:middle;font-size:13px}.actions[data-v-d5e0fcc4]{justify-content:flex-end;align-items:center;gap:6px;display:flex}.btn-edit[data-v-d5e0fcc4]{color:#4a4a45;background:#f0efed;border-radius:6px;padding:5px 12px;font-family:DM Sans,sans-serif;font-size:12px;text-decoration:none;transition:background .15s}.btn-edit[data-v-d5e0fcc4]:hover{background:#e5e5e3}.btn-delete[data-v-d5e0fcc4]{color:#e55050;cursor:pointer;background:0 0;border:1px solid #fce8e8;border-radius:6px;padding:5px 12px;font-family:DM Sans,sans-serif;font-size:12px;transition:background .15s}.btn-delete[data-v-d5e0fcc4]:hover{background:#fff0f0}.empty[data-v-d5e0fcc4]{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:4rem;display:flex}.empty p[data-v-d5e0fcc4]{color:#9c9a93;font-size:14px}.modal-overlay[data-v-d5e0fcc4]{z-index:100;background:#0000004d;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal[data-v-d5e0fcc4]{background:#fafaf9;border:1px solid #ece9e4;border-radius:14px;width:100%;max-width:400px;padding:2rem}.modal-title[data-v-d5e0fcc4]{color:#1a1a18;margin-bottom:8px;font-size:16px;font-weight:500}.modal-text[data-v-d5e0fcc4]{color:#78766f;margin-bottom:1.5rem;font-size:14px;line-height:1.6}.modal-actions[data-v-d5e0fcc4]{justify-content:flex-end;gap:8px;display:flex}.btn-ghost[data-v-d5e0fcc4]{color:#78766f;cursor:pointer;background:0 0;border:1px solid #e5e5e3;border-radius:7px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:13px;transition:border-color .15s}.btn-ghost[data-v-d5e0fcc4]:hover{border-color:#b0ada6}.btn-danger[data-v-d5e0fcc4]{color:#fff;cursor:pointer;background:#e55050;border:none;border-radius:7px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:13px;transition:background .15s}.btn-danger[data-v-d5e0fcc4]:hover{background:#cc3c3c}.login-page[data-v-b058306e]{background:#f5f4f2;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card[data-v-b058306e]{background:#fafaf9;border:1px solid #ece9e4;border-radius:16px;width:100%;max-width:400px;padding:2.5rem}.login-header[data-v-b058306e]{margin-bottom:2rem}.login-title[data-v-b058306e]{color:#1a1a18;margin-bottom:4px;font-family:Playfair Display,serif;font-size:1.75rem;font-weight:700}.dot[data-v-b058306e]{color:#3a7d5a}.login-sub[data-v-b058306e]{color:#9c9a93;font-family:DM Sans,sans-serif;font-size:13px}form[data-v-b058306e]{flex-direction:column;gap:16px;display:flex}.field[data-v-b058306e]{flex-direction:column;gap:6px;display:flex}.field-label[data-v-b058306e]{color:#4a4a45;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500}.field-input[data-v-b058306e]{color:#1a1a18;background:#fff;border:1px solid #e5e5e3;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .18s,box-shadow .18s}.field-input[data-v-b058306e]:focus{border-color:#1a1a18;box-shadow:0 0 0 3px #1a1a180f}.field-input--error[data-v-b058306e]{border-color:#e55050}.field-error[data-v-b058306e]{color:#e55050;font-family:DM Sans,sans-serif;font-size:12px}.remember[data-v-b058306e]{align-items:center;gap:8px;display:flex}.remember-check[data-v-b058306e]{cursor:pointer}.remember-label[data-v-b058306e]{color:#78766f;cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px}.btn-submit[data-v-b058306e]{color:#fafaf9;cursor:pointer;background:#1a1a18;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:11px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;transition:background .18s;display:flex}.btn-submit[data-v-b058306e]:hover:not(:disabled){background:#333330}.btn-submit[data-v-b058306e]:disabled{opacity:.6;cursor:not-allowed}.spinner[data-v-b058306e]{border:2px solid #fafaf94d;border-top-color:#fafaf9;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin-b058306e}@keyframes spin-b058306e{to{transform:rotate(360deg)}}.login-back[data-v-b058306e]{text-align:center;margin-top:1.5rem}.back-link[data-v-b058306e]{color:#9c9a93;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:none;transition:color .18s}.back-link[data-v-b058306e]:hover{color:#1a1a18}.layout[data-v-d24d598b]{background:#fafaf9;flex-direction:column;min-height:100vh;display:flex}main[data-v-d24d598b]{flex:1}.navbar[data-v-d24d598b]{background:#fafaf9;border-bottom:1px solid #ece9e4}.navbar-inner[data-v-d24d598b]{align-items:center;gap:2rem;max-width:1080px;height:64px;margin:0 auto;padding:0 2rem;display:flex}.navbar-logo[data-v-d24d598b]{color:#1a1a18;flex-shrink:0;font-family:Playfair Display,serif;font-size:1.25rem;font-weight:700;text-decoration:none}.logo-dot[data-v-d24d598b]{color:#3a7d5a}.navbar-links[data-v-d24d598b]{flex:1;align-items:center;gap:2px;display:flex}.nav-link[data-v-d24d598b]{color:#78766f;cursor:pointer;border-radius:6px;padding:6px 12px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:400;text-decoration:none;transition:color .18s;position:relative}.nav-link[data-v-d24d598b]:hover{color:#1a1a18}.nav-link--active[data-v-d24d598b]{color:#1a1a18;font-weight:500}.nav-indicator[data-v-d24d598b]{background:#1a1a18;border-radius:1px;width:0;height:2px;transition:width .2s;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.nav-link--active .nav-indicator[data-v-d24d598b]{width:16px}.navbar-cta[data-v-d24d598b]{color:#fafaf9;cursor:pointer;background:#1a1a18;border-radius:6px;flex-shrink:0;padding:8px 20px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s}.navbar-cta[data-v-d24d598b]:hover{background:#333330}.navbar-burger[data-v-d24d598b]{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;margin-left:auto;padding:4px;display:none}.burger-line[data-v-d24d598b]{transform-origin:50%;background:#1a1a18;border-radius:1px;width:22px;height:1.5px;transition:transform .2s,opacity .2s;display:block}.line-1--open[data-v-d24d598b]{transform:translateY(6.5px)rotate(45deg)}.line-2--open[data-v-d24d598b]{opacity:0}.line-3--open[data-v-d24d598b]{transform:translateY(-6.5px)rotate(-45deg)}.navbar-mobile[data-v-d24d598b]{border-top:1px solid #0000;flex-direction:column;gap:2px;max-height:0;padding:0 1.5rem;transition:max-height .25s,padding .25s;display:none;overflow:hidden}.navbar-mobile--open[data-v-d24d598b]{border-top-color:#ece9e4;max-height:300px;padding:10px 1.5rem 16px}.mobile-link[data-v-d24d598b]{color:#78766f;border-radius:6px;padding:8px 10px;font-family:DM Sans,sans-serif;font-size:14px;text-decoration:none;transition:background .15s,color .15s}.mobile-link[data-v-d24d598b]:hover,.mobile-link--active[data-v-d24d598b]{color:#1a1a18;background:#f0efed}.mobile-cta[data-v-d24d598b]{color:#fafaf9;text-align:center;background:#1a1a18;border-radius:6px;margin-top:8px;padding:10px;font-family:DM Sans,sans-serif;font-size:14px;text-decoration:none}.footer[data-v-d24d598b]{border-top:1px solid #ece9e4;padding:2rem}.footer-inner[data-v-d24d598b]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;max-width:1080px;margin:0 auto;display:flex}.footer-name[data-v-d24d598b]{color:#1a1a18;font-family:Playfair Display,serif;font-size:1rem;font-weight:700}.footer-copy[data-v-d24d598b]{color:#b0ada6;font-family:DM Sans,sans-serif;font-size:12px}@media (width<=680px){.navbar-links[data-v-d24d598b],.navbar-cta[data-v-d24d598b]{display:none}.navbar-burger[data-v-d24d598b],.navbar-mobile[data-v-d24d598b]{display:flex}}.hero[data-v-0f719955]{background:#fafaf9;align-items:center;min-height:90vh;padding:1rem 2rem;display:flex}.hero-inner[data-v-0f719955]{grid-template-columns:auto 1fr;align-items:center;gap:6rem;width:100%;max-width:1080px;margin:0 auto;display:grid}.hero-photo-wrap[data-v-0f719955]{flex-direction:column;align-items:center;gap:16px;animation:.6s both fadeIn-0f719955;display:flex}.hero-photo-ring[data-v-0f719955]{background:#f0efed;border:1.5px solid #e5e5e3;border-radius:50%;width:200px;height:200px;overflow:hidden}.hero-photo[data-v-0f719955]{object-fit:cover;width:100%;height:100%;display:block}.hero-initials[data-v-0f719955]{color:#1a1a18;justify-content:center;align-items:center;width:100%;height:100%;font-family:Playfair Display,serif;font-size:3.5rem;font-weight:700;display:flex}.hero-badge[data-v-0f719955]{color:#3a7d5a;letter-spacing:.02em;white-space:nowrap;background:#edf7f2;border:1px solid #c6e8d6;border-radius:20px;padding:4px 12px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:500}.hero-content[data-v-0f719955]{animation:.6s .12s both fadeIn-0f719955}.hero-label[data-v-0f719955]{color:#9c9a93;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:400}.hero-name[data-v-0f719955]{color:#1a1a18;letter-spacing:-.03em;margin-bottom:16px;font-family:Playfair Display,serif;font-size:clamp(3rem,6vw,5.5rem);font-weight:900;line-height:1}.hero-role[data-v-0f719955]{color:#4a4a45;margin-bottom:28px;font-family:DM Sans,sans-serif;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:300;line-height:1.4}.hero-role-muted[data-v-0f719955]{color:#c0bdb5;font-weight:300}.hero-bio[data-v-0f719955]{color:#78766f;max-width:500px;margin-bottom:20px;font-family:DM Sans,sans-serif;font-size:.975rem;font-weight:400;line-height:1.8}.hero-actions[data-v-0f719955]{flex-wrap:wrap;gap:12px;margin-bottom:40px;display:flex}.btn-primary[data-v-0f719955]{color:#fafaf9;letter-spacing:.02em;background:#1a1a18;border-radius:6px;padding:11px 26px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-block}.btn-primary[data-v-0f719955]:hover{background:#333330}.btn-ghost[data-v-0f719955]{color:#78766f;letter-spacing:.02em;background:0 0;border:1px solid #dddbd6;border-radius:6px;padding:11px 26px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:400;text-decoration:none;transition:border-color .18s,color .18s;display:inline-block}.btn-ghost[data-v-0f719955]:hover{color:#4a4a45;border-color:#b0ada6}.hero-stack[data-v-0f719955]{flex-wrap:wrap;gap:7px;display:flex}.hero-tag[data-v-0f719955]{color:#9c9a93;background:0 0;border:1px solid #e5e5e3;border-radius:4px;padding:4px 10px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:400}@keyframes fadeIn-0f719955{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.hero-inner[data-v-0f719955]{text-align:center;grid-template-columns:1fr;gap:2.5rem}.hero-photo-wrap[data-v-0f719955]{margin:0 auto}.hero-bio[data-v-0f719955]{margin-inline:auto}.hero-actions[data-v-0f719955],.hero-stack[data-v-0f719955]{justify-content:center}}.skills[data-v-5d537b12]{background:#f5f4f2;border-top:1px solid #ece9e4;border-bottom:1px solid #ece9e4;padding:4rem 2rem 8rem}.skills-inner[data-v-5d537b12]{max-width:1080px;margin:0 auto}.skills-header[data-v-5d537b12]{margin-bottom:3.5rem}.section-label[data-v-5d537b12]{color:#9c9a93;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500}.section-title[data-v-5d537b12]{color:#1a1a18;letter-spacing:-.02em;margin-bottom:12px;font-family:Playfair Display,serif;font-size:clamp(2rem,4vw,3rem);font-weight:700}.section-sub[data-v-5d537b12]{color:#78766f;max-width:440px;font-family:DM Sans,sans-serif;font-size:.95rem}.skills-grid[data-v-5d537b12]{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.skill-card[data-v-5d537b12]{background:#fafaf9;border:1px solid #ece9e4;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:1.25rem;transition:border-color .18s,box-shadow .18s;display:flex}.skill-card[data-v-5d537b12]:hover{border-color:#d2c9b4;box-shadow:0 2px 12px #0000000d}.skill-icon[data-v-5d537b12]{flex-shrink:0;width:90px;height:90px}.skill-icon-img[data-v-5d537b12]{object-fit:contain;width:90px;height:90px}.skill-name[data-v-5d537b12]{color:#1a1a18;text-align:center;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500}@media (width<=900px){.skills-grid[data-v-5d537b12]{grid-template-columns:repeat(3,1fr)}}@media (width<=640px){.skills-grid[data-v-5d537b12]{grid-template-columns:repeat(2,1fr)}}@media (width<=400px){.skills-grid[data-v-5d537b12]{grid-template-columns:1fr}}.projects[data-v-de463465]{background:#fafaf9;padding:4rem 2rem 9rem}.projects-inner[data-v-de463465]{max-width:1080px;margin:0 auto}.projects-header[data-v-de463465]{margin-bottom:2.5rem}.section-label[data-v-de463465]{color:#9c9a93;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500}.section-title[data-v-de463465]{color:#1a1a18;letter-spacing:-.02em;margin-bottom:12px;font-family:Playfair Display,serif;font-size:clamp(2rem,4vw,3rem);font-weight:700}.section-sub[data-v-de463465]{color:#78766f;max-width:440px;font-family:DM Sans,sans-serif;font-size:.95rem}.filters[data-v-de463465]{flex-wrap:wrap;gap:7px;margin-bottom:2.5rem;display:flex}.filter-btn[data-v-de463465]{color:#78766f;cursor:pointer;background:0 0;border:1px solid #e5e5e3;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-family:DM Sans,sans-serif;font-size:13px;transition:all .18s;display:inline-flex}.filter-btn[data-v-de463465]:hover{color:#1a1a18;border-color:#b0ada6}.filter-btn--active[data-v-de463465]{color:#fafaf9;background:#1a1a18;border-color:#1a1a18}.filter-count[data-v-de463465]{opacity:.6;font-size:11px}.projects-grid[data-v-de463465]{position:relative}.grid-inner[data-v-de463465]{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.project-card[data-v-de463465]{color:inherit;background:#fff;border:1px solid #ece9e4;border-radius:12px;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;display:block;overflow:hidden}.project-card[data-v-de463465]:hover{border-color:#d6d3cc;transform:translateY(-2px);box-shadow:0 4px 20px #00000012}.card-image-wrap[data-v-de463465]{aspect-ratio:16/9;background:#f0efed;position:relative;overflow:hidden}.card-image[data-v-de463465]{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.project-card:hover .card-image[data-v-de463465]{transform:scale(1.03)}.card-placeholder[data-v-de463465]{background:linear-gradient(135deg,#f0efed,#e5e5e3);justify-content:center;align-items:center;width:100%;height:100%;display:flex}.placeholder-letter[data-v-de463465]{color:#c0bdb5;font-family:Playfair Display,serif;font-size:3rem;font-weight:700}.github-overlay[data-v-de463465]{opacity:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#141412d1;justify-content:center;align-items:center;transition:opacity .22s;display:flex;position:absolute;inset:0}.project-card:hover .github-overlay[data-v-de463465]{opacity:1}.github-overlay-inner[data-v-de463465]{color:#fafaf9;flex-direction:column;align-items:center;gap:8px;transition:transform .22s;display:flex;transform:translateY(6px)}.project-card:hover .github-overlay-inner[data-v-de463465]{transform:translateY(0)}.github-icon[data-v-de463465]{width:28px;height:28px}.github-overlay-inner span[data-v-de463465]{letter-spacing:.04em;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500}.dev-badge[data-v-de463465]{color:#78766f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffeb;border:1px solid #e5e5e3;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:500;display:inline-flex;position:absolute;top:10px;right:10px}.dev-dot[data-v-de463465]{background:#f59e0b;border-radius:50%;width:6px;height:6px;animation:1.8s ease-in-out infinite pulse-dot-de463465}@keyframes pulse-dot-de463465{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}.card-body[data-v-de463465]{flex-direction:column;gap:8px;padding:1.25rem;display:flex}.card-tags[data-v-de463465]{flex-wrap:wrap;gap:5px;display:flex}.card-tag[data-v-de463465]{color:#78766f;background:#f5f4f2;border:1px solid #e5e5e3;border-radius:4px;padding:2px 8px;font-family:DM Sans,sans-serif;font-size:11px}.card-title[data-v-de463465]{color:#1a1a18;margin-top:2px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:500}.card-desc[data-v-de463465]{color:#78766f;font-family:DM Sans,sans-serif;font-size:13px;line-height:1.65}.empty[data-v-de463465]{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:4rem 0;display:flex}.empty p[data-v-de463465]{color:#9c9a93;font-family:DM Sans,sans-serif;font-size:14px}.card-enter-active[data-v-de463465],.card-leave-active[data-v-de463465]{transition:opacity .2s,transform .2s}.card-enter-from[data-v-de463465]{opacity:0;transform:translateY(8px)}.card-leave-to[data-v-de463465]{opacity:0}.card-leave-active[data-v-de463465]{position:absolute}@media (width<=900px){.grid-inner[data-v-de463465]{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.grid-inner[data-v-de463465]{grid-template-columns:1fr}}.contact[data-v-687c8861]{background:#f5f4f2;border-top:1px solid #ece9e4;padding:4rem 2rem}.contact-inner[data-v-687c8861]{max-width:1080px;margin:0 auto}.contact-header[data-v-687c8861]{margin-bottom:3.5rem}.section-label[data-v-687c8861]{color:#9c9a93;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500}.section-title[data-v-687c8861]{color:#1a1a18;letter-spacing:-.02em;margin-bottom:12px;font-family:Playfair Display,serif;font-size:clamp(2rem,4vw,3rem);font-weight:700}.section-sub[data-v-687c8861]{color:#78766f;max-width:480px;font-family:DM Sans,sans-serif;font-size:.95rem;line-height:1.7}.contact-layout[data-v-687c8861]{grid-template-columns:260px 1fr;align-items:start;gap:4rem;display:grid}.contact-info[data-v-687c8861]{flex-direction:column;gap:1.5rem;padding-top:4px;display:flex}.info-item[data-v-687c8861]{align-items:flex-start;gap:12px;display:flex}.info-icon[data-v-687c8861]{color:#78766f;background:#fafaf9;border:1px solid #ece9e4;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;margin-top:2px;display:flex}.info-label[data-v-687c8861]{color:#9c9a93;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:500}.info-value[data-v-687c8861]{color:#4a4a45;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:none;transition:color .18s}.info-value[data-v-687c8861]:hover{color:#1a1a18}.form-wrap[data-v-687c8861]{background:#fafaf9;border:1px solid #ece9e4;border-radius:14px;padding:2rem}form[data-v-687c8861]{flex-direction:column;gap:18px;display:flex}.form-row[data-v-687c8861]{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field[data-v-687c8861]{flex-direction:column;gap:6px;display:flex}.field-label[data-v-687c8861]{color:#4a4a45;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500}.field-input[data-v-687c8861]{color:#1a1a18;background:#fff;border:1px solid #e5e5e3;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:14px;transition:border-color .18s,box-shadow .18s}.field-input[data-v-687c8861]::placeholder{color:#b0ada6}.field-input[data-v-687c8861]:focus{border-color:#1a1a18;box-shadow:0 0 0 3px #1a1a180f}.field-input--error[data-v-687c8861]{border-color:#e55050}.field-input--error[data-v-687c8861]:focus{box-shadow:0 0 0 3px #e5505014}.field-textarea[data-v-687c8861]{resize:vertical;min-height:130px}.field-error[data-v-687c8861]{color:#e55050;font-family:DM Sans,sans-serif;font-size:12px}.btn-submit[data-v-687c8861]{color:#fafaf9;cursor:pointer;background:#1a1a18;border:none;border-radius:8px;justify-content:center;align-self:flex-start;align-items:center;gap:8px;padding:12px 28px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;transition:background .18s,gap .18s;display:inline-flex}.btn-submit[data-v-687c8861]:hover:not(:disabled){background:#333330;gap:12px}.btn-submit[data-v-687c8861]:disabled{opacity:.6;cursor:not-allowed}.spinner[data-v-687c8861]{border:2px solid #fafaf94d;border-top-color:#fafaf9;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin-687c8861}@keyframes spin-687c8861{to{transform:rotate(360deg)}}.success-msg[data-v-687c8861]{color:#3a7d5a;background:#edf7f2;border:1px solid #c6e8d6;border-radius:10px;align-items:flex-start;gap:14px;padding:1.25rem;display:flex}.success-title[data-v-687c8861]{color:#3a7d5a;margin-bottom:3px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500}.success-sub[data-v-687c8861]{color:#5aac82;font-family:DM Sans,sans-serif;font-size:13px}@media (width<=820px){.contact-layout[data-v-687c8861]{grid-template-columns:1fr;gap:2.5rem}.contact-info[data-v-687c8861]{flex-flow:wrap;gap:1rem}}@media (width<=500px){.form-row[data-v-687c8861]{grid-template-columns:1fr}.contact-info[data-v-687c8861]{flex-direction:column}}.project-detail[data-v-677e19a5]{background:#fff;max-width:900px;margin:5rem auto;padding:2rem;box-shadow:0 0 40px #00000026}.back-link[data-v-677e19a5]{color:var(--color-primary);margin-bottom:1.5rem;text-decoration:none;display:inline-block}.detail-title[data-v-677e19a5]{margin-bottom:1rem;font-size:2rem;font-weight:700}.detail-content[data-v-677e19a5]{margin-top:1rem;margin-bottom:1rem}.detail-description[data-v-677e19a5]{color:var(--color-muted);margin-bottom:1.5rem;line-height:1.6}.detail-description ul[data-v-677e19a5]{margin-bottom:1rem;padding-left:1.5rem;list-style:outside}.detail-description li[data-v-677e19a5]{margin-bottom:.25rem}.detail-tags[data-v-677e19a5]{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.tag[data-v-677e19a5]{background:#cfcfcf;border-radius:999px;padding:.25rem .75rem;font-size:.85rem}.detail-actions[data-v-677e19a5]{gap:1rem;margin-top:1.5rem;display:flex}.btn-primary[data-v-677e19a5]{color:#fafaf9;background:#1a1a18;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.9rem;text-decoration:none;transition:opacity .2s;display:inline-flex}.btn-primary[data-v-677e19a5]:hover{opacity:.85}.video-wrap[data-v-677e19a5]{height:0;margin-top:2rem;padding-bottom:56.25%;position:relative}.project-video[data-v-677e19a5]{border-radius:8px;width:100%;height:100%;position:absolute;top:0;left:0}.detail-image-wrap[data-v-677e19a5]{margin-top:2rem}.detail-image[data-v-677e19a5]{border-radius:8px;width:100%}
