/**
 * Skylit dev cache — pattern: tff-post-toc
 * Auto-generated on save_post. Do not hand-edit.
 */

.tff-single-post {
		background: var(--color-white);
		padding: var(--padding-48) 0 var(--padding-96);
		}
		
		.tff-single-post__inner {
		display: grid;
		gap: var(--gap-48);
		max-width: var(--container-standard);
		margin: 0 auto;
		padding: 0 var(--padding-24);
		}
		
		/* Editorial content: border all around (like episode main content) */
		.tff-single-post__body {
		border: var(--border-width-1) solid var(--absolute-black-10);
		padding: var(--padding-24);
		box-sizing: border-box;
		}
		
		/* Mobile-first: base = mobile (TOC on top, accordion, no bottom spacing on title); then min-width for desktop */
		.tff-single-post,
		.tff-single-post__inner {
		overflow: visible;
		}
		
		.tff-toc-wrap {
		order: -1;
		position: relative;
		z-index: 10;
		background: var(--color-white);
		box-shadow: 0 1px 0 var(--absolute-black-10);
		}
		
		.tff-toc-wrap--fixed {
		position: fixed !important;
		top: auto !important;
		bottom: 0 !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-width: var(--container-standard);
		margin-left: auto;
		margin-right: auto;
		padding-left: var(--padding-24);
		padding-right: var(--padding-24);
		padding-bottom: max(var(--padding-8), env(safe-area-inset-bottom, 0px));
		box-sizing: border-box;
		z-index: 1000;
		box-shadow: 0 -1px 0 var(--absolute-black-10);
		}
		
		.tff-toc-wrap__spacer {
		display: block;
		width: 100%;
		flex-shrink: 0;
		}
		
		.tff-toc {
		position: relative;
		display: flex;
		flex-direction: column-reverse;
		gap: 0;
		}
		
		/* TOC heading: mobile = compact, clickable; desktop adds bottom spacing and non-clickable */
		.tff-toc__title {
		font-family: var(--h3-small-font-family);
		font-size: var(--h3-small);
		font-weight: var(--h3-small-font-weight);
		line-height: 1.5;
		color: var(--absolute-black-gradient);
		margin: 0;
		border-left: var(--border-width-1) solid var(--absolute-black-10);
		padding-left: var(--gap-16);
		padding-top: var(--gap-16);
		padding-bottom: 8px;
		cursor: pointer;
		user-select: none;
		-webkit-tap-highlight-color: transparent;
		min-height: 44px;
		display: flex;
		align-items: center;
		pointer-events: auto;
		}
		
		.tff-toc__title::after {
		content: "";
		display: inline-block;
		margin-left: 0.5em;
		vertical-align: 0.2em;
		width: 0.4em;
		height: 0.4em;
		border-right: 1px solid currentColor;
		border-bottom: 1px solid currentColor;
		transform: rotate(-135deg);
		transition: transform 0.2s ease;
		}
		
		.tff-toc--open .tff-toc__title::after {
		transform: rotate(45deg);
		}
		
		.tff-toc__list {
		list-style: disc;
		margin: 0 0 var(--gap-8) 1em;
		padding: 0;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.25s ease-out;
		pointer-events: none;
		}
		
		.tff-toc--open .tff-toc__list {
		max-height: 70vh;
		overflow-y: auto;
		pointer-events: auto;
		}
		
		.tff-toc__list li {
		margin: 0 0 var(--padding-8);
		}
		
		.tff-toc__list a {
		font-family: var(--lead-paragraph-font-family);
		font-size: var(--lead-paragraph);
		font-weight: var(--lead-paragraph-font-weight);
		line-height: var(--lead-paragraph-line-height);
		color: var(--absolute-black-gradient);
		text-decoration: none;
		position: relative;
		}
		
		.tff-toc__list a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 1px;
		background: var(--infrared-red);
		opacity: 0;
		transition: opacity 0.2s ease;
		}
		
		.tff-toc__list a:hover::after,
		.tff-toc__list a:active::after {
		opacity: 1;
		}
		
		.tff-single-post__body h2 {
		font-family: var(--h2-font-family);
		font-size: var(--h2);
		font-weight: var(--h2-font-weight);
		line-height: var(--h2-line-height);
		color: var(--absolute-black-gradient);
		margin: var(--padding-48) 0 var(--padding-16);
		}
		
		.tff-single-post__body h2:first-child {
		margin-top: 0;
		}
		
		.tff-single-post__body p {
		font-family: var(--body-paragraph-font-family);
		font-size: var(--body-paragraph);
		font-weight: var(--body-paragraph-font-weight);
		line-height: var(--body-paragraph-line-height);
		color: var(--absolute-black-gradient);
		margin: 0 0 var(--padding-16);
		}
		
		.tff-single-post__body .tff-single-post__pullquote {
		font-family: var(--pull-quote-font-family);
		font-size: var(--pull-quote);
		font-style: var(--pull-quote-font-style);
		line-height: 1.5;
		color: var(--absolute-black-gradient);
		margin: var(--padding-24) 0;
		padding: 0;
		}
		
		.tff-single-post__body .tff-single-post__related {
		list-style: none;
		margin: 0 0 var(--padding-16);
		padding: 0;
		}
		
		.tff-single-post__body .tff-single-post__related li {
		margin: 0 0 var(--padding-8);
		}
		
		.tff-single-post__body .tff-single-post__related a {
		font-family: var(--body-paragraph-font-family);
		font-size: var(--body-paragraph);
		color: var(--absolute-black-gradient);
		text-decoration: none;
		}
		
		.tff-single-post__body .tff-single-post__related a:hover {
		text-decoration: underline;
		}
		
		@media (min-width: 960px) {
		.tff-single-post__inner {
		grid-template-columns: 1fr minmax(220px, 280px);
		align-items: stretch;
		gap: var(--gap-64);
		}
		
		.tff-toc-wrap {
		order: 0;
		align-self: stretch;
		min-height: 0;
		}
		
		.tff-toc {
		position: sticky !important;
		top: var(--padding-24);
		flex-direction: column;
		}
		
		.tff-single-post__body {
		min-width: 0;
		}
		
		.tff-toc__title {
		cursor: default;
		margin-bottom: var(--gap-24);
		padding-bottom: var(--gap-16);
		}
		
		.tff-toc__title::after {
		display: none;
		}
		
		.tff-toc__list {
		max-height: none;
		overflow: visible;
		pointer-events: auto;
		margin: 0 0 0 1em;
		}
		}