@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&family=Caveat:wght@400;500;600&display=swap');
:root{--ink:#202020;--muted:#656565;--paper:#f5f5f3;--white:#fff;--rule:#d9d9d5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px dashed #222;outline-offset:5px}header{position:absolute;z-index:5;inset:0 0 auto;padding:30px 6%;display:flex;align-items:center;justify-content:space-between}.brand{font-family:'Space Grotesk',Arial,sans-serif;font-size:26px;font-weight:600;letter-spacing:-1.3px;display:flex;align-items:center;gap:8px}.brand-icon{font-size:29px;font-weight:400}.brand-dot{margin-left:-7px}.nav-link{font-size:13px;display:flex;align-items:center;gap:14px}.nav-index{font-size:11px;color:#626262}.hero{height:max(760px,100svh);position:relative;overflow:hidden;border-bottom:1px solid var(--rule);background:var(--paper)}#puzzle{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.intro{position:absolute;z-index:2;top:50%;left:50%;width:min(86%,900px);text-align:center;transform:translate(-50%,-43%);opacity:0;visibility:hidden;filter:blur(5px);transition:opacity 1s,filter 1s,transform 1s,visibility 1s}.revealed .intro{opacity:1;visibility:visible;filter:none;transform:translate(-50%,-50%)}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:25px}.tiny-puzzle{font-size:21px}h1{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(65px,7.5vw,112px);line-height:1.13;font-weight:500;letter-spacing:-6px;margin:0}.designer{display:inline-block;font-weight:700;background:#fff;letter-spacing:-6px;transform:rotate(-1.3deg);padding:0 15px 7px;box-shadow:1px 3px 5px #0000000b;clip-path:polygon(0 2%,99% 0,100% 95%,1% 100%)}.period{font-weight:500}.intro p{font-size:18px;color:var(--muted);line-height:1.65;margin:30px 0 28px}.primary{display:inline-flex;align-items:center;gap:23px;font-size:14px;padding:14px 20px;background:#222;color:#fff;border:1px solid #222;box-shadow:2px 3px 0 #00000010;transition:transform .2s}.primary:hover{transform:translateY(-2px)}.primary span{font-size:22px;line-height:1}.loader{position:absolute;top:calc(50% + 215px);left:50%;transform:translateX(-50%);width:270px;font-size:13px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;transition:opacity .4s}.track{width:100%;height:3px;background:#dededb}.track i{display:block;height:3px;width:0;background:#222}.revealed .loader{opacity:0;pointer-events:none}.hero-bottom{position:absolute;z-index:4;bottom:27px;left:6%;right:6%;display:flex;align-items:end;justify-content:space-between;color:#626262;font-size:10px;letter-spacing:1.2px;line-height:1.7}.motion-controls{display:flex;gap:14px;letter-spacing:0}.motion-controls button{border:0;border-bottom:1px solid #bbb;padding:6px 1px;background:transparent;color:#666;font-size:12px}.motion-controls button:hover{color:#111;border-color:#111}.motion-controls span{margin-right:5px}.bottom-right{text-align:right}.line{font-size:23px}.about-me{padding:58px 7% 50px;background:var(--paper)}.about-heading{border-top:1px solid var(--rule);padding-top:21px}.section-label{font-size:10px;letter-spacing:1.8px;color:#666}.orbit-intro{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-top:38px}.orbit-intro h2{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(35px,3.8vw,54px);font-weight:500;letter-spacing:-2.5px;line-height:1.16;margin:0}.orbit-intro h2 em{font-family:'Caveat',cursive;font-weight:500;letter-spacing:-1px;font-style:normal;font-size:1.22em;white-space:nowrap}.orbit-intro p{font-size:15px;line-height:1.7;max-width:310px;margin:0;color:#666}.orbit-scene{position:relative;margin-top:28px;aspect-ratio:960/510;overflow:hidden;isolation:isolate}.orbit-photo{position:absolute;z-index:1;object-fit:contain;filter:drop-shadow(3px 5px 2px #00000018);transform:rotate(-2deg);border:0;border-radius:0}.orbit-scene #thinking-puzzle{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.orbit-labels span{position:absolute;z-index:3;font-family:'Caveat',cursive;font-size:22px;line-height:1.2;white-space:nowrap;transform:translateX(-50%) rotate(-3deg);background:#fff;color:#333;padding:2px 11px 4px;box-shadow:1px 2px 3px #00000010;clip-path:polygon(0 4%,99% 0,100% 94%,2% 100%);transition:opacity .4s}.orbit-labels span:nth-child(2){transform:translateX(-50%) rotate(2deg)}.orbit-labels span:nth-child(3){transform:translateX(-50%) rotate(-1deg)}.orbit-labels .tried{opacity:.45}.orbit-labels .chosen{background:#222;color:#fff}.orbit-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:15px;padding-top:15px;border-top:1px solid var(--rule)}.orbit-bottom p{font-family:'Caveat',cursive;font-size:22px;line-height:1.4;margin:0;color:#555}.thinking-controls{display:flex;gap:14px}.thinking-controls button{border:1px solid #ccc;background:transparent;border-radius:50%;width:32px;height:32px;color:#666;font-size:18px}.thinking-controls button:hover{border-color:#222;color:#222}.thinking-controls button:disabled{opacity:.3;cursor:default}footer{padding:24px 7%;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:20px;color:#626262;font-size:11px}footer .brand{font-size:22px;color:#222}footer>span:last-child{font-size:10px;letter-spacing:1px}@media(max-width:850px){.orbit-intro{display:block}.orbit-intro p{margin-top:18px;max-width:470px}}@media(max-width:700px){header{padding:22px 6%}.brand{font-size:24px}.brand-icon{font-size:26px}.nav-link{font-size:12px;gap:9px}.hero{height:max(720px,100svh)}h1{font-size:clamp(52px,10vw,70px);letter-spacing:-3px;line-height:1.18}.designer{letter-spacing:-3px;padding:0 9px 5px}.eyebrow{font-size:9px;letter-spacing:1.2px}.intro p{font-size:16px;margin-top:26px}.primary{font-size:13px}.hero-bottom>span{display:none}.motion-controls{justify-content:center;width:100%}.loader{top:calc(50% + 145px);width:240px}.about-me{padding:40px 6%}.orbit-intro{margin-top:27px}.orbit-intro h2{font-size:38px;letter-spacing:-1.8px}.orbit-intro p{font-size:15px}.orbit-scene{margin-top:22px}.orbit-labels span{font-size:18px;padding:2px 7px 4px}.orbit-bottom p{font-size:20px}footer{flex-wrap:wrap}footer>span:last-child{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro,a,button,.orbit-labels span{transition:none!important}.primary:hover{transform:none}}

.gaze-portrait{background-image:url('gaze-portrait.png');background-size:200% 200%;background-position:0 0;background-repeat:no-repeat;transform:rotate(-2deg);transition:transform .45s ease}.gaze-portrait[data-gaze="1"]{background-position:100% 0}.gaze-portrait[data-gaze="2"]{background-position:0 100%}.gaze-portrait[data-gaze="3"]{background-position:100% 100%;transform:rotate(1deg)}.orbit-labels .considering{color:#111;box-shadow:1px 3px 4px #00000020}.orbit-labels .chosen{color:#fff;background:#222}@media(prefers-reduced-motion:reduce){.gaze-portrait{transition:none}}
header nav{display:flex;align-items:center;gap:26px}.work-section,.mentions-section{padding:48px 7% 70px}.section-top{border-top:1px solid var(--rule);padding-top:21px;display:flex;align-items:center;justify-content:space-between;gap:20px}.section-count{font-size:10px;letter-spacing:1.3px;color:#626262}.work-heading,.mentions-heading{margin-top:35px;display:flex;justify-content:space-between;align-items:center;gap:25px}.work-heading h2,.mentions-heading h2{font-family:'Space Grotesk',Arial,sans-serif;font-weight:500;line-height:1.16;letter-spacing:-2.5px;font-size:clamp(35px,3.8vw,54px);margin:0}.work-heading h2 em,.mentions-heading h2 em{font-family:'Caveat',cursive;font-size:1.22em;font-style:normal;font-weight:500;letter-spacing:-1px}.handwritten-note{font-family:'Caveat',cursive;font-size:23px;color:#626262;transform:rotate(-3deg);display:inline-block}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:45px}.case-image{aspect-ratio:4/3;background:#fff;position:relative;box-shadow:2px 4px 6px #0000000c;clip-path:polygon(0 1%,99% 0,100% 99%,1% 100%)}.case-card:nth-child(1) .case-image{transform:rotate(-1deg)}.case-card:nth-child(2) .case-image{transform:rotate(.7deg)}.case-card:nth-child(3) .case-image{transform:rotate(-.6deg)}.paper-corner{position:absolute;top:16px;left:18px;font-size:11px;letter-spacing:1px;color:#626262}.image-note{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:#626262;font-size:13px;line-height:1.5}.placeholder-mark{font-family:'Caveat',cursive;font-size:32px;font-weight:400;color:#626262;line-height:1}.image-format{position:absolute;bottom:16px;right:18px;font-size:9px;letter-spacing:1.4px;color:#626262}.case-info{display:flex;gap:14px;margin-top:22px;align-items:start}.case-index{font-size:11px;color:#626262;line-height:28px}.case-info h3{font-family:'Space Grotesk',Arial,sans-serif;font-size:20px;font-weight:500;letter-spacing:-.6px;margin:0 0 7px}.case-info p{font-size:13px;color:#626262;line-height:1.5;margin:0}.mentions-section{padding-top:20px;overflow:hidden}.mentions-heading{align-items:end}.mentions-heading p{font-size:15px;color:#626262;line-height:1.6;margin:15px 0 0}.scroll-controls{display:flex;gap:14px}.scroll-controls button,.mentions-bottom button{border:0;border-bottom:1px solid #bbb;background:transparent;padding:6px 1px;color:#666;font-size:12px}.scroll-controls button:hover,.mentions-bottom button:hover{color:#111;border-color:#111}.mentions-viewport{margin:38px -12px 0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#d1d1cd transparent;cursor:grab;padding:10px 12px 16px;overscroll-behavior-x:contain}.mentions-viewport:focus-visible{outline:2px dashed #777;outline-offset:4px}.mentions-viewport.dragging{cursor:grabbing;user-select:none}.mentions-track{display:flex;gap:26px;width:max-content;align-items:start}.mention-card{flex:0 0 238px;width:238px}.mention-image{height:171px;background:#fff;position:relative;box-shadow:1px 3px 5px #0000000c;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#626262;font-size:12px;clip-path:polygon(0 0,99% 1%,100% 99%,1% 100%)}.mention-card:nth-child(3n+1) .mention-image{transform:rotate(-1deg)}.mention-card:nth-child(3n+2) .mention-image{transform:rotate(.8deg)}.mention-number{position:absolute;bottom:12px;left:15px;font-size:10px;letter-spacing:1px;color:#626262}.mention-card h3{font-family:'Space Grotesk',Arial,sans-serif;font-size:18px;font-weight:500;letter-spacing:-.5px;margin:19px 0 5px}.mention-card p{font-size:12px;color:#626262;line-height:1.5;margin:0}.mentions-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}.mentions-bottom .handwritten-note{font-size:21px}.mentions-bottom button span{margin-left:9px}@media(max-width:900px){.case-grid{gap:20px}.case-info h3{font-size:18px}.case-info{gap:10px}.image-note{font-size:12px}}@media(max-width:650px){header nav{gap:18px}.work-section,.mentions-section{padding:36px 6% 45px}.mentions-section{padding-top:8px}.section-count{display:none}.work-heading,.mentions-heading{margin-top:27px}.work-heading h2,.mentions-heading h2{font-size:38px;letter-spacing:-1.8px}.case-grid{grid-template-columns:1fr;gap:35px;margin-top:32px}.case-image{aspect-ratio:1.5}.case-info h3{font-size:21px}.case-info p{font-size:14px}.case-info{margin-top:18px;gap:14px}.image-note{font-size:14px}.work-heading>.handwritten-note{font-size:20px}.mentions-heading{flex-direction:column;align-items:start;gap:20px}.mentions-heading p{font-size:14px;margin-top:12px}.mention-card{width:218px;flex-basis:218px}.mention-image{height:158px}.mentions-track{gap:22px}.mentions-viewport{margin-top:26px}.mentions-bottom .handwritten-note{font-size:19px}}
.case-image{overflow:hidden;border:7px solid #fff;clip-path:polygon(0 1%,20% 0,42% 1%,65% 0,99% 1%,100% 30%,99% 62%,100% 99%,77% 100%,55% 99%,30% 100%,1% 99%)}.case-image>img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}.paper-corner{left:10px;top:10px;font-size:12px;background:#fffffff0;padding:3px 6px;color:#555}.image-format{font-size:12px;letter-spacing:0;bottom:9px;right:10px;color:#626262;background:#fffffff0;padding:3px 6px}.mention-image{overflow:hidden;border:5px solid #fff;display:block;clip-path:polygon(0 1%,32% 0,64% 1%,99% 0,100% 45%,99% 99%,72% 100%,39% 99%,1% 100%)}.mention-image>img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1)}.mention-number{font-size:12px;bottom:6px;left:7px;background:#fffffff0;padding:2px 5px;color:#666}.mention-demo{position:absolute;bottom:6px;right:7px;font-size:12px;color:#626262;background:#fffffff0;padding:2px 5px}.mention-card:nth-child(4) .mention-image>img{object-position:65% 50%;transform:scale(1.25)}.mention-card:nth-child(5) .mention-image>img{object-position:35% 60%;transform:scale(1.25)}
.editorial-grid{display:block;margin-top:48px}.editorial-case{border-top:1px solid var(--rule);padding:36px 0;margin:0}.editorial-case:first-child{border:0;padding-top:0}.case-trigger{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:56px;align-items:center;width:100%;background:none;color:inherit;padding:0;border:0;text-align:left;cursor:pointer}.case-media{display:block;position:relative;overflow:hidden;aspect-ratio:16/11;background:#e7e7e4;border-radius:4px;box-shadow:none}.case-media>img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1);transform:translate(var(--image-x,0px),var(--image-y,0px)) scale(1.015);transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .5s}.case-trigger:hover .case-media>img,.case-trigger:focus-visible .case-media>img{transform:translate(var(--image-x,0px),var(--image-y,0px)) scale(1.055)}.case-summary{display:flex;flex-direction:column;align-items:start;padding:15px 0}.case-kicker{font-size:12px;letter-spacing:1.2px;color:#626262}.case-title{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(27px,3.1vw,44px);font-weight:500;letter-spacing:-1.8px;line-height:1.14;margin-top:25px}.case-subtitle{font-size:15px;color:#626262;line-height:1.6;margin-top:17px}.case-action{display:inline-flex;align-items:center;gap:28px;font-size:14px;border-bottom:1px solid #999;padding-bottom:8px;margin-top:35px;transition:border-color .3s,gap .3s}.case-action>span{font-size:23px;line-height:1;transition:transform .3s}.case-trigger:hover .case-action,.case-trigger:focus-visible .case-action{border-color:#222;gap:36px}.case-trigger:hover .case-action>span{transform:rotate(90deg)}.editorial-case:nth-child(2) .case-trigger{grid-template-columns:minmax(0,1fr) minmax(0,1.65fr)}.editorial-case:nth-child(2) .case-media{grid-column:2;grid-row:1}.editorial-case:nth-child(2) .case-summary{grid-column:1;grid-row:1}.case-demo-sticker{position:absolute;bottom:14px;left:14px;font-size:12px;color:#666;background:#ffffffed;padding:4px 9px;transform:rotate(-1deg);pointer-events:none}.case-preview-cursor{position:absolute;z-index:2;left:50%;top:50%;width:68px;height:68px;background:#f9f9f5;color:#222;border-radius:50%;display:grid;place-items:center;font-size:13px;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:opacity .2s,transform .3s;pointer-events:none;box-shadow:0 5px 15px #00000018}.case-media.pointer-inside .case-preview-cursor{opacity:1;transform:translate(-50%,-50%) scale(1)}.editorial-work.reveal-ready .editorial-case{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}.editorial-work.reveal-ready .editorial-case.in-view{opacity:1;transform:none}.case-dialog{max-width:none;width:min(1120px,92vw);max-height:90svh;padding:0;border:0;border-radius:6px;background:var(--paper);color:var(--ink);overflow:auto;box-shadow:0 30px 90px #00000030}.case-dialog::backdrop{background:#171717bf;backdrop-filter:blur(5px)}.case-dialog[open]{animation:preview-enter .28s ease-out}.preview-top{display:flex;justify-content:space-between;align-items:center;padding:21px 25px;border-bottom:1px solid var(--rule)}.preview-top>span{font-size:12px;letter-spacing:1.2px;color:#626262}.preview-top button{border:0;background:none;color:#555;font-size:13px;display:flex;align-items:center;gap:15px}.preview-top button>span{font-size:25px}.preview-layout{display:grid;grid-template-columns:1.5fr 1fr}.preview-image{aspect-ratio:4/3;background:#e6e6e2;margin:25px 0 25px 25px;overflow:hidden;border-radius:3px}.preview-image img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1);animation:preview-photo .6s ease}.preview-copy{padding:40px 32px;display:flex;flex-direction:column;align-items:start;justify-content:center}.preview-copy h2{font-family:'Space Grotesk',Arial,sans-serif;font-size:40px;font-weight:500;line-height:1.12;letter-spacing:-1.7px;margin:22px 0 12px}.preview-copy>p{font-size:16px;line-height:1.6;color:#626262;margin:0}.preview-demo-note{font-size:12px;color:#626262;margin-top:30px}.preview-navigation{display:flex;gap:20px;margin-top:34px}.preview-navigation button{font-size:12px;border:0;border-bottom:1px solid #aaa;color:#555;padding:5px 0;background:none}.preview-navigation button:hover{color:#111;border-color:#111}@keyframes preview-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes preview-photo{from{opacity:.4;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@media(max-width:900px){.case-trigger{gap:32px}.case-title{font-size:30px}.case-summary{padding:8px 0}.preview-copy{padding:25px 23px}.preview-copy h2{font-size:32px}.preview-navigation{flex-wrap:wrap;gap:14px}}@media(max-width:650px){.editorial-grid{margin-top:30px}.editorial-case{padding:28px 0}.case-trigger,.editorial-case:nth-child(2) .case-trigger{grid-template-columns:1fr;gap:0}.case-media,.editorial-case:nth-child(2) .case-media{grid-column:1;grid-row:1;aspect-ratio:4/3}.case-summary,.editorial-case:nth-child(2) .case-summary{grid-column:1;grid-row:2;padding:23px 0 5px;position:relative}.case-kicker{font-size:11px}.case-title{font-size:32px;margin-top:14px;letter-spacing:-1.2px}.case-subtitle{font-size:14px;margin-top:10px}.case-action{font-size:13px;margin-top:20px;padding-bottom:6px;gap:20px}.case-preview-cursor{display:none}.case-dialog{width:94vw;max-height:92svh}.preview-top{padding:17px 18px}.preview-layout{grid-template-columns:1fr}.preview-image{margin:18px 18px 0}.preview-copy{padding:24px 20px 30px}.preview-copy h2{font-size:32px;margin-top:15px}.preview-demo-note{margin-top:18px}.preview-navigation{margin-top:23px}}@media(prefers-reduced-motion:reduce){.editorial-work.reveal-ready .editorial-case{opacity:1;transform:none;transition:none}.case-media>img,.case-trigger:hover .case-media>img,.case-trigger:focus-visible .case-media>img{transform:none;transition:none}.case-dialog[open],.preview-image img{animation:none}.case-action,.case-action>span{transition:none}.case-trigger:hover .case-action>span{transform:none}}
/* Colour arrives in seven alternating, hand-coloured passes. */
.colourable{position:relative}.colourable>.color-ink{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:none;z-index:1;--ink-edge:-4%;clip-path:polygon(0 var(--ink-top),var(--ink-edge) var(--ink-top),calc(var(--ink-edge) - 3%) var(--ink-middle),var(--ink-edge) var(--ink-bottom),0 var(--ink-bottom));transition:clip-path .35s ease,transform .7s cubic-bezier(.2,.8,.2,1);transition-delay:0ms}.colourable>.color-ink.ink-reverse{--ink-edge:104%;clip-path:polygon(100% var(--ink-top),var(--ink-edge) var(--ink-top),calc(var(--ink-edge) + 3%) var(--ink-middle),var(--ink-edge) var(--ink-bottom),100% var(--ink-bottom))}.colourable:hover>.color-ink,.colourable:focus-visible>.color-ink,.colourable.ink-touch>.color-ink,.case-trigger:focus-visible .color-ink{--ink-edge:104%;transition-duration:.55s,.7s;transition-delay:var(--ink-delay),0ms}.colourable:hover>.ink-reverse,.colourable:focus-visible>.ink-reverse,.colourable.ink-touch>.ink-reverse,.case-trigger:focus-visible .ink-reverse{--ink-edge:-4%}.case-media>img.color-ink,.mention-image>img.color-ink,.preview-image>img.color-ink{filter:none}.case-demo-sticker,.mention-number,.mention-demo{z-index:3}.preview-image img{animation:none}.gaze-portrait{background-image:none}.gaze-portrait::before,.gaze-portrait>.color-ink{background-image:url('gaze-portrait-fuller-waves.png');background-size:inherit;background-position:inherit;background-repeat:no-repeat}.gaze-portrait::before{content:'';position:absolute;inset:0;filter:grayscale(1)}.gaze-portrait:focus-visible{outline:1px dashed #888;outline-offset:8px}@media(prefers-reduced-motion:reduce){.colourable>.color-ink{transition:none!important}}
.case-trigger{text-decoration:none}.preview-read{margin-top:24px;color:#222;border-bottom:1px solid #777;padding-bottom:6px;font-size:14px}.preview-read[hidden]{display:none}

/* Preserve the supplied thumbnail composition, including its edge callouts. */
.case-media.case-lamproom-media{aspect-ratio:4/3}.case-media.case-lamproom-media>img,.case-trigger:hover .case-lamproom-media>img,.case-trigger:focus-visible .case-lamproom-media>img{object-fit:contain;transform:none}

/* The thinking portrait belongs to the same bold ink illustration family. */
.gaze-portrait::before,.gaze-portrait>.color-ink{background-image:url('gaze-portrait-fuller-waves.png')}.gaze-portrait::before{background-image:var(--ink-portrait-base,url('gaze-portrait-fuller-waves.png'));filter:none}.ink-paper-base{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}

:root{--illustration-stroke:2px}.gaze-portrait::before{background-image:url('gaze-portrait-fuller-waves.png');filter:grayscale(1)}.colourable>.color-ink{transition:clip-path .85s cubic-bezier(.2,.6,.2,1);transition-delay:0ms}.colourable:hover>.color-ink,.colourable:focus-visible>.color-ink,.colourable.ink-touch>.color-ink{transition-duration:.85s;transition-delay:0ms}

/* A supplied thumbnail and a small preview for a story still taking shape. */
.case-profit-share-media>img{object-fit:contain!important;width:100%;height:100%}
.case-profit-share-media{background:#eef0f4}
.case-profit-share-media .case-demo-sticker{font-family:'Caveat',cursive;font-size:20px;background:#fff;color:#292925;transform:rotate(-3deg);padding:5px 14px;letter-spacing:0}
.preview-project-details{margin-top:22px;padding-top:17px;border-top:1px solid #d4d1c7}
.preview-project-details[hidden]{display:none}
.preview-project-meta{font-size:11px!important;color:#626262!important;line-height:1.6!important;margin:0 0 12px!important}
.preview-project-result{font-size:13px!important;line-height:1.6!important;color:#4b493e!important;margin:0!important}
.preview-demo-note.story-underway{font-family:'Caveat',cursive;font-size:25px;line-height:1.3;color:#68614e;margin-top:24px;max-width:290px}
.profit-share-preview .preview-image img{object-fit:contain}
.profit-share-preview .preview-copy h2{font-size:34px}
@media(max-width:650px){.profit-share-preview .preview-copy h2{font-size:30px}.preview-demo-note.story-underway{font-size:23px}}

/* One featured case, followed by two compact projects side by side. */
.editorial-work .editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:42px;row-gap:24px}
.editorial-work .editorial-case{min-width:0;max-width:100%}
.editorial-work .editorial-case:first-child{grid-column:1/-1}
.editorial-work .editorial-case:not(:first-child) .case-trigger{grid-template-columns:minmax(0,1fr);gap:0;align-items:start;height:100%}
.editorial-work .editorial-case:not(:first-child) .case-media{grid-column:1;grid-row:1;aspect-ratio:4/3;min-width:0}
.editorial-work .editorial-case:not(:first-child) .case-summary{grid-column:1;grid-row:2;padding:25px 0 8px;min-width:0}
.editorial-work .editorial-case:not(:first-child) .case-title{font-size:clamp(27px,2.7vw,37px);letter-spacing:-1.1px;margin-top:16px}
.editorial-work .editorial-case:not(:first-child) .case-kicker{font-size:10px;line-height:1.6;letter-spacing:1px}
.editorial-work .editorial-case:not(:first-child) .case-subtitle{font-size:14px;line-height:1.7;margin-top:15px;max-width:480px}
.editorial-work .editorial-case:not(:first-child) .case-action{margin-top:23px;font-size:13px}
.case-story-status{font-family:'Caveat',cursive;font-size:22px;line-height:1.25;color:#626262;margin-top:12px}
.editorial-work .case-profit-share-media>img,.editorial-work .case-trigger:hover .case-profit-share-media>img,.editorial-work .case-trigger:focus-visible .case-profit-share-media>img{object-fit:contain;transform:none}
.case-media.case-app-redesign-media{background:#edece6;display:flex;align-items:center;justify-content:center}
.editorial-work .case-app-redesign-media>img,.editorial-work .case-trigger:hover .case-app-redesign-media>img,.editorial-work .case-trigger:focus-visible .case-app-redesign-media>img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;transform:none;border-radius:0;box-shadow:none}
.case-app-redesign-media .case-demo-sticker{font-family:'Caveat',cursive;font-size:20px;background:#fff;color:#292925;transform:rotate(-3deg);padding:5px 14px;letter-spacing:0;max-width:calc(100% - 30px)}
.app-redesign-preview .preview-image{position:relative;display:flex;align-items:center;justify-content:center;background:#edece6}
.app-redesign-preview .preview-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:0;box-shadow:none}
.app-redesign-preview .preview-copy h2{font-size:34px}
.hero .intro{width:min(86%,1120px)}
.hero .intro .eyebrow{font-size:14px;letter-spacing:.3px;text-transform:none;margin-bottom:24px}
.hero .intro h1{font-size:clamp(30px,4vw,58px);line-height:1.2;letter-spacing:-2px;font-weight:500}
.hero .intro .intro-line{display:block}
.hero .intro .designer{font-size:clamp(32px,4.4vw,64px);letter-spacing:-2px;margin-top:10px;padding:2px 17px 8px;font-weight:700}
.hero .intro p{font-size:17px;line-height:1.7;max-width:650px;margin:28px auto 27px;color:#656565}
.intro-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px}
.intro-actions .primary,.intro-actions .secondary{min-height:48px;padding:13px 23px;border:1px solid #111;border-radius:0;font-size:14px}
.intro-actions .primary{background:#111;color:#fff}
.intro-actions .secondary{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:#111;transition:background .2s,transform .2s}
.intro-actions .secondary:hover{background:#fff;transform:translateY(-2px)}
@media(max-width:650px){.hero .intro h1{font-size:clamp(27px,7vw,40px);letter-spacing:-1.2px}.hero .intro .designer{font-size:clamp(26px,6.8vw,39px);letter-spacing:-1.2px;padding:2px 10px 6px}.hero .intro p{font-size:15px;line-height:1.65;margin:25px auto}.hero .intro .eyebrow{font-size:13px;margin-bottom:22px}.intro-actions{gap:10px}.intro-actions .primary,.intro-actions .secondary{font-size:13px;padding:12px 17px}}
@media(max-width:650px){.case-app-redesign-media .case-demo-sticker{font-size:18px}.app-redesign-preview .preview-copy h2{font-size:30px}}
@media(max-width:700px){.editorial-work .editorial-grid{grid-template-columns:minmax(0,1fr);row-gap:0}.editorial-work .editorial-case:first-child{grid-column:1}.editorial-work .editorial-case:not(:first-child) .case-title{font-size:32px}.editorial-work .editorial-case:not(:first-child) .case-summary{padding-top:23px}}

.hero .intro .eyebrow{font-size:18px;letter-spacing:.15px;margin-bottom:26px}
.hero .intro p{max-width:790px;font-size:18px;line-height:1.9;margin:27px auto 28px}
.hero .intro p .intro-description-highlight{display:inline;font-family:'Space Grotesk',Arial,sans-serif;font-size:23px;line-height:1.9;letter-spacing:-.6px;font-weight:600;padding:3px 7px 5px;margin:0 3px 0 0;transform:none;clip-path:none;box-decoration-break:clone;-webkit-box-decoration-break:clone}
@media(max-width:650px){.hero .intro .eyebrow{font-size:16px;margin-bottom:23px}.hero .intro p{font-size:15px;line-height:1.9;margin:24px auto}.hero .intro p .intro-description-highlight{font-size:18px;line-height:1.9;letter-spacing:-.4px;padding:3px 5px 4px}.intro-actions .primary,.intro-actions .secondary{font-size:13px}}

.brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-1px}
.brand-mark{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;flex:0 0 auto}
.brand-mark svg{display:block;width:100%;height:100%}
.about-story-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(36px,4.3vw,66px);align-items:start;margin-top:48px}
.about-visual,.about-narrative{min-width:0}
.about-visual .orbit-scene{margin:0}
.about-visual .orbit-bottom{margin-top:12px;padding:0 12px;gap:12px}
.about-visual .orbit-bottom p{font-size:14px}
.about-visual .orbit-labels span{font-size:19px;padding:2px 7px 4px}
.about-story-block{margin:0 0 32px;padding:0}
.about-story-block:last-child{margin-bottom:0}
.about-story-block h3{font-family:'Space Grotesk',Arial,sans-serif;font-size:23px;font-weight:500;line-height:1.35;letter-spacing:-.7px;margin:0 0 13px;color:#222}
.about-story-block p{font-size:16px;line-height:1.8;color:#656565;margin:0}
.about-me{padding-bottom:82px}
@media(max-width:1000px){.about-story-layout{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:32px}.about-visual{width:100%;max-width:720px;margin:0 auto}.about-narrative{max-width:720px;margin:0 auto}.about-story-block h3{font-size:22px}}
@media(max-width:650px){.about-story-layout{margin-top:28px;gap:34px}.about-story-block{margin-bottom:27px}.about-story-block p{font-size:15px;line-height:1.8}.about-story-block h3{font-size:21px}.about-me{padding-bottom:58px}}
.hero .intro .eyebrow{font-size:21px;line-height:1.35;margin-bottom:26px}
@media(max-width:650px){.hero .intro .eyebrow{font-size:18px}.brand-mark{width:26px;height:26px}}

/* A quiet rule separates work from the personal story. */
#about{border-top:1px solid var(--rule)}

/* Portrait and puzzle share one torn sheet, with breathing room inside its edges. */
.about-visual{position:relative;padding:24px 20px 26px;isolation:isolate;filter:drop-shadow(2px 5px 4px #0000000d)}
.about-visual::before{content:"";position:absolute;inset:0;z-index:-1;background-color:#fffdf9;background-image:radial-gradient(#29251e0b .5px,transparent .7px);background-size:7px 9px;clip-path:polygon(1% 1.4%,6% .7%,11% 1.5%,17% .4%,23% 1.2%,30% .5%,36% 1.4%,42% .6%,49% 1.2%,56% .3%,63% 1.4%,69% .5%,76% 1.2%,83% .4%,90% 1.3%,98.5% .8%,99.2% 7%,98.7% 15%,99.6% 23%,98.8% 31%,99.4% 40%,98.6% 48%,99.4% 57%,98.7% 66%,99.5% 75%,98.7% 83%,99.3% 92%,98.4% 98.7%,92% 99.4%,85% 98.7%,78% 99.6%,71% 98.8%,64% 99.4%,57% 98.6%,50% 99.5%,43% 98.8%,36% 99.4%,29% 98.7%,22% 99.6%,15% 98.8%,8% 99.5%,1.2% 98.7%,.6% 91%,1.4% 83%,.5% 75%,1.2% 66%,.4% 57%,1.3% 49%,.6% 40%,1.4% 31%,.5% 23%,1.2% 15%,.4% 7%)}
.about-visual .orbit-labels span{box-shadow:none;background:#fffdf9}
.about-visual .orbit-labels .chosen{background:#222;color:#fff}
@media(max-width:650px){.about-visual{padding:20px 12px 22px}}

/* Compact questions invite exploration alongside the paper illustration. */
.about-faq .faq-intro-title{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(26px,2.4vw,34px);line-height:1.25;letter-spacing:-1px;font-weight:500;margin:0 0 16px}
.about-faq p{font-size:15px;line-height:1.8;color:#656565}
.about-faq .faq-intro-copy{margin:0 0 27px}
.faq-list{border-top:1px solid var(--rule)}
.faq-item{border-bottom:1px solid var(--rule)}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;cursor:pointer;font-family:'Space Grotesk',Arial,sans-serif;font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.4px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:#000}
.faq-item summary:focus-visible{outline:2px dashed #222;outline-offset:5px}
.faq-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #c9c9c4;border-radius:50%;font:22px/1 'DM Sans',sans-serif;flex:0 0 auto;transition:transform .2s,background .2s}
.faq-item[open] .faq-toggle{transform:rotate(45deg);background:#fff}
.faq-answer{padding:0 0 20px}
.faq-answer p{margin:0 0 16px}
.faq-answer p:last-child{margin-bottom:0}
.about-faq .faq-subtitle{color:#222;margin-bottom:14px;font-size:16px}
.about-faq a{text-decoration:underline;text-underline-offset:4px;color:#222}
.faq-pending-link{border-bottom:1px dotted #a3a39f;cursor:help}
.about-faq .faq-contact{margin:26px 0 0;color:#222}
@media(max-width:650px){.faq-item summary{font-size:17px;padding:18px 0}.about-faq .faq-intro-title{font-size:27px}}
@media(prefers-reduced-motion:reduce){.faq-toggle{transition:none}}

/* Both the question and its short answer remain visible in the disclosure header. */
.faq-summary-text{display:block;min-width:0}
.faq-question{display:block}
.faq-teaser{display:block;margin-top:7px;font-family:'DM Sans',Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.6;letter-spacing:0;color:#656565}
.faq-item summary{align-items:flex-start;gap:22px}
.faq-item .faq-toggle{margin-top:2px}
.faq-answer{padding-top:2px}
@media(max-width:650px){.faq-teaser{font-size:13px;margin-top:6px}}

/* A round paper backdrop and a visible invitation to connect. */
.about-story-layout{align-items:center}
.about-visual{display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:24px 20px;filter:none}
.about-visual::before{inset:auto;left:50%;top:50%;width:94%;height:auto;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;clip-path:none;box-shadow:0 4px 18px #00000004}
.about-visual .orbit-scene{width:100%;flex:0 0 100%}
.orbit-intro{display:block}
.orbit-intro h2{font-size:clamp(30px,3vw,46px);letter-spacing:-1.6px;max-width:100%;line-height:1.25}
.orbit-intro h2 em{white-space:normal}
.about-faq .faq-contact{margin-top:30px}
.about-faq .faq-contact a{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(22px,2.1vw,30px);font-weight:500;line-height:1.4;letter-spacing:-.6px;text-decoration-thickness:1px;text-underline-offset:7px;overflow-wrap:anywhere}
@media(max-width:1000px){.about-visual{aspect-ratio:auto}.about-story-layout{gap:34px}}
@media(max-width:650px){.orbit-intro h2{font-size:31px;letter-spacing:-1px}.about-visual{padding:20px 12px}.about-faq .faq-contact a{font-size:clamp(20px,5.8vw,26px)}}

/* FAQs first, with the larger illustration beside them. */
.about-story-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.contact-section{padding:62px 7% 70px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:30px}
.contact-section h2{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(30px,3vw,46px);font-weight:500;letter-spacing:-1.5px;margin:0;line-height:1.25}
.contact-email{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(24px,2.6vw,38px);line-height:1.4;letter-spacing:-.8px;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px;overflow-wrap:anywhere}
@media(max-width:1000px){.about-story-layout{grid-template-columns:minmax(0,1fr)}.contact-section{flex-direction:column;align-items:flex-start;gap:20px}}
@media(max-width:650px){header nav{gap:15px}.nav-link{font-size:11px}.nav-index{display:none}.contact-section{padding:42px 6% 48px}.contact-email{font-size:clamp(20px,5.8vw,28px)}}


/* Natural scrolling with the featured story followed by two previews. */
.snap-featured .editorial-grid{display:block}
.snap-upcoming>h2{font-family:'Space Grotesk',Arial,sans-serif;font-size:clamp(30px,3vw,46px);line-height:1.25;font-weight:500;letter-spacing:-1.5px;margin:0}
.snap-upcoming .editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.snap-upcoming .editorial-case{grid-column:auto;padding:0;border:0}
.snap-upcoming .editorial-case .case-trigger{display:flex;flex-direction:column;align-items:stretch;gap:0;height:100%}
.snap-upcoming .editorial-case .case-media{width:100%;aspect-ratio:4/3}
.snap-upcoming .editorial-case .case-summary{padding:24px 0 0}
.snap-upcoming .editorial-case .case-title{font-size:clamp(27px,2.7vw,37px);margin-top:16px;letter-spacing:-1.1px}
.snap-upcoming .editorial-case .case-kicker{font-size:10px;line-height:1.6;letter-spacing:1px}
.snap-upcoming .editorial-case .case-subtitle{font-size:14px;line-height:1.7;margin-top:15px}
.snap-upcoming .editorial-case .case-action{margin-top:23px;font-size:13px}
.case-media>img,.preview-image img{filter:none}
@media(max-width:700px){.snap-upcoming .editorial-grid{grid-template-columns:minmax(0,1fr);gap:38px}}

/* Two balanced preview cards share a row, including the first card. */
#more-work .editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px;margin-top:0}
#more-work .editorial-grid>.editorial-case,#more-work .editorial-grid>.editorial-case:first-child{grid-column:auto;grid-row:auto;width:100%;min-width:0}
#more-work .editorial-case .case-trigger{display:flex;flex-direction:column;align-items:stretch;height:100%}
#more-work .case-media{width:100%;aspect-ratio:4/3}
#more-work .case-summary{flex:1}
#more-work .case-action{margin-top:auto;padding-top:22px}
#more-work .case-story-status{display:none}
.about-visual{align-self:start}
.circle-caption{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}
.circle-caption text{font-family:'Caveat',cursive;font-size:25px;font-weight:500;letter-spacing:1px;fill:#222}
.about-story-layout{align-items:start}
.faq-item summary{padding:20px 14px;transition:background .2s}
.faq-item summary:hover,.faq-item[open] summary{background:#fff9}
.faq-question{font-size:19px;font-weight:600;line-height:1.35;letter-spacing:-.4px}
.faq-teaser{font-size:14px;line-height:1.6;color:#555;margin-top:6px}
.faq-answer{padding:4px 14px 23px}
.faq-answer p{font-size:15px;line-height:1.8}
#site-header{position:fixed;padding:20px 6%;background:#f5f5f3f2;backdrop-filter:blur(10px);border-bottom:1px solid #d9d9d580;z-index:20}
#site-header nav{gap:28px}
#site-header .nav-link{padding:6px 0;font-size:13px;position:relative}
#site-header .nav-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#222;transform:scaleX(0);transform-origin:left;transition:transform .2s}
#site-header .nav-link:hover::after,#site-header .nav-link[aria-current="location"]::after{transform:scaleX(1)}
html{scroll-padding-top:100px}
@media(max-width:1000px){.about-visual{width:100%;max-width:560px}.circle-caption{top:50%;height:auto;aspect-ratio:1;transform:translateY(-50%)}}
@media(max-width:700px){#more-work .editorial-grid{grid-template-columns:1fr;gap:38px}.faq-question{font-size:18px}.faq-item summary{padding:18px 8px}.faq-answer{padding-left:8px;padding-right:8px}#site-header{padding:16px 6%}#site-header nav{gap:17px}#site-header .nav-link{font-size:12px}}
@media(prefers-reduced-motion:reduce){#site-header .nav-link::after,.faq-item summary{transition:none}}
