@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(../media/3dbe685087e51055-s.3go3gb1_xu4rn.woff2)format("woff2");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:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.1hey5yyym6mz_.woff2)format("woff2");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}@font-face{font-family:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(../media/3dbe685087e51055-s.3go3gb1_xu4rn.woff2)format("woff2");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:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.1hey5yyym6mz_.woff2)format("woff2");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}@font-face{font-family:Sora Fallback;src:local(Arial);ascent-override:85.29%;descent-override:25.5%;line-gap-override:0.0%;size-adjust:113.73%}.sora_7d3e1f2e-module___qxjya__className{font-family:Sora,Sora Fallback;font-style:normal}.sora_7d3e1f2e-module___qxjya__variable{--font-display:"Sora", "Sora Fallback"}
@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");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}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");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}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");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}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_21b7444b-module__63i0Wq__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_21b7444b-module__63i0Wq__variable{--font-body:"Manrope", "Manrope Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");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}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.1kd-r_s9smv5m.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0-oo9_1x_xmvg.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.36fqqi66-3tjb.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.3_z45zcoc-xoz.woff2)format("woff2");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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.1bkzbscqrt8rl.woff2)format("woff2");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}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_1a4ab991-module__PJ147G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_1a4ab991-module__PJ147G__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.flex{display:flex}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--layout-max:min(1540px, 92vw);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-sm:0 4px 14px #0000001f;--shadow-md:0 12px 32px #0000002e;--shadow-lg:0 24px 48px #0000003d;--focus-ring:0 0 0 3px #4f8ef759;--bg:#05070d;--bg2:#0a0d16;--surface:#0e1220;--surface2:#141a2c;--border:#ffffff12;--border2:#ffffff24;--text:#eef1f7;--text2:#9aa5b8;--text3:#5c677a;--blue:#4f8ef7;--blue2:#7bb0ff;--blue3:#2563eb;--green:#00e5a0;--tag-bg:#4f8ef71a;--tag-border:#4f8ef740;--tag-text:#7bb0ff;--glow:#4f8ef726;--card:#0e1220;--card-hover:#12182a;--nav-bg:#05070dd1;--skill-icon-plate:#eef1f7;--skill-icon-plate-border:#ffffff24}[data-theme=light]{--bg:#f7f8fc;--bg2:#eef0f7;--surface:#fff;--surface2:#f0f2f9;--border:#00000012;--border2:#0000001f;--text:#0d1117;--text2:#44505e;--text3:#8892a4;--blue:#2563eb;--blue2:#1d4ed8;--blue3:#1e40af;--green:#059669;--tag-bg:#2563eb12;--tag-border:#2563eb33;--tag-text:#1d4ed8;--glow:#2563eb14;--card:#fff;--card-hover:#f5f7ff;--nav-bg:#f7f8fcd9;--skill-icon-plate:#fff;--skill-icon-plate-border:#0000001a}html{scroll-behavior:smooth;font-size:16px}body{min-height:100dvh;font-family:var(--font-body), sans-serif;background:radial-gradient(ellipse 80% 50% at 15% -8%, #4f8ef724, transparent 55%), radial-gradient(ellipse 60% 40% at 88% 4%, #00e5a00f, transparent 50%), radial-gradient(ellipse 50% 30% at 50% 100%, #4f8ef70d, transparent 60%), var(--bg);color:var(--text);line-height:1.65;transition:background .35s,color .35s;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;opacity:.32;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");position:fixed;inset:0}[data-theme=light] body:before{opacity:.15}::selection{color:var(--text);background:#4f8ef74d}a{color:inherit;text-decoration:none}main{z-index:1;scroll-margin-top:72px;position:relative}.skip-link{z-index:1000;border-radius:var(--radius-sm);background:var(--blue);color:#fff;padding:.65rem 1rem;font-size:.82rem;font-weight:600;transition:transform .2s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-140%)}.skip-link:focus-visible{box-shadow:var(--focus-ring);outline:none;transform:translateY(0)}:where(a,button,input,textarea,select,[tabindex]):focus-visible{box-shadow:var(--focus-ring);outline:none}.container{width:100%;max-width:var(--layout-max);margin:0 auto;padding:0 clamp(1rem,1.8vw,2rem)}nav{z-index:120;height:64px;padding:0 max(clamp(1rem, 1.8vw, 2rem), calc((100% - var(--layout-max)) / 2));background:var(--nav-bg);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(22px)saturate(1.6);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{font-family:var(--font-mono), monospace;color:var(--blue);letter-spacing:.5px;border-radius:var(--radius-sm);align-items:center;gap:8px;min-height:44px;padding:0 .25rem;font-size:.95rem;transition:color .2s;display:flex}.nav-logo:hover{color:var(--blue2)}.logo-bracket{color:var(--text3);font-weight:300}.nav-right{align-items:center;gap:1.25rem;display:flex}.nav-links{gap:.35rem;display:flex}.nav-links a{color:var(--text2);font-size:.78rem;font-family:var(--font-mono), monospace;text-transform:uppercase;letter-spacing:.45px;border-radius:var(--radius-sm);align-items:center;min-height:44px;padding:.55rem .75rem;transition:color .2s,background-color .2s;display:inline-flex}.nav-links a:hover{color:var(--blue);background:#4f8ef70f}.nav-links a.active{color:var(--blue2);background:var(--tag-bg)}.nav-menu-btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border2);background:var(--surface);width:44px;height:44px;color:var(--text);justify-content:center;align-items:center;transition:border-color .2s,color .2s;display:none}.nav-menu-btn:hover{border-color:var(--blue);color:var(--blue)}.mobile-nav{z-index:115;background:var(--nav-bg);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(22px)saturate(1.6);opacity:0;pointer-events:none;transition:transform .25s,opacity .25s;position:fixed;top:64px;left:0;right:0;transform:translateY(-110%)}.mobile-nav.open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-nav-inner{flex-direction:column;gap:.25rem;padding:.75rem clamp(1rem,1.8vw,2rem) 1.25rem;display:flex}.mobile-nav-inner a{font-family:var(--font-mono), monospace;text-transform:uppercase;letter-spacing:.5px;color:var(--text2);border-radius:var(--radius-sm);align-items:center;min-height:44px;padding:.85rem .75rem;font-size:.85rem;transition:color .2s,background-color .2s;display:flex}.mobile-nav-inner a:hover,.mobile-nav-inner a.active{color:var(--blue2);background:var(--tag-bg)}.mobile-nav-backdrop{z-index:110;cursor:pointer;background:#00000059;border:none;position:fixed;inset:64px 0 0}.theme-toggle{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border2);background:var(--surface);width:44px;height:44px;color:var(--text);justify-content:center;align-items:center;transition:border-color .2s,color .2s,background-color .2s;display:flex}.theme-toggle:hover{border-color:var(--blue);color:var(--blue);background:#4f8ef70f}.hero{min-height:100vh;max-width:var(--layout-max);align-items:center;gap:2.25rem;margin:0 auto;padding:7rem clamp(1rem,1.8vw,2rem) 4rem;display:flex}.hero-content{flex:1;min-width:0;max-width:670px}.hero-panel{border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(155deg,#ffffff0a,#fff0);padding:1.65rem 1.7rem 1.5rem}.hero-role{font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--blue2);margin-bottom:.85rem;font-size:.78rem}.hero-eyebrow{background:var(--tag-bg);border:1px solid var(--tag-border);font-family:var(--font-mono), monospace;color:var(--tag-text);letter-spacing:.45px;border-radius:4px;align-items:center;gap:10px;margin-bottom:2rem;padding:5px 14px;font-size:.75rem;display:inline-flex}.pulse{background:var(--green);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite glow-pulse}@keyframes glow-pulse{0%,to{box-shadow:0 0 #00e5a080}50%{box-shadow:0 0 0 6px #00e5a000}}.hero h1{font-family:var(--font-display), sans-serif;letter-spacing:-.2px;text-wrap:pretty;max-width:100%;margin-bottom:1.4rem;padding-right:.03em;font-size:clamp(2.3rem,4.4vw,4rem);font-weight:800;line-height:1.08;overflow:visible}.name-line{white-space:nowrap;overflow-wrap:normal;word-break:keep-all;display:block}.name-accent{background:linear-gradient(135deg, var(--blue) 0%, var(--blue2) 50%, var(--green) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text}@media (prefers-reduced-motion:no-preference){.name-accent{animation:8s ease-in-out infinite accent-shift}}@keyframes accent-shift{0%,to{background-position:0%}50%{background-position:100%}}.hero-desc{color:var(--text2);max-width:530px;margin-bottom:2.3rem;font-size:clamp(.98rem,.95rem + .35vw,1.16rem);font-weight:300;line-height:1.8}.hero-desc strong{color:var(--text);font-weight:500}.hero-actions{flex-wrap:wrap;gap:1rem;margin-bottom:2.4rem;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;min-height:44px;padding:.7rem 1.35rem;font-size:clamp(.83rem,.8rem + .18vw,.96rem);font-weight:500;transition:transform .2s,border-color .2s,background-color .2s,color .2s,box-shadow .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--blue) 0%, var(--blue3) 100%);color:#fff;border-color:#0000;box-shadow:0 4px 18px #4f8ef747}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #4f8ef757}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border2)}.btn-secondary:hover{border-color:var(--blue);color:var(--blue);background:#4f8ef70f}.hero-meta{flex-wrap:wrap;align-items:center;gap:1.2rem;display:flex}.hero-meta-item{color:var(--text3);font-size:.78rem;font-family:var(--font-mono), monospace;align-items:center;gap:8px;display:flex}.hero-meta-item a{color:var(--text2);transition:color .2s}.hero-meta-item a:hover{color:var(--blue)}.hero-divider{background:var(--border2);width:1px;height:16px}.hero-visual{flex-direction:column;flex:0 0 396px;gap:1rem;min-width:350px;display:flex}.terminal-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.terminal-bar{border-bottom:1px solid var(--border);background:var(--surface2);align-items:center;gap:8px;padding:10px 14px;display:flex}.t-dot{border-radius:50%;width:10px;height:10px}.t-dot.red{background:#ff5f57}.t-dot.yellow{background:#ffbd2e}.t-dot.green{background:#28c840}.terminal-title{font-family:var(--font-mono), monospace;color:var(--text3);margin-left:auto;font-size:.72rem}.terminal-body{font-family:var(--font-mono), monospace;padding:1.25rem;font-size:.78rem;line-height:1.9}.t-k{color:#c792ea}.t-f{color:var(--blue2)}.t-p{color:var(--text2)}.t-cm{color:var(--text3);opacity:.7}.t-ln{color:var(--text2)}.hero-scene-slot,.scene-shell,.scene-fallback,.hero-scene-placeholder{border:1px solid var(--border);background:var(--surface);border-radius:12px;height:248px;overflow:hidden}.hero-scene-placeholder{background:linear-gradient(135deg, #4f8ef714, transparent 55%), var(--surface)}.scene-shell canvas{display:block;width:100%!important;height:100%!important}.scene-fallback{justify-content:center;align-items:center;padding:1.2rem;display:flex;position:relative}.scene-fallback-copy{border:1px solid var(--border2);background:linear-gradient(145deg,#4f8ef71a,#4f8ef703);border-radius:10px;width:100%;padding:.9rem 1rem}.scene-fallback-title{font-family:var(--font-display), sans-serif;margin-bottom:.5rem;font-size:1rem}.scene-fallback-copy ul{flex-direction:column;gap:.35rem;list-style:none;display:flex}.scene-fallback-copy li{color:var(--text2);font-size:.75rem;font-family:var(--font-mono), monospace}.hero-scene-label{-webkit-user-select:none;user-select:none;width:220px}.hero-scene-label-headline{font-family:var(--font-display), sans-serif;letter-spacing:.06em;margin:0;font-size:.82rem;font-weight:700;line-height:1.2}.hero-scene-label-sub{font-family:var(--font-mono), monospace;color:#8c98ac;max-width:210px;margin:.2rem 0 0;font-size:.58rem;line-height:1.35}.stats-row{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.stat-mini{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:1.15rem 1rem;transition:border-color .2s,box-shadow .2s}.stat-mini:hover{border-color:var(--border2);box-shadow:var(--shadow-sm)}.stat-mini .n{font-family:var(--font-display), sans-serif;color:var(--blue);font-size:1.8rem;font-weight:800;line-height:1}.stat-mini .l{color:var(--text3);font-size:.72rem;font-family:var(--font-mono), monospace;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.section{padding:6rem 0}.section-line{transform-origin:0;background:linear-gradient(90deg,#0000 0%,#4f8ef759 20%,#00e5a073 50%,#4f8ef759 80%,#0000 100%) 0 0/200% 100%;height:1px}@media (prefers-reduced-motion:no-preference){.section-line{animation:6s ease-in-out infinite line-shimmer}}@keyframes line-shimmer{0%,to{background-position:0%}50%{background-position:100%}}.section-header{margin-bottom:.25rem}.section-eyebrow{font-family:var(--font-mono), monospace;color:var(--blue);letter-spacing:2px;text-transform:uppercase;margin-bottom:.75rem;font-size:.72rem}.section-title{font-family:var(--font-display), sans-serif;letter-spacing:-.5px;text-wrap:pretty;margin-bottom:.85rem;padding-right:.08em;font-size:clamp(1.85rem,2.8vw,3rem);font-weight:800;line-height:1.18;overflow:visible}.section-accent{background:linear-gradient(90deg, var(--blue), var(--green));border-radius:999px;width:48px;height:3px;margin-bottom:1.1rem}.section-sub{color:var(--text2);max-width:560px;margin-bottom:3rem;font-size:clamp(.9rem,.88rem + .22vw,1.04rem);font-weight:300;line-height:1.75}@media (hover:hover) and (pointer:fine){.tilt-3d{transform-style:preserve-3d;will-change:transform;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1),border-color .22s cubic-bezier(.22,1,.36,1);position:relative}.tilt-3d:before{content:"";pointer-events:none;border-radius:inherit;opacity:0;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%), #78b0ff29, transparent 55%);transition:opacity .2s;position:absolute;inset:0}.tilt-3d:hover{transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translate3d(0, -6px, 16px);box-shadow:0 20px 36px #0000003d}.tilt-3d:hover:before{opacity:1}}.about-header{z-index:3;max-width:760px;margin-bottom:.85rem;position:relative}.about-grid{z-index:1;grid-template-columns:1.2fr 1fr;align-items:start;gap:4.5rem;display:grid;position:relative}.about-text p{color:var(--text2);margin-bottom:1.2rem;font-size:clamp(.9rem,.88rem + .2vw,1rem);font-weight:300;line-height:1.84}.about-text strong{color:var(--text);font-weight:500}.facts-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.65rem}.facts-title{font-family:var(--font-mono), monospace;color:var(--text3);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:1.35rem;font-size:.7rem}.fact-row{align-items:flex-start;gap:14px;margin-bottom:1.05rem;display:flex}.fact-icon{border-radius:var(--radius-sm);background:var(--tag-bg);border:1px solid var(--tag-border);width:36px;height:36px;color:var(--blue);flex-shrink:0;justify-content:center;align-items:center;display:flex}.fact-label{font-size:.72rem;font-family:var(--font-mono), monospace;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.fact-val{color:var(--text2);font-size:.875rem;font-weight:300}.skills-filter{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.filter-btn{font-family:var(--font-mono), monospace;letter-spacing:.4px;cursor:pointer;border:1px solid var(--border2);min-height:44px;color:var(--text2);text-transform:uppercase;background:0 0;border-radius:999px;padding:.55rem 1rem;font-size:.72rem;transition:all .22s}.filter-btn:hover,.filter-btn.active{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 4px 14px #4f8ef738}.skills-filter--loading .filter-btn{pointer-events:none;cursor:default}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.skill-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;color:var(--text2);flex-direction:column;justify-content:center;align-items:center;gap:.6rem;min-height:108px;padding:1.1rem .75rem;font-size:.81rem;transition:border-color .25s,color .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden}.skill-item:before{content:"";background:var(--glow);opacity:0;transition:opacity .25s;position:absolute;inset:0}.skill-item:hover:before{opacity:1}.skill-item:hover{border-color:var(--tag-border);color:var(--blue2);box-shadow:var(--shadow-sm)}.skill-item:hover .skill-icon{transform:translateY(-2px)scale(1.05)}.skill-item .skill-icon,.skill-item .skill-name{z-index:1;position:relative}.skill-icon{border-radius:var(--radius-sm);background:var(--skill-icon-plate);border:1px solid var(--skill-icon-plate-border);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;padding:4px;transition:transform .22s,box-shadow .22s;display:inline-flex;box-shadow:0 1px 3px #0000001f}.skill-icon__svg{flex-shrink:0;display:block}.skill-icon--dual{gap:2px;padding:4px 3px}.skill-icon--dark-brand{box-shadow:0 2px 6px #00000029}.skill-icon--light-brand{background:#f3f4f6;border-color:#0000001f}[data-theme=light] .skill-icon--light-brand{background:#f0f2f7}.skill-icon--glyph{color:#1d4ed8;font-family:var(--font-mono), monospace;letter-spacing:.02em;font-size:.74rem;font-weight:700}.skill-name{font-weight:500;line-height:1.35}.skill-item--frontend:hover .skill-icon{border-color:#61dafb59}.skill-item--backend:hover .skill-icon{border-color:#68c37859}.skill-item--database:hover .skill-icon{border-color:#00758f59}.skill-item--cloud:hover .skill-icon{border-color:#ff990059}.skill-item--ai:hover .skill-icon{border-color:#7c3aed59}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem;display:grid}.project-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;padding:1.65rem;transition:border-color .25s,box-shadow .25s,background-color .25s;display:flex;position:relative}.project-card:after{content:"";background:linear-gradient(90deg, var(--blue), var(--green));border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform-origin:0;height:2px;transition:transform .3s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:hover{background:var(--card-hover);border-color:var(--border2);box-shadow:var(--shadow-md)}.project-card:hover:after{transform:scaleX(1)}.project-card.featured{border-color:#4f8ef733}.project-top{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.project-num{font-family:var(--font-mono), monospace;color:var(--text3);font-size:.68rem}.project-badge{font-family:var(--font-mono), monospace;color:var(--green);background:#00e5a014;border:1px solid #00e5a033;border-radius:3px;padding:3px 8px;font-size:.65rem}.project-name{font-family:var(--font-display), sans-serif;margin-bottom:.55rem;font-size:clamp(1.02rem,.98rem + .24vw,1.2rem);font-weight:700}.project-desc{color:var(--text2);flex:1;margin-bottom:1.25rem;font-size:clamp(.82rem,.8rem + .16vw,.95rem);font-weight:300;line-height:1.72}.project-tags{flex-wrap:wrap;gap:.38rem;margin-bottom:1.2rem;display:flex}.tag{background:var(--tag-bg);color:var(--tag-text);border:1px solid var(--tag-border);font-size:.7rem;font-family:var(--font-mono), monospace;border-radius:3px;padding:2px 8px}.project-link{color:var(--blue);align-items:center;gap:8px;min-height:44px;margin-top:auto;font-size:.84rem;font-weight:500;transition:gap .22s,color .22s;display:inline-flex}.project-link svg{transition:transform .22s}.project-link:hover{color:var(--blue2);gap:12px}.project-link:hover svg{transform:translate(3px)}.secondary-wrap{margin-top:2.5rem}.secondary-note{color:var(--text3);font-size:.84rem;font-family:var(--font-mono), monospace;margin-bottom:1.2rem}.secondary-grid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:.75rem;display:grid}.sec-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.1rem;transition:all .2s}.sec-card:hover{border-color:var(--border2);background:var(--surface2)}.sec-name{font-family:var(--font-mono), monospace;color:var(--text);margin-bottom:.3rem;font-size:.78rem}.sec-desc{color:var(--text3);font-size:.78rem}.writing-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.writing-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.65rem;height:100%;padding:1.25rem 1.35rem;transition:all .2s;display:flex}.writing-card:hover{border-color:var(--border2);background:var(--surface2)}.writing-top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.writing-badge{font-family:var(--font-mono), monospace;text-transform:uppercase;letter-spacing:.04em;color:var(--green);background:#34d39914;border:1px solid #34d3992e;border-radius:999px;padding:.2rem .55rem;font-size:.68rem}.writing-meta{font-family:var(--font-mono), monospace;color:var(--text3);margin-left:auto;font-size:.72rem}.writing-title{color:var(--text);font-size:1rem;font-weight:600;line-height:1.35}.writing-hook{color:var(--text2);flex:1;font-size:.84rem;line-height:1.55}.writing-tags{flex-wrap:wrap;gap:.4rem;display:flex}.writing-footer{justify-content:center;margin-top:2rem;display:flex}.writing-empty{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text2);text-align:center;padding:1.5rem;font-size:.92rem}.writing-empty a{color:var(--blue);text-underline-offset:2px;text-decoration:underline}.timeline{position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--blue), var(--green), transparent);opacity:.65;width:1px;position:absolute;top:8px;bottom:8px;left:0}.tl-item{margin-bottom:2.8rem;padding-left:2.4rem;position:relative}.tl-dot{background:var(--blue);width:10px;height:10px;box-shadow:0 0 0 3px var(--bg), 0 0 0 4px #4f8ef74d, 0 0 12px #4f8ef759;border-radius:50%;position:absolute;top:5px;left:-5px}@media (prefers-reduced-motion:no-preference){.tl-dot{animation:2.8s ease-in-out infinite tl-pulse}}@keyframes tl-pulse{0%,to{box-shadow:0 0 0 3px var(--bg), 0 0 0 4px #4f8ef74d, 0 0 10px #4f8ef740}50%{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px #00e5a059, 0 0 16px #00e5a04d}}.tl-item:hover .tl-dot{background:var(--green)}.tl-period{font-family:var(--font-mono), monospace;color:var(--blue);margin-bottom:.35rem;font-size:.72rem}.tl-role{font-family:var(--font-display), sans-serif;margin-bottom:.2rem;font-size:clamp(1rem,.95rem + .3vw,1.2rem);font-weight:700}.tl-company{color:var(--text2);margin-bottom:.9rem;font-size:.88rem;font-weight:300}.tl-bullets{flex-direction:column;gap:.45rem;list-style:none;display:flex}.tl-bullets li{color:var(--text2);padding-left:1.2rem;font-size:.855rem;font-weight:300;line-height:1.7;position:relative}.tl-bullets li:before{content:"→";color:var(--blue);font-size:.75rem;position:absolute;top:2px;left:0}.contact-layout{grid-template-columns:1fr 1.3fr;align-items:start;gap:4.5rem;display:grid}.contact-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:2rem}.contact-info h3{font-family:var(--font-display), sans-serif;letter-spacing:-.02em;overflow-wrap:anywhere;margin-bottom:.85rem;font-size:clamp(1.35rem,1.9vw,1.75rem);line-height:1.2}.contact-info p{color:var(--text2);margin-bottom:1.5rem;font-size:clamp(.9rem,.88rem + .2vw,1rem);font-weight:400;line-height:1.75}.c-item{align-items:center;gap:14px;margin-bottom:1.05rem;padding-left:.15rem;display:flex}.c-icon{border-radius:var(--radius-sm);background:var(--tag-bg);border:1px solid var(--tag-border);width:42px;height:42px;color:var(--blue);flex-shrink:0;justify-content:center;align-items:center;display:flex}.c-label{font-size:.7rem;font-family:var(--font-mono), monospace;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.c-val{color:var(--text2);font-size:clamp(.83rem,.8rem + .14vw,.93rem)}@media (min-width:1600px){.hero{gap:3.4rem}.hero-content{max-width:760px}.hero h1{font-size:clamp(2.8rem,4.1vw,4.65rem)}.hero-visual{flex-basis:445px}.section{padding:6.7rem 0}}.c-val a{color:var(--blue)}.resume-link-btn{color:var(--blue);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.resume-link-btn:hover{text-decoration:underline}.form-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:2rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.fg{flex-direction:column;gap:6px;margin-bottom:1rem;display:flex}.fg label{font-family:var(--font-mono), monospace;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;font-size:.7rem}.fg input,.fg textarea{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-sm);min-height:44px;color:var(--text);font-size:.9rem;font-family:var(--font-body), sans-serif;outline:none;padding:.75rem .95rem;font-weight:400;transition:border-color .2s,box-shadow .2s}.fg input:focus,.fg textarea:focus{border-color:var(--blue);box-shadow:var(--focus-ring)}.fg textarea{resize:vertical;min-height:110px;line-height:1.65}.form-submit{background:linear-gradient(135deg, var(--blue) 0%, var(--blue3) 100%);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;min-height:48px;padding:.75rem 1rem;font-size:.92rem;font-weight:600;transition:transform .2s,box-shadow .2s,opacity .2s;box-shadow:0 4px 18px #4f8ef73d}.form-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #4f8ef752}.form-submit:disabled{opacity:.65;cursor:not-allowed}.form-note{color:var(--text3);text-align:center;font-size:.72rem;font-family:var(--font-mono), monospace;margin-top:.75rem}.alert{border-radius:6px;margin-bottom:1rem;padding:12px 16px;font-size:.85rem}.alert.success{color:#00e5a0;background:#00e5a012;border:1px solid #00e5a033}.alert.error{color:#ef4444;background:#ef444412;border:1px solid #ef444433}[data-theme=light] .alert.success{color:#047857;background:#05966912;border-color:#05966940}[data-theme=light] .alert.error{color:#dc2626;background:#dc262612;border-color:#dc262640}footer{border-top:1px solid var(--border);text-align:center;z-index:1;background:linear-gradient(#0000,#4f8ef708);padding:3rem 2rem;position:relative}.footer-inner{flex-direction:column;gap:.45rem;max-width:640px;margin:0 auto;display:flex}footer p{color:var(--text3);font-size:.82rem;font-family:var(--font-mono), monospace}footer span{color:var(--blue2);font-weight:500}.footer-meta{color:var(--text2)}.footer-stack{opacity:.75;margin-top:.35rem;font-size:.74rem}.resume-modal-backdrop{z-index:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overscroll-behavior:contain;background:#07090fb8;justify-content:center;align-items:center;padding:1.2rem;display:flex;position:fixed;inset:0}.resume-modal{background:var(--surface);border:1px solid var(--border2);border-radius:14px;flex-direction:column;width:min(980px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 24px 50px #00000059}.resume-modal-head{border-bottom:1px solid var(--border);background:var(--surface2);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex}.resume-modal-head h2{font-family:var(--font-display), sans-serif;letter-spacing:-.02em;font-size:1.25rem}.resume-modal-head-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.resume-download-btn{color:#fff;border-radius:var(--radius-md);white-space:nowrap;background:linear-gradient(120deg,#6f45ff,#9b5df7);border:1px solid #8c52ff73;justify-content:center;align-items:center;min-height:2.375rem;padding:.5rem .95rem;font-size:.84rem;font-weight:700;line-height:1;text-decoration:none;transition:filter .2s,box-shadow .2s;display:inline-flex}.resume-download-btn:hover{filter:brightness(1.06)}.resume-download-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.resume-modal-close{appearance:none;border:1px solid var(--border2);border-radius:var(--radius-md);background:var(--surface);flex-shrink:0;justify-content:center;align-items:center;width:2.375rem;min-width:2.375rem;height:2.375rem;min-height:2.375rem;margin:0;padding:0;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.resume-modal-close{background:color-mix(in srgb, var(--surface) 90%, var(--text) 10%)}}.resume-modal-close{color:var(--text);cursor:pointer;line-height:0;transition:color .2s,border-color .2s,background-color .2s,transform .15s}.resume-modal-close svg{flex-shrink:0;display:block}.resume-modal-close:hover{color:#fff;background:#ef444429;border-color:#ef44448c}.resume-modal-close:active{transform:scale(.96)}.resume-modal-close:focus-visible{box-shadow:var(--focus-ring);outline:none}[data-theme=light] .resume-modal-close{background:var(--surface)}[data-theme=light] .resume-modal-close:hover{color:#b91c1c;background:#ef44441a;border-color:#ef444466}.resume-modal-body{background:var(--bg2);overscroll-behavior:contain;padding:1rem;overflow:auto}.resume-modal-info,.resume-modal-error{color:var(--text2);font-size:.9rem}.resume-modal-error{color:#ef4444}.resume-mobile-fallback{text-align:center;border:1px solid var(--border2);background:linear-gradient(160deg, var(--blue), transparent 55%), var(--surface);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;min-height:min(58vh,420px);padding:2rem 1.25rem;display:flex}@supports (color:color-mix(in lab, red, red)){.resume-mobile-fallback{background:linear-gradient(160deg, color-mix(in srgb, var(--blue) 8%, transparent), transparent 55%), var(--surface)}}.resume-mobile-fallback-icon{border:1px solid var(--border2);background:var(--surface2);width:4rem;height:4rem;color:var(--blue2);border-radius:14px;place-items:center;display:grid}.resume-mobile-fallback h3{font-family:var(--font-display), sans-serif;letter-spacing:-.02em;color:var(--text);font-size:1.2rem;font-weight:700}.resume-mobile-fallback p{max-width:28rem;color:var(--text2);font-size:.92rem;line-height:1.55}.resume-mobile-fallback-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem;margin-top:.35rem;display:flex}.resume-open-secondary-btn{border:1px solid var(--border2);border-radius:var(--radius-md);min-height:2.375rem;color:var(--text);white-space:nowrap;background:0 0;justify-content:center;align-items:center;padding:.5rem .95rem;font-size:.84rem;font-weight:650;text-decoration:none;display:inline-flex}.resume-open-secondary-btn:hover{border-color:var(--border2);background:#ffffff0a}.resume-open-secondary-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.resume-viewer-shell{background:#2a2b2f;border:1px solid #ffffff24;border-radius:10px;overflow:hidden}.resume-viewer-toolbar{color:#d3d7df;background:#34353a;align-items:center;gap:.55rem;height:44px;padding:0 .85rem;font-size:.72rem;display:flex}.resume-toolbar-dot{background:#9aa3b2;border-radius:50%;width:8px;height:8px}.resume-toolbar-divider{background:#fff3;width:1px;height:18px}.resume-toolbar-label{white-space:nowrap}.resume-pdf-frame{background:#fff;border:none;width:100%;height:min(74vh,920px)}.resume-modal-body::-webkit-scrollbar{width:10px}.resume-modal-body::-webkit-scrollbar-thumb{background:#7d859873;border-radius:999px}.resume-modal-body::-webkit-scrollbar-track{background:0 0}@media (max-width:1000px){.hero{flex-direction:column;gap:3rem;padding-top:6rem}.hero-content{min-width:0;max-width:100%}.hero-panel{padding:1.2rem}.hero h1{font-size:clamp(2rem,8vw,3.25rem)}.hero-visual{flex:none;width:100%;min-width:0}.stats-row{grid-template-columns:repeat(4,1fr)}.about-grid{grid-template-columns:1fr;gap:2.5rem}.about-header{max-width:100%;margin-bottom:.45rem}.contact-layout{grid-template-columns:1fr}}@media (max-width:768px){.nav-links{display:none}.nav-menu-btn{display:inline-flex}.projects-grid,.form-row{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}.hero{padding-left:1.5rem;padding-right:1.5rem}.secondary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.container{padding:0 1.25rem}.section{padding:4rem 0}.secondary-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.tilt-3d{transform:none!important}}.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}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
.portfolio-chat-root{z-index:120;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.75rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.portfolio-chat-root>*{pointer-events:auto}.portfolio-chat-launcher{flex-direction:column;align-items:flex-end;gap:.55rem;display:flex;position:relative}.portfolio-chat-toggle{background:linear-gradient(135deg, color-mix(in srgb, var(--surface2) 88%, var(--blue) 12%), var(--surface)), var(--surface);color:var(--text);font-family:var(--font-body), sans-serif;cursor:pointer;border:1px solid #4f8ef747;border-radius:999px;align-items:center;gap:.85rem;padding:.7rem .85rem .7rem .7rem;transition:border-color .2s,box-shadow .2s;display:inline-flex;box-shadow:0 10px 30px #00000038,inset 0 0 0 1px #4f8ef714,0 0 28px #4f8ef71f}.portfolio-chat-toggle:hover{border-color:#4f8ef773;box-shadow:0 16px 36px #4f8ef72e,inset 0 0 0 1px #4f8ef71f,0 0 36px #4f8ef729}.portfolio-chat-toggle-icon{background:linear-gradient(135deg, var(--blue) 0%, var(--blue3) 100%);color:#fff;border-radius:999px;place-items:center;width:2.5rem;height:2.5rem;display:grid;position:relative;box-shadow:0 6px 18px #4f8ef757}.portfolio-chat-toggle-pulse{background:var(--green);border:2px solid var(--surface);border-radius:999px;width:.55rem;height:.55rem;animation:2s ease-in-out infinite glow-pulse;position:absolute;top:.1rem;right:.1rem}.portfolio-chat-toggle-copy{text-align:left;flex-direction:column;align-items:flex-start;gap:.1rem;padding-right:.35rem;display:flex}.portfolio-chat-toggle-label{font-family:var(--font-display), sans-serif;font-size:.88rem;font-weight:700;line-height:1.1}.portfolio-chat-toggle-hint{font-family:var(--font-mono), monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--text3);font-size:.62rem}@media (max-width:480px){.portfolio-chat-toggle-copy{display:none}.portfolio-chat-toggle{border-radius:999px;padding:.55rem}}
