body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Google Sans,Roboto,Arial,sans-serif;margin:0}:root{--ink:#000;--text:#202124;--text-dim:#5f6368;--border:#e8eaed;--hover:#f1f3f4;--bg:#fff;--tile:#fff}*{box-sizing:border-box}body{background-color:#fff;background-color:var(--bg);color:#202124;color:var(--text);font-size:1.0625rem;line-height:1.6;transition:background-color .2s ease}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid #000;outline:2px solid var(--ink);outline-offset:2px}img{display:block}.page{display:flex;flex-direction:column;margin:0 auto;max-width:720px;min-height:100vh;padding:0 24px}main{flex:1 1}.top{align-items:center;display:flex;font-size:.9375rem;gap:16px;justify-content:space-between;padding:24px 0}.top-name{color:#000;color:var(--ink);font-weight:500;text-decoration:none}.top nav{display:flex;gap:24px}.top nav a{color:#5f6368;color:var(--text-dim);text-decoration:none}.top nav a:hover,.welcome{color:#000;color:var(--ink)}.welcome{font-size:clamp(4.5rem,19vw,8.5rem);font-weight:400;letter-spacing:-.03em;line-height:1.1;margin:56px 0 0}.now{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;padding:40px 0 32px}.now-card{border:1px solid #e8eaed;border:1px solid var(--border);border-radius:20px;display:flex;flex-direction:column;padding:20px;text-decoration:none}.now-card:hover{background-color:#f1f3f4;background-color:var(--hover)}.now-card-top{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px}.now-card-top img{height:48px;object-fit:contain;width:48px}.now-detail,.now-label{color:#5f6368;color:var(--text-dim);font-size:.9375rem}.now-org{color:#000;color:var(--ink);font-size:1.5rem;line-height:1.3}.intro{margin:0 0 72px;max-width:34em}.group{margin-bottom:56px}.group h2{color:#000;color:var(--ink);font-size:1.375rem;font-weight:400;margin:0 0 16px}.row{align-items:center;border-radius:16px;display:flex;gap:20px;margin:0 -16px;padding:16px;text-decoration:none}.row:hover{background-color:#f1f3f4;background-color:var(--hover)}.row-logo{background-color:#fff;background-color:var(--bg);border-radius:12px;flex:none;height:56px;padding:2px;width:56px}.row-logo img{height:100%;object-fit:contain;width:100%}.row-body{flex:1 1;min-width:0}.row-meta,.row-summary,.row-title{display:block}.row-title{color:#000;color:var(--ink);font-weight:500}.row-meta{color:#5f6368;color:var(--text-dim);font-size:.9375rem}.row-summary{margin-top:4px}.chevron{fill:#5f6368;fill:var(--text-dim);flex:none;height:24px;width:24px}.plain{margin:0 0 20px}.plain a{color:#000;color:var(--ink);font-weight:500;text-underline-offset:3px}.story{font-size:1.125rem;line-height:1.65;max-width:34em;padding:32px 0 72px}.story-nav{gap:16px;justify-content:space-between;margin-bottom:56px}.story-nav,.technical-cta{align-items:center;display:flex}.technical-cta{gap:6px}.technical-arrows{color:#000;color:var(--ink);display:flex}.technical-arrows svg{fill:currentColor;-webkit-animation:technical-arrow 1.2s ease-in-out calc(var(--i)*.15s) 8;animation:technical-arrow 1.2s ease-in-out calc(var(--i)*.15s) 8;height:24px;margin-left:-10px;width:24px}@-webkit-keyframes technical-arrow{0%,to{opacity:.3;-webkit-transform:translateX(0);transform:translateX(0)}50%{opacity:1;-webkit-transform:translateX(4px);transform:translateX(4px)}}@keyframes technical-arrow{0%,to{opacity:.3;-webkit-transform:translateX(0);transform:translateX(0)}50%{opacity:1;-webkit-transform:translateX(4px);transform:translateX(4px)}}.technical-link{background-color:#000;background-color:var(--ink);border:0;border-radius:999px;color:#fff;color:var(--bg);cursor:pointer;font:inherit;font-size:1.0625rem;font-weight:500;line-height:1.3;padding:12px 24px;white-space:nowrap}.technical-link:hover{opacity:.88}.back{align-items:center;color:#5f6368;color:var(--text-dim);display:inline-flex;font-size:.9375rem;gap:8px;text-decoration:none}.back:hover{color:#000;color:var(--ink)}.back svg{fill:currentColor;height:18px;width:18px}.story-logo{background-color:#fff;background-color:var(--tile);border-radius:16px;height:72px;margin-bottom:20px;object-fit:contain;padding:8px;width:72px}.story-title{color:#000;color:var(--ink);font-size:clamp(2.5rem,7vw,3.25rem);font-weight:400;letter-spacing:-.02em;line-height:1.15;margin:0}.story-title:focus{outline:none}.story-meta{color:#5f6368;color:var(--text-dim);font-size:1rem;margin:12px 0 0}.story h2{color:#000;color:var(--ink);font-size:1.375rem;font-weight:500;line-height:1.3;margin:48px 0 12px}.story p{margin-bottom:16px}.story-meta+section>p:first-child{margin-top:40px}.story ul{margin:0 0 16px;padding-left:1.25em}.story li{margin-bottom:10px}.story p.story-stack{color:#5f6368;color:var(--text-dim);font-size:1rem;margin:48px 0 0}.technical{border-top:1px solid #5f6368;border-top:1px solid var(--text-dim);margin-top:64px;padding-top:8px}.story .technical h2{font-size:clamp(1.75rem,5vw,2.25rem);font-weight:400;scroll-margin-top:24px}.technical h2:focus{outline:none}.flow{--gap:56px;font-size:.9375rem;line-height:1.3;margin:24px 0 32px}.flow-row{align-items:center;display:grid;grid-template-columns:1fr var(--gap) 1fr}.flow>.flow-row{padding:0 17px}.flow-node{border:1px solid #5f6368;border:1px solid var(--text-dim);border-radius:12px;grid-column:span 1;padding:12px 14px}.flow-link+.flow-node{grid-column:3}.flow-node span,.flow-node strong{display:block}.flow-node strong{font-weight:500}.flow-node span{color:#5f6368;color:var(--text-dim);font-size:.8125rem;margin-top:2px}.flow-node-agent{background-color:#000;background-color:var(--ink);border-color:#000;border-color:var(--ink)}.flow-node-agent,.flow-node-agent span{color:#fff;color:var(--bg)}.flow-node-step{border-color:#000;border-color:var(--ink)}.flow-spine{height:36px;position:relative}.flow-spine:before{background-color:#5f6368;background-color:var(--text-dim);bottom:7px;content:"";left:calc(50% - 1px);position:absolute;top:0;width:2px}.flow-spine:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #5f6368;border-top:8px solid var(--text-dim);bottom:0;content:"";left:calc(50% - 6px);position:absolute}.flow-spine span{color:#000;color:var(--ink);font-size:.8125rem;font-weight:500;left:calc(50% + 12px);position:absolute;top:7px;white-space:nowrap}.flow-link{background-color:#5f6368;background-color:var(--text-dim);height:2px;margin:0 3px;position:relative}.flow-link:after{border-bottom:6px solid transparent;border-top:6px solid transparent;content:"";position:absolute;top:-5px}.flow-link-right:after{border-left:8px solid #5f6368;border-left:8px solid var(--text-dim);right:-1px}.flow-link-left:after{border-right:8px solid #5f6368;border-right:8px solid var(--text-dim);left:-1px}.flow-system{border:1px solid #5f6368;border:1px solid var(--text-dim);border-radius:20px;padding:16px}.flow-system-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:2px 12px;justify-content:space-between;margin-bottom:14px}.flow-system-header strong{color:#000;color:var(--ink);font-size:1.125rem;font-weight:500}.flow-system-header span{color:#5f6368;color:var(--text-dim);font-size:.8125rem}.preview{background-color:#fff;border-radius:16px;color:#000;display:block;margin-top:32px;overflow:hidden;text-decoration:none}.preview img{height:auto;width:100%}.preview-body{display:block;padding:16px 20px 20px}.preview-description,.preview-site,.preview-title{display:block}.preview-title{font-weight:500}.preview-description{font-size:1rem;line-height:1.5;margin-top:4px}.preview-site{color:#5f6368;font-size:.9375rem;margin-top:8px}.preview:hover .preview-title{text-decoration:underline}.resume-embed{aspect-ratio:8.5/11;border:1px solid #e8eaed;border:1px solid var(--border);border-radius:8px;display:block;width:100%}.resume-open{display:inline-block;margin-top:12px;text-underline-offset:3px}.footer,.resume-open{color:#5f6368;color:var(--text-dim);font-size:.9375rem}.footer{padding:24px 0 40px}.footer a{text-underline-offset:3px}@media (prefers-reduced-motion:reduce){body{transition:none}.technical-arrows svg{-webkit-animation:none;animation:none}}@media (max-width:560px){.top{flex-wrap:wrap;font-size:.875rem;gap:4px 16px}.top-name{white-space:nowrap}.top nav{gap:16px}.welcome{margin-top:32px}.technical-link{font-size:1rem;padding:10px 18px}.flow{--gap:20px}.story .flow-node{padding:10px}.flow-system{padding:12px}.flow>.flow-row{padding:0 13px}.now{gap:12px;grid-template-columns:1fr;padding-top:32px}.row{align-items:flex-start;gap:14px}.row-logo{height:44px;padding:0;width:44px}}
/*# sourceMappingURL=main.eb88fe9e.css.map*/