@font-face{font-family:iconfont;src:url(/assets/iconfont-J8fIOGnN.eot?a39ec1eff0e45e5d724d24255ba47ade#iefix) format("embedded-opentype"),url(/assets/iconfont-DdA2I5Eq.woff2?a39ec1eff0e45e5d724d24255ba47ade) format("woff2"),url(/assets/iconfont-BNtZMQuo.woff?a39ec1eff0e45e5d724d24255ba47ade) format("woff"),url(/assets/iconfont-CZx8uOGU.ttf?a39ec1eff0e45e5d724d24255ba47ade) format("truetype"),url(/assets/iconfont-B-q1fVf7.svg?a39ec1eff0e45e5d724d24255ba47ade#iconfont) format("svg")}.hn{line-height:1}.hn:before{font-family:iconfont!important;font-style:normal;font-weight:400!important;vertical-align:top}.hn-algolia:before{content:""}.hn-android:before{content:""}.hn-angellist:before{content:""}.hn-anthropic:before{content:""}.hn-apple:before{content:""}.hn-arweave:before{content:""}.hn-behance:before{content:""}.hn-bitcoin:before{content:""}.hn-bloomberg:before{content:""}.hn-bluesky:before{content:""}.hn-cloudflare:before{content:""}.hn-creative-commons:before{content:""}.hn-crunchbase:before{content:""}.hn-digg:before{content:""}.hn-discord:before{content:""}.hn-discourse:before{content:""}.hn-ethereum:before{content:""}.hn-facebook-round:before{content:""}.hn-facebook-square:before{content:""}.hn-figma:before{content:""}.hn-giphy:before{content:""}.hn-github:before{content:""}.hn-gitlab:before{content:""}.hn-golden:before{content:""}.hn-google-news:before{content:""}.hn-google:before{content:""}.hn-hackernoon:before{content:""}.hn-huggingface:before{content:""}.hn-imgur:before{content:""}.hn-instagram:before{content:""}.hn-ios:before{content:""}.hn-kaggle:before{content:""}.hn-linkedin:before{content:""}.hn-mastodon:before{content:""}.hn-minds:before{content:""}.hn-mistral:before{content:""}.hn-newsbreak:before{content:""}.hn-notion:before{content:""}.hn-npm:before{content:""}.hn-open-ai:before{content:""}.hn-perplexity:before{content:""}.hn-pinterest:before{content:""}.hn-podcasts:before{content:""}.hn-product-hunt:before{content:""}.hn-reddit:before{content:""}.hn-rss:before{content:""}.hn-sia:before{content:""}.hn-slack:before{content:""}.hn-steam:before{content:""}.hn-telegram:before{content:""}.hn-threads:before{content:""}.hn-tiktok:before{content:""}.hn-twitch:before{content:""}.hn-twitter:before{content:""}.hn-unsplash:before{content:""}.hn-viewblocks:before{content:""}.hn-wikipedia:before{content:""}.hn-x:before{content:""}.hn-youtube:before{content:""}.hn-business:before{content:""}.hn-cloud:before{content:""}.hn-cybersecurity:before{content:""}.hn-data-science:before{content:""}.hn-finance:before{content:""}.hn-futurism:before{content:""}.hn-gaming:before{content:""}.hn-hackernoon-purcat:before{content:""}.hn-life-hacking:before{content:""}.hn-machine-learning:before{content:""}.hn-management:before{content:""}.hn-media:before{content:""}.hn-product-management:before{content:""}.hn-programming:before{content:""}.hn-remote:before{content:""}.hn-science:before{content:""}.hn-society:before{content:""}.hn-startups:before{content:""}.hn-tech-companies:before{content:""}.hn-tech-stories:before{content:""}.hn-technology:before{content:""}.hn-web3:before{content:""}.hn-writing:before{content:""}.hn-ad:before{content:""}.hn-align-center:before{content:""}.hn-align-justify:before{content:""}.hn-align-left:before{content:""}.hn-align-right:before{content:""}.hn-analytics:before{content:""}.hn-angle-down:before{content:""}.hn-angle-left:before{content:""}.hn-angle-right:before{content:""}.hn-angle-up:before{content:""}.hn-archive:before{content:""}.hn-arrow-alt-circle-down:before{content:""}.hn-arrow-alt-circle-left:before{content:""}.hn-arrow-alt-circle-right:before{content:""}.hn-arrow-alt-circle-up:before{content:""}.hn-arrow-circle-down:before{content:""}.hn-arrow-circle-left:before{content:""}.hn-arrow-circle-right:before{content:""}.hn-arrow-circle-up:before{content:""}.hn-arrow-down:before{content:""}.hn-arrow-left:before{content:""}.hn-arrow-right:before{content:""}.hn-arrow-up:before{content:""}.hn-at:before{content:""}.hn-badge-check:before{content:""}.hn-bank:before{content:""}.hn-bars:before{content:""}.hn-bell-exclaimation:before{content:""}.hn-bell-mute:before{content:""}.hn-bell:before{content:""}.hn-bold:before{content:""}.hn-bolt:before{content:""}.hn-book-bookmark:before{content:""}.hn-book-heart:before{content:""}.hn-book:before{content:""}.hn-bookmark:before{content:""}.hn-box-heart:before{content:""}.hn-box-usd:before{content:""}.hn-bracket-curly:before{content:""}.hn-bracket-round:before{content:""}.hn-bracket-square:before{content:""}.hn-branch:before{content:""}.hn-briefcase:before{content:""}.hn-brightness-high:before{content:""}.hn-brightness-low:before{content:""}.hn-broom:before{content:""}.hn-bug:before{content:""}.hn-bullet-list:before{content:""}.hn-bullhorn:before{content:""}.hn-calendar-alt:before{content:""}.hn-calender:before{content:""}.hn-camera:before{content:""}.hn-cart-add:before{content:""}.hn-cart-minus:before{content:""}.hn-cassette-tape:before{content:""}.hn-cc:before{content:""}.hn-chart-line:before{content:""}.hn-chart-network:before{content:""}.hn-check-box:before{content:""}.hn-check-circle:before{content:""}.hn-check-list:before{content:""}.hn-check:before{content:""}.hn-chevron-down:before{content:""}.hn-chevron-up:before{content:""}.hn-circle-notch:before{content:""}.hn-clipboard:before{content:""}.hn-clock:before{content:""}.hn-cloud-download-alt:before{content:""}.hn-cloud-fog:before{content:""}.hn-cloud-rain:before{content:""}.hn-cloud-upload:before{content:""}.hn-code-block:before{content:""}.hn-code:before{content:""}.hn-cog:before{content:""}.hn-coin:before{content:""}.hn-coins:before{content:""}.hn-collapse:before{content:""}.hn-command:before{content:""}.hn-comment-dots:before{content:""}.hn-comment-quote:before{content:""}.hn-comment:before{content:""}.hn-comments:before{content:""}.hn-copy:before{content:""}.hn-credit-card:before{content:""}.hn-crown:before{content:""}.hn-disc:before{content:""}.hn-divider:before{content:""}.hn-dollar:before{content:""}.hn-door-closed:before{content:""}.hn-door-open:before{content:""}.hn-download-alt:before{content:""}.hn-download:before{content:""}.hn-edit:before{content:""}.hn-ellipses-horizontal-circle:before{content:""}.hn-ellipses-horizontal:before{content:""}.hn-ellipses-vertical-circle:before{content:""}.hn-ellipses-vertical:before{content:""}.hn-envelope:before{content:""}.hn-exclaimation:before{content:""}.hn-exclamation-triangle:before{content:""}.hn-expand:before{content:""}.hn-external-link:before{content:""}.hn-eye-cross:before{content:""}.hn-eye-snake:before{content:""}.hn-eye:before{content:""}.hn-face-angry:before{content:""}.hn-face-grin:before{content:""}.hn-face-heart-eyes:before{content:""}.hn-face-laugh-squint:before{content:""}.hn-face-sad:before{content:""}.hn-face-thinking:before{content:""}.hn-file-import:before{content:""}.hn-filter-alt-circle:before{content:""}.hn-filter:before{content:""}.hn-fire:before{content:""}.hn-flag-checkered:before{content:""}.hn-flag:before{content:""}.hn-folder-open:before{content:""}.hn-folder:before{content:""}.hn-fork:before{content:""}.hn-glasses:before{content:""}.hn-globe-americas:before{content:""}.hn-globe:before{content:""}.hn-graduation-cap:before{content:""}.hn-grid:before{content:""}.hn-h1:before{content:""}.hn-h2:before{content:""}.hn-h3:before{content:""}.hn-handshake:before{content:""}.hn-hashtag:before{content:""}.hn-headphones:before{content:""}.hn-heart:before{content:""}.hn-highlight:before{content:""}.hn-hockey-mask:before{content:""}.hn-home:before{content:""}.hn-image:before{content:""}.hn-indent:before{content:""}.hn-info-circle:before{content:""}.hn-italics:before{content:""}.hn-laptop-code:before{content:""}.hn-laptop:before{content:""}.hn-lightbulb:before{content:""}.hn-line-height:before{content:""}.hn-link:before{content:""}.hn-location-pin:before{content:""}.hn-lock-alt:before{content:""}.hn-lock-open:before{content:""}.hn-lock:before{content:""}.hn-login:before{content:""}.hn-logout:before{content:""}.hn-medical-house:before{content:""}.hn-merge:before{content:""}.hn-message-dots:before{content:""}.hn-message:before{content:""}.hn-minus:before{content:""}.hn-moon:before{content:""}.hn-music:before{content:""}.hn-newspaper:before{content:""}.hn-notebook:before{content:""}.hn-numbered-list:before{content:""}.hn-octagon-check:before{content:""}.hn-octagon-times:before{content:""}.hn-outdent:before{content:""}.hn-page-break:before{content:""}.hn-paint-brush:before{content:""}.hn-paperclip:before{content:""}.hn-paragraph:before{content:""}.hn-pause:before{content:""}.hn-pc:before{content:""}.hn-pen-nib:before{content:""}.hn-pen:before{content:""}.hn-pencil-ruler:before{content:""}.hn-pencil:before{content:""}.hn-people-carry:before{content:""}.hn-phone-ringing-high:before{content:""}.hn-phone-ringing-low:before{content:""}.hn-plane-departure:before{content:""}.hn-plane:before{content:""}.hn-play:before{content:""}.hn-playlist:before{content:""}.hn-plus:before{content:""}.hn-print:before{content:""}.hn-pro:before{content:""}.hn-pull-request:before{content:""}.hn-question-circle:before{content:""}.hn-question:before{content:""}.hn-quote-left:before{content:""}.hn-quote-right:before{content:""}.hn-receipt:before{content:""}.hn-refresh:before{content:""}.hn-retro-camera:before{content:""}.hn-retro-pc:before{content:""}.hn-robot:before{content:""}.hn-save:before{content:""}.hn-search:before{content:""}.hn-seedlings:before{content:""}.hn-shapes:before{content:""}.hn-share-alt:before{content:""}.hn-share:before{content:""}.hn-shop:before{content:""}.hn-shopping-cart:before{content:""}.hn-shuffle:before{content:""}.hn-side-nav-collapse:before{content:""}.hn-side-nav-expand:before{content:""}.hn-sitemap:before{content:""}.hn-sort:before{content:""}.hn-sound-mute:before{content:""}.hn-sound-on:before{content:""}.hn-sparkles:before{content:""}.hn-spinner-third:before{content:""}.hn-spinner:before{content:""}.hn-star-crescent:before{content:""}.hn-star:before{content:""}.hn-strike-through:before{content:""}.hn-sun:before{content:""}.hn-table:before{content:""}.hn-tag:before{content:""}.hn-text-slash:before{content:""}.hn-themes:before{content:""}.hn-thumbsdown:before{content:""}.hn-thumbsup:before{content:""}.hn-thumbtack:before{content:""}.hn-times-circle:before{content:""}.hn-times-square:before{content:""}.hn-times:before{content:""}.hn-translate:before{content:""}.hn-trash-alt:before{content:""}.hn-trash:before{content:""}.hn-trending:before{content:""}.hn-trophy:before{content:""}.hn-underline:before{content:""}.hn-unlock-alt:before{content:""}.hn-unlock:before{content:""}.hn-upload-alt:before{content:""}.hn-upload:before{content:""}.hn-user-check:before{content:""}.hn-user-headset:before{content:""}.hn-user-minus:before{content:""}.hn-user-plus:before{content:""}.hn-user:before{content:""}.hn-users-crown:before{content:""}.hn-users:before{content:""}.hn-video-camera:before{content:""}.hn-vote-yeah:before{content:""}.hn-wallet:before{content:""}.hn-wifi:before{content:""}.hn-window-close:before{content:""}.hn-window-restore:before{content:""}.hn-ad-solid:before{content:""}.hn-align-center-solid:before{content:""}.hn-align-justify-solid:before{content:""}.hn-align-left-solid:before{content:""}.hn-align-right-solid:before{content:""}.hn-analytics-solid:before{content:""}.hn-angle-down-solid:before{content:""}.hn-angle-left-solid:before{content:""}.hn-angle-right-solid:before{content:""}.hn-angle-up-solid:before{content:""}.hn-archive-solid:before{content:""}.hn-arrow-alt-circle-down-solid:before{content:""}.hn-arrow-alt-circle-left-solid:before{content:""}.hn-arrow-alt-circle-right-solid:before{content:""}.hn-arrow-alt-circle-up-solid:before{content:""}.hn-arrow-circle-down-solid:before{content:""}.hn-arrow-circle-left-solid:before{content:""}.hn-arrow-circle-right-solid:before{content:""}.hn-arrow-circle-up-solid:before{content:""}.hn-arrow-down-solid:before{content:""}.hn-arrow-left-solid:before{content:""}.hn-arrow-right-solid:before{content:""}.hn-arrow-up-solid:before{content:""}.hn-at-solid:before{content:""}.hn-badge-check-solid:before{content:""}.hn-bank-solid:before{content:""}.hn-bars-solid:before{content:""}.hn-bell-exclaimation-solid:before{content:""}.hn-bell-mute-solid:before{content:""}.hn-bell-solid:before{content:""}.hn-bold-solid:before{content:""}.hn-bolt-solid:before{content:""}.hn-book-bookmark-solid:before{content:""}.hn-book-heart-solid:before{content:""}.hn-book-solid:before{content:""}.hn-bookmark-solid:before{content:""}.hn-box-heart-solid:before{content:""}.hn-box-usd-solid:before{content:""}.hn-bracket-curly-solid:before{content:""}.hn-bracket-round-solid:before{content:""}.hn-bracket-square-solid:before{content:""}.hn-branch-solid:before{content:""}.hn-briefcase-solid:before{content:""}.hn-brightness-high-solid:before{content:""}.hn-brightness-low-solid:before{content:""}.hn-broom-solid:before{content:""}.hn-bug-solid:before{content:""}.hn-bullet-list-solid:before{content:""}.hn-bullhorn-solid:before{content:""}.hn-calendar-alt-solid:before{content:""}.hn-calender-solid:before{content:""}.hn-camera-solid:before{content:""}.hn-cart-add-solid:before{content:""}.hn-cart-minus-solid:before{content:""}.hn-cassette-tape-solid:before{content:""}.hn-cc-solid:before{content:""}.hn-chart-line-solid:before{content:""}.hn-chart-network-solid:before{content:""}.hn-check-box-solid:before{content:""}.hn-check-circle-solid:before{content:""}.hn-check-list-solid:before{content:""}.hn-check-solid:before{content:""}.hn-chevron-down-solid:before{content:""}.hn-chevron-up-solid:before{content:""}.hn-circle-notch-solid:before{content:""}.hn-clipboard-solid:before{content:""}.hn-clock-solid:before{content:""}.hn-cloud-download-solid:before{content:""}.hn-cloud-fog-solid:before{content:""}.hn-cloud-rain-solid:before{content:""}.hn-cloud-upload-solid:before{content:""}.hn-code-block-solid:before{content:""}.hn-code-solid:before{content:""}.hn-cog-solid:before{content:""}.hn-coin-solid:before{content:""}.hn-coins-solid:before{content:""}.hn-collapse-solid:before{content:""}.hn-command-solid:before{content:""}.hn-comment-dots-solid:before{content:""}.hn-comment-quote-solid:before{content:""}.hn-comment-solid:before{content:""}.hn-comments-solid:before{content:""}.hn-copy-solid:before{content:""}.hn-credit-card-solid:before{content:""}.hn-crown-solid:before{content:""}.hn-disc-solid:before{content:""}.hn-divider-solid:before{content:""}.hn-dollar-solid:before{content:""}.hn-door-closed-solid:before{content:""}.hn-door-open-solid:before{content:""}.hn-download-alt-solid:before{content:""}.hn-download-solid:before{content:""}.hn-edit-solid:before{content:""}.hn-ellipses-horizontal-circle-solid:before{content:""}.hn-ellipses-horizontal-solid:before{content:""}.hn-ellipses-vertical-circle-solid:before{content:""}.hn-ellipses-vertical-solid:before{content:""}.hn-envelope-solid:before{content:""}.hn-exclaimation-solid:before{content:""}.hn-exclamation-triangle-solid:before{content:""}.hn-expand-solid:before{content:""}.hn-external-link-solid:before{content:""}.hn-eye-cross-solid:before{content:""}.hn-eye-snake-solid:before{content:""}.hn-eye-solid:before{content:""}.hn-face-angry-solid:before{content:""}.hn-face-grin-solid:before{content:""}.hn-face-heart-eyes-solid:before{content:""}.hn-face-laugh-squint-solid:before{content:""}.hn-face-sad-solid:before{content:""}.hn-face-thinking-solid:before{content:""}.hn-file-import-solid:before{content:""}.hn-filter-alt-circle-solid:before{content:""}.hn-filter-solid:before{content:""}.hn-fire-solid:before{content:""}.hn-flag-checkered-solid:before{content:""}.hn-flag-solid:before{content:""}.hn-folder-open-solid:before{content:""}.hn-folder-solid:before{content:""}.hn-fork-solid:before{content:""}.hn-glasses-solid:before{content:""}.hn-globe-americas-solid:before{content:""}.hn-globe-solid:before{content:""}.hn-graduation-cap-solid:before{content:""}.hn-grid-solid:before{content:""}.hn-handshake-solid:before{content:""}.hn-hashtag-solid:before{content:""}.hn-heading-1-solid:before{content:""}.hn-heading-2-solid:before{content:""}.hn-heading-3-solid:before{content:""}.hn-headphones-solid:before{content:""}.hn-heart-solid:before{content:""}.hn-highlight-solid:before{content:""}.hn-hockey-mask-solid:before{content:""}.hn-home-solid:before{content:""}.hn-image-solid:before{content:""}.hn-indent-solid:before{content:""}.hn-info-circle-solid:before{content:""}.hn-italics-solid:before{content:""}.hn-laptop-code-solid:before{content:""}.hn-laptop-solid:before{content:""}.hn-lightbulb-solid:before{content:""}.hn-line-height-solid:before{content:""}.hn-link-solid:before{content:""}.hn-location-pin-solid:before{content:""}.hn-lock-alt-solid:before{content:""}.hn-lock-open-solid:before{content:""}.hn-lock-solid:before{content:""}.hn-login-solid:before{content:""}.hn-logout-solid:before{content:""}.hn-medical-house-solid:before{content:""}.hn-merge-solid:before{content:""}.hn-message-dots-solid:before{content:""}.hn-message-solid:before{content:""}.hn-minus-solid:before{content:""}.hn-moon-solid:before{content:""}.hn-music-solid:before{content:""}.hn-newspaper-solid:before{content:""}.hn-notebook-solid:before{content:""}.hn-numbered-list-solid:before{content:""}.hn-octagon-check-solid:before{content:""}.hn-octagon-times-solid:before{content:""}.hn-outdent-solid:before{content:""}.hn-page-break-solid:before{content:""}.hn-paint-brush-solid:before{content:""}.hn-paperclip-solid:before{content:""}.hn-paragraph-solid:before{content:""}.hn-pause-solid:before{content:""}.hn-pc-solid:before{content:""}.hn-pen-nib-solid:before{content:""}.hn-pen-solid:before{content:""}.hn-pencil-ruler-solid:before{content:""}.hn-pencil-solid:before{content:""}.hn-people-carry-solid:before{content:""}.hn-phone-ringing-high-solid:before{content:""}.hn-phone-ringing-low-solid:before{content:""}.hn-plane-departure-solid:before{content:""}.hn-plane-solid:before{content:""}.hn-play-solid:before{content:""}.hn-playlist-solid:before{content:""}.hn-plus-solid:before{content:""}.hn-print-solid:before{content:""}.hn-pro-solid:before{content:""}.hn-pull-request-solid:before{content:""}.hn-question-circle-solid:before{content:""}.hn-question-solid:before{content:""}.hn-quote-left-solid:before{content:""}.hn-quote-right-solid:before{content:""}.hn-receipt-solid:before{content:""}.hn-refresh-solid:before{content:""}.hn-retro-camera-solid:before{content:""}.hn-retro-pc-solid:before{content:""}.hn-robot-solid:before{content:""}.hn-save-solid:before{content:""}.hn-search-solid:before{content:""}.hn-seedlings-solid:before{content:""}.hn-shapes-solid:before{content:""}.hn-share-alt-solid:before{content:""}.hn-share-solid:before{content:""}.hn-shop-solid:before{content:""}.hn-shopping-cart-solid:before{content:""}.hn-shuffle-solid:before{content:""}.hn-side-nav-collapse-solid:before{content:""}.hn-side-nav-expand-solid:before{content:""}.hn-sitemap-solid:before{content:""}.hn-sort-solid:before{content:""}.hn-sound-mute-solid:before{content:""}.hn-sound-on-solid:before{content:""}.hn-sparkles-solid:before{content:""}.hn-spinner-solid:before{content:""}.hn-spinner-third-solid:before{content:""}.hn-star-crescent-solid:before{content:""}.hn-star-solid:before{content:""}.hn-strike-through-solid:before{content:""}.hn-sun-solid:before{content:""}.hn-table-solid:before{content:""}.hn-tag-solid:before{content:""}.hn-text-slash-solid:before{content:""}.hn-themes-solid:before{content:""}.hn-thumbsdown-solid:before{content:""}.hn-thumbsup-solid:before{content:""}.hn-thumbtack-solid:before{content:""}.hn-times-circle-solid:before{content:""}.hn-times-solid:before{content:""}.hn-times-square-solid:before{content:""}.hn-translate-solid:before{content:""}.hn-trash-alt-solid:before{content:""}.hn-trash-solid:before{content:""}.hn-trending-solid:before{content:""}.hn-trophy-solid:before{content:""}.hn-underline-solid:before{content:""}.hn-unlock-alt-solid:before{content:""}.hn-unlock-solid:before{content:""}.hn-upload-alt-solid:before{content:""}.hn-upload-solid:before{content:""}.hn-user-check-solid:before{content:""}.hn-user-headset-solid:before{content:""}.hn-user-minus-solid:before{content:""}.hn-user-plus-solid:before{content:""}.hn-user-solid:before{content:""}.hn-users-crown-solid:before{content:""}.hn-users-solid:before{content:""}.hn-video-camera-solid:before{content:""}.hn-vote-yeah-solid:before{content:""}.hn-wallet-solid:before{content:""}.hn-wifi-solid:before{content:""}.hn-window-close-solid:before{content:""}.hn-window-restore-solid:before{content:""}@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 Square;src:url(/assets/GeistPixel-Square-B0mEoKr8.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist Pixel Grid;src:url(/assets/GeistPixel-Grid-CHCHJWPp.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist Pixel Circle;src:url(/assets/GeistPixel-Circle-oRhtFUcQ.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist Pixel Triangle;src:url(/assets/GeistPixel-Triangle-D7IC7Eqm.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist Pixel Line;src:url(/assets/GeistPixel-Line-Bn2EgCYP.woff2) format("woff2");font-weight:500;font-display:swap}:root,.font-geist-sans,.font-geist-mono,.font-geist-pixel-square,.font-geist-pixel-grid,.font-geist-pixel-circle,.font-geist-pixel-triangle,.font-geist-pixel-line{--font-geist-sans: "Geist";--font-geist-mono: "Geist Mono";--font-geist-pixel-square: "Geist Pixel Square";--font-geist-pixel-grid: "Geist Pixel Grid";--font-geist-pixel-circle: "Geist Pixel Circle";--font-geist-pixel-triangle: "Geist Pixel Triangle";--font-geist-pixel-line: "Geist Pixel Line";--font-ui: var(--font-geist-sans), system-ui, sans-serif;--font-code: var(--font-geist-mono), ui-monospace, monospace;--font-pixel: var(--font-geist-pixel-square), var(--font-geist-mono), monospace;--font-pixel-grid: var(--font-geist-pixel-grid), var(--font-geist-mono), monospace;--font-pixel-circle: var(--font-geist-pixel-circle), var(--font-geist-mono), monospace;--font-pixel-triangle: var(--font-geist-pixel-triangle), var(--font-geist-mono), monospace;--font-pixel-line: var(--font-geist-pixel-line), var(--font-geist-mono), monospace}.font-ui{font-family:var(--font-ui)}.font-code{font-family:var(--font-code)}.font-pixel{font-family:var(--font-pixel)}.font-pixel-grid{font-family:var(--font-pixel-grid)}.font-pixel-circle{font-family:var(--font-pixel-circle)}.font-pixel-triangle{font-family:var(--font-pixel-triangle)}.font-pixel-line{font-family:var(--font-pixel-line)}:root{color-scheme:light;--page: #f4f0e7;--surface: #fffcf3;--ink: #202019;--muted: #55554f;--accent: #233fe1;--accent-soft: #dfe5fd;--yellow: #f3cf60;--orange: #f48454;--rust: #ae371c;--line: #c5c4b7;--soft: #e8e5d9;--on-accent: #fffaf0;--focus: #233fe1;--blue: #233fe1;--black: #202019;--paper: #f4f0e7;font:400 16px / 1.6 var(--font-ui);font-synthesis:none;color:var(--ink);background:var(--page);scroll-behavior:smooth;scroll-padding-top:98px}:root[data-theme=dark]{color-scheme:dark;--page: #1b1d2b;--surface: #272938;--ink: #f4f0e7;--muted: #c3c5ce;--accent: #b4c3ff;--accent-soft: #353e65;--line: #55596b;--soft: #333648;--rust: #ffa88d;--on-accent: #181b28;--focus: #f3cf60}*{box-sizing:border-box}body{margin:0;min-width:280px}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}a,button,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a{color:inherit;text-underline-offset:.3em}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:5px}[tabindex="-1"]:focus{outline:none}::-moz-selection{background:var(--yellow);color:var(--black)}::selection{background:var(--yellow);color:var(--black)}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{text-wrap:balance}img{display:block;max-width:100%}button:disabled{cursor:not-allowed;opacity:.65}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding-block:110px}.eyebrow,.date-label{font:500 12px / 1.6 var(--font-code)}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.date-label{color:var(--muted);font-weight:400}.section-heading{margin-bottom:42px;max-width:740px;min-width:0}.section-heading .eyebrow{display:inline-block;margin-bottom:24px}.section-heading h2{font-size:clamp(29px,3.15vw,45px);font-weight:620;letter-spacing:-.045em;line-height:1.16}.section-heading h2>span{display:block}.section-heading h2>.title-pixel{font-family:var(--font-pixel);font-size:1.65em;font-weight:500;letter-spacing:-.045em;line-height:1.12;margin-top:4px}.pixel-letter{display:inline-block;white-space:pre;-webkit-text-stroke:.6px currentColor;paint-order:stroke fill}.section-intro{max-width:51ch;color:var(--muted);margin-top:24px;font-size:17px;line-height:1.75}.skip-link{position:fixed;z-index:110;top:8px;left:8px;background:var(--yellow);color:var(--black);padding:12px 20px;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:50;background:var(--page);border-bottom:3px solid var(--ink)}.nav-shell{min-height:82px;width:min(1400px,calc(100% - 64px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:16px;font-weight:650;letter-spacing:-.045em;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:46px;height:44px;background:var(--yellow);border:2px solid var(--black);color:var(--black);box-shadow:3px 3px 0 var(--black);font:500 29px / 1 var(--font-pixel);transition:transform .2s}.wordmark:hover .brand-mark{transform:rotate(-8deg)}.wordmark-suffix{font-weight:400}.wordmark-dot{color:var(--accent)}.nav-links,.nav-controls{display:flex;align-items:center;gap:25px}.nav-links a{position:relative;display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:13px;font-weight:550;text-decoration:none}.nav-links a[aria-current]:after{content:"";position:absolute;bottom:0;left:0;height:3px;width:100%;background:var(--accent)}.nav-links a:hover{color:var(--accent)}.nav-links .nav-contact{background:var(--ink);color:var(--page);padding:0 15px;border:2px solid var(--ink)}.nav-links .nav-contact:hover{background:var(--accent);color:var(--on-accent)}.nav-controls{gap:3px}.utility-button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:500 12px var(--font-code);background:transparent;border:1px solid transparent}.utility-button:hover{background:var(--soft)}.menu-button{display:none}.hero{padding-top:8px;overflow:clip}.hero-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:64px;padding-block:75px 68px}.hero-copy{min-width:0;position:relative;z-index:1}.hero-label{font:500 12px / 1.6 var(--font-code);text-transform:uppercase;letter-spacing:.02em;color:var(--accent);margin-bottom:32px}.hero h1{font-size:clamp(66px,7.4vw,108px);font-weight:780;line-height:.95;letter-spacing:-.065em;white-space:nowrap;margin:0 0 34px}.hero h1>span{display:block}.hero h1 .pixel-name{font:500 1.1em / 1.05 var(--font-pixel);letter-spacing:-.055em;color:var(--accent);margin-top:7px}.hero-intro{font-size:18px;line-height:1.7;color:var(--muted);max-width:47ch}.hero-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:32px}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 19px;font-size:14px;font-weight:600;line-height:1.5;text-decoration:none;border:2px solid var(--ink);border-radius:0;transition:transform .16s,box-shadow .16s,background .16s}.button-primary{background:var(--yellow);color:var(--black);border-color:var(--black);box-shadow:4px 4px 0 var(--black)}.button-outline{color:var(--ink);background:var(--surface);box-shadow:3px 3px 0 var(--ink)}.button:hover{transform:translate(-2px,-3px);box-shadow:6px 6px 0 var(--ink)}.button:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink)}.resume-note{font:400 11px / 1.6 var(--font-code);color:var(--muted);margin-top:17px}.hero-art{border:3px solid var(--black);box-shadow:12px 12px 0 var(--black);max-width:510px;justify-self:end;width:100%;position:relative;background:var(--blue);transition:box-shadow .3s}.hero-art:hover{box-shadow:12px 12px 0 var(--orange)}.art-titlebar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--black);color:var(--paper);padding:11px 16px;font:400 12px / 1.6 var(--font-code)}.hero-art .artwork{aspect-ratio:1;overflow:hidden}.hero-art .artwork svg{width:100%;height:100%}.hero-art figcaption{background:var(--orange);color:var(--black);border-top:3px solid var(--black)}.hero-art figcaption a{display:grid;grid-template-columns:var(--avatar-size, 96px) minmax(0,1fr) 25px;align-items:center;gap:14px;padding:14px 17px;text-decoration:none;font:600 15px / 1.45 var(--font-ui)}.hero-art figcaption img{-o-object-fit:contain;object-fit:contain;image-rendering:pixelated;width:var(--avatar-size, 96px);height:var(--avatar-size, 96px);aspect-ratio:1;flex-shrink:0;border:2px solid var(--black);box-shadow:3px 3px 0 var(--black)}.hero-art figcaption i{margin-left:auto}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:25px;border-top:2px solid var(--ink);font:400 11px / 1.7 var(--font-code)}.hero-bottom p,.hero-bottom a,.motion-toggle{display:inline-flex;align-items:center;gap:10px}.hero-bottom a{text-decoration:none;min-height:44px}.motion-toggle{border:0;background:transparent;font:inherit;text-decoration:underline;text-underline-offset:4px;min-height:44px}.artwork{position:relative;min-width:0;overflow:hidden}.retro-art{display:block;width:100%;height:auto;overflow:visible}.chapter-opening{display:grid;grid-template-columns:1.05fr .9fr;gap:100px;align-items:center;margin-bottom:55px}.chapter-opening .section-heading{margin-bottom:0}.journey-art{overflow:hidden;border:3px solid var(--black);box-shadow:9px 9px 0 var(--accent);background:var(--paper)}.experience-section{border-top:3px solid var(--ink)}.experience-list{border-top:0;display:grid;gap:24px}.experience-entry{display:grid;grid-template-columns:1fr 1.8fr;gap:44px;padding:32px;border:2px solid var(--ink);background:var(--surface);box-shadow:5px 5px 0 var(--ink);transition:box-shadow .2s,translate .2s}.experience-meta{position:relative;padding-left:0}.experience-index{display:inline-grid;place-items:center;width:40px;height:34px;margin-bottom:18px;background:var(--accent-soft);color:var(--accent);border:1px solid currentColor;font:500 19px var(--font-pixel)}.experience-entry:focus-within{box-shadow:7px 7px 0 var(--accent)}.experience-meta h3{font-size:27px;font-weight:700;line-height:1.13;letter-spacing:-.04em;margin:13px 0 10px}.role-label{font-size:14px;color:var(--muted)}.recent-label{display:inline-block;margin-top:18px;font:500 10px / 1.6 var(--font-code);background:var(--accent-soft);color:var(--accent);padding:4px 8px}.experience-body h4{font-size:29px;letter-spacing:-.035em;font-weight:650;line-height:1.2;margin-bottom:13px}.experience-body>p{font-size:16px;line-height:1.75;color:var(--muted);max-width:63ch}details{min-width:0}summary{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:50px;cursor:pointer;list-style:none;font-size:13px;font-weight:550}summary::-webkit-details-marker{display:none}summary>span{font:400 22px / 1 var(--font-code);transition:transform .2s}details[open]>summary>span{transform:rotate(45deg)}details[open]>div,details[open]>p{animation:detail-in .3s ease-out}.contributions{margin-top:15px}.contributions>summary{border-bottom:1px solid var(--line)}.experience-context{font:400 12px / 1.6 var(--font-code);padding:16px 0 0;color:var(--accent)}.contributions ul:not(.tags){padding-left:19px;font-size:14px;line-height:1.8;color:var(--muted);margin:16px 0}.contributions li+li{margin-top:9px}.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:18px 0 0}.tags li{font:400 11px / 1.5 var(--font-code);border:1px solid var(--line);padding:4px 8px;margin:0!important}.projects-section{background:var(--orange);color:var(--black);border-block:3px solid var(--black);--accent: #263598;--muted: #493d32;--ink: var(--black);--line: #b7aa99;--surface: #fff9eb;position:relative;overflow:clip}.projects-section>.wrap{position:relative}.projects-section .section-heading{max-width:820px}.projects-section .section-intro{max-width:57ch}.projects-list{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:start;margin-top:58px}.project{min-width:0;background:var(--surface);border:3px solid var(--black);box-shadow:9px 9px 0 var(--black);transition:transform .25s,box-shadow .25s}.project:hover{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--black)}.project-helix{margin-top:85px}.project-placeholder{position:relative;height:265px;background:var(--blue);color:var(--paper);border-bottom:3px solid var(--black);overflow:hidden}.project-helix .project-placeholder{background:var(--yellow);color:var(--black)}.placeholder-top{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid currentColor;font:500 11px var(--font-code)}.placeholder-letter{display:block;font:500 166px / .95 var(--font-pixel);letter-spacing:-.12em;text-align:center;padding-top:10px}.placeholder-letter>span{animation:caret-blink 1.4s steps(1,end) infinite}.placeholder-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:9px 15px;font:400 11px var(--font-code);border-top:1px solid currentColor}.project-identity{padding:30px 30px 0}.project-identity .eyebrow{font-size:10px;color:#444239}.project-identity h3{font:500 76px / 1.1 var(--font-pixel);letter-spacing:-.06em;margin-top:6px}.project-identity h3>span{color:var(--blue)}.project-identity>p:not(.eyebrow){display:none}.project-info{padding:22px 30px 30px}.project-description{font-size:17px;line-height:1.7;min-height:88px}.project-info details{border-block:1px solid #b7aa99;margin-top:22px}.project-info details p{font-size:14px;line-height:1.75;padding-bottom:18px}.project-role{color:#554d42}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:550;min-height:44px;text-decoration:underline;text-underline-offset:5px;background:none;border:0;padding:0}.text-link:hover{color:var(--accent)}.project-info>.text-link{margin-top:15px}.skills-section{background:#171a27;color:var(--paper);--ink: #f4f0e7;--muted: #c9cad5;--accent: var(--yellow);--line: #505568;--focus: var(--yellow)}.skills-opening{display:grid;grid-template-columns:1.15fr .8fr;align-items:center;gap:90px;margin-bottom:48px}.skills-opening .section-heading{margin-bottom:0}.skills-art{max-width:none;width:100%}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.skills-grid article{padding:27px;border:2px solid #626c88;background:#222738;box-shadow:5px 5px #090c15;transition:border-color .2s,background .2s,box-shadow .2s}.skills-grid h3{font-size:clamp(21px,2vw,26px);letter-spacing:-.035em;line-height:1.2;color:var(--paper)}.skills-grid article>p:not(.tools){font-size:15px;color:var(--muted);margin-top:13px}.skills-grid .tools{font:400 12px / 1.85 var(--font-code);color:#e0e5fa;margin-top:20px}.work-method{margin-top:55px;padding:0;background:var(--paper);color:var(--black);border:3px solid var(--black);box-shadow:8px 8px #050711;--focus: var(--blue)}.work-method h3{font:500 27px / 1.15 var(--font-pixel)}.work-method p{font-size:15px;line-height:1.75}.about-section{background:#dde5f2;color:var(--black);--ink: var(--black);--muted: #4f5864;--accent: #233fe1;--line: #a4aebc;border-block:3px solid var(--black)}.about-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-areas:"portrait title" "portrait copy";gap:24px 72px;align-items:center}.about-heading{grid-area:title;align-self:end}.about-copy{grid-area:copy;align-self:start}.portrait-composition{grid-area:portrait;width:100%;max-width:360px;padding:0 6px 6px 0;justify-self:center}.about-portrait{width:100%;margin:0;color:inherit}.portrait-device{position:relative;padding:14px 14px 20px;border:3px solid var(--black);border-radius:12px 12px 54px;background:var(--yellow);color:var(--black);box-shadow:6px 6px 0 var(--black)}.portrait-device:before{content:"";position:absolute;inset:5px;border:1px solid #20201930;border-radius:6px 6px 46px;pointer-events:none}.portrait-heading{display:flex;align-items:center;gap:10px;padding:2px 2px 12px;font:550 10px / 1.5 var(--font-code);letter-spacing:.025em}.portrait-case-marks{display:flex;gap:3px;margin-left:auto}.portrait-case-marks i{width:3px;height:10px;background:#20201980;border-radius:1px}.portrait-bezel{padding:10px 10px 6px;border:2px solid var(--black);border-radius:5px 5px 22px;background:var(--black);color:var(--paper)}.portrait-display-label{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 2px 4px}.portrait-power{display:flex;align-items:center;gap:5px;font:400 8px/1 var(--font-code)}.portrait-power>span{width:5px;height:5px;background:var(--orange);border-radius:50%}.about-portrait[data-pixelated=true] .portrait-power>span{background:#d8e8a6}.portrait-color-mark{display:flex;align-items:baseline;gap:6px;font:28px/1 var(--font-pixel);letter-spacing:-.025em}.portrait-color-mark>span{display:inline-flex;transform:rotate(-5deg)}.portrait-color-mark b{font:750 15px/1 var(--font-code)}.portrait-color-mark b:nth-of-type(1){color:var(--orange)}.portrait-color-mark b:nth-of-type(2){color:var(--yellow)}.portrait-color-mark b:nth-of-type(3){color:#b4c3ff}.portrait-color-mark b:nth-of-type(4){color:#d8e8a6}.portrait-color-mark b:nth-of-type(5){color:#e5ddf5}.portrait-screen{display:block;position:relative;aspect-ratio:1;overflow:hidden;background:#e5ddf5}.portrait-photo,.portrait-pixel-image,.portrait-render{display:block;position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.portrait-photo{-o-object-position:50% 36%;object-position:50% 36%;transform:scale(1.15);transform-origin:50% 12%}.portrait-pixel-image,.portrait-render{image-rendering:pixelated;opacity:0}.about-portrait[data-pixelated=true] .portrait-pixel-image,.about-portrait[data-changing=true] .portrait-render{opacity:1}.portrait-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 12px;padding:0 4px}.portrait-dpad{width:56px;height:56px;flex-shrink:0;align-self:flex-start;margin-top:12px}.portrait-dpad svg{display:block;width:100%;height:100%}.dpad-shadow{fill:#20201960}.dpad-body{fill:var(--black)}.dpad-detail{fill:#83816a}.dpad-center{fill:#363729;stroke:#11120e}.portrait-action-pair{display:flex;align-items:flex-start;gap:12px}.portrait-action-unit{display:grid;justify-items:center;gap:8px;font:550 9px/1.4 var(--font-code)}.portrait-b-unit{margin-top:20px}.portrait-action{position:relative;display:grid;place-items:center;width:52px;height:52px;flex-shrink:0;padding:0;border:2px solid var(--black);border-radius:50%;box-shadow:3px 5px 0 var(--black),inset 0 2px #ffffff45;background:var(--blue);color:var(--paper);font:650 22px/1 var(--font-code);touch-action:manipulation;transition:transform .12s,box-shadow .12s}.portrait-action:after{content:"";position:absolute;inset:4px;border:1px solid #ffffff30;border-radius:inherit;pointer-events:none}.portrait-b{background:var(--orange);color:var(--black)}.portrait-action[aria-disabled=true]{transform:translate(2px,3px);box-shadow:1px 2px 0 var(--black),inset 0 1px 2px #20201935;cursor:default}.portrait-action:not([aria-disabled=true]):active{transform:translate(3px,5px);box-shadow:0 0 0 var(--black),inset 0 1px 2px #20201935}@media (hover: hover) and (pointer: fine){.portrait-action:not([aria-disabled=true]):hover{transform:translateY(-2px);box-shadow:3px 7px 0 var(--black),inset 0 2px #ffffff45}.portrait-action:not([aria-disabled=true]):active{transform:translate(3px,5px);box-shadow:0 0 0 var(--black),inset 0 1px 2px #20201935}}.portrait-device-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 8px;font:400 8px/1.5 var(--font-code)}.portrait-speaker{display:flex;gap:5px;rotate:-24deg;margin-right:8px}.portrait-speaker i{width:4px;height:20px;border-radius:2px;background:#20201990}.about-portrait figcaption{display:grid;gap:6px;padding:18px 0 0;text-align:center;font:400 10px/1.6 var(--font-code)}.portrait-location{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted)}.portrait-location i{flex-shrink:0}.about-layout .section-heading{margin-bottom:0}.about-bio{font-size:18px;line-height:1.8}.about-personal{font-size:16px;line-height:1.8;color:var(--muted);margin-top:18px}.location-line{display:flex;align-items:center;gap:9px;font:400 12px / 1.7 var(--font-code);margin:25px 0 9px}.credentials{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:3px solid var(--black);padding-top:28px;margin-top:85px}.credentials>h3{grid-column:1 / -1}.credentials h3{font:500 12px / 1.6 var(--font-code);text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.degree h4{font-size:20px;font-weight:600;line-height:1.4}.degree p{font-size:14px;color:var(--muted);margin-top:7px}.degree p.date-label,.certifications p.date-label{font-size:12px;line-height:1.7}.certifications,.languages{border-top:1px solid var(--line);padding-top:24px}.certifications>p,.languages>p{margin-top:11px;font-size:15px}.languages>p{color:var(--muted)}.contact-section{background:var(--yellow);color:var(--black);--ink: var(--black);--muted: #4c493b;--accent: #233fe1;--line: #b4a06e;--page: #f4f0e7;--surface: #fffbee;--rust: #ae371c;--focus: #233fe1}.contact-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:55px;align-items:start}.contact-copy .section-heading h2{font-size:clamp(45px,4.9vw,70px)}.contact-copy .section-intro{font-size:17px;max-width:37ch}.contact-copy .section-heading{margin-bottom:30px}.contact-art{width:min(100%,300px);margin:0;justify-self:end}.contact-email{display:block;font-size:clamp(18px,1.8vw,25px);overflow-wrap:anywhere;font-weight:650}.copy-button{color:var(--paper);background:var(--blue);font-size:14px;margin-top:24px;min-width:195px}.copy-feedback{font-size:13px;min-height:22px;margin-top:12px}.social-links{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.contact-form{min-width:0;background:var(--surface);color:var(--ink);border:2px solid #1c201e;padding:30px;box-shadow:7px 7px #1c201e}.contact-form h3{font-size:25px;font-weight:650;letter-spacing:-.035em}.form-required{font-size:12px;color:var(--muted);margin:6px 0 23px}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-field{min-width:0}.field-subject,.field-message{grid-column:1 / -1}.form-field label{display:block;font-size:13px;font-weight:550;margin-bottom:6px}.form-field input,.form-field textarea{display:block;min-height:48px;width:100%;padding:11px 12px;background:var(--page);border:1px solid var(--muted);border-radius:0;color:var(--ink);font-size:16px}.form-field textarea{resize:vertical;min-height:140px;line-height:1.5}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--muted);font-size:14px;opacity:.9}input::placeholder,textarea::placeholder{color:var(--muted);font-size:14px;opacity:.9}.form-field [aria-invalid=true]{border:2px solid var(--rust)}.form-error{font-size:12px;color:var(--rust);line-height:1.6;margin-top:8px}.form-feedback{border-left:3px solid var(--rust);padding:9px 12px;background:var(--page);margin-bottom:14px}.verification{margin-top:16px;min-width:0}.turnstile-host{min-height:65px;max-width:100%}.turnstile-host iframe{max-width:100%}.verification-retry{font-size:11px;min-height:44px}.form-privacy{font-size:11px;line-height:1.65;color:var(--muted);margin:16px 0}.form-submit{width:100%;justify-content:space-between}.form-fallback{font-size:12px;color:var(--muted);margin-top:17px;text-align:center}.form-fallback a{color:var(--ink)}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.form-success{min-height:420px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px}.form-success p{font-size:15px;color:var(--muted)}.success-mark{font:500 56px var(--font-pixel);color:var(--accent)}.contact-form{border-width:3px;box-shadow:10px 10px 0 var(--black);position:relative}.contact-form h3{font-family:var(--font-pixel);font-size:32px;margin:-30px -30px 22px;padding:19px 27px;background:var(--blue);color:var(--paper);border-bottom:3px solid var(--black)}.contact-form .form-success h3{margin:0;padding:0;background:none;border:0;color:var(--ink)}.form-submit[disabled] i{animation:loading-pulse .7s steps(2) infinite}.form-feedback{box-shadow:none}.site-footer{padding-block:30px;border-top:3px solid var(--ink)}.site-footer .wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.footer-brand{font:500 45px / 1 var(--font-pixel);text-decoration:none}.site-footer p{font-size:12px;color:var(--muted);margin-right:auto}.site-footer .text-link{font-size:11px}.back-top i{transform:rotate(-90deg)}.privacy-notice{position:fixed;z-index:80;right:20px;bottom:max(16px,env(safe-area-inset-bottom));width:min(440px,calc(100% - 36px));max-height:calc(100dvh - 100px);overflow-y:auto;padding:16px;background:var(--surface);color:var(--ink);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--black)}.privacy-notice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.privacy-notice h2{font-size:18px;font-weight:650;letter-spacing:-.025em}.privacy-notice-heading .utility-button{flex:0 0 40px;min-height:40px;font-size:24px}.privacy-notice p{margin-top:4px;font-size:13px;line-height:1.5;color:var(--muted)}.privacy-notice .privacy-actions{grid-template-columns:1fr 1.25fr;gap:10px;margin-top:14px}.privacy-notice .privacy-actions .button{min-width:0;min-height:44px;padding:8px;font-size:12px;white-space:normal}.privacy-panel{position:fixed;inset:0;margin:auto;width:min(540px,calc(100% - 40px));max-height:calc(100dvh - 40px);overflow-y:auto;padding:0;background:var(--surface);color:var(--ink);border:3px solid var(--ink);box-shadow:9px 9px 0 var(--black)}.privacy-panel::backdrop{background:#10131dc9;backdrop-filter:blur(6px)}.privacy-panel[open]{animation:privacy-enter .25s ease-out}.privacy-titlebar{display:flex;align-items:center;gap:12px;padding:10px 18px;background:var(--yellow);color:var(--black);border-bottom:3px solid var(--black);font:500 12px var(--font-code)}.privacy-titlebar .utility-button{margin-left:auto;font-size:26px;min-width:40px}.privacy-content{padding:30px}.privacy-symbol{display:inline-grid;place-items:center;width:70px;height:70px;background:var(--accent-soft);color:var(--accent);border:2px solid currentColor;box-shadow:4px 4px 0 currentColor;margin-bottom:26px}.privacy-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.privacy-panel h2{font-size:30px;font-weight:650;letter-spacing:-.025em}.privacy-panel p{font-size:15px;line-height:1.65;margin-top:10px;color:var(--muted)}.privacy-panel summary{font-size:13px;text-decoration:underline;padding-block:18px}.privacy-actions{display:grid;gap:14px;margin-top:18px}.privacy-actions .button{min-height:50px;padding:10px 12px;font-size:14px}@keyframes privacy-enter{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}.page-intro{position:fixed;inset:0;z-index:95;background:var(--blue);pointer-events:none;animation:intro-out .65s cubic-bezier(.76,0,.24,1) .75s both}.intro-panel{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;color:var(--paper)}.intro-monogram{font:500 clamp(110px,22vw,260px) / .8 var(--font-pixel);letter-spacing:-.1em;background:var(--yellow);border:4px solid var(--black);box-shadow:12px 12px 0 var(--black);color:var(--black);padding:15px 35px 32px;transform:rotate(-5deg);animation:intro-mark .65s steps(5) both}.intro-name{font:500 12px var(--font-code);letter-spacing:.1em}.intro-line{height:5px;width:160px;background:var(--orange);transform-origin:left;animation:line-in .7s steps(7) both}.will-reveal{opacity:0;translate:0 30px;transition:opacity .65s,translate .65s cubic-bezier(.16,1,.3,1)}.will-reveal.is-revealed{opacity:1;translate:0 0}@keyframes intro-out{to{transform:translateY(-102%);visibility:hidden}}@keyframes intro-mark{0%{transform:rotate(5deg) scale(.75);opacity:0}to{transform:rotate(-5deg) scale(1);opacity:1}}@keyframes line-in{0%{transform:scaleX(.05)}to{transform:scaleX(1)}}@keyframes loading-pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes art-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes caret-blink{0%,70%{opacity:1}71%,to{opacity:0}}@keyframes detail-in{0%{opacity:0;translate:0 -6px}to{opacity:1;translate:0 0}}:root[data-motion=paused]{scroll-behavior:auto}:root[data-motion=paused] *,:root[data-motion=paused] *:before,:root[data-motion=paused] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}:root[data-motion=paused] .page-intro{display:none}:root[data-motion=paused] .will-reveal{opacity:1;translate:none}:root[data-theme=dark] .projects-section{background:#522f2b;--surface: #f7eedf}:root[data-theme=dark] .projects-section .section-heading{color:var(--paper)}:root[data-theme=dark] .projects-section .section-heading .eyebrow{color:var(--yellow)}:root[data-theme=dark] .projects-section .section-intro{color:#f0d8c6}:root[data-theme=dark] .about-section{background:#2b3551;color:var(--paper);--ink: var(--paper);--muted: #c4cadd;--accent: #b4c3ff;--line: #5b6581}:root[data-theme=dark] .about-section .credentials{border-color:var(--line)}.route-dashes{animation:route-flow 1.2s linear infinite}.module{transform-box:fill-box;transform-origin:center}.mail-letter{animation:letter-rise 5s ease-in-out infinite}.mail-plane{transform-origin:465px 95px;animation:plane-send 5s ease-in-out infinite}.mail-flight-path{animation:route-flow 2s linear infinite}[data-artwork] *{animation-play-state:paused}[data-artwork].art-in-view *{animation-play-state:running}.section-heading.is-revealed .title-lead{animation:title-rise .65s cubic-bezier(.16,1,.3,1) backwards}.section-heading.is-revealed .pixel-letter{animation:none}.project.is-revealed .placeholder-letter{animation:project-stamp .65s steps(6) backwards}@keyframes code-draw{0%,20%{stroke-dashoffset:1}42%,to{stroke-dashoffset:0}}@keyframes route-flow{to{stroke-dashoffset:-44}}@keyframes letter-rise{0%,to{transform:translateY(0)}35%,60%{transform:translateY(-35px)}}@keyframes plane-send{0%,to{transform:translate(0) rotate(0)}35%,60%{transform:translate(20px,-17px) rotate(8deg)}}@keyframes title-rise{0%{clip-path:inset(100% 0 0);transform:translateY(20px)}to{clip-path:inset(0);transform:translateY(0)}}@keyframes pixel-assemble{0%{opacity:0;transform:translateY(.3em);clip-path:inset(50% 100% 50% 0)}40%{opacity:1;clip-path:inset(0 30% 0 0)}75%{transform:translateY(-2px);clip-path:inset(0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}@keyframes project-stamp{0%{transform:translateY(18px) rotate(-5deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}.site-header:after{content:"";position:absolute;height:3px;left:0;right:0;bottom:-3px;background:var(--accent);transform:scaleX(var(--reading-progress, 0));transform-origin:left;pointer-events:none}.site-header[data-section="#projects"] .brand-mark{background:var(--orange)}.site-header[data-section="#stack"] .brand-mark{background:var(--blue);color:var(--paper)}.site-header[data-section="#profile"] .brand-mark{background:#dde5f2}.hero-copy h1>span{animation:hero-type .65s steps(8,end) .7s backwards}.hero-copy h1>span:last-child{animation-delay:.9s}.hero-intro{animation:hero-copy-in .5s ease-out 1.05s backwards}.hero-actions,.resume-note{animation:hero-copy-in .5s ease-out 1.18s backwards}.hero:focus-within .hero-copy *{animation:none}.artwork{--look-x: 0;--look-y: 0}.site-footer .footer-signature{display:grid;grid-template-columns:1fr 1.1fr;gap:22px;align-items:baseline;margin-bottom:32px;padding-bottom:34px;border-bottom:2px solid var(--ink);font-size:clamp(30px,10.4vw,148px);line-height:.95;letter-spacing:-.07em;font-weight:750}.footer-signature span:last-child{font-family:var(--font-pixel);font-weight:500;color:var(--accent);text-align:right;letter-spacing:-.06em}.contact-form[aria-busy=true] .form-submit:after{content:"";width:15px;height:15px;border:3px solid var(--black);border-right-color:transparent;animation:submit-turn 1s steps(4,end) infinite}.contact-form[aria-busy=true] .form-submit>span{display:none}@keyframes hero-type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes hero-copy-in{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes submit-turn{to{transform:rotate(360deg)}}.settings{position:relative}.settings-trigger{display:flex;gap:9px;padding:10px 12px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:var(--surface);font-size:12px}.settings-trigger[aria-expanded=true]{background:var(--yellow);color:var(--black);border-color:var(--black)}.settings-trigger i{transition:rotate .25s}.settings-trigger[aria-expanded=true] i{rotate:90deg}.settings-indicator{font:500 17px var(--font-code)}.settings-panel{position:absolute;right:0;top:calc(100% + 16px);width:330px;max-height:calc(100dvh - 110px);overflow-y:auto;background:var(--surface);border:2px solid var(--ink);box-shadow:7px 7px 0 var(--black);animation:detail-in .2s ease-out}.settings-title{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--yellow);color:var(--black);border-bottom:2px solid var(--black);padding:10px 18px;font:500 22px var(--font-pixel)}.settings-title span{font-size:30px}.setting-row{width:100%;display:flex;align-items:center;gap:12px;min-height:61px;padding:12px 18px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;font-size:13px}.setting-row:hover{background:var(--soft)}.setting-row:disabled{opacity:.65;cursor:default}.switch-track{display:flex;gap:5px;align-items:center;width:68px;height:28px;padding:3px;margin-left:auto;flex-shrink:0;border:2px solid var(--ink);background:var(--soft);font:500 10px var(--font-code)}.switch-knob{width:18px;height:18px;background:var(--ink);transition:translate .2s}.setting-row[aria-checked=true] .switch-track{background:var(--yellow);color:var(--black);border-color:var(--black);flex-direction:row-reverse}.setting-row[aria-checked=true] .switch-knob{background:var(--black)}.settings-actions{padding:8px;display:grid;gap:4px}.settings-actions button{display:flex;align-items:center;gap:12px;padding:10px;min-height:44px;background:transparent;border:0;text-align:left;font-size:12px}.settings-actions button:hover{background:var(--accent-soft)}.settings-actions button:disabled{opacity:.5;cursor:default}.settings-note{padding:8px 18px;color:var(--muted);font-size:12px}.skills-machine{width:100%;min-width:0;max-width:400px;justify-self:end;border:3px solid #0a0d15;box-shadow:9px 9px #060811;background:var(--paper);color:var(--black);--focus: var(--blue)}.machine-titlebar{display:flex;align-items:center;gap:10px;padding:12px 15px;border-bottom:3px solid var(--black);background:var(--orange);font:500 11px var(--font-code)}.machine-titlebar>span:last-child{margin-left:auto}.machine-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:15px 15px 0}.machine-controls button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;background:var(--paper);color:var(--black);border:2px solid var(--black);box-shadow:3px 3px 0 var(--black);font:500 12px var(--font-code)}.machine-controls button[aria-pressed=true]{background:var(--yellow);translate:2px 2px;box-shadow:1px 1px 0 var(--black)}.machine-readout{display:flex;align-items:center;gap:10px;font:500 12px / 1.5 var(--font-code);padding:16px;min-height:53px}.machine-readout>span{color:var(--blue)}.skills-machine .module{opacity:.5;transition:opacity .3s,filter .3s}.skills-machine[data-active="0"] .module-b,.skills-machine[data-active="1"] .module-a,.skills-machine[data-active="2"] .module-c,.skills-machine[data-active="3"] .module-d{opacity:1;filter:drop-shadow(0 0 6px #f3cf6050)}.skills-grid article.is-selected{border-color:var(--yellow);box-shadow:5px 5px #a28839;background:#2b3040}.skill-card-heading{display:flex;gap:14px;align-items:center}.skill-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;background:var(--yellow);color:var(--black);border:2px solid var(--black);box-shadow:3px 3px #060811}.skill-card:nth-child(2) .skill-icon{background:#b4c3ff}.skill-card:nth-child(3) .skill-icon{background:var(--orange)}.skill-number{margin-left:auto;align-self:flex-start;color:#a2acc8;font:500 12px var(--font-code)}.skill-tools{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:22px 0 0}.skill-tools li{padding:5px 9px;background:#343c50;color:#f1f2fa;border:1px solid #68758f;font:400 12px / 1.5 var(--font-code)}.method-heading{display:flex;align-items:center;justify-content:space-between;padding:23px 28px;background:var(--yellow);border-bottom:3px solid var(--black)}.method-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:2px solid var(--black)}.method-tabs button{min-width:0;display:flex;align-items:center;gap:12px;padding:18px;min-height:75px;color:var(--black);background:#e7e2d3;border:0;border-right:1px solid var(--black);font-size:15px;font-weight:600;text-align:left}.method-tabs button:last-child{border-right:0}.method-tabs button[aria-selected=true]{background:var(--blue);color:var(--paper)}.method-tabs button i{margin-left:auto}.step-number{font:500 22px var(--font-pixel)}.method-panel:not([hidden]){display:grid;grid-template-columns:140px 1fr;align-items:center;gap:36px;min-height:240px;padding:34px;animation:detail-in .25s ease-out}.method-panel h4{font-size:clamp(24px,2.5vw,32px);font-weight:650;line-height:1.2;letter-spacing:-.035em;margin-bottom:14px}.method-panel p{max-width:65ch}.method-panel .method-detail{margin-top:16px;font:500 12px / 1.7 var(--font-code);color:#3348a0}.method-illustration{width:126px;height:126px;display:grid;place-items:center;position:relative;color:var(--blue);background:#e0e4ff;border:3px solid var(--black);box-shadow:6px 6px 0 var(--black);transform:rotate(-4deg)}.method-note{display:flex;gap:13px;align-items:center;border-top:1px dashed #a9a395;padding:20px 28px;color:#525247}.work-method .method-note{font-size:13px}.credential-card{background:#f6f5ec;color:var(--black);padding:26px;border:2px solid var(--black);box-shadow:4px 4px #8b9bb3}.credential-card>i{color:var(--blue);margin-bottom:17px}.credential-card h3{color:var(--blue);margin-bottom:20px}.credential-card p{color:#4f5864}.cert-list,.language-list{list-style:none;padding:0;margin:0}.cert-list li,.language-list li{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #d0d1c5;font-size:15px;line-height:1.6}.cert-list li:last-child,.language-list li:last-child{border:0}.cert-list i{color:#354dab}.language-code{flex-shrink:0;display:grid;place-items:center;width:34px;height:30px;background:#dfe5fd;border:1px solid #a0aac5;color:#263b8d;font:500 12px var(--font-code)}.contact-opening{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:center;gap:60px;margin-bottom:50px}.contact-opening .section-heading{margin-bottom:0}.contact-opening .section-heading h2{font-size:clamp(48px,6.5vw,88px)}.contact-opening .section-intro{max-width:49ch;font-size:18px}.contact-address{position:relative;background:#fffbee;border:2px solid var(--black);box-shadow:6px 6px 0 var(--black);padding:28px}.address-title{display:flex;align-items:center;gap:15px;border-bottom:1px dashed #aaa38e;padding-bottom:22px;margin-bottom:22px}.address-title i{color:var(--blue)}.address-title h3{font:500 25px / 1.2 var(--font-pixel)}.contact-email{text-decoration-thickness:1px;line-height:1.55}.contact-email:hover{color:var(--blue)}.contact-address[data-copy-state=copied] .copy-button{color:#17281c;background:#b9d7ac}.contact-address[data-copy-state=copied] .copy-button i{animation:copy-check .3s ease-out}.contact-address[data-copy-state=error] .copy-feedback{color:#a02c1c}.social-title{margin-top:35px;font:500 12px var(--font-code);text-transform:uppercase;letter-spacing:.06em}.social-card{display:flex;align-items:center;gap:12px;text-decoration:none;padding:20px 16px;min-height:85px;color:var(--paper);background:var(--blue);border:2px solid var(--black);box-shadow:4px 4px 0 var(--black);font-size:18px;font-weight:600;transition:translate .2s,box-shadow .2s}.social-card:last-child{background:var(--black)}.social-card>i:last-child{margin-left:auto;font-size:16px!important}.social-card:hover{translate:-2px -3px;box-shadow:6px 7px 0 var(--black)}.utility-button,.machine-controls button,.setting-row,.method-tabs button{transition:background .2s,translate .12s,box-shadow .12s}.utility-button:active,.machine-controls button:active,.social-card:active{translate:3px 3px;box-shadow:0 0 0 var(--black)}.method-tabs button:active,.setting-row:active{box-shadow:inset 0 0 0 3px currentColor}.button i,.text-link i{transition:translate .2s,rotate .2s}.button:hover:not(:disabled)>i:last-child,.text-link:hover>i:last-child{translate:3px 0}.contributions summary{padding:14px 0}.contributions summary:hover{color:var(--accent)}.contributions summary>span{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);background:var(--accent-soft);color:var(--accent)}.form-field:focus-within label{color:var(--blue)}.form-field input,.form-field textarea{transition:background .2s,box-shadow .2s}.form-field input:focus,.form-field textarea:focus{background:#fff;box-shadow:3px 3px #233fe135}@keyframes copy-check{0%{scale:.7}65%{scale:1.2}to{scale:1}}@media (max-width: 1150px){.wordmark-suffix{display:none}.nav-links{gap:17px}.nav-shell{gap:18px}.wrap{width:calc(100% - 80px)}.hero-layout{gap:40px}.hero h1{font-size:7.35vw}.hero-intro{font-size:16px}.hero-actions .button{font-size:12px;padding:12px 14px;gap:10px}.hero-label{font-size:10px}.chapter-opening,.skills-opening{gap:60px}.about-layout{-moz-column-gap:60px;column-gap:60px}.projects-section .section-heading{max-width:73%}.contact-layout{gap:45px}.projects-list{gap:34px}.project-description{min-height:118px;font-size:16px}}@media (max-width: 850px){.wrap{width:calc(100% - 48px)}.nav-shell{width:calc(100% - 40px);min-height:70px}.menu-button{display:inline-flex;padding-inline:10px}.nav-links{display:none}.nav-links.is-open{display:flex;position:absolute;top:100%;left:0;width:100%;flex-direction:column;align-items:stretch;gap:0;padding:12px 24px 20px;border-bottom:3px solid var(--ink);background:var(--page);box-shadow:0 8px #20201920;animation:detail-in .2s ease-out}.nav-links a{min-height:49px;font-size:16px;padding-inline:12px}.nav-links a[aria-current]:after{left:12px;width:30px}.hero-layout{padding-block:52px;gap:28px;grid-template-columns:1.15fr 1fr}.hero-label{max-width:30ch}.hero h1{font-size:7.35vw}.hero-intro{font-size:15px}.hero-actions{gap:13px;margin-top:22px}.hero-actions .button{font-size:12px}.art-titlebar{font-size:10px;padding:8px 11px}.hero-art{box-shadow:8px 8px 0 var(--black)}.hero-art figcaption a{font-size:10px;padding:10px;gap:8px}.hero-bottom{flex-wrap:wrap;font-size:10px;gap:5px 20px}.section{padding-block:80px}.section-heading h2{font-size:clamp(27px,3.4vw,35px)}.section-intro{font-size:16px}.chapter-opening{gap:40px;grid-template-columns:1.2fr .8fr}.experience-entry{gap:34px;grid-template-columns:1fr 1.6fr}.experience-meta h3{font-size:23px}.experience-body h4{font-size:25px}.projects-list{gap:26px}.project-placeholder{height:230px}.placeholder-letter{font-size:135px}.project-identity,.project-info{padding-inline:22px}.project-identity h3{font-size:65px}.skills-opening{gap:35px}.skills-grid{gap:30px}.work-method{grid-template-columns:1fr 2.5fr}.about-layout{gap:24px 32px;grid-template-areas:"title title" "portrait copy"}.about-bio{font-size:16px}.about-personal{font-size:15px}.contact-layout{grid-template-columns:1fr;gap:45px}.contact-copy{max-width:650px;position:relative}.contact-art{float:right;width:190px;margin:25px 15px 25px 25px}.contact-copy .section-heading h2{font-size:60px}.contact-form{width:100%;max-width:680px}.contact-email{font-size:20px}}@media (max-width: 650px){:root{scroll-padding-top:80px}.wrap{width:calc(100% - 40px)}.nav-shell{width:calc(100% - 32px);min-height:66px;gap:8px}.wordmark{font-size:14px;gap:9px}.brand-mark{width:33px;height:33px;font-size:22px;box-shadow:2px 2px 0 var(--black)}.nav-controls{gap:0}.menu-button{font-size:11px;gap:6px}.hero-layout{grid-template-columns:1fr;gap:43px;padding-block:38px 44px}.hero-label{max-width:none;font-size:11px;margin-bottom:25px}.hero h1{font-size:clamp(51px,12.7vw,79px);margin-bottom:23px}.hero h1 .pixel-name{font-size:1.12em}.hero-intro{font-size:16px;max-width:45ch}.hero-actions{gap:14px;margin-top:26px}.hero-actions .button{font-size:12px;padding:12px 14px}.resume-note{font-size:10px;margin-top:16px}.hero-art{max-width:400px;width:calc(100% - 24px);justify-self:center}.art-titlebar{font-size:11px;padding:10px 13px}.hero-art figcaption a{font-size:11px;padding:10px 13px}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;gap:2px 8px;padding-block:19px;font-size:10px}.hero-bottom p{grid-column:1 / -1}.hero-bottom .motion-toggle{justify-content:flex-end;font-size:9px;gap:7px}.section{padding-block:62px}.section-heading{margin-bottom:29px}.section-heading .eyebrow{font-size:10px;margin-bottom:20px}.section-heading h2{font-size:clamp(25px,6.5vw,35px)}.section-intro{font-size:15px;margin-top:21px}.chapter-opening{grid-template-columns:1fr;gap:33px;margin-bottom:40px}.journey-art{max-width:340px;width:calc(100% - 30px);justify-self:end;margin-right:15px}.experience-entry{grid-template-columns:1fr;gap:24px;padding-block:31px}.experience-meta h3{font-size:27px}.experience-meta{padding-left:17px}.experience-meta .recent-label{margin-top:10px}.experience-body h4{font-size:25px}.experience-body>p{font-size:15px}.contributions ul:not(.tags){font-size:14px}.contributions summary{font-size:12px}.projects-section .section-heading{max-width:100%}.projects-list{grid-template-columns:1fr;gap:35px;margin-top:0}.project-helix{margin-top:0}.project{box-shadow:6px 6px 0 var(--black)}.project-placeholder{height:250px}.placeholder-letter{font-size:158px}.placeholder-top,.placeholder-caption{font-size:10px}.project-identity{padding:25px 24px 0}.project-info{padding:20px 24px 25px}.project-identity h3{font-size:72px}.project-description{font-size:16px;min-height:0}.skills-opening{grid-template-columns:1fr;gap:33px;margin-bottom:44px}.skills-art{width:calc(100% - 30px);max-width:330px;justify-self:center}.skills-grid{grid-template-columns:1fr;gap:28px}.skills-grid h3{font-size:25px}.work-method{grid-template-columns:1fr;gap:19px;padding:24px;margin-top:39px}.work-method h3{font-size:26px}.work-method p{font-size:14px}.about-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "portrait" "copy";gap:28px}.about-layout .section-heading{margin-bottom:0}.portrait-composition{max-width:346px}.about-bio{font-size:16px}.credentials{grid-template-columns:1fr;gap:25px;margin-top:58px;padding-top:25px}.degree h4{font-size:19px}.degree p{font-size:13px}.certifications,.languages{padding-top:21px}.contact-art{float:none;width:245px;margin:0 0 26px auto}.contact-copy .section-heading h2{font-size:clamp(42px,11vw,59px)}.contact-copy .section-intro,.contact-email{font-size:16px}.contact-form{padding:22px;box-shadow:6px 6px 0 var(--black)}.contact-form h3{font-size:29px;margin:-22px -22px 20px;padding:18px 20px}.form-fields{grid-template-columns:1fr;gap:17px}.contact-form .form-success h3{margin:0;padding:0}.site-footer .wrap{gap:10px 22px}.site-footer p{font-size:11px}.site-footer .text-link{font-size:10px}.privacy-panel{left:12px;bottom:12px;width:calc(100% - 24px);padding:18px}.intro-name{font-size:10px}}@media (max-width: 359px){.wordmark>span:not(.brand-mark){display:none}.hero-label{font-size:9px}.hero h1{font-size:12.8vw}.hero-actions{flex-direction:column}.hero-actions .button{width:100%;font-size:13px}.hero-bottom{font-size:9px}.hero-bottom .motion-toggle{font-size:8px}.contact-form{padding:15px}.contact-form h3{margin:-15px -15px 18px;padding:16px 14px}.turnstile-host{min-height:140px}.project-identity,.project-info{padding-inline:19px}}@media (max-width: 1150px){.nav-links{gap:13px}.nav-links a{font-size:12px}.settings-trigger{padding:9px;gap:7px}.contact-layout{gap:30px}.social-links{grid-template-columns:1fr}.social-card{min-height:72px}.method-tabs button{gap:8px;padding:16px 12px;font-size:13px}.method-tabs button i{display:none}}@media (max-width: 850px){.hero-art{--avatar-size: 80px}.skills-opening{grid-template-columns:1fr 1fr;gap:30px}.machine-titlebar{flex-wrap:wrap}.machine-titlebar>span:last-child{display:none}.skills-grid article{padding:22px}.skill-card-heading{gap:12px}.skill-number{display:none}.skill-icon{width:40px;height:40px}.contact-opening{grid-template-columns:1fr 190px;gap:20px}.contact-opening .contact-art{float:none;width:100%;margin:0}.contact-layout{grid-template-columns:1fr;gap:35px}.contact-copy,.contact-form{max-width:none}.contact-copy{display:grid;grid-template-columns:1.2fr 1fr;gap:0 22px}.contact-address{grid-row:1 / 3}.social-title{margin-top:0;align-self:start}.social-links{align-self:start}.work-method{display:block;padding:0}.credential-card{padding:22px}}@media (max-width: 650px){.settings-panel{position:fixed;top:77px;left:16px;right:16px;width:auto;max-height:calc(100dvh - 95px)}.settings-trigger{min-width:44px;min-height:42px}.settings-indicator{display:none}.hero-art{--avatar-size: 88px}.hero-bottom{display:flex;align-items:flex-start;flex-direction:column;gap:8px;padding-block:20px;font-size:11px}.hero-bottom a{border-bottom:2px solid var(--accent);font-family:var(--font-ui);font-size:14px;font-weight:600}.experience-entry{padding:24px 21px;gap:23px}.experience-meta{padding-left:0}.experience-index{float:right;margin-left:12px}.experience-meta .date-label{padding-top:8px;font-size:10px}.skills-opening{grid-template-columns:1fr;gap:30px}.skills-machine{width:calc(100% - 14px);max-width:355px;justify-self:center}.skills-machine .skills-art{max-width:none;width:100%}.skills-grid{gap:21px}.skills-grid article{padding:22px 20px}.skills-grid h3{font-size:23px}.skill-tools{gap:7px}.skill-tools li{font-size:12px;padding:4px 7px}.method-heading{padding:20px}.method-heading>span{display:none}.method-tabs{grid-template-columns:1fr 1fr}.method-tabs button{padding:13px 15px;min-height:63px;font-size:13px;border-bottom:1px solid var(--black)}.method-tabs button:nth-child(2n){border-right:0}.method-tabs button:nth-child(n+3){border-bottom:0}.method-panel:not([hidden]){grid-template-columns:1fr;padding:27px 23px;gap:24px;min-height:390px}.method-illustration{width:80px;height:80px}.method-illustration>i{font-size:40px!important}.method-panel h4{font-size:27px}.work-method .method-panel p{font-size:15px}.work-method .method-panel .method-detail{font-size:12px}.method-note{padding:20px;align-items:flex-start}.credentials{gap:18px}.credentials h3{font-size:12px}.credential-card{padding:24px}.degree p{font-size:14px}.contact-opening{grid-template-columns:1fr;gap:14px;margin-bottom:30px}.contact-opening .section-heading h2{font-size:clamp(44px,11.5vw,66px)}.contact-opening .section-intro{font-size:17px}.contact-opening .contact-art{width:200px;justify-self:end}.contact-copy{display:block}.contact-address{padding:24px}.contact-email{font-size:20px}.social-title{margin-top:30px}.social-links{grid-template-columns:1fr 1fr}.social-card{gap:8px;padding:17px 12px;min-height:90px;font-size:16px;flex-wrap:wrap}.social-card>i:first-child{font-size:22px!important}.social-card>i:last-child{font-size:14px!important}.privacy-panel{inset:0;margin:auto;width:calc(100% - 32px);padding:0;max-height:calc(100dvh - 32px)}.privacy-content{padding:23px}.privacy-panel h2{font-size:27px}.privacy-panel p{font-size:14px}.privacy-titlebar{padding:7px 14px;font-size:11px;gap:8px}}@media (max-width: 359px){.settings-trigger{font-size:11px}.social-links{grid-template-columns:1fr}.social-card{min-height:68px}.contact-address{padding:20px}.contact-email{font-size:18px}}.language-setting{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);font-size:13px}.language-setting>span{display:flex;align-items:center;gap:12px}.language-options{display:flex;border:2px solid var(--ink)}.language-options button{min-height:40px;min-width:48px;padding:8px 10px;border:0;background:transparent;font:600 11px var(--font-code);transition:background .2s,color .2s}.language-options button[aria-pressed=true]{background:var(--yellow);color:var(--black)}.language-options button:active{box-shadow:inset 0 0 0 2px currentColor}.scroll-arrow{display:inline-grid;place-items:center;width:28px;height:28px;flex-shrink:0;--travel-nudge: 3px}.scroll-arrow svg{width:24px;height:24px;transition:translate .25s cubic-bezier(.22,1,.36,1)}.scroll-link:is(:hover,:focus-visible) .scroll-arrow svg{translate:0 var(--travel-nudge)}.back-top .scroll-arrow{--travel-nudge: -3px}.back-top .scroll-arrow svg{rotate:180deg}.hero-art figcaption a{font:600 15px / 1.4 var(--font-ui)}.hero-bottom .scroll-link{padding-inline:12px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.hero-bottom .scroll-link:active{translate:3px 3px;box-shadow:none}.about-copy>.text-link{margin-top:22px}.contact-section{padding-block:54px}.contact-section .contact-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"intro form" "channels form";grid-template-rows:auto 1fr;gap:26px 38px;align-items:start}.contact-section .contact-opening{grid-area:intro;display:block;margin:0}.contact-opening .section-heading .eyebrow{margin-bottom:14px}.contact-opening .section-heading h2{font-size:clamp(28px,3.1vw,39px)}.contact-opening .section-heading h2>.title-pixel{font-family:var(--font-pixel);font-size:1.5em;letter-spacing:-.05em}.contact-opening .section-intro{font-size:16px;line-height:1.65;margin-top:18px;max-width:38ch}.contact-section .contact-copy{grid-area:channels;display:block;max-width:none}.contact-section .contact-address{padding:18px}.contact-section .address-title{gap:14px;padding-bottom:12px;margin-bottom:14px}.contact-section .contact-art{width:86px;flex:0 0 86px;margin:0;float:none}.contact-section .address-title h3{font:600 17px / 1.25 var(--font-ui);letter-spacing:-.025em}.contact-section .contact-email{font-size:clamp(15px,1.6vw,20px)}.contact-section .copy-button{min-width:0;min-height:42px;margin-top:14px;padding:10px 14px;font-size:13px}.contact-section .copy-feedback{min-height:0;margin:0}.contact-section .copy-feedback:not(:empty){margin-top:10px}.contact-section .social-title{margin-top:24px;font-size:11px}.contact-section .social-links{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.contact-section .social-card{min-height:54px;padding:12px;gap:8px;font-size:15px;flex-wrap:nowrap}.contact-section .social-card>i:first-child{font-size:21px!important}.contact-section .contact-form{grid-area:form;padding:20px;max-width:none;box-shadow:7px 7px 0 var(--black)}.contact-section .contact-form>h3{font:600 22px / 1.3 var(--font-ui);margin:-20px -20px 14px;padding:14px 20px}.contact-section .form-required{margin:0 0 14px;font-size:11px}.contact-section .form-fields{gap:12px}.contact-section .form-field label{margin-bottom:4px;font-size:12px}.contact-section .form-field input{min-height:44px;padding:9px 11px}.contact-section .form-field textarea{min-height:96px;padding:9px 11px}.contact-section .verification{margin-top:12px}.contact-section .verification .form-privacy{margin:6px 0}.contact-section .form-data-notice{margin:12px 0;font-size:11px}.form-data-notice summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding-block:5px}.form-data-notice p{margin-top:8px}.contact-section .form-submit{min-height:46px;padding:11px 16px;font-size:14px}.contact-section .form-fallback{margin-top:12px;font-size:11px}.site-footer{padding-block:34px 18px;border-top:3px solid var(--ink)}.site-footer .footer-main{display:grid;grid-template-columns:auto 1fr auto;gap:22px}.site-footer .footer-brand{display:grid;place-items:center;width:58px;height:58px;border:2px solid var(--black);background:var(--yellow);color:var(--black);box-shadow:4px 4px 0 var(--accent);font-size:39px}.site-footer .footer-note{color:var(--ink);font:500 clamp(21px,2.5vw,30px) / 1.2 var(--font-pixel);margin-bottom:7px}.site-footer .back-top{min-height:48px;font-size:12px;gap:18px}.site-footer .footer-links{gap:24px;margin-top:26px;padding-top:12px;border-top:1px solid var(--line)}.footer-links a{display:inline-flex;align-items:center;gap:7px;min-height:36px;font-size:12px;text-decoration:none}.footer-links a:hover{text-decoration:underline;text-underline-offset:5px}@media (max-width: 850px){.contact-section .contact-layout{grid-template-columns:1fr;grid-template-areas:"intro" "form" "channels";gap:28px;max-width:620px}.contact-section .contact-opening .section-heading h2{font-size:31px}.contact-opening .section-intro{max-width:50ch}.contact-section .contact-copy{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.contact-section .contact-address{grid-row:1 / 3}.contact-section .social-title{margin-top:0}.contact-section .social-links{grid-template-columns:1fr}}@media (max-width: 650px){.section-heading h2>.title-pixel{font-size:1.5em}.contact-section{padding-block:38px}.contact-section .contact-layout{gap:24px;width:calc(100% - 28px)}.contact-section .contact-opening .section-heading h2{font-size:29px}.contact-section .contact-form{padding:16px}.contact-section .contact-form>h3{margin:-16px -16px 12px;padding:13px 16px;font-size:21px}.contact-section .form-fields{grid-template-columns:1fr;gap:10px}.contact-section .contact-copy{display:block}.contact-section .social-title{margin-top:22px}.contact-section .social-links{grid-template-columns:1fr 1fr}.site-footer .footer-main{grid-template-columns:auto 1fr;gap:18px}.site-footer .back-top{grid-column:1 / -1;justify-content:space-between}.site-footer .footer-links{gap:16px}}@media (min-width: 380px) and (max-width: 650px){.contact-section .form-fields{grid-template-columns:1fr 1fr}}@media (max-width: 650px){.machine-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:12px 12px 0}.machine-controls button{min-width:0;gap:4px;padding:6px 2px;font-size:10px}}@media (max-width: 359px){.hero-art{--avatar-size: 72px}.hero-art figcaption a{font-size:13px}.section-heading h2{font-size:24px}.section-heading h2>.title-pixel{font-size:1.35em}.contact-section .contact-opening .section-heading h2{font-size:26px}.contact-section .contact-form{padding:14px}.contact-section .contact-form>h3{margin:-14px -14px 12px}.site-footer .footer-links{gap:12px}}@media (min-width: 851px) and (max-height: 780px){.contact-section{padding-block:30px}.contact-section .contact-form{padding:16px}.contact-section .contact-form>h3{margin:-16px -16px 10px;padding:10px 16px}.contact-section .form-required{margin-bottom:10px}.contact-section .form-fields{gap:10px}.contact-section .form-field textarea{min-height:84px;height:84px}.contact-section .form-data-notice{margin-block:8px}.contact-section .form-fallback{margin-top:8px}}.hero-art figcaption{background:var(--orange)}.hero-art figcaption a{transition:background .2s}.hero-art figcaption a:is(:hover,:focus-visible,.is-travelling){background:var(--yellow)}.hero-art figcaption img{transform:none;image-rendering:auto}.hero-editor{animation:editor-float 6s ease-in-out infinite}.hero-symbol{animation:symbol-seat 6s steps(4) infinite}.editor-line{stroke-dasharray:1;animation:code-draw 6s ease-in-out infinite}.hero-spark{translate:24px 0;scale:.8;transform-origin:445px 100px;animation:spark-turn 8s ease-in-out infinite}.hero-pointer{translate:calc(var(--look-x, 0) * 7px) calc(var(--look-y, 0) * 6px);transition:translate .25s ease-out;animation:pointer-tap 6s ease-in-out infinite}.journey-note-a{animation:note-float 7s ease-in-out infinite}.journey-note-b{animation:note-float 7s 1.2s ease-in-out infinite}.journey-marker{transform:translate(50px,318px);animation:milestone-travel 8s linear infinite}.skills-machine .module{opacity:1;animation:none;filter:none}.skills-machine .board-traces path{transition:stroke .25s}.skills-machine[data-active="0"] .channel-b,.skills-machine[data-active="1"] .channel-a,.skills-machine[data-active="2"] .channel-c,.skills-machine[data-active="3"] .channel-d{stroke:var(--yellow);stroke-dasharray:6 8;animation:route-flow 1.2s linear infinite}.skills-machine[data-active="0"] .module-b,.skills-machine[data-active="1"] .module-a,.skills-machine[data-active="2"] .module-c,.skills-machine[data-active="3"] .module-d{filter:none}.skills-machine[data-active="0"] .module-b .module-frame,.skills-machine[data-active="1"] .module-a .module-frame,.skills-machine[data-active="2"] .module-c .module-frame,.skills-machine[data-active="3"] .module-d .module-frame{stroke:var(--yellow);stroke-width:5}.projects-opening{display:grid;grid-template-columns:minmax(0,1fr) 250px;align-items:center;gap:50px}.projects-opening .section-heading{margin:0}.lab-composition{width:100%}:root[data-theme=dark] .lab-composition{color:var(--paper)}.lab-composition .artwork{overflow:visible}.lab-composition figcaption{text-align:center;font:500 12px / 1.5 var(--font-code)}.lab-bubbles{animation:lab-bubble 4s ease-in-out infinite}.lab-idea{transform-origin:407px 126px;animation:spark-turn 7s ease-in-out infinite}.lab-composition:hover .lab-bubbles{animation-duration:1.5s}@keyframes editor-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes symbol-seat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes spark-turn{0%,to{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}@keyframes pointer-tap{0%,65%,to{transform:translateY(0)}75%{transform:translateY(5px)}85%{transform:translateY(0)}}@keyframes note-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes milestone-travel{0%,8%{transform:translate(50px,318px)}28%{transform:translate(220px,318px)}42%{transform:translate(220px,205px)}66%{transform:translate(418px,205px)}78%{transform:translate(418px,110px)}94%,to{transform:translate(544px,110px)}}@keyframes lab-bubble{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.experience-entry:nth-child(4n+1){--entry-color: var(--orange)}.experience-entry:nth-child(4n+2){--entry-color: var(--yellow)}.experience-entry:nth-child(4n+3){--entry-color: #a8cbb0}.experience-entry:nth-child(4n+4){--entry-color: #b4c3ff}.experience-index{background:var(--entry-color);color:var(--black);border:2px solid var(--black);box-shadow:3px 3px 0 var(--ink)}.experience-entry:focus-within{box-shadow:7px 7px 0 var(--entry-color)}.skill-card:nth-child(2) .skill-icon{background:var(--orange)}.skill-card:nth-child(4) .skill-icon{background:#a8cbb0}.method-heading{background:var(--yellow)}.method-tabs button:not([aria-selected=true]):hover{background:var(--yellow)}.credentials{gap:24px}.credential-card{--credential-color: var(--orange);display:flex;flex-direction:column;padding:0 24px 22px;box-shadow:5px 5px 0 var(--black)}.credential-card:nth-child(3){--credential-color: #b4c3ff}.credential-card.certifications{--credential-color: var(--yellow)}.credential-card.languages{--credential-color: #a8cbb0}.credential-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -24px 22px;padding:14px 24px;min-height:57px;border-bottom:2px solid var(--black);background:var(--credential-color);font:500 11px / 1.5 var(--font-code);text-transform:uppercase;letter-spacing:.03em}.credential-heading>i{flex-shrink:0}.credential-heading h3{margin:0;font:inherit;color:var(--black)}.credential-card h4{font-size:clamp(20px,2.1vw,25px);font-weight:650;line-height:1.25;letter-spacing:-.035em;text-wrap:pretty}.credential-card>p:not(.credential-date){margin-block:12px 24px}.credential-card .credential-date{margin-top:auto;padding-top:16px;border-top:1px dashed #aaa79b;font-size:11px}.credential-card .cert-list{margin-bottom:20px}.credential-card .language-code{background:#a8cbb0;border-color:var(--black);color:var(--black)}.contact-art .mail-envelope{translate:calc(var(--look-x, 0) * -5px) calc(var(--look-y, 0) * -4px);transition:translate .35s ease-out}.contact-art:hover .mail-plane{animation:plane-loop 1.4s cubic-bezier(.22,1,.36,1) both}.contact-art:hover .mail-letter{animation:letter-ready .6s cubic-bezier(.22,1,.36,1) both}@keyframes plane-loop{0%{transform:translate(0) rotate(0)}35%{transform:translate(36px,-18px) rotate(16deg)}70%{transform:translate(-18px,8px) rotate(-10deg)}to{transform:translate(0) rotate(0)}}@keyframes letter-ready{to{transform:translateY(-42px)}}.contact-section .contact-address{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:12px 0 0;border:0;box-shadow:none;background:transparent}.contact-section .address-title{padding:0;margin:0 0 4px;border:0}.contact-section .address-title h3{font:400 11px / 1.5 var(--font-code);text-transform:uppercase;letter-spacing:.03em}.contact-section .contact-email{font-size:14px;font-weight:500}.contact-section .copy-button{display:flex;margin-top:0;min-height:38px;padding:7px 12px;background:var(--paper);color:var(--black);border-color:var(--black);box-shadow:3px 3px 0 var(--black)}.contact-section .social-title{margin-top:20px}.contact-section .contact-copy{display:block}.contact-section .social-links{grid-template-columns:1fr 1fr}.site-footer{--ink: var(--black);--muted: #55554f;--focus: var(--blue);background:var(--paper);color:var(--black);border-color:var(--black);padding-block:40px 24px}.site-footer .footer-main{gap:28px}.site-footer .footer-brand{width:78px;height:78px;background:var(--blue);color:var(--paper);box-shadow:5px 5px 0 var(--black);font-size:49px;transition:translate .2s,box-shadow .2s}.site-footer .footer-brand:hover{translate:-2px -2px;box-shadow:7px 7px 0 var(--black)}.site-footer .footer-brand:active{translate:5px 5px;box-shadow:none}.site-footer .footer-note{margin-bottom:10px;font:650 clamp(21px,2.5vw,30px) / 1.15 var(--font-ui);letter-spacing:-.035em}.footer-note span{display:block}.footer-note span:last-child{font:500 1.7em / 1.15 var(--font-pixel);letter-spacing:-.04em}.site-footer .back-top{background:var(--yellow);border-color:var(--black);box-shadow:4px 4px 0 var(--black)}.site-footer .footer-links{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:0;padding:0;margin-top:30px;border:2px solid var(--black)}.footer-links a{display:flex;justify-content:space-between;min-height:50px;padding:12px 18px;font-size:13px;transition:background .2s}.footer-links a+a{border-left:2px solid var(--black)}.footer-links a:is(:hover,:focus-visible){background:var(--yellow)}.section-travel{position:fixed;top:var(--travel-top, 88px);right:0;bottom:0;width:5px;z-index:49;pointer-events:none;background:var(--black);opacity:0;transition:opacity .2s}.section-travel span{display:block;height:100%;background:var(--orange);transform:scaleY(var(--travel-progress, 0));transform-origin:top}:root[data-navigating] .section-travel{opacity:1}:root[data-navigating=up] .section-travel span{transform-origin:bottom}.scroll-link.is-travelling .scroll-arrow{animation:arrow-travel .45s ease-in-out infinite alternate}.back-top{--travel-nudge: -4px}.section-arrived .section-heading{animation:section-land .7s cubic-bezier(.16,1,.3,1) both}.section-arrived .title-pixel{animation:pixel-land .8s steps(4) both}@keyframes section-land{0%{translate:0 14px}to{translate:0 0}}@keyframes pixel-land{0%{text-shadow:4px 0 var(--accent)}50%{text-shadow:-2px 0 var(--accent)}to{text-shadow:0 0 transparent}}@keyframes arrow-travel{to{translate:0 var(--travel-nudge, 4px)}}@media (max-width: 650px){.credential-card{padding-inline:18px}.credential-heading{margin-inline:-18px;padding-inline:18px}.site-footer .footer-main{gap:22px 18px}.site-footer .footer-brand{width:64px;height:64px;font-size:43px}.site-footer .footer-note{font-size:21px}.site-footer .footer-links{grid-template-columns:1fr 1fr;gap:0}.footer-links a:first-child{grid-column:1 / -1;border-bottom:2px solid var(--black)}.footer-links a:nth-child(2){border-left:0}.footer-links a{padding:10px 12px}}@media (max-width: 850px){.projects-opening{grid-template-columns:minmax(0,1fr) 200px;gap:24px}}@media (max-width: 650px){.projects-opening{grid-template-columns:1fr;gap:20px}.lab-composition{width:180px;justify-self:end;margin-top:-12px}}.contact-opening .has-heading-art{position:relative}.contact-opening .has-heading-art>.eyebrow{margin-bottom:54px}.heading-art{position:absolute;top:0;right:0;width:165px;pointer-events:none}.contact-section .heading-art .contact-art{--postcard-paper: transparent;width:100%;height:auto;margin:0}.contact-section .contact-layout{row-gap:30px}.contact-section .contact-address{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:stretch;gap:0;padding:0;border:2px solid var(--black);background:var(--paper);box-shadow:4px 4px 0 var(--black)}.contact-section .social-links{grid-template-columns:1fr;gap:12px;margin-top:12px}.contact-section .social-card{display:grid;grid-template-columns:24px minmax(0,1fr) 18px;align-items:center;gap:12px;min-height:66px;padding:12px 14px;background:var(--paper);color:var(--black);font-size:15px;text-decoration:none}.contact-section .social-card>i:first-child{color:var(--blue)}.contact-section .social-card strong{display:block;font-size:15px;font-weight:650;line-height:1.3}.contact-section .social-card small{display:block;margin-top:3px;font:400 12px / 1.4 var(--font-ui);color:#55554f}.contact-section .social-card:is(:hover,:focus-visible){background:var(--blue);color:var(--paper)}.contact-section .social-card:is(:hover,:focus-visible) :is(small,i){color:var(--paper)}.contact-address .contact-email{border:0;box-shadow:none;transform:none;translate:none}.contact-address .contact-email>span{min-width:0}.contact-section .contact-address .copy-button{width:44px;min-height:66px;margin:0;padding:0;border:0;border-left:2px solid var(--black);box-shadow:none;background:var(--yellow);transform:none}.contact-section .contact-address .copy-button:hover{background:var(--orange)}.contact-section .contact-address[data-copy-state=copied] .copy-button{background:#a8cbb0}.contact-section .copy-feedback{position:absolute;right:0;bottom:calc(100% + 9px);z-index:1;font-size:12px}.contact-section .copy-feedback:not(:empty){background:var(--paper);color:var(--black);border:1px solid var(--black);padding:4px 9px}.lab-composition{text-align:center}.lab-composition figcaption{display:inline-block;padding:7px 12px;color:var(--black);background:var(--yellow);border:2px solid var(--black);box-shadow:3px 3px 0 var(--black);font-size:12px}:root[data-theme=dark] .lab-composition :is(.lab-ground,.lab-sparks){stroke:var(--paper)}.lab-bubbles{animation:none}.lab-bubbles circle{animation:lab-bubble 3.8s ease-in-out infinite}.lab-bubbles circle:nth-child(2){animation-delay:-1.3s}.lab-bubbles circle:nth-child(3){animation-delay:-2.5s}.lab-composition:hover .lab-bubbles{animation:none}.lab-composition:hover .lab-bubbles circle{animation-duration:1.8s}.cursor-burst{opacity:0;transform-origin:418px 340px;animation:cursor-click-burst 6s ease-out infinite}.hero-editor>path:nth-child(2){animation:editor-click-response 6s ease-out infinite}@keyframes cursor-click-burst{0%,72%,90%,to{opacity:0;transform:scale(.75)}75%{opacity:1;transform:scale(1)}84%{opacity:0;transform:scale(1.12)}}@keyframes editor-click-response{0%,72%,90%,to{fill:#fff9e9}75%,81%{fill:#f3cf60}}.contributions>summary{padding:12px 14px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:var(--page);color:var(--ink);font-size:12px;transition:background .2s,color .2s,translate .2s,box-shadow .2s}.contributions>summary>span{flex-shrink:0;width:28px;height:28px;border:1px solid var(--black);background:var(--entry-color, var(--yellow));color:var(--black)}.contributions>summary:is(:hover,:focus-visible),.contributions[open]>summary{background:var(--entry-color, var(--yellow));color:var(--black);border-color:var(--black);box-shadow:4px 4px 0 var(--black)}.contributions>summary:hover{translate:-1px -1px}.contributions>summary:active{translate:3px 3px;box-shadow:none}.contributions[open]>div{padding-top:8px}@supports (interpolate-size: allow-keywords) and selector(details::details-content){.contributions{interpolate-size:allow-keywords}.contributions::details-content{block-size:0;overflow:clip;transition:block-size .32s ease,content-visibility .32s;transition-behavior:allow-discrete}.contributions[open]::details-content{block-size:auto}}.site-footer{--ink: var(--paper);--muted: #e2e6ff;--focus: var(--yellow);background:var(--blue);color:var(--paper);padding-block:46px 28px}.site-footer .footer-brand{width:90px;height:90px;background:var(--yellow);color:var(--black);font-size:59px;rotate:-4deg}.site-footer .footer-note{color:var(--paper);font-size:clamp(24px,2.6vw,34px)}.site-footer .footer-note span:last-child{font-size:1.85em}.site-footer .back-top{background:var(--paper);color:var(--black);min-height:56px}.site-footer .footer-links{background:var(--paper);color:var(--black);box-shadow:5px 5px 0 var(--black)}.site-footer .footer-links a:focus-visible{outline-color:var(--black)}@media (max-width: 850px){.contact-section .contact-layout{grid-template-areas:"intro" "channels" "form";gap:26px}.heading-art{width:165px}}@media (max-width: 650px){.contact-section .contact-opening .section-heading h2{font-size:29px}.contact-section .social-card{gap:10px;padding:11px 12px}.site-footer .footer-brand{width:64px;height:64px;font-size:42px}.site-footer .footer-note{font-size:24px}}@media (max-width: 359px){.heading-art{width:140px}.contact-section .contact-opening .section-heading h2{font-size:26px}.contact-section .social-card{grid-template-columns:20px minmax(0,1fr) 14px;gap:8px;padding-inline:10px}.contact-section .contact-email small{font-size:11px}}.hero{background-image:url(/brand/print-grid.svg);background-size:160px}.hero-copy{background:transparent;box-shadow:none}.hero-bottom .scroll-link{background:var(--surface)}.hero-bottom .scroll-link:is(:hover,:focus-visible){background:var(--yellow);color:var(--black)}.hero-art,.hero-art:hover{border:0;box-shadow:none;background:transparent}.hero-art-frame{border:3px solid var(--black);box-shadow:8px 8px 0 var(--black);background:var(--blue);overflow:hidden}.hero-art .artwork{aspect-ratio:1.22}.hero-art .artwork svg{-o-object-fit:contain;object-fit:contain}.hero-art figcaption{margin-top:26px;border:2px solid var(--black);box-shadow:5px 5px 0 var(--black);background:var(--yellow)}.hero-art figcaption a{grid-template-columns:64px minmax(0,1fr) 32px;gap:18px;padding:12px 16px;min-height:92px;font-size:16px;transition:background .2s}.hero-art figcaption a:is(:hover,:focus-visible){background:#e5ddf5}.hero-art figcaption small{display:block;font:500 10px/1.5 var(--font-code);letter-spacing:.04em;margin-bottom:5px}.hero-art figcaption .scroll-arrow{border:1px solid var(--black);width:32px;height:36px}.hero-art figcaption .pixel-portrait{width:64px;height:64px;border:2px solid var(--black);box-shadow:3px 3px 0 var(--black);image-rendering:pixelated}.chapter-opening{gap:58px}.journey-art{rotate:-2deg;box-shadow:9px 9px 0 var(--black);border-color:var(--black)}.experience-section{background-image:radial-gradient(var(--line) .8px,transparent .8px);background-size:12px 12px}.chapter-opening .section-heading{background:transparent;padding-block:16px}.projects-section{background-image:url(/brand/print-grid.svg)}.projects-opening{grid-template-columns:minmax(0,1fr) minmax(270px,.55fr);gap:64px}.projects-opening .section-heading{max-width:none}.lab-composition{width:100%;margin:0;border:3px solid var(--black);background:var(--yellow);color:var(--black);box-shadow:8px 8px 0 var(--black);rotate:2deg}.lab-titlebar{display:flex;justify-content:space-between;padding:9px 13px;background:var(--black);color:var(--paper);font:500 11px/1.4 var(--font-code)}.lab-composition .artwork{overflow:hidden;aspect-ratio:1.2}.lab-composition .retro-art{height:100%}.lab-composition figcaption{display:block;border:0;border-top:2px solid var(--black);box-shadow:none;padding:14px 12px;font:600 15px/1.4 var(--font-ui);background:var(--surface)}:root[data-theme=dark] .lab-composition :is(.lab-ground,.lab-sparks){stroke:var(--black)}.skills-opening{grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);gap:64px;align-items:center}.skills-machine{max-width:480px;width:100%}.machine-map{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:58px 70px;padding:24px;background:#e5ddf5 url(/brand/print-grid.svg)}.machine-wires{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#798071;stroke-width:2}.machine-wires .wire-signal{stroke:var(--blue);stroke-width:4;stroke-dasharray:7 7;animation:route-flow 1.8s linear infinite}.machine-hub{position:absolute;left:50%;top:50%;translate:-50% -50%;display:grid;place-items:center;width:52px;height:48px;border:2px solid var(--black);box-shadow:3px 3px var(--black);background:var(--orange)}.machine-node{position:relative;min-width:0;min-height:76px;display:grid;justify-items:center;gap:8px;border:2px solid var(--black);background:var(--paper);box-shadow:4px 4px var(--black);padding:12px 6px;font:600 12px/1.3 var(--font-code);transition:translate .2s,box-shadow .2s,background .2s}.machine-node[aria-pressed=true]{background:var(--yellow);translate:2px 2px;box-shadow:2px 2px var(--black)}.machine-node:hover{background:var(--yellow)}.machine-readout{border-top:2px solid var(--black);background:var(--paper);min-height:62px}.method-heading{position:relative}.method-sequence{display:flex;gap:10px;font:500 12px var(--font-code)}.method-sequence span{padding:3px 8px;border:1px solid var(--black);transition:background .25s,color .25s}.method-sequence [data-current=true]{background:var(--black);color:var(--yellow)}.method-tabs button{position:relative}.method-tabs button:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:var(--yellow);transform:scaleX(0);transform-origin:left;transition:transform .35s}.method-tabs button[aria-selected=true]:after{transform:scaleX(1)}.method-panel:not([hidden]){animation:method-enter .4s cubic-bezier(.2,.7,.2,1)}.method-panel:not([hidden]) .method-illustration{animation:stamp-seat .5s cubic-bezier(.2,.7,.2,1) both}@keyframes method-enter{0%{opacity:.25;translate:0 10px}to{opacity:1;translate:0}}@keyframes stamp-seat{0%{transform:rotate(-10deg) scale(.88)}to{transform:rotate(-4deg) scale(1)}}.contact-section{background-image:url(/brand/print-grid.svg);padding-block:64px}.contact-section .contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"intro form" "channels channels";grid-template-rows:auto auto;gap:36px 70px}.contact-opening .section-heading{margin:0}.contact-opening .section-heading>.eyebrow{margin-bottom:22px}.contact-section .contact-opening .section-heading h2{font-size:clamp(32px,3.8vw,49px)}.contact-opening .section-intro{max-width:44ch;margin-top:20px;text-wrap:pretty}.contact-section .contact-opening>.contact-art{width:100%;max-width:490px;margin:24px auto 0;float:none;overflow:visible}.contact-section .contact-copy{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.7fr);align-items:stretch;gap:16px;padding-top:24px;border-top:2px solid var(--black)}.contact-channels-label{grid-column:1 / -1;font:500 12px/1.5 var(--font-code);color:var(--black)}.contact-section .contact-copy .contact-address{grid-row:auto}.contact-section .contact-copy .social-links{display:grid;grid-template-columns:1fr 1fr;align-self:stretch;gap:16px;margin:0}.contact-section .contact-copy .social-card,.contact-section .contact-address .copy-button{min-height:76px}.contact-art .mail-plane{transform-origin:474px 103px;animation:mail-glide 6s ease-in-out infinite}.contact-art .mail-letter{animation:letter-peek 6s ease-in-out infinite}.contact-art .mail-flight-path{animation:route-flow 2s linear infinite}.contact-art .mail-stamp{transform-origin:535px 270px;animation:stamp-rock 6s ease-in-out infinite}@keyframes mail-glide{0%,to{transform:translate(-5px,5px) rotate(-3deg)}50%{transform:translate(8px,-7px) rotate(4deg)}}@keyframes letter-peek{0%,to{transform:translateY(0)}45%,60%{transform:translateY(-15px)}}@keyframes stamp-rock{0%,to{rotate:-6deg}50%{rotate:2deg}}.settings-panel{width:370px;border-width:3px;box-shadow:8px 8px var(--black);animation:settings-open .25s cubic-bezier(.2,.7,.2,1)}.settings-title{padding:10px 12px 10px 20px;background:var(--blue);color:var(--paper)}.settings-title>span{display:flex;align-items:center;gap:12px;font:500 26px var(--font-pixel)}.settings-close{display:grid;place-items:center;width:44px;height:44px;border:2px solid var(--black);background:var(--yellow);color:var(--black);font:24px/1 var(--font-code)}.settings-caption{font-size:14px;padding:18px 20px 0;color:var(--muted)}.settings-panel .language-setting{margin:16px 18px;padding:12px;border:1px solid var(--line);background:var(--page)}.settings-panel .setting-row{min-height:68px;padding-inline:20px}.settings-actions{padding:14px;background:var(--soft);border-top:2px solid var(--ink)}.settings-actions button{border:1px solid var(--line);background:var(--surface);padding:12px}@keyframes settings-open{0%{opacity:0;translate:0 -8px}to{opacity:1;translate:0}}.site-footer{position:relative;overflow:clip;padding-block:24px 30px;background-image:radial-gradient(#ffffff2b 1px,transparent 1px);background-size:12px 12px}.footer-colophon{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid #ffffff70;font:400 10px/1.5 var(--font-code);letter-spacing:.025em}.footer-colophon>span{display:flex;align-items:center;gap:8px}.site-footer .footer-main{padding-block:40px 12px;grid-template-columns:108px 1fr auto;gap:30px}.site-footer .footer-note{font-size:clamp(25px,3.3vw,44px)}.site-footer .footer-note span:last-child{font-size:2.4em;line-height:1;color:var(--yellow)}.site-footer .footer-brand{width:100px;height:110px;font-size:65px;rotate:-6deg}.site-footer .footer-links{margin-top:28px}.site-footer .footer-links a{min-height:58px;font-size:14px;align-items:center}.section-arrived .title-pixel{animation:none}.section-arrived .section-heading{animation:section-land .5s cubic-bezier(.16,1,.3,1) both}@media (max-width: 1000px){.hero-art figcaption a{gap:12px;padding:12px;font-size:14px}.hero-art figcaption small{font-size:9px}.skills-opening{gap:32px;grid-template-columns:1fr 1fr}.machine-map{padding:18px;gap:58px 46px}.machine-node{font-size:11px}.projects-opening{gap:36px;grid-template-columns:minmax(0,1fr) 270px}.contact-section .contact-layout{gap:30px}}@media (max-width: 850px){.contact-section .contact-layout{grid-template-columns:1fr;grid-template-areas:"intro" "form" "channels"}.contact-section .contact-opening{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:24px}.contact-section .contact-opening .section-heading h2{font-size:36px}.contact-section .contact-opening>.contact-art{margin:0}.contact-section .contact-copy{grid-template-columns:1fr}.site-footer .footer-main{grid-template-columns:80px 1fr auto;gap:22px}.site-footer .footer-brand{width:76px;height:85px;font-size:50px}}@media (max-width: 650px){.hero-layout{padding-top:36px;gap:32px}.hero-copy{box-shadow:none}.hero-art{max-width:400px;justify-self:center;width:calc(100% - 6px)}.hero-art .artwork{aspect-ratio:1.5}.hero-art .artwork svg{width:100%;height:100%}.hero-art figcaption{margin-top:20px}.hero-art figcaption a{grid-template-columns:56px minmax(0,1fr) 32px;min-height:84px;font-size:14px}.hero-art figcaption .pixel-portrait{width:56px;height:56px}.hero-art figcaption small{font-size:9px}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .button{width:100%;justify-content:space-between;font-size:14px;min-height:52px}.hero-bottom{flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px}.hero-bottom a{font-size:12px}.chapter-opening{gap:28px}.journey-art{width:calc(100% - 10px);max-width:400px;justify-self:center;rotate:-1deg}.projects-opening,.skills-opening{grid-template-columns:1fr;gap:32px}.projects-list{margin-top:38px}.journey-art{margin-right:0}.lab-composition{justify-self:center;width:calc(100% - 10px);max-width:360px;margin:0;rotate:1deg}.lab-composition .artwork{aspect-ratio:1.55}.lab-composition figcaption{padding:13px 10px;font-size:15px}.skills-machine{width:calc(100% - 6px);max-width:400px;justify-self:center}.machine-map{gap:58px 64px;padding:20px}.machine-node{font-size:11px}.machine-titlebar{flex-wrap:nowrap}.method-heading{padding:18px;gap:12px}.method-heading h3{font-size:22px}.method-heading .method-sequence{display:flex;gap:5px}.method-sequence span{padding:2px 5px;font-size:10px}.method-panel:not([hidden]){min-height:420px;gap:20px;align-content:start}.contact-section{padding-block:42px}.contact-section .contact-layout{gap:28px}.contact-opening .section-heading>.eyebrow{margin-bottom:14px}.contact-section .contact-opening .section-heading h2{font-size:clamp(29px,7.5vw,40px)}.contact-opening .section-intro{font-size:15px;margin-top:14px}.contact-section .contact-opening{display:block}.contact-section .contact-opening>.contact-art{max-width:340px;margin:20px auto 0}.contact-section .contact-copy{padding-top:20px;gap:12px}.contact-section .contact-copy .social-links{gap:12px}.contact-section .contact-copy .social-links .social-card{grid-template-columns:20px minmax(0,1fr)}.contact-section .social-links .social-card>i:last-child{display:none}.settings-panel{position:fixed;top:80px;left:14px;right:20px;width:auto;max-height:calc(100dvh - 102px);overscroll-behavior:contain}.settings-caption{padding-top:14px}.site-footer .footer-main{grid-template-columns:66px minmax(0,1fr);padding-block:30px 4px;gap:24px 20px}.site-footer .footer-brand{width:64px;height:76px;font-size:43px}.site-footer .footer-note{font-size:23px}.site-footer .footer-note span:last-child{font-size:2.4em}.site-footer .back-top{grid-column:1 / -1;width:100%;justify-content:space-between}.footer-colophon{flex-direction:column;gap:6px;font-size:9px}.site-footer .footer-links{grid-template-columns:1fr 1fr}.site-footer .footer-links a{font-size:12px;min-height:52px}}@media (max-width: 359px){.machine-map{gap:56px 40px;padding:14px}.method-heading .method-sequence{display:none}.hero-art figcaption a{gap:10px}.site-footer .footer-note{font-size:20px}.contact-section .contact-email{grid-template-columns:20px minmax(0,1fr)}.contact-section .contact-email>i:last-child{display:none}.contact-section .social-links .social-card small{display:none}}[data-artwork]:not(.art-in-view) *{animation-play-state:paused!important}@media (prefers-reduced-motion: reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.page-intro{display:none}.will-reveal{opacity:1;translate:none}}@media print{:root{--page: #fff;--surface: #fff;--ink: #111;--muted: #333;--accent: #222;--line: #ccc}.site-header,.site-footer,.privacy-panel,.privacy-notice,.hero-art,.contact-section,.hero-actions,.resume-note,.skip-link,.hero-bottom,.page-intro,.artwork,.project-placeholder,.about-portrait{display:none}.wrap{width:100%}.section,.hero{padding-block:25px;background:#fff;color:#111}.hero-layout,.chapter-opening,.skills-opening,.about-layout{display:block;padding-bottom:25px}.hero h1{font-size:48px}.will-reveal{opacity:1;translate:none}.project,.experience-entry{-moz-column-break-inside:avoid;break-inside:avoid;box-shadow:none}}
