@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=)format("woff2"),url(data:font/woff;base64,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)format("woff");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-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff)format("woff");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-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA9UABAAAAAALMAAAA7zAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnAbhWocghYGYD9TVEFUXgCDBBEICrBAp3ILgjgAATYCJAOEKAQgBYUAB4xODAcbIiYzo8LGAQCKfn4o/usELQ4rdj22ABHwitFYjZPqB3XSqAbV3C5dFkHYtTehxpeGbU+3+QexdERCkxARw9oNxAyetvXzdhdjl/7aiBiHgcqBjZywaGPSh4mNFccpF3DHlfyO8Jc/OiSe/kb7/iQYRAE23iScpHngiRRBFETNiZzQwc2HOllJ0fqXIjTY8RTYbDsklKc81hGPQcOJojhD/w80ll1aG/qiQErbzqOXjmvOVKd14tuv+Hxrlbarq/5xH7CiMPjaZXlrfNSp7uqaroZXvYAzc8A0kH2zs3MvHQBUORcJ2GG2cdFRgArh+Sgb7yOsjImpmgM0kq1FwhQCQzQ1Mt+j7at5GSAAIQAAKFLk6uMul4pIl4HIpEEUK0dUMiCMmhFWNoSDC+Exghgzi5i3hNhtN9qaINo+EbQj1tEIgJVLj5oebQ6I1/fyLMQYALYgALKS0yEOQCJG89uIiEPKyeRDVCmC0HgZ203jIg7kk6cHxfEKeBSDXtxd6n5yJzqpfSgXs9xMri1fPezlKMAVcCGEIhmwHiDRtJOyKfXkGsAVqI7ohIZs0rsDM/IU4fuQgkppCk2n+VRHy6mFttJ26t16mBjQPyIeYhvZnyXaiDSeaAYYXLiKPIm4uKh1zIq6gSRVU7WNPIV5v1PwBOy07RrrT6skwoEAtYyZeYgpBUABaDEmtPWRGP/UGABFgUUjchFXAghAgAYQpyPkCIBBoRwQgU/g3kQcyqTY9KSDItmjjmmkP+qJHG3C66hjXhtlhzwglI+1+4Be+T77hYQxxeNkCIDaKU+ANXhkMqePOVAQr7uwCjoBlCdtHQE8TNRd17//A/evkhSpkOMDA9VTmwAVAbLNlwMkoAG5qG2bWCYA/h3uEYgEhFqSmJJPpCIFbJHg1Aw5GaAujjqMzIHc8NrIHBEJJjGZP3cuFQZD9PvzLvZIaCIjBcTvEnIzTWiGjqdzlD+VAO2TUERK8smEi8lNNOguiAM9P6Gfo6bX8bD0v7V/cPwA/fDBi0BaGgUllWy5AATy6X9gAZqRVIsMLuVmqQ3QmrBbiFgTiWbxLDj1hBqINGLVYewQwySWWRyeQK1kXVJ0S2UjZ5WgXaIOSTodp42CUzqHXH226ZfJI4tXth45eqnslGdQgSGFhmmMyOdTbEyJcdv56U0pNa3MDJ1JVRZUmldtkcESglQkAOA8AMgAoBeYLQi+wDxAtwAAGlXJUdVLPLmo/TLRystE3SsqO29LUY0hsrtvBoXUw1Fy+XjIhqbj4rEZISsUysW1L68PlGRwyWImjWXjS9LFyUzjC7v7Z5hYsYKRhIH49EyxTJxutwOy2PRxp1R63SVViB+eNFYRywlEzJBIMDIl5Aa4PtbFOno416WTTkfVQwSPgIve66BCbLAuLmpCh59ln5uFECODSuUIJ2CJCCzDwbf+DV2/3yTtan5J1gEVuilcVASHULO9Bt+nWkIEHMMit5gOxaO4JpWjvdzOcySeFek9q4dy3jxi2BxHwsuuo2CzbQ+KJWxyqPUJljVCU3WT8JwlhZyLkKODRhZkQByHu8ERJIcGBexSmdwGPfMPbjnC0SwRUTyCAIwY4Mdr9zxJTKE5yp0mcEe9s3Umm/TZp2s4X/27cQUmhrd4Ow4ibPOTOxxT6w+S8ENc9AGE7meFOlNbuzjngJtzjFKcrMsxtf4G4UIPcNGXbvwNaeDea6+1L7kaYG+M13a455pruOh5Ww0HlhllPy/PsqS9Zr7ZV9cSLODAoItzBt2cI5i1brCxQRIcH6yr9wV5+XjhtlxuziH7LiqGTXVnkfCZntd1doJ5liyIno6X3GqH56fcnGNwE2IXvYhw5a/MJGsMns/TOawd+2HX5kOXxQZFsYkwmMetzGtqKDKSe+h9h7jX77z2Snb98vyL7rjmil1N3B/cCBfsC5rymA/ExpPlni/DL9i7eflmn66oxrSlMRRB/8Dbq/e/3aN95L3BG+dFd1d+uCVzKhQy5/+I77CmWJ/o2Hygaay8yleXU1c1NH2IpqHOYUtriyWHf3iZwxjZvNxm/Ti/O5+22uC3nVFxhu1wvQc08ZZ+nb5/9oBF38ehJXaKPt7K6/v34Ltqai21rbXDXI3BRDa+9XDSGp8gzZZarV2ag9v3RBzSNfFjU/M+uVduNDTsMNY0GCOHDU3O4dazeb3zFXjg0rlPuiV75+m+kzV3v5qc/PHdJ2j6pI+wDP+U7mFPW/uw23ltZemTVTo+3+KNa1yyuwdmfI41j1/yvbG3oaLR3G3Sd1xdrNOUfAou3jYw0z860D9jr+9sqU1IIHve9W56/fIEU2fztvaqHQ213trhKauqjXVmr/kFxP1m7bdCE88Plpb1m840l/VNQz72QvvMPlc5z9fvKPt1xBtXv9yVZ9nGmxscXiDfwGcI4LQ9duBaG7Nxjw2aWMuArp7In2qxObTwKfr40/iy/j34zhqeN59qHuZqDBaysQWiL/PZsk4cyV13mvbwWw7phfEDC/O+fm9/ram+sspcXxs5hm9pHjufSujGRbKXaTPmBAPPfMm45bau15+jR/bbBx80mR7sCth94rfB6Q6sngJcuO1v4a7Lu157ad9GKIlypuEea9GDnXs0IytDmZ2Rka2cVv4jrIHmaFZ3O9OWlWX7gLuRH1mMjsxE8VrEH/XNRrErsh61R6PD3e2d7dDsb3Z38k15W/kFkrwmHk+PhWNKx3nLMhHkSl5ZLMvHWPGPfwRB9AKr2QoSUb4qSlB18X715zkqwRI0G3lvUOptugtcID+tsKQForrC+pqxS4X1dcof21bf4OQcbZ2Le6y53kKao3rxNWE9f1a+S3t2tiIu5yej2d/W12RozBwrLh7LbDT0NkUDi+HBQPj0xIlAoKHFFxAMPB8Vce+KKo28Rq0SHV3LUk6MNLv35DMrCzVNmbxBeCGCKzMtu20y8f+SVD4h31Sosky03Upl9YJxzh+L0ZFANLR4LOpYj452tne145E/wok2e6JX/xBX/vH8WaFQojdWlrhzuOXjs1Zn3cCkT4qWSmZeqX/B4tciE4HBmUBZwGxtMDaqnCpdllPVaIzdNw9ZqfDU30ppYDgw2B+A5JP5L8bj4tgWoy/t6WRRcO2P8uFDakiP2fMWaviyaOYFr94gE0nEsXysWligOuHRC2TiH0XSJ/4WqQcjE4GxmUAocKlG+jECgZHFwGX8vabVzf8f4KQSi8Gp6laIdgV0q8OzbmjyaWdnW1MQXZoJDb7ZaEdzVzMoNQiAGESUwszDAIzTDIqSxGFoxoRZ/vTKM8CfyZ9V/ZAPfzZ/Ds4tMHm0dSxCkOPaNpKlK8/KwGQVCdzqbPDn1HKuiT8WHUnStEQYZB2TC6WJ6spymNIjBV7JK5lSs1C5qDoRSYBUSlgH31LlM7X5O4o8eBxrX3MDwtOG1iZdZ/NjXsu0gBJohRVmlQNfwVfQmsReAdZEAahljqkMaxLHg/gT+BONkwxcgT0CH/5k/pQrcCpMUYiGtPqbDGvVgALfitYyTHyI7iP25WqsSqAlstCbcmZ3k0PcRZlgbs0KCrwb7lImBTqQCCawVEpMWHur0DRm3+9sVAOK6UQiqESr8NaEtY8Vu86AIjK3KRZhXNwqD34Oc38umLZM7/33+38/uOj7///Z9yMAAHqAUtN3Bsa/l9rSiKVxlONqqbKozYWfYMRMRkicEE2FhIs4TuWQJL0RDNwCPy0hP1CbGAVY9Mb6W+DZ2p14CIQoIBjqGKpe6lOONhDJTUFBXMgZYOPct8C7Ffmf2jR2ksQ72U7f6SBu5gywoW8x2Qhy1APl1CZGAQ4ksGGD8loGsjY0UQKXmhdvpBboCNglmiU2XUCieL2dF1bDaTacoykaTjgFAhquyoFkiSk0LZyooeM7gQDVIlmNOwCPlICNKQpatkhBhUQJpdLCVwFqWj3FQ8sWeajTWbJiLeRJQlRmsyh1YLRZtAzVNr0dAoCqYN6wXLhzQGL8LY6mvwSAd1698ly88s2Xfwa7FbVA/wsgBhQAgABfG3dQHs2o/066DhB0wWo68NIlpR8Rtqkj9flbwtMc3oZyWoIn3n+L86o5vA1V8ng6L4C9+Ax3YgMBHN8Er4rV97ZRXgdo2vF244hH35wAzlOM0Y1BABGNnNCZ4UFNPID7U9KeSCgiP5EiDnMizejpExlFzj9RIM2BE2MU8pwgViH7TAQQSqpgnDuJJAk2kHIaYDNnhs+sFsvBuaf5DXMbXT9uwvLIbk49b4mBNm3JsEV+85YtKUHWb5rT5ywap9WpUZtWo6q5Fot8W89a0m4OaXOK2Ywat2KaD3NdRi1S/+eloldCT0fn1K5q61Mpa6eaNrKMB6WMQqn83IfXmTNv1eIRiaKj7aOsikMmoxej+EfqsmjOpFHDLnneylGLQxT66vnHnh/n12VXDN1Hw6/bcNpctWo3vrwApZvfrdEDiP8IzgPkeiYUoQlzDvYWB0cnZ6uLq5t7+aRk5I6TIFGS5IqkSJWWXjqFDEqZVLJky5FrG7W8quQrUEijSLESWtsz0tErVVa9chUqValmUMNoh1omZjxSM4s69Ro0atKspTe1smrLpl2HTl262dg5OLm4eezMw6tHrz79BgzyGarXsBGjxqJtJvhNmjJtxqw58xYsWrJsxS4Bu61aE7THXvvsFxJ2wEERhxx2xFHHrIs6fuE/r+1vm6/8jhhtDCwnASDGR1h4SGhYwEGU1Y/Xffk5G4u9XgIAYtxyGpZ5y9sDdNbyP142W5DgAhoE7i3q0c5x2vm9v24aZuNohdcxqSEAz8up00My03HSwmqPa8bMecG3Tjzb+f9EelEtg2vpzPeiIEEBwSA8IEDBwAE9F5Z6vQIQjAnLGTgWLO+uZTL/qwGEAYOAQpg3TefgwBCQgBDzqukKDBAOoU3KVtqIbBXK9XpEAAujuudkZN724kIGmrtVaS38ZZLrS9/4fsKMQhN3yXK5gvSBvJ2Y9/Nydbcvb0bm58+e3FhmGfGLJ9u7axl1F1LQTbaCeyrbu7wFCsorFgV4qnh+GUrWtaczqkSBB96AEeKRB94k2SyLuyw3qwrxeg3P5FNR1Av1Gsq2/ds6dPPkBAAA)format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff)format("woff");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-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff");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}@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-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}}}@layer theme{:root,:host{--font-sans:"Inter Variable", "Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.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,)}.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))}}:root{font-family:var(--font-sans);color:#f2f7f9;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--secondary:#abc2d3;--line:#aecee138;--aqua:#5eead4;--cyan:#38bdf8;--motion-ease:cubic-bezier(.22,1,.36,1);background:#0b1d33}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body{min-width:320px;margin:0}a{color:inherit;transition:color .18s var(--motion-ease);text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:5px;outline:2px solid #67e8f9}::selection{color:#f5faff;background:#17628a}h1,h2,h3,p{margin:0}h1,h2,h3{overflow-wrap:break-word}svg{flex-shrink:0}figure{margin:0}.container{width:min(1320px,100% - 112px);margin-inline:auto}.mono,.eyebrow{font-family:var(--font-mono);letter-spacing:.04em;font-size:.75rem;line-height:1.7}.eyebrow{color:var(--secondary);text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.eyebrow>span:first-child{color:var(--aqua)}.label-divider{color:#7390a5}.accent{color:var(--cyan)}.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}#top{isolation:isolate;position:relative}.skip-link{z-index:100;color:#0b1d33;background:#67e8f9;padding:12px 20px;position:fixed;top:10px;left:20px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header-notch{z-index:100;pointer-events:none;justify-content:center;display:flex;position:fixed;top:24px;left:0;right:0}.nav-notch{pointer-events:auto;-webkit-backdrop-filter:blur(16px);background:#08121e40;border:1px solid #ffffff0d;border-radius:32px;padding:6px 10px;display:inline-flex;position:relative;overflow:visible;box-shadow:0 4px 24px -1px #00000026}.nav-notch-links{z-index:2;align-items:center;gap:8px;display:flex;position:relative}.nav-notch-link{color:var(--secondary);transition:color .26s var(--motion-ease);border-radius:30px;padding:10px 22px;font-size:.9375rem;font-weight:500;position:relative}.nav-notch-link:hover{color:#f5faff}.nav-notch-link[aria-current=page]{color:#fff}.nav-light-beam{z-index:-1;pointer-events:none;position:absolute;inset:0}.nav-light-beam:before{content:"";filter:blur(4px);background:radial-gradient(#5eead466 0%,#0000 70%);width:60%;height:16px;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.nav-light-beam:after{content:"";background:linear-gradient(#5eead41a 0%,#0000 80%);border-radius:30px;position:absolute;inset:0}.hero{isolation:isolate;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:70px;padding-top:100px;display:grid;position:relative}.info-intro{isolation:isolate;padding-top:100px;position:relative}.hero:before,.contact-hero:before,.case-hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 80% 32%,#38bdf829,#0000 64%);position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 25%,#0000 72%);mask-image:radial-gradient(#000 25%,#0000 72%)}.hero h1,.info-heading h1{letter-spacing:-.065em;margin-top:30px;font-size:clamp(3.5rem,7.2vw,7.8rem);font-weight:450;line-height:1.15}.hero h1>span,.info-heading h1>span,.contact-hero h1>span{color:#b8e7e8}.hero-introduction{max-width:440px;color:var(--secondary);margin-top:38px;font-size:1rem;line-height:1.7}.hero-introduction>p+p{margin-top:8px}.hero-statement{color:#e0edf5;font-size:1.125rem}.hero-quote{border-left:2px solid var(--cyan);background:0 0;border-radius:0;max-width:620px;margin:clamp(18px,2.6svh,28px) 0 0;padding:clamp(10px,1.4svh,16px) clamp(16px,2vw,24px)}.hero-quote-text{color:#e4f1f8;letter-spacing:-.012em;font-size:clamp(1rem,1.8svh,1.1875rem);font-style:italic;font-weight:400;line-height:1.55}.hero-actions{flex-wrap:wrap;align-items:center;gap:20px 30px;margin-top:28px;display:flex}.hero-work-link{color:#e0edf5;transition:color .24s var(--motion-ease);align-items:center;gap:8px;min-height:44px;font-size:1rem;font-weight:500;text-decoration:none;display:inline-flex}.hero-work-link svg{color:var(--cyan);transition:transform .24s var(--motion-ease), color .24s var(--motion-ease)}.hero-work-link:hover,.hero-work-link:focus-visible{color:#fff}.hero-work-link:hover svg,.hero-work-link:focus-visible svg{color:#67e8f9;transform:translate(3px,-3px)}.text-link{align-items:center;gap:22px;min-height:44px;display:inline-flex}.hero-visual{align-self:center;min-width:0;position:relative}.hero-bottom{border-bottom:1px solid var(--line);color:var(--secondary);grid-column:1/-1;justify-content:flex-end;align-items:center;gap:25px;padding-block:32px;font-size:.875rem;display:flex}.portrait-card{background:linear-gradient(135deg,#183f59,#12334b 65%,#184657);border-radius:3px;position:relative;overflow:hidden}.portrait-scene{aspect-ratio:4/5;position:relative;overflow:hidden}.portrait-halo,.portrait-orbit{aspect-ratio:1;pointer-events:none;border-radius:50%;width:110%;position:absolute;top:8%;left:-5%}.portrait-halo{-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;background:conic-gradient(from 30deg,#0000 5%,#67e8f9 25%,#60a5fa1f 48%,#5eead4 72%,#0000 95%);padding:1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.portrait-orbit{border:1px solid #98dff224;width:88%;top:17%;left:6%}.portrait-orbit:before{content:"";background:#9aeee1;border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;left:calc(50% - 3px);box-shadow:0 0 18px #5eead4a6}.portrait-image{position:absolute;inset:24px;overflow:hidden}.portrait-image img{object-fit:cover;width:100%;height:100%;display:block}.portrait-placeholder{color:#d2e8f0;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;display:flex}.portrait-placeholder svg{color:#9de4e1;margin-bottom:8px}.portrait-soon{color:var(--secondary);font-size:.8125rem}.portrait-card figcaption{border-top:1px solid var(--line);font:.6875rem var(--font-mono);letter-spacing:.08em;color:#c0d7e4;justify-content:space-between;padding:20px 24px;display:flex}.portrait-aura{z-index:-1;pointer-events:none;opacity:var(--trace-light,.44);background:radial-gradient(#67e8f938,#0000 70%);position:absolute;inset:-35px -20px}.story-photo-card{background:linear-gradient(135deg,#183f59,#12334b 65%,#184657);border-radius:3px;position:relative;overflow:hidden}.story-photo-scene{aspect-ratio:var(--story-aspect,4/5);position:relative;overflow:hidden}.story-photo-glow{pointer-events:none;background:radial-gradient(circle,#67e8f926 0%,#0000 65%);position:absolute;inset:-10%}.story-photo-image{border-radius:2px;position:absolute;inset:20px;overflow:hidden}.story-photo-image img{object-fit:cover;width:100%;height:100%;display:block}.story-photo-placeholder{color:#d2e8f0;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;padding:20px;display:flex}.story-photo-placeholder svg{color:#9de4e1;margin-bottom:6px}.story-photo-soon{color:var(--secondary);font-size:.8125rem}.story-photo-card figcaption{border-top:1px solid var(--line);font:.6875rem var(--font-mono);letter-spacing:.08em;color:#c0d7e4;text-transform:uppercase;justify-content:space-between;padding:18px 22px;display:flex}.work-section,.work-projects{padding-top:60px;padding-bottom:80px}.project-spread{padding-bottom:125px}.project-spread+.project-spread{border-top:1px solid var(--line);padding-top:70px}.project-heading h3{letter-spacing:-.055em;max-width:1120px;margin-top:24px;font-size:clamp(2.75rem,5.8vw,5.5rem);font-weight:450;line-height:1.12}.project-heading h3,.project-heading h3 a{justify-content:space-between;align-items:flex-start;gap:25px;display:flex}.project-heading h3 a{width:100%}.project-heading h3 svg{color:#b8e7e8;width:clamp(38px,5vw,72px);height:clamp(38px,5vw,72px);transition:transform .32s var(--motion-ease);margin-top:6px}.project-meta-row{flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:16px;display:flex}.project-meta-row .eyebrow{margin:0}.project-meta-row .status{align-self:baseline;margin:0;position:static;inset:auto;transform:none}.project-information{flex-direction:column;gap:24px;margin-top:25px;margin-bottom:35px;display:flex}.project-copy{color:#bdd1df;max-width:700px;font-size:1.0625rem;line-height:1.75}.project-copy p+p{margin-top:18px}.project-technologies{color:var(--secondary);flex-wrap:wrap;gap:8px 20px;margin:35px 0 0;padding:0;font-size:.875rem;line-height:1.8;list-style:none;display:flex}.project-technologies li:not(:last-child):after{content:" /";color:#7290a6;padding-left:14px}.project-actions{flex-wrap:wrap;gap:18px 25px;margin-top:35px;font-size:.875rem;display:flex}.project-detail-link{color:#a0e8e2;align-items:center;gap:7px;display:inline-flex}.external-link,.placeholder-link{flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;display:inline-flex}.placeholder-link{color:var(--secondary);cursor:default}.soon{color:#a9c3d5;font-size:.6875rem}.project-media{aspect-ratio:16/9;background:radial-gradient(at 75% 20%,#60a5fa38,#0000 65%),linear-gradient(135deg,#183b54,#12314b);border-radius:3px;position:relative;overflow:hidden}.project-media-02{background:radial-gradient(at 20% 20%,#5eead426,#0000 65%),linear-gradient(135deg,#163b4b,#142d49)}.project-media-03{background:radial-gradient(at 75% 60%,#38bdf830,#0000 65%),linear-gradient(135deg,#1a3c55,#112b43)}.project-media a{height:100%;display:block}.project-media img{object-fit:contain;width:100%;height:100%;transition:transform .6s var(--motion-ease);display:block}.project-preview-placeholder{text-align:center;place-items:center;height:100%;padding:30px;display:grid;position:relative}.placeholder-content{z-index:2;position:relative}.project-preview-placeholder p{letter-spacing:-.03em;color:#e0edf5;margin-top:16px;font-size:clamp(1.25rem,2.5vw,2rem)}.placeholder-content>span{color:#8da9be;margin-top:12px;font-size:.8125rem;display:block}.media-sequence{letter-spacing:-.08em;color:#b4e0ec0a;-webkit-user-select:none;user-select:none;z-index:0;pointer-events:none;font-size:clamp(6rem,17vw,15rem);font-weight:350;line-height:1;position:absolute;top:10%;left:auto;right:4%}.project-media-01:before{content:"";z-index:1;pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#ffffff04 1px,#0000 1px),linear-gradient(#ffffff04 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:40px 40px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.project-media-01:after{content:"";clip-path:polygon(0 100%,15% 75%,35% 85%,60% 40%,80% 65%,100% 25%,100% 100%);z-index:1;pointer-events:none;background:linear-gradient(#0000,#60a5fa0f);height:45%;position:absolute;bottom:0;left:0;right:0}.project-media-02:before{content:"";z-index:1;pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#ffffff06 1px,#0000 1px),linear-gradient(#ffffff06 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:45px 45px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.project-media-02:after{content:"";z-index:1;pointer-events:none;background:#5eead41f;border-radius:50%;width:45px;height:45px;position:absolute;top:40%;left:35%;box-shadow:120px 40px 0 -5px #ffffff0f,-70px 70px 0 -10px #5eead414}.project-media-03:before{content:"";z-index:1;pointer-events:none;border:1px dashed #38bdf81f;border-radius:8px;position:absolute;inset:25%}.project-media-03:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#0000,#38bdf826,#0000);height:2px;position:absolute;top:40%;left:35%;right:35%;box-shadow:0 35px #38bdf81a,0 70px #38bdf80d}.section-heading{margin-bottom:35px}.section-heading h2{letter-spacing:-.05em;margin-top:24px;font-size:clamp(2rem,3.8vw,3.5rem);font-weight:450;line-height:1.18}.section-heading .eyebrow{letter-spacing:.08em;font-size:clamp(.8125rem,1.1vw,.9375rem);font-weight:500}.info-heading{align-self:flex-start;max-width:820px}.page-introduction{color:var(--secondary);margin-top:32px;font-size:1.125rem;line-height:1.7}.info-intro{padding-bottom:110px}.info-section{border-top:1px solid var(--line);padding-block:85px}.info-section-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:center;gap:clamp(40px,6vw,90px);display:grid}.info-section .section-heading{margin-bottom:0}.info-prose{color:var(--secondary);font-size:1.0625rem;line-height:1.85}.info-prose p+p{margin-top:24px}.info-prose .lead{letter-spacing:-.035em;color:#e0edf5;font-size:clamp(1.4rem,2.1vw,1.85rem);line-height:1.6}.info-hero-section{isolation:isolate;background-color:#0b1d33;position:relative;overflow:hidden}.hero-bg-layer{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-bg-image{will-change:transform, opacity;background-position:50% 40%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.hero-bg-overlay{background-color:#09121eb8;position:absolute;inset:0}.info-hero-section .hero-bg-overlay{background-color:#09121e8c}.info-hero-section .hero-copy h1,.info-hero-section .hero-quote-text{text-shadow:0 2px 12px #0000004d}.info-hero-section .eyebrow{letter-spacing:.12em;font-size:1rem;font-weight:500}.info-education-section{isolation:isolate;background-color:#0b1d33;position:relative;overflow:hidden}.info-education-section .info-section-layout{grid-template-columns:minmax(0,1.6fr) minmax(0,1.15fr);gap:clamp(30px,4vw,60px)}.education-bg-layer{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.education-bg-image{will-change:transform, opacity;background-position:50% 35%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.education-bg-overlay{background-color:#091728c2;position:absolute;inset:0}.education-content h3{letter-spacing:-.04em;font-size:clamp(1.5rem,2.5vw,2.25rem);font-weight:450;line-height:1.35}.education-faculty{color:var(--secondary);margin-top:6px;font-size:1.0625rem;line-height:1.6}.education-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;font-size:1rem;display:flex}.education-major{font-weight:450;color:#e0edf5!important}.education-divider{color:#7290a6}.education-role{color:var(--aqua);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.8125rem}.education-prose{border-top:1px solid var(--line);color:var(--secondary);max-width:620px;margin-top:24px;padding-top:20px;font-size:1.0625rem;line-height:1.8}.education-prose p{text-align:justify;text-justify:inter-word;text-align-last:left}.education-prose p+p{margin-top:12px}.info-confidence-section{isolation:isolate;background-color:#0b1d33;position:relative;overflow:hidden}.info-confidence-section .info-section-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1.35fr);gap:clamp(36px,5.5vw,85px)}.confidence-bg-layer{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.confidence-bg-image{will-change:transform, opacity;background-position:82% 30%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.confidence-bg-overlay{background-color:#091728c7;position:absolute;inset:0}.confidence-prose{max-width:620px}.confidence-prose p{color:#d6e8f7;text-align:justify;text-justify:inter-word;text-align-last:left;font-size:1.0625rem;line-height:1.8}.confidence-prose p+p{margin-top:14px}.confidence-prose .lead{color:#f5faff;margin-bottom:16px;font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.6}.story-text-solo{max-width:660px}.story-text-solo .section-heading{margin-bottom:14px}.story-text-solo .section-heading h2{letter-spacing:-.05em;margin-top:16px;font-size:clamp(2rem,3.8vw,3.5rem);font-weight:450;line-height:1.18}.story-prose p{color:#c4dcee;text-align:justify;text-justify:inter-word;text-align-last:left}.story-prose p+p{margin-top:14px}.story-prose .lead{color:#f5faff;margin-bottom:14px;font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.6}.contact-hero{isolation:isolate;padding-block:95px 80px;position:relative}.contact-hero h1{letter-spacing:-.07em;margin-top:32px;font-size:clamp(5.25rem,13vw,11.5rem);font-weight:430;line-height:1.04}.contact-introduction{color:var(--secondary);flex-wrap:wrap;justify-content:flex-end;gap:25px;margin-top:38px;font-size:.875rem;line-height:1.7;display:flex}.contact-introduction p:first-child{color:#e0edf5}.contact-directory{border-bottom:1px solid var(--line)}.contact-row{border-top:1px solid var(--line);grid-template-columns:minmax(140px,1fr) minmax(0,1.3fr) 40px;align-items:center;gap:30px;min-height:125px;padding:35px 12px;display:grid;position:relative;overflow:hidden}.contact-row-label{letter-spacing:-.055em;align-items:center;gap:20px;font-size:clamp(1.75rem,3.4vw,3.25rem);line-height:1.35;display:flex}.contact-row-icon,.resume-title-icon{width:clamp(34px,4.8vw,48px);height:clamp(34px,4.8vw,48px);color:var(--cyan);transition:transform .3s var(--motion-ease), color .3s var(--motion-ease);flex-shrink:0}.contact-row-value{color:var(--secondary);overflow-wrap:anywhere;font-size:clamp(.875rem,1.4vw,1.125rem);line-height:1.7}.contact-row>svg{color:#b8e7e8;width:35px;height:35px;transition:transform .32s var(--motion-ease)}.contact-row-disabled{cursor:default}.contact-row-disabled>svg{color:#8faabc}.resume-reveal{margin-block:70px 90px}.resume-section{flex-direction:column;gap:16px;display:flex}.resume-section .eyebrow{color:var(--secondary);letter-spacing:.04em;font-size:.75rem}.resume-link-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;width:100%;color:inherit;transition:border-color .3s var(--motion-ease), box-shadow .3s var(--motion-ease), background .3s var(--motion-ease);background:0 0;justify-content:space-between;align-items:center;gap:24px;padding:clamp(26px,3.6svh,40px) 4px;text-decoration:none;display:flex;position:relative}.resume-link-row-disabled{cursor:default;opacity:.6}.resume-row-title{letter-spacing:-.055em;color:#e4f1f8;transition:color .3s var(--motion-ease), text-shadow .3s var(--motion-ease);align-items:center;gap:20px;font-size:clamp(2.35rem,5vw,4.25rem);font-weight:430;line-height:1.15;display:inline-flex}.resume-row-title .accent{color:var(--cyan)}.resume-row-arrow{color:#b8e7e8;width:clamp(28px,4vw,44px);height:clamp(28px,4vw,44px);transition:transform .3s var(--motion-ease), color .3s var(--motion-ease)}.site-footer{border-top:1px solid var(--line);padding-top:60px}.footer-cta-section{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:40px;padding-bottom:100px;display:grid}.footer-cta-section h2{letter-spacing:-.04em;margin-top:20px;font-size:clamp(4rem,9vw,7.5rem);line-height:1.05}.footer-pitch{color:var(--secondary);max-width:500px;margin-block:25px 0;font-size:clamp(1.125rem,2.5vw,1.6rem);line-height:1.6}.footer-cta-action{justify-content:flex-end;padding-right:40px;display:flex;position:relative}.footer-cta-action:before{content:"";pointer-events:none;background:radial-gradient(circle,#5eead40d,#0000 70%);width:300px;height:300px;position:absolute;top:50%;right:10%;transform:translateY(-50%)}.footer-cta-link{color:#f5faff;transition:color .3s var(--motion-ease);z-index:2;align-items:center;gap:15px;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:500;display:inline-flex;position:relative}.footer-cta-link svg{transition:transform .3s var(--motion-ease), color .3s var(--motion-ease);color:var(--cyan)}.footer-cta-link:after{content:"";background:var(--line);height:1px;transition:background .3s var(--motion-ease), box-shadow .3s var(--motion-ease);position:absolute;bottom:-8px;left:0;right:-10px}.footer-editorial .footer-cta-section{text-align:left;flex-direction:column;align-items:flex-start;max-width:800px;padding-bottom:clamp(50px,8svh,90px);display:flex}.footer-editorial .footer-cta-content{text-align:left;flex-direction:column;align-items:flex-start;width:100%;display:flex}.footer-editorial .footer-cta-content .eyebrow{letter-spacing:.08em;color:var(--secondary);font-size:clamp(.9375rem,1.15vw,1.125rem);font-weight:500}.footer-editorial .footer-cta-section h2{letter-spacing:-.04em;text-align:left;margin-top:clamp(16px,2.2svh,24px);font-size:clamp(3.5rem,8vw,6.5rem);line-height:1.05}.footer-editorial .footer-pitch{color:var(--secondary);text-align:left;max-width:540px;margin-block:clamp(18px,2.6svh,26px) clamp(24px,3.4svh,34px);font-size:clamp(1.125rem,2.2vw,1.5rem);line-height:1.6}.footer-editorial .footer-cta-action-inline{justify-content:flex-start;padding-right:0;display:flex}.footer-inner{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:25px;padding-block:30px;font-size:.8125rem;line-height:1.7;display:flex}.back-top{color:var(--secondary);align-items:center;gap:12px;display:inline-flex}.button{border:1px solid var(--line);flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:12px 20px;font-size:.875rem;display:inline-flex}.button-primary{color:#0b1d33;background:#67e8f9}.status{color:#b8cbdc;align-items:center;gap:8px;font-size:.8125rem;line-height:1.5;display:inline-flex}.status>span{background:var(--cyan);border-radius:50%;width:6px;height:6px;animation:2.5s infinite status-pulse}@keyframes status-pulse{0%{box-shadow:0 0 #38bdf880}70%{box-shadow:0 0 0 5px #38bdf800}to{box-shadow:0 0 #38bdf800}}.case-study{padding-top:40px;position:relative}@media (width>=1200px){.case-study{--case-sidebar-width:180px;--case-sidebar-gap:clamp(32px, 3vw, 52px);width:min(1420px,100% - 64px);padding-left:calc(var(--case-sidebar-width) + var(--case-sidebar-gap))}}.floating-back-text-link{z-index:95;color:var(--secondary);font-size:.875rem;font-weight:500;font-family:var(--font-sans);letter-spacing:.01em;cursor:pointer;transition:color .24s var(--motion-ease);background:0 0;border:0;align-items:center;gap:6px;padding:6px 0;text-decoration:none;display:inline-flex;position:fixed;top:28px;left:clamp(24px,3.8vw,56px)}@media (width>=1200px){.floating-back-text-link{left:max(32px,50vw - 710px)}}.floating-back-text-link .back-link-arrow{color:var(--cyan);transition:transform .24s var(--motion-ease), color .24s var(--motion-ease)}.floating-back-text-link .back-link-base{color:inherit}.floating-back-text-link .back-link-expand{opacity:0;white-space:nowrap;max-width:0;transition:max-width .26s var(--motion-ease), opacity .22s var(--motion-ease), transform .26s var(--motion-ease);color:inherit;padding-left:0;display:inline-block;overflow:hidden;transform:translate(-4px)}.floating-back-text-link:hover,.floating-back-text-link:focus-visible{color:#fff}.floating-back-text-link:hover .back-link-arrow,.floating-back-text-link:focus-visible .back-link-arrow{color:#67e8f9;transform:translate(-4px)}.floating-back-text-link:hover .back-link-expand,.floating-back-text-link:focus-visible .back-link-expand{opacity:1;max-width:80px;padding-left:2px;transform:translate(0)}@media (hover:none){.floating-back-text-link .back-link-expand{opacity:1;max-width:80px;padding-left:2px;transform:translate(0)}}.case-scrollspy{width:var(--case-sidebar-width,180px);z-index:85;pointer-events:auto;opacity:1;visibility:visible;transition:opacity .28s var(--motion-ease), transform .28s var(--motion-ease), visibility .28s;flex-direction:column;display:flex;position:fixed;top:50%;left:max(32px,50vw - 710px);transform:translateY(-50%)}.case-scrollspy.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-50%)translate(-8px)}.case-scrollspy-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex;position:relative}.case-scrollspy-item{display:flex}.case-scrollspy-link{color:#7290a6;transition:color .22s var(--motion-ease);align-items:center;gap:12px;padding:4px 6px;text-decoration:none;display:flex}.case-scrollspy-indicator{width:7px;height:7px;transition:transform .24s var(--motion-ease), background-color .24s var(--motion-ease), box-shadow .24s var(--motion-ease);background:#aecee147;border-radius:50%;flex-shrink:0}.case-scrollspy-index{font-size:.6875rem;font-family:var(--font-mono);color:#628198;transition:color .22s var(--motion-ease);flex-shrink:0}.case-scrollspy-label{font-size:.8125rem;font-family:var(--font-sans);white-space:nowrap;color:inherit;transition:color .22s var(--motion-ease), transform .22s var(--motion-ease);opacity:.75}.case-scrollspy-link:hover{color:#e0f2fe}.case-scrollspy-link:hover .case-scrollspy-indicator{background:var(--aqua);transform:scale(1.3)}.case-scrollspy-link:hover .case-scrollspy-label{opacity:1;color:#fff}.case-scrollspy-link.is-active{color:#fff}.case-scrollspy-link.is-active .case-scrollspy-indicator{background:var(--cyan);transform:scale(1.4);box-shadow:0 0 10px #38bdf8cc,0 0 4px #5eead4cc}.case-scrollspy-link.is-active .case-scrollspy-index{color:var(--aqua);font-weight:600}.case-scrollspy-link.is-active .case-scrollspy-label{color:#fff;opacity:1;font-weight:500}@media (width<=1199px),(height<=500px){.case-scrollspy{display:none}}.back-link{color:var(--secondary);align-items:center;gap:12px;min-height:44px;font-size:.8125rem;display:inline-flex}.back-link>span{color:var(--cyan)}.case-hero{isolation:isolate;padding-block:65px;position:relative}.case-hero h1{letter-spacing:-.065em;margin-top:25px;font-size:clamp(5rem,12vw,11rem);font-weight:450;line-height:1.15}.case-subtitle{letter-spacing:-.035em;color:#cbdfe9;margin-top:15px;font-size:clamp(1.25rem,2.4vw,2rem);line-height:1.5}.case-summary{max-width:760px;color:var(--secondary);margin-top:25px;font-size:1.0625rem;line-height:1.85}.case-meta{flex-wrap:wrap;gap:35px 70px;margin:45px 0 0;display:flex}.case-meta dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--secondary);margin-bottom:10px;font-size:.6875rem}.case-meta dd{color:#d6e4ef;margin:0;font-size:.875rem}.case-contents{display:none}.case-section{border-bottom:1px solid var(--line);padding-block:85px}.case-split{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);align-items:center;gap:clamp(40px,5vw,80px);display:grid}.case-split .section-heading{margin-bottom:0}.case-section .section-heading h2{font-size:clamp(2rem,3vw,2.75rem)}.case-overview-content{flex-direction:column;justify-content:center;display:flex}.case-prose p{color:var(--secondary);font-size:1.0625rem;line-height:1.85}.case-prose p+p{margin-top:18px}.case-overview-tech{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}.case-tech-label{letter-spacing:.08em;color:#7290a6;margin-bottom:12px;font-size:.6875rem;display:block}.case-tech-chips{flex-wrap:wrap;gap:8px 10px;margin:0;padding:0;list-style:none;display:flex}.case-tech-chips li{color:#d6e4ef;font-size:.8125rem;font-family:var(--font-mono);letter-spacing:.02em;background:#142f4999;border:1px solid #82dcf029;border-radius:4px;padding:6px 14px}.flow-panel{background:radial-gradient(at 10% 0,#5eead40e,#0000 65%),linear-gradient(130deg,#17384f,#122d46);border:1px solid #a4d1e738;border-radius:18px;padding:27px}.flow-panel-header{color:#8da8bf;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;display:flex}.flow-panel-header .mono{font-size:.75rem}.flow-legend{color:#9cb2c5;align-items:center;gap:8px;font-size:.75rem;display:inline-flex}.flow-legend>span{background:#38bdf8;width:5px;height:5px}.flow-diagram{grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.flow-diagram li{grid-row:var(--flow-row);grid-column:var(--flow-column);background:linear-gradient(135deg,#204762,#1a3952);border:1px solid #a2d5e93d;border-radius:12px;flex-direction:column;justify-content:center;gap:9px;min-height:102px;padding:19px 16px;font-size:.875rem;line-height:1.6;display:flex;position:relative}.flow-index{color:#68b5d9;font-size:.75rem}.flow-connector{color:#5884a4;position:absolute;top:50%;right:-19px;transform:translateY(-50%)}@media (width>=768px){.flow-diagram .flow-turn .flow-connector{top:auto;bottom:-19px;right:50%;transform:translate(50%)rotate(90deg)}.flow-diagram .flow-reverse:not(.flow-turn) .flow-connector{left:-19px;right:auto;transform:translateY(-50%)rotate(180deg)}}.flow-end{color:#6fc5e9;position:absolute;top:14px;right:12px}.flow-footnote{color:#91a9be;margin-top:25px;font-size:.8125rem}.involvement-list{margin:0;padding:0;list-style:none}.involvement-list li{border-bottom:1px solid var(--line);align-items:flex-start;gap:22px;padding-block:18px;display:flex}.involvement-list li:first-child{padding-top:0}.involvement-list li:last-child{border-bottom:0;padding-bottom:0}.involvement-list .mono{color:#5fa9ce;margin-top:4px;font-size:.75rem}.involvement-list p{color:#b6c9d9;font-size:1rem;line-height:1.85}.development-intro{color:#a3b8cb;max-width:780px;margin-bottom:28px;line-height:1.9}.development-intro p+p{margin-top:10px}.flow-compact{grid-template-columns:repeat(4,minmax(0,1fr))}.review-note{color:#9eb7cd;align-items:center;gap:10px;margin-top:25px;font-size:.8125rem;line-height:1.7;display:flex}.review-note svg{color:#589bc4;flex-shrink:0}.demo-case-section .case-section-reveal{flex-direction:column;align-items:center;width:100%;display:flex}.demo-header{width:min(100%,980px,177.778svh - 462.222px);margin-bottom:clamp(20px,3svh,34px)}.demo-header .section-heading{margin-bottom:0}.demo-container{flex-direction:column;align-items:center;width:100%;display:flex}.demo-container .video-frame{aspect-ratio:16/9;width:min(100%,980px,177.778svh - 462.222px);height:auto}.demo-container .demo-links{justify-content:center;width:100%;margin-top:clamp(14px,2.2svh,22px)}.video-frame{aspect-ratio:16/9;background:#15334c;border:1px solid #a3d7ed47;border-radius:16px;height:auto;margin-inline:auto;position:relative;overflow:hidden;box-shadow:0 16px 40px #08142473}.video-frame iframe,.video-frame video{z-index:1;border:0;width:100%;height:100%;display:block;position:relative}.media-placeholder{text-align:center;background-image:radial-gradient(at 50% 40%,#38bdf829,#0000 64%),radial-gradient(at 85% 80%,#5eead414,#0000 60%),linear-gradient(135deg,#183c57,#102840);flex-direction:column;justify-content:center;align-items:center;height:100%;padding:clamp(24px,4svh,44px) 24px;display:flex}.play-icon{color:#67e8f9;background:#12263ad9;border:1px solid #67e8f959;border-radius:50%;justify-content:center;align-items:center;width:clamp(56px,7svh,68px);height:clamp(56px,7svh,68px);margin-bottom:clamp(14px,2svh,20px);display:flex;box-shadow:0 0 24px #38bdf826}.media-placeholder .eyebrow{color:#8da8bf;letter-spacing:.08em;font-size:.75rem}.media-placeholder h3{letter-spacing:-.035em;color:#fff;margin-top:8px;font-size:clamp(1.5rem,3.2svh,2.25rem);font-weight:500}.media-placeholder p{color:#a9bdd0;max-width:500px;margin-top:10px;font-size:clamp(.875rem,1.8svh,1rem);line-height:1.7}.media-placeholder code{color:#8db5cc;overflow-wrap:anywhere;background:#0a192d99;border:1px solid #82dcf026;border-radius:4px;margin-top:clamp(12px,2svh,20px);padding:4px 10px;font-size:.75rem}.video-loading{color:#9cb6cc;place-items:center;font-size:.875rem;display:grid;position:absolute;inset:0}.demo-links{margin-top:20px;font-size:.875rem;display:flex}.technology-list{flex-wrap:wrap;align-content:flex-start;gap:12px;margin:6px 0 0;padding:0;list-style:none;display:flex}.technology-list li{color:#cbd5e1;background:#15324b;border:1px solid #3a5a73;border-radius:4px;padding:12px 20px;font-size:.9375rem}.status-description{background:#102840;border:1px solid #3a5a73;border-radius:5px;padding:25px}.status-description p{color:#9bb3c9;margin-top:15px;font-size:1rem;line-height:1.9}.gallery-case-section .case-section-reveal{flex-direction:column;width:100%;display:flex}.gallery-header{width:100%;margin-bottom:clamp(22px,3.5svh,40px)}.gallery-header .section-heading{margin-bottom:0}.screenshot-gallery{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(18px,2vw,28px);width:100%;display:grid}.screenshot-card{min-width:0;transition:transform .32s var(--motion-ease), border-color .32s var(--motion-ease), box-shadow .32s var(--motion-ease);background:linear-gradient(135deg,#1b3c54,#142f49);border:1px solid #a4d5e938;border-radius:14px;flex-direction:column;margin:0;display:flex;overflow:hidden;box-shadow:0 8px 24px #08142459}.screenshot-card:hover{border-color:#67e8f973;box-shadow:0 12px 32px #0a192d73,0 0 20px #38bdf814}.screenshot-placeholder{aspect-ratio:16/10;color:#a4bccf;background:radial-gradient(at 50% 40%,#38bdf81f,#0000 68%),linear-gradient(135deg,#16364f,#11293f);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;width:100%;padding:clamp(24px,3.5svh,36px) 20px;display:flex}.screenshot-placeholder svg{color:#67e8f9;width:28px;height:28px}.screenshot-placeholder span{color:#d6e6f2;font-size:.9375rem;font-weight:500}.screenshot-placeholder code{color:#a4bacd;overflow-wrap:anywhere;font-size:.75rem}.screenshot-card img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .5s var(--motion-ease);flex:1;display:block}.screenshot-card figcaption{border-top:1px solid var(--line);background:#0e2235b3;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding:13px 18px;display:flex}.screenshot-card figcaption .mono{color:#8da8bf;letter-spacing:.06em;font-size:.75rem}.screenshot-card figcaption>span:not(.mono){color:#a9bdd0;font-size:.75rem}.repository-section{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.repository-section .section-heading{margin-bottom:0}.case-end{justify-content:space-between;align-items:center;gap:24px;padding-block:35px 50px;display:flex}.case-end>a:last-child{color:#8dcae8;font-size:.875rem}.not-found{min-height:70vh;padding-block:120px}.not-found h1{letter-spacing:-.04em;margin-block:25px 35px;font-size:clamp(2rem,4vw,3rem)}.flow-panel{background:#183b5280;border-radius:18px;padding:30px;overflow:hidden}.flow-diagram li{background:linear-gradient(135deg,#204762,#1a3952);border-radius:12px}.flow-panel-header,.flow-legend,.flow-footnote,.development-intro,.review-note,.involvement-list p,.status-description p{color:#b6cddd}.flow-footnote{line-height:1.8}@media (width<=1100px){.container{width:calc(100% - 72px)}.hero{gap:40px;padding-top:70px}.info-intro{padding-top:70px}.hero h1,.info-heading h1{font-size:clamp(3.4rem,7vw,5.5rem)}.project-information{gap:45px}.info-section-layout,.case-split{gap:55px}.contact-row{grid-template-columns:minmax(120px,.75fr) minmax(0,1.5fr) 35px}}@media (width<=767px){.container{width:calc(100% - 40px)}.menu-toggle{display:inline-flex}.nav-links{border-bottom:1px solid var(--line);background:#0e263d;flex-direction:column;align-items:stretch;gap:8px;padding:20px;display:none;position:absolute;top:71px;left:0;right:0}.nav-links.is-open{display:flex}.nav-links a{padding:14px 10px;font-size:1rem}.nav-links a:after{width:35px;left:10px}.hero{grid-template-columns:1fr;gap:42px;padding-top:50px}.info-intro{padding-top:50px}.hero h1,.info-heading h1{margin-top:25px;font-size:clamp(3.3rem,11.5vw,5.5rem);line-height:1.14}.hero-introduction{margin-top:30px;font-size:.9375rem}.hero-statement{font-size:1rem}.hero-visual{width:min(100%,480px)}.portrait-image{inset:18px}.portrait-card figcaption{padding:17px 20px}.portrait-aura{inset-inline:-10px}.hero-bottom{flex-wrap:wrap;gap:10px;padding-block:22px}.work-section,.work-projects{padding-top:40px;padding-bottom:20px}.project-spread{padding-bottom:65px}.project-spread+.project-spread{padding-top:50px}.project-heading h3{gap:15px;font-size:clamp(2.3rem,8vw,3.5rem)}.project-heading h3 svg{width:32px;height:32px;margin-top:4px}.project-information{grid-template-columns:1fr;gap:25px;margin-top:25px;margin-bottom:30px}.project-copy{font-size:.9375rem;line-height:1.8}.project-actions{margin-top:20px}.project-preview-placeholder{padding:20px 15px}.project-preview-placeholder svg{width:22px;height:22px}.project-preview-placeholder p{margin-top:10px;font-size:1.125rem}.project-preview-placeholder>div>span{margin-top:8px;font-size:.6875rem}.media-caption{display:none}.media-sequence{font-size:25vw}.info-intro{padding-bottom:65px}.page-introduction{margin-top:25px;font-size:1rem}.info-section{padding-block:55px}.info-section-layout{grid-template-columns:1fr;gap:30px}.info-education-section .info-section-layout,.info-confidence-section .info-section-layout{grid-template-columns:1fr}.education-prose p,.story-prose p,.confidence-prose p{text-align:left;text-align-last:left}.confidence-bg-image{background-position:50% 30%}.story-text-solo{max-width:100%}.story-quote-reveal{margin-top:32px}.editorial-quote{padding:20px 22px}.quote-text{font-size:1.15rem;line-height:1.6}.section-heading h2{font-size:clamp(2rem,7vw,3rem)}.info-prose{font-size:1rem}.info-prose .lead{font-size:1.5rem}.contact-hero{padding-block:50px}.contact-hero h1{margin-top:28px;font-size:clamp(4.5rem,16vw,7.25rem);line-height:1.04}.contact-introduction{flex-direction:column;justify-content:flex-start;gap:5px;margin-top:30px}.contact-row{grid-template-columns:minmax(0,1fr) 30px;gap:10px 20px;min-height:115px;padding:25px 6px}.contact-row-label{gap:12px;font-size:2rem}.contact-row-icon,.resume-title-icon{width:30px;height:30px}.contact-row-value{grid-area:2/1;font-size:.875rem}.contact-row>svg{grid-area:1/2;width:28px;height:28px}.resume-reveal{margin-block:45px 60px}.resume-section{gap:12px}.resume-link-row{gap:16px;padding:22px 2px}.resume-row-title{gap:12px;font-size:clamp(1.85rem,6.5vw,2.6rem)}.resume-row-arrow{width:26px;height:26px}.site-footer{padding-top:40px}.footer-cta-section{padding-bottom:60px}.footer-inner{flex-wrap:wrap;justify-content:flex-end;gap:15px;padding-block:25px}.case-study{padding-top:25px}.case-hero{padding-block:40px}.case-hero h1{font-size:clamp(4.5rem,15vw,7rem)}.case-subtitle{font-size:1.25rem}.case-summary{font-size:1rem}.case-meta{gap:25px 35px;margin-top:30px}.case-section{padding-block:50px}.case-split{grid-template-columns:1fr;gap:25px}.case-section .section-heading h2{font-size:1.875rem}.flow-panel{padding:20px}.flow-panel-header{flex-wrap:wrap;gap:12px;margin-bottom:20px}.flow-diagram,.flow-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.flow-diagram li{grid-row:var(--mobile-row);grid-column:var(--mobile-column);min-height:95px;padding:15px 12px;font-size:.875rem}.flow-diagram li .flow-connector{inset:50% -18px auto auto;transform:translateY(-50%)}.flow-diagram .flow-mobile-reverse:not(.flow-mobile-turn) .flow-connector{inset:50% auto auto -18px;transform:translateY(-50%)rotate(180deg)}.flow-diagram .flow-mobile-turn .flow-connector{inset:auto 50% -19px auto;transform:translate(50%)rotate(90deg)}.video-frame.media-placeholder{padding:12px}.play-icon{width:35px;height:35px;margin-bottom:10px}.play-icon svg{width:18px;height:18px}.media-placeholder p{display:none}.screenshot-gallery{grid-template-columns:1fr}.case-end{flex-wrap:wrap;padding-bottom:40px}}@media (width<=380px){.container{width:calc(100% - 32px)}.hero h1,.info-heading h1{font-size:3.05rem}.eyebrow{gap:8px;font-size:.6875rem}.flow-diagram,.flow-compact{grid-template-columns:1fr}.flow-diagram li{grid-area:auto/1;min-height:78px}.flow-diagram li .flow-connector,.flow-diagram .flow-mobile-reverse:not(.flow-mobile-turn) .flow-connector{inset:auto 50% -19px auto;transform:translate(50%)rotate(90deg)}}.ambient-light{z-index:-1;pointer-events:none;opacity:0;transition:opacity .36s var(--motion-ease);display:none;position:fixed;inset:0;overflow:hidden}.ambient-light-orb{background:radial-gradient(circle,#67e8f933 0%,#38bdf81f 20%,#60a5fa14 38%,#5eead40a 52%,#0000 70%);width:880px;height:880px;position:absolute;top:0;left:0}:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row){isolation:isolate;position:relative}:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row):before,:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row):after{content:"";pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .32s var(--motion-ease);position:absolute;inset:0}:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row):before{z-index:-1;width:760px;height:760px;transform:translate3d(calc(var(--light-x,50%) - 380px),calc(var(--light-y,50%) - 380px),0);background:radial-gradient(380px,#67e8f933,#38bdf814 42%,#0000 75%);inset:0 auto auto 0}:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row):after{z-index:2;background:radial-gradient(250px circle at var(--light-x,50%) var(--light-y,50%),#67e8f9cc,transparent 75%);-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;padding:1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.atmosphere{z-index:-2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.atmosphere>span{width:110%;height:110%;position:absolute;inset:-5%}.atmosphere-blue{background:radial-gradient(at 80% 22%,#60a5fa29,#0000 58%)}.atmosphere-aqua{background:radial-gradient(at 12% 82%,#5eead413,#0000 60%)}@keyframes atmosphere-drift{0%{transform:translate(-16px,12px)scale(1)}to{transform:translate(22px,-18px)scale(1.05)}}@keyframes portrait-orbit{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:no-preference){.atmosphere-blue{animation:28s ease-in-out infinite alternate atmosphere-drift}.atmosphere-aqua{animation:37s ease-in-out -11s infinite alternate-reverse atmosphere-drift}.portrait-halo{animation:38s linear infinite portrait-orbit}.portrait-orbit{animation:56s linear infinite reverse portrait-orbit}.portrait-aura{transform:translate3d(calc(var(--trace-x,0px) * 2),calc(var(--background-depth,0px) * 1.25),0)}.hero:before,.case-hero:before,.contact-hero:before{transform:translate3d(calc(var(--background-depth,0px) * -.28),var(--background-depth,0px),0)}}@media (width>=768px) and (hover:hover) and (pointer:fine){a:hover{color:#a4eee8}.nav-links a:hover:after{transform:scaleX(1)}}@media (width>=768px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.ambient-light{display:block}.ambient-light[data-light-active]{opacity:1}.ambient-light[data-light-active] .ambient-light-orb,:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row)[data-light-active]:before{will-change:transform}:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row)[data-light-active]:before,:is(.portrait-card,.story-photo-card,.project-media,.flow-panel,.video-frame,.screenshot-card,.contact-row)[data-light-active]:after{opacity:1}.project-spread:hover .project-media img,.screenshot-card:hover img{transform:scale(1.018)}.project-spread:hover .project-heading h3 svg,.project-heading h3 .project-title-arrow:hover,a.contact-row:hover>svg{transform:translate(3px,-3px)}.resume-link-row:hover,.resume-link-row:focus-visible{background:radial-gradient(#38bdf80b 0%,#0000 75%);border-color:#67e8f973;box-shadow:0 0 24px #38bdf80f}.resume-link-row:hover .resume-row-title,.resume-link-row:focus-visible .resume-row-title{color:#fff;text-shadow:0 0 24px #67e8f933}.resume-link-row:hover .resume-title-icon,.resume-link-row:focus-visible .resume-title-icon{color:#67e8f9;transform:scale(1.08)}.resume-link-row:hover .resume-row-arrow,.resume-link-row:focus-visible .resume-row-arrow{color:var(--cyan);transform:translate(4px,-4px)}.project-preview-placeholder>div{transition:transform .6s var(--motion-ease)}.project-spread:hover .project-preview-placeholder>div{transform:scale(1.018)}.footer-cta-link:hover{color:var(--aqua)}.footer-cta-link:hover svg{color:var(--aqua);transform:translate(6px)}.footer-cta-link:hover:after{background:var(--aqua);box-shadow:0 0 15px #5eead466}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.screenshot-card,.flow-diagram li{opacity:1!important;transform:none!important}.atmosphere>span,.portrait-halo,.portrait-orbit,.portrait-aura{animation:none;transform:none}.hero:before,.case-hero:before,.contact-hero:before{transform:none}.flow-diagram li{box-shadow:none!important}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.video-frame[aria-busy=true] video,.video-frame[aria-busy=true] iframe{opacity:0}:root{--section-height:100svh}.hero{flex-direction:column;gap:35px;padding-block:75px 35px;display:flex}.hero-copy{align-self:stretch}.hero h1{letter-spacing:-.055em;max-width:1180px;margin-top:35px;font-size:clamp(2.5rem,5.5vw,5.8rem);line-height:1.15}.hero-bottom{width:100%;margin-top:auto;padding-block:24px 15px}.work-section{padding-block:45px 0}.project-layout{min-width:0}.info-heading h1{font-size:clamp(2.85rem,5.2vw,5.2rem)}.info-intro-note{max-width:430px;color:var(--secondary);margin-top:20px;font-size:1.125rem;line-height:1.75}@media (height<=850px) and (width>=768px){.hero,.info-intro{padding-top:45px}}@media (width<=767px){.site-header-notch{top:16px}.nav-notch{padding:4px 6px}.nav-notch-link{padding:8px 16px;font-size:.875rem}.hero{gap:30px;padding-block:50px 25px}.hero h1{margin-top:28px;font-size:clamp(2.25rem,8.5vw,4rem)}.hero h1 br{display:none}.hero-bottom{padding-block:18px}.work-section{padding-top:40px}.project-information{flex-direction:column;gap:24px;margin-bottom:25px;display:flex}.footer-cta-section{text-align:left;grid-template-columns:1fr;gap:30px;padding-bottom:60px}.footer-cta-action{justify-content:flex-start;padding-right:0}.info-intro{padding-top:80px}.info-heading h1{font-size:clamp(2.75rem,11vw,4.5rem)}.info-intro-note{margin-top:16px;font-size:1rem}.story-text-solo{max-width:100%}}@media (width>=1200px) and (height>=720px) and (hover:hover) and (pointer:fine){.viewport-section{min-height:var(--section-height)}.hero{justify-content:center;gap:0;padding-block:clamp(28px,4svh,60px)}.hero-copy{margin-block:auto}.hero h1{margin-top:clamp(24px,4svh,40px);font-size:clamp(3.25rem,7.8svh,5.8rem)}.hero-actions{margin-top:clamp(24px,4svh,40px)}.hero-bottom{flex-shrink:0;margin-top:clamp(24px,4svh,40px)}.work-section,.work-projects{padding:0}.project-spread,.project-spread+.project-spread{flex-direction:column;justify-content:center;padding-block:clamp(24px,4svh,45px);display:flex}.project-heading h3{max-width:none;margin-top:16px;font-size:clamp(2.75rem,6.3svh,4rem)}.project-heading h3 svg{width:46px;height:46px;margin-top:3px}.project-heading .status{margin-top:12px}.project-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.38fr);align-items:center;gap:clamp(40px,4vw,70px);margin-top:clamp(16px,2.5svh,30px);display:grid}.project-information{flex-direction:column;gap:28px;margin:0;display:flex}.project-copy{font-size:1.0625rem;line-height:1.75}.project-copy p+p{margin-top:16px}.project-technologies{gap:6px 16px;margin-top:0;font-size:.875rem}.project-technologies li:not(:last-child):after{padding-left:8px}.project-actions{gap:8px 20px;margin-top:18px}.project-02 .project-layout{grid-template-columns:minmax(0,1.38fr) minmax(0,1fr)}.project-02 .project-information{order:2}.project-02 .project-media-reveal{order:1}.project-media-reveal{min-width:0}.project-media,.project-media-reveal .video-frame{aspect-ratio:16/9;width:100%}.media-sequence{font-size:clamp(5rem,17svh,11rem)}.project-preview-placeholder p{font-size:1.5rem}.media-caption{font-size:.6875rem}.info-intro{padding-block:clamp(25px,4svh,45px)}.info-heading h1{font-size:clamp(2.85rem,6.2svh,4.6rem)}.hero-quote{max-width:620px;margin-top:clamp(14px,2svh,22px);padding:clamp(8px,1.2svh,14px) clamp(14px,1.8vw,20px)}.hero-quote-text{font-size:clamp(.95rem,1.8svh,1.15rem);line-height:1.48}.info-hero-section,.info-section{flex-direction:column;justify-content:center;padding-block:clamp(28px,4.5svh,60px);display:flex}.education-prose{margin-top:clamp(18px,2.4svh,28px);padding-top:clamp(14px,1.8svh,22px)}.story-text-solo{max-width:660px}.story-text-solo .section-heading{margin-bottom:clamp(10px,1.4svh,14px)}.story-text-solo .section-heading h2{margin-top:clamp(8px,1.2svh,14px);font-size:clamp(2rem,3.8vw,3.5rem)}.story-prose .lead,.confidence-prose .lead{color:#f5faff;margin-bottom:clamp(10px,1.4svh,14px)}.story-prose p+p,.confidence-prose p+p{margin-top:clamp(8px,1.2svh,12px)}.viewport-final{padding:0;display:flex}.viewport-final>.container{flex-direction:column;display:flex}.viewport-final .footer-cta-section{flex-direction:column;flex:1;justify-content:center;padding-block:45px;display:flex}.viewport-final .footer-cta-section>.footer-cta-link{align-self:flex-start}.viewport-final.footer-editorial .footer-cta-section{flex:1;justify-content:center;align-items:flex-start;padding-block:clamp(30px,4svh,50px)}.viewport-final.footer-editorial .footer-cta-content{text-align:left;align-items:flex-start}.viewport-final .footer-inner{flex-shrink:0}.contact-page{min-height:var(--section-height);grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-content:center;gap:clamp(20px,3svh,35px) 65px;padding-block:clamp(25px,4svh,45px);display:grid}.contact-hero{grid-area:1/1/3;align-self:center;padding:0}.contact-hero h1{letter-spacing:-.065em;margin-top:22px;font-size:clamp(4.4rem,11.2svh,7.2rem);line-height:1.04}.contact-introduction{flex-direction:column;justify-content:flex-start;gap:5px;margin-top:30px}.contact-directory{grid-column:2}.contact-row{grid-template-columns:minmax(95px,.65fr) minmax(0,1.4fr) 28px;gap:18px;min-height:78px;padding:15px 6px}.contact-row-label{font-size:1.875rem}.contact-row-value{font-size:.875rem}.contact-row>svg{width:26px;height:26px}.contact-page .contact-row-icon,.contact-page .resume-title-icon{width:clamp(30px,3.8svh,38px);height:clamp(30px,3.8svh,38px)}.contact-page .resume-reveal{grid-column:2;margin:clamp(8px,1.4svh,16px) 0 0}.contact-page .resume-section{gap:clamp(10px,1.6svh,16px)}.contact-page .resume-link-row{padding:clamp(16px,2.4svh,26px) 4px}.contact-page .resume-row-title{gap:16px;font-size:clamp(1.85rem,3.4svh,2.45rem)}.contact-page .resume-row-arrow{width:clamp(24px,3svh,30px);height:clamp(24px,3svh,30px)}.case-study{padding-top:0}.case-hero-section{flex-direction:column;justify-content:center;padding-block:clamp(35px,5svh,65px);display:flex}.case-hero-section .case-hero{padding-block:clamp(20px,3svh,45px)}.case-hero-section .case-hero h1{margin-top:16px;font-size:clamp(3.75rem,8.5svh,5.8rem);line-height:1.1}.case-hero-section .case-subtitle{margin-top:14px;font-size:clamp(1.25rem,2.5svh,1.75rem)}.case-hero-section .case-summary{margin-top:20px;font-size:clamp(1.0625rem,2.2svh,1.25rem);line-height:1.75}.case-hero-section .case-meta{gap:24px 50px;margin-top:clamp(25px,4svh,42px)}.case-section.viewport-section{flex-direction:column;justify-content:center;padding-block:clamp(30px,5svh,55px);display:flex}.case-section.viewport-section .case-section-reveal{width:100%}.case-section.viewport-section .case-split{align-items:center;gap:clamp(45px,5.5vw,85px)}.case-section.viewport-section .section-heading{margin-bottom:0}.case-section.viewport-section .section-heading h2{margin-top:12px;font-size:clamp(2.25rem,4.8svh,3.25rem)}.case-section.viewport-section .involvement-list li{padding-block:clamp(14px,2svh,22px)}.case-section.viewport-section .involvement-list p{font-size:1.0625rem;line-height:1.75}.case-section.viewport-section .video-frame{aspect-ratio:16/9;width:min(100%,980px,177.778svh - 462.222px);height:auto;margin-inline:auto}.case-section.viewport-section .screenshot-card img,.case-section.viewport-section .screenshot-placeholder{aspect-ratio:16/10;max-height:clamp(230px,32svh,320px)}.case-section.viewport-section .case-end{padding-top:clamp(20px,3svh,35px);padding-bottom:0}}@media (width>=1200px) and (height>=720px) and (height<=850px) and (hover:hover) and (pointer:fine){.project-heading h3{font-size:clamp(2.5rem,5.9svh,3.125rem)}.project-layout{gap:40px;margin-top:22px}.project-information{gap:18px}.project-copy{line-height:1.65}.info-intro-note{font-size:1rem}.info-intro{padding-block:20px}.info-heading h1{font-size:clamp(2.6rem,5.5svh,3.6rem)}.hero-quote{max-width:620px;margin-top:14px;padding:8px 16px}.hero-quote-text{font-size:1.05rem;line-height:1.42}.info-hero-section,.info-section{padding-block:clamp(20px,3svh,30px)}.education-prose{margin-top:12px;padding-top:10px}.story-text-solo{max-width:660px}.story-text-solo .section-heading{margin-bottom:12px}.story-text-solo .section-heading h2{margin-top:8px;font-size:clamp(2rem,3.8vw,3.5rem)}.story-prose .lead,.confidence-prose .lead{color:#f5faff;margin-bottom:8px;font-size:clamp(1.2rem,1.8vw,1.45rem)}.story-prose p,.confidence-prose p{font-size:1rem;line-height:1.7}.story-prose p+p,.confidence-prose p+p{margin-top:8px}.case-hero{padding-block:25px}.case-hero h1{margin-top:12px;font-size:clamp(2.75rem,6.8svh,3.8rem)}.case-meta{margin-top:20px}.demo-header{width:min(100%,900px,177.778svh - 373.333px);margin-bottom:clamp(16px,2.4svh,22px)}.gallery-header{margin-bottom:clamp(16px,2.5svh,24px)}.case-section.viewport-section .video-frame{aspect-ratio:16/9;width:min(100%,900px,177.778svh - 373.333px);height:auto}.case-section.viewport-section .screenshot-card img,.case-section.viewport-section .screenshot-placeholder{max-height:clamp(190px,26svh,240px)}}@media (width<=1024px) and (width>=641px){.screenshot-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (width<=640px){.screenshot-gallery{grid-template-columns:1fr;gap:16px}.demo-header,.gallery-header{margin-bottom:18px}}@media (width<=767px){.floating-back-text-link{font-size:.8125rem;top:16px;left:16px}}@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-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}
