@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/instrument-sans-regular.ttf") format("truetype")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:450 700;font-display:swap;src:url("/assets/instrument-sans-medium.ttf") format("truetype")}
:root{font-family:"Instrument Sans",Arial,sans-serif;color:#202020;background:#fff;font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:hover{color:#777}a:focus-visible,button:focus-visible{outline:2px solid #222;outline-offset:6px}.sidebar{position:fixed;inset:0 auto 0 0;width:292px;padding:36px 32px;display:flex;flex-direction:column}.wordmark{font-size:30px;letter-spacing:-1.6px;font-weight:550;line-height:1.1;width:fit-content}.intro{font-size:18px;letter-spacing:-.5px;line-height:1.4;margin:42px 0 12px;max-width:224px}.location{font-size:13px;color:#777;margin:0}nav{display:flex;flex-direction:column;gap:8px;margin-top:65px;font-size:14px}nav>span{font-size:12px;color:#888;margin-bottom:6px}nav>span:nth-of-type(2){margin-top:26px}nav a{width:fit-content}.active{font-weight:550}sup{font-size:10px;margin-left:8px;font-weight:400;color:#777}.sidefoot{margin-top:auto;color:#888;font-size:12px;line-height:1.6}main{margin-left:292px;padding:34px 32px 0 12px;max-width:1800px}header{display:flex;justify-content:space-between;border-bottom:1px solid #e9e9e9;padding-bottom:17px;font-size:13px}header span:last-child{color:#888}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:56px 26px;padding-top:28px;scroll-margin-top:30px}.work{padding:0;border:0;background:none;text-align:left;cursor:pointer;min-width:0}.art{aspect-ratio:1/1;overflow:hidden;background:#f5f5f5;position:relative}.art img{position:absolute;width:100%;height:auto;max-width:none;transition:filter .25s}.work:hover .art img{filter:brightness(1.025)}.art-yellow img{width:104%;left:-2%;top:-40%}.art-green img{width:133%;left:-19%;top:-69%}.art-lines img{width:146%;left:-23%;top:-68%}.art-red img{width:170%;left:-28%;top:-83%}.caption{display:flex;justify-content:space-between;gap:10px;margin-top:13px;font-size:14px;letter-spacing:-.2px}.caption span:last-child,.details{color:#898989;font-size:12px}.details{margin-top:3px}.section{margin-top:100px;padding-top:24px;border-top:1px solid #e9e9e9;scroll-margin-top:25px}.sectionlabel{font-size:13px}.studio{display:grid;grid-template-columns:1fr 1fr;gap:24px}.studio .sectionlabel{grid-column:1/-1}figure{margin:0}figure img{width:100%;max-height:640px;object-fit:cover;display:block}figcaption{font-size:12px;color:#888;margin-top:10px}.studio-note{align-self:center;font-size:clamp(24px,2.5vw,40px);line-height:1.2;letter-spacing:-1.5px;padding:30px}.about{display:grid;grid-template-columns:1fr 2fr;gap:24px}.aboutbody{max-width:620px}h1{font-weight:450;font-size:clamp(36px,4.3vw,64px);line-height:1.08;letter-spacing:-2.8px;margin:0 0 36px}.aboutbody p{line-height:1.7;letter-spacing:-.2px;margin:0 0 24px}.aboutbody p:last-child{font-size:14px;color:#777;margin-top:40px}footer{margin-top:90px;padding:24px 0;border-top:1px solid #e9e9e9;display:grid;grid-template-columns:1fr 2fr;gap:24px;font-size:14px;scroll-margin-top:24px}footer p{margin:0 0 8px}.contact-note{color:#888;font-size:13px}.copyright{grid-column:1/-1;font-size:12px;color:#888;display:flex;justify-content:space-between;margin-top:70px}dialog{border:0;padding:24px;width:min(1100px,95vw);max-height:96dvh;background:white}dialog::backdrop{background:#ffffffeb;backdrop-filter:blur(8px)}.dialogtop,.dialogbottom{display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:12px}.dialogtop button,.dialogbottom button{background:none;border:0;padding:8px;cursor:pointer}.viewerimage{display:flex;justify-content:center;height:74dvh;margin:12px 0}.viewerimage img{max-width:100%;max-height:100%;object-fit:contain}.dialogbottom{border-top:1px solid #eee;padding-top:12px}body.modal-open{overflow:hidden}@media(min-width:1600px){.sidebar{width:340px;padding:40px}main{margin-left:340px;padding-right:40px}.gallery{gap:60px 36px}}@media(max-width:900px){.sidebar{width:225px;padding:28px 22px}.intro{font-size:16px}main{margin-left:225px;padding:28px 22px 0 5px}.gallery{gap:40px 18px}.studio-note{font-size:25px;padding:12px}.about{grid-template-columns:1fr}.aboutbody{margin-top:20px}}@media(max-width:600px){.sidebar{position:static;width:auto;padding:24px;display:block}.wordmark{font-size:29px}.intro{max-width:280px;margin:24px 0 10px;font-size:18px}.location{font-size:12px}nav{margin-top:30px;flex-direction:row;flex-wrap:wrap;gap:12px 20px}nav>span,.sidefoot{display:none}nav a{font-size:13px}main{margin:0;padding:18px 24px 0}.gallery{grid-template-columns:1fr;gap:36px}.section{margin-top:65px}.studio{grid-template-columns:1fr}.studio-note{padding:20px 0;font-size:30px;max-width:350px}.aboutbody{margin-top:5px}h1{font-size:42px;letter-spacing:-2px}footer{margin-top:65px;grid-template-columns:1fr}.copyright{margin-top:35px}dialog{padding:12px}.viewerimage{height:68dvh}.caption{font-size:14px}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important}}
.art-lines{aspect-ratio:.72}.art-lines img{width:139%;left:-24%;top:-40%}.art-red{aspect-ratio:.9}.art-red img{width:145%;left:-24%;top:-71%}

.wordmark{font-size:32px;letter-spacing:-1.5px;font-weight:500}.intro{font-size:22px;line-height:1.2;letter-spacing:-.9px;max-width:235px}nav{font-size:18px;gap:3px}nav>span{font-size:14px;letter-spacing:-.3px}.caption{font-size:16px;letter-spacing:-.5px}nav a.active::after{content:" •";margin-left:5px}header{font-size:14px;letter-spacing:-.3px}@media(max-width:600px){.intro{max-width:310px;font-size:21px}nav a{font-size:16px}}
.art{aspect-ratio:1!important;background:#fff}.art img,.art-yellow img,.art-green img,.art-lines img,.art-red img{width:200%;height:100%;left:0;top:0;object-fit:fill}.homehero{padding-top:30px}.homework{display:block;width:min(100%,780px);margin:0 auto}.collection-link{display:block;width:fit-content;margin:28px auto 0;font-size:16px;text-decoration:underline;text-underline-offset:5px;letter-spacing:-.5px}.viewtabs{display:flex;gap:20px;border-bottom:1px solid #e9e9e9;padding:15px 0}.viewtabs button{background:none;border:0;padding:5px 0;font-size:14px;cursor:pointer;color:#777}.viewtabs button[aria-pressed=true]{color:#111;border-bottom:1px solid #111}.viewerimage{position:relative;overflow:hidden;display:block;width:min(64dvh,100%);height:auto;aspect-ratio:1;margin:16px auto}.viewerimage img{position:absolute;width:200%;max-width:none;height:100%;max-height:none;left:0;object-fit:fill}.viewerimage[data-view=room] img{left:-100%}.viewerimage[data-view=original]{display:flex;width:100%;height:60dvh;aspect-ratio:auto;justify-content:center}.viewerimage[data-view=original] img{position:static;width:auto;max-width:100%;height:auto;max-height:100%;object-fit:contain}#viewnote{text-align:center;font-size:12px;color:#888;margin:4px 0 18px}.instagram{text-decoration:underline;text-underline-offset:4px}@media(max-width:600px){.homehero{padding-top:15px}.homework{width:100%}.viewtabs{gap:14px;flex-wrap:wrap}.viewtabs button{font-size:13px}}

.skip-link{position:fixed;left:12px;top:-100px;z-index:5;background:white;padding:12px;border:1px solid #222}.skip-link:focus{top:12px}
@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/geist-regular.woff2') format('woff2')}
:root{font-family:Geist,Arial,sans-serif;letter-spacing:-.02em}.sidebar{width:25%;padding:14px 16px;border-right:1px solid #e5e5e5}.wordmark{font-family:Geist,Arial,sans-serif;font-size:16px;font-weight:400;letter-spacing:-.04em;display:block;padding-bottom:13px;border-bottom:1px solid #e7e7e7;margin:0 -16px;padding-left:16px}.intro{font-size:14px;line-height:1.2;letter-spacing:-.02em;margin:13px 0 8px;max-width:280px}.location{font-size:12px}.sidefoot{font-size:12px}nav{margin-top:32px;font-size:14px;line-height:1.2;gap:2px}nav>span{font-size:12px;color:#444;margin-bottom:3px}nav>span:nth-of-type(2){margin-top:14px}nav a{padding-left:8px}nav a.active{font-weight:400}main{margin-left:25%;padding:12px 16px;max-width:none}header{padding-bottom:9px;font-size:12px}.gallery{gap:32px 16px;padding-top:16px}.homehero{padding-top:12px}.homework{width:min(100%,780px)}.art img{clip-path:inset(0 50.2% 0 0)}.collection-link{font-size:14px;margin-top:15px}.workmetadata{display:grid;grid-template-columns:76px 1fr;gap:1px 10px;font-size:12px;line-height:1.35;margin:10px 0 0;font-weight:400;letter-spacing:-.02em}.workmetadata dt{color:#777}.workmetadata dd{margin:0;color:#222}.workdescription{font-size:14px;line-height:1.4;letter-spacing:-.02em;margin:11px 0 0;max-width:48ch;color:#555}.about h1{font-size:32px;letter-spacing:-1px;line-height:1.1}.section{margin-top:65px}.aboutbody p{font-size:16px;line-height:1.5}.dialogtop{position:sticky;top:-20px;background:#fff;z-index:3;border-bottom:1px solid #eee;padding:8px 0}.detailcontent{max-width:720px;margin:0 auto}.detailfigure{margin:20px 0}.detailart,.detailroom{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:#fff}.detailart img,.detailroom img{position:absolute;width:200%;max-width:none;height:100%;left:0;top:0;object-fit:fill}.detailart img{clip-path:inset(0 50.2% 0 0)}.detailroom img{left:-100%}.detailfigure figcaption{font-size:12px;margin:5px 0;color:#777}.viewdescription{font-size:16px;line-height:1.5;margin:15px 0 25px}.texture{height:320px;overflow:hidden;background:#fff}.texture img{width:100%;height:100%;object-fit:cover;transform-origin:center}.originaldetails{margin:25px 0;font-size:14px}.originaldetails summary{cursor:pointer;padding:8px 0}.originaldetails img{display:block;width:100%;max-height:700px;object-fit:contain;margin:12px 0}.dialogbottom{margin-top:25px;font-size:14px}.homework .workmetadata{max-width:380px;margin:10px auto;text-align:left}@media(min-width:1600px){.sidebar{width:25%;padding:14px 16px}main{margin-left:25%;padding:12px 16px}.gallery{gap:32px 20px}}@media(max-width:900px){.sidebar{width:25%;padding:14px 12px}.wordmark{margin:0 -12px;padding-left:12px}main{margin-left:25%;padding:12px}.intro{font-size:14px}.workmetadata{grid-template-columns:68px 1fr}}@media(max-width:600px){.sidebar{position:static;width:100%;padding:12px 16px;border-right:0;border-bottom:1px solid #eee}.wordmark{margin:0 -16px;padding-left:16px;font-size:16px}.intro{font-size:14px;max-width:300px;margin-top:10px}nav{margin-top:15px;gap:8px 14px}nav a{font-size:14px;padding:0}main{margin:0;padding:12px 16px}.gallery{gap:28px}.homehero{padding:0}.homework{width:100%}.detailfigure{margin:14px 0}.texture{height:240px}dialog{width:96vw;padding:12px}.dialogtop{top:-12px}.section{margin-top:45px}}

/* Preserve the native 2:1 presentation asset without forced image stretching. */
.art img,.detailart img,.detailroom img{height:auto;aspect-ratio:auto;object-fit:contain}

/* Calibrate the photographed yellow canvas bounds to its confirmed 1:1 size. */
.art-yellow img,#viewer[data-key=yellow] .detailart img{transform:scaleX(.966574);transform-origin:25% 50%}
#viewer[data-key=yellow] .detailroom img{transform:scaleX(.949721);transform-origin:75% 50%}

/* Artwork information follows the same two-column rhythm as the reference. */
.work{align-self:start}
.workinfo{width:100%;margin-top:12px;text-align:left}
.workmetadata,.homework .workmetadata{width:100%;max-width:none;margin:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;row-gap:3px;font-size:12px;line-height:1.4}
.workmetadata dt,.copylabel{color:#777}
.workmetadata dd{min-width:0;overflow-wrap:anywhere}
.workcopy,.viewcopy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;align-items:baseline;margin-top:14px}
.copylabel{font-size:12px;line-height:1.4}
.workdescription,.viewdescription{max-width:none;margin:0;font-size:14px;line-height:1.45;letter-spacing:-.02em;color:#555;text-align:left}
#viewmetadata{margin-top:12px}
.viewcopy{margin-bottom:28px}
@media(max-width:900px){.gallery .workmetadata,.gallery .workcopy{grid-template-columns:minmax(0,2fr) minmax(0,3fr);column-gap:12px}}
@media(max-width:600px){.workmetadata,.homework .workmetadata,.gallery .workmetadata,.workcopy,.gallery .workcopy,.viewcopy{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);column-gap:14px}}

/* Collection captions sit directly beneath their image, flush left. */
.gallery .workinfo{margin:12px 0 0;padding:0;text-align:left}
.gallery .workmetadata{grid-template-columns:76px minmax(0,1fr);column-gap:10px;margin:0;max-width:none;text-align:left}
.gallery .workcopy{display:block;margin:12px 0 0;text-align:left}
.gallery .workcopy .copylabel{display:none}
.gallery .workdescription{margin:0;max-width:none;text-align:left}

/* Writing shares the compact portfolio frame, with words as collected works. */
.wordcollection{padding-top:14px}.collection-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.collection-heading h1{font-size:14px;font-weight:400;letter-spacing:-.02em;margin:0}.collection-heading>span{font-size:12px;color:#777}.wordgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 16px}.wordwork{display:block;min-width:0}.wordexcerpt{white-space:pre-wrap;font-size:16px;line-height:1.65;letter-spacing:-.025em;min-height:230px;padding:38px 20px 35px 0;border-top:1px solid #e9e9e9;display:flex;align-items:center}.wordcaption{display:flex;justify-content:space-between;gap:16px;font-size:12px;line-height:1.4}.wordcaption span:last-child{color:#888;flex-shrink:0}.wordwork:hover .wordexcerpt{color:#666}.poempage{max-width:560px;margin:48px auto 70px;padding:0 12px}.collection-back{font-size:12px;color:#777}.poempage h1{font-size:14px;font-weight:400;line-height:1.4;letter-spacing:-.02em;margin:22px 0 45px}.poemtext{white-space:pre-wrap;font-size:16px;line-height:1.85;letter-spacing:-.015em;overflow-wrap:break-word}.puzzlewords{margin-top:52px;border-top:1px solid #eee;padding-top:12px;font-size:12px;color:#777}.puzzlewords summary{cursor:pointer;width:fit-content}.puzzlewords p{line-height:1.7;margin:12px 0}.poemnavigation{display:flex;flex-direction:row;justify-content:space-between;margin-top:48px;font-size:12px}.poemnavigation a{padding:0}.poemnavigation a.active::after{content:none}@media(max-width:900px){.wordgrid{grid-template-columns:1fr}.wordexcerpt{min-height:190px}}@media(max-width:600px){.poempage{margin-top:35px;padding:0;max-width:100%}.wordexcerpt{min-height:180px;padding:28px 0}.poemtext{font-size:16px;line-height:1.8}.wordcaption{gap:10px}.poempage h1{margin-bottom:36px}}

/* Compact captions align with the visible canvas rather than the photo boundary. */
.work[data-key=yellow]{--canvas-left:11.37%;--canvas-right:10.6%}
.work[data-key=green]{--canvas-left:13.75%;--canvas-right:14.54%}
.work[data-key=lines]{--canvas-left:15.56%;--canvas-right:15.33%}
.work[data-key=red]{--canvas-left:16.8%;--canvas-right:16.01%}
.work[data-key=network]{--canvas-left:16.91%;--canvas-right:16.8%}
.work .workinfo,.gallery .workinfo{width:auto;margin:12px var(--canvas-right,0) 0 var(--canvas-left,0);padding:0;text-align:left}
.captiontitle{margin:0;font-size:14px;font-weight:400;line-height:1.3;letter-spacing:-.02em}
.captionfacts{margin:4px 0 0;font-size:12px;line-height:1.5;color:#777}
.work .workdescription,.gallery .workdescription{margin:14px 0 0;max-width:48ch;font-size:14px;line-height:1.45;text-align:left}

/* A small increase in reading size while preserving the compact spacing. */
.wordmark{font-size:18px}
.intro{font-size:15px;line-height:1.25}
.captiontitle{font-size:15px}
.work .workdescription,.gallery .workdescription,.viewdescription{font-size:15px}

/* Let the featured canvas occupy more of the home page's main area. */
.homehero .homework{width:100%;max-width:none}
.homehero .homework[data-key=yellow]{--canvas-left:4.42%;--canvas-right:3.5%}
.homehero .art-yellow img{transform:scale(1.18) scaleX(.966574);transform-origin:25% 50%}

/* Midpoint between the original feature and the full-width treatment. */
.homehero .homework{width:min(100%,calc(50% + 390px));max-width:900px}
.homehero .homework[data-key=yellow]{--canvas-left:7.9%;--canvas-right:7.12%}
.homehero .art-yellow img{transform:scale(1.09) scaleX(.966574);transform-origin:25% 50%}

#viewer.single-room .detailroom img{position:static;width:100%;height:auto;left:auto;transform:none;object-fit:contain}

#viewer.single-room[data-key=yellow] .detailroom img{transform:scale(1.05) scaleX(.952066);transform-origin:center}

/* Painting details: one image at a time, with a centred caption below. */
.imagecarousel{position:relative}
.imagecarousel [hidden]{display:none!important}
.imagearrow{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:1px solid #e8e8e8;border-radius:50%;background:#fffffff0;display:grid;place-items:center;font-size:22px;line-height:1;cursor:pointer;z-index:2}
.imagearrow:hover{background:#fff;border-color:#aaa}
#viewmetadata{text-align:center;margin-top:16px}
.detailcaption .captiontitle{font-size:15px}
.viewcopy{display:block;max-width:48ch;margin:14px auto 28px;text-align:center}
.viewcopy .copylabel{display:none}
.viewcopy .viewdescription{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.homepage #about>.sectionlabel,.homepage #contact>.sectionlabel{font-size:32px;font-weight:400;letter-spacing:-1px;line-height:1.1}

.wordmark{font-size:20px;line-height:1.15}

/* Reserve a separate gutter for image navigation. */
.imagecarousel{padding:0 50px}
.imagecarousel .imagearrow{right:0;top:50%;transform:translateY(-50%)}
@media(max-width:600px){.imagecarousel{padding:0 40px}.imagecarousel .imagearrow{width:32px;height:32px;font-size:20px}}

.wordmark{font-size:32px;line-height:1.1;letter-spacing:-1px}

/* Standalone information pages keep the compact portfolio rhythm. */
nav a{padding-left:0}
.informationpage #about,.informationpage #contact{margin-top:32px;border-top:0;padding-top:0}
.informationpage .sectionlabel{font-size:32px;font-weight:400;letter-spacing:-1px;line-height:1.1}
.informationpage #contact{min-height:calc(100dvh - 80px);align-content:start}
.informationpage #contact .copyright{margin-top:70px}
@media(max-width:600px){.informationpage #about,.informationpage #contact{margin-top:24px}.informationpage #contact{min-height:0}}

/* Copyright and Instagram sit at the bottom of the portfolio. */
.sidebar{padding-bottom:70px}
.sitefooter{position:fixed;left:0;bottom:0;width:25%;margin:0;padding:14px 16px;border:0;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;font-size:12px;color:#888;z-index:1}
.sitefooter a{display:grid;place-items:center;width:28px;height:28px;color:#555}
.sitefooter a:hover{color:#111}
@media(max-width:900px) and (min-width:601px){.sitefooter{padding:14px 12px}}
@media(max-width:600px){body{min-height:100dvh;display:flex;flex-direction:column}.sidebar{padding-bottom:12px}main{flex:1}.sitefooter{position:static;width:100%;margin-top:36px;padding:14px 16px}}

.art-limbo img{width:200%;left:0;top:0;transform:none}

.art-limbo{aspect-ratio:793 / 992!important}
.studio-glimpses{display:grid;gap:12px;margin-top:48px;margin-bottom:36px;max-width:620px}
.studio-slit{height:56px;overflow:hidden;background:#fff}
.studio-slit img{display:block;width:100%;height:100%;object-fit:cover;opacity:.48;filter:saturate(.7)}
.studio-slit:nth-child(1) img{object-position:50% 32%}
.studio-slit:nth-child(2) img{object-position:50% 77%}
.studio-slit:nth-child(3) img{object-position:50% 52%}
@media(max-width:600px){.studio-glimpses{margin-top:32px;gap:9px}.studio-slit{height:42px}}

/* A quiet photographic backdrop grounds the small canvases in the collection. */
.gallery .art-lines,.gallery .art-red{background:#f3f3f3;isolation:isolate}
.gallery .art-lines img,.gallery .art-red img{mix-blend-mode:multiply}

.gallery .art-single{aspect-ratio:3/4!important}
.art-single img,#viewer.single-art .detailart img{position:static;width:100%;height:auto;clip-path:none;transform:none;object-fit:contain}

.aboutportrait{grid-column:1/-1;margin:32px 0 0;width:100%}
.aboutportrait img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
@media(max-width:600px){.aboutportrait{margin-top:24px}}
