.footer-contact[data-astro-cid-nns7i3if]{justify-content:center;align-items:center;gap:var(--space-2) var(--space-5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer-contact[data-astro-cid-nns7i3if] li[data-astro-cid-nns7i3if]{display:flex}.contact-item[data-astro-cid-nns7i3if]{align-items:center;gap:var(--space-2);color:var(--text-secondary);text-align:left;cursor:pointer;transition:color var(--transition-fast);background:0 0;border:0;margin:0;padding:0;font-family:inherit;font-size:.86rem;line-height:1.5;text-decoration:none;display:inline-flex}.contact-item[data-astro-cid-nns7i3if]:hover,.contact-item[data-astro-cid-nns7i3if]:focus-visible{color:var(--text-primary)}.contact-item[data-astro-cid-nns7i3if] svg[data-astro-cid-nns7i3if]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;flex:0 0 18px;width:18px;height:18px}.contact-copy[data-astro-cid-nns7i3if]:active{transition-duration:var(--duration-press);transform:scale(.97)}.contact-resume[data-astro-cid-nns7i3if]{position:relative}.contact-resume[data-astro-cid-nns7i3if]:before{content:"";border:1.5px solid var(--accent-soft);opacity:0;pointer-events:none;border-radius:999px;animation:2.4s ease-out infinite contact-resume-ring;position:absolute;inset:-5px}@keyframes contact-resume-ring{0%{opacity:0;transform:scale(.7)}20%{opacity:.85}75%,to{opacity:0;transform:scale(1.5)}}@media (width<=920px){.footer-contact[data-astro-cid-nns7i3if]{justify-content:center}}.header-nav[data-astro-cid-fzpbxy5g]{scrollbar-width:none;flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(.2rem,1.6vw,1.25rem);min-width:0;padding-block:.35rem;display:flex;overflow-x:auto}.header-nav[data-astro-cid-fzpbxy5g]::-webkit-scrollbar{display:none}@media (width<=600px){.nav-label[data-astro-cid-fzpbxy5g]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.header-nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{padding:.1rem}.header-nav[data-astro-cid-fzpbxy5g]{gap:.2rem}}.header-nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap;text-shadow:0 0 #0000;transition:color var(--transition-normal), text-shadow .32s ease;padding:.35rem clamp(.08rem,.8vw,.6rem);font-size:clamp(.58rem,1.3vw + .2rem,.9rem);font-weight:700;text-decoration:none}.header-nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover,.header-nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:focus-visible{color:var(--accent-300);text-shadow:0 0 10px var(--glint-45)}.header-nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:focus-visible{outline:1px solid var(--accent-soft);outline-offset:2px}.section-rail[data-astro-cid-fzpbxy5g]{z-index:30;flex-direction:column;align-items:center;gap:.45rem;display:flex;position:fixed;top:50%;right:12px;transform:translateY(-50%)}.section-rail-dot[data-astro-cid-fzpbxy5g]{background:var(--text-primary);border-radius:999px;width:8px;height:8px;transition:background-color .18s ease-out,height .18s ease-out}.section-rail-dot[data-astro-cid-fzpbxy5g]:hover{background:var(--accent-soft)}.section-rail-dot[data-astro-cid-fzpbxy5g].is-active{background:var(--accent-400);height:22px}@media (width<=600px){.section-rail[data-astro-cid-fzpbxy5g]{display:none}.header-nav[data-astro-cid-fzpbxy5g]{gap:.5rem;padding-block:.5rem}}@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(/_astro/jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2)format("woff2"),url(/_astro/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(/_astro/jetbrains-mono-greek-400-normal.C190GLew.woff2)format("woff2"),url(/_astro/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,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)format("woff2"),url(/_astro/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(/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(/_astro/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(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/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}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/montserrat-cyrillic-ext-400-normal.Xqov12YL.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-ext-400-normal.DRPPeomZ.woff)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:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/montserrat-cyrillic-400-normal.BPq32Q8K.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-400-normal.jEs4Tk-Z.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/montserrat-vietnamese-400-normal.D4oHqQTd.woff2)format("woff2"),url(/_astro/montserrat-vietnamese-400-normal.BeEscFYY.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:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/montserrat-latin-ext-400-normal.B8bwfy6Y.woff2)format("woff2"),url(/_astro/montserrat-latin-ext-400-normal.BffdBkAA.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:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/montserrat-latin-400-normal.BLhwKU8k.woff2)format("woff2"),url(/_astro/montserrat-latin-400-normal.xItZbAXg.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}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/montserrat-cyrillic-ext-600-normal.BtBW-rpm.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-ext-600-normal.wReYPmz2.woff)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:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/montserrat-cyrillic-600-normal.CQEPC0hM.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-600-normal.DUglwBrH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/montserrat-vietnamese-600-normal.DKe6qT_E.woff2)format("woff2"),url(/_astro/montserrat-vietnamese-600-normal.SJ-HTWuM.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:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/montserrat-latin-ext-600-normal.DSkTqI9L.woff2)format("woff2"),url(/_astro/montserrat-latin-ext-600-normal.CSDhkhgS.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:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/montserrat-latin-600-normal.UVxSCcoG.woff2)format("woff2"),url(/_astro/montserrat-latin-600-normal.CdhFl4lI.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}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/montserrat-cyrillic-ext-700-normal.MyDreaeu.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-ext-700-normal.D-Mk2xRJ.woff)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:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/montserrat-cyrillic-700-normal.D-Pqjtdp.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-700-normal.BvLYcGP1.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/montserrat-vietnamese-700-normal.C0x1De3p.woff2)format("woff2"),url(/_astro/montserrat-vietnamese-700-normal.DnwGT2D9.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:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/montserrat-latin-ext-700-normal.BOP2Nhf0.woff2)format("woff2"),url(/_astro/montserrat-latin-ext-700-normal.DdDFr05Z.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:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/montserrat-latin-700-normal.BdjcYUrC.woff2)format("woff2"),url(/_astro/montserrat-latin-700-normal.BWkrl476.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}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/montserrat-cyrillic-ext-800-normal.GOAQXnVZ.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-ext-800-normal.mB3PmEeV.woff)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:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/montserrat-cyrillic-800-normal.DDmpGQGC.woff2)format("woff2"),url(/_astro/montserrat-cyrillic-800-normal.B_mUCQ9O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/montserrat-vietnamese-800-normal.BDwqwvSG.woff2)format("woff2"),url(/_astro/montserrat-vietnamese-800-normal.Chy8GRiB.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:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/montserrat-latin-ext-800-normal.BBvmbyWk.woff2)format("woff2"),url(/_astro/montserrat-latin-ext-800-normal.Wjq_OapB.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:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/montserrat-latin-800-normal.axpkC1rd.woff2)format("woff2"),url(/_astro/montserrat-latin-800-normal.C3dfDxXV.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}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-cyrillic-ext-600-normal.6AhwUnSr.woff2)format("woff2"),url(/_astro/source-sans-3-cyrillic-ext-600-normal.uAL1a5gb.woff)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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-cyrillic-600-normal.BnFu5nHC.woff2)format("woff2"),url(/_astro/source-sans-3-cyrillic-600-normal.y-RO8wOd.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-greek-ext-600-normal.DynePNDL.woff2)format("woff2"),url(/_astro/source-sans-3-greek-ext-600-normal.D7vJ4nVX.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-greek-600-normal.BSO157bq.woff2)format("woff2"),url(/_astro/source-sans-3-greek-600-normal.BNF9LBpG.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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-vietnamese-600-normal.B2sTNYey.woff2)format("woff2"),url(/_astro/source-sans-3-vietnamese-600-normal.DpSexF-T.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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-latin-ext-600-normal.AEyhgUpm.woff2)format("woff2"),url(/_astro/source-sans-3-latin-ext-600-normal.Wy7HIzqC.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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-sans-3-latin-600-normal.DeckBYAU.woff2)format("woff2"),url(/_astro/source-sans-3-latin-600-normal.BvDVuF-j.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}:root{color-scheme:dark;--page-width:1180px;--content-width:760px;--header-height:64px;--font-sans:Montserrat, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-label:"Source Sans 3", var(--font-sans);--bg-950:#050505;--bg-900:#0a0a0a;--bg-880:#0d0d0d;--bg-850:#101010;--surface-800:#171717;--surface-750:#1f1f1f;--surface-700:#292929;--border-subtle:#363636;--border-strong:#4b4b4b;--text-primary:#f0f0f0;--text-secondary:#c4c4c4;--text-muted:#8e8e8e;--accent-500:#6e6e6e;--accent-400:#b0b0b0;--accent-300:#e2e2e2;--accent-soft:#fff;--success:#75a934;--warning:#e39b24;--danger:#ff7c86;--code-bg:#0a0a0a;--code-border:#3b3b3b;--shadow-sm:0 2px 8px #00000038;--shadow-md:0 8px 24px #0000004d;--glint-04:#ffffff0a;--glint-06:#ffffff0f;--glint-10:#ffffff1a;--glint-12:#ffffff1f;--glint-20:#fff3;--glint-32:#ffffff52;--glint-45:#ffffff73;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--heading-band:clamp(1.25rem, 3vh, 2.15rem);--transition-fast:.14s ease;--transition-normal:.22s ease;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-glide:cubic-bezier(.22, 1, .36, 1);--duration-press:70ms;--duration-hover:.24s}html.theme-light .post-search button{border-color:var(--accent-soft);background:var(--accent-soft);color:var(--bg-850)}html.theme-light{color-scheme:light;--bg-950:#e6e3dc;--bg-900:#efece6;--bg-880:#f4f1ec;--bg-850:#f8f6f2;--surface-800:#fdfcfa;--surface-750:#f5f2ed;--surface-700:#e8e4dc;--border-subtle:#d8d3c9;--border-strong:#b9b2a5;--text-primary:#1d1c19;--text-secondary:#4a4741;--text-muted:#64615a;--accent-500:#8d8779;--accent-400:#4f4b43;--accent-300:#23211d;--accent-soft:#000;--success:#3f6b16;--warning:#8a5a08;--danger:#a3222c;--code-bg:#1d1f21;--code-border:#33363a;--shadow-sm:0 2px 8px #2d28201f;--shadow-md:0 10px 28px #2d282029;--glint-04:#1e1c180a;--glint-06:#1e1c180f;--glint-10:#1e1c181a;--glint-12:#1e1c181f;--glint-20:#1e1c182e;--glint-32:#1e1c1842;--glint-45:#1e1c1857}*,:before,:after{box-sizing:border-box;corner-shape:squircle}.copy-burst i,.feature-scroll-dot,.callout-title:before,.section-rail-dot,.contact-resume:before{corner-shape:round}html{background:var(--bg-950);scroll-behavior:auto;overflow-x:clip}body{background:var(--bg-900);min-width:320px;max-width:100vw;min-height:100vh;color:var(--text-primary);font-family:var(--font-sans);margin:0;font-size:clamp(1rem,.96rem + .15vw,1.075rem);line-height:1.7;overflow-x:clip}body:before{display:none}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}button,input,textarea,select{font:inherit}a{color:var(--accent-300);text-underline-offset:.2em}a:hover{color:var(--accent-soft)}:focus-visible{outline:3px solid var(--accent-300);outline-offset:4px;border-radius:4px}a.button:focus-visible,.profile-links a:focus-visible,.tech-tag-link a:focus-visible,.profile-credential-jump:focus-within{animation:focus-pop .2s var(--ease-out-quart)}@keyframes focus-pop{40%{transform:scale(1.03)}}::selection{background:var(--glint-20);color:var(--text-primary)}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--text-primary);text-wrap:balance}h1{letter-spacing:-.045em;font-size:clamp(2.35rem,1.6rem + 3vw,4.75rem);line-height:1.02}h2{letter-spacing:-.025em;font-size:clamp(1.65rem,1.4rem + 1vw,2.5rem);line-height:1.15}h3{font-size:clamp(1.2rem,1.1rem + .45vw,1.6rem);line-height:1.25}p,li,dd{color:var(--text-secondary)}strong{color:var(--text-primary)}.container{width:min(calc(100% - 2rem), var(--page-width));margin-inline:auto}.section{min-height:calc(100svh - var(--header-height));padding-block:var(--space-8);scroll-margin-top:var(--header-height);flex-direction:column;justify-content:center;display:flex}.section-bordered{border-block:1px solid var(--border-subtle);background:var(--bg-880)}.header-enter{animation:header-drop .42s var(--ease-spring) backwards;animation-delay:calc(var(--enter-index,0) * 70ms)}@keyframes header-drop{0%{opacity:0;transform:translateY(-10px)}}.site-mark.header-enter{animation-name:header-fade}@keyframes header-fade{0%{opacity:0}}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--accent-300);color:var(--bg-950);padding:.7rem 1rem;font-weight:800;position:fixed;top:1rem;left:1rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;min-height:var(--header-height);border-bottom:1px solid var(--border-subtle);background:var(--bg-880);position:sticky;top:0}.header-inner{min-height:var(--header-height);grid-template-columns:minmax(34px,1fr) minmax(0,auto) minmax(34px,1fr);align-items:center;gap:clamp(.35rem,1.5vw,1rem);display:grid}.header-inner>.site-mark{justify-self:start}@media (width<=1000px){.header-inner{grid-template-columns:minmax(calc(var(--header-mark-size,34px) + .75rem), 1fr) minmax(0, auto) minmax(calc(var(--header-mark-size,34px) + .75rem), 1fr);gap:clamp(.9rem,2.5vw,1.4rem)}.header-inner>.site-mark{justify-self:center}.header-inner{--header-mark-size:52px}}@media (width<=600px){.header-inner{--header-mark-size:30px;grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,1fr);gap:.5rem}.theme-toggle{justify-self:end;width:28px;height:30px}.theme-toggle .outline-icon{width:16px;height:16px}}html.has-section-rail{scrollbar-width:none}html.has-section-rail::-webkit-scrollbar{display:none}.tag-list,.breadcrumbs ol{margin:0;padding:0;list-style:none}.hero{isolation:isolate;min-height:calc(100svh - var(--header-height));background:var(--bg-950);flex-direction:column;justify-content:center;padding-block:clamp(3.5rem,8vw,6.5rem);display:flex;position:relative}.hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);align-items:center;gap:clamp(2rem,7vw,7rem);display:grid}.hero h1{max-width:820px;margin-bottom:1.5rem}.hero-summary,.feature-summary{max-width:720px;color:var(--text-secondary);font-size:clamp(1.08rem,1rem + .45vw,1.35rem)}.role-title{color:var(--accent-300);margin-bottom:.65rem;font-size:clamp(1.2rem,1.05rem + .6vw,1.55rem);font-weight:700}.eyebrow,.feature-kicker,.feature-card-meta,.external-link-kind{color:var(--accent-300);font-family:var(--font-label);letter-spacing:.05em;text-transform:uppercase;font-size:.76rem;font-weight:600}.software-row{margin-top:.85rem}.software-label,.group-label{color:var(--accent-300);font-family:var(--font-label);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.4rem;font-size:.72rem;font-weight:600;display:block}.software-list{flex-wrap:wrap;align-items:center;gap:1.1rem;margin:0;padding:0;list-style:none;display:flex}.software-item{display:inline-flex}.software-item a{transition:transform var(--duration-hover) var(--ease-spring), filter var(--transition-fast);display:inline-flex}.software-item a:hover,.software-item a:focus-visible{transform:translateY(-2px)}.software-item a:active{transition-duration:var(--duration-press);transform:translateY(0)scale(.94)}.software-icon{color:var(--text-primary);width:32px;height:32px;display:block}.software-icon img{width:100%;height:100%;display:block}.button-row{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.button{overflow-clip-margin:20px;min-height:44px;box-shadow:inset 0 1px var(--glint-04), var(--shadow-md);color:var(--text-primary);letter-spacing:.01em;transition:transform var(--duration-hover) var(--ease-spring);background:0 0;border:0;border-radius:18px;justify-content:center;align-items:center;gap:.5rem;padding:18px 40px;font-size:1.15rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:clip}.button:hover{transform:translateY(-2px)}.button:active{transition-duration:var(--duration-press);transform:translateY(0)scale(.98)}.post-search button:hover:after{z-index:2;background:linear-gradient(-45deg, transparent 34%, var(--glint-06) 43%, var(--glint-32) 50%, var(--glint-10) 56%, transparent 66%);content:"";pointer-events:none;animation:.6s ease-out section-glint-sweep;position:absolute;inset:0;transform:translate(-140%)}.specular-button__label{z-index:1;align-items:center;gap:inherit;display:inline-flex;position:relative}.profile-photo-wrap{justify-self:end;width:min(100%,400px);position:relative}.profile-photo{border-radius:var(--radius-lg);background:var(--surface-800);width:100%;margin:0;position:relative;overflow:hidden}.profile-photo img{-webkit-touch-callout:none;user-select:none;aspect-ratio:1;object-fit:cover;width:100%;height:auto}.profile-portrait-light,html.theme-light .profile-portrait-dark{display:none}html.theme-light .profile-portrait-light{display:block}@media (hover:hover) and (pointer:fine){.profile-photo-wrap{perspective:900px}.profile-photo{will-change:transform}}.profile-links{border-top:1px solid var(--border-subtle);justify-content:center;gap:.5rem;padding:.4rem 1rem;display:flex}.profile-links a,.profile-links button{width:44px;height:44px;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), transform var(--duration-hover) var(--ease-spring);background:0 0;border:0;place-items:center;text-decoration:none;display:grid}.profile-links a:hover,.profile-links button:hover{color:var(--accent-300);transform:translateY(-1px)}.profile-links a:active,.profile-links button:active{transition-duration:var(--duration-press);transform:translateY(0)scale(.94)}.profile-copy,.profile-copy,.contact-copy{position:relative}.profile-copy .copy-done,.contact-copy .copy-done,.profile-copy.is-copied .copy-mail,.contact-copy.is-copied .copy-mail{display:none}.profile-copy.is-copied .copy-done,.contact-copy.is-copied .copy-done{display:block}.profile-copy.is-copied,.contact-copy.is-copied{color:var(--success)}.copy-burst{pointer-events:none;position:absolute;inset:0}.copy-burst i{background:var(--accent-soft);width:4px;height:4px;animation:copy-burst .7s var(--ease-out-quart) var(--delay) forwards;border-radius:999px;position:absolute;top:50%;left:50%}@keyframes copy-burst{0%{transform:rotate(var(--angle)) translateY(0) scale(1);opacity:.9}to{transform:rotate(var(--angle)) translateY(calc(var(--distance) * -1)) scale(.3);opacity:0}}.profile-links svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:22px;height:22px}.profile-credential{border-top:1px solid var(--border-subtle);align-items:center;gap:.75rem;margin:0;padding:.85rem 1rem;display:flex}.profile-credential-jump{transition:transform var(--duration-hover) var(--ease-spring), background-color var(--transition-fast);position:relative;overflow:hidden}.credential-jump-link:after{content:"";position:absolute;inset:0}.credential-company{z-index:1;position:relative}.profile-credential-jump:hover{background:var(--surface-800);transform:translateY(-2px)}.profile-credential-jump:active{transition-duration:var(--duration-press);transform:translateY(0)scale(.98)}.profile-credential-jump:hover:after{background:linear-gradient(-45deg, transparent 34%, var(--glint-06) 43%, var(--glint-32) 50%, var(--glint-10) 56%, transparent 66%);content:"";pointer-events:none;animation:.6s ease-out section-glint-sweep;position:absolute;inset:0;transform:translate(-140%)}.profile-credential-jump:focus-within{outline:1px solid var(--accent-400);outline-offset:-1px}.profile-credential>svg{fill:none;width:32px;stroke:var(--accent-300);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;flex:0 0 32px}.profile-credential strong,.profile-credential small{display:block}.profile-credential strong{color:var(--text-primary);font-size:.86rem;line-height:1.3}.profile-credential small{color:var(--text-muted);margin-top:.12rem;font-size:.72rem;line-height:1.35}.country-flag{border:1px solid var(--glint-20);border-radius:var(--radius-sm);vertical-align:-.05em;width:1.25rem;margin-left:.12rem;line-height:0;display:inline-block;overflow:hidden}.country-flag svg{width:100%;height:auto;display:block}.career-place{color:var(--text-muted);margin:.15rem 0 0;font-size:.92rem}.section-heading,.contact-strip-inner{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.section-heading h2,.contact-strip-inner h2{margin-bottom:0}.section-heading{padding-block:var(--heading-band);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;margin-bottom:0}.section:has(>.container>.section-heading),.section:has(>.container>.about-heading){min-height:0;padding-block:0}.container:has(>.section-heading),.about-grid:has(>.about-heading){flex:1;grid-template-rows:minmax(min-content,1fr) auto minmax(min-content,1fr);gap:0;min-height:0;display:grid}.container:has(>.section-heading):after,.about-grid:has(>.about-heading):after{min-height:var(--heading-band);content:"";grid-row:3}.container>.section-heading,.about-grid>.about-heading{grid-row:1;align-self:center}.container>.section-heading+*>:first-child,.about-grid>.about-heading+*>:first-child{margin-top:0}.container>.section-heading+*>:last-child,.about-grid>.about-heading+*>:last-child{margin-bottom:0}.container>.section-heading+*,.about-grid>.about-heading+*{grid-row:2;min-width:0}[data-skeleton]{position:relative}[data-skeleton].is-skeleton :is(.feature-card-image,.video-embed,.profile-photo,.feature-cover-art,.technical-figure,.gallery figure){border-radius:var(--radius-sm);background-color:var(--surface-700);animation:2s cubic-bezier(.4,0,.6,1) infinite skeleton-pulse}[data-skeleton].is-skeleton :is(img,video,.plyr){visibility:hidden}.video-embed .plyr__poster{transition:none}@keyframes skeleton-pulse{50%{opacity:.5}}.feature-card-image,.profile-photo,.feature-cover .video-embed,.feature-cover-art{background-color:var(--surface-800)}.hover-card{z-index:60;border:1px solid var(--border-strong);background:var(--surface-800);max-width:280px;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform-origin:50% 100%;transition:opacity .14s ease-out, transform .18s var(--ease-spring), visibility 0s linear .14s;pointer-events:none;border-radius:12px;padding:.7rem .85rem;position:fixed;transform:translateY(4px)scale(.97)}.hover-card.is-below{transform-origin:50% 0}.hover-card.is-open{opacity:1;visibility:visible;transition:opacity .14s ease-out, transform .18s var(--ease-spring), visibility 0s;transform:translateY(0)scale(1)}.hover-card-title{color:var(--text-primary);margin:0 0 .2rem;font-size:.8rem;font-weight:700}.hover-card-body{color:var(--text-secondary);margin:0;font-size:.76rem;line-height:1.45}.hover-card-body:empty{display:none}.hover-card:has(.hover-card-body:empty) .hover-card-title{text-align:center;margin-bottom:0}.image-zoom-target{cursor:zoom-in}.image-zoom-frame{line-height:0;display:block;position:relative}.image-zoom-badge{border:1px solid var(--border-subtle);width:26px;height:26px;color:var(--text-secondary);pointer-events:none;transition:color var(--transition-fast), border-color var(--transition-fast);background:#0000008c;border-radius:8px;place-items:center;display:grid;position:absolute;top:.5rem;right:.5rem}.image-zoom-frame:hover .image-zoom-badge{border-color:var(--accent-400);color:var(--accent-300)}html.image-zoom-lock{overflow:hidden}.image-zoom-overlay{z-index:70;opacity:0;visibility:hidden;cursor:zoom-out;background:#000000d1;place-items:center;transition:opacity .22s ease-out,visibility 0s linear .22s;display:grid;position:fixed;inset:0}.image-zoom-overlay.is-open{opacity:1;visibility:visible;touch-action:none;transition:opacity .22s ease-out,visibility}.image-zoom-img{border-radius:var(--radius-md);max-width:94vw;max-height:92vh;transition:transform .26s var(--ease-glide);cursor:default;transform:scale(.96);box-shadow:0 8px 40px #0009}.image-zoom-overlay.is-open .image-zoom-img{transform:scale(1)}.image-zoom-overlay.is-magnified .image-zoom-img{cursor:grab;transition:none}.image-zoom-overlay.is-gesturing .image-zoom-img{will-change:transform}.image-zoom-overlay.is-dragging .image-zoom-img{cursor:grabbing;transition:none}.image-zoom-close{border:1px solid var(--border-strong);background:var(--surface-800);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;place-items:center;padding:0;transition:border-color .16s ease-out,color .16s ease-out;display:grid;position:absolute;top:1rem;right:1rem}.image-zoom-close:hover{border-color:var(--accent-400);color:var(--accent-300)}.showreel-embed{aspect-ratio:16/9;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#000;width:100%;display:block}.showreel-poster{cursor:pointer;background-color:#000;background-position:50%;background-size:cover;place-items:center;padding:0;display:grid}.showreel-play{color:#fff;background:#0009;border-radius:50%;width:3.5rem;height:3.5rem;padding:1rem}.showreel-embed-wrap{position:relative}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:-.5rem -4px 0;padding:.5rem 4px .75rem;display:grid}.feature-scroll-nav{flex-direction:column;align-items:center;gap:.4rem;margin-top:.35rem;display:none}.feature-scroll-dots{align-items:center;gap:0;display:flex}.feature-scroll-dot{background:var(--border-subtle);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;width:8px;height:8px;margin-left:.45rem;padding:0;transition:background-color .18s ease-out,margin-left .18s ease-out,border-radius .18s ease-out}.feature-scroll-dot:first-child{margin-left:0}.feature-scroll-dot.is-active{background:var(--accent-400)}.feature-scroll-dot.is-join-left{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.feature-scroll-dot.is-join-right{border-top-right-radius:0;border-bottom-right-radius:0}.feature-scroll-count{color:var(--text-muted);margin:0;font-size:.76rem}.feature-grid>[data-post-card],.feature-card{height:100%}.is-refiltering [data-post-card]:not([hidden]){animation:.22s ease-out both card-settle;animation-delay:calc(var(--settle-index,0) * 22ms)}@keyframes card-settle{0%{opacity:.45;transform:translateY(5px)}}#posts{scroll-margin-top:var(--header-height);position:relative;overflow:hidden}.posts-upcoming{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:.4rem .9rem;margin:.6rem 0 0;font-size:.9rem;display:flex}.posts-upcoming-label{color:var(--text-secondary);font-weight:700}.posts-upcoming-item{border-bottom:1px dashed var(--border-strong)}.post-filters{border:1px solid var(--border-subtle);background:var(--surface-800);border-radius:16px;grid-template-columns:minmax(260px,1fr) minmax(190px,.4fr) minmax(220px,.45fr) auto;align-items:end;gap:.75rem;margin-bottom:1.25rem;padding:.8rem;display:grid}.post-search{grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.post-search-mark{width:18px;height:18px;color:var(--text-muted)}.post-search input,.tag-filter select{border:1px solid var(--border-strong);background:var(--bg-850);width:100%;min-height:44px;color:var(--text-primary);transition:border-color var(--transition-fast);border-radius:12px;padding:.55rem .7rem;box-shadow:inset 0 1px 2px #00000047}.post-search input:hover,.tag-filter select:hover{border-color:var(--accent-500)}.post-search input:focus-visible,.tag-filter select:focus-visible{border-color:var(--accent-300)}.tag-filter select:focus-visible{box-shadow:inset 0 0 0 1px var(--accent-400);outline:none}.tag-filter select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238e8e8e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .6rem center;background-repeat:no-repeat;background-size:16px 16px;padding-right:2rem}.post-search input{appearance:none}.post-search input::placeholder{color:var(--text-muted)}.post-search button{border:1px solid var(--accent-400);background:var(--accent-400);min-height:44px;color:var(--bg-950);cursor:pointer;transition:transform var(--duration-hover) var(--ease-spring), background-color var(--transition-fast);border-radius:12px;padding:.55rem 1rem;font-weight:800;position:relative;overflow:hidden}.post-search button:hover{background:var(--accent-300)}.post-search button:active{transition-duration:var(--duration-press);transform:scale(.98)}.post-search:has(input:not(:placeholder-shown)) button{border-color:var(--accent-soft);background:var(--accent-soft);color:var(--bg-950)}.tag-filter{grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.5rem;display:grid}.tag-filter label{color:var(--text-muted);place-items:center;display:grid}.tag-filter label .outline-icon{width:18px;height:18px}.filter-empty{margin-top:1rem}.project-overviews{margin-bottom:1.25rem}.project-overviews[hidden],.project-overview[hidden]{display:none}.project-overview{border:1px solid var(--border-strong);background:var(--surface-800);padding:1.25rem}.project-overview h3{margin-bottom:.55rem}.project-overview p:last-child{margin-bottom:0}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[hidden]{display:none!important}.is-instant,.is-instant>*{transition:none!important;animation:none!important}.reveal-enabled [data-reveal]{opacity:0;transition:opacity .22s,transform .22s;transition-delay:var(--reveal-delay,0s);transform:translateY(10px)}.reveal-enabled [data-reveal].is-visible{opacity:1;transform:translateY(0)}@supports (background-clip:text){.animated-title{background-image:linear-gradient(-45deg, var(--text-primary) 0%, var(--text-primary) 42%, var(--accent-soft) 48%, var(--accent-soft) 50%, var(--accent-soft) 52%, var(--text-primary) 58%, var(--text-primary) 100%);color:#0000;-webkit-text-fill-color:transparent;background-position:120% 0;background-size:300% 100%;background-clip:text}}.feature-card{border:1px solid var(--border-subtle);background:var(--surface-800);box-shadow:var(--shadow-sm);transition:transform var(--duration-hover) var(--ease-spring), border-color var(--transition-normal), background-color var(--transition-normal);border-radius:12px;position:relative;overflow:hidden}.feature-card:hover{border-color:var(--accent-400);background-color:var(--surface-750);transform:translateY(-3px)}[data-post-card]{position:relative}[data-post-card]:after{z-index:-1;box-shadow:var(--shadow-md);opacity:0;content:"";pointer-events:none;transition:opacity var(--duration-hover) ease;border-radius:12px;position:absolute;inset:0}[data-post-card]:hover:after{opacity:1}.feature-card:after{z-index:2;opacity:0;background:linear-gradient(-45deg, transparent 43%, var(--glint-04) 46%, var(--glint-20) 50%, var(--glint-12) 53%, transparent 57%);content:"";pointer-events:none;will-change:transform, opacity;position:absolute;inset:-60%;transform:translate(-70%)}.feature-card:focus-within{border-color:var(--accent-300)}.feature-card-highlight,.feature-card-highlight:hover,.feature-card-highlight:focus-within{border-color:#0000}.feature-card-image{aspect-ratio:16/9;border-bottom:1px solid var(--border-subtle);display:block;overflow:hidden}.feature-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease-out-quart)}.feature-card:hover .feature-card-image img{transform:scale(1.03)}.feature-card-body{padding:1.35rem}.feature-card-meta,.feature-kicker{color:var(--accent-300);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.draft-label{border:1px solid var(--glint-45);color:var(--accent-300);border-radius:5px;padding:.2rem .45rem;font-size:.66rem}.feature-card h2{letter-spacing:-.02em;margin-block:.85rem .65rem;font-size:1.35rem;font-weight:800}.feature-card h2 a{color:var(--text-primary);text-decoration:none}.feature-card h2 a:after{z-index:3;content:"";position:absolute;inset:0}.feature-card p{font-size:.95rem}.tag-list{flex-wrap:wrap;gap:.45rem;display:flex}.tech-tag{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-850);min-height:24px;color:var(--text-secondary);font-family:var(--font-sans);white-space:nowrap;transition:transform var(--duration-hover) var(--ease-spring), border-color var(--transition-fast), color var(--transition-fast);align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex;position:relative}.tech-tag:hover{transform:translateY(-1px)}.tech-tag-link:active{transition-duration:var(--duration-press);transform:translateY(0)scale(.96)}.tech-tag-link{padding:0}.tech-tag-link a{min-height:26px;color:inherit;align-items:center;padding:.2rem .55rem;text-decoration:none;display:inline-flex}.tech-tag-link:hover{border-color:var(--accent-300);color:var(--text-primary)}.tech-tag-link a:hover{color:inherit}#career{scroll-margin-top:var(--header-height);position:relative;overflow:hidden}.career-list{width:100%;max-width:var(--content-width);gap:1rem;margin-inline:auto;padding:0 0 0 2.2rem;list-style:none;display:grid;position:relative}.career-list:before{transform-origin:top;background:linear-gradient(transparent, var(--border-strong) 12%, var(--border-strong) 88%, transparent);content:"";width:1px;position:absolute;top:0;bottom:0;left:9px;transform:scaleY(0)}@supports (animation-timeline:view()){.career-list:before{animation:linear both rail-draw view();animation-range:entry 30% exit 70%}}@supports not (animation-timeline:view()){.career-list:before{transition:transform 1.1s var(--ease-glide)}.reveal-enabled .career-list:has(.career-item.is-visible):before{transform:scaleY(1)}}html:not(.reveal-enabled) .career-list:before{transform:scaleY(1)}@keyframes rail-draw{to{transform:scaleY(1)}}.career-item{border:1px solid var(--border-subtle);background:var(--surface-800);scroll-margin-top:calc(var(--header-height) + 1rem);border-radius:18px;padding:1rem 1.1rem;transition:border-color .22s ease-out;position:relative;overflow:hidden}.career-tech{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.9rem 0 0;padding:0;list-style:none;display:flex}.tech-logo{color:var(--text-primary);display:inline-flex;position:relative}.tech-logo svg,.tech-logo img{width:22px;height:22px;display:block}.tech-logo-text{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.72rem}.career-item-head{align-items:center;gap:.6rem;margin-bottom:.35rem;display:flex}.career-item-head p{margin:0;line-height:1}.header-nav .nav-mark{display:none}@media (width<=600px){.header-nav .nav-mark{width:calc(var(--header-mark-size,34px) * .72);height:calc(var(--header-mark-size,34px) * .72);color:var(--accent-soft);display:block}}.next-section{z-index:40;border:1px solid var(--border-subtle);background:var(--surface-800);width:44px;height:44px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--transition-fast), transform var(--duration-hover) var(--ease-out-quart), opacity var(--transition-fast);border-radius:999px;place-items:center;display:grid;position:fixed;bottom:clamp(1rem,3vh,2rem);left:50%;transform:translate(-50%)}.next-section:hover{border-color:var(--accent-400);transform:translate(-50%)translateY(2px)}.next-section:active{transition-duration:var(--duration-press);transform:translate(-50%)scale(.94)}.next-section .outline-icon{width:22px;height:22px}.theme-toggle{width:34px;height:34px;color:var(--accent-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity var(--transition-fast);background:0 0;border:0;justify-self:end;place-items:center;padding:0;display:inline-grid}.theme-toggle:hover{opacity:.75}.theme-toggle:active .outline-icon{transition-duration:var(--duration-press);transform:scale(.88)}.theme-toggle .outline-icon{width:18px;height:18px;transition:opacity .2s ease, transform .42s var(--ease-spring);grid-area:1/1}.theme-toggle-moon{opacity:0;transform:rotate(-70deg)scale(.6)}html.theme-light .theme-toggle-sun{opacity:0;transform:rotate(70deg)scale(.6)}html.theme-light .theme-toggle-moon{opacity:1;transform:rotate(0)scale(1)}.contact-strip h2{align-items:center;gap:.6rem;display:flex}.heading-icon{stroke-width:1.7px}.tag-filter label,.post-search button,.button{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.about-item h3,.career-reference h3{align-items:center;gap:.55rem;display:flex}.about-heading .animated-title{text-align:center;flex-direction:column;align-items:center;gap:.4rem;display:flex}.outline-icon{width:1em;height:1em;color:var(--accent-400);flex:none}.about-heading .animated-title .outline-icon{stroke-width:1.7px;width:.78em;height:.78em}.career-icon{width:20px;height:20px;color:var(--text-muted);flex:none}.career-item h3{margin-bottom:.25rem;font-size:1.05rem}.career-description{margin:.5rem 0 0}.career-highlights{margin:.5rem 0 0;padding-left:1.1rem}.career-reference{width:100%;max-width:var(--content-width);margin:1rem auto 0;padding-left:2.2rem}.career-reference .career-item{background:#e5484d14;border-color:#e5484d59}.career-highlights li{white-space:pre-line;margin-top:.25rem}.career-highlights li::marker{color:var(--accent-300)}.career-company{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.35rem;margin:0;display:flex}.career-company a,.credential-company{text-decoration:none;display:inline-block;position:relative}.career-company a:after,.credential-company:after{transform-origin:100%;background:var(--accent-soft);content:"";height:1px;transition:transform .18s var(--ease-out-quart);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.career-company a:hover:after,.career-company a:focus-visible:after,.credential-company:hover:after,.credential-company:focus-visible:after{transform-origin:0;transform:scaleX(1)}.about-section{border-top:1px solid var(--border-subtle)}.about-grid{grid-template-columns:1fr;gap:2rem;display:grid}.about-heading{padding-block:var(--heading-band);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.about-heading h2{margin-bottom:0}.about-heading .eyebrow{transition:opacity .32s ease-out,transform .32s ease-out}.reveal-enabled .about-heading:not(.is-visible) .eyebrow{opacity:0;transform:translateY(6px)}.about-copy{width:100%;max-width:var(--content-width);margin-inline:auto}.skill-tags{gap:.5rem;padding:0 0 1rem}.about-item{border-top:1px solid var(--border-subtle);scroll-margin-top:calc(var(--header-height) + 1rem);padding:1rem 0;position:relative}@keyframes section-glint-sweep{to{transform:translate(140%)}}.about-item:last-child{border-bottom:1px solid var(--border-subtle)}.about-item h3{margin-bottom:.35rem;font-size:1.05rem}.about-item p{white-space:pre-line;margin:0}.text-highlight{color:inherit;font-weight:600}.term-tag{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-850);color:var(--text-secondary);font-family:var(--font-sans);white-space:nowrap;cursor:help;transition:border-color var(--transition-fast), color var(--transition-fast);padding:.05rem .4rem;font-size:.85em;display:inline-block}.term-tag:hover,.term-tag:focus-visible{border-color:var(--border-strong);color:var(--text-primary)}.term-link{color:var(--accent-soft);text-decoration:underline;text-decoration-color:var(--accent-500);text-underline-offset:3px;transition:color var(--transition-fast), text-decoration-color var(--transition-fast)}.term-link:hover{color:var(--text-primary);text-decoration-color:var(--accent-300)}.contact-strip{isolation:isolate;border-top:1px solid var(--border-subtle);position:relative}.contact-strip-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;margin-bottom:0}.contact-strip-inner .button-row{justify-content:center;gap:.6rem;margin-top:0}.contact-strip:before{transform-origin:50%;background:var(--accent-400);content:"";height:2px;transition:transform .65s var(--ease-glide);position:absolute;top:-1px;left:0;right:0;transform:scaleX(1)}.reveal-enabled .contact-strip:not(.is-visible):before{transform:scaleX(0)}.reveal-enabled .contact-strip:not(.is-visible) .button{opacity:0}.reveal-enabled .contact-strip.is-visible .button{animation:.38s ease-out backwards contact-button-in}.reveal-enabled .contact-strip.is-visible .button:nth-child(2){animation-delay:90ms}@keyframes contact-button-in{0%{opacity:0;transform:translateY(10px)}}.empty-state{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-800);max-width:760px;padding:clamp(1.5rem,5vw,3.5rem)}.empty-state h2,.empty-state h3{margin-bottom:.8rem}.empty-state p:last-child{margin-bottom:0}.feature-detail{--page-width:1400px;--content-width:920px;padding-bottom:max(var(--space-8), 80svh)}.feature-hero{padding-block:clamp(2.5rem,7vw,5rem) clamp(2rem,4vw,3rem)}.feature-hero h1{max-width:960px;margin-block:1rem 1.5rem;font-weight:800}.breadcrumbs ol{flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem;display:flex}.breadcrumbs li{align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;display:flex}.breadcrumbs a{color:var(--text-muted);transition:color var(--transition-normal);text-decoration:none}.breadcrumbs a:hover,.breadcrumbs a:focus-visible{color:var(--accent-300)}.breadcrumbs span[aria-current=page]{color:var(--text-primary)}.breadcrumb-separator{color:var(--text-muted);opacity:.55}.feature-cover{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-800);box-shadow:var(--shadow-sm);margin-bottom:clamp(2.5rem,6vw,5rem);overflow:hidden}.feature-cover img{object-fit:contain;width:100%;height:auto;max-height:78vh;display:block}.feature-cover .video-embed{margin:0}.feature-cover-pair{box-shadow:none;background:0 0;border:0;grid-template-columns:minmax(0,1fr);gap:1.25rem;display:grid;overflow:visible}.feature-cover-art{margin:0}.feature-cover-art img{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-800);box-shadow:var(--shadow-sm)}.content-grid{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.content-grid>.feature-prose{grid-area:1/2}.content-grid>.content-sidebar{grid-area:1/1}.feature-prose{width:min(100%, var(--content-width));min-width:0;position:relative}.content-sidebar{top:calc(var(--header-height) + 1.5rem);position:sticky}.reveal-enabled [data-reveal-group]>:is(h2,h3,figure){opacity:0;transform:translateY(12px)}.reveal-enabled [data-reveal-group]>.is-visible{opacity:1;transition:opacity .26s ease, transform .26s var(--ease-out-quart);transform:translateY(0)}.feature-facts{margin-bottom:3rem}.prose .feature-facts h2{border-top:0;margin-top:0;padding-top:0}.feature-facts dl div{border-top:1px solid var(--border-subtle);grid-template-columns:130px 1fr;align-items:center;gap:1rem;padding-block:.65rem;display:grid}.feature-facts dt{color:var(--text-muted);font-size:.82rem;font-weight:700}.feature-facts dd{margin:0}.feature-status{color:var(--accent-soft);text-underline-offset:.2em;font-weight:700;text-decoration:underline}.callout{--callout-color:var(--accent-400);border-radius:var(--radius-sm);--callout-glow:color-mix(in srgb, var(--callout-color) 30%, var(--surface-700));box-shadow:0 0 var(--callout-feather) var(--callout-glow), inset 0 0 var(--callout-feather) var(--callout-glow);--callout-feather:18px;margin-block:2rem;padding:1.1rem 1.2rem}.callout-warning{--callout-color:var(--warning)}.callout-result{--callout-color:var(--success)}.callout-title{color:var(--text-primary);align-items:center;gap:.5rem;margin-bottom:.35rem;font-weight:800;display:flex}.callout-title:before{background:var(--callout-color);content:"";border-radius:999px;flex-shrink:0;width:8px;height:8px}.callout-content>:last-child{margin-bottom:0}.technical-figure,.gallery figure,.video-embed{margin:2rem 0}@media (width<=760px){.video-embed .plyr__volume input[type=range]{display:none}.video-embed .plyr__volume{min-width:0}}.technical-figure img,.gallery img,.video-embed video,.video-frame,.media-placeholder{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-800);width:100%;overflow:hidden}.video-embed video{aspect-ratio:16/9;object-fit:contain;height:auto}figcaption{color:var(--text-muted);margin-top:.6rem;font-size:.84rem}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.gallery figure{margin:0}.video-frame{aspect-ratio:16/9}.video-frame iframe{border:0;width:100%;height:100%}.media-placeholder{text-align:center;place-content:center;min-height:320px;padding:2rem;display:grid}.media-placeholder span{color:var(--text-primary);font-weight:800}.media-placeholder small{color:var(--text-muted)}.external-link-grid{gap:.8rem;display:grid}.external-link-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-800);gap:.3rem;padding:1rem 1.1rem;text-decoration:none;display:grid}.external-link-card>span:not(.external-link-kind){color:var(--text-secondary)}.external-link-card small{color:var(--text-muted)}.not-found{min-height:calc(100vh - var(--header-height));place-items:center;display:grid}.not-found-inner{text-align:center;max-width:760px}.not-found .button-row{justify-content:center}.site-footer{border-top:1px solid var(--border-subtle);background:var(--bg-950);padding-block:2.5rem}.footer-grid{grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;display:grid}@media (width<=720px){.footer-grid{grid-template-columns:auto 1fr}}.site-footer p{color:var(--text-muted);margin-bottom:0;font-size:.85rem}.footer-note{grid-column:1/-1}@media (width<=920px){.content-grid{grid-template-columns:minmax(0,1fr)}.content-grid>.feature-prose{grid-column:1}.content-sidebar{display:none}.hero-grid{grid-template-columns:minmax(0,1fr)}.hero-grid>*{min-width:0}.profile-photo-wrap{order:-1;justify-self:center;margin-inline:auto}.hero-copy{text-align:center}.hero-copy h1,.hero-summary{margin-inline:auto}.hero-copy .button-row,.skill-tags,.software-list,.career-tech{justify-content:center}.hero-copy .group-label,.software-label{text-align:center}.post-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.post-search{grid-column:1/-1}}@media (width<=760px){:root{--space-8:3.5rem}.career-list{padding-left:0}.career-list:before{display:none}.career-reference{padding-left:0}.post-filters{grid-template-columns:1fr;align-items:stretch}.section-heading{flex-direction:column}.footer-grid{grid-template-columns:1fr}}@media (width<=1000px){.feature-grid{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;grid-template-columns:none;grid-auto-columns:calc(33.3333% - .533333rem);grid-auto-flow:column;gap:.8rem;scroll-padding-inline:4px;display:grid;overflow-x:auto}.feature-grid>[data-post-card]{scroll-snap-align:start}.feature-scroll-nav{display:flex}.feature-card-body{padding:.55rem}.feature-card-body h2{font-size:.8rem;line-height:1.25}.feature-card-body p{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.35;display:-webkit-box;overflow:hidden}.feature-card-meta{font-size:.56rem}.feature-card-body .tag-list{display:none}}@media (width<=600px){.container{width:min(calc(100% - 1.25rem), var(--page-width))}.gallery{grid-template-columns:1fr}.button-row,.button{width:100%}.feature-facts dl div{grid-template-columns:1fr;gap:.2rem}.media-placeholder{min-height:220px}}.glint-cooling:after{animation:none}@media (width<=760px){.hero{padding-block:1.5rem}.hero-grid{gap:1.5rem}.hero .profile-photo-wrap{width:min(100%,300px)}.hero .profile-credential{gap:.6rem;padding:.6rem .75rem}.hero .profile-credential>svg{flex-basis:26px;width:26px}.hero h1{margin-bottom:.65rem;font-size:clamp(1.8rem,7vw,2.4rem)}.hero .role-title{font-size:1.05rem}.hero-summary{font-size:1rem}.hero-copy .button-row{gap:.6rem;margin-top:1.25rem}.hero-copy .button{white-space:nowrap;width:auto;box-shadow:inset 0 0 0 1px var(--border-strong), var(--shadow-md);flex:140px;padding:18px 12px;font-size:.95rem}}@media (width<=600px){.contact-strip-inner .button-row,.contact-strip-inner .button{width:auto}}.shimmer-layer{z-index:2;border-radius:inherit;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .6s;position:absolute;inset:0}.shimmer-layer[data-ready]{opacity:1}.profile-photo{isolation:isolate;box-shadow:inset 0 0 0 1px #91a0be26}@media (prefers-reduced-motion:reduce){.shimmer-layer{transition:none}}:is(.hero-copy,.contact-strip-inner) .button{backdrop-filter:blur(12px)saturate(140%);text-shadow:0 1px 2px #0000002e;background:linear-gradient(165deg,#ffffff24,#0000 48%,#ffffff0a),#16181e3d;box-shadow:inset 0 0 0 1px #ffffff29,inset 0 1px #ffffff4d,inset 0 -1px #ffffff14,0 6px 18px #00000029}html.theme-light :is(.hero-copy,.contact-strip-inner) .button{text-shadow:none;background:linear-gradient(165deg,#ffffffa6,#0000 52%,#ffffff1f),#fff3;box-shadow:inset 0 0 0 1px #3c373229,inset 0 1px #ffffffe6,inset 0 -1px #ffffff4d,0 6px 18px #2d28201a}@media (pointer:coarse){:is(.hero-copy,.contact-strip-inner) .button{backdrop-filter:blur(6px)saturate(125%)}}.prose>*+*{margin-top:1.2em}.prose h2{border-top:1px solid var(--border-subtle);margin-top:3.25rem;padding-top:.7rem}.prose h3{margin-top:2rem}.prose blockquote{border-left:3px solid var(--accent-400);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-800);margin-inline:0;padding:1rem 1.25rem}.prose code:not(pre code){border:1px solid var(--code-border);background:var(--code-bg);color:var(--accent-soft);font-family:var(--font-mono);border-radius:2px;padding:.15em .4em;font-size:.9em}.prose pre{border:1px solid var(--code-border);border-radius:var(--radius-md);background:var(--code-bg);box-shadow:inset 0 1px var(--glint-04);padding:1rem 1.1rem;overflow-x:auto}.prose pre code{font-family:var(--font-mono);font-size:.88rem}.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border-subtle);text-align:left;padding:.75rem}.prose th{background:var(--surface-800);color:var(--text-primary)}.prose hr{border:0;border-top:1px solid var(--border-subtle);margin-block:3rem}.prose ul,.prose ol{padding-left:1.35rem}.prose li+li{margin-top:.45rem}@media (width<=600px){.prose pre{padding:.8rem .85rem;overflow-x:hidden}.prose pre code{white-space:pre-wrap;overflow-wrap:break-word;font-size:.74rem;line-height:1.55}}.site-mark{--mark-size:34px;cursor:pointer;border-radius:calc(var(--mark-size) * 14 / 64);background:0 0;border:0;padding:0;line-height:0;display:inline-flex;position:relative;overflow:hidden}.site-mark .face{z-index:1;width:var(--mark-size);height:var(--mark-size);transition:transform .24s cubic-bezier(.34,1.56,.64,1);position:relative}.site-mark .face-tile{fill:var(--surface-800);stroke:var(--border-strong);stroke-width:1px}.site-mark .face-gold{opacity:0;transition:opacity .22s}.site-mark .face-sheen{opacity:0;fill:var(--glint-45);transform:skew(-18deg)translate(0)}.site-mark-dead{--mark-size:96px;pointer-events:none;line-height:0;display:inline-flex}.site-mark-dead .face{width:var(--mark-size);height:var(--mark-size)}.site-mark-dead .face-tile{fill:var(--surface-800)}.site-mark-dead .tongue{fill:var(--text-primary);stroke-linejoin:round}.site-mark .face-ink,.site-mark-dead .face-ink{fill:none;stroke:var(--text-primary);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.site-mark .eye,.site-mark .mouth,.site-mark .eye-box,.site-mark .mouth-box{transform-box:fill-box;transform-origin:50%;transition:transform .3s cubic-bezier(.33,1,.68,1)}.site-mark .eye-box{transform:translate(var(--look-x,0px), var(--eye-lift,0px)) scaleY(var(--eye-open,1))}.site-mark .mouth-box{transform:scale(var(--mouth-wide,1), var(--mouth-tall,1)) translateY(var(--mouth-drop,0px))}.site-mark .eye,.site-mark .eye-open{transform-box:fill-box;transform-origin:50%;transition:opacity .26s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.33,1,.68,1)}.site-mark .eye-open{opacity:0;stroke-width:7px;transform:scale(.7)}.site-mark.is-eyes-open .eye{transform:scale(.8)}.site-mark.is-eyes-open .eye-open{transform:scale(1)}.site-mark.is-eyes-open .eye{opacity:0}.site-mark.is-eyes-open .eye-open{opacity:1}.site-mark.is-surprised{--eye-open:1.25;--eye-lift:-2px;--mouth-wide:.55;--mouth-tall:1.3}.site-mark.is-eyes-open.is-winking .eye-open-right{opacity:0}.site-mark.is-eyes-open.is-winking .eye-right{opacity:1}.site-mark.is-pleased{--eye-open:.55;--eye-lift:1px;--mouth-wide:1.2;--mouth-tall:1.5}.site-mark.is-sleepy{--eye-open:.7;--eye-lift:2px;--mouth-tall:.5}.site-mark:hover .face,.site-mark:focus-visible .face{transform:translateY(-1px)}.site-mark:hover .face-gold,.site-mark:focus-visible .face-gold{opacity:1}.site-mark:hover .face-sheen,.site-mark:focus-visible .face-sheen{opacity:1;animation:.9s cubic-bezier(.25,1,.5,1) mark-sheen}.site-mark:hover,.site-mark:focus-visible{--mouth-wide:1.12;--mouth-tall:1.35;--mouth-drop:-1px;--eye-lift:-1.5px}.site-mark:active .face{transition-duration:70ms;transform:scale(.92)}@keyframes mark-sheen{0%{transform:skew(-18deg)translate(0)}to{transform:skew(-18deg)translate(120px)}}.specular-button__fx{z-index:0;pointer-events:none;position:absolute;inset:-20px}.specular-button__fx canvas{width:100%;height:100%;display:block}
