.photo-wrapper[data-v-445f5a80]{width:10rem;height:10rem}@media (min-width: 768px){.photo-wrapper[data-v-445f5a80]{width:14rem;height:14rem}}.ring[data-v-445f5a80]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;opacity:0;transition:opacity 1s ease;outline:none;box-shadow:none}.is-ready .ring[data-v-445f5a80]{opacity:1}.ring-outer[data-v-445f5a80]{border:4px dashed rgba(0,0,0,.12);animation:spinCW-445f5a80 50s linear infinite}.ring-inner[data-v-445f5a80]{top:8px;right:8px;bottom:8px;left:8px;border:4px dashed rgba(0,0,0,.07);animation:spinCCW-445f5a80 50s linear infinite}.corner[data-v-445f5a80]{position:absolute;width:14px;height:14px;opacity:0;transition:opacity .2s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}@media (min-width: 768px){.corner[data-v-445f5a80]{width:18px;height:18px}}.corner-tl[data-v-445f5a80]{top:6px;left:6px;border-top:2px solid rgba(0,0,0,.35);border-left:2px solid rgba(0,0,0,.35);transform:translate(4px,4px);transition-delay:.7s}.corner-tr[data-v-445f5a80]{top:6px;right:6px;border-top:2px solid rgba(0,0,0,.35);border-right:2px solid rgba(0,0,0,.35);transform:translate(-4px,4px);transition-delay:.8s}.corner-bl[data-v-445f5a80]{bottom:22px;left:6px;border-bottom:2px solid rgba(0,0,0,.35);border-left:2px solid rgba(0,0,0,.35);transform:translate(4px,-4px);transition-delay:.9s}.corner-br[data-v-445f5a80]{bottom:22px;right:6px;border-bottom:2px solid rgba(0,0,0,.35);border-right:2px solid rgba(0,0,0,.35);transform:translate(-4px,-4px);transition-delay:1s}.is-ready .corner[data-v-445f5a80]{opacity:1;transform:translate(0)}.photo-frame[data-v-445f5a80]{position:relative;width:78%;height:78%;border-radius:50%;overflow:hidden;border:2px solid rgba(0,0,0,.12);background:#0000000a;opacity:0;transform:scale(.85);transition:opacity .45s cubic-bezier(.34,1.56,.64,1) .15s,transform .45s cubic-bezier(.34,1.56,.64,1) .15s,box-shadow .3s ease;flex-shrink:0}.is-ready .photo-frame[data-v-445f5a80]{opacity:1;transform:scale(1)}.photo-frame[data-v-445f5a80]:hover{box-shadow:0 0 0 4px #00000012}.photo-img[data-v-445f5a80]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.photo-frame:hover .photo-img[data-v-445f5a80]{transform:scale(1.05)}.photo-initials[data-v-445f5a80]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display, serif);font-weight:900;font-size:1.5rem;color:#0009;letter-spacing:-.02em}.scan-sweep[data-v-445f5a80]{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.06) 50%,transparent 100%);transform:translateY(-100%);animation:scanDown-445f5a80 .9s ease .6s forwards;pointer-events:none}@keyframes scanDown-445f5a80{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.status-label[data-v-445f5a80]{position:absolute;bottom:10px;border-radius:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .4s ease 1.2s}.is-ready .status-label[data-v-445f5a80]{opacity:1}.status-dot[data-v-445f5a80]{width:5px;height:5px;border-radius:50%;background:#0000004d;animation:dotPulse-445f5a80 2.4s ease-in-out infinite}@keyframes dotPulse-445f5a80{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.8;transform:scale(1.3)}}@keyframes spinCW-445f5a80{to{transform:rotate(360deg)}}@keyframes spinCCW-445f5a80{to{transform:rotate(-360deg)}}@keyframes slide-down-50e72602{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes expand-x-50e72602{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.animate-slide-down[data-v-50e72602]{animation:slide-down-50e72602 .45s ease .15s both}.animate-expand-x[data-v-50e72602]{animation:expand-x-50e72602 .5s ease .35s both}@keyframes expand-x-99344e8e{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}.animate-expand-x[data-v-99344e8e]{animation:expand-x-99344e8e .6s ease .1s both}@keyframes shimmer-99344e8e{0%{transform:translate(-100%);opacity:.6}to{transform:translate(100%);opacity:0}}.shimmer-sweep[data-v-99344e8e]{background:linear-gradient(90deg,transparent,white,transparent);animation:shimmer-99344e8e 1s ease .7s both}@keyframes flyFromLeft-99344e8e{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}.sidebar-photo-reveal[data-v-99344e8e]{animation:flyFromLeft-99344e8e .45s ease .2s both}.divider-slide[data-v-99344e8e]{animation:flyFromLeft-99344e8e .35s ease .35s both}.profile-fly-in[data-v-99344e8e]{animation:flyFromLeft-99344e8e .45s ease .4s both}.nav-fly-in[data-v-99344e8e]{animation:flyFromLeft-99344e8e .45s ease .55s both}.footer-fade[data-v-99344e8e]{animation:flyFromLeft-99344e8e .4s ease .75s both}.name-char[data-v-99344e8e]{display:inline-block;opacity:0;transform:translateY(6px);animation:typeChar-99344e8e .08s ease forwards}.name-dot[data-v-99344e8e]{display:inline-block;opacity:0;color:color-mix(in srgb,currentColor 40%,transparent);animation:dotPop-99344e8e .2s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes typeChar-99344e8e{to{opacity:1;transform:translateY(0)}}@keyframes dotPop-99344e8e{0%{opacity:0;transform:scale(0) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes avatarPulse-99344e8e{0%{box-shadow:0 0 color-mix(in srgb,currentColor 30%,transparent)}60%{box-shadow:0 0 0 6px color-mix(in srgb,currentColor 0%,transparent)}to{box-shadow:0 0 0 0 transparent}}.avatar-pulse[data-v-99344e8e]{animation:avatarPulse-99344e8e 1s ease .5s both}@keyframes slideDown-99344e8e{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.header-brand[data-v-99344e8e]{animation:slideDown-99344e8e .4s ease .1s both}@keyframes wiggleIn-99344e8e{0%{opacity:0;transform:rotate(-20deg) scale(.7)}60%{transform:rotate(5deg) scale(1.1)}to{opacity:1;transform:rotate(0) scale(1)}}.hamburger-btn[data-v-99344e8e]{animation:wiggleIn-99344e8e .4s cubic-bezier(.34,1.56,.64,1) .25s both}@keyframes spinIn-99344e8e{0%{opacity:0;transform:rotate(-90deg) scale(.5)}to{opacity:1;transform:rotate(0) scale(1)}}.close-spin[data-v-99344e8e]{animation:spinIn-99344e8e .3s cubic-bezier(.34,1.56,.64,1) .3s both}.scrollbar-hide[data-v-99344e8e]{scrollbar-width:none}.scrollbar-hide[data-v-99344e8e]::-webkit-scrollbar{display:none}.label-item[data-v-0645bb4c]{opacity:0;transform:translate(-16px);transition:opacity .4s ease,transform .4s ease}.label-item.is-visible[data-v-0645bb4c]{opacity:1;transform:translate(0)}.heading-item[data-v-0645bb4c]{opacity:0;transform:translateY(12px);transition:opacity .45s ease 80ms,transform .45s ease 80ms}.heading-item.is-visible[data-v-0645bb4c]{opacity:1;transform:translateY(0)}.category-block[data-v-0645bb4c]{opacity:0;transition:opacity .35s ease var(--cat-delay, 0ms)}.category-block.is-visible[data-v-0645bb4c]{opacity:1}.typewriter-char[data-v-0645bb4c]{display:inline-block;opacity:0;transition:opacity .01s steps(1) var(--delay, 0ms)}.typewriter-char.is-visible[data-v-0645bb4c]{opacity:1}.typewriter-cursor[data-v-0645bb4c]{display:inline-block;opacity:0}.typewriter-cursor.is-visible[data-v-0645bb4c]{animation:cursorBlink-0645bb4c .55s steps(1) var(--delay, 0ms) 4 forwards}@keyframes cursorBlink-0645bb4c{0%,49%{opacity:1}50%,to{opacity:0}}.skill-tag[data-v-0645bb4c]{opacity:0;transform:translate(var(--fly-x),var(--fly-y)) scale(.65) rotate(8deg);transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.skill-tag.is-visible[data-v-0645bb4c]{animation:flyIn-0645bb4c .5s cubic-bezier(.22,1,.36,1) var(--delay, 0ms) forwards,float-0645bb4c 3.5s ease-in-out calc(var(--delay, 0ms) + .5s) infinite}.skill-tag[data-v-0645bb4c]:hover{animation:tagBounce-0645bb4c .4s cubic-bezier(.36,.07,.19,.97) both!important;box-shadow:0 4px 14px -2px color-mix(in srgb,currentColor 25%,transparent)}@keyframes flyIn-0645bb4c{0%{opacity:0;transform:translate(var(--fly-x),var(--fly-y)) scale(.6) rotate(8deg)}70%{opacity:1;transform:translate(-2px,-2px) scale(1.07) rotate(-1deg)}to{opacity:1;transform:translate(0) scale(1) rotate(0)}}@keyframes float-0645bb4c{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes tagBounce-0645bb4c{0%{transform:scale(1)}30%{transform:scale(1.17) translateY(-4px)}60%{transform:scale(.95) translateY(1px)}80%{transform:scale(1.05) translateY(-1px)}to{transform:scale(1) translateY(0)}}.anim-item[data-v-832fd950]{opacity:0;transform:translate(-18px);transition:opacity .4s ease var(--delay, 0ms),transform .4s ease var(--delay, 0ms)}.anim-item.anim-visible[data-v-832fd950]{opacity:1;transform:translate(0)}.heading-char[data-v-832fd950]{display:inline-block;opacity:0;transform:translateY(-20px) rotate(-5deg);transition:opacity .38s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),transform .38s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms)}.heading-char--visible[data-v-832fd950]{opacity:1;transform:translateY(0) rotate(0)}.word-span[data-v-832fd950]{display:inline-block;opacity:0;transform:translateY(10px);transition:opacity .3s ease var(--delay, 0ms),transform .3s ease var(--delay, 0ms)}.word-span--visible[data-v-832fd950]{opacity:1;transform:translateY(0)}.stat-block[data-v-832fd950]{opacity:0;transform:translateY(22px) scale(.9);transition:opacity .45s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),transform .45s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms);position:relative}.stat-block--visible[data-v-832fd950]{opacity:1;transform:translateY(0) scale(1)}.stat-number[data-v-832fd950]{position:relative;display:inline-flex;flex-direction:column}.stat-underline[data-v-832fd950]{display:block;height:2px;width:0;background:currentColor;opacity:.22;border-radius:999px;margin-top:3px;transition:width .5s ease var(--delay, 0ms)}.stat-underline--visible[data-v-832fd950]{width:100%}.stat-label[data-v-832fd950]{opacity:0;transform:translateY(5px);transition:opacity .3s ease var(--delay, 0ms),transform .3s ease var(--delay, 0ms)}.stat-label--visible[data-v-832fd950]{opacity:1;transform:translateY(0)}.stat-block:hover .stat-number[data-v-832fd950]{transform:translateY(-3px);transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.stat-block:hover .stat-underline[data-v-832fd950]{opacity:.5;transition:opacity .2s ease}.label-item[data-v-11e5d0f5]{opacity:0;transform:translate(-16px);transition:opacity .4s ease,transform .4s ease}.label-item.is-visible[data-v-11e5d0f5]{opacity:1;transform:translate(0)}.heading-char[data-v-11e5d0f5]{display:inline-block;opacity:0;transform:translateY(-18px) rotate(-4deg);transition:opacity .38s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),transform .38s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms)}.heading-char.is-visible[data-v-11e5d0f5]{opacity:1;transform:translateY(0) rotate(0)}.subtitle-item[data-v-11e5d0f5]{opacity:0;transform:translateY(10px);transition:opacity .4s ease .35s,transform .4s ease .35s}.subtitle-item.is-visible[data-v-11e5d0f5]{opacity:1;transform:translateY(0)}.project-card[data-v-11e5d0f5]{opacity:0;transform:translateY(28px) scale(.97);transition:opacity .5s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),transform .5s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),box-shadow .3s ease,translate .25s ease}.project-card.is-visible[data-v-11e5d0f5]{opacity:1;transform:translateY(0) scale(1)}.project-card.is-visible[data-v-11e5d0f5]:hover{transform:translateY(-4px) scale(1.005);box-shadow:0 14px 36px -4px color-mix(in srgb,currentColor 9%,transparent)}.card-shimmer[data-v-11e5d0f5]{background:linear-gradient(105deg,transparent 35%,color-mix(in srgb,white 8%,transparent) 50%,transparent 65%);transform:translate(-100%) skew(-12deg);transition:transform 0s}.project-card:hover .card-shimmer[data-v-11e5d0f5]{transform:translate(200%) skew(-12deg);transition:transform .6s ease}.index-num[data-v-11e5d0f5]{opacity:0;transform:translate(-8px);transition:opacity .3s ease var(--delay, 0ms),transform .3s ease var(--delay, 0ms)}.index-num.is-visible[data-v-11e5d0f5]{opacity:1;transform:translate(0)}.skill-chip[data-v-11e5d0f5]{opacity:0;transform:scale(.8);transition:opacity .25s ease var(--delay, 0ms),transform .25s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms)}.skill-chip.is-visible[data-v-11e5d0f5]{opacity:1;transform:scale(1)}.label-item[data-v-45062348]{opacity:0;transform:translate(-18px);transition:opacity .4s ease,transform .4s ease}.label-item.is-visible[data-v-45062348]{opacity:1;transform:translate(0)}.hi-item[data-v-45062348]{opacity:0;transform:translateY(8px);transition:opacity .35s ease .1s,transform .35s ease .1s}.hi-item.is-visible[data-v-45062348]{opacity:1;transform:translateY(0)}.heading-char[data-v-45062348]{display:inline-block;opacity:0;transform:translateY(-20px) rotate(-5deg);transition:opacity .4s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),transform .4s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms)}.heading-char.is-visible[data-v-45062348]{opacity:1;transform:translateY(0) rotate(0)}.underline-item[data-v-45062348]{transform:scaleX(0);transform-origin:left;transition:transform .5s ease var(--delay, 0ms)}.underline-item.is-visible[data-v-45062348]{transform:scaleX(1);animation:underlinePulse-45062348 2.5s ease-in-out 1s infinite}.phrase-entrance[data-v-45062348]{opacity:0;transform:translateY(12px);transition:opacity .5s ease .6s,transform .5s ease .6s}.phrase-entrance.is-visible[data-v-45062348]{opacity:1;transform:translateY(0)}.phrase-stage[data-v-45062348]{min-height:5rem}.phase-dot[data-v-45062348]{width:20px;height:3px;border-radius:999px;background:color-mix(in srgb,currentColor 15%,transparent);transition:all .3s cubic-bezier(.34,1.56,.64,1);cursor:pointer}.phase-dot--active[data-v-45062348]{width:32px;background:color-mix(in srgb,currentColor 55%,transparent)}.phase-dot[data-v-45062348]:hover:not(.phase-dot--active){background:color-mix(in srgb,currentColor 28%,transparent)}.phrase-char[data-v-45062348]{display:inline;transition:opacity .08s ease}.phrase-char--erasing[data-v-45062348]{opacity:.4}.phrase-char--last[data-v-45062348]{opacity:.9}.typing-cursor[data-v-45062348]{display:inline-block;font-weight:100;margin-left:1px;opacity:1;animation:cursorBlink-45062348 .55s steps(1) infinite}.typing-cursor--pause[data-v-45062348]{animation:none;opacity:1}.btn-item[data-v-45062348]{opacity:0;transform:translateY(14px) scale(.95);transition:opacity .4s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),transform .4s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms)}.btn-item.is-visible[data-v-45062348]{opacity:1;transform:translateY(0) scale(1)}.arrow-icon[data-v-45062348]{transition:transform .2s ease}.cta-primary:hover .arrow-icon[data-v-45062348]{transform:translate(4px)}.chip-item[data-v-45062348]{opacity:0;transform:scale(.82) translateY(6px);transition:opacity .28s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms),transform .28s cubic-bezier(.34,1.56,.64,1) var(--delay, 0ms)}.chip-item.is-visible[data-v-45062348]{opacity:1;transform:scale(1) translateY(0)}.glyph-item[data-v-45062348]{opacity:0;transform:translate(40px);transition:opacity 1.2s ease .4s,transform 1.2s ease .4s}.glyph-item.is-visible[data-v-45062348]{opacity:.045;transform:translate(0)}@keyframes cursorBlink-45062348{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes underlinePulse-45062348{0%,to{opacity:1}50%{opacity:.45;box-shadow:0 0 8px 1px currentColor}}@keyframes expand-x-02a10031{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}.animate-expand-x[data-v-02a10031]{animation:expand-x-02a10031 .6s ease .3s both}
