.ambient.svelte-dwy068{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.glow.svelte-dwy068{filter:blur(64px);mix-blend-mode:screen;opacity:calc(.3 * var(--intensity));animation:svelte-dwy068-drift var(--dur) ease-in-out infinite alternate;will-change:transform;position:absolute;inset:-45%}: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 58%);animation-delay:-6s}.glow-b.svelte-dwy068{background:radial-gradient(circle at 78% 38%, var(--color-brand-600), transparent 56%);animation-delay:-13s}.glow-c.svelte-dwy068{background:radial-gradient(circle at 50% 82%, var(--color-accent-500), transparent 54%);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");animation:2.6s steps(3,end) infinite svelte-dwy068-grain-shift;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)}}@keyframes svelte-dwy068-grain-shift{to{transform:translate(4%,-4%)}}@media (prefers-reduced-motion:reduce){.glow.svelte-dwy068,.grain.svelte-dwy068{animation:none}}.terminal.svelte-ero019{width:min(46rem,100vw - 1.5rem);color:var(--text);transition:opacity .22s ease, overlay .22s allow-discrete, display .22s allow-discrete;opacity:0;background:0 0;border:none;margin:auto;padding:0}.terminal[open].svelte-ero019{opacity:1}@starting-style{.terminal[open].svelte-ero019{opacity:0}}.terminal.svelte-ero019::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b8}.window.svelte-ero019{border:1px solid var(--border-strong);background:color-mix(in oklab, var(--surface-sunken) 92%, black);border-radius:12px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 32px 80px -24px #000c}.chrome.svelte-ero019{border-bottom:1px solid var(--border);background:color-mix(in oklab, var(--surface-raised) 70%, black);grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;padding:.6rem .85rem;display:grid}.lights.svelte-ero019{gap:.45rem;display:flex}.light.svelte-ero019{border-radius:9999px;width:12px;height:12px}.red.svelte-ero019{background:#ff5f57}.amber.svelte-ero019{background:#febc2e}.green.svelte-ero019{background:#28c840}.chrome-title.svelte-ero019{font-family:var(--font-mono);color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.chrome-close.svelte-ero019{color:var(--text-subtle);border-radius:6px;justify-self:end;padding:.25rem;transition:color .2s}.chrome-close.svelte-ero019:hover{color:var(--text)}.screen.svelte-ero019{height:min(60vh,30rem);font-family:var(--font-mono);cursor:text;padding:1rem 1.1rem 1.4rem;font-size:.8125rem;line-height:1.7;overflow-y:auto}.prompt.svelte-ero019{color:var(--color-accent-400);white-space:pre;-webkit-user-select:none;user-select:none}.command.svelte-ero019{color:var(--text);margin-top:1.1rem}.command.svelte-ero019 .prompt:where(.svelte-ero019):after{content:" "}.busy.svelte-ero019{color:var(--text-subtle);margin-top:.6rem}.dots.svelte-ero019:after{content:"";animation:1.2s steps(4,end) infinite svelte-ero019-dots}@keyframes svelte-ero019-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.output.svelte-ero019{color:var(--text-muted)}.output.svelte-ero019 p{margin-block:.5rem}.output.svelte-ero019 strong{color:var(--text);font-weight:600}.output.svelte-ero019 code{background:color-mix(in oklab, var(--color-brand-500) 18%, transparent);color:var(--color-brand-200);border-radius:4px;padding:.05rem .35rem}.output.svelte-ero019 a{color:var(--color-brand-300);text-underline-offset:2px;text-decoration:underline}.output.svelte-ero019 a:hover{color:var(--color-accent-300)}.output.svelte-ero019 ul,.output.svelte-ero019 ol{margin-block:.5rem;padding-left:1.1rem}.output.svelte-ero019 ul{padding-left:0;list-style:none}.output.svelte-ero019 ul li:before{content:"·  ";color:var(--color-accent-400)}.output.svelte-ero019 ol{list-style:decimal}.output.svelte-ero019 li{margin-block:.15rem}.answer.svelte-ero019>*{animation:.34s ease-out both svelte-ero019-print}.answer.svelte-ero019>:nth-child(2){animation-delay:90ms}.answer.svelte-ero019>:nth-child(3){animation-delay:.18s}.answer.svelte-ero019>:nth-child(4){animation-delay:.27s}.answer.svelte-ero019>:nth-child(n+5){animation-delay:.34s}@keyframes svelte-ero019-print{0%{opacity:0;translate:0 4px}to{opacity:1;translate:none}}.suggestions.svelte-ero019{flex-wrap:wrap;gap:.4rem;margin-top:.9rem;display:flex}.suggestions.svelte-ero019 button:where(.svelte-ero019){border:1px solid var(--border);background:var(--glass);font-family:var(--font-mono);color:var(--text-subtle);border-radius:6px;padding:.3rem .6rem;font-size:.75rem;transition:color .2s,border-color .2s}.suggestions.svelte-ero019 button:where(.svelte-ero019):hover{border-color:var(--color-accent-400);color:var(--text)}.live.svelte-ero019{align-items:baseline;gap:.5rem;margin-top:1.1rem;display:flex}.live.svelte-ero019 input:where(.svelte-ero019){min-width:0;color:var(--text);font:inherit;caret-color:var(--color-accent-400);background:0 0;border:none;outline:none;flex:1}.live.svelte-ero019 input:where(.svelte-ero019)::placeholder{color:var(--text-subtle)}.statusbar.svelte-ero019{border-top:1px solid var(--border);background:color-mix(in oklab, var(--surface-raised) 70%, black);font-family:var(--font-mono);color:var(--text-subtle);padding:.5rem .85rem;font-size:.7rem}@media (prefers-reduced-motion:reduce){.answer.svelte-ero019>*{animation:none}.dots.svelte-ero019:after{content:"...";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;will-change:opacity, transform;border-radius:9999px;position:absolute;inset:14%}.halo-steady.svelte-4z0feo{background:radial-gradient(circle, var(--color-brand-500) 0%, transparent 66%);opacity:.22;filter:blur(58px)}.halo-pulse.svelte-4z0feo{background:radial-gradient(circle at 45% 40%, var(--color-brand-400) 0%, var(--color-accent-500) 45%, transparent 70%);opacity:.16;filter:blur(64px);animation:7s ease-in-out infinite alternate svelte-4z0feo-breathe}:root[data-theme=light] .halo-steady.svelte-4z0feo{opacity:.16}:root[data-theme=light] .halo-pulse.svelte-4z0feo{opacity:.12}@keyframes svelte-4z0feo-breathe{0%{opacity:.1;transform:scale(.94)}to{opacity:.22;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}}.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)}.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{transition:background-color .35s,border-color .35s,box-shadow .35s,transform .35s}.skill-card.svelte-1f1pl16:hover .tile:where(.svelte-1f1pl16){background-color:var(--tint);box-shadow:0 0 30px color-mix(in oklab, var(--tint) 55%, transparent);border-color:#0000;transform:scale(1.08)}.glyph.svelte-1f1pl16{transition:color .35s}.skill-card.svelte-1f1pl16:hover .glyph:where(.svelte-1f1pl16){color:var(--ink)}@media (prefers-reduced-motion:reduce){.skill-card.svelte-1f1pl16,.skill-card.svelte-1f1pl16:before,.tile.svelte-1f1pl16,.chip.svelte-1f1pl16,.glyph.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}}
