@font-face{font-family:Newsreader;src:url(/fonts/newsreader-400-606d3683d4055915d04360dd53469c94.ttf?vsn=d) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-500-3d098f3fd35a64cf337602ece159ede9.ttf?vsn=d) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-400-c26dd178864e132f538f22946f4bba94.ttf?vsn=d) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-500-a165d87fb7ee4f2daf1c1d3c0dd81ee2.ttf?vsn=d) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-600-e783b4d0a9b758bd6847ef4afab958c7.ttf?vsn=d) format("truetype");font-weight:600;font-display:swap}:root{--paper:#fcfcfa;--ink:#293b34;--body:#536059;--muted:#727b72;--line:#e2e5dc;--accent:#697e5a;--orange:#d68b58;--serif:Newsreader,Georgia,serif;--sans:"DM Sans",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:wait;opacity:.5}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}::selection{background:#e8eddd}main:focus{outline:none}.portfolio-shell{max-width:1144px;margin:auto;padding:0 42px}.site-header{height:117px;display:flex;align-items:center;justify-content:space-between;gap:35px}.identity{font-family:var(--serif);font-weight:500;font-size:34px;letter-spacing:-1.6px}.identity-dot{color:var(--orange)}nav{display:flex;gap:30px;margin-left:auto}nav a{font-size:13px;color:var(--body);padding:10px 0;position:relative}nav a[aria-current=page]{color:var(--ink)}nav a[aria-current=page]:after{content:"";position:absolute;left:0;bottom:3px;width:100%;height:1px;background:var(--accent)}.header-contact{font-size:13px;border:1px solid var(--line);border-radius:30px;padding:10px 17px;display:flex;gap:18px;margin-left:15px}.header-contact:hover{background:#f0f2e9}.skip-link{position:fixed;top:-100px;background:var(--ink);color:#fff;padding:12px;z-index:100}.skip-link:focus{top:10px}.introduction{position:relative;padding-top:90px;padding-bottom:100px;max-width:100%}.location{font-size:12px;color:var(--body);display:flex;gap:9px;align-items:center;margin-bottom:28px}.location>span:first-child{width:6px;height:6px;background:#7b9068;border-radius:100%;box-shadow:0 0 0 4px #eef1e7;margin-right:4px}.location-separator{color:#b5bcb0;margin:0 5px}.introduction h1{font-size:clamp(64px,7.7vw,104px);line-height:1.08;letter-spacing:-4px}.heading-period{color:var(--orange)}.intro-lead{font-size:clamp(23px,3vw,32px);line-height:1.45;letter-spacing:-.8px;margin-top:24px;max-width:630px}.intro-description{font-size:16px;color:var(--body);line-height:1.9;max-width:565px;margin-top:25px}.intro-description a{text-decoration:underline;text-decoration-color:#bac6ab;text-underline-offset:4px}.intro-actions{display:flex;gap:36px;margin-top:32px}.text-link{font-size:13px;display:inline-flex;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:7px}.primary-link{color:var(--ink);border-color:#9da88f}.text-link:hover{border-color:var(--ink)}.intro-margin-note{position:absolute;right:8%;bottom:165px;display:flex;align-items:center;gap:16px;transform:rotate(-5deg);color:#8a8f7d;font-size:12px;line-height:1.7}.margin-spark{font-size:45px;color:#b7bea6;font-family:var(--sans)}.section-space{margin-top:30px}.section-header{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.section-kicker{font-size:12px;color:var(--muted);display:block;margin-bottom:12px}.section-header h2{font-size:33px;letter-spacing:-.7px;line-height:1.3}.quiet-link{font-size:12px;color:var(--body);display:inline-flex;gap:14px;align-items:center}.quiet-link:hover{text-decoration:underline;text-underline-offset:5px}.selected-work{padding-top:38px;border-top:1px solid var(--line)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 30px}.project-entry{display:block;min-width:0}.project-art{height:245px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;border-radius:7px;transition:transform .25s}.project-entry:hover .project-art{transform:translateY(-3px)}.lavender .project-art{background:#eeebf4}.sage .project-art{background:#e9eee4}.peach .project-art{background:#f4ebe2}.blue .project-art{background:#e9edf3}.project-description{padding-top:19px}.project-heading{display:flex;align-items:center;justify-content:space-between}.project-heading h3{font-size:18px;font-weight:500;letter-spacing:-.4px}.project-arrow{color:#8d998c;font-size:21px;transition:transform .2s}.project-entry:hover .project-arrow{transform:translate(2px,-2px)}.project-description>p{font-size:14px;color:var(--body);margin-top:7px;line-height:1.6}.project-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px;margin-top:17px}.integration-art{position:relative;width:100%;height:210px;display:flex;align-items:center;justify-content:center}.integration-center{font-weight:600;font-size:40px;letter-spacing:-2px;background:#fbfaff;padding:6px 28px;border:1px solid #fff;border-radius:10px;z-index:2;box-shadow:0 5px 20px #51416b0b}.wordmark-dot{color:#9e8bb7}.integration-node{position:absolute;background:#f9f8fc;padding:8px 15px;border:1px solid #e1dbe9;border-radius:5px;font-size:11px;color:#73677d;z-index:1}.node-top{top:9px;left:50%;transform:translate(-50%)}.node-bottom{bottom:9px;left:50%;transform:translate(-50%)}.node-left{left:6%;top:90px}.node-right{right:6%;top:90px}.connection-lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#c4b7d5;stroke-width:1;stroke-dasharray:4 5}.ask-art{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:10px}.ask-symbol{font-size:35px;line-height:1;color:#768c64}.ask-wordmark{font-size:27px;font-weight:500;letter-spacing:-1px}.sample-question{font-size:11px;color:#6e7b66;margin-top:2px}.source-stack{display:flex;gap:8px;margin-top:10px}.source-stack span{font-size:9px;color:#627059;border:1px solid #d6dfcd;border-radius:20px;padding:5px 12px}.photo-art{width:100%;height:220px;position:relative}.photo-sheet{width:145px;height:145px;background:#fff;position:absolute;top:20px;left:50%;padding:8px;box-shadow:0 6px 20px #6b503513;border:7px solid #fff;border-bottom-width:25px;border-radius:3px}.photo-back{transform:translate(-72%) rotate(-12deg);background:#e0cbbb}.photo-front{transform:translate(-29%) rotate(8deg);background:#c3cbb5;overflow:hidden}.photo-sun{background:#eed8a9;width:35px;height:35px;border-radius:50%;position:absolute;top:16px;right:16px}.photo-hill{background:#899a7d;width:200px;height:140px;position:absolute;left:-70px;top:55px;transform:rotate(-28deg);border-radius:50%}.upload-label{position:absolute;bottom:13px;left:50%;transform:translate(-50%);white-space:nowrap;font-size:10px;color:#8b725c;display:flex;gap:7px;align-items:center}.upload-dot{width:5px;height:5px;background:#91a578;border-radius:50%}.aplicar-art{display:flex;align-items:center;flex-direction:column;width:100%}.aplicar-mark{font-size:40px;letter-spacing:-2px;color:#5c6d87;font-weight:600}.aplicar-mark span{font-weight:400;font-size:27px;margin-left:8px;color:#9caec5}.journey-line{display:flex;gap:13px;align-items:center;margin-top:26px;font-size:10px;color:#6f7b8c}.journey-line i{width:25px;height:1px;background:#b4bfce}.journey-caption{font-size:10px;margin-top:18px;color:#7d8796}.simple-project-art{font-family:var(--serif);font-size:40px;letter-spacing:-1px;color:#62705f}.home-bottom{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;border-top:1px solid var(--line);padding-top:48px;margin-top:80px}.home-bottom .section-header h2{font-size:31px}.article-date,.reading-time{font-size:11px;color:var(--muted)}.article-preview{display:block}.article-preview h3{font-family:var(--serif);font-size:26px;line-height:1.3;font-weight:400;margin:14px 0 10px}.article-preview p,.currently p{font-size:14px;line-height:1.85;color:var(--body)}.reading-time{display:block;margin-top:16px}.currently{padding:8px 0}.currently h2{font-size:30px;line-height:1.25;margin:8px 0 18px}.currently .quiet-link{margin-top:20px}.inner-view{padding-top:70px;min-height:60vh}.page-heading{margin-bottom:55px}.page-heading h1{font-size:clamp(54px,6vw,78px);line-height:1.15;letter-spacing:-2.3px;margin-top:18px}.page-heading>p{font-size:18px;line-height:1.8;color:var(--body);margin-top:20px;max-width:710px}.page-heading .text-link{margin-top:26px}.filter-row{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:30px}.filter-row button{padding:7px 14px;border:1px solid transparent;font-size:12px;border-radius:20px;background:none;color:var(--body)}.filter-row button[aria-pressed=true]{border-color:#dce2d2;background:#edf0e7;color:#4d6542}.filter-count{font-size:11px;color:var(--muted);margin-left:auto}.back-link{font-size:12px;color:var(--muted);display:inline-block;margin-bottom:45px}.project-detail .page-heading{margin-bottom:30px}.project-facts{display:flex;gap:60px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;margin-bottom:50px;align-items:center}.project-facts>div{display:flex;flex-direction:column;gap:8px;font-size:13px}.project-facts>div>span{font-size:11px;color:var(--muted)}.project-facts strong{font-weight:500}.project-facts>.quiet-link{margin-left:auto}.detail-columns,.article-layout{display:grid;grid-template-columns:minmax(0,680px) minmax(180px,1fr);gap:65px}.prose{color:var(--body);font-size:16px;line-height:1.95;overflow-wrap:anywhere}.prose h2{color:var(--ink);font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.4;margin:40px 0 18px;letter-spacing:-.5px}.prose h2:first-child{margin-top:0}.prose h3{font-size:19px;font-weight:500;margin:30px 0 15px}.prose p{margin:0 0 22px}.prose ul,.prose ol{margin:12px 0 25px;padding-left:22px;list-style:disc}.prose li{padding-left:5px;margin:9px 0}.prose a{color:#526f47;text-decoration:underline;text-underline-offset:3px}.prose code{font-family:ui-monospace,monospace;font-size:.82em;padding:3px 5px;background:#eef0e8;border-radius:4px}.prose pre{padding:22px;background:#eef0e8;border:1px solid var(--line);border-radius:6px;overflow-x:auto;margin:25px 0;line-height:1.6;max-width:100%}.prose pre code{background:none;padding:0}.prose blockquote{border-left:2px solid #a8b299;padding-left:22px;font-family:var(--serif);font-size:22px;margin:25px 0}.prose img{max-width:100%;height:auto}.project-aside h3{font-size:12px;font-weight:500;margin-bottom:18px}.technology-list{display:flex;gap:7px;flex-wrap:wrap}.technology-list span{font-size:11px;border:1px solid var(--line);padding:5px 9px;border-radius:4px;color:var(--body)}.aside-note{border-top:1px solid var(--line);margin-top:33px;padding-top:25px;font-size:12px;line-height:1.8}.aside-note>span{color:var(--muted)}.aside-note button{background:none;border:0;text-align:left;padding:8px 0;color:#526f47;display:block;font-size:12px}.writing-search{position:relative;max-width:330px;margin-bottom:52px}.writing-search label{display:block;font-size:11px;color:var(--muted);margin-bottom:10px}.writing-search input{width:100%;border:none;border-bottom:1px solid var(--line);padding:10px 25px 10px 0;background:none;font-size:13px;color:var(--ink);border-radius:0}.writing-search>span{position:absolute;right:5px;bottom:6px;font-size:25px;color:var(--muted)}.archive-year{display:grid;grid-template-columns:110px 1fr;gap:30px;margin:0 0 45px}.archive-year>h2{font-size:40px;letter-spacing:-1px;padding-top:3px}.archive-entry{display:grid;grid-template-columns:70px 1fr 25px;gap:22px;padding:7px 0 27px;border-bottom:1px solid var(--line)}.archive-entry>time{font-size:12px;color:var(--muted);padding-top:5px}.archive-entry h3{font-size:21px;font-weight:400;line-height:1.4;letter-spacing:-.4px}.archive-entry p{font-size:13px;color:var(--body);line-height:1.8;margin:12px 0}.article-tags{display:flex;flex-wrap:wrap;gap:16px;font-size:10px;color:var(--muted)}.archive-arrow{font-size:21px;color:#98a28e}.archive-entry:hover h3{color:#75835e}.writing-footnote{display:flex;gap:25px;align-items:center;border-top:1px solid var(--line);padding-top:32px;margin-top:70px;font-size:13px;line-height:1.85;color:var(--body)}.writing-footnote>span{font-size:40px;color:#a7b096}.writing-footnote a{border-bottom:1px solid #b6c3a7}.empty-state{padding:35px 0}.empty-state h2{font-size:30px;margin-bottom:15px}.empty-state p{font-size:14px;color:var(--body)}.article-heading{border-bottom:1px solid var(--line);padding-bottom:35px;margin-bottom:45px}.article-heading h1{font-size:clamp(40px,5vw,63px);line-height:1.15;letter-spacing:-1.5px;max-width:870px;margin:22px 0 27px}.article-byline{display:flex;flex-wrap:wrap;gap:25px;font-size:11px;color:var(--muted)}.reading-aside{font-size:11px;line-height:1.9;padding-top:7px}.reading-aside>span{display:block;color:var(--muted)}.reading-aside>a{color:var(--ink);font-size:12px}.article-end{text-align:center;border-top:1px solid var(--line);padding-top:45px;margin-top:65px}.article-end h2{font-size:32px;margin:10px 0}.article-end p{font-size:14px;color:var(--body);margin-bottom:24px;line-height:1.8}.career-entry{display:grid;grid-template-columns:220px 1fr;gap:55px;border-top:1px solid var(--line);padding:32px 0 35px}.career-date{font-size:12px;color:var(--body);padding-top:7px}.career-date>span{display:block;color:var(--muted);font-size:11px;margin-top:10px}.career-entry h2{font-size:32px;margin-bottom:8px}.career-entry h3{font-size:15px;font-weight:400}.career-location{font-size:11px;display:block;margin-top:9px;color:var(--muted)}.career-entry ul{list-style:disc;padding-left:17px;color:var(--body);font-size:14px;line-height:1.9;margin-top:20px}.career-entry li{margin-top:7px}.education{border-top:1px solid var(--line);padding-top:35px;margin-top:20px}.education h2{font-size:30px;margin:15px 0}.education p{font-size:14px;line-height:2;color:var(--body)}.about-card{background:#f0f2e9;padding:28px 24px;align-self:start;border-radius:5px;overflow-wrap:anywhere}.about-spark{color:#8da078;font-size:40px}.about-card h2{font-size:27px;line-height:1.2;margin-top:15px}.about-card p{font-size:13px;line-height:1.8;color:var(--body);margin:15px 0 22px}.about-card>a{font-size:11px;color:#4f6743}.social-list{border-top:1px solid #dbe1d3;margin:23px 0}.social-list a{display:flex;justify-content:space-between;padding-top:15px;font-size:12px}.resume-link{display:block;margin-top:25px}.skills-section{border-top:1px solid var(--line);padding-top:40px;margin-top:65px}.skills-section>h2{font-size:33px;margin-bottom:28px}.skill-groups{display:grid;grid-template-columns:1fr 1fr;gap:30px 60px}.skill-groups h3{font-size:13px;font-weight:500;margin-bottom:10px}.skill-groups p{font-size:13px;color:var(--body);line-height:1.9}.site-footer{border-top:1px solid var(--line);margin-top:100px;padding:32px 0 48px;display:flex;align-items:start;justify-content:space-between;gap:25px;position:relative}.site-footer>div:first-child{display:flex;flex-direction:column;gap:10px}.footer-name{font-family:var(--serif);font-size:23px}.site-footer>div:first-child>span{font-size:11px;color:var(--muted)}.footer-links{display:flex;gap:23px;font-size:11px;padding-top:7px}.footer-colophon{position:absolute;bottom:17px;font-size:9px;color:var(--muted)}.companion{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:40;--voice-level:.3}.companion-launcher{display:block;width:94px;height:105px;background:none;border:0;position:relative;margin-left:auto;padding:0}.creature{display:block;width:100%;height:100%;overflow:visible}.pip-body-group{transform-origin:60px 110px}.pip-speaking-mouth{display:none;transform-origin:61px 86px}.pip-eyes{transform-origin:60px 69px}.companion-invitation{position:absolute;right:16px;bottom:103px;width:max-content;display:flex;align-items:center;background:#fffdf8;border:1px solid #e9e1d3;border-radius:13px 13px 2px;box-shadow:0 3px 16px #293b3408;padding:4px 6px 4px 13px;animation:invitation-appear .6s 2s both}.companion-invitation>button:first-child{background:none;border:0;font-size:11px;padding:7px 0}.companion-invitation>button:first-child>span{color:#c88d5c;margin-left:8px}.dismiss-invitation{padding:3px 6px;margin-left:8px;color:#929584;background:none;border:0;font-size:15px}.companion-panel{position:absolute;right:15px;bottom:113px;width:365px;background:#fffefa;border:1px solid #e0e3d8;border-radius:15px;box-shadow:0 20px 70px #2532221a;overflow:hidden;animation:panel-appear .2s ease-out}.companion-header{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;border-bottom:1px solid var(--line)}.companion-header>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pip-status-dot{width:6px;height:6px;background:#9bb47e;border-radius:50%}.companion-header strong{font-size:14px;font-weight:500}.companion-header>div>span:last-child{font-size:10px;color:var(--muted)}.companion-header>button{background:none;border:0;font-size:23px;color:var(--body);padding:0 3px}.conversation{padding:24px 21px 12px;height:300px;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth}.hello-mark{display:block;font-family:var(--serif);font-size:35px;letter-spacing:-.7px;margin:5px 0 18px}.companion-welcome p{font-size:13px;line-height:1.85;color:var(--body);margin-top:12px}.suggested-questions{display:flex;flex-direction:column;align-items:start;gap:7px;margin-top:20px}.suggested-questions button{background:#f2f4ec;border:1px solid #e4e8da;padding:8px 12px;border-radius:7px;font-size:10px;color:#536449}.conversation-message{margin-bottom:20px;font-size:13px;line-height:1.75;overflow-wrap:anywhere}.conversation-message>span{font-size:9px;color:var(--muted);display:block;margin-bottom:5px}.conversation-message.user>div{background:#eef1e7;padding:10px 13px;border-radius:10px 10px 0}.conversation-message.assistant>div{padding:3px 0}.conversation-message a{text-decoration:underline;color:#566f49;text-underline-offset:3px}.conversation-message p+p{margin-top:8px}.conversation-message ul{padding-left:17px;list-style:disc}.conversation-error{font-size:12px;background:#f7f0e4;border-radius:8px;padding:12px;line-height:1.8;color:#816b46;margin-bottom:10px}.thinking-dots{letter-spacing:5px;color:#9aab89;animation:thinking 1.2s infinite}.companion-controls{padding:14px 17px;border-top:1px solid var(--line)}.message-form{border:1px solid #e0e5d8;border-radius:9px;display:flex;align-items:center;padding:5px;background:#fff}.message-form input{width:100%;min-width:0;font-size:11px;border:0;outline:0;padding:7px;background:none}.message-form:focus-within{outline:2px solid #91a77c;outline-offset:2px}.message-form input:focus-visible{outline:none}.message-form>button{background:#6d815a;border:0;border-radius:6px;color:#fff;padding:4px 10px;font-size:19px}.companion-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.voice-button{display:flex;align-items:center;gap:6px;font-size:10px;background:none;border:0;padding:3px;color:#556d48}.voice-button svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5}.motion-button{font-size:9px;color:var(--muted);background:none;border:0;padding:4px}.microphone-note{font-size:8px;color:var(--muted);margin-top:9px;text-align:center}.voice-disclosure{font-size:9px;color:var(--muted)}.voice-controls{display:flex;gap:8px;align-items:center;font-size:11px}.voice-controls>span{margin-right:auto;color:var(--body)}.voice-controls button{border:1px solid var(--line);padding:6px 10px;border-radius:6px;background:#f7f8f2;font-size:10px}.voice-controls .end-call{color:#995e48;background:#f8ede5}.motion-on .pip-body-group{animation:pip-idle 10s 3s infinite}.motion-on .pip-eyes{animation:pip-blink 6s infinite}.motion-on .companion-launcher:hover .pip-body-group{animation:pip-wave .6s ease-in-out}.motion-on .companion-launcher:hover .right-arm{transform-origin:95px 78px;animation:arm-wave .45s ease-in-out infinite alternate}.companion[data-open=true] .pip-body-group{animation:none}.companion[data-state=listening] .pip-body-group{transform:rotate(-7deg)}.companion[data-state=thinking] .pip-body-group,.companion[data-state=connecting] .pip-body-group{transform:rotate(7deg)}.companion[data-state=speaking] .pip-smile{display:none}.companion[data-state=speaking] .pip-speaking-mouth{display:block;transform:scaleY(var(--voice-level))}.motion-off *{animation:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes pip-blink{0%,42%,46%,to{transform:scaleY(1)}44%{transform:scaleY(.1)}}@keyframes pip-idle{0%,66%,79%,to{transform:translateY(0) rotate(0)}69%{transform:translateY(2px) scaleY(.95)}72%{transform:translateY(-11px) rotate(-4deg)}75%{transform:translateY(0) scaleY(.97)}}@keyframes pip-wave{0%,to{transform:rotate(0)}50%{transform:rotate(-6deg) translateY(-3px)}}@keyframes arm-wave{to{transform:rotate(-25deg)}}@keyframes invitation-appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes thinking{50%{opacity:.4}}@media (min-width:1500px){.portfolio-shell{max-width:1210px}.introduction{padding-top:110px}.project-art{height:270px}}@media (max-width:800px){.portfolio-shell{padding:0 28px}.site-header{height:95px;gap:15px}nav{gap:20px}.header-contact{display:none}.introduction{padding-top:65px;padding-bottom:70px}.introduction h1{font-size:77px}.intro-margin-note{right:0;bottom:95px;opacity:.7}.intro-description{max-width:480px}.intro-margin-note{display:none}.home-bottom{gap:40px}.project-art{height:210px}.integration-node{font-size:9px;padding:7px 9px}.node-left{left:2%}.node-right{right:2%}.integration-center{padding:8px 17px}.detail-columns,.article-layout{gap:35px;grid-template-columns:minmax(0,1fr) 190px}.career-entry{grid-template-columns:170px 1fr;gap:30px}.archive-year{grid-template-columns:80px 1fr;gap:15px}.archive-entry{gap:15px;grid-template-columns:55px 1fr 15px}.site-footer{margin-top:70px}.footer-links{gap:15px}}@media (max-width:560px){.portfolio-shell{padding:0 23px}.site-header{height:86px}.identity{font-size:30px}nav{gap:17px}nav a{font-size:11px}.introduction{padding-top:50px;padding-bottom:61px}.location{font-size:9px;gap:6px;margin-bottom:25px}.location-separator{margin:0 3px}.introduction h1{font-size:62px;letter-spacing:-2.8px}.intro-lead{font-size:25px;line-height:1.5;margin-top:21px}.intro-description{font-size:14px;line-height:1.95;margin-top:22px}.intro-actions{margin-top:28px;gap:30px}.text-link{font-size:12px}.section-space{margin-top:15px}.selected-work{padding-top:28px}.section-header{margin-bottom:23px}.section-kicker{font-size:10px}.section-header h2{font-size:27px;letter-spacing:-.6px}.section-header>.quiet-link{font-size:10px;gap:6px;white-space:nowrap}.project-grid{grid-template-columns:1fr;gap:32px}.project-art{height:226px}.project-description{padding-top:15px}.project-heading h3{font-size:17px}.project-description>p{font-size:13px}.project-meta{margin-top:12px}.integration-node{font-size:11px;padding:8px 13px}.node-left{left:6%}.node-right{right:6%}.home-bottom{grid-template-columns:1fr;gap:40px;padding-top:30px;margin-top:50px}.currently{border-top:1px solid var(--line);padding-top:30px}.article-preview h3{font-size:27px}.inner-view{padding-top:42px}.page-heading{margin-bottom:37px}.page-heading h1{font-size:58px;margin-top:15px;letter-spacing:-1.8px}.page-heading>p{font-size:15px;line-height:1.85}.filter-row{gap:0;margin-bottom:24px}.filter-row button{font-size:11px;padding:6px 12px}.filter-count{font-size:9px}.back-link{margin-bottom:30px;font-size:11px}.project-facts{gap:25px;flex-wrap:wrap;padding:20px 0;margin-bottom:32px}.project-facts>.quiet-link{margin-left:0;width:100%;margin-top:4px}.detail-columns,.article-layout{grid-template-columns:1fr;gap:30px}.project-aside{border-top:1px solid var(--line);padding-top:25px}.prose{font-size:15px;line-height:1.95}.prose h2{font-size:27px}.reading-aside{border-top:1px solid var(--line);padding-top:22px}.reading-aside .aside-note{margin-top:20px;padding-top:20px}.article-heading h1{font-size:40px;line-height:1.15;letter-spacing:-.8px}.article-byline{gap:14px;font-size:9px}.article-tags{font-size:9px;gap:13px}.article-heading{padding-bottom:25px;margin-bottom:30px}.article-end{margin-top:40px;padding-top:30px}.archive-year{grid-template-columns:1fr;gap:20px}.archive-year>h2{font-size:35px}.archive-entry{grid-template-columns:50px 1fr 13px;gap:12px}.archive-entry h3{font-size:18px;line-height:1.5}.archive-entry>time{font-size:10px}.archive-entry p{font-size:12px}.writing-search{margin-bottom:35px}.writing-footnote{margin-top:45px;font-size:12px}.career-entry{grid-template-columns:1fr;gap:15px;padding-top:25px;padding-bottom:30px}.career-date{display:flex;justify-content:space-between;font-size:11px}.career-date>span{margin:0;font-size:10px}.career-entry h2{font-size:31px}.career-entry ul{font-size:13px;margin-top:16px}.education h2{font-size:27px}.education p{font-size:12px}.about-card{padding:24px}.about-card>a{font-size:12px}.skill-groups{grid-template-columns:1fr;gap:25px}.skills-section{margin-top:40px}.site-footer{margin-top:55px;padding-bottom:75px;flex-direction:column;gap:22px}.footer-links{gap:23px;font-size:10px}.footer-colophon{bottom:36px;font-size:8px}.companion{right:12px;bottom:max(8px,env(safe-area-inset-bottom))}.companion-launcher{width:78px;height:88px}.companion-invitation{right:83px;bottom:20px;border-radius:13px 13px 13px 2px}.companion-panel{right:0;bottom:92px;width:min(365px,calc(100vw - 24px));border-radius:13px}.conversation{height:min(290px,calc(100dvh - 350px));min-height:130px}.companion-header{padding:16px 18px}.companion-welcome p{font-size:12px}.companion-controls{padding:12px 14px}.message-form input{font-size:12px}.voice-button{font-size:11px}.motion-button{font-size:10px}.microphone-note{font-size:9px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.companion-invitation{opacity:1}}nav a{min-height:44px;display:flex;align-items:center}.voice-button,.motion-button,.companion-header>button{min-height:32px}.dismiss-invitation{min-width:28px;min-height:28px}.companion.page-hidden *{animation-play-state:paused!important}
