.ks-project{max-width:100vw;overflow-x:hidden;background-color:var(--color-paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='%230d0d0f' stroke-width='1.5' stroke-linecap='round' opacity='0.05'%3E%3Cpath d='M20 24 q6 -10 12 0 q6 10 12 0'/%3E%3Ccircle cx='100' cy='20' r='5'/%3E%3Cpath d='M70 60 l8 8 m0 -8 l-8 8'/%3E%3Cpath d='M15 92 q10 -6 20 0 t20 0'/%3E%3Ccircle cx='118' cy='96' r='3'/%3E%3Cpath d='M55 118 l6 -12 l6 12 z'/%3E%3Cpath d='M95 55 q4 -8 8 0'/%3E%3C/g%3E%3C/svg%3E");background-repeat:repeat}.ks-project-crumb{padding:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.ks-project-crumb a{color:inherit}.ks-project-head{padding:var(--space-6) var(--space-4);border-bottom:var(--line) solid var(--color-ink)}.ks-project-title{font-family:var(--font-display);font-weight:var(--weight-black);font-size:clamp(2rem,7vw,5rem);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-transform:uppercase;margin:0 0 var(--space-3)}.ks-project-meta{font-family:var(--font-mono);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin:0 0 var(--space-4)}.ks-project-description{max-width:60ch;font-size:var(--text-base)}.ks-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-5);padding:var(--space-5) var(--space-4);border-bottom:var(--line) solid var(--color-ink)}.ks-gallery-break{flex-basis:100%;height:0}.ks-gallery-cell{position:relative;overflow:hidden;padding:0;border:2px solid var(--color-ink);background:var(--color-grey);font:inherit;cursor:pointer}.ks-gallery-cell img,.ks-gallery-cell video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}@media (hover:hover){.ks-gallery-cell:not(.ks-gallery-placeholder):hover img,.ks-gallery-cell:not(.ks-gallery-placeholder):hover video{transform:scale(1.04)}}.ks-gallery-cell img,.ks-gallery-cell video{transition:transform var(--duration-slow) var(--ease-standard)}.ks-gallery-cell:focus-visible{outline:var(--line) solid var(--color-ink);outline-offset:2px}.ks-gallery-placeholder{border-style:dashed;border-color:var(--color-grey);background:repeating-linear-gradient(45deg,transparent,transparent 8px,var(--color-paper) 8px,var(--color-paper) 9px);cursor:default}.ks-gallery-cell-vertical{flex:1 1 16rem;max-width:22rem;aspect-ratio:9/16}.ks-gallery-cell-horizontal{flex:1 1 14rem;max-width:18rem;aspect-ratio:16/9}@media (max-width:30rem){.ks-gallery-placeholder{display:none}}@media (prefers-reduced-motion:reduce){.ks-gallery-cell img,.ks-gallery-cell video{transition:none}.ks-gallery-cell:hover img,.ks-gallery-cell:hover video{transform:none}}.ks-related{padding:var(--space-6) var(--space-4)}.ks-related-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}.ks-related-title{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-xl);text-transform:uppercase;margin:0}.ks-brand-filter{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ks-brand-filter button{padding:var(--space-1) var(--space-3);border:2px solid var(--color-ink);background:var(--color-paper);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer}.ks-brand-filter button.is-active{background:var(--color-ink);color:var(--color-paper)}.ks-related-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));grid-gap:var(--line);gap:var(--line);padding:0;margin:0;list-style:none}.ks-related-card{display:block;color:inherit;text-decoration:none;border:2px solid var(--color-ink)}.ks-related-thumb{aspect-ratio:4/3;background:var(--color-grey);overflow:hidden}.ks-related-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-standard)}@media (hover:hover){.ks-related-card:hover .ks-related-thumb img{transform:scale(1.04)}}.ks-related-name{margin:var(--space-2) var(--space-3) 0;font-weight:var(--weight-bold);font-size:var(--text-sm)}.ks-related-meta{margin:0 var(--space-3) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink)}@media (prefers-reduced-motion:reduce){.ks-related-thumb img{transition:none}.ks-related-card:hover .ks-related-thumb img{transform:none}}.ks-popup-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:rgb(0 0 0/.75)}.ks-popup{position:relative;width:min(100%,52rem);max-height:90vh;overflow-y:auto;background:var(--color-paper);color:var(--color-ink);border:var(--line) solid var(--color-ink);box-shadow:10px 10px 0 var(--color-ink)}.ks-popup-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--line) solid var(--color-ink)}.ks-popup-head h2{margin:0;font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-lg);text-transform:uppercase;overflow-wrap:anywhere}.ks-popup-close{flex:0 0 auto;width:2.5rem;height:2.5rem;border:2px solid var(--color-ink);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-xl);line-height:1;cursor:pointer}.ks-popup-close:focus-visible,.ks-popup-close:hover{background:var(--color-ink);color:var(--color-paper)}.ks-popup-media{position:relative;width:100%;aspect-ratio:4/3;background:var(--color-grey)}.ks-popup-media img,.ks-popup-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--color-grey)}.ks-popup-meta{margin:0;padding:var(--space-3) var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-bottom:2px solid var(--color-ink)}@media (max-width:30rem){.ks-popup-backdrop{padding:0}.ks-popup{width:100%;height:100%;max-height:100vh;border-width:0;display:flex;flex-direction:column}.ks-popup-head,.ks-popup-meta{flex:0 0 auto}.ks-popup-media{flex:1 1 auto;min-height:45vh;aspect-ratio:auto}}