/* Complex Trees — permanent artist portfolio. No external fonts or frameworks. */
:root{--paper:#f6f4ee;--ink:#252d2b;--muted:#626962;--line:#d5d6ce;--blue:#254e67;--soft:#eeeee6;--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}::selection{background:#d9e5e9;color:#142e3d}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration-color:#9fa8a5;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--blue);text-decoration-color:var(--blue)}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}figure,p,h1,h2,h3,dl,dd{margin:0}p+p{margin-top:1em}h1,h2,h3{font-weight:400;line-height:1.07;letter-spacing:-.035em;font-family:var(--serif)}em{font-family:var(--serif)}h2{font-size:clamp(2.5rem,4.15vw,4rem)}h3{font-size:clamp(2.2rem,3.1vw,3.15rem)}[hidden]{display:none!important}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;left:16px;top:-100px;padding:12px 18px;background:var(--ink);color:white;z-index:20}.skip-link:focus{top:12px}.masthead{min-height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:32px}.wordmark{font-size:13px;font-weight:650;line-height:1.12;letter-spacing:.15em;text-decoration:none}.wordmark span{display:block;font-size:21px;letter-spacing:.185em;margin-top:4px}.masthead nav{display:flex;gap:30px;align-items:center;font-size:13px}.masthead nav a{padding:12px 0;text-decoration:none}.masthead nav a:hover{text-decoration:underline}.eyebrow{font-size:11px;font-weight:550;letter-spacing:.13em;text-transform:uppercase;line-height:1.55}.divider{padding:0 8px;color:#8c968e}.hero{display:grid;grid-template-columns:.94fr 1.2fr;gap:56px;align-items:center;padding-top:78px;padding-bottom:68px}.hero-copy .eyebrow{margin-bottom:30px}.hero h1{font-size:clamp(3.5rem,5.65vw,5.6rem);line-height:1.005;letter-spacing:-.047em}.hero h1 em{font-weight:400;color:var(--blue)}.intro{font-size:16px;line-height:1.75;max-width:370px;margin:30px 0 24px}.text-link{font-size:13px;font-weight:550;display:inline-flex;align-items:center;gap:24px;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--ink)}.text-link span{font-size:20px;line-height:1}.image-link{display:block;cursor:zoom-in;text-decoration:none}.hero-image figcaption{font-size:10px;letter-spacing:.015em;display:flex;justify-content:space-between;gap:15px}.hero-image img{width:100%}.edition{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.09em;text-transform:uppercase}.section-heading{padding-top:88px;padding-bottom:20px;max-width:790px}.section-heading .eyebrow{margin-bottom:20px}.section-heading>p:last-child:not(.eyebrow){font-size:16px;max-width:520px;margin-top:22px;color:var(--muted)}.work{padding:80px 0;border-bottom:1px solid var(--line)}.work-split{display:grid;grid-template-columns:1fr 1.25fr;gap:86px;align-items:center}.work-split.reverse{grid-template-columns:1.25fr 1fr}.work-split.reverse .work-copy{order:2}.work-split.reverse figure{order:1}.work-copy{max-width:440px}.work-index{display:flex;align-items:center;gap:22px;font-size:12px;color:var(--blue);letter-spacing:.08em;margin-bottom:24px}.work-index span{text-transform:uppercase;font-size:10px;color:var(--muted);letter-spacing:.14em}.spec{font-size:12px;line-height:1.8;color:var(--muted);margin-top:22px!important;margin-bottom:26px}.work-copy>p:not(.spec):not(.work-index):not(.small-note){font-size:16px;line-height:1.8}.small-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:22px}.record{display:inline-block;font-size:12px;line-height:1.75;padding:10px 0;margin-top:18px}.record span{padding-left:6px}figcaption{font-size:11px;line-height:1.7;color:var(--muted);padding-top:13px}.table-image{max-width:565px;width:100%;justify-self:end}.table-image img{width:100%}.wide-heading{display:grid;grid-template-columns:1.3fr .8fr;gap:70px;align-items:end;margin-bottom:35px}.wide-description{font-size:16px;line-height:1.8;max-width:425px}.wide-heading .spec{margin-bottom:0}.wide-description .record{margin-top:8px}.wide-work figure img{width:100%}.video-link{display:block;position:relative;text-decoration:none;background:#5f6060}.video-link img{width:100%}.video-action{display:flex;align-items:center;justify-content:center;gap:18px;min-height:62px;background:var(--ink);color:var(--paper);font-size:13px;letter-spacing:.025em}.video-action span:first-child{font-size:28px;line-height:1}.video-action span:last-child{font-size:18px}.video-link:hover .video-action{background:var(--blue)}.small-artwork{width:min(100%,373px);justify-self:center}.small-artwork img{width:100%}.pentagasket-work{border-bottom:0}.practice-section{background:var(--soft);padding-bottom:85px;border-block:1px solid var(--line)}.practice-section .section-heading{padding-top:76px;padding-bottom:46px}.practice-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:82px;align-items:center}.practice-grid>div{max-width:390px}.practice-grid p{font-size:16px}.practice-grid p.large-copy{font-family:var(--serif);font-size:29px;line-height:1.3;margin-bottom:24px;letter-spacing:-.02em}.practice-grid .text-link{margin-top:20px}.practice-grid .small-note{font-size:11px;margin-top:12px}.practice-grid figcaption{display:flex;justify-content:space-between;gap:20px}.enquiry{padding-top:90px;padding-bottom:90px;display:grid;grid-template-columns:1fr 1.2fr;gap:86px}.enquiry .eyebrow{margin-bottom:23px}.enquiry h2{font-size:clamp(2.7rem,3.5vw,3.8rem)}.enquiry-copy{font-size:16px}.large-copy{font-family:var(--serif);font-size:29px;letter-spacing:-.02em;line-height:1.35;margin-bottom:26px}.context-note{margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0}.context-note summary{cursor:pointer;font-size:13px;color:var(--blue);font-weight:550;padding:4px 0}.context-note[open] summary{margin-bottom:18px}.context-note p{font-size:14px}.context-note p.small-note{font-size:12px}.context-note .record{margin-top:10px}.about-section{border-block:1px solid var(--line);padding:80px 0;background:#f0efe9}.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:86px}.about-grid .eyebrow{margin-bottom:24px}.about-grid h2{font-size:clamp(3.6rem,5.3vw,5rem)}.place{font-size:13px;color:var(--muted);margin-top:24px}.about-copy{font-size:16px;line-height:1.8}.exhibitions{margin-top:40px}.exhibitions h3{font-family:var(--sans);font-size:11px;font-weight:550;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px}.exhibitions dl>div{display:grid;grid-template-columns:62px 1fr;gap:20px;border-top:1px solid var(--line);padding:13px 0;font-size:13px}.exhibitions dt{color:var(--muted);font-variant-numeric:tabular-nums}.exhibitions a{text-decoration:none}.exhibitions a:hover{text-decoration:underline}.conversation{display:block;margin-top:32px;padding:22px 0;border-top:1px solid var(--line);text-decoration:none}.conversation .eyebrow{display:block;font-size:10px;margin-bottom:5px}.conversation>span:nth-child(2){font-family:var(--serif);font-size:26px}.conversation small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.footer{padding-top:55px;padding-bottom:30px}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:56px}.contact-row .eyebrow{margin-bottom:14px}.email{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.75rem);letter-spacing:-.025em;text-decoration:none}.email span{font-size:22px;margin-left:12px}.footer-bottom{border-top:1px solid var(--line);padding-top:23px;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:11px;color:var(--muted)}.footer-bottom>div{display:flex;gap:24px;flex-wrap:wrap}.print-link{border:0;padding:0;background:transparent;font-size:11px;text-decoration:underline;cursor:pointer;color:inherit}dialog{padding:66px 28px 25px;border:0;background:#181c1b;color:white;max-width:96vw;max-height:96vh;width:fit-content;overflow:auto}dialog::backdrop{background:rgba(10,15,14,.87)}dialog figure>img{max-height:77vh;max-width:88vw;object-fit:contain;width:auto;margin:auto}dialog figcaption{color:#dfdfd8;max-width:900px}.close-viewer{position:absolute;right:22px;top:12px;border:0;background:transparent;color:white;cursor:pointer;font-size:14px;padding:8px 4px}.close-viewer span{font-size:25px;vertical-align:-2px;margin-left:12px}.credits-page{padding-block:70px;max-width:820px}.credits-page h1{font-size:clamp(2.8rem,5vw,4rem);margin:20px 0 35px}.credits-page h2{font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:0;margin:36px 0 12px}.credits-page p{font-size:15px}.credits-page ul{padding-left:22px;font-size:14px}.credits-page li{margin:12px 0}.credits-page .record{margin-top:0}
@media(min-width:1700px){.hero h1{font-size:90px}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.hero{gap:36px;grid-template-columns:1fr 1.1fr}.hero h1{font-size:64px}.hero-copy .eyebrow{max-width:280px}.work-split,.work-split.reverse{gap:48px}.wide-heading{gap:45px}.practice-grid,.enquiry,.about-grid{gap:48px}.work{padding-block:65px}.hero-image figcaption{display:block}.hero-image figcaption span+span{margin-left:10px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.masthead{min-height:96px;align-items:center;gap:20px}.masthead nav{gap:15px;font-size:11px;flex-wrap:wrap;justify-content:flex-end;max-width:220px}.masthead nav a{padding:6px 0}.wordmark{font-size:10px}.wordmark span{font-size:17px}.hero{grid-template-columns:1fr;gap:38px;padding-top:48px;padding-bottom:35px}.hero-copy .eyebrow{max-width:none;margin-bottom:24px;font-size:10px}.hero h1{font-size:clamp(52px,11.8vw,78px)}.intro{max-width:470px;margin-block:24px 15px;font-size:15px}.hero-image figcaption{display:flex}.hero-image figcaption span+span{margin-left:0}.edition{font-size:9px;letter-spacing:.06em;gap:20px}.edition span:first-child{max-width:230px}.edition span:last-child{white-space:nowrap}.section-heading{padding-top:55px;padding-bottom:4px}.section-heading h2{font-size:38px}.section-heading>p:last-child:not(.eyebrow){font-size:15px;max-width:450px}.work{padding-block:48px}.work-split,.work-split.reverse{grid-template-columns:1fr;gap:28px}.work-split.reverse .work-copy,.work-split.reverse figure{order:initial}.work-copy{max-width:550px}.work-copy h3,.wide-heading h3{font-size:38px}.work-copy h3 br,.wide-heading h3 br{display:block}.work-copy h3 br::after{content:' '}.work-copy>p:not(.spec):not(.work-index):not(.small-note){font-size:15px}.work-index{margin-bottom:19px}.spec{margin-block:15px 20px!important}.record{margin-top:13px}.table-image{justify-self:center;max-width:480px}.wide-heading{grid-template-columns:1fr;gap:16px;margin-bottom:27px}.wide-description{max-width:550px;font-size:15px}.wide-heading .spec{margin-bottom:0!important}.small-artwork{max-width:330px}.practice-section{padding-bottom:50px}.practice-section .section-heading{padding-top:50px;padding-bottom:30px}.practice-grid,.enquiry,.about-grid{grid-template-columns:1fr;gap:35px}.practice-grid>div{max-width:550px}.practice-grid p{font-size:15px}.practice-grid figcaption{font-size:10px}.enquiry{padding-block:55px}.enquiry h2{font-size:42px}.enquiry-copy{font-size:15px}.large-copy{font-size:27px}.about-section{padding-block:50px}.about-grid h2{font-size:52px}.about-grid h2 br{display:block}.about-grid .eyebrow{margin-bottom:19px}.place{margin-top:15px}.about-copy{font-size:15px}.footer{padding-top:37px}.contact-row{display:block;padding-bottom:32px}.contact-row>.text-link{margin-top:25px}.email{font-size:28px;overflow-wrap:anywhere}.footer-bottom{display:block;font-size:10px}.footer-bottom>div{margin-top:16px;gap:18px;align-items:center}.print-link{font-size:10px}dialog{padding:58px 15px 18px}dialog figure>img{max-width:86vw;max-height:72vh}dialog figcaption{font-size:11px}.credits-page{padding-top:42px}.exhibitions dl>div{grid-template-columns:42px 1fr;gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{@page{size:A4;margin:18mm}body{background:white;color:black;font-size:11pt}.wrap{width:100%;max-width:none}.masthead{min-height:55px}.masthead nav,.skip-link,.print-link,.video-action,dialog,.footer .text-link{display:none!important}.hero{padding:30px 0;gap:25px;grid-template-columns:1fr 1fr}.hero h1{font-size:36pt}.hero .intro{font-size:10pt}.eyebrow,.spec,.record,figcaption{font-size:8pt}.work{padding:25px 0;break-inside:avoid}.work-split,.work-split.reverse{gap:30px;grid-template-columns:1fr 1fr}.work-copy h3,.wide-heading h3{font-size:24pt}.section-heading{padding-top:28px}.section-heading h2{font-size:29pt}.table-image img{max-height:340px;object-fit:contain}.work-copy>p:not(.spec):not(.work-index):not(.small-note){font-size:10pt}.small-artwork img{max-height:290px;width:auto;margin:auto}.practice-section,.about-section{background:white}.practice-section{padding-bottom:25px}.practice-grid,.enquiry,.about-grid{gap:30px}.enquiry{padding-block:30px;break-inside:avoid}.about-section{padding-block:30px}.practice-grid figure{break-inside:avoid}.context-note{display:none}.footer{padding:25px 0}.email{font-size:22pt}a{color:black}.contact-row{padding-bottom:20px}.footer-bottom{font-size:8pt}.footer-bottom>div{gap:16px}}

/* Research software entry; no embedded runtime or third-party requests. */
.software-work{border-top:1px solid var(--line);border-bottom:0}
.software-work .wide-heading{grid-template-columns:1.05fr 1fr;align-items:start}
.software-work h3{font-size:clamp(2.2rem,3.1vw,3.15rem)}
.software-preview{border:1px solid var(--line);padding:10px;background:#fff}
.software-preview img{width:100%;height:auto}
.software-preview figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:12px 6px 3px}
.software-details{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;margin-top:30px;align-items:start}
.software-details>p{font-size:16px;line-height:1.8;max-width:575px}
.software-actions{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap}
.software-launch{display:inline-flex;align-items:center;gap:24px;background:var(--blue);color:#fff;text-decoration:none;padding:12px 18px;font-size:13px;font-weight:550;min-height:48px}
.software-launch:hover{background:var(--ink);color:#fff}
.software-actions .record{margin:0;padding:12px 0}
.software-details .small-note{margin-top:15px}
.software-scope{font-size:11px;color:var(--muted);line-height:1.7;margin-top:10px}
@media(max-width:1100px){.software-details{gap:38px}.software-work .wide-heading{gap:38px}}
@media(max-width:760px){.software-work .wide-heading,.software-details{grid-template-columns:1fr;gap:18px}.software-work h3{font-size:38px}.software-work .work-index{align-items:flex-start}.software-work .work-index span{max-width:230px}.software-preview{padding:4px}.software-preview figcaption{font-size:10px}.software-details>p{font-size:15px}.software-details{margin-top:24px}.software-actions{gap:10px 18px}}
@media print{.software-work{break-inside:auto}.software-preview{break-inside:avoid}.software-work .wide-heading{gap:22px}.software-details{gap:22px}.software-details>p{font-size:10pt}.software-actions{display:block}.software-launch{background:white;color:black;padding:0;min-height:auto}.software-preview figcaption{font-size:8pt}}
