.hero{min-height:100svh;min-height:round(down, calc(100svh + .1px), var(--minor));box-sizing:border-box;padding-block:calc(var(--minor) * 3);row-gap:var(--minor);--hero-base:64px;--hero-cap:6.2cqi;display:grid;position:relative;container-type:inline-size}.h-display{font-family:var(--hero-face);color:var(--text)}.hero-title{font-size:min(calc(var(--hero-base) * var(--hero-size,1)), var(--hero-cap));line-height:1.05;line-height:max(round(nearest, 1.06em, var(--minor)), round(up, .98em, var(--minor)));letter-spacing:-.03em}.kinetic{font-weight:var(--rest,560)}.kinetic .line{white-space:nowrap;display:block}.kinetic .w{white-space:nowrap}.w-head{margin-inline-end:.22em}.w-head .hero-icon{margin-inline-start:0}.hero-meta{color:var(--muted);text-wrap:balance}.hero-why{max-width:26em}.kinetic .hero-icon{font-size:calc(var(--icon-size,.78) * 1em);vertical-align:-.0555556em;margin-inline-start:.32em}.kinetic .hero-icon[data-icon=pen]{vertical-align:-.111111em}[data-layout=centre]{text-align:center;align-content:center;justify-items:center}:is([data-layout=one-line],[data-layout=short]){text-align:center;--hero-base:40px;--hero-cap:3.3cqi;align-content:center;justify-items:center}:is([data-layout=one-line],[data-layout=short]) .line{display:inline}[data-layout=bottom-left]{align-content:end;align-items:end;column-gap:var(--space-l);--hero-base:68px;grid-template-columns:minmax(0,1fr) auto}[data-layout=bottom-left] .hero-meta{text-align:end}[data-layout=bottom-left] :is(.hero-title,.hero-meta){text-box:trim-end cap alphabetic}[data-layout=bottom-left] .hero-meta{line-height:var(--minor)}[data-layout=short]{--hero-base:48px;--hero-cap:3.96cqi;min-height:54svh;min-height:round(down, calc(54svh + .1px), var(--minor))}.hero[data-layout=short]+.projects{margin-top:40px}[data-layout=tall]{grid-template-rows:calc(100svh - var(--minor) * 6) minmax(0, 1fr) auto;min-height:150svh;min-height:round(down, calc(150svh + .1px), var(--minor));text-align:center;--hero-base:80px;--hero-cap:7.4cqi;justify-items:center}[data-layout=tall] .hero-title{grid-row:1;align-self:center}[data-layout=tall] .hero-meta{grid-row:3;align-self:end}:is([data-layout=dots],[data-layout=wave]){text-align:center;align-content:center;justify-items:center}:is([data-layout=dots],[data-layout=wave])>:not(.hero-field){z-index:1;position:relative}.hero-field{pointer-events:none;-webkit-user-select:none;user-select:none;width:100vw;height:100%;position:absolute;top:0;bottom:0;left:50%;translate:-50%}[data-layout=huge]{--hero-base:160px;--hero-cap:9.4cqi;align-content:center;justify-items:start}[data-layout=huge] .hero-title{letter-spacing:-.05em;line-height:.98;line-height:max(round(nearest, 1em, var(--minor)), round(up, .94em, var(--minor)))}@media (width>=768px) and (width<=991px){.hero[data-layout=short]{--hero-base:64px;--hero-cap:7.4cqi}}@media (width<=767px){.hero{padding-block:calc(var(--minor) * 4) calc(var(--minor) * 2)}.hero[data-layout]{--hero-cap:6.6cqi}.hero[data-layout=short]{--hero-base:60px;--hero-cap:13cqi}[data-layout=short] .kinetic .line{white-space:normal;text-wrap:balance}.hero[data-layout=huge]{--hero-cap:9cqi}:is([data-layout=one-line],[data-layout=short]) .line{display:block}[data-layout=bottom-left]{grid-template-columns:minmax(0,1fr)}[data-layout=bottom-left] .hero-meta{text-align:start}[data-layout=tall]{grid-template-rows:calc(100svh - var(--minor) * 8) minmax(0, 1fr) auto}}.about{row-gap:var(--major);margin-top:var(--section-gap);padding-bottom:calc(var(--major) * 2);scroll-margin-top:var(--major);grid-template-columns:minmax(0,1fr);display:grid;container:about/inline-size}.about .about-facts{justify-content:space-between}.about .about-nb{white-space:nowrap}.about .about-flag{vertical-align:-.3em;width:1.25em;height:1.25em;margin-inline-start:.1em}.about .about-links{gap:0 var(--minor);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.about .about-address{width:max-content;font-family:var(--atkinson);font-weight:600;font-size:calc(100cqi / var(--about-ink,9.459));letter-spacing:-.02em;white-space:nowrap;color:var(--text);transition:color var(--hover-dur) var(--hover-ease);margin-inline-start:calc(var(--about-lsb,.022) * -1em);line-height:1.1;text-decoration:none;display:block;position:relative}@supports (text-box:trim-both cap alphabetic){.about .about-address{text-box:trim-both cap alphabetic;line-height:1}.about .about-address:before{content:"";position:absolute;inset:-.14em 0 -.26em}.about .about-address:focus-visible{outline-offset:.26em;border-radius:.1em}}@media (hover:hover) and (pointer:fine){.about .about-address:hover{color:var(--accent)}}@container about (width<=1099px){.about .about-edu .about-nb:first-child{display:block}.about .about-facts{column-gap:clamp(var(--minor), (100cqi - 740px) / 2, calc(var(--minor) * 3))}}@container about (width<=799px){.about .about-facts{justify-content:flex-start;gap:var(--minor);flex-flow:column}}.menu{z-index:var(--z-menu);box-sizing:border-box;padding:calc(var(--minor) * 5) var(--gutter) calc(var(--minor) * 1.5);background:color-mix(in srgb, var(--bg) calc(var(--menu-white,.6) * 100%), transparent);-webkit-backdrop-filter:blur(var(--menu-blur,24px)) saturate(1.6);backdrop-filter:blur(var(--menu-blur,24px)) saturate(1.6);flex-direction:column;display:flex;position:fixed;inset:0}@media (prefers-reduced-transparency:reduce){.menu{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}}.menu-nav{flex-direction:column;flex:1;justify-content:space-between;min-height:0;display:flex}.menu-main,.menu-more{margin:0;padding:0;list-style:none}.menu-line{font-size:min(calc(var(--menu-size,14) * 1vw), var(--menu-max,76px));margin-block-end:calc(var(--menu-gap,0px) - .22em);padding-block:.06em .16em;overflow:clip}.menu-word{letter-spacing:var(--menu-track,-.04em);color:var(--text);white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:color var(--hover-dur) var(--hover-ease);will-change:transform;align-items:center;gap:.2em;line-height:1;text-decoration:none;display:inline-flex}.menu-word:active{color:var(--accent)}@media (hover:hover) and (pointer:fine){.menu-word:hover{color:var(--accent)}}.menu-word:focus-visible{outline:var(--focus-ring);outline-offset:4px;border-radius:8px}.menu-pill{border-radius:var(--radius-full);background:var(--accent);flex:none;width:.2em;height:.32em}.menu-more{column-gap:var(--minor);flex-wrap:wrap;display:flex}.menu-more a{min-height:44px;font-family:var(--atkinson);font-weight:600;font-size:var(--size-m);letter-spacing:0;color:var(--muted);-webkit-tap-highlight-color:transparent;transition:color var(--hover-dur) var(--hover-ease);align-items:center;text-decoration:none;display:inline-flex}.menu-more a:active{color:var(--text)}@media (hover:hover) and (pointer:fine){.menu-more a:hover{color:var(--text)}}.tags{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.tag{height:var(--tag-h,24px);border-radius:var(--tag-radius,10px);color:var(--text);font-family:var(--atkinson);font-size:var(--nav-size,15px);letter-spacing:-.01em;white-space:nowrap;background:#fff;align-items:center;padding-inline:10px;font-weight:500;line-height:1;display:inline-flex}.tags-on{z-index:2;top:calc(var(--media-radius,28px) - var(--tag-radius,10px));right:calc(var(--media-radius,28px) - var(--tag-radius,10px));pointer-events:none;flex-direction:column;align-items:flex-end;position:absolute}.tags-on .tag{box-shadow:0 1px 3px rgb(0 0 0/var(--tag-shadow,.06)), 0 4px 10px -4px rgb(0 0 0/calc(var(--tag-shadow,.06) * 1.4));transform-origin:100% 0;opacity:0;filter:blur(2px);transition:opacity .12s var(--card-ease), transform .12s var(--card-ease), filter .12s var(--card-ease);transform:translateY(-4px)scale(.94)}@media (hover:hover) and (pointer:fine){:is(.card,.pg-tile):is(:hover,:focus-visible) .tags-on .tag{opacity:1;filter:none;transition-duration:.26s;transition-delay:calc(var(--i,0) * var(--tag-stagger,60ms));transform:none}}@media (prefers-reduced-motion:reduce){.tags-on .tag{filter:none;transform:none}}.playground{margin-top:var(--section-gap);scroll-margin-top:var(--major)}.pg-warp{margin-top:calc(var(--major) * 3);margin-bottom:calc(var(--major) * 3);position:relative}.pg-warp-link{background:var(--bg);color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none;display:block;position:absolute;inset:0}.pg-warp-link:focus-visible{outline:none}.pg-warp-canvas{opacity:.3;width:100%;height:100%;display:block;position:absolute;inset:0}.pg-warp-flat{position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 45%);mask-image:linear-gradient(#0000,#000 45%)}.pg-warp-flat-card{position:absolute}.pg-warp-flat-card>.media{width:100%;height:100%}.pg-warp-grain{z-index:2;pointer-events:none;opacity:.15;mix-blend-mode:soft-light;background-repeat:repeat;background-size:76.8px;position:absolute;inset:0}.pg-big{z-index:1;letter-spacing:-.02em;white-space:nowrap;color:var(--text);opacity:0;transition:opacity .42s var(--hover-ease), color var(--hover-dur) var(--hover-ease);font-size:min(88px,17vw);line-height:1;position:absolute;top:-.818182em;left:50%;translate:-50%}.pg-warp-link[data-shown] .pg-big{opacity:1;transition-delay:.16s,0s}@media (hover:hover) and (pointer:fine){.pg-warp-link:hover .pg-big{color:var(--accent)}}.pg-warp-link:focus-visible .pg-big{color:var(--accent);outline:2px solid var(--accent);outline-offset:8px;border-radius:8px}.pg-page{--pg-edge:24px;padding-top:calc(var(--major) * 2);padding-bottom:calc(var(--major) * 2)}@media (width<=991px){.pg-page{--pg-edge:var(--gutter)}}@media (width<=767px){.pg-page{--column-gap:10px;--row-gap:10px;--media-radius:18px}}.pg-page-title{width:calc(100% - 2 * var(--pg-edge));text-align:center;margin:0 auto}.pg-grid{grid-template-columns:repeat(var(--columns,3), minmax(0, 1fr));align-items:start;column-gap:var(--column-gap);width:calc(100% - 2 * var(--pg-edge));margin:var(--major) auto calc(var(--row-gap) * -1);display:grid}.pg-column{min-width:0}.piece{padding-bottom:var(--row-gap)}.pg-tile{width:100%;height:round(nearest, calc(100cqw / var(--ratio)), var(--minor));border-radius:var(--media-radius);color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;display:block;position:relative}@supports not (height:round(nearest, 1px, 1px)){.pg-tile{height:auto;aspect-ratio:var(--ratio)}}.pg-tile>.media{width:100%;height:100%;transition:filter var(--card-dur,.22s) var(--card-ease,cubic-bezier(.23, 1, .32, 1)), transform var(--card-dur,.22s) var(--card-ease,cubic-bezier(.23, 1, .32, 1));position:absolute;inset:0;transform:translateZ(0)}@media (hover:hover) and (pointer:fine){.pg-tile:hover>.media{filter:brightness(var(--card-dim,.96));transform:translateZ(0) scale(var(--card-grow,1.01))}}.pg-tile:active>.media{transform:translateZ(0) scale(var(--card-press,.995));transition-duration:90ms}@media (hover:none),(pointer:coarse){.pg-tile:active>.media{transition:transform .16s var(--card-ease) 50ms;transform:translateZ(0)scale(.97)}}.pg-tile:focus-visible{outline:var(--focus-ring);outline-offset:4px}@media (prefers-reduced-motion:reduce){.pg-tile:is(:hover,:active)>.media{transform:translateZ(0)}}.pg-piece[data-lifted]{z-index:calc(var(--z-menu) + 1);position:relative}.pg-piece[data-lifted] .tags-on{display:none}.pg-piece[data-lifted] .pg-tile>.media{background-color:color-mix(in srgb, var(--text) 6%, var(--bg));filter:none;transition:filter var(--card-dur,.22s) var(--card-ease,cubic-bezier(.23, 1, .32, 1));transform:translateZ(0)}.pg-focus{z-index:var(--z-menu);position:fixed;inset:0}.pg-focus-wash{background:color-mix(in srgb, var(--bg) calc(var(--focus-white,.8) * 100%), transparent);-webkit-backdrop-filter:blur(var(--focus-blur,6px));backdrop-filter:blur(var(--focus-blur,6px));opacity:0;position:absolute;inset:0}.pg-focus-note{box-sizing:border-box;align-items:center;gap:var(--space-m);min-height:calc(var(--btn-h) + 24px);border-radius:var(--media-radius);background:var(--bg);box-shadow:0 0 0 1px var(--hairline);opacity:0;visibility:hidden;padding:12px 12px 12px 24px;display:flex;position:absolute}.pg-focus-text{row-gap:var(--space-xs);flex:auto;justify-items:start;min-width:0;max-width:60ch;display:grid}.pg-focus-text .tag{background:var(--control)}.pg-focus-text p{font-size:var(--size-m);font-weight:var(--body-weight);line-height:var(--leading-m,1.5);letter-spacing:var(--track-m,.01em);color:var(--text);text-wrap:pretty;margin:0}.pg-focus-note .btn{flex:none;margin-inline-start:auto}@media (hover:hover) and (pointer:fine){.pg-tile{cursor:zoom-in}.pg-piece[data-lifted] .pg-tile,.pg-focus-wash{cursor:zoom-out}}.arrow-live>.btn{z-index:1;position:relative}.arrow-slot{width:var(--btn-h);height:var(--btn-h);flex:none;position:relative}.arrow-blob{background:var(--accent);color:var(--bg);margin:auto;position:absolute;inset:0;overflow:hidden}.arrow-blob>.glyph{width:var(--btn-icon);height:var(--btn-icon);margin:auto;position:absolute;inset:0}.cs>.strip-wrap{max-width:none}.strip-wrap{position:relative}.strip{overscroll-behavior-x:contain;scrollbar-width:none;-webkit-tap-highlight-color:transparent;width:100vw;margin-block:-8px;margin-inline-start:calc(50% - 50vw);padding-block:8px;position:relative;overflow:auto hidden}.strip::-webkit-scrollbar{display:none}.strip[data-snap]{scroll-snap-type:x mandatory}.strip:focus{outline:none}.strip-track{box-sizing:content-box;width:max-content;display:flex}.strip-item{will-change:opacity;flex:none;margin:0}.strip[data-snap=start] .strip-item{scroll-snap-align:start;scroll-snap-stop:always}.strip[data-snap=middle] .strip-item{scroll-snap-align:center;scroll-snap-stop:always}.strip-media{width:100%;height:100%}.strip iframe{pointer-events:none}.strip-caption{margin-top:var(--card-top);color:var(--muted);padding-inline-start:6px}.strip:focus-visible .strip-item[data-focus]{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--media-radius)}.strip-dots{margin-top:var(--minor);gap:6px;padding-inline-start:2px;display:none}.strip-dot{border-radius:var(--radius-full);background:color-mix(in srgb, var(--text) 18%, transparent);width:6px;height:6px;transition:width .32s var(--card-ease), background-color .32s var(--card-ease);flex:none}.strip-dot[data-on]{background:var(--accent);width:18px}.strip-arrows{gap:var(--space-xs);margin-top:var(--minor);display:flex}.strip-arrows .btn-round{width:36px;height:36px}.strip-arrows .btn .glyph{width:16px;height:16px}.strip-arrows .btn[aria-disabled=true]{color:var(--muted);cursor:default}.strip-back{transform:scaleX(-1)}@media (hover:hover) and (pointer:fine){.strip-arrows .btn[aria-disabled=true]:hover{background:var(--control)}}@media (hover:none),(pointer:coarse){.strip-arrows{display:none}.strip-dots{display:flex}}@media (prefers-reduced-motion:reduce){.strip-dot{transition:none}}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/atkinson-hyperlegible-next-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--sf:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro", system-ui, "Segoe UI", Roboto, sans-serif;--atkinson:"Atkinson Hyperlegible Next", var(--sf);--minor:24px;--major:72px;--column:1240px;--side-margin:136px;--section-gap:144px;--row-gap:24px;--column-gap:12px;--card-top:10px;--card-gap:4px;--media-radius:28px;--bento-gap:8px;--cs-head-gap:12px;--cs-title-size:42px;--cs-statement-size:42px;--cs-statement-leading:1.05;--cs-statement-tracking:-.015em;--nav-row:24px;--nav-size:15px;--size-s:13px;--size-m:18px;--size-l:22px;--title-weight:600;--body-weight:500;--track-m:.01em;--leading-m:1.5;--cs-measure:600px;--cs-media:900px;--cs-section:var(--section-gap);--cs-block:calc(var(--minor) * 2);--cs-para:var(--minor);--cs-media-gap:var(--minor);--cs-title-gap:var(--minor);--cs-sub-gap:10px;--cs-text-measure:28em;--hover-dur:.2s;--hover-ease:cubic-bezier(.16, 1, .3, 1);--card-dur:.22s;--card-ease:cubic-bezier(.23, 1, .32, 1);--card-grow:1.01;--card-dim:.96;--card-press:.995;--press-scale:.96;--speed:1;--btn-h:44px;--btn-pad:19px;--btn-size:16px;--btn-icon:20px;--btn-face:var(--atkinson);--btn-weight:600;--glass-opacity:.22;--glass-blur:48px;--glass-saturate:1.5;--image-outline:#0000000f;--space-xs:8px;--space-s:12px;--space-m:16px;--space-l:24px;--radius-m:12px;--radius-full:9999px;--bg:#fcfcfc;--surface:#f8f8f8;--text:#171717;--muted:#8f8f8f;--accent:#514bb9;--control:color-mix(in srgb, var(--text) 7%, var(--bg));--control-hover:color-mix(in srgb, var(--text) 11%, var(--bg));--glass:color-mix(in srgb, color-mix(in srgb, var(--text) min(100%, 7% / var(--glass-opacity)), var(--bg)) calc(var(--glass-opacity) * 100%), transparent);--glass-hover:color-mix(in srgb, color-mix(in srgb, var(--text) min(100%, 11% / max(var(--glass-opacity), .11)), var(--bg)) calc(max(var(--glass-opacity), .11) * 100%), transparent);--edge:color-mix(in srgb, var(--text) 15%, transparent);--hairline:color-mix(in srgb, var(--text) 10%, transparent);--placeholder:color-mix(in srgb, var(--text) 6%, transparent);--focus-ring:2px solid var(--accent);--z-chrome:10;--z-menu:20;--z-menu-button:30;--z-grid:40;--z-skip:50;--ease-out-expo:cubic-bezier(.19, 1, .22, 1);--ease-out-quad:cubic-bezier(.25, .46, .45, .94);--ico-flash:var(--accent);--spark-flash:currentColor;--grid-minor:#ff5c8a29;--grid-major:#ff5c8a80;--gutter:var(--side-margin,136px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none}:root[data-icon-colour=ink]{--ico-flash:currentColor}@media (width<=991px){:root{--gutter:20px}}@media (width>=768px) and (width<=991px){:root{--gutter:32px}}html{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{font-family:var(--sf);font-weight:var(--body-weight,500);font-size:var(--size-m);line-height:var(--minor);letter-spacing:var(--track-m);margin:0}:where(h1,h2,h3,h4,p,ul,figure){margin:0}:where(h1,h2,h3,h4){font-size:inherit;line-height:inherit;font-weight:inherit}a{color:inherit}:focus-visible{outline:var(--focus-ring);outline-offset:3px}::selection{background:var(--accent);color:#fff}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.column{width:min(var(--column), 100% - 2 * var(--gutter));margin-inline:auto}.page{position:relative}.rhythm-grid{z-index:var(--z-grid);pointer-events:none;background-image:repeating-linear-gradient(to bottom, var(--grid-major) 0 1px, transparent 1px var(--major)), repeating-linear-gradient(to bottom, var(--grid-minor) 0 1px, transparent 1px var(--minor));position:absolute;inset:0}.t-title,.cs-title,.cs-sub,.small{line-height:var(--minor);line-height:round(up, 1em, var(--minor))}.t-title{font-family:var(--atkinson);font-weight:var(--title-weight);font-size:var(--size-l);letter-spacing:0;color:var(--text)}.cs :is(p,li),.about-body{line-height:var(--leading-m,1.5)}.cs-sub,.strong{font-family:var(--atkinson);font-weight:var(--title-weight);font-size:var(--size-m);color:var(--text)}.small,.labels a,.piece figcaption,.figure figcaption,.notice{font-size:var(--size-s);letter-spacing:.01em}.muted{color:var(--muted)}:where(h1,h2,h3,h4,.t-title):not(.kinetic){text-wrap:balance}.card-text p,.cs-summary,.cs-intro,figcaption{text-wrap:pretty}.moving,.pressable,.icon-swap-layer{will-change:transform}.pressable,.labels a{-webkit-user-select:none;user-select:none}.pressable{transition:scale .2s ease-out, background-color var(--hover-dur) var(--hover-ease)}.pressable:active{scale:var(--press-scale)}@media (prefers-reduced-motion:reduce){.pressable:active{scale:none}}.btn{justify-content:center;align-items:center;gap:var(--space-xs);height:var(--btn-h);padding:0 var(--btn-pad);border-radius:var(--radius-full);color:var(--text);background:var(--control);font-family:var(--btn-face);font-weight:var(--btn-weight);font-size:var(--btn-size);letter-spacing:0;white-space:nowrap;cursor:pointer;border:0;line-height:1;text-decoration:none;display:inline-flex}.btn-group{align-items:center;gap:var(--space-xs);color:var(--text);text-decoration:none;display:inline-flex}.btn-round{width:var(--btn-h);padding:0}.btn :is(svg,.glyph,.icon-swap){width:var(--btn-icon);height:var(--btn-icon);flex:none}.btn{transition:background-color var(--hover-dur) var(--hover-ease), color var(--hover-dur) var(--hover-ease), box-shadow var(--hover-dur) var(--hover-ease)}.btn-float{background:var(--glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}@media (prefers-reduced-transparency:reduce){:root{--glass:var(--control);--glass-hover:var(--control-hover)}.btn-float{-webkit-backdrop-filter:none;backdrop-filter:none}}.skip-link{inset-inline-start:var(--space-m);top:var(--space-m);z-index:var(--z-skip);padding:var(--space-xs) var(--space-s);border-radius:var(--radius-m);background:var(--bg);position:fixed;translate:0 -200%}.skip-link:focus-visible{translate:none}.labels{z-index:var(--z-chrome);inset-inline-start:24px;top:calc(50svh - var(--nav-row) * var(--count,3) / 2);top:round(down, calc(50svh - var(--nav-row) * var(--count,3) / 2 + .1px), var(--minor));justify-items:start;display:grid;position:fixed}.labels .row{height:var(--nav-row);align-items:center;display:flex;position:relative}.labels a{font-family:var(--atkinson);font-weight:500;font-size:var(--nav-size);letter-spacing:-.01em;line-height:var(--nav-row);color:var(--text);white-space:nowrap;transition:color var(--hover-dur) var(--hover-ease);text-decoration:none;display:block;position:relative}.labels .row[data-state=idle] a{color:var(--muted)}.labels a:before{content:"";position:absolute;inset:0 -12px 0 -24px}.labels :is(.bar,.pill){inset-inline-start:0;background:var(--accent);pointer-events:none;border-radius:3px;position:absolute;top:0}section[tabindex="-1"]:focus{outline:none}@media (hover:hover) and (pointer:fine){.labels .row[data-state=hover] a{color:var(--text)}.hero-meta a:hover{color:var(--accent)}.btn:hover,.btn-group:hover .btn{background:var(--control-hover)}.btn-float:hover,.btn-group:hover .btn-float{background:var(--glass-hover)}.btn-round:not([aria-disabled=true]):not(.btn-group .btn-round):hover{color:var(--accent)}}.menu-button{top:var(--minor);z-index:var(--z-menu-button);display:none;position:fixed;inset-inline-end:var(--gutter)}.icon-swap{width:var(--minor);height:var(--minor);place-items:center;display:grid}.icon-swap-layer{grid-area:1/1;place-items:center;display:grid}.glyph{background:currentColor;flex:none;width:1em;height:1em;-webkit-mask:none 50%/contain no-repeat;mask:none 50%/contain no-repeat}@media (width<=991px){.labels{display:none}.menu-button{display:inline-flex}}.notice{color:var(--muted);padding-top:calc(var(--major) * 2)}.notice-home{margin-top:var(--minor)}.notice-fixed{inset-inline-start:24px;bottom:var(--minor);padding:0;position:fixed}.media{border-radius:var(--media-radius);background:var(--placeholder);isolation:isolate;position:relative;overflow:hidden;container-type:size}.media:after{content:"";z-index:1;border-radius:inherit;outline:1px solid var(--image-outline);outline-offset:-1px;pointer-events:none;position:absolute;inset:0}.media[data-loading]:before{content:"";background:linear-gradient(100deg, transparent 32%, color-mix(in srgb, var(--bg) 60%, transparent) 50%, transparent 68%);pointer-events:none;animation:2.2s linear .4s infinite sheen;position:absolute;inset:0;translate:-100%}@keyframes sheen{to{translate:100%}}@media (prefers-reduced-motion:reduce){.media[data-loading]:before{animation:none}}.fill{object-fit:cover;pointer-events:none;border:0;width:100%;height:100%;display:block;position:absolute;inset:0}iframe.fill{width:max(100cqw + 6px, (100cqh + 6px) * var(--video));height:max(100cqh + 6px, (100cqw + 6px) / var(--video));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;inset:50% auto auto 50%;translate:-50% -50%}.card,.piece,.figure{container-type:inline-size}@supports (height:round(nearest, 1px, 1px)){:is(.card,.piece,.figure)>.media{height:round(nearest, calc(100cqw / var(--ratio)), var(--minor));aspect-ratio:auto!important}}@property --in{syntax:"<number>";inherits:true;initial-value:0}@property --out{syntax:"<number>";inherits:true;initial-value:0}@property --flk{syntax:"<number>";inherits:true;initial-value:1}@keyframes glowIn{0%{--in:0}to{--in:1}}@keyframes glowOut{0%{--out:0}to{--out:1}}@keyframes glowFlicker{0%{--flk:1}9%{--flk:.82}15%{--flk:1}24%{--flk:.92}33%{--flk:.78}38%{--flk:1}50%{--flk:.9}57%{--flk:1}68%{--flk:.84}74%{--flk:.98}86%{--flk:.9}to{--flk:1}}.hero-icon{vertical-align:-.14em;width:1em;height:1em;color:var(--mark-ink,currentColor);--play:.98s;--lit:calc(var(--in) * (1 - var(--out)));--glow:calc(var(--lit) * (1 - var(--flicker,.15) * (1 - var(--flk))));--k:calc(var(--lit) * var(--squint-amt,.65));flex:none;display:inline-flex}.hero-icon[data-icon=designer]{--play:var(--designer-play,1.1s)}.hero-icon .ico{transform-origin:50%;width:1em;height:1em;display:block;overflow:visible}.hero-icon .ico *{transform-box:fill-box;transform-origin:50%}.hero-icon .ico-figure path{fill-opacity:1}:root[data-icon-fill=two] .hero-icon :is(.ico-body,.ico-face,.ico-pen){fill-opacity:.4}:root[data-icon-fill=one] .hero-icon .ico-figure{opacity:var(--icon-tone,.4)}:root[data-icon-fill=one] .hero-icon :is(.ico-brim,.ico-laptop){stroke:var(--ico-knock,var(--bg));stroke-width:.9px;stroke-linejoin:round;paint-order:stroke}:root[data-icon-fill=one] .hero-icon .ico-spark{fill-opacity:var(--icon-tone,.4)}@keyframes icoLift{0%{transform:scale(1)}16%{transform:scale(1.1)}72%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes icoTint{0%,to{color:currentColor}18%,78%{color:var(--ico-flash)}}.hero-icon.is-playing{animation:icoLift calc(.98s / var(--speed,1)) var(--ease-out-expo), icoTint calc(var(--play) / var(--speed,1)) linear}:root[data-sequence=cooked] .hero-icon[data-icon=designer]{transform:scale(calc(1 + (var(--lift,1.06) - 1) * var(--lit)))}:root[data-sequence=cooked] .hero-icon[data-icon=designer].is-playing{animation:glowIn calc(var(--glow-in,.24s) / var(--speed,1)) var(--glow-in-ease,var(--ease-out-expo)) calc(var(--glow-delay,0s) / var(--speed,1)) both, glowOut calc(var(--glow-out,.45s) / var(--speed,1)) var(--glow-out-ease,ease-in-out) calc((var(--glow-delay,0s) + var(--glow-in,.24s) + var(--glow-hold,.5s)) / var(--speed,1)) both, glowFlicker calc((var(--glow-in,.24s) + var(--glow-hold,.5s) + var(--glow-out,.45s)) / var(--speed,1)) linear calc(var(--glow-delay,0s) / var(--speed,1)) both}:root[data-sequence=cooked][data-mark-colour=accent] .hero-icon[data-icon=designer]{color:color-mix(in srgb, var(--ico-flash) calc(var(--lit) * 100%), var(--mark-ink,currentColor))}.hero-icon .ico-lit{opacity:calc(var(--glow) * var(--figure-light,.8))}.hero-icon .ico-glow{opacity:calc(var(--glow) * var(--glow-strength,.5))}.hero-icon .ico-beam{transform-box:view-box;transform:scale(calc(var(--beam-grow,.7) + (1 - var(--beam-grow,.7)) * var(--in)));opacity:calc(var(--glow) * var(--beam-strength,.25))}.hero-icon .ico-rim{opacity:calc(var(--glow) * var(--rim-strength,.9))}.hero-icon .ico-stop{stop-color:var(--light,var(--accent))}.hero-icon .ico-grad--figure .ico-stop{stop-color:var(--refl-light,var(--light,var(--accent)))}.hero-icon .ico-stop--near{stop-opacity:1}.hero-icon .ico-stop--mid{stop-opacity:var(--falloff,.5)}.hero-icon .ico-stop--far{stop-opacity:0}.hero-icon[data-icon=designer] :is(.ico-head,.ico-eyes){transform-box:view-box;transform-origin:8px 9px}.hero-icon[data-icon=designer] :is(.ico-laptop,.ico-air,.ico-rim){transform-box:view-box;transform-origin:11.494px 17px}:root[data-head=recoil] .hero-icon[data-icon=designer] :is(.ico-head,.ico-eyes){transform:rotate(calc(var(--lit) * var(--head-deg,4) * -1deg))}:root[data-head=lean] .hero-icon[data-icon=designer] :is(.ico-head,.ico-eyes){transform:rotate(calc(var(--lit) * var(--head-deg,4) * 1deg))}@keyframes icoTilt{0%{transform:rotate(0)}35%{transform:rotate(calc(var(--head-deg,5) * -1deg))}70%{transform:rotate(calc(var(--head-deg,5) * .4deg))}to{transform:rotate(0)}}@keyframes icoNod{0%{transform:rotate(0)}18%{transform:rotate(calc(var(--head-deg,5) * -2.4deg))}38%{transform:rotate(calc(var(--head-deg,5) * 1.6deg))}56%{transform:rotate(calc(var(--head-deg,5) * -1deg))}74%{transform:rotate(calc(var(--head-deg,5) * .4deg))}to{transform:rotate(0)}}:root[data-head=tilt] .hero-icon[data-icon=designer].is-playing :is(.ico-head,.ico-eyes){animation:icoTilt calc(1.1s / var(--speed,1)) cubic-bezier(.645, .045, .355, 1)}:root[data-head=nod] .hero-icon[data-icon=designer].is-playing :is(.ico-head,.ico-eyes){animation:icoNod calc(.98s / var(--speed,1)) cubic-bezier(.645, .045, .355, 1)}@keyframes icoHop{0%{transform:translateY(0)scale(1)}30%{transform:translateY(calc(var(--hop,1) * -.9px)) scale(calc(1 + .04 * var(--hop,1)), calc(1 - .04 * var(--hop,1)))}60%{transform:translateY(0) scale(calc(1 - .02 * var(--hop,1)), calc(1 + .02 * var(--hop,1)))}to{transform:translateY(0)scale(1)}}.hero-icon[data-icon=designer].is-playing :is(.ico-laptop,.ico-air,.ico-rim){animation:icoHop calc(.52s / var(--speed,1)) var(--ease-out-quad) calc(.14s / var(--speed,1))}:root[data-sequence=cooked] .hero-icon[data-icon=designer].is-playing :is(.ico-laptop,.ico-air,.ico-rim){animation-delay:calc(var(--glow-delay,0s) / var(--speed,1))}.hero-icon .ico-eyes{translate:calc((var(--look-x,0) + var(--lit) * var(--glow-look-x,0)) * 1px) calc((var(--look-y,0) + var(--lit) * var(--glow-look-y,0)) * 1px)}.hero-icon .ico-eye{transform:rotate(var(--eye-tilt,0deg)) scale(calc(var(--eye-x,1) * (1 + .27 * var(--k))), calc(var(--eye-y,1) * (1 - var(--k)))) rotate(calc(-1 * var(--eye-tilt,0deg)))}.hero-icon .ico-eye ellipse{transform-box:view-box;transform-origin:0 0;fill:var(--ico-knock,var(--bg))}:root[data-eyes=dark] .hero-icon .ico-eye ellipse{fill:currentColor;fill-opacity:.85}:root[data-eyes=off] .hero-icon .ico-eyes{display:none}@keyframes icoSpark{0%{transform:scale(1)rotate(0)}24%{fill-opacity:1;fill:var(--spark-flash);transform:scale(.28)rotate(-40deg)}58%{transform:scale(var(--spark-burst,1.32)) rotate(14deg);fill-opacity:1;fill:var(--spark-flash)}to{transform:scale(1)rotate(0)}}@keyframes icoCook{0%{opacity:0;transform:translate(calc(var(--fx) * var(--spark-fly,.7) * 1px), calc(var(--fy) * var(--spark-fly,.7) * 1px)) scale(0) rotate(-60deg)}45%{opacity:1;transform:translate(0, 0) scale(var(--spark-burst,1.3)) rotate(12deg)}72%{opacity:1;transform:translate(0)scale(1)rotate(0)}to{opacity:0;transform:translate(0)scale(.4)rotate(0)}}.hero-icon[data-icon=designer] .ico-spark--a{--fx:11.9;--fy:2.3;--i:2;--j:0}.hero-icon[data-icon=designer] .ico-spark--b{--fx:-1.7;--fy:4.2;--i:0;--j:1}.hero-icon[data-icon=designer] .ico-spark--c{--fx:-.45;--fy:8.95;--i:1;--j:2}.hero-icon[data-icon=designer].is-playing .ico-spark{animation:icoSpark calc(var(--spark-time,.62s) / var(--speed,1)) var(--ease-out-expo) calc((var(--spark-start,80ms) + var(--spark-stagger,90ms) * var(--j)) / var(--speed,1))}:root[data-sparks=play] .hero-icon[data-icon=designer] .ico-spark{opacity:0;fill:var(--ico-flash);fill-opacity:1}:root[data-sparks=play] .hero-icon[data-icon=designer].is-playing .ico-spark{animation-name:icoCook;animation-delay:calc((var(--glow-delay,0s) + var(--spark-start,80ms) + var(--spark-stagger,90ms) * var(--i)) / var(--speed,1))}@keyframes icoPenStroke{0%{transform:translate(0)rotate(0)}34%{transform:translate(-1px,1px)rotate(-4deg)}to{transform:translate(0)rotate(0)}}.hero-icon[data-icon=pen].is-playing .ico-pen{animation:icoPenStroke calc(.78s / var(--speed,1)) cubic-bezier(.645, .045, .355, 1)}.hero-icon[data-icon=pen].is-playing .ico-spark--a{animation:icoSpark calc(.66s / var(--speed,1)) var(--ease-out-expo) calc(90ms / var(--speed,1))}.hero-icon[data-icon=pen].is-playing .ico-spark--b{animation:icoSpark calc(.66s / var(--speed,1)) var(--ease-out-expo) calc(.2s / var(--speed,1))}.hero-icon[data-icon=pen].is-playing .ico-spark--c{animation:icoSpark calc(.56s / var(--speed,1)) var(--ease-out-expo) calc(.3s / var(--speed,1))}@media (prefers-reduced-motion:reduce){.hero-icon,.hero-icon .ico,.hero-icon .ico *{animation:none!important}}.projects{column-gap:var(--column-gap);row-gap:var(--row-gap);margin-top:var(--section-gap);scroll-margin-top:var(--major);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.projects>*{display:grid}.card{-webkit-tap-highlight-color:transparent;transition:transform .2s var(--ease-out-expo);text-decoration:none;display:block;position:relative}.card:active{transform:scale(var(--card-press,.995));transition-duration:90ms}.card>.media{transition:filter var(--card-dur,.22s) var(--card-ease,cubic-bezier(.23, 1, .32, 1)), transform var(--card-dur,.22s) var(--card-ease,cubic-bezier(.23, 1, .32, 1));transform:translateZ(0)}@media (hover:hover) and (pointer:fine){.card:hover>.media{filter:brightness(var(--card-dim,.96));transform:translateZ(0) scale(var(--card-grow,1.01))}}@media (prefers-reduced-motion:reduce){.card:active,.card:hover>.media{transform:none}}.card-text{row-gap:var(--card-gap);padding-top:var(--card-top,var(--minor));padding-inline-start:var(--card-inset,0px);display:grid}@media (hover:hover) and (pointer:fine){.card[data-text=lift]{transition:transform var(--card-lift-dur,.32s) var(--card-lift-ease,cubic-bezier(.33, 1, .68, 1))}.card[data-text=lift]>.card-text>h2{transition:color var(--card-lift-dur,.32s) var(--card-lift-ease,cubic-bezier(.33, 1, .68, 1))}.card[data-text=lift]:is(:hover,:focus-visible){transform:translateY(calc(-1 * var(--card-lift,6px)))}.card[data-text=lift]:is(:hover,:focus-visible)>.card-text>h2{color:var(--accent)}.card[data-text=lift]:active{transform:translateY(calc(-1 * var(--card-lift,6px))) scale(var(--card-press,.995));transition-duration:90ms}}@media (prefers-reduced-motion:reduce){.card[data-text=lift]:is(:hover,:focus-visible,:active){transform:none}}@media (width<=767px){.projects{grid-template-columns:minmax(0,1fr)}}@media (hover:none),(pointer:coarse){.card:active{transition:transform .16s var(--card-ease) 50ms;transform:scale(.97)}}.facts{gap:var(--minor) calc(var(--minor) * 3);flex-wrap:wrap;margin:0;display:flex}.facts dt{color:var(--muted)}.facts dd{color:var(--text);margin:0}.facts a{color:inherit;transition:color var(--hover-dur) var(--hover-ease);text-decoration:none;position:relative}.facts a:before{content:"";position:absolute;inset:-12px -6px}@media (hover:hover) and (pointer:fine){.facts a:hover{color:var(--accent)}}.case{padding-top:calc(var(--major) * 2);padding-bottom:calc(var(--major) * 2)}.back{top:var(--minor);z-index:var(--z-chrome);position:fixed;inset-inline-start:24px}.cs-column{width:min(var(--cs-media), 100% - 2 * var(--gutter));margin-inline:auto}@media (width>=992px){.cs-column{width:min(var(--cs-media), 100% - 2 * max(var(--gutter), 184px))}}.case-head{row-gap:var(--minor);justify-items:start;display:grid}.case-head>.cs-h1+*{margin-top:calc(var(--cs-head-gap) - var(--minor))}.case-head>*{max-width:var(--cs-measure)}.cs-summary,.cs-intro{color:var(--muted)}.case-head .cs-facts{max-width:none;margin-top:var(--minor)}.case-head{container-type:inline-size}.case-head>.cs-h1{max-width:none}.cs-h1{font-family:var(--atkinson);font-weight:var(--title-weight);font-size:max(32px, min(var(--cs-title-size,48px), 5.3cqi));letter-spacing:-.02em;color:var(--text);line-height:1.1}.case[data-title=muted] .cs-tagline{color:var(--muted)}.case[data-title=weight] .cs-name{font-weight:700}.case[data-title=weight] .cs-tagline{font-weight:300}.case[data-title=staggered] .cs-tagline{margin-inline-start:calc(var(--minor) * 3);display:block}.cs-h1.kinetic{text-wrap:balance}.bento{aspect-ratio:31/18;gap:var(--bento-gap);min-height:0;max-height:79svh;margin-top:calc(var(--minor) * 3);grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.bento .tile{height:100%;aspect-ratio:auto!important}.bento .tile-1{grid-area:1/1/span 2/span 2}.bento .tile-2{grid-column:3/span 2}.bento[data-count="1"] .tile-1{grid-column:1/-1}.bento[data-count="2"] .tile-2{grid-row:1/span 2}.bento[data-count="3"] .tile-3{grid-column:3/span 2}.cs-section{margin-top:var(--cs-section);scroll-margin-top:var(--major)}.cs-title{font-family:var(--atkinson);font-weight:500;font-size:var(--size-s);letter-spacing:-.01em;line-height:var(--minor);color:var(--muted);margin-bottom:var(--cs-title-gap)}.case[data-names=title] .cs-title{font-weight:var(--title-weight);font-size:var(--size-l);letter-spacing:0;line-height:round(up, 1em, var(--minor));color:var(--text)}@media (width>=1440px){.case[data-names=margin] .cs-section{position:relative}.case[data-names=margin] .cs-title{top:0;width:200px;margin:0;position:absolute;inset-inline-start:calc(100% + var(--minor) * 2)}.case[data-names=margin] .cs-overview>.cs-title+*{margin-top:0}}@media (width>=992px){.case[data-names=nav] .cs-title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.case[data-names=nav] .cs-overview>.cs-title+*{margin-top:0}}.case-body{container-type:inline-size}.cs-overview>.cs-title{margin-bottom:0}.cs-overview>.cs-title+*{margin-top:var(--cs-title-gap)}.cs-overview>:not(.cs-title)+*{margin-top:var(--cs-block)}.cs-statement{font-family:var(--atkinson);font-weight:var(--title-weight);font-size:max(26px, min(var(--cs-statement-size,48px), 5.3cqi));line-height:var(--cs-statement-leading,1.15);letter-spacing:var(--cs-statement-tracking,-.02em);color:var(--text);text-wrap:balance}.cs-pair .cs-sub{margin-bottom:var(--cs-sub-gap,12px)}.cs{overflow-wrap:break-word}.cs>*{max-width:var(--cs-measure);margin:0}.cs>.figure{max-width:none}.cs>*+*{margin-top:var(--cs-para)}.cs>*+:is(.figure,.strip-wrap),.cs>:is(.figure,.strip-wrap)+*{margin-top:var(--cs-block)}.cs>.figure+.figure{margin-top:var(--cs-media-gap)}.cs>*+.cs-sub{margin-top:var(--cs-block)}.cs>.cs-sub+*{margin-top:var(--cs-sub-gap,12px)}.cs>.cs-sub+:is(.figure,.strip-wrap){margin-top:max(var(--cs-sub-gap,12px), var(--cs-para))}.cs :is(p,li){color:var(--muted)}.cs-sub{font-size:var(--size-l);letter-spacing:0}:is(.cs>.cs-sub+p,.cs-pair .cs-sub+p){line-height:var(--minor)}.cs>:is(p,ul,ol){max-width:var(--cs-text-measure)}.cs :is(p,li){text-wrap:pretty}.cs :is(ul,ol){padding:0;list-style:none}.cs li{padding-inline-start:1.5em;position:relative}.cs li:before{content:"";top:calc(var(--leading-m,1.5) * .5em);background:var(--muted);width:.6em;height:1px;position:absolute;inset-inline-start:.2em}.cs a{color:var(--text);text-underline-offset:.18em;text-decoration-thickness:1px}.cs blockquote{border-inline-start:2px solid var(--edge);margin:0;padding-inline-start:1em}.figure .media{border-radius:var(--media-radius)}.figure figcaption{padding-top:var(--space-xs);color:var(--muted)}.case-next{margin-top:var(--cs-section)}@media (width<=991px){.back{inset-inline-start:var(--gutter)}.case{padding-top:calc(var(--minor) * 5)}@supports (height:round(nearest, 1px, 1px)){.figure>.media{height:max(40svh, round(nearest, calc(100cqw / var(--ratio)), var(--minor)))}}}@media (width<=767px){.bento{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max(calc(var(--minor) * 6), 20svh);aspect-ratio:auto;gap:calc(var(--minor) / 2);max-height:none}.bento[data-count] .tile{border-radius:16px;grid-area:auto}.bento[data-count] .tile-1{grid-area:span 2/1/auto/-1}.bento:is([data-count="2"],[data-count="4"]) .tile-2{grid-column:1/-1}}
