.loading-indicator.svelte-sm1v5r{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:1000;color:var(--color-gold)}.loading-indicator.svelte-sm1v5r p:where(.svelte-sm1v5r){font-family:Cinzel Decorative,Trajan Pro,serif;font-size:1.2rem;margin-top:1rem;color:var(--color-gold);text-shadow:0 0 10px rgba(255,215,0,.5)}.spinner.svelte-sm1v5r{width:50px;height:50px;border:4px solid rgba(255,215,0,.2);border-top:4px solid var(--color-gold);border-radius:50%;animation:svelte-sm1v5r-spin 1s linear infinite;margin:0 auto}@keyframes svelte-sm1v5r-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.welcome-title.svelte-fqjeai{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:100;pointer-events:none;animation:svelte-fqjeai-titleFadeInOut 2.5s ease-in-out forwards}.welcome-title.svelte-fqjeai .welcome-name:where(.svelte-fqjeai){font-size:2.5rem;font-weight:700;color:var(--color-gold);margin:0;text-shadow:0 0 20px rgba(255,215,0,.8),0 0 40px rgba(255,215,0,.5),0 0 60px rgba(255,215,0,.3);letter-spacing:.1em}.welcome-title.svelte-fqjeai p:where(.svelte-fqjeai){font-size:1rem;color:var(--text-muted);margin:.5rem 0 0;text-transform:uppercase;letter-spacing:.3em}@keyframes svelte-fqjeai-titleFadeInOut{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}85%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.05)}}@media(max-width:767px){.welcome-title.svelte-fqjeai{animation:svelte-fqjeai-titleFadeInOutMobile 1.5s ease-in-out forwards}.welcome-title.svelte-fqjeai .welcome-name:where(.svelte-fqjeai){font-size:1.8rem}.welcome-title.svelte-fqjeai p:where(.svelte-fqjeai){font-size:.8rem}}@keyframes svelte-fqjeai-titleFadeInOutMobile{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}25%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.05)}}.tooltip.svelte-11extwn{position:fixed;background:linear-gradient(145deg,var(--panel-from) 0%,#12121a 100%);border:1px solid var(--node-color);border-radius:8px;padding:.75rem 1rem;max-width:280px;pointer-events:none;z-index:500;box-shadow:0 0 20px color-mix(in srgb,var(--node-color) 25%,transparent),0 4px 12px #00000080;animation:svelte-11extwn-tooltipFadeIn .15s ease-out}@keyframes svelte-11extwn-tooltipFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.tooltip.svelte-11extwn h3:where(.svelte-11extwn){color:var(--node-color);margin:0 0 .35rem;font-size:.95rem;text-shadow:0 0 10px var(--node-color)}.tooltip.svelte-11extwn p:where(.svelte-11extwn){color:var(--text-muted);margin:0 0 .5rem;font-size:.8rem;line-height:1.5}.tooltip.svelte-11extwn .hint:where(.svelte-11extwn){color:#666;font-size:.7rem;font-style:italic}.tooltip-icon.svelte-11extwn{width:1.2em;height:1.2em;vertical-align:middle;margin-right:.4rem;filter:drop-shadow(0 0 4px var(--node-color))}.modal-backdrop.svelte-14rxm01{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000;display:flex;align-items:center;justify-content:center;z-index:1000;transition:background .2s ease;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);padding:1rem;box-sizing:border-box}.modal-backdrop.visible.svelte-14rxm01{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal.svelte-14rxm01{background:linear-gradient(145deg,var(--panel-from) 0%,var(--panel-to) 100%);border:1px solid var(--node-color);border-radius:12px;padding:1.5rem;max-width:420px;width:100%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 0 40px color-mix(in srgb,var(--node-color) 30%,transparent),0 0 80px color-mix(in srgb,var(--node-color) 15%,transparent),inset 0 1px #ffffff0d;opacity:0;transform:scale(.9) translateY(20px);transition:all .25s cubic-bezier(.175,.885,.32,1.275)}.modal.visible.svelte-14rxm01{opacity:1;transform:scale(1) translateY(0)}.modal.svelte-14rxm01 h2:where(.svelte-14rxm01){color:var(--node-color);margin:0 0 .5rem;font-size:1.3rem;text-shadow:0 0 20px var(--node-color);padding-right:2rem}.modal-icon.svelte-14rxm01{width:1.4em;height:1.4em;vertical-align:middle;margin-right:.5rem;filter:drop-shadow(0 0 8px var(--node-color))}.category-badge.svelte-14rxm01{display:inline-block;background:linear-gradient(135deg,var(--node-color),color-mix(in srgb,var(--node-color) 70%,black));color:#0a0a0f;padding:.25rem .75rem;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.modal.svelte-14rxm01 p:where(.svelte-14rxm01){color:var(--text-muted);line-height:1.7;margin:0;font-size:.9rem}.close-btn.svelte-14rxm01{position:absolute;top:.75rem;right:.75rem;background:none;border:none;color:#666;font-size:1.5rem;cursor:pointer;padding:.5rem;transition:all .15s;border-radius:4px;line-height:1}.close-btn.svelte-14rxm01:hover{color:#fff;background:#ffffff1a}.origin-title.svelte-14rxm01{color:var(--node-color);font-size:1rem;font-weight:600;margin-bottom:.25rem;text-shadow:0 0 10px var(--node-color)}.origin-location.svelte-14rxm01{color:#888;font-size:.85rem;margin-bottom:1rem}.about-me.svelte-14rxm01{color:var(--text-muted);line-height:1.7;margin:0 0 1rem;font-size:.9rem}.social-links.svelte-14rxm01{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.social-links.svelte-14rxm01 a:where(.svelte-14rxm01){color:#ccc;text-decoration:none;font-size:.8rem;padding:.4rem .6rem;background:#ffffff0d;border-radius:6px;border:1px solid rgba(255,255,255,.1);transition:all .15s ease}.social-links.svelte-14rxm01 a:where(.svelte-14rxm01):hover{color:var(--node-color);background:#ffffff1a;border-color:var(--node-color)}.meta-info.svelte-14rxm01{margin-bottom:.75rem}.meta-info.svelte-14rxm01 .company:where(.svelte-14rxm01){display:block;color:var(--node-color);font-weight:600;font-size:.9rem}.meta-info.svelte-14rxm01 .dates:where(.svelte-14rxm01){display:block;color:#888;font-size:.8rem;margin-top:.2rem}.proficiency-badge.svelte-14rxm01{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;margin-right:.5rem}.proficiency-badge.beginner.svelte-14rxm01{background:#4a5568;color:#e2e8f0}.proficiency-badge.intermediate.svelte-14rxm01{background:#2b6cb0;color:#bee3f8}.proficiency-badge.advanced.svelte-14rxm01{background:#2f855a;color:#c6f6d5}.proficiency-badge.expert.svelte-14rxm01{background:#b7791f;color:#fefcbf}.highlights.svelte-14rxm01{margin:.75rem 0 0;padding-left:1.2rem;color:var(--text-muted);font-size:.8rem}.highlights.svelte-14rxm01 li:where(.svelte-14rxm01){margin-bottom:.4rem;line-height:1.4}.tech-stack.svelte-14rxm01{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.tech-tag.svelte-14rxm01{background:#ffffff1a;color:#ccc;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;border:1px solid rgba(255,255,255,.15)}.links.svelte-14rxm01{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.links.svelte-14rxm01 a:where(.svelte-14rxm01){color:var(--node-color);text-decoration:none;font-size:.8rem;transition:opacity .15s}.links.svelte-14rxm01 a:where(.svelte-14rxm01):hover{opacity:.8;text-decoration:underline}.resume-button.svelte-14rxm01{display:block;width:100%;margin-top:1rem;padding:.75rem 1rem;background:linear-gradient(135deg,var(--node-color),color-mix(in srgb,var(--node-color) 70%,black));color:#0a0a0f;text-align:center;text-decoration:none;font-weight:600;font-size:.9rem;border-radius:8px;transition:all .2s ease;box-shadow:0 0 20px color-mix(in srgb,var(--node-color) 30%,transparent)}.resume-button.svelte-14rxm01:hover{transform:translateY(-2px);box-shadow:0 0 30px color-mix(in srgb,var(--node-color) 50%,transparent)}.resume-button.svelte-14rxm01:active{transform:translateY(0)}.project-status.svelte-14rxm01{margin:.75rem 0}.status-badge.svelte-14rxm01{display:inline-block;padding:.25rem .6rem;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.status-badge.active.svelte-14rxm01{background:#2f855a;color:#c6f6d5}.status-badge.maintained.svelte-14rxm01{background:#2b6cb0;color:#bee3f8}.status-badge.completed.svelte-14rxm01{background:#6b5b95;color:#e2d8f0}.status-badge.archived.svelte-14rxm01{background:#4a5568;color:#e2e8f0}@media(max-width:767px){.modal.svelte-14rxm01{padding:1.25rem;max-height:85vh;border-radius:16px 16px 0 0;margin-top:auto}.modal-backdrop.svelte-14rxm01{align-items:flex-end;padding:0}.modal.svelte-14rxm01 h2:where(.svelte-14rxm01){font-size:1.2rem}.social-links.svelte-14rxm01{gap:.4rem}.social-links.svelte-14rxm01 a:where(.svelte-14rxm01){font-size:.75rem;padding:.35rem .5rem}.close-btn.svelte-14rxm01{top:.5rem;right:.5rem;font-size:1.75rem;padding:.75rem}}.stats-panel-toggle.svelte-1588fz5{position:fixed;top:20px;left:20px;width:48px;height:48px;background:linear-gradient(145deg,var(--panel-from) 0%,var(--panel-to) 100%);border:2px solid var(--color-gold);border-radius:12px;cursor:pointer;z-index:950;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--color-gold);box-shadow:0 0 20px #ffd7004d,0 4px 12px #00000080;transition:all .3s cubic-bezier(.4,0,.2,1);opacity:0}.stats-panel-toggle.svelte-1588fz5:hover:not(.open){transform:scale(1.05);box-shadow:0 0 30px #ffd70080,0 4px 16px #0009}.stats-panel-toggle.open.svelte-1588fz5:hover{box-shadow:0 0 30px #ffd70080,0 4px 16px #0009}.stats-panel-toggle.open.svelte-1588fz5{transform:translate(380px) rotate(180deg)}.stats-panel.svelte-1588fz5{position:fixed;top:0;left:0;width:380px;height:100vh;background:linear-gradient(145deg,var(--panel-from) 0%,var(--panel-to) 100%);border-right:2px solid var(--color-gold);box-shadow:4px 0 40px #ffd7004d,8px 0 80px #ffd70026;z-index:900;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.stats-panel.svelte-1588fz5::-webkit-scrollbar{width:10px}.stats-panel.svelte-1588fz5::-webkit-scrollbar-track{background:#0000004d;border-left:1px solid rgba(255,215,0,.1)}.stats-panel.svelte-1588fz5::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--color-gold) 0%,#b7941f 100%);border-radius:5px;border:2px solid rgba(0,0,0,.3)}.stats-panel.svelte-1588fz5::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#ffed4e,#d4af37)}.stats-panel.visible.svelte-1588fz5{transform:translate(0)}.stats-panel-backdrop.svelte-1588fz5{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:899;transition:opacity .2s ease}.character-card.svelte-1588fz5{padding:2rem 1.5rem;border-bottom:2px solid rgba(255,215,0,.2);text-align:center}.character-portrait.svelte-1588fz5{width:120px;height:120px;border-radius:50%;border:3px solid var(--color-gold);box-shadow:0 0 30px #ffd70080;margin:0 auto 1rem;object-fit:cover}.character-stats-bar.svelte-1588fz5{display:flex;justify-content:center;gap:2rem;margin-bottom:1rem;font-size:.9rem;color:var(--text-muted)}.stat-item.svelte-1588fz5{display:flex;align-items:center;gap:.25rem}.stat-label.svelte-1588fz5{font-weight:700;color:var(--color-gold);text-shadow:0 0 10px rgba(255,215,0,.5)}.character-name.svelte-1588fz5{font-size:1.4rem;font-weight:700;color:var(--color-gold);text-shadow:0 0 20px rgba(255,215,0,.5);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.1em}.character-title.svelte-1588fz5{font-size:.85rem;color:var(--text-muted);font-style:italic}.skills-section.svelte-1588fz5{padding:1.5rem}.proficiency-summary.svelte-1588fz5{background:#ffffff08;border:1px solid rgba(255,215,0,.2);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.proficiency-summary.svelte-1588fz5 h3:where(.svelte-1588fz5){color:var(--color-gold);font-size:.9rem;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.proficiency-row.svelte-1588fz5{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.85rem}.proficiency-label.svelte-1588fz5{color:#e0e0e0}.proficiency-count.svelte-1588fz5{color:var(--color-gold);font-weight:700}.skill-branch.svelte-1588fz5{margin-bottom:1.5rem}.branch-header.svelte-1588fz5{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease}.branch-header.svelte-1588fz5:hover{background:#ffffff14;border-color:#ffd7004d}.branch-icon.svelte-1588fz5{width:32px;height:32px;filter:drop-shadow(0 0 8px rgba(249,168,37,.5))}.branch-title.svelte-1588fz5{flex:1;font-size:1rem;font-weight:700;color:var(--color-skills);text-shadow:0 0 10px rgba(249,168,37,.3)}.branch-count.svelte-1588fz5{font-size:.8rem;color:#888}.expand-icon.svelte-1588fz5{font-size:.8rem;color:#666;transition:transform .2s ease}.expand-icon.expanded.svelte-1588fz5{transform:rotate(180deg)}.skill-list.svelte-1588fz5{margin-top:.5rem;padding-left:1rem;overflow:hidden}.skill-item.svelte-1588fz5{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;margin-bottom:.25rem;background:#0003;border-radius:6px;border-left:3px solid transparent;transition:all .15s ease}.skill-item.svelte-1588fz5:hover{background:#ffffff0d;border-left-color:var(--color-skills)}.skill-item-icon.svelte-1588fz5{width:20px;height:20px;opacity:.8}.skill-name.svelte-1588fz5{flex:1;font-size:.85rem;color:#e0e0e0}.skill-proficiency.svelte-1588fz5{font-size:.7rem;color:var(--text-muted);display:flex;align-items:center;gap:.25rem}.proficiency-stars.svelte-1588fz5{color:var(--color-gold);font-size:.75rem}.skill-years.svelte-1588fz5{font-size:.7rem;color:#666;margin-left:.5rem}@media(max-width:767px){.stats-panel-toggle.svelte-1588fz5{bottom:20px;left:20px;top:auto;width:44px;height:44px;font-size:22px}.stats-panel-toggle.open.svelte-1588fz5{transform:translateY(-85dvh) rotate(180deg)}.stats-panel.svelte-1588fz5{width:100%;height:85dvh;border-left:none;border-right:none;border-top:2px solid var(--color-gold);border-radius:16px 16px 0 0;top:auto;bottom:0;transform:translateY(100%);box-shadow:0 -4px 40px #ffd7004d,0 -8px 80px #ffd70026}.stats-panel.visible.svelte-1588fz5{transform:translateY(0)}.character-portrait.svelte-1588fz5{width:100px;height:100px}.character-name.svelte-1588fz5{font-size:1.2rem}.character-stats-bar.svelte-1588fz5{gap:1rem;font-size:.8rem}}.svelte-12o4jo5:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}.canvas-container.svelte-12o4jo5{width:100%;height:100%;touch-action:none}.canvas-container.svelte-12o4jo5:focus-visible{outline:3px solid var(--color-gold);outline-offset:-3px}main.svelte-1uha8ag{width:100vw;height:100vh;overflow:hidden;margin:0;padding:0}
