:root{--font-sans:"Wotfard", "Avenir Next", "Segoe UI Variable", "Segoe UI", "Helvetica Neue", sans-serif;--font-display:var(--font-sans);--font-mono:"Dank Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", monospace;--fm-accent-rgb:0, 217, 255;--fm-bg:light-dark(#f6f1e8,#0a0a0a);--fm-text:light-dark(#16130f,#e5e5e5);--fm-muted:light-dark(#6e6558,#9d9d9d);--fm-muted-strong:light-dark(#423b32,#c9c9c9);--fm-muted-soft:light-dark(#796c5b,#5a5a5a);--fm-border:light-dark(#d8cfc3,#2f2f2f);--fm-border-soft:light-dark(#ebe1d5,#1b1b1b);--fm-border-strong:light-dark(#c8bdae,#3a3a3a);--fm-accent:light-dark(#006a80,#00d9ff);--fm-accent-soft:light-dark(#006a801a,#00d9ff1f);--fm-accent-soft-strong:light-dark(#006a8024,#00d9ff29);--fm-accent-line:light-dark(#006a8057,#00d9ff73);--fm-surface:light-dark(#fffbf4d6,#121212);--fm-surface-hover:light-dark(#f4ebdf,#171717);--fm-surface-raised:light-dark(#fffaf2,#161616);--fm-surface-strong:light-dark(#f1e8dc,#181818);--fm-surface-inset:light-dark(#efe5d8,#141414);--fm-shadow-elevated:0 12px 24px #00000047;--fm-theme-button-bg:light-dark(#ece4d8,#242424);--fm-theme-button-border:light-dark(#8a7760,#646464);--fm-theme-button-shadow:0 0 0 transparent;--fm-theme-button-icon:light-dark(#5f5648,#b5b5b5);--fm-theme-button-icon-muted:var(--fm-theme-button-icon);--fm-theme-button-highlight:light-dark(#ffffff73,#ffffff0f);--fm-theme-button-glow:light-dark(#5f564814,#ffffff14);--fm-theme-button-focus-ring:light-dark(#005f75,#8aefff);--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);color-scheme:dark}:root[data-theme=light]{--fm-accent-rgb:0, 106, 128;--fm-shadow-elevated:0 18px 36px #4d381b1a;color-scheme:light}*,:before,:after{box-sizing:border-box}p,h1,h2,h3,h4,small,strong,li,span{margin-block-start:0}@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}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}::selection{background:var(--fm-accent-soft-strong);color:var(--fm-text)}.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:none;position:fixed;bottom:1rem;right:1rem}.fm-enhanced .fm-theme-toggle{display:inline-flex}.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)}.fm-season-toggle{bottom:5.25rem}.fm-theme-toggle.fm-season-toggle[hidden],.fm-season-toggle-icon[hidden]{display:none}.fm-season-toggle-icon{opacity:.42;transform:scale(.92)}.fm-season-toggle[aria-checked=true] .fm-season-toggle-icon{opacity:1;color:var(--fm-accent);transform:scale(1)}.fm-season-toggle[data-busy] .fm-season-toggle-icon{animation:2.4s ease-in-out infinite fm-season-busy}@keyframes fm-season-busy{50%{opacity:.42}}:target{scroll-margin-block-start:1.5rem}.fm-container,.fm-contact-wrap,.fm-narrow{width:min(1040px,100% - 2rem);margin-inline:auto}.fm-section{content-visibility:auto;contain-intrinsic-block-size:auto 960px;padding:clamp(3.75rem,8vw,6.5rem) 0}.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{z-index:1;text-align:center;max-width:48rem;position:relative}.fm-scene-slot{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.fm-hero-content{transition:translate 1.8s var(--fm-ease-emphasized)}[data-scene-ambient] .fm-hero-content{translate:0 var(--fm-scene-hero-lift,0)}.fm-name{font-family:var(--font-display);text-wrap:balance;margin: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-meta{color:var(--fm-muted);text-wrap:balance;margin:.7rem auto 0;font-size:.95rem;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:.5rem .7rem;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-path:inset(50%);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%;transition:background-color var(--fm-motion-theme) var(--fm-ease-standard)}.fm-timeline-progress{background:linear-gradient(180deg, color-mix(in srgb, var(--fm-accent) 98%, transparent) 0%, color-mix(in srgb, var(--fm-accent) 82%, transparent) 68%, color-mix(in srgb, var(--fm-accent) 30%, transparent) 100%);height:0;box-shadow:0 0 14px color-mix(in srgb, var(--fm-accent) 22%, transparent)}.fm-timeline-progress:after{content:"";background:var(--fm-accent);width:.56rem;height:.56rem;box-shadow:0 0 18px color-mix(in srgb, var(--fm-accent) 66%, transparent);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 color-mix(in srgb, var(--fm-accent) 40%, transparent), 0 0 18px color-mix(in srgb, var(--fm-accent) 18%, transparent)}50%{box-shadow:0 0 16px color-mix(in srgb, var(--fm-accent) 68%, transparent), 0 0 28px color-mix(in srgb, var(--fm-accent) 26%, transparent)}}.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-enhanced .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-enhanced .fm-timeline-item.fm-reveal.is-visible .fm-timeline-copy{opacity:1;transition-delay:60ms;transform:translate(0)}.fm-timeline-copy .fm-year{color:var(--fm-accent);font-size:.9rem;font-family:var(--font-display);margin:0;font-weight:500}.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 color-mix(in srgb, var(--fm-accent) 68%, transparent);transition:background-color var(--fm-motion-theme) var(--fm-ease-standard);border-radius:999px;position:absolute;top:.45rem;left:-1.825rem;transform:none}.fm-enhanced .fm-timeline-item.fm-reveal .fm-timeline-dot{opacity:0;box-shadow:0 0 0 color-mix(in srgb, var(--fm-accent) 0%, transparent);transition:opacity .42s,transform .66s cubic-bezier(.22,1,.36,1),box-shadow .48s;transform:translate(14px)scale(.82)}.fm-enhanced .fm-timeline-item.fm-reveal.is-visible .fm-timeline-dot{opacity:1;box-shadow:0 0 20px color-mix(in srgb, var(--fm-accent) 68%, transparent);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}@media (hover:hover){.fm-card:hover{border-color:color-mix(in srgb, var(--fm-accent) 45%, transparent);background:var(--fm-surface-hover);box-shadow:var(--fm-shadow-elevated);transform:translateY(-2px)}}.fm-project-card{gap:.8rem;min-inline-size:0}.fm-project-card-foot{margin-top:auto;padding-top:.3rem}.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;text-decoration:none;display:inline-flex}.fm-project-link:hover,.fm-project-link:focus-visible{color:var(--fm-accent);border-color:color-mix(in srgb, var(--fm-accent) 55%, transparent);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:.2rem 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-muted-strong);transition:background-color var(--fm-motion-theme) var(--fm-ease-standard), border-color var(--fm-motion-theme) var(--fm-ease-standard), color var(--fm-motion-theme) var(--fm-ease-standard);border-radius:.3rem;padding:.34rem .56rem;font-size:.84rem;line-height:1.2}.fm-preview{border:1px solid var(--fm-border-soft);background:var(--fm-surface-inset);min-block-size:10.5rem;min-inline-size:0;color:var(--fm-muted);border-radius:.6rem;flex-direction:column;justify-content:center;gap:.65rem;margin:0;padding:.9rem 1rem;font-size:.86rem;line-height:1.4;display:flex;overflow:hidden}.fm-preview-label{color:var(--fm-muted);font-size:.82rem}.fm-preview-mono{color:var(--fm-text);font-family:var(--font-mono)}.fm-preview-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.fm-preview-tiles{grid-template-columns:repeat(14,minmax(0,1fr));gap:.3rem;display:grid}.fm-preview-tiles span{aspect-ratio:1;border:1px solid var(--fm-border);border-radius:.2rem}.fm-preview-tiles .is-done{border-color:var(--fm-accent-line);background:var(--fm-accent-soft-strong)}.fm-preview-mark{align-items:center;gap:.7rem;display:flex}.fm-preview-mark-badge{border:1px solid var(--fm-accent-line);block-size:2.2rem;inline-size:2.2rem;color:var(--fm-accent);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.fm-preview-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;block-size:1rem;inline-size:1rem}.fm-preview-mark strong{color:var(--fm-text);font-size:.92rem;font-weight:500;display:block}.fm-preview-mark small{font-size:.82rem;display:block}.fm-preview-temper{flex-direction:row;justify-content:flex-start;align-items:center;gap:clamp(.9rem,4vw,1.4rem)}.fm-preview-ring{text-align:center;background:radial-gradient(closest-side, var(--fm-surface-inset) 84%, transparent 85%), conic-gradient(var(--fm-accent) 0 70%, var(--fm-border) 0 100%);border-radius:999px;flex-shrink:0;place-content:center;block-size:clamp(5rem,22vw,6rem);inline-size:clamp(5rem,22vw,6rem);display:grid}.fm-preview-ring .fm-preview-mono{font-size:1.3rem;line-height:1.1}.fm-preview-ring small{font-size:.78rem}.fm-preview-stats{gap:.45rem;margin:0;display:grid}.fm-preview-stats div{gap:.7rem;display:flex}.fm-preview-stats dt{min-inline-size:4.9rem}.fm-preview-stats dd{color:var(--fm-text);margin:0}.fm-preview-zones{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.fm-preview-zones span{background:var(--fm-border-strong);border-radius:999px;block-size:.35rem;inline-size:.8rem}.fm-preview-zones .is-on{background:var(--fm-accent)}.fm-preview-temper{container-type:inline-size}@container (width<=24rem){.fm-preview-stats div{flex-direction:column;gap:0}.fm-preview-stats dt{min-inline-size:0;font-size:.8rem}}.fm-preview-zones span:last-of-type{margin-inline-end:.4rem}.fm-preview .fm-preview-turn{color:var(--fm-muted-strong);grid-template-columns:4.6rem 1fr;gap:.5rem;margin:0;font-size:.88rem;font-weight:400;line-height:1.4;display:grid}.fm-preview-turn span{color:var(--fm-muted);font-size:.82rem}.fm-preview .fm-preview-coach{border:1px solid var(--fm-accent-line);background:var(--fm-accent-soft);color:var(--fm-text);border-radius:999px;align-self:flex-start;align-items:center;gap:.45rem;margin:.15rem 0 0;padding:.35rem .75rem;font-size:.84rem;font-weight:400;line-height:1.3;display:inline-flex}.fm-preview-coach .fm-preview-icon{color:var(--fm-accent);flex-shrink:0}.fm-preview-ar{--fm-lip:#9e4a5a;flex-direction:row;justify-content:space-evenly;align-items:center;gap:1rem}.fm-preview-ar:has(input[value=coral]:checked){--fm-lip:#d9654b}.fm-preview-ar:has(input[value=plum]:checked){--fm-lip:#6e2f55}.fm-preview-ar:has(input[value=nude]:checked){--fm-lip:#c48e7b}.fm-preview-lips{block-size:auto;inline-size:min(11rem,55%)}.fm-preview-lips path{fill:var(--fm-lip);transition:fill .18s var(--fm-ease-standard)}.fm-preview-lips .fm-preview-lips-line{fill:none;stroke:color-mix(in srgb, var(--fm-lip) 55%, #000);stroke-width:2px;stroke-linecap:round}.fm-preview-swatches{grid-template-columns:repeat(2,auto);gap:.7rem;display:grid}.fm-preview-swatch{border-radius:999px;block-size:1.75rem;inline-size:1.75rem;position:relative}.fm-preview-swatch-rosewood{background:#9e4a5a}.fm-preview-swatch-coral{background:#d9654b}.fm-preview-swatch-plum{background:#6e2f55}.fm-preview-swatch-nude{background:#c48e7b}.fm-preview-swatch input{appearance:none;border-radius:inherit;cursor:pointer;margin:0;position:absolute;inset:0}.fm-preview-swatch input:checked{box-shadow:0 0 0 2px var(--fm-surface-inset), 0 0 0 3.5px var(--fm-text)}.fm-preview-diagram{block-size:auto;max-block-size:9rem;inline-size:100%}.fm-preview-enterprise :is(circle,rect,path){fill:none;stroke:var(--fm-border-strong);stroke-width:1.4px}.fm-preview-enterprise .fm-preview-box{fill:var(--fm-surface)}.fm-preview-enterprise .is-accent,.fm-preview-enterprise .fm-preview-nodes circle{stroke:var(--fm-accent)}.fm-preview-enterprise text{fill:var(--fm-muted);font-family:var(--font-sans);text-anchor:middle;font-size:12px}.fm-preview-checkout{justify-content:flex-start;gap:.55rem}.fm-preview-checkout legend{float:left;inline-size:100%;margin-block-end:.15rem;padding:0}.fm-preview-field{clear:both;grid-template-columns:1.5rem 1fr;align-items:center;gap:.3rem .5rem;display:grid}.fm-preview-step{border:1px solid var(--fm-border-strong);block-size:1.3rem;inline-size:1.3rem;font-family:var(--font-mono);transition:background-color var(--fm-motion-fast) var(--fm-ease-standard), color var(--fm-motion-fast) var(--fm-ease-standard);border-radius:999px;place-items:center;font-size:.75rem;display:grid}.fm-preview-field:focus-within .fm-preview-step{border-color:var(--fm-accent);background:var(--fm-accent);color:var(--fm-bg)}.fm-preview-field-name{color:var(--fm-text);font-size:.86rem}.fm-preview-field input{border:1px solid color-mix(in srgb, var(--fm-muted) 70%, transparent);background:var(--fm-surface);min-inline-size:0;color:var(--fm-text);font:inherit;border-radius:.4rem;grid-column:2;padding:.4rem .6rem;font-size:.9rem}.fm-preview-field input::placeholder{color:var(--fm-muted)}.fm-preview-error{color:light-dark(#a3271c,#ff9a8a);grid-column:2;font-size:.82rem;display:none}.fm-preview-field input:user-invalid{border-color:light-dark(#a3271c,#ff9a8a)}.fm-preview-field input:user-invalid~.fm-preview-error{display:block}.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-dot-sep{color:var(--fm-muted-soft)}.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);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-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,.fm-enhanced .fm-reveal:focus-within{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.fm-body,a,p,h1,h2,h3,h4,small,strong,li,span,.fm-enhanced .fm-reveal,.fm-hero-links a,.fm-scroll-down,.fm-card,.fm-project-link,.fm-theme-toggle-shell,.fm-theme-toggle-icon,.fm-hero-content,.fm-arrow,.fm-contact-list a,.fm-contact-icon,.fm-tags li,.fm-preview-step,.fm-preview-lips path,.fm-timeline-line,.fm-timeline-dot,.fm-timeline-progress:after,.fm-enhanced .fm-timeline-item.fm-reveal .fm-timeline-copy,.fm-enhanced .fm-timeline-item.fm-reveal .fm-timeline-dot{transition:none}.fm-enhanced .fm-reveal,.fm-enhanced .fm-timeline-item.fm-reveal .fm-timeline-copy,.fm-enhanced .fm-timeline-item.fm-reveal .fm-timeline-dot{opacity:1;transform:none}.fm-enhanced .fm-timeline-item.fm-reveal.is-visible .fm-timeline-copy,.fm-enhanced .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,.fm-season-toggle[data-busy] .fm-season-toggle-icon{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}.fm-enhanced .fm-theme-toggle.fm-season-toggle,.fm-scene-slot{display:none}}@media (width>=640px){.fm-theme-toggle{bottom:1.5rem;right:1.5rem}.fm-season-toggle{bottom:5.75rem}.fm-container,.fm-contact-wrap,.fm-narrow{width:min(1040px,100% - 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-enhanced .fm-timeline-item-left.fm-reveal .fm-timeline-copy{transform:translate(-22px)}.fm-enhanced .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-enhanced .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-enhanced .fm-timeline-item-right.fm-reveal .fm-timeline-dot{transform:translate(14px)scale(.82)}.fm-enhanced .fm-timeline-item-left.fm-reveal.is-visible .fm-timeline-copy,.fm-enhanced .fm-timeline-item-right.fm-reveal.is-visible .fm-timeline-copy{transform:translate(0)}.fm-enhanced .fm-timeline-item-left.fm-reveal.is-visible .fm-timeline-dot,.fm-enhanced .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-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}}[data-scene=autumn]{--fm-scene-hero-lift:-6svh;--autumn-leaf-0:light-dark(#a6401c,#f2a12e);--autumn-leaf-1:light-dark(#7d2233,#e8671d);--autumn-leaf-2:light-dark(#a87818,#b8431d);--autumn-leaf-3:light-dark(#8a3b1c,#d9541f)}[data-scene=autumn] [data-scene-accent]{position:relative}[data-scene=autumn] [data-autumn-leaves]{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity 1.4s;position:absolute;inset:0}[data-scene=autumn] [data-autumn-leaves][data-settled]{opacity:1}[data-scene=autumn] [data-autumn-leaves]>svg{color:var(--autumn-leaf-0);position:absolute;overflow:visible}[data-scene=autumn] [data-autumn-leaves]>[data-tone="1"]{color:var(--autumn-leaf-1)}[data-scene=autumn] [data-autumn-leaves]>[data-tone="2"]{color:var(--autumn-leaf-2)}[data-scene=autumn] [data-autumn-leaves]>[data-tone="3"]{color:var(--autumn-leaf-3)}[data-scene=autumn] [data-autumn-leaves] [data-part=leaf]{fill:currentColor;stroke:none}[data-scene=autumn] [data-autumn-leaves] [data-part=veins]{fill:none;stroke:color-mix(in srgb, currentcolor 62%, #000);stroke-width:.8px;stroke-linecap:round;vector-effect:non-scaling-stroke}[data-scene=autumn][data-theme=light] [data-autumn-leaves] [data-part=leaf]{stroke:color-mix(in srgb, currentcolor 55%, #000);stroke-width:1px;stroke-linejoin:round;vector-effect:non-scaling-stroke}@media (prefers-reduced-motion:reduce){[data-scene=autumn] [data-autumn-leaves]{transition:none}}@media (forced-colors:active){[data-scene=autumn] [data-autumn-leaves]{display:none}}[data-scene=spring]{--spring-petal:light-dark(#fff,#f4ebf2);--spring-petal-blush:light-dark(#f7bccf,#e3a7bf);--spring-petal-contour:light-dark(#9c5672,#8a6d88)}[data-scene=spring] [data-scene-accent]{position:relative}[data-scene=spring] [data-spring-petals]{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity 1.4s;position:absolute;inset:0}[data-scene=spring] [data-spring-petals][data-settled]{opacity:1}[data-scene=spring] [data-spring-petals]>svg{rotate:var(--spring-petal-tilt,0deg);scale:var(--spring-petal-flip,1) 1;display:block;position:absolute;overflow:visible}[data-scene=spring] [data-spring-petals] [data-part=petal]{fill:var(--spring-petal);stroke:var(--spring-petal-contour);stroke-width:.7px;stroke-linejoin:round}[data-scene=spring] [data-spring-petals] [data-part=blush]{fill:var(--spring-petal-blush)}[data-scene=spring][data-theme=light] [data-spring-petals] [data-part=petal]{stroke-width:.95px}@media (prefers-reduced-motion:reduce){[data-scene=spring] [data-spring-petals]{transition:none}}@media (forced-colors:active){[data-scene=spring] [data-spring-petals]{display:none}}[data-scene=summer]{--summer-blade:light-dark(#4f8f2c,#7cc46a);--summer-blade-deep:light-dark(#2f6f2a,#4a9a5c);--summer-petal:light-dark(#fff,#f4f7ee);--summer-petal-contour:light-dark(#7d8496,#9fb3a4);--summer-heart:light-dark(#e2a400,#f2c230)}[data-scene=summer] [data-scene-accent]{position:relative}[data-scene=summer] [data-summer-tufts]{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity 1.4s;position:absolute;inset:0}[data-scene=summer] [data-summer-tufts][data-settled]{opacity:1}[data-scene=summer] [data-summer-tufts]>svg{display:block;position:absolute;overflow:visible}[data-scene=summer] [data-summer-tufts] [data-part=blade]{fill:var(--summer-blade)}[data-scene=summer] [data-summer-tufts] [data-part=blade-deep]{fill:var(--summer-blade-deep)}[data-scene=summer] [data-summer-tufts] [data-part=stem]{fill:none;stroke:var(--summer-blade-deep);stroke-width:1.2px;stroke-linecap:round}[data-scene=summer] [data-summer-tufts] [data-part=petal]{fill:var(--summer-petal);stroke:var(--summer-petal-contour);stroke-width:.6px}[data-scene=summer] [data-summer-tufts] [data-part=heart]{fill:var(--summer-heart)}@media (prefers-reduced-motion:reduce){[data-scene=summer] [data-summer-tufts]{transition:none}}@media (forced-colors:active){[data-scene=summer] [data-summer-tufts]{display:none}}[data-scene=winter]{--fm-scene-hero-lift:-6svh;--winter-snow-underside:light-dark(#dfe9f5,#dcf0fb);--winter-snow-contour:light-dark(#6a80a6,#6fa5c4);--winter-snow-contour-low:light-dark(#4f6590,#6fa5c4)}[data-scene=winter] [data-scene-accent]{position:relative}[data-scene=winter] [data-winter-snow]{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity 1.4s;position:absolute;inset:0}[data-scene=winter] [data-winter-snow][data-settled]{opacity:1}[data-scene=winter] [data-winter-snow]>span{background:linear-gradient(to bottom, #fff 35%, var(--winter-snow-underside));box-shadow:0 .012em 0 .012em var(--winter-snow-contour), inset 0 -.02em .03em color-mix(in srgb, var(--winter-snow-contour) 45%, transparent);rotate:var(--winter-snow-tilt,0deg);border-radius:50% 50% 34% 34%/100% 100% 16% 16%;position:absolute}[data-scene=winter][data-theme=light] [data-winter-snow]>span{box-shadow:0 0 0 .014em var(--winter-snow-contour), 0 .02em 0 .014em var(--winter-snow-contour-low), inset 0 -.03em .03em color-mix(in srgb, var(--winter-snow-contour) 55%, transparent)}@media (prefers-reduced-motion:reduce){[data-scene=winter] [data-winter-snow]{transition:none}}@media (forced-colors:active){[data-scene=winter] [data-winter-snow]{display:none}}