@font-face{font-family:Oxanium;font-style:normal;font-weight:300;font-display:swap;src:url(../media/784d20fa5d5f4c0e-s.1-ayd17usv4jj.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5fe5f57ee794eff4-s.p.04t4-lijcsqd8.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:Oxanium;font-style:normal;font-weight:400;font-display:swap;src:url(../media/784d20fa5d5f4c0e-s.1-ayd17usv4jj.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5fe5f57ee794eff4-s.p.04t4-lijcsqd8.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:Oxanium;font-style:normal;font-weight:500;font-display:swap;src:url(../media/784d20fa5d5f4c0e-s.1-ayd17usv4jj.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5fe5f57ee794eff4-s.p.04t4-lijcsqd8.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:Oxanium;font-style:normal;font-weight:600;font-display:swap;src:url(../media/784d20fa5d5f4c0e-s.1-ayd17usv4jj.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5fe5f57ee794eff4-s.p.04t4-lijcsqd8.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:Oxanium;font-style:normal;font-weight:700;font-display:swap;src:url(../media/784d20fa5d5f4c0e-s.1-ayd17usv4jj.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5fe5f57ee794eff4-s.p.04t4-lijcsqd8.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:Oxanium;font-style:normal;font-weight:800;font-display:swap;src:url(../media/784d20fa5d5f4c0e-s.1-ayd17usv4jj.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Oxanium;font-style:normal;font-weight:800;font-display:swap;src:url(../media/5fe5f57ee794eff4-s.p.04t4-lijcsqd8.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:Oxanium Fallback;src:local(Arial);ascent-override:76.07%;descent-override:20.22%;line-gap-override:24.07%;size-adjust:103.86%}.oxanium_f7aac65a-module__PMHqHq__className{font-family:Oxanium,Oxanium Fallback;font-style:normal}.oxanium_f7aac65a-module__PMHqHq__variable{--font-oxanium:"Oxanium", "Oxanium Fallback"}
@font-face{font-family:Chivo;font-style:italic;font-weight:300;font-display:swap;src:url(../media/3f4f66a87eef24ea-s.1t5saio_cs7bl.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:Chivo;font-style:italic;font-weight:300;font-display:swap;src:url(../media/527879656b756feb-s.0ih8442znyfn8.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo;font-style:italic;font-weight:300;font-display:swap;src:url(../media/c1e5142b424d870d-s.p.15pcon0h-i3cf.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:Chivo;font-style:italic;font-weight:400;font-display:swap;src:url(../media/3f4f66a87eef24ea-s.1t5saio_cs7bl.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:Chivo;font-style:italic;font-weight:400;font-display:swap;src:url(../media/527879656b756feb-s.0ih8442znyfn8.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo;font-style:italic;font-weight:400;font-display:swap;src:url(../media/c1e5142b424d870d-s.p.15pcon0h-i3cf.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:Chivo;font-style:italic;font-weight:500;font-display:swap;src:url(../media/3f4f66a87eef24ea-s.1t5saio_cs7bl.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:Chivo;font-style:italic;font-weight:500;font-display:swap;src:url(../media/527879656b756feb-s.0ih8442znyfn8.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo;font-style:italic;font-weight:500;font-display:swap;src:url(../media/c1e5142b424d870d-s.p.15pcon0h-i3cf.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:Chivo;font-style:normal;font-weight:300;font-display:swap;src:url(../media/d6d1cf5e8706839f-s.0wshmoobkgfsd.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:Chivo;font-style:normal;font-weight:300;font-display:swap;src:url(../media/0173d481ef9df56a-s.292z1ur_wx-18.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo;font-style:normal;font-weight:300;font-display:swap;src:url(../media/74f465119297d0e6-s.p.3b6-7wz_5l3s6.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:Chivo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d6d1cf5e8706839f-s.0wshmoobkgfsd.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:Chivo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0173d481ef9df56a-s.292z1ur_wx-18.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo;font-style:normal;font-weight:400;font-display:swap;src:url(../media/74f465119297d0e6-s.p.3b6-7wz_5l3s6.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:Chivo;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d6d1cf5e8706839f-s.0wshmoobkgfsd.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:Chivo;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0173d481ef9df56a-s.292z1ur_wx-18.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo;font-style:normal;font-weight:500;font-display:swap;src:url(../media/74f465119297d0e6-s.p.3b6-7wz_5l3s6.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:Chivo Fallback;src:local(Arial);ascent-override:87.67%;descent-override:23.32%;line-gap-override:0.0%;size-adjust:107.22%}.chivo_d6e3d4ad-module__j3PdlG__className{font-family:Chivo,Chivo Fallback}.chivo_d6e3d4ad-module__j3PdlG__variable{--font-chivo:"Chivo", "Chivo Fallback"}
@font-face{font-family:Chivo Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2ff3581ba07a6380-s.42nykp_oaw4i5.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:Chivo Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/41461fdd00f20dc2-s.0zkaco30kda_a.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/387ee14c0e0fe675-s.p.3-lut242jvm36.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:Chivo Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2ff3581ba07a6380-s.42nykp_oaw4i5.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:Chivo Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/41461fdd00f20dc2-s.0zkaco30kda_a.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Chivo Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/387ee14c0e0fe675-s.p.3-lut242jvm36.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:Chivo Mono Fallback;src:local(Arial);ascent-override:69.84%;descent-override:18.58%;line-gap-override:0.0%;size-adjust:134.59%}.chivo_mono_89243939-module__TbFsgG__className{font-family:Chivo Mono,Chivo Mono Fallback;font-style:normal}.chivo_mono_89243939-module__TbFsgG__variable{--font-chivo-mono:"Chivo Mono", "Chivo Mono Fallback"}
@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;--spacing:.25rem;--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{.visible{visibility:visible}.inline{display:inline}.inline-flex{display:inline-flex}.h-6{height:calc(var(--spacing) * 6)}.h-full{height:100%}.min-h-full{min-height:100%}.w-6{width:calc(var(--spacing) * 6)}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-chivo), sans-serif;font-size:16px;line-height:1.7;transition:background .3s,color .3s;overflow-x:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}[data-theme=dark]{--bg:#0a0a0a;--bg2:#111;--bg3:#181818;--bg4:#222;--ink:#f5f5f0;--ink2:#b8b8b0;--ink3:#6b6b65;--accent:#0f8;--accent-dim:#00cc6a;--accent-bg:#00ff880f;--accent-border:#0f83;--border:#242424;--border2:#333;--red:#f44;--yellow:#ffb800;--blue:#48f;--tag-bg:#1a1a1a;--tag-border:#2a2a2a;--shadow:#0009}[data-theme=light]{--bg:#f8f8f5;--bg2:#f0f0ec;--bg3:#e8e8e3;--bg4:#ddddd7;--ink:#0d0d0d;--ink2:#3a3a35;--ink3:#888880;--accent:#006b35;--accent-dim:#005228;--accent-bg:#006b350f;--accent-border:#006b3533;--border:#d8d8d2;--border2:#c8c8c0;--red:#c20;--yellow:#960;--blue:#15c;--tag-bg:#ededea;--tag-border:#d5d5cf;--shadow:#0000001f}[data-theme=dark] body:before{content:"";pointer-events:none;z-index:1000;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);position:fixed;inset:0}nav{z-index:500;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:56px;padding:0 3rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-left{align-items:center;gap:2rem;display:flex}.nav-logo{font-family:var(--font-oxanium), sans-serif;color:var(--ink);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;text-decoration:none;display:flex}.logo-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2.5s infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.nav-status{color:var(--accent);letter-spacing:.06em;border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:3px;padding:.2rem .6rem;font-family:Chivo Mono,monospace;font-size:.68rem}.nav-links{align-items:center;gap:1.8rem;list-style:none;display:flex}@media (max-width:900px){.nav-links{display:none!important}}.nav-links a{color:var(--ink3);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--ink)}.nav-right{align-items:center;gap:1rem;display:flex}.theme-toggle{border:1px solid var(--border2);background:var(--bg2);cursor:pointer;width:36px;height:36px;color:var(--ink2);border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;transition:border-color .2s,background .2s;display:flex}.theme-toggle:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.nav-hamburger{color:var(--ink);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:.35rem;display:none!important}@media (max-width:900px){.nav-hamburger{z-index:501;justify-content:center;align-items:center;display:flex!important}.nav-links{display:none!important}.nav-links.open{display:flex!important}}@media (max-width:768px){nav{padding:0 1rem}.nav-status{display:none}.nav-links{background:var(--bg);border-bottom:1px solid var(--border);z-index:400;flex-direction:column;gap:0;width:100%;list-style:none;display:none;position:absolute;top:56px;left:0;right:0}.nav-links.open{display:flex}.nav-links li{border-top:1px solid var(--border)}.nav-links a{width:100%;padding:.95rem 1.25rem;display:block}.nav-links a:hover{background:var(--bg2)}}#hero{z-index:2;grid-template-columns:1fr 1fr;min-height:100vh;padding-top:56px;display:grid;position:relative;overflow:hidden}.hero-left{border-right:1px solid var(--border);flex-direction:column;justify-content:center;padding:5rem 3rem;display:flex;position:relative}.hero-right{background:var(--bg2);flex-direction:column;justify-content:center;padding:5rem 3rem;display:flex;position:relative;overflow:hidden}.terminal{background:var(--bg);border:1px solid var(--border2);border-radius:8px;font-family:Chivo Mono,monospace;font-size:.78rem;line-height:1.8;overflow:hidden}.term-bar{background:var(--bg3);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.term-dot{border-radius:50%;width:10px;height:10px}.term-body{color:var(--ink2);font-family:var(--font-chivo-mono), monospace;padding:1.2rem 1.4rem}.term-line{gap:.5rem;margin-bottom:.2rem;display:flex}.term-prompt{color:var(--accent)}.term-key{color:var(--blue)}.term-val{color:var(--ink)}.term-str{color:var(--yellow)}.term-comment{color:var(--ink3)}.term-cursor{background:var(--accent);vertical-align:-2px;width:8px;height:14px;animation:1.1s step-end infinite cur;display:inline-block}@keyframes cur{0%,to{opacity:1}50%{opacity:0}}.metric-row{grid-template-columns:repeat(2,1fr);gap:.8rem;margin-top:1.5rem;display:grid}.metric{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:1rem 1.2rem}.metric-n{font-family:var(--font-oxanium), sans-serif;color:var(--accent);letter-spacing:-.02em;font-size:1.6rem;font-weight:700}.metric-l{color:var(--ink3);text-transform:uppercase;letter-spacing:.07em;margin-top:.1rem;font-size:.72rem}.hero-eyebrow{color:var(--ink3);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-family:Chivo Mono,monospace;font-size:.7rem;display:flex}.hero-eyebrow:before{content:"";background:var(--accent);width:24px;height:1px}h1.hero-name{letter-spacing:-.02em;color:var(--ink);margin-bottom:.6rem;font-family:Oxanium,sans-serif;font-size:clamp(2.8rem,5vw,4.2rem);font-weight:800;line-height:1.05}.hero-name .accent{color:var(--accent)}.hero-role{color:var(--ink2);letter-spacing:.04em;border-left:2px solid var(--accent);background:var(--accent-bg);margin-bottom:1.4rem;padding:.35rem .8rem;font-family:Chivo Mono,monospace;font-size:.82rem;display:inline-block}.hero-role .typewriter{white-space:nowrap;border-right:2px solid var(--accent);width:0;animation:3.2s steps(35,end) forwards typing,.75s step-end infinite blinkCaret;display:inline-block;overflow:hidden}@keyframes typing{0%{width:0}to{width:35ch}}@keyframes blinkCaret{0%,to{border-color:#0000}50%{border-color:var(--accent)}}.hero-desc{color:var(--ink3);max-width:480px;margin-bottom:2rem;font-size:.97rem;line-height:1.85}.hero-desc strong{color:var(--ink2);font-weight:500}.hero-btns{flex-wrap:wrap;gap:.8rem;display:flex}.btn-primary{background:var(--accent);color:var(--bg);font-family:var(--font-oxanium), sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none;border-radius:4px;padding:.65rem 1.6rem;font-size:.78rem;font-weight:700;text-decoration:none;transition:opacity .2s,transform .15s}.btn-primary:hover{opacity:.85;transform:translateY(-1px)}.btn-ghost{color:var(--ink2);font-family:var(--font-oxanium), sans-serif;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border2);cursor:pointer;background:0 0;border-radius:4px;padding:.65rem 1.6rem;font-size:.78rem;font-weight:600;text-decoration:none;transition:border-color .2s,color .2s}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-primary,.btn-ghost{justify-content:center;align-items:center;display:inline-flex}.btn-primary svg,.btn-ghost svg{vertical-align:middle;margin-left:.5rem}.section-wrap{z-index:2;max-width:1200px;margin:0 auto;padding:6rem 3rem;position:relative}.divider{background:var(--border);z-index:2;height:1px;position:relative}.sec-pre{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.6rem;margin-bottom:.7rem;font-family:Chivo Mono,monospace;font-size:.68rem;display:flex}.sec-pre .ln{color:var(--ink3);margin-right:.2rem;font-size:.6rem}.sec-h{font-family:var(--font-oxanium), sans-serif;letter-spacing:-.02em;color:var(--ink);margin-bottom:.7rem;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;line-height:1.1}.sec-h .dim{color:var(--ink3);font-weight:300}.sec-sub{color:var(--ink3);max-width:500px;margin-bottom:3rem;font-size:.95rem;line-height:1.8}.about-grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:5rem;display:grid}.about-p{color:var(--ink2);margin-bottom:1rem;font-size:.95rem;line-height:1.85}.about-p strong{color:var(--ink);font-weight:500}.skill-blocks{flex-direction:column;gap:1rem;display:flex}.sk-b{border:1px solid var(--border);border-radius:6px;overflow:hidden}.sk-header{background:var(--bg2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.sk-title{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-family:Chivo Mono,monospace;font-size:.68rem}.sk-count{color:var(--ink3);font-family:Chivo Mono,monospace;font-size:.65rem}.sk-body{flex-wrap:wrap;gap:.4rem;padding:.8rem 1rem;display:flex}.sk-tag{background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--ink2);border-radius:3px;padding:.2rem .65rem;font-size:.77rem;font-weight:400;transition:border-color .2s,color .2s}.sk-tag:hover{border-color:var(--accent);color:var(--accent)}.sk-tag.infra{color:var(--blue);border-color:#4488ff4d}.sk-tag.infra:hover{color:var(--blue);background:#4488ff14;border-color:#4488ffe6}.sk-tag.ai{color:var(--accent-dim);border-color:#00ff8840}.sk-tag.ai:hover{color:var(--accent-dim);background:#00ff8814;border-color:#00ff88b3}.sysdesign-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.2rem;display:grid}.sd-card{border:1px solid var(--border);background:var(--bg2);border-radius:8px;padding:1.5rem;transition:border-color .25s,background .25s,transform .2s;position:relative;overflow:hidden}.sd-card:before{content:"";background:var(--accent);opacity:0;width:3px;transition:opacity .2s;position:absolute;top:0;bottom:0;left:0}.sd-card:hover{border-color:var(--border2);background:var(--bg3);transform:translate(2px)}.sd-card:hover:before{opacity:1}.sd-icon{border:1px solid var(--border2);background:var(--bg);border-radius:6px;justify-content:center;align-items:center;width:38px;height:38px;margin-bottom:1rem;font-size:1rem;display:flex}.sd-title{letter-spacing:.02em;color:var(--ink);margin-bottom:.5rem;font-family:Oxanium,sans-serif;font-size:.95rem;font-weight:700}.sd-desc{color:var(--ink3);margin-bottom:1rem;font-size:.84rem;line-height:1.7}.sd-tags{flex-wrap:wrap;gap:.35rem;display:flex}.sd-tag{background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--ink3);border-radius:3px;padding:.15rem .5rem;font-family:Chivo Mono,monospace;font-size:.67rem}.infra-section{background:var(--bg2);border:1px solid var(--border);border-radius:10px;margin-top:3rem;overflow:hidden}.infra-header{border-bottom:1px solid var(--border);background:var(--bg3);align-items:center;gap:.8rem;padding:1rem 1.5rem;display:flex}.infra-title{color:var(--ink2);letter-spacing:.08em;text-transform:uppercase;font-family:Chivo Mono,monospace;font-size:.72rem}.infra-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:0;display:grid}.infra-item{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:default;flex-direction:column;align-items:center;gap:.6rem;padding:1.4rem 1rem;transition:background .2s;display:flex}.infra-item:hover{background:var(--bg3)}.infra-logo{width:40px;height:40px;font-size:1.1rem;font-weight:700;font-family:var(--font-oxanium), sans-serif;letter-spacing:.05em;text-transform:uppercase;border-radius:8px;justify-content:center;align-items:center;display:flex}.infra-name{color:var(--ink2);text-align:center;font-size:.78rem;font-weight:500}.infra-cat{color:var(--ink3);text-align:center;font-family:Chivo Mono,monospace;font-size:.62rem}.tools-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:0;display:grid}.tool-item{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:default;flex-direction:column;align-items:center;gap:.6rem;padding:1.4rem 1rem;transition:background .2s,transform .2s;display:flex}.tool-item:hover{background:var(--bg3);transform:translateY(-2px)}.tool-icon{background:var(--bg);border:1px solid var(--border2);border-radius:8px;justify-content:center;align-items:center;width:50px;height:50px;display:flex;overflow:hidden}.tool-icon img{object-fit:contain;width:100%;height:100%;padding:4px}.tool-name{color:var(--ink2);text-align:center;font-size:.78rem;font-weight:500;line-height:1.3}.tool-cat{color:var(--ink3);text-align:center;font-family:Chivo Mono,monospace;font-size:.62rem}.logo-docker{color:#1e82dc;background:#1e82dc1f;border:1px solid #1e82dc33}.logo-k8s{color:#326ce5;background:#326ce51f;border:1px solid #326ce533}.logo-aws{color:#f90;background:#ff99001a;border:1px solid #f903}.logo-azure{color:#0078d7;background:#0078d71a;border:1px solid #0078d733}.logo-tf{color:#5c32f5;background:#5c32f51a;border:1px solid #5c32f533}.logo-redis{color:#dc322f;background:#dc322f1a;border:1px solid #dc322f33}.logo-pg{color:#336791;background:#3367911a;border:1px solid #33679133}.logo-mongo{color:#00684a;background:#0068381a;border:1px solid #00683833}.logo-gh{color:var(--ink2);border:1px solid var(--border2);background:#ffffff0f}.logo-next{color:var(--ink);border:1px solid var(--border2);background:#ffffff0f}.proj-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.2rem;display:grid}.proj-btn-wrap{justify-content:center;margin-top:2rem;display:flex}.proj-card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:1.6rem;transition:border-color .2s,background .2s,transform .2s;position:relative}.proj-card:hover{border-color:var(--border2);transform:translateY(-3px)}.proj-card.featured{border-color:var(--accent-border);grid-column:span 2}.proj-card.featured:after{content:"FEATURED";letter-spacing:.1em;background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent);border-radius:3px;padding:.2rem .5rem;font-family:Chivo Mono,monospace;font-size:.6rem;position:absolute;top:1rem;right:1rem}.proj-type{letter-spacing:.08em;text-transform:uppercase;border-radius:3px;margin-bottom:.9rem;padding:.15rem .55rem;font-family:Chivo Mono,monospace;font-size:.65rem;display:inline-block}.pt-ai{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent)}.pt-fs{color:var(--blue);background:#4488ff14;border:1px solid #48f3}.pt-npm{color:var(--yellow);background:#ffb80014;border:1px solid #ffb80033}.pt-cli{color:var(--red);background:#ff444414;border:1px solid #f443}.proj-h{font-family:var(--font-oxanium), sans-serif;letter-spacing:.01em;color:var(--ink);margin-bottom:.5rem;font-size:1.05rem;font-weight:700}.proj-p{color:var(--ink3);margin-bottom:1rem;font-size:.85rem;line-height:1.7}.tech-row{flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;display:flex}.tc{background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--ink3);border-radius:3px;padding:.15rem .5rem;font-family:Chivo Mono,monospace;font-size:.66rem}.proj-links{gap:.7rem;display:flex}.pl{color:var(--ink3);letter-spacing:.03em;align-items:center;gap:.3rem;font-family:Chivo Mono,monospace;font-size:.78rem;font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex}.pl:hover{color:var(--accent)}.pl svg{stroke:currentColor;stroke-width:2px;fill:none;width:12px;height:12px}.exp-outer{flex-direction:column;gap:0;display:flex;position:relative}.exp-outer:before{content:"";background:var(--border2);width:1px;position:absolute;top:10px;bottom:10px;left:0}.exp-block{padding-bottom:3rem;padding-left:2rem;position:relative}.exp-block:last-child{padding-bottom:0}.exp-dot{background:var(--accent);border:2px solid var(--bg);border-radius:50%;width:9px;height:9px;position:absolute;top:8px;left:-4px}.exp-meta{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.4rem;display:flex}.exp-date{color:var(--ink3);letter-spacing:.05em;font-family:Chivo Mono,monospace;font-size:.7rem}.exp-badge{letter-spacing:.06em;border-radius:3px;padding:.15rem .5rem;font-family:Chivo Mono,monospace;font-size:.62rem}.badge-current{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent)}.exp-role{letter-spacing:.01em;color:var(--ink);margin-bottom:.15rem;font-family:Oxanium,sans-serif;font-size:1.2rem;font-weight:700}.exp-co{color:var(--ink3);margin-bottom:.9rem;font-size:.85rem}.exp-co strong{color:var(--blue);font-weight:500}.exp-ul{flex-direction:column;gap:.45rem;margin-bottom:1rem;list-style:none;display:flex}.exp-ul li{color:var(--ink3);gap:.7rem;font-size:.87rem;line-height:1.65;display:flex}.exp-ul li:before{content:"▸";color:var(--accent);flex-shrink:0;margin-top:.35rem;font-size:.65rem}.exp-ul li strong{color:var(--ink2);font-weight:500}.etags{flex-wrap:wrap;gap:.35rem;display:flex}.etag{background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--ink3);border-radius:3px;padding:.15rem .55rem;font-family:Chivo Mono,monospace;font-size:.65rem}.cert-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.cert-c{background:var(--bg2);border:1px solid var(--border);border-radius:6px;align-items:flex-start;gap:.9rem;padding:1.1rem 1.3rem;transition:border-color .2s;display:flex}.cert-c:hover{border-color:var(--accent-border)}.cert-ico{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;display:flex}.cert-n{color:var(--ink);font-size:.84rem;font-weight:500;line-height:1.4}.cert-is{color:var(--ink3);margin-top:.2rem;font-family:Chivo Mono,monospace;font-size:.67rem}.contact-cols{grid-template-columns:1fr 1.2fr;align-items:start;gap:5rem;display:grid}.c-p{color:var(--ink3);margin-bottom:1.8rem;font-size:.95rem;line-height:1.8}.c-row{align-items:center;gap:.8rem;margin-bottom:.8rem;display:flex}.c-ico{background:var(--bg2);border:1px solid var(--border);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.85rem;display:flex}.c-row a,.c-row span{color:var(--ink2);letter-spacing:.02em;font-family:Chivo Mono,monospace;font-size:.87rem;text-decoration:none}.c-row a:hover{color:var(--accent)}.s-links{gap:.6rem;margin-top:1.6rem;display:flex}.s-link{border:1px solid var(--border2);color:var(--ink3);border-radius:4px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-family:Chivo Mono,monospace;font-size:.77rem;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s;display:flex}.s-link:hover{border-color:var(--accent);color:var(--accent)}.c-form{flex-direction:column;gap:.9rem;display:flex}.f-g{flex-direction:column;gap:.3rem;display:flex}.f-g label{color:var(--ink3);letter-spacing:.1em;text-transform:uppercase;font-family:Chivo Mono,monospace;font-size:.65rem}.f-g input,.f-g textarea{background:var(--bg2);border:1px solid var(--border);color:var(--ink);resize:vertical;border-radius:4px;outline:none;padding:.68rem .9rem;font-family:Chivo,sans-serif;font-size:.88rem;transition:border-color .2s}.f-g input:focus,.f-g textarea:focus{border-color:var(--accent)}.f-g textarea{min-height:110px}.f-row{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.btn-send{background:var(--accent);color:var(--bg);font-family:var(--font-oxanium), sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none;border-radius:4px;align-self:flex-start;align-items:center;gap:.6rem;padding:.7rem 1.8rem;font-size:.78rem;font-weight:700;transition:opacity .2s,transform .15s;display:inline-flex}.btn-send:hover{opacity:.85;transform:translateY(-1px)}footer{z-index:2;border-top:1px solid var(--border);color:var(--ink3);letter-spacing:.04em;justify-content:space-between;align-items:center;padding:1.5rem 3rem;font-family:Chivo Mono,monospace;font-size:.72rem;display:flex;position:relative}footer strong{color:var(--accent)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero-eyebrow,.sec-h,.hero-name,.hero-role,.hero-desc,.hero-btns,.hero-right .terminal,.hero-right .metric-row{animation:.4s both fadeUp}.hero-name{animation-delay:70ms}.hero-role{animation-delay:.13s}.hero-desc{animation-delay:.19s}.hero-btns{animation-delay:.25s}.hero-right .terminal{animation-duration:.5s;animation-delay:.3s}.hero-right .metric-row{animation-duration:.5s;animation-delay:.4s}.reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(18px)}.reveal.visible{opacity:1;transform:translateY(0)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:10px}@media (max-width:900px){nav{padding:0 1.5rem}#hero{grid-template-columns:1fr}.hero-right{display:none}.hero-left{padding:5rem 1.5rem 4rem}.section-wrap{padding:4rem 1.5rem}.about-grid,.contact-cols{grid-template-columns:1fr;gap:2.5rem}.proj-card.featured{grid-column:span 1}footer{text-align:center;flex-direction:column;gap:.5rem;padding:1.5rem}.f-row{grid-template-columns:1fr}.infra-grid{grid-template-columns:repeat(3,1fr)}}.chat-fab{border:1px solid var(--accent-border);background:var(--accent);width:54px;height:54px;color:var(--bg);cursor:pointer;z-index:950;box-shadow:0 8px 24px var(--shadow);border-radius:50%;justify-content:center;align-items:center;transition:right .3s cubic-bezier(.4,0,.2,1),transform .2s,opacity .2s,background .2s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.chat-fab:hover{transform:translateY(-2px)scale(1.05)}.chat-fab-open{background:var(--bg2);color:var(--ink);border-color:var(--border2);right:calc(min(420px,100vw) + 1.5rem)}.chat-panel{background:var(--bg);border-left:1px solid var(--border);z-index:940;width:min(420px,100vw);box-shadow:-16px 0 48px var(--shadow);flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(102%)}.chat-panel-open{transform:translate(0)}.chat-head{border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.chat-head-left{align-items:center;gap:.7rem;min-width:0;display:flex}.chat-avatar{border:1px solid var(--accent-border);background:var(--accent-bg);width:32px;height:32px;color:var(--accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-head-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.chat-title{font-family:var(--font-oxanium), sans-serif;letter-spacing:.12em;color:var(--ink);font-size:.82rem;font-weight:700}.chat-status{font-family:var(--font-chivo-mono), monospace;color:var(--ink3);align-items:center;gap:.35rem;font-size:.62rem;display:flex}.chat-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2.5s infinite blink;display:inline-block}.chat-head-actions{align-items:center;gap:.35rem;display:flex}.chat-icon-btn{border:1px solid var(--border2);background:var(--bg);width:30px;height:30px;color:var(--ink2);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;transition:border-color .2s,color .2s;display:flex}.chat-icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chat-icon-btn:disabled{opacity:.4;cursor:not-allowed}.chat-body{flex-direction:column;flex:1;gap:.9rem;padding:1rem;display:flex;overflow-y:auto}.chat-intro{border:1px solid var(--border);background:var(--bg2);border-radius:6px;padding:.9rem 1rem}.chat-intro-title{font-family:var(--font-chivo-mono), monospace;color:var(--accent);margin-bottom:.5rem;font-size:.72rem}.chat-intro-text{color:var(--ink3);font-size:.82rem;line-height:1.7}.chat-suggestions{flex-direction:column;gap:.4rem;display:flex}.chat-chip{text-align:left;border:1px solid var(--border);background:var(--bg2);color:var(--ink2);font-family:var(--font-chivo), sans-serif;cursor:pointer;border-radius:4px;padding:.55rem .8rem;font-size:.8rem;transition:border-color .2s,color .2s,background .2s}.chat-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.chat-msg{flex-direction:column;gap:.35rem;max-width:92%;display:flex}.chat-msg-user{align-self:flex-end;align-items:flex-end}.chat-msg-assistant{align-self:flex-start}.chat-msg-label{font-family:var(--font-chivo-mono), monospace;color:var(--ink3);letter-spacing:.08em;font-size:.6rem}.chat-bubble{border:1px solid var(--border);background:var(--bg2);color:var(--ink2);overflow-wrap:anywhere;border-radius:6px;padding:.7rem .85rem;font-size:.85rem;line-height:1.7}.chat-msg-user .chat-bubble{background:var(--accent-bg);border-color:var(--accent-border);color:var(--ink)}.chat-p{margin-bottom:.55rem}.chat-p:last-child{margin-bottom:0}.chat-ul{flex-direction:column;gap:.3rem;margin:.35rem 0 .2rem;list-style:none;display:flex}.chat-li{padding-left:1rem;font-size:.84rem;line-height:1.65;position:relative}.chat-li:before{content:"▸";color:var(--accent);font-size:.65rem;position:absolute;top:.3rem;left:0}.chat-strong{color:var(--ink);font-weight:600}.chat-em{color:var(--ink3);font-style:italic}.chat-code{font-family:var(--font-chivo-mono), monospace;background:var(--bg);border:1px solid var(--border2);color:var(--accent);border-radius:3px;padding:.05rem .3rem;font-size:.78rem}.chat-cite{font-family:var(--font-chivo-mono), monospace;color:var(--accent);font-size:.72rem}.chat-sources{flex-wrap:wrap;gap:.3rem;display:flex}.chat-source{font-family:var(--font-chivo-mono), monospace;background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--ink3);cursor:help;border-radius:3px;padding:.15rem .45rem;font-size:.62rem}.chat-typing{align-items:center;gap:.3rem;padding:.85rem;display:flex}.chat-typing span{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.1s infinite chatBlink;display:inline-block}.chat-typing span:nth-child(2){animation-delay:.18s}.chat-typing span:nth-child(3){animation-delay:.36s}@keyframes chatBlink{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.chat-offline{color:var(--yellow);background:#ffb80012;border:1px dashed #ffb80073;border-radius:4px;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;font-size:.76rem;line-height:1.6;display:flex}.chat-offline svg{flex-shrink:0;margin-top:.15rem}.chat-offline strong{color:var(--yellow);font-weight:600}[data-theme=light] .chat-offline{background:#9966000f;border-color:#99660059}.chat-msg-predefined .chat-bubble{background:#ffb8000d;border-style:dashed;border-color:#ffb80066}.chat-predefined-badge{color:var(--yellow);font-family:var(--font-chivo-mono), monospace;letter-spacing:.12em;vertical-align:middle;background:#ffb8001f;border:1px solid #ffb80073;border-radius:3px;margin-left:.45rem;padding:.05rem .35rem;font-size:.55rem;display:inline-block}[data-theme=light] .chat-predefined-badge{background:#9966001a;border-color:#9606}.chat-input-row{border-top:1px solid var(--border);background:var(--bg2);flex-shrink:0;align-items:center;gap:.5rem;padding:.75rem;display:flex}.chat-input{background:var(--bg);border:1px solid var(--border);color:var(--ink);font-family:var(--font-chivo), sans-serif;border-radius:4px;outline:none;flex:1;min-width:0;padding:.6rem .75rem;font-size:.85rem;transition:border-color .2s}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--ink3)}.chat-send{background:var(--accent);width:38px;height:38px;color:var(--bg);cursor:pointer;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .2s,transform .15s;display:flex}.chat-send:hover:not(:disabled){opacity:.85;transform:translateY(-1px)}.chat-send:disabled{opacity:.35;cursor:not-allowed}@media (max-width:640px){.chat-panel{width:100vw}.chat-fab{width:50px;height:50px;bottom:1rem;right:1rem}.chat-fab-open{display:none}}
