.App{min-height:100vh}:root{--color-primary:#e8c547;--color-primary-hover:#e8c547;--color-secondary:#161a45;--color-background:#fffef9;--color-surface:#fbf8ed;--color-border:#161a45;--color-text-primary:#161a45;--color-text-secondary:#383a53;--color-text-muted:#545666;--color-text-on-primary:#161a45;--color-link:#161a45;--color-link-hover:#fbf8ed;--color-link-active:#e8c547;--font-serif:"IBM Plex Serif",serif;--font-sans:"IBM Plex Sans",sans-serif;--text-sm:16px;--text-footer:14px;--text-base:20px;--text-lg:24px;--text-xl:30px;--text-2xl:36px;--text-4xl:48px;--leading-tight:1.1;--leading-normal:1.3;--leading-relaxed:1.4;--weight-normal:400;--weight-bold:bold;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:60px;--space-12:80px;--layout-padding:5%;--layout-padding-mobile:20px;--content-max-width:800px;--border-width:3px;--transition-fast:0.2s ease;--transition-medium:0.3s ease;--transition-slow:0.5s ease;--shadow-subtle:0 2px 4px #0000001a;--shadow-medium:0 4px 8px #00000026;--border-subtle:1px solid #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#fffef9;background-color:var(--color-background);color:#383a53;color:var(--color-text-secondary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);line-height:1.4;line-height:var(--leading-relaxed)}body,hr{width:100%}h1{font-size:24px;font-size:var(--text-lg);line-height:1.1;line-height:var(--leading-tight)}h1,h2{color:#161a45;color:var(--color-text-primary);font-family:"IBM Plex Serif",serif;font-family:var(--font-serif);font-weight:700;font-weight:var(--weight-bold)}h2{font-size:36px;font-size:var(--text-2xl);line-height:1.3;line-height:var(--leading-normal)}h3{color:#161a45;color:var(--color-text-primary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:30px;font-size:var(--text-xl);font-weight:400;font-weight:var(--weight-normal);line-height:1.4;line-height:var(--leading-relaxed)}p{white-space:pre-line}ol,p,ul{color:#383a53;color:var(--color-text-secondary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:20px;font-size:var(--text-base);font-weight:400;font-weight:var(--weight-normal);line-height:1.4;line-height:var(--leading-relaxed);text-align:left}ol,ul{margin-bottom:24px;margin-bottom:var(--space-6);padding-left:24px;padding-left:var(--space-6)}li{line-height:1.4;line-height:var(--leading-relaxed);margin-bottom:20px;margin-bottom:var(--space-5)}a{background:linear-gradient(90deg,#e8c547,#e8c547);background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary) 100%);background-position:0;background-repeat:no-repeat;background-size:0 100%;color:#161a45;color:var(--color-link);display:inline-block;position:relative;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:.2s ease;transition:var(--transition-fast)}a:hover{background-size:100% 100%;color:#161a45;color:var(--color-text-on-primary);transition:background-size .3s ease;transition:background-size var(--transition-medium)}a:visited{color:#161a45;color:var(--color-link)}a:active{animation:active-flash .25s ease-out;background:#161a45!important;background:var(--color-secondary)!important;background-image:none!important;background-size:auto!important;color:#e8c547!important;color:var(--color-primary)!important;transition:all 0ms ease-out}.nav-link{background:linear-gradient(90deg,#e8c547,#e8c547);background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary) 100%);background-position:0;background-repeat:no-repeat;background-size:0 100%;color:#161a45;color:var(--color-text-primary);display:block;font-family:"IBM Plex Serif",serif;font-family:var(--font-serif);font-size:48px;font-size:var(--text-4xl);font-weight:700;font-weight:var(--weight-bold);line-height:1.1;line-height:var(--leading-tight);margin-bottom:2px;margin-bottom:var(--space-1);margin-left:-60px;margin-left:calc(var(--space-10)*-1);padding:4px 0;padding:var(--space-2) 0;padding-left:60px;padding-left:var(--space-10);position:relative;text-decoration:none;transition:background-size .3s ease;transition:background-size var(--transition-medium)}.nav-link:hover{background-size:100% 100%;color:#161a45;color:var(--color-text-on-primary)}.nav-link:active{animation:active-flash .25s ease-out;background:#161a45!important;background:var(--color-secondary)!important;background-image:none!important;background-size:auto!important;color:#e8c547!important;color:var(--color-primary)!important;transition:all 0ms ease-out}.project-link{background:linear-gradient(90deg,#e8c547,#e8c547);background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary) 100%);background-position:0;background-repeat:no-repeat;background-size:0 100%;display:block;font-size:20px;font-size:var(--text-base);line-height:1.4;line-height:var(--leading-relaxed);margin-bottom:24px;margin-bottom:var(--space-6);margin-left:-60px;margin-left:calc(var(--space-10)*-1);padding:4px 0;padding:var(--space-2) 0;padding-left:60px;padding-left:var(--space-10);transition:background-size .3s ease;transition:background-size var(--transition-medium)}.project-link:hover{background-size:100% 100%;color:#161a45;color:var(--color-text-on-primary)}.project-link:active{animation:active-flash .25s ease-out;background:#161a45!important;background:var(--color-secondary)!important;background-image:none!important;background-size:auto!important;color:#e8c547!important;color:var(--color-primary)!important;transition:all 0ms ease-out}@media only screen and (max-width:768px){.project-link{margin-left:-32px;margin-left:calc(var(--space-7)*-1);padding-left:32px;padding-left:var(--space-7)}}.frame{border:1px solid #161a45;border:1px solid var(--color-border);float:right;margin-bottom:5%;margin-bottom:var(--layout-padding);margin-left:5%;margin-left:var(--layout-padding);margin-right:5%;margin-right:var(--layout-padding);max-width:800px;max-width:var(--content-max-width)}#frontpage{margin-top:5%;margin-top:var(--layout-padding)}.main{padding:5%;padding:var(--layout-padding)}.floating-back-link{background-color:#fffef9;background-color:var(--color-background);border-radius:8px;left:5%;left:var(--layout-padding);padding:8px;padding:var(--space-3);position:fixed;top:80px;top:var(--space-12);z-index:10}@media only screen and (max-width:768px){.floating-back-link{background-color:#fffef9;background-color:var(--color-background);border-bottom:1px solid #161a45;border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none;left:0;padding:16px 20px;padding:var(--space-4) var(--layout-padding-mobile);position:sticky;right:0;top:0;z-index:100}}.footer{background-color:#fbf8ed;background-color:var(--color-surface);padding:5%;padding:var(--layout-padding)}.footer-text{color:#383a53;color:var(--color-text-secondary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:14px;font-size:var(--text-footer);font-weight:400;font-weight:var(--weight-normal);line-height:1.4;line-height:var(--leading-relaxed)}.quote{background-color:#fbf8ed;background-color:var(--color-surface);margin:40px -60px;margin:var(--space-8) calc(var(--space-10)*-1) var(--space-8) calc(var(--space-10)*-1);padding:32px 60px;padding:var(--space-7) var(--space-10)}.quote:last-child{margin-bottom:-60px;margin-bottom:calc(var(--space-10)*-1)}.quote li,.quote p,.quote ul{font-size:14px;font-size:var(--text-footer);line-height:1.4;line-height:var(--leading-relaxed)}.quote-title{color:#161a45;color:var(--color-text-primary);font-family:"IBM Plex Serif",serif;font-family:var(--font-serif);font-size:48px;font-size:var(--text-4xl);font-weight:700;font-weight:var(--weight-bold);line-height:1.1;line-height:var(--leading-tight);margin:24px 0;margin:var(--space-6) 0}.quote-body{font-size:20px;font-size:var(--text-base)}.quote-attribution,.quote-body{color:#383a53;color:var(--color-text-secondary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-weight:400;font-weight:var(--weight-normal);line-height:1.4;line-height:var(--leading-relaxed)}.quote-attribution{font-size:16px;font-size:var(--text-sm);font-style:italic;margin-top:16px;margin-top:var(--space-4)}@media only screen and (max-width:768px){.quote{margin:24px -32px;margin:var(--space-6) calc(var(--space-7)*-1) var(--space-6) calc(var(--space-7)*-1);padding:20px 32px;padding:var(--space-5) var(--space-7)}.quote:last-child{margin-bottom:-32px;margin-bottom:calc(var(--space-7)*-1)}}img{max-width:100%}.responsive-image.page-image,.responsive-image.page-image-fill,.responsive-image.page-image-hero,img.page-image,img.page-image-fill,img.page-image-hero{max-width:none}@media only screen and (max-width:768px){.responsive-image.page-image,.responsive-image.page-image-fill,.responsive-image.page-image-hero,img.page-image,img.page-image-fill,img.page-image-hero{max-width:none!important}}img.project-banner{margin-top:4%}button{background-color:#fff5e7;border:none;cursor:pointer;display:inline-block;font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:24px;font-size:var(--text-lg);font-weight:400;font-weight:var(--weight-normal);padding:0;text-align:center;text-decoration:none;transition:.2s ease;transition:var(--transition-fast)}button.back-home{margin-left:110px;margin-top:50px}.project-banner{margin-top:4%}.project-summary{padding-bottom:4%}.sexy-header{padding-left:12px}.back-button-link{align-items:center;background:none;background:linear-gradient(90deg,#e8c547,#e8c547);background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary) 100%);background-position:0;background-repeat:no-repeat;background-size:0 100%;border:none;border-radius:4px;color:inherit;cursor:pointer;display:flex;font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);margin:-8px;margin:calc(var(--space-3)*-1);padding:8px;padding:var(--space-3);text-decoration:none;transition:background-size .3s ease,transform .2s ease;transition:background-size var(--transition-medium),transform var(--transition-fast)}.back-button-link:hover{background-size:100% 100%;color:#161a45;color:var(--color-text-on-primary);transform:translateX(-2px)}.back-button-link:active{animation:active-flash .25s ease-out;background:#161a45!important;background:var(--color-secondary)!important;background-image:none!important;background-size:auto!important;transform:translateX(-2px);transition:all 0ms ease-out}.back-button-link:active,.back-button-link:active .back-button-icon,.back-button-link:active .back-button-text{color:#e8c547!important;color:var(--color-primary)!important}.back-button-icon{height:30px;margin-right:8px;margin-right:var(--space-3);width:30px}.back-button-text{color:#161a45;color:var(--color-text-primary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:16px;font-size:var(--text-sm)}@media only screen and (max-width:480px){.frame,.main{margin:0}h1{font-size:36px;line-height:46px}h1,h2{font-family:"IBM Plex Serif",serif;font-weight:700}h2{font-size:32px;line-height:42px}p{font-family:IBM Plex Sans,sans-serif;font-size:20px;font-weight:400;line-height:26px}button.back-home{height:60px;left:0;margin-left:30px;margin-top:50px;position:absolute;top:0;width:160px}button{background-color:#edd4b2;border-radius:14px;padding:50px 32px}button:active{background-color:#eee}}*{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M2,2 L2,18 L8,12 L12,16 L16,12 L8,12 L2,2 Z" fill="%23FFFEF9" stroke="%232A1B00" stroke-width="2"/></svg>') 2 2,auto}.nav-link,[role=button],a,button{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8" fill="%23F4D03F" stroke="%232A1B00" stroke-width="2"/><circle cx="12" cy="12" r="3" fill="%232A1B00"/></svg>') 12 12,pointer!important}.nav-link:active,[role=button]:active,a:active,button:active{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><circle cx="14" cy="14" r="10" fill="%23F4D03F" stroke="%232A1B00" stroke-width="3"/><circle cx="14" cy="14" r="4" fill="%232A1B00"/><circle cx="14" cy="14" r="8" fill="none" stroke="%232A1B00" stroke-width="1" stroke-dasharray="2,2"/></svg>') 14 14,pointer!important}.custom-cursor-work{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><polygon points="12,2 22,20 2,20" fill="%23F4D03F" stroke="%232A1B00" stroke-width="2"/><circle cx="12" cy="14" r="2" fill="%232A1B00"/></svg>') 12 12,pointer!important}.custom-cursor-about{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><ellipse cx="12" cy="12" rx="10" ry="6" fill="%23F4D03F" stroke="%232A1B00" stroke-width="2"/><circle cx="12" cy="12" r="2" fill="%232A1B00"/></svg>') 12 12,pointer!important}.custom-cursor-consulting{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12,2 L20,8 L20,16 L12,22 L4,16 L4,8 Z" fill="%23F4D03F" stroke="%232A1B00" stroke-width="2"/><circle cx="12" cy="12" r="2" fill="%232A1B00"/></svg>') 12 12,pointer!important}::selection{background-color:#e8c547;background-color:var(--color-primary);color:#161a45;color:var(--color-text-on-primary)}.button-component{border:none;cursor:pointer;font:inherit;outline:inherit;padding:0}.button-component:not(.nav-link):not(.project-link){background:none}.button-primary{background-color:#e8c547;background-color:var(--color-primary);border-radius:4px;color:#161a45;color:var(--color-text-on-primary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:20px;font-size:var(--text-base);font-weight:700;font-weight:var(--weight-bold);padding:8px 20px;padding:var(--space-3) var(--space-5);transition:background-color .3s ease,transform .2s ease}.button-primary:hover{background-color:#e8c547;background-color:var(--color-primary-hover);transform:translateY(-1px)}.button-secondary{background-color:initial;border:2px solid #161a45;border:2px solid var(--color-border);border-radius:4px;color:#161a45;color:var(--color-text-primary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:20px;font-size:var(--text-base);font-weight:700;font-weight:var(--weight-bold);padding:8px 20px;padding:var(--space-3) var(--space-5);transition:background-color .3s ease,color .3s ease}.button-secondary:hover{background-color:#161a45;background-color:var(--color-border);color:#fffef9;color:var(--color-background)}.button-small{font-size:16px;font-size:var(--text-sm);padding:4px 16px;padding:var(--space-2) var(--space-4)}.button-large{font-size:24px;font-size:var(--text-lg);padding:20px 40px;padding:var(--space-5) var(--space-8)}.button-disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.button-loading{cursor:wait;opacity:.7}.button-loading-content{align-items:center;display:flex;gap:4px;gap:var(--space-2)}.icon{flex-shrink:0}.icon,.spinner{display:inline-block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.skeleton{display:block}@keyframes skeleton-pulse{0%{opacity:1}to{opacity:.4}}@keyframes active-flash{0%{background:#161a45;background:var(--color-secondary);background-image:none;color:#e8c547;color:var(--color-primary)}to{background:#161a45;background:var(--color-secondary);background-image:none;color:#e8c547;color:var(--color-primary)}}.skeleton-container{width:100%}.loading-page{align-items:center;display:flex;justify-content:center;min-height:50vh;padding:40px;padding:var(--space-8)}.loading-content{text-align:center}.loading-message{color:#383a53;color:var(--color-text-secondary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);margin-top:16px;margin-top:var(--space-4)}.page-image-skeleton{margin:-60px -60px 40px;margin:calc(var(--space-10)*-1) calc(var(--space-10)*-1) var(--space-8) calc(var(--space-10)*-1)}@media only screen and (max-width:768px){.page-image-skeleton{margin:-32px -32px 24px;margin:calc(var(--space-7)*-1) calc(var(--space-7)*-1) var(--space-6) calc(var(--space-7)*-1)}}.page-container{align-items:flex-end;display:flex;flex-direction:column;justify-content:flex-start;margin:0;max-width:none;min-height:100vh;padding:40px;padding:var(--space-8);padding-left:20%;padding-right:5%;padding-right:var(--layout-padding);padding-top:80px;padding-top:var(--space-12)}.page-content{background-color:#fffef9;background-color:var(--color-background);border:3px solid #161a45;border:var(--border-width) solid var(--color-border);max-width:800px;max-width:var(--content-max-width);padding:60px;padding:var(--space-10);position:relative;width:100%}.page-header{margin-bottom:40px;margin-bottom:var(--space-8);margin-top:40px;margin-top:var(--space-8)}.page-title{color:#161a45;color:var(--color-text-primary);font-family:"IBM Plex Serif",serif;font-family:var(--font-serif);font-size:36px;font-size:var(--text-2xl);font-weight:700;font-weight:var(--weight-bold);line-height:1.3;line-height:var(--leading-normal);margin-bottom:24px;margin-bottom:var(--space-6)}.page-image{border-radius:0;display:block;height:300px;margin:-60px -60px 0;margin:calc(var(--space-10)*-1) calc(var(--space-10)*-1) 0 calc(var(--space-10)*-1);object-fit:cover;object-position:center;width:calc(100% + 120px);width:calc(100% + var(--space-10)*2)}.page-image-fill{aspect-ratio:16/9}.page-image-fill,.page-image-hero{border-radius:0;display:block;margin:-60px -60px 40px;margin:calc(var(--space-10)*-1) calc(var(--space-10)*-1) var(--space-8) calc(var(--space-10)*-1);object-fit:cover;object-position:center;width:calc(100% + 120px);width:calc(100% + var(--space-10)*2)}.page-image-hero{aspect-ratio:21/10;flex-shrink:0;height:auto;max-width:none!important;min-height:250px;min-width:calc(100% + 120px);min-width:calc(100% + var(--space-10)*2)}.content-image{max-height:400px;object-fit:contain;object-position:center}.content-image,.content-image-adaptive{border-radius:0;display:block;margin-bottom:40px;margin-bottom:var(--space-8);margin-top:24px;margin-top:var(--space-6);width:100%}.content-image-adaptive{height:auto}.responsive-image{transition:opacity .3s ease,filter .3s ease;transition:opacity var(--transition-medium),filter var(--transition-medium)}.responsive-image.loading{filter:blur(1px);opacity:.7}.responsive-image.loaded{filter:none;opacity:1}.responsive-image.error{filter:grayscale(100%);opacity:.5}.responsive-image:not(.loaded){animation:shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,#fbf8ed 25%,#0000 37%,#fbf8ed 63%);background:linear-gradient(90deg,var(--color-surface) 25%,#0000 37%,var(--color-surface) 63%);background-size:400% 100%}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:-100% 50%}}@media only screen and (max-width:768px){.page-image{height:200px!important;margin:-40px -32px 0!important;margin:calc(var(--space-8)*-1) calc(var(--space-7)*-1) 0 calc(var(--space-7)*-1)!important;object-fit:cover!important}.page-image,.page-image-fill,.page-image-hero{min-width:calc(100% + 64px)!important;min-width:calc(100% + var(--space-7)*2)!important;width:calc(100% + 64px)!important;width:calc(100% + var(--space-7)*2)!important}.page-image-fill,.page-image-hero{margin:-40px -32px 24px!important;margin:calc(var(--space-8)*-1) calc(var(--space-7)*-1) var(--space-6) calc(var(--space-7)*-1)!important;min-height:150px}.page-image-hero{aspect-ratio:2/1!important;min-height:180px}.content-image{max-height:300px}}.project-links{margin:40px 0;margin:var(--space-8) 0}@media only screen and (max-width:768px){.page-container{align-items:center;padding:20px;padding:var(--layout-padding-mobile);padding-left:20px;padding-left:var(--layout-padding-mobile);padding-right:20px;padding-right:var(--layout-padding-mobile);padding-top:24px;padding-top:var(--space-6)}.page-content{margin-bottom:24px;margin-bottom:var(--space-6);margin-top:0;padding:40px 32px;padding:var(--space-8) var(--space-7)}.page-title{font-size:36px;font-size:var(--text-2xl)}}.home-container{align-items:flex-end;display:flex;flex-direction:column;justify-content:center;margin:0;max-width:none;min-height:100vh;padding:40px;padding:var(--space-8);padding-left:20%;padding-right:5%;padding-right:var(--layout-padding)}.home-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:60px;margin-bottom:var(--space-10);max-width:800px;max-width:var(--content-max-width);width:100%}.home-title{color:#161a45;color:var(--color-text-primary);font-size:48px;font-size:var(--text-4xl);font-weight:700;font-weight:var(--weight-bold);line-height:1.1;line-height:var(--leading-tight)}.home-subtitle,.home-title{font-family:"IBM Plex Serif",serif;font-family:var(--font-serif);margin:0}.home-subtitle{color:#545666;color:var(--color-text-muted);font-size:24px;font-size:var(--text-lg);font-style:italic}.home-content{background-color:#fffef9;background-color:var(--color-background);border:3px solid #161a45;border:var(--border-width) solid var(--color-border);max-width:800px;max-width:var(--content-max-width);padding:60px;padding:var(--space-10);width:100%}.nav-links{margin-bottom:40px;margin-bottom:var(--space-8)}.home-description{color:#383a53;color:var(--color-text-secondary);font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:20px;font-size:var(--text-base);line-height:1.4;line-height:var(--leading-relaxed);margin:40px 0;margin:var(--space-8) 0}.home-footer{background-color:#fbf8ed;background-color:var(--color-surface);margin:0 -60px -60px;margin:0 calc(var(--space-10)*-1) calc(var(--space-10)*-1) calc(var(--space-10)*-1);padding:32px 60px;padding:var(--space-7) var(--space-10)}.footer-links{align-items:center;display:flex;font-family:IBM Plex Sans,sans-serif;font-family:var(--font-sans);font-size:16px;font-size:var(--text-sm);justify-content:space-between}.footer-link{color:#161a45;color:var(--color-text-primary)}.email{color:#383a53;color:var(--color-text-secondary)}@media only screen and (max-width:768px){.home-container{align-items:center;padding:20px;padding:var(--layout-padding-mobile);padding-right:20px;padding-right:var(--layout-padding-mobile);padding-top:6.66667px;padding-top:calc(var(--layout-padding-mobile)/3)}.home-header{align-items:flex-start;flex-direction:column;margin-bottom:40px;margin-bottom:var(--space-8);text-align:left}.home-title{font-size:36px;font-size:var(--text-2xl);margin-bottom:8px;margin-bottom:var(--space-3)}.home-subtitle{font-size:20px;font-size:var(--text-base)}.home-content{padding:40px 32px;padding:var(--space-8) var(--space-7)}.nav-link{font-size:36px;font-size:var(--text-2xl);line-height:1.1;line-height:var(--leading-tight);margin-bottom:2px;margin-bottom:var(--space-1);margin-left:-32px;margin-left:calc(var(--space-7)*-1);padding:4px 0;padding:var(--space-2) 0;padding-left:32px;padding-left:var(--space-7)}.home-footer{margin:0 -32px -40px;margin:0 calc(var(--space-7)*-1) calc(var(--space-8)*-1) calc(var(--space-7)*-1);padding:20px 32px;padding:var(--space-5) var(--space-7)}.footer-links{align-items:flex-start;flex-direction:column;gap:16px;gap:var(--space-4);text-align:left}}@font-face{font-display:swap;font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;src:url(/static/media/bricolage-grotesque.3b1afa4469fa27eb7153.woff2) format("woff2-variations"),url(/static/media/bricolage-grotesque.3b1afa4469fa27eb7153.woff2) format("woff2")}@font-face{font-display:swap;font-family:Caveat;font-style:normal;font-weight:600;src:url(/static/media/caveat-600.7e631aecf49ac69edea7.woff2) format("woff2")}.ab{--ab-paper:#fff;--ab-ink:#161a45;--ab-pencil:#545666;--ab-rule:#dcdde6;--ab-highlight:#ffe45c;--ab-sticky:#ffec80;--ab-tape:#ff9ecf9e;--ab-font:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;--ab-hand:"Caveat","Bradley Hand","Segoe Print",cursive;--ab-measure:38rem;-webkit-font-smoothing:antialiased;background:var(--ab-paper);color:var(--ab-ink);font-family:var(--ab-font);font-size:1.125rem;line-height:1.6;min-height:100vh}.ab h1,.ab h2,.ab h3,.ab li,.ab ol,.ab p,.ab ul{color:inherit;font-family:var(--ab-font);margin:0;padding:0;white-space:normal}.ab a{background:linear-gradient(#0000 8%,var(--ab-highlight) 8%,var(--ab-highlight) 92%,#0000 92%) no-repeat 0 /0 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;display:inline;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;transition:background-size .25s ease}.ab a,.ab a:hover{color:var(--ab-ink)}.ab a:hover{background-size:100% 100%}.ab a:visited{color:var(--ab-ink)}.ab a:active{animation:none;background-color:initial!important;background-image:linear-gradient(var(--ab-ink),var(--ab-ink))!important;background-size:100% 100%!important;color:var(--ab-highlight)!important}.ab .ab-button,.ab .ab-name,.ab .ab-nav a,.ab .ab-projects a,.ab .ab-strip a,.ab .ab-work-list a{background-image:none}.ab-proj-title,.ab-strip .ab-caption{background:linear-gradient(#0000 8%,var(--ab-highlight) 8%,var(--ab-highlight) 92%,#0000 92%) no-repeat 0 /0 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .3s ease}.ab-proj-title{display:inline}.ab-projects a>.ab-proj-title,.ab-work-list a>.ab-proj-title{justify-self:start}.ab .ab-strip a:hover .ab-caption,.ab a:hover .ab-proj-title,.ab a:hover span.ab-proj-title{background-size:100% 100%;color:var(--ab-ink);text-decoration:none}.ab .ab-nav a{background:linear-gradient(var(--ab-highlight),var(--ab-highlight)) no-repeat 0 /0 100%;margin:0 -4px;padding:2px 4px;transition:background-size .25s ease}.ab .ab-nav a.active,.ab .ab-nav a:hover{background-size:100% 100%;text-decoration:none}.ab-strip img,.ab-work-list img{transition:filter .3s ease}.ab .ab-strip a:hover img,.ab .ab-work-list a:hover img{filter:grayscale(0)}.ab a:focus-visible,.ab button:focus-visible{outline:2px solid var(--ab-ink);outline-offset:3px}.ab ::selection{background:var(--ab-highlight);color:var(--ab-ink)}.ab img{display:block;height:auto;max-width:100%}.ab mark{background:linear-gradient(#0000 12%,var(--ab-highlight) 12%,var(--ab-highlight) 88%,#0000 88%);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;padding:0 .1em}.ab-skip{left:-9999px;position:absolute}.ab-skip:focus{background:var(--ab-paper);left:16px;padding:8px;top:16px;z-index:10}.ab-wrap{margin:0 auto;max-width:74rem;padding:0 16px;width:100%}@media (min-width:768px){.ab-wrap{padding:0 32px}}.ab-header{border-bottom:2px solid var(--ab-ink)}.ab-header-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;min-height:64px}.ab .ab-name{font-size:1.125rem;font-weight:750;letter-spacing:-.02em;text-decoration:none}.ab-nav{display:flex;font-size:1rem;gap:20px}.ab .ab-nav a{text-decoration:none}.ab h1{font-size:2.5rem;font-variation-settings:"opsz" 96;font-weight:700;letter-spacing:-.035em;line-height:1.02}@media (min-width:768px){.ab h1{font-size:4rem}}.ab .ab-h2,.ab-prose h2{font-size:1rem;font-weight:650;margin-bottom:20px}.ab-lead{color:var(--ab-pencil);font-size:1.25rem;line-height:1.5;max-width:var(--ab-measure)}@media (min-width:768px){.ab-lead{font-size:1.375rem}}.ab-hero{padding:56px 0 64px}@media (min-width:768px){.ab-hero{padding:96px 0}}.ab-hero-grid{grid-gap:40px;display:grid;gap:40px}@media (min-width:900px){.ab-hero-grid{align-items:end;gap:64px;grid-template-columns:1.35fr 1fr}}.ab-hero h1{margin-bottom:24px;max-width:14em}.ab-contact{display:flex;font-weight:600;gap:24px;margin-top:28px!important}.ab-portrait{aspect-ratio:4/5;filter:grayscale(1);object-fit:cover;object-position:55% 30%;width:100%}.ab-section{border-top:1px solid var(--ab-ink);padding:48px 0}@media (min-width:768px){.ab-section{padding:64px 0}}.ab-section-flush{border-top:0;padding-top:0}.ab-strip{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);list-style:none}@media (min-width:900px){.ab-strip{gap:20px;grid-template-columns:repeat(4,1fr)}}.ab-strip li{margin:0}.ab .ab-strip a{display:block;text-decoration:none}.ab-strip img{aspect-ratio:4/3;filter:grayscale(1) contrast(1.05);margin-bottom:10px;object-fit:cover;width:100%}.ab-strip .ab-caption{color:var(--ab-pencil);display:inline;font-size:.875rem;line-height:1.4}.ab-projects{border-top:1px solid var(--ab-rule);list-style:none}.ab-projects li{border-bottom:1px solid var(--ab-rule);margin:0}.ab .ab-projects a{grid-gap:4px 32px;display:grid;gap:4px 32px;padding:22px 0;text-decoration:none}@media (min-width:900px){.ab .ab-projects a{grid-template-columns:14rem 1fr}.ab-projects .ab-proj-summary{grid-column:2}}.ab-proj-context{color:var(--ab-pencil);font-size:.9375rem}.ab-proj-title{font-size:1.375rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}.ab-proj-summary{color:var(--ab-pencil);font-size:1rem;max-width:var(--ab-measure)}.ab-now{grid-gap:8px;display:grid;gap:8px}@media (min-width:900px){.ab-now{gap:32px;grid-template-columns:14rem 1fr}}.ab-now p{margin-bottom:20px;max-width:var(--ab-measure)}.ab-now-title{font-size:1.375rem;font-weight:600;margin-bottom:8px!important}.ab .ab-button{border-radius:2px;color:var(--ab-paper);display:inline-block;font-size:1rem;font-weight:600;padding:14px 20px;text-decoration:none}.ab .ab-button:hover,.ab .ab-button:visited{background:#2b2b2b;color:var(--ab-paper)}.ab-quote{margin:0;max-width:52rem}.ab-quote blockquote{margin:0}.ab-quote p{font-size:1.75rem;font-weight:500;letter-spacing:-.015em;line-height:1.35}@media (min-width:768px){.ab-quote p{font-size:2.25rem}}.ab-quote figcaption{color:var(--ab-pencil);font-size:1rem;margin-top:20px}.ab-page-head{padding:56px 0 40px}@media (min-width:768px){.ab-page-head{padding:80px 0 48px}}.ab-page-head h1{margin-bottom:20px;max-width:20em}.ab-page-head .ab-proj-context{margin-bottom:12px}.ab-page-head p+p{margin-top:20px}.ab-work-list{grid-gap:48px;display:grid;gap:48px;list-style:none}@media (min-width:900px){.ab-work-list{gap:56px 40px;grid-template-columns:1fr 1fr}}.ab-work-list li{margin:0}.ab .ab-work-list a{grid-gap:6px;display:grid;gap:6px;text-decoration:none}.ab-work-list img{aspect-ratio:3/2;filter:grayscale(1);margin-bottom:12px;object-fit:cover;width:100%}.ab-note{border-top:1px solid var(--ab-rule);color:var(--ab-pencil);font-size:1rem;margin-top:64px;max-width:var(--ab-measure);padding-top:20px}.ab-note p+p{margin-top:12px}.ab-project-figure{margin:0 0 48px}.ab-project-figure img{filter:grayscale(1);max-height:38rem;object-fit:cover;width:100%}.ab-project-figure figcaption{color:var(--ab-pencil);font-size:.9375rem;margin-top:10px}.ab-facts{border-top:1px solid var(--ab-ink);margin:0}.ab-facts>div{grid-gap:6px 32px;border-bottom:1px solid var(--ab-rule);display:grid;gap:6px 32px;padding:20px 0}@media (min-width:900px){.ab-facts>div{grid-template-columns:14rem 1fr}}.ab-facts dt{font-size:1rem;font-weight:650}.ab-facts dd{margin:0;max-width:var(--ab-measure)}.ab-facts dd p{white-space:pre-line}.ab-facts dd p+p{margin-top:6px}.ab-ext{margin-top:28px!important}.ab-next{border-top:1px solid var(--ab-ink);font-weight:600;margin:56px 0 72px!important;padding-top:20px}.ab-about{grid-gap:40px;display:grid;gap:40px}@media (min-width:900px){.ab-about{align-items:start;gap:64px;grid-template-columns:1fr 1.6fr}}.ab-about-photo{aspect-ratio:4/5;filter:grayscale(1);object-fit:cover;object-position:55% 30%;width:100%}@media (min-width:900px){.ab-about-photo{position:sticky;top:24px}}.ab-prose{max-width:var(--ab-measure)}.ab-prose p{margin-bottom:20px}.ab-prose .ab-lead{color:var(--ab-ink)}.ab-prose h2{margin-top:40px}.ab-prose ul{list-style:none;margin-bottom:20px}.ab-prose li{border-left:2px solid var(--ab-rule);margin:0 0 10px;padding-left:16px}.ab-logos{filter:grayscale(1);margin:8px 0 20px}.ab-footer{border-top:1px solid var(--ab-ink);color:var(--ab-pencil);font-size:.9375rem;padding:32px 0 56px}.ab-footer-row{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between}.ab-footer-links{display:flex;flex-wrap:wrap;gap:20px}@media (prefers-reduced-motion:reduce){.ab *{animation:none!important;transition:none!important}}.ab .ab-hand{color:var(--ab-ink);font-family:var(--ab-hand);font-size:1.75rem;font-weight:600;letter-spacing:0;line-height:1;margin-bottom:24px;transform:rotate(-1.5deg);transform-origin:left center}.ab-prose h2.ab-hand{margin-top:44px}.ab-taped{display:block;position:relative}.ab-tape{background:var(--ab-tape);box-shadow:0 1px 1px #161a4514;height:26px;left:50%;margin-left:-46px;-webkit-mask-image:linear-gradient(90deg,#0000 0 3px,#000 3px calc(100% - 3px),#0000 calc(100% - 3px));mask-image:linear-gradient(90deg,#0000 0 3px,#000 3px calc(100% - 3px),#0000 calc(100% - 3px));position:absolute;top:-12px;transform:rotate(-4deg);width:92px;z-index:2}.ab-hero-photo{margin:0;transform:rotate(1.5deg)}.ab-hero-photo img{box-shadow:0 1px 2px #161a452e,0 10px 24px -12px #161a4559}.ab-sticky{background:var(--ab-sticky);bottom:28px;box-shadow:0 2px 4px #161a451f,0 12px 18px -10px #161a454d;color:var(--ab-ink);font-family:var(--ab-hand);font-size:1.75rem;font-weight:600;left:-18px;line-height:1.05;max-width:11rem;padding:14px 18px 18px;position:absolute;transform:rotate(-5deg);z-index:3}.ab-strip{gap:28px 20px;padding-top:8px}.ab .ab-strip a.ab-taped{background:var(--ab-paper);box-shadow:0 1px 2px #161a4526,0 8px 18px -10px #161a4559;padding:8px 8px 12px;transition:transform .25s ease,box-shadow .25s ease}.ab-strip li:nth-child(4n+1) a{transform:rotate(-1.6deg)}.ab-strip li:nth-child(4n+2) a{transform:rotate(1.2deg)}.ab-strip li:nth-child(4n+3) a{transform:rotate(-.8deg)}.ab-strip li:nth-child(4n+4) a{transform:rotate(1.8deg)}.ab-strip li:nth-child(2n) .ab-tape{background:#ffe45cb3;transform:rotate(3deg)}.ab .ab-strip a.ab-taped:hover{box-shadow:0 2px 4px #161a4526,0 16px 28px -14px #161a4566;transform:rotate(0) translateY(-3px)}.ab-strip .ab-caption{color:var(--ab-ink);font-family:var(--ab-hand);font-size:1.3rem;font-weight:600;line-height:1.1}.ab-quote.ab-taped{background:var(--ab-sticky);box-shadow:0 2px 4px #161a451a,0 18px 30px -18px #161a4559;padding:40px 28px 32px;transform:rotate(-.8deg)}@media (min-width:768px){.ab-quote.ab-taped{padding:56px 56px 44px}}.ab-quote mark{background:none;padding:0}.ab-quote p{font-weight:600}.ab-quote figcaption{color:var(--ab-ink);font-family:var(--ab-hand);font-size:1.5rem;font-weight:600}.ab-about-fig{margin:0;transform:rotate(-1.2deg)}.ab-about-fig img{box-shadow:0 10px 24px -12px #161a4559}.ab-work-list img{box-shadow:0 8px 20px -12px #161a4559}.ab .ab-button{background:var(--ab-ink);border-radius:6px;transition:background-color .2s ease,color .2s ease,transform .2s ease}.ab .ab-button:focus-visible,.ab .ab-button:hover{background:var(--ab-highlight);color:var(--ab-ink);transform:rotate(-1deg)}.ab .ab-button:visited{color:var(--ab-paper)}.ab .ab-button:visited:hover{color:var(--ab-ink)}@media (prefers-reduced-motion:reduce){.ab .ab-hand,.ab-about-fig,.ab-hero-photo,.ab-quote.ab-taped,.ab-strip li a{transform:none!important}}
/*# sourceMappingURL=main.6cabe753.css.map*/