body{margin:0}a{color:inherit}.th{--sec-y:clamp(52px,7.8vw,112px);--section-space:clamp(56px,6vw,88px);--bg:#faf9f6;--card:#fff;--ink:#121210;--muted:#57554e;--mid:#8c8a82;--line:#e2e0d8;--grid:#12121009;--deep:#000}.dk{--bg:#121210;--card:#1c1b18;--ink:#f3f2ed;--muted:#a5a39a;--mid:#7b7972;--line:#2f2d28;--grid:#f3f2ed0d;--deep:#fff;background-color:var(--bg);color:var(--ink)}.bleed{background-image:radial-gradient(var(--grid) 1px,transparent 1.2px);box-shadow:0 0 0 100vmax var(--bg);clip-path:inset(0 -100vmax);background-size:28px 28px;position:relative}.js-root{font-family:var(--font-geist-sans),"Geist",system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-weight:400}.js-root h1,.js-root h2,.js-root h3{font-family:var(--font-bricolage-display),"Bricolage Grotesque",system-ui,sans-serif;text-wrap:balance}.js-root nav>a:first-child{letter-spacing:-.04em;font-weight:600;font-family:var(--font-bricolage-display),"Bricolage Grotesque",system-ui,sans-serif!important;font-size:var(--fs-chip)!important}.js-root{background-image:radial-gradient(var(--grid) 1px,transparent 1.2px);background-size:28px 28px}.hand{font-family:var(--font-just-another-hand),"Just Another Hand",cursive;letter-spacing:.012em;font-weight:400}.hero-portrait{box-sizing:border-box;border:1px solid var(--ink);background:var(--card);width:240px;box-shadow:7px 7px 0 var(--ink);margin:0 auto;padding:6px}.hero-portrait-link{color:inherit;text-decoration:none;transition:transform .24s cubic-bezier(.16,1,.3,1),box-shadow .24s cubic-bezier(.16,1,.3,1);display:block;position:relative}.hero-portrait-link:after{background:var(--ink);width:38px;height:38px;color:var(--bg);content:"↗";font:500 var(--fs-chip)/1 var(--font-geist-sans),system-ui,sans-serif;opacity:0;border-radius:50%;place-items:center;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:14px;right:14px;transform:translate(3px,3px)}.hero-portrait-link:hover,.hero-portrait-link:focus-visible{box-shadow:10px 10px 0 var(--ink);transform:translate(-2px,-2px)}.hero-portrait-link:hover:after,.hero-portrait-link:focus-visible:after{opacity:1;transform:translate(0)}.hero-portrait-link:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.hero-portrait img{width:100%;height:auto;display:block}.work-title-mobile,.work-picker{display:none}.proof-more{grid-column:span 2}.proof-more-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 56px;display:grid}.proof-more>summary{display:none}.offer-item summary,.ref-note summary,.skill-group summary,.contact-facts summary{list-style:none}.offer-item summary::-webkit-details-marker{display:none}.ref-note summary::-webkit-details-marker{display:none}.skill-group summary::-webkit-details-marker{display:none}.contact-facts summary::-webkit-details-marker{display:none}.ref-note summary,.contact-facts summary,.ref-excerpt{display:none}.journey-aside{min-width:0;font-size:var(--fs-lead);flex:0 260px;margin:4px 0 0;line-height:1.05;transform:rotate(-3deg)}@media (min-width:761px){.refs-grid>.ref-note{flex-direction:column;display:flex}.ref-note blockquote{flex-direction:column;flex:1;display:flex}.ref-note blockquote footer{margin-top:auto}}@media (hover:none){.hero-portrait-link:active{transform:scale(.99)}.hero-portrait-link:active:after{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.hero-portrait-link,.hero-portrait-link:after{transition:none}}.journey-margin{border-top:1px solid var(--line);padding:18px 0 72px}.journey-margin-title{width:max-content;max-width:100%;font-size:var(--fs-section);margin:0 0 12px;font-weight:400;line-height:1.05;position:relative;font-family:var(--font-just-another-hand),"Just Another Hand",cursive!important}.journey-margin-title svg{width:100%;height:9px;position:absolute;bottom:-7px;left:0;overflow:visible}.journey-margin-title path,.journey-margin-mark path{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round}.journey-margin-mark path{stroke:var(--muted);stroke-width:1.3px}.journey-margin-field{grid-template-rows:auto auto;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px 28px;padding-top:16px;display:grid}.journey-margin-note{max-width:52ch;position:relative}.journey-margin-note.note-1{grid-area:1/1/auto/span 6;margin-top:8px}.journey-margin-note.note-2{grid-area:1/8/auto/span 5;margin-top:64px}.journey-margin-note.note-3{grid-area:2/2/auto/span 4;margin-top:8px}.journey-margin-note.note-4{grid-area:2/8/auto/span 4;margin-top:40px}.journey-margin-mark{width:max-content;color:var(--muted);font-size:var(--fs-label);letter-spacing:.1em;align-items:center;gap:9px;display:flex}.journey-margin-mark svg{width:52px;height:9px;overflow:visible}.journey-margin-mark .hand{font-size:var(--fs-body);color:var(--ink);line-height:1}.journey-margin-note p{max-width:52ch;font-size:var(--fs-body);margin:8px 0 0;line-height:1.65}@media (max-width:760px){.journey-margin{padding:16px 0 48px}.journey-margin-field{grid-template-rows:none;grid-template-columns:minmax(0,1fr);gap:18px;padding:20px 0 0}.journey-margin-note.note-1,.journey-margin-note.note-2,.journey-margin-note.note-3,.journey-margin-note.note-4{border-left:1px dashed var(--line);grid-area:auto/1;margin:0 0 0 12px;padding-left:18px}}.mono{font-family:var(--font-geist-mono),"Geist Mono",ui-monospace,monospace}.grain{pointer-events:none;z-index:70;opacity:.045;mix-blend-mode:overlay;width:100%;height:100%;position:fixed;inset:0}.draw{stroke-dasharray:400;stroke-dashoffset:0;transition:stroke-dashoffset .55s cubic-bezier(.16,1,.3,1)}.fade{transition:opacity .34s cubic-bezier(.16,1,.3,1),transform .34s cubic-bezier(.16,1,.3,1)}.typed{white-space:nowrap;vertical-align:bottom;max-width:40ch;transition:max-width .7s steps(38,end);display:inline-block;overflow:hidden}.strike{transform-origin:0;width:108%;height:2px;transition:transform .42s cubic-bezier(.65,0,.35,1);position:absolute;top:52%;left:-4%}.line-grow{transform-origin:0;transition:transform .8s cubic-bezier(.16,1,.3,1)}.js-anim .sec:not(.go) .draw{stroke-dashoffset:400px}.js-anim .sec:not(.go) .fade{opacity:0;transform:translateY(8px)}.js-anim .sec:not(.go) .typed{max-width:0}.js-anim .sec:not(.go) .strike,.js-anim .sec:not(.go) .line-grow{transform:scaleX(0)}.sec-label{font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;margin:0 0 20px;font-weight:500}.flip-hint{font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.82;position:absolute;bottom:10px;right:12px}.flip-hint-tap{color:var(--muted);opacity:1;display:none}.flip-btn.is-flipped .flip-hint,.flip-btn.is-flipped .flip-hint-tap{color:var(--bg)}@media (hover:none),(max-width:760px){.flip-hint:not(.flip-hint-tap){display:none}.flip-hint-tap{display:block}}.nav-link{text-decoration:none;position:relative}.nav-link:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1px;transition:transform .2s cubic-bezier(.65,0,.35,1);position:absolute;bottom:-6px;left:0;transform:scaleX(0)}.nav-link:hover:after,.nav-link:focus-visible:after{transform:scaleX(1)}.github-hand-link{font-size:var(--fs-hand);white-space:nowrap;flex-direction:column;align-items:flex-end;line-height:1.05;text-decoration:none;transition:opacity .2s;display:inline-flex}.github-hand-label{align-items:center;gap:7px;display:inline-flex}.github-hand-label svg{color:var(--ink);flex:none}.github-hand-link:hover{opacity:.72}@media (max-width:1080px){.github-hand-link{font-size:var(--fs-card)}}@media (min-width:761px) and (max-width:1080px){.github-hand-link{font-size:var(--fs-chip)}}@media (max-width:760px){.github-hand-link{font-size:var(--fs-chip)}}a:hover{opacity:1}.card{position:relative}.face-code{opacity:0;transition:opacity .2s cubic-bezier(.65,0,.35,1) 60ms}.face-sketch{opacity:1;transition:opacity .14s cubic-bezier(.65,0,.35,1)}.face-code.on{opacity:1}.face-sketch.off{opacity:0}.flip-btn{width:100%;height:100%;color:inherit;cursor:pointer;text-align:left;font:inherit;background:0 0;border:0;margin:0;padding:0;position:absolute;inset:0}.flip-btn:focus-visible,.skill-btn:focus-visible,button:focus-visible,a:focus-visible{outline-offset:3px;outline:2px solid}.stop .dot{transition:transform .22s cubic-bezier(.16,1,.3,1)}.stop:hover .dot{transform:scale(1.3);background:var(--ink)!important}.stop:hover .stop-where{opacity:.62}.stop-where{transition:opacity .2s}.skill-btn{min-width:46px;min-height:46px;color:inherit;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:10px 14px;transition:none;display:flex;position:absolute;transform:translate(-50%,calc(.75em - 50% + 4px))}.skill-dot{border-radius:50%;transition:transform .18s,box-shadow .18s;display:block}.skill-btn[aria-pressed=true] .skill-dot{box-shadow:0 0 0 3px var(--bg),0 0 0 4.5px var(--ink);transform:scale(1.16)}.skill-label{background:var(--bg);border-radius:2px;padding:1px 4px;line-height:1.5}.skill-heart{color:var(--ink);pointer-events:none;position:absolute;top:calc(100% + 18px);left:50%;transform:translate(-50%)}.skill-list{flex-direction:column;gap:18px;width:100%;display:none}.chip{min-height:44px;color:inherit;font:inherit;font-size:var(--fs-label);letter-spacing:.02em;cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:9px;padding:0 15px;transition:background .18s,color .18s;display:inline-flex}.chip-dot{border:1.5px solid;border-radius:50%;flex:none;width:9px;height:9px;transition:transform .18s,background-color .18s}.chip[aria-pressed=true] .chip-dot{background:currentColor;transform:scale(1.45)}@media (max-width:1080px){.graph{display:none!important}.skill-list{display:flex}}@media (min-width:761px) and (max-width:1080px){#skills{flex-direction:column;align-items:stretch!important;gap:20px!important;display:flex!important}#skills>div:first-child{display:contents}#skills .sec-label{order:0}#skills h2{order:1;align-self:flex-start}#skills>div:first-child>p:not(.sec-label){order:2;margin-top:0!important}#skills .skill-legend{flex-wrap:wrap;order:3;font-size:var(--fs-label)!important;flex-direction:row!important;gap:8px 20px!important;margin-top:4px!important}#skills .skill-legend>div{gap:7px!important}#skills .skill-legend span{width:12px!important;height:12px!important}#skills .skill-list{display:none!important}#skills .graph{order:4;width:100%;margin:0 0 60px;flex:none!important;height:clamp(380px,40vw,460px)!important;display:block!important}#skills .skill-evidence{order:5;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);align-items:start;gap:6px 24px;display:grid;border:1.5px solid var(--ink)!important;background:var(--ink)!important;min-height:0!important;color:var(--bg)!important;box-shadow:4px 4px 0 var(--ink)!important;margin-top:0!important;padding:18px 24px!important}#skills .skill-evidence>p:first-child{grid-area:1/1;color:var(--bg)!important}#skills .skill-evidence>p:nth-child(2){grid-area:2/1;color:color-mix(in srgb,var(--bg) 70%,transparent)!important;margin-top:0!important}#skills .skill-evidence>p:nth-child(3){grid-area:1/2;color:color-mix(in srgb,var(--bg) 70%,transparent)!important;margin:0 0 4px!important}#skills .skill-evidence .ev{grid-column:2;color:var(--bg)!important;border-color:color-mix(in srgb,var(--bg) 30%,transparent)!important}}.card{transform:translate(var(--t,0px),var(--t,0px));transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 2px #1212100d}.card:hover,.card:focus-within{--t:-3px;box-shadow:4px 4px 0 var(--ink)}.dk .card{box-shadow:none}.dk .card:hover,.dk .card:focus-within{box-shadow:4px 4px 0 var(--ink)}.pulse{vertical-align:middle;background:currentColor;border-radius:50%;width:7px;height:7px;margin-right:10px;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.22}}.mc{transition:transform .48s cubic-bezier(.2,.8,.2,1);display:inline-block}.mc.messy{opacity:.5}.mc{will-change:transform}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.morph-line{cursor:default}.btn{transition:transform .16s cubic-bezier(.16,1,.3,1),background .18s,color .18s}.btn:hover{transform:translate(-2px,-2px)}@media (max-width:560px){.nav-email{display:none!important}}@media (hover:none),(max-width:760px){.nav-link,.card a,.mail,.run{padding-top:14px;padding-bottom:14px;display:inline-block}.run{min-height:44px}}.cta{min-height:48px;font-size:var(--fs-body);letter-spacing:.01em;align-items:center;padding:0 24px;font-weight:500;text-decoration:none;display:inline-flex}.proof-grid,.offer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ev{animation:.35s cubic-bezier(.16,1,.3,1) both evIn}@keyframes evIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}@media (max-width:1080px){.proof-grid,.offer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (max-width:760px){.proof-grid,.offer-grid{grid-template-columns:1fr!important}}.run{cursor:pointer;min-height:44px;font-size:var(--fs-label);letter-spacing:.02em;padding:0 15px}.hint-tap{display:none}@media (hover:none),(max-width:760px){.hint-hover{display:none}.hint-tap{display:inline}}.mail{text-decoration:none;position:relative}.mail:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1.5px;transition:transform .24s cubic-bezier(.65,0,.35,1);position:absolute;bottom:-6px;left:0;transform:scaleX(0)}.mail:hover:after{transform:scaleX(1)}@media (max-width:1080px){.notes-abs{border-left:2px solid var(--ink);margin:0;padding:0 0 0 18px;text-align:left!important;width:auto!important;position:static!important;transform:none!important}.notes-abs+.notes-abs{padding-top:14px}.hero-portrait+.notes-abs{margin-top:24px;padding-top:4px}.notes-abs .hand{line-height:1.08;margin:0!important}.arrow-svg{display:none!important}.hero-figure{flex-direction:column;align-items:flex-start;gap:0;width:auto!important;display:flex!important}}@media (min-width:761px) and (max-width:1080px){#top{align-items:center!important;gap:clamp(24px,3vw,32px)!important}#top .hero-text{min-width:0;flex:340px!important}#top>.hero-figure{align-self:center;min-width:280px;flex:0 360px!important}#top figure.hero-figure{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:stretch;gap:12px 18px;width:100%!important;display:grid!important}#top .hero-portrait{grid-area:1/1/-1;align-self:center;width:100%!important;max-width:none!important;margin:0!important}#top .notes-abs{border-left:1px solid var(--line);flex-direction:column;grid-column:2;justify-content:center;min-width:0;display:flex;text-align:left!important;width:auto!important;margin:0!important;padding:0 0 0 12px!important;position:static!important}#top figure.hero-figure>.notes-abs:first-of-type{grid-row:1}#top figure.hero-figure>.notes-abs:nth-of-type(2){grid-row:2}#top figure.hero-figure>.notes-abs:nth-of-type(3){grid-row:3}#top .notes-abs .hand{font-size:var(--fs-chip)!important;line-height:1!important}}@media (max-width:1080px){.hero-portrait{margin:0!important}.notes-abs .hand{font-size:var(--fs-card)!important}}@media (max-width:760px){.hero-portrait{width:200px!important}#top{align-items:flex-start!important;gap:12px!important;padding:20px 0 28px!important}#top .hero-text{display:contents}#top .hero-status{order:1;margin:0 0 2px!important}#top .hero-location{order:2;margin:0 0 2px!important}#top .hero-name{order:3;width:100%;font-size:var(--fs-figure)!important;line-height:.88!important}#top>.hero-figure{order:4;flex:100%!important;justify-content:flex-start!important}#top figure.hero-figure{grid-template-columns:minmax(0,64%) minmax(0,1fr);align-items:end;column-gap:16px;width:100%!important;display:grid!important}#top .hero-portrait{width:100%!important;margin:8px 0 0!important}#top .notes-abs{display:none!important}#top .hero-tagline{order:5;max-width:none;font-size:var(--fs-card)!important;margin:8px 0 0!important}#top .hero-summary{order:6;font-size:var(--fs-body)!important;margin:8px 0 0!important;line-height:1.45!important}#top .hero-meta{order:8;font-size:var(--fs-label)!important;margin-top:4px!important}}@media (max-width:360px) and (max-height:700px){.js-root nav{padding:14px 0!important}#top{gap:8px!important;padding:12px 0 18px!important}#top .hero-status{margin-bottom:0!important}#top .hero-location{margin-bottom:4px!important}#top .hero-name{font-size:var(--fs-section)!important}#top figure.hero-figure{column-gap:12px}#top .hero-tagline{font-size:var(--fs-chip)!important;margin-top:6px!important;line-height:1.12!important}#top .hero-summary{order:7;font-size:var(--fs-body)!important;margin-top:6px!important;line-height:1.35!important}#top .hero-meta{display:none}}@media (prefers-reduced-motion:reduce){.js-anim .sec .draw,.js-anim .sec .fade,.js-anim .sec .typed,.js-anim .sec .strike,.js-anim .sec .line-grow{opacity:1!important;stroke-dashoffset:0!important;max-width:none!important;transition:none!important;transform:none!important}.card,.btn{transition:none!important}.pulse{animation:none}}.js-figure{align-self:flex-start}@media (max-width:860px){.js-figure{flex:0 200px!important}}@media (max-width:600px){.js-figure{align-items:flex-start;gap:18px;display:flex;flex:100%!important}.js-figure img{max-width:140px}.js-figure figcaption{flex:1;margin-top:0!important}}@media (min-width:561px) and (max-width:1024px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:34px 28px!important}.work-grid,.refs-grid{grid-template-columns:minmax(0,1fr)!important;gap:22px!important}.work-grid .card{flex-direction:row!important}.work-grid .card>div:nth-child(2){border-right:1px solid var(--line);flex:0 0 38%;min-height:188px;border-bottom:0!important;height:auto!important}.work-grid .card>div:last-child{flex:auto;justify-content:center}}@media (min-width:761px) and (max-width:1080px){.offer-grid{margin-top:34px!important;display:block!important}.offer-item{padding:23px 0}.offer-item+.offer-item{margin-top:18px}.offer-summary{grid-template-columns:58px minmax(0,1fr);align-items:baseline;gap:0 24px;display:grid}.offer-summary h3{margin:0!important}.offer-body{max-width:842px;padding:10px 0 0 82px!important}}@media (max-width:560px){nav>div>.nav-link{display:none}.js-root{font-size:var(--fs-body)}.js-root p{line-height:1.55}.js-root h1{line-height:.95}.work-grid .card>div:first-child{height:124px!important}.js-root p:not(.hand):not(.mono),.js-root li:not(.stop),.js-root dd{line-height:1.55!important}}@media (max-width:1024px){.timeline{grid-template-columns:minmax(0,1fr)!important;gap:0!important}.timeline .stop{padding:0 0 30px 40px;position:relative}.timeline .stop .dot{margin:0;position:absolute;top:1px;left:0}.timeline .stop>p:first-of-type{margin-top:0!important}.line-grow{border-left:2px dashed var(--ink);bottom:34px;transform-origin:top!important;border-top:0!important;width:0!important;top:6px!important;left:10px!important;right:auto!important}.js-anim .sec:not(.go) .line-grow{transform:scaleY(0)}}.deck-hint{display:none}@media (max-width:760px){#work,#proof,#rule,#offer,#references,#skills,#contact{padding-block:var(--section-space)!important}.sec-label{letter-spacing:.16em}#work>div:first-of-type{margin-bottom:18px!important}.work-picker{border-top:1px solid var(--ink);margin:20px 0 26px;display:grid}.work-picker button{border:0;border-bottom:1px solid var(--line);min-height:58px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;grid-template-columns:30px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:10px 0;display:grid}.work-picker-number{font-size:var(--fs-label);color:var(--muted)}.work-picker-title{font-family:var(--font-bricolage-display),"Bricolage Grotesque",system-ui,sans-serif;font-size:var(--fs-body);letter-spacing:-.02em;line-height:1.12}.work-picker-arrow{font-size:var(--fs-hand);opacity:0;line-height:1}.work-picker button[aria-pressed=true]{border-bottom-color:var(--ink)}.work-picker button[aria-pressed=true] .work-picker-title{font-size:var(--fs-chip);font-weight:700}.work-picker button[aria-pressed=true] .work-picker-arrow{opacity:1}.work-grid{margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.work-grid>div:not(.is-selected){display:none!important}.work-grid .card{box-shadow:none!important;background:0 0!important;border:0!important;transform:none!important}.work-grid .card>div:first-child{background:var(--card);border:1px solid var(--ink)!important;height:198px!important}.work-grid .card>div:last-child{padding:18px 0 0!important}.work-grid .card h3{display:none}#work .deck-hint,#references .deck-hint{display:none!important}#proof{grid-template-columns:1fr!important;gap:0!important}#proof>div:first-child{margin-bottom:28px}#proof>div:nth-child(2){background:var(--ink);color:var(--bg);margin-inline:calc(-1*clamp(20px,5vw,64px));padding:25px clamp(20px,5vw,64px) 28px}#proof>div:nth-child(2)>p:first-child,#proof>div:nth-child(2) .fold summary{color:var(--bg)!important}#proof>div:nth-child(2) .strike{background:var(--bg)!important}#proof>div:nth-child(n+3){border-bottom:1px solid var(--line);padding:24px 0}#proof>div:nth-child(n+3)>div{font-size:var(--fs-figure)!important}#proof>div:nth-child(n+3)>p:nth-of-type(2){font-size:var(--fs-body)!important}#rule>div{gap:24px!important}#rule .rule-card{border:0!important;border-top:2px solid var(--ink)!important;box-shadow:none!important;background:0 0!important;padding:22px 0 0!important}#rule .fold{border-top:1px solid var(--line);margin-top:20px}#rule .fold summary{font-size:var(--fs-label);color:var(--ink)}.rule-code{max-width:100%;overflow-x:auto}.rule-code p.mono{white-space:pre}.offer-grid{margin-top:30px!important;display:block!important}.offer-item{border-top:0!important;padding-top:0!important}.offer-summary{cursor:pointer;grid-template-columns:34px minmax(0,1fr) 16px;align-items:baseline;gap:12px;padding:19px 0;display:grid}.offer-summary .hand{font-size:var(--fs-lead)!important}.offer-summary h3{font-size:var(--fs-chip)!important;margin:0!important}.offer-summary:after,.ref-note summary:after,.skill-group summary:after,.contact-facts summary:after{content:"+";font:var(--fs-card)/1 var(--font-just-another-hand),"Just Another Hand",cursive}.offer-item[open] .offer-summary:after,.ref-note[open] summary:after,.skill-group[open] summary:after,.contact-facts[open] summary:after{content:"−"}.offer-body{padding:0 0 23px 46px}.offer-body p:first-child{margin-top:0!important}.refs-grid{margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.ref-note{border-top:1px solid var(--ink)}.ref-note summary{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 18px;align-items:baseline;gap:10px;min-height:56px;padding:17px 0;display:grid}.ref-note summary .mono{font-size:var(--fs-label);color:var(--muted)}.ref-note summary .hand{font-size:var(--fs-lead);line-height:1}.ref-note blockquote{border-top:0!important;padding:0 0 24px!important}.ref-note blockquote footer{padding-top:4px}#references>p:last-child{margin-top:24px!important}.skill-legend{display:none!important}#skills{align-items:stretch!important;gap:18px!important}.skill-evidence{border:0!important;border-top:2px solid var(--ink)!important;min-height:0!important;box-shadow:none!important;background:0 0!important;padding:16px 0 6px!important}.skill-list{gap:0}.skill-group{border-bottom:1px solid var(--line)}.skill-group summary{cursor:pointer;min-height:56px;font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;display:flex}.skill-group>div{padding:0 0 20px}.contact-facts{border:0!important;border-top:1px solid var(--ink)!important;box-shadow:none!important;background:0 0!important;padding:0!important}.contact-facts summary{cursor:pointer;min-height:56px;font-size:var(--fs-body);justify-content:space-between;align-items:baseline;gap:12px;padding:18px 0;font-weight:600;display:flex}.contact-facts summary .hand{font-size:var(--fs-card);font-weight:400}.contact-facts[open] summary{margin-bottom:12px}}.aside>summary{cursor:pointer;font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;min-height:44px;padding:10px 0;list-style:none;display:flex}.aside>summary::-webkit-details-marker{display:none}.aside>summary:after{content:"+";font-size:var(--fs-body);line-height:1}.aside[open]>summary:after{content:"–"}.aside>summary:hover,.aside>summary:focus-visible{color:var(--ink)}.menu-btn{display:none}.index-sheet{z-index:80;background:var(--bg);background-image:radial-gradient(var(--grid) 1px,transparent 1.2px);background-size:28px 28px;flex-direction:column;padding:20px clamp(20px,5vw,64px) 28px;animation:.22s cubic-bezier(.16,1,.3,1) both indexIn;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes indexIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.index-head{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.index-row{border-bottom:1px solid var(--line);align-items:baseline;gap:16px;min-height:44px;padding:14px 0;text-decoration:none;display:flex}.index-n{font-size:var(--fs-label);letter-spacing:.14em;color:var(--muted);flex:none}.index-label{font-size:var(--fs-chip);letter-spacing:-.02em;font-weight:600;line-height:1.15}.index-row:active .index-label,.index-row:focus-visible .index-label{text-decoration:underline}.index-cta{align-self:flex-start;margin-top:auto}@media (max-width:1024px){.menu-btn{align-items:center;display:inline-flex!important}}@media (max-width:760px){.nav-email{display:inline-flex!important}nav>div>.nav-link{display:none}}@media (max-width:420px){.nav-email{display:none!important}}@media (max-width:560px){#top>.hero-text>p.mono{font-size:var(--fs-label);letter-spacing:.08em}}.fold{margin:8px 0 0}.fold>summary{cursor:pointer;min-height:44px;font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:7px;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary:after{content:"+";font-size:var(--fs-body);line-height:1}.fold[open]>summary:after{content:"–"}.fold>summary:hover,.fold>summary:focus-visible{color:var(--ink)}.fold-body{padding-top:2px}@media (min-width:1025px){.fold{margin:0}.fold>summary{display:none}}@media (min-width:761px) and (max-width:1024px){.refs-grid{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(-1*clamp(20px,5vw,64px));padding-inline:clamp(20px,5vw,64px);scroll-padding-inline:clamp(20px,5vw,64px);overflow-x:auto;grid-template-columns:none!important;gap:20px!important;display:flex!important}.refs-grid::-webkit-scrollbar{display:none}.refs-grid>*{scroll-snap-align:start;flex:0 0 min(420px,68vw);min-width:0}.deck-hint{font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:12px 0 0;display:block!important}.work-grid~.deck-hint,#work .deck-hint{display:none!important}}@media (max-width:760px){.js-root nav{padding:14px 0!important}.js-root nav>a:first-child{font-size:var(--fs-card)!important}.menu-btn{border:0!important;border-bottom:1px solid var(--ink)!important;min-height:38px!important;font-size:var(--fs-label)!important;padding:0!important}.js-root nav>div>button.theme-toggle{border:0!important;width:38px!important;height:38px!important}#top{gap:0!important;padding:24px 0 22px!important}#top .hero-location{order:1;width:100%;font-size:var(--fs-label)!important;margin:0 0 17px!important}#top .hero-name{z-index:2;order:2;position:relative;font-size:var(--fs-display)!important;letter-spacing:-.075em!important;margin:0 0 22px!important;line-height:.82!important}#top>.hero-figure{order:4;justify-content:flex-start!important;margin:0!important}#top figure.hero-figure{width:100%!important;display:block!important}#top .hero-portrait{box-sizing:border-box;border:1px solid var(--ink);box-shadow:none;width:64%!important;margin:28px auto 0 0!important;padding:0!important}#top .hero-tagline{order:3;max-width:100%;font-size:var(--fs-lead)!important;margin:26px 0 0!important;line-height:1.12!important}#top .hero-summary{order:5;font-size:var(--fs-body)!important;margin:21px 0 0!important;line-height:1.5!important}#top .hero-status{order:7;width:100%;font-size:var(--fs-label)!important;border:0!important;margin:24px 0 0!important;padding:0!important}#top .hero-meta{letter-spacing:normal;text-transform:none;order:8;gap:10px;font:400 var(--fs-label)/1.45 var(--font-geist-sans),system-ui,sans-serif!important;margin:8px 0 0!important;display:grid!important}#top .hero-meta>span{display:block}#work h2{line-height:.9;font-size:var(--fs-display)!important;display:block!important}#work>div:first-of-type{margin:0 0 36px!important;display:block!important}#work>div:first-of-type .nav-link{font-size:var(--fs-label)!important}#work>div:first-of-type .hand{width:fit-content;display:block;font-size:var(--fs-lead)!important;margin-top:18px!important}.work-grid .card .work-title-mobile{font-family:var(--font-bricolage-display),"Bricolage Grotesque",system-ui,sans-serif;font-size:var(--fs-lead);letter-spacing:-.045em;margin:0 0 23px;font-weight:650;line-height:1.02;display:block}.work-grid .card>div:nth-child(2){background:var(--card);border:1px solid var(--ink)!important;height:285px!important}.work-grid .face-sketch svg{width:min(80%,290px);height:auto}.work-grid .card>div:last-child{gap:13px!important;padding:23px 0 0!important}.work-grid .card>div:last-child>p:nth-of-type(2){font-size:var(--fs-body)!important;line-height:1.55!important}.work-picker{border-top:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));margin:34px 0 0;display:grid!important}.work-picker button{border:0;border-bottom:1px solid var(--line);min-height:80px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;padding:13px 8px 14px 0;display:block}.work-picker button[aria-pressed=true]{border-bottom:3px solid var(--ink)}.work-picker-number{font-size:var(--fs-chip);color:var(--ink);margin-bottom:6px;display:block}.work-picker-title{font-family:var(--font-geist-sans),"Geist",system-ui,sans-serif;letter-spacing:0;line-height:1.18;display:block;font-size:var(--fs-label)!important;font-weight:400!important}.work-picker-arrow{display:none}#proof{box-sizing:border-box;background:var(--ink);color:var(--bg);margin-inline:calc(-1*clamp(20px,5vw,64px));padding:var(--section-space) clamp(20px,5vw,64px)!important}#proof>div:first-child{margin-bottom:62px}#proof .sec-label{opacity:.7;color:var(--bg)!important}#proof h2{font-size:var(--fs-section)!important;line-height:1.02!important}#proof>div:nth-child(2){color:inherit;background:0 0;margin:0;padding:0}#proof>div:nth-child(2)>p:first-child{opacity:.7;color:var(--bg)!important}#proof>div:nth-child(2)>div{font-size:var(--fs-display)!important}#proof>div:nth-child(2)>p:nth-of-type(2){max-width:290px;font-size:var(--fs-chip)!important;line-height:1.2!important}#proof .fold summary{color:var(--bg)!important}#proof .fold-body p{opacity:.8;color:var(--bg)!important}.proof-more{border-top:1px solid var(--bg);grid-column:auto;margin-top:54px}.proof-more-grid{display:block}.proof-more>summary{min-height:65px;font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;justify-content:space-between;align-items:center;display:flex}.proof-more>summary:after{content:"+";font-size:var(--fs-chip)}.proof-more[open]>summary:after{content:"−"}.proof-more>summary span{display:none}.proof-more-grid>div{border-color:var(--bg)!important;padding:28px 0!important}.proof-more-grid>div>p:first-child{opacity:.7;color:var(--bg)!important}#rule h2{font-size:var(--fs-section)!important;line-height:1.03!important}#rule .rule-card{margin-top:27px;padding-top:29px!important}#rule .run{min-height:50px;font-size:var(--fs-body)}#offer h2{font-size:var(--fs-section)!important;line-height:1.02!important}.offer-grid{margin-top:58px!important}.offer-summary{grid-template-columns:35px minmax(0,1fr) 22px;align-items:center;gap:13px;min-height:103px;padding:18px 0}.offer-summary .hand{font-size:var(--fs-section)!important}.offer-summary h3{font-size:var(--fs-hand)!important;letter-spacing:-.04em!important;line-height:1.04!important}.offer-body{padding:0 0 34px 48px}#references h2{font-size:var(--fs-section)!important;margin-bottom:39px!important;line-height:1.05!important}.ref-feature{padding-bottom:35px}.ref-feature summary{border-bottom:1px solid var(--line)}.ref-feature summary:after{grid-area:1/3;justify-self:end}.ref-feature .ref-excerpt{font-family:var(--font-bricolage-display),"Bricolage Grotesque",system-ui,sans-serif;font-size:var(--fs-hand);letter-spacing:-.035em;grid-area:2/1/auto/-1;margin:27px 0 13px;line-height:1.18;display:block}.ref-feature blockquote{padding-top:23px!important}#skills h2{line-height:.9;font-size:var(--fs-display)!important}.skill-evidence .hand{font-size:var(--fs-section)!important}.skill-group>div{padding:3px 0 21px;flex-wrap:wrap!important;gap:11px 18px!important;display:flex!important;overflow:visible!important}.skill-group>div::-webkit-scrollbar{display:none}.skill-group .chip{scroll-snap-align:start;font-family:var(--font-bricolage-display),"Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.03em;flex:none;border:0!important;border-bottom:1px solid var(--ink)!important;box-shadow:none!important;color:var(--ink)!important;font-size:var(--fs-chip)!important;background:0 0!important;border-radius:0!important;padding:5px 0 7px!important}.skill-group .chip[aria-pressed=true]{font-weight:700;border-bottom-width:3px!important}#contact{box-sizing:border-box;background:var(--ink);color:var(--bg);margin-inline:calc(-1*clamp(20px,5vw,64px));padding:var(--section-space) clamp(20px,5vw,64px)!important}#contact .sec-label,#contact>p:last-child,#contact .contact-facts dt,#contact .contact-facts>p.mono{opacity:.72;color:var(--bg)!important}#contact .contact-facts,#contact .contact-facts dl>div{border-color:var(--bg)!important}#contact .contact-facts a{color:var(--bg)!important}#contact .mail{font-size:var(--fs-card)!important}#contact>div>div:first-child>div:nth-of-type(2){gap:12px 26px!important}#contact>div>div:first-child>p:first-child{font-size:var(--fs-figure)!important;line-height:1.02!important}}.work-index{--t-meta:14px;--t-micro:11.5px}.work-index .project-fold-track{box-sizing:border-box;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:clamp(16px,2.5vw,32px);width:calc(100% - clamp(40px,10vw,128px));margin:34px clamp(20px,5vw,64px) 0;padding:0 0 12px;scroll-padding-inline:0;display:flex;overflow:auto hidden}.project-fold-track.is-auto-scrolling{scroll-snap-type:none}.work-index .project-fold-item{scroll-snap-align:start;flex:0 0 clamp(220px,20vw,290px);width:clamp(220px,20vw,290px);min-width:0}.work-index .project-poster{aspect-ratio:.68;background:var(--bg);color:var(--ink);position:relative}@media (min-width:1101px){.work-index .project-fold-track{width:100%;margin-inline:0}.work-index .project-fold-item{flex-basis:calc(28.5714% - clamp(13.714px,2.14286vw,27.428px));width:calc(28.5714% - clamp(13.714px,2.14286vw,27.428px))}.work-index .project-poster{aspect-ratio:auto;height:clamp(460px,33.7vw,485px)}}.work-index .project-poster-front{--poster-meta-size:var(--fs-label);--poster-title-size:var(--fs-card);--poster-deck-size:var(--fs-label);--poster-summary-size:var(--fs-label);grid-template-rows:calc(var(--poster-meta-size)*2.9) calc(var(--poster-title-size)*3.12) calc(var(--poster-deck-size)*4.2) minmax(140px,1fr) calc(var(--poster-summary-size)*4.2) auto;box-sizing:border-box;border:1px solid var(--line);background:var(--bg);width:100%;height:100%;color:inherit;text-align:center;cursor:pointer;align-items:center;row-gap:8px;padding:20px;text-decoration:none;display:grid;overflow:hidden}.work-index .project-poster-front:focus-visible{outline-offset:4px;outline:2px solid}.work-index .project-poster-meta{width:100%;color:var(--muted);font:500 var(--fs-label)/1.45 var(--font-geist-mono),ui-monospace,monospace;letter-spacing:.12em;text-align:left;text-transform:uppercase;justify-content:space-between;gap:14px;display:flex}.work-index .project-poster-meta span:last-child{text-align:right}.work-index .project-poster-title{max-width:15ch;max-height:calc(var(--poster-title-size)*3.12);font:600 var(--poster-title-size)/1.04 var(--font-bricolage-display),"Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.045em;-webkit-line-clamp:3;-webkit-box-orient:vertical;align-self:start;margin:0;display:-webkit-box;overflow:hidden}.work-index .project-poster-deck{max-width:34ch;height:calc(var(--poster-deck-size)*4.2);color:var(--muted);font-size:var(--poster-deck-size);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.work-index .project-poster-image{aspect-ratio:1;background:var(--bg);flex:none;width:min(60%,140px);margin:14px auto 0;display:block;position:relative;overflow:hidden}.work-index .project-poster-image img{object-fit:cover;object-position:center;filter:grayscale()}.work-index .project-poster-item-cover-top img{object-position:top}.work-index .project-poster-image:after{border-top:1px solid color-mix(in srgb,var(--ink) 50%,transparent);content:"";width:116%;position:absolute;top:50%;left:-8%;transform:rotate(-.5deg)}.work-index .project-poster-summary{max-width:43ch;height:calc(var(--poster-summary-size)*4.2);color:var(--muted);font-size:var(--poster-summary-size);-webkit-line-clamp:3;-webkit-box-orient:vertical;align-self:start;margin:0;line-height:1.4;display:-webkit-box;overflow:hidden}.work-index .project-poster-turn{width:100%;color:var(--muted);font:500 var(--fs-label)/1.4 var(--font-geist-mono),ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;margin-top:auto;padding-top:12px;display:flex}@media (min-width:761px) and (max-width:1100px){.work-index .project-poster{aspect-ratio:.6}.work-index .project-poster-front{--poster-meta-size:var(--fs-label);--poster-title-size:var(--fs-card);--poster-deck-size:var(--fs-label);--poster-summary-size:0px;grid-template-rows:calc(var(--poster-meta-size)*2.9) calc(var(--poster-title-size)*3.12) calc(var(--poster-deck-size)*4.2) minmax(110px,1fr) 0 auto;row-gap:6px;padding:16px}.work-index .project-poster-meta{font-size:var(--fs-label)}.work-index .project-poster-image{width:min(60%,135px)}.work-index .project-poster-summary{display:none}.work-index .project-poster-turn{font-size:var(--fs-label);padding-top:12px}}@media (max-width:760px){.work-index .project-fold-track{gap:16px;width:100%;margin:28px 0 0}.work-index .project-fold-item{flex-basis:clamp(280px,84vw,380px);width:clamp(280px,84vw,380px)}.work-index .project-poster-front{--poster-title-size:var(--fs-card);grid-template-rows:calc(var(--poster-meta-size)*2.9) calc(var(--poster-title-size)*3.12) calc(var(--poster-deck-size)*4.2) minmax(140px,1fr) calc(var(--poster-summary-size)*4.2) auto;padding:22px}.work-index .project-poster-image{width:min(66%,260px)}.work-index .project-poster-turn{padding-top:12px}}@media (prefers-reduced-motion:reduce){.work-index .project-poster-inner{transition:none}}.work-page-index .project-fold-track{scroll-snap-type:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,32px);width:100%;margin:34px 0 0;padding:0;display:grid;overflow:visible}.work-page-index .project-fold-item{scroll-snap-align:none;flex:none;width:auto;min-width:0}.work-page-index .project-poster{aspect-ratio:auto;height:clamp(460px,33.7vw,485px)}@media (min-width:1024px) and (max-width:1199px){.work-page-index .project-fold-track{grid-template-columns:repeat(2,minmax(0,1fr))}.work-page-index .project-poster{height:clamp(460px,42vw,510px)}}@media (min-width:761px) and (max-width:1023px){.work-page-index .project-fold-track{grid-template-columns:repeat(2,minmax(0,1fr))}.work-page-index .project-poster{height:clamp(450px,54vw,540px)}.work-page-index .project-poster-front{--poster-meta-size:var(--fs-label);--poster-title-size:var(--fs-card);--poster-summary-size:var(--fs-label);grid-template-rows:calc(var(--poster-meta-size)*2.9) calc(var(--poster-title-size)*3.12) calc(var(--poster-deck-size)*4.2) minmax(140px,1fr) calc(var(--poster-summary-size)*4.2) auto;padding:20px}.work-page-index .project-poster-summary{display:-webkit-box}}@media (max-width:760px){.work-page-index .project-fold-track{grid-template-columns:minmax(0,1fr);gap:18px}.work-page-index .project-poster{aspect-ratio:auto;height:clamp(380px,104vw,420px)}.work-page-index .project-poster-front{--poster-meta-size:var(--fs-label);--poster-title-size:var(--fs-card);--poster-deck-size:var(--fs-label);--poster-summary-size:var(--fs-label);grid-template-rows:calc(var(--poster-meta-size)*2.9) 80px calc(var(--poster-deck-size)*3.8) minmax(96px,1fr) calc(var(--poster-summary-size)*4) auto;row-gap:5px;padding:16px}.work-page-index .project-poster-image{width:min(44%,136px);margin:6px auto 0}.work-page-index .project-poster-turn{padding-top:8px}.work-index .project-fold-track,#work .project-fold-track{scroll-snap-type:none!important;width:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.work-index .project-fold-item,#work .project-fold-item{scroll-snap-align:none!important;flex:none!important;width:auto!important}.work-index .project-poster,#work .project-poster{aspect-ratio:auto!important;height:auto!important}.work-index .project-poster-front,#work .project-poster-front{border:0!important;border-top:1px solid var(--line)!important;text-align:left!important;background:0 0!important;grid-template-rows:none!important;grid-template-columns:1fr!important;align-items:start!important;row-gap:7px!important;height:auto!important;padding:20px 0 22px!important;display:grid!important}#work .project-fold-item:first-child .project-poster-front,.work-index .project-fold-item:first-child .project-poster-front{border-top:1px solid var(--ink)!important}.work-index .project-poster-meta,#work .project-poster-meta{text-align:left!important;justify-content:flex-start!important;gap:10px!important}.work-index .project-poster-title,#work .project-poster-title{text-align:left!important;max-width:none!important;max-height:none!important}.work-index .project-poster-deck,#work .project-poster-deck{-webkit-line-clamp:3;text-align:left!important;max-width:46ch!important;height:auto!important;display:block!important}.work-index .project-poster-image,#work .project-poster-image,.work-index .project-poster-summary,#work .project-poster-summary{display:none!important}.work-index .project-poster-turn,#work .project-poster-turn{text-align:left!important;margin-top:4px!important;padding-top:0!important}.skill-group summary:after,.contact-facts summary:after,.ref-note summary:after,.offer-item>summary:after{opacity:.75;font:var(--fs-lead)/1 var(--font-just-another-hand),"Just Another Hand",cursive!important}#work,#proof,#rule,#offer,#references,#skills,#contact{padding-block:clamp(40px,9vw,56px)!important}#proof>div:first-child{margin-bottom:22px!important}.offer-grid{gap:20px!important;margin-top:28px!important}.refs-grid{margin-top:4px!important}.sec .fade{transition-duration:.26s!important;transition-delay:0s!important}.sec .fade:nth-child(2){transition-delay:60ms!important}.sec .fade:nth-child(3){transition-delay:.12s!important}.draw{transition-duration:.3s!important;transition-delay:80ms!important}}.hero-facts{gap:13px;max-width:540px;margin:0;display:grid}.hero-facts>div{grid-template-columns:11px 5.8rem minmax(0,1fr);align-items:baseline;gap:3px 14px;display:grid}.hero-facts>div:before{content:"";background:var(--ink);border-radius:50%;grid-row:1;width:11px;height:11px;margin-top:3px}.hero-facts dt{font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:7px;display:flex}.hero-facts dd{font-size:var(--fs-body);margin:0;line-height:1.42}.mail-bar,.phone-link{display:none}
@media (max-width:760px){.js-root{--fs-display:54px;--fs-figure:44px;--fs-section:34px;--fs-lead:25px;--fs-hand:24px;--fs-card:21px;--fs-chip:18px;--fs-body:15.5px;--fs-label:12px}.js-root #top .hero-name{font-size:var(--fs-display)!important;letter-spacing:-.055em!important;line-height:.88!important}.js-root #top .hero-location{max-width:100%;font-size:var(--fs-label)!important;letter-spacing:.06em!important;margin-bottom:12px!important;line-height:1.35!important}.js-root #work h2,.js-root #skills h2{line-height:.96;font-size:var(--fs-section)!important}.js-root #proof h2,.js-root #offer h2,.js-root #references h2,.js-root #contact h2{font-size:var(--fs-lead)!important;line-height:1.1!important}.js-root .sec h2 svg{height:9px!important;bottom:-7px!important}.js-root .ref-note,.js-root .skill-list,.js-root .skill-group,.js-root .project-poster-front,.js-root .project-fold-item:first-child .project-poster-front,.js-root .contact-facts,.js-root .contact-facts dl>div,.js-root #proof>div:nth-child(n+3),.js-root .proof-more,.js-root .proof-more-grid>div,.js-root #rule .fold{border:0!important}.js-root .skill-evidence{border:1.5px solid var(--ink)!important;box-shadow:4px 4px 0 var(--ink)!important;background:var(--card)!important;color:var(--ink)!important;padding:18px 20px!important}.js-root .skill-evidence .hand{font-size:var(--fs-lead)!important}.js-root #top{padding:10px 0 34px!important}.js-root #work,.js-root #proof,.js-root #rule,.js-root #offer,.js-root #references,.js-root #skills,.js-root #contact{padding-block:52px!important}.js-root .sec-label{margin-bottom:14px!important}.js-root .project-fold-track{scroll-snap-type:none!important;width:auto!important;margin:20px 0 0!important;padding:0!important;display:block!important;overflow:visible!important}.js-root .project-fold-item{flex:none!important;width:auto!important}.js-root .project-poster{aspect-ratio:auto!important;height:auto!important}.js-root .project-poster-front{text-align:left!important;background:0 0!important;grid-template-rows:none!important;row-gap:6px!important;height:auto!important;padding:18px 0 20px!important;display:grid!important}.js-root .project-poster-meta{text-align:left!important;justify-content:flex-start!important;gap:12px!important}.js-root .project-poster-title{max-width:none!important;max-height:none!important;font-size:var(--fs-card)!important;text-align:left!important}.js-root .project-poster-deck{text-align:left!important;max-width:40ch!important;height:auto!important;display:block!important}.js-root .project-poster-image,.js-root .project-poster-summary,.js-root .project-poster-turn{display:none!important}.js-root #work .project-fold-item:first-child .project-poster-front,.js-root .work-index .project-fold-item:first-child .project-poster-front{border-top:0!important}.js-root .project-fold-item+.project-fold-item .project-poster-front{border-top:1px solid var(--line)!important}.js-root #work .project-fold-item:nth-of-type(n+4){display:none!important}.js-root #proof,.js-root #contact{color:var(--ink)!important;background:0 0!important;margin-inline:0!important;padding-inline:0!important}.js-root #proof .sec-label,.js-root #contact .sec-label,.js-root #proof>div>p,.js-root #contact>p:last-child,.js-root #proof .fold summary,.js-root #proof .fold-body p,.js-root #contact .contact-facts dt,.js-root #contact .contact-facts>p.mono,.js-root #contact .contact-facts a,.js-root .proof-more-grid>div>p:first-child{color:var(--ink)!important;opacity:1!important}.js-root #proof .sec-label,.js-root #contact .sec-label,.js-root #proof .fold summary,.js-root #contact .contact-facts dt,.js-root #proof>div>p.mono:first-child,.js-root .proof-more-grid>div>p.mono:first-child{color:var(--muted)!important}.js-root #proof .strike{background:var(--ink)!important}.js-root .proof-more{border-top:0!important}.js-root #proof>div:nth-child(2){color:var(--ink)!important;background:0 0!important;margin-inline:0!important;padding:0!important}.js-root #proof>div:nth-child(2)>p:first-child{color:var(--muted)!important;opacity:1!important}.js-root #proof>div:nth-child(2) .fold summary{color:var(--muted)!important}.js-root #proof>div:nth-child(2) .fold-body p{color:var(--muted)!important;opacity:1!important}.js-root #proof>div:nth-child(2) .strike{background:var(--ink)!important}.js-root #proof{text-align:center;display:block!important}.js-root #proof>div:first-child{text-align:left;margin-bottom:52px!important}.js-root #proof>div:not(:first-child){margin-top:0!important;padding:0!important}.js-root #proof>div:nth-child(2),.js-root .proof-more-grid>div{text-align:center;padding:0!important;display:block!important}.js-root #proof>div:nth-child(2)>p:first-child,.js-root .proof-more-grid>div>p:first-child{font-size:var(--fs-label)!important;letter-spacing:.16em!important;margin:0 0 14px!important}.js-root #proof>div:nth-child(2)>div,.js-root .proof-more-grid>div>div{font-size:var(--fs-display)!important;justify-content:center!important;align-items:baseline!important;gap:12px!important;line-height:.96!important;display:flex!important}.js-root #proof>div:nth-child(2)>div>span,.js-root .proof-more-grid>div>div>span{font-size:inherit!important}.js-root #proof .hand{color:var(--muted);font-size:var(--fs-lead)!important}.js-root #proof>div:nth-child(2)>p:nth-of-type(2),.js-root .proof-more-grid>div>p:nth-of-type(2){max-width:26ch;font-size:var(--fs-chip)!important;color:var(--muted)!important;margin:18px auto 0!important;font-weight:400!important;line-height:1.3!important}.js-root .proof-more{margin-top:0!important}.js-root .proof-more>summary{display:none}.js-root .proof-more-grid{grid-template-columns:minmax(0,1fr)!important;gap:76px!important;margin-top:76px!important;display:grid!important}.js-root #proof .fold{margin-top:14px!important}.js-root #proof .fold>summary{justify-content:center!important}.js-root #proof .fold-body p{text-align:center;max-width:30ch;margin-inline:auto!important}.js-root .offer-grid,.js-root .refs-grid,.js-root .skill-list{margin-top:18px!important;display:block!important}.js-root .offer-summary,.js-root .ref-note>summary,.js-root .skill-group>summary,.js-root .contact-facts>summary{gap:12px!important;min-height:52px!important;padding:13px 0!important}.js-root .offer-summary h3{font-size:var(--fs-chip)!important}.js-root .offer-summary .hand,.js-root .ref-note>summary .hand{font-size:var(--fs-card)!important}.js-root .ref-excerpt{line-height:1.45;font-size:var(--fs-body)!important}.js-root .offer-body{padding:0 0 18px 42px!important}.js-root .ref-note blockquote{padding:0 0 20px!important}.js-root #skills{flex-direction:column;gap:0;display:flex!important}.js-root #skills .skill-list{display:none!important}.js-root #skills>div:first-child{display:contents}.js-root #skills .sec-label{order:1}.js-root #skills h2{order:2;margin-bottom:26px!important}.js-root #skills>div:first-child>p:nth-of-type(2),.js-root .skill-legend{display:none!important}.js-root #skills .skill-evidence{display:none}.js-root #skills.skill-picked .skill-evidence{order:4;display:block;margin:0!important}.js-root #skills .graph{order:3;flex:none!important;width:100%!important;height:430px!important;margin:0 0 56px!important;display:block!important}.js-root #skills .graph .skill-btn{text-align:center;max-width:64px;white-space:normal!important;gap:5px!important;min-width:0!important;min-height:40px!important;padding:6px 3px!important;font-size:9.5px!important;line-height:1.15!important}.js-root #skills .graph .skill-label{padding:1px 3px!important}.js-root #skills .graph .skill-heart{top:calc(100% + 10px)}.js-root .skill-group>div{flex-wrap:wrap!important;gap:10px 16px!important;display:flex!important;overflow:visible!important}.js-root #contact>div{display:block!important}.js-root #contact>div>div:first-child>p:first-child{font-size:var(--fs-section)!important;line-height:1.02!important}.js-root .contact-facts{margin-top:20px!important;padding:0!important}.js-root #top figure.hero-figure{grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) minmax(0,178px);align-items:start;column-gap:10px;width:100%!important;margin:30px 0 0!important;display:grid!important}.js-root #top .hero-portrait{grid-area:1/1/span 3;width:100%!important;margin:0!important}.js-root #top .notes-abs{grid-column:2;padding:0!important;text-align:left!important;border:0!important;width:auto!important;margin:0!important;padding-right:2px!important;display:block!important;position:static!important;transform:none!important}.js-root #top figure.hero-figure>.notes-abs:first-of-type{grid-row:1;align-self:start;padding-top:2px!important}.js-root #top figure.hero-figure>.notes-abs:nth-of-type(2){grid-row:2;align-self:center}.js-root #top figure.hero-figure>.notes-abs:nth-of-type(3){grid-row:3;align-self:end;padding-bottom:6px!important}.js-root #top .notes-abs .hand{font-size:var(--fs-card)!important;text-align:left!important;margin:0!important;line-height:1.04!important}.js-root #top .arrow-svg{display:none!important}.js-root #top .hero-facts{order:8;gap:13px;width:100%;margin-top:30px!important}.js-root #top .hero-facts>div{grid-template-columns:11px minmax(0,1fr);gap:3px 12px}.js-root #top .hero-facts dt,.js-root #top .hero-facts dd{grid-column:2}.js-root #top .hero-facts dt{letter-spacing:.12em}.js-root #top .hero-facts dd{max-width:34ch}.js-root .sec .fade{transition-duration:.24s!important;transition-delay:0s!important}.js-root .sec .fade:nth-child(2){transition-delay:50ms!important}.js-root .sec .fade:nth-child(3){transition-delay:.1s!important}.js-root .draw{transition-duration:.3s!important;transition-delay:80ms!important}}@media (min-width:481px) and (max-width:760px){.js-root #top figure.hero-figure{grid-template-columns:minmax(0,300px) minmax(0,168px);justify-content:start}}@media (max-width:760px){.js-root .ref-note>summary{text-align:left;grid-template-columns:minmax(0,1fr) 1.2rem;align-items:baseline;gap:2px 12px;display:grid!important}.js-root .ref-note>summary .hand{grid-area:1/1;font-size:var(--fs-card)!important}.js-root .ref-note>summary .mono{grid-area:2/1;color:var(--muted)!important}.js-root .ref-note>summary:after{grid-area:1/2;justify-self:end}.js-root .ref-note>summary .ref-excerpt{grid-area:3/1/auto/-1;max-width:36ch;font-family:inherit!important;font-size:var(--fs-body)!important;letter-spacing:0!important;color:var(--muted)!important;margin:9px 0 0!important;font-weight:400!important;line-height:1.45!important;display:block!important}.js-root .skill-evidence>p.mono:first-of-type{display:none}.js-root .skill-evidence .ev{border-top:0!important;padding:5px 0!important}.js-root .skill-evidence .ev+.ev{padding-top:0!important}.js-root #contact>div>div:first-child>div:nth-of-type(2){gap:14px 26px!important}.js-root .contact-facts>summary{flex-wrap:wrap}.js-root .contact-facts>summary .hand{color:var(--muted);flex:100%;order:3;margin-top:2px;font-size:var(--fs-body)!important}body .mail-bar{z-index:40;padding:9px 16px calc(9px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line);opacity:0;pointer-events:none;align-items:center;gap:10px;transition:transform .22s,opacity .22s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(110%)}body .mail-bar.is-up{opacity:1;pointer-events:auto;transform:none}body .mail-bar-link{min-height:34px;font-size:var(--fs-label);letter-spacing:.04em;color:var(--ink);flex:auto;align-items:center;gap:8px;text-decoration:none;display:flex}body .mail-bar-close{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;font-size:20px;line-height:1}@media (prefers-reduced-motion:reduce){body .mail-bar{transition:none}}.js-root .sec-label,.js-root .menu-btn,.js-root #proof .proof-more-grid,.js-root #proof .fold,.js-root #offer .offer-summary:after,.js-root #references .ref-note summary:after{display:none!important}.js-root #offer .offer-summary,.js-root #references .ref-note>summary{cursor:default}.js-root #skills{display:none!important}.js-root .phone-link{display:inline}.js-root #top .hero-tagline{margin-top:14px!important}.js-root #contact .contact-facts{display:none!important}}
.js-root #top,.js-root #skills,.js-root #contact{scroll-margin-top:100px}.js-root .skill-mobile-summary{display:none}.js-root #references .ref-note blockquote>p{color:var(--muted);line-height:1.55!important}.js-root .project-scroll-controls{color:var(--muted);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;justify-content:flex-end;align-items:center;gap:10px;margin-top:20px;display:flex}.js-root .project-scroll-controls span{margin-right:5px}.js-root .project-scroll-controls button{border:1px solid var(--line);width:42px;height:42px;color:var(--ink);cursor:pointer;background:0 0;font-size:20px}.js-root #work .project-fold-track{margin-top:12px}.js-root #work .work-heading-actions{align-items:flex-end;gap:clamp(20px,3vw,40px);display:flex}.js-root #work .work-heading-actions .github-hand-link{justify-content:center;min-height:44px}.js-root #work .work-all-link{min-height:44px;color:var(--ink);text-align:right;flex-direction:column;justify-content:center;align-items:flex-end;gap:5px;text-decoration:none;display:flex}.js-root #work .work-all-kicker{color:var(--muted);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase}.js-root #work .work-all-title{font-size:var(--fs-chip);white-space:nowrap;font-weight:600;line-height:1.1}.js-root #work .work-all-title span{margin-left:3px;transition:transform .18s;display:inline-block}.js-root #work .work-all-link:hover .work-all-title span,.js-root #work .work-all-link:focus-visible .work-all-title span{transform:translate(3px,-3px)}.js-root .learning-tools{border-top:1px solid var(--line);grid-template-columns:minmax(170px,1fr) minmax(0,2fr);gap:20px 48px;margin-top:clamp(64px,8vw,112px);padding-top:28px;display:grid}.js-root .learning-tools-count{color:var(--muted);font-size:var(--fs-label);letter-spacing:.14em;text-align:right;grid-column:1/-1;justify-self:end;margin:0;font-weight:400;line-height:1.4}.js-root .learning-tools h2{letter-spacing:-.035em;max-width:16ch;margin:0;font-size:clamp(24px,2.5vw,34px);line-height:1.12}.js-root .learning-tools-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.js-root .learning-tool{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;min-height:150px;padding:6px 0 16px;text-decoration:none;display:flex}.js-root .learning-tool>.mono{color:var(--muted);font-size:var(--fs-label);letter-spacing:.09em;text-transform:uppercase}.js-root .learning-tool strong{font-size:var(--fs-chip);letter-spacing:-.02em;font-weight:600}.js-root .learning-tool strong span{transition:transform .18s;display:inline-block}.js-root .learning-tool:hover strong span,.js-root .learning-tool:focus-visible strong span{transform:translate(3px,-3px)}.js-root .learning-tool>span:last-child{max-width:32ch;color:var(--muted);font-size:var(--fs-body);line-height:1.5}@media (max-width:1024px){.js-root .learning-tools{grid-template-columns:1fr}.js-root .learning-tools h2{max-width:none}}@media (max-width:760px){.js-root.work-page-index .learning-tools-count{display:block!important}.js-root .project-scroll-controls{display:none}.js-root #work>.work-heading{margin-bottom:18px!important}.js-root #work .work-heading-actions{justify-content:space-between;align-items:flex-end;gap:8px;margin-top:26px}.js-root #work .work-heading-actions .github-hand-link{align-items:flex-start;width:auto!important;font-size:var(--fs-lead)!important;margin:0!important;display:inline-flex!important}.js-root #work .work-all-link{margin-left:auto}.js-root.work-page-index .project-poster-title:after,.js-root #work .project-poster-title:after{content:"↗";vertical-align:middle;margin-left:8px;font-size:.7em;display:inline-block}.js-root #skills,.js-root #contact{scroll-margin-top:64px}.js-root #proof .proof-more-grid{margin-top:34px!important;display:block!important}.js-root #proof .proof-more-grid>div{border-top:1px solid var(--line)!important;text-align:center!important;padding:34px 0 0!important;display:block!important}.js-root #proof .proof-more-grid>div>p:first-child{margin:0 0 14px!important}.js-root #proof .proof-more-grid>div>div{font-size:var(--fs-display)!important;justify-content:center!important}.js-root #proof .proof-more-grid>div>p:nth-of-type(2){max-width:26ch!important;font-size:var(--fs-chip)!important;margin:18px auto 0!important;line-height:1.3!important}.js-root #proof .fold{display:block!important}.js-root #proof .proof-more-grid .fold{margin-top:18px!important}.js-root #proof .proof-more-grid .fold>summary{justify-content:center!important}.js-root #proof .proof-more-grid .fold-body p{text-align:center;margin-inline:auto!important}.js-root #offer .offer-summary:after,.js-root #references .ref-note summary:after{display:block!important}.js-root #offer .offer-summary,.js-root #references .ref-note>summary{cursor:pointer}.js-root #offer .offer-summary{grid-template-columns:34px minmax(0,1fr)!important;align-items:start!important;gap:6px 12px!important;min-height:0!important;padding:20px 0!important;display:grid!important}.js-root #offer .offer-summary:after{display:none!important}.js-root #offer .offer-summary>p:first-child{grid-area:1/1/span 3}.js-root #offer .offer-summary h3{grid-area:1/2;margin:0!important}.js-root #offer .offer-teaser{color:var(--muted);grid-area:2/2;font-weight:400;line-height:1.45;font-size:var(--fs-body)!important;margin:0!important}.js-root #offer .offer-how{color:var(--muted);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;grid-area:3/2;margin-top:4px}.js-root #offer .offer-how:after{content:"  +"}.js-root #offer .offer-item[open] .offer-how:after{content:"  −"}.js-root #offer .offer-body{padding:0 0 23px 46px!important}.js-root #references .ref-note>summary{text-align:left!important;grid-template-columns:minmax(0,1fr)!important;align-items:start!important;gap:6px!important;padding:24px 0!important;display:grid!important}.js-root #references .ref-note>summary:after{display:none!important}.js-root #references .ref-note>summary .hand,.js-root #references .ref-note>summary .mono,.js-root #references .ref-note>summary .ref-excerpt,.js-root #references .ref-note>summary .ref-how{grid-column:1}.js-root #references .ref-note>summary .hand{grid-row:1;font-size:var(--fs-card)!important}.js-root #references .ref-note>summary>.mono:not(.ref-how){grid-row:2;color:var(--muted)!important}.js-root #references .ref-note>summary .ref-excerpt{grid-row:3;max-width:36ch;font-family:inherit!important;font-size:var(--fs-body)!important;letter-spacing:0!important;color:var(--muted)!important;margin:10px 0 0!important;font-weight:400!important;line-height:1.45!important}.js-root #references .ref-note>summary .ref-how{color:var(--muted);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;grid-row:4;margin-top:10px}.js-root #references .ref-note blockquote{text-align:left;padding:0 0 24px!important}.js-root .contact-links{grid-template-columns:repeat(2,minmax(0,1fr));font-size:var(--fs-body)!important;gap:8px 10px!important;margin-top:28px!important;display:grid!important}.js-root .contact-links>a{box-sizing:border-box;border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;align-items:center;min-width:0;min-height:48px;padding:8px 2px;overflow:hidden;display:flex!important}.js-root #skills{gap:0!important;display:flex!important}.js-root #skills .graph,.js-root #skills .skill-list,.js-root #skills .skill-legend,.js-root #skills .skill-evidence,.js-root #skills>div:first-child>p:not(.sec-label){display:none!important}.js-root #skills h2{margin-bottom:18px!important}.js-root #skills .skill-mobile-summary{order:3;gap:0;width:100%;display:grid!important}.js-root .skill-mobile-summary>div{border-bottom:1px solid var(--line);grid-template-columns:18px minmax(0,1fr);gap:12px;padding:19px 0;display:grid}.js-root .skill-mobile-summary strong{font-size:var(--fs-chip);font-weight:600}.js-root .skill-mobile-summary p{color:var(--muted);font-size:var(--fs-body);margin:5px 0 0;line-height:1.5}.js-root .skill-mobile-summary a{text-underline-offset:3px}.js-root .skill-mobile-mark{border:1.5px solid var(--ink);background:var(--card);border-radius:50%;width:13px;height:13px;margin-top:5px}.js-root .skill-mobile-mark.solid{background:var(--ink)}.js-root .skill-mobile-mark.dashed{border-style:dashed}.js-root #contact .contact-facts{background:0 0!important;margin-top:26px!important;display:block!important}.js-root #contact .contact-facts>summary,.js-root #contact .contact-facts>p.mono,.js-root #contact .contact-facts>p:last-child{display:none!important}.js-root #contact .contact-facts dl{gap:12px!important}.js-root #contact .contact-facts dl>div{border-top:1px solid var(--line)!important;padding-top:12px!important}.js-root #contact .contact-facts dd{overflow-wrap:anywhere}.js-root .learning-tools{margin-top:56px;padding-top:22px}.js-root .learning-tools-list{grid-template-columns:1fr;gap:0}.js-root.work-page-index .learning-tool{border-top:1px solid var(--line);border-bottom:0;grid-template-columns:minmax(0,1fr);gap:6px;min-height:0;padding:18px 0 20px;display:grid}.js-root.work-page-index .learning-tool>.mono{font-size:var(--fs-label);letter-spacing:.12em;margin-left:12px;font-weight:500;line-height:1.45}.js-root.work-page-index .learning-tool strong{font-family:var(--font-bricolage-display), "Bricolage Grotesque", system-ui, sans-serif;font-size:var(--fs-card);letter-spacing:-.045em;font-weight:600;line-height:1.04}.js-root.work-page-index .learning-tool>span:last-child{max-width:40ch;font-size:var(--fs-label);line-height:1.4}}@media (max-width:360px){.js-root #work .work-heading-actions{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.js-root .learning-tool strong span{transition:none}}.js-root #proof .proof-index{display:none}@media (min-width:1081px){.js-root #proof>div:nth-child(2).proof-display{display:contents!important}}@media (max-width:1080px){.js-root #proof{text-align:center;display:block!important}.js-root #proof>div:first-child{text-align:left;margin-bottom:28px!important}.js-root #proof>div:nth-child(2).proof-display{color:var(--ink)!important;background:0 0!important;margin:0!important;padding:0!important;display:block!important}.js-root #proof .proof-display>.proof-index{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 24px;font-size:inherit!important;gap:0!important;display:grid!important}.js-root #proof .proof-index button{border:0;border-right:1px solid var(--line);min-width:0;min-height:102px;color:var(--ink);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;padding:12px 3px;display:flex;position:relative}.js-root #proof .proof-index button:last-child{border-right:0}.js-root #proof .proof-index button[aria-pressed=true]:after{background:var(--ink);content:"";height:2px;position:absolute;bottom:-2px;left:10px;right:10px;transform:rotate(-1deg)}.js-root #proof .proof-index button:focus-visible{outline:2px solid var(--ink);outline-offset:-5px}.js-root #proof .proof-index-label{color:var(--muted);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase}.js-root #proof .proof-index-value{letter-spacing:-.05em;white-space:nowrap;margin-top:5px;font-size:clamp(23px,4vw,38px);line-height:1}.js-root #proof .proof-index-unit{color:var(--muted);font-size:clamp(17px,2.4vw,23px);line-height:1}.js-root #proof .proof-display>.proof-more,.js-root #proof .proof-display .proof-more-grid{display:contents!important}.js-root #proof .proof-display .proof-card{font-size:inherit!important;text-align:center!important;padding:0!important;display:block!important}.js-root #proof .proof-display .proof-card.proof-inactive,.js-root #proof .proof-display .proof-card>p:first-child,.js-root #proof .proof-display .proof-card>div:not(.fold){display:none!important}.js-root #proof .proof-display .proof-card>p:nth-of-type(2){max-width:38ch;color:var(--ink)!important;font-size:var(--fs-chip)!important;margin:0 auto!important;font-weight:600!important;line-height:1.3!important}.js-root #proof .proof-display .proof-card .fold{margin-top:12px!important;display:block!important}.js-root #proof .proof-display .proof-card .fold>summary{justify-content:center!important}.js-root #proof .proof-display .proof-card .fold-body p{text-align:center;max-width:38ch;margin-inline:auto!important}}@media (max-width:760px){.js-root #top{padding-bottom:52px!important}.js-root #work{padding-bottom:22px!important}.js-root #offer,.js-root #references{padding-bottom:40px!important}.js-root #skills{padding-bottom:44px!important}.js-root #proof .proof-index button{min-height:94px}}@media (min-width:761px) and (max-width:1080px){.js-root #offer .offer-grid{margin-top:28px!important}.js-root #offer .offer-item{margin:0;padding:0;border-top:1px solid var(--line)!important}.js-root #offer .offer-summary{cursor:pointer;grid-template-columns:48px minmax(0,1fr)!important;align-items:start!important;gap:7px 20px!important;min-height:0!important;padding:22px 0!important;display:grid!important}.js-root #offer .offer-summary:after{display:none!important}.js-root #offer .offer-summary>p:first-child{grid-area:1/1/span 3}.js-root #offer .offer-summary h3{grid-area:1/2;font-size:var(--fs-card)!important}.js-root #offer .offer-teaser{max-width:55ch;color:var(--muted);grid-area:2/2;line-height:1.45;font-size:var(--fs-body)!important;margin:0!important}.js-root #offer .offer-how{color:var(--muted);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;grid-area:3/2;margin-top:4px}.js-root #offer .offer-how:after{content:"  +"}.js-root #offer .offer-item[open] .offer-how:after{content:"  −"}.js-root #offer .offer-body{max-width:62ch;padding:0 0 22px 68px!important}.js-root #skills .graph,.js-root #skills .skill-list,.js-root #skills .skill-legend,.js-root #skills .skill-evidence,.js-root #skills>div:first-child>p:not(.sec-label){display:none!important}.js-root #skills .skill-mobile-summary{order:3;width:100%;margin-top:8px;display:grid!important}.js-root .skill-mobile-summary>div{border-bottom:1px solid var(--line);grid-template-columns:18px minmax(0,1fr);gap:14px;padding:22px 0;display:grid}.js-root .skill-mobile-summary strong{font-size:var(--fs-chip);font-weight:600}.js-root .skill-mobile-summary p{color:var(--muted);font-size:var(--fs-body);margin:5px 0 0;line-height:1.5}.js-root .skill-mobile-summary a{text-underline-offset:3px}.js-root .skill-mobile-mark{border:1.5px solid var(--ink);background:var(--card);border-radius:50%;width:13px;height:13px;margin-top:5px}.js-root .skill-mobile-mark.solid{background:var(--ink)}.js-root .skill-mobile-mark.dashed{border-style:dashed}}@media (min-width:761px) and (max-width:1100px){.js-root.work-page-index .project-fold-track{grid-template-columns:minmax(0,1fr);gap:14px}.js-root.work-page-index .project-poster{aspect-ratio:auto!important;height:auto!important}.js-root.work-page-index .project-poster-front{text-align:left;grid-template-rows:auto auto auto 1fr auto;grid-template-columns:minmax(0,1fr) clamp(130px,20vw,190px);gap:7px 28px;min-height:192px;padding:20px 24px;display:grid}.js-root.work-page-index .project-poster-meta,.js-root.work-page-index .project-poster-title,.js-root.work-page-index .project-poster-deck,.js-root.work-page-index .project-poster-turn{text-align:left;grid-column:1;width:100%}.js-root.work-page-index .project-poster-meta{grid-row:1;justify-content:flex-start;gap:14px}.js-root.work-page-index .project-poster-meta span:last-child{text-align:left}.js-root.work-page-index .project-poster-title{grid-row:2;max-width:none;max-height:none;font-size:clamp(24px,3vw,32px)}.js-root.work-page-index .project-poster-deck{max-width:52ch;height:auto;font-size:var(--fs-body);grid-row:3;display:block}.js-root.work-page-index .project-poster-summary{display:none}.js-root.work-page-index .project-poster-image{grid-area:1/2/-1;align-self:center;width:100%;margin:0}.js-root.work-page-index .project-poster-turn{grid-row:5;align-self:end;padding-top:4px}}.js-root #references .ref-index{display:none}@media (max-width:1080px){.js-root #references .ref-index{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 24px;display:grid}.js-root #references .ref-index button{border:0;border-right:1px solid var(--line);min-width:0;min-height:102px;color:var(--ink);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;padding:12px 3px;display:flex;position:relative}.js-root #references .ref-index button:last-child{border-right:0}.js-root #references .ref-index button[aria-pressed=true]:after{background:var(--ink);content:"";height:2px;position:absolute;bottom:-2px;left:10px;right:10px;transform:rotate(-1deg)}.js-root #references .ref-index button:focus-visible{outline:2px solid var(--ink);outline-offset:-5px}.js-root #references .ref-index-label{color:var(--muted);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase}.js-root #references .ref-index-number{letter-spacing:-.05em;margin-top:5px;font-size:clamp(23px,4vw,38px);font-weight:700;line-height:1}.js-root #references .refs-grid{margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.js-root #references .ref-note{border:0!important;padding:0!important;display:block!important}.js-root #references .ref-note.ref-inactive{display:none!important}.js-root #references .ref-note>summary{justify-items:center;cursor:pointer!important;text-align:center!important;border:0!important;grid-template-columns:minmax(0,1fr)!important;gap:6px!important;min-height:0!important;padding:4px 0 12px!important;display:grid!important}.js-root #references .ref-note>summary .hand{grid-area:1/1;font-size:var(--fs-hand)!important}.js-root #references .ref-note>summary>.mono:not(.ref-how){grid-area:2/1;color:var(--muted)!important}.js-root #references .ref-note>summary .ref-excerpt{grid-area:3/1;max-width:38ch;color:var(--ink)!important;font:600 var(--fs-chip)/1.3 var(--font-bricolage-display), system-ui, sans-serif!important;letter-spacing:-.01em!important;margin:14px auto 0!important;display:block!important}.js-root #references .ref-note>summary .ref-how{color:var(--muted);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;grid-area:4/1;margin-top:12px}.js-root #references .ref-note>summary .ref-how:after{content:"  +"}.js-root #references .ref-note[open]>summary .ref-how:after{content:"  −"}.js-root #references .ref-note blockquote{text-align:center;max-width:64ch;border-top:1px solid var(--line)!important;margin-inline:auto!important;padding:16px 0 0!important}.js-root #references .deck-hint{display:none!important}}@media (max-width:760px){.js-root #references .ref-index button{min-height:94px}}.js-root #offer .offer-index{display:none}@media (max-width:1080px){.js-root #offer .offer-index{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:28px 0 24px;display:grid}.js-root #offer .offer-index button{border:0;border-right:1px solid var(--line);min-width:0;min-height:102px;color:var(--ink);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;padding:12px 3px;display:flex;position:relative}.js-root #offer .offer-index button:last-child{border-right:0}.js-root #offer .offer-index button[aria-pressed=true]:after{background:var(--ink);content:"";height:2px;position:absolute;bottom:-2px;left:10px;right:10px;transform:rotate(-1deg)}.js-root #offer .offer-index button:focus-visible{outline:2px solid var(--ink);outline-offset:-5px}.js-root #offer .offer-index-label{color:var(--muted);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase}.js-root #offer .offer-index-number{letter-spacing:-.05em;margin-top:5px;font-size:clamp(23px,4vw,38px);font-weight:700;line-height:1}.js-root #offer .offer-grid{margin:0!important;display:block!important}.js-root #offer .offer-item{border:0!important;margin:0!important;padding:0!important;display:block!important}.js-root #offer .offer-item.offer-inactive{display:none!important}.js-root #offer .offer-summary{justify-items:center;cursor:pointer!important;text-align:center!important;border:0!important;grid-template-columns:minmax(0,1fr)!important;gap:6px!important;min-height:0!important;padding:4px 0 12px!important;display:grid!important}.js-root #offer .offer-summary:after,.js-root #offer .offer-summary>p:first-child{display:none!important}.js-root #offer .offer-summary h3{grid-area:1/1;max-width:30ch;font-size:var(--fs-chip)!important;letter-spacing:-.01em!important;margin:0!important;line-height:1.3!important}.js-root #offer .offer-teaser{max-width:38ch;color:var(--muted);grid-area:2/1;font-size:var(--fs-body)!important;margin:6px auto 0!important;line-height:1.45!important}.js-root #offer .offer-how{color:var(--muted);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;grid-area:3/1;margin-top:12px}.js-root #offer .offer-how:after{content:"  +"}.js-root #offer .offer-item[open] .offer-how:after{content:"  −"}.js-root #offer .offer-body{border-top:1px solid var(--line);text-align:center;max-width:62ch;margin-inline:auto;padding:16px 0 0!important}.js-root #offer .offer-body p:first-child{margin:0 auto!important}.js-root #offer .offer-body p:last-child{margin:14px auto 0!important}}@media (max-width:760px){.js-root #offer .offer-index button{min-height:94px}}@media (min-width:761px) and (max-width:1080px){.js-root #proof .proof-index button,.js-root #offer .offer-index button,.js-root #references .ref-index button{min-height:110px}.js-root #proof .proof-card .fold>summary{display:flex!important}}
