:root{--bg:#fbfcfc;--surface:#f2f6f6;--ink:#172325;--ink-soft:#33474a;--muted:#5b6b6e;--border:#e0e7e7;--accent:#0f766e;--accent-strong:#0b5953;--accent-wash:#e3f2f0;--warn:#8a5a00;--warn-wash:#fdf3dc;--type-writing:#8f5310;--type-writing-wash:#fbf0e1;--type-project:#a3345c;--type-project-wash:#fbeaf0;--type-technical:#4152ad;--type-technical-wash:#e9ecf8;--chat-bg:#141b1c;--chat-note:#9fb0b2;color-scheme:light;--measure:46rem;--measure-wide:72rem;--radius:6px;--step--3:.7rem;--step--2:.8rem;--step--1:.95rem;--step-0:1.125rem;--step-1:1.5rem;--step-2:2rem;--step-4:clamp(2.2rem, 1.7rem + 2.2vw, 2.75rem)}:root[data-theme=dark]{--bg:#0f1617;--surface:#172123;--ink:#e3ebeb;--ink-soft:#c2cfd0;--muted:#8b9c9e;--border:#263436;--accent:#4cc2b3;--accent-strong:#7fd9cc;--accent-wash:#143230;--warn:#e2b45e;--warn-wash:#33290f;--type-writing:#e6b46a;--type-writing-wash:#33260f;--type-project:#ee93b3;--type-project-wash:#3a1b27;--type-technical:#a3b0f2;--type-technical-wash:#1d2442;--chat-bg:#070b0b;--chat-note:#8b9c9e;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1617;--surface:#172123;--ink:#e3ebeb;--ink-soft:#c2cfd0;--muted:#8b9c9e;--border:#263436;--accent:#4cc2b3;--accent-strong:#7fd9cc;--accent-wash:#143230;--warn:#e2b45e;--warn-wash:#33290f;--type-writing:#e6b46a;--type-writing-wash:#33260f;--type-project:#ee93b3;--type-project-wash:#3a1b27;--type-technical:#a3b0f2;--type-technical-wash:#1d2442;--chat-bg:#070b0b;--chat-note:#8b9c9e;color-scheme:dark}}[data-type=writing],[data-filter=writing]{--type:var(--type-writing);--type-wash:var(--type-writing-wash)}[data-type=project],[data-filter=project]{--type:var(--type-project);--type-wash:var(--type-project-wash)}[data-type=technical],[data-filter=technical]{--type:var(--type-technical);--type-wash:var(--type-technical-wash)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-serif);font-size:var(--step-0);overflow-wrap:break-word;flex-direction:column;min-height:100vh;margin:0;line-height:1.7;display:flex}::selection{background:var(--accent-wash);color:var(--accent-strong)}.wrap{width:100%;max-width:var(--measure);margin-inline:auto;padding-inline:1.25rem}main.wrap{flex:1;padding-block:3rem 4.5rem}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);transition:color .15s,text-decoration-color .15s}a:hover{color:var(--accent-strong);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}h1,h2,h3,h4{font-family:var(--font-serif);letter-spacing:-.005em;text-wrap:balance;color:var(--ink);font-weight:700;line-height:1.2}h1{font-size:var(--step-4);letter-spacing:-.012em;margin:0}.site-header{font-family:var(--font-serif)}.site-header nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding-block:1.1rem;display:flex}.site-title{color:var(--ink);letter-spacing:-.01em;font-weight:700;text-decoration:none}.site-title:before{content:"";background:var(--accent);vertical-align:.05em;border-radius:2px;width:.5em;height:.5em;margin-right:.5em;display:inline-block}.site-title:hover{color:var(--ink)}.nav-links{font-size:var(--step--1);gap:1.25rem;display:flex}.nav-links a{color:var(--muted);text-decoration:none}.nav-links a:hover,.nav-links a.active{color:var(--ink)}.theme-toggle{width:2rem;height:2rem;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:50%;align-self:center;place-items:center;margin:-.4rem calc(9px - 1rem) -.4rem 0;padding:0;display:grid}.theme-toggle:hover{color:var(--accent-strong);background:var(--surface)}.theme-toggle .icon-sun,:root[data-theme=dark] .theme-toggle .icon-moon{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}.nav-links a.active{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.45em;text-decoration-thickness:2px}.site-footer{border-top:1px solid var(--border);font-family:var(--font-serif);font-size:var(--step--1);color:var(--muted)}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding-block:1.75rem;display:flex}.site-footer a{color:var(--muted)}.footer-links{gap:1.25rem;display:flex}.intro{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:2rem}.intro h1{font-size:var(--step-4)}.intro-lede{font-size:var(--step-0);color:var(--ink-soft);margin:.75rem 0 0;line-height:1.55}.intro-photo{object-fit:cover;border:4px solid var(--bg);width:11rem;height:11rem;box-shadow:0 0 0 1px var(--border);border-radius:50%;margin:0 auto 1.5rem;display:block}.intro-greeting{flex-wrap:wrap;align-items:baseline;gap:.25rem 1.25rem;margin-bottom:1rem;display:flex}.intro-urdu{font-family:var(--font-urdu);margin-left:auto;font-size:.65em;font-weight:700;line-height:1.9}.intro-name{color:var(--accent)}.section-label,.eyebrow{font-family:var(--font-mono);font-size:var(--step--3);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .75rem;font-weight:500}.post-list{margin:0;padding:0;list-style:none;display:grid}.post-row{border-top:1px solid var(--border);grid-template-columns:6rem minmax(0,1fr) auto;align-items:baseline;gap:0 1rem;padding-block:.75rem;display:grid}.post-row:first-child{border-top:none;padding-top:.25rem}.post-row time,.post-row-time{font-family:var(--font-mono);font-size:var(--step--2);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.75rem;display:flex}.list-head .section-label{margin:0}.type-filter{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.type-filter button{white-space:nowrap;border:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);font-size:var(--step--3);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.35em;padding:.2rem .65rem;transition:border-color .2s;display:inline-flex}.type-filter .count{opacity:.6}.type-filter button:hover{color:var(--ink);border-color:var(--muted)}.type-filter button[aria-pressed=true]{background:var(--type-wash,var(--accent-wash));border-color:var(--type,var(--accent));color:var(--type,var(--accent-strong))}.post-row[hidden]{display:none}.post-row-meta{flex-direction:column;gap:.15rem;display:flex}.post-row-type{background:var(--type-wash,var(--accent-wash));font-family:var(--font-mono);font-size:var(--step--3);text-transform:uppercase;letter-spacing:.08em;color:var(--type,var(--accent));border-radius:4px;align-self:flex-start;padding:.05rem .4rem}.post-type{color:var(--type,var(--accent));margin-bottom:.6rem}.repo-link{border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);font-family:var(--font-mono);font-size:var(--step--2);align-items:center;gap:.45rem;padding:.4rem .85rem;text-decoration:none;display:inline-flex}.repo-link:hover{border-color:var(--accent);color:var(--accent-strong)}.hint{cursor:help;text-decoration:underline dotted;text-decoration-color:var(--border);text-underline-offset:.25em;position:relative}.hint:after{content:attr(data-hint);border-radius:var(--radius);background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:var(--step--3);white-space:nowrap;visibility:hidden;opacity:0;pointer-events:none;padding:.3rem .55rem;transition:opacity .15s;position:absolute;bottom:calc(100% + .4rem);left:0}.post-row-time.hint:after{left:auto;right:0}.hint:hover:after,.hint:focus:after{visibility:visible;opacity:1}.post-row-title{font-family:var(--font-serif);font-size:var(--step-1);color:var(--ink);font-weight:650;line-height:1.3;text-decoration:none}.post-row-title:hover{color:var(--accent)}.post-row-desc{font-size:var(--step--1);color:var(--muted);margin:.15rem 0 0;line-height:1.5}@media (width<=34rem){.post-row{grid-template-columns:minmax(0,1fr) auto}.post-row-meta{flex-direction:row;grid-column:1/-1;gap:.75rem}.post-row-body{grid-column:1}}.page-header,.post-header{margin-bottom:2rem}.page-header .eyebrow{margin-bottom:.5rem}.page-header-meta{font-family:var(--font-serif);font-size:var(--step--1);color:var(--muted);margin:.75rem 0 0}.post-dek{font-size:var(--step-1);color:var(--muted);text-wrap:pretty;margin:.6rem 0 0;line-height:1.45}.byline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-top:1.5rem;display:flex}.byline-author{align-items:center;gap:.7rem;display:flex}.byline-author p{margin:0;line-height:1.3}.avatar{object-fit:cover;border-radius:50%;width:2.25rem;height:2.25rem;display:block}.byline-name{font-size:var(--step--1);font-weight:650}.byline-meta{font-family:var(--font-mono);font-size:var(--step--2);color:var(--muted);font-variant-numeric:tabular-nums}.prose :is(h2,h3,h4){scroll-margin-top:1.5rem}.tags{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tags a{background:var(--accent-wash);color:var(--accent-strong);font-family:var(--font-mono);font-size:var(--step--3);border-radius:999px;padding:.1rem .5rem;text-decoration:none;display:inline-block}.tags a:hover{background:var(--accent);color:var(--bg)}.draft-banner,.draft-label{border-radius:var(--radius);background:var(--warn-wash);color:var(--warn);font-family:var(--font-mono);font-size:var(--step--3);text-transform:uppercase;letter-spacing:.06em;padding:.1rem .5rem;font-weight:500;display:inline-block}.draft-banner{margin:0 0 1rem}.draft-label{vertical-align:.2em;font-size:var(--step--3);margin-left:.5rem}.hero{--hero-width:min(64rem, 100vw - 2.5rem);width:var(--hero-width);margin:-1rem 0 2.5rem calc((100% - var(--hero-width)) / 2);aspect-ratio:8/3;background:var(--surface);border-radius:16px;overflow:hidden}.hero img{object-fit:cover;width:100%;height:100%;display:block}@media (width<=34rem){.hero{aspect-ratio:16/9;border-radius:10px}}.photo-grid{--grid-width:min(64rem, 100vw - 2.5rem);width:var(--grid-width);margin-left:calc((100% - var(--grid-width)) / 2);columns:3;column-gap:.75rem}.photo{break-inside:avoid;background:var(--surface);border-radius:10px;margin-bottom:.75rem;display:block;overflow:hidden}.photo img{width:100%;height:auto;transition:opacity .2s;display:block}.photo:hover img{opacity:.85}@media (width<=66rem){.photo-grid{columns:2}}@media (width<=34rem){.photo-grid{columns:1}}.post-footer{border-top:1px solid var(--border);font-size:var(--step--1);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:4rem;padding-top:1.5rem;display:flex}.prose>*{margin-block:0}.prose>*+*{margin-top:1.25em}.prose h2{font-size:var(--step-2);margin-top:2.2em}.prose h3{font-size:var(--step-1);margin-top:1.8em}.prose h4{font-size:var(--step-0);margin-top:1.6em}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.6em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--muted)}.prose strong,.prose b{color:var(--accent);font-weight:650}.prose img{border-radius:var(--radius);max-width:100%;height:auto;margin-inline:auto;display:block}.prose blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin-inline:0;padding:.1em 0 .1em 1.25em;font-style:italic}.prose blockquote>*+*{margin-top:.75em}.prose .disclaimer{background:var(--accent-wash);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;font-size:var(--step--1);color:var(--ink-soft);margin:0 0 2.5em;padding:.9em 1.1em;line-height:1.5}.prose .disclaimer>p{margin:0}.prose .chat{background:var(--chat-bg);border-radius:var(--radius);flex-direction:column;gap:.45rem;padding:1.1rem;display:flex}.prose .chat>p{max-width:85%;font-size:var(--step-0);border-radius:12px;margin:0;padding:.5em .85em;line-height:1.45}.prose .chat>.me{background:var(--accent-wash);color:var(--ink);border-bottom-right-radius:3px;align-self:flex-end}.prose .chat>.claude{background:var(--bg);border:1px solid var(--border);color:var(--ink-soft);border-bottom-left-radius:3px;align-self:flex-start}.prose .chat>.me:not(.me+.me):before,.prose .chat>.claude:not(.claude+.claude):before{font-family:var(--font-mono);font-size:var(--step--3);letter-spacing:.04em;color:var(--muted);margin-bottom:.15em;display:block}.prose .chat>.me:not(.me+.me):before{content:"Me";text-align:right}.prose .chat>.claude:not(.claude+.claude):before{content:"Claude"}.prose .chat>.note{max-width:none;font-size:var(--step--1);color:var(--chat-note);text-align:center;align-items:center;gap:.9em;padding-block:.3em;font-style:italic;display:flex}.prose .chat>.note:before,.prose .chat>.note:after{content:"";opacity:.4;border-top:1px solid;flex:1;min-width:1.5em}.prose .chat code{overflow-wrap:anywhere;font-size:.85em}.prose .loop{font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent-strong);text-align:center}.prose .disclaimer>p:first-child{font-family:var(--font-mono);font-size:var(--step--3);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-strong);margin-bottom:.35em;font-weight:600}.prose hr{border:none;border-top:1px solid var(--border);margin-block:2.5em}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:4px;padding:.12em .35em;font-size:.84em}.prose pre{font-family:var(--font-mono);font-size:var(--step--2);border-radius:var(--radius);border:1px solid var(--border);tab-size:4;padding:1rem 1.15rem;line-height:1.6;overflow-x:auto;background-color:var(--surface)!important}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important}}.prose pre code{font-family:inherit}.prose table{border-collapse:collapse;max-width:100%;font-family:var(--font-serif);font-size:var(--step--1);font-variant-numeric:tabular-nums;line-height:1.45;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.5em .9em .5em 0}.prose th{color:var(--ink);border-bottom-color:var(--ink-soft);white-space:nowrap;font-weight:600}.prose .footnotes{border-top:1px solid var(--border);font-size:var(--step--1);color:var(--muted);margin-top:3rem;padding-top:1.5rem}.prose .footnotes h2{font-size:var(--step--1);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}.prose sup a{font-family:var(--font-mono);font-size:.8em;text-decoration:none}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.tinker-section+.tinker-section{margin-top:2.75rem}.tinker-heading{border-bottom:1px solid var(--accent);font-size:var(--step-2);color:var(--accent);margin:0;padding-bottom:.5rem;font-weight:700;line-height:1.25}.tinker-list{margin:0;padding:0;list-style:none}.tinker-row{border-top:1px dashed var(--border);grid-template-columns:minmax(0,1fr) 8.5rem;align-items:start;gap:.75rem 1.5rem;padding-block:1.1rem;display:grid}.tinker-row:first-child{border-top:none}.tinker-row:last-child{padding-bottom:0}.tinker-name{font-size:var(--step-1);margin:0;font-weight:700;line-height:1.3}.tinker-name a{color:inherit;text-decoration:none}.tinker-name a:hover{color:var(--accent)}.tinker-tag{border-radius:var(--radius);background:var(--accent-wash);color:var(--accent-strong);font-family:var(--font-mono);font-size:var(--step--3);text-transform:uppercase;letter-spacing:.06em;vertical-align:.2em;margin-left:.5rem;padding:.1rem .5rem;font-weight:500}.tinker-tag[data-status=soon]{background:var(--warn-wash);color:var(--warn)}.tinker-hook{font-size:var(--step-0);color:var(--ink-soft);text-wrap:pretty;margin:.3rem 0 0;line-height:1.45}.tinker-blurb{font-size:var(--step--1);color:var(--muted);text-wrap:pretty;margin:.25rem 0 0;line-height:1.5}.tinker-links{align-self:center;gap:.4rem;display:grid}.tinker-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);font-family:var(--font-mono);font-size:var(--step--2);text-align:center;white-space:nowrap;padding:.4rem .85rem;text-decoration:none;display:block}.tinker-btn:hover{border-color:var(--accent);color:var(--ink)}@media (width<=34rem){.tinker-row{grid-template-columns:minmax(0,1fr)}.tinker-links{grid-auto-columns:max-content;grid-auto-flow:column;gap:.5rem}}.keep-case{text-transform:none}
