.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}:root:root{--page: #111416;--bg: #111416;--ink: #edf1f6;--fg: #edf1f6;--muted: #a7afba;--quiet: #8b96a4;--faint: #8b96a4;--line: rgba(210, 221, 235, .18);--line-strong: rgba(210, 221, 235, .34);--accent: #ff755f;--accent-ink: #17110e;--surface: #191e22;--site-gutter: clamp(1rem, 4vw, 4.75rem);--header-height: 5rem;--gutter: var(--site-gutter);--body: "Hanken Grotesk Variable", Arial, sans-serif;--editorial: "Newsreader Variable", Georgia, serif;--display: "Anybody Variable", Arial Black, sans-serif;--mono: "Fragment Mono", Consolas, monospace;color-scheme:dark;font-family:var(--body);font-synthesis:none;font-size:clamp(100%,calc(.5rem + .625vw),200%)}:root:root[data-theme=light]{--page: #ece9e2;--bg: #ece9e2;--ink: #171a1d;--fg: #171a1d;--muted: #59616b;--quiet: #59616b;--faint: #59616b;--line: rgba(23, 26, 29, .2);--line-strong: rgba(23, 26, 29, .35);--accent: #a72f23;--accent-ink: #fffaf2;--surface: #e2e0da;color-scheme:light}html:root,html:root body{background:var(--page);color:var(--ink)}html:root body{display:flex;flex-direction:column;min-height:100svh;line-height:1.55}html:root body:before{content:none}body>main{flex:1}body .work-subpage,body .project-page{width:100%;margin-inline:auto;padding-inline:var(--site-gutter);background:transparent}body .hero,body .venture{width:100%;margin-inline:auto}body :is(.masthead,.work-subpage__mast,.project-page__mast){position:relative;z-index:2;min-height:var(--header-height);display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto;align-items:center;gap:1rem;padding:0;border:0;border-bottom:1px solid var(--line);background:transparent}body .masthead{width:calc(100% - 2 * var(--site-gutter));margin-inline:auto}body :is(.wordmark,.work-subpage__brand,.project-page__back){width:max-content;min-height:44px;display:inline-flex;align-items:center;gap:.7rem;color:var(--ink);text-decoration:none}body :is(.wordmark,.work-subpage__brand,.project-page__back) strong{font:760 1.25rem/1 var(--display);letter-spacing:-.04em}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav){display:flex;align-items:center;gap:clamp(.65rem,1.5vw,1.5rem);padding:0;border:0}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav) a{position:relative;display:inline-flex;justify-content:center;align-items:center;min-width:44px;min-height:var(--header-height);color:var(--muted);font:650 .82rem/1 var(--body);text-decoration:none}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav) a:after{content:"";position:absolute;left:0;right:0;bottom:17px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;box-shadow:none;transition:transform .2s ease}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav) a:is(:hover,[aria-current=page]){color:var(--ink)}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav) a:is(:hover,[aria-current=page]):after{transform:scaleX(1)}body :is(.masthead__meta,.work-subpage__utilities,.project-page__utilities){justify-self:end;display:flex;align-items:center;gap:.4rem;color:var(--muted)}body :is(.theme-toggle,.work-subpage__theme,.project-page__theme){min-width:max(52px,3.25rem);min-height:max(44px,2.75rem);padding:.45rem .6rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:2px;background:transparent;color:var(--ink);font:650 .72rem/1 var(--body);cursor:pointer}body :is(.theme-toggle,.work-subpage__theme,.project-page__theme):hover{background:var(--ink);color:var(--page)}body :is(.sound-toggle,.site-sound-toggle){width:max(44px,2.75rem);height:max(44px,2.75rem);border:1px solid var(--line);border-radius:50%;color:var(--muted);transform:none}body :is(.sound-toggle,.site-sound-toggle) svg{width:1.25rem;height:1.25rem}body :is(.sound-toggle,.site-sound-toggle)[aria-pressed=true]{border-color:var(--accent);color:var(--ink)}body :is(.sound-toggle,.site-sound-toggle):hover{border-color:var(--accent);color:var(--ink)}body .projects-page__intro h1,body .contact-page__intro h1{font:620 clamp(3.6rem,7.6vw,7.6rem)/.95 var(--editorial);letter-spacing:-.045em}body .about-specs__intro{display:block}body .about-specs__intro h2{font-size:clamp(2rem,3.5vw,3.3rem)}body .site-footer{flex-shrink:0;width:100%;margin:0;padding:1rem var(--site-gutter);background:#ff755f;color:#17110e;font:.68rem/1.5 var(--mono)}.site-footer__inner{width:100%;margin-inline:auto;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.75rem clamp(1.5rem,2.5vw,2.5rem)}.site-footer nav{display:flex;flex-wrap:wrap;align-items:center;gap:0 clamp(.75rem,1.6vw,1.6rem)}.site-footer a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0;margin:0;color:inherit;font:inherit;white-space:nowrap;text-decoration:none}.site-footer__elsewhere{justify-self:start}.site-footer a:is(:hover,:focus-visible,[aria-current=page]),.site-footer a[data-elsewhere-link]{text-decoration:underline;text-underline-offset:.4em;text-decoration-thickness:1px}.site-footer__ownership{justify-self:end;display:grid;gap:.3rem;text-align:right}.site-footer__ownership strong{font:700 .8rem/1.2 var(--body)}.site-footer__ownership span{margin-left:.3rem;font:.6rem var(--mono)}.site-footer__ownership small{font:.56rem/1.6 var(--mono)}body .site-footer__ownership{grid-column:-2 / -1}@media(max-width:900px){.site-footer__inner{grid-template-columns:1fr auto;grid-auto-rows:minmax(44px,auto);gap:.5rem .75rem}.site-footer nav{grid-column:1 / -1;justify-content:space-between;gap:.1rem}body .site-footer__ownership{grid-column:2}}:where(a[href],button,input,textarea,select,summary):focus-visible{outline:2px solid currentColor;outline-offset:4px}@media(max-width:760px){body :is(.masthead,.work-subpage__mast,.project-page__mast){grid-template-columns:1fr auto;grid-template-rows:44px 52px;gap:0;padding-top:.5rem}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav){grid-column:1 / -1;grid-row:2;width:100%;justify-content:space-between;gap:.1rem;overflow:visible}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav) a{min-height:52px;font-size:.75rem}body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav) a:after{bottom:6px}body :is(.masthead__meta,.work-subpage__utilities,.project-page__utilities){grid-column:2;grid-row:1}}@media(prefers-reduced-motion:reduce){body :is(.masthead__nav,.work-subpage__nav,.project-page__site-nav) a:after{transition:none}}@font-face{font-family:Anybody Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 150%;src:url(/assets/anybody-vietnamese-standard-normal-9GtAklmW.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Anybody Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 150%;src:url(/assets/anybody-latin-ext-standard-normal-BaQ5u-C4.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Anybody Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 150%;src:url(/assets/anybody-latin-standard-normal-CHqbGEEr.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-cyrillic-ext-wght-normal-D_UHSL_T.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fragment Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fragment-mono-cyrillic-ext-400-normal-CISJmM_h.woff2) format("woff2"),url(/assets/fragment-mono-cyrillic-ext-400-normal-el9zM3A6.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fragment Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fragment-mono-latin-ext-400-normal-BbKYyvR9.woff2) format("woff2"),url(/assets/fragment-mono-latin-ext-400-normal-CT4YFKeK.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fragment Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fragment-mono-latin-400-normal-yxdJ5AmL.woff2) format("woff2"),url(/assets/fragment-mono-latin-400-normal-BYwT3kSJ.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}sol-mark{--sol-mark-size: 2rem;--sol-mark-accent: var(--hub-accent, var(--accent, #ff755f));--sol-mark-page: var(--page, #111416);width:var(--sol-mark-size);height:var(--sol-mark-size);display:inline-grid;flex:0 0 auto;place-items:center;color:var(--sol-mark-accent);line-height:0}.sol-mark__svg{width:100%;height:100%;overflow:visible;color:inherit}[data-theme=light] sol-mark{--sol-mark-highlight: #ad4535;--sol-mark-mid: #d46c50}[data-theme=light] .sol-world-mark sol-mark{--sol-mark-highlight: #ffd6b0;--sol-mark-mid: #ff9477}.sol-mark__orbits,.sol-mark__drift,.sol-mark__heart,.sol-mark__satellite{transform-box:view-box;transform-origin:center}@media(prefers-reduced-motion:no-preference){.sol-mark__drift{animation:sol-mark-drift 14s ease-in-out infinite alternate}.sol-mark__heart{animation:sol-mark-heart 7s ease-in-out infinite}.sol-mark__facet{animation:sol-mark-light 7s ease-in-out infinite}.sol-mark__shine{animation:sol-mark-gradient-light 8s ease-in-out infinite}.sol-mark__copper{animation:sol-mark-gradient-copper 8s ease-in-out -4s infinite}.sol-mark__orbits{transition:transform .9s cubic-bezier(.22,1,.36,1)}.sol-mark__satellite{animation:sol-mark-orbit 32s linear infinite}a:is(:hover,:focus-visible) sol-mark .sol-mark__orbits,button:is(:hover,:focus-visible) sol-mark .sol-mark__orbits,sol-mark[variant=showcase]:hover .sol-mark__orbits{transform:rotate(8deg)}sol-mark[variant=showcase] .sol-mark__satellite{animation:sol-mark-orbit 28s linear infinite}}@keyframes sol-mark-orbit{to{transform:rotate(360deg)}}@keyframes sol-mark-drift{0%{transform:rotate(-4deg)}to{transform:rotate(6deg)}}@keyframes sol-mark-heart{0%,to{transform:scale(1)}50%{transform:scale(1.065)}}@keyframes sol-mark-light{0%,to{opacity:.3}50%{opacity:.65}}@keyframes sol-mark-gradient-light{0%,to{stop-color:var(--sol-mark-highlight, #ffd6b0)}50%{stop-color:var(--sol-mark-mid, #ff9477)}}@keyframes sol-mark-gradient-copper{0%,to{stop-color:#ef6c55}50%{stop-color:var(--sol-mark-highlight, #ffd6b0)}}.hub-profile__identity{min-width:0;display:flex;align-items:center;gap:.72rem}.hub-mark-link{--sol-mark-size: clamp(2.8rem, 10vw, 3.55rem);min-width:48px;min-height:48px;display:inline-grid;flex:0 0 auto;place-items:center;color:var(--hub-fg, currentColor);text-decoration:none}.hub-mark-link:hover,.hub-mark-link:focus-visible{color:var(--hub-fg, currentColor)}.wordmark{gap:.68rem}.wordmark sol-mark{--sol-mark-size: 2.125rem}.work-subpage__brand{gap:.64rem}.work-subpage__brand sol-mark{--sol-mark-size: 2rem}.project-page__back{gap:.44rem}.project-page__back sol-mark{--sol-mark-size: 1.875rem}.project-page__back:before{display:none}.sol-world-mark{--sol-mark-size: clamp(2.4rem, 5vw, 3.25rem);position:fixed;z-index:120;top:max(1rem,env(safe-area-inset-top));left:max(1rem,env(safe-area-inset-left));width:max(48px,var(--sol-mark-size));height:max(48px,var(--sol-mark-size));display:grid;place-items:center;color:#f4f0e8;filter:drop-shadow(0 2px 12px rgba(0,0,0,.36));text-decoration:none}.sol-world-mark sol-mark{--sol-mark-page: #111416;--sol-mark-accent: #ff755f}.work-field{position:fixed;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:.82}body>main,body>.project-page,body>.work-subpage,body>footer{position:relative;z-index:1}:root[data-theme=light] .work-field{opacity:.46}@media(prefers-reduced-motion:reduce){.work-field{opacity:.42}}:is(main,section,article,header,footer,[role=tabpanel],[tabindex="-1"]):focus{outline:none!important}:where(a,button,summary):focus:not(:focus-visible){outline:none}.blog-entry:focus-visible{outline:none}.blog-entry:focus-visible h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}.elsewhere-link:focus-visible{outline:none}.elsewhere-link:focus-visible .elsewhere-link__label>span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}.blog-years a:focus-visible,.blog-timeline__end a:focus-visible{outline:none}.blog-timeline__end a:focus-visible{text-decoration:underline;text-underline-offset:.3em}@view-transition{navigation:none}:root{view-transition-name:none}::view-transition{pointer-events:none;mask-image:radial-gradient(circle at var(--wave-mask-x, 0px) var(--wave-mask-y, 0px),transparent max(0px,calc(var(--wave-mask-radius, 0px) - .5px)),#000 calc(var(--wave-mask-radius, 0px) + .5px))}::view-transition-group(*){animation:none;pointer-events:none}::view-transition-image-pair(*){isolation:auto;pointer-events:none}::view-transition-old(*){animation:page-wave-hold var(--route-duration) linear both;mix-blend-mode:normal;opacity:1;pointer-events:none}::view-transition-new(*){animation:none;pointer-events:none}@keyframes page-wave-hold{0%,to{opacity:1}}[data-page-wave=in]{clip-path:var(--wave-clip, none);will-change:clip-path}html.route-arriving :is([data-reveal],.reveal){opacity:1!important;transform:none!important;transition:none!important}html:is(.route-arriving,.field-departing) .work-field{opacity:1}@property --field-erase{syntax: "<length>"; inherits: true; initial-value: 0px;}html.field-departing{animation:field-page-depart .9s linear both}html.field-departing body>[data-field-content]{mask-image:radial-gradient(circle at var(--field-local-x) var(--field-local-y),transparent max(0px,calc(var(--field-erase) - 35px)),#000 calc(var(--field-erase) + 15px))}@keyframes field-page-depart{to{--field-erase: var(--route-radius)}}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}[data-page-wave]{opacity:1!important;clip-path:none!important}html.field-departing{animation:none}html.field-departing body>[data-field-content]{mask-image:none}}.route-announcer{position:fixed;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}
