.site-footer{padding-bottom:clamp(16px,3vh,24px)}.site-footer__copy{width:fit-content;font-size:13px;font-weight:440;line-height:1.5;letter-spacing:.01em;color:color-mix(in oklab,var(--ink) 55%,transparent);transition:color .3s var(--ease-soft)}.site-footer__copy:hover{color:var(--ink)}.footer-tooltip{position:fixed;top:0;left:0;z-index:9000;width:max-content;max-width:min(320px,calc(100vw - 24px));padding:12px 16px;background:var(--ink);color:var(--bg);font-size:13px;line-height:1.55;letter-spacing:.01em;border-radius:10px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s var(--ease-soft),visibility 0s .18s}.footer-tooltip.is-visible{opacity:1;visibility:visible;transition:opacity .18s var(--ease-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@keyframes footer-enter{0%{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media (prefers-reduced-motion: no-preference){.site-footer__copy{animation:footer-enter .85s var(--ease) 1.5s backwards}}.projects{margin-top:auto;padding-bottom:clamp(36px,6vh,64px)}.projects .container{display:flex;flex-direction:column;gap:20px}.projects__row{list-style:none;display:flex;flex-wrap:wrap;gap:8px}.project{--tip-gap: 20px;position:relative;z-index:0}.project.is-open{z-index:8500}.project__thumb{--thumb-bg: var(--card);--thumb-fg: var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;display:block;position:relative;width:88px;height:88px;border-radius:10px;overflow:hidden;background:var(--thumb-bg);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--ink) 5%,transparent);transform-origin:center bottom;transition:transform var(--dock-dur, 145ms) ease-out}.project__art{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--thumb-fg);-webkit-mask-image:var(--thumb-art);mask-image:var(--thumb-art);-webkit-mask-size:auto var(--thumb-art-size);mask-size:auto var(--thumb-art-size);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.project__lit{--flood-x: 50%;--flood-y: 100%;--flood-r: 0%;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--brand-bg, var(--ink));clip-path:circle(var(--flood-r) at var(--flood-x) var(--flood-y))}.project__art--lit{background:var(--brand-fg, var(--card))}.project__thumb:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.project-tip{--tip-shift: 0px;position:absolute;left:calc(50% + var(--tip-shift));bottom:calc(100% + var(--tip-gap));width:420px;max-width:calc(100vw - 24px);opacity:0;visibility:hidden;transform:translate(-50%,6px) scale(.97);transform-origin:50% 100%;filter:blur(4px);transition:opacity .16s var(--ease-soft),transform .16s var(--ease-soft),filter .16s var(--ease-soft),visibility 0s .16s}.project.is-open .project-tip{opacity:1;visibility:visible;transform:translate(-50%) scale(1);filter:blur(0);transition:opacity .3s var(--ease) .06s,transform .36s var(--ease) .06s,filter .3s var(--ease) .06s,visibility 0s .06s}.project-tip:before{content:"";position:absolute;left:0;right:0;top:100%;height:var(--tip-gap)}.project-tip__card{padding:6px;background:var(--bg);border-radius:14px;box-shadow:0 0 0 1px color-mix(in oklab,var(--ink) 6%,transparent),0 1px 2px color-mix(in oklab,var(--ink) 4%,transparent),0 18px 40px -10px color-mix(in oklab,var(--ink) 20%,transparent)}.project-tip__window{display:block;text-decoration:none;border-radius:9px;overflow:hidden;background:var(--card);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--ink) 7%,transparent)}.project-tip__chrome{display:flex;align-items:center;gap:8px;height:28px;padding-inline:10px;background:color-mix(in oklab,var(--ink) 5%,var(--bg));border-bottom:1px solid color-mix(in oklab,var(--ink) 7%,transparent)}.project-tip__dots{flex:none;width:30px;height:7px;background:color-mix(in oklab,var(--ink) 17%,transparent);-webkit-mask-image:radial-gradient(circle 3.5px at 3.5px 3.5px,#000 99%,transparent),radial-gradient(circle 3.5px at 15px 3.5px,#000 99%,transparent),radial-gradient(circle 3.5px at 26.5px 3.5px,#000 99%,transparent);mask-image:radial-gradient(circle 3.5px at 3.5px 3.5px,#000 99%,transparent),radial-gradient(circle 3.5px at 15px 3.5px,#000 99%,transparent),radial-gradient(circle 3.5px at 26.5px 3.5px,#000 99%,transparent)}.project-tip__address{flex:1;min-width:0;font-size:11px;line-height:1;letter-spacing:.01em;color:color-mix(in oklab,var(--ink) 45%,transparent);text-align:center;padding-inline-end:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-tip__viewport{position:relative;aspect-ratio:16 / 10;overflow:hidden}.project-tip__page{display:block;width:100%;height:auto;transform:translateY(0);transition:transform .18s cubic-bezier(.16,1,.3,1)}.project-tip__meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 6px 5px}.project-tip__name{font-size:14px;font-weight:500;line-height:1.4;letter-spacing:-.005em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-tip__link{flex:none;display:inline-flex;align-items:baseline;gap:3px;font-size:13px;line-height:1.4;letter-spacing:.01em;color:color-mix(in oklab,var(--ink) 55%,transparent);text-decoration:none;transition:color .2s var(--ease-soft)}.project-tip__link:hover,.project-tip__link:focus-visible{color:var(--ink)}.project-tip__link:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:3px}.project-tip__arrow{font-family:system-ui,sans-serif;transition:transform .32s var(--ease),opacity .32s var(--ease)}@media (prefers-reduced-motion: no-preference){.projects__label{animation:enter-up .85s var(--ease) .72s backwards}.project{animation:enter-card .7s var(--ease) calc(.8s + var(--i, 0) * .06s) backwards}}@media (prefers-reduced-motion: reduce){.project__lit{transition:none!important}.project-tip,.project.is-open .project-tip{transition:none;transform:translate(-50%) scale(1);filter:none}.project-tip__page{transition:none}}@media (max-width: 640px){.projects__row{display:grid;grid-template-columns:repeat(5,1fr)}.project__thumb{width:100%;height:auto;aspect-ratio:1}}:root{--bg: #F7F7F4;--ink: #26251E;--card: #F2F1ED;--btn-bg: #E6E5E0;--btn-bg-hover: #DEDDD7;--btn-border: rgba(38, 37, 30, .06);--maxw: 1300px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Instrument Sans,system-ui,-apple-system,sans-serif;font-stretch:93%;font-synthesis:none;background-color:var(--bg);color:var(--ink);line-height:1.5}img{display:block}.page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(20px,4vw,40px)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;padding-block:16px}.wordmark{font-size:18px;font-weight:500;line-height:22px;letter-spacing:-.0105em;color:var(--ink);text-decoration:none}.main{flex:1;display:flex;flex-direction:column}.hero{padding-top:clamp(56px,17vh,200px);padding-bottom:clamp(40px,7vh,80px)}.hero__inner{max-width:660px;display:flex;flex-direction:column;align-items:flex-start;gap:40px}.hero__title{font-size:clamp(23px,1.8vw,30px);font-weight:440;line-height:1.25;letter-spacing:-.0125em;text-wrap:balance}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--btn-bg);border-radius:999px;padding:13px 22px;font-size:16px;line-height:1;color:var(--ink);text-decoration:none;border:1px solid color-mix(in oklab,var(--color-theme-fg) 2.5%,transparent)}.btn:hover{background:var(--btn-bg-hover)}.btn__arrow{font-family:system-ui,sans-serif;transition:transform .32s var(--ease),opacity .32s var(--ease)}.btn:focus-visible,.wordmark:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}.trusted{padding-bottom:clamp(32px,5vh,56px)}.trusted .container{display:flex;flex-direction:column;gap:32px}.section-label{font-size:14px;font-weight:440;line-height:1.5;letter-spacing:.01em}.logos{list-style:none;display:flex;flex-wrap:wrap;gap:10px}.logo-card{flex:0 0 150px;height:100px;display:flex;align-items:center;justify-content:center;padding-inline:7.5px;background:var(--card);border-radius:4px;transform-origin:center bottom;transition:transform var(--dock-dur, .14s) ease-out}.logo-card img{max-width:124px;width:auto;height:auto}@keyframes enter-down{0%{opacity:0;transform:translateY(-10px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes enter-up{0%{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes enter-hero{0%{opacity:0;transform:translateY(30px) scale(.985);filter:blur(12px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes enter-card{0%{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: no-preference){.wordmark{animation:enter-down .8s var(--ease) .1s backwards}.hero__title{animation:enter-hero 1.15s var(--ease) .28s backwards}.hero__inner .btn{animation:enter-up .85s var(--ease) .58s backwards}.trusted__label{animation:enter-up .85s var(--ease) .95s backwards}.logo-card{animation:enter-card .8s var(--ease) calc(1.05s + var(--i, 0) * .09s) backwards}}@media (max-width: 640px){.hero{padding-bottom:clamp(72px,16vh,150px)}.logos{display:grid;grid-template-columns:1fr 1fr}}.cursor-dot{position:fixed;top:0;left:0;width:13px;height:13px;mix-blend-mode:difference;pointer-events:none;z-index:9999;transform:translate(-50px,-50px);display:grid;place-items:center}.cursor-dot__circle,.cursor-dot__arrow{grid-area:1 / 1;transition:transform .1s ease}.cursor-dot__circle{width:13px;height:13px;border-radius:50%;background:#fff;transform:scale(1)}.cursor-dot__arrow{color:#fff;font:16px/1 system-ui,sans-serif;transform:scale(0)}.cursor-dot[data-mode] .cursor-dot__circle{transform:scale(0)}.cursor-dot[data-mode] .cursor-dot__arrow{transform:scale(1)}.has-cursor-dot,.has-cursor-dot *{cursor:none}
