.site,html[data-surface=public]{--paper: oklch(98% .004 80);--paper-2: oklch(95.5% .006 80);--ink: oklch(15% .006 60);--ink-2: oklch(38% .006 60);--ink-3: oklch(47% .006 60);--rule: oklch(86% .006 80);--focus: var(--ink);color-scheme:light}@media (prefers-color-scheme: dark){.site,html[data-surface=public]{--paper: oklch(14% .006 60);--paper-2: oklch(18% .007 60);--ink: oklch(95% .005 80);--ink-2: oklch(74% .006 80);--ink-3: oklch(64% .006 80);--rule: oklch(29% .007 60);color-scheme:dark}}html[data-surface=public],html[data-surface=public] body{color:var(--ink);background:var(--paper)}.site{color:var(--ink);background:var(--paper);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;min-height:100dvh;-webkit-font-smoothing:antialiased}.site :focus-visible{outline:2px solid var(--focus);outline-offset:3px}.site ::-moz-selection{background:var(--ink);color:var(--paper)}.site ::selection{background:var(--ink);color:var(--paper)}.skip{position:absolute;inset-inline-start:var(--page-gutter);top:var(--space-sm);z-index:var(--z-tooltip);padding:var(--space-xs) var(--space-sm);background:var(--ink);color:var(--paper);font-size:var(--text-sm);font-weight:500;text-decoration:none;transform:translateY(-200%)}.skip:focus-visible{transform:none;outline-offset:0}.tnum{font-variant-numeric:tabular-nums}.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--page-gutter)}.nav__brand{font-family:var(--font-display);font-weight:700;font-size:var(--text-md);letter-spacing:-.02em;line-height:1;color:inherit;text-decoration:none;white-space:nowrap;padding-block:var(--space-xs)}.nav__links{display:none;gap:var(--space-xl);margin:0;padding:0;list-style:none}.nav__link{display:inline-flex;align-items:baseline;gap:.6ch;min-height:2.75rem;padding-block:var(--space-xs);font-size:var(--text-sm);font-weight:500;line-height:1;color:inherit;text-decoration:none;white-space:nowrap}.nav__index{font-size:var(--text-xs);color:var(--ink-3);font-variant-numeric:tabular-nums}.nav__label{text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.26em;transition:text-decoration-color var(--dur-micro) var(--ease-out)}.nav__link:hover .nav__label,.nav__link:focus-visible .nav__label,.nav__link[aria-current=page] .nav__label{text-decoration-color:currentColor}.nav__link:active .nav__label{opacity:.7}.nav__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid var(--ink);color:inherit;font:inherit;font-size:var(--text-sm);font-weight:500;line-height:1;min-height:2.75rem;padding:0 var(--space-md);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.nav__toggle:hover,.nav__toggle[aria-expanded=true]{background:var(--ink);color:var(--paper)}.nav__toggle:active{transform:translateY(1px)}.nav__sheet{display:none;flex:0 0 calc(100% + 2 * var(--page-gutter));margin:var(--space-md) calc(-1 * var(--page-gutter)) calc(-1 * var(--space-md));border-top:1px solid var(--ink)}.nav__sheet[data-open=true]{display:block}.nav__sheet ul{margin:0;padding:0;list-style:none}.nav__sheet .nav__link{display:flex;justify-content:space-between;width:100%;padding:var(--space-md) var(--page-gutter);border-bottom:1px solid var(--rule);font-size:var(--text-md)}@media (min-width: 48rem){.nav__links{display:flex}.nav__toggle,.nav__sheet{display:none!important}}.hero{container-type:inline-size;display:grid;gap:var(--space-lg);padding:var(--space-lg) var(--page-gutter) var(--space-2xl)}.hero__spec{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-lg);margin:0;padding:var(--space-sm) 0;list-style:none;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);font-size:var(--text-sm);font-weight:500;line-height:1.3}.hero__spec li{display:inline-flex;align-items:baseline;gap:var(--space-lg)}.hero__spec li+li:before{content:"·";color:var(--ink-3)}.hero__name{margin:0 0 0 -.04em;font-family:var(--font-display);font-weight:700;font-size:clamp(3.25rem,19vw,24rem);font-size:clamp(3.25rem,100cqw / 5.15,24rem);line-height:.9;letter-spacing:-.055em;min-width:0;overflow-wrap:anywhere;text-wrap:balance}.rule{margin:0 var(--page-gutter);border:0;border-top:1px solid var(--rule)}.rule--thick{border-top:var(--rule-thick) solid var(--ink)}.about{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-lg);padding:var(--space-2xl) var(--page-gutter) var(--space-xl)}.about__text{grid-column:1 / -1;margin:0;max-width:var(--measure);font-size:var(--text-lg);line-height:1.4;letter-spacing:-.012em;text-wrap:pretty}.about__photo{grid-column:1 / -1;margin:0;max-width:18rem}.about__photo img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;-o-object-fit:cover;object-fit:cover;border:1px solid var(--rule);background:var(--paper-2)}@media (min-width: 60rem){.about__text{grid-column:5 / 13}.about__photo{grid-column:1 / 4;grid-row:1;max-width:none}}.sec{padding:var(--space-3xl) var(--page-gutter) var(--space-2xl)}.sec--tight{padding-top:var(--space-2xl)}.sec__head{display:grid;gap:var(--space-xs);max-width:var(--measure);margin-bottom:var(--space-xl)}.sec__title{margin:0;font-family:var(--font-display);font-size:var(--text-display);font-weight:700;line-height:.98;letter-spacing:-.035em;min-width:0;overflow-wrap:anywhere}.sec__lede{margin:0;color:var(--ink-2);font-size:var(--text-md);text-wrap:pretty}.empty{max-width:var(--measure);padding:var(--space-lg);border:1px solid var(--rule)}.empty__title{margin:0 0 var(--space-2xs);font-weight:600}.empty__text{margin:0;color:var(--ink-2);font-size:var(--text-sm)}.work__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}.work__item{border-bottom:1px solid var(--rule)}.work__link{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding-block:var(--space-lg);color:inherit;text-decoration:none}.work__link:focus-visible{outline-offset:6px}.work__media{margin:0}.work__media img{display:block;width:100%;height:auto;aspect-ratio:2 / 1;-o-object-fit:cover;object-fit:cover;border:1px solid var(--rule);background:var(--paper-2)}.work__placeholder{container-type:inline-size;display:flex;align-items:flex-end;aspect-ratio:2 / 1;padding:var(--space-md);border:1px solid var(--rule);background:var(--paper-2);color:var(--ink);overflow:clip}.work__placeholder-title{min-width:0;font-family:var(--font-display);font-weight:300;font-size:clamp(2rem,13cqw,5.5rem);line-height:.9;letter-spacing:-.04em;overflow-wrap:anywhere}.work__body{display:grid;align-content:start;gap:var(--space-sm)}.work__index{margin:0;font-size:var(--text-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}.work__title{display:flex;align-items:baseline;gap:.4ch;margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:1.05;letter-spacing:-.02em;min-width:0;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:.12em;transition:text-decoration-color var(--dur-micro) var(--ease-out)}.work__arrow{display:inline-block;font-size:.7em;transition:transform var(--dur-short) var(--ease-out)}.work__link:hover .work__title,.work__link:focus-visible .work__title{text-decoration-color:currentColor}.work__link:hover .work__arrow{transform:translate(.15em,-.15em)}.work__link:active .work__title{opacity:.7}.work__desc{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;margin:0;max-width:48ch;color:var(--ink-2);text-wrap:pretty}.work__tags{display:flex;flex-wrap:wrap;gap:0 .75ch;margin:0;font-size:var(--text-sm);color:var(--ink-3)}.work__tags span+span:before{content:"·";margin-inline-end:.75ch}@media (min-width: 48rem){.work__link{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-lg);padding-block:var(--space-xl)}.work__media{grid-column:1 / 8}.work__body{grid-column:8 / 13}.work__item:nth-child(2n) .work__media{grid-column:6 / 13;order:2}.work__item:nth-child(2n) .work__body{grid-column:1 / 6;order:1}}.cv__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}.cv__row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-xs) var(--space-lg);padding-block:var(--space-lg);border-bottom:1px solid var(--rule)}.cv__when{margin:0;font-size:var(--text-sm);font-weight:500;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.cv__company{margin:0;font-family:var(--font-display);font-size:var(--text-md);font-weight:600;line-height:1.2;letter-spacing:-.01em}.cv__company a{color:inherit;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.18em;transition:text-decoration-color var(--dur-micro) var(--ease-out)}.cv__company a:hover,.cv__company a:focus-visible{text-decoration-color:currentColor}.cv__role,.cv__loc{margin:0;font-size:var(--text-sm);color:var(--ink-2)}.cv__what{max-width:var(--measure);text-wrap:pretty}.cv__what p,.cv__what ul,.cv__what ol{margin:0 0 var(--space-xs)}.cv__what ul,.cv__what ol{padding-left:1.1rem}.cv__what li+li{margin-top:var(--space-2xs)}.cv__what>:last-child{margin-bottom:0}@media (min-width: 48rem){.cv__row{grid-template-columns:8.5rem 15rem minmax(0,1fr);padding-block:var(--space-xl)}.cv__when{padding-top:.2em}}@media (min-width: 60rem){.cv__row{grid-template-columns:10rem 18rem minmax(0,1fr)}}.svc__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}.svc__row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-sm) var(--space-lg);padding-block:var(--space-lg);border-bottom:1px solid var(--rule)}.svc__num{margin:0;font-size:var(--text-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}.svc__title{margin:0 0 var(--space-xs);font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:1.1;letter-spacing:-.02em}.svc__desc{margin:0;max-width:var(--measure);color:var(--ink-2);text-wrap:pretty}.svc__images{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs);margin:0}.svc__images img{display:block;width:100%;height:auto;aspect-ratio:4 / 3;-o-object-fit:cover;object-fit:cover;border:1px solid var(--rule);background:var(--paper-2)}@media (min-width: 48rem){.svc__row{grid-template-columns:4rem minmax(0,1fr) minmax(0,22rem);align-items:start;padding-block:var(--space-xl)}}.partners__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;padding:0;list-style:none;background:var(--rule);border:1px solid var(--rule)}.partners__cell{display:grid;place-items:center;min-height:7rem;padding:var(--space-md);background:var(--paper);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-align:center;line-height:1.2}@media (min-width: 48rem){.partners__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 60rem){.partners__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.rev__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}.rev__item{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md) var(--space-xl);padding-block:var(--space-xl);border-bottom:1px solid var(--rule)}.rev__quote{margin:0;max-width:var(--measure);font-size:var(--text-lg);line-height:1.4;letter-spacing:-.012em;text-wrap:pretty}.rev__item--highlighted .rev__quote{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;line-height:1.25;letter-spacing:-.02em}.rev__who{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm)}.rev__avatar{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--ink);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.rev__name{margin:0;font-weight:600}.rev__role{margin:0;color:var(--ink-2)}@media (min-width: 48rem){.rev__item{grid-template-columns:minmax(0,1fr) 16rem;align-items:start}}.faq__list{margin:0;padding:0;list-style:none;max-width:48rem;border-top:1px solid var(--ink)}.faq__item{border-bottom:1px solid var(--rule)}.faq__q{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;min-height:3.25rem;padding:var(--space-md) 0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:inherit;font:inherit;font-family:var(--font-display);font-size:var(--text-md);font-weight:600;line-height:1.25;text-align:left;cursor:pointer}.faq__q:focus-visible{outline-offset:2px}.faq__sign{position:relative;flex-shrink:0;width:.9rem;height:.9rem}.faq__sign:before,.faq__sign:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;background:currentColor}.faq__sign:before{height:1px}.faq__sign:after{width:1px;transition:transform var(--dur-short) var(--ease-in-out)}.faq__q[aria-expanded=true] .faq__sign:after{transform:scaleY(0)}.faq__a{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows var(--dur-long) var(--ease-in-out),visibility 0s linear var(--dur-long)}.faq__a[data-open=true]{grid-template-rows:1fr;visibility:visible;transition-delay:0s}.faq__a>div{overflow:hidden}.faq__a p{margin:0 0 var(--space-md);max-width:var(--measure);color:var(--ink-2);text-wrap:pretty}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5ch;min-height:2.75rem;padding:0 var(--space-lg);border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:var(--text-sm);font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),transform .1s var(--ease-out)}.btn:hover{background:var(--paper);color:var(--ink)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline-offset:3px}.btn[aria-disabled=true],.btn:disabled{opacity:.55;cursor:not-allowed}.foot{margin-top:var(--space-2xl);padding:0 var(--page-gutter)}.foot__inner{container-type:inline-size;padding-top:var(--space-2xl);border-top:var(--rule-thick) solid var(--ink)}.foot__line{margin:0 0 var(--space-xl);max-width:24ch;font-family:var(--font-display);font-size:var(--text-display);font-weight:700;line-height:.98;letter-spacing:-.035em;min-width:0;overflow-wrap:anywhere;text-wrap:balance}.foot__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md) var(--space-xl);margin-bottom:var(--space-2xl)}.foot__mail{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.02em;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;overflow-wrap:anywhere;transition:text-decoration-thickness var(--dur-micro) var(--ease-out)}.foot__mail:hover,.foot__mail:focus-visible{text-decoration-thickness:2px}.foot__meta{display:grid;gap:var(--space-sm);padding-block:var(--space-md);border-top:1px solid var(--rule);font-size:var(--text-sm);color:var(--ink-2)}.foot__social{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-lg);margin:0;padding:0;list-style:none}.foot__social a{color:inherit;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.22em;white-space:nowrap;transition:text-decoration-color var(--dur-micro) var(--ease-out)}.foot__social a:hover,.foot__social a:focus-visible{text-decoration-color:currentColor}.foot__copy{margin:0}.foot__giant-wrap{overflow:clip}.foot__giant{margin:var(--space-xl) 0 -.14em -.04em;font-family:var(--font-display);font-size:clamp(3.25rem,19vw,24rem);font-size:clamp(3.25rem,100cqw / 5.15,24rem);font-weight:300;line-height:.8;letter-spacing:-.05em;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (min-width: 48rem){.foot__meta{grid-template-columns:minmax(0,1fr) auto;align-items:baseline}}.nf{display:grid;gap:var(--space-lg);padding:var(--space-3xl) var(--page-gutter) var(--space-4xl);max-width:var(--measure)}.nf__code{margin:0;font-size:var(--text-sm);font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums}.nf__title{margin:0;font-family:var(--font-display);font-size:var(--text-display);font-weight:700;line-height:.98;letter-spacing:-.035em;overflow-wrap:anywhere}.nf__text{margin:0;color:var(--ink-2);font-size:var(--text-md)}@media (prefers-reduced-motion: reduce){.work__arrow,.faq__a,.faq__sign:after,.btn,.nav__toggle{transition-duration:1ms!important;transition-delay:0s!important}}
