.view-switch-row{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-6);padding-bottom:var(--space-7);flex-wrap:wrap;display:flex}.work-filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.work-filter{border:1px solid var(--ink-10);background-color:var(--surface);height:36px;font:inherit;font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--ink);cursor:pointer;box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px var(--ink-10), 0 4px 10px -3px var(--ink-18);transition-property:box-shadow,transform,background-color,color;transition-duration:.15s;transition-timing-function:var(--ease-ui);border-radius:999px;padding:0 16px}.work-filter:hover{box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 2px 4px var(--ink-10), 0 8px 16px -5px var(--ink-18)}.work-filter[aria-pressed=true],.work-filter:active{background-color:var(--well);border-color:var(--ink-08);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06)}.work-filter:active{transform:translateY(1px)}.work-filter[aria-pressed=true]{cursor:default}.view-switch{background:var(--well);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06), 0 1px 0 var(--cap-rim-soft);border-radius:999px;gap:2px;padding:4px;display:inline-flex;position:relative}.view-switch-thumb{top:4px;bottom:4px;left:var(--thumb-left,4px);width:var(--thumb-width,0px);background-color:var(--surface);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px var(--ink-10), 0 4px 10px -3px var(--ink-18);pointer-events:none;border-radius:999px;transition:left .42s cubic-bezier(.34,1.56,.64,1),width .42s cubic-bezier(.34,1.56,.64,1);position:absolute}.view-switch-button{z-index:1;height:36px;color:var(--ink-muted);font:inherit;font-size:var(--text-meta);font-weight:var(--weight-medium);cursor:pointer;transition-property:color,transform;transition-duration:var(--dur-hover);transition-timing-function:var(--ease-ui);background:0 0;border:0;border-radius:999px;padding:0 16px;line-height:1;position:relative}.view-switch-button:hover{color:var(--ink)}.view-switch-button[aria-pressed=true],.view-switch-button[aria-selected=true]{color:var(--ink);cursor:default}.view-switch-button:active{transform:translateY(1px)}.view-switch-button:focus-visible{outline-offset:2px}@media (prefers-reduced-motion:reduce){.view-switch-thumb{transition:none}}.work-grid{gap:var(--space-8) var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;display:grid}.work-grid-item{transition:opacity .2s var(--ease-ui)}.work-grid-item.is-dim{opacity:0;pointer-events:none}.work-grid-item{animation:grid-compose var(--dur-slow) var(--ease-out) backwards;animation-delay:calc(var(--row,0) * 50ms)}@keyframes grid-compose{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.work-grid-item{transition:none;animation:none}}.work-grid-card{cursor:pointer;display:block}.work-grid-frame{aspect-ratio:4/3;border-radius:var(--radius-glass);outline:1px solid var(--ink-10);outline-offset:-1px;position:relative;overflow:hidden}.work-grid-media.media-block.is-tray{border-radius:0;justify-content:center;align-items:center;padding:16px 5%;display:flex;position:absolute;inset:0;container-type:size}.work-grid-media.media-block .media-sharp{width:100%;height:100%;transition-property:transform;transition-duration:.3s;transition-timing-function:var(--ease-ui);justify-content:center;align-items:center;display:flex}.work-grid-media.media-block .media-sharp img,.work-grid-media.media-block .media-sharp .tile-video{height:min(100cqh, calc(100cqw / var(--ratio)));width:auto;aspect-ratio:var(--ratio);border-radius:var(--radius-card-image);outline:1px solid var(--image-edge);outline-offset:-1px;transition-property:box-shadow;transition-duration:.3s;transition-timing-function:var(--ease-ui);display:block;box-shadow:0 12px 32px -16px #00000073}.work-grid-media.media-block .media-sharp img{object-fit:cover}.work-grid-card:hover .media-sharp{transform:translateY(-4px)}.work-grid-card:hover .media-sharp img,.work-grid-card:hover .media-sharp .tile-video{box-shadow:0 20px 44px -18px #00000080}.work-grid-media.media-block .media-glass:after{content:"";opacity:.05;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");background-size:160px 160px;position:absolute;inset:0}.work-grid-caption{padding-top:var(--space-3)}.work-grid-index{margin-bottom:var(--space-1);font-size:var(--text-eyebrow);font-weight:var(--weight-medium);letter-spacing:var(--tracking-eyebrow);color:var(--ink-muted);text-shadow:0 1px 0 var(--cap-rim), 0 -1px 0 var(--engrave);display:block}.work-grid-title{font-size:20px;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--ink);line-height:26px}.work-grid-caption .project-row-meta{margin-top:var(--space-1)}.work-grid-card:focus-visible{outline:none}.work-grid-card:focus-visible .work-grid-frame{outline:2px solid var(--ink);outline-offset:2px}@media (prefers-reduced-motion:reduce){.work-grid-card:hover .media-sharp{transform:none}}@media (max-width:1199px){.work-grid{gap:var(--space-7) var(--space-5)}}@media (max-width:809px){.work-grid{gap:var(--space-7);grid-template-columns:minmax(0,1fr)}.view-switch-button{height:40px}.view-switch-row{padding-bottom:var(--space-8);flex-direction:column;align-items:flex-start}.view-switch-row .view-switch,.work-list{display:none}.work-filters{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:calc(100% + 2 * var(--gutter));margin-inline:calc(-1 * var(--gutter));padding:8px var(--gutter);flex-wrap:nowrap;align-self:stretch;margin-block:-8px;overflow-x:auto}.work-filters::-webkit-scrollbar{display:none}.work-filter{flex:none}}
.theme-switch{--cell:44px;--cell-h:36px;--pad:4px;right:var(--space-5);bottom:var(--space-5);z-index:20;padding:var(--pad);border:1px solid var(--glass-edge);background:var(--glass);-webkit-backdrop-filter:blur(24px)saturate(190%);backdrop-filter:blur(24px)saturate(190%);box-shadow:inset 0 1px 0 var(--glass-rim), inset 0 -1px 0 var(--ink-04), 0 1px 2px #0000000a, 0 12px 32px -12px #00000038;border-radius:999px;display:flex;position:fixed}.theme-switch-thumb{top:var(--pad);left:var(--pad);width:var(--cell);height:var(--cell-h);background-color:var(--surface);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px var(--ink-14), 0 3px 8px -2px var(--ink-14);border-radius:999px;transition:translate .42s cubic-bezier(.34,1.56,.64,1);position:absolute}html.theme-fade,html.theme-fade *,html.theme-fade :before,html.theme-fade :after{transition:background-color .3s var(--ease-ui), color .3s var(--ease-ui), border-color .3s var(--ease-ui), box-shadow .3s var(--ease-ui), outline-color .3s var(--ease-ui)!important}:root[data-theme=dark] .theme-switch-thumb{translate:var(--cell) 0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-switch-thumb{translate:var(--cell) 0}}.theme-switch-option{z-index:1;width:var(--cell);height:var(--cell-h);color:var(--ink-muted);cursor:pointer;transition:color var(--dur-hover) var(--ease-ui);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:relative}.theme-switch-option:hover,.theme-switch-option[aria-pressed=true]{color:var(--ink)}.theme-switch-option:focus-visible{outline-offset:-2px}.theme-icon-moon,.theme-icon-sun{place-items:center;display:grid}.theme-icon-moon svg,.theme-icon-sun svg{width:16px;height:16px}.theme-icon-sun{display:none}:root[data-theme=dark] .theme-icon-sun{display:grid}:root[data-theme=dark] .theme-icon-moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-icon-sun{display:grid}:root:not([data-theme=light]) .theme-icon-moon{display:none}}@media (max-width:809px){.theme-switch{display:none}}@media (prefers-reduced-motion:reduce){.theme-switch-thumb,.theme-switch-option{transition:none}}
.site-header{view-transition-name:site-header}.theme-switch{view-transition-name:theme-switch}::view-transition-group(*){animation-duration:.65s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(root){animation-duration:.35s;animation-timing-function:var(--ease-ui)}::view-transition-new(root){animation-duration:.35s;animation-timing-function:var(--ease-ui)}::view-transition-old(project-hero){object-fit:cover;width:100%;height:100%;overflow:clip}::view-transition-new(project-hero){object-fit:cover;width:100%;height:100%;overflow:clip}::view-transition-image-pair(project-hero){border-radius:var(--radius-glass);overflow:clip}::view-transition-old(project-title){object-fit:none;object-position:0 0;width:auto;height:auto}::view-transition-new(project-title){object-fit:none;object-position:0 0;width:auto;height:auto}::view-transition-group(site-header){animation-duration:.01ms}::view-transition-group(theme-switch){animation-duration:.01ms}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none}::view-transition-old(*){animation:none}::view-transition-new(*){animation:none}}
.approach-lead{margin-top:var(--space-2);max-width:var(--measure)}.approach-lead+.approach-lead{margin-top:var(--space-3)}.approach-tiles{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;list-style:none;display:grid}.approach-tile{padding:var(--space-4) var(--space-4) var(--space-5);border-radius:var(--radius-glass);background:var(--surface-alt);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-06)}.approach-well{width:44px;height:44px;margin-bottom:var(--space-4);background:var(--well);color:var(--ink);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06), 0 1px 0 var(--cap-rim);border-radius:12px;place-items:center;display:grid}.approach-well svg{filter:drop-shadow(0 1px 0 var(--cap-rim));display:block}.approach-title{font-size:var(--text-body);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:1.3}.approach-body{margin-top:var(--space-2);font-size:var(--text-meta);line-height:var(--leading-body);color:var(--ink-muted)}@media (max-width:809px){.approach-tiles{grid-template-columns:minmax(0,1fr)}}
.role-lead{max-width:var(--measure)}.role-list{margin-top:var(--space-4);max-width:var(--measure);list-style:none}.role-item{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--ink-08);display:flex}.role-item:first-child{border-top:0;padding-top:0}.role-list:first-child .role-item:first-child{padding-top:0}.role-well{background:var(--well);width:28px;height:28px;color:var(--ink);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06), 0 1px 0 var(--cap-rim);border-radius:8px;flex:0 0 28px;place-items:center;display:grid}.role-well svg{filter:drop-shadow(0 1px 0 var(--cap-rim));display:block}.role-text{font-size:var(--text-body);line-height:var(--leading-body)}
.compare{isolation:isolate;aspect-ratio:4/3;margin-top:var(--space-4);border-radius:var(--radius-card-image);background:var(--surface-alt);outline:1px solid var(--image-edge);outline-offset:-1px;justify-content:center;align-items:center;padding:16px 5%;display:flex;position:relative;overflow:hidden}.compare-smear{z-index:0;object-fit:cover;width:140%;height:140%;position:absolute;inset:-20%}.compare-glass{z-index:1;border-radius:inherit;background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);position:absolute;inset:0}.compare-frame{z-index:2;aspect-ratio:832/1814;border-radius:var(--radius-card-image);outline:1px solid var(--image-edge);outline-offset:-1px;cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;height:100%;position:relative;overflow:hidden;box-shadow:0 12px 32px -16px #00000073}.compare-frame:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.compare-frame img{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.compare-before{clip-path:inset(0 calc(100% - var(--seam)) 0 0)}.compare-seam{top:0;bottom:0;left:var(--seam);background:var(--cap-rim);width:2px;box-shadow:-1px 0 0 var(--ink-14), 1px 0 0 var(--ink-14);position:absolute;transform:translate(-1px)}.compare-knob{border:1px solid var(--ink-14);background-color:var(--surface);width:36px;height:36px;color:var(--ink);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px var(--ink-10), 0 4px 10px -3px var(--ink-18);border-radius:999px;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.compare-frame:active .compare-knob{background-color:var(--well);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06)}.compare-chip{z-index:3;border:1px solid var(--ink-14);background:var(--surface);height:28px;box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px var(--ink-10), 0 4px 10px -3px var(--ink-18);font-size:var(--text-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink);text-shadow:0 1px 0 var(--cap-rim), 0 -1px 0 var(--engrave);pointer-events:none;border-radius:999px;align-items:center;padding:0 10px;display:inline-flex;position:absolute;top:12px}.compare-chip.is-before{left:12px}.compare-chip.is-after{right:12px}@media (max-width:809px){.compare{aspect-ratio:3/4}}
.link-preview{isolation:isolate;aspect-ratio:4/3;margin-top:var(--space-4);border-radius:var(--radius-card-image);background:var(--surface-alt);outline:1px solid var(--image-edge);outline-offset:-1px;color:inherit;transition-property:transform,box-shadow;transition-duration:.3s;transition-timing-function:var(--ease-ui);justify-content:center;align-items:center;padding:16px 5%;text-decoration:none;display:flex;position:relative;overflow:hidden}.link-preview:hover,.link-preview:focus-visible{transform:translateY(-3px);box-shadow:0 20px 40px -20px #0006}.link-preview:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.link-preview.is-still:hover{box-shadow:none;transform:none}.link-preview-smear{z-index:0;object-fit:cover;width:140%;height:140%;position:absolute;inset:-20%}.link-preview-glass{z-index:1;border-radius:inherit;background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);position:absolute;inset:0}.link-preview-sharp{z-index:2;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;container-type:size}.link-preview-sharp img{height:min(100cqh, calc(100cqw / var(--ratio)));width:auto;aspect-ratio:var(--ratio);border-radius:var(--radius-card-image);outline:1px solid var(--image-edge);outline-offset:-1px;display:block;box-shadow:0 12px 32px -16px #00000073}.link-preview-plate{z-index:3;align-items:center;gap:var(--space-3);border:1px solid var(--glass-edge);background:var(--plate);-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%);box-shadow:inset 0 1px 0 var(--glass-rim), 0 8px 24px -12px #00000059;color:var(--plate-ink);border-radius:999px;padding:6px 6px 6px 14px;display:inline-flex;position:absolute;bottom:12px;left:12px}.link-preview-url{font-size:var(--text-meta);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight)}.link-preview-cap{border:1px solid var(--ink-14);background-color:var(--surface);width:28px;height:28px;color:var(--ink);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px var(--ink-10), 0 4px 10px -3px var(--ink-18);border-radius:999px;place-items:center;display:grid}@media (prefers-reduced-motion:reduce){.link-preview{transition:none}.link-preview:hover{transform:none}}
.wave-hand{color:var(--ink);place-items:center;margin-left:6px;margin-right:-2px;display:inline-grid}.wave-hand svg{transform-origin:55% 90%;filter:drop-shadow(0 1px 0 var(--cap-rim));display:block}.site-header-button:hover .wave-hand svg,.site-header-button:focus-visible .wave-hand svg,.site-footer-button:hover .wave-hand svg,.site-footer-button:focus-visible .wave-hand svg{animation:wave-hand .7s var(--ease-ui) 1}@keyframes wave-hand{0%{transform:rotate(0)}25%{transform:rotate(12deg)}50%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.site-header-button:hover .wave-hand svg,.site-header-button:focus-visible .wave-hand svg,.site-footer-button:hover .wave-hand svg,.site-footer-button:focus-visible .wave-hand svg{animation:none}}
.orb-svg{overflow:visible}.orb-label{text-align:center;font-size:clamp(12px,3.2cqw,17px);font-weight:var(--weight-medium);letter-spacing:.01em;color:var(--ink-muted);pointer-events:none;position:absolute;bottom:9%;left:0;right:0}.orb{container-type:inline-size}.orb.is-playing .orb-label{animation:2.4s ease-in-out infinite orb-label-pulse}@keyframes orb-label-pulse{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}@media (prefers-reduced-motion:reduce){.orb .orb-label{animation:none}}
