.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.site-header[data-astro-cid-ctg3m53h]{height:var(--header-height);border-bottom:1px solid var(--color-border)}.site-header-inner[data-astro-cid-ctg3m53h]{height:100%;display:flex;align-items:center;gap:var(--space-8);padding:0 var(--space-16)}.logo[data-astro-cid-ctg3m53h]{display:block;flex-shrink:0}.logo-mark[data-astro-cid-ctg3m53h]{display:block;width:auto;height:50px}.site-nav[data-astro-cid-ctg3m53h]{display:flex;align-items:center;gap:var(--space-2)}.nav-link[data-astro-cid-ctg3m53h]{position:relative;font-family:var(--font-nav);font-style:normal;font-weight:500;font-size:16px;color:var(--color-text);padding:var(--space-2) var(--space-3);border-radius:6px;text-decoration:none}.nav-link[data-astro-cid-ctg3m53h]:hover,.nav-link[data-astro-cid-ctg3m53h]:focus-visible,.nav-link[data-astro-cid-ctg3m53h]:active,.nav-link[data-astro-cid-ctg3m53h][aria-current=page]{color:var(--color-link);text-decoration:underline;text-decoration-style:solid;text-decoration-color:var(--color-link);text-decoration-thickness:1.5px;text-underline-offset:4px}.nav-item[data-astro-cid-ctg3m53h]{position:relative;display:flex}.nav-link-trigger[data-astro-cid-ctg3m53h]{display:inline-flex;align-items:center;gap:var(--space-1);background:none;border:none;font:inherit;cursor:pointer}.nav-chevron[data-astro-cid-ctg3m53h]{transition:transform .15s ease}.nav-item[data-astro-cid-ctg3m53h].open .nav-chevron[data-astro-cid-ctg3m53h]{transform:rotate(180deg)}.nav-dropdown[data-astro-cid-ctg3m53h]{position:absolute;top:100%;left:0;margin-top:var(--space-2);min-width:220px;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease,visibility .15s;z-index:30}.nav-item[data-astro-cid-ctg3m53h].open .nav-dropdown[data-astro-cid-ctg3m53h]{opacity:1;visibility:visible;transform:translateY(0)}.nav-dropdown-link[data-astro-cid-ctg3m53h]{font-family:var(--font-nav);font-style:normal;font-weight:500;font-size:15px;color:var(--color-text);padding:var(--space-2) var(--space-3);border-radius:6px;text-decoration:none;white-space:nowrap}.nav-dropdown-link[data-astro-cid-ctg3m53h]:hover,.nav-dropdown-link[data-astro-cid-ctg3m53h]:focus-visible,.nav-dropdown-link[data-astro-cid-ctg3m53h]:active,.nav-dropdown-link[data-astro-cid-ctg3m53h][aria-current=page]{color:var(--color-text-inverse);background:var(--color-text)}.header-utility[data-astro-cid-ctg3m53h]{display:flex;align-items:center;gap:var(--space-5);margin-left:auto}.connect-links[data-astro-cid-ctg3m53h]{display:flex;align-items:center;gap:var(--space-2)}.connect-link[data-astro-cid-ctg3m53h]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:var(--color-text-muted)}.connect-link[data-astro-cid-ctg3m53h]:hover{color:var(--color-link)}.connect-icon[data-astro-cid-ctg3m53h]{display:inline-flex;width:18px;height:18px}.site-credit[data-astro-cid-ctg3m53h]{font-size:13px;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.site-credit[data-astro-cid-ctg3m53h]:hover{color:var(--color-link)}.menu-toggle[data-astro-cid-ctg3m53h]{display:none;align-items:center;justify-content:center;background:none;border:none;padding:var(--space-2);color:var(--color-text);cursor:pointer}.mobile-drawer[data-astro-cid-ctg3m53h]{display:none}@media(max-width:1100px){.site-credit[data-astro-cid-ctg3m53h]{display:none}}@media(max-width:900px){.site-nav[data-astro-cid-ctg3m53h],.header-utility[data-astro-cid-ctg3m53h]{display:none}.site-header-inner[data-astro-cid-ctg3m53h]{padding:0 var(--space-5)}.logo-mark[data-astro-cid-ctg3m53h]{height:36px}.menu-toggle[data-astro-cid-ctg3m53h]{display:inline-flex;margin-left:auto}.mobile-drawer[data-astro-cid-ctg3m53h]{position:fixed;inset:0;z-index:40;background:var(--color-bg);padding:var(--space-5)}.mobile-drawer[data-astro-cid-ctg3m53h][hidden]{display:none}.mobile-drawer[data-astro-cid-ctg3m53h]:not([hidden]){display:flex;flex-direction:column}.mobile-drawer-header[data-astro-cid-ctg3m53h]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-10)}.mobile-drawer-header[data-astro-cid-ctg3m53h] .logo-mark[data-astro-cid-ctg3m53h]{height:52px}.mobile-drawer-nav[data-astro-cid-ctg3m53h]{display:flex;flex-direction:column;gap:var(--space-6)}.mobile-drawer-link[data-astro-cid-ctg3m53h]{font-family:var(--font-nav);font-style:normal;font-size:30px;font-weight:500;color:var(--color-text);text-decoration:none}.mobile-drawer-link[data-astro-cid-ctg3m53h]:hover,.mobile-drawer-link[data-astro-cid-ctg3m53h]:focus-visible,.mobile-drawer-link[data-astro-cid-ctg3m53h]:active,.mobile-drawer-link[data-astro-cid-ctg3m53h][aria-current=page]{color:var(--color-link);text-decoration:underline;text-decoration-style:solid;text-decoration-color:var(--color-link);text-decoration-thickness:2px;text-underline-offset:6px}.mobile-drawer-group[data-astro-cid-ctg3m53h]{display:flex;flex-direction:column;gap:var(--space-4)}.mobile-drawer-sublist[data-astro-cid-ctg3m53h]{display:flex;flex-direction:column;gap:var(--space-4);padding-left:var(--space-5)}.mobile-drawer-sublink[data-astro-cid-ctg3m53h]{font-family:var(--font-nav);font-style:normal;font-size:20px;font-weight:500;color:var(--color-text-muted);text-decoration:none}.mobile-drawer-sublink[data-astro-cid-ctg3m53h]:hover,.mobile-drawer-sublink[data-astro-cid-ctg3m53h]:focus-visible,.mobile-drawer-sublink[data-astro-cid-ctg3m53h]:active,.mobile-drawer-sublink[data-astro-cid-ctg3m53h][aria-current=page]{color:var(--color-link);text-decoration:underline;text-decoration-style:solid;text-decoration-color:var(--color-link);text-decoration-thickness:2px;text-underline-offset:6px}.mobile-drawer-divider[data-astro-cid-ctg3m53h]{height:1px;background:var(--color-border);margin:var(--space-8) 0 var(--space-6)}.mobile-drawer-eyebrow[data-astro-cid-ctg3m53h]{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4)}.mobile-drawer-connect[data-astro-cid-ctg3m53h]{gap:var(--space-4)}.mobile-drawer-connect[data-astro-cid-ctg3m53h] .mobile-drawer-link[data-astro-cid-ctg3m53h]{font-size:22px}.mobile-drawer-credit[data-astro-cid-ctg3m53h]{display:block;margin-top:var(--space-8);font-size:13px;font-weight:500;color:var(--color-text-muted)}}.site-footer[data-astro-cid-gcn2mc3v]{background-color:var(--color-bg);transition:background-color .6s ease}.site-footer-inner[data-astro-cid-gcn2mc3v]{display:grid;grid-template-columns:var(--grid-2-cols);align-items:center;padding:var(--space-8) var(--space-16)}.site-footer-inner--border-top[data-astro-cid-gcn2mc3v]{border-top:1px solid var(--color-border)}.footer-brand[data-astro-cid-gcn2mc3v]{display:flex;align-items:center;gap:var(--space-4)}.footer-logo[data-astro-cid-gcn2mc3v]{display:block;width:auto;height:24px;transition:filter .6s ease}.footer-copyright[data-astro-cid-gcn2mc3v]{margin:0;font-family:var(--font-serif);font-size:var(--text-caption);color:var(--color-text-muted);transition:color .6s ease}.footer-connect[data-astro-cid-gcn2mc3v]{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-2)}.footer-connect-link[data-astro-cid-gcn2mc3v]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:var(--color-text-muted);transition:color .6s ease}.footer-connect-link[data-astro-cid-gcn2mc3v]:hover{color:var(--color-link)}.footer-connect-icon[data-astro-cid-gcn2mc3v]{display:inline-flex;width:16px;height:16px}@media(min-width:1439px){.site-footer-inner[data-astro-cid-gcn2mc3v]{padding:var(--space-8) var(--space-24)}}@media(max-width:900px){.site-footer-inner[data-astro-cid-gcn2mc3v]{grid-template-columns:var(--grid-1-col);gap:var(--space-4);padding:var(--space-8) var(--space-5)}.footer-connect[data-astro-cid-gcn2mc3v]{justify-content:flex-start}}:root{--color-bg: #ffffff;--color-border: #ddd;--color-pill-bg: #ebe6dd;--color-text: #1a1b1f;--color-text-muted: #575656;--color-text-inverse: #ffffff;--color-accent: #c7482f;--color-link: #1a1b1f;--color-image-placeholder: #d2c3a9;--color-case-study-hover: #cbdac5;--color-case-study-hover-orange: #e3c7ab;--gradient-case-study: linear-gradient(-45deg, #f0c9c2, #cceed9, #d6d9f2, #c7cbf0, #e8cddf, #f0c9c2);--font-serif: "PT Serif", Georgia, "Times New Roman", serif;--font-nav: "PT Serif", Georgia, "Times New Roman", serif;--text-body: 24px;--text-body-mobile: 20px;--text-body-line: 1.7;--text-summary: 18px;--text-summary-line: 1.6;--text-caption: 14px;--text-display: 84px;--text-section: 56px;--text-feature: 48px;--text-feature-sm: 40px;--text-subhead: 26px;--text-label: 22px;--grid-3-cols: repeat(3, 1fr);--grid-2-cols: 1fr 1fr;--grid-2-prominent-cols: 2fr 1fr;--grid-2-prominent-cols-reverse: 1fr 2fr;--grid-1-col: 1fr;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--header-height: 100px}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0}body{isolation:isolate;background:var(--color-bg);color:var(--color-text);font-family:var(--font-serif);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased}body .about-me.about-dark,body .site-footer.about-dark{background-color:#1a1b1f}#about-me.about-dark .about-me-header h2,#about-me.about-dark .about-me-col h3,#about-me.about-dark .about-me-col p,body .about-dark .case-study-link{color:#f2f2f2}body .about-dark .footer-copyright,body .about-dark .footer-connect-link{color:#b8b8b8}body .about-dark .footer-connect-link:hover,body .about-dark .footer-connect-link:focus-visible{color:#f2f2f2}body .about-dark .footer-logo{filter:invert(1)}body .about-dark .pill{background:#2a2b30;color:#f2f2f2}body .about-dark.about-me,body .about-dark .about-me-header,body .about-dark .about-me-col,body .about-dark .site-footer-inner--border-top{border-color:#35363c}h1,h2,h3,h4,p{margin:0}p{color:var(--color-text-muted)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.pill{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-pill-bg);color:var(--color-text);font-weight:600;font-size:12px;padding:6px var(--space-3);border-radius:200px;white-space:nowrap;transition:background-color .6s ease,color .6s ease}.case-study-link{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-nav);font-style:italic;font-weight:500;font-size:18px;color:var(--color-link);text-decoration:underline;text-decoration-style:solid;text-decoration-color:var(--color-link);text-decoration-thickness:1.5px;text-underline-offset:4px;width:fit-content;transition:color .6s ease}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-nav);font-style:italic;font-weight:500;font-size:16px;padding:var(--space-3) var(--space-6);border-radius:200px;white-space:nowrap;text-decoration:none}.btn-primary{background:var(--color-text);color:var(--color-text-inverse);border:1.5px solid var(--color-text)}.btn-primary:hover,.btn-primary:focus-visible{background:color-mix(in srgb,var(--color-text) 85%,white);border-color:color-mix(in srgb,var(--color-text) 85%,white)}.btn-secondary{background:transparent;color:var(--color-text);border:1.5px solid var(--color-text)}.btn-secondary:hover,.btn-secondary:focus-visible{background:var(--color-text);color:var(--color-text-inverse)}.container{max-width:1512px;margin:0 auto}body:before{content:"";position:fixed;inset:0;z-index:-1;opacity:0;pointer-events:none;background:var(--gradient-case-study);background-size:400% 400%;transition:opacity .15s linear}html.hero-intro body:before{opacity:calc(1 - var(--hero-intro-progress, 0));animation:gradient-shift 20s ease infinite}@keyframes gradient-shift{0%{background-position:0% 50%}25%{background-position:50% 100%}50%{background-position:100% 50%}75%{background-position:50% 0%}to{background-position:0% 50%}}@media(prefers-reduced-motion:reduce){html.hero-intro body:before{animation:none}}[data-reveal-line]{position:relative}[data-reveal-line~=bottom]:after,[data-reveal-line~=top]:after{content:"";position:absolute;background:var(--color-bg);transform:scaleX(0);z-index:1;pointer-events:none}[data-reveal-line~=bottom]:after{left:-1px;right:-1px;bottom:-1px;height:2px;transform-origin:right}[data-reveal-line~=top]:after{left:-1px;right:-1px;top:-1px;height:2px;transform-origin:left}[data-reveal-line~=left]:before,[data-reveal-line~=right]:before{content:"";position:absolute;background:var(--color-bg);transform:scaleY(0);z-index:1;pointer-events:none}[data-reveal-line~=right]:before{top:-1px;bottom:-1px;right:-1px;width:2px;transform-origin:bottom}[data-reveal-line~=left]:before{top:-1px;bottom:-1px;left:-1px;width:2px;transform-origin:top}@media(max-width:900px){[data-reveal-line~=left]:before,[data-reveal-line~=right]:before{display:none}}[data-reveal-text]{overflow:hidden}[data-reveal-text] .reveal-inner{display:block}[data-reveal-delay="1"]{--reveal-delay: .05s}[data-reveal-delay="2"]{--reveal-delay: .15s}[data-reveal-delay="3"]{--reveal-delay: .32s}[data-reveal-delay="4"]{--reveal-delay: .5s}[data-reveal-delay="5"]{--reveal-delay: .65s}@media(prefers-reduced-motion:no-preference){html.js [data-reveal-line]:not(.is-revealed):after,html.js [data-reveal-line]:not(.is-revealed):before{transition:none}html.js [data-reveal-line]:not(.is-revealed):after{transform:scaleX(1)}html.js [data-reveal-line].is-revealed:after{transform:scaleX(0);transition:transform .9s cubic-bezier(.65,0,.35,1) var(--reveal-delay, 0s)}html.js [data-reveal-line]:not(.is-revealed):before{transform:scaleY(1)}html.js [data-reveal-line].is-revealed:before{transform:scaleY(0);transition:transform .9s cubic-bezier(.65,0,.35,1) var(--reveal-delay, 0s)}html.js [data-reveal-text]:not(.is-revealed) .reveal-inner{opacity:0;transform:translateY(100%);transition:none}html.js [data-reveal-text].is-revealed .reveal-inner{opacity:1;transform:translateY(0);transition:transform .8s cubic-bezier(.65,0,.35,1) var(--reveal-delay, 0s),opacity .5s ease var(--reveal-delay, 0s)}html.js [data-reveal-fade]:not(.is-revealed){opacity:0;transform:translateY(14px);transition:none}html.js [data-reveal-fade].is-revealed{opacity:1;transform:translateY(0);transition:transform .7s cubic-bezier(.65,0,.35,1) var(--reveal-delay, 0s),opacity .6s ease var(--reveal-delay, 0s)}}
