.playground.svelte-1epjp2q{margin:0;min-width:0;align-self:center}fieldset.svelte-1epjp2q{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem 1rem;border:0;padding:0;margin:0;min-width:0;width:100%}legend.svelte-1epjp2q{float:left;width:100%;text-align:center;font-size:.75rem;margin-bottom:.6rem;color:#536152}.controls.svelte-1epjp2q{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}label.svelte-1epjp2q{position:relative;cursor:pointer;font-size:.75rem}input.svelte-1epjp2q{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}label.svelte-1epjp2q span:where(.svelte-1epjp2q){display:block;border:1px solid #536152;padding:.25rem .75rem}input.svelte-1epjp2q:checked+span:where(.svelte-1epjp2q){background:#263c30;color:#f6f1e5;border-color:#263c30}input.svelte-1epjp2q:focus-visible+span:where(.svelte-1epjp2q){outline:2px solid #923447;outline-offset:4px}.network.svelte-1epjp2q{display:block;width:100%;max-width:26rem;margin:.5rem auto;overflow:visible}.outer-ring.svelte-1epjp2q,.inner-ring.svelte-1epjp2q{fill:none;stroke:#a7b19a;stroke-width:1}.inner-ring.svelte-1epjp2q{stroke-dasharray:3 7}.connections.svelte-1epjp2q{fill:none;stroke:#7b8f71;stroke-width:1;transition:opacity .4s}.orbit.svelte-1epjp2q{transform-origin:200px 200px;animation:svelte-1epjp2q-turn 28s linear infinite;animation-play-state:paused}.node.svelte-1epjp2q{stroke:#263c30;stroke-width:1.5;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.node.svelte-1epjp2q circle:where(.svelte-1epjp2q)+circle:where(.svelte-1epjp2q){fill:#263c30}.node.svelte-1epjp2q path:where(.svelte-1epjp2q){fill:none}.core.svelte-1epjp2q circle:where(.svelte-1epjp2q){fill:#263c30}.core.svelte-1epjp2q text:where(.svelte-1epjp2q){fill:#d5ed78;font-family:Fraunces,Georgia,serif;font-size:37px;letter-spacing:-3px}.crosshair.svelte-1epjp2q{stroke:#263c30;stroke-width:1}figcaption.svelte-1epjp2q{font-size:.6875rem;text-align:center;color:#536152}.playground.svelte-1epjp2q:has(#network-orbit:where(.svelte-1epjp2q):checked) .orbit:where(.svelte-1epjp2q){animation-play-state:running}.playground.svelte-1epjp2q:has(#network-scatter:where(.svelte-1epjp2q):checked) .a:where(.svelte-1epjp2q){transform:translate(30px,23px)}.playground.svelte-1epjp2q:has(#network-scatter:where(.svelte-1epjp2q):checked) .b:where(.svelte-1epjp2q){transform:translate(-12px,57px)}.playground.svelte-1epjp2q:has(#network-scatter:where(.svelte-1epjp2q):checked) .c:where(.svelte-1epjp2q){transform:translate(-24px,-32px)}.playground.svelte-1epjp2q:has(#network-scatter:where(.svelte-1epjp2q):checked) .d:where(.svelte-1epjp2q){transform:translate(24px,-52px)}.playground.svelte-1epjp2q:has(#network-scatter:where(.svelte-1epjp2q):checked) .e:where(.svelte-1epjp2q){transform:translate(42px,12px)}.playground.svelte-1epjp2q:has(#network-scatter:where(.svelte-1epjp2q):checked) .f:where(.svelte-1epjp2q){transform:translate(-62px,26px)}.playground.svelte-1epjp2q:has(#network-scatter:where(.svelte-1epjp2q):checked) .connections:where(.svelte-1epjp2q){opacity:.18}@keyframes svelte-1epjp2q-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.orbit.svelte-1epjp2q{animation:none}.node.svelte-1epjp2q,.connections.svelte-1epjp2q{transition:none}}@media print{fieldset.svelte-1epjp2q,figcaption.svelte-1epjp2q{display:none}.orbit.svelte-1epjp2q{animation:none}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;font-family:Public Sans,sans-serif;color:#263c30;background:#f6f1e5;font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased}::selection{color:#263c30;background:#d5ed78}a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}a:focus-visible,summary.svelte-qzkvnv:focus-visible{outline:2px solid #923447;outline-offset:5px}.skip-link.svelte-qzkvnv{position:fixed;top:-8rem;left:1rem;background:#d5ed78;padding:.6rem 1rem;z-index:30}.skip-link.svelte-qzkvnv:focus{top:1rem}.topbar.svelte-qzkvnv{position:sticky;top:0;z-index:20;background:#f6f1e5;border-bottom:1px solid #263c30}.topbar-inner.svelte-qzkvnv{width:min(100% - 6rem,72rem);margin:auto;display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding:.75rem 0}.signature.svelte-qzkvnv{font-family:Fraunces,Georgia,serif;font-size:2rem;line-height:1.2;letter-spacing:-.1em;text-decoration:none}.section-links.svelte-qzkvnv{display:flex;flex-wrap:wrap;gap:.25rem 1.7rem;font-size:.8125rem}.section-links.svelte-qzkvnv a:where(.svelte-qzkvnv){text-decoration:none;padding:.45rem 0}.section-links.svelte-qzkvnv a:where(.svelte-qzkvnv):hover,.profile-links.svelte-qzkvnv a:where(.svelte-qzkvnv):hover{text-decoration:underline}body:has(#projects:target) .section-links.svelte-qzkvnv a[href="#projects"]:where(.svelte-qzkvnv),body:has(#experience:target) .section-links.svelte-qzkvnv a[href="#experience"]:where(.svelte-qzkvnv),body:has(#education:target) .section-links.svelte-qzkvnv a[href="#education"]:where(.svelte-qzkvnv){color:#923447;text-decoration:underline}.cv-link.svelte-qzkvnv{text-decoration:none;border:1px solid #263c30;padding:.2rem .75rem;font-size:.8125rem;background:#d5ed78}.cv-link.svelte-qzkvnv span:where(.svelte-qzkvnv){margin-left:.5rem}.canvas.svelte-qzkvnv{width:min(100% - 6rem,72rem);margin:auto}.hero.svelte-qzkvnv{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:4rem;align-items:center;padding:4rem 0 3.25rem}.eyebrow.svelte-qzkvnv{margin:0 0 1.5rem;font-size:.75rem;font-weight:500;letter-spacing:.035em}h1.svelte-qzkvnv{font-family:Fraunces,Georgia,serif;font-size:clamp(4rem,8.6vw,7.3rem);font-weight:500;letter-spacing:-.065em;line-height:.92;margin:0}h1.svelte-qzkvnv>span:where(.svelte-qzkvnv){display:block}.surname.svelte-qzkvnv{color:#923447;font-weight:400;transform:rotate(-3deg);transform-origin:0 50%;margin:.2rem 0 0 1.8rem}.full-stop.svelte-qzkvnv{color:#263c30}.bio.svelte-qzkvnv{max-width:34rem;margin:2rem 0 0;font-size:1rem;line-height:1.85}.profile-links.svelte-qzkvnv{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin-top:1.4rem;font-size:.8125rem}.profile-links.svelte-qzkvnv a:where(.svelte-qzkvnv){text-decoration:none}.profile-links.svelte-qzkvnv span:where(.svelte-qzkvnv){margin-left:.2rem;color:#923447}main.svelte-qzkvnv{outline:none}main.svelte-qzkvnv>section:where(.svelte-qzkvnv){padding-top:4rem}.section-heading.svelte-qzkvnv{display:flex;justify-content:space-between;align-items:end;gap:1rem 2rem;flex-wrap:wrap;margin-bottom:2.5rem}h2.svelte-qzkvnv{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,3.5vw,3rem);font-weight:400;line-height:1.1;letter-spacing:-.04em}h2.svelte-qzkvnv>span:where(.svelte-qzkvnv){color:#923447}.section-heading.svelte-qzkvnv p:where(.svelte-qzkvnv){margin:0;font-size:.8125rem;line-height:1.6;color:#536152}.project-stack.svelte-qzkvnv{padding:.5rem 0}.project-sheet.svelte-qzkvnv{--sheet: #d5ed78;background:var(--sheet);border:1px solid #263c30;transform:rotate(var(--tilt));transition:transform .25s ease,box-shadow .25s ease;box-shadow:5px 5px #263c30}.project-sheet.blue.svelte-qzkvnv{--sheet: #bbc9f0}.project-sheet.orange.svelte-qzkvnv{--sheet: #f7af88}.project-sheet.svelte-qzkvnv+.project-sheet:where(.svelte-qzkvnv){margin-top:2.25rem}.project-sheet.svelte-qzkvnv:hover,.project-sheet.svelte-qzkvnv:focus-within{transform:rotate(0);box-shadow:8px 8px #263c30}summary.svelte-qzkvnv{display:flex;align-items:center;justify-content:space-between;gap:2rem;cursor:pointer;list-style:none;padding:1.6rem 2rem}summary.svelte-qzkvnv::-webkit-details-marker{display:none}summary.svelte-qzkvnv:focus-visible{outline-offset:-6px}.project-heading.svelte-qzkvnv{display:grid;gap:.5rem;min-width:0}.project-category.svelte-qzkvnv,.project-status.svelte-qzkvnv{font-size:.75rem;line-height:1.5}.project-title.svelte-qzkvnv{font-family:Fraunces,Georgia,serif;font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.15;letter-spacing:-.03em;overflow-wrap:anywhere}.project-mark.svelte-qzkvnv{display:flex;align-items:center;gap:2rem;flex-shrink:0}.project-mark.svelte-qzkvnv svg{width:3rem;height:3rem}.disclosure.svelte-qzkvnv{position:relative;display:block;width:1.5rem;height:1.5rem}.disclosure.svelte-qzkvnv:before,.disclosure.svelte-qzkvnv:after{content:"";position:absolute;top:50%;left:0;width:100%;height:1px;background:#263c30}.disclosure.svelte-qzkvnv:after{transform:rotate(90deg)}details[open].svelte-qzkvnv .disclosure:where(.svelte-qzkvnv):after{transform:rotate(0)}.project-body.svelte-qzkvnv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.3rem 2.5rem;border-top:1px solid #263c3055;margin:0 2rem;padding:1.5rem 0}.project-body.svelte-qzkvnv>p:where(.svelte-qzkvnv){margin:0}.project-bottom.svelte-qzkvnv{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem 1.5rem;font-size:.75rem;padding-top:.25rem}.project-bottom.svelte-qzkvnv a:where(.svelte-qzkvnv){font-weight:500}.information-section.svelte-qzkvnv{margin-top:1.75rem}.experience-list.svelte-qzkvnv{border-top:1px solid #263c30}.experience-list.svelte-qzkvnv article:where(.svelte-qzkvnv){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:1.5rem 3rem;padding:1.75rem 0;border-bottom:1px solid #a7b19a}h3.svelte-qzkvnv{font-size:1rem;font-weight:600;line-height:1.6;margin:0}.organisation.svelte-qzkvnv{font-size:.8125rem;color:#536152;margin:.25rem 0 0}.entry-description.svelte-qzkvnv{margin:0}.education-list.svelte-qzkvnv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);border:1px solid #263c30}.education-list.svelte-qzkvnv article:where(.svelte-qzkvnv){padding:2rem}.education-list.svelte-qzkvnv .university:where(.svelte-qzkvnv){background:#263c30;color:#f6f1e5}.period.svelte-qzkvnv{margin:0 0 1rem;font-size:.75rem}.education-list.svelte-qzkvnv .university:where(.svelte-qzkvnv) .period:where(.svelte-qzkvnv){color:#d5ed78}.education-list.svelte-qzkvnv h3:where(.svelte-qzkvnv){font-family:Fraunces,Georgia,serif;font-size:1.6rem;font-weight:400;line-height:1.2;margin-bottom:.75rem;overflow-wrap:anywhere}.qualification.svelte-qzkvnv{margin:0 0 1rem;font-size:.875rem}.education-list.svelte-qzkvnv .entry-description:where(.svelte-qzkvnv){font-size:.875rem}footer.svelte-qzkvnv{background:#d5ed78;border-top:1px solid #263c30;margin-top:5rem}.footer-inner.svelte-qzkvnv{width:min(100% - 6rem,72rem);margin:auto;padding:2rem 0 1.5rem}.footer-inner.svelte-qzkvnv>p:where(.svelte-qzkvnv){margin:0 0 .5rem;font-size:.875rem}.email.svelte-qzkvnv{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-family:Fraunces,Georgia,serif;font-size:clamp(1.4rem,4vw,3rem);letter-spacing:-.03em;line-height:1.4;text-decoration:none;overflow-wrap:anywhere}.email.svelte-qzkvnv:hover{text-decoration:underline}.email.svelte-qzkvnv>span:where(.svelte-qzkvnv){flex-shrink:0}.footer-bottom.svelte-qzkvnv{border-top:1px solid #263c3066;padding-top:1rem;margin-top:2rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1.5rem;font-size:.75rem}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.project-sheet.svelte-qzkvnv{animation:svelte-qzkvnv-arrive linear both;animation-timeline:view();animation-range:entry 0% entry 35%}@keyframes svelte-qzkvnv-arrive{0%{opacity:.35;translate:0 2rem}to{opacity:1;translate:0 0}}}}@media(max-width:960px){.topbar-inner.svelte-qzkvnv,.canvas.svelte-qzkvnv,.footer-inner.svelte-qzkvnv{width:calc(100% - 4rem)}.hero.svelte-qzkvnv{gap:2rem;padding-top:3rem}h1.svelte-qzkvnv{font-size:clamp(3rem,9vw,6rem)}.project-mark.svelte-qzkvnv{gap:1rem}.project-mark.svelte-qzkvnv svg{width:2rem;height:2rem}summary.svelte-qzkvnv{padding:1.5rem}.project-body.svelte-qzkvnv{margin:0 1.5rem}.education-list.svelte-qzkvnv article:where(.svelte-qzkvnv){padding:1.5rem}}@media(max-width:700px){.topbar-inner.svelte-qzkvnv,.canvas.svelte-qzkvnv,.footer-inner.svelte-qzkvnv{width:calc(100% - 2.5rem)}.topbar-inner.svelte-qzkvnv{column-gap:1rem}.signature.svelte-qzkvnv{font-size:1.5rem}.section-links.svelte-qzkvnv{gap:.25rem 1rem;font-size:.75rem}.cv-link.svelte-qzkvnv{font-size:.75rem;padding:.15rem .5rem}.hero.svelte-qzkvnv{grid-template-columns:minmax(0,1fr);gap:2.25rem;padding:2.5rem 0 2rem}h1.svelte-qzkvnv{font-size:clamp(2rem,17vw,6rem)}.surname.svelte-qzkvnv{margin-left:1.25rem}.eyebrow.svelte-qzkvnv{margin-bottom:1.25rem;font-size:.6875rem}.bio.svelte-qzkvnv{margin-top:1.5rem}.hero.svelte-qzkvnv .playground{width:min(100%,23rem);margin:auto}main.svelte-qzkvnv>section:where(.svelte-qzkvnv){padding-top:2.75rem}.section-heading.svelte-qzkvnv{margin-bottom:1.75rem;gap:.75rem}.section-heading.svelte-qzkvnv p:where(.svelte-qzkvnv) br:where(.svelte-qzkvnv){display:none}.project-sheet.svelte-qzkvnv{--tilt: 0deg !important;box-shadow:3px 3px #263c30}.project-sheet.svelte-qzkvnv:hover,.project-sheet.svelte-qzkvnv:focus-within{box-shadow:3px 3px #263c30}summary.svelte-qzkvnv{gap:1rem;padding:1.25rem}.project-category.svelte-qzkvnv{font-size:.6875rem}.project-mark.svelte-qzkvnv svg{display:none}.disclosure.svelte-qzkvnv{width:1rem;height:1rem}.project-body.svelte-qzkvnv{grid-template-columns:minmax(0,1fr);margin:0 1.25rem;padding:1.25rem 0;gap:1rem}.project-bottom.svelte-qzkvnv{grid-column:auto;gap:.75rem}.experience-list.svelte-qzkvnv article:where(.svelte-qzkvnv){grid-template-columns:minmax(0,1fr);gap:.75rem;padding:1.4rem 0}.education-list.svelte-qzkvnv{grid-template-columns:minmax(0,1fr)}.education-list.svelte-qzkvnv article:where(.svelte-qzkvnv){padding:1.5rem}.information-section.svelte-qzkvnv{margin-top:.5rem}footer.svelte-qzkvnv{margin-top:3rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-sheet.svelte-qzkvnv{transition:none}}@media print{body{color:#222;background:#fff;font-size:10pt}.canvas.svelte-qzkvnv{width:100%}.topbar.svelte-qzkvnv,.skip-link.svelte-qzkvnv,.project-mark.svelte-qzkvnv,footer.svelte-qzkvnv,.hero.svelte-qzkvnv .playground{display:none}.hero.svelte-qzkvnv{display:block;padding:0}h1.svelte-qzkvnv{font-size:2rem;line-height:1.2}h1.svelte-qzkvnv>span:where(.svelte-qzkvnv){display:inline}.surname.svelte-qzkvnv{color:#222;transform:none;margin:0}.bio.svelte-qzkvnv{margin-top:.75rem;max-width:none}.profile-links.svelte-qzkvnv{margin-top:.5rem}main.svelte-qzkvnv>section:where(.svelte-qzkvnv){padding-top:1.5rem}.section-heading.svelte-qzkvnv{margin-bottom:1rem}h2.svelte-qzkvnv{font-size:1.6rem}.project-sheet.svelte-qzkvnv{transform:none;box-shadow:none;background:transparent;animation:none;translate:none;opacity:1;break-inside:avoid}.project-sheet.svelte-qzkvnv+.project-sheet:where(.svelte-qzkvnv){margin-top:1rem}summary.svelte-qzkvnv{padding:.75rem 1rem}.project-title.svelte-qzkvnv{font-size:1.4rem}.project-body.svelte-qzkvnv{margin:0 1rem;padding:.75rem 0}.experience-list.svelte-qzkvnv article:where(.svelte-qzkvnv){break-inside:avoid;padding:1rem 0}.education-list.svelte-qzkvnv .university:where(.svelte-qzkvnv){background:transparent;color:#222}.education-list.svelte-qzkvnv .university:where(.svelte-qzkvnv) .period:where(.svelte-qzkvnv){color:inherit}.education-list.svelte-qzkvnv article:where(.svelte-qzkvnv){padding:1rem}}
