@property --cca-lx{syntax:"<percentage>";inherits:true;initial-value:74%}@property --cca-ly{syntax:"<percentage>";inherits:true;initial-value:6%}@property --cca-fx{syntax:"<percentage>";inherits:true;initial-value:30%}.cred__grid{grid-template-columns:minmax(0,1fr);gap:56px;margin-top:40px;display:grid}.cred-group{min-width:0}@media (min-width:960px){.cred__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"card awards""publication education";align-items:start;column-gap:clamp(48px,5vw,80px)}.cca{grid-area:card}.cred-group[data-group=awards]{grid-area:awards}.cred-group[data-group=education]{grid-area:education}.cred-group[data-group=publication]{grid-area:publication}}.cca{--cca-hi:color-mix(in srgb, var(--accent) 84%, rgb(var(--shadow-ink)));--cca-base:color-mix(in srgb, var(--accent) 72%, rgb(var(--shadow-ink)));--cca-deep:color-mix(in srgb, var(--accent) 46%, rgb(var(--shadow-ink)));--cca-light:color-mix(in srgb, var(--on-accent) 22%, transparent);--cca-band:color-mix(in srgb, var(--on-accent) 24%, transparent);--cca-glare:color-mix(in srgb, var(--on-accent) 26%, transparent);--cca-halo:0 0 10px rgba(var(--shadow-ink), .32), 0 1px 1px rgba(var(--shadow-ink), .28);--cca-shade:rgba(var(--shadow-ink), .34);--cca-well:rgba(var(--shadow-ink), .2);--cca-well-strong:rgba(var(--shadow-ink), .3);--cca-rule:color-mix(in srgb, var(--on-accent) 13%, transparent);--cca-ring:color-mix(in srgb, var(--on-accent) 32%, transparent);--cca-ice:color-mix(in srgb, var(--accent) 34%, var(--on-accent));--cca-px:.5;--cca-py:.5;--cca-lx:74%;--cca-ly:6%;--cca-fx:30%;perspective:1100px;width:100%;position:relative}.cca:before{content:"";background:radial-gradient(closest-side, rgba(var(--shadow-ink), .3), rgba(var(--shadow-ink), 0));height:44px;transform:translateX(calc((.5 - var(--cca-px)) * 28px));transition:transform .9s var(--ease-spring);pointer-events:none;border-radius:50%;position:absolute;bottom:-22px;left:10%;right:10%}.cca__tilt{transform:rotateX(calc((.5 - var(--cca-py)) * 9deg)) rotateY(calc((var(--cca-px) - .5) * 13deg));transform-style:preserve-3d;transition:transform .9s var(--ease-spring);position:relative}.cca__shell{padding:var(--bezel);border-radius:var(--r-card);background:color-mix(in srgb, var(--accent) 10%, var(--tint));box-shadow:inset 0 0 0 1px var(--line), inset 0 1px 0 var(--gloss), calc((.5 - var(--cca-px)) * 26px) calc(30px + (.5 - var(--cca-py)) * 14px) 60px -34px rgba(var(--shadow-ink), .6), 0 22px 44px -30px color-mix(in srgb, var(--accent) 55%, transparent);transition:box-shadow .9s var(--ease-spring)}.cca__card{isolation:isolate;aspect-ratio:1.586;border-radius:var(--r-core);color:var(--on-accent);background:linear-gradient(180deg, color-mix(in srgb, var(--on-accent) 6%, transparent) 0%, transparent 30%), linear-gradient(152deg, var(--cca-hi) 0%, var(--cca-base) 46%, var(--cca-deep) 100%);box-shadow:inset 0 1px 0 var(--cca-ring), inset 0 0 0 1px var(--cca-rule);grid-template-rows:auto 1fr auto;row-gap:14px;padding:clamp(20px,2.1vw,30px) clamp(20px,2.3vw,32px);display:grid;position:relative;overflow:clip}.cca__card:before{content:"";border-radius:inherit;background:repeating-radial-gradient(circle at 104% 112%, transparent 0 10px, var(--cca-rule) 10px 11px), repeating-radial-gradient(circle at -6% -24%, transparent 0 14px, var(--cca-rule) 14px 15px);-webkit-mask-image:linear-gradient(120deg, transparent 4%, var(--on-accent) 58%, transparent 96%);-webkit-mask-image:linear-gradient(120deg, transparent 4%, var(--on-accent) 58%, transparent 96%);mask-image:linear-gradient(120deg, transparent 4%, var(--on-accent) 58%, transparent 96%);opacity:.9;pointer-events:none;position:absolute;inset:0}.cca__foil,.cca__grating,.cca__glare{pointer-events:none;position:absolute}.cca__foil{background-image:linear-gradient(112deg, transparent 0%, var(--cca-shade) 14%, transparent 22%, transparent 28%, var(--cca-band) 35%, transparent 41%, var(--cca-shade) 49%, transparent 56%, var(--cca-light) 62%, transparent 67%, var(--cca-shade) 76%, transparent 84%, transparent 100%);background-size:260% 260%;background-position:var(--cca-fx) 40%;mix-blend-mode:overlay;transition:background-position .9s var(--ease-spring);inset:0}.cca__grating{background-image:repeating-linear-gradient(68deg, var(--cca-light) 0 1px, transparent 1px 5px);-webkit-mask-image:radial-gradient(38% 52% at var(--cca-lx) var(--cca-ly), var(--on-accent), transparent 72%);-webkit-mask-image:radial-gradient(38% 52% at var(--cca-lx) var(--cca-ly), var(--on-accent), transparent 72%);mask-image:radial-gradient(38% 52% at var(--cca-lx) var(--cca-ly), var(--on-accent), transparent 72%);mix-blend-mode:soft-light;opacity:.5;inset:0}.cca__glare{background-image:radial-gradient(34% 46% at var(--cca-lx) var(--cca-ly), var(--cca-glare), transparent 72%);mix-blend-mode:overlay;opacity:.6;transition:opacity .6s var(--ease-out);inset:0}.cca__top,.cca__title,.cca__foot{min-width:0;position:relative}.cca__top{align-items:center;gap:12px;display:flex}.cca__issuer,.cca__name,.cca__valid,.cca__expired{text-shadow:var(--cca-halo)}.cca__issuer{letter-spacing:-.01em;font-size:15px;font-weight:600}.cca__title{font-family:var(--font-display);align-content:center;gap:10px;display:grid}.cca__acronym{letter-spacing:-.045em;color:var(--on-accent);background-image:linear-gradient(100deg, var(--on-accent) 0%, var(--on-accent) 34%, var(--cca-ice) 44%, var(--on-accent) 52%, var(--cca-ice) 62%, var(--on-accent) 72%, var(--on-accent) 100%);background-size:300% 100%;background-position:var(--cca-fx) 0;-webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 0 rgba(var(--shadow-ink), .22));transition:background-position .9s var(--ease-spring);-webkit-background-clip:text;background-clip:text;justify-self:start;padding-bottom:.04em;font-size:clamp(46px,5vw,76px);font-weight:600;line-height:.92}.cca[data-tilt] .cca__acronym{transition-duration:.18s;transition-timing-function:var(--ease-out)}.cca__name{max-width:26ch;font-family:var(--font-text);letter-spacing:-.01em;font-size:clamp(16px,1.25vw,18px);font-weight:600;line-height:1.3}.cca__foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;display:flex}.cca__valid,.cca__expired{font-size:15px;font-weight:500;line-height:1.35}.cca[data-validity=expired] .cca__valid{display:none}.cca__links{flex-wrap:wrap;gap:8px;display:flex}.cca__btn{min-height:var(--tap);border-radius:var(--r-pill);background:var(--cca-well);box-shadow:inset 0 0 0 1px var(--cca-ring);color:var(--on-accent);white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-base) var(--ease-spring), background-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:0 18px;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.cca__btn--solid{background:var(--on-accent);background-image:linear-gradient(180deg, var(--gloss), var(--gloss-clear) 60%);box-shadow:inset 0 -2px 0 var(--shade-edge), 0 10px 22px -14px rgba(var(--shadow-ink), .7);color:var(--cca-base)}.cca__btn:hover{transform:translateY(-2px)}.cca__btn:not(.cca__btn--solid):hover{background:var(--cca-well-strong)}.cca__btn:active{transform:translateY(1px)scale(.98)}.cca :focus-visible{outline-color:var(--on-accent)}.cca[data-tilt]{--cca-lx:calc(var(--cca-px) * 100%);--cca-ly:calc(var(--cca-py) * 100%);--cca-fx:calc(var(--cca-px) * 100%)}.cca[data-tilt] .cca__tilt{transform:rotateX(calc((.5 - var(--cca-py)) * 9deg)) rotateY(calc((var(--cca-px) - .5) * 13deg)) translateZ(14px);transition-duration:.18s;transition-timing-function:var(--ease-out);will-change:transform}.cca[data-tilt] .cca__shell,.cca[data-tilt]:before,.cca[data-tilt] .cca__foil{transition-duration:.18s;transition-timing-function:var(--ease-out)}.cca[data-tilt] .cca__glare{opacity:1}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.cca:not([data-tilt]){animation:linear both cca-glint;animation-timeline:view();animation-range:entry exit}}}@keyframes cca-glint{0%{--cca-lx:96%;--cca-ly:-12%;--cca-fx:0%}to{--cca-lx:6%;--cca-ly:112%;--cca-fx:100%}}.cred-group__title{border-bottom:1px solid var(--line);letter-spacing:-.02em;margin-bottom:18px;padding-bottom:12px;font-size:18px;font-weight:500;line-height:1.2}.cred-list{gap:22px;display:grid}.cred-row{grid-template-columns:5.25rem minmax(0,1fr);align-items:start;column-gap:20px;display:grid}.cred-when{font-family:var(--font-display)}.cred-when__in{flex-direction:column;align-items:flex-start;display:inline-flex}.cred-when__year{letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:20px;font-weight:500;line-height:24px}.cred-when__sub{font-family:var(--font-text);color:var(--ink-2);white-space:nowrap;font-size:13px;font-weight:500;line-height:18px}.cred-row__body{min-width:0}.cred-row__title{font-family:var(--font-text);letter-spacing:-.01em;text-wrap:pretty;font-size:17px;font-weight:600;line-height:24px}.cred-row[data-kind=publication] .cred-row__title{max-width:56ch;font-size:16px;line-height:1.45}.cred-row__by{color:var(--ink-2);font-size:15px;line-height:22px}.cred-row__line{max-width:60ch;color:var(--ink);margin-top:6px;font-size:15px;line-height:1.5}.cred-more{min-height:var(--tap);min-width:var(--tap);border-radius:var(--r-pill);color:var(--ink);white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-content:center;align-items:center;margin:-10px 0 -10px 4px;padding:0 11px;font-size:13px;font-weight:600;line-height:18px;display:inline-flex;position:relative}.cred-more:before{content:"";border-radius:var(--r-pill);background:var(--tint-strong);height:24px;box-shadow:inset 0 0 0 1px var(--line);transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-base) var(--ease-spring);margin-top:-12px;position:absolute;top:50%;left:0;right:0}.cred-more__label{position:relative}.cred-more:hover:before{background:var(--line)}.cred-more:active:before{transform:scale(.97)}.cred-more:focus-visible{outline:none}.cred-more:focus-visible:before{outline:2px solid var(--accent-ink);outline-offset:3px}@media (any-pointer:coarse){.cred-more{margin-block:-8px;padding-inline:13px;font-size:13.5px}.cred-more:before{height:28px;margin-top:-14px}}.cred-pop{border:var(--bezel) solid var(--tint-strong);border-radius:var(--r-card);background:var(--surface) padding-box;width:min(460px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:0 40px 80px -30px rgba(var(--shadow-ink), .6);margin:auto;padding:18px 20px 20px;overflow:auto}.cred-pop::backdrop{background:var(--scrim)}@media (prefers-reduced-motion:no-preference){.cred-pop:popover-open{animation:cred-pop-in var(--dur-base) var(--ease-out)}}@keyframes cred-pop-in{0%{opacity:0;transform:translateY(8px)}}.cred-pop__head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;display:flex}.cred-pop__title{font-family:var(--font-display);letter-spacing:-.02em;font-size:17px;font-weight:500;line-height:1.25}.cred-pop__close{min-height:var(--tap);border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);background:0 0;border:0;flex:none;margin:-6px -8px -6px 0;padding:0 16px;font-size:14px;font-weight:500}.cred-pop__close:hover{color:var(--ink);background:var(--tint-strong)}.cred-pop__text{font-size:15px;line-height:1.55}.cred-pop__text+.cred-pop__text{margin-top:8px}.cred-pop__list{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.cred-pop__list li{border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap;padding:0 12px;font-size:13.5px;font-weight:500;line-height:30px}@media (max-width:959px){.cca{max-width:560px}}@media (max-width:767px){.cred__grid{gap:40px;margin-top:28px}.cca__card{aspect-ratio:auto;row-gap:16px}.cred-group__title{margin-bottom:14px;padding-bottom:10px}.cred-list{gap:20px}.cred-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title when""by by""line line";column-gap:16px}.cred-row__body{display:contents}.cred-when{grid-area:when}.cred-when__in{flex-direction:row;align-items:baseline;gap:5px}.cred-row__title{grid-area:title}.cred-row__by{grid-area:by}.cred-row__line{grid-area:line}.cred-when__year{font-size:18px}.cred-row__title{font-size:16px}.cred-row__line,.cred-row__by{font-size:14.5px}}@media (max-width:380px){.cca__btn{padding:0 14px;font-size:14px}}@media (prefers-reduced-motion:reduce){.cca__tilt,.cca[data-tilt] .cca__tilt,.cca:before,.cca__btn:hover,.cca__btn:active,.cred-more:active:before{transform:none}}@media (forced-colors:active){.cca__card{border:1px solid canvastext}.cca__card:before,.cca__foil,.cca__grating,.cca__glare,.cca:before{display:none}.cca__acronym{-webkit-text-fill-color:currentColor;filter:none;background:0 0}.cca__btn,.cred-more:before,.cred-pop__close,.cred-pop__list li{border:1px solid}}
.xp{--xp-rail:52px;--xp-node-w:14px;--xp-node-h:22px;--xp-node-top:4px;--xp-node-mid:calc(var(--xp-node-top) + var(--xp-node-h) / 2);--xp-gap:52px;--xp-line-w:2px}.xp-title{margin-bottom:40px}.xp-list[role=list]{padding:0 0 0 var(--xp-rail);margin:0;list-style:none;position:relative}.xp-stop{padding-bottom:var(--xp-gap);scroll-margin-top:var(--space-6);position:relative}.xp-stop[data-last]{padding-bottom:0}.xp-node,.xp-mark{width:var(--xp-node-w);height:var(--xp-node-h);border-radius:var(--r-pill);background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line-strong), 0 6px 12px -8px rgba(var(--shadow-ink), .55);display:block;position:relative}.xp-node{left:calc(var(--xp-rail) * -1);top:var(--xp-node-top);position:absolute}.xp-node:after,.xp-mark:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 2px var(--accent);position:absolute;inset:0}.xp-stop--now>.xp-node:after,.xp-client--now .xp-mark:after{background-color:var(--accent);background-image:linear-gradient(180deg, var(--gloss-accent), var(--gloss-clear) 65%);box-shadow:inset 0 1px 0 var(--gloss-edge), inset 0 -2px 0 var(--shade-edge)}.xp-node--gap{box-shadow:none;background:0 0}.xp-node--gap:after{content:none}.xp-stop--now>.xp-node:before{content:"";border-radius:inherit;box-shadow:0 0 0 2px var(--accent);opacity:0;position:absolute;inset:0}.xp-seg{left:calc(var(--xp-rail) * -1 + (var(--xp-node-w) - var(--xp-line-w)) / 2);top:var(--xp-node-mid);bottom:calc(var(--xp-node-mid) * -1);width:var(--xp-line-w);background:var(--line-strong);position:absolute}.xp-seg:before{content:"";background:var(--accent);transform-origin:50% 0;position:absolute;inset:0}.xp-seg:after{content:"";pointer-events:none;background:radial-gradient(4px 7px at 50% 8px, var(--accent) 96%, transparent), radial-gradient(7px 10px at 50% 8px, var(--bg) 96%, transparent);background-repeat:no-repeat;width:16px;height:100%;margin-left:-8px;position:absolute;top:-8px;left:50%;transform:translateY(100%)}.xp-org{letter-spacing:-.025em;font-size:clamp(20px,1.75vw,25px);line-height:1.16}.xp-role{margin-top:var(--space-3);letter-spacing:-.005em;max-width:36ch;font-size:16px;font-weight:600;line-height:1.4}.xp-when{margin-top:var(--space-1);color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:14.5px;line-height:1.45}.xp-points{gap:14px;margin:0;padding:0;list-style:none;display:grid}.xp-points>li{text-wrap:pretty;--xp-dot:6px;max-width:66ch;padding-left:22px;font-size:17px;line-height:1.6;position:relative}.xp-points>li:before{content:"";left:3px;top:calc(.8em + 1px - var(--xp-dot) / 2);width:var(--xp-dot);height:var(--xp-dot);border-radius:var(--r-pill);background:var(--accent);position:absolute}.xp-body{min-width:0}.xp-more{margin-top:20px}.xp-more__toggle{align-items:center;gap:var(--space-3);min-height:var(--tap);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;color:var(--ink);background-color:var(--surface);background-image:linear-gradient(180deg, var(--gloss), var(--gloss-clear) 60%);box-shadow:inset 0 0 0 1px var(--line), 0 10px 20px -16px rgba(var(--shadow-ink), .6);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:transform var(--dur-base) var(--ease-spring);padding:0 6px 0 18px;font-size:15px;font-weight:600;line-height:1;list-style:none;display:inline-flex}.xp-more__toggle::-webkit-details-marker{display:none}.xp-more__toggle::marker{content:""}.xp-more__toggle:hover{transform:translateY(-1px)}.xp-more__toggle:active{transform:translateY(1px)scale(.98)}.xp-more[open] .xp-more__closed,.xp-more:not([open]) .xp-more__open{display:none}.xp-more__icon{border-radius:var(--r-pill);background:var(--tint-strong);flex:none;width:32px;height:32px;position:relative}.xp-more__icon:before,.xp-more__icon:after{content:"";border-radius:var(--r-pill);width:12px;height:2px;transition:transform var(--dur-base) var(--ease-spring);background:currentColor;margin:-1px 0 0 -6px;position:absolute;top:50%;left:50%}.xp-more__icon:after{transform:rotate(90deg)}.xp-more[open] .xp-more__icon:after{transform:rotate(0)}.xp-more__body{margin-top:var(--space-5)}.xp-words{margin-top:var(--space-5);gap:var(--space-3);padding-left:22px;display:grid}.xp-points+.xp-words{margin-top:var(--space-6)}.xp-more__body>.xp-words:first-child{margin-top:0}.xp-words__head{color:var(--ink-2);font-size:14px;font-weight:600}.xp-words__text{max-width:66ch;color:var(--ink);font-size:16px;line-height:1.62}.xp-stop:has(+.xp-stop--gap){padding-bottom:0}.xp-stop--gap{padding-block:var(--xp-gap-pad,36px)}.xp-gap{align-items:baseline;column-gap:var(--space-3);color:var(--ink-2);flex-wrap:wrap;row-gap:0;padding-top:1px;font-size:15px;line-height:1.45;display:flex}.xp-gap>.xp-when{font-size:inherit;font-variant-numeric:normal;margin-top:0}.xp-stop--gap>.xp-seg{-webkit-mask-image:repeating-linear-gradient(180deg, var(--ink) 0 6px, transparent 6px 11px);-webkit-mask-image:repeating-linear-gradient(180deg, var(--ink) 0 6px, transparent 6px 11px);mask-image:repeating-linear-gradient(180deg, var(--ink) 0 6px, transparent 6px 11px)}.xp-stop--gap>.xp-seg:after{content:none}.xp-stop:has(+.xp-stop--gap)>.xp-seg:after{content:none}.xp-clients{z-index:var(--z-raised);background:color-mix(in srgb, var(--ink) 4%, var(--bg));margin-top:36px;position:relative}.xp-clients__list[role=list]{grid-template-columns:minmax(0,1fr);row-gap:32px;margin:0;padding:30px 32px;list-style:none;display:grid}.xp-client{min-width:0;scroll-margin-top:var(--space-6)}.xp-client__head{align-items:center;column-gap:var(--space-3);grid-template-columns:auto minmax(0,1fr);display:grid}.xp-mark{--xp-node-w:11px;--xp-node-h:17px;grid-area:1/1}.xp-client__name{letter-spacing:-.02em;grid-area:1/2;font-size:19px;line-height:1.2}.xp-client__head .xp-when{grid-area:2/2}.xp-client__points{margin-top:var(--space-4)}.xp-clients .xp-more__toggle{background-color:var(--bg)}.xp-replay{max-width:560px;margin:var(--space-5) 0 0;min-width:0}.xp-replay__shell{box-shadow:inset 0 0 0 1px var(--line), 0 24px 48px -36px rgba(var(--shadow-ink), .5)}.xp-replay__core{background:var(--bg);box-shadow:inset 0 1px 2px rgba(var(--shadow-ink), .08);gap:14px;padding:16px 20px 14px;display:grid}.xp-say{max-width:44ch;color:var(--ink);text-wrap:pretty;font-size:15.5px;font-weight:500;line-height:1.45}.xp-toggle{border-radius:var(--r-pill);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line), 0 6px 18px -12px rgba(var(--shadow-ink), .5);justify-self:start;gap:2px;padding:3px;display:inline-flex}.xp-toggle__btn{border-radius:var(--r-pill);white-space:nowrap;min-height:38px;color:var(--ink-2);-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0 15px;font-size:14px;font-weight:500;line-height:1;position:relative}.xp-toggle__btn:before{content:"";position:absolute;inset:-3px 0}.xp-toggle__btn:hover{color:var(--ink)}.xp-toggle__btn[aria-pressed=true]{background:var(--ink);color:var(--bg)}.xp-gw{grid-template-columns:5fr 3fr 4fr;grid-template-areas:".gap.""bar bar bar""term.renew";align-items:end;row-gap:8px;margin-top:6px;font-size:13.5px;line-height:1.35;display:grid}.xp-gw__bar{grid-area:bar;grid-template-columns:subgrid;border-radius:var(--r-pill);column-gap:3px;height:18px;display:grid;overflow:clip}.xp-gw__seg{background:color-mix(in srgb, var(--ink-2) 42%, var(--bg))}.xp-gw__gap{background:repeating-linear-gradient(135deg, var(--line-strong) 0 2px, transparent 2px 6px);box-shadow:inset 0 0 0 1.5px var(--line-strong);position:relative;overflow:clip}.xp-gw__grace{background-color:var(--accent);background-image:linear-gradient(180deg, var(--gloss-accent), var(--gloss-clear) 70%);transform-origin:0;position:absolute;inset:0}.xp-replay[data-state=before] .xp-gw__grace{transform:scaleX(0)}.xp-gw__label{min-width:0;color:var(--ink-2);text-wrap:balance}.xp-gw__label--term{text-align:right;grid-area:term;align-self:start;padding-right:10px}.xp-gw__label--renew{grid-area:renew;align-self:start;padding-left:10px}.xp-gw__label--gap{white-space:nowrap;color:var(--ink);grid-area:gap;justify-items:center;font-weight:600;display:grid}.xp-gw__label--gap>.xp-gw__state--after{color:var(--accent-ink)}.xp-gw__state{grid-area:1/1}.xp-replay[data-state=before] .xp-gw__state--after,.xp-replay:not([data-state=before]) .xp-gw__state--before{visibility:hidden;opacity:0}.xp-verdict{border-top:1px solid var(--line);padding-top:12px;font-size:15px;font-weight:600;line-height:1.35;display:grid}.xp-verdict__text{align-items:center;gap:10px;display:inline-flex}.xp-verdict__icon{border-radius:var(--r-pill);flex:none;width:18px;height:18px;position:relative}.xp-verdict__icon--flag{box-shadow:inset 0 0 0 1.75px var(--ink)}.xp-verdict__icon--flag:after{content:"";border-radius:var(--r-pill);background:var(--ink);height:2px;position:absolute;top:8px;left:4.5px;right:4.5px}.xp-verdict__icon--clear{background:var(--accent)}.xp-verdict__icon--clear:after{content:"";border:solid var(--on-accent);border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:3.5px;left:6.5px;transform:rotate(45deg)}@media (min-width:1024px){.xp-entry{grid-template-columns:minmax(0,330px) minmax(0,1fr);column-gap:64px;display:grid}.xp-meta{grid-column:1}.xp-body{grid-column:2}.xp-clients{grid-column:1/-1}}@media (min-width:1180px){.xp-client--replay .xp-client__entry{grid-template:"head replay""points replay""more replay"1fr/minmax(0,1fr) minmax(0,440px);column-gap:56px;display:grid}.xp-client--replay .xp-client__head{grid-area:head}.xp-client--replay .xp-client__points{grid-area:points}.xp-client--replay .xp-replay{grid-area:replay;margin-top:0}.xp-client--replay .xp-more{grid-area:more;align-self:start}}@media (min-width:768px){.xp-clients__list[role=list]{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}.xp-client--replay{border-bottom:1px solid var(--line);grid-column:1/-1;padding-bottom:32px}}@media (min-width:768px) and (max-width:1023px){.xp-body{margin-top:var(--space-4)}}@media (max-width:767px){.xp{--xp-rail:28px;--xp-node-w:12px;--xp-node-h:19px;--xp-node-top:3px;--xp-gap:36px}.xp-title{margin-bottom:28px}.xp-org{font-size:20px}.xp-role{margin-top:6px;font-size:15.5px}.xp-when{margin-top:2px;font-size:14px}.xp-body{margin-top:12px}.xp-points{gap:12px}.xp-points>li{--xp-dot:5px;padding-left:17px;font-size:15.5px;line-height:1.5}.xp-points>li:before{left:2px;top:calc(.75em + 1px - var(--xp-dot) / 2)}.xp-words{padding-left:17px}.xp-more{margin-top:14px}.xp-clients{margin-left:calc(var(--xp-rail) * -1);margin-top:24px}.xp-clients__list[role=list]{row-gap:26px;padding:18px 14px 20px}.xp-client__points{margin-top:12px}.xp-client--replay{border-bottom:1px solid var(--line);padding-bottom:26px}.xp-replay{margin-top:16px}.xp-replay__core{gap:12px;padding:14px 14px 12px}.xp-gw{grid-template-columns:4fr 3fr 4fr;font-size:13px}.xp-verdict{font-size:14.5px}.xp-say{font-size:15px}.xp-stop--gap{--xp-gap-pad:26px}.xp-gap{column-gap:10px;font-size:13.5px}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.xp-seg{view-timeline:--xp-seg block}.xp-seg:before,.xp-seg:after{animation:linear both xp-draw;animation-timeline:--xp-seg;animation-range:cover 40vh cover calc(100% - 60vh)}.xp-seg:after{animation-name:xp-tip}.xp-node,.xp-mark{view-timeline:--xp-mark block}.xp-node:after,.xp-mark:after{animation:linear both xp-light;animation-timeline:--xp-mark;animation-range:cover calc(40vh - 6px) cover calc(40vh + 34px)}}.xp-list[data-xp-io] .xp-seg:before{transition:transform .7s var(--ease-out);transform:scaleY(0)}.xp-list[data-xp-io] .xp-stop[data-drawn]>.xp-seg:before{transform:none}.xp-list[data-xp-io] .xp-seg:after{transition:transform .7s var(--ease-out);transform:none}.xp-list[data-xp-io] .xp-stop[data-drawn]>.xp-seg:after{transform:translateY(100%)}.xp-list[data-xp-io] [data-xp-mark]:after{opacity:0}.xp-list[data-xp-io] [data-xp-mark][data-lit]:after{opacity:1;animation:xp-light .56s var(--ease-out) both}.xp-list[data-xp-io] .xp-node[data-lit]:after{animation-delay:.42s}.xp-stop--now>.xp-node:before{animation:xp-pulse 2.8s var(--ease-out) 1.2s infinite}.xp-more[open] .xp-more__body{animation:xp-open .42s var(--ease-out) both}.xp-gw__grace{transition:transform .76s var(--ease-spring)}.xp-replay[data-state=before] .xp-gw__grace{transition-duration:var(--dur-base)}.xp-gw__state{transition:opacity var(--dur-base) var(--ease-out) .42s, transform var(--dur-base) var(--ease-out) .42s, visibility 0s linear .42s}.xp-replay[data-state=before] .xp-gw__state--after,.xp-replay:not([data-state=before]) .xp-gw__state--before{transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), visibility 0s linear var(--dur-fast);transform:translateY(4px)}.xp-toggle__btn{transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out)}}@keyframes xp-draw{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes xp-tip{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes xp-light{0%{opacity:0;transform:scale(.4)}55%{opacity:1;transform:scale(1.22)}to{opacity:1;transform:none}}@keyframes xp-pulse{0%{opacity:.6;transform:scale(1)}70%,to{opacity:0;transform:scale(1.7,1.45)}}@keyframes xp-open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.skills__lead{max-width:var(--measure);margin-top:var(--space-4);color:var(--ink-2);font-size:clamp(17px,1.3vw,19px);line-height:1.5}.skills__groups{gap:var(--space-5) var(--space-7);margin-top:var(--space-5);grid-template-columns:minmax(0,1fr);grid-auto-flow:dense;display:grid;position:relative}.skills__group{min-width:0}.skills__name{font-family:var(--font-text);letter-spacing:-.01em;color:var(--ink);margin-bottom:10px;font-size:16px;font-weight:600;line-height:1.3}.skills__field{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}html:not([data-js]) .skills__field{position:relative}@media (min-width:768px){.skills__groups{margin-top:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.skills__name{margin-bottom:14px}.skills__group[data-wide]{grid-column:1/-1}}@media (min-width:1024px){.skills__groups{grid-template-columns:repeat(3,minmax(0,1fr))}.skills__group[data-wide]{grid-column:span 2}}.sk{min-width:0;max-width:100%;display:block}.sk__pill{min-height:38px;min-width:var(--tap);border-radius:var(--r-pill);background-color:var(--surface);background-image:linear-gradient(180deg, var(--gloss), var(--gloss-clear) 70%);max-width:100%;box-shadow:inset 0 0 0 1px var(--line), 0 8px 16px -14px rgba(var(--shadow-ink), .6);color:var(--ink);letter-spacing:-.005em;text-align:left;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-fast) var(--ease-out);border:0;justify-content:center;align-items:center;padding:0 16px;font-size:15px;font-weight:500;line-height:1.2;display:flex;position:relative}.sk__pill:before{content:"";position:absolute;inset:-3px 0}.sk__pill:after{content:"";background:var(--accent);width:16px;height:2px;transition:transform var(--dur-base) var(--ease-spring);margin-left:-8px;position:absolute;bottom:5px;left:50%;transform:scaleX(0)}.sk__pill:hover{box-shadow:inset 0 0 0 1px var(--line-strong), 0 12px 20px -14px rgba(var(--shadow-ink), .7);transform:translateY(-2px)}.sk__pill:active{transform:translateY(1px)scale(.98)}.sk__pill[aria-expanded=true]{box-shadow:inset 0 0 0 2px var(--accent), 0 12px 20px -14px rgba(var(--shadow-ink), .7)}.sk__pill[aria-expanded=true]:after{transform:scaleX(1)}@media (max-width:767px){.skills__field{column-gap:6px}.sk__pill{letter-spacing:-.01em;padding:0 12px;font-size:14px}}@media (any-pointer:coarse){.sk__pill{min-height:var(--tap)}.sk__pill:after{bottom:6px}}.sk__card{z-index:var(--z-raised);width:min(400px,100%);padding:var(--bezel);border-radius:var(--r-card);background:var(--bg);box-shadow:inset 0 0 0 1px var(--line-strong), 0 28px 56px -24px rgba(var(--shadow-ink), .5);margin-top:6px;display:none;position:absolute;left:0}.sk__card:before{content:"";height:6px;position:absolute;top:-6px;left:0;right:0}.sk__core{border-radius:var(--r-core);background:var(--surface);box-shadow:inset 0 1px 0 var(--gloss);padding:16px 18px 18px}.sk__full{color:var(--ink);font-size:15px;font-weight:600;line-height:1.35}.sk__full:first-letter{text-transform:uppercase}.sk__list{border-top:1px solid var(--line);gap:14px;margin:14px 0 0;padding:14px 0 0;list-style:none;display:grid}.sk-ev__head{justify-content:space-between;align-items:baseline;column-gap:var(--space-3);flex-wrap:wrap;row-gap:2px;display:flex}.sk-ev__where{color:var(--ink);font-size:14px;font-weight:600;line-height:1.3}.sk-ev__tier{font-size:13px}.sk-ev__line{color:var(--ink-2);margin-top:4px;font-size:14px;line-height:1.5}.sk-ev__line code{color:var(--ink)}.sk-ev__proof{color:var(--ink);white-space:nowrap;font-weight:600}@media (any-pointer:coarse){.sk-ev__proof{padding-block:12px}}html:not([data-js]) .sk:hover .sk__card,html:not([data-js]) .sk:focus-within .sk__card{display:block}html:not([data-js]) .sk:is(:hover,:focus-within) .sk__pill:after{transform:scaleX(1)}.sk[data-open] .sk__card{left:var(--sk-x,0px);top:var(--sk-y,auto);transform-origin:24px 0;animation:sk-pop var(--dur-base) var(--ease-spring) both;margin-top:0;display:block}.sk[data-open][data-up] .sk__card{transform-origin:24px 100%;animation-name:sk-pop-up}.sk[data-up] .sk__card:before{top:auto;bottom:-6px}.sk[data-open] .sk-ev{animation:sk-line .32s var(--ease-out) both;animation-delay:calc(70ms + var(--i,0) * 50ms)}.sk[data-open] .sk-ev__tier:is([data-tier=live],[data-tier=build]) path{stroke-dasharray:12;stroke-dashoffset:12px;animation:sk-draw .36s var(--ease-out) forwards;animation-delay:calc(.24s + var(--i,0) * 50ms)}@keyframes sk-pop{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}@keyframes sk-pop-up{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}@keyframes sk-line{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes sk-draw{to{stroke-dashoffset:0}}.skills__more{margin-top:28px}@media (min-width:768px){.skills__more{margin-top:var(--space-7)}}.skills__more-toggle{align-items:center;gap:var(--space-3);min-height:var(--tap);border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;color:var(--ink);background-color:var(--surface);background-image:linear-gradient(180deg, var(--gloss), var(--gloss-clear) 60%);box-shadow:inset 0 0 0 1px var(--line), 0 10px 20px -16px rgba(var(--shadow-ink), .6);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;padding:0 6px 0 18px;font-size:15px;font-weight:600;line-height:1;list-style:none;display:inline-flex}.skills__more-toggle::-webkit-details-marker{display:none}.skills__more-toggle::marker{content:""}.skills__more-icon{border-radius:var(--r-pill);background:var(--tint-strong);flex:none;width:32px;height:32px;position:relative}.skills__more-icon:before,.skills__more-icon:after{content:"";border-radius:var(--r-pill);background:currentColor;width:12px;height:2px;margin:-1px 0 0 -6px;position:absolute;top:50%;left:50%}.skills__more-icon:after{transform:rotate(90deg)}.skills__more[open] .skills__more-icon:after{transform:rotate(0)}.skills__wording{max-width:110ch;margin-top:var(--space-4);color:var(--ink-2);font-size:15px;line-height:1.6}@media (prefers-reduced-motion:no-preference){.skills__more-toggle{transition:transform var(--dur-base) var(--ease-spring)}.skills__more-toggle:hover{transform:translateY(-1px)}.skills__more-toggle:active{transform:translateY(1px)scale(.98)}.skills__more-icon:after{transition:transform var(--dur-base) var(--ease-spring)}.skills__more[open] .skills__wording{animation:sk-line .42s var(--ease-out) both}}.skills__term{white-space:nowrap}@media (prefers-reduced-motion:reduce){.sk__pill:hover,.sk__pill:active{transform:none}}
.contact__card{padding:var(--bezel);border-radius:var(--r-card);background:var(--tint);box-shadow:inset 0 0 0 1px var(--line), 0 30px 60px -40px rgba(var(--shadow-ink), .45);margin-top:56px}.contact__core{border-radius:var(--r-core);background:var(--surface);box-shadow:inset 0 1px 0 var(--gloss);grid-template-columns:minmax(0,1fr);padding:0 20px 24px;display:grid;position:relative}.contact__figure{width:min(236px,62%);margin:-92px auto -6px}.contact__ask{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(27px,2.9vw,42px);font-weight:500;line-height:1.1}.contact__primary{align-items:center;column-gap:var(--space-5);row-gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.contact__address{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;font-size:16px;line-height:1.3;display:inline-flex}.contact__address-text{color:var(--ink);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-weight:500}.contact__copy{border-radius:var(--r-pill);background:var(--tint-strong);min-height:34px;color:var(--ink);white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:0;align-items:center;padding:0 14px;font-size:14px;font-weight:600;line-height:1;display:inline-flex;position:relative}.contact__copy:before{content:"";position:absolute;inset:-5px 0}@media (any-pointer:coarse){.contact__copy{min-height:var(--tap);padding-inline:18px;font-size:15px}}.contact__copy:hover{box-shadow:inset 0 0 0 1px var(--line-strong);transform:translateY(-1px)}.contact__copy:active{transform:translateY(1px)scale(.97)}.contact__copy[data-state=copied]{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent-ink)}.contact__copy[data-state=failed]{white-space:normal;text-align:left}.contact__links{margin:var(--space-4) 0 0;flex-wrap:wrap;gap:10px;padding:0;list-style:none;display:flex}.contact__link{min-height:var(--tap);padding:0 18px;font-size:15px}@media (max-width:559px){.contact__email{flex:100%}.contact__links li{flex:auto}.contact__link{width:100%}}@media (min-width:900px){.contact__card{margin-top:20px}.contact__core{grid-template-columns:minmax(220px,380px) minmax(450px,480px);justify-content:center;align-items:start;column-gap:clamp(24px,4vw,64px);padding:44px 48px 40px}.contact__figure{width:100%;margin:-70px 0 -22px}.contact__text{align-self:center}.contact__ask span{display:block}}.cap{width:100%;aspect-ratio:var(--cap-ratio);pointer-events:none;-webkit-user-select:none;user-select:none;position:relative}.cap__float,.cap__sway,.cap__lean,.cap__squash{transform-origin:var(--cap-origin);position:absolute;inset:0}.cap__layer{background-position:50%;background-repeat:no-repeat;background-size:100% 100%;position:absolute}.cap__body{pointer-events:auto}.cap__shadow{transform-origin:50%}.cap__hand--up,.cap__happy,.cap__blink{opacity:0}html:not([data-js]) .cap__hand--up,html:not([data-js]) .cap__happy{opacity:1}html:not([data-js]) .cap__hand--down{opacity:0}@media (prefers-reduced-motion:no-preference){.cap__float{animation:3.8s cubic-bezier(.37,0,.63,1) infinite alternate cap-bob}.cap__sway{animation:7.8s cubic-bezier(.37,0,.63,1) infinite alternate cap-sway}.cap__shadow{animation:3.8s cubic-bezier(.37,0,.63,1) infinite alternate cap-shadow}html[data-js] .cap__blink{animation:9s linear infinite cap-blink}.cap[data-off] *,.cap[data-doze] *{animation-play-state:paused}}@media (prefers-reduced-motion:reduce){.cap__hand--up,.cap__happy{opacity:1}.cap__hand--down{opacity:0}}@keyframes cap-bob{0%{transform:translateY(1.93%)}to{transform:translateY(-1.93%)}}@keyframes cap-sway{0%{transform:rotate(1.2deg)}to{transform:rotate(-1.2deg)}}@keyframes cap-shadow{0%{opacity:1;transform:scale(.975)}to{opacity:.88;transform:scale(1.025)}}@keyframes cap-blink{0%,37.9%,39.6%,89.9%,91.4%,92.9%,94.4%,to{opacity:0}38%,39.5%,90%,91.3%,93%,94.3%{opacity:1}}:is(.cap[data-near],html:not([data-js]) .cap) .cap__body{background-image:url(../media/light-body.0le2hayx7zoxg.webp)}:is(.cap[data-near],html:not([data-js]) .cap) .cap__happy{background-image:url(../media/light-happy.236i-rn60gg9u.webp)}:is(.cap[data-near],html:not([data-js]) .cap) .cap__blink{background-image:url(../media/light-blink.1p97oovv33-8h.webp)}:is(.cap[data-near],html:not([data-js]) .cap) .cap__hand--down{background-image:url(../media/light-hand-down.3add-4yis9uhf.webp)}:is(.cap[data-near],html:not([data-js]) .cap) .cap__hand--up{background-image:url(../media/light-hand-up.3zg254hcmqs_c.webp)}:is(.cap[data-near],html:not([data-js]) .cap) .cap__shadow{background-image:url(../media/light-shadow.0ayi8-5dgqpyg.webp)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.cap[data-near],html:not([data-js]) .cap) .cap__body{background-image:url(../media/dark-body.0_qwtm2fmyigg.webp)}:root:not([data-theme=light]) :is(.cap[data-near],html:not([data-js]) .cap) .cap__happy{background-image:url(../media/dark-happy.24f6v0v1awpsd.webp)}:root:not([data-theme=light]) :is(.cap[data-near],html:not([data-js]) .cap) .cap__blink{background-image:url(../media/dark-blink.0wxq51i3nhipz.webp)}:root:not([data-theme=light]) :is(.cap[data-near],html:not([data-js]) .cap) .cap__hand--down{background-image:url(../media/dark-hand-down.3h6ktktb1b3-t.webp)}:root:not([data-theme=light]) :is(.cap[data-near],html:not([data-js]) .cap) .cap__hand--up{background-image:url(../media/dark-hand-up.0f66d_1bhlq2j.webp)}:root:not([data-theme=light]) :is(.cap[data-near],html:not([data-js]) .cap) .cap__shadow{background-image:url(../media/dark-shadow.2k0exq_92197v.webp)}}:root[data-theme=dark] :is(.cap[data-near],html:not([data-js]) .cap) .cap__body{background-image:url(../media/dark-body.0_qwtm2fmyigg.webp)}:root[data-theme=dark] :is(.cap[data-near],html:not([data-js]) .cap) .cap__happy{background-image:url(../media/dark-happy.24f6v0v1awpsd.webp)}:root[data-theme=dark] :is(.cap[data-near],html:not([data-js]) .cap) .cap__blink{background-image:url(../media/dark-blink.0wxq51i3nhipz.webp)}:root[data-theme=dark] :is(.cap[data-near],html:not([data-js]) .cap) .cap__hand--down{background-image:url(../media/dark-hand-down.3h6ktktb1b3-t.webp)}:root[data-theme=dark] :is(.cap[data-near],html:not([data-js]) .cap) .cap__hand--up{background-image:url(../media/dark-hand-up.0f66d_1bhlq2j.webp)}:root[data-theme=dark] :is(.cap[data-near],html:not([data-js]) .cap) .cap__shadow{background-image:url(../media/dark-shadow.2k0exq_92197v.webp)}
