.ambient.svelte-dwy068{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.glow.svelte-dwy068{mix-blend-mode:screen;opacity:calc(.3 * var(--intensity));animation:svelte-dwy068-drift var(--dur) ease-in-out infinite alternate;position:absolute;inset:-12%}:root[data-theme=light] .glow.svelte-dwy068{mix-blend-mode:multiply;opacity:calc(.22 * var(--intensity))}.glow-a.svelte-dwy068{background:radial-gradient(circle at 22% 28%, var(--color-brand-400), transparent 70%);animation-delay:-6s}.glow-b.svelte-dwy068{background:radial-gradient(circle at 78% 38%, var(--color-brand-600), transparent 68%);animation-delay:-13s}.glow-c.svelte-dwy068{background:radial-gradient(circle at 50% 82%, var(--color-accent-500), transparent 66%);opacity:calc(.18 * var(--intensity));animation-delay:-19s}.grain.svelte-dwy068{opacity:.045;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:-10%}@keyframes svelte-dwy068-drift{0%{transform:translate(-2.4%,-2%)scale(1.02)}to{transform:translate(2.4%,2.8%)scale(1.05)}}@media (prefers-reduced-motion:reduce){.glow.svelte-dwy068{animation:none}}.hover\:bg-glow.svelte-1elxaub:hover{background-color:var(--glow)}.orbit-wrap.svelte-4z0feo{--orbit-scale:.74;width:calc(560px * var(--orbit-scale));height:calc(560px * var(--orbit-scale));flex:none;position:relative}@media (width<=1023px){.orbit-wrap.svelte-4z0feo{--orbit-scale:.58}}@media (width<=400px){.orbit-wrap.svelte-4z0feo{--orbit-scale:.5}}.orbit-stage.svelte-4z0feo{width:560px;height:560px;transform:translate(-50%, -50%) scale(var(--orbit-scale));place-items:center;display:grid;position:absolute;top:50%;left:50%}.halo-steady.svelte-4z0feo,.halo-pulse.svelte-4z0feo{pointer-events:none;border-radius:9999px;position:absolute;inset:6%}.halo-steady.svelte-4z0feo{background:radial-gradient(circle closest-side, color-mix(in oklab, var(--color-brand-500) 55%, transparent) 0%, color-mix(in oklab, var(--color-brand-500) 34%, transparent) 28%, color-mix(in oklab, var(--color-brand-500) 16%, transparent) 50%, color-mix(in oklab, var(--color-brand-500) 6%, transparent) 70%, transparent 92%);opacity:.5}.halo-pulse.svelte-4z0feo{background:radial-gradient(circle closest-side at 45% 42%, color-mix(in oklab, var(--color-brand-400) 50%, transparent) 0%, color-mix(in oklab, var(--color-brand-400) 26%, transparent) 30%, color-mix(in oklab, var(--color-accent-500) 13%, transparent) 55%, color-mix(in oklab, var(--color-accent-500) 5%, transparent) 75%, transparent 95%);opacity:.38;animation:7s ease-in-out infinite alternate svelte-4z0feo-breathe}:root[data-theme=light] .halo-steady.svelte-4z0feo{opacity:.36}:root[data-theme=light] .halo-pulse.svelte-4z0feo{opacity:.28}@keyframes svelte-4z0feo-breathe{0%{opacity:.24;transform:scale(.94)}to{opacity:.5;transform:scale(1.06)}}.orbit-stage.svelte-4z0feo .mark{z-index:2;position:relative}.orbit-ring.svelte-4z0feo{width:560px;height:560px;animation:svelte-4z0feo-spin var(--duration) linear infinite;will-change:transform;position:absolute;top:0;left:0}.orbit-ring.reverse.svelte-4z0feo{animation-direction:reverse}.node.svelte-4z0feo{border:1px solid var(--border);background:var(--surface-raised);width:44px;height:44px;box-shadow:0 0 20px var(--glow);animation:svelte-4z0feo-spin var(--duration) linear infinite reverse;border-radius:9999px;place-items:center;margin:-22px 0 0 -22px;transition:border-color .3s,box-shadow .3s;display:grid;position:absolute}.node.reverse.svelte-4z0feo{animation-direction:normal}.node.svelte-4z0feo:hover{box-shadow:0 0 26px color-mix(in oklab, currentColor 35%, transparent);border-color:currentColor}.tip.svelte-4z0feo{white-space:nowrap;border:1px solid var(--border);background:var(--surface-raised);font-family:var(--font-mono);color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;padding:3px 8px;font-size:11px;transition:opacity .2s;position:absolute;top:calc(100% + 8px);left:50%;translate:-50%}.node.svelte-4z0feo:hover .tip:where(.svelte-4z0feo){opacity:1;animation:.22s ease-out svelte-4z0feo-pop}@keyframes svelte-4z0feo-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes svelte-4z0feo-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.orbit-ring.svelte-4z0feo,.node.svelte-4z0feo,.halo-pulse.svelte-4z0feo{animation:none}}.flip.svelte-14ynrlc{--shine:#8cc8ff29;perspective:1100px;cursor:pointer;border-radius:var(--radius-2xl)}:root[data-theme=light] .flip.svelte-14ynrlc{--shine:#2c6bb517}.flip-inner.svelte-14ynrlc{height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.45,0,.15,1);display:grid}.flip.svelte-14ynrlc:not(.flipped):hover .flip-inner:where(.svelte-14ynrlc),.flip.svelte-14ynrlc:not(.flipped):focus-visible .flip-inner:where(.svelte-14ynrlc){transform:translateY(-7px)rotateX(4deg)rotateY(-10deg)scale(1.02)}.flip.svelte-14ynrlc:not(.flipped):hover .face:where(.svelte-14ynrlc):not(.back){border-color:color-mix(in oklab, var(--color-brand-400) 55%, transparent);box-shadow:0 24px 48px -18px color-mix(in oklab, var(--color-brand-500) 65%, transparent)}.face.svelte-14ynrlc:not(.back):after{content:"";background:linear-gradient(115deg, transparent 42%, var(--shine) 50%, transparent 58%);pointer-events:none;position:absolute;inset:-30%;transform:translate(-80%)}.flip.svelte-14ynrlc:not(.flipped):hover .face:where(.svelte-14ynrlc):not(.back):after{animation:.85s forwards svelte-14ynrlc-shine}@keyframes svelte-14ynrlc-shine{to{transform:translate(80%)}}.flipped.svelte-14ynrlc .flip-inner:where(.svelte-14ynrlc){transform:rotateY(180deg)}.face.svelte-14ynrlc{backface-visibility:hidden;grid-area:1/1;overflow:hidden}.face.svelte-14ynrlc:not(.back):hover{transform:none}.face.back.svelte-14ynrlc{border-color:color-mix(in oklab, var(--color-accent-400) 35%, transparent);transform:rotateY(180deg)}.face.back.svelte-14ynrlc:before{content:"";border-radius:inherit;border:2px solid var(--color-accent-400);opacity:0;pointer-events:none;position:absolute;inset:0}.flipped.svelte-14ynrlc .face.back:where(.svelte-14ynrlc):before{animation:.7s ease-out .25s svelte-14ynrlc-ring-out}@keyframes svelte-14ynrlc-ring-out{0%{opacity:.8;transform:scale(.92)}to{opacity:0;transform:scale(1.16)}}.flipped.svelte-14ynrlc .back-content:where(.svelte-14ynrlc){animation:.45s ease-out .28s both svelte-14ynrlc-back-pop}@keyframes svelte-14ynrlc-back-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.flip-hint.svelte-14ynrlc{opacity:.55;transition:opacity .3s,transform .45s cubic-bezier(.3,.7,.3,1.2);position:absolute;bottom:.8rem;right:.9rem}.flip.svelte-14ynrlc:hover .flip-hint:where(.svelte-14ynrlc){opacity:1;color:var(--color-brand-300);transform:rotate(180deg)}.icon-tile.svelte-14ynrlc{transition:transform .3s}.flip.svelte-14ynrlc:not(.flipped):hover .icon-tile:where(.svelte-14ynrlc){transform:scale(1.15)rotate(-6deg)}@media (prefers-reduced-motion:reduce){.flip-inner.svelte-14ynrlc,.icon-tile.svelte-14ynrlc{transition:none}.flipped.svelte-14ynrlc .back-content:where(.svelte-14ynrlc),.flipped.svelte-14ynrlc .face.back:where(.svelte-14ynrlc):before,.flip.svelte-14ynrlc:not(.flipped):hover .face:where(.svelte-14ynrlc):not(.back):after{animation:none}.flip.svelte-14ynrlc:not(.flipped):hover .flip-inner:where(.svelte-14ynrlc){transform:none}}.current.svelte-9ap5bx path:where(.svelte-9ap5bx){stroke-dasharray:14 150;stroke-dashoffset:0;opacity:0;transition:opacity .4s}.group:hover .current.svelte-9ap5bx path:where(.svelte-9ap5bx){opacity:.9;animation:3.2s linear infinite svelte-9ap5bx-current-flow}@keyframes svelte-9ap5bx-current-flow{to{stroke-dashoffset:-164px}}@media (prefers-reduced-motion:reduce){.group:hover .current.svelte-9ap5bx path:where(.svelte-9ap5bx){opacity:.5;animation:none}}.project-card.svelte-1tes396{--tint:var(--tech-dark);isolation:isolate;transition:border-color .35s,box-shadow .35s,transform .35s;position:relative}:root[data-theme=light] .project-card.svelte-1tes396{--tint:var(--tech-light)}.project-card.svelte-1tes396:before{content:"";z-index:-1;background:radial-gradient(460px circle at var(--mx,50%) var(--my,0%), color-mix(in oklab, var(--tint) 26%, transparent), transparent 66%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.project-card.svelte-1tes396:hover:before,.project-card.svelte-1tes396:focus-within:before{opacity:1}.project-card.svelte-1tes396:hover,.project-card.svelte-1tes396:focus-within{border-color:color-mix(in oklab, var(--tint) 45%, transparent);box-shadow:0 20px 48px -24px color-mix(in oklab, var(--tint) 70%, transparent);transform:translateY(-3px)}.project-card.svelte-1tes396 svg g[stroke]{transition:stroke .35s}.project-card.svelte-1tes396:hover .current path{stroke:var(--tint)}@media (prefers-reduced-motion:reduce){.project-card.svelte-1tes396,.project-card.svelte-1tes396:before{transition:none}.project-card.svelte-1tes396:hover,.project-card.svelte-1tes396:focus-within{transform:none}}dialog.svelte-1tes396{transition:opacity .2s ease, overlay .2s allow-discrete, display .2s allow-discrete;opacity:0}dialog[open].svelte-1tes396{opacity:1}@starting-style{dialog[open].svelte-1tes396{opacity:0}}.skill-card.svelte-1f1pl16{--tint:var(--tech-dark);--ink:var(--ink-dark);isolation:isolate;transition:border-color .35s,box-shadow .35s,transform .35s;position:relative;overflow:hidden}:root[data-theme=light] .skill-card.svelte-1f1pl16{--tint:var(--tech-light);--ink:var(--ink-light)}.skill-card.svelte-1f1pl16:before{content:"";z-index:-1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), color-mix(in oklab, var(--tint) 30%, transparent), transparent 68%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.skill-card.svelte-1f1pl16:hover:before,.skill-card.svelte-1f1pl16:focus-within:before{opacity:1}.skill-card.svelte-1f1pl16:hover,.skill-card.svelte-1f1pl16:focus-within{border-color:color-mix(in oklab, var(--tint) 45%, transparent);box-shadow:0 20px 48px -24px color-mix(in oklab, var(--tint) 70%, transparent);transform:translateY(-3px)}.stat-card.svelte-1f1pl16:hover{border-color:color-mix(in oklab, var(--color-brand-400) 50%, transparent);box-shadow:0 26px 52px -22px color-mix(in oklab, var(--color-brand-500) 60%, transparent);transform:translateY(-6px)}.chip.svelte-1f1pl16{border:1px solid var(--border);background:var(--glass);letter-spacing:.16em;text-transform:uppercase;color:var(--text-subtle);border-radius:9999px;padding:.2rem .7rem;font-size:.62rem;font-weight:600;transition:color .35s,border-color .35s}.skill-card.svelte-1f1pl16:hover .chip:where(.svelte-1f1pl16){color:var(--tint);border-color:color-mix(in oklab, var(--tint) 40%, transparent)}.tile.svelte-1f1pl16{background-color:var(--tint);box-shadow:0 8px 20px -10px color-mix(in oklab, var(--tint) 60%, transparent);transition:box-shadow .35s,transform .35s}.skill-card.svelte-1f1pl16:hover .tile:where(.svelte-1f1pl16){box-shadow:0 0 30px color-mix(in oklab, var(--tint) 60%, transparent);transform:scale(1.08)}.glyph.svelte-1f1pl16{color:var(--ink)}@media (prefers-reduced-motion:reduce){.skill-card.svelte-1f1pl16,.skill-card.svelte-1f1pl16:before,.tile.svelte-1f1pl16,.stat-card.svelte-1f1pl16:hover{border-color:color-mix(in oklab, var(--color-brand-400) 50%, transparent);box-shadow:0 26px 52px -22px color-mix(in oklab, var(--color-brand-500) 60%, transparent);transform:translateY(-6px)}.chip.svelte-1f1pl16{transition:none}.skill-card.svelte-1f1pl16:hover,.skill-card.svelte-1f1pl16:focus-within,.skill-card.svelte-1f1pl16:hover .tile:where(.svelte-1f1pl16){transform:none}}html:not([data-welcome]) .welcome.svelte-15qwdg{display:none}.welcome.svelte-15qwdg{z-index:200;background:var(--surface);cursor:pointer;place-items:center;animation:2.6s forwards svelte-15qwdg-welcome-self-destruct;display:grid;position:fixed;inset:0}.welcome.leaving.svelte-15qwdg{opacity:0;pointer-events:none;transition:opacity .8s;animation:none}.welcome.leaving.svelte-15qwdg .inner:where(.svelte-15qwdg){opacity:0;transition:opacity .5s,transform .8s;transform:scale(1.05)}@keyframes svelte-15qwdg-welcome-self-destruct{0%,77%{opacity:1}to{opacity:0;visibility:hidden;pointer-events:none}}.inner.svelte-15qwdg{text-align:center;justify-items:center;gap:1.1rem;animation:.7s cubic-bezier(.2,.7,.3,1) both svelte-15qwdg-welcome-in;display:grid}@keyframes svelte-15qwdg-welcome-in{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:none}}.mark.svelte-15qwdg{filter:drop-shadow(0 0 28px color-mix(in oklab, var(--color-brand-500) 55%, transparent))}.greeting.svelte-15qwdg{letter-spacing:-.02em;font-size:clamp(2rem,6vw,2.9rem);font-weight:700}.note.svelte-15qwdg{animation:1.6s ease-in-out infinite svelte-15qwdg-note-pulse}@keyframes svelte-15qwdg-note-pulse{0%,to{opacity:.55}50%{opacity:1}}.track.svelte-15qwdg{background:color-mix(in oklab, var(--text-subtle) 25%, transparent);border-radius:999px;width:150px;height:2px;position:relative;overflow:hidden}.sweep.svelte-15qwdg{background:linear-gradient(90deg, var(--color-brand-500), var(--color-accent-400));border-radius:999px;width:45%;animation:1.1s ease-in-out infinite svelte-15qwdg-sweep;position:absolute;inset:0}@keyframes svelte-15qwdg-sweep{0%{translate:-110%}to{translate:250%}}
