:root{--bg-color: #fafafa;--text-color: #111111;--grid-color: rgba(0, 0, 0, .175);--grid-size: 2rem;--sub-grid: .5rem;--font-main: "Inter", system-ui, -apple-system, sans-serif;--container-width: 48rem;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out-expo: cubic-bezier(.87, 0, .13, 1);--spring-1: cubic-bezier(.2, .8, .2, 1)}@media(min-width:1024px){:root{--container-width: 64rem}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-color);font-family:var(--font-main);line-height:1.5;min-height:100vh;position:relative;overflow-x:hidden}body:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 1000 1000' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='weathering'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.015' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 -15'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23weathering)'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 1000 1000' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='weathering'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.015' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 -15'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23weathering)'/%3E%3C/svg%3E");pointer-events:none;z-index:0}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");opacity:.08;pointer-events:none;z-index:100}main{max-width:var(--container-width);margin:0 auto;padding:var(--grid-size) 2rem 10rem 2rem;position:relative;z-index:10;opacity:1;transition:opacity .15s var(--ease-out-expo)}html.js-active:not(.grid-snapped) main{opacity:0;transition:none}[data-snap=block]{width:fit-content;max-width:100%;position:relative;box-sizing:border-box;margin-right:auto;margin-left:0}[data-snap=block][data-snap-align=center]{margin-left:auto;margin-right:auto}[data-snap=block][data-snap-align=right]{margin-left:auto;margin-right:0}[data-snap=block][data-snap-align=left]{margin-right:auto;margin-left:0}[data-snap=block][data-snap-align=fill]{width:100%}[data-snap=block]:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:100vw;height:100%;border-top:1px dashed var(--grid-color);border-bottom:1px dashed var(--grid-color);pointer-events:none;opacity:.2;z-index:5}.show-snap[data-snap=block]:after{content:"";position:absolute;top:calc(var(--snap-gap) - 4px);bottom:calc(var(--snap-gap) - 4px);left:-4px;right:-4px;background-image:linear-gradient(to right,var(--text-color) 1.5px,transparent 1.5px),linear-gradient(to bottom,var(--text-color) 1.5px,transparent 1.5px),linear-gradient(to left,var(--text-color) 1.5px,transparent 1.5px),linear-gradient(to bottom,var(--text-color) 1.5px,transparent 1.5px),linear-gradient(to right,var(--text-color) 1.5px,transparent 1.5px),linear-gradient(to top,var(--text-color) 1.5px,transparent 1.5px),linear-gradient(to left,var(--text-color) 1.5px,transparent 1.5px),linear-gradient(to top,var(--text-color) 1.5px,transparent 1.5px);background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-size:8px 8px;pointer-events:none;opacity:.15;transition:opacity .15s var(--ease-out-expo)}a[data-snap=block]:hover:after,a [data-snap=block]:hover:after,.back-nav:hover:after,.project-group:hover [data-snap=block]:after{opacity:.45}[data-snap=block]{--guide-color: rgba(0, 0, 0, .15);background-image:linear-gradient(to bottom,var(--guide-color) 1px,transparent 1px),linear-gradient(to top,var(--guide-color) 1px,transparent 1px);background-position:left 20px top 0,left 20px bottom 0;background-size:1px var(--snap-gap),1px var(--snap-gap);background-repeat:no-repeat}[data-snap=block]:before{background-image:linear-gradient(to right,var(--guide-color) 6px,transparent 6px),linear-gradient(to right,var(--guide-color) 6px,transparent 6px);background-position:left 17px top 0,left 17px bottom 0;background-repeat:no-repeat;background-size:6px 1px}h1,h2,h3{font-weight:600;line-height:1.2;margin-bottom:1.5rem}[data-snap=block] h1,[data-snap=block] h2,[data-snap=block] h3,[data-snap=block] p{margin-bottom:0!important;margin-top:0!important}p{margin-bottom:1.2rem}a{color:inherit;text-decoration:underline;text-underline-offset:4px;transition:opacity .15s var(--ease-out-expo),transform .1s var(--ease-out-expo);display:inline-block}a:hover{opacity:.7}a:active{transform:scale(.97)}.back-nav{position:relative;margin-bottom:var(--grid-size);z-index:50}.back-nav a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0 1.25rem;box-sizing:border-box;text-decoration:none;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--text-color);opacity:.6;transition:opacity .15s var(--ease-out-expo),transform .1s var(--ease-out-expo)}.back-nav a:hover{opacity:1}.back-nav a:active{transform:scale(.97)}nav{margin-bottom:var(--grid-size)}.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}.chip[data-astro-cid-axsc746k]{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .85rem;background-color:#fff;border:1px solid #d1d5db;border-radius:0;font-size:.8rem;font-weight:500;color:#374151;position:relative;box-shadow:2px 2px #0000000d;text-decoration:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");justify-content:center;transition:transform .15s var(--ease-out-expo),box-shadow .15s var(--ease-out-expo),border-color .15s var(--ease-out-expo);cursor:default;user-select:none}.link-chip[data-astro-cid-axsc746k]:active{transform:scale(.97)}.link-chip[data-astro-cid-axsc746k]{cursor:pointer}.chip[data-astro-cid-axsc746k]:before,.chip[data-astro-cid-axsc746k]:after{content:"";position:absolute;width:6px;height:6px;border-color:var(--grid-color);border-style:solid;pointer-events:none;opacity:.8}.chip[data-astro-cid-axsc746k]:before{top:-3px;left:-3px;border-width:1px 0 0 1px}.chip[data-astro-cid-axsc746k]:after{bottom:-3px;right:-3px;border-width:0 1px 1px 0}.link-chip[data-astro-cid-axsc746k]:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--grid-color);border-color:var(--text-color)}.label-group[data-astro-cid-axsc746k]{display:flex;align-items:center;gap:1.5rem}.link-display[data-astro-cid-axsc746k]{font-weight:400;opacity:.6;text-decoration:underline;text-underline-offset:2px;display:flex;align-items:center;gap:.35rem}.external-icon[data-astro-cid-axsc746k]{width:.9rem;height:.9rem;opacity:.8}.icon-slot[data-astro-cid-axsc746k]{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem}.icon-slot[data-astro-cid-axsc746k] svg{width:100%;height:100%}.label[data-astro-cid-axsc746k]{white-space:nowrap}@media(max-width:768px){.chip[data-astro-cid-axsc746k]{background-color:transparent!important;background-image:none!important;border:none!important;box-shadow:none!important;padding:0!important;font-size:.85rem!important;gap:.35rem!important}.chip[data-astro-cid-axsc746k]:before,.chip[data-astro-cid-axsc746k]:after{display:none!important}.link-chip[data-astro-cid-axsc746k]:hover{transform:none!important;box-shadow:none!important;border-color:transparent!important}}
