.project-animation{aspect-ratio:3/2;width:100%;height:100%;display:block;overflow:hidden}.project-animation__scene [data-motion]{transform-box:view-box}.portfolio .project-motion-toggle{border:1px solid var(--line,#29374d);min-height:44px;color:var(--muted,#9aa7bd);font:11px/1.5 var(--mono,monospace);white-space:nowrap;cursor:pointer;background:0 0;border-radius:3px;align-items:center;gap:9px;padding:9px 13px;display:inline-flex}.portfolio .project-motion-toggle:hover:not(:disabled){color:var(--accent,#82b6ff);border-color:var(--accent,#82b6ff)}.portfolio .project-motion-toggle:disabled{opacity:.65;cursor:default}.portfolio .project-motion-toggle>span{width:12px;color:var(--accent,#82b6ff);text-align:center}.portfolio-work__tools{flex-direction:column;align-items:flex-end;gap:15px;display:flex}.project-archive__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 18px;margin-bottom:22px;display:flex}.project-archive .project-archive__toolbar .project-archive__filters{margin-bottom:0}@media (max-width:620px){.portfolio-work__tools{align-items:flex-start}.project-archive__toolbar{gap:12px}}
.project-archive{--archive-mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;width:100%;color:var(--ink,#e5ebf5);font-family:inherit}.project-archive .project-archive__filters{flex-wrap:wrap;gap:8px;margin-bottom:25px;display:flex}.project-archive .project-archive__filter,.project-archive .project-archive__toggle{appearance:none;border:1px solid var(--line,#29374d);background:var(--paper,#0b0f17);min-height:44px;color:var(--muted,#9aa7bd);font:inherit;font-family:var(--archive-mono);cursor:pointer;border-radius:3px;padding:9px 15px;font-size:12px;font-weight:500;line-height:1.5;transition:background-color .18s,border-color .18s,color .18s}.project-archive .project-archive__filter:hover,.project-archive .project-archive__toggle:hover{border-color:var(--muted,#9aa7bd);background:var(--archive-hover,#131d2c);color:var(--ink,#e5ebf5)}.project-archive .project-archive__filter[aria-pressed=true]{border-color:var(--accent,#82b6ff);background:var(--accent,#82b6ff);color:var(--paper,#0b0f17)}.project-archive .project-archive__count{color:var(--muted,#9aa7bd);font-family:var(--archive-mono);margin:0 0 12px;font-size:12px;line-height:1.5}.project-archive .project-archive__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;padding:0;list-style:none;display:grid}.project-archive .project-archive__project{border:1px solid var(--line,#29374d);background:var(--surface,#121a27);border-radius:4px;flex-direction:column;min-width:0;transition:border-color .18s;display:flex;overflow:hidden}.project-archive .project-archive__project:hover,.project-archive .project-archive__project:focus-within{border-color:var(--accent,#82b6ff)}.project-archive .project-archive__artwork{aspect-ratio:3/2;border-bottom:1px solid var(--line,#29374d);background:var(--paper,#0b0f17);position:relative;overflow:hidden}.project-archive .project-archive__body{flex-direction:column;flex:1;gap:15px;padding:22px;display:flex}.project-archive .project-archive__meta{color:var(--muted,#9aa7bd);font-family:var(--archive-mono);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:0 0 11px;font-size:10px;line-height:1.5;display:flex}.project-archive .project-archive__title{color:var(--ink,#e5ebf5);font-family:var(--archive-mono);letter-spacing:-.7px;overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:500;line-height:1.4}.project-archive .project-archive__description{color:var(--muted,#9aa7bd);margin:0;font-size:14px;line-height:1.7}.project-archive .project-archive__tags{flex-wrap:wrap;gap:6px;margin:15px 0 0;padding:0;list-style:none;display:flex}.project-archive .project-archive__tag{border:1px solid var(--line,#29374d);color:var(--muted,#9aa7bd);font-family:var(--archive-mono);border-radius:2px;padding:3px 7px;font-size:10px;line-height:1.5}.project-archive .project-archive__tag a{color:inherit;font:inherit;text-underline-offset:3px;text-decoration:none}.project-archive .project-archive__tag a:hover{color:var(--ink,#e5ebf5);text-decoration:underline}.project-archive .project-archive__links{border-top:1px solid var(--line,#29374d);flex-wrap:wrap;align-items:center;gap:0 20px;margin-top:auto;padding-top:12px;display:flex}.project-archive .project-archive__link{min-height:38px;color:var(--ink,#e5ebf5);font:inherit;font-family:var(--archive-mono);text-underline-offset:4px;justify-content:flex-start;align-items:baseline;gap:9px;padding:5px 0;font-size:12px;line-height:1.7;text-decoration:none;display:inline-flex}.project-archive .project-archive__link>span:last-child{color:var(--muted,#9aa7bd)}.project-archive .project-archive__link:hover{color:var(--accent,#82b6ff);text-decoration:underline}.project-archive .project-archive__footer{justify-content:center;padding-top:28px;display:flex}.project-archive .project-archive__toggle{justify-content:center;align-items:center;gap:28px;min-height:44px;padding:10px 22px;display:inline-flex}.project-archive .project-archive__toggle>span{color:var(--accent,#82b6ff);font-size:19px;line-height:1}.project-archive .project-archive__filter:focus-visible,.project-archive .project-archive__toggle:focus-visible,.project-archive .project-archive__link:focus-visible,.project-archive .project-archive__tag a:focus-visible{outline:2px solid var(--accent,#82b6ff);outline-offset:4px}@media (max-width:1050px){.project-archive .project-archive__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (max-width:620px){.project-archive .project-archive__filters{gap:7px;margin-bottom:22px}.project-archive .project-archive__filter{min-height:44px;padding:9px 11px;font-size:11px}.project-archive .project-archive__list{grid-template-columns:minmax(0,1fr);gap:24px}.project-archive .project-archive__body{padding:20px}.project-archive .project-archive__title{font-size:18px}.project-archive .project-archive__links{gap:0 22px}.project-archive .project-archive__link{min-height:44px;padding:10px 0;font-size:12px}}@media (prefers-reduced-motion:reduce){.project-archive .project-archive__filter,.project-archive .project-archive__toggle,.project-archive .project-archive__project{transition:none}}
.dev-console{color:#e7ecf5;text-align:left;background:#101722;border:1px solid #29374d;border-radius:10px;width:100%;min-width:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.6;overflow:hidden;box-shadow:0 20px 60px #00000035}.dev-console *,.dev-console :before,.dev-console :after{box-sizing:border-box}.dev-console__header{background:#151e2c;border-bottom:1px solid #29374d;align-items:stretch;min-height:45px;display:flex}.dev-console__traffic{align-items:center;gap:6px;padding:0 18px;display:flex}.dev-console__traffic i{background:#956957;border-radius:50%;width:7px;height:7px}.dev-console__traffic i:nth-child(2){background:#a58c53}.dev-console__traffic i:nth-child(3){background:#6b8db7}.dev-console__tabs{min-width:0;display:flex}.dev-console__tabs button{color:#9caac0;font:inherit;cursor:pointer;background:0 0;border:0;border-right:1px solid #29374d;border-radius:0;align-items:center;gap:8px;margin:0;padding:0 17px;display:flex;position:relative}.dev-console__tabs button:first-child{border-left:1px solid #29374d}.dev-console__tabs button[aria-selected=true]{color:#e7ecf5;background:#101722}.dev-console__tabs button[aria-selected=true]:before{content:"";background:#8cbdff;height:2px;position:absolute;top:0;left:0;right:0}.dev-console__tabs button span,.dev-console__tabs button:hover{color:#8cbdff}.dev-console :focus-visible{outline-offset:-3px;outline:2px solid #8cbdff}.dev-console__panel{height:322px}.dev-console__panel[hidden]{display:none}.dev-console__profile{scrollbar-width:thin;scrollbar-color:#393f48 transparent;padding:13px 0 17px;overflow-y:auto}.dev-console__breadcrumb{letter-spacing:.2px;color:#9caac0;padding:0 20px 15px;font-size:10px}.dev-console__breadcrumb span{color:#535a63;padding:0 7px}.dev-console__code{font:inherit;white-space:pre-wrap;margin:0;padding:0 15px 0 0;line-height:20px}.dev-console__line{min-height:20px;display:flex}.dev-console__line:hover{background:#8cbdff05}.dev-console__number{color:#666c75;text-align:right;-webkit-user-select:none;user-select:none;flex:0 0 43px;width:43px;padding-right:14px;font-size:10px}.dev-console__source{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0}.dev-console__comment{color:#9caac0}.dev-console__variable{color:#e7ecf5}.dev-console__key{color:#a9bdff}.dev-console__string{color:#8cbdff}.dev-console__function{color:#e9bf7b}.dev-console__terminal{flex-direction:column;gap:15px;padding:22px;display:flex}.dev-console__welcome{color:#e7ecf5;flex:none;font-size:12px}.dev-console__welcome>span{color:#9caac0}.dev-console__welcome b{color:#8cbdff;font-weight:400}.dev-console__history{overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:#393f48 transparent;flex:auto;min-height:0;max-height:208px;overflow-y:auto}.dev-console__entry+.dev-console__entry{margin-top:13px}.dev-console__command{color:#e7ecf5}.dev-console__command>span{color:#8cbdff;padding-right:8px}.dev-console__output{color:#9caac0;margin-top:5px}.dev-console__output a{color:#8cbdff;text-underline-offset:4px;text-decoration:underline}.dev-console__commands{color:#e9bf7b}.dev-console__prompt{border-top:1px solid #29374d;flex:none;align-items:center;gap:10px;min-height:36px;padding-top:8px;display:flex}.dev-console__prompt label{color:#8cbdff}.dev-console__prompt input{color:#e7ecf5;width:100%;min-width:0;font:inherit;caret-color:#8cbdff;background:0 0;border:0;border-radius:0;flex:1;padding:4px 0}.dev-console__prompt input::placeholder{color:#9caac0}.dev-console__prompt button{color:#8cbdff;width:32px;height:28px;font:inherit;cursor:pointer;background:#1a1e23;border:1px solid #353b43;border-radius:4px;flex:0 0 32px;place-items:center;margin:0;padding:0;font-size:18px;line-height:1;display:grid}.dev-console__prompt button:hover{background:#262d37}.dev-console__status{color:#92a8c6;background:#191e24;border-top:1px solid #29374d;justify-content:space-between;gap:8px;padding:7px 14px;font-size:10px;line-height:16px;display:flex}.dev-console__status>span:first-child>span{color:#8cbdff;padding-right:5px}.dev-console__encoding{color:#9caac0;padding-left:12px}.dev-console__sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:600px){.dev-console{border-radius:7px;font-size:11px}.dev-console__traffic{gap:5px;padding:0 12px}.dev-console__traffic i{width:6px;height:6px}.dev-console__tabs button{gap:6px;padding:0 12px}.dev-console__breadcrumb{padding-left:14px}.dev-console__number{flex-basis:32px;width:32px;padding-right:10px}.dev-console__code{padding-right:10px}.dev-console__terminal{gap:12px;padding:17px 14px}.dev-console__welcome{font-size:11px}.dev-console__prompt input{font-size:16px}.dev-console__status{padding-left:10px;padding-right:10px;font-size:9px}.dev-console__encoding{padding-left:7px}}
.arcade-easter-egg{color:#edf2fa;width:100%;max-width:none;height:100%;max-height:none;font-family:var(--font-geist-mono),ui-monospace,monospace;background:#0b0f17;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.arcade-easter-egg::backdrop{background:#0b0f17}.arcade-easter-egg__close{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:100;color:#c9defc;min-height:44px;font:inherit;cursor:pointer;background:#101927;border:1px solid #405472;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:9px 14px;font-size:13px;display:inline-flex;position:fixed}.arcade-easter-egg__close:hover{background:#18263a;border-color:#82b6ff}.arcade-easter-egg__close:focus-visible{outline-offset:4px;outline:2px solid #82b6ff}.arcade-easter-egg__close kbd{color:#82b6ff;font:inherit;border:1px solid #405472;border-radius:3px;padding:2px 4px;font-size:10px}.arcade-easter-egg__message{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100%;padding:80px 24px;display:flex}.arcade-easter-egg__message p{color:#a8b4c6;max-width:440px;margin:0;font-size:14px;line-height:1.7}.arcade-easter-egg__label{color:#82b6ff;letter-spacing:.14em;text-transform:uppercase;font-size:13px}.arcade-easter-egg__sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.arcade-easter-egg .invaders-back{display:none}.arcade-easter-egg .invaders-topbar{padding-right:175px}@media (max-width:700px){.arcade-easter-egg .invaders-topbar{padding-top:max(73px,calc(env(safe-area-inset-top) + 60px));padding-right:18px}}@media (max-width:700px) and (max-height:650px){.arcade-easter-egg .invaders-topbar{padding:8px 72px 8px 12px}.arcade-easter-egg__close{gap:0;width:44px;padding:10px;font-size:0;top:8px;right:12px}.arcade-easter-egg__close>span{font-size:21px}.arcade-easter-egg__close kbd{display:none}}
.portfolio .arcade-portrait{min-width:44px;min-height:44px;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.portfolio .arcade-portrait img{transition:filter .16s,box-shadow .16s;display:block}.portfolio .arcade-portrait:is(:hover,:focus-visible) img{filter:grayscale(.35);box-shadow:0 0 0 1px var(--accent)}@media (prefers-reduced-motion:reduce){.portfolio .arcade-portrait img{transition:none}}
