@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.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.10hk62x1-0d9n.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.0bmyfaahigzds.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.0-0ft90hthv3~.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.16fk0g~ypa53a.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.0f97p8c3305p~.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.0h-nw9_c8d~-_.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.10hk62x1-0d9n.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.0bmyfaahigzds.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.0-0ft90hthv3~.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.16fk0g~ypa53a.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.0f97p8c3305p~.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:600;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.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:600;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.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:600;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.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:600;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.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:600;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.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:600;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.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:700;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.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:700;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.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:700;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.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:700;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.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:700;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.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:700;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.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_1b18c5cd-module__eZzSwa__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_1b18c5cd-module__eZzSwa__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:Fuzzy Bubbles;font-style:normal;font-weight:400;font-display:swap;src:url(../media/56d669ae12ce7840-s.03tkoaj3hw7jh.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:Fuzzy Bubbles;font-style:normal;font-weight:400;font-display:swap;src:url(../media/afd07e0e714dc14c-s.0sfq0xnk3nplz.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:Fuzzy Bubbles;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c4cae4992242b74a-s.p.0wdk1q4toz814.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:Fuzzy Bubbles;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a64e53faafbf159c-s.0lpc4na_0yi-o.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:Fuzzy Bubbles;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b8cbafa439f0788e-s.0ftj.usrgc07i.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:Fuzzy Bubbles;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6d5d99631d01f2a2-s.p.0mr0w~znby~y-.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:Fuzzy Bubbles Fallback;src:local(Arial);ascent-override:77.01%;descent-override:29.95%;line-gap-override:0.0%;size-adjust:116.87%}.fuzzy_bubbles_525bcacb-module__wI1sLq__className{font-family:Fuzzy Bubbles,Fuzzy Bubbles Fallback;font-style:normal}.fuzzy_bubbles_525bcacb-module__wI1sLq__variable{--font-fuzzy-bubbles:"Fuzzy Bubbles", "Fuzzy Bubbles 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-border-style:solid}}}@layer theme{:root,:host{--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-font-family:var(--font-fuzzy-bubbles);--default-mono-font-family:var(--font-jetbrains-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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.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}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.h-full{height:100%}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--bg:#f6f4ee;--bg-pure:#fbfaf5;--ink:#0d0d0d;--ink-soft:#2a2a2a;--line:#0d0d0d;--line-soft:#0d0d0d2e;--line-grid:#0d0d0d0f;--blue:#1f6feb;--blue-soft:#6fa8ff;--green:#1d9f5f;--green-bright:#2bb673;--orange:#d9651a;--orange-soft:#e58a4a;--purple:#7a4dbe;--pink:#d9466e;--radius-xl:16px;--radius-lg:12px;--radius-md:8px}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}#__next,body>div:first-child{height:100%}body{font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;padding:14px;font-size:14px;line-height:1.55;overflow:hidden}h1,h2,h3{font-weight:700;font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive!important}.shell-topbar,.status-bar,.win-head,.projects-view-all,.project-modal-close,.skill-tabs button,.codeblock,.tree,.skills-footer code{font-family:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace}p,.hero .ip-line,.news-card .headline,.news-head .handle,.featured-desc,.project-card,.project-modal-kicker,.skills-body .subtle,.tree .out,.closing-tag,.codeblock,.me-online{font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive}.shell-scroll{background-color:var(--bg);background-image:linear-gradient(to right, var(--line-grid) 1px, transparent 1px), linear-gradient(to bottom, var(--line-grid) 1px, transparent 1px);background-size:24px 24px;background-attachment:local}.shell-content{position:relative}.shell-outer{isolation:isolate;border-radius:14px;height:100%;position:relative}.shell-outer:before{content:"";border:1.5px solid var(--line);filter:url(#f-sketch);pointer-events:none;z-index:999;border-radius:14px;position:absolute;inset:0}.shell{z-index:1;background:var(--bg);border:none;border-radius:14px;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.shell-scroll{flex:auto;min-height:0;position:relative;overflow:hidden auto}.shell-topbar{z-index:50;background:var(--bg-pure);border-bottom:1.5px solid var(--line);flex:none;grid-template-columns:1fr auto 1fr;align-items:center;height:44px;padding:0 16px;font-size:13px;display:grid}.traffic-lights{align-items:center;gap:8px;display:flex}.traffic-lights .dot{border:1.25px solid var(--line);background:0 0;border-radius:50%;width:12px;height:12px}.traffic-lights .dot-cat{cursor:pointer;border:1.25px solid var(--line);background:0 0;place-items:center;width:20px;height:20px;padding:0;font-size:11px;line-height:1;transition:transform .12s,opacity .12s;display:grid}.traffic-lights .dot-cat:hover{opacity:.8;transform:scale(1.25)}.dot-cat-wrap{position:relative}@keyframes cat-hint-pop{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}.cat-hint-bubble{z-index:300;background:var(--bg-pure);border:1.5px solid var(--line);box-shadow:3px 3px 0 var(--line);cursor:pointer;transform-origin:0 0;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:10px;min-width:150px;padding:10px 14px 10px 10px;animation:.28s cubic-bezier(.34,1.56,.64,1) forwards cat-hint-pop;display:flex;position:absolute;top:calc(100% + 10px);left:-4px}.cat-hint-bubble:before{content:"";border:8px solid #0000;border-bottom:9px solid var(--line);border-top:none;position:absolute;top:-9px;left:8px}.cat-hint-bubble:after{content:"";border:7px solid #0000;border-bottom:8px solid var(--bg-pure);border-top:none;position:absolute;top:-7px;left:9px}.cat-hint-sprite{width:32px;height:32px;image-rendering:pixelated;background-image:url(/oneko.gif);background-position:-64px 0;flex-shrink:0}.cat-hint-text{font-family:var(--font-fuzzy-bubbles), cursive;color:var(--ink);margin:0;font-size:12px;line-height:1.45}.shell-title{text-align:center;letter-spacing:.02em}.shell-title .host{color:var(--blue)}.shell-window-actions{color:var(--ink);opacity:.85;justify-content:flex-end;align-items:center;gap:18px;display:flex}.shell-window-actions span{justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;display:inline-flex}.shell-side-menu{z-index:5;flex-direction:column;gap:4px;display:flex;position:absolute;top:20px;left:18px}.shell-side-menu i{background:var(--ink);opacity:.7;border-radius:50%;width:4px;height:4px;font-style:normal}.shell-content{width:100%;max-width:1480px;margin:0 auto;padding:80px 56px 120px}.status-bar{z-index:50;background:var(--bg-pure);border-top:1.5px solid var(--line);letter-spacing:.04em;flex:none;align-items:center;gap:14px;height:44px;padding:0 18px;font-size:12px;display:flex}.status-bar .left{align-items:center;gap:10px;display:flex}.status-bar .right{gap:10px;margin-left:auto;display:flex}.status-bar .dot-sep{opacity:.4}.status-bar .tls-active{color:var(--green);font-weight:600}.status-bar a.icon-btn,.status-bar button.icon-btn{border:1.25px solid var(--line);width:28px;height:24px;color:var(--ink);cursor:pointer;background:0 0;border-radius:5px;justify-content:center;align-items:center;text-decoration:none;transition:background .12s;display:inline-flex}.status-bar a.icon-btn:hover,.status-bar button.icon-btn:hover{background:#0d0d0d0f}.status-bar .resume-btn{cursor:pointer;color:#1f6feb;height:24px;font-family:var(--font-jetbrains-mono), monospace;letter-spacing:.03em;white-space:nowrap;background:0 0;border:none;align-items:center;padding:0 4px;font-size:11px;text-decoration:none;display:inline-flex}.status-bar .resume-btn:hover{text-underline-offset:3px;text-decoration:underline}.status-bar .resume-btn:disabled{opacity:.55;cursor:not-allowed;text-decoration:none}.win-wrap:before,.news-card:before,.project-card:before,.project-modal-panel:before,.projects-view-all:before,.project-modal-close:before,.contact-modal-panel:before,.contact-trigger:before,.contact-modal-close:before,.contact-form-actions button:before{content:"";border:1.5px solid var(--line);border-radius:inherit;filter:url(#f-sketch);pointer-events:none;z-index:20;position:absolute;inset:-1px}.skill-badge:before{content:"";border:1.5px solid var(--line);filter:url(#f-sketch-2);pointer-events:none;z-index:20;border-radius:999px;position:absolute;inset:-1px}.news-card .read-more:before{content:"";border:1.25px solid var(--line);filter:url(#f-sketch-2);pointer-events:none;z-index:5;border-radius:9px;position:absolute;inset:-1px}.win-wrap{border-radius:var(--radius-xl);position:relative}.win{background:var(--bg-pure);border-radius:var(--radius-xl);border:none;position:relative;overflow:hidden}.win-head{border-bottom:1.25px solid var(--line);justify-content:space-between;align-items:center;height:38px;padding:0 14px;font-size:13px;display:flex}.win-head .title{font-weight:500}.win-head .actions{color:var(--ink);opacity:.85;align-items:center;gap:14px;font-size:13px;display:flex}.win-head .actions span{justify-content:center;width:16px;display:inline-flex}.win-body{padding:22px 26px}.c-blue{color:var(--blue)}.c-green{color:var(--green)}.c-orange{color:var(--orange)}.c-purple{color:var(--purple)}.c-pink{color:var(--pink)}.c-soft{color:var(--ink);opacity:.65}.oneko{width:32px;height:32px;image-rendering:pixelated;pointer-events:none;z-index:200;background-image:url(/oneko.gif);position:absolute}.oneko-bubble{background:var(--bg-pure);border:1.5px solid var(--line);border-radius:var(--radius-md);filter:url(#f-sketch);min-width:160px;max-width:220px;font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;white-space:pre-wrap;text-align:center;pointer-events:none;z-index:201;padding:10px 14px;font-size:13px;line-height:1.5;display:none;position:absolute;transform:translate(-50%)}.oneko-bubble[data-visible=true]{display:block}.oneko-bubble-dots{align-items:flex-end;gap:3px;display:flex;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.oneko-bubble-dots span{background:var(--line);border-radius:50%;display:block}.oneko-bubble-dots span:first-child{width:8px;height:8px}.oneko-bubble-dots span:nth-child(2){width:6px;height:6px}.oneko-bubble-dots span:nth-child(3){width:4px;height:4px}.draggable-win.oneko-moving{transition:left .85s cubic-bezier(.25,.46,.45,.94),top .85s cubic-bezier(.25,.46,.45,.94)}@keyframes oneko-drag{0%{transform:translate(0)rotate(0)}10%{transform:translate(6px,-3px)rotate(.5deg)}25%{transform:translate(28px,-10px)rotate(1.2deg)}42%{transform:translate(52px,-18px)rotate(2deg)}55%{transform:translate(58px,-20px)rotate(2.2deg)}65%{transform:translate(54px,-18px)rotate(1.8deg)}75%{transform:translate(28px,-10px)rotate(1deg)}88%{transform:translate(6px,-3px)rotate(.3deg)}to{transform:translate(0)rotate(0)}}.oneko-drag{will-change:transform;animation:1.8s cubic-bezier(.25,.46,.45,.94) oneko-drag}@keyframes oneko-particle{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--px), var(--py)) scale(.3);opacity:0}}.oneko-particle{pointer-events:none;z-index:202;font-size:13px;line-height:1;animation:.9s ease-out forwards oneko-particle;position:absolute}.oneko-dead{transition:transform .18s;transform:scaleX(-1)rotate(90deg)!important}.oneko-toggle{z-index:203;border:1.25px solid var(--line);background:var(--bg-pure);cursor:pointer;opacity:.45;border-radius:8px;place-items:center;width:30px;height:30px;padding:0;font-size:15px;transition:opacity .12s;display:grid;position:absolute;bottom:52px;right:12px}.oneko-toggle:hover{opacity:1}@keyframes oneko-shake{0%,to{transform:rotate(0)translateY(0)}25%{transform:rotate(-7deg)translateY(-2px)}75%{transform:rotate(7deg)translateY(-2px)}}.oneko-shake{animation:.38s ease-in-out oneko-shake}.oneko-highlight{color:var(--blue)!important;-webkit-text-decoration-color:var(--blue)!important;-webkit-text-decoration-color:var(--blue)!important;-webkit-text-decoration-color:var(--blue)!important;text-decoration-color:var(--blue)!important}.oneko-copy-cmd{cursor:pointer;-webkit-user-select:none;user-select:none;color:#7dff7d;pointer-events:auto;background:#111;border:1px solid #444;border-radius:3px;padding:2px 8px;font-family:monospace;font-size:11px;transition:border-color .15s;display:inline-block}.oneko-copy-cmd:hover{background:#1a1a1a;border-color:#7dff7d}@keyframes blink{50%{opacity:0}}.blink{vertical-align:-.12em;background:currentColor;width:.55em;height:1em;margin-left:.15em;animation:1.05s steps(2,end) infinite blink;display:inline-block}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:78vh;display:flex}.hero .ip-line{letter-spacing:.03em;font-size:16px}.hero .ip-line .ip{font-weight:500}.hero h1{letter-spacing:-.01em;margin:4px 0 0;font-size:28px;font-weight:700;line-height:1.1;font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive!important}.hero h2{letter-spacing:-.015em;text-wrap:balance;margin:8px 0;font-size:40px;font-weight:700;line-height:1.05;font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive!important}.hero h2 .amp{opacity:.85;margin:0 12px;font-weight:400}.hero p.lede{font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;text-wrap:pretty;max-width:760px;margin:0;font-size:16px;line-height:1.75}.section{margin-top:96px}.section-first{margin-top:0}.drag-container{height:560px;position:relative;overflow:visible}.draggable-win{-webkit-user-select:none;user-select:none;position:absolute}.draggable-win .win-head{cursor:grab}.draggable-win .win-head.is-grabbing{cursor:grabbing}.portrait-image{aspect-ratio:402/371;background:#1f6feb;border-radius:6px;width:100%;max-width:400px;position:relative;overflow:hidden}.portrait-photo{object-fit:cover;object-position:center center;width:100%;height:100%;display:block}.codeblock{grid-template-columns:22px 1fr;column-gap:14px;font-size:13px;line-height:1.76;display:grid}.codeblock .ln{color:var(--ink);opacity:.4;text-align:right;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.codeblock .row{white-space:pre-wrap}.me-online .row{align-items:center;gap:12px;padding:10px 4px;font-size:14.5px;display:flex}.me-online .row svg{flex-shrink:0}.me-online .prompt{margin-top:24px;padding:6px 4px 2px;font-size:14.5px}.me-online .prompt .cursor{background:var(--ink);vertical-align:-3px;width:8px;height:16px;margin-left:4px;animation:1.05s steps(2,end) infinite blink;display:inline-block}.featured-grid{grid-template-columns:1fr 1fr 1.05fr;gap:26px;padding:6px 2px;display:grid}.news-card{border-radius:var(--radius-lg);background:0 0;border:none;flex-direction:column;gap:14px;padding:16px;display:flex;position:relative}.news-head{align-items:center;gap:12px;display:flex}.news-head .avatar{border:1.25px solid var(--line);background:var(--bg-pure);border-radius:50%;place-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:grid}.news-head .label{border:1.25px solid var(--line);border-radius:6px;padding:5px 10px;font-size:13px;display:inline-block}.news-head .handle{opacity:.6;margin-top:2px;font-size:11px}.news-card .headline{min-height:4em;font-size:13.5px;line-height:1.6}.news-card .thumb{aspect-ratio:16/9;border:1.25px solid var(--line);background:#1a1f2b;border-radius:8px;width:100%;position:relative;overflow:hidden}.news-card .read-more{color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-top:auto;padding:9px;font-family:inherit;font-size:13px;transition:background .12s;display:flex;position:relative}.news-card .read-more:hover{background:#0d0d0d0f}.featured-desc{padding:4px 6px}.featured-desc h3{color:var(--blue);letter-spacing:-.005em;margin:0 0 16px;font-size:19px;font-weight:500;line-height:1.4}.featured-desc p{margin:0 0 14px;font-size:13.5px;line-height:1.75}.featured-desc a.cert{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.experience-wrap{width:min(100%,1320px);margin:0 auto}.experience-body{padding:26px 34px 34px}.experience-command{color:var(--blue);font-family:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace;margin-bottom:4px;font-size:15px;font-weight:600}.experience-command .arrow{color:var(--blue);margin-right:10px}.experience-intro{font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;margin:0 0 26px;font-size:15px}.experience-timeline{position:relative}.experience-timeline:before{content:"";background:var(--line);opacity:.8;width:1.25px;position:absolute;top:14px;bottom:34px;left:14px}.experience-item{grid-template-columns:42px 1fr;gap:12px;display:grid;position:relative}.experience-item+.experience-item{margin-top:28px}.experience-marker{z-index:1;justify-content:center;padding-top:4px;display:flex;position:relative}.experience-marker span{border:1.5px solid var(--line);background:var(--bg-pure);width:22px;height:22px;box-shadow:0 0 0 4px var(--bg-pure);border-radius:50%}.experience-marker span.active{background:radial-gradient(circle, var(--green-bright) 0 37%, var(--bg-pure) 41% 100%)}.experience-content{min-width:0}.experience-topline{justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:4px;display:flex}.experience-topline h2{margin:0;font-size:22px;line-height:1.2}.experience-period{color:var(--green);font-family:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace;white-space:nowrap;font-size:15px;font-weight:600}.experience-role{color:var(--ink);font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;opacity:.74;margin:0 0 8px;font-size:14px}.experience-role span{color:var(--green);opacity:1}.experience-content ul{margin:0;padding-left:22px}.experience-content li{font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;padding-left:4px;font-size:14.5px;line-height:1.65}.experience-content li+li{margin-top:8px}.projects-title{text-align:center;letter-spacing:-.01em;margin:0 0 40px;font-size:44px;font-weight:500}.projects-title .highlight{color:var(--blue);margin-left:18px}.projects-list{flex-direction:column;gap:28px;width:min(100%,1040px);margin:0 auto;display:flex}.project-card{border-radius:var(--radius-xl);background:var(--bg-pure);border:none;padding:28px 34px 32px;transition:transform .2s,box-shadow .2s;position:relative}.project-card:hover{box-shadow:4px 4px 0 0 var(--line);transform:translateY(-2px)}.project-card-actions{justify-content:flex-end;align-items:center;gap:8px;max-width:calc(100% - 48px);display:flex;position:absolute;top:20px;right:24px}.project-action{border:1.25px solid var(--line-soft);background:var(--bg-pure);min-width:34px;height:34px;color:var(--ink);cursor:pointer;font-family:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 9px;font-size:11px;line-height:1;text-decoration:none;transition:background .12s,border-color .12s,transform .12s;display:inline-flex}.project-action:hover{border-color:var(--line);background:#0d0d0d0d;transform:translateY(-1px)}.project-action svg{flex:none}.copy-command{max-width:190px}.copy-command span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-card h3{letter-spacing:-.005em;margin:0 0 14px;font-size:26px;font-weight:500}.project-card.has-actions h3{padding-right:240px}.project-card p{text-wrap:pretty;margin:0;font-size:14px;line-height:1.8}.project-card .stack{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.project-card .stack span{border:1px solid var(--line-soft);opacity:.75;border-radius:999px;padding:3px 9px;font-size:11.5px}.projects-actions{justify-content:center;margin-top:30px;display:flex}.projects-view-all{background:var(--bg-pure);color:var(--ink);cursor:pointer;border:none;border-radius:10px;padding:11px 22px;font-family:inherit;font-size:13px;transition:background .12s,transform .12s,box-shadow .12s;position:relative}.projects-view-all:hover{box-shadow:3px 3px 0 0 var(--line);background:#0d0d0d0a;transform:translateY(-1px)}.project-modal{width:min(1040px,100vw - 32px);height:auto;max-height:min(760px,100dvh - 32px);color:var(--ink);background:0 0;border:none;margin:0;padding:0;position:fixed;inset:50% auto auto 50%;overflow:hidden;transform:translate(-50%,-50%)}.project-modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#f6f4eec2;background-image:linear-gradient(90deg,#0d0d0d14 1px,#0000 1px),linear-gradient(#0d0d0d14 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.project-modal-panel{border-radius:var(--radius-xl);background:var(--bg);flex-direction:column;height:100%;max-height:min(760px,100dvh - 32px);padding:24px;display:flex;position:relative;overflow:hidden}.project-modal-head{border-bottom:1.25px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding:2px 4px 18px;display:flex}.project-modal-kicker{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px}.project-modal-head h3{margin:0;font-size:28px;font-weight:500;line-height:1.15}.project-modal-close{background:var(--bg-pure);width:38px;height:38px;color:var(--ink);cursor:pointer;border:none;border-radius:9px;flex:0 0 38px;place-items:center;transition:background .12s,transform .12s;display:grid;position:relative}.project-modal-close:hover{background:#0d0d0d0f;transform:rotate(4deg)}.project-modal-list{flex-direction:column;flex:auto;gap:22px;min-height:0;max-height:min(590px,100dvh - 178px);padding:24px 4px 4px;display:flex;overflow-y:auto}.project-modal-list .project-card{background:var(--bg-pure);padding:24px 30px 28px}.project-modal-list .project-card h3{font-size:22px}.skills-wrap{max-width:1080px;margin:0 auto;padding-top:24px}.skills-body{padding:28px 32px 36px;font-size:14.5px}.skills-body .cmd{color:var(--blue);margin-bottom:6px;font-weight:600}.skills-body .cmd .arrow{color:var(--blue);margin-right:10px}.skills-body .subtle{margin-bottom:24px}.skill-tabs{border-bottom:1.25px solid var(--line);gap:36px;margin-bottom:24px;padding:6px 4px 0;display:flex}.skill-tabs button{cursor:pointer;color:var(--ink);opacity:.75;background:0 0;border:none;padding:10px 0 12px;font-family:inherit;font-size:15px;transition:opacity .12s,color .12s;position:relative}.skill-tabs button:hover{opacity:1}.skill-tabs button.active{color:var(--green);opacity:1;font-weight:500}.skill-tabs button.active:after{content:"";background:var(--green);border-radius:2px;height:2.5px;position:absolute;bottom:-1.5px;left:-4px;right:-4px}.tree{margin:8px 0 16px;line-height:1.9}.tree .cmd-line .arrow{color:var(--pink);margin-right:12px}.tree .branch{color:var(--green);padding-left:30px;position:relative}.tree .branch:before{content:"└─";color:var(--green);margin-right:8px}.tree .out{word-break:break-word;padding-left:56px;line-height:1.9}.tree .out .caret{background:var(--ink);vertical-align:-2px;width:8px;height:14px;margin-left:2px;animation:1.05s steps(2,end) infinite blink;display:inline-block}.badge-row{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.badge-row .label{width:100%;margin-bottom:6px;font-size:13.5px}.skill-badge{cursor:default;background:0 0;border:none;border-radius:999px;align-items:center;gap:10px;padding:7px 18px 7px 14px;font-size:13px;transition:background .12s,transform .12s;display:inline-flex;position:relative}.skill-badge:hover{background:#0d0d0d0d;transform:translateY(-1px)}.skill-badge .br{color:var(--green);letter-spacing:-.02em;font-weight:600}.skills-footer{border-top:1.25px solid var(--line);color:var(--ink);margin-top:28px;padding-top:18px}.skills-footer .arrow{color:var(--green);margin-right:10px}.skills-footer code{background:0 0}.closing-tag{text-align:center;letter-spacing:.02em;margin:56px 0 8px;font-size:15px}.closing-tag a{color:var(--ink)}.contact-section{margin-top:56px}.contact-trigger{color:var(--ink);cursor:pointer;font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;text-underline-offset:3px;background:0 0;border:none;padding:8px 14px;font-size:15px;text-decoration:underline;position:relative}.contact-trigger:hover{background:#0d0d0d0a}.contact-modal{width:min(760px,100vw - 32px);height:auto;max-height:min(740px,100dvh - 32px);color:var(--ink);background:0 0;border:none;margin:0;padding:0;position:fixed;inset:50% auto auto 50%;overflow:hidden;transform:translate(-50%,-50%)}.contact-modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#f6f4eec2;background-image:linear-gradient(90deg,#0d0d0d14 1px,#0000 1px),linear-gradient(#0d0d0d14 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.contact-modal-panel{border-radius:var(--radius-xl);background:var(--bg);max-height:min(740px,100dvh - 32px);padding:24px;position:relative;overflow-y:auto}.contact-modal-head{border-bottom:1.25px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding:2px 4px 18px;display:flex}.contact-modal-kicker{color:var(--blue);font-family:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace;letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px}.contact-modal-head h3{margin:0;font-size:28px;line-height:1.15}.contact-modal-close{background:var(--bg-pure);width:38px;height:38px;color:var(--ink);cursor:pointer;border:none;border-radius:9px;flex:0 0 38px;place-items:center;display:grid;position:relative}.contact-form{grid-template-columns:1fr 1fr;gap:16px;padding-top:22px;display:grid}.contact-form label{font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;flex-direction:column;gap:8px;font-size:14px;display:flex}.contact-form-wide{grid-column:1/-1}.contact-form input,.contact-form textarea{border:1.25px solid var(--line);background:var(--bg-pure);width:100%;color:var(--ink);font-family:var(--font-fuzzy-bubbles), ui-rounded, "Comic Sans MS", cursive;border-radius:8px;outline:none;padding:11px 12px;font-size:14px;line-height:1.5}.contact-form textarea{resize:vertical;min-height:154px}.contact-form input:focus,.contact-form textarea:focus{box-shadow:3px 3px 0 0 var(--line)}.contact-form-actions{grid-column:1/-1;justify-content:flex-end;gap:12px;padding-top:4px;display:flex}.contact-form-actions button{background:var(--bg-pure);color:var(--ink);cursor:pointer;font-family:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace;border:none;border-radius:9px;padding:11px 16px;font-size:13px;position:relative}.contact-form-actions button[type=submit]{color:var(--blue);font-weight:600}.contact-form-actions button:disabled{cursor:wait;opacity:.6}@media (max-width:1100px){.featured-grid{grid-template-columns:1fr}.shell-content{padding:56px 28px 100px}.hero h1{font-size:26px}.hero h2{font-size:34px}.experience-body{padding:24px 26px 30px}.experience-topline{flex-direction:column;align-items:flex-start;gap:4px}.projects-title{font-size:32px}}@media (max-width:640px){body{padding:8px}.shell-outer,.shell-outer:before,.shell{border-radius:10px}.shell-content{padding:40px 18px 90px}.shell-title{font-size:11px}.status-bar{gap:8px;padding:0 10px;font-size:10px}.status-bar .hide-sm{display:none}.hero h1{font-size:22px}.hero h2{font-size:28px}.hero h2 .amp{margin:0 6px}.experience-body{padding:20px 18px 24px}.experience-command,.experience-period{font-size:13px}.experience-intro{margin-bottom:20px;font-size:14px}.experience-timeline:before{bottom:28px;left:10px}.experience-item{grid-template-columns:28px 1fr;gap:10px}.experience-marker{padding-top:3px}.experience-marker span{width:18px;height:18px}.experience-topline h2{font-size:19px}.experience-role{font-size:13.5px}.experience-content ul{padding-left:18px}.experience-content li{font-size:13.5px;line-height:1.62}.projects-title{font-size:26px}.projects-list{width:100%}.project-card{padding:20px}.project-card-actions{flex-wrap:wrap;justify-content:flex-start;max-width:100%;margin-bottom:14px;position:static}.project-card h3{padding-right:0;font-size:20px}.copy-command{max-width:100%}.projects-view-all{width:100%}.project-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.project-modal-panel{max-height:calc(100dvh - 16px);padding:14px}.project-modal-head{gap:12px;padding:2px 2px 14px}.project-modal-head h3{font-size:22px}.project-modal-close{flex-basis:34px;width:34px;height:34px}.project-modal-list{gap:16px;max-height:calc(100dvh - 136px);padding:16px 2px 2px}.project-modal-list .project-card{padding:20px}.contact-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.contact-modal-panel{max-height:calc(100dvh - 16px);padding:14px}.contact-modal-head{gap:12px;padding:2px 2px 14px}.contact-modal-head h3{font-size:22px}.contact-modal-close{flex-basis:34px;width:34px;height:34px}.contact-form{grid-template-columns:1fr;gap:14px;padding-top:18px}.contact-form-actions{flex-direction:column-reverse}.contact-form-actions button{width:100%}.skill-tabs{gap:20px;overflow-x:auto}.win-body{padding:18px}.skills-body{padding:20px}}@media (max-width:900px){.drag-container{flex-direction:column;gap:16px;height:auto;padding-bottom:8px;display:flex}.draggable-win{width:100%;position:relative}.portrait-image{aspect-ratio:402/371;max-width:340px;margin:0 auto}.codeblock{font-size:12px}}@supports (border-shape:shape(from 0 0, line to 10px 0, close)){.shell-outer:before,.win-wrap:before,.news-card:before,.project-card:before,.project-modal-panel:before,.projects-view-all:before,.project-modal-close:before,.contact-modal-panel:before,.contact-trigger:before,.contact-modal-close:before,.contact-form-actions button:before,.news-card .read-more:before{display:none!important}.shell{border:1.5px solid var(--line);border-shape:shape(from 0% 14px, curve to 14px 0% with 0% 0%, line to 18% 0%, curve to 26% 4px with 22% 0px, curve to 34% 0% with 30% 4px, line to 52% 0%, curve to 60% 4px with 56% 0px, curve to 68% 0% with 64% 4px, line to 82% 0%, curve to 90% 4px with 86% 0px, curve to calc(100% - 14px) 0% with 94% 4px, curve to 100% 14px with 100% 0%, line to 100% 25%, curve to calc(100% - 4px) 33% with 100% 29%, curve to 100% 41% with calc(100% - 4px) 37%, line to 100% 60%, curve to calc(100% - 4px) 68% with 100% 64%, curve to 100% 76% with calc(100% - 4px) 72%, line to 100% calc(100% - 14px), curve to calc(100% - 14px) 100% with 100% 100%, line to 80% 100%, curve to 72% calc(100% - 4px) with 76% 100%, curve to 64% 100% with 68% calc(100% - 4px), line to 40% 100%, curve to 32% calc(100% - 4px) with 36% 100%, curve to 24% 100% with 28% calc(100% - 4px), line to 14px 100%, curve to 0% calc(100% - 14px) with 0% 100%, line to 0% 74%, curve to 4px 66% with 0% 70%, curve to 0% 58% with 4px 62%, line to 0% 38%, curve to 4px 30% with 0% 34%, curve to 0% 22% with 4px 26%, line to 0% 14px, close)}.win,.project-card,.news-card,.project-modal-panel,.contact-modal-panel{border:1.5px solid var(--line);border-shape:shape(from 0% 8px, curve to 8px 0% with 0% 0%, line to 28% 0%, curve to 36% 3px with 32% 0px, curve to 44% 0% with 40% 3px, line to 60% 0%, curve to 68% 3px with 64% 0px, curve to 76% 0% with 72% 3px, line to 88% 0%, curve to 96% 4px with 92% 0px, curve to 100% 14px with 100% 8px, line to 100% 30%, curve to calc(100% - 3px) 38% with 100% 34%, curve to 100% 46% with calc(100% - 3px) 42%, line to 100% 62%, curve to calc(100% - 3px) 70% with 100% 66%, curve to 100% 78% with calc(100% - 3px) 74%, line to 100% calc(100% - 14px), curve to calc(100% - 8px) 100% with 100% 100%, line to 76% 100%, curve to 68% calc(100% - 3px) with 72% 100%, curve to 60% 100% with 64% calc(100% - 3px), line to 44% 100%, curve to 36% calc(100% - 3px) with 40% 100%, curve to 28% 100% with 32% calc(100% - 3px), line to 12% 100%, curve to 4px calc(100% - 5px) with 8px 100%, curve to 0% calc(100% - 14px) with 0% 100%, line to 0% 78%, curve to 3px 70% with 0% 74%, curve to 0% 62% with 3px 66%, line to 0% 46%, curve to 3px 38% with 0% 42%, curve to 0% 30% with 3px 34%, line to 0% 8px, close)}.news-card .read-more,.projects-view-all,.project-modal-close,.contact-trigger,.contact-modal-close,.contact-form-actions button{border:1.25px solid var(--line);border-shape:shape(from 0% 6px, curve to 6px 0% with 0% 0%, line to 25% 0%, curve to 33% 2.5px with 29% 0px, curve to 41% 0% with 37% 2.5px, line to 60% 0%, curve to 68% 2.5px with 64% 0px, curve to 76% 0% with 72% 2.5px, line to calc(100% - 6px) 0%, curve to 100% 6px with 100% 0%, line to 100% calc(100% - 6px), curve to calc(100% - 6px) 100% with 100% 100%, line to 70% 100%, curve to 62% calc(100% - 2.5px) with 66% 100%, curve to 54% 100% with 58% calc(100% - 2.5px), line to 30% 100%, curve to 22% calc(100% - 2.5px) with 26% 100%, curve to 14% 100% with 18% calc(100% - 2.5px), line to 6px 100%, curve to 0% calc(100% - 6px) with 0% 100%, close)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
