:root{--color-board: oklch(27% .058 265);--color-board-light: oklch(34% .064 262);--color-grid: oklch(69% .052 285 / .11);--color-grid-major: oklch(77% .055 75 / .16);--color-paper: oklch(96% .018 83);--color-paper-edge: oklch(99% .008 86);--color-note: oklch(90% .088 76);--color-ink: oklch(26% .045 266);--color-muted: oklch(44% .032 270);--color-light-muted: oklch(82% .027 275);--color-accent: oklch(74% .166 48);--color-accent-ink: oklch(24% .046 265);--color-link: oklch(47% .158 32);--color-tape: oklch(79% .098 65 / .62);--color-rope: oklch(68% .092 55);--color-clip: oklch(82% .106 72);--color-rule: oklch(80% .026 275);--color-shadow: oklch(14% .037 265 / .38);--color-transparent: oklch(27% .058 265 / 0);--color-focus: oklch(82% .15 75);--font-display: "Manrope", sans-serif;--font-body: "Manrope", sans-serif;--font-hand: "Patrick Hand", cursive;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 5rem;--space-4xl: 7rem;--text-display: clamp(2.25rem, 3.5vw, 3.35rem);--text-title: clamp(1.65rem, 2.6vw, 2.1rem);--radius-paper: 14px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-short: .18s}*{box-sizing:border-box}html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:112px}body{margin:0;overflow-x:clip;background-color:var(--color-board);color:var(--color-paper);font-family:var(--font-body);font-size:15px;line-height:1.65;text-transform:lowercase;background-image:linear-gradient(var(--color-grid-major) 1px,var(--color-transparent) 1px),linear-gradient(90deg,var(--color-grid-major) 1px,var(--color-transparent) 1px),linear-gradient(var(--color-grid) 1px,var(--color-transparent) 1px),linear-gradient(90deg,var(--color-grid) 1px,var(--color-transparent) 1px);background-size:160px 160px,160px 160px,32px 32px,32px 32px}button,a{-webkit-tap-highlight-color:var(--color-transparent)}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}.paper a:focus-visible,.paper summary:focus-visible,.work-card a:focus-visible{outline-color:var(--color-ink)}button:active,.contact-button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--font-display);font-style:normal;overflow-wrap:anywhere;min-width:0;line-height:1.2}h1{font-size:var(--text-display);letter-spacing:-.055em;font-weight:700}h2{font-size:var(--text-title);letter-spacing:-.035em;font-weight:600}h3{font-size:19px;letter-spacing:-.025em;font-weight:700}img{display:block;width:100%;max-width:100%;object-fit:cover}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.handwritten{font-family:var(--font-hand);font-weight:400;letter-spacing:0}.accent{color:var(--color-accent)}.board{width:min(1160px,calc(100% - 40px));margin-inline:auto;position:relative}.draft-lines{display:none;position:absolute;top:110px;left:-480px;width:1080px;height:1800px;pointer-events:none;border:1px solid var(--color-grid-major);border-radius:50%;transform:rotate(-25deg)}.draft-lines:before{content:"";position:absolute;inset:150px;border:1px dashed var(--color-grid-major);border-radius:50%}.nav-pill{position:fixed;z-index:20;top:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:6px;border:2px solid var(--color-board-light);background:var(--color-board);box-shadow:0 4px 0 var(--color-shadow);border-radius:99px;white-space:nowrap}.nav-pill a{padding:9px 16px;color:var(--color-light-muted);font-size:14px;line-height:24px;border-radius:99px}.nav-pill a:hover,.nav-pill a[aria-current]{color:var(--color-paper);background:var(--color-board-light);text-decoration:none}.nav-pill .nav-contact{background:var(--color-accent);color:var(--color-accent-ink);font-weight:700;padding-inline:19px}.nav-pill .nav-contact:hover{background:var(--color-note);color:var(--color-ink)}.intro{padding-top:148px;display:grid;gap:40px}.portrait{width:190px;background:var(--color-paper);padding:11px;color:var(--color-ink);transform:rotate(-8deg);align-self:start;margin:12px auto 0;box-shadow:6px 8px 0 var(--color-shadow);position:relative}.portrait img{height:220px;object-position:center 34%;filter:grayscale(1) contrast(1.04)}.pin:before{content:"";position:absolute;z-index:2;left:50%;top:-11px;width:12px;height:12px;border-radius:50%;background:var(--color-accent);box-shadow:1px 4px 0 var(--color-shadow)}.intro-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.socials{display:flex;gap:8px}.socials a{display:grid;place-items:center;border:1px dashed var(--color-accent);outline:3px solid var(--color-paper);background:var(--color-paper);color:var(--color-link);border-radius:50%;width:34px;height:34px;font-size:22px}.socials a:hover{transform:rotate(-8deg);text-decoration:none}.socials a:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}.role{color:var(--color-accent);font-size:clamp(20px,2vw,25px);margin-top:12px;line-height:1.4}.intro-note{position:relative;background:var(--color-note);color:var(--color-ink);padding:25px 28px 22px;margin-top:28px;transform:rotate(1deg);box-shadow:5px 6px 0 var(--color-shadow)}.intro-note>p{font-size:18px;line-height:1.45;max-width:620px}.intro-note ul{padding-left:17px;margin:14px 0 8px;display:grid;gap:6px}.intro-note li{padding-left:3px}.intro-note li::marker{color:var(--color-link)}.ink-mark{text-decoration:underline wavy var(--color-rope);text-underline-offset:4px}.note-signature{display:block;text-align:right;color:var(--color-link);font-size:21px;margin-top:10px}.paper{background:var(--color-paper);color:var(--color-ink);border:3px solid var(--color-paper-edge);border-radius:var(--radius-paper);box-shadow:5px 7px 0 var(--color-shadow)}.taped{position:relative}.taped:before,.taped:after{content:"";position:absolute;width:69px;height:23px;background:var(--color-tape);top:-12px;left:12px;transform:rotate(-9deg);z-index:2}.taped:after{left:auto;right:13px;transform:rotate(10deg)}.bring{padding:22px 25px 26px;margin-top:29px;transform:rotate(-.6deg)}.bring-heading{font-size:14px;font-weight:600;display:flex;justify-content:space-between;gap:16px}.bring-heading .handwritten{color:var(--color-muted);font-size:17px}.bring-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;margin-top:21px}.bring-grid strong{font-size:14px;display:block;font-weight:600}.bring-grid p{font-size:11px;color:var(--color-muted);margin-top:2px}.mini-symbol{font-size:26px;color:var(--color-link);line-height:1;display:block;margin-bottom:10px}.work-section{margin-top:80px}.section-heading{display:flex;align-items:center;gap:12px}.section-heading h2 .handwritten{color:var(--color-accent);font-size:1em;margin-left:5px}.round-stamp{display:grid;place-items:center;width:42px;height:42px;background:var(--color-paper);color:var(--color-link);border:3px solid var(--color-paper-edge);border-radius:50%;font-size:25px;transform:rotate(9deg);box-shadow:2px 3px 0 var(--color-shadow)}.section-lede{color:var(--color-light-muted);margin-top:9px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 42px}.filters button{border:1px solid var(--color-light-muted);color:var(--color-paper);background:var(--color-board);font-size:12px;padding:7px 14px;border-radius:30px;white-space:nowrap}.filters button[aria-pressed=true]{color:var(--color-ink);background:var(--color-paper);border-color:var(--color-paper)}.filters button:hover{background:var(--color-board-light);color:var(--color-paper)}.work-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:42px 28px;position:relative}.work-grid:before{content:"";position:absolute;z-index:-1;top:-20px;left:0;width:100%;height:30px;border-bottom:3px solid var(--color-rope);border-radius:0 0 50% 50%}.work-card{background:var(--color-paper);color:var(--color-ink);padding:12px;position:relative;box-shadow:5px 7px 0 var(--color-shadow);transform:rotate(-1.5deg);display:flex;flex-direction:column;min-width:0}.work-card:nth-child(2n){transform:rotate(1.2deg)}.work-card:nth-child(3n){transform:rotate(-.6deg)}.work-card[hidden]{display:none}.clipped:before{content:"";position:absolute;z-index:3;top:-29px;left:calc(50% - 7px);width:15px;height:49px;border:1px solid var(--color-rope);background:linear-gradient(90deg,var(--color-clip) 30%,var(--color-rope) 33%,var(--color-clip) 39%);box-shadow:2px 3px 2px var(--color-shadow);transform:rotate(-6deg)}.work-card>img,.image-link img{aspect-ratio:1.65;height:auto;object-fit:cover}.image-link{display:block}.analytics-image{object-position:right center}.card-content{padding:15px 7px 9px;display:flex;flex-direction:column;align-items:flex-start;flex:1}.category{color:var(--color-link);font-size:20px;margin-bottom:7px;line-height:1.2}.card-content>p:not(.category){color:var(--color-muted);font-size:13px;margin-top:10px;line-height:1.6}.text-link{font-size:12px;font-weight:700;display:inline-block;border-bottom:1px solid var(--color-rule);margin-top:18px;padding-bottom:2px;white-space:nowrap}.text-link:hover{border-color:var(--color-link);color:var(--color-link);text-decoration:none}.metric-pair{display:flex;gap:26px;margin-top:15px}.metric-pair strong{font-size:25px;letter-spacing:-.03em;line-height:1.2}.metric-pair span{display:block;font-size:10px;color:var(--color-muted)}.card-content .source-note{font-size:10px!important;line-height:1.4!important}blockquote{font-family:var(--font-hand);font-size:19px;line-height:1.3;margin:12px 0 0;padding-left:12px;border-left:2px solid var(--color-rope)}.card-art{aspect-ratio:1.65;padding:20px 24px;display:flex;flex-direction:column;justify-content:space-between;color:var(--color-ink);overflow:clip}.card-art--warm{background:var(--color-note)}.small-note{font-size:9px;letter-spacing:.04em}.art-title{font-size:clamp(26px,4vw,36px);line-height:1.06;font-weight:600;letter-spacing:-.055em}.art-title>span{color:var(--color-link)}.art-scribble{font-size:17px;line-height:1.2}.card-art--ink{background:var(--color-board-light);color:var(--color-paper)}.card-art--ink .art-scribble{color:var(--color-light-muted)}.card-art--lined{background-color:var(--color-paper-edge);background-image:repeating-linear-gradient(var(--color-transparent),var(--color-transparent) 23px,var(--color-rule) 24px)}.card-art--lined .art-title{font-family:var(--font-hand);font-weight:400;font-size:34px;letter-spacing:-.01em}.card-art--brand{background:var(--color-board-light);color:var(--color-paper)}.card-art--brand .art-title{white-space:pre-line}.experience{margin-top:90px;padding:30px 24px}.experience .handwritten{color:var(--color-link)}.timeline{margin-top:33px;display:grid;gap:29px}.timeline-item{display:grid;grid-template-columns:37px minmax(0,1fr);gap:15px;position:relative}.timeline-item:not(:last-child):after{content:"";position:absolute;left:18px;top:46px;bottom:-18px;border-left:1px dashed var(--color-rule)}.timeline-icon{width:37px;height:37px;border:2px solid var(--color-paper-edge);border-radius:50%;background:var(--color-board);color:var(--color-paper);display:grid;place-items:center;font-size:22px;box-shadow:1px 2px 0 var(--color-rule)}.timeline-item .company{color:var(--color-muted);font-size:13px;margin:5px 0 9px}.company span{display:block;font-size:11px;margin-top:3px}.timeline-item p{color:var(--color-muted);font-size:14px}details{margin-top:9px}summary{width:fit-content;cursor:pointer;color:var(--color-link);font-size:12px;font-weight:600;padding:4px 0}details p,details ul{margin:8px 0 0;color:var(--color-muted);font-size:13px}details ul{padding-left:18px}.experience-bottom{display:grid;gap:26px;border-top:1px solid var(--color-rule);margin-top:32px;padding-top:26px}.experience-bottom h3{font-size:16px;margin-bottom:12px}.experience-bottom p{font-size:13px;color:var(--color-muted)}.experience-bottom strong{color:var(--color-ink);font-weight:500}.experience-bottom .award-note{color:var(--color-link);font-size:20px;margin-top:6px}.toolkit{margin-top:80px}.toolkit-layout{display:grid;gap:32px;margin-top:35px}.toolkit-note{background:var(--color-note);color:var(--color-ink);padding:25px 29px;position:relative;transform:rotate(-3deg);align-self:start;box-shadow:5px 6px 0 var(--color-shadow)}.toolkit-note p{font-size:27px;line-height:1.3}.toolkit-note>span{display:block;text-align:right;color:var(--color-link);font-size:50px;line-height:1;margin-top:10px}.toolkit-list{display:grid;gap:21px}.toolkit-list>div{border-bottom:1px solid var(--color-grid-major);padding-bottom:20px}.toolkit-list h3{font-size:17px;margin-bottom:7px}.toolkit-list p{color:var(--color-light-muted);font-size:13px}.side-projects{margin-top:75px}.side-grid{display:grid;gap:30px;margin-top:35px}.side-card{position:relative;padding:12px;border-radius:8px}.side-card img{aspect-ratio:1.7;height:auto;border-radius:3px}.side-card>div{padding:14px 8px 9px}.side-card p{font-size:13px;color:var(--color-muted);margin-top:9px}.project-placeholder{min-height:190px;display:grid;place-items:center;padding:var(--space-xl);background:var(--color-note);color:var(--color-ink);font-size:30px;text-align:center}.connect{padding:80px 0 24px;text-align:center}.connect>.handwritten{color:var(--color-accent);font-size:25px;margin-bottom:8px}.connect h2{font-size:clamp(34px,5vw,55px);letter-spacing:-.05em}.connect>p:not(.handwritten){color:var(--color-light-muted);font-size:14px;margin-top:18px}.contact-actions{display:flex;justify-content:center;gap:24px;align-items:center;flex-wrap:wrap;margin-top:26px}.contact-button{display:inline-block;background:var(--color-accent);color:var(--color-accent-ink);border-radius:30px;padding:12px 22px;font-size:13px;font-weight:700;white-space:nowrap}.contact-button:hover{background:var(--color-note);text-decoration:none}.email-link{font-size:13px;white-space:nowrap;border-bottom:1px solid var(--color-light-muted)}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:clip;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:6px;left:6px;padding:10px;background:var(--color-paper);color:var(--color-ink);z-index:30}@media(min-width:40rem){.board{width:min(1160px,calc(100% - 72px))}.intro{grid-template-columns:155px minmax(0,1fr);gap:30px}.portrait{width:150px;margin-top:33px}.portrait img{height:190px}.intro-top{flex-wrap:wrap}.bring-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.bring-heading{flex-wrap:wrap;gap:0}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.experience{padding:38px}.experience-bottom{grid-template-columns:1.4fr 1fr;gap:40px}.company span{display:inline;margin-left:15px}.toolkit-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:50px}.side-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.draft-lines{display:block}.intro{grid-template-columns:180px minmax(0,1fr);gap:48px}.portrait{width:185px}.portrait img{height:232px}.intro-top,.bring-heading{flex-wrap:nowrap}.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.art-title{font-size:35px}.intro-note{padding:27px 30px 23px}.experience{padding:38px 44px}.timeline{gap:30px}.timeline-item{grid-template-columns:42px minmax(0,1fr);gap:22px}.timeline-icon{width:42px;height:42px}.timeline-item:not(:last-child):after{left:21px;top:51px}.side-card{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:8px}.side-card img{height:100%;aspect-ratio:1}}@media(max-width:39.99rem){.nav-pill{top:16px;gap:0;padding:4px}.nav-pill a{font-size:11px;padding:7px 10px}.nav-pill .nav-contact{padding-inline:12px}.nav-extra{display:none}.intro{padding-top:105px;gap:35px}.intro-top{flex-wrap:wrap;gap:20px}.socials{gap:10px}.socials a{width:30px;height:30px}.intro-note{padding:22px 20px}.intro-note>p{font-size:17px}.intro-note li{font-size:14px}.note-signature{font-size:19px}.bring{padding:23px 18px}.bring-heading{flex-direction:column;gap:0}.work-section{margin-top:55px}.section-heading{align-items:flex-start}.section-heading h2 .handwritten{display:block;margin:4px 0 0;font-size:24px}.round-stamp{flex-shrink:0}.work-card{transform:rotate(-.7deg)}.work-card:nth-child(2n){transform:rotate(.7deg)}.experience{padding:27px 18px;margin-top:65px}.experience h2 .handwritten{font-size:23px}.timeline-item{gap:12px}.timeline-item h3{font-size:17px}.company{overflow-wrap:anywhere}.connect{padding-top:65px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
