/* --- 1. Global Prose Rules --- */ .article-content.prose { width: 100%; max-width: 65ch; margin: 0 auto; } /* --- 2. Absolute Isolation Layout --- */ .single-post-wrapper { display: flex; flex-direction: column; /* On mobile, they stack normally */ width: 100%; } @media (min-width: 1280px) { .single-post-wrapper { display: block; /* Turns off Flexbox completely */ } #main-content { /* Standard block behavior: automatically centers prose within wrapper */ display: block; } #sidebar-toc { /* Removes the TOC from document flow entirely */ position: absolute; top: 0; /* Math: Center of wrapper (50%) + half the prose width (32.5ch) + 2rem gap */ left: calc(50% + 32.5ch + 2rem); /* The aside needs to be exactly 100% height of the wrapper for sticky to work */ height: 100%; width: 256px; } } /* --- 3. Sticky TOC Logic --- */ #sidebar-toc .toc { position: sticky; top: 6rem; max-height: calc(100vh - 8rem); overflow-y: auto; padding-right: 1rem; z-index: 10; } /* --- 4. Projects Page (Isolated) --- */ .projects-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; } /* --- Base Styles --- */ #resume-table p { padding: .5em } .iframe-wrapper { position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0; } .iframe-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } #resume-table { border-collapse: collapse } #resume-table .statements td { font-style: italic; padding: 1em; text-align: center } #resume-table .header { padding-top: 1em; padding-left: 1em; font-weight: 700; text-transform: uppercase; text-align: left } .google-blue { color: #4285f4; font-weight: bolder; } .google-red { color: #ea4335; font-weight: bolder; } .google-yellow { color: #fbbc04; font-weight: bolder; } .google-green { color: #34a853; font-weight: bolder; } .header-google-blue { border-bottom: 4px solid #4285f4 } .header-google-red { border-bottom: 4px solid #ea4335 } .header-google-yellow { border-bottom: 4px solid #fbbc04 } .header-google-green { border-bottom: 4px solid #34a853 } #resume-table td, #resume-table tr { border-width: 0 } #resume-table ul { margin-top: 0; margin-bottom: 0 } #resume-table .section-header td { padding-top: .66em; font-weight: 700 } #resume-table .role { padding: .66em; text-align: left } #resume-table .dates { text-align: right; padding-right: 1em } #resume-table .quote { text-align: center } #resume-table .twitter-blue { color: #1da1f2; font-weight: bolder } .center { text-align: center; padding: .5em } img[src$='#center']{ display: block; margin: 0.7rem auto; } img[src$='#floatleft']{ float:left; margin: 0.7rem; } img[src$='#floatright']{ float:right; margin: 0.7rem; } .homepage .content { text-align: left; } /* Hide any TOC link that points to an element with the 'no-toc' class */ .toc-right a.no-toc-link, .toc-inside a.no-toc-link { display: none !important; }