@font-face{font-family:Wotfard;src:url(/fonts/wotfard/wotfard-regularitalic-webfont.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Wotfard;src:url(/fonts/wotfard/wotfard-semibold-webfont.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Wotfard;src:url(/fonts/wotfard/wotfard-bold-webfont.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Dank Mono;src:url(/fonts/dank-mono/DankMono-Regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Dank Mono;src:url(/fonts/dank-mono/DankMono-Italic.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Dank Mono;src:url(/fonts/dank-mono/DankMono-Bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--fm-accent-rgb:0, 217, 255;--fm-bg:#0a0a0a;--fm-text:#e5e5e5;--fm-muted:#9d9d9d;--fm-muted-strong:#c9c9c9;--fm-muted-soft:#5a5a5a;--fm-border:#2f2f2f;--fm-border-soft:#1b1b1b;--fm-border-strong:#3a3a3a;--fm-accent:#00d9ff;--fm-accent-soft:#00d9ff1f;--fm-accent-soft-strong:#00d9ff29;--fm-accent-line:#00d9ff73;--fm-surface:#121212;--fm-surface-hover:#171717;--fm-surface-raised:#161616;--fm-surface-strong:#181818;--fm-surface-inset:#141414;--fm-shadow-elevated:0 12px 24px #00000047;--fm-shadow-glow:0 0 20px #00d9ffad;--fm-theme-button-bg:#242424;--fm-theme-button-border:#646464;--fm-theme-button-shadow:0 0 0 #0000;--fm-theme-button-icon:#b5b5b5;--fm-theme-button-icon-muted:#b5b5b5;--fm-theme-button-highlight:#ffffff0f;--fm-theme-button-glow:#ffffff14;--fm-theme-button-focus-ring:#8aefff;--fm-focus-ring:#00d9ff61;--fm-motion-fast:.16s;--fm-motion-base:.22s;--fm-motion-slow:.32s;--fm-motion-theme:.28s;--fm-ease-standard:cubic-bezier(.2, 0, 0, 1);--fm-ease-emphasized:cubic-bezier(.22, 1, .36, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--fm-accent-rgb:0, 106, 128;--fm-bg:#f6f1e8;--fm-text:#16130f;--fm-muted:#6e6558;--fm-muted-strong:#423b32;--fm-muted-soft:#796c5b;--fm-accent:#006a80;--fm-border:#d8cfc3;--fm-border-soft:#ebe1d5;--fm-border-strong:#c8bdae;--fm-accent-soft:rgba(var(--fm-accent-rgb), .1);--fm-accent-soft-strong:rgba(var(--fm-accent-rgb), .14);--fm-accent-line:rgba(var(--fm-accent-rgb), .34);--fm-surface:#fffbf4d6;--fm-surface-hover:#f4ebdf;--fm-surface-raised:#fffaf2;--fm-surface-strong:#f1e8dc;--fm-surface-inset:#efe5d8;--fm-shadow-elevated:0 18px 36px #4d381b1a;--fm-shadow-glow:0 0 20px rgba(var(--fm-accent-rgb), .22);--fm-theme-button-bg:#ece4d8;--fm-theme-button-border:#8a7760;--fm-theme-button-shadow:0 0 0 #0000;--fm-theme-button-icon:#5f5648;--fm-theme-button-icon-muted:#5f5648;--fm-theme-button-highlight:#ffffff73;--fm-theme-button-glow:#5f564814;--fm-theme-button-focus-ring:#005f75;--fm-focus-ring:rgba(var(--fm-accent-rgb), .34);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--fm-bg)}body.fm-body{background:var(--fm-bg);color:var(--fm-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--fm-motion-theme) var(--fm-ease-standard), color var(--fm-motion-theme) var(--fm-ease-standard);margin:0;line-height:1.55;position:relative}main{z-index:1;position:relative}img{block-size:auto;max-inline-size:100%;display:block}a{color:inherit;transition:color var(--fm-motion-theme) var(--fm-ease-standard), background-color var(--fm-motion-theme) var(--fm-ease-standard), border-color var(--fm-motion-theme) var(--fm-ease-standard)}p,h1,h2,h3,h4,small,strong,li,span{transition:color var(--fm-motion-theme) var(--fm-ease-standard), border-color var(--fm-motion-theme) var(--fm-ease-standard), background-color var(--fm-motion-theme) var(--fm-ease-standard)}:where(a,button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--fm-accent);outline-offset:3px}.fm-skip-link{z-index:100;background:color-mix(in srgb, var(--fm-accent) 14%, var(--fm-surface-raised));color:var(--fm-text);transition:transform var(--fm-motion-fast) var(--fm-ease-standard);border-radius:.5rem;padding:.75rem 1rem;font-weight:600;text-decoration:none;position:absolute;top:.75rem;left:.75rem;transform:translateY(-140%)}.fm-skip-link:focus{transform:translateY(0)}.fm-theme-toggle{z-index:30;block-size:3.5rem;inline-size:3.5rem;color:var(--fm-theme-button-icon);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;outline:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed;bottom:1rem;right:1rem}.fm-theme-toggle-shell{border-radius:inherit;border:1px solid var(--fm-theme-button-border);background:var(--fm-theme-button-bg);block-size:100%;inline-size:100%;box-shadow:var(--fm-theme-button-shadow);transition:transform var(--fm-motion-base) var(--fm-ease-emphasized), border-color var(--fm-motion-base) var(--fm-ease-standard), background-color var(--fm-motion-base) var(--fm-ease-standard), box-shadow var(--fm-motion-base) var(--fm-ease-standard);place-items:center;display:grid;position:relative;overflow:hidden}.fm-theme-toggle-shell:before{content:"";border-radius:inherit;background:radial-gradient(circle at 32% 28%, var(--fm-theme-button-highlight), transparent 44%);opacity:0;transition:opacity var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);position:absolute;inset:0;transform:scale(.88)}.fm-theme-toggle:hover .fm-theme-toggle-shell,.fm-theme-toggle:focus-visible .fm-theme-toggle-shell{box-shadow:0 0 0 .45rem var(--fm-theme-button-glow);transform:translateY(-1px)scale(1.04)}.fm-theme-toggle:hover .fm-theme-toggle-shell:before,.fm-theme-toggle:focus-visible .fm-theme-toggle-shell:before{opacity:1;transform:scale(1)}.fm-theme-toggle:active .fm-theme-toggle-shell{box-shadow:0 0 0 .25rem var(--fm-theme-button-glow);transform:translateY(0)scale(.94)}.fm-theme-toggle:focus-visible{outline:3px solid var(--fm-theme-button-focus-ring);outline-offset:4px}.fm-theme-toggle-icon{block-size:1.55rem;inline-size:1.55rem;color:var(--fm-theme-button-icon-muted);transform-origin:50%;transition:opacity var(--fm-motion-slow) var(--fm-ease-emphasized), color var(--fm-motion-base) var(--fm-ease-standard), transform .52s var(--fm-ease-emphasized);z-index:1;visibility:visible;justify-content:center;align-items:center;display:inline-flex;position:absolute}.fm-theme-toggle:hover .fm-theme-toggle-icon,.fm-theme-toggle:focus-visible .fm-theme-toggle-icon{color:var(--fm-theme-button-icon)}.fm-theme-toggle-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.fm-theme-toggle-icon-sun{opacity:1;transform:scale(1)rotate(0)}.fm-theme-toggle-icon-moon{opacity:0;visibility:hidden;transform:scale(.4)rotate(-160deg)}.fm-theme-toggle:hover .fm-theme-toggle-icon-sun,.fm-theme-toggle:focus-visible .fm-theme-toggle-icon-sun{transform:scale(1.08)rotate(10deg)}.fm-theme-toggle:hover .fm-theme-toggle-icon-moon,.fm-theme-toggle:focus-visible .fm-theme-toggle-icon-moon{transform:scale(.46)rotate(-148deg)}:root[data-theme=light] .fm-theme-toggle-icon-sun{opacity:0;visibility:hidden;transform:scale(.38)rotate(150deg)}:root[data-theme=light] .fm-theme-toggle-icon-moon{opacity:1;visibility:visible;transform:scale(1)rotate(0)}:root[data-theme=light] .fm-theme-toggle:hover .fm-theme-toggle-icon-sun,:root[data-theme=light] .fm-theme-toggle:focus-visible .fm-theme-toggle-icon-sun{transform:scale(.44)rotate(162deg)}:root[data-theme=light] .fm-theme-toggle:hover .fm-theme-toggle-icon-moon,:root[data-theme=light] .fm-theme-toggle:focus-visible .fm-theme-toggle-icon-moon{transform:scale(1.08)rotate(10deg)}:target{scroll-margin-block-start:1.5rem}.fm-container,.fm-contact-wrap,.fm-narrow{width:min(1040px,100vw - 2rem);margin-inline:auto}.fm-section{padding:clamp(3.75rem,8vw,6.5rem) 0}@supports (content-visibility:auto){.fm-section{content-visibility:auto;contain-intrinsic-size:1px 960px}}.fm-section-head h2{font-family:var(--font-display);letter-spacing:.01em;text-wrap:balance;margin:0;font-size:clamp(2rem,9vw,2.5rem);font-weight:500;line-height:1.12}.fm-section-head p{color:var(--fm-muted);margin:.75rem 0 0;font-size:1rem;font-weight:300;line-height:1.45}.fm-hero{place-items:center;min-height:100svh;padding:2rem 1rem 4rem;display:grid;position:relative}.fm-hero-content{text-align:center;max-width:48rem}.fm-role{color:var(--fm-accent);font-family:var(--font-display);letter-spacing:.18em;margin:0;font-size:.75rem;font-weight:500}.fm-name{font-family:var(--font-display);text-wrap:balance;margin:.8rem 0 0;font-size:clamp(2.35rem,13vw,4.2rem);font-weight:500;line-height:1.05}.fm-tagline{max-width:36rem;color:var(--fm-muted);text-wrap:pretty;margin:1.2rem auto 0;font-size:clamp(1.02rem,4.7vw,1.35rem);font-weight:300;line-height:1.5}.fm-hero-links{color:var(--fm-muted-strong);align-items:center;gap:.8rem;margin-top:1.85rem;font-size:.95rem;display:inline-flex}.fm-hero-links a{transition:color var(--fm-motion-fast) var(--fm-ease-standard), background-color var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);border-radius:999px;padding:.3rem .55rem;text-decoration:none}.fm-hero-links a:hover,.fm-hero-links a:focus-visible{color:var(--fm-accent);background:var(--fm-accent-soft);transform:translateY(-1px)}.fm-hero-links a:active{transform:translateY(0)scale(.98)}.fm-hero-links span{color:var(--fm-muted-soft)}.fm-scroll-down{opacity:.78;color:var(--fm-muted);min-width:2.75rem;min-height:2.75rem;transition:color var(--fm-motion-fast) var(--fm-ease-standard), opacity var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);place-items:center;text-decoration:none;display:grid;position:absolute;bottom:1.15rem;left:50%;transform:translate(-50%)}.fm-scroll-down svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;transform-origin:50%;width:1.2rem;height:1.2rem}.fm-scroll-down.is-hero-active{opacity:1}.fm-scroll-down.is-hero-active svg{animation:1.7s cubic-bezier(.22,1,.36,1) infinite fm-chevron-bob}@keyframes fm-chevron-bob{0%,to{opacity:.66;transform:translateY(0)scale(1)}52%{opacity:1;transform:translateY(6px)scale(1.04)}}.fm-scroll-down:hover{color:var(--fm-accent);transform:translate(-50%)translateY(1px)}.fm-timeline-shell{position:relative}.fm-timeline{gap:2.2rem;margin-top:2.2rem;margin-bottom:0;padding:.2rem 0 1.2rem 1.85rem;list-style:none;display:grid;position:relative}.fm-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fm-timeline-line,.fm-timeline-progress{width:1px;position:absolute;top:0;left:.45rem}.fm-timeline-line{background:var(--fm-border-soft);height:100%}.fm-timeline-progress{background:linear-gradient(180deg, rgba(var(--fm-accent-rgb), .98) 0%, rgba(var(--fm-accent-rgb), .82) 68%, rgba(var(--fm-accent-rgb), .3) 100%);height:0;box-shadow:0 0 14px rgba(var(--fm-accent-rgb), .22);will-change:height}.fm-timeline-progress:after{content:"";background:var(--fm-accent);width:.56rem;height:.56rem;box-shadow:0 0 18px rgba(var(--fm-accent-rgb), .66);opacity:0;border-radius:999px;transition:opacity .2s,transform .2s;position:absolute;bottom:0;left:50%;transform:translate(-50%,42%)scale(.84)}.fm-timeline-progress.is-active:after{opacity:1;animation:1.9s ease-in-out infinite fm-timeline-tip-pulse;transform:translate(-50%,42%)scale(1)}@keyframes fm-timeline-tip-pulse{0%,to{box-shadow:0 0 10px rgba(var(--fm-accent-rgb), .4), 0 0 18px rgba(var(--fm-accent-rgb), .18)}50%{box-shadow:0 0 16px rgba(var(--fm-accent-rgb), .68), 0 0 28px rgba(var(--fm-accent-rgb), .26)}}.fm-timeline-item,.fm-timeline-item-left,.fm-timeline-item-right{text-align:left;width:100%;position:relative}.fm-timeline-copy{max-width:100%}.fm-timeline-item.fm-reveal .fm-timeline-copy{opacity:0;transition:opacity .52s,transform .62s cubic-bezier(.22,1,.36,1);transform:translate(18px)}.fm-timeline-item.fm-reveal.is-visible .fm-timeline-copy{opacity:1;transition-delay:60ms;transform:translate(0)}.fm-year{color:var(--fm-accent);font-size:.9rem;font-family:var(--font-display);margin:0}.fm-timeline-copy h3{font-size:1.4rem;font-family:var(--font-display);margin:.38rem 0 0;font-weight:500;line-height:1.25}.fm-timeline-copy p{color:var(--fm-muted);margin:.65rem 0 0;font-size:.97rem;font-weight:300;line-height:1.5}.fm-timeline-dot,.fm-timeline-item-left .fm-timeline-dot,.fm-timeline-item-right .fm-timeline-dot{background:var(--fm-accent);opacity:1;width:.85rem;height:.85rem;box-shadow:0 0 20px rgba(var(--fm-accent-rgb), .68);border-radius:999px;position:absolute;top:.45rem;left:-1.825rem;transform:none}.fm-timeline-item.fm-reveal .fm-timeline-dot{opacity:0;box-shadow:0 0 0 rgba(var(--fm-accent-rgb), 0);transition:opacity .42s,transform .66s cubic-bezier(.22,1,.36,1),box-shadow .48s;transform:translate(14px)scale(.82)}.fm-timeline-item.fm-reveal.is-visible .fm-timeline-dot{opacity:1;box-shadow:0 0 20px rgba(var(--fm-accent-rgb), .68);transition-delay:.14s;transform:translate(0)scale(1)}.fm-grid{gap:.9rem;display:grid}.fm-section-head+.fm-grid{margin-top:1.4rem}.fm-grid-two{grid-template-columns:1fr}.fm-card{border:1px solid var(--fm-border);background:var(--fm-surface);transition:border-color var(--fm-motion-fast) var(--fm-ease-standard), background-color var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized), box-shadow var(--fm-motion-base) var(--fm-ease-standard);border-radius:.75rem;flex-direction:column;padding:1rem;display:flex}.fm-card:hover{border-color:rgba(var(--fm-accent-rgb), .45);background:var(--fm-surface-hover);box-shadow:var(--fm-shadow-elevated);transform:translateY(-2px)}.fm-project-card{gap:.8rem}.fm-project-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.fm-project-link{border:1px solid var(--fm-border-strong);min-height:2.5rem;color:var(--fm-muted);background:var(--fm-surface-inset);transition:color var(--fm-motion-fast) var(--fm-ease-standard), border-color var(--fm-motion-fast) var(--fm-ease-standard), background-color var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);border-radius:999px;flex-shrink:0;align-items:center;gap:.45rem;padding:.45rem .8rem;display:inline-flex}.fm-project-link:hover,.fm-project-link:focus-visible{color:var(--fm-accent);border-color:rgba(var(--fm-accent-rgb), .55);background:var(--fm-accent-soft-strong);transform:translateY(-1px)scale(1.02)}.fm-project-link:active{transform:translateY(0)scale(.98)}.fm-project-link svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.fm-project-link-text{font-size:.84rem;font-weight:500;line-height:1}.fm-project-link-icon{justify-content:center;align-items:center;display:inline-flex}.fm-project-card h3,.fm-card h3{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:1.28rem;font-weight:500;line-height:1.35}.fm-project-card p,.fm-card p{color:var(--fm-muted);text-wrap:pretty;margin:0;font-size:.96rem;font-weight:300;line-height:1.48}.fm-tags{flex-wrap:wrap;gap:.4rem;margin:.9rem 0 0;padding:0;list-style:none;display:flex}.fm-tags li{font-family:var(--font-mono);background:var(--fm-surface-strong);border:1px solid var(--fm-border-soft);color:var(--fm-accent);border-radius:.3rem;padding:.34rem .56rem;font-size:.84rem;line-height:1.2}.fm-writing-list{margin:1.6rem 0 0;padding:0;list-style:none}.fm-writing-list li{border-bottom:1px solid var(--fm-border-soft)}.fm-writing-list a{justify-content:space-between;align-items:flex-start;gap:.9rem;padding:1.2rem 0;text-decoration:none;display:flex}.fm-writing-list strong{font-family:var(--font-display);text-wrap:balance;font-size:1.25rem;font-weight:500;line-height:1.35;display:block}.fm-writing-list small{color:var(--fm-muted);flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.45rem;font-size:.9rem;font-style:normal;line-height:1.4;display:inline-flex}.fm-writing-list small i{color:var(--fm-muted-soft);font-style:normal}.fm-writing-list small svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:.88rem;height:.88rem}.fm-arrow{color:var(--fm-muted-soft);transition:color var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);flex-shrink:0;justify-content:center;align-items:center;margin-top:.15rem;display:inline-flex}.fm-arrow svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.1rem;height:1.1rem}.fm-writing-list a:hover strong,.fm-writing-list a:focus-visible strong,.fm-writing-list a:hover .fm-arrow,.fm-writing-list a:focus-visible .fm-arrow{color:var(--fm-accent)}.fm-writing-list a:hover .fm-arrow,.fm-writing-list a:focus-visible .fm-arrow{transform:translate(3px)}.fm-writing-active{border-bottom-color:var(--fm-accent-line)}.fm-writing-active strong,.fm-writing-active .fm-arrow{color:var(--fm-accent)}.fm-tech{font-family:var(--font-mono);color:var(--fm-accent);margin-top:.75rem;font-size:.95rem}.fm-card-links{flex-wrap:wrap;gap:.75rem;margin-top:auto;padding-top:.95rem;display:flex}.fm-card-links a{color:var(--fm-muted);min-height:2rem;transition:color var(--fm-motion-fast) var(--fm-ease-standard), background-color var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);border-radius:.4rem;align-items:center;gap:.28rem;padding:.2rem .35rem;font-size:.92rem;text-decoration:none;display:inline-flex}.fm-card-links a:hover,.fm-card-links a:focus-visible{color:var(--fm-accent);background:var(--fm-accent-soft);transform:translateY(-1px)}.fm-card-links a:active{transform:translateY(0)scale(.98)}.fm-card-links svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:.85rem;height:.85rem}.fm-contact-section{padding-bottom:0}.fm-contact-intro{max-width:52rem;color:var(--fm-muted);margin:2rem 0 0;font-size:1.03rem;font-weight:300;line-height:1.55}.fm-contact-list{gap:1rem;max-width:30rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.fm-contact-list a{transition:background-color var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);border-radius:.65rem;align-items:center;gap:.8rem;margin-inline:-.45rem;padding:.35rem .45rem;text-decoration:none;display:flex}.fm-contact-list a:hover,.fm-contact-list a:focus-visible{background:var(--fm-accent-soft);transform:translateY(-1px)}.fm-contact-list a:active{transform:translateY(0)scale(.99)}.fm-contact-icon{border:1px solid var(--fm-border);background:var(--fm-surface-raised);width:2.2rem;height:2.2rem;color:var(--fm-muted);transition:color var(--fm-motion-fast) var(--fm-ease-standard), border-color var(--fm-motion-fast) var(--fm-ease-standard), transform var(--fm-motion-base) var(--fm-ease-emphasized);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.fm-contact-list a:hover .fm-contact-icon,.fm-contact-list a:focus-visible .fm-contact-icon{color:var(--fm-accent);border-color:var(--fm-accent-line);transform:scale(1.04)}.fm-contact-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:.9rem;height:.9rem}.fm-contact-list small{color:var(--fm-muted);font-size:.92rem;display:block}.fm-contact-list strong{margin-top:.03rem;font-size:1.05rem;font-weight:400;line-height:1.3;display:block}.fm-footer{border-top:1px solid var(--fm-border-soft);margin-top:3rem;padding:1.2rem 0}.fm-footer-inner{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.fm-footer p{color:var(--fm-muted);margin:0;font-size:.9rem}.fm-enhanced .fm-reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(16px)}.fm-enhanced .fm-reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fm-enhanced .fm-reveal,.fm-hero-links a,.fm-scroll-down,.fm-card,.fm-project-link,.fm-theme-toggle-shell,.fm-theme-toggle-glow,.fm-theme-toggle-icon,.fm-arrow,.fm-card-links a,.fm-contact-list a,.fm-contact-icon,.fm-timeline-progress:after,.fm-timeline-item.fm-reveal .fm-timeline-copy,.fm-timeline-item.fm-reveal .fm-timeline-dot{transition:none}.fm-enhanced .fm-reveal,.fm-timeline-item.fm-reveal .fm-timeline-copy,.fm-timeline-item.fm-reveal .fm-timeline-dot{opacity:1;transform:none}.fm-timeline-item.fm-reveal.is-visible .fm-timeline-copy,.fm-timeline-item.fm-reveal.is-visible .fm-timeline-dot{transition-delay:0s}.fm-timeline-progress.is-active:after,.fm-scroll-down.is-hero-active svg{animation:none}}@media (forced-colors:active){.fm-theme-toggle{forced-color-adjust:none;color:buttontext}.fm-theme-toggle-shell{box-shadow:none;background:canvas;border-color:buttontext}.fm-theme-toggle-icon{color:buttontext}.fm-theme-toggle:focus-visible{outline-color:highlight}}@media (width>=640px){.fm-theme-toggle{bottom:1.5rem;right:1.5rem}.fm-container,.fm-contact-wrap,.fm-narrow{width:min(1040px,100vw - 3rem)}.fm-project-card h3,.fm-card h3{font-size:1.45rem}.fm-project-card p,.fm-card p{font-size:1.02rem}.fm-contact-intro{font-size:1.12rem}.fm-contact-list strong{font-size:1.15rem}}@media (width>=821px){.fm-section-head h2{font-size:clamp(2.2rem,6vw,3.4rem)}.fm-hero-links{gap:1.1rem;font-size:1rem}.fm-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.fm-section-head+.fm-grid{margin-top:1.9rem}.fm-timeline{gap:3rem;margin-top:2.8rem;padding:.8rem 0 1.6rem}.fm-timeline-line,.fm-timeline-progress{left:50%;transform:translate(-50%)}.fm-timeline-item{width:calc(50% - 2.4rem)}.fm-timeline-item-left{text-align:right;justify-self:start}.fm-timeline-item-right{text-align:left;justify-self:end}.fm-timeline-copy{max-width:23rem}.fm-timeline-item-left .fm-timeline-copy{margin-left:auto}.fm-timeline-item-left.fm-reveal .fm-timeline-copy{transform:translate(-22px)}.fm-timeline-item-right.fm-reveal .fm-timeline-copy{transform:translate(22px)}.fm-timeline-dot{top:.55rem}.fm-timeline-item-left .fm-timeline-dot{left:auto;right:-3.35rem}.fm-timeline-item-left.fm-reveal .fm-timeline-dot{transform:translate(-14px)scale(.82)}.fm-timeline-item-right .fm-timeline-dot{left:-3.35rem;right:auto}.fm-timeline-item-right.fm-reveal .fm-timeline-dot{transform:translate(14px)scale(.82)}.fm-timeline-item-left.fm-reveal.is-visible .fm-timeline-copy,.fm-timeline-item-right.fm-reveal.is-visible .fm-timeline-copy{transform:translate(0)}.fm-timeline-item-left.fm-reveal.is-visible .fm-timeline-dot,.fm-timeline-item-right.fm-reveal.is-visible .fm-timeline-dot{transform:translate(0)scale(1)}.fm-writing-list a{padding:1.5rem 0}.fm-writing-list strong{font-size:1.55rem}.fm-footer-inner{flex-direction:row;justify-content:space-between;align-items:center}.fm-footer p{font-size:.95rem}}@media (width>=1024px){.fm-section-head h2{font-size:clamp(2.6rem,5vw,3.6rem)}.fm-name{font-size:clamp(3.2rem,8vw,6.1rem)}.fm-tagline{font-size:clamp(1.3rem,2vw,1.72rem)}.fm-timeline{gap:4.4rem;margin-top:3.1rem;padding:1.6rem 0 2.7rem}.fm-timeline-item{width:calc(50% - 2.9rem)}.fm-timeline-copy{max-width:24.5rem}.fm-timeline-copy h3,.fm-writing-list strong,.fm-project-card h3,.fm-card h3{font-size:1.74rem}.fm-project-card p,.fm-card p,.fm-timeline-copy p,.fm-writing-list small,.fm-contact-list small,.fm-footer p,.fm-card-links a,.fm-tech,.fm-tags li{font-size:1rem}.fm-timeline-copy p{font-size:1.12rem}.fm-contact-intro{margin-top:3rem;font-size:clamp(1.2rem,2vw,1.35rem)}.fm-contact-list{gap:1.4rem;margin-top:3rem}.fm-contact-list strong{font-size:1.3rem}.fm-footer{margin-top:4.3rem;padding:1.8rem 0}}