.case-study{max-width:var(--max-width);padding:var(--space-xl) var(--space-md);margin:0 auto}.case-study-header{max-width:54rem;margin-bottom:var(--space-xl)}.case-study-header h1{margin-bottom:var(--space-md);letter-spacing:-.8px;font-size:40px;font-weight:400;line-height:1.08}.case-study-summary{max-width:var(--content-width);font-size:1.2rem;line-height:1.6}.case-study-layout{align-items:start;gap:var(--space-xl);grid-template-columns:minmax(0,1fr) 13rem;display:grid}.case-study-content{width:100%}.case-study-section{margin-bottom:var(--space-xl)}.case-study-section:last-child{margin-bottom:0}.case-study-section h2{margin-bottom:var(--space-md);letter-spacing:-.5px;font-size:32px;font-weight:500;line-height:1.3}.case-study-section p{margin-bottom:var(--space-md);line-height:1.75}.case-study-section p:last-child{margin-bottom:0}.case-study-sidebar{top:calc(var(--header-offset) + var(--space-md));padding-left:var(--space-md);border-left:1px solid var(--color-border);font-size:.9rem;position:sticky}.case-study-sidebar>*+*{margin-top:var(--space-lg)}.case-study-company h2{margin-bottom:var(--space-xs);font-size:1rem;line-height:1.35}.case-study-company p{color:var(--color-text);margin:0;font-size:.95rem;line-height:1.55}.case-study-company p+p{margin-top:.2rem}.case-study-company p:last-child{color:color-mix(in srgb, var(--color-text) 72%, transparent);font-size:.85rem}.case-study-sidebar-section{padding-top:var(--space-md);border-top:1px solid var(--color-border)}.case-study-sidebar-section h3{margin-bottom:var(--space-sm);letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;font-weight:600;line-height:1.4}.case-study-sidebar-section ul{margin:0;padding-left:1.1rem}.case-study-sidebar-section li{margin-bottom:var(--space-xs);line-height:1.5}.case-study-sidebar-section li:last-child{margin-bottom:0}.case-study-company-link{--company-accent:var(--color-accent);border-bottom:1px solid var(--color-border);color:var(--color-heading);transition:color var(--transition), border-color var(--transition);align-items:center;gap:.3rem;padding-bottom:.2rem;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex}.case-study-company-link[data-company=harvest]{--company-accent:var(--company-harvest)}.case-study-company-link[data-company=chili-piper]{--company-accent:var(--company-chili-piper)}.case-study-company-link[data-company=sitemate]{--company-accent:var(--company-sitemate)}.case-study-company-link-arrow{color:currentColor;transition:color var(--transition), transform var(--transition)}.case-study-company-link:hover{color:var(--color-heading);border-bottom-color:var(--company-accent)}.case-study-company-link:hover .case-study-company-link-arrow{color:var(--company-accent);transform:translate(2px)}.case-study-company-link:focus-visible{outline:3px solid var(--company-accent);outline-offset:4px;border-bottom-color:var(--company-accent);border-radius:4px}.case-study-company-link:focus-visible .case-study-company-link-arrow{color:var(--company-accent);transform:translate(2px)}.case-study-mobile-details{display:none}@media (width<=768px){.case-study{padding:3.5rem var(--space-sm)}.case-study-header{margin-bottom:var(--space-lg)}.case-study-header h1{letter-spacing:-.6px;font-size:32px}.case-study-summary{font-size:1rem;line-height:1.65}.case-study-mobile-details{margin-bottom:var(--space-lg);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:block}.case-study-mobile-details summary{cursor:pointer;padding:var(--space-sm) 0;color:var(--color-heading);justify-content:space-between;align-items:center;font-size:.95rem;font-weight:500;list-style:none;display:flex}.case-study-mobile-details summary::-webkit-details-marker{display:none}.case-study-mobile-details summary:after{content:"⌄";color:var(--color-text);transition:transform var(--transition)}.case-study-mobile-details[open] summary:after{transform:rotate(180deg)}.case-study-mobile-details-content{padding-bottom:var(--space-md);animation:.18s ease-out case-study-details-reveal}.case-study-layout{gap:var(--space-lg);grid-template-columns:1fr}.case-study-section{margin-bottom:var(--space-lg)}.case-study-section h2{font-size:24px}.case-study-sidebar{display:none}}@keyframes case-study-details-reveal{0%{opacity:0;transform:translateY(-.35rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.case-study-mobile-details summary:after,.case-study-mobile-details-content{transition:none;animation:none}}.footer{max-width:var(--max-width);padding:var(--space-lg) var(--space-md);text-align:center;color:var(--color-text);margin:0 auto;font-size:.95rem}@media (width<=768px){.footer{padding:2rem var(--space-sm)}}.case-study-page-header{z-index:var(--z-header);-webkit-backdrop-filter:blur(10px);position:sticky;top:0}.case-study-page-nav{background:color-mix(in srgb, var(--color-background) 82%, transparent);border-bottom:1px solid var(--color-border);width:100%}.case-study-page-header-content{max-width:var(--max-width);padding:var(--space-md);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.case-study-home-link{color:var(--color-heading);letter-spacing:-.3px;transition:color var(--transition);font-size:1.25rem;font-weight:500;text-decoration:none}.case-study-home-link:hover{color:var(--color-accent)}.case-study-back-link{color:var(--color-text);transition:color var(--transition), border-color var(--transition);border-bottom:2px solid #0000;padding-bottom:.25rem;font-size:.95rem;font-weight:400;text-decoration:none;position:relative}.case-study-back-link:hover{color:var(--color-heading);border-bottom-color:var(--color-accent)}.case-study-home-link:focus-visible,.case-study-back-link:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px;border-radius:4px}@media (width<=768px){.case-study-page-header-content{padding:var(--space-sm)}.case-study-home-link{font-size:1.15rem}.case-study-back-link{font-size:.85rem}}.site-header{z-index:var(--z-header);-webkit-backdrop-filter:blur(10px);position:sticky;top:0}.navbar{background:color-mix(in srgb, var(--color-background) 82%, transparent);border-bottom:1px solid var(--color-border);width:100%}.navbar-inner{max-width:var(--max-width);padding:var(--space-md);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.navbar-logo{color:var(--color-heading);letter-spacing:-.3px;transition:color var(--transition);font-size:1.25rem;font-weight:500;text-decoration:none}.navbar-logo:hover{color:var(--color-accent)}.navbar-links{align-items:center;gap:var(--space-sm);margin:0;padding:0;list-style:none;display:flex}.navbar-links a{color:var(--color-text);transition:color var(--transition), border-color var(--transition);border-bottom:2px solid #0000;padding-bottom:.25rem;font-size:.95rem;font-weight:400;text-decoration:none;position:relative}.navbar-links a.active{color:var(--color-heading);border-bottom-color:var(--color-accent)}.navbar-links a:focus-visible,.navbar-logo:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px;border-radius:4px}@media (width<=768px){.navbar-inner{padding:var(--space-sm)}.navbar-logo{font-size:1.15rem}.navbar-links{gap:var(--space-xs)}.navbar-links a{font-size:.85rem}}.hero{scroll-margin-top:var(--header-offset);max-width:var(--max-width);min-height:min(52rem,100svh - 5rem);padding:5.5rem var(--space-md) var(--space-md);flex-direction:column;justify-content:flex-start;margin:0 auto;display:flex}.hero h1{margin:0 0 var(--space-md);letter-spacing:-.8px;font-size:40px;font-weight:400;line-height:1.08}.hero-intro{max-width:var(--content-width);letter-spacing:-.15px;margin-bottom:1.5rem;font-size:24px;font-weight:400;line-height:1.35}.hero-copy{max-width:var(--content-width);margin-bottom:2.5rem;font-size:1.2rem;line-height:1.5}.hero-signature{letter-spacing:-.02em;color:var(--color-heading);margin-bottom:2.5rem;font-size:1rem;font-weight:600;line-height:1.5}.hero-actions{gap:var(--space-sm);display:flex}.cta{border:1px solid var(--color-border);border-radius:var(--radius);transition:background-color var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);justify-content:center;align-items:center;padding:.8rem 1.2rem;font-weight:600;text-decoration:none;display:inline-flex}.cta:hover{transform:translateY(-1px)}.cta-primary{background:var(--color-heading);color:var(--color-background);border-color:var(--color-heading)}.cta-primary:hover{opacity:.92}.cta-secondary{color:var(--color-heading);background:0 0}.cta-secondary:hover{background:var(--accent-bg);border-color:var(--color-accent)}.cta:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}@media (width<=768px){.hero{min-height:auto;padding:3.5rem var(--space-sm) var(--space-md)}.hero h1{letter-spacing:-.6px;font-size:32px;line-height:1.08}.hero-intro{font-size:20px;line-height:1.4}.hero-copy{margin-bottom:1.5rem;font-size:1rem;line-height:1.55}.hero-actions{flex-direction:column;align-items:stretch;gap:.75rem}}.about{max-width:var(--max-width);padding:0 var(--space-md) var(--space-xl);margin:0 auto;scroll-margin-top:6rem}.about h2{max-width:var(--content-width);letter-spacing:-.4px;margin-bottom:var(--space-md);font-size:28px;font-weight:500;line-height:1.3}.about p:not(.section-eyebrow){max-width:var(--content-width);margin-bottom:var(--space-md);line-height:1.7}@media (width<=768px){.about{padding:3.5rem var(--space-sm)}.about h2{margin-bottom:var(--space-sm);font-size:24px}.about p:not(.section-eyebrow){margin-bottom:1.5rem;font-size:1rem;line-height:1.65}}.experience{max-width:var(--max-width);padding:var(--space-xl) var(--space-md);margin:0 auto}.experience h2{max-width:var(--content-width);margin-bottom:var(--space-md);letter-spacing:-.4px;font-size:28px;font-weight:500;line-height:1.3}.experience-list{gap:var(--space-lg);flex-direction:column;display:flex}.experience-item{max-width:var(--content-width)}.experience-item-header{justify-content:space-between;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-xs);display:flex}.experience-company{color:var(--color-heading);letter-spacing:-.3px;margin:0;font-size:1.45rem;font-weight:500;line-height:1.3}.experience-headline{margin:0 0 var(--space-xs);color:var(--color-text);letter-spacing:0;font-size:1.05rem;font-weight:400;line-height:1.4}.experience-context{margin-bottom:var(--space-sm);color:var(--color-text);letter-spacing:.02em;font-size:.95rem}.experience-description{line-height:1.7}.experience-case-study-link{--company-accent:var(--color-accent);border-bottom:1px solid var(--color-border);color:var(--color-heading);transition:color var(--transition), border-color var(--transition);flex-shrink:0;align-items:center;gap:.3rem;padding-bottom:.2rem;font-size:.9rem;font-weight:500;line-height:1.4;text-decoration:none;display:inline-flex}.experience-case-study-link[data-company=harvest]{--company-accent:var(--company-harvest)}.experience-case-study-link[data-company=chili-piper]{--company-accent:var(--company-chili-piper)}.experience-case-study-link[data-company=sitemate]{--company-accent:var(--company-sitemate)}.experience-case-study-arrow{color:currentColor;transition:color var(--transition), transform var(--transition)}.experience-case-study-link:hover{color:var(--color-heading);border-bottom-color:var(--company-accent)}.experience-case-study-link:hover .experience-case-study-arrow{color:var(--company-accent);transform:translate(3px)}.experience-case-study-link:focus-visible{outline:3px solid var(--company-accent);outline-offset:4px;border-radius:4px}@media (width<=768px){.experience{padding:3.5rem var(--space-sm)}.experience h2{margin-bottom:var(--space-md);font-size:24px}.experience-list{gap:var(--space-md)}.experience-item-header{align-items:flex-start;gap:var(--space-xs);margin-bottom:var(--space-sm);flex-direction:column}.experience-company{font-size:1.25rem}.experience-headline{font-size:1rem;line-height:1.4}.experience-context{margin-bottom:.75rem;font-size:.9rem}.experience-description{font-size:1rem;line-height:1.65}.experience-case-study-link{font-size:.85rem}}.skills{max-width:var(--max-width);padding:3.5rem var(--space-sm);margin:0 auto}.skills h2{max-width:var(--content-width);letter-spacing:-.4px;margin-bottom:var(--space-md);font-size:24px;font-weight:500;line-height:1.3}.skills-grid{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.skill-group{border-left:2px solid var(--color-border);padding-left:var(--space-sm)}.skill-group h3{margin-bottom:var(--space-xs);color:var(--color-heading);font-size:22px;font-weight:500}.skill-group p{line-height:1.65}.skill-group:hover{border-left-color:var(--color-accent)}@media (width<=768px){.skills{padding:var(--space-lg) var(--space-sm)}.skills h2{font-size:24px}.skills-grid{gap:var(--space-md);grid-template-columns:1fr}}.contact{max-width:var(--max-width);padding:var(--space-xl) var(--space-md);margin:0 auto}.contact h2{max-width:var(--content-width);letter-spacing:-.5px;margin-bottom:var(--space-md);font-size:32px;font-weight:500;line-height:1.3}.contact-note{margin-bottom:var(--space-lg);color:var(--color-text);font-size:.95rem;font-style:italic}.contact p:not(.section-eyebrow){max-width:var(--content-width);margin-bottom:var(--space-lg);line-height:1.7}.contact-links{gap:var(--space-sm);flex-wrap:wrap;display:flex}.contact-links a{border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-heading);transition:background-color var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);justify-content:center;align-items:center;padding:.8rem 1.2rem;font-weight:600;text-decoration:none;display:inline-flex}.contact-links a:hover{background:var(--accent-bg);border-color:var(--color-accent);transform:translateY(-1px)}@media (width<=768px){.contact{padding:3.5rem var(--space-sm)}.contact h2{margin-bottom:var(--space-sm);font-size:24px}.contact p:not(.section-eyebrow){margin-bottom:var(--space-md);font-size:1rem;line-height:1.65}.contact-links{flex-direction:column;align-items:stretch;gap:.75rem}.contact-links a{justify-content:center;padding:.8rem 1.2rem}}.app{min-height:100vh}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--z-header:100;--header-offset:3.5rem;--max-width:832px;--content-width:48rem;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:6rem;--radius:12px;--transition:.2s ease;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--color-text:#5d564f;--color-heading:#2f2b27;--color-background:#f8f6f2;--color-border:#e7e1d8;--color-accent:#7b3a4d;--accent-bg:#7b3a4d17;--accent-border:#7b3a4d61;--company-harvest:#fa5d00;--company-chili-piper:#ff5721;--company-sitemate:#0085e8;--font-body:"Geist Variable", system-ui, sans-serif;--font-heading:"Geist Variable", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root{--color-text:#b4ada6;--color-heading:#f3f0ed;--color-background:#171616;--color-border:#34302f;--color-accent:#d28a9d;--accent-bg:#d28a9d24;--accent-border:#d28a9d73;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}.section-eyebrow{color:#a58b92}}.section-eyebrow{margin-bottom:var(--space-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);font-size:.85rem;font-weight:600}.skip-link{top:var(--space-sm);left:var(--space-sm);z-index:calc(var(--z-header) + 1);border-radius:var(--radius);background:var(--color-heading);color:var(--color-background);transition:transform var(--transition);padding:.75rem 1rem;font-weight:600;text-decoration:none;position:fixed;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}html{scroll-behavior:smooth}body{font-family:var(--font-body);letter-spacing:.18px;color:var(--color-text);background:var(--color-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:18px;line-height:1.45}#root{box-sizing:border-box;border-inline:1px solid var(--color-border);flex-direction:column;max-width:100%;min-height:100svh;margin:0 auto;display:flex}#main-content{scroll-margin-top:var(--header-offset)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-heading);margin:0;font-weight:500}h1{margin:var(--space-md) 0;letter-spacing:-1.68px;font-size:56px}h2{margin-bottom:var(--space-xs);letter-spacing:-.24px;font-size:24px;line-height:1.18}p{margin:0}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px;border-radius:4px}#main-content:focus{outline:none}@media (width<=768px){body{font-size:16px}h1{margin:var(--space-sm) 0;font-size:36px}h2{font-size:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}
