@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-dark:#1d1d1b;--color-light:#e2e3d2;--color-purple-dark:#272336;--color-purple-light:#4e4674;--color-accent:#f6c15e;--color-muted:color-mix(in srgb, var(--color-light) 70%, transparent);--color-surface:color-mix(in srgb, var(--color-light) 96%, white);--color-on-surface:var(--color-dark);--border-strong:.5rem;--radius-frame:1.25rem;--radius-card:.65rem;--radius-pill:999px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--font-size-xs:.625rem;--font-size-sm:.75rem;--font-size-body:.875rem;--font-size-title:clamp(1rem, 1.5vw, 1.25rem);--motion-fast:.15s;--motion-standard:.22s;--focus-ring:0 0 0 .18rem var(--color-dark), 0 0 0 .32rem var(--color-accent);font-synthesis:none;color:var(--color-light);background:var(--color-dark);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:JetBrains Mono Variable,JetBrains Mono,monospace}*{box-sizing:border-box}html{background:var(--color-dark);scrollbar-color:var(--color-purple-light) transparent;min-width:320px;min-height:100%;font-size:110%}body{background:var(--color-purple-dark);min-height:100svh;font-size:var(--font-size-body);margin:0;padding:0;line-height:1.45}body:has(.project-page){padding:0}button,input,textarea,select{font:inherit}button,input{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,a:focus-visible{box-shadow:var(--focus-ring);outline:none}::selection{color:var(--color-dark);background:var(--color-accent)}.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}.site-frame{isolation:isolate;border:var(--border-strong) solid var(--color-light);border-radius:var(--radius-frame);background:linear-gradient(112deg, var(--color-purple-dark) 0%, #211f2d 34%, #151512 75%, #201d1a 100%);min-height:100svh;position:relative;overflow:clip}.site-frame:before{z-index:-2;pointer-events:none;content:"";filter:blur(.6rem)saturate(1.15);will-change:transform;background:radial-gradient(circle at 86% 82%,#f6c15e47,#0000 20rem),linear-gradient(118deg,#0000 14%,#4e46741f 30%,#714aae6b 46%,#f6c15e1f 56%,#0000 74%),radial-gradient(circle at 65% 92%,#4e4674e6,#0000 32rem),radial-gradient(circle at 15% 20%,#4925806b,#0000 28rem);animation:8s cubic-bezier(.45,.05,.55,.95) infinite background-drift;position:absolute;inset:-18%}.site-frame:after{z-index:-1;pointer-events:none;content:"";opacity:.32;mix-blend-mode:soft-light;background-image:url(../../../assets/noise.svg);background-size:128px 128px;position:absolute;inset:0}@media (width<=767px){.site-frame:after{opacity:.22;mix-blend-mode:normal}}@keyframes background-drift{0%,to{transform:translate(-4%,-2%)scaleX(1.04)rotate(-.6deg)skew(-1.2deg,.4deg)}25%{transform:translate(2%,-4%)scale(1.08,.96)rotate(.4deg)skew(1deg,-.5deg)}50%{transform:translate(5%,2%)scale(.98,1.08)rotate(.7deg)skew(.4deg,-.9deg)}75%{transform:translate(-1%,4%)scale(1.06,.98)rotate(-.4deg)skew(-.9deg,.6deg)}}.portfolio-shell{min-height:calc(100svh - (var(--border-strong) * 2));flex-direction:column;display:flex}.profile-panel{--frozen-glass-tint:#36232361;min-height:12.5rem;padding:var(--space-5) var(--space-4) var(--space-6);box-shadow:inset -1px 0 color-mix(in srgb, var(--color-light) 15%, transparent), inset 0 -1px color-mix(in srgb, var(--color-light) 9%, transparent), 0 1rem 2rem color-mix(in srgb, var(--color-dark) 22%, transparent);text-align:center;border-radius:0 1.25rem 1.25rem 0;place-items:center;display:grid}.profile-panel__content{justify-items:center;display:grid}.profile-panel__portrait{width:clamp(4.5rem,24vw,6rem);height:auto;image-rendering:pixelated;border-radius:50%;display:block}.profile-panel__identity{margin-top:var(--space-3)}.profile-panel__intro,.profile-panel__name,.profile-panel__bio{margin:0}.profile-panel__intro{color:var(--color-muted);font-size:var(--font-size-xs);text-transform:lowercase;line-height:1.15}.profile-panel__name{color:var(--color-accent);font-size:var(--font-size-title);letter-spacing:-.06em;text-shadow:.08em .08em 0 color-mix(in srgb, var(--color-purple-light) 70%, black);font-weight:800;line-height:1.1}.profile-panel__bio{max-width:20rem;margin-top:var(--space-5);color:var(--color-muted);font-size:var(--font-size-sm);line-height:1.35}.profile-panel__desktop-break{display:none}.project-region{min-width:0;min-height:0}.project-region__scroller{min-height:100%}.project-toolbar{--frozen-glass-tint:#18171f70;z-index:10;justify-content:space-between;align-items:center;gap:var(--space-2);padding:calc(1.25rem + var(--space-3)) var(--space-3) var(--space-4);box-shadow:inset 0 1px color-mix(in srgb, var(--color-light) 12%, transparent), inset 0 -1px color-mix(in srgb, var(--color-light) 8%, transparent), 0 .85rem 1.5rem color-mix(in srgb, var(--color-dark) 30%, transparent);flex-wrap:wrap;margin-top:-1.25rem;display:flex;position:sticky;top:0}.profile-panel,.project-toolbar{-webkit-backdrop-filter:blur(.75rem)saturate(1.35);backdrop-filter:blur(.75rem)saturate(1.35);background-color:var(--frozen-glass-tint);background-blend-mode:screen, soft-light}.category-filter{width:100%;padding:var(--space-1);border:1px solid color-mix(in srgb, var(--color-light) 38%, transparent);border-radius:var(--radius-pill);box-shadow:inset 0 1px #ffffff7a, 0 .35rem 1rem color-mix(in srgb, var(--color-dark) 14%, transparent);scrollbar-width:none;background-color:#e2e3d2d1;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:relative;overflow-x:auto}.category-filter__selection{top:var(--space-1);bottom:var(--space-1);left:var(--space-1);border-radius:var(--radius-pill);background:var(--color-dark);width:calc(20% - .1rem);transform:translateX(calc(var(--active-category-index) * 100%));transition:transform .36s cubic-bezier(.22,.8,.3,1);position:absolute}.category-filter::-webkit-scrollbar{display:none}.category-filter__button{z-index:1;border-radius:var(--radius-pill);min-width:0;min-height:1.75rem;color:var(--color-on-surface);cursor:pointer;letter-spacing:-.04em;text-transform:uppercase;transition:color var(--motion-fast) ease, background-color var(--motion-fast) ease, transform var(--motion-fast) ease;background:0 0;border:0;padding:.25rem .5rem;font-size:.5625rem;font-weight:500;position:relative}.category-filter__button:hover{background:color-mix(in srgb, var(--color-purple-light) 14%, transparent)}.category-filter__button:active{transform:scale(.96)}.category-filter__button--active{color:var(--category-color);background:0 0}.category-filter__button--active:hover{background:0 0}.project-search{justify-content:flex-end;align-items:center;gap:0;width:100%;display:flex}.project-search__field{opacity:0;visibility:hidden;width:0;min-width:0;transition:width var(--motion-standard) ease, flex-basis var(--motion-standard) ease, opacity var(--motion-fast) ease, transform var(--motion-standard) ease;flex:0 1 0;transform:translate(.5rem)}.project-search--open{gap:var(--space-3)}.project-search--open .project-search__field{opacity:1;visibility:visible;flex:10rem;width:min(16rem,100% - 3rem);transform:translate(0)}.project-search input{width:100%;padding:var(--space-2) 0;color:var(--color-light);letter-spacing:.06em;text-align:left;text-transform:none;transition:border-color var(--motion-fast) ease;background:0 0;border:0;border-bottom:1px solid #0000;outline:0;font-size:1rem}.project-search input::placeholder{color:var(--color-light);opacity:1;text-transform:uppercase}.project-search input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.project-search input:focus-visible{border-color:var(--color-accent);box-shadow:none}.project-search__button{width:2rem;height:2rem;color:var(--color-dark);background:var(--color-accent);cursor:pointer;transition:background-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease, transform var(--motion-fast) ease;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.project-search__button:hover{background:color-mix(in srgb, var(--color-accent) 78%, var(--color-light));box-shadow:0 0 0 .2rem color-mix(in srgb, var(--color-accent) 18%, transparent);transform:translateY(-1px)}.project-search__button:active{transform:scale(.94)}.project-canvas{min-height:18rem;padding:var(--space-5)}.project-grid{gap:var(--space-5);grid-template-columns:minmax(0,1fr);width:100%;margin:0;padding:0;list-style:none;display:grid}.project-grid>li{min-width:0}.project-canvas__status{max-width:26rem;margin:var(--space-7) auto;padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb, var(--color-light) 24%, transparent);border-radius:var(--radius-pill);color:var(--color-muted);background:color-mix(in srgb, var(--color-dark) 45%, transparent);font-size:var(--font-size-xs);letter-spacing:.04em;text-align:center}@media (width>=768px){.site-frame{min-height:100svh}.portfolio-shell{min-height:calc(100svh - (var(--border-strong) * 2))}.profile-panel{padding-block:var(--space-6)}.profile-panel__portrait{width:6.75rem}.project-toolbar{gap:var(--space-6);padding:var(--space-5) var(--space-6);-webkit-backdrop-filter:blur(1rem)saturate(1.4);backdrop-filter:blur(1rem)saturate(1.4);flex-wrap:nowrap;margin-top:0}.category-filter{width:min(24rem,58vw)}.category-filter__button{font-size:var(--font-size-xs);padding-inline:.65rem}.project-search{justify-content:flex-end;width:auto;min-width:11rem}.project-search input{width:100%;font-size:var(--font-size-xs)}.project-canvas{min-height:26rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){html,body{height:100%;overflow:hidden}:is(html:has(.project-page),body:has(.project-page)){height:auto;overflow:auto}.site-frame{height:100vh;min-height:0}.portfolio-shell{grid-template-columns:minmax(15rem,27%) minmax(0,1fr);height:100%;min-height:0;display:grid}.profile-panel{min-height:0;padding:clamp(3.5rem, 10vh, 6rem) var(--space-5) var(--space-6);border-radius:0 0 1.25rem;align-content:start}.profile-panel__portrait{width:clamp(6rem,9vw,8rem)}.profile-panel__identity{margin-top:var(--space-5)}.profile-panel__desktop-break{display:initial}.project-region,.project-region__scroller{height:100%}.project-region__scroller{overscroll-behavior:contain;scrollbar-gutter:stable;overflow-y:auto}.project-region__scroller--locked{overflow:hidden}.project-toolbar{padding:var(--space-6) clamp(var(--space-6), 5vw, 4.5rem) var(--space-5)}.project-canvas{min-height:calc(100% - 6rem);padding:var(--space-5) clamp(var(--space-6), 5vw, 4.5rem) var(--space-7)}.project-grid{gap:clamp(var(--space-3), 1.7vw, var(--space-5));grid-template-columns:repeat(3,minmax(0,1fr))}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.profile-panel{--frozen-glass-tint:#272336db}.project-toolbar{--frozen-glass-tint:#18171fe6}}@media (prefers-reduced-transparency:reduce){.profile-panel{--frozen-glass-tint:#272336e6}.project-toolbar{--frozen-glass-tint:#18171ff0}.profile-panel,.project-toolbar{-webkit-backdrop-filter:none;backdrop-filter:none}.category-filter{background-color:#e2e3d2f5}}@media (prefers-reduced-motion:reduce){.site-frame:before,.category-filter__selection{transition:none;animation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
