.lanyard{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.lanyard-canvas{touch-action:none;width:100%;height:100%;display:block}main:has(>.lanyard-page){display:flow-root}.site-shell main>section.lanyard-page:not(.hero):not(.contact-section){isolation:isolate;width:100%;max-width:none;height:max(240px,100svh - 24px);min-height:0;margin:0;padding:0;position:relative}.lanyard-page-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.lanyard-page-header h1{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font:11px Geist Mono,monospace}.lanyard-page-header a{align-items:center;gap:7px;font:11px Geist Mono,monospace;display:inline-flex}.lanyard-stage{width:100%;height:100%;position:absolute;inset:0}.lanyard-stage>.lanyard{position:absolute;inset:0}.lanyard-stage.is-loading>.lanyard{visibility:hidden}.lanyard-page .lanyard-loading-label{z-index:2;background:var(--bg);color:var(--muted);text-align:center;pointer-events:none;border-radius:6px;margin:0;padding:10px 14px;font:11px Geist Mono,monospace;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lanyard-static{place-items:center;height:100%;display:grid}.lanyard-static img{-o-object-fit:contain;object-fit:contain;border-radius:14px;width:min(65%,330px);max-height:85%;box-shadow:0 18px 40px -20px #0006}.lanyard-controls{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.lanyard-controls button{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;align-items:center;gap:7px;padding:9px 13px;font:11px Geist Mono,monospace;display:inline-flex}.lanyard-controls button:disabled{opacity:.45;cursor:wait}.lanyard-controls button:hover:not(:disabled){background:var(--ink);color:var(--bg)}.lanyard-help{text-align:center;color:var(--muted);margin:14px 0 0;font:10px Geist Mono,monospace}.side-nav .id-nav-link{gap:10px}.side-nav .id-nav-link span{color:inherit;width:auto;font-size:inherit}.side-nav .id-nav-link .nav-icon{opacity:.65;flex:0 0 14px;margin-left:0}.side-nav .id-nav-link.active{color:var(--ink)}.side-nav .id-nav-link.active .nav-icon{opacity:1}@media (width<=1023px){.site-shell main>section.lanyard-page:not(.hero):not(.contact-section){height:max(240px,100svh - 88px);margin-top:64px}}@media (width>=1024px){.side-nav .id-nav-link{gap:12px;padding:9px 0;font-size:11px}}.lanyard-page .lanyard-page-header{z-index:1;pointer-events:none;position:absolute;inset:24px clamp(20px,3vw,48px) auto}.lanyard-page-header a{pointer-events:auto}.lanyard-page .lanyard-controls{z-index:1;pointer-events:none;margin:0;position:absolute;bottom:46px;left:0;right:0}.lanyard-controls button{pointer-events:auto}.lanyard-page .lanyard-help{z-index:1;pointer-events:none;margin:0;position:absolute;bottom:20px;left:16px;right:16px}.lanyard-page .lanyard-static img{width:auto;max-width:72%;height:60%;max-height:72%}@media (width<=380px){.lanyard-page-header{gap:8px}.lanyard-page-header h1{font-size:9px}.lanyard-page-header a{font-size:10px}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.\!visible{visibility:visible!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.container{width:100%}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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,ease);transition-duration:var(--tw-duration,0s)}@font-face{font-family:Geist;src:url(/assets/Geist-Variable-Bj2R_7yk.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/assets/GeistMono-Variable-Dispecij.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Geist Pixel;src:url(/assets/GeistPixel-Square-B0mEoKr8.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Intro Noto JP;src:url(data:font/woff2;base64,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)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Intro Noto SC;src:url(data:font/woff2;base64,d09GMgABAAAAAA5oABIAAAAAGDAAAA4IAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYFeG4JqHG4GYD9TVEFUKgCBDBEICp50mhwLLAABNgIkAzAEIAWEZAcgDAcXJBgsG3QUM5KTVg9kqjMxxg398evPv589n1fVR6dHQFbACRnZe92jzXeoM0/JT1Kc0gPRVJjaidhQAJgIpNVe3TwSnaUO4DYHY+RIBRQLKwaYNTpnZD6yAwLIyyabLeBUSmkejaekr/Tjfq1udx5pRxONFopZJ+X7D90e5sN99xGxTKiQSaJW8RKhNGIklExq+LZ35rWdqGQ04NNPbqlgzdIEmKB6yYOQUCZOnrkQQyPzM5LgF5sRnQi/OC0lHkMTtRQNQ5O0rBT4QeFSoQ6AF4rgdkK5sIOFmMyQByEOc5hfOdcRwrkh8GsNQq4TbADoCjCqgxDTeTek9QBkfGRMRHxkTFZ8VHRqRmpyCqPBCGMRY9R/P62f3k8jU4lahwMMHCIxOiMFHmlaUhZUOWlaEmwuwkLLwEn5NkpgAMOdmAgf16C1kwEYjGAEQ/pwkmx9yY7DojuHJ12FB12Vm28Ky1vU5Wo6jKN2+NNpuNM5hNAu2NBR7KSDGcxhASvYGFzIEQQjWaLzQZ/oBf2iT+DYIBDdjWg35dNNaqDvdIce0366TjcJedoLFOhDhADQLC2ghHZSWpmnp7cHUQtIcmSOxnwd3yQnOiMLZjkZWf0Rk9ACBjkA07kKjJtgFELdWoqH7Ct0AG/gS5EwY+WBLUN/NimNG9cJY88eQGXQg5EW4HaHh4ybOH4OxsKj9bxIozrqIuuYxwqF6S+XcXd+735UkgQGBWCz6OICnhsbl8V2yE8awMzY1w8SXjiwEgU7VyKv9XQnWEDACB7qAlVTE9VUtVO9oL5T/yZ6JWqt54loZJdvTY8ubLiw6sLKCz0XMi8MveB8wbTrZdfqtNFmRzKWGRgRzAutLQ0iU1W6OYB+wANaiTqn4SWDw7CBYNH6wxh84YekEEJY2IdZmdgFmg0NHGNvO126SwsTaWJiainH5xqYGEhTUxNLxchLsTQ2trifDH5FO9sp0m+R3lJJiDWLjtbnmcfEKLHLj10zbrxxYwi2XvWA1JZn75TWAj/WGVtJIlTcz9LK6FIsNoneUczxPOBIFtP01OZESGrjGbc03BxQJCVV1MTqQ8p16pyxiK3y4++GPA1b2fL4ndJK4GVjS8TOVUrlk4iGpLtuaWn4JsDrYip6euKuVFLXaLc0gpdF6PUOyErFVdTEvav5GhYg6rY8/sotDS+tReCeRRm9k3WhsvA6Xo6+LyW1N4FvMWeihwgZyBIJIqojH+sKB/5t89UtDW9FxPwOuVNSynhdTNUYc3aUSjI8u0F/bLmUseXT1EbML+3F3ugowKOlPXH3atKRZJTXi+9EzDcX1KdqKWWsVeZ5XkLVvKdeL+WjpiHmjOMZeFaMoosOwKt4GdASZBCBQhIU5828qkpU1NQ0viDEZwiSe01LS3XZrmRB8zK1y8tRG9MfaRB4xqIu4H/UQ9ORO4ocrMfWnGcp0LvlI59pEDANRD3U3h7Zo9QTFnWhFvPNCqWSdI88GG5ra7gUpsnehCgOBPxG5J4GAdAgkKxB4MchCL5gPvqDAbUYUB0YMRnQZyumF3f3Ub9lGp2I2aHy9sgZZV0q64rRy/tfGc/E4gY1qioR4xuL3XA7o/ehObjdKx/1U2LdavO2cq6378sHztSptc/R5oRbWRne2PmUi+3b1J6czTYP1DsNaBh9xMJ4ZXrjIi2vjm1ymEPeGqt4PtQdOaLUffO0VVoXgbzVxnAr/yMlM8TPfKKxtfWHVnxBv2s0GamaBeDOuPaH1GSFrxXkYoQLB/ga6M8GsnnqwCoIpYOrmCrUwPm+Yb8DlIo289Idv95JuyaQSp9xpc2vNPIWLvT8gf5Gnr14YGnnC+GL8d7pM/rkH0yfERN+OLdP+oz8gzHpM4BHJypGQLroUjCPiFZxCqByvFg/mLg5NXb0VEF8nbRF3o9Sz+4F6qtrmP3IitrJIi2WHU5X5AFeUm75eHkiHWXp2Ho3xezvAwPU5paYzNwMk65xdMYBdjtNUGajLcD1D9CqU2NtCrNreuqvnit1+cLj4pFBY/id8Slh3Gv9l9VSRJI2qD9tAGcPrjC0lzkQ7kuMSyglbAYOr93WALXjaqGyisW1hNZ6wuLEZKyay34bfAaRdcB3cTUv+lDN/bssaq+eIWPuh42p81DBCthCtRGN/oKgyMHeXs38Iz4Yz6TyTCGTCOQc6DF3ZXkSpYVey8DSA7QgMMq12EZAcjYzdYxiI7yJ5gKiLOCmathXzABIQJYwk9AKVYI5wQE+8xWCuIpGo0oUoywIl0rrvfMlmuRX8VZrjbY+PC32uTDwkiR4uo+fAHRBNWBTXEKuBz0I6SaH9q33UMIa2EXNJVqFgrjUMu/IZt5RHwdPj3lGUIgEsov4hbeoIonSxWilF+o5WhAQP6v+MZaC6KKdYjvnh4wnjM/KiqJk03mcNd4hJ0UKoW2WVeZp0fepV2gT0NDXft4ACmTx6Sy/YFlkgjJ0aR9elqelPiggcYB0nHx0Zt/o/OMTc2YBt7J/+OZ5FnOKdU28yH4NAiVbw7cJ7E8YktL4/GV1yFvzFGL+s0BnqCtY/7vC/3ewPtQZ7Hp6WYgJC7xdk1uCjgV0hnYCI7Y/eOBGR3Mqq7BsOju2CYS5tFRrYYElmUonR9DBejAM4lMzXGXFRglAAsSmojJXBo0RSqCB9SCdRGbSUqyFBZYUqptkGqespAwo2gvgBwrcFVhJsQPlBE1h9QEu+7OljuISTOEebsZPBJA7Mrss3Mb8NIi7ttBjzEUXOj/n98nKQbZVKScYDRFr0LipWI+1j7RZr8nIQNuM/Z19L1xROVSsZxiN2Sfzdqy6YsvlKX+QDt/RegXj0cOzoQPTNPxV7iq23jL3Jqs2e1fdCFPQjF5DrQNpniW7yOmLq8Q06awJSTNaJ5Vm1HQOX5aXVDsodjijXwKwiWrJsCRgGditZrSZNFkCy2Fqi1FhpLRmmLaZLm81bTO9VZgspjGxp3ecThhstBjHxJ7afmqIzok6J2qGo1quHuUisfkp5veJzz2cw1WNk3x+XJofg3qhZowHOSDSeyOdZg6aKR78sGPQxqFvorqEY/8bGZtbxvJLPXIOZfPnuds4OaqWn6wq8VxNd/nt5y17jWNiN7BbcKMNmlR4bOgMw2Q0W5OsHnZSPjhgKKVPLAB+nJev6HYxX474KEX2Bt4HF6CSoQb+xU7fgSxzeCG+BMojleZuboUXWsAifCEuLG8gL+MSgc2a/Kx/uiWoXL5mDMu0s7/z/jkXTvhEk/wEEf4bcCGGwmQJ5ahc1yd6IsLrl6YSZgduX0AyDryZiheKtPx8H3ROWfJLcuVLbeBG13sg6ujNMODFIccQglZSDOZAMRX4PEIpKNIOgJYkIz1TBHHVWU3SPuRadg9QV1XJ6EOWV09ANM7McLo8F/A67GYfJ1PCWUwNR+cmH3V9gL/S0ByTnpNm1NSPTN/LbqYJyiy0Obi+/mplSoxZZnJMSbk58khdnt820fDAkfyO2BQ+dLHPtGoKIm6Bemn92GtwBfwuZn9aDyk2vhhaDBxZsbSO0FZNtJVPrgaba8DFCbFYlTvrDXc3kt1GO4OvetFDMfbpNKkEI9tGXA3r0+uhpMlgM9VKNPgJwgOHUDyLQ454O3l6lSCZRAbJGHSZt7Q0kdJEr2Y4owI0eGCMfbKFEIWtZ2oYxTrqetgVacIvKiH5iJgAxBBaSJOJvTGIUKtH5KWNBoUoWl4Qlp1d740hmqRbcVZLpaY2LDX6qDBwgTh4GOwrAB1QFRiH7oDAcjMdR+9eddfRneYp2qnaxRrlqnl2VlL4gKZln9kZ60LTjDSLMDV1Ub1E9bXpusYQjSE6fTpVWQYZCuQ3ZeqjNbwyfIu8C+x/xJtIgf+t1PWiTPVXWTtv9060y19RkGCemzmyMzEtKM75s50WsbGmNtg5xXsGJbksGVVjlt/paBAyNn5WwozoEb6V5yaUb+dVfKHzKKvxZT0mnmM7LVMMUkzzLQpu2XjXBFYsafd6nD3ve8VdxyLnIueMT43SJ6cMlyKnoje37IpsKq2KF/Y6HLYfcB5k9b4TN4x0s1v7WjN1DX17FVrGOqn1nXVJ2jpqbjqKLqWKaKYRWVhblSnzFDmzsrYwUlPXWWkptolaqmp62ikNHfUpWkZy57faiFoOL9GOKKyhpiROz1xIytT3kXUyhSQz/bjiOqoLIrX1RM8wfW9vgzC3QAAQAIWgqijQ31SjF/lVXRQ/ADzZ77QN4PnCY/f/GPz+qNWjlkOhamYXlYsWK6f/e4Flax3/Y/D3slZPDuZRFD/QyMsXEz+wmS4GaCeeWKZThzHWOLCTUYykj3SyWC3sVW40UaRSKD70OE+TsSVXZrsFq4X0nauAi+DkqkBXMHUViebBROVtVxXa6XZVxYFMF10CMVcJAtpog+oeBVk00UgbQ+iihOQ2WmhlcNZykF7C8WluNUAD/bTRy2DB5IEVV+1Epod+WvAhh2QyyaaHQXy/gDq6GaCABLzFaTH2K968h24k/JHxxZdAvEnFnwha1bHhFhva0vq1lPHDj1DIXdTRQRND3UwTw2mSYEFYWTBBBONLgOjaxpFIPDlEuEjz+7cwhE7q6OcmSy2UWn6lOjcacHdD+OJnEjbMv9VdIo5Geqh3cyq3tOKwSZFM3W2UQ9+5Cx/c8UJiGG0vAyWXcCB9ONSokEhOEh2sy6aOLvGtXCmghyH00wDhivzPQumk/p9UDDc+7rjwf8p+5RwEfYQv/7Tfffv/0t+cId9WJuD5EHvZSjG9tFDJLo4LB3HGEUd2U8owuqnlCCeoBg==)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Intro Noto TC;src:url(data:font/woff2;base64,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)format("woff2");font-style:normal;font-weight:500;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--ink:#0a0a0a;--muted:#737373;--faint:#a3a3a3;--line:#e9e9e9;--strong-line:#d4d4d4;--surface:#fafafa;--surface-2:#f5f5f5;--map-project-fill:#52525b;--map-project-stroke:#18181b;--invert:#fff;--backdrop-overlay:#ffffffe0;--backdrop-texture:#0a0a0a0d;--backdrop-vignette:#ffffff29;--shadow:0 8px 22px -14px #00000040;--shadow-hover:0 18px 36px -20px #0006;--ease:cubic-bezier(.16, 1, .3, 1)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0c0f;--ink:#f4f4f5;--muted:#a0a0a8;--faint:#8a8a92;--line:#2a2a30;--strong-line:#3a3a42;--surface:#18181b;--surface-2:#1e1e22;--map-project-fill:#d4d4d8;--map-project-stroke:#fafafa;--invert:#0c0c0f;--backdrop-overlay:#0c0c0fa8;--backdrop-texture:#ffffff0d;--backdrop-vignette:#0000004d;--shadow:0 8px 22px -14px #0000;--shadow-hover:0 18px 36px -20px #00000026}:root[data-theme=system]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0c0f;--ink:#f4f4f5;--muted:#a0a0a8;--faint:#8a8a92;--line:#2a2a30;--strong-line:#3a3a42;--surface:#18181b;--surface-2:#1e1e22;--map-project-fill:#d4d4d8;--map-project-stroke:#fafafa;--invert:#0c0c0f;--backdrop-overlay:#0c0c0fa8;--backdrop-texture:#ffffff0d;--backdrop-vignette:#0000004d;--shadow:0 8px 22px -14px #0000;--shadow-hover:0 18px 36px -20px #00000026}}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html{background-color:var(--bg);scroll-behavior:smooth}::view-transition{background:var(--bg)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2147483646}body{background-color:var(--bg);background-image:radial-gradient(circle, var(--backdrop-texture) .65px, transparent .75px), radial-gradient(circle at 48% 30%, transparent 18%, var(--backdrop-vignette) 100%), linear-gradient(var(--backdrop-overlay), var(--backdrop-overlay)), url(/assets/grey-mountains-CJ3UnGMI.webp);color:var(--ink);background-position:0 0,50%,50%,50%;background-repeat:repeat,no-repeat,no-repeat,no-repeat;background-size:3px 3px,cover,cover,cover;background-attachment:fixed;margin:0;font-family:Geist,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5;transition:background-color .5s,color .5s}body,button,input{color:var(--ink)}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;border:0}::selection{background:var(--ink);color:var(--bg)}.site-shell{min-height:100vh}.intro-preloader{color:var(--ink);pointer-events:auto;z-index:100;font-family:Geist,sans-serif;position:fixed;inset:0;overflow:hidden}.intro-curtain{fill:var(--bg);width:100%;height:100%;position:absolute;inset:0}.intro-greeting{letter-spacing:-.045em;white-space:nowrap;width:max-content;font-family:inherit;font-size:clamp(36px,5.4vw,68px);font-weight:500;line-height:1.2;animation:.33s linear both intro-greeting-blink;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.intro-greeting-first{animation:.16s ease-out both intro-first-greeting}.intro-greeting-final{animation:intro-final-greeting var(--final-greeting-duration) linear both}.intro-greeting[lang=ja]{letter-spacing:0;font-family:Intro Noto JP,Yu Gothic,Meiryo,sans-serif}.intro-greeting[lang=zh-Hans]{letter-spacing:0;font-family:Intro Noto SC,Microsoft YaHei,sans-serif}.intro-greeting[lang=zh-Hant]{letter-spacing:0;font-family:Intro Noto TC,Microsoft JhengHei,sans-serif}.intro-greeting-dot{background:currentColor;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)}@keyframes intro-greeting-blink{0%,to{opacity:0}12%,86%{opacity:1}}@keyframes intro-first-greeting{0%{opacity:0}to{opacity:1}}@keyframes intro-final-greeting{0%,to{opacity:0}8%,76%{opacity:1}}@media (prefers-reduced-motion:reduce){.intro-preloader{display:none}}.sidebar{background:var(--bg);border-right:1px solid var(--line);z-index:10;flex-direction:column;width:224px;height:100vh;padding:28px 22px 22px;display:flex;position:fixed}.brand{align-items:center;gap:10px;display:flex}.brand-wordmark{letter-spacing:-.05em;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:16px;font-weight:600;line-height:1}.sidebar-rule{border-top:1px solid var(--line);margin:30px -22px 22px}.side-nav{flex-direction:column;gap:2px;display:flex}.nav-caption,.eyebrow,.section-label,.project-index,.console-head,.console-row>span,.console-foot,.project-card-meta,.experience-period,.skill-group>span,footer,.visual-kicker,.thumb-top,.thumb-corner{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.nav-caption{margin-bottom:10px;font-size:9px}.side-nav a{color:var(--muted);align-items:center;gap:10px;padding:8px 0;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;transition:color .2s,transform .2s;display:flex}.side-nav a span{color:var(--faint);width:17px;font-size:9px}.side-nav a svg{opacity:0;margin-left:auto;transition:opacity .2s,transform .2s}.side-nav a:hover{color:var(--ink);transform:translate(2px)}.side-nav a:hover svg{opacity:1;transform:translate(2px)}.sidebar-bottom{flex-direction:column;gap:18px;margin-top:auto;display:flex}.sidebar-meta{flex-direction:column;gap:7px;display:flex}.local-time{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.local-time>span{color:var(--faint);margin:0 4px}.portfolio-views{color:var(--faint);letter-spacing:.01em;white-space:nowrap;margin:0;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;line-height:1.4}.portfolio-views strong{color:var(--ink);font-size:11px;font-weight:650}.sidebar-footer{border-top:1px solid var(--line);padding-top:16px}.sidebar-footer p{color:var(--muted);margin:20px 0 8px;font-size:11px;line-height:1.6}.sidebar-footer a{white-space:nowrap;align-items:center;gap:7px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:inline-flex}.sidebar-footer a:hover{color:var(--muted)}.status-dot{background:var(--ink);border-radius:50%;width:6px;height:6px;animation:1.8s ease-in-out infinite pulse;display:inline-block}.theme-toggle{border:1px solid var(--line);border-radius:8px;gap:2px;width:max-content;margin-top:18px;padding:3px;display:flex}.sidebar-bottom .theme-toggle{margin-top:0}.theme-toggle button{color:var(--faint);background:0 0;border-radius:5px;justify-content:center;align-items:center;width:28px;height:24px;display:flex}.theme-toggle button.active,.theme-toggle button:hover{background:var(--ink);color:var(--bg)}.preference-controls{align-items:center;gap:8px;display:flex}.sound-control{position:relative}.sound-toggle{border:1px solid var(--line);color:var(--faint);background:0 0;border-radius:8px;justify-content:center;align-items:center;width:34px;height:32px;padding:0;display:flex}.sound-toggle:hover{border-color:var(--ink);color:var(--ink)}.sound-popover{background:var(--bg);border:1px solid var(--line);opacity:0;pointer-events:none;visibility:hidden;z-index:12;width:156px;padding:12px;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;bottom:100%;right:0;transform:translateY(4px);box-shadow:0 10px 24px #0000001f}.sound-control:hover .sound-popover,.sound-control:focus-within .sound-popover{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.sound-popover label{color:var(--faint);letter-spacing:.08em;flex-wrap:wrap;justify-content:space-between;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;display:flex}.sound-popover output{color:var(--ink)}.sound-popover input{accent-color:var(--ink);cursor:pointer;width:100%;margin:12px 0 0}.mobile-header,.mobile-menu{display:none}main{margin-left:224px;overflow-x:clip}.section-pad{padding:112px clamp(26px,7vw,110px);position:relative}.hero{min-height:700px;padding-top:150px}.hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(280px,.75fr);align-items:center;gap:clamp(44px,8vw,140px);max-width:1100px;margin:0 auto;display:grid}.eyebrow{align-items:center;gap:8px;margin:0 0 27px;font-size:10px;display:flex}h1,h3,p{margin-top:0}h1{letter-spacing:-.055em;max-width:700px;margin-bottom:28px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(48px,6.2vw,84px);font-weight:500;line-height:.96}h1 em{color:var(--muted);font-style:normal}.hero-intro{color:var(--muted);max-width:480px;margin-bottom:30px;font-size:16px;line-height:1.65}.hero-actions{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.button{text-transform:uppercase;transition:transform .35s var(--ease), background .2s ease;border-radius:7px;align-items:center;gap:10px;padding:12px 15px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.button-dark{background:var(--ink);color:var(--bg)}.button-dark:hover{transform:translateY(-2px)}.text-link,.card-link,.contact-secondary{border-bottom:1px solid var(--ink);align-items:center}@supports (color:color-mix(in lab, red, red)){.text-link,.card-link,.contact-secondary{border-bottom:1px solid color-mix(in srgb, var(--ink) 25%, transparent)}}.text-link,.card-link,.contact-secondary{gap:7px;padding-bottom:2px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;transition:border-color .2s,gap .2s;display:inline-flex}.text-link:hover,.card-link:hover,.contact-secondary:hover{border-color:var(--ink);gap:10px}.hero-console{border:1px solid var(--line);box-shadow:var(--shadow);background:var(--surface);border-radius:12px;overflow:hidden}.console-head,.console-foot{justify-content:space-between;align-items:center;padding:13px 16px;font-size:9px;display:flex}.console-head{border-bottom:1px solid var(--line)}.console-live{color:var(--ink);align-items:center;gap:6px;display:flex}.console-live .status-dot{width:5px;height:5px}.console-body{padding:17px 16px 14px}.console-row{justify-content:space-between;align-items:baseline;padding:10px 0;display:flex}.console-row>span{font-size:9px}.console-row strong{font-size:12px;font-weight:500}.console-foot{border-top:1px solid var(--line);justify-content:flex-start;gap:8px}.console-foot span{border:1px solid var(--strong-line);border-radius:999px;padding:3px 7px}.scroll-cue{color:var(--faint);letter-spacing:.1em;align-items:center;gap:10px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;display:flex;position:absolute;bottom:32px;left:clamp(26px,7vw,110px)}.scroll-cue svg{animation:1.6s ease-in-out infinite float}.halftone{background-image:radial-gradient(circle, var(--ink) 1px, transparent 1.1px)}@supports (color:color-mix(in lab, red, red)){.halftone{background-image:radial-gradient(circle, color-mix(in srgb, var(--ink) 75%, transparent) 1px, transparent 1.1px)}}.halftone{opacity:.13;pointer-events:none;background-size:9px 9px;position:absolute;-webkit-mask-image:radial-gradient(#000 15%,#0000 70%);mask-image:radial-gradient(#000 15%,#0000 70%)}.halftone-hero{width:400px;height:340px;top:28px;right:-80px;transform:rotate(-8deg)}.section-intro{margin-bottom:55px}.section-label{align-items:center;gap:9px;margin-bottom:25px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:13px;display:flex}.section-label span{color:var(--ink)}.section-label i{background:var(--line);width:24px;height:1px;display:inline-block}.about-layout{grid-template-columns:1fr .45fr;gap:70px;max-width:850px;margin-left:clamp(0px,9vw,150px);display:grid}.about-lead{max-width:580px;font-size:18px;line-height:1.65}.about-lead p+p{color:var(--muted);margin-top:22px;font-size:15px}.about-aside{border-left:1px solid var(--line);padding-left:24px}.mini-stat{border-bottom:1px solid var(--line);padding:0 0 19px}.mini-stat+.mini-stat{padding-top:19px}.mini-stat strong{font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:42px;font-weight:400;line-height:1;display:block}.mini-stat span{color:var(--muted);text-transform:uppercase;margin-top:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;line-height:1.5;display:block}.principles{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-top:90px;display:grid}.principle{border-right:1px solid var(--line);gap:18px;padding:22px 24px 0 0;display:flex}.principle+.principle{padding-left:24px}.principle:last-child{border-right:0}.principle>span{color:var(--faint);font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.principle h3{margin-bottom:10px;font-size:14px;font-weight:550}.principle p,.heading-note,.section-copy{color:var(--muted);max-width:240px;margin-bottom:0;font-size:13px;line-height:1.65}.section-heading-row{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.heading-note{max-width:220px;margin-bottom:4px}.project-feature{border:1px solid var(--line);box-shadow:var(--shadow);transition:box-shadow .35s var(--ease), transform .42s var(--ease);border-radius:16px;grid-template-columns:1.15fr .85fr;margin-bottom:68px;display:grid;overflow:hidden}.project-feature:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.project-feature-visual{background:var(--surface-2);min-height:390px;padding:clamp(22px,4vw,60px)}.visual-window{background:var(--bg);border:1px solid var(--strong-line);height:100%;min-height:280px;position:relative;overflow:hidden;box-shadow:0 16px 30px -20px #00000073}.visual-bar{border-bottom:1px solid var(--line);align-items:center;gap:5px;height:30px;padding:0 10px;display:flex}.visual-bar>span{background:var(--strong-line);border-radius:50%;width:5px;height:5px}.visual-bar b{color:var(--faint);letter-spacing:.08em;margin-left:auto;font-family:Geist Mono,ui-monospace,monospace;font-size:7px;font-weight:400}.visual-content{flex-direction:column;padding:26px;display:flex}.visual-kicker{font-size:8px}.visual-content strong{letter-spacing:-.05em;margin:34px 0 25px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(24px,3vw,40px);font-weight:400;line-height:.95}.visual-lines{flex-direction:column;gap:6px;margin-bottom:25px;display:flex}.visual-lines i{background:var(--line);width:72%;height:4px;display:block}.visual-lines i:nth-child(2){width:48%}.visual-lines i:nth-child(3){width:60%}.visual-button{background:var(--ink);color:var(--bg);align-items:center;gap:6px;width:max-content;padding:9px 10px;font-family:Geist Mono,ui-monospace,monospace;font-size:8px;display:flex}.project-feature-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(24px,4vw,55px);display:flex}.project-index{margin-bottom:22px;font-size:9px}.project-feature-copy h3{letter-spacing:-.05em;margin-bottom:20px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(27px,3vw,40px);font-weight:400;line-height:1}.project-feature-copy p{color:var(--muted);max-width:360px;margin-bottom:25px;font-size:14px;line-height:1.65}.feature-tags{flex-wrap:wrap;gap:7px;margin-bottom:25px;display:flex}.feature-tags span,.project-card-meta span{border:1px solid var(--strong-line);color:var(--muted);text-transform:uppercase;border-radius:999px;padding:3px 8px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px}.project-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:14px;display:flex}.filter-list{flex-wrap:wrap;gap:4px;display:flex}.filter-list button{color:var(--muted);background:0 0;border-radius:5px;padding:6px 8px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.filter-list button:hover,.filter-list button.active{background:var(--ink);color:var(--bg)}.search-field{border-bottom:1px solid var(--strong-line);align-items:center;gap:6px;padding-bottom:4px;display:flex}.search-field span{color:var(--faint);font-family:Geist Mono,ui-monospace,monospace}.search-field input{background:0 0;border:0;outline:0;width:100px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.search-field input::placeholder{color:var(--faint)}.project-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.project-card{border:1px solid var(--line);box-shadow:var(--shadow);min-width:0;transition:box-shadow .35s var(--ease), transform .42s var(--ease);animation-delay:var(--delay);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.project-thumb{aspect-ratio:1.65;background:var(--surface-2);border-bottom:1px solid var(--line);padding:14px;position:relative;overflow:hidden}.project-thumb>img{-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;height:100%;transition:filter .45s ease, transform .7s var(--ease);width:100%;position:absolute;inset:0}.project-card:hover .project-thumb>img{filter:saturate(.92)contrast(1.03);transform:scale(1.025)}.thumb-shade{background:linear-gradient(180deg, var(--bg), transparent 33%, transparent 65%, var(--ink))}@supports (color:color-mix(in lab, red, red)){.thumb-shade{background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 72%, transparent), transparent 33%, transparent 65%, color-mix(in srgb, var(--ink) 58%, transparent))}}.thumb-shade{pointer-events:none;position:absolute;inset:0}.thumb-top,.thumb-corner{color:var(--ink);z-index:1;position:relative}.thumb-corner{color:var(--bg)}.thumb-word{letter-spacing:-.06em;text-overflow:ellipsis;white-space:nowrap;max-width:85%;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(20px,2.7vw,30px);position:absolute;bottom:24px;left:15px;overflow:hidden}.thumb-top{justify-content:space-between;font-size:8px;display:flex}.thumb-line{background:var(--ink);opacity:.65;width:36px;height:2px;position:absolute;bottom:14px;left:15px}.thumb-corner{align-items:center;gap:4px;font-size:8px;display:flex;position:absolute;bottom:12px;right:14px}.thumb-shopify{background:linear-gradient(135deg, var(--surface-2), var(--bg))}.thumb-wordpress{background:repeating-linear-gradient(135deg, var(--surface-2) 0, var(--surface-2) 1px, var(--bg) 1px, var(--bg) 6px)}.thumb-react-native{background:radial-gradient(circle at 72% 28%, var(--ink) 0 2px, transparent 3px), var(--surface);background-size:18px 18px}.thumb-freelance{background:var(--surface-2)}.project-card-body{flex-direction:column;flex:1;padding:16px;display:flex}.project-card-meta{gap:5px;margin-bottom:14px;display:flex}.project-card-meta span{border:0;padding:0;font-size:8px}.project-card-meta span+span:before{color:var(--faint);content:"/";margin-right:5px}.project-card h3{margin-bottom:9px;font-size:15px;font-weight:550;line-height:1.2}.project-card p{color:var(--muted);margin-bottom:22px;font-size:12px;line-height:1.55}.card-link{color:var(--muted);border:0;width:max-content;margin-top:auto;font-size:10px}.empty-state{border:1px dashed var(--strong-line);color:var(--muted);text-align:center;padding:34px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.experience-list{border-top:1px solid var(--line)}.experience-item{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr 24px;gap:30px;padding:24px 0;transition:border-color .2s;display:grid}.experience-item:hover{border-color:var(--strong-line)}.experience-period,.experience-main{transition:transform .35s var(--ease)}.experience-item:hover .experience-period,.experience-item:hover .experience-main{transform:translate(8px)}.experience-period{padding-top:4px;font-size:9px}.experience-main h3{margin-bottom:3px;font-size:17px;font-weight:550}.experience-company{color:var(--muted);text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.experience-main>p:last-child{color:var(--muted);max-width:620px;margin:17px 0 0;font-size:13px;line-height:1.6}.experience-arrow{color:var(--faint);margin-top:4px;transition:color .2s,transform .2s}.experience-item:hover .experience-arrow{color:var(--ink);transform:translate(2px,-2px)}.section-history-link{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;transition:color .2s,gap .2s;display:inline-flex}.section-history-link:hover,.section-history-link:focus-visible{color:var(--ink);gap:10px}.skills-layout{grid-template-columns:.7fr 1fr;gap:80px;display:grid}.section-copy{margin-top:28px}.skill-group{border-bottom:1px solid var(--line);grid-template-columns:130px 1fr;gap:24px;padding:19px 0;display:grid}.skill-group>span{padding-top:3px;font-size:9px}.skill-group>div{flex-wrap:wrap;gap:7px;display:flex}.skill-group>div span{border:1px solid var(--line);border-radius:6px;align-items:center;gap:5px;padding:7px 9px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.skill-group svg{color:var(--faint)}.contact-section{background:var(--ink);color:var(--bg);padding-top:125px;padding-bottom:26px;overflow:hidden}.contact-section .section-label,.contact-section .section-label span{color:var(--bg)}.contact-section .section-label i{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-section .section-label i{background:color-mix(in srgb, var(--bg) 25%, transparent)}}.contact-layout{z-index:1;grid-template-columns:1fr .8fr;gap:90px;max-width:1000px;margin:0 auto 130px;display:grid;position:relative}.contact-intro{color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-intro{color:color-mix(in srgb, var(--bg) 65%, transparent)}}.contact-intro{max-width:370px;margin-top:24px;font-size:15px;line-height:1.65}.contact-actions{flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.contact-email{border-bottom:1px solid var(--bg);align-items:center}@supports (color:color-mix(in lab, red, red)){.contact-email{border-bottom:1px solid color-mix(in srgb, var(--bg) 30%, transparent)}}.contact-email{gap:12px;padding-bottom:10px;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(14px,1.8vw,20px);transition:border-color .2s;display:flex}.contact-email svg:last-child{margin-left:10px}.contact-email:hover{border-color:var(--bg)}.copy-button{color:var(--bg);background:0 0;align-items:center}@supports (color:color-mix(in lab, red, red)){.copy-button{color:color-mix(in srgb, var(--bg) 65%, transparent)}}.copy-button{gap:8px;margin-top:14px;padding:0;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:flex}.copy-button:hover{color:var(--bg)}.copy-icon{width:13px;height:13px;display:inline-block;position:relative}.copy-icon span{border:1px solid;width:8px;height:8px;position:absolute}.copy-icon span:first-child{top:3px;left:1px}.copy-icon span:last-child{background:var(--ink);top:0;left:4px}.contact-secondary{border-color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-secondary{border-color:color-mix(in srgb, var(--bg) 30%, transparent)}}.contact-secondary{color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-secondary{color:color-mix(in srgb, var(--bg) 70%, transparent)}}.contact-secondary:hover{border-color:var(--bg);color:var(--bg)}.contact-meta{border-top:1px solid var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-meta{border-top:1px solid color-mix(in srgb, var(--bg) 18%, transparent)}}.contact-meta{flex-wrap:wrap;gap:14px 22px;margin-top:42px;padding-top:16px;display:flex}.contact-meta span{color:var(--bg);align-items:center}@supports (color:color-mix(in lab, red, red)){.contact-meta span{color:color-mix(in srgb, var(--bg) 55%, transparent)}}.contact-meta span{gap:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;display:flex}.contact-meta svg{color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-meta svg{color:color-mix(in srgb, var(--bg) 75%, transparent)}}.halftone-contact{opacity:.17;width:500px;height:420px;bottom:-80px;right:-80px}.contact-section footer{border-top:1px solid var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-section footer{border-top:1px solid color-mix(in srgb, var(--bg) 20%, transparent)}}.contact-section footer{color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.contact-section footer{color:color-mix(in srgb, var(--bg) 45%, transparent)}}.contact-section footer{z-index:1;justify-content:space-between;padding-top:15px;font-size:8px;display:flex;position:relative}.reveal{animation:reveal-up .7s var(--ease) both;animation-delay:var(--delay,70ms)}.reveal-1{animation-delay:50ms}.reveal-2{animation-delay:.12s}.reveal-3{animation-delay:.19s}@keyframes reveal-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1023px){.sidebar{display:none}.mobile-header{background:var(--bg);align-items:center}@supports (color:color-mix(in lab, red, red)){.mobile-header{background:color-mix(in srgb, var(--bg) 90%, transparent)}}.mobile-header{border-bottom:1px solid var(--line);z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;width:100%;padding:15px 20px;display:flex;position:fixed;top:0}.icon-button{color:var(--ink);background:0 0;justify-content:center;align-items:center;padding:7px;display:flex}.mobile-menu{background:var(--bg);z-index:30;flex-direction:column;height:100vh;padding:18px 20px 22px;display:flex;position:fixed;inset:0}.mobile-menu-top,.mobile-menu-bottom{justify-content:space-between;align-items:center;display:flex}.mobile-menu nav{flex-direction:column;margin-top:70px;display:flex}.mobile-menu nav a{border-bottom:1px solid var(--line);justify-content:flex-start;align-items:center;gap:14px;padding:12px 0;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:16px;display:flex}.mobile-menu nav a span{color:var(--faint);font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.mobile-menu nav a svg{margin-left:auto}.mobile-menu-bottom{margin-top:auto}.mobile-menu-bottom .theme-toggle,.mobile-menu .nav-caption{margin:0}.mobile-menu .brand{display:none}main{margin-left:0}.hero{padding-top:150px}}@media (width<=760px){.section-pad{padding:82px 20px}.hero{min-height:780px;padding-top:140px}.hero-grid{display:block}.hero-console{margin-top:62px}.hero-intro{font-size:15px}.scroll-cue{bottom:24px;left:20px}.halftone-hero{top:80px;right:-150px}.about-layout,.skills-layout,.contact-layout{margin-left:0;display:block}.about-aside{border-left:0;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:20px;margin-top:42px;padding-top:20px;padding-left:0;display:grid}.principles{margin-top:55px;display:block}.principle,.principle+.principle{border-bottom:1px solid var(--line);border-right:0;padding:20px 0}.principle:last-child{border-bottom:0}.section-heading-row{align-items:flex-start;display:block}.heading-note{margin-top:24px}.project-feature{display:block}.project-feature-visual{min-height:300px;padding:20px}.project-feature-copy{padding:30px 22px}.project-toolbar{align-items:flex-start;display:block}.filter-list{margin-bottom:14px}.search-field{width:100%}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card p{font-size:11px}.project-thumb{aspect-ratio:1.3}.thumb-word{font-size:19px}.experience-item{grid-template-columns:1fr 20px;gap:8px}.experience-period{grid-column:1/-1;margin-bottom:8px}.experience-main h3{font-size:15px}.skills-layout{display:block}.skill-matrix{margin-top:46px}.skill-group{grid-template-columns:90px 1fr;gap:14px}.contact-section{padding-top:88px}.contact-layout{margin-bottom:90px}.contact-actions{margin-top:55px}.contact-section footer{gap:9px;display:grid}.halftone-contact{right:-190px}}.linked-section-heading{align-items:center;display:flex}.world-archive-page{min-height:100vh;padding-top:72px}.world-archive-back{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:84px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;transition:color .2s,gap .2s;display:inline-flex}.world-archive-back:hover,.world-archive-back:focus-visible{color:var(--ink);gap:11px}.world-archive-header{max-width:1040px;margin:0 auto 72px}.world-archive-header .section-label{margin:0 0 26px}.world-archive-header>p{color:var(--muted);max-width:560px;margin:0;font-size:13px;line-height:1.65}.world-archive-grid{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));max-width:1040px;margin:0 auto;display:grid}.world-country-group{border-bottom:1px solid var(--line);padding:30px 34px 34px 0}.world-country-group:nth-child(2n){border-left:1px solid var(--line);padding-left:34px;padding-right:0}.world-country-group>header{grid-template-columns:24px minmax(0,1fr) auto;align-items:baseline;gap:12px;margin-bottom:22px;display:grid}.world-country-group>header>span,.world-country-group small,.world-country-group li>span{color:var(--faint);letter-spacing:.06em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:9px}.world-country-group h2{letter-spacing:-.035em;margin:0;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:22px;font-weight:500}.world-country-group ol{margin:0;padding:0;list-style:none}.world-country-group li{border-top:1px dotted var(--line);grid-template-columns:24px minmax(0,1fr);align-items:baseline;gap:12px;padding:10px 0;display:grid}.world-country-group li strong{font-size:12px;font-weight:500}.world-country-group li a{justify-content:space-between;align-items:center;gap:8px;min-width:0;transition:color .2s;display:flex}.world-country-group li a svg{color:var(--faint);flex:none;transition:color .2s,transform .2s}.world-country-group li a:hover,.world-country-group li a:focus-visible{color:var(--muted)}.world-country-group li a:hover svg,.world-country-group li a:focus-visible svg{color:var(--ink);transform:translate(2px,-2px)}@media (width<=767px){.world-archive-page{padding-top:112px}.world-archive-back{margin-bottom:56px}.world-archive-header{margin-bottom:52px}.world-archive-header .section-label{margin-bottom:20px}.world-archive-header>p{max-width:320px}.world-archive-grid{display:block}.world-country-group,.world-country-group:nth-child(2n){border-left:0;padding:26px 0 30px}.world-country-group>header{grid-template-columns:22px minmax(0,1fr) auto}.world-country-group h2{font-size:20px}}.career-page{min-height:100vh;padding-top:72px}.career-page-header{max-width:760px;margin:0 auto 82px}.career-page-header .section-label{margin-bottom:26px}.career-page-header>p{color:var(--muted);max-width:680px;margin:0;font-size:15px;line-height:1.7}.career-timeline{max-width:760px;margin:0 auto;padding-bottom:72px;position:relative}.career-timeline:before{background:var(--line);content:"";width:1px;position:absolute;top:24px;bottom:72px;left:23px}.career-company{opacity:0;transition:opacity .55s var(--ease) var(--career-delay), transform .55s var(--ease) var(--career-delay);grid-template-columns:48px minmax(0,1fr);padding-bottom:76px;display:grid;position:relative;transform:translateY(12px)}.career-company.is-visible{opacity:1;transform:translateY(0)}.career-company:last-child{padding-bottom:0}.career-company-badge{background:var(--bg);border:1px solid var(--strong-line);z-index:1;border-radius:10px;justify-content:center;align-items:center;width:48px;height:48px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:flex;position:relative}.career-company-content{min-width:0;padding-left:28px}.career-company-heading{margin-bottom:34px;padding-top:2px}.career-company-heading h2{margin:0 0 4px;font-size:19px;font-weight:600}.career-company-heading>span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:9px}.career-role{border-left:1px solid var(--line);padding-left:24px;position:relative}.career-role-node{background:var(--bg);border:1px solid var(--strong-line);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;left:-4px}.career-role h3{margin:0 0 5px;font-size:16px;font-weight:600}.career-role time{color:var(--faint);letter-spacing:.07em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;display:block}.career-role-copy{margin-top:24px}.career-role-copy p{color:var(--muted);max-width:650px;margin:0 0 14px;font-size:13px;line-height:1.7}.career-skills{flex-wrap:wrap;gap:7px;margin-top:24px;display:flex}.career-skills span,.career-skills button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:4px;padding:6px 8px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;line-height:1.2}.career-skills button{border-style:dashed}.career-skills button:hover,.career-skills button:focus-visible{border-color:var(--ink);color:var(--ink);outline:0}@media (width<=767px){.career-page{padding-top:112px}.career-page-header{margin-bottom:62px}.career-page-header .section-label{margin-bottom:20px}.career-page-header>p{font-size:14px}.career-timeline:before{left:18px}.career-company{grid-template-columns:38px minmax(0,1fr);padding-bottom:58px}.career-company-badge{border-radius:8px;width:38px;height:38px;font-size:9px}.career-company-content{padding-left:16px}.career-company-heading{margin-bottom:28px}.career-company-heading h2{overflow-wrap:anywhere;font-size:17px}.career-role{padding-left:17px}.career-role-copy p{font-size:13px}}@media (prefers-reduced-motion:reduce){.career-company{opacity:1;transition:none;transform:none}}@media (width<=450px){.project-grid{grid-template-columns:1fr}.project-thumb{aspect-ratio:1.8}.hero-actions{flex-direction:column;align-items:flex-start;gap:18px}.console-row strong{font-size:11px}.contact-email{font-size:13px}}.side-nav button{color:var(--muted);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:8px 0;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;transition:color .2s,transform .2s;display:flex}.side-nav button .nav-icon{opacity:.7;flex:0 0 14px;margin-left:0;transition:opacity .2s}.side-nav button .nav-chevron{opacity:0;margin-left:auto;transition:opacity .2s,transform .2s}.side-nav button:hover{color:var(--ink);transform:translate(2px)}.side-nav button:hover .nav-icon{opacity:1}.side-nav button:hover .nav-chevron{opacity:1;transform:translate(2px)}.screen-bar,.screen-layout small,.screen-layout b,.archive-result{color:var(--faint);letter-spacing:.09em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:9px}main:focus{outline:0}.featured-heading{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.featured-heading .section-label{margin:0}.featured-card{animation:featured-enter .32s var(--ease) both;background:var(--bg);border:1px solid var(--strong-line);box-shadow:var(--shadow);border-radius:14px;grid-template-rows:minmax(0,1fr) minmax(0,205px);width:min(440px,100%);height:500px;margin:20px auto 0;display:grid;position:relative;overflow:hidden}.featured-card.position--1{opacity:.34;z-index:2;transform:translate(-125%)rotateY(6deg)rotate(-2deg)scale(.78)}.featured-card.position-0{cursor:default;z-index:3;transform:translate(-50%)translateY(-10px)scale(1)}.featured-card.position-1{opacity:.34;z-index:2;transform:translate(25%)rotateY(-6deg)rotate(2deg)scale(.78)}.featured-card:not(.active){filter:saturate(0);grid-template-rows:minmax(0,1fr) 0fr}.featured-card:hover{opacity:.88}.featured-card.active:hover{opacity:1}.featured-screen{background:var(--surface-2);border-bottom:1px solid var(--line);flex-direction:column;min-height:0;padding:14px 14px 0;transition:border-color .3s;display:flex;position:relative}.featured-card:not(.active) .featured-screen{border-color:#0000}.featured-card:not(.active) .featured-preview img{filter:grayscale()contrast(.85)}.featured-screen:after{background:linear-gradient(180deg, transparent 55%, var(--ink))}@supports (color:color-mix(in lab, red, red)){.featured-screen:after{background:linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--ink) 20%, transparent))}}.featured-screen:after{content:"";pointer-events:none;z-index:2;position:absolute;inset:39px 14px 0}.screen-bar{border-bottom:1px solid var(--strong-line);z-index:1;align-items:center;gap:5px;padding-bottom:11px;display:flex;position:relative}.screen-bar i{background:var(--strong-line);border-radius:50%;width:5px;height:5px}.screen-bar span{margin-left:auto}.featured-preview{flex:1;min-height:0;margin-top:12px;position:relative;overflow:hidden}.featured-preview img{-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;width:100%;height:100%;position:absolute}.featured-preview span{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){.featured-preview span{background:color-mix(in srgb, var(--bg) 88%, transparent)}}.featured-preview span{border:1px solid var(--ink)}@supports (color:color-mix(in lab, red, red)){.featured-preview span{border:1px solid color-mix(in srgb, var(--ink) 12%, transparent)}}.featured-preview span{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;z-index:3;padding:5px 7px;font-family:Geist Mono,ui-monospace,monospace;font-size:8px;position:absolute;bottom:12px;left:12px}.screen-layout{z-index:1;flex-direction:column;flex:1;justify-content:center;min-height:190px;display:flex;position:relative}.screen-layout strong{letter-spacing:-.055em;max-width:80%;margin:14px 0 20px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(28px,3vw,42px);font-weight:400;line-height:.95}.screen-layout>div{flex-direction:column;gap:5px;display:flex}.screen-layout>div i{background:var(--strong-line);width:62%;height:3px}.screen-layout>div i:nth-child(2){width:43%}.screen-layout>div i:nth-child(3){width:53%}.screen-layout b{border:1px solid var(--strong-line);align-self:flex-end;padding:6px 8px;font-weight:400;position:absolute;bottom:0;right:0}.featured-card-copy{background:var(--bg);opacity:1;min-height:0;transition:opacity .25s ease, padding .55s var(--ease);visibility:visible;z-index:2;padding:20px;position:relative;overflow:hidden}.featured-card:not(.active) .featured-card-copy{opacity:0;visibility:hidden;padding-top:0;padding-bottom:0}.featured-card-copy>div{gap:10px;display:flex}.featured-card-copy>div span{color:var(--faint);text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:8px}.featured-card-copy>div span+span:before{content:"/";margin-right:10px}.featured-card-copy h3{margin:14px 0 8px;font-size:18px;font-weight:550}.featured-card-copy p{color:var(--muted);margin-bottom:18px;font-size:12px;line-height:1.55}.featured-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:440px;margin:20px auto 0;display:grid}.featured-controls button{border-top:1px solid var(--line);color:var(--faint);text-align:left;background:0 0;flex-direction:column;align-items:flex-start;gap:5px;padding:9px 8px;font-family:Geist Mono,ui-monospace,monospace;transition:border-color .2s,color .2s;display:flex}.featured-controls button span:first-child{font-size:9px}.featured-controls button span:last-child{color:var(--muted);font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-size:12px}.featured-controls button.active span:last-child{color:var(--ink)}@keyframes featured-enter{0%{opacity:.65;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.archive-page{min-height:100vh}.archive-hero{min-height:630px;padding-top:72px}.archive-back{color:var(--muted);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:90px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;display:inline-flex}.archive-back:hover{color:var(--ink)}.archive-hero .section-label{margin-bottom:25px}.archive-title{justify-content:space-between;align-items:end;display:flex}.archive-title h1{margin:0}.archive-title p{color:var(--muted);max-width:290px;margin:0 0 8px;font-size:13px;line-height:1.65}.archive-count{align-items:flex-end;gap:13px;display:flex;position:absolute;bottom:45px;right:clamp(26px,7vw,110px)}.archive-count strong{font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:48px;font-weight:400;line-height:.8}.archive-count span{color:var(--faint);font-family:Geist Mono,ui-monospace,monospace;font-size:8px;line-height:1.5}.archive-projects{padding-top:54px}.archive-result{margin:-8px 0 25px}@media (width<=1023px){.mobile-menu nav{margin-top:20px}.mobile-menu-bottom{flex-direction:row;flex-shrink:0;align-items:center;gap:12px;margin-top:auto;padding-top:24px}.mobile-menu nav button,.mobile-menu nav a{border-bottom:1px solid var(--line);text-align:left;background:0 0;justify-content:flex-start;align-items:center;gap:14px;padding:12px 0;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:16px;display:flex}.mobile-menu nav button span{color:var(--faint);font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.mobile-menu nav button svg,.mobile-menu nav a svg{color:var(--faint);flex:none;margin-left:0}.mobile-menu{height:100dvh;overflow-y:auto}}@media (width<=360px){.mobile-menu-bottom{gap:8px}.mobile-menu-bottom .portfolio-views{font-size:8px}.mobile-menu-bottom .preference-controls{gap:6px}.mobile-menu-bottom .theme-toggle button{width:24px}}@media (width<=1023px) and (height<=740px){.mobile-menu{padding:14px 16px}.mobile-menu-top{flex-shrink:0}.mobile-menu nav{flex:auto;min-height:0;margin-top:10px;overflow-y:auto}.mobile-menu nav button,.mobile-menu nav a{gap:10px;padding:10px 0}.mobile-menu-bottom{padding-top:12px}}@media (width<=1023px) and (height<=600px){.mobile-menu nav{margin-top:6px}.mobile-menu nav button,.mobile-menu nav a{padding:8px 0}}@media (width<=760px){.featured-section{min-height:auto}.featured-heading{align-items:flex-start;display:block}.featured-heading .text-link{margin-top:24px}.featured-stack{perspective:none;gap:14px;height:auto;margin-top:42px;display:grid}.featured-card,.featured-card.position--2,.featured-card.position--1,.featured-card.position-0,.featured-card.position-1,.featured-card.position-2{cursor:default;opacity:1;pointer-events:auto;visibility:visible;grid-template-rows:auto auto;width:100%;height:auto;position:relative;top:auto;left:auto;transform:none}.featured-card:not(.active){filter:none}.featured-card:not(.active) .featured-screen{border-color:var(--line)}.featured-card:not(.active) .featured-card-copy{opacity:1;visibility:visible;padding:20px}.featured-card.position--2 .screen-layout,.featured-card.position--1 .screen-layout,.featured-card.position-1 .screen-layout,.featured-card.position-2 .screen-layout{text-align:left;align-items:stretch}.featured-card:not(.active) .screen-layout strong{max-width:80%;font-size:clamp(28px,3vw,42px)}.featured-card.position--2 .screen-layout>div,.featured-card.position--1 .screen-layout>div,.featured-card.position-1 .screen-layout>div,.featured-card.position-2 .screen-layout>div{align-items:stretch;width:auto}.featured-card.position--2 .screen-layout b,.featured-card.position--1 .screen-layout b,.featured-card.position-1 .screen-layout b,.featured-card.position-2 .screen-layout b{left:auto;right:0}.featured-screen{min-height:220px}.featured-card-copy{min-height:0}.featured-controls{display:grid}.archive-hero{min-height:680px;padding-top:120px}.archive-back{margin-bottom:65px}.archive-title{align-items:flex-start;display:block}.archive-title p{margin-top:28px}.archive-count{bottom:36px;left:20px;right:auto}.archive-projects{padding-top:42px}}@media (width>=1024px){.section-pad{padding-left:40px;padding-right:40px}.hero{align-items:center;min-height:min(760px,100vh);padding-top:90px;display:flex}.hero-grid{grid-template-columns:220px minmax(0,1fr);align-items:center;gap:64px;width:100%;max-width:720px;display:grid}.hero-copy{grid-area:1/2}.hero-console{grid-area:1/1}.hero h1{margin-bottom:18px;font-size:clamp(44px,4.4vw,60px)}.hero-intro{max-width:360px;font-size:15px}.hero .eyebrow{margin-bottom:18px}.hero .hero-actions{gap:18px}.halftone-hero{top:12%;right:8%}.featured-section,.site-shell main>section:not(.hero):not(.contact-section){max-width:800px;margin-left:auto;margin-right:auto}.featured-section{min-height:760px}.featured-heading{margin-bottom:28px}.featured-stack{max-width:740px}.featured-card{width:min(440px,100%)}.experience-item{grid-template-columns:120px 1fr 24px}.contact-layout{max-width:720px}}@media (width<=1023px){.section-pad{padding-left:24px;padding-right:24px}.hero-grid{max-width:720px}}@media (width<=760px){.section-pad{padding-left:20px;padding-right:20px}.hero{min-height:auto;padding-bottom:100px}.hero h1{font-size:clamp(44px,12vw,64px)}.hero-console{max-width:420px}.featured-section{min-height:auto}}.contact-section{padding-bottom:125px}.contact-layout{margin-bottom:0}@media (width<=760px){.contact-section{padding-bottom:88px}.contact-layout{margin-bottom:0}}.section-pad{padding-top:48px;padding-bottom:48px}.section-heading-row{margin-bottom:28px}.section-heading-row .section-label,.featured-heading .section-label,.skills-layout>.section-label,.contact-layout .section-label{margin-bottom:0}.hero+.about-section{padding-top:40px}.featured-section{min-height:auto}.featured-stack{height:500px}.featured-card{height:480px;margin-top:0}.featured-controls{margin-top:12px}.experience-item{padding-top:18px;padding-bottom:18px}.experience-main>p:last-child{margin-top:10px}.skills-layout{align-items:start;gap:64px}.skills-layout>.section-label{align-self:start}.skill-group{padding-top:14px;padding-bottom:14px}.contact-layout{gap:60px}.contact-intro{margin-top:16px}.contact-secondary{margin-top:24px}.contact-meta{margin-top:28px}.work-list{border-top:1px solid var(--line)}.work-heading{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.work-heading .section-label{margin:0}.work-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:13px;display:flex}.work-section .filter-list{border:0;gap:20px;margin:0;padding:0}.work-section .filter-list button{color:var(--faint);cursor:pointer;text-transform:uppercase;background:0 0;border:0;padding:0;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;transition:color .2s}.work-section .filter-list button:hover,.work-section .filter-list button.active{color:var(--ink)}.work-section{margin-top:24px}.work-section .work-list{border-top:0}.work-count{color:var(--ink);text-transform:uppercase;white-space:nowrap;flex:none;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;font-weight:700}.work-row{border-bottom:1px solid var(--line);transition:padding .25s var(--ease), border-color .2s ease;justify-content:space-between;align-items:start;gap:24px;padding:18px 0;display:flex}.work-row:hover{border-color:var(--strong-line);padding-left:6px;padding-right:6px}.work-row-copy{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.work-row-title{color:var(--ink);font-size:14px;font-weight:550;line-height:1.35}.work-row-description{color:var(--muted);font-size:13px;line-height:1.5}.work-row.personal-project{padding-block:20px}.work-row.personal-project:hover{padding-inline:0}.work-row.personal-project .work-row-title{text-transform:uppercase}.work-row-stack{color:var(--muted);overflow-wrap:anywhere;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;line-height:1.55}.work-row.personal-project:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.work-row-year{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:7px;padding-top:2px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:inline-flex}.work-row-year svg{color:var(--faint);transition:color .2s,transform .2s}.work-row:hover .work-row-year svg{color:var(--ink);transform:translate(2px,-2px)}.contact-section{color:var(--ink);background:0 0;padding-top:72px;padding-bottom:72px}.contact-content{max-width:720px;margin:0 auto;position:relative}.contact-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:18px;display:flex}.contact-heading .section-label{color:var(--faint);margin:0}.contact-heading .section-label span{color:var(--faint)}.contact-heading .section-label i{background:var(--line)}.contact-heading>span,.contact-email-label{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.contact-title{color:var(--ink);letter-spacing:-.045em;margin:0 0 18px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(28px,4vw,42px);line-height:1.2}.contact-description{color:var(--muted);max-width:610px;margin:0 0 34px;font-size:14px;line-height:1.7}.contact-email-label{margin-bottom:10px;display:block}.contact-section .contact-email{color:var(--ink);overflow-wrap:anywhere;border:0;align-items:center;gap:12px;max-width:100%;padding-bottom:0;font-size:clamp(17px,2.5vw,25px);font-weight:600;display:inline-flex}.contact-email-text{isolation:isolate;min-width:0;display:inline-block;position:relative}.contact-email-text:before,.contact-email-text:after{clip-path:inset(0 100% 0 0);pointer-events:none;transition:clip-path .4s cubic-bezier(.22,1,.36,1);position:absolute;inset:-4px -7px}.contact-email-text:before{background:var(--ink);content:"";z-index:1;border-radius:1px}.contact-email-text:after{color:var(--bg);content:attr(data-text);z-index:2;padding:4px 7px}.contact-email:focus-visible .contact-email-text:before,.contact-email:focus-visible .contact-email-text:after{clip-path:inset(0)}.contact-section .contact-email svg{flex:none;margin:0;transition:transform .4s cubic-bezier(.22,1,.36,1)}.contact-email:focus-visible svg{transform:translate(3px,-3px)}@media (hover:hover){.contact-email:hover .contact-email-text:before,.contact-email:hover .contact-email-text:after{clip-path:inset(0)}.contact-email:hover svg{transform:translate(3px,-3px)}}.hero{min-height:0;padding-top:80px;padding-bottom:52px}.hero-inner{z-index:1;max-width:720px;margin:0 auto;position:relative}.hero-grid{grid-template-columns:288px minmax(0,1fr);align-items:stretch;gap:40px;max-width:none;display:grid}.hero-portrait{width:100%;min-width:0;position:relative;overflow:hidden}.hero-portrait img{width:auto;max-width:none;height:136%;position:absolute;bottom:-18%;left:50%;transform:translate(-50%)}.hero-copy{grid-area:1/2}.hero h1{letter-spacing:-.05em;white-space:nowrap;margin:0 0 24px;font-size:clamp(27px,3.2vw,40px);line-height:1.05}.hero-intro,.hero-detail{color:var(--muted);max-width:none;margin:0;font-size:14px;line-height:1.7}.hero-detail{margin-top:20px}.hero-links{flex-wrap:wrap;gap:10px 18px;margin-top:28px;display:flex}.hero-links a{color:var(--muted);align-items:center;gap:4px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;transition:color .2s;display:inline-flex}.hero-links a:hover{color:var(--ink)}.hero-metrics{--hero-divider:#e1e1e5;border-bottom:1px solid var(--hero-divider);border-top:1px solid var(--hero-divider);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:52px;display:grid}:root[data-theme=dark] .hero-metrics{--hero-divider:#505059}@media (prefers-color-scheme:dark){:root[data-theme=system] .hero-metrics{--hero-divider:#505059}}.hero-metrics a{flex-direction:column;gap:9px;min-width:0;padding:18px 16px;display:flex}.hero-metrics a:first-child{padding-left:0}.hero-metrics a+a{border-left:1px solid var(--hero-divider)}.hero-metrics strong{align-items:flex-start;gap:3px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:18px;font-weight:500;line-height:1.1;display:flex}.hero-metrics strong svg{color:var(--faint);transform-origin:50%;transition:color .2s ease, transform .2s var(--ease);margin-top:-3px}.hero-metrics a:is(:hover,:focus-visible) strong svg{color:var(--ink);transform:translate(2px,-2px)scale(1.3)}.hero-metrics span{color:var(--faint);letter-spacing:.06em;font-family:Geist Mono,ui-monospace,monospace;font-size:9px}.hero-halftone{background-image:radial-gradient(circle, var(--ink) 1px, transparent 1.1px)}@supports (color:color-mix(in lab, red, red)){.hero-halftone{background-image:radial-gradient(circle, color-mix(in srgb, var(--ink) 55%, transparent) 1px, transparent 1.1px)}}.hero-halftone{opacity:.18;pointer-events:none;background-size:9px 9px;width:100%;height:24px;margin-top:8px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000)}@media (width<=760px){.hero{padding-top:100px;padding-bottom:44px}.hero-grid{grid-template-columns:minmax(0,1fr);gap:28px;display:grid}.hero-portrait{aspect-ratio:1;width:100%;max-width:288px;margin-inline:auto}.hero-copy{grid-area:2/1}.hero h1{white-space:normal;font-size:clamp(27px,8vw,38px)}.hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:36px}.hero-metrics a{padding:15px 10px}.hero-metrics a:first-child{padding-left:0}.hero-metrics strong{font-size:15px}.hero-metrics span{font-size:8px}.contact-section{padding-top:60px;padding-bottom:60px}.contact-description{font-size:13px}}.projects-section>.section-label{margin-bottom:0}.featured-section{min-height:0;overflow:visible}.featured-heading{margin-bottom:0}.featured-stack{max-width:1000px;height:255px;margin:28px auto 0;position:relative}.featured-card.deck-card{background:var(--bg);cursor:pointer;height:235px;transition:opacity .3s ease, transform .4s var(--ease), filter .3s ease, visibility 0s;visibility:visible;width:360px;margin:0;animation:none;display:block;position:absolute;top:0;left:50%;overflow:hidden}.featured-card.deck-card .featured-screen{background:var(--surface-2);border:0;height:100%;padding:0}.featured-card.deck-card .screen-bar{display:none}.featured-card.deck-card .featured-preview{height:100%;margin:0;display:block;position:absolute;inset:0}.featured-card.deck-card .featured-preview img{-o-object-fit:cover;object-fit:cover;-o-object-position:top center;object-position:top center;transition:filter .4s}.featured-card.deck-card.deck-center .featured-preview img{filter:none}.featured-card.deck-card:not(.deck-center) .featured-preview img{filter:grayscale()contrast(.85)}.featured-card.deck-card .featured-preview span{top:12px;bottom:auto;left:12px}.featured-card.deck-card .featured-screen:after{background:linear-gradient(#0000 46%,#0a0a0ad1);inset:0}.featured-card.deck-card .featured-card-copy{color:#fff;opacity:1;visibility:visible;background:linear-gradient(#0000,#0a0a0ad1);padding:70px 18px 18px;display:block;position:absolute;bottom:0;left:0;right:0;transform:none}.featured-card.deck-card .featured-card-copy>div span,.featured-card.deck-card .featured-card-copy p{color:#ffffffc7}.featured-card.deck-card .featured-card-copy h3{color:#fff;margin:8px 0 4px;font-size:17px}.featured-card.deck-card .featured-card-copy p{margin:0;font-size:11px}.featured-card.deck-card .featured-card-copy .card-link{display:none}.featured-card.deck-card.deck-center{opacity:1;z-index:3;transform:translate(-50%)translateY(0)scale(1);box-shadow:0 14px 34px -20px #00000073}.featured-card.deck-card.deck-left{opacity:.68;z-index:1;transform:translate(-102%)translateY(20px)rotate(-2deg)scale(.67)}.featured-card.deck-card.deck-right{opacity:.68;z-index:1;transform:translate(2%)translateY(20px)rotate(2deg)scale(.67)}.featured-card.deck-card.deck-hidden-left,.featured-card.deck-card.deck-hidden-right{opacity:0;pointer-events:none;visibility:hidden;z-index:0;transition:opacity .3s ease, transform .4s var(--ease), filter .3s ease, visibility 0s linear .4s}.featured-card.deck-card.deck-hidden-left{transform:translate(-150%)translateY(25px)scale(.55)}.featured-card.deck-card.deck-hidden-right{transform:translate(50%)translateY(25px)scale(.55)}.featured-card.deck-card:not(.deck-center){filter:saturate(.5)}.featured-card.deck-card:not(.deck-center) .featured-card-copy{opacity:.6}@media (width>=1024px) and (hover:hover){.featured-card.deck-card.deck-center{transform:translate(-50%)scale(.94)}.featured-card.deck-card.deck-center:is(:hover,:focus-visible){transform:translate(-50%)translateY(-9px)scale(1.04)}.featured-stack:has(.deck-center:is(:hover,:focus-visible)) .deck-left{transform:translate(-120%)translateY(20px)rotate(-2deg)scale(.67)}.featured-stack:has(.deck-center:is(:hover,:focus-visible)) .deck-right{transform:translate(20%)translateY(20px)rotate(2deg)scale(.67)}.featured-card.deck-card.deck-left:is(:hover,:focus-visible){transform:translate(-120%)translateY(-8px)rotate(0)scale(1.02)}.featured-card.deck-card.deck-right:is(:hover,:focus-visible){transform:translate(20%)translateY(-8px)rotate(0)scale(1.02)}.featured-card.deck-card:is(:hover,:focus-visible){filter:none;opacity:1;z-index:5;box-shadow:0 18px 42px -22px #00000073}.featured-card.deck-card:is(:hover,:focus-visible) .featured-card-copy{opacity:1}.featured-card.deck-card:is(:hover,:focus-visible) .featured-preview img{filter:none}}.featured-card.deck-card:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.featured-controls{justify-content:center;gap:6px;max-width:none;margin:0 auto;display:flex}.featured-controls button{border:0;border-bottom:1px solid var(--line);color:var(--faint);text-align:center;background:0 0;justify-content:center;align-items:center;width:32px;height:32px;padding:0 7px;display:flex}.featured-controls button.active{border-color:var(--ink);color:var(--ink)}.featured-controls button:hover{color:var(--ink)}.featured-controls button span:first-child{font-family:Geist Mono,ui-monospace,monospace;font-size:9px}.skills-layout{grid-template-columns:140px minmax(0,1fr);gap:48px}.skill-matrix{border-top:1px solid var(--line)}.skill-group{grid-template-columns:1fr;align-items:start;gap:16px;padding:18px 0 20px}.skill-group>span{letter-spacing:.1em;font-size:9px}.skill-group>div{gap:8px}.skill-group>div span{background:var(--surface);border-color:var(--line);color:var(--muted);border-radius:6px;gap:7px;padding:6px 10px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;transition:background .2s,border-color .2s,color .2s}.skill-group>div span:hover{background:var(--surface-2);border-color:var(--strong-line);color:var(--ink)}.skill-group svg{width:12px;height:12px}@media (width<=1023px){.hero{min-height:640px;padding-top:110px}.featured-stack{height:245px}.featured-card.deck-card{width:min(340px,62%);height:220px}.featured-card.deck-card.deck-left{transform:translate(-102%)translateY(20px)rotate(-2deg)scale(.65)}.featured-card.deck-card.deck-right{transform:translate(2%)translateY(20px)rotate(2deg)scale(.65)}}@media (width<=760px){.featured-stack{height:245px;margin-top:28px}.featured-card.deck-card{width:min(340px,62%);height:220px}.featured-card.deck-card.deck-left{transform:translate(-106%)translateY(20px)rotate(-2deg)scale(.65)}.featured-card.deck-card.deck-right{transform:translate(6%)translateY(20px)rotate(2deg)scale(.65)}.featured-card.deck-card.deck-center{transform:translate(-50%)translateY(0)scale(1)}.section-pad{padding-top:44px;padding-bottom:44px}.hero{min-height:auto;padding-top:112px;padding-bottom:32px}.hero+.about-section{padding-top:28px}.featured-stack{height:245px}.featured-card.deck-card{height:220px}.skills-layout{display:block}.skills-layout>.section-label{margin-bottom:20px}.skill-matrix{margin-top:20px}.contact-section{padding-top:40px;padding-bottom:52px}.contact-actions{margin-top:32px}.skill-group{grid-template-columns:1fr;gap:12px;padding:16px 0 18px}.skill-group>div{gap:7px}.work-row{gap:14px;padding:16px 0}.work-row-title{font-size:13px}.work-row-description{font-size:12px}.work-row-year{gap:4px;font-size:10px}.work-section{margin-top:20px}.work-toolbar{align-items:center;gap:8px}.work-section .filter-list{flex-wrap:nowrap;flex:auto;gap:14px;min-width:0;overflow-x:auto}.work-section .filter-list button{white-space:nowrap}}.about-heading,.about-stack-heading{justify-content:space-between;align-items:center;display:flex}.about-heading{border-bottom:1px solid var(--line);padding-bottom:28px}.about-heading .section-label{margin-bottom:0}.about-heading>span,.about-stack-heading>span:last-child{color:var(--faint);letter-spacing:.08em;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.about-copy{color:var(--muted);padding:18px 0 28px;font-size:15px;line-height:1.65}.about-copy p{max-width:680px;margin:0 0 20px}.about-copy p:last-child{margin-bottom:0}.about-stack-heading{border-top:1px solid var(--line);padding-top:17px}.about-stack-heading>span:first-child{color:var(--ink);font-size:14px}.about-stack .skill-matrix{border-top:0;margin-top:24px}.about-stack .skill-group{border-bottom:0;padding:0 0 26px;display:block}.about-stack .skill-group:last-child{padding-bottom:0}.about-stack .skill-group>span{margin-bottom:12px;display:block}.about-stack .skill-group>div{gap:8px}@media (width<=760px){.about-heading{align-items:flex-start;gap:12px}.about-heading>span{text-align:right;font-size:9px}.about-copy{padding:18px 0 26px;font-size:14px}.about-copy p{margin-bottom:18px}.about-stack .skill-matrix{margin-top:22px}.about-stack .skill-group{padding-bottom:24px}}@media (width>=1024px){.sidebar{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){.sidebar{background:color-mix(in srgb, var(--bg) 88%, transparent)}}.sidebar{scrollbar-width:thin;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:184px;padding:28px 18px 20px;overflow-y:auto}.sidebar-rule{margin:26px -18px 18px}.side-nav{gap:0}.side-nav button{gap:12px;padding:9px 0;font-size:11px;transform:none}.side-nav button:hover{transform:none}.side-nav button.active{color:var(--ink)}.side-nav button .nav-icon{opacity:.65;flex:0 0 14px}.side-nav button.active .nav-icon{opacity:1}main{margin-left:184px}}.github-heading{justify-content:space-between;align-items:center;display:flex}.github-heading .section-label{margin-bottom:0}.github-heading>a{color:var(--faint);letter-spacing:.08em;align-items:center;gap:5px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;transition:color .2s;display:inline-flex}.github-heading>a:hover{color:var(--ink)}.github-calendar{margin-top:28px}.github-calendar-scroll{scrollbar-width:none;overflow-x:auto}.github-calendar-scroll::-webkit-scrollbar{display:none}.github-cells{grid-template-rows:repeat(7,9px);grid-auto-columns:9px;grid-auto-flow:column;gap:3px;width:max-content;display:grid}.github-cell{cursor:help;justify-content:center;align-items:center;width:9px;height:9px;display:flex;position:relative}.github-cell:before{background:var(--ink);content:"";border-radius:50%;display:block}.github-cell.pad{pointer-events:none}.github-cell.pad:before{display:none}.github-cell.level-0:before{opacity:.14;width:2px;height:2px}.github-cell.level-1:before{opacity:.28;width:3px;height:3px}.github-cell.level-2:before{opacity:.45;width:4px;height:4px}.github-cell.level-3:before{opacity:.7;width:6px;height:6px}.github-cell.level-4:before{opacity:.95;width:9px;height:9px}.github-cell:hover{z-index:2}.github-cell:hover:before{opacity:1}.github-cell[data-tooltip]:hover:after{background:var(--ink);color:var(--bg);content:attr(data-tooltip);white-space:nowrap;border-radius:4px;padding:6px 8px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.github-cell:first-child:hover:after{left:0;transform:none}.github-cell:last-child:hover:after{left:auto;right:0;transform:none}.github-total{color:var(--faint);letter-spacing:.08em;margin:16px 0 0;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.github-status{color:var(--muted);margin:28px 0 0;font-size:12px}.github-status a{color:var(--ink);align-items:center;gap:4px;display:inline-flex}@media (width>=761px){.github-calendar-scroll{overflow:visible}}@media (width<=760px){.github-section{padding-top:32px;padding-bottom:32px}}.contact-section{padding-top:48px;padding-bottom:20px}.closing-halftone{background-image:radial-gradient(circle, var(--ink) 1px, transparent 1.2px);opacity:.18;pointer-events:none;background-size:9px 9px;width:calc(100% - 40px);max-width:720px;height:24px;margin:8px auto 0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000)}main{padding-bottom:24px}@media (width<=760px){.contact-section{padding-top:40px;padding-bottom:20px}.featured-stack{--edge-offset:23px;--card-gap:12px;touch-action:pan-y;height:270px}.featured-card.deck-card{width:min(100% - 46px,420px);height:250px;left:0}.featured-card.deck-card.deck-left{opacity:.6;transform:translateX(calc(-100% - var(--card-gap) + var(--edge-offset) + var(--drag-x,0px))) scale(1);z-index:1}.featured-card.deck-card.deck-right{opacity:.6;transform:translateX(calc(100% + var(--card-gap) + var(--edge-offset) + var(--drag-x,0px))) scale(1);z-index:2}.featured-card.deck-card.deck-center{transform:translateX(calc(var(--edge-offset) + var(--drag-x,0px)));z-index:3}.featured-card.deck-card.deck-hidden-left{transform:translateX(calc(-200% - var(--card-gap) + var(--edge-offset)))}.featured-card.deck-card.deck-hidden-right{transform:translateX(calc(200% + var(--card-gap) + var(--edge-offset)))}.featured-stack.is-dragging .featured-card.deck-card{transition:none;animation:none}.featured-controls{margin-top:4px}}.resume-modal{z-index:60;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000085;justify-content:center;align-items:center;padding:20px;animation:.22s both resume-backdrop-in;display:flex;position:fixed;inset:0}.resume-modal.is-closing{animation:.22s both resume-backdrop-out}.resume-dialog{animation:resume-dialog-in .22s var(--ease) both;background:var(--bg);border:1px solid var(--strong-line);outline:0;width:100%;max-width:440px;padding:24px;box-shadow:0 24px 70px #00000047}.resume-modal.is-closing .resume-dialog{pointer-events:none;animation:.22s both resume-dialog-out}.resume-dialog-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;display:flex}.resume-dialog-heading .icon-button{background:var(--strong-line);color:var(--ink);width:30px;height:30px;transition:background .25s var(--ease), color .25s var(--ease);flex:0 0 30px;justify-content:center;align-items:center;padding:0;display:inline-flex}.resume-dialog-heading .icon-button svg{transition:transform .25s var(--ease);display:block}.resume-dialog-heading .icon-button:is(:hover,:focus-visible){background:var(--ink);color:var(--bg)}.resume-dialog-heading .icon-button:is(:hover,:focus-visible) svg{transform:rotate(90deg)}.resume-dialog-heading .icon-button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.resume-dialog-heading span{color:var(--faint);letter-spacing:.1em;font-family:Geist Mono,ui-monospace,monospace;font-size:9px}.resume-dialog-heading h2{margin:7px 0 0;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:21px;font-weight:500;line-height:1.25}.resume-dialog>p{color:var(--muted);margin:20px 0;font-size:13px;line-height:1.65}.resume-actions{grid-template-columns:1fr 1fr;gap:9px;display:grid}.resume-actions a{border:1px solid var(--line);justify-content:center;align-items:center;gap:8px;padding:12px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;transition:background .2s,border-color .2s,color .2s;display:flex}.resume-actions a:first-child{background:var(--ink);border-color:var(--ink);color:var(--bg)}.resume-actions a:hover{border-color:var(--ink)}@keyframes resume-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes resume-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes resume-dialog-in{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:none}}@keyframes resume-dialog-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)scale(.985)}}@media (width<=450px){.resume-dialog{padding:20px}.resume-actions{grid-template-columns:1fr}}.hero-id-link{color:var(--ink)!important}.hero-id-link svg{transition:transform .25s var(--ease)}.hero-id-link:is(:hover,:focus-visible) svg{transform:rotate(-5deg)translateY(-1px)}.identity-page{justify-content:center;align-items:center;min-height:calc(100dvh - 24px);padding:16px 32px 28px;display:flex}.identity-back{background:var(--bg);border:1px solid var(--line);color:var(--muted);align-items:center;gap:8px;min-height:36px;padding:6px 10px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.identity-back:is(:hover,:focus-visible){background:var(--surface);border-color:var(--strong-line);color:var(--ink)}.identity-badge-stage{perspective:1100px;flex-direction:column;align-items:center;width:100%;padding:32px 0 16px;display:flex}.id-badge-float{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;aspect-ratio:470/695;touch-action:none;flex:none;width:min(100% - 36px,52.7482dvh,550px)}.id-badge-tilt{height:100%;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(var(--hover-scale,1));transform-origin:50%;transform-style:preserve-3d;outline:none;width:100%}.id-badge-tilt:focus-visible{outline:none}.id-badge-tilt:focus-visible .id-card-face{outline:2px solid var(--strong-line);outline-offset:2px}.id-badge-rotor{height:100%;transform-style:preserve-3d;width:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1);position:relative;transform:rotateY(0)}.id-badge-rotor.is-flipped{transform:rotateY(180deg)}.id-card-face{--badge-ink:#303030;--badge-paper:#d3d3d3;--badge-line:#878787;backface-visibility:hidden;box-shadow:var(--badge-shadow-x,0px) var(--badge-shadow-y,22px) 42px -24px #00000052, inset 2px 2px 3px #fff, inset -3px -4px 6px #bcbcbc, 0 0 0 1px #0000000a;box-sizing:border-box;background:linear-gradient(135deg,#fff 0%,#f4f4f4 22%,#dedede 78%,#fafafa 100%);border:1px solid #dedede;border-radius:7%/5%;width:100%;height:100%;padding:calc(10.7% - 3px) calc(4.7% - 3px) calc(4.4% - 3px);position:absolute;inset:0}.id-card-face:after{border-radius:inherit;content:"";pointer-events:none;z-index:3;background:linear-gradient(120deg,#ffffff2b,#0000 33%,#ffffff12 75%,#0000);position:absolute;inset:0}.id-card-back{transform:rotateY(180deg)}.id-badge-slot{z-index:4;background:linear-gradient(#cfcfcf,#fff 60%,#e7e7e7);border:1px solid #d5d5d5;border-radius:999px;width:30%;height:3.4%;position:absolute;top:2.1%;left:35%;box-shadow:inset 0 2px 3px #00000030,0 1px 1px #fff}.id-badge-opening{box-sizing:border-box;z-index:1;background:#ececec;border:1px solid #c5c5c5;border-radius:13px;width:100%;height:100%;padding:2px;position:relative;box-shadow:inset 0 2px 4px #00000026}.id-badge-opening:before{content:"";pointer-events:none;border:2px solid #e0e0e0;border-radius:21px;position:absolute;inset:-8px;box-shadow:inset 1px 1px 2px #0000001f,1px 1px 2px #fff}.id-card{background:var(--badge-paper);box-sizing:border-box;color:var(--badge-ink);border:1px solid #a7a7a7;border-radius:2.5%/1.5%;grid-template-rows:minmax(0,40fr) minmax(0,17fr) minmax(0,28fr) minmax(0,8fr);gap:3%;width:100%;height:100%;padding:8% 3% 3%;display:grid;position:relative;overflow:hidden;box-shadow:0 2px 5px #00000038,inset 0 0 0 1px #e6e6e6}.id-card-main{grid-template-columns:47% minmax(0,1fr);gap:4%;min-height:0;display:grid}.id-photo{background:#c7c7c7;border:1px solid #777;position:relative;overflow:hidden}.id-photo:after{content:"";pointer-events:none;border:5px solid #0000;border-image:linear-gradient(135deg,#5e5e5e 0 2px,#0000 2px) 5;position:absolute;inset:0}.id-photo img{filter:grayscale()contrast(1.04);-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:100%;height:100%}.id-details{grid-template-rows:34% repeat(2,minmax(0,1fr));min-width:0;min-height:0;display:grid}.id-verified{color:#f4f4f4;letter-spacing:.08em;background:#303030;justify-content:center;place-self:start end;align-items:center;width:68%;min-height:34px;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(8px,1.2vw,13px);display:flex;position:relative}.id-verified:after{content:"";background:repeating-linear-gradient(125deg,#303030 0 4px,#0000 4px 9px);height:10px;position:absolute;top:100%;left:0;right:0}.id-field{border-bottom:1px solid var(--badge-line);text-align:right;align-content:center;min-height:0;padding:4px 0;display:grid}.id-field span,.id-name-band>span,.id-grid-fields span{letter-spacing:.05em;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(7px,.85vw,10px)}.id-field strong{margin-top:6%;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(9px,1.05vw,13px);font-weight:600;line-height:1.35}.id-name-band{border:1px solid var(--badge-line);grid-template-columns:17% minmax(0,1fr) 24%;min-height:0;display:grid}.id-name-band>span{align-self:start;padding:18% 12%}.id-name-band>strong{text-align:center;text-transform:uppercase;align-self:center;padding:0 5px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(17px,2.3vw,29px);font-weight:500;line-height:1.1}.id-signature{color:#eee;background:#303030;flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:5%;display:flex}.id-signature i{white-space:nowrap;border-bottom:1px solid #888;padding-bottom:8%;font-family:cursive;font-size:clamp(11px,1.7vw,20px);font-weight:400;line-height:1;transform:rotate(-7deg)}.id-signature span{margin-top:12%;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(6px,.7vw,9px)}.id-card-grid{border:1px solid var(--badge-line);grid-template-columns:minmax(0,1fr) 28% minmax(0,1fr);min-height:0;display:grid}.id-grid-fields{grid-template-rows:repeat(3,minmax(0,1fr));min-width:0;display:grid}.id-grid-fields>div{border-bottom:1px solid var(--badge-line);flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 7%;display:flex}.id-grid-fields>div:last-child{border-bottom:0}.id-grid-fields:last-child{text-align:right}.id-grid-fields strong{overflow-wrap:anywhere;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(7px,.78vw,10px);font-weight:600;line-height:1.3}.id-grid-mark{border-left:1px solid var(--badge-line);border-right:1px solid var(--badge-line);justify-content:center;align-items:center;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(22px,3vw,42px);display:flex}.id-card-footer{color:#e9e9e9;text-align:center;background:#303030;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4%;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(7px,.8vw,10px);display:grid;position:relative}.id-card-footer span:last-of-type{justify-self:end}.id-card-footer:after{clip-path:polygon(0 0,100% 0,91% 100%,8% 100%);content:"";background:#303030;height:12px;position:absolute;bottom:-12px;left:52%;right:0}.id-card-footer span{letter-spacing:-.18em;font-size:16px}.id-card-back-inner{flex-direction:column;justify-content:space-between;gap:0;display:flex}.id-card-back-inner .id-card-footer{flex:none;height:8%}.id-back-top,.id-back-bottom{border-bottom:1px solid var(--badge-line);justify-content:space-between;padding:4% 0;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(8px,1vw,12px);display:flex}.id-back-pattern{color:#30303014;letter-spacing:-.12em;text-align:center;white-space:nowrap;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(35px,7vw,88px);font-weight:700;line-height:1.15;overflow:hidden}.id-back-identity{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.id-back-identity span{font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:clamp(27px,4vw,52px);line-height:1}.id-back-identity strong{letter-spacing:.1em;font-family:Geist Mono,ui-monospace,monospace;font-size:clamp(9px,1.1vw,14px);font-weight:500}.id-back-bottom{border-bottom:0;border-top:1px solid var(--badge-line);text-align:center;flex-direction:column;gap:10px}.id-viewer-controls{z-index:2;justify-content:center;gap:8px;margin-top:52px;display:flex;position:relative}.id-viewer-controls button{background:var(--bg);border:1px solid var(--line);color:var(--ink);white-space:nowrap;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:36px;padding:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;transition:border-color .2s,background .2s;display:inline-flex}.id-viewer-controls button:is(:hover,:focus-visible){background:var(--surface);border-color:var(--strong-line)}@media (width<=760px){.identity-page{min-height:calc(100dvh - 55px);padding:64px 12px 36px}.id-badge-float{width:min(100% - 12px,50.0432dvh)}.id-viewer-controls{margin-top:48px}}@media (width<=390px){.id-card{padding-top:7%}.id-verified{min-height:24px;font-size:7px}.id-name-band>strong{font-size:16px}.id-grid-fields>div{padding:2px 5%}.id-grid-fields strong,.id-card-footer{font-size:6px}.id-viewer-controls button{gap:3px;padding:4px 2px;font-size:9px}.id-viewer-controls svg{width:12px}}@media (prefers-reduced-motion:reduce){.id-badge-tilt,.id-badge-rotor{transition-duration:.01ms}}.world-section{overflow:hidden}.world-section.section-pad{padding-top:24px;padding-bottom:24px}.world-section>.section-heading-row{margin-bottom:16px}.world-section>.section-label{margin-bottom:18px}.world-projects{max-width:1080px;margin:0 auto}.world-projects-kicker{color:var(--faint);letter-spacing:.11em;text-transform:uppercase;margin:0 0 12px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}.globe-stage{contain:layout paint style;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;outline:0;height:clamp(530px,64vw,640px);min-height:530px;position:relative;overflow:hidden}.globe-stage:active{cursor:grabbing}.globe-stage.is-interactive{cursor:grab}.globe-stage.is-interactive.is-country-hovered{cursor:pointer}.globe-stage:before{background:radial-gradient(circle, var(--ink), transparent 64%)}@supports (color:color-mix(in lab, red, red)){.globe-stage:before{background:radial-gradient(circle, color-mix(in srgb, var(--ink) 8%, transparent), transparent 64%)}}.globe-stage:before{content:"";pointer-events:none;width:min(66vw,660px);height:min(66vw,660px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.globe-stage canvas{contain:strict;display:block;position:absolute;inset:0}.globe-country-target{opacity:0;pointer-events:none;touch-action:manipulation;visibility:hidden;z-index:2;background:0 0;border:0;border-radius:50%;width:44px;height:44px;padding:0;position:absolute;transform:translate(-50%,-50%)}.globe-country-target:focus-visible{box-shadow:0 0 0 1px var(--bg), 0 0 0 2px var(--ink);opacity:.78;outline:0}.globe-country-target--singapore{width:52px;height:52px}.globe-marker{background:var(--ink);opacity:0;pointer-events:none;z-index:2;border-radius:50%;width:4px;height:4px;position:absolute;transform:translate(-50%,-50%)}.globe-leader{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.globe-leader path{fill:none;stroke:var(--ink)}@supports (color:color-mix(in lab, red, red)){.globe-leader path{stroke:color-mix(in srgb, var(--ink) 72%, transparent)}}.globe-leader path{stroke-linecap:square;stroke-linejoin:miter;stroke-width:1px;vector-effect:non-scaling-stroke}.globe-leader rect{fill:var(--ink);opacity:0}.globe-callout{color:var(--ink);cursor:pointer;opacity:0;text-align:left;min-height:48px;text-shadow:0 1px 5px var(--bg), 0 0 10px var(--bg);z-index:3;background:0 0;border:0;flex-direction:column;padding:0 0 4px;display:flex;position:absolute;overflow:visible}.globe-callout[data-side=right]{text-align:right}.globe-callout:focus-visible{outline:1px solid var(--ink);outline-offset:4px}.globe-callout-country{letter-spacing:.13em;opacity:var(--country-opacity,0);text-transform:uppercase;transform:translateY(var(--country-lift,4px));font-family:Geist Mono,ui-monospace,monospace;font-size:9px;font-weight:600;line-height:1.2;overflow:hidden}.globe-callout-stat{opacity:var(--count-opacity,0);transform:translateY(var(--count-lift,4px));align-items:baseline;gap:6px;margin-top:5px;line-height:1;display:flex;overflow:hidden}.globe-callout[data-side=right] .globe-callout-stat{justify-content:flex-end}.globe-callout-stat strong{letter-spacing:-.035em;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:21px;font-weight:600}.globe-callout-stat span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;font-weight:500}.globe-callout small{color:var(--muted);text-transform:none;margin-top:13px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;line-height:1.55}.globe-mode-control{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){.globe-mode-control{background:color-mix(in srgb, var(--bg) 84%, transparent)}}.globe-mode-control{border:1px solid var(--line);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;touch-action:manipulation;z-index:4;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);min-height:32px;padding:7px 12px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;transition:border-color .2s,color .2s;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.globe-mode-control:hover,.globe-mode-control:focus-visible{border-color:var(--ink);color:var(--ink)}.globe-mode-control:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.globe-mode-control:disabled{color:var(--faint);cursor:default}.globe-loading,.globe-section-loading{color:var(--faint);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:9px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:flex}.globe-section-loading{height:510px}.globe-loading{z-index:5;position:absolute;inset:0}.globe-loading span{background:var(--ink);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite pulse}.globe-fallback{background:var(--surface);z-index:6;align-content:center;gap:7px;padding:40px;display:grid;position:absolute;inset:0}.globe-fallback strong{margin-bottom:8px;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:23px;font-weight:500}.globe-fallback span{color:var(--muted);font-family:Geist Mono,ui-monospace,monospace;font-size:11px}@media (width<=760px){.globe-stage{height:500px;min-height:500px;margin-inline:-20px}.globe-stage:before{width:92vw;height:92vw}.globe-callout{max-width:calc(100% - 32px)}.globe-mode-control{bottom:10px}}@media (hover:none),(width<=1023px){body{isolation:isolate;background-image:none;background-attachment:scroll}body:before{background-image:radial-gradient(circle at 48% 30%, transparent 18%, var(--backdrop-vignette) 100%), linear-gradient(var(--backdrop-overlay), var(--backdrop-overlay)), url(/assets/grey-mountains-CJ3UnGMI.webp);content:"";pointer-events:none;z-index:-1;background-position:50%,50%,50%;background-repeat:no-repeat;background-size:cover;width:100vw;height:100dvh;position:fixed;inset:0;transform:translateZ(0)}.world-section{overflow-x:clip}.world-projects{max-width:100%}.globe-stage{aspect-ratio:1;touch-action:pan-y pinch-zoom;max-width:720px;height:auto;min-height:0;width:min(100%, calc(100dvh - 144px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));margin-inline:auto}.globe-stage:before{width:92%;height:92%}}@media (width<=767px){.world-projects{padding-inline:max(env(safe-area-inset-left), 0px) max(env(safe-area-inset-right), 0px)}.world-projects-kicker{margin-bottom:clamp(8px,2.5vw,12px);font-size:clamp(9px,2.6vw,10px)}.globe-stage{aspect-ratio:1/1.18;width:min(92vw, calc(100dvh - 128px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));margin-inline:0;left:50%;transform:translate(-50%)}.globe-callout{max-width:calc(100% - 28px)}}@media (width<=359px){.globe-stage{width:min(100%, 90vw, calc(100dvh - 104px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}}@media (prefers-reduced-motion:reduce){body{background-attachment:scroll}.globe-callout{transition:none}.globe-loading span{animation:none}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
