.mo{--mn-bg:#fcfcfc;--mn-fg:#1f1f1f;--mn-fg-2:#4d4d4d;--mn-fg-3:#5e5e5e;--mn-line:#e6e6e6;--mn-surface:#f2f2f2;--mn-focus:#245d79;--mn-sky-wash:#96d4ef;--mo-wash-opacity:.2;--mo-s1:8px;--mo-s2:16px;--mo-s3:24px;--mo-s5:40px;--mo-s8:64px;--mo-text-lg:20px;--mo-text:16px;--mo-text-sm:14px;--mo-leading:1.6;--mo-s1h:12px;--mo-icon:24px;--mo-row-h:44px;--mo-mark:32px;--mo-radius:12px;--mo-radius-sm:8px;--rf-w:640px;--rf-top:96px;--rf-pad:var(--mo-s3);--rf-font:var(--font-inter), system-ui, sans-serif;font-size:var(--mo-text);line-height:var(--mo-leading);overflow-x:clip}[data-theme=dark] .mo{--mn-bg:#141414;--mn-fg:#eee;--mn-fg-2:#b7b7b7;--mn-fg-3:#a5a5a5;--mn-line:#2b2b2b;--mn-surface:#1f1f1f;--mn-focus:#a8d4ef;--mn-sky-wash:#79b6d2;--mo-wash-opacity:.1}.mo:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(125deg, transparent 8%, var(--mn-sky-wash) 45%, transparent 88%);filter:blur(40px);width:min(920px,90vw);height:620px;opacity:var(--mo-wash-opacity);border-radius:40% 60% 64% 36%/47% 34% 66% 53%;position:absolute;top:-220px;right:-180px;transform:rotate(-17deg)}.mo .mn-header-logo{align-items:center;min-height:44px;display:flex}.mo .mn-header-nav a{justify-content:center;min-height:44px}.mo .mn-to-top{width:44px;height:44px}.mo-identity{align-items:center;gap:var(--mo-s2);margin-bottom:var(--mo-s3);display:flex}.mo-identity h1{font-size:var(--mo-text-lg);font-weight:500;line-height:1.4}.mo-identity p{font-size:var(--mo-text-sm);color:var(--mn-fg-3);margin:0}.mo-mark{width:var(--mo-mark);height:var(--mo-mark);border:1px solid var(--mn-line);background:var(--mn-surface);color:var(--mn-fg);font-size:var(--mo-text-sm);border-radius:50%;flex:none;place-items:center;font-weight:600;line-height:1;display:grid}.mo-prose{color:var(--mn-fg-2)}.mo-prose p+p{margin-top:var(--mo-s2)}.mo-opening{margin-top:var(--mo-s5)}.mo-opening h2{letter-spacing:-.035em;max-width:22ch;font-size:clamp(27px,3vw,32px);font-weight:500;line-height:1.25}.mo-opening p{max-width:54ch;margin-top:var(--mo-s2)}.mo-opening .mo-greeting{margin:0 0 var(--mo-s1);color:var(--mn-fg-3)}.mo-mobile-contact{min-height:44px;margin-top:var(--mo-s1);color:var(--mn-fg);font-size:var(--mo-text-sm);text-underline-offset:3px;align-items:center;gap:4px;font-weight:500;text-decoration:underline;display:inline-flex}.mo-mobile-contact:hover{color:var(--mn-fg-3)}.mo-section{margin-top:var(--mo-s8)}.mo-care{margin-top:var(--mo-s5)}.mo-care p{max-width:54ch}.mo-section h2{font-size:var(--mo-text);margin-bottom:var(--mo-s2);font-weight:500}.mo-section-head{justify-content:space-between;align-items:baseline;gap:var(--mo-s2);margin-bottom:var(--mo-s2);display:flex}.mo-section-head h2{margin:0}.mo-section-head a{min-height:44px;font-size:var(--mo-text-sm);color:var(--mn-fg-3);white-space:nowrap;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.mo-section-head a:hover{color:var(--mn-fg)}.mo .mo-build-intro{max-width:54ch;margin-bottom:var(--mo-s3)}.mo-feature{padding:var(--mo-s3) 0;border-block:1px solid var(--mn-line)}.mo-feature-label{margin-bottom:var(--mo-s2);font-size:var(--mo-text-sm);color:var(--mn-fg-3)}.mo-feature-heading,.mo-feature-heading h3{align-items:center;gap:var(--mo-s1h);display:flex}.mo-feature-heading h3{min-width:0;font-size:var(--mo-text);font-weight:500}.mo-feature-desc{margin-top:var(--mo-s1);padding-left:calc(var(--mo-icon) + var(--mo-s1h));font-size:var(--mo-text-sm);color:var(--mn-fg-2)}.mo-list li+li{margin-top:var(--mo-s1)}.mo-row{align-items:center;gap:var(--mo-s2);min-height:44px;margin-inline:calc(-1 * var(--mo-s1));padding:var(--mo-s1);border-radius:var(--mo-radius);text-decoration:none;transition:background-color .15s ease-out;display:flex}a.mo-row:hover{background:var(--mn-surface)}.mo-row-text{padding-block:var(--mo-s1)}.mo-list li+li:has(.mo-row-project){margin-top:0}.mo-row-project{gap:var(--mo-s1h);min-height:var(--mo-row-h);padding-block:var(--mo-s1);border-radius:var(--mo-radius-sm)}.mo-row-project .mo-row-title{flex:1;min-width:0}.mo-tile{width:var(--mo-icon);height:var(--mo-icon);background:var(--mn-surface);color:var(--mn-fg);border-radius:4px;flex:none;place-items:center;display:grid}.mo-project-logo{object-fit:contain;width:18px;height:18px}.mo-project-logo-dark{display:none}[data-theme=dark] .mo-project-logo{filter:invert()}[data-theme=dark] .mo-project-logo-light{display:none}[data-theme=dark] .mo-project-logo-dark{filter:none;display:block}.mo-row-copy{flex-direction:column;flex:1;min-width:0;display:flex}.mo-row-title{color:var(--mn-fg);overflow-wrap:anywhere;font-weight:500}.mo-row-text .mo-row-title{flex:1;min-width:0;font-weight:400}.mo-row-desc{font-size:var(--mo-text-sm);color:var(--mn-fg-3);overflow-wrap:anywhere}.mo-meta{font-size:var(--mo-text-sm);color:var(--mn-fg-3);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}.mo-subpage{min-height:min(560px,70vh)}.mo-subpage h1{font-size:24px;font-weight:500;line-height:1.4}.mo-subpage p{margin-top:var(--mo-s2)}.mo-extras{justify-content:space-between;gap:var(--mo-s3);max-width:calc(var(--rf-w) + 2 * var(--rf-pad));padding:0 var(--rf-pad) var(--mo-s8);font-size:var(--mo-text-sm);color:var(--mn-fg-3);margin-inline:auto;display:flex}.mo-location p+p{margin-top:var(--mo-s1);color:var(--mn-fg-2)}.mo-social{flex-direction:column;align-items:flex-start;display:flex}.mo-theme{align-items:center;gap:var(--mo-s1);display:flex}.mo-theme button{min-width:44px;min-height:44px;color:var(--mn-fg-2);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.mo-social-label{margin-top:var(--mo-s2)!important}.mo-social a{min-height:44px;color:var(--mn-fg-2);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.mo-social a:hover{color:var(--mn-fg);text-decoration:underline}@media (min-width:1100px){.mo-mobile-contact{display:none}.mo-extras{display:contents}.mo-location{position:fixed;bottom:64px;left:32px}.mo-social{text-align:right;align-items:flex-end;position:absolute;top:120px;right:32px}.mo-theme{flex-direction:row}}@media (prefers-reduced-motion:reduce){.mo-row{transition:none}}@media (max-width:767px){.mo{--rf-top:112px;--rf-pad:var(--mo-s2);--mo-s8:var(--mo-s5)}.mo .mn-header-nav{gap:4px}.mo .mn-header-nav a{min-width:44px}.mo-row-text{align-items:flex-start}}@media (max-width:359px){.mo{--rf-top:152px}.mo .mn-header{flex-wrap:wrap}.mo .mn-header-nav{justify-content:space-between;width:100%}}
