@font-face{font-family:switzer;src:url(../media/Switzer_Variable-s.p.1u_7d0c04lp6s.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:switzer Fallback;src:local(Arial);ascent-override:96.67%;descent-override:24.66%;line-gap-override:8.88%;size-adjust:101.38%}.switzer_8c60c390-module__SW-7CG__className{font-family:switzer,switzer Fallback}.switzer_8c60c390-module__SW-7CG__variable{--font-sans:"switzer", "switzer Fallback"}
:root{--ink:#1d1d1f;--ink-muted:#6e6e73;--rule:#d9d6d6;--surface:#fff;--surface-alt:#f5f5f7;--case-surface:#fff;--case-media:#f6f5f8;--case-blend:multiply;--hero-bg:var(--surface);--hero-ink:var(--ink);--hero-ink-muted:var(--ink-muted);--intro-bg:#141416;--intro-ink:#f1efea;--intro-ink-muted:#f1efea9e;--floor-bg:#141416;--floor-ink:#f1efea;--floor-muted:#86868b;--floor-cap:#fff;--floor-cap-ink:#1d1d1f;--floor-cap-rim:#fffffff2;--floor-cap-ring:#ffffff2e;--floor-well:#141416;--floor-line:#ffffff1f;--floor-edge:#ffffff29;--floor-shadow:#00000080;--floor-h:0px;--image-edge:#0000001a;--ink-04:#0000000a;--ink-08:#00000014;--ink-10:#0000001a;--ink-16:#00000029;--ink-18:#0000002e;--ink-42:#0000006b;--ink-06:#0000000f;--ink-14:#00000024;--well:#ededf0;--cap-rim:#fffffff2;--cap-rim-soft:#fff9;--plate:#ffffff61;--plate-ink:#1d1d1f;--plate-muted:#1d1d1fb8;--engrave:#0000002e;--bar-bg:#f5f5f7d6;--glass:#ffffff94;--glass-edge:#ffffff8c;--glass-rim:#ffffffd9;--scrim:#fff6;--pill-glass:#ffffffb8;--pill-glass-edge:#ffffff80;--ease-film:cubic-bezier(.22, 1, .36, 1);--ease-fade:cubic-bezier(.66, 0, .34, 1);--card-radius:20px;--card-glass:#ffffff6b;--card-glass-rim:#fffffff2;--card-glass-edge:#00000014;--card-shadow:#00000047;--card-ink:var(--ink);--card-ink-muted:var(--ink-muted);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-stack:var(--font-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:"Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;--text-hero:56px;--text-subhead:21px;--text-title:32px;--text-card-title:28px;--text-body:17px;--text-meta:14px;--text-eyebrow:13px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-hero:1.05;--leading-subhead:1.45;--leading-title:1.15;--leading-body:1.6;--leading-meta:1.5;--leading-eyebrow:1.2;--tracking-tight:-.015em;--tracking-hero:-.02em;--tracking-eyebrow:.04em;--measure:68ch;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:56px;--space-9:64px;--space-10:80px;--space-11:96px;--space-12:120px;--space-13:160px;--content-width:1200px;--gutter:var(--space-6);--container:calc(var(--content-width) + var(--gutter) * 2);--section-gap:var(--space-12);--header-height:72px;--header-float:12px;--hero-top:var(--space-11);--hero-bottom:var(--space-11);--row-gap:var(--space-9);--radius:6px;--radius-card:12px;--radius-card-image:6px;--card-pad:10px;--radius-glass:8px;--radius-plate:6px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-ui:cubic-bezier(.2, 0, 0, 1);--dur-hover:.15s;--dur-fast:.2s;--dur-slow:.6s;--dur-reduced:.1s}@supports (color:lab(0% 0 0)){:root{--image-edge:lab(0% 0 0/.1)}}@media (max-width:1199px){:root{--text-hero:44px;--text-subhead:19px;--text-title:28px;--text-card-title:24px;--text-body:16px;--text-meta:14px;--text-eyebrow:12px;--gutter:var(--space-5);--section-gap:var(--space-10);--hero-top:var(--space-10);--hero-bottom:var(--space-10);--row-gap:var(--space-8)}}@media (max-width:809px){:root{--text-hero:34px;--text-subhead:17px;--text-title:24px;--text-card-title:22px;--text-body:16px;--text-meta:13px;--text-eyebrow:12px;--gutter:var(--space-4);--section-gap:var(--space-9);--hero-top:var(--space-11);--hero-bottom:var(--space-11);--row-gap:var(--space-7)}}:root[data-theme=dark]{--ink:#f5f5f7;--ink-muted:#86868b;--rule:#3a3a3c;--surface:#000;--floor-bg:#f5f5f7;--floor-ink:#1d1d1f;--floor-muted:#6e6e73;--floor-cap:#fff;--floor-cap-ink:#1d1d1f;--floor-cap-rim:#fffffff2;--floor-cap-ring:#0000001a;--floor-well:#ededf0;--floor-line:#00000014;--floor-edge:#00000024;--floor-shadow:#0000002e;--surface-alt:#1d1d1f;--case-surface:#000;--case-media:#1d1d1f;--case-blend:normal;--image-edge:#ffffff1f;--ink-04:#ffffff0f;--ink-08:#ffffff1a;--ink-10:#ffffff24;--ink-16:#fff3;--ink-18:#ffffff3d;--ink-42:#ffffff7a;--ink-06:#ffffff12;--ink-14:#ffffff2b;--well:#141416;--cap-rim:#ffffff1a;--cap-rim-soft:#ffffff0f;--plate:#14141661;--plate-ink:#f5f5f7;--plate-muted:#f5f5f7b8;--engrave:#000000b3;--bar-bg:#1d1d1fd6;--glass:#1d1d1f9e;--glass-edge:#ffffff24;--glass-rim:#ffffff1f;--scrim:#00000080;--card-glass:#1d1d1f8c;--card-glass-rim:#ffffff24;--card-glass-edge:#ffffff14;--card-shadow:#0009;--pill-glass:#3c3c40b8;--pill-glass-edge:#ffffff24;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root[data-theme=dark]{--image-edge:lab(100% 0 0/.12)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#f5f5f7;--ink-muted:#86868b;--rule:#3a3a3c;--surface:#000;--floor-bg:#f5f5f7;--floor-ink:#1d1d1f;--floor-muted:#6e6e73;--floor-cap:#fff;--floor-cap-ink:#1d1d1f;--floor-cap-rim:#fffffff2;--floor-cap-ring:#0000001a;--floor-well:#ededf0;--floor-line:#00000014;--floor-edge:#00000024;--floor-shadow:#0000002e;--surface-alt:#1d1d1f;--case-surface:#000;--case-media:#1d1d1f;--case-blend:normal;--image-edge:#ffffff1f;--ink-04:#ffffff0f;--ink-08:#ffffff1a;--ink-10:#ffffff24;--ink-16:#fff3;--ink-18:#ffffff3d;--ink-42:#ffffff7a;--ink-06:#ffffff12;--ink-14:#ffffff2b;--well:#141416;--cap-rim:#ffffff1a;--cap-rim-soft:#ffffff0f;--plate:#14141661;--plate-ink:#f5f5f7;--plate-muted:#f5f5f7b8;--engrave:#000000b3;--bar-bg:#1d1d1fd6;--glass:#1d1d1f9e;--glass-edge:#ffffff24;--glass-rim:#ffffff1f;--scrim:#00000080;--card-glass:#1d1d1f8c;--card-glass-rim:#ffffff24;--card-glass-edge:#ffffff14;--card-shadow:#0009;--pill-glass:#3c3c40b8;--pill-glass-edge:#ffffff24;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root:not([data-theme=light]){--image-edge:lab(100% 0 0/.12)}}}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--surface);color:var(--ink);font-family:var(--font-stack);font-size:var(--text-body);line-height:var(--leading-body);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.eyebrow{font-size:var(--text-eyebrow);font-weight:var(--weight-medium);line-height:var(--leading-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-muted)}.text-link{color:var(--ink);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);transition-property:text-decoration-color;transition-duration:var(--dur-hover);transition-timing-function:var(--ease-ui)}.text-link:hover,.text-link:focus-visible{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:var(--dur-reduced)!important;scroll-behavior:auto!important;animation:none!important}}.no-break{white-space:nowrap}
.site-header{z-index:10;pointer-events:none;font-size:var(--text-meta);line-height:var(--leading-meta);justify-content:center;display:flex;position:sticky;top:0}.site-header-shell{pointer-events:auto;background:var(--bar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%;max-width:100%;box-shadow:inset 0 1px 0 var(--cap-rim-soft);color:var(--hero-ink);transition-property:max-width,transform,background-color,border-color,border-radius,box-shadow,color;transition-duration:.3s;transition-timing-function:var(--ease-ui);border:1px solid #0000;border-radius:0;transform:translateY(0)}.site-header.is-scrolled .site-header-shell{max-width:var(--container);transform:translateY(var(--header-float));color:var(--ink);background:var(--glass);-webkit-backdrop-filter:blur(24px)saturate(190%);backdrop-filter:blur(24px)saturate(190%);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-rim), inset 0 -1px 0 #0000000d, 0 1px 2px #0000000a, 0 12px 32px -12px #00000038;border-radius:999px}.site-header-inner{justify-content:space-between;align-items:center;gap:var(--space-5);height:var(--header-height);transition:height .3s var(--ease-ui);display:flex}.site-header.is-scrolled .site-header-inner{height:60px}.site-header-name{font-size:15px;font-weight:var(--weight-semibold);letter-spacing:-.005em;color:var(--ink-muted);text-shadow:0 1px 0 var(--cap-rim), 0 -1px 0 var(--engrave);opacity:0;visibility:hidden;transition-property:opacity,transform,visibility;transition-duration:var(--dur-fast);transition-timing-function:var(--ease-ui);transform:translateY(4px)}.site-header.has-name .site-header-name{opacity:1;visibility:visible;transform:none}.site-header-nav{align-items:center;gap:var(--space-5);display:flex}.site-header-text{color:var(--hero-ink-muted);white-space:nowrap;max-width:120px;transition-property:color,opacity,max-width,margin-right;transition-duration:var(--dur-hover), var(--dur-hover), .3s, .3s;transition-timing-function:var(--ease-ui);overflow:hidden}.site-header-text:hover,.site-header-text:focus-visible{color:var(--hero-ink)}.site-header.is-scrolled .site-header-text{color:var(--ink-muted);opacity:0;max-width:0;margin-right:calc(var(--space-5) * -1);pointer-events:none}.site-header-button{border:1px solid var(--ink-14);height:32px;color:var(--ink);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);font-weight:var(--weight-medium);white-space:nowrap;transition-property:box-shadow,transform,color,border-color,background-color;transition-duration:.12s;transition-timing-function:var(--ease-ui);border-radius:999px;justify-content:center;align-items:center;padding:0 16px;display:inline-flex}.site-header-button:hover,.site-header-button:focus-visible{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 -6px var(--ink-18)}.site-header-button:active,.site-header-button.is-pressed{background-color:var(--well);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06);transform:translateY(1px)}.site-header-icon{opacity:0;width:32px;max-width:0;margin-right:calc(var(--space-5) * -1);color:var(--ink-muted);transition-property:opacity,max-width,margin-right,color,box-shadow,transform;transition-duration:var(--dur-hover), .3s, .3s, var(--dur-hover), .12s, .12s;transition-timing-function:var(--ease-ui);padding:0;overflow:hidden}.site-header.is-scrolled .site-header-icon{opacity:1;max-width:32px;margin-right:0}.site-header-icon:hover,.site-header-icon:focus-visible{color:var(--ink)}.site-header-icon.is-theme{display:none}@media (max-width:809px){.site-header-nav{gap:var(--space-3)}.site-header-text{display:none}.site-header-icon.is-theme{display:inline-flex}.site-header-icon{opacity:1;max-width:32px;color:var(--hero-ink);margin-right:0}.site-header.is-scrolled .site-header-text{margin-right:calc(var(--space-3) * -1)}.site-header.is-scrolled .site-header-shell{background:var(--surface-alt);border-top:0;border-left:0;border-right:0;border-radius:0;max-width:100%;transform:translateY(0)}.site-header-button{height:44px}.site-header-icon,.site-header.is-scrolled .site-header-icon{width:44px;max-width:44px}}button.site-header-text,button.site-header-button{appearance:none;font:inherit;cursor:pointer;background:0 0;border:0}
.hero{background:var(--surface);color:var(--ink)}.hero-inner{padding-top:var(--hero-top);padding-bottom:var(--hero-bottom)}.hero-hello{color:var(--ink);line-height:0}.hero-hello-word{width:calc(var(--text-hero) * 3.19 * 1.25);height:auto;display:block;overflow:visible}.hero-intro{margin-top:var(--space-5);max-width:88ch;font-size:var(--text-subhead);font-weight:var(--weight-regular);line-height:var(--leading-subhead);color:var(--ink);text-wrap:pretty}.hero-sentence{text-wrap:balance;display:block}@media (max-width:1199px){.hero-intro{max-width:64ch}.hero-sentence{text-wrap:pretty;display:inline}}
.project-row+.project-row:before{content:"";width:min(var(--content-width), calc(100% - 2 * var(--gutter)));height:1px;margin:0 auto var(--row-gap);background:var(--ink-08);box-shadow:0 1px 0 var(--cap-rim-soft);display:block}.project-row{transition:opacity .2s var(--ease-ui)}.project-row.is-dim{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.project-row{transition:none}}.project-row-link{gap:var(--space-7);color:inherit;grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;display:grid}.is-chapter .project-row-link{display:block}.chapter-section{gap:var(--space-7);grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:stretch;display:grid}.chapter-section+.chapter-section{margin-top:var(--space-5)}.project-row-meta{gap:0 var(--space-2);flex-wrap:wrap;display:flex}.project-row-meta span:not(:last-child):after{content:"·";margin-left:var(--space-2);color:var(--ink-muted)}.project-row-title{font-size:20px;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--ink);text-wrap:pretty;margin-top:0;line-height:26px}.project-row-summary{margin-top:var(--space-2);max-width:44ch;color:var(--ink);text-wrap:pretty;font-size:16px;line-height:22px}.project-row-meta{margin-top:var(--space-4);font-size:var(--text-meta);line-height:var(--leading-meta);color:var(--ink-muted)}.project-row-nda{color:var(--ink-muted)}.placeholder-flag{margin-top:var(--space-4);padding:2px var(--space-2);border:1px dashed var(--ink-muted);font-size:var(--text-eyebrow);font-weight:var(--weight-medium);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-muted);display:inline-block}.chapter-sticky{top:calc(var(--header-height) + var(--header-float) + var(--space-5));position:sticky}.project-row-media{gap:var(--space-4);display:grid}.project-row-media img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);outline:1px solid var(--image-edge);outline-offset:-1px;width:100%;height:auto}.media-block{margin:0}.media-block img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);outline:1px solid var(--image-edge);outline-offset:-1px;width:100%;height:auto}.media-block.is-tray{isolation:isolate;background:var(--surface-alt);border-radius:var(--radius-glass);padding:8%;position:relative;overflow:hidden}.media-block.is-tray .media-smear{aspect-ratio:auto;object-fit:cover;filter:blur(48px)saturate(1.3);z-index:0;border-radius:0;outline:none;width:140%;height:140%;position:absolute;inset:-20%}.media-block.is-tray .media-glass{z-index:1;border-radius:inherit;background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);box-shadow:inset 0 0 0 1px var(--glass-edge), inset 0 1px 0 var(--glass-rim), inset 0 -1px 0 #0000000d;position:absolute;inset:0}.media-block .media-sharp{z-index:2;position:relative}.media-block.is-tray .media-sharp img,.media-block.is-tray .media-sharp .tile-video{box-shadow:0 12px 32px -16px #00000073}.media-block.is-natural img{aspect-ratio:auto;object-fit:contain;height:auto}.media-block.is-slot{aspect-ratio:4/3;border-radius:var(--radius);outline:1px solid var(--image-edge);outline-offset:-1px;overflow:hidden}.media-block.is-slot img{aspect-ratio:auto;object-fit:contain;outline:none;width:100%;height:100%}.media-block .tile-video{width:100%}.media-block.is-tray.is-framed{aspect-ratio:4/3;justify-content:center;align-items:center;padding:16px 5%;display:flex;container-type:size}.media-block.is-framed .media-sharp{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.media-block.is-framed .media-sharp img,.media-block.is-framed .media-sharp .tile-video{height:min(100cqh, calc(100cqw / var(--ratio)));width:auto;aspect-ratio:var(--ratio);display:block}.project-row-trigger .media-block{transition-property:transform,box-shadow;transition-duration:.3s;transition-timing-function:var(--ease-ui)}.project-row-trigger .media-block:hover{transform:translateY(-3px);box-shadow:0 16px 32px -20px #0000004d}@media (prefers-reduced-motion:reduce){.project-row-trigger .media-block{box-shadow:none;transition:none;transform:none}}@media (max-width:809px){.project-row-link,.chapter-section{gap:var(--space-5);grid-template-columns:minmax(0,1fr)}.chapter-sticky{position:static}}
.page-sheet{z-index:1;margin-bottom:var(--floor-h);padding-bottom:var(--section-gap);background:var(--surface);border-radius:0 0 var(--radius-card) var(--radius-card);position:relative;box-shadow:0 24px 64px -24px #0000008c}.site-footer{z-index:0;isolation:isolate;background:var(--floor-bg);min-height:420px;color:var(--floor-ink);align-items:flex-end;display:flex;position:fixed;bottom:0;left:0;right:0}.site-footer-inner{gap:var(--space-10);width:100%;padding-top:var(--space-11);padding-bottom:var(--space-8);flex-direction:column;display:flex}.site-footer:before{content:"";z-index:-1;opacity:.06;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 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");background-size:160px 160px;position:absolute;inset:0}.site-footer-invite{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.site-footer-heading{text-wrap:balance;max-width:20ch;font-size:clamp(32px,4.2vw,44px);font-weight:var(--weight-semibold);line-height:var(--leading-hero);letter-spacing:var(--tracking-hero);color:var(--floor-ink)}.site-footer-sub{font-size:var(--text-body);line-height:var(--leading-body);color:var(--floor-muted)}.site-footer-links{align-items:center;gap:var(--space-3);margin-top:var(--space-4);display:flex}.site-footer-name{padding-top:var(--space-5);border-top:1px solid var(--floor-line);font-size:var(--text-meta);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--floor-muted)}.site-footer-button{border:1px solid var(--ink-14);height:36px;color:var(--floor-cap-ink);background-color:var(--floor-cap);box-shadow:inset 0 1px 0 var(--floor-cap-rim), inset 0 -1px 0 #0000000f, 0 0 0 1px var(--floor-cap-ring), 0 1px 2px var(--floor-shadow), 0 4px 10px -3px var(--floor-shadow);font-size:var(--text-meta);font-weight:var(--weight-medium);transition-property:box-shadow,transform,color,background-color;transition-duration:.12s;transition-timing-function:var(--ease-ui);border-radius:999px;justify-content:center;align-items:center;padding:0 18px;text-decoration:none;display:inline-flex}.site-footer-button:hover,.site-footer-button:focus-visible{box-shadow:inset 0 1px 0 var(--floor-cap-rim), inset 0 -1px 0 #0000000f, 0 0 0 1px var(--floor-cap-ring), 0 2px 4px var(--floor-shadow), 0 8px 16px -6px var(--floor-shadow)}.site-footer-button:active,.site-footer-button.is-pressed{box-shadow:inset 0 2px 4px #00000024, inset 0 0 0 1px #0000000f, 0 0 0 1px var(--floor-cap-ring);background-color:#ededf0;transform:translateY(1px)}.site-footer-icon{color:#6e6e73;width:36px;padding:0}.site-footer-icon:hover,.site-footer-icon:focus-visible,.site-footer .wave-hand{color:var(--floor-cap-ink)}@media (max-width:809px){.site-footer{min-height:380px}.site-footer-inner{gap:var(--space-9);padding-top:var(--space-9);padding-bottom:var(--space-7)}.site-footer-button{height:44px}.site-footer-icon{width:44px}}
@keyframes tile-fade{0%{opacity:0}to{opacity:1}}[data-reveal=pending] .project-row-link{opacity:0}[data-reveal=visible] .project-row-link{animation:tile-fade var(--dur-slow) var(--ease-out) both}@media (prefers-reduced-motion:reduce){[data-reveal] .project-row-link{opacity:1;animation:none}}
html[data-intro=playing]{overflow:hidden}html[data-intro=seen] .hello-intro{display:none}.hello-intro{z-index:100;background:var(--intro-bg);color:var(--intro-ink);will-change:transform;touch-action:none;overscroll-behavior:none;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.hello-intro:before{content:"";opacity:.06;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 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");background-size:160px 160px;position:absolute;inset:0}.hello-intro-block{width:min(64vw,320px);animation:hello-enter .3s var(--ease-ui) forwards}@keyframes hello-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.hello-intro-word{width:100%;height:auto;display:block;overflow:visible}.hello-stroke{stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;animation:ease-in-out both hello-draw}.hello-stroke-one{animation-duration:.9s;animation-delay:.4s}.hello-stroke-two{animation-duration:2.5s;animation-delay:1.3s}@keyframes hello-draw{0%{opacity:0;stroke-dashoffset:1px}1%{opacity:1}to{opacity:1;stroke-dashoffset:0}}.hello-intro-cue{bottom:var(--space-7);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--intro-ink-muted);font:inherit;font-size:var(--text-meta);text-shadow:0 1px #ffffff14,0 -1px #0009;cursor:pointer;opacity:0;transition-property:opacity,color;transition-duration:.3s, var(--dur-hover);transition-timing-function:var(--ease-ui);background:0 0;border:0;flex-direction:column;line-height:1;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hello-intro.is-ready .hello-intro-cue{opacity:1}.hello-intro-cue:hover,.hello-intro-cue:focus-visible{color:var(--intro-ink)}.hello-intro-cue:focus-visible{outline-color:var(--surface);opacity:1}.hello-intro-cue-bar{background:currentColor;border-radius:999px;width:48px;height:4px;display:block}@media (min-width:810px){.hello-intro-cue{bottom:var(--space-8);gap:var(--space-4);color:#f1efeab8;font-size:16px}.hello-intro-cue-bar{width:64px}}.hello-intro-info{right:var(--space-7);bottom:var(--space-7);color:#ffffffeb;opacity:0;transition:opacity .3s var(--ease-ui);display:block;position:absolute}.hello-intro.is-ready .hello-intro-info{opacity:1}.hello-intro-info svg{width:40px;height:40px;display:block}@media (max-width:809px){.hello-intro-info{right:var(--space-5);bottom:calc(var(--space-7) + var(--space-2))}.hello-intro-info svg{width:28px;height:28px}}@media (prefers-reduced-motion:reduce){.hello-intro{display:none}}
html.is-home-stage{overflow:hidden}html.is-home-stage .page-sheet{min-height:100dvh;margin-bottom:0}html.is-home-intro .site-header,html.is-home-intro .home-legal{opacity:0;pointer-events:none}.site-header,.home-legal{transition:opacity .6s var(--ease-fade)}@media (prefers-reduced-motion:reduce){.site-header,.home-legal{transition:none}}.home-intro{z-index:20;background:var(--surface);position:fixed;inset:0}.home-intro.is-gone{display:none}.home-intro-stack{perspective:1400px;perspective-origin:50% 0;opacity:0;height:0;transition:opacity .4s var(--ease-fade);position:absolute;top:50%;left:0;right:0}.home-intro-stack.is-in{opacity:1}.home-hello{font-weight:var(--weight-medium);letter-spacing:-.03em;line-height:1}.home-intro-hello{white-space:nowrap;color:var(--ink);transform:translate(-50%, -50%) rotateX(var(--fall,0deg));transform-origin:50%;transition:transform .6s var(--ease-film), opacity .2s var(--ease-fade);font-size:clamp(72px,10vw,128px);position:absolute;top:0;left:50%}.home-intro-hello.is-out{opacity:0}.home-intro-rule{opacity:0;width:60vw;height:1.5px;transition:opacity .2s var(--ease-fade);position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.home-intro-rule.is-on{opacity:1}.home-intro-fill{background:var(--ink);will-change:width;width:0;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.home-intro-pct{left:calc(50% + var(--half,0px));font-size:var(--text-eyebrow);letter-spacing:.06em;color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:0;transition:opacity .4s var(--ease-fade);position:absolute;top:12px;transform:translate(-100%)}.home-intro-pct.is-in{opacity:1}.home-stage{z-index:5;perspective:1400px;perspective-origin:50%;pointer-events:none;position:fixed;inset:0}.home-card{z-index:1;opacity:0;pointer-events:none;height:1.5px;color:var(--card-ink);background:var(--card-glass);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);box-shadow:inset 0 1px 0 var(--card-glass-rim), inset 0 -1px 0 #0000000d, inset 0 12px 34px -20px var(--card-glass-rim), inset 0 -16px 34px -22px #00000017, 0 34px 90px -34px var(--card-shadow);transform:translateZ(var(--near,0px)) rotateX(var(--flip,0deg)) rotateY(var(--turn,0deg)) rotateX(var(--tiltx,0deg)) rotateY(var(--tilty,0deg)) rotateZ(var(--tiltz,0deg));transform-origin:50%;border-radius:0;position:absolute;top:0;left:0;right:0;overflow:hidden}.home-floor{filter:blur(14px);width:0;height:56px;transform:translate(calc(-50% + var(--fx,0px)), -50%) scaleX(var(--fs,1));opacity:var(--fo,0);pointer-events:none;background:radial-gradient(closest-side,#00000042,#0000);border-radius:50%;position:absolute;top:0;left:0}html.is-home-stage body{background:linear-gradient(180deg, var(--surface) 46%, var(--surface-alt) 100%)}.home-card.is-live{opacity:1;pointer-events:auto}.home-card:before{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--card-glass-rim), #ffffff59 38%, #ffffff1a 62%, var(--card-glass-edge));-webkit-mask-composite:xor;pointer-events:none;z-index:3;padding:1.5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.home-card:after{content:"";border-radius:inherit;background:radial-gradient(560px circle at var(--mx,30%) var(--my,20%), #ffffff80, #fff0 62%);pointer-events:none;z-index:3;mix-blend-mode:screen;position:absolute;inset:0}.home-card.is-flipping{transition:transform .8s var(--ease-film)}.home-card.is-scrubbing{transition:none}.home-card.is-turning-out{transition:transform .45s cubic-bezier(.4,0,.68,.06)}.home-card.is-turning-in{transition:transform .45s var(--ease-film)}.home-glow{filter:blur(80px)saturate(1.2);opacity:.28;transition:opacity 1.2s var(--ease-fade);pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:-10%}html.is-home-room .home-glow{opacity:.4}.home-ring{touch-action:none;perspective:1600px;perspective-origin:50% 42%;transform:translateX(var(--px,0px));transition:transform .9s var(--ease-film);position:absolute;inset:0}.home-cover{height:var(--h);width:calc(var(--h) * var(--ratio));margin-left:calc(var(--h) * var(--ratio) / -2);margin-top:calc(var(--h) / -2);transform-style:preserve-3d;transform:translateX(var(--x)) translateY(var(--y,0px)) translateZ(var(--z)) rotateY(var(--ry));opacity:var(--o);transition:transform .5s var(--ease-film), opacity .5s var(--ease-film);cursor:pointer;will-change:transform;position:absolute;top:44%;left:50%}.home-ring.is-scrubbing .home-cover{transition:none}.home-cover.is-pre{opacity:0;transform:translateX(var(--x)) translateY(calc(var(--y,0px) + 44px)) translateZ(var(--z)) rotateY(var(--ry));transition:none}.home-cover.is-shaded{pointer-events:none;cursor:default}.home-cover>img,.home-cover>video,.home-cover>.tile-video{object-fit:cover;border-radius:var(--radius-card-image);outline:1px solid var(--image-edge);outline-offset:-1px;width:100%;height:100%;transition:box-shadow .5s var(--ease-film);display:block;box-shadow:0 24px 60px -24px #00000080}.home-cover>.tile-video{aspect-ratio:auto;overflow:hidden}.home-cover>.tile-video.is-clear.orb{border-radius:var(--radius-card-image);outline:1px solid var(--image-edge);outline-offset:-1px;width:100%;height:100%;transition:box-shadow .5s var(--ease-film);background:radial-gradient(120% 70% at 50% 30%,#edf3ff 0%,#edf3ff00 70%),linear-gradient(#f8f9fc 0%,#f1f3f8 100%);display:block;box-shadow:0 24px 60px -24px #00000080}.home-cover.is-front>.tile-video.is-clear.orb{box-shadow:0 30px 70px -22px #000000bf}.home-cover .tile-video-toggle{display:none}.home-cover.is-front>img,.home-cover.is-front>video,.home-cover.is-front>.tile-video{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;box-shadow:0 30px 70px -22px #000000bf}@media (max-width:809px){.home-ring{perspective:900px;perspective-origin:50% 32%}.home-cover{top:var(--deck-mid,32%)}}.home-view{z-index:12;border:1px solid var(--ink-14);background:var(--surface);height:36px;box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px #00000024, 0 6px 14px -4px #00000059, 0 18px 36px -12px #00000073;white-space:nowrap;font-size:14px;font-weight:var(--weight-medium);color:var(--ink);pointer-events:none;opacity:0;transform:translate(var(--vx,0px), var(--vy,0px)) translate(-50%, -50%);transition:opacity .15s var(--ease-ui);border-radius:999px;align-items:center;padding:0 16px;line-height:1;display:none;position:absolute;top:0;left:0}@media (hover:hover){.home-view{display:inline-flex}html.is-home-room .home-cover.is-front{cursor:none}}.home-view.is-shown{opacity:1}.point-hand{color:var(--ink);place-items:center;margin-left:6px;margin-right:-2px;display:inline-grid}.point-hand svg{transform-origin:50% 60%;filter:drop-shadow(0 1px 0 var(--cap-rim));display:block}.home-view.is-shown .point-hand svg{animation:point-press 1.5s var(--ease-ui) infinite}@keyframes point-press{0%,to{transform:translateY(0)scale(1)}30%{transform:translateY(1.5px)scale(.92)}45%{transform:translateY(1.5px)scale(.92)}65%{transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.home-view.is-shown .point-hand svg{animation:none}}.home-fade{transition:opacity .5s var(--ease-fade)}.home-fade.is-hidden,.home-fade.is-out{opacity:0;pointer-events:none}.home-caption{max-width:46ch;color:var(--card-ink);opacity:0;transition:opacity .2s var(--ease-ui);position:absolute;bottom:36px;left:40px}.home-caption.is-shown{opacity:1}@media (hover:none){.home-caption{opacity:1}}.home-caption-index{font-size:var(--text-eyebrow);color:var(--card-ink-muted);letter-spacing:.04em;display:block}.home-caption-title{font-size:21px;font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);margin:2px 0 0;line-height:1.3}.home-caption-meta{font-size:var(--text-eyebrow);color:var(--card-ink-muted);gap:12px;margin:4px 0 0;display:flex}.home-caption-meta span+span:before{content:"·";margin-right:12px}html.is-home-room .home-caption{left:var(--gutter,40px);max-width:60ch;bottom:48px}html.is-home-room .home-caption-title{letter-spacing:-.02em;font-size:28px}.home-arrows{z-index:4;pointer-events:auto;transform:translateX(var(--capx,0px)) translateZ(var(--capz,60px)) rotateY(var(--capry,0deg));gap:8px;display:flex;position:absolute;top:0;left:0}html.is-home-room .home-arrows{top:auto;left:50%;right:auto;bottom:calc(var(--space-5) + env(safe-area-inset-bottom) + 58px + 14px);transform:translate(-50%)}.home-deck-pill{border:1px solid var(--glass-edge);height:44px;color:var(--ink);background:var(--glass);-webkit-backdrop-filter:blur(28px)saturate(200%);backdrop-filter:blur(28px)saturate(200%);box-shadow:inset 0 1px 0 var(--glass-rim), inset 0 -1px 0 #0000000f, 0 1px 2px #0000000d, 0 16px 40px -16px #0000004d;border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex}.home-deck-btn{width:36px;height:36px;color:var(--ink);cursor:pointer;transition:background-color .12s var(--ease-ui);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.home-deck-btn:hover{background:var(--ink-06)}.home-deck-btn:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.home-deck-btn svg{display:block}.home-play .home-deck-resume,.home-play.is-paused .home-deck-pause{display:none}.home-play.is-paused .home-deck-resume{display:block}.home-deck-sep{background:var(--ink-10);width:1px;height:18px;margin:0 4px}.home-deck-count{text-align:center;min-width:56px;font-size:13px;font-weight:var(--weight-medium);letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--ink-muted)}.home-deck-count b{font-weight:var(--weight-semibold);color:var(--ink)}html.is-home-back .home-arrows{pointer-events:none;opacity:0!important}.home-cap{border:1px solid var(--ink-14);background:var(--surface);width:36px;height:36px;color:var(--ink);font:inherit;cursor:pointer;box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 -1px 0 var(--ink-06), 0 1px 2px #0000001f, 0 6px 14px -4px #00000059;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.home-cap svg{width:16px;height:16px}.home-cap:active{transform:translateY(1px)}.home-cap.is-glass{width:auto;font-size:13px;font-weight:var(--weight-medium);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);background:#ffffff8c;border-color:#ffffffbf;padding:0 14px;box-shadow:inset 0 1px #fffffff2,inset 0 -1px #0000000d,0 1px 2px #00000014,0 10px 24px -10px #00000047}.home-cap.is-glass:hover{background:#ffffffb3}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .home-cap.is-glass{background:#ffffff1a;border-color:#ffffff2e;box-shadow:inset 0 1px #ffffff29,0 1px 2px #0006,0 10px 24px -10px #0009}:root:not([data-theme=light]) .home-cap.is-glass:hover{background:#ffffff29}}:root[data-theme=dark] .home-cap.is-glass{background:#ffffff1a;border-color:#ffffff2e;box-shadow:inset 0 1px #ffffff29,0 1px 2px #0006,0 10px 24px -10px #0009}:root[data-theme=dark] .home-cap.is-glass:hover{background:#ffffff29}.home-enter{z-index:4;pointer-events:auto;height:40px;transform:translate(calc(-50% + var(--capx,0px)), -50%) translateZ(var(--capz,60px)) rotateY(var(--capry,0deg));transform-origin:50%;padding:0 24px;font-size:15px;position:absolute;top:0;left:0;box-shadow:inset 0 1px #fffffff2,inset 0 -1px #0000000d,0 1px 2px #0000001a,0 14px 30px -10px #00000059}.home-enter:active{transform:translate(calc(-50% + var(--capx,0px)), calc(-50% + 1px)) translateZ(var(--capz,60px)) rotateY(var(--capry,0deg))}.home-enter{gap:8px}.home-enter-arrow{transition:transform .16s var(--ease-ui);display:block}.home-enter.is-up .home-enter-arrow{transform:rotate(180deg)}.home-enter:hover .home-enter-arrow,.home-enter:focus-visible .home-enter-arrow{transform:translateY(2px)}.home-enter.is-up:hover .home-enter-arrow,.home-enter.is-up:focus-visible .home-enter-arrow{transform:rotate(180deg)translateY(2px)}@media (prefers-reduced-motion:reduce){.home-enter-arrow{transition:none}}html.is-home-back .home-enter{--capry:0deg}.home-caption-open{margin-top:10px;display:none}@media (hover:none){html.is-home-room .home-caption-open{display:inline-flex}}.home-leave-hint{left:50%;bottom:calc(var(--space-5) + env(safe-area-inset-bottom) + 66px);z-index:31;opacity:0;pointer-events:none;transition:opacity .4s var(--ease-fade);position:fixed;transform:translate(-50%)}.home-leave-hint.is-shown{opacity:1}@media (hover:hover){.home-leave-hint{display:none}}@media (max-width:809px){.home-caption{left:16px;top:calc(var(--cover-foot,60%) + 14px);max-width:calc(100% - 32px);bottom:auto}.home-caption-title{font-size:17px}.home-cap{width:44px;height:44px}.home-cap.is-glass{width:auto;height:44px}.home-enter{height:44px}.home-play{display:none}.home-arrows{width:300px;transform:translate(calc(-50% + var(--capx,0px)), -50%) translateZ(var(--capz,60px)) rotateY(var(--capry,0deg));justify-content:space-between}html.is-home-room .home-arrows{left:auto;right:16px;top:calc(var(--cover-foot,60%) + 20px);width:auto;bottom:auto;transform:none}html.is-home-room .home-caption{left:16px;top:calc(var(--cover-foot,60%) + 14px);max-width:calc(100% - 144px);bottom:auto}html.is-home-room .home-arrows{top:calc(var(--cover-foot,60%) + 14px)}html.is-home-room .home-caption-title{letter-spacing:-.01em;font-size:17px}}.home-index{z-index:4;pointer-events:auto;padding:6px;position:absolute;top:0;left:0;transform:translateY(-50%);display:none!important}html.is-home-back .home-index{pointer-events:none;opacity:0!important}.home-index.is-flat{transform:none}.home-index.is-flat .home-index-well{width:calc(8px + 26px * var(--m,6));height:16px}.home-index.is-flat .home-index-well i{left:calc(17px + var(--i) * 26px);top:50%}.home-index.is-flat .home-index-cap{top:2px;left:calc(3px + var(--n,0) * 26px);width:28px;height:12px;transition:left .5s var(--ease-film)}.home-index.is-flat .home-index-cap:after{content:"";position:absolute;inset:-16px -8px}.home-index-well{width:16px;height:calc(8px + 26px * var(--m,6));background:var(--ink-04);border-radius:99px;position:relative;box-shadow:inset 0 1px 2px #0000001f,inset 0 0 0 1px #ffffff80}.home-index-well i{left:50%;top:calc(17px + var(--i) * 26px);cursor:pointer;background:#0003;border-radius:50%;width:3px;height:3px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px #ffffffe6}.home-index-well i:after{content:"";position:absolute;inset:-12px -10px}.home-index-cap{left:2px;top:calc(3px + var(--n,0) * 26px);background:var(--surface);width:12px;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 3px 8px -2px var(--ink-18);transition:top .5s var(--ease-film);cursor:grab;border-radius:99px;position:absolute}.home-index-cap:active{cursor:grabbing}.home-filters{left:0;right:0;bottom:calc(var(--space-5) + env(safe-area-inset-bottom));z-index:30;pointer-events:none;justify-content:center;display:flex;position:fixed}html.is-home-back .home-filters{opacity:0;pointer-events:none}.home-filters-shell{pointer-events:auto;border:1px solid var(--glass-edge);color:var(--ink);background:var(--glass);-webkit-backdrop-filter:blur(28px)saturate(200%);backdrop-filter:blur(28px)saturate(200%);box-shadow:inset 0 1px 0 var(--glass-rim), inset 0 -1px 0 #0000000f, inset 0 0 0 1px #ffffff40, 0 1px 2px #0000000d, 0 16px 40px -16px #0000004d;border-radius:999px;align-items:center;gap:6px;padding:6px;display:flex}.home-filters-switch .view-switch-button{padding:0 14px}@media (max-width:809px){.home-filters-shell{max-width:calc(100vw - 32px)}.home-filters-switch{scrollbar-width:none;min-width:0;max-width:100%;overflow-x:auto}.home-filters-switch::-webkit-scrollbar{display:none}.home-filters-switch .view-switch-button{white-space:nowrap;height:32px;padding:0 10px;font-size:12px}html.is-home-room .home-legal{opacity:0}}.home-back{color:var(--card-ink);padding:56px 40px 36px;display:none;position:absolute;inset:0;overflow:auto}.home-back-pane[hidden]{display:none}.home-back-edge{z-index:3;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0;overflow:visible}.home-card.is-back .home-back-edge{display:block}html.is-home-room .home-back-edge{display:none}.home-back-edge path{fill:none;stroke:var(--ink-14);stroke-width:2px;vector-effect:non-scaling-stroke}.about-sphere{--hx:34%;--hy:30%;--breath:1;transform:scale(var(--breath));will-change:transform;border-radius:50%;margin-bottom:16px;position:relative;overflow:hidden;box-shadow:0 18px 28px -14px #00000059}.about-sphere img{object-fit:cover;width:100%;height:100%;display:block}.about-sphere:before{content:"";background:radial-gradient(circle at var(--hx) var(--hy), #ffffff8c 0%, #ffffff2e 22%, #fff0 48%);pointer-events:none;border-radius:50%;position:absolute;inset:0}.about-sphere:after{content:"";pointer-events:none;border-radius:50%;position:absolute;inset:0;box-shadow:inset -10px -14px 22px #00000047,inset 5px 7px 12px #ffffff59,inset 0 0 0 1px #0000000f}.home-back-skills{gap:14px;margin:28px 0 0;display:grid}.home-back-skill dt{margin:0 0 4px}.home-back-skill dd{color:var(--card-ink-muted);margin:0;font-size:14px;line-height:1.5}.exp{flex-direction:column;flex:1;justify-content:safe center;align-items:flex-start;display:flex;position:relative}.exp-list{width:100%;transition:opacity .2s var(--ease-ui);flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.exp.is-open .exp-list,.exp.is-open .exp-resume{opacity:0;pointer-events:none}.exp-row{background:var(--surface-alt);width:100%;color:var(--card-ink);font:inherit;text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-06), 0 1px 2px var(--ink-06);transition:transform .2s var(--ease-ui), box-shadow .2s var(--ease-ui);border:0;border-radius:14px;grid-template-columns:44px 1fr auto;align-items:center;column-gap:16px;padding:14px 16px;display:grid}.exp-row:hover{box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-10), 0 6px 14px -8px var(--ink-18);transform:translateY(-1px)}.exp-row:focus-visible{outline:2px solid var(--card-ink);outline-offset:2px}.exp-logo{background:var(--surface);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--ink-06);border-radius:10px;flex:none;place-items:center;display:grid;overflow:hidden}.exp-logo img{object-fit:contain;filter:grayscale()contrast(1.1);width:28px;height:28px}.exp-logo.is-fill img{filter:none;width:44px;height:44px}.exp-row-text{flex-direction:column;min-width:0;display:flex}.exp-company{font-size:15px;font-weight:600;line-height:1.25}.exp-title{color:var(--card-ink-muted);margin-top:2px;font-size:14px;line-height:1.35}.exp-date{letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:var(--weight-medium);color:var(--card-ink-muted);white-space:nowrap;align-self:start;margin-top:3px}.exp-resume{gap:8px;margin-top:18px;padding:0 16px 0 14px;text-decoration:none}.exp-resume.is-pending{opacity:.55;cursor:default}.exp-resume-icon{flex:none}.exp-open{background:var(--surface);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-10), 0 18px 40px -18px var(--ink-18);transform-origin:0 0;z-index:2;border-radius:16px;padding:22px;position:absolute;top:50%;left:0;right:0;translate:0 -50%}.exp-open-head{grid-template-columns:44px 1fr auto;align-items:center;column-gap:16px;display:grid}.exp-dot{margin:0 6px}.exp-close{border:1px solid var(--ink-14);background:var(--surface);width:30px;height:30px;color:var(--card-ink-muted);cursor:pointer;box-shadow:inset 0 1px 0 var(--cap-rim), 0 1px 2px var(--ink-10);border-radius:50%;place-items:center;display:grid}.exp-close:hover{color:var(--card-ink)}.exp-close:focus-visible{outline:2px solid var(--card-ink);outline-offset:2px}.exp-open-body p{color:var(--card-ink);margin:16px 0 0;font-size:15px;line-height:1.55}.exp-open-body .exp-skills{border-top:1px solid var(--ink-06);color:var(--card-ink-muted);align-items:baseline;gap:14px;margin-top:16px;padding-top:14px;font-size:14px;line-height:1.45;display:flex}.exp-skills .eyebrow{white-space:nowrap;min-width:44px;margin:0}.exp-open-body .exp-site{margin-top:14px}.exp-site a{color:var(--card-ink);text-decoration:underline;-webkit-text-decoration-color:var(--ink-18);text-decoration-color:var(--ink-18);text-underline-offset:3px;align-items:center;gap:4px;display:inline-flex}.exp-site a:hover{text-decoration-color:currentColor}.exp-site a:focus-visible{outline:2px solid var(--card-ink);outline-offset:3px;border-radius:2px}@media (prefers-reduced-motion:reduce){.exp-list,.exp-row{transition:none}}.home-card.is-back .home-back{display:block}.home-card.is-back .home-ring,.home-card.is-back .home-glow,.home-card.is-back .home-caption{display:none}.home-card{--q:0}.home-card.is-back .home-back{--bp:160px;--bt:36px;--bf:14px;--bl:1.45;--bch:36px;--bcf:13px;padding:0;display:block}.home-back-pane:not([hidden]){padding-top:calc(var(--rest-top,40px) * (1 - var(--q)) + var(--page-top,154px) * var(--q));padding-left:calc(32px * (1 - var(--q)) + var(--page-left,120px) * var(--q));padding-bottom:36px;display:block}.home-back-body{width:calc((var(--cover-w,662px) - 64px) * (1 - var(--q)) + var(--page-w,1200px) * var(--q));grid-template-columns:calc(var(--bp) + (360px - var(--bp)) * var(--q)) minmax(0, 1fr);gap:calc(24px + 40px * var(--q));align-items:start;display:grid}.home-back-portrait{width:calc(var(--bp) + (360px - var(--bp)) * var(--q));aspect-ratio:9/11;border-radius:calc(16px + 8px * var(--q));background:var(--case-media);box-shadow:inset 0 0 0 1px var(--image-edge);overflow:hidden}.home-back-portrait img{object-fit:cover;width:100%;height:100%;display:block}.home-back-text{max-width:none}.home-back-body p{max-width:50ch}.home-back-title{margin:0 0 calc(8px * var(--q));font-size:calc(var(--bt) + (var(--text-hero) - var(--bt)) * var(--q));text-wrap:balance}.home-back-body p{margin:calc(10px * (1 - var(--q)) + 16px * var(--q)) 0 0;font-size:calc(var(--bf) + (18px - var(--bf)) * var(--q));line-height:calc(var(--bl) + (1.5 - var(--bl)) * var(--q))}.home-back-caps{margin-top:calc(16px + 8px * var(--q));gap:calc(8px + 2px * var(--q));flex-wrap:wrap;display:flex}.home-back-caps .home-cap.is-glass{height:calc(var(--bch) + (44px - var(--bch)) * var(--q));padding:0 calc(14px + 4px * var(--q));font-size:calc(var(--bcf) + (15px - var(--bcf)) * var(--q))}@media (max-height:760px){.home-card.is-back .home-back{--bt:30px;--bf:13.5px;--bl:1.4;--bch:32px;--bcf:12.5px}}.home-back-note{color:var(--card-ink-muted)}.home-back-full{padding-top:calc(var(--header-height) + 2px);display:none}html.is-home-room .home-back-pane:not([hidden]){display:none}html.is-home-room .home-back-full{display:block}.home-card.is-back:after{opacity:calc(1 - var(--q))}html.is-home-room.is-home-back .home-card:after{opacity:0}html.is-home-room.is-home-back .home-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface)}@media (max-width:809px){.home-back{padding:60px 16px 72px}.exp-row,.exp-open-head{grid-template-columns:36px 1fr}.exp-logo{width:36px;height:36px}.exp-row .exp-date{grid-column:2;margin-top:4px}.exp-open-head .exp-close{grid-area:1/3}.home-back-title{font-size:30px}}.home-legal{left:var(--gutter,40px);z-index:6;font-size:var(--text-eyebrow);color:var(--ink-muted);letter-spacing:.02em;margin:0;position:fixed;bottom:20px}html.is-home-room .home-legal{opacity:0}@media (prefers-reduced-motion:reduce){.home-intro-stack,.home-intro-hello,.home-intro-rule,.home-intro-pct,.home-card,.home-cover,.home-view,.home-fade,.home-caption,.home-index-cap,.home-ring,.home-glow{transition:none!important}}
.phone-home{display:none}@media (max-width:809px){.phone-home{display:block}.home-root,.home-legal{display:none}}
.phone-landing{--veil:255, 255, 255;--card-back:#f5f5f7;--card-edge:#d2d2d7;--floor:#00000038;height:100svh;margin-top:calc((var(--header-height) + 2px) * -1);padding-top:calc(var(--header-height) + 2px);color:var(--ink);background:linear-gradient(180deg, var(--surface) 46%, var(--surface-alt) 100%);flex-direction:column;display:flex;position:relative;overflow:hidden}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .phone-landing{--veil:0, 0, 0;--card-back:#1d1d1f;--card-edge:#3a3a3d;--floor:#0009}}:root[data-theme=dark] .phone-landing{--veil:0, 0, 0;--card-back:#1d1d1f;--card-edge:#3a3a3d;--floor:#0009}.phone-landing button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.phone-landing button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@media (max-width:809px){html.is-phone-landing .page-sheet{padding-bottom:0}.page-sheet:has(.phone-landing){padding-bottom:0}html.is-phone-landing .site-header-icon{display:none}html.is-phone-landing .site-header-nav{gap:6px}html.is-phone-landing .site-header-text.is-about,html.is-phone-landing .site-header.is-scrolled .site-header-text.is-about{max-width:none;height:44px;font-size:15px;font-weight:var(--weight-medium);color:var(--ink-muted);opacity:1;pointer-events:auto;align-items:center;margin-right:0;padding:0 10px;display:inline-flex}}.phone-stage{z-index:1;perspective-origin:50%;touch-action:pan-y;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.phone-spacer{flex:1;min-height:0}.phone-glow{filter:blur(60px)saturate(1.2);opacity:.28;transition:opacity 1.2s var(--ease-fade);pointer-events:none;position:absolute;inset:-10%}.phone-glow img{object-fit:cover;opacity:0;width:100%;max-width:none;height:100%;position:absolute;inset:0}.phone-glow img.is-on{opacity:1}.phone-deck{pointer-events:none;transform-style:preserve-3d;visibility:hidden;position:absolute;inset:0}.phone-deck.is-ready{visibility:visible}.phone-card{width:var(--cw);height:var(--ch);margin-left:calc(var(--cw) / -2);margin-top:calc(var(--ch) / -2);transform-style:preserve-3d;will-change:transform;cursor:pointer;pointer-events:auto;position:absolute;top:50%;left:50%}.phone-card>*{opacity:var(--o,1)}.phone-rims{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:0;opacity:1!important}.phone-rims>*{opacity:var(--o,1)}.phone-face{border-radius:var(--cr,9px);backface-visibility:hidden;background:var(--frame,var(--case-media));position:absolute;inset:0;overflow:hidden}.phone-face.is-front{transform:translateZ(calc(var(--ct,6px) / 2))}.phone-face.is-back{transform:rotateY(180deg) translateZ(calc(var(--ct,6px) / 2));background:var(--card-back);color:var(--ink);container-type:size}.phone-face:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 1px var(--image-edge);background:linear-gradient(rgba(0, 0, 0, var(--sh,0)), rgba(0, 0, 0, var(--sh,0))), rgba(var(--veil), var(--v,0));pointer-events:none;position:absolute;inset:0}.phone-face.is-front:after{--sh:var(--shf,0)}.phone-face.is-back:after{--sh:var(--shb,0)}.phone-pic{inset:var(--ci,4px);border-radius:calc(var(--cr,9px) - var(--ci,4px));background:var(--frame);position:absolute;overflow:hidden}.phone-rim{height:var(--ct,6px);margin-top:calc(var(--ct,6px) / -2);background:linear-gradient(rgba(0, 0, 0, var(--rs,0)), rgba(0, 0, 0, var(--rs,0))), var(--edge,var(--card-edge));pointer-events:none;position:absolute;top:50%;left:50%}.phone-floor{width:var(--cw);height:var(--ch);margin-left:calc(var(--cw) / -2);margin-top:calc(var(--ch) / -2);opacity:var(--fo,1);pointer-events:none;position:absolute;top:50%;left:50%}.phone-floor:before{content:"";background:radial-gradient(ellipse at center, var(--floor), transparent 70%);filter:blur(5px);height:20px;transform:scaleX(var(--fs,1));border-radius:50%;position:absolute;bottom:-24px;left:4%;right:4%}.phone-back{flex-direction:column;padding:7cqw 7cqw 6cqw;display:flex;position:absolute;inset:0}.phone-back-top{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:5.2cqw;display:flex}.phone-back-title{font-size:8.4cqw;font-weight:var(--weight-medium);letter-spacing:-.015em;text-wrap:balance;margin:4.5cqw 0 0;line-height:1.2}.phone-back-rows{gap:3.6cqw;margin:5.5cqw 0 0;display:grid}.phone-back-row{gap:.6cqw;display:grid}.phone-back-row dt{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:4.6cqw}.phone-back-row dd{margin:0;font-size:6cqw;line-height:1.3}.phone-back-foot{border-top:1px solid var(--ink-08);color:var(--ink-muted);margin-top:auto;padding-top:4cqw;font-size:5.2cqw}.phone-caption,.phone-controls{z-index:3;position:relative}.phone-caption{flex-direction:column;flex:none;justify-content:flex-end;min-height:104px;padding:0 20px;display:flex}.phone-caption-top{align-items:center;gap:2px;height:28px;margin-bottom:2px;display:flex}.phone-caption-count{letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:13px}.phone-caption-count b{font-weight:var(--weight-semibold);color:var(--ink)}.phone-play{width:28px;height:28px;color:var(--ink-muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.phone-play:after{content:"";position:absolute;inset:-8px}.phone-play .phone-i-play,.phone-play.is-paused .phone-i-pause{display:none}.phone-play.is-paused .phone-i-play{display:block}.phone-caption-title{font-size:24px;font-weight:var(--weight-medium);letter-spacing:-.02em;text-wrap:balance;margin:0;line-height:1.2}.phone-caption-meta{color:var(--ink-muted);flex-wrap:wrap;gap:0 10px;margin:6px 0 0;font-size:13px;display:flex}.phone-caption-meta span+span:before{content:"·";margin-right:10px}.phone-caption-title,.phone-caption-meta{transition:opacity .18s var(--ease-ui), transform .18s var(--ease-ui)}.phone-caption.is-swap .phone-caption-title,.phone-caption.is-swap .phone-caption-meta{opacity:0;transform:translateY(4px)}.phone-controls{padding:18px 16px calc(26px + env(safe-area-inset-bottom,0px));flex:none;justify-content:center;display:flex}.phone-pill{border:1px solid var(--glass-edge);background:var(--glass);-webkit-backdrop-filter:blur(28px)saturate(200%);backdrop-filter:blur(28px)saturate(200%);height:52px;box-shadow:inset 0 1px 0 var(--glass-rim), inset 0 -1px 0 #0000000f, 0 1px 2px #0000000d, 0 16px 40px -16px #0000004d;border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex}.phone-pill-arrow{width:44px;height:44px;color:var(--ink-muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.phone-pill-arrow:active{background:var(--ink-06)}.phone-pill-view{background:var(--surface);height:44px;color:var(--ink);font-size:15px;font-weight:var(--weight-medium);white-space:nowrap;box-shadow:inset 0 1px 0 var(--cap-rim), 0 1px 2px var(--ink-10), 0 4px 10px -3px var(--ink-18);border:0;border-radius:999px;align-items:center;gap:8px;padding:0 20px;display:inline-flex}.phone-caption,.phone-controls{transition:opacity .6s var(--ease-fade)}.phone-landing.is-intro .phone-caption,.phone-landing.is-intro .phone-controls{opacity:0;pointer-events:none}.phone-landing.is-intro .phone-glow{opacity:0}html[data-intro=seen] .phone-landing.is-intro .phone-caption,html[data-intro=seen] .phone-landing.is-intro .phone-controls{opacity:1}.phone-intro{z-index:20;background:var(--surface);transition:opacity .25s var(--ease-fade);position:fixed;inset:0}.phone-intro.is-gone{opacity:0;pointer-events:none}html[data-intro=seen] .phone-intro{display:none}.phone-intro-stack{left:0;right:0;top:var(--liney,50%);perspective:1400px;opacity:0;transition:opacity .4s var(--ease-fade);position:absolute}.phone-intro-stack.is-in{opacity:1}.phone-intro-hello{font-size:84px;font-weight:var(--weight-medium);letter-spacing:-.03em;white-space:nowrap;color:var(--ink);transform:translate(-50%, -50%) rotateX(var(--fall,0deg));transition:transform .6s var(--ease-film), opacity .2s var(--ease-fade);line-height:1;position:absolute;top:0;left:50%}.phone-intro-hello.is-out{opacity:0}.phone-intro-rule{opacity:0;height:1.5px;transition:opacity .2s var(--ease-fade);position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.phone-intro-rule.is-on{opacity:1}.phone-intro-fill{background:var(--ink);border-radius:2px;height:100%;margin:0 auto}.phone-intro-pct{transform:translateX(calc(var(--half,0px) - 100%));letter-spacing:.04em;color:var(--ink-muted);font-variant-numeric:tabular-nums;opacity:0;transition:opacity .2s var(--ease-fade);font-size:11px;position:absolute;top:10px;left:50%}.phone-intro-pct.is-in{opacity:1}@media (prefers-reduced-motion:reduce){.phone-caption,.phone-controls,.phone-caption-title,.phone-caption-meta,.phone-glow,.phone-intro{transition:none}}
.about{padding-bottom:var(--space-12)}.about-section{padding-top:var(--space-12)}.about-section .eyebrow{margin:0 0 var(--space-3)}.about-h2{margin:0 0 var(--space-2);font-size:32px;font-weight:var(--weight-semibold);letter-spacing:-.02em;text-wrap:balance;line-height:1.15}.about-lead{max-width:60ch;font-size:var(--text-body);line-height:var(--leading-body);color:var(--ink-muted);margin:0}.about-who{gap:var(--space-9);padding-top:var(--space-10);grid-template-columns:360px minmax(0,1fr);align-items:start;display:grid}.about-portrait{aspect-ratio:9/11;background:var(--case-media);width:360px;box-shadow:inset 0 0 0 1px var(--image-edge);border-radius:24px;overflow:hidden}.about-portrait img{object-fit:cover;width:100%;height:100%;display:block}.about-hello{margin:0 0 var(--space-5);font-size:var(--text-hero)}.about-who-text p:not(.eyebrow){margin:0 0 var(--space-4);max-width:50ch;font-size:18px;line-height:1.5}.about-caps{margin-top:var(--space-5);flex-wrap:wrap;gap:10px;display:flex}.home-cap.is-glass.about-cap{gap:8px;height:44px;padding:0 18px;font-size:15px;text-decoration:none}.about-rows{margin:var(--space-6) 0 0;border-top:1px solid var(--ink-08);padding:0;list-style:none}.about-row{gap:var(--space-6);border-bottom:1px solid var(--ink-08);color:inherit;border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;margin:0 -8px;padding:22px 8px;text-decoration:none;display:grid}.about-row:hover{background:var(--surface-alt)}.about-row:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.about-row-text{flex-direction:column;min-width:0;display:flex}.about-row-title{font-size:20px;font-weight:var(--weight-semibold);letter-spacing:-.01em}.about-row-note{color:var(--ink-muted);margin-top:4px;font-size:14px}.about-row-where{gap:0 var(--space-2);color:var(--ink-muted);white-space:nowrap;font-size:14px;display:flex}.about-row-where span:not(:last-child):after{content:"·";margin-left:var(--space-2)}.about-row-go{font-size:14px;font-weight:var(--weight-medium);color:var(--ink-muted);transition:color .16s var(--ease-ui);align-items:center;gap:6px;display:inline-flex}.about-row-go svg{transition:transform .16s var(--ease-ui)}.about-row:hover .about-row-go,.about-row:focus-visible .about-row-go{color:var(--ink)}.about-row:hover .about-row-go svg,.about-row:focus-visible .about-row-go svg{transform:translate(2px,-2px)}.about-tiles{margin:var(--space-7) 0 0;gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.about-tile{background:var(--surface-alt);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-06);border-radius:20px;overflow:hidden}.about-tile-pic{aspect-ratio:16/10;background:var(--case-media)}.about-tile-pic img{object-fit:cover;width:100%;height:100%;display:block}.about-tile-body{padding:22px 24px 26px}.about-tile-kind{font-size:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px;display:block}.about-tile-title{font-size:20px;font-weight:var(--weight-semibold);letter-spacing:-.01em;margin:0 0 6px}.project-row-meta.about-tile-meta{text-transform:none;letter-spacing:0;color:var(--ink-muted);margin-top:0;font-size:15px}.about-ask{justify-content:space-between;align-items:center;gap:var(--space-5);margin-top:var(--space-5);background:var(--surface-alt);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-06);border-radius:16px;padding:22px 28px;display:flex}.about-ask p{font-size:18px;font-weight:var(--weight-medium);letter-spacing:-.01em;margin:0}.about-cap-ink{background:var(--ink);height:48px;color:var(--surface);font-size:15px;font-weight:var(--weight-medium);white-space:nowrap;transition:box-shadow .12s var(--ease-ui), transform .12s var(--ease-ui);border:1px solid #0000;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 22px;text-decoration:none;display:inline-flex;box-shadow:0 1px 2px #0003,0 8px 18px -8px #0006}.about-cap-ink:hover,.about-cap-ink:focus-visible{box-shadow:0 2px 4px #0003,0 12px 24px -10px #00000073}.about-cap-ink:active,.about-cap-ink.is-pressed{transform:translateY(1px);box-shadow:0 1px 2px #0003}.about-cap-ink:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.about-cap-ink .wave-hand{color:var(--surface);margin-right:0}.about-cap-ink .wave-hand svg{filter:none}.about-cap-ink:hover .wave-hand svg,.about-cap-ink:focus-visible .wave-hand svg{animation:wave-hand .7s var(--ease-ui) 1}@media (prefers-reduced-motion:reduce){.about-cap-ink:hover .wave-hand svg,.about-cap-ink:focus-visible .wave-hand svg{animation:none}}.about-skills{margin:var(--space-6) 0 0;gap:14px var(--space-6);grid-template-columns:200px minmax(0,1fr);display:grid}.about-skill{display:contents}.about-skill dt.eyebrow{margin:0;padding-top:7px}.about-skill dd{flex-wrap:wrap;gap:8px;margin:0;display:flex}.about-skill dd span{background:var(--surface-alt);height:32px;box-shadow:inset 0 0 0 1px var(--ink-06);border-radius:999px;align-items:center;padding:0 12px;font-size:14px;display:inline-flex}.about-exp-list{margin:var(--space-6) 0 0;flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.about-exp-item{background:var(--surface-alt);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-06), 0 1px 2px var(--ink-06);border-radius:14px}.about-exp-item.is-open{background:var(--surface);box-shadow:inset 0 0 0 1px var(--ink-10), 0 12px 28px -16px var(--ink-18)}.about-exp-row{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;grid-template-columns:48px 1fr 16px;align-items:center;column-gap:16px;padding:14px 18px;display:grid}.about-exp-row:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.about-exp-row .exp-logo,.about-exp-row .exp-logo.is-fill img{width:48px;height:48px}.about-exp-row .exp-logo img{filter:none}.about-exp-row .exp-date{margin-top:4px}.about-exp-chev{color:var(--ink-muted);transition:transform .2s var(--ease-ui)}.about-exp-item.is-open .about-exp-chev{transform:rotate(180deg)}.about-exp-panel .exp-open-body{padding:0 18px 18px}.about-exp-panel .exp-open-body>p:first-child{margin-top:0}@media (prefers-reduced-motion:reduce){.about-exp-chev,.about-row-go,.about-row-go svg,.about-cap-ink{transition:none}}@media (max-width:809px){.about{padding-bottom:var(--space-10)}.about-section{padding-top:var(--space-9)}.about-who{gap:var(--space-5);padding-top:var(--space-6);grid-template-columns:1fr}.about-portrait{aspect-ratio:1;border-radius:50%;width:120px}.about-h2{font-size:28px}.about-who-text p:not(.eyebrow){font-size:var(--text-body)}.about-row{grid-template-columns:1fr;gap:6px;padding:18px 8px}.about-row-go{display:none}.about-tiles{grid-template-columns:1fr;gap:14px}.about-ask{flex-direction:column;align-items:flex-start;padding:20px}.about-skills{grid-template-columns:1fr;gap:8px 0}.about-skill dt.eyebrow{padding-top:14px}.about-exp-row{grid-template-columns:40px 1fr 16px;column-gap:12px;padding:12px 14px}.about-exp-row .exp-logo,.about-exp-row .exp-logo.is-fill img{width:40px;height:40px}.about-exp-panel .exp-open-body{padding:0 14px 16px}}
.phone-notice-scrim{--notice-scrim:#00000047;z-index:200;background:var(--notice-scrim);animation:phone-notice-fade .25s var(--ease-ui) both;position:fixed;inset:0}.phone-notice{--notice-card:var(--surface);--notice-edge:var(--ink-08);z-index:201;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));background:var(--notice-card);color:var(--ink);box-shadow:inset 0 1px 0 var(--cap-rim), 0 0 0 1px var(--notice-edge), 0 24px 60px -20px #00000073;animation:phone-notice-rise .3s var(--ease-ui) both;border-radius:24px;padding:22px 20px 18px;position:fixed}.phone-notice-icon.approach-well{margin-bottom:var(--space-4)}.phone-notice-title{font-size:20px;font-weight:var(--weight-semibold);letter-spacing:-.01em;margin:0;line-height:1.25}.phone-notice-body{color:var(--ink-muted);margin:8px 0 0;font-size:16px;line-height:1.5}.phone-notice-actions{gap:8px;margin-top:18px;display:flex}.phone-notice-btn{border:1px solid var(--ink-14);background:var(--notice-card);height:48px;color:var(--ink);font:inherit;font-size:16px;font-weight:var(--weight-medium);cursor:pointer;box-shadow:inset 0 1px 0 var(--cap-rim), 0 1px 2px var(--ink-10);border-radius:999px;flex:1;justify-content:center;align-items:center;gap:8px;display:inline-flex}.phone-notice-btn.is-primary{background:var(--ink);color:var(--surface);box-shadow:none;border-color:#0000}.phone-notice-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@keyframes phone-notice-fade{0%{opacity:0}}@keyframes phone-notice-rise{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){.phone-notice-scrim,.phone-notice{animation:none}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .phone-notice-scrim{--notice-scrim:#0000009e}:root:not([data-theme=light]) .phone-notice{--notice-card:var(--surface-alt);--notice-edge:#ffffff24}}:root[data-theme=dark] .phone-notice-scrim{--notice-scrim:#0000009e}:root[data-theme=dark] .phone-notice{--notice-card:var(--surface-alt);--notice-edge:#ffffff24}
.work-list{z-index:55;padding:40px var(--gutter);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.work-list-backdrop{animation:work-list-fade .25s var(--ease-ui) both;background:#0000004d;position:absolute;inset:0}.work-list-sheet{overscroll-behavior:contain;background:var(--surface);width:min(980px,100%);max-height:calc(100dvh - 80px);color:var(--ink);box-shadow:inset 0 1px 0 var(--cap-rim), 0 0 0 1px var(--ink-08), 0 40px 100px -30px #00000073;animation:work-list-rise .3s var(--ease-ui) both;border-radius:24px;padding:36px 44px 20px;position:relative;overflow-y:auto}.work-list-top{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.work-list-title{font-size:28px;font-weight:var(--weight-semibold);letter-spacing:-.02em;margin:0}.work-list-lead{font-size:var(--text-meta);color:var(--ink-muted);margin:4px 0 0}.work-list-tools{align-items:center;gap:12px;display:flex}.work-list-switch .view-switch-button{padding:0 14px}.work-list-close{border:1px solid var(--ink-14);background:var(--surface);width:40px;height:40px;color:var(--ink);cursor:pointer;box-shadow:inset 0 1px 0 var(--cap-rim), 0 1px 2px var(--ink-10);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.work-list-rows{margin:0;padding:0;list-style:none}.work-list-rows li+li,.work-list-rows li:first-child{border-top:1px solid var(--ink-08)}.work-list-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:content-box;background:0 0;border:0;border-radius:12px;grid-template-columns:150px 1fr auto;align-items:center;gap:22px;margin:0 -8px;padding:12px 8px;text-decoration:none;display:grid}.work-list-row:hover{background:var(--surface-alt)}.work-list-row:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.work-list-thumb{background:var(--case-media);width:150px;height:84px;box-shadow:0 0 0 1px var(--image-edge);border-radius:8px;overflow:hidden}.work-list-thumb img{object-fit:cover;width:100%;height:100%;display:block}.work-list-text{flex-direction:column;min-width:0;display:flex}.work-list-index{letter-spacing:.04em;color:var(--ink-muted);font-size:12px}.work-list-name{font-size:19px;font-weight:var(--weight-semibold);letter-spacing:-.01em;margin-top:2px}.project-row-meta.work-list-meta{margin-top:4px}.work-list-go{color:var(--ink-muted);font-size:14px;font-weight:var(--weight-medium);white-space:nowrap;transition:color .16s var(--ease-ui);align-items:center;gap:6px;padding-right:4px;display:inline-flex}.work-list-go svg{transition:transform .16s var(--ease-ui)}.work-list-go-label{opacity:0;transition:opacity .16s var(--ease-ui), transform .16s var(--ease-ui);transform:translate(6px)}.work-list-row:hover .work-list-go,.work-list-row:focus-visible .work-list-go{color:var(--ink)}.work-list-row:hover .work-list-go-label,.work-list-row:focus-visible .work-list-go-label{opacity:1;transform:none}.work-list-row:hover .work-list-go svg,.work-list-row:focus-visible .work-list-go svg{transform:translate(3px)}@keyframes work-list-fade{0%{opacity:0}}@keyframes work-list-rise{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.work-list-backdrop,.work-list-sheet{animation:none}.work-list-go,.work-list-go svg,.work-list-go-label{transition:none}}
html[data-dialog=open]{overflow:hidden}.project-row-trigger{cursor:pointer}.project-row-trigger:focus-visible{outline-offset:-3px}.project-dialog{z-index:50;padding:var(--space-7) var(--space-5);place-items:center;display:grid;position:fixed;inset:0}.project-dialog-backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:dialog-fade .4s var(--ease-ui) both;position:absolute;inset:0}.project-dialog-stage{width:min(860px,100%);display:grid;position:relative}.project-dialog-smear{object-fit:cover;filter:blur(64px)saturate(1.3);opacity:.85;pointer-events:none;width:124%;height:124%;position:absolute;inset:-12%}.project-dialog-card{width:100%;max-height:min(84vh, calc(100vh - var(--space-7) * 2));background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);border-radius:var(--radius-card);box-shadow:inset 0 0 0 1px var(--glass-edge), inset 0 1px 0 var(--glass-rim), 0 24px 64px -24px #00000059;position:relative;overflow-y:auto}.project-dialog-media,.project-dialog-gallery,.project-dialog-actions{animation:dialog-fade .35s var(--ease-ui) .28s both}.project-dialog.is-closing .project-dialog-backdrop{animation:dialog-fade .25s var(--ease-ui) reverse both}.project-dialog.is-closing .project-dialog-media,.project-dialog.is-closing .project-dialog-gallery,.project-dialog.is-closing .project-dialog-actions,.project-dialog.is-closing .project-dialog-body{animation:dialog-fade .12s var(--ease-ui) reverse both}.project-dialog-media{width:calc(100% - var(--card-pad) * 2);margin:var(--card-pad) var(--card-pad) 0}.project-dialog-media img,.project-dialog-media.is-slot,.project-dialog-media .tile-video{border-radius:var(--radius-card-image)}.project-dialog-gallery{padding:0 var(--card-pad)}.project-dialog-body{padding:var(--space-6) var(--space-6) var(--space-8);animation:dialog-body-in var(--dur-slow) var(--ease-out) .36s both}.project-dialog-title{margin-top:var(--space-3);font-size:var(--text-card-title);font-weight:var(--weight-semibold);line-height:var(--leading-title);letter-spacing:var(--tracking-tight);text-wrap:balance}.project-dialog-switch-row{margin-top:var(--space-5);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-dialog-switch{margin-top:0}.project-dialog-open{height:48px;margin-top:var(--space-4);background-color:var(--ink);color:var(--surface);font:inherit;font-size:15px;font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition-property:box-shadow,transform;transition-duration:.12s;transition-timing-function:var(--ease-ui);border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:0 24px;display:inline-flex;box-shadow:0 1px 2px #0003,0 8px 18px -8px #0006}.project-dialog-open svg{transition:transform .16s var(--ease-ui);display:block}.project-dialog-open:hover,.project-dialog-open:focus-visible{box-shadow:0 2px 4px #0003,0 12px 24px -10px #00000073}.project-dialog-open:hover svg,.project-dialog-open:focus-visible svg{transform:translate(3px)}.project-dialog-open:active{transform:translateY(1px);box-shadow:0 1px 2px #0003}@media (prefers-reduced-motion:reduce){.project-dialog-open,.project-dialog-open svg{transition:none}}.project-dialog-open.is-soon{background-color:var(--well);color:var(--ink-muted);cursor:default;box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06), 0 1px 0 var(--cap-rim-soft);margin-bottom:0}.project-dialog-open.is-soon:hover,.project-dialog-open.is-soon:active{box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06), 0 1px 0 var(--cap-rim-soft);transform:none}.project-dialog-panel{overflow:hidden}.project-dialog-section{margin-top:var(--space-6);max-width:var(--measure)}:is(.project-dialog-section:has(.approach-tiles),.project-dialog-section:has(.compare),.project-dialog-section:has(.link-preview)){max-width:none}:is(.project-dialog-section:has(.compare) p,.project-dialog-section:has(.link-preview) p){max-width:var(--measure)}.project-dialog-section p,.project-dialog-section .role{margin-top:var(--space-2)}.project-dialog-actions{top:var(--space-4);right:var(--space-4);gap:var(--space-2);display:flex;position:absolute}.project-dialog-action{border:1px solid var(--ink-14);background-color:var(--surface);width:36px;height:36px;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;transition-duration:.12s;transition-timing-function:var(--ease-ui);border-radius:999px;place-items:center;display:grid}.project-dialog-action:focus-visible,.project-dialog-open:focus-visible{outline:none}.project-dialog-action:hover,.project-dialog-action:focus-visible{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 -6px var(--ink-18)}.project-dialog-action.is-off{opacity:.45;cursor:default}.project-dialog-action.is-off:hover,.project-dialog-action.is-off:active{background-color:var(--surface);box-shadow:inset 0 1px 0 var(--cap-rim), inset 0 0 0 1px var(--ink-06);transform:none}.project-dialog-tip{z-index:1;align-items:center;gap:var(--space-2);border:1px solid var(--pill-glass-edge);background:var(--pill-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);height:32px;box-shadow:inset 0 1px 0 var(--glass-rim), inset 0 -1px 0 var(--ink-06), 0 8px 24px -12px #00000059;white-space:nowrap;font-size:13px;font-weight:var(--weight-medium);color:var(--ink-muted);text-shadow:0 1px 0 var(--cap-rim), 0 -1px 0 var(--engrave);pointer-events:none;opacity:0;transition-property:opacity,transform;transition-duration:.15s;transition-timing-function:var(--ease-ui);border-radius:999px;padding:0 12px;line-height:1;display:none;position:absolute;top:calc(100% + 8px);right:44px;transform:translateY(-4px)}.project-dialog-tip:before{content:"";border-left:1px solid var(--glass-rim);border-top:1px solid var(--glass-rim);background:var(--pill-glass);width:9px;height:9px;position:absolute;top:-5px;right:13px;transform:rotate(45deg)}.project-dialog-tip svg{filter:drop-shadow(0 1px 0 var(--cap-rim));display:block}@media (hover:hover){.project-dialog-tip{display:inline-flex}}.project-dialog-tip.is-shown{opacity:1;transition-delay:.3s;transform:none}.project-dialog-action:active{background-color:var(--well);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06);transform:translateY(1px)}@keyframes dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes dialog-body-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (max-width:809px){.project-dialog{padding:var(--space-4)}.project-dialog-card{--card-pad:8px;--radius-card-image:6px;border-radius:12px}.project-dialog-body{padding:var(--space-5) var(--space-5) var(--space-7)}.project-dialog-switch{overscroll-behavior-x:contain;scrollbar-width:none;max-width:100%;display:inline-flex;overflow-x:auto}.project-dialog-switch::-webkit-scrollbar{display:none}.project-dialog-switch .view-switch-button{white-space:nowrap;flex:none;padding:0 7px;font-size:12px}.project-dialog-open{height:44px;padding:0 20px;font-size:14px}.project-dialog-action{width:44px;height:44px}.project-dialog-tip{right:52px}}@media (prefers-reduced-motion:reduce){.project-dialog-backdrop,.project-dialog-card,.project-dialog-tip{transition:none}.project-dialog-media,.project-dialog-gallery,.project-dialog-actions,.project-dialog-body{animation-duration:.01ms;animation-delay:0s}}
.gallery{margin:var(--card-pad) 0 0}.gallery-viewport{overflow:hidden}.gallery-track{will-change:transform;transition:transform .7s var(--ease-ui);gap:16px;display:flex}.gallery-card{isolation:isolate;aspect-ratio:4/3;background:var(--surface-alt);border-radius:var(--radius-card-image);outline:1px solid var(--image-edge);outline-offset:-1px;cursor:default;flex:0 0 100%;justify-content:center;align-items:center;max-height:46vh;padding:16px 5%;display:flex;position:relative;overflow:hidden;container-type:size}.gallery-smear{z-index:0;object-fit:cover;width:140%;height:140%;position:absolute;inset:-20%}.gallery-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}.gallery-sharp{z-index:2;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.gallery-sharp img,.gallery-sharp .tile-video{height:min(100cqh, calc(100cqw / var(--ratio)));width:auto;aspect-ratio:var(--ratio);border-radius:var(--radius-card-image);display:block;box-shadow:0 12px 32px -16px #00000073}.gallery-sharp img{object-fit:cover;outline:1px solid var(--image-edge);outline-offset:-1px}.gallery-controls{margin-top:var(--space-4);justify-content:center;align-items:center;gap:12px;display:flex}.gallery-dots{background-color:var(--well);height:44px;box-shadow:inset 0 1px 2px var(--ink-10), inset 0 0 0 1px var(--ink-06), 0 1px 0 var(--cap-rim-soft);border-radius:22px;align-items:center;padding:0 12px;display:flex}.gallery-dot{cursor:pointer;background:0 0;border:0;place-items:center;width:24px;height:24px;padding:0;transition:width .25s linear;display:grid}.gallery-dot.is-current{width:64px}.gallery-dot-bar{background:var(--ink-42);border-radius:10px;width:8px;height:8px;transition:width .25s linear;display:block;position:relative;overflow:hidden}.gallery-dot.is-current .gallery-dot-bar{width:48px}.gallery-dot-fill{transform-origin:0;background:var(--ink);position:absolute;inset:0;transform:scaleX(0)}.gallery-dot.is-current .gallery-dot-fill{animation:6.15s linear forwards gallery-progress}@keyframes gallery-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.gallery-play{border:1px solid var(--ink-14);background-color:var(--surface);width:44px;height:44px;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;transition-duration:.12s;transition-timing-function:var(--ease-ui);border-radius:50%;place-items:center;padding:0;display:grid}.gallery-play:hover,.gallery-play:focus-visible{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 -6px var(--ink-18)}.gallery-play:active{background-color:var(--well);box-shadow:inset 0 2px 4px var(--ink-14), inset 0 0 0 1px var(--ink-06);transform:translateY(1px)}.gallery-play svg{display:block}@media (prefers-reduced-motion:reduce){.gallery-dot.is-current .gallery-dot-fill{animation:none;transform:scaleX(1)}}
