:root{--color-background: #ffffff;--color-background-alt: #f5f5f5;--color-surface: #fafafa;--color-surface-alt: #f0f0f0;--color-surface-muted: #e9e9e9;--color-border: #e0e0e0;--gray-0: #ffffff;--gray-50: #f7f7f7;--gray-100: #f0f0f0;--gray-200: #e0e0e0;--gray-300: #c8c8c8;--gray-400: #a3a3a3;--gray-500: #808080;--gray-600: #666666;--gray-700: #4d4d4d;--gray-750: #3d3d3d;--gray-800: #2b2b2b;--gray-850: #1d1d1d;--gray-900: #111111;--gray-950: #0a0a0a;--gray-1000: #000000;--color-primary: var(--gray-1000);--color-primary-80: var(--gray-850);--color-primary-60: var(--gray-700);--color-primary-40: var(--gray-500);--color-primary-20: var(--gray-300);--color-primary-10: var(--gray-200);--color-secondary: #2b2b2b;--color-secondary-alt: #3d3d3d;--color-text-primary: #111111;--color-text-secondary: #3d3d3d;--color-text-muted: #666666;--color-text-faint: #808080;--color-text-inverse: #ffffff;--color-link: #000000;--color-link-hover: #444444;--color-link-active: #000000;--color-link-visited: #222222;--color-link-underline: #808080;--color-icon: #333333;--color-icon-muted: #666666;--color-icon-inverse: #ffffff;--color-focus-ring: #000000;--color-outline: #111111;--color-selection-bg: #000000;--color-selection-text: #ffffff;--color-shadow-soft: rgba(0, 0, 0, .06);--color-shadow: rgba(0, 0, 0, .12);--color-shadow-strong: rgba(0, 0, 0, .24);--color-backdrop: rgba(0, 0, 0, .55);--gradient-soft: linear-gradient(180deg, #ffffff, #f0f0f0);--gradient-inset: linear-gradient(180deg, #2b2b2b, #111111)}:root[data-theme=dark]{--gray-0: #efefef;--gray-50: #f7f7f7;--gray-100: #f0f0f0;--gray-200: #e0e0e0;--gray-300: #c8c8c8;--gray-400: #a3a3a3;--gray-500: #808080;--gray-600: #666666;--gray-700: #4d4d4d;--gray-750: #3d3d3d;--gray-800: #2b2b2b;--gray-850: #1d1d1d;--gray-900: #111111;--gray-950: #0a0a0a;--gray-1000: #000000;--color-background: var(--gray-950);--color-background-alt: var(--gray-900);--color-surface: var(--gray-850);--color-surface-alt: var(--gray-800);--color-surface-muted: var(--gray-750);--color-border: var(--gray-700);--color-primary: var(--gray-0);--color-primary-80: var(--gray-200);--color-primary-60: var(--gray-400);--color-primary-40: var(--gray-600);--color-primary-20: var(--gray-800);--color-primary-10: var(--gray-900);--color-secondary: var(--gray-800);--color-secondary-alt: var(--gray-750);--color-text-primary: var(--gray-0);--color-text-secondary: var(--gray-300);--color-text-muted: var(--gray-400);--color-text-faint: var(--gray-500);--color-text-inverse: var(--gray-1000);--color-link: var(--gray-0);--color-link-hover: var(--gray-300);--color-link-active: var(--gray-0);--color-link-visited: var(--gray-200);--color-link-underline: var(--gray-500);--color-icon: var(--gray-300);--color-icon-muted: var(--gray-600);--color-icon-inverse: var(--gray-1000);--color-focus-ring: var(--gray-0);--color-outline: var(--gray-300);--color-selection-bg: var(--gray-0);--color-selection-text: var(--gray-1000);--color-shadow-soft: rgba(0, 0, 0, .3);--color-shadow: rgba(0, 0, 0, .45);--color-shadow-strong: rgba(0, 0, 0, .6);--color-backdrop: rgba(0, 0, 0, .7);--gradient-soft: linear-gradient(180deg, var(--gray-850), var(--gray-950));--gradient-inset: linear-gradient(180deg, var(--gray-800), var(--gray-900))}html,body{margin:0;padding:0;overflow-y:scroll;overflow-x:hidden;display:block;width:100vw;background-color:var(--color-background);box-sizing:border-box;cursor:none}@media (hover: none),(pointer: coarse){html,body{cursor:auto}.cursor,.center-dot{display:none!important}}*,*:before,*:after{margin:0;padding:0;border:0;outline:0;vertical-align:baseline;box-sizing:border-box;font-family:Inter Variable,sans-serif;color:var(--color-text-primary)}html{line-height:1.15;-webkit-text-size-adjust:100%}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;text-decoration:none;color:inherit}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp,tt{padding:2px 5px;background-color:#f2f2f2;font-family:Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace}small{font-size:80%}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}::-moz-focus-inner{border:0;padding:0}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-ms-overflow-style:auto;scrollbar-width:thin;scrollbar-color:var(--color-primary, rgba(120, 120, 120, .6)) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--color-thumb, rgba(120, 120, 120, .6));border-radius:8px;border:2px dashed transparent;background-clip:content-box}.footer-container[data-astro-cid-sz7xmlte]{width:100%;margin-top:4rem;padding:2.75rem 1.25rem 3.25rem;background:var(--color-background-surface);border-top:1px solid var(--color-border);font-size:.95rem;color:var(--color-text-muted)}.footer-inner[data-astro-cid-sz7xmlte]{width:min(1180px,92%);margin-inline:auto;display:grid;gap:2rem}@media (min-width: 640px){.footer-inner[data-astro-cid-sz7xmlte]{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:start}}@media (min-width: 960px){.footer-inner[data-astro-cid-sz7xmlte]{grid-template-columns:1.3fr 1fr 1fr 1.4fr}}.primary[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:.5rem}.brand[data-astro-cid-sz7xmlte]{margin:0;font-weight:500;letter-spacing:.5px}.brand[data-astro-cid-sz7xmlte] .name[data-astro-cid-sz7xmlte]{color:var(--color-text-primary);font-weight:600}.tagline[data-astro-cid-sz7xmlte]{margin:0;font-size:.88rem;line-height:1.4;max-width:28ch;color:var(--color-text-secondary)}.heading[data-astro-cid-sz7xmlte]{margin:0 0 .65rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--color-text-muted)}.mini-nav[data-astro-cid-sz7xmlte],.social-nav[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column}.mini-list[data-astro-cid-sz7xmlte],.social-list[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.mini-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte],.social-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{position:relative;text-decoration:none;color:var(--color-text-secondary);font-weight:500;letter-spacing:.03em;padding:2px 0}.mini-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:after,.social-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease;opacity:.5}.mini-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover:after,.mini-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:focus-visible:after,.social-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover:after,.social-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:focus-visible:after{transform:scaleX(1)}.mini-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:focus-visible,.social-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:2px}.meta-block[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:.4rem}.stack[data-astro-cid-sz7xmlte]{margin:0;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--color-text-muted)}.stack[data-astro-cid-sz7xmlte] span[data-astro-cid-sz7xmlte]{color:var(--color-text-secondary);font-weight:500}.meta[data-astro-cid-sz7xmlte]{margin:0;font-size:.8rem;opacity:.85;line-height:1.4}.meta[data-astro-cid-sz7xmlte].small{opacity:.7}.meta[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:inherit;text-decoration:none}.meta[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{text-decoration:underline}.top-btn[data-astro-cid-sz7xmlte]{background:none;border:none;padding:0;font:inherit;color:var(--color-text-secondary);cursor:pointer;position:relative}.top-btn[data-astro-cid-sz7xmlte]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease;opacity:.5}.top-btn[data-astro-cid-sz7xmlte]:hover:after,.top-btn[data-astro-cid-sz7xmlte]:focus-visible:after{transform:scaleX(1)}.top-btn[data-astro-cid-sz7xmlte]:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:2px}.visually-hidden[data-astro-cid-sz7xmlte]{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);border:0;white-space:nowrap}@media (prefers-reduced-motion: reduce){.mini-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:after,.social-list[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:after,.top-btn[data-astro-cid-sz7xmlte]:after{transition:none}}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio/_astro/great-vibes-cyrillic-ext-400-normal.CKQhgFwn.woff2) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio/_astro/great-vibes-cyrillic-400-normal.C-wcqNJs.woff2) format("woff2"),url(/portfolio/_astro/great-vibes-cyrillic-400-normal.DtFXCWjq.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio/_astro/great-vibes-vietnamese-400-normal.a2O3jU53.woff2) format("woff2"),url(/portfolio/_astro/great-vibes-vietnamese-400-normal.Cxbm9Uac.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio/_astro/great-vibes-latin-ext-400-normal.CsjMq8GN.woff2) format("woff2"),url(/portfolio/_astro/great-vibes-latin-ext-400-normal.wh4xxCIu.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio/_astro/great-vibes-latin-400-normal.DaVmd4qI.woff2) format("woff2"),url(/portfolio/_astro/great-vibes-latin-400-normal.BAZ173uY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/portfolio/_astro/playfair-display-cyrillic-wght-normal.5WvUvBgz.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/portfolio/_astro/playfair-display-vietnamese-wght-normal.Cabi7G8-.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/portfolio/_astro/playfair-display-latin-ext-wght-normal.B3MEdh-d.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Playfair Display Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/portfolio/_astro/playfair-display-latin-wght-normal.DaCzVAht.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/portfolio/_astro/inter-cyrillic-ext-wght-normal.B2xhLi22.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/portfolio/_astro/inter-cyrillic-wght-normal.CMZtQduZ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/portfolio/_astro/inter-greek-ext-wght-normal.CGAr0uHJ.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/portfolio/_astro/inter-greek-wght-normal.CaVNZxsx.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/portfolio/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/portfolio/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/portfolio/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.cursor{position:fixed;width:40px;height:40px;border-radius:50%;border:2px solid var(--color-primary);transform:translate(-50%,-50%);pointer-events:none;z-index:9999;overflow:hidden;display:flex;align-items:center;justify-content:center}.lens{position:absolute;width:100%;height:100%;border-radius:50%;pointer-events:none;backdrop-filter:blur(1px);background:#ffffff1a}.center-dot{position:fixed;width:6px;height:6px;background-color:var(--color-primary);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:10000}.cursor-glow{position:fixed;width:26vmin;height:24vmin;transform:translate(-50%,-50%);pointer-events:none;z-index:9998;border-radius:50%;--glow-opacity: .65;--glow-blur: 24px;background:radial-gradient(35% 35% at 50% 50%,rgba(0,0,0,.45),rgba(0,0,0,.22) 55%,transparent 100%);filter:blur(var(--glow-blur));opacity:var(--glow-opacity);mix-blend-mode:multiply;animation:glowPulse 1s ease-in-out infinite}:root[data-theme=dark] .cursor-glow{background:radial-gradient(35% 35% at 50% 50%,color-mix(in oklab,var(--color-primary) 45%,transparent),color-mix(in oklab,var(--color-primary) 12%,transparent) 60%,transparent 100%);--glow-opacity: .9;mix-blend-mode:lighten}@keyframes glowPulse{0%,to{transform:translate(-50%,-50%) scale(1);filter:blur(var(--glow-blur));opacity:var(--glow-opacity)}50%{transform:translate(-50%,-50%) scale(1.08);filter:blur(calc(var(--glow-blur) + 6px));opacity:calc(var(--glow-opacity) + .12)}}@media (prefers-reduced-motion: reduce){.cursor-glow{filter:blur(18px);opacity:.45;animation:none}}
