*,:before,:after{box-sizing:border-box}*{margin:0}:root{--font-sans:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--color-bg:oklch(95% .02 85);--color-surface:oklch(100% 0 0);--color-text:oklch(24% 0 0);--color-muted:oklch(35% .01 80);--color-subtle:oklch(50% .01 80);--color-line:oklch(24% 0 0);--color-line-strong:oklch(24% 0 0);--color-link:oklch(24% 0 0);--color-link-strong:oklch(24% 0 0);--color-accent:oklch(78% .16 165);--color-focus:oklch(55% .16 165);--color-band-1:oklch(97% .09 100);--color-band-2:oklch(90% .08 70);--color-band-3:oklch(90% .07 170);--color-band-4:oklch(88% .09 250);--severity-high:oklch(50% .17 28);--severity-medium:oklch(55% .12 72);--severity-low:oklch(50% .12 155);--step--2:clamp(.75rem, .73rem + .09vw, .825rem);--step--1:clamp(.9375rem, .9rem + .2vw, 1.0625rem);--step-0:clamp(1.0625rem, 1rem + .38vw, 1.25rem);--step-1:clamp(1.2rem, 1.13rem + .36vw, 1.41rem);--step-2:clamp(1.44rem, 1.33rem + .55vw, 1.76rem);--step-3:clamp(1.73rem, 1.57rem + .82vw, 2.2rem);--step-4:clamp(2.07rem, 1.84rem + 1.17vw, 2.75rem);--step-5:clamp(2.49rem, 2.16rem + 1.64vw, 3.43rem);--step-6:clamp(2.99rem, 2.53rem + 2.27vw, 4.29rem);--step-7:clamp(3.58rem, 2.96rem + 3.1vw, 5.37rem);--leading-display:1.04;--leading-heading:1.12;--leading-snug:1.4;--leading-body:1.6;--tracking-display:-.028em;--tracking-heading:-.018em;--tracking-caps:.08em;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-s:clamp(1rem, .96rem + .22vw, 1.125rem);--space-m:clamp(1.5625rem, 1.47rem + .45vw, 1.875rem);--space-l:clamp(1.75rem, 1.61rem + .71vw, 2.25rem);--space-xl:clamp(2.8125rem, 2.72rem + .45vw, 3.125rem);--space-2xl:clamp(2.75rem, 2.25rem + 2.5vw, 4.5rem);--space-3xl:clamp(4rem, 3.21rem + 3.93vw, 6.75rem);--space-4xl:clamp(5.5rem, 4.5rem + 5vw, 9rem);--space-media:clamp(2.25rem, 1.9rem + 1.75vw, 3.5rem);--gutter:clamp(1.25rem, 6vw, 5.375rem);--w-lead:82.7%;--w-prose:65.4%;--grid-gap:clamp(1.25rem, 3vw, 3rem);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-base:.22s}html{scroll-behavior:smooth;min-width:320px}body{min-width:320px;color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);font-size:var(--step-0);font-weight:400;line-height:var(--leading-body);letter-spacing:-.15px;font-optical-sizing:auto;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}::selection{color:var(--color-bg);background:var(--color-link)}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:.06em;text-decoration-color:var(--color-subtle);transition:color var(--duration-fast) var(--ease-out), text-decoration-color var(--duration-fast) var(--ease-out)}a:hover{color:var(--color-link);text-decoration-color:currentColor}a:focus-visible,button:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px;border-radius:2px}p,li,dd,figcaption{text-wrap:pretty}h1,h2,h3{font-family:var(--font-sans);letter-spacing:var(--tracking-heading);text-wrap:balance;font-weight:500}h1{font-size:var(--step-6);font-weight:700;line-height:var(--leading-display);letter-spacing:var(--tracking-display)}h2{font-size:var(--step-4);line-height:var(--leading-heading)}h3{font-size:var(--step-2);line-height:var(--leading-heading)}ul,ol{padding-left:1.25rem}li+li{margin-top:var(--space-2xs)}li::marker{color:var(--color-subtle)}blockquote{margin:0}.severity-label{font-weight:600}.severity-label-high{color:var(--severity-high)}.severity-label-medium{color:var(--severity-medium)}.severity-label-low{color:var(--severity-low)}.container{width:100%;max-width:calc(12% + 1500px);padding-inline:var(--gutter);margin-inline:auto}.site-header{align-items:baseline;gap:var(--space-2xs);padding:var(--space-m) 0;border-bottom:4px solid var(--color-line);font-size:var(--step--1);line-height:var(--leading-snug);display:flex}.site-home-link{color:var(--color-text);font-weight:600;text-decoration:none}.site-home-link:hover{color:var(--color-link)}.site-role{color:var(--color-subtle);font-weight:400}.home-page{padding-bottom:var(--gutter)}.home-hero{padding:var(--space-xl) 0}.home-hero .hero-title,.home-hero .hero-intro{width:var(--w-lead)}.home-hero>*+*{margin-top:var(--space-m)}.hero-title{letter-spacing:-.035em;text-wrap:pretty;font-size:clamp(3.5rem,2rem + 6.5vw,7rem);font-weight:800;line-height:.95}.hero-title span{color:var(--color-text);background:var(--color-accent);border:4px solid var(--color-line-strong);box-shadow:7px 7px 0 var(--color-line-strong);padding:0 .12em;display:inline-block;transform:rotate(-2deg)}.hero-intro{color:var(--color-muted);font-size:var(--step-1);line-height:1.6}.hero-intro a,.case-study-content a{color:var(--color-link);background:var(--color-band-1);border-bottom:3px solid var(--color-line-strong);font-weight:700;text-decoration:none}.hero-intro a:hover,.case-study-content a:hover{color:var(--color-link-strong);background:var(--color-accent)}.case-studies{display:grid}.case-studies>.case-study-card:nth-child(3n+1){background:var(--color-band-1)}.case-studies>.case-study-card:nth-child(3n+2){background:var(--color-band-2)}.case-studies>.case-study-card:nth-child(3n+3){background:var(--color-band-3)}.case-studies>.case-study-card:nth-child(3n+2) h2 a:hover{background:var(--color-band-4)}.case-studies>.case-study-card:nth-child(3n+3) h2 a:hover{background:var(--color-band-1)}.case-study-shell{padding-bottom:var(--gutter)}.case-study-hero{padding-top:var(--space-xl)}.case-study-hero>*+*{margin-top:var(--space-m)}.case-study-hero h1,.case-study-hero .project-summary{width:var(--w-lead)}.case-study-content{padding-top:var(--space-media)}.case-study-content>:is(h2,h3,h4,p,ul,ol,blockquote){width:var(--w-prose)}.case-study-content>blockquote{width:var(--w-lead)}.case-study-content>:first-child{margin-top:0}.case-study-content h2{margin-top:var(--space-m)}.case-study-content :is(figure,.image-pair,div:has(video),blockquote)+h2,.case-study-content h3{margin-top:var(--space-xl)}.case-study-content p,.case-study-content ul,.case-study-content ol{margin-top:var(--space-m)}.case-study-content p,.case-study-content li{color:var(--color-text);font-size:var(--step-0);line-height:var(--leading-body)}.case-study-content strong{font-weight:600}.case-study-content figure:has(.is-portrait){width:var(--w-prose)}.case-study-content figure.figure-lead{width:var(--w-lead)}.case-study-content figure,.case-study-content .image-pair{width:100%;margin-top:var(--space-media)}.case-study-content>div:has(video){width:100%;margin-top:var(--space-media);border:3px solid var(--color-line-strong);box-shadow:6px 6px 0 var(--color-line-strong);background:var(--color-surface)}.case-study-content figure{gap:var(--space-xs);display:grid}.case-study-content figure img{background:var(--color-surface);border:3px solid var(--color-line-strong);width:100%;box-shadow:6px 6px 0 var(--color-line-strong);margin:0}.case-study-content video{width:100%;margin:0}.case-study-content figcaption,figcaption{color:var(--color-muted);font-size:var(--step--1);line-height:1.55}.case-study-content>figcaption{width:var(--w-prose);margin-top:var(--space-2xs)}.case-study-content figure figcaption{max-width:none}.case-study-content h2+h3{margin-top:var(--space-m)}.case-study-content h2+:is(p,ul,ol,blockquote){margin-top:var(--space-s)}.case-study-content h3+:is(p,ul,ol,blockquote){margin-top:var(--space-xs)}.case-study-content h2+:is(figure,.image-pair,div:has(video)){margin-top:var(--space-m)}.case-study-content h3+:is(figure,.image-pair,div:has(video)){margin-top:var(--space-s)}.case-study-content :is(figure,.image-pair,div:has(video),blockquote,figcaption)+:is(p,ul,ol){margin-top:var(--space-media)}.image-pair{gap:var(--grid-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.image-pair.prism-mobile-comparison{width:var(--w-lead);grid-template-columns:repeat(2,minmax(0,1fr));gap:4.786%}.case-study-content .image-pair.prism-mobile-comparison figure{width:100%}.image-pair figure{grid-column:auto;width:auto;margin:0}.case-study-content blockquote{margin-top:var(--space-xl);padding:var(--space-l) 0;border-top:3px solid var(--color-line-strong);border-bottom:3px solid var(--color-line-strong)}.case-study-content blockquote p{margin-top:var(--space-m);color:var(--color-text);font-family:var(--font-sans);font-size:var(--step-3);letter-spacing:-.012em;font-weight:500;line-height:1.35}.case-study-content blockquote>:first-child{margin-top:0}.case-study-content blockquote p:last-child:not(:only-child){font-family:var(--font-sans);font-size:var(--step--1);font-weight:400;line-height:var(--leading-snug);letter-spacing:0;color:var(--color-muted)}.case-study-content blockquote p:last-child:not(:only-child) strong{color:var(--color-text);font-weight:600}.case-study-content blockquote strong a{font-weight:inherit}@media (prefers-reduced-motion:no-preference){@keyframes hero-rise{0%{opacity:0;transform:translateY(44px)rotate(1.2deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes span-pop{0%{opacity:0;transform:scale(.6)rotate(-10deg)}to{opacity:1;transform:scale(1)rotate(-2deg)}}@keyframes band-drift{0%{transform:translate(-12%)}to{transform:translate(12%)}}.hero-title,.case-study-hero h1{animation:hero-rise .65s var(--ease-spring) both}.hero-title span{animation:span-pop .55s var(--ease-spring) .18s both}.js-motion .case-study-card,.js-motion .case-study-content figure,.js-motion .case-study-content .image-pair,.js-motion .case-study-content blockquote{opacity:0;transition:transform .55s var(--ease-spring), opacity .4s var(--ease-out);transform:translateY(28px)rotate(.6deg)}.js-motion .case-study-card.is-in,.js-motion .case-study-content figure.is-in,.js-motion .case-study-content .image-pair.is-in,.js-motion .case-study-content blockquote.is-in{opacity:1;transform:translateY(0)rotate(0)}.js-motion .case-studies>.case-study-card:nth-child(2){transition-delay:70ms}.js-motion .case-studies>.case-study-card:nth-child(3){transition-delay:.14s}.card-image img,.case-study-content figure img{transition:transform var(--duration-base) var(--ease-spring), box-shadow var(--duration-base) var(--ease-out)}.card-image img:hover,.case-study-content figure img:hover{transform:translateY(-4px)}.card-image img:hover{box-shadow:12px 12px 0 var(--color-line-strong)}.case-study-content figure img:hover{box-shadow:10px 10px 0 var(--color-line-strong)}.case-study-card{position:relative;overflow:hidden}.case-study-card:after{content:"";background:linear-gradient(105deg, transparent 42%, color-mix(in oklch, var(--color-surface) 22%, transparent) 50%, transparent 58%);animation:band-drift 14s var(--ease-out) infinite alternate;pointer-events:none;position:absolute;inset:-20% -30%}.cursor-dot,.cursor-ring{z-index:9999;pointer-events:none;border-radius:50%;position:fixed;top:0;left:0}.cursor-dot{background:var(--color-text);width:8px;height:8px;margin:-4px 0 0 -4px}.cursor-ring{border:2px solid var(--color-text);opacity:.55;width:36px;height:36px;transition:width var(--duration-fast) var(--ease-out), height var(--duration-fast) var(--ease-out), margin var(--duration-fast) var(--ease-out), opacity var(--duration-fast) var(--ease-out);margin:-18px 0 0 -18px}.cursor-ring.is-hover{opacity:.9;width:58px;height:58px;margin:-29px 0 0 -29px}.has-cursor,.has-cursor a,.has-cursor button{cursor:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-only:focus,.skip-link:focus{z-index:10;clip:auto;width:auto;height:auto;color:var(--color-bg);background:var(--color-text);white-space:normal;border-radius:999px;margin:0;padding:.75rem 1rem;position:fixed;top:1rem;left:1rem;overflow:visible}@media (width<=1199px){:root{--w-lead:91.3%;--w-prose:82.6%}}@media (width<=980px){.home-hero{padding:var(--gutter) 0}.image-pair figure{grid-column:auto;width:auto;margin:0}}@media (width<=767px){:root{--w-lead:100%;--w-prose:100%}}@media (width<=575px){:root{--w-lead:100%;--w-prose:100%}}@media (width<=640px){:root{--gutter:1rem}.case-study-content{display:block}.case-study-content figure,.case-study-content .image-pair,.case-study-content>div:has(video),.case-study-content blockquote{width:100%}.image-pair.prism-mobile-comparison{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
