*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{background:#fff;color:#252a32;font-family:Arial,Helvetica,sans-serif;margin:0}.article-layout{max-width:1600px;padding:64px 32px 110px;margin:auto;display:grid;grid-template-columns:228px minmax(0,1fr);gap:42px}main{min-width:0}article{font-size:19px;line-height:1.8}article>p,article>h1,article>h2,article>h3,article>ul,article>ol{max-width:800px;margin-left:auto;margin-right:auto}h1,h2,h3{color:#252a32;line-height:1.2;letter-spacing:-.6px;scroll-margin-top:32px}h1{font-size:48px;margin-top:0;margin-bottom:28px}h2{font-size:34px;margin-top:64px;margin-bottom:22px}h3{font-size:25px;margin-top:42px;margin-bottom:18px}p{margin:20px 0}a{color:#295e9e;text-decoration-thickness:1px;text-underline-offset:4px}strong{color:#252a32}code{font-size:.87em;background:#f3f6fa;border-radius:4px;padding:2px 5px}figure{width:100%;position:relative;margin:42px 0 48px;border-radius:0;overflow-x:auto;background:#fff;line-height:0;scrollbar-color:#8499ba #eaf0ff}a:focus-visible,summary:focus-visible,figure:focus-visible{outline:2px solid #85a8ff;outline-offset:4px}.visual-slot{width:100%;aspect-ratio:16/9}.visual-player{position:relative;width:100%;height:100%}.still{width:100%;height:auto;display:block}.canvas-control{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:transparent;cursor:pointer}.play-label{position:absolute;right:3.6%;top:3.2%;font:600 clamp(11px,1.15vw,16px)/1 Arial,sans-serif;color:#0048e3;padding:8px 12px;background:#eaf0ff;border-radius:24px;transition:opacity .18s}.playing .play-label{opacity:0}.playing .canvas-control:hover .play-label,.playing .canvas-control:focus-visible .play-label{opacity:1}.canvas-control:focus-visible{outline:3px solid #0048e3;outline-offset:-4px}.table-wrap{overflow-x:auto;margin:28px 0}table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.55}th,td{padding:15px 17px;border:1px solid #e2e6eb;text-align:left;vertical-align:top}th{background:#f3f6fa;color:#252a32}td{background:#fff}ul{padding-left:24px}img{max-width:100%}.contents{align-self:start;position:sticky;top:32px;max-height:calc(100vh - 64px);overflow:auto;scrollbar-width:thin}.contents-title{font-size:15px;font-weight:600;letter-spacing:0;color:#252a32;margin:5px 0 14px;padding-left:13px}.contents ol{list-style:none;padding:0;margin:0;border-left:1px solid #e2e6eb}.contents li{margin:3px 0}.contents a{display:block;color:#636b78;text-decoration:none;font-size:14px;line-height:1.45;padding:8px 10px 8px 13px;border-left:2px solid transparent;margin-left:-1px}.contents a:hover{color:#143e71;background:#f3f6fa}.contents .toc-level-3 a{font-size:13px;padding-left:25px;color:#636b78}.contents a[aria-current="location"]{color:#295e9e;border-color:#295e9e;background:#f3f6fa}.contents summary{display:none}.skip-link{position:fixed;left:16px;top:-100px;z-index:5;padding:10px 16px;background:#f3f6fa}.skip-link:focus{top:12px}@media(min-width:761px){.contents details:not([open]) nav{display:block}}@media(max-width:760px){.article-layout{display:block;padding:30px 24px 80px;max-width:1000px}.contents{position:relative;top:auto;max-height:none;margin-bottom:32px;border-bottom:1px solid #e2e6eb;padding-bottom:16px}.contents summary{display:list-item;cursor:pointer;font-size:15px;color:#295e9e;padding:8px 0}.contents-title{display:none}.contents nav{padding-top:14px}.contents ol{columns:2}.contents li{break-inside:avoid}h1{font-size:44px}}@media(max-width:700px){.article-layout{padding:22px 18px 70px}article{font-size:17px}h1{font-size:36px}h2{font-size:28px}h3{font-size:23px}figure{border-radius:0}.visual-slot{min-width:760px}.play-label{font-size:12px;padding:6px 9px}table{min-width:700px}.contents ol{columns:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.play-label{transition:none}}
sup{font-size:.7em;line-height:0;vertical-align:super}sup a{text-decoration:none;padding:1px 2px}span[id^="ref-"]{scroll-margin-top:40px}#references~ol{font-size:15px;line-height:1.6;overflow-wrap:anywhere}#references~ol li{margin:12px 0}#references~ol li:has(:target){background:#f3f6fa;outline:1px solid #b4c8df}

.article-hero{margin-top:32px;margin-bottom:42px}.article-hero img{display:block;width:100%;height:auto}.article-hero a{display:block}

/* Personal-site typography, verified against aishreganti.com on September 22, 2026. */
body{-webkit-font-smoothing:antialiased}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500}h1{letter-spacing:-1.5px}h2{letter-spacing:-.5px}a{text-decoration-color:#b4c8df}a:hover{color:#143e71}figure{border:0;box-shadow:none}.article-hero{border-radius:0}

/* Keep the index beside the article in the in-app browser panel. */
@media(min-width:761px) and (max-width:1100px){.article-layout{grid-template-columns:184px minmax(0,1fr);gap:26px;padding:36px 22px 80px}.contents{top:24px;max-height:calc(100vh - 48px)}.contents a{font-size:13px;padding-top:6px;padding-bottom:6px}.contents .toc-level-3 a{font-size:12px;padding-left:22px}article{font-size:17px}h1{font-size:38px}h2{font-size:29px}h3{font-size:23px}}

/* Leave more room for diagrams in a narrow desktop panel; keep the index on the left. */
@media(min-width:761px) and (max-width:1100px){.article-layout{grid-template-columns:160px minmax(0,1fr);gap:20px;padding-left:16px;padding-right:16px}}
.play-label{min-height:40px;display:flex;align-items:center;font-size:14px;padding:10px 14px}.playing .play-label{opacity:.7}.playing .canvas-control:hover .play-label,.playing .canvas-control:focus-visible .play-label{opacity:1}

article>.article-byline{font-size:14px;color:#636b78;margin-top:-8px;margin-bottom:24px;line-height:1.6}

/* Give multi-sentence explanatory bullets a readable gap. */
article>ul>li+li{margin-top:12px}

.publication-nav{max-width:1600px;margin:auto;padding:28px 32px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.publication-nav nav{display:flex;gap:20px;font-size:14px}.publication-wordmark{font:600 22px Arial,sans-serif;color:#252a32;text-decoration:none}.publication-wordmark span{color:#295e9e}@media(max-width:760px){.publication-nav{padding:20px 18px 0;align-items:flex-start;flex-wrap:wrap}.publication-nav nav{font-size:13px;gap:16px}}
