body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.blog-page{min-height:100vh;display:flex;flex-direction:column;background:#f7f3eb;color:#1c1917;font-family:Georgia,Iowan Old Style,Palatino Linotype,Palatino,serif;text-align:left}.blog-page header.blog-header{position:static;width:auto;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid #e7e0d4;background:#f7f3eb}.blog-header-inner,.blog-footer-inner,.blog-main{width:min(44rem,calc(100% - 2.5rem));margin:0 auto}.blog-page--wide .blog-header-inner,.blog-page--wide .blog-footer-inner{width:min(72rem,calc(100% - 2.5rem))}.blog-header-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem 0 1.25rem}.blog-brand{display:flex;align-items:flex-start;gap:.8rem;min-width:0}.blog-logo-link{flex-shrink:0;line-height:0}.blog-logo{display:block;width:3.25rem;height:3.25rem;object-fit:contain}.blog-brand-text{min-width:0}.blog-title{display:inline-block;font-size:1.65rem;font-weight:700;color:#1c1917;text-decoration:none;letter-spacing:-.02em;line-height:1.15;white-space:pre-line}.blog-title:hover{text-decoration:underline}.blog-tagline{margin:.35rem 0 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.875rem;color:#57534e;line-height:1.4;white-space:pre-line}.blog-nav{display:flex;gap:1.15rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.875rem;padding-top:.4rem}.blog-nav a{color:#44403c;text-decoration:none}.blog-nav a:hover{color:#1c1917;text-decoration:underline}.blog-nav a.active{color:#1c1917;font-weight:600}.blog-main{flex:1;padding:2.25rem 0 3rem}.blog-index-heading{font-size:.75rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#78716c;margin:0 0 1.5rem;font-weight:600}.blog-article-list{list-style:none;margin:0;padding:0}.blog-article-list li+li{margin-top:.35rem}.blog-article-card{display:flex;align-items:center;gap:1rem;padding:1.15rem 0 1.25rem;border-bottom:1px solid #e7e0d4;color:inherit;text-decoration:none}.blog-article-thumb{flex:0 0 4.5rem;width:4.5rem;height:4.5rem;object-fit:cover;border-radius:8px;background:#e7e0d4}.blog-article-copy{min-width:0;flex:1}.blog-article-card time{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.8rem;color:#78716c}.blog-article-card h2{font-size:1.55rem;line-height:1.25;margin:.3rem 0 .45rem;font-weight:700}.blog-article-card p{margin:0;font-size:1.02rem;color:#44403c;line-height:1.55}.blog-article-card:hover h2{text-decoration:underline}.blog-status{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#57534e}.blog-back{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.875rem}.blog-article-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .75rem}.blog-download{position:relative}.blog-download-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #1c1917;border-radius:999px;background:#1c1917;color:#fafaf9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.8rem;font-weight:600;padding:.4rem .9rem;cursor:pointer}.blog-download-btn:hover{background:#44403c}.blog-download-menu{display:none;position:absolute;right:0;top:calc(100% + .35rem);min-width:14rem;margin:0;padding:.35rem;list-style:none;border-radius:.75rem;background:#1c1917;box-shadow:0 12px 28px -16px #1c1917b3;z-index:5}.blog-download.is-open .blog-download-menu{display:block}.blog-download-menu button{display:block;width:100%;padding:.5rem .65rem;border:0;border-radius:.5rem;background:transparent;color:#fafaf9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.8rem;text-align:left;cursor:pointer}.blog-download-menu button:hover,.blog-download-menu button:focus-visible{background:#ffffff1f}.blog-back a{color:#57534e;text-decoration:none}.blog-back a:hover{color:#1c1917;text-decoration:underline}.article-frame{display:block;width:100%;border:0;background:transparent;overflow:hidden}.blog-main.blog-article-page--full-bleed{width:100%;max-width:none;padding-left:0;padding-right:0}.blog-article-page--full-bleed .blog-article-toolbar,.blog-article-page--full-bleed .blog-slot{width:min(44rem,calc(100% - 2.5rem));margin-left:auto;margin-right:auto}.blog-article-page--full-bleed .article-frame--full-bleed{width:100%;background:#060a0f}.blog-slot{margin-top:1.75rem;padding:1.2rem 1.25rem;border:1px dashed #d6d3d1;border-radius:10px;background:#ffffff73}.blog-slot h2{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#78716c;margin:0 0 .4rem;font-weight:600}.blog-slot p{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.925rem;color:#57534e;line-height:1.5}.blog-footer{border-top:1px solid #e7e0d4;padding:1.35rem 0 1.75rem}.blog-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.blog-social{display:flex;align-items:center;gap:.7rem}.blog-social-link{display:inline-flex;align-items:center;justify-content:center;width:2.45rem;height:2.45rem;border-radius:999px;color:#fff;text-decoration:none;box-shadow:0 6px 14px -8px #1c1917a6;transition:transform .18s ease,filter .18s ease;position:relative}.blog-social-link svg{width:1.15rem;height:1.15rem;display:block}.blog-social-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.blog-social-link--linktree{background:#43e660;color:#0d1f12}.blog-social-link--linkedin{background:#0a66c2}.blog-social-link--substack{background:#ff6719}.blog-social-link--producthunt{background:#da552f}.blog-social-link:hover{transform:translateY(-2px);filter:brightness(1.08);text-decoration:none}.blog-subscribe-later{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.8rem;color:#a8a29e}@media (max-width: 640px){.blog-header-inner{flex-direction:column;gap:.75rem}.blog-index-heading{margin-top:.25rem}}.download-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:1.25rem;background:#1c191785}.download-gate-card{width:min(24rem,100%);padding:1.35rem 1.4rem 1.25rem;border-radius:1rem;background:#f7f3eb;color:#1c1917;box-shadow:0 24px 50px -28px #1c1917cc;text-align:left}.download-gate-card h2{margin:0 0 .45rem;font-size:1.25rem}.download-gate-card p{margin:0 0 .9rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.875rem;color:#57534e;line-height:1.45}.download-gate-card label{display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#78716c;margin-bottom:.35rem}.download-gate-card input{width:100%;padding:.55rem .7rem;border:1px solid #d6d3d1;border-radius:.55rem;background:#fff;font-size:1rem}.download-gate-error{margin:.55rem 0 0!important;color:#b42318!important}.download-gate-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:1rem}.download-gate-cancel,.download-gate-submit{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:999px;padding:.4rem .95rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer}.download-gate-cancel{border:0;background:transparent;color:#57534e}.download-gate-submit{border:0;background:#1c1917;color:#fafaf9}.download-gate-submit:disabled{opacity:.6;cursor:wait}.portfolio-main{width:min(72rem,calc(100% - 2.5rem));margin:0 auto;flex:1;padding:2.25rem 0 3.5rem}.portfolio-intro{margin-bottom:1.85rem;max-width:38rem}.portfolio-intro .blog-index-heading{margin-bottom:.55rem}.portfolio-intro p{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.975rem;color:#57534e;line-height:1.55}.portfolio-warning{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.85rem;color:#78716c;margin:0 0 1.25rem}.portfolio-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(18.75rem,1fr));gap:1.35rem}.project-tile{position:relative;isolation:isolate;aspect-ratio:4 / 5;min-height:20rem;border-radius:1.5rem;overflow:hidden;background:#1c1917;box-shadow:0 1px #fff6 inset,0 18px 40px -28px #1c19178c;transform:translateY(0);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s ease}.project-tile:hover,.project-tile:focus-within{transform:translateY(-6px);box-shadow:0 1px #ffffff80 inset,0 28px 50px -24px #1c191799}.project-tile-media{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.project-tile-still,.project-tile-placeholder,.project-tile-gif{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.project-tile-placeholder{display:grid;place-items:center;color:#ffffffe0;font-family:Georgia,Iowan Old Style,Palatino,serif;font-size:4.5rem;letter-spacing:-.04em}.project-tile-gif{opacity:0;transition:opacity .35s ease}.project-tile-gif.is-on{opacity:1}.project-tile-kenburns{transform:scale(1.04);transition:transform 4.5s ease}.project-tile:hover .project-tile-kenburns,.project-tile:focus-within .project-tile-kenburns{transform:scale(1.12)}.project-tile-scrim{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.15rem 1.15rem 1.05rem;background:linear-gradient(180deg,#1c191700 28%,#1c19178c 62%,#1c1917e0);z-index:1}.project-tile-copy h2{margin:0 0 .35rem;color:#fafaf9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.2rem;font-weight:650;letter-spacing:-.02em;line-height:1.25;text-shadow:0 1px 12px rgba(0,0,0,.35)}.project-tile-copy p{margin:0;color:#fafaf9db;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.85rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-tile-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.9rem}.project-tile-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;padding:.3rem .75rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#ffffff29;color:#fafaf9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.01em;text-decoration:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.project-tile-btn:hover,.project-tile-btn:focus-visible{background:#ffffff4d;border-color:#ffffff73;color:#fff}.project-download{position:relative}.project-download-menu{position:absolute;left:0;bottom:calc(100% + .4rem);min-width:11.5rem;margin:0;padding:.35rem;list-style:none;border-radius:.9rem;background:#1c1917eb;border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 30px -16px #000000b3;opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;z-index:2}.project-download:hover .project-download-menu,.project-download:focus-within .project-download-menu,.project-download.is-open .project-download-menu{opacity:1;pointer-events:auto;transform:translateY(0)}.project-download-menu a,.project-download-menu button{display:block;width:100%;padding:.45rem .65rem;border:0;border-radius:.6rem;background:transparent;color:#fafaf9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.8rem;text-align:left;text-decoration:none;cursor:pointer}.project-download-menu a:hover,.project-download-menu a:focus-visible,.project-download-menu button:hover,.project-download-menu button:focus-visible{background:#ffffff1f}@media (max-width: 640px){.project-tile{aspect-ratio:3 / 4}}@media (prefers-reduced-motion: reduce){.project-tile,.project-tile-kenburns,.project-tile-gif,.project-download-menu{transition:none}.project-tile:hover,.project-tile:focus-within{transform:none}.project-tile-kenburns,.project-tile:hover .project-tile-kenburns{transform:none}}
