:root{--paper:#efeee8;--ink:#272b27;--muted:#6e736b;--line:#cdd0c5;--accent:#b65132;--dark:#252e28}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 'Arial',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header{height:100px;padding:0 4.3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;align-items:center;font-size:35px;font-weight:400;letter-spacing:-4px;gap:19px}.brand>span{font-size:12px;line-height:1.25;letter-spacing:0}nav{display:flex;gap:32px;font-size:13px}.header-mail{font-size:13px;border-bottom:1px solid;padding-bottom:4px}.hero,.section{padding:45px 6.3% 70px}.eyebrow{font:10px/1.5 monospace;letter-spacing:1.6px;display:flex;align-items:center;gap:12px}.status{width:6px;height:6px;background:var(--accent);border-radius:50%}.edition{margin-left:auto;color:var(--muted)}.hero-layout{display:grid;grid-template-columns:1.08fr 1fr;gap:3%;align-items:center;margin:34px 0 45px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(75px,8.7vw,150px);line-height:.93;font-weight:300;letter-spacing:-7px;margin-bottom:35px;font-stretch:condensed}em{font-family:Georgia,serif;font-weight:400;color:var(--accent)}.hero-sub{font-size:21px;line-height:1.35;letter-spacing:-.4px;margin-bottom:20px}.intro{max-width:410px;font-size:14px;color:var(--muted)}.button{display:inline-flex;gap:45px;padding:15px 20px;background:var(--ink);color:var(--paper);font-size:12px;margin-top:20px}.button:hover{background:var(--accent)}.drawing{color:#58694e;position:relative}.drawing svg{width:100%;display:block}.drawing-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;font:8px monospace;letter-spacing:1px}.part{transition:transform 1s}.drawing:hover .p2{transform:translateY(-12px)}.drawing:hover .p3{transform:translateY(12px)}.hero-foot{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;color:var(--muted);font:9px monospace;letter-spacing:1px}.section{padding-top:76px;border-top:1px solid var(--line)}.section-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:30px}.section-top>p{font-size:13px;color:var(--muted)}h2{font-size:clamp(40px,4.6vw,70px);font-weight:300;line-height:1.07;letter-spacing:-2.8px;margin-bottom:45px}h2>span{color:#85897c}.services{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.services article{display:flex;border-top:1px solid var(--line);padding:28px 0 35px;gap:22px}.num{font:10px monospace;color:var(--accent);padding-top:8px}.services h3{font-size:22px;letter-spacing:-.7px;font-weight:400;margin-bottom:15px}.services p{font-size:14px;color:var(--muted);max-width:370px}.tags{font:9px monospace;letter-spacing:.6px;margin-top:25px}.service-sign{margin-left:auto;font-size:22px}.automation{background:var(--dark);color:var(--paper)}.auto-layout{display:grid;grid-template-columns:1fr 1fr;gap:14%;margin-top:45px}.auto-layout p{font-size:15px;color:#bbc3b9;max-width:390px}.text-link{font-size:12px;display:inline-block;border-bottom:1px solid;padding-bottom:5px}.auto-layout .text-link{margin-top:22px}.flow-title{display:flex;justify-content:space-between;font:9px monospace;letter-spacing:1px;border-bottom:1px solid #5a6459;padding-bottom:20px}.flow-source{padding:25px 25px 10px;border-left:1px solid #5a6459;position:relative}.flow-source>span,.flow-result>span{font:9px monospace;letter-spacing:1px;color:#aeb9a8}.flow-source h3{font-size:32px;font-weight:300;line-height:1.1;margin-top:16px}.code-lines{position:absolute;right:10px;bottom:25px;transform:skewY(-25deg);width:75px}.code-lines i{display:block;height:15px;border:1px solid #8c9c82;margin:5px}.flow-arrow{color:#bdcbaf;padding-left:25px;font-size:27px}.flow-result{border:1px solid #5a6459;padding:22px 25px}.flow-result>div{display:flex;justify-content:space-between;border-bottom:1px solid #485446;padding:9px 0;font-size:14px}.flow-result>div:last-child{border:0}.flow-result b{font:9px monospace;color:#97a78e}.experience{display:grid;grid-template-columns:.8fr 1.2fr;gap:10%}.experience-intro p{font-size:18px;max-width:350px}.tools{font:11px/2 monospace;color:var(--muted);margin-top:40px}.timeline article{display:grid;grid-template-columns:100px 1fr;column-gap:20px;border-top:1px solid var(--line);padding:25px 0}.timeline article>span{grid-row:1/4;font:10px monospace;color:var(--muted);padding-top:8px}.timeline h3{font-size:22px;font-weight:400;margin-bottom:5px;letter-spacing:-.6px}.timeline h4{font-size:12px;font-weight:400;color:var(--accent);margin:0 0 15px}.timeline p{font-size:13px;color:var(--muted);margin-bottom:0}.education{border-top:1px solid var(--line);margin-top:35px}.education summary{padding:22px 0;cursor:pointer;font-size:16px;list-style:none;display:flex;justify-content:space-between}.education>div{display:grid;grid-template-columns:1fr 1fr;gap:35px;color:var(--muted);font-size:13px;padding:0 0 15px}.education b{font-weight:400;color:var(--ink)}.materials{background:#e4e6dd}.materials h2{margin-top:30px}.document{display:flex;gap:30px;align-items:center;border-top:1px solid #bac1b2;border-bottom:1px solid #bac1b2;padding:28px 0}.pdf-icon{height:85px;width:65px;border:1px solid #8d9785;padding:9px;font:10px monospace;display:flex;flex-direction:column;justify-content:space-between}.pdf-icon span{align-self:end;font-size:23px}.document h3{font-size:23px;font-weight:400;letter-spacing:-.5px;margin-bottom:7px}.document p{font-size:12px;color:var(--muted);margin:0}.document-arrow{margin-left:auto;font-size:30px}.document:hover h3{color:var(--accent)}.contact{padding-top:70px;padding-bottom:80px}.contact h2{margin-top:40px;margin-bottom:45px;font-size:clamp(48px,5.8vw,88px)}.big-mail{font-size:clamp(20px,3.4vw,49px);letter-spacing:-1.2px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:15px;overflow-wrap:anywhere}.contact-foot{display:flex;justify-content:space-between;margin-top:25px;font-size:12px;color:var(--muted);gap:20px}.contact-foot button{background:none;border:0;align-self:start;font-size:11px}.contact-foot button span{margin-left:15px}footer{padding:25px 6.3% 90px;border-top:1px solid var(--line);font:9px monospace;display:flex;justify-content:space-between;gap:20px;color:var(--muted)}.contact-rail{position:fixed;bottom:18px;right:22px;z-index:20;display:flex;align-items:center;background:var(--ink);color:var(--paper);border:1px solid #67705e;box-shadow:0 4px 20px #0002;font:10px monospace}.contact-rail a,.contact-rail button{padding:12px 16px;background:none;color:inherit;border:0;font:inherit}.contact-rail button{border-left:1px solid #67705e}.contact-rail button:hover,.contact-rail a:hover{background:#46513e}.toast{position:fixed;bottom:76px;right:22px;background:var(--paper);border:1px solid var(--line);padding:10px 18px;font-size:12px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:30}.toast.visible{opacity:1}@media(prefers-reduced-motion:no-preference){.drawing .p2{animation:float 6s ease-in-out infinite}@keyframes float{50%{transform:translateY(-9px)}}}@media(max-width:850px){header{padding:0 6%;height:80px}nav{gap:16px;font-size:11px}.brand>span{display:none}.hero-layout{grid-template-columns:1fr 1fr}h1{letter-spacing:-4px}.hero-sub{font-size:17px}.intro{font-size:12px}.auto-layout{gap:7%}.services{column-gap:25px}.services h3{font-size:19px}.services p{font-size:13px}.hero-foot{font-size:8px}.timeline article{grid-template-columns:75px 1fr}.experience{gap:6%}.timeline h3{font-size:18px}}@media(max-width:600px){header{gap:15px}.brand{font-size:28px}.header-mail{display:none}nav{gap:14px;font-size:10px}.hero,.section{padding-left:6%;padding-right:6%}.hero{padding-top:25px}.eyebrow{font-size:8px;letter-spacing:1px}.edition{display:none}.hero-layout{grid-template-columns:1fr;margin-top:40px;gap:20px}h1{font-size:93px;letter-spacing:-5px}.hero-sub{font-size:21px}.intro{font-size:14px;max-width:330px}.drawing{max-width:400px;margin:0 auto;width:100%}.hero-foot{flex-wrap:wrap;gap:14px}.hero-foot span:last-child{display:none}.section{padding-top:48px;padding-bottom:48px}.section-top{gap:20px}.section-top>p{font-size:10px}h2{font-size:40px;letter-spacing:-1.8px}.services{grid-template-columns:1fr}.services article{padding:22px 0}.services h3{font-size:22px}.services p{font-size:14px}.auto-layout,.experience{grid-template-columns:1fr;gap:35px}.auto-layout h2{margin-bottom:25px}.auto-layout p{font-size:14px}.data-flow{max-width:100%}.experience-intro p{font-size:16px}.tools{margin-top:20px}.timeline article{grid-template-columns:70px 1fr;gap:15px}.education>div{grid-template-columns:1fr;gap:5px}.document{gap:20px}.document h3{font-size:18px}.document p{font-size:11px}.pdf-icon{flex-shrink:0;height:70px;width:52px}.contact h2{font-size:47px}.big-mail{font-size:22px;letter-spacing:-.7px;gap:10px}.contact-foot{flex-direction:column;font-size:12px}footer{flex-wrap:wrap;padding-bottom:100px}footer>span:last-child{display:none}.contact-rail{right:12px;bottom:12px}.contact-rail a,.contact-rail button{padding:12px}.toast{right:12px}.section-top .text-link{font-size:10px}}

.contact-rail a+a{border-left:1px solid #67705e}

.personal-project{padding:30px 0 45px;border-top:1px solid #bac1b2}.project-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.project-meta .tags{margin:0}.project-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:10%;align-items:center}.personal-project h3{font-size:30px;line-height:1.15;font-weight:400;letter-spacing:-1px;max-width:420px}.personal-project p{font-size:14px;color:var(--muted)}.project-process{border-left:1px solid #bac1b2;padding-left:25px}.project-process>div{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid #bac1b2}.project-process span{font:10px monospace;color:var(--accent);padding-top:5px}.project-process p{color:var(--ink);margin:0;font-size:16px}.project-process small{display:block;color:var(--muted);font-size:11px;margin-top:4px}@media(max-width:850px){nav{gap:16px}}@media(max-width:600px){header{height:auto;min-height:80px;padding-top:15px;padding-bottom:15px;align-items:flex-start}nav{flex-wrap:wrap;justify-content:flex-end;gap:10px 14px}.project-layout{grid-template-columns:1fr;gap:30px}.project-meta{align-items:flex-start;flex-direction:column;gap:10px}.personal-project h3{font-size:27px}.project-process{padding-left:20px}}

.automation-projects{margin-top:65px}.automation-projects-title{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #5a6459;padding-top:25px;margin-bottom:30px}.automation-projects-title>p{font-size:12px;color:#bbc3b9;margin:0}.automation .personal-project{border-color:#5a6459}.automation .personal-project p{color:#bbc3b9}.automation .project-process{border-color:#5a6459}.automation .project-process>div{border-color:#5a6459}.automation .project-process p{color:var(--paper)}.automation .project-process small{color:#bbc3b9}.automation .button{background:var(--paper);color:var(--ink)}.automation .button:hover{background:#c9d2c0}.cad-tools{display:grid;grid-template-columns:1fr 1fr;gap:45px}.cad-tool{border-top:1px solid #5a6459;padding:25px 0}.cad-tool-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.cad-tool h3{font-weight:400;font-size:27px;line-height:1.2;letter-spacing:-.7px;margin-bottom:20px}.cad-tool>p{font-size:14px;line-height:1.65;color:#bbc3b9}.download-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #7f8b77;flex-shrink:0}.download-icon:hover{background:#46513e}.tool-download{margin-top:25px;border-top:1px solid #5a6459;padding-top:20px;display:flex;flex-direction:column;gap:6px}.tool-download>a{font-size:13px;text-decoration:underline;text-underline-offset:4px}.tool-download>span{font:10px monospace;color:#aeb9a8}.tool-details{margin-top:25px;border-top:1px solid #5a6459;padding-top:15px}.tool-details summary{display:flex;justify-content:space-between;cursor:pointer;font-size:12px;list-style:none}.tool-details p{font-size:12px;color:#bbc3b9;margin-top:16px}.tool-details code{font-size:11px;color:#eef0e7}@media(max-width:600px){.cad-tools{grid-template-columns:1fr;gap:15px}.automation-projects-title{flex-direction:column;gap:12px}.automation-projects{margin-top:45px}}

.blocks-download{display:block;font-size:12px;text-decoration:underline;text-underline-offset:4px;margin-top:18px}.works-intro{font-size:14px;color:var(--muted);max-width:560px;margin-bottom:35px}.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 35px}.work-card{border:1px solid #bac1b2;min-width:0}.work-preview{display:block;background:#fff;position:relative;padding:10px;overflow:hidden}.work-preview img{display:block;width:100%;height:290px;object-fit:contain;transition:transform .25s}.work-preview:hover img{transform:scale(1.025)}.work-preview>span{position:absolute;bottom:12px;right:12px;background:var(--ink);color:var(--paper);padding:6px 11px;font-size:10px}.work-body{padding:25px}.work-meta{display:flex;justify-content:space-between;gap:15px;font:9px/1.6 monospace;letter-spacing:.5px;color:var(--muted);margin-bottom:17px;text-transform:uppercase}.work-card h3,.acoustic-work h3{font-size:25px;line-height:1.2;font-weight:400;letter-spacing:-.6px;margin-bottom:15px}.work-card p,.acoustic-work p{font-size:13px;color:var(--muted);line-height:1.65}.work-links{display:flex;flex-wrap:wrap;gap:12px 20px;border-top:1px solid #bac1b2;padding-top:18px;margin-top:23px}.work-links>a{font-size:11px;text-decoration:underline;text-underline-offset:4px}.acoustic-work{display:flex;align-items:center;gap:45px;justify-content:space-between;border-top:1px solid #bac1b2;border-bottom:1px solid #bac1b2;margin-top:45px;padding:30px 0}.acoustic-work>div{max-width:650px}.acoustic-work>a{font-size:12px;white-space:nowrap;text-decoration:underline;text-underline-offset:5px}.acoustic-work p{margin-bottom:0}.resume-label{margin-top:50px;font-size:26px;font-weight:400}@media(max-width:850px){.work-preview img{height:220px}.work-body{padding:20px}}@media(max-width:600px){.works-grid{grid-template-columns:1fr;gap:25px}.work-preview img{height:230px}.work-card h3,.acoustic-work h3{font-size:23px}.acoustic-work{flex-direction:column;align-items:start;gap:15px}.materials>.section-top{flex-direction:column}.work-body{padding:20px}}

.email-copy{background:none;border:0;text-align:left;cursor:pointer}.header-mail.email-copy{border-bottom:1px solid;font-size:12px;padding:0 0 4px;white-space:nowrap}.auto-layout .email-copy{color:var(--paper);border-bottom:1px solid;padding:0 0 5px}.big-mail.email-copy{width:100%;border-bottom:1px solid var(--ink);padding-left:0;padding-right:0;font:inherit;font-size:clamp(20px,3.4vw,49px);letter-spacing:-1.2px}.copy-hint{font-size:11px}.contact-rail button:first-child{border-left:0}.work-preview{margin:0}.work-preview:hover img{transform:none}.work-preview figcaption{font-size:9px;color:var(--muted);padding:6px 2px 0;font-family:monospace;letter-spacing:.4px}.work-preview img{height:275px}.email-copy:hover{color:var(--accent)}.automation .email-copy:hover{color:#d8b29d}.toast{max-width:calc(100vw - 24px);overflow-wrap:anywhere}@media(max-width:850px){header{gap:18px}.header-mail.email-copy{font-size:10px}nav{gap:16px}h2{overflow-wrap:normal}}@media(max-width:600px){.header-mail.email-copy{display:none}.big-mail.email-copy{font-size:22px;letter-spacing:-.7px}.contact-rail{max-width:calc(100vw - 24px)}.contact-rail button,.contact-rail a{font-size:9px;padding:12px 10px}.work-preview img{height:225px}.services h3{margin-bottom:15px}}

.automation .button.cutting-button{background:#df3f2f;color:#fff;border:1px solid #ed675b}.automation .button.cutting-button:hover{background:#f14e3d;color:#fff}.personal-project .demo-note{font-size:12px;line-height:1.65;border-left:2px solid #df3f2f;padding-left:15px;color:#d4dbcf;margin-top:24px}
