@font-face{font-family:Display;src:url(/fonts/dm-serif-display.ttf)format("truetype");font-display:swap;font-weight:400}@font-face{font-family:Manrope;src:url(/fonts/manrope.ttf)format("truetype");font-display:swap;font-weight:400}:root{--paper:#f5f3ec;--ink:#292c26;--muted:#66685e;--green:#52654a;--line:#d9dbce;--serif:Display, Georgia, serif;--sans:Manrope, Arial, sans-serif;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--paper);scroll-behavior:smooth;scroll-padding-top:35px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:6px}a:hover{text-decoration-color:var(--green)}::selection{color:#292c26;background:#d1dac5}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);letter-spacing:-.035em;text-wrap:balance;font-weight:400}em{color:var(--green);font-weight:400}img{width:100%;height:auto;display:block}.wrap{width:calc(100% - 128px);max-width:1320px;margin-inline:auto}.skip-link{z-index:100;background:var(--paper);padding:15px;position:absolute;top:-60px}.skip-link:focus{top:5px}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:108px;display:flex}.wordmark{font-family:var(--serif);letter-spacing:-2px;font-size:37px}.wordmark span{color:var(--green)}nav{gap:35px;font-size:13px;display:flex}nav a:hover,.text-link:hover,.site-footer a:hover{text-decoration:underline}.terminal-link{border:1px solid #babfac;border-radius:6px;align-items:center;gap:12px;padding:12px 17px;font-size:12px;transition:background .2s;display:flex}.terminal-link:hover{background:#e7eadf}.terminal-link>span{color:var(--green);font-family:monospace;font-weight:700}.hero{grid-template-columns:1fr 1fr;align-items:center;gap:12px;min-height:680px;padding-top:25px;padding-bottom:105px;display:grid;position:relative}.hero-copy{z-index:2;position:relative}.hero h1{white-space:nowrap;margin-bottom:27px;font-size:clamp(48px,5.3vw,76px);line-height:1.08}.hero h1 em{font-style:italic}.hero-copy>p{color:#62655b;font-size:16px;line-height:1.95}.hero-actions{align-items:center;gap:27px;margin-top:29px;display:flex}.button{background:var(--green);color:#fff;border-radius:5px;justify-content:center;align-items:center;gap:30px;padding:16px 23px;font-size:13px;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:#3d5036;transform:translateY(-2px)}.text-link{font-size:13px}.location{color:var(--muted);align-items:center;gap:9px;margin-top:43px;font-size:11px;display:flex}.location>span{background:var(--green);border-radius:50%;width:6px;height:6px}.hero-bottom{color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:26px;font-size:11px;display:flex;position:absolute;bottom:25px;left:0;right:0}.hero-bottom>span:last-child{letter-spacing:.13em;font-size:9px}.computer-stage{perspective:1200px;isolation:isolate;height:470px;position:relative}.orbit-label{color:#727565;font-size:12px;font-family:var(--serif);font-style:italic;position:absolute;top:8px;right:16px;transform:rotate(5deg)}.computer{width:355px;height:340px;transform:translateX(-50%) rotateX(var(--tilt,-7deg)) rotateY(var(--turn,-13deg));transform-style:preserve-3d;z-index:2;transition:transform .35s ease-out;display:block;position:absolute;top:55px;left:50%;outline-offset:18px!important}.monitor{width:355px;height:265px;transform-style:preserve-3d;position:relative}.monitor-front{background:linear-gradient(130deg,#e5e3d7,#cecfbe 78%);border-radius:14px;padding:18px 18px 0;position:absolute;inset:0;transform:translateZ(25px);box-shadow:inset 2px 2px 2px #fcfbf4,inset -2px -2px 2px #a6ac97,7px 13px 25px #424a2b1a}.monitor-side{background:#b6baa7;border-radius:17px;position:absolute;inset:2px -24px 0 0;transform:translateZ(-6px);box-shadow:12px 15px 25px #424a2b12}.screen{color:#d9e2c7;background:#252e25;border-radius:8px;flex-direction:column;justify-content:space-between;height:205px;padding:14px 17px;font-family:monospace;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 5px #7c8370,inset 0 4px 15px #0008}.screen:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff07,#0000 60%);position:absolute;inset:0}.screen-top,.screen-bottom{color:#a6b497;justify-content:space-between;font-size:9px;display:flex}.screen-top{border-bottom:1px solid #ffffff1c;padding-bottom:9px}.screen-greeting{color:#b2c399;font-size:10px}.screen-content p{font-family:var(--serif);letter-spacing:0;margin:8px 0 13px;font-size:24px;line-height:1.2}.screen-prompt{color:#bfcdb0;font-size:10px}.screen-prompt>span:first-child{color:#e3dc99;margin-right:4px}.cursor{animation:1.2s step-end infinite blink}.screen-bottom{letter-spacing:.1em;align-items:center;font-size:6px}.screen-bottom>span:last-child{font-size:17px}.monitor-chin{justify-content:space-between;align-items:center;height:39px;padding:0 5px;display:flex}.computer-brand{font:25px var(--serif);color:#69715c}.power-light{background:#7d9769;border-radius:50%;width:5px;height:5px;box-shadow:0 0 4px #839672}.monitor-neck{background:linear-gradient(90deg,#b1b6a2,#d5d8c9,#b2b8a4);border-radius:0 0 10px 10px;width:80px;height:68px;position:absolute;top:256px;left:140px;transform:translateZ(-10px)}.monitor-foot{background:linear-gradient(#dedfd3,#b7bdaa);border-radius:50%;width:145px;height:42px;position:absolute;top:313px;left:108px;transform:rotateX(60deg);box-shadow:2px 12px 16px #424a2b24}.keyboard{background:#cdd1c1;border-radius:7px;width:275px;height:91px;padding:9px;position:absolute;top:348px;left:38px;transform:rotateX(58deg)translateZ(35px);box-shadow:0 7px #a6ae98,3px 20px 24px #3c452d1c}.keys{grid-template-columns:repeat(12,1fr);gap:4px;height:100%;display:grid}.keys span{background:#e7e9dd;border-radius:2px;box-shadow:0 2px #aeb6a0}.space-key{grid-column:span 4}.keys span:nth-last-child(-n+3){display:none}.desk-shadow{filter:blur(26px);z-index:0;background:#777e5830;border-radius:50%;width:min(390px,90%);height:90px;position:absolute;top:352px;left:50%;transform:translate(-45%)}.computer-caption{z-index:3;color:var(--green);font-size:12px;font-family:var(--serif);align-items:center;gap:10px;font-style:italic;display:flex;position:absolute;bottom:2px;right:5px}.caption-line{background:#b1b8a4;width:40px;height:1px;transform:rotate(-25deg)}.caption-button{background:#eef0e6;border:1px solid #b1b8a4;border-radius:999px;align-items:center;gap:8px;padding:9px 15px 10px;line-height:1;text-decoration:none;transition:background .2s,border-color .2s,translate .15s;display:inline-flex;box-shadow:0 4px 12px #424a2b1f}.caption-button:hover{border-color:var(--green);background:#e2e7d7}.caption-button:active{translate:0 1px}.caption-arrow{font-size:15px}@keyframes computer-float{50%{translate:0 -7px}}@keyframes power-pulse{50%{box-shadow:0 0 9px 2px #839672}}.computer{animation:5s ease-in-out infinite computer-float}.power-light{animation:2.6s ease-in-out infinite power-pulse}.computer:hover{animation-play-state:paused}.computer:hover .screen,.computer:focus-visible .screen{background:#2d3b2d}.computer:active{scale:.99}@media (hover:none){.computer:active .screen{background:#36452f}}@keyframes blink{50%{opacity:0}}.work-section{padding-top:64px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:40px;display:flex}.section-heading h2,.about-heading h2{font-size:45px;line-height:1.12}.section-heading h2 span,.about-heading h2 span{color:var(--green)}.section-heading>p{color:var(--muted);padding-bottom:4px;font-size:13px;line-height:1.9}.projects-grid{grid-template-columns:1fr 1fr;gap:54px 30px;display:grid}.project-featured{grid-column:1/-1}.project-image-link{border-radius:9px;display:block;position:relative;overflow:hidden}.project-art{justify-content:center;align-items:center;height:365px;display:flex;position:relative;overflow:hidden}.mrsl-art{background:#e4e7dc;height:auto;padding:52px 85px 0;display:block}.browser-chrome{color:#6b7165;background:#faf9f5;border-radius:6px 6px 0 0;align-items:center;gap:4px;height:27px;padding:0 13px;font-size:8px;display:flex;position:relative}.browser-chrome i{background:#c8ccbf;border-radius:50%;width:4px;height:4px}.browser-chrome span{position:absolute;left:50%;transform:translate(-50%)}.mrsl-art img{box-shadow:0 15px 40px #25302018}.project-featured .mrsl-art{max-height:500px}.project-open{background:var(--paper);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:transform .25s;display:flex;position:absolute;bottom:20px;right:20px}.project-image-link:hover .project-open{transform:rotate(45deg)}.project-image-link .project-art{transition:filter .2s}.project-image-link:hover .project-art{filter:brightness(.98)}.project-description{justify-content:space-between;align-items:center;gap:15px;padding-top:20px;display:flex}.project-category{color:var(--green);font-size:10px}.project-description h3{font-family:var(--serif);margin:5px 0;font-size:29px;font-weight:400}.project-description p{color:var(--muted);font-size:12px}.project-stack{color:var(--muted);font-size:10px}.project:not(.project-featured) .project-description{display:block}.project:not(.project-featured) .project-stack{margin-top:13px;display:block}.career-art{background:#dfe6ec;padding:30px}.workflow-sheet{background:#fafbfc;border-radius:6px;width:345px;padding:25px 29px 19px;transform:rotate(-5deg);box-shadow:8px 20px 35px #3f597126}.sheet-brand{color:#304764;font-size:11px;font-weight:700}.sheet-brand span{background:#dce6f0;border-radius:3px;margin-left:4px;padding:2px 4px;font-size:8px}.workflow-sheet h3{font:26px/1.13 var(--serif);color:#314760;margin:19px 0 15px}.workflow-row{color:#384c60;border-top:1px solid #dce2e8;align-items:center;gap:12px;padding:11px 0;font-size:10px;display:flex}.workflow-row>span{color:#63768b;font-size:8px}.workflow-row small{color:#65768a;margin-top:3px;font-size:8px;display:block}.workflow-row b{margin-left:auto;font-weight:400}.illustration-caption{letter-spacing:.08em;color:#596775;margin-top:8px;font-size:7px}.floating-note{color:#425373;font:italic 16px var(--serif);background:#e9edf7;padding:13px 18px;position:absolute;bottom:30px;right:22px;transform:rotate(5deg);box-shadow:1px 5px 13px #36466615}.kids-art{background:#ece4d6}.worksheet{background:#fffdf4;width:320px;padding:28px;transform:rotate(6deg);box-shadow:8px 15px 30px #6e57321f}.worksheet-label{letter-spacing:.14em;color:#8a653f;font-size:7px}.worksheet h3{font:27px/1.12 var(--serif);color:#795736;margin:14px 0}.worksheet-name{color:#8c745b;border-bottom:1px solid #e5dccc;padding-bottom:14px;font-size:6px}.maths{color:#755b42;grid-template-columns:1fr 1fr;gap:22px 12px;padding:25px 0;font-size:16px;display:grid}.maths>span{align-items:center;gap:7px;display:flex}.maths i{border:1px solid #c8b396;border-radius:3px;width:20px;height:22px;display:inline-block}.worksheet-bottom{color:#8b7156;border-top:1px solid #e5dccc;padding-top:11px;font-size:7px}.pencil{background:linear-gradient(90deg,#a06c25 25%,#d9a94f 26% 65%,#bb8333 66%);border-radius:3px;width:11px;height:225px;position:absolute;top:96px;right:45px;transform:rotate(18deg);box-shadow:4px 5px 6px #0002}.pencil:after{content:"";border-top:23px solid #b89971;border-left:5.5px solid #0000;border-right:5.5px solid #0000;position:absolute;bottom:-23px}.pencil:before{content:"";background:#ae7768;border-radius:3px 3px 0 0;width:11px;height:13px;position:absolute;top:-12px}.about-section{border-block:1px solid var(--line);grid-template-columns:1fr 1fr;gap:90px;margin-top:100px;padding-block:105px;display:grid}.about-heading .text-link{margin-top:27px;display:inline-block}.about-copy{color:var(--muted);font-size:14px;line-height:1.95}.about-copy p+p{margin-top:19px}.about-copy .about-signoff{color:var(--ink)}.about-details{color:var(--green);flex-wrap:wrap;gap:20px;margin-top:28px;font-size:10px;display:flex}.contact-section{justify-content:space-between;align-items:end;padding-block:92px 100px;display:flex}.contact-section h2{font-size:57px;line-height:1.13}.contact-email{border-bottom:1px solid #a7ad9a;gap:45px;margin-top:29px;padding-bottom:8px;font-size:17px;display:inline-flex}.contact-aside{color:var(--muted);font-size:12px;line-height:1.9}.contact-aside a{color:var(--ink);margin-top:20px;display:block}.site-footer{border-top:1px solid var(--line);align-items:center;gap:25px;padding-block:28px 35px;display:flex}.site-footer .wordmark{font-size:27px}.site-footer p{color:var(--muted);font-size:10px}.site-footer>div{gap:20px;margin-left:auto;font-size:10px;display:flex}.site-footer>span{color:var(--muted);font-size:9px}dialog{color:#e8e3d2;background:#1d2021;border:0;border-radius:0;width:min(680px,100%);max-width:100%;height:100dvh;max-height:none;margin:0;padding:0;transition:width .28s cubic-bezier(.16,1,.3,1);inset:0 0 0 auto;overflow:hidden;box-shadow:-15px 0 65px #0003}dialog.terminal-expanded{width:100%}.terminal-controls{align-items:center;gap:8px;display:flex}dialog::backdrop{background:#242b2533}.dialog-bar{border-bottom:1px solid #454a3e;justify-content:space-between;align-items:center;height:57px;padding:0 20px;display:flex}.dialog-bar h2{font:13px var(--sans);letter-spacing:0}.dialog-bar button{color:#ececdd;background:0 0;border:1px solid #657057;border-radius:4px;padding:6px 12px;font-size:12px}.dialog-bar button:hover{background:#3d4838}.terminal-note{color:#bfc3ad;justify-content:space-between;gap:10px;padding:12px 20px;font-size:11px;display:flex}.terminal-note a{text-decoration:underline}#terminal-frame-slot{height:calc(100% - 99px)}#terminal-frame-slot iframe{border:0;width:100%;height:100%;display:block}.terminal-open{overflow:hidden}.case-study{padding-top:55px}.case-title{grid-template-columns:1fr 1fr;align-items:center;gap:50px;margin-top:50px;display:grid}.case-title h1{font-size:66px;line-height:1.1}.case-title p{color:var(--muted);font-size:15px;line-height:1.9}.case-meta{border-block:1px solid var(--line);color:var(--muted);gap:30px;margin-block:35px;padding-block:20px;font-size:12px;display:flex}.case-meta a{color:var(--green);margin-left:auto}.case-study>.project-art{border-radius:9px}.case-study>.career-art,.case-study>.kids-art{height:470px}.case-sections{max-width:940px;margin:65px auto}.case-sections section{grid-template-columns:1fr 2fr;gap:65px;margin-block:40px;display:grid}.case-sections h2{font-size:29px}.case-sections p{color:var(--muted);font-size:15px;line-height:1.9}.case-end{text-align:center;padding-block:35px 80px}.case-end h2{margin-bottom:25px;font-size:40px}.case-end .text-link{margin-left:20px}@media (width>=1500px){.hero{min-height:740px}.computer{transform-origin:50%;scale:1.12}.computer-stage{height:480px}}@media (width<=1050px){.wrap{width:calc(100% - 72px)}.hero h1{font-size:54px}.computer{transform-origin:40% 40%;scale:.84}.hero{min-height:620px}.computer-stage{height:430px}.hero-copy>p{font-size:14px}.orbit-label{right:0}.computer-caption{bottom:20px}.section-heading h2,.about-heading h2{font-size:38px}.project-art{height:335px}.workflow-sheet{width:290px;padding:22px}.worksheet{width:285px;padding:22px}.pencil{right:25px}.about-section{gap:45px}.contact-section h2{font-size:48px}.site-footer{flex-wrap:wrap}.mrsl-art{padding:35px 50px 0}}@media (width<=760px){.wrap{width:calc(100% - 40px)}.site-header{height:82px}.wordmark{font-size:32px}nav{gap:20px}.terminal-link{gap:0;padding:10px;font-size:0}.terminal-link>span{font-size:15px}.hero{grid-template-columns:1fr;gap:0;min-height:0;padding-top:50px;padding-bottom:70px}.hero h1{margin-bottom:20px;font-size:clamp(40px,8.5vw,62px);line-height:1.08}.hero-copy>p{font-size:14px;line-height:1.9}.hero-actions{margin-top:22px}.location{margin-top:27px}.computer-stage{width:100%;max-width:460px;height:435px;margin:20px auto 0}.computer{transform-origin:0 30%;top:32px;left:50%;scale:.82}.orbit-label{font-size:11px;top:15px;right:12px}.computer-caption{bottom:0;right:20px}.desk-shadow{width:260px;top:290px}.hero-bottom{padding-bottom:20px;font-size:9px;bottom:0}.hero-bottom>span:last-child{font-size:7px}.work-section{padding-top:48px}.section-heading{align-items:start;gap:15px;margin-bottom:28px}.section-heading h2{font-size:32px}.section-heading>p{padding-top:3px;font-size:10px}.projects-grid{grid-template-columns:1fr;gap:35px}.project-featured{grid-column:auto}.mrsl-art{padding:20px 20px 0}.project-featured .mrsl-art{max-height:290px}.project-description{align-items:start}.project-description h3{font-size:26px}.project-description p{font-size:11px}.project-stack{text-align:right;max-width:95px;font-size:8px;line-height:1.6}.project:not(.project-featured) .project-stack{text-align:left;max-width:none}.project-art{height:345px}.workflow-sheet{width:300px}.worksheet{width:290px}.pencil{right:40px}.about-section{grid-template-columns:1fr;gap:30px;margin-top:60px;padding-block:55px}.about-heading h2{font-size:37px}.about-heading .text-link{margin-top:18px}.about-copy{font-size:13px}.contact-section{padding-block:55px;display:block}.contact-section h2{font-size:44px}.contact-email{font-size:16px}.contact-aside{margin-top:33px}.contact-aside>p br{display:none}.contact-aside a{margin-top:12px}.site-footer{gap:12px 20px;padding-block:22px}.site-footer>div{margin-left:auto}.site-footer>span{width:100%;font-size:9px}.site-footer p{display:none}dialog{border:0;border-radius:0;width:100%;max-width:none;height:100dvh;margin:0}.dialog-bar{padding-inline:14px}.dialog-bar h2{font-size:11px}#expand-terminal{display:none}.terminal-note{padding-inline:14px;font-size:9px}.case-study{padding-top:30px}.case-title{grid-template-columns:1fr;gap:22px;margin-top:35px}.case-title h1{font-size:48px}.case-title p{font-size:13px}.case-meta{flex-wrap:wrap;gap:15px;font-size:10px}.case-sections{margin-block:40px}.case-sections section{grid-template-columns:1fr;gap:14px;margin-block:30px}.case-sections p{font-size:13px}.case-end h2{font-size:33px}.case-end .text-link{margin:20px 0 0;display:block}}.project,.hero-copy,.computer-stage{min-width:0}@media (width<=380px){nav{gap:14px}.computer{top:48px;scale:.67}.computer-stage{height:385px}.desk-shadow{top:265px}.hero-actions{gap:20px}.hero-bottom>span:last-child{display:none}.section-heading{display:block}.section-heading>p{margin-top:15px}.project-featured .project-description{display:block}.project-featured .project-stack{text-align:left;max-width:none;margin-top:12px;display:block}.workflow-sheet,.worksheet{width:255px;padding:20px}.career-art{padding:20px}.workflow-sheet h3,.worksheet h3{font-size:24px}.worksheet-name{font-size:6px}.floating-note{font-size:13px;right:12px}.pencil{right:18px}}@media (width>=761px) and (width<=900px){.hero h1{font-size:43px}.computer{left:40%;scale:.73}.hero-copy>p{font-size:12px}.hero-actions{gap:15px}.hero-actions .button{gap:12px;padding:14px}.location{font-size:9px}.computer-stage{height:405px}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.computer{transform:translate(-50%)rotateY(-13deg)}}
