@media all{.mc-block-site-title{box-sizing:border-box}.mc-block-site-title :where(a){color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit}}@media all{.mc-block-group{box-sizing:border-box}:where(.mc-block-group.mc-block-group-is-layout-constrained){position:relative}}@media all{:where(.mc-block-group.has-background){padding:1.25em 2.375em}}@media all{:root :where(.mc-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em}}@media all{h1:where(.mc-block-heading).has-background,h2:where(.mc-block-heading).has-background,h3:where(.mc-block-heading).has-background,h4:where(.mc-block-heading).has-background,h5:where(.mc-block-heading).has-background,h6:where(.mc-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}}@media all{.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}}@media all{.mc-block-post-content{display:flow-root}}@media all{}@media all{:root{--mc-block-synced-color:#7a00df;--mc-block-synced-color--rgb:122,0,223;--mc-bound-block-color:var(--mc-block-synced-color);--mc-editor-canvas-background:#ddd;--mc-admin-theme-color:#007cba;--mc-admin-theme-color--rgb:0,124,186;--mc-admin-theme-color-darker-10:#006ba1;--mc-admin-theme-color-darker-10--rgb:0,107,160.5;--mc-admin-theme-color-darker-20:#005a87;--mc-admin-theme-color-darker-20--rgb:0,90,135;--mc-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--mc-admin-border-width-focus:1.5px}}.mc-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--mc--preset--font-size--normal:16px;--mc--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--mc--preset--font-size--normal)}.has-huge-font-size{font-size:var(--mc--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=mc-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--mc-admin--admin-bar--position-offset:var(--mc-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--mc-admin--admin-bar--position-offset:0px}}}@media all{.mc-container-core-group-is-layout-087dec35{justify-content:space-between}.mc-container-core-group-is-layout-8e2d48a5{flex-wrap:nowrap;gap:20px}.mc-container-core-group-is-layout-0cb660ea{justify-content:space-between}}@media all{/*! This file is auto-generated */ .skip-link.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important;word-break:normal!important}.skip-link.screen-reader-text:focus{background-color:#eee;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}}@media all{:root{--mc-hover:#0e0e11;--mc-thumb-rest:grayscale(1) contrast(1.05) brightness(.82);--mc-thumb-hover:none}.mc-mark svg{width:220px;height:120px;display:block;overflow:visible}.mc-mark .bars rect{fill:currentColor;opacity:.16}.mc-mark .bars rect.off{fill:var(--mc--preset--color--accent);opacity:.9;animation:mc-drift 4.5s ease-in-out infinite;transform-origin:center}.mc-mark .rules line{stroke:currentColor;stroke-width:1;opacity:.28}.mc-mark .dot{fill:var(--mc--preset--color--accent);stroke:#000;stroke-width:2}@keyframes mc-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@media (prefers-reduced-motion:reduce){.mc-mark .bars rect.off{animation:none}}.mc-num{font-family:var(--mc--preset--font-family--mono);font-size:var(--mc--preset--font-size--micro);color:var(--mc--preset--color--accent);letter-spacing:.1em}.mc-work{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:34px 30px}.mc-item{text-decoration:none;color:inherit;display:block}.mc-item img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top center;border:1px solid var(--mc--preset--color--line);filter:var(--mc-thumb-rest);transition:filter .35s ease,border-color .35s ease}.mc-item:hover img{filter:var(--mc-thumb-hover);border-color:var(--mc--preset--color--accent)}.mc-cap{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px}.mc-name{font-size:19px;font-weight:600;letter-spacing:-.01em}.mc-item:hover .mc-name{color:var(--mc--preset--color--accent)}.mc-meta{font-size:13px;color:var(--mc--preset--color--muted);margin-top:5px}.mc-arrow{font-family:var(--mc--preset--font-family--mono);font-size:13px;color:var(--mc--preset--color--muted)}.mc-repos{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--mc--preset--color--line);border:1px solid var(--mc--preset--color--line)}.mc-repo{background:var(--mc--preset--color--base);padding:22px}.mc-repo h3{margin:0 0 6px;color:var(--mc--preset--color--contrast)}.mc-repo p{font-size:14px;color:var(--mc--preset--color--muted);margin:0}.mc-ci{font-family:var(--mc--preset--font-family--mono);font-size:var(--mc--preset--font-size--micro);color:var(--mc--preset--color--status);margin-top:12px}.mc-shots{display:grid;grid-template-columns:2fr 1fr;gap:22px}.mc-shots img{width:100%;border:1px solid var(--mc--preset--color--line);display:block}.mc-shots figcaption{font-size:12px;color:var(--mc--preset--color--muted);margin-top:10px;font-family:var(--mc--preset--font-family--mono)}@media(max-width:760px){.mc-shots{grid-template-columns:1fr}}.mc-shot-stack{display:flex;flex-direction:column;gap:16px}.mc-shot-stack figcaption{font-size:11px;margin-top:6px}.mc-top{font-size:var(--mc--preset--font-size--micro);letter-spacing:.14em;text-transform:uppercase;color:var(--mc--preset--color--muted)}.mc-block-post-content>p,.mc-block-post-content>.mc-block-list{max-width:68ch}.mc-block-post-content>p.mc-num{max-width:none}:root{--mc-gutter:40px}@media (max-width:640px){:root{--mc-gutter:22px}}.mc-site-blocks>header,.mc-site-blocks>footer{box-sizing:border-box;width:100%;max-width:calc(1180px + (var(--mc-gutter) * 2));margin-inline:auto;padding-inline:var(--mc-gutter)}.mc-nav{display:flex;flex-wrap:wrap;gap:22px}.mc-nav a{color:var(--mc--preset--color--muted);text-decoration:none;font-size:var(--mc--preset--font-size--micro);letter-spacing:.14em;text-transform:uppercase}.mc-nav a:hover,.mc-nav a:focus-visible{color:var(--mc--preset--color--accent)}html{scroll-behavior:smooth}:target{scroll-margin-top:28px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.mc-actions{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.mc-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--mc--preset--color--base);color:var(--mc--preset--color--contrast);border:1px solid var(--mc--preset--color--line);text-decoration:none;cursor:pointer;transition:border-color .2s ease,color .2s ease,opacity .25s ease,transform .25s ease}.mc-btn:hover,.mc-btn:focus-visible{border-color:var(--mc--preset--color--accent);color:var(--mc--preset--color--accent)}.mc-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}#mc-top{opacity:0;transform:translateY(8px);pointer-events:none}#mc-top.is-on{opacity:1;transform:none;pointer-events:auto}#mc-top{border-color:#fff0;pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .15s ease 2.75s,transform .15s ease 2.75s}#mc-top.is-on{opacity:1;transform:none;pointer-events:auto;transition:opacity .15s ease 0s,transform .15s ease 0s}#mc-top svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}#mc-top .mc-ring,#mc-top .mc-ring-ink{stroke-width:1.4;stroke-linecap:butt}#mc-top .mc-line{stroke-width:1.7}#mc-top .mc-ink{stroke-width:1.7;stroke-linecap:round}#mc-top .mc-ring{stroke:var(--mc--preset--color--line)}#mc-top .mc-ring-ink,#mc-top .mc-ink{stroke:var(--mc--preset--color--accent)}#mc-top .mc-ring,#mc-top .mc-line,#mc-top .mc-ring-ink,#mc-top .mc-ink{stroke-dasharray:1 2;stroke-dashoffset:1}#mc-top .mc-ring{transition-property:stroke-dashoffset;transition-duration:1.375s;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-delay:1.375s}#mc-top .mc-line{transition-property:stroke-dashoffset,stroke;transition-duration:1.375s,.25s;transition-timing-function:cubic-bezier(.4,0,.2,1),ease;transition-delay:0s,0s}#mc-top.is-on .mc-ring{stroke-dashoffset:0;transition-delay:0s}#mc-top.is-on .mc-line{stroke-dashoffset:0;transition-delay:1.375s,0s}#mc-top .mc-ring-ink{transition-property:stroke-dashoffset;transition-duration:1.125s;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-delay:0s}#mc-top.is-on:hover .mc-ring-ink,#mc-top.is-on:focus-visible .mc-ring-ink{stroke-dashoffset:0;transition-delay:0s}#mc-top.is-on:hover .mc-ink,#mc-top.is-on:focus-visible .mc-ink{stroke-dashoffset:0}#mc-top .mc-ink{opacity:0;transition-property:stroke-dashoffset,opacity;transition-duration:1.125s,0s;transition-delay:.35s,1.475s}#mc-top.is-on:hover .mc-ink,#mc-top.is-on:focus-visible .mc-ink{opacity:1;transition-delay:1.125s,0s}@media(prefers-reduced-motion:reduce){#mc-top .mc-ring,#mc-top .mc-line,#mc-top .mc-ring-ink,#mc-top .mc-ink{transition:none}#mc-top.is-on .mc-ring,#mc-top.is-on .mc-line{stroke-dashoffset:0}#mc-top.is-on:hover .mc-ring-ink,#mc-top.is-on:hover .mc-ink{stroke-dashoffset:0}}.mc-drawn{position:relative;display:inline-block}.mc-drawn>span{color:#fff0}.mc-drawn svg{position:absolute;left:0;top:0;width:100%;height:1em;overflow:visible}.mc-drawn text{font:inherit;transform:translateY(.78em)}.mc-drawn .ln{fill:none;stroke:var(--mc--preset--color--muted);stroke-width:.024em;stroke-dasharray:2.1em;stroke-dashoffset:2.1em;animation:mc-num-draw 1.9s cubic-bezier(.35,0,.25,1) .9s forwards,mc-num-unstroke .8s ease 2.7s forwards}@keyframes mc-num-draw{to{stroke-dashoffset:0}}@keyframes mc-num-unstroke{to{stroke:#fff0}}.mc-drawn .fl{fill:var(--mc--preset--color--accent);clip-path:inset(0 100% 0 0);animation:mc-num-fill .8s cubic-bezier(.4,0,.2,1) 2.7s forwards}@keyframes mc-num-fill{to{clip-path:inset(0 0 0 0)}}.mc-drawn .sh{fill:url(#mc-shine-g)}@media(prefers-reduced-motion:reduce){.mc-drawn>span{color:var(--mc--preset--color--accent)}.mc-drawn svg{display:none}}a[href*="github.com/MarcCangiano/"],.mc-repo-name{color:var(--mc--preset--color--accent);transition:color .35s ease}a[href*="github.com/MarcCangiano/"]:hover,a[href*="github.com/MarcCangiano/"]:focus-visible,.mc-repo-name:hover,.mc-repo-name:focus-visible{color:var(--mc--preset--color--muted)}.mc-stack strong{color:var(--mc--preset--color--accent)}.mc-repo h3 a{color:var(--mc--preset--color--contrast)}.mc-contact{position:relative}.mc-contact summary{list-style:none;display:grid;place-items:center;width:44px;height:44px;border-radius:999px;cursor:pointer;background:var(--mc--preset--color--accent);color:var(--mc--preset--color--base);border:1px solid var(--mc--preset--color--accent)}.mc-contact summary::-webkit-details-marker{display:none}.mc-contact summary svg{stroke:currentColor;width:24px;height:24px;stroke-width:1.8}.mc-contact[open] summary{background:var(--mc--preset--color--base);color:var(--mc--preset--color--accent)}.mc-contact summary{position:relative;overflow:hidden}.mc-contact summary::after{content:"";position:absolute;inset:-40%;pointer-events:none;background:linear-gradient(105deg,transparent 42%,rgb(255 255 255 / .55) 50%,transparent 58%);transform:translateX(-120%);animation:mc-shine 10s linear infinite}@keyframes mc-shine{0%{transform:translateX(-120%)}10%{transform:translateX(120%)}100%{transform:translateX(120%)}}.mc-contact[open] summary::after,.mc-contact summary:hover::after,.mc-contact summary:focus-visible::after{animation:none;opacity:0}@media(prefers-reduced-motion:reduce){.mc-contact summary::after{animation:none;opacity:0}}.mc-links{position:absolute;right:0;bottom:54px;min-width:210px;background:var(--mc--preset--color--base);border:1px solid var(--mc--preset--color--line);padding:6px;display:grid;gap:2px}.mc-links a{display:flex;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;color:var(--mc--preset--color--contrast);font-size:14px;white-space:nowrap}.mc-links a:hover{background:var(--mc-hover);color:var(--mc--preset--color--accent)}.mc-links svg{width:16px;height:16px;flex:0 0 16px}.mc-links small{display:block;color:var(--mc--preset--color--muted);font-size:11px}@media(max-width:640px){.mc-actions{right:14px;bottom:14px}}@media print{.mc-actions{display:none}}.mc-menu-btn,.mc-close,.mc-scrim{display:none}.mc-menu-btn svg,.mc-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}@media (max-width:781px){.mc-menu-btn{display:grid;place-items:center;width:42px;height:42px;cursor:pointer;color:var(--mc--preset--color--contrast);margin:-8px -8px -8px 0}.mc-menu-btn:hover{color:var(--mc--preset--color--accent)}.mc-nav{position:fixed;top:0;right:0;bottom:0;width:min(78vw,320px);z-index:80;flex-direction:column;align-items:flex-start;gap:0;background:var(--mc--preset--color--base);border-left:1px solid var(--mc--preset--color--line);padding:74px 28px 28px;transform:translateX(100%);transition:transform .28s ease;overflow-y:auto}.mc-nav a{display:block;width:100%;padding:16px 0;font-size:15px;letter-spacing:.04em;text-transform:none;color:var(--mc--preset--color--contrast);border-bottom:1px solid var(--mc--preset--color--line)}.mc-close{display:grid;place-items:center;position:absolute;top:20px;right:20px;width:42px;height:42px;cursor:pointer;color:var(--mc--preset--color--muted)}.mc-scrim{display:block;position:fixed;inset:0;z-index:70;background:rgb(0 0 0 / .55);opacity:0;pointer-events:none;transition:opacity .28s ease}.mc-menu-state:checked~.mc-nav{transform:translateX(0)}.mc-menu-state:checked~.mc-scrim{opacity:1;pointer-events:auto}.mc-menu-state:checked~.mc-actions{display:none}}.mc-menu-state:focus-visible+.mc-menu-btn{outline:2px solid var(--mc--preset--color--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.mc-nav,.mc-scrim{transition:none}}@media (max-width:640px){.mc-site-blocks>main,.mc-site-blocks>.mc-block-group{padding-inline:var(--mc-gutter)}}.mc-links{transform-origin:bottom right;will-change:transform,opacity}@keyframes mc-pop{from{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}@keyframes mc-unpop{from{opacity:1;transform:none}to{opacity:0;transform:translateY(8px) scale(.96)}}.mc-contact[open] .mc-links{animation:mc-pop .22s cubic-bezier(.2,.9,.3,1.2)}.mc-contact.is-closing .mc-links{animation:mc-unpop .16s ease-in forwards}.mc-contact[open] .mc-links a{animation:mc-pop .26s ease-out backwards}.mc-contact[open] .mc-links a:nth-child(2){animation-delay:.045s}.mc-contact summary svg{transition:transform .22s cubic-bezier(.2,.9,.3,1.2)}.mc-contact[open] summary svg{transform:rotate(-18deg) scale(.92)}.mc-contact summary{transition:background .2s ease,color .2s ease}@media (prefers-reduced-motion:reduce){.mc-contact[open] .mc-links,.mc-contact.is-closing .mc-links,.mc-contact[open] .mc-links a,.mc-contact summary svg{animation:none;transition:none}}body{position:relative}.mc-trail{display:block;position:absolute;inset:0 0 auto 0;height:100%;z-index:-1;max-width:none;pointer-events:none;overflow:hidden}.mc-trail__ink{height:100%;background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%221600%22%20viewBox%3D%220%200%201440%201600%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23f2f2f0%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20opacity%3D%220.24%22%3E%3Cpath%20d%3D%22M190%200%20C%20135.4%2044.5%2C%2088.4%20116.0%2C%2080%20200%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M80%20200%20C%2071.6%20284.0%2C%20148.9%20316.0%2C%20150%20400%22%20%2F%3E%3Cpath%20d%3D%22M150%20400%20C%20151.1%20484.0%2C%2061.9%20524.4%2C%2085%20600%22%20stroke-dasharray%3D%229%2011%22%2F%3E%3Cpath%20d%3D%22M85%20600%20C%20108.1%20675.6%2C%2093.1%20705.4%2C%20260%20760%22%20%2F%3E%3Cpath%20d%3D%22M260%20760%20C%20426.9%20814.6%2C%20651.1%20818.0%2C%20880%20860%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M880%20860%20C%201108.9%20902.0%2C%201242.9%20901.2%2C%201350%20960%22%20%2F%3E%3Cpath%20d%3D%22M1350%20960%20C%201457.1%201018.8%2C%201394.2%201064.4%2C%201390%201140%22%20%2F%3E%3Cpath%20d%3D%22M1390%201140%20C%201385.8%201215.6%2C%201333.8%201252.8%2C%201330%201320%22%20stroke-dasharray%3D%229%2011%22%2F%3E%3Cpath%20d%3D%22M1330%201320%20C%201326.2%201387.2%2C%201479.1%201411.7%2C%201372%201460%22%20%2F%3E%3Cpath%20d%3D%22M1372%201460%20C%201264.9%201508.3%2C%201036.7%201523.1%2C%20820%201550%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M820%201550%20C%20603.3%201576.9%2C%20472.3%201577.5%2C%20340%201588%22%20%2F%3E%3Cpath%20d%3D%22M340%201588%20C%20207.7%201598.5%2C%20244.6%201555.5%2C%20190%201600%22%20%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23c8ff3d%22%20stroke-width%3D%222.8%22%20stroke-linecap%3D%22round%22%20opacity%3D%220.7%22%3E%3Cpath%20d%3D%22M1342%20952%20L1358%20968%20M1358%20952%20L1342%20968%22%2F%3E%3Ccircle%20cx%3D%221330%22%20cy%3D%221320%22%20r%3D%2212%22%2F%3E%3Cpath%20d%3D%22M1364%201452%20L1380%201468%20M1380%201452%20L1364%201468%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E);background-repeat:repeat-y;background-position:top center;background-size:100% auto}@supports (animation-timeline:scroll()){.mc-trail__ink{animation:mc-trail-grow linear both;animation-timeline:scroll(root block);animation-range:0 92%}}@keyframes mc-trail-grow{from{height:0%}to{height:100%}}@media (prefers-reduced-motion:reduce){.mc-trail__ink{animation:none!important;height:100%!important}}@media (max-width:1024px){.mc-trail{display:none}}@media (prefers-color-scheme:light){:root[data-theme="light"]{--mc--preset--color--base:#f6f6f3;--mc--preset--color--contrast:#111216;--mc--preset--color--muted:#5f6066;--mc--preset--color--line:#e3e3df;--mc--preset--color--accent:#5f8f00;--mc-hover:#ededea;--mc-thumb-rest:none;--mc-thumb-hover:grayscale(1) contrast(1.02) brightness(1.02)}}:root[data-theme="light"]{--mc--preset--color--base:#f6f6f3;--mc--preset--color--contrast:#111216;--mc--preset--color--muted:#5f6066;--mc--preset--color--line:#e3e3df;--mc--preset--color--accent:#5f8f00;--mc-hover:#ededea;--mc-thumb-rest:none;--mc-thumb-hover:grayscale(1) contrast(1.02) brightness(1.02)}body{background-color:var(--mc--preset--color--base);color:var(--mc--preset--color--contrast)}@media (prefers-color-scheme:light){:root[data-theme="light"] .mc-trail__ink{background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%221600%22%20viewBox%3D%220%200%201440%201600%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23111216%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20opacity%3D%220.18%22%3E%3Cpath%20d%3D%22M190%200%20C%20135.4%2044.5%2C%2088.4%20116.0%2C%2080%20200%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M80%20200%20C%2071.6%20284.0%2C%20148.9%20316.0%2C%20150%20400%22%20%2F%3E%3Cpath%20d%3D%22M150%20400%20C%20151.1%20484.0%2C%2061.9%20524.4%2C%2085%20600%22%20stroke-dasharray%3D%229%2011%22%2F%3E%3Cpath%20d%3D%22M85%20600%20C%20108.1%20675.6%2C%2093.1%20705.4%2C%20260%20760%22%20%2F%3E%3Cpath%20d%3D%22M260%20760%20C%20426.9%20814.6%2C%20651.1%20818.0%2C%20880%20860%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M880%20860%20C%201108.9%20902.0%2C%201242.9%20901.2%2C%201350%20960%22%20%2F%3E%3Cpath%20d%3D%22M1350%20960%20C%201457.1%201018.8%2C%201394.2%201064.4%2C%201390%201140%22%20%2F%3E%3Cpath%20d%3D%22M1390%201140%20C%201385.8%201215.6%2C%201333.8%201252.8%2C%201330%201320%22%20stroke-dasharray%3D%229%2011%22%2F%3E%3Cpath%20d%3D%22M1330%201320%20C%201326.2%201387.2%2C%201479.1%201411.7%2C%201372%201460%22%20%2F%3E%3Cpath%20d%3D%22M1372%201460%20C%201264.9%201508.3%2C%201036.7%201523.1%2C%20820%201550%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M820%201550%20C%20603.3%201576.9%2C%20472.3%201577.5%2C%20340%201588%22%20%2F%3E%3Cpath%20d%3D%22M340%201588%20C%20207.7%201598.5%2C%20244.6%201555.5%2C%20190%201600%22%20%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%235f8f00%22%20stroke-width%3D%222.8%22%20stroke-linecap%3D%22round%22%20opacity%3D%220.7%22%3E%3Cpath%20d%3D%22M1342%20952%20L1358%20968%20M1358%20952%20L1342%20968%22%2F%3E%3Ccircle%20cx%3D%221330%22%20cy%3D%221320%22%20r%3D%2212%22%2F%3E%3Cpath%20d%3D%22M1364%201452%20L1380%201468%20M1380%201452%20L1364%201468%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)}}:root[data-theme="light"] .mc-trail__ink{background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%221440%22%20height%3D%221600%22%20viewBox%3D%220%200%201440%201600%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23111216%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20opacity%3D%220.18%22%3E%3Cpath%20d%3D%22M190%200%20C%20135.4%2044.5%2C%2088.4%20116.0%2C%2080%20200%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M80%20200%20C%2071.6%20284.0%2C%20148.9%20316.0%2C%20150%20400%22%20%2F%3E%3Cpath%20d%3D%22M150%20400%20C%20151.1%20484.0%2C%2061.9%20524.4%2C%2085%20600%22%20stroke-dasharray%3D%229%2011%22%2F%3E%3Cpath%20d%3D%22M85%20600%20C%20108.1%20675.6%2C%2093.1%20705.4%2C%20260%20760%22%20%2F%3E%3Cpath%20d%3D%22M260%20760%20C%20426.9%20814.6%2C%20651.1%20818.0%2C%20880%20860%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M880%20860%20C%201108.9%20902.0%2C%201242.9%20901.2%2C%201350%20960%22%20%2F%3E%3Cpath%20d%3D%22M1350%20960%20C%201457.1%201018.8%2C%201394.2%201064.4%2C%201390%201140%22%20%2F%3E%3Cpath%20d%3D%22M1390%201140%20C%201385.8%201215.6%2C%201333.8%201252.8%2C%201330%201320%22%20stroke-dasharray%3D%229%2011%22%2F%3E%3Cpath%20d%3D%22M1330%201320%20C%201326.2%201387.2%2C%201479.1%201411.7%2C%201372%201460%22%20%2F%3E%3Cpath%20d%3D%22M1372%201460%20C%201264.9%201508.3%2C%201036.7%201523.1%2C%20820%201550%22%20stroke-dasharray%3D%223%209%22%2F%3E%3Cpath%20d%3D%22M820%201550%20C%20603.3%201576.9%2C%20472.3%201577.5%2C%20340%201588%22%20%2F%3E%3Cpath%20d%3D%22M340%201588%20C%20207.7%201598.5%2C%20244.6%201555.5%2C%20190%201600%22%20%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%235f8f00%22%20stroke-width%3D%222.8%22%20stroke-linecap%3D%22round%22%20opacity%3D%220.7%22%3E%3Cpath%20d%3D%22M1342%20952%20L1358%20968%20M1358%20952%20L1342%20968%22%2F%3E%3Ccircle%20cx%3D%221330%22%20cy%3D%221320%22%20r%3D%2212%22%2F%3E%3Cpath%20d%3D%22M1364%201452%20L1380%201468%20M1380%201452%20L1364%201468%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)}.mc-nav .mc-theme-btn,.mc-float-links .mc-theme-btn{appearance:none;-webkit-appearance:none;background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;font-size:var(--mc--preset--font-size--micro);letter-spacing:.14em;text-transform:uppercase;color:var(--mc--preset--color--muted);display:inline-flex;align-items:center;gap:8px;line-height:1}.mc-nav .mc-theme-btn:hover,.mc-nav .mc-theme-btn:focus-visible,.mc-float-links .mc-theme-btn:hover,.mc-float-links .mc-theme-btn:focus-visible{color:var(--mc--preset--color--accent)}.mc-nav .mc-theme-btn svg,.mc-float-links .mc-theme-btn svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}@media (max-width:781px){.mc-nav .mc-theme-btn{width:100%;padding:16px 0;font-size:15px;letter-spacing:.04em;text-transform:none;color:var(--mc--preset--color--contrast);justify-content:flex-start}}.mc-theme-btn .i-sun{display:none}.mc-theme-btn .i-moon{display:inline-block}.mc-theme-btn .label-dark{display:inline}.mc-theme-btn .label-light{display:none}@media (prefers-color-scheme:light){:root[data-theme="light"] .mc-theme-btn .i-sun{display:inline-block}:root[data-theme="light"] .mc-theme-btn .i-moon{display:none}:root[data-theme="light"] .mc-theme-btn .label-dark{display:none}:root[data-theme="light"] .mc-theme-btn .label-light{display:inline}}:root[data-theme="light"] .mc-theme-btn .i-sun{display:inline-block}:root[data-theme="light"] .mc-theme-btn .i-moon{display:none}:root[data-theme="light"] .mc-theme-btn .label-dark{display:none}:root[data-theme="light"] .mc-theme-btn .label-light{display:inline}:root[data-theme="dark"] .mc-theme-btn .i-sun{display:none}:root[data-theme="dark"] .mc-theme-btn .i-moon{display:inline-block}:root[data-theme="dark"] .mc-theme-btn .label-dark{display:inline}:root[data-theme="dark"] .mc-theme-btn .label-light{display:none}@media (hover:none){:root[data-theme="light"] .mc-item img{filter:none}}@media (hover:none) and (prefers-color-scheme:light){:root[data-theme="light"] .mc-item img{filter:none}}.mc-trail{display:none!important}html{background-color:var(--mc--preset--color--base)}.mc-float{position:fixed;top:18px;left:50%;transform:translateX(-50%);width:min(1180px, calc(100% - 44px));display:flex;align-items:center;justify-content:space-between;padding:13px 22px;background:var(--mc--preset--color--base);border:1px solid var(--mc--preset--color--line);border-radius:14px;box-shadow:0 14px 34px rgb(0 0 0 / .45);z-index:60;opacity:0;transition:opacity .6s ease;pointer-events:none}.mc-float:hover{opacity:1}.mc-float-name{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mc--preset--color--contrast)}.mc-float-links{display:flex;gap:26px}.mc-float-links a{font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--mc--preset--color--muted)}.mc-float-links a:hover{color:var(--mc--preset--color--accent)}body.admin-bar .mc-float{top:50px}@supports (animation-timeline:scroll()){.mc-float{animation:mc-float-peek 1s linear both;animation-timeline:scroll();animation-range:40px 130px}@keyframes mc-float-peek{from{opacity:0;pointer-events:none}99%{pointer-events:none}to{opacity:.35;pointer-events:auto}}.mc-float:hover{opacity:1!important}}@supports not (animation-timeline:scroll()){.mc-float{pointer-events:auto}}@media (hover:none),(max-width:781px){.mc-float{padding:12px 16px}.mc-float-name{display:none}.mc-float-links{width:100%;justify-content:space-between;gap:14px}@supports (animation-timeline:scroll()){.mc-float{animation:mc-float-show 1s linear both;animation-timeline:scroll();animation-range:40px 300px}}@supports not (animation-timeline:scroll()){.mc-float{opacity:1;pointer-events:auto}}}@keyframes mc-float-show{from{opacity:0;pointer-events:none}to{opacity:1;pointer-events:auto}}a{transition:color .7s ease,background-color .7s ease,border-color .7s ease,opacity .7s ease}.mc-item img{transition:filter .7s ease,border-color .7s ease}.mc-contact:not([open]) summary:hover{background:color-mix(in srgb,var(--mc--preset--color--accent) 78%,#000);border-color:color-mix(in srgb,var(--mc--preset--color--accent) 78%,#000)}@media (max-width:1024px),(hover:none){.mc-desk-only{display:none}}}@media all{.mc-repos.mc-repos-fill{display:flex;flex-wrap:wrap}.mc-repos.mc-repos-fill>.mc-repo{flex:1 1 250px}}.mc-form{display:grid;gap:22px;margin-top:26px;font-size:clamp(17px, 1.5vw, 20px);max-width:68ch}.mc-form .mc-f{display:grid;gap:9px}.mc-form .mc-row{display:grid;gap:22px;grid-template-columns:1fr 1fr}@media(max-width:640px){.mc-form .mc-row{grid-template-columns:1fr}}.mc-form label{font-family:var(--mc--preset--font-family--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mc--preset--color--muted)}.mc-form .mc-req{color:var(--mc--preset--color--accent)}.mc-form input,.mc-form textarea{width:100%;box-sizing:border-box;background:transparent;color:var(--mc--preset--color--contrast);border:1px solid var(--mc--preset--color--line);border-radius:2px;padding:13px 14px;font-family:inherit;font-size:16px;line-height:1.5;transition:border-color .2s ease}.mc-form textarea{min-height:150px;resize:vertical}.mc-form input:focus,.mc-form textarea:focus{outline:none;border-color:var(--mc--preset--color--accent)}.mc-form input:-webkit-autofill{-webkit-text-fill-color:var(--mc--preset--color--contrast);-webkit-box-shadow:0 0 0 1000px var(--mc--preset--color--base) inset}.mc-form button{justify-self:start;background:var(--mc--preset--color--accent);color:var(--mc--preset--color--base);border:1px solid var(--mc--preset--color--accent);border-radius:2px;padding:14px 30px;font-family:var(--mc--preset--font-family--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:opacity .2s ease}.mc-form button:hover,.mc-form button:focus-visible{opacity:.85}.mc-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.mc-sent{display:none;position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:9999;box-sizing:border-box;width:min(600px, calc(100% - (var(--mc-gutter) * 2)));padding:14px 20px;background:var(--mc--preset--color--base);border:1px solid var(--mc--preset--color--accent);border-radius:2px;font-family:var(--mc--preset--font-family--mono);font-size:12px;letter-spacing:.06em;line-height:1.6;text-align:center;color:var(--mc--preset--color--contrast);box-shadow:0 8px 30px rgba(0,0,0,.45)}.mc-sent:target{display:block;animation:mc-sent-out 3.6s ease-in forwards}@keyframes mc-sent-out{0%,89%{opacity:1}100%{opacity:0;visibility:hidden}}@media(prefers-reduced-motion:reduce){.mc-sent:target{animation:mc-sent-cut 3s steps(1,end) forwards}@keyframes mc-sent-cut{0%,99%{opacity:1}100%{opacity:0;visibility:hidden}}}/* fit-content, not a pixel cap: the box is a block-level flex item in the form grid, so it stretched to the column and a max-width was simply ignored when the column was narrower. Sizing to its own content is what actually keeps it short, at any column width. *//* The human check. It borrows the SHAPE people already recognise, a bordered box with a checkbox and a mark off to the right, but the mark and the wording are this site's own. Copying Google's badge or the reCAPTCHA name would be passing off their product as ours. */.mc-check{display:flex;align-items:center;justify-content:space-between;gap:12px;width:fit-content;max-width:100%;padding:11px 13px;border:1px solid var(--mc--preset--color--line);border-radius:3px;background:rgba(255,255,255,.02)}.mc-check input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.mc-check label{display:flex;align-items:center;gap:10px;cursor:pointer;font-family:inherit;font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--mc--preset--color--contrast)}.mc-check__box{position:relative;flex:0 0 22px;width:22px;height:22px;border-radius:2px;border:1px solid var(--mc--preset--color--line);background:transparent;transition:border-color .2s ease,background .2s ease}/* The tick spins in as it draws: a half turn while the stroke lays itself down, settling upright. */.mc-check__tick{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--mc--preset--color--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transform:rotate(-180deg) scale(.55);transform-origin:50% 50%;transition:stroke-dashoffset .42s cubic-bezier(.65,0,.35,1),transform .42s cubic-bezier(.34,1.4,.5,1)}.mc-check input:checked + label .mc-check__box{border-color:var(--mc--preset--color--accent)}.mc-check input:checked + label .mc-check__tick{stroke-dashoffset:0;transform:rotate(0) scale(1)}.mc-check input:focus-visible + label .mc-check__box{outline:2px solid var(--mc--preset--color--accent);outline-offset:2px}/* The badge sits beside the label, not under it. Stacked, it wrapped onto a second line at the width the form actually renders at. */.mc-check__mark{display:flex;flex-direction:row;align-items:center;gap:5px;flex:0 0 auto;font-family:var(--mc--preset--font-family--mono);font-size:8px;letter-spacing:.06em;line-height:1.2;text-transform:uppercase;color:var(--mc--preset--color--muted);pointer-events:none;white-space:nowrap}.mc-check__mark svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:var(--mc--preset--color--muted);stroke-width:1.6;stroke-linejoin:round;transition:stroke .25s ease}.mc-check__glyph{stroke-linecap:round}.mc-check.is-done .mc-check__mark svg{stroke:var(--mc--preset--color--accent)}.mc-check.is-done label{cursor:default}.mc-check.is-done .mc-check__box{background:rgba(95,143,0,.12)}@media(prefers-reduced-motion:reduce){.mc-check__tick{transition:none;transform:rotate(0) scale(1)}}/* The four project shots run two to a row, and fall to one full-width column on a phone. They were a single stacked column at every width, which made the section far longer than it needed to be. Appended here rather than editing the theme's own .mc-shot-stack rule, so the two files stay in step. *//* Exactly two to a row. auto-fit was the wrong tool once the stack got the full width: it fits as many as it can and gave four. minmax(0,1fr) rather than 1fr so a long caption cannot push a column past its share. *//* The tool screenshot and the four project shots were columns beside each other, which put the thumbnails to the RIGHT of what-the-server-sent rather than under it, and squeezed them to 183px. One column here, so the shots sit below the screenshot and get the full width to lay out two to a row in. */.mc-shots{grid-template-columns:1fr;gap:28px}.mc-shot-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;align-content:start}/* align-content, not align-items: the stack has a definite height from the layout around it, so the ROWS were stretching to share it and left a 250px hole between them. align-items only governs an item inside its row. */.mc-shot-stack figure{margin:0;min-width:0}/* One shape for all four. The source screenshots are 1.60, 1.77, 1.77 and 2.03 to one, so at equal column widths they rendered 364, 328, 328 and 286 tall — the right-hand pair visibly shorter than the left. A common 16:9 with object-fit:cover crops rather than letterboxes, so none of them sit in a band of empty space. */.mc-shot-stack img{width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;object-position:center;display:block}@media(max-width:620px){.mc-shot-stack{grid-template-columns:1fr;gap:16px}}/* Three of the four carry mc-desk-only, which hides them below 1024px, so a phone only ever saw the first. Scoped to this stack: the class is used elsewhere and should keep meaning what it means there. */.mc-shot-stack .mc-desk-only{display:block}