/* 
  Iandara Ovenbird Unified Theme
  Shared aesthetics for ovenbird packages demos.
*/
@font-face {
	font-family: Geosans;
	src: url('https://cdn.iandara.com/ttf/geosans-normal') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: Geosans;
	src: url('https://cdn.iandara.com/ttf/geosans-oblique') format('truetype');
	font-weight: normal;
	font-style: oblique;
	font-display: swap;
}
:root {
	--bg: #0a0a0a;
	--surface: #111;
	--border: #222;
	--border-hi: #333;
	--amber: #f59e0b;
	--amber-dim: #78490a;
	--green: #10b981;
	--red: #ef4444;
	--blue: #3b82f6;
	--text: #e4e4e4;
	--text-mid: #999;
	--text-dim: #555;
	--mono: 'Geosans', monospace;
	--sans: 'Geosans', sans-serif;
	--glass: rgb(255 255 255 / 3%);
}
/* --- RESET & GLOBAL --- */
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	scrollbar-width: thin;
	scrollbar-color: var(--border-hi) var(--bg);
}
body {
	display: flex;
	min-height: 100vh;
	font-family: var(--sans);
	color: var(--text);
	background: var(--bg);
	flex-direction: column;
}
/* --- SCROLLBARS --- */
::-webkit-scrollbar {
	width: 6px;
	height: 6px;
}
::-webkit-scrollbar-track {
	background: var(--bg);
}
::-webkit-scrollbar-thumb {
	background: var(--border-hi);
	border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
	background: var(--amber);
}
/* --- TYPOGRAPHY --- */
header {
	margin-bottom: 2rem;
	padding: 2rem 1rem 0;
	text-align: center;
	flex-shrink: 0;
}
h1 {
	margin-bottom: 0.5rem;
	font-family: var(--mono);
	font-size: 1.5rem;
	text-transform: uppercase;
	color: var(--amber);
	letter-spacing: 0.25rem;
}
.subtitle {
	font-size: 0.8rem;
	color: var(--text-mid);
	letter-spacing: 0.1em;
}
@media (width <= 600px) {
	header {
		margin-bottom: 1.5rem;
		padding: 1.5rem 1rem 0;
	}
	h1 {
		font-size: 1.2rem;
		letter-spacing: 0.15rem;
	}
	.subtitle {
		font-size: 0.7rem;
	}
}
/* --- BUTTONS --- */
.btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	padding: 0.7rem 1.4rem;
	font-family: var(--mono);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	border: none;
	border-radius: 2px;
	transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
	cursor: pointer;
	gap: 0.5rem;
	letter-spacing: 0.08em;
	box-shadow: 0 4px 0 rgb(0 0 0 / 20%);
}
.btn:active {
	transform: translateY(2px);
	box-shadow: none;
}
.btn-run,
.btn-primary {
	color: #000;
	background: var(--amber);
}
.btn-run:hover,
.btn-primary:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}
.btn-run:disabled,
.btn-primary:disabled {
	color: var(--text-dim);
	background: var(--border-hi);
	cursor: not-allowed;
	transform: none;
}
.btn-small {
	padding: 0.3rem 0.7rem;
	font-size: 0.65rem;
	color: var(--text-mid);
	background: transparent;
	border: 1px solid var(--border-hi);
}
.btn-small:hover {
	border-color: var(--amber);
	color: var(--amber);
}
/* --- NAVIGATION / TABS --- */
nav {
	display: flex;
	overflow-x: auto;
	margin-bottom: 2rem;
	width: 100%;
	gap: 1rem;
	border-bottom: 1px solid var(--border);
	scrollbar-width: none;
}
nav::-webkit-scrollbar {
	display: none;
}
.nav-item {
	padding: 0.75rem 1rem;
	font-family: var(--mono);
	font-size: 0.8rem;
	text-transform: uppercase;
	color: var(--text-dim);
	transition: all 0.2s;
	cursor: pointer;
	border-bottom: 2px solid transparent;
	letter-spacing: 0.1rem;
	white-space: nowrap;
}
.nav-item:hover {
	color: var(--text);
}
.nav-item.active {
	color: var(--amber);
	border-color: var(--amber);
}
/* --- TOPBAR --- */
.topbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 1.5rem;
	height: 48px;
	background: var(--surface);
	border-bottom: 1px solid var(--border);
	flex-shrink: 0;
}
.topbar-left {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.logo-small {
	font-family: var(--mono);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--amber);
}
.id-display {
	font-family: var(--mono);
	font-size: 0.65rem;
	color: var(--text-mid);
	letter-spacing: 0.05em;
}
/* --- LAYOUT PANELS --- */
.main-layout {
	display: flex;
	flex: 1;
	overflow: hidden;
}
.panel-left {
	display: flex;
	overflow: hidden;
	width: 300px;
	flex-shrink: 0;
	border-right: 1px solid var(--border);
	flex-direction: column;
}
.panel-section {
	border-bottom: 1px solid var(--border);
	padding: 1rem 1.25rem;
}
.section-label {
	margin-bottom: 0.75rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-mid);
	letter-spacing: 0.15em;
}
/* --- LINKS LIST --- */
.links-list {
	flex: 1;
	overflow-y: auto;
	padding: 0.75rem;
}
.link-card {
	position: relative;
	overflow: hidden;
	margin-bottom: 0.5rem;
	padding: 0.75rem 1rem;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 2px;
	transition: border-color 0.2s;
	cursor: pointer;
}
.link-card::before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 3px;
	background: var(--text-dim);
	content: '';
}
.link-card:hover {
	border-color: var(--border-hi);
}
.link-card.completed-card::before {
	background: var(--green);
}
.link-card.error-card::before {
	background: var(--red);
}
.link-card.processing-card::before {
	background: var(--amber);
}
.link-card.updated-card::before {
	background: var(--blue);
}
.link-card-id {
	margin-bottom: 0.3rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	color: var(--text-mid);
}
.link-card-status {
	font-family: var(--mono);
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
}
/* --- IFRAME AREA & TABS --- */
.iframe-area {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #000;
}
.iframe-tabs-bar {
	display: flex;
	align-items: stretch;
	overflow-x: auto;
	height: 36px;
	background: var(--surface);
	border-bottom: 1px solid var(--border);
	flex-shrink: 0;
}
.iframe-tab {
	position: relative;
	display: flex;
	align-items: center;
	padding: 0 1rem;
	font-family: var(--mono);
	font-size: 0.65rem;
	color: var(--text-mid);
	transition: all 0.15s;
	gap: 0.5rem;
	cursor: pointer;
	border-right: 1px solid var(--border);
	white-space: nowrap;
}
.iframe-tab:hover {
	color: var(--text);
	background: var(--glass);
}
.iframe-tab.active-tab {
	color: var(--amber);
}
.iframe-tab.active-tab::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: var(--amber);
	content: '';
}
.tab-close {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 14px;
	height: 14px;
	font-size: 0.8rem;
	color: var(--text-dim);
	background: transparent;
	border: none;
	border-radius: 50%;
	transition: all 0.15s;
	cursor: pointer;
}
.tab-close:hover {
	color: white;
	background: var(--red);
}
.frames-root {
	flex: 1;
	position: relative;
}
.frame-cont {
	position: absolute;
	display: none;
	inset: 0;
}
.frame-cont.active {
	display: block;
}
.frame-cont iframe {
	width: 100%;
	height: 100%;
	border: none;
}
/* --- PLACEHOLDERS --- */
.placeholder-panel {
	display: flex;
	justify-content: center;
	align-items: center;
	flex: 1;
	flex-direction: column;
	gap: 1rem;
}
.placeholder-icon {
	font-size: 2rem;
	opacity: 0.15;
}
.placeholder-text {
	font-family: var(--mono);
	font-size: 0.7rem;
	line-height: 2;
	text-align: center;
	color: var(--text-dim);
}
/* --- STATE VIEWER --- */
.state-viewer {
	display: flex;
	height: 140px;
	border-top: 1px solid var(--border);
	flex-shrink: 0;
	flex-direction: column;
}
.state-viewer-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.4rem 0.75rem;
	background: var(--surface);
	border-bottom: 1px solid var(--border);
}
.state-viewer-body {
	flex: 1;
	overflow: auto;
	padding: 0.5rem 0.75rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	line-height: 1.6;
	color: #6ee7b7;
	background: #050505;
}
/* --- FORM FIELDS --- */
.field {
	margin-bottom: 1rem;
}
.field label {
	display: block;
	margin-bottom: 0.4rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-mid);
	letter-spacing: 0.1em;
}
/* Base Selectors (Tag Only - Lowest Specificity) */
select,
textarea,
input:not([type='button'], [type='submit']) {
	padding: 0.55rem 0.75rem;
	font-family: var(--mono);
	font-size: 0.75rem;
	color: var(--text);
	background: #0a0a0a;
	border: 1px solid var(--border-hi);
	border-radius: 2px;
	transition: border-color 0.15s;
	outline: none;
	appearance: none;
}
select {
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
}
select option {
	color: var(--text);
	background: #111;
}
/* Component Selectors (Class based - Middle Specificity) */
.field select,
.field textarea,
.field input,
.iteration-control select {
	padding: 0.55rem 0.75rem;
	font-family: var(--mono);
	font-size: 0.75rem;
	color: var(--text);
	background: #0a0a0a;
	border: 1px solid var(--border-hi);
	border-radius: 2px;
	transition: border-color 0.15s;
	outline: none;
	appearance: none;
}
.field select,
.field textarea,
.field input {
	width: 100%;
}
/* State Selectors (High Specificity) */
select:focus,
textarea:focus,
input:focus,
.field input:focus,
.field select:focus,
.field textarea:focus {
	border-color: var(--amber);
}
/* --- BADGES --- */
.badge {
	padding: 0.2rem 0.5rem;
	font-family: var(--mono);
	font-size: 0.55rem;
	font-weight: 600;
	text-transform: uppercase;
	border: 1px solid;
	border-radius: 2px;
	letter-spacing: 0.1em;
}
.badge-amber {
	color: var(--amber);
	border-color: var(--amber-dim);
	background: rgb(245 158 11 / 8%);
}
.badge-green {
	color: var(--green);
	border-color: #065f46;
	background: rgb(16 185 129 / 8%);
}
.badge-red {
	color: var(--red);
	border-color: #7f1d1d;
	background: rgb(239 68 68 / 8%);
}
.badge-blue {
	color: var(--blue);
	border-color: #1e3a5f;
	background: rgb(59 130 246 / 8%);
}
/* --- BANNERS --- */
.banner-offline {
	display: none;
	padding: 0.4rem 1.5rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	text-align: center;
	color: var(--red);
	background: rgb(239 68 68 / 12%);
	border-bottom: 1px solid rgb(239 68 68 / 30%);
}
.banner-offline.show {
	display: block;
}
/* --- GRID & CARDS --- */
.container {
	display: flex;
	margin: 0 auto;
	padding: 0 2rem 2rem;
	width: 100%;
	max-width: 1000px;
	flex-direction: column;
	gap: 2rem;
}
.card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 1.5rem;
}
.card {
	position: relative;
	display: flex;
	padding: 2rem;
	min-width: 0;
	max-width: 100%;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: 4px;
	transition: all 0.3s ease;
	flex-direction: column;
	gap: 1.25rem;
	box-shadow: 0 10px 30px rgb(0 0 0 / 50%);
}
.card:hover {
	border-color: var(--border-hi);
	transform: translateY(-2px);
}
@media (width <= 600px) {
	.card {
		padding: 1.25rem;
		gap: 1rem;
	}
	.card-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
}
@media (width <= 480px) {
	.container {
		padding: 0 1rem 1rem;
		gap: 1rem;
	}
	.card {
		padding: 1rem;
	}
}
.card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid var(--border);
	padding-bottom: 0.75rem;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.card-title {
	font-family: var(--mono);
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--text);
}
.card-desc {
	font-size: 0.7rem;
	line-height: 1.4;
	color: var(--text-mid);
}
.tag {
	padding: 0.15rem 0.45rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-mid);
	background: var(--border-hi);
	border-radius: 2px;
}
a.btn {
	text-decoration: none;
}
.container-wide {
	max-width: 1240px;
}
body.theme-ambient-amber {
	background: radial-gradient(circle at top, rgb(245 158 11 / 10%), transparent 28%), linear-gradient(180deg, #050505 0%, #080808 45%, #050505 100%);
}
.ovenbird-shell {
	padding-top: 1rem;
	padding-bottom: 4rem;
}
.hero-card {
	position: relative;
	display: grid;
	align-items: center;
	overflow: hidden;
	padding: 2rem;
	background: linear-gradient(135deg, rgb(245 158 11 / 7%), transparent 35%), linear-gradient(180deg, rgb(255 255 255 / 3%), rgb(255 255 255 / 1%));
	grid-template-columns: 180px minmax(0, 1fr);
	gap: 1.5rem;
}
@media (width <= 720px) {
	.hero-card {
		padding: 1.5rem;
		text-align: center;
		grid-template-columns: 1fr;
	}
	.hero-logo-wrap {
		margin: 0 auto;
	}
	.hero-copy {
		align-items: center;
	}
}
.hero-card::after {
	position: absolute;
	width: 180px;
	height: 180px;
	background: rgb(245 158 11 / 8%);
	border-radius: 999px;
	inset: auto -60px -60px auto;
	filter: blur(18px);
	content: '';
	pointer-events: none;
}
.hero-logo-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 1rem;
	background: rgb(255 255 255 / 2%);
	border: 1px solid var(--border);
	border-radius: 8px;
}
.hero-logo {
	width: 100%;
	max-width: 140px;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 10px 22px rgb(0 0 0 / 45%));
}
.hero-copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 1rem;
}
.hero-copy h1 {
	margin: 0;
	font-size: 1.9rem;
	letter-spacing: 0.2rem;
}
.hero-copy .subtitle {
	max-width: 62rem;
	font-size: 0.78rem;
	line-height: 1.8;
}
.hero-chips,
.meta-chips,
.stack-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}
.hero-chip,
.meta-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.28rem 0.55rem;
	font-family: var(--mono);
	font-size: 0.62rem;
	text-transform: uppercase;
	color: var(--text-mid);
	background: rgb(255 255 255 / 4%);
	border: 1px solid var(--border-hi);
	border-radius: 999px;
	letter-spacing: 0.08em;
}
.hero-chip {
	color: var(--amber);
	background: rgb(245 158 11 / 8%);
	border-color: var(--amber-dim);
}
.meta-chip.is-accent {
	color: #8ebeff;
	background: rgb(59 130 246 / 10%);
	border-color: #1e3a5f;
}
.meta-chip.is-success {
	color: #7be0b7;
	background: rgb(16 185 129 / 10%);
	border-color: #065f46;
}
.card-grid--single {
	grid-template-columns: 1fr;
}
.package-card {
	padding: 1.5rem;
	min-height: 100%;
	gap: 1rem;
}
.package-card .card-header {
	align-items: flex-start;
	gap: 0.75rem;
}
.package-card .card-title {
	font-size: 0.84rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.package-name {
	font-family: var(--mono);
	font-size: 0.64rem;
	color: var(--text-mid);
	letter-spacing: 0.08em;
	overflow-wrap: anywhere;
}
.package-summary {
	font-size: 0.7rem;
	line-height: 1.7;
	color: var(--text-mid);
}
.meta-block {
	display: grid;
	gap: 0.55rem;
}
.meta-row {
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr);
	gap: 0.7rem;
	font-size: 0.68rem;
	line-height: 1.55;
}
.meta-row span:first-child {
	font-family: var(--mono);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--text-mid);
}
.meta-row code {
	font-size: 0.66rem;
	color: var(--text);
	overflow-wrap: break-word;
}
.action-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: auto;
}
.docs-layout {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}
.docs-sidebar {
	position: sticky;
	top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.docs-nav {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.docs-nav button {
	padding: 0.65rem 0.8rem;
	font-family: var(--mono);
	font-size: 0.67rem;
	text-align: left;
	color: var(--text-mid);
	background: rgb(255 255 255 / 3%);
	border: 1px solid var(--border);
	border-radius: 4px;
	cursor: pointer;
	transition:
		border-color 0.15s,
		color 0.15s,
		background 0.15s;
}
.docs-nav button:hover,
.docs-nav button.is-active {
	color: var(--amber);
	border-color: var(--amber-dim);
	background: rgb(245 158 11 / 8%);
}
.docs-content {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	min-width: 0;
}
.docs-card {
	scroll-margin-top: 1rem;
}
.docs-card .card-desc {
	line-height: 1.7;
}
.docs-subgrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}
.docs-table-wrap {
	overflow: auto;
	background: rgb(0 0 0 / 20%);
	border: 1px solid var(--border);
	border-radius: 6px;
}
.docs-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.7rem;
	line-height: 1.6;
}
.docs-table th,
.docs-table td {
	padding: 0.8rem 0.9rem;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--border);
}
.docs-table th {
	font-family: var(--mono);
	font-size: 0.62rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--text-mid);
	background: rgb(255 255 255 / 3%);
}
.docs-table tr:last-child td {
	border-bottom: none;
}
.docs-table code {
	font-size: 0.66rem;
	color: var(--text);
	overflow-wrap: break-word;
}
.doc-list {
	display: grid;
	gap: 0.45rem;
	padding-left: 1rem;
	font-size: 0.7rem;
	line-height: 1.7;
	color: var(--text-mid);
}
.doc-eyebrow {
	font-family: var(--mono);
	font-size: 0.62rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--amber);
}
.inline-link {
	color: var(--amber);
	text-decoration: none;
}
.inline-link:hover {
	text-decoration: underline;
}
@media (width <= 1100px) {
	.docs-layout,
	.docs-subgrid {
		grid-template-columns: minmax(0, 1fr);
	}
	.docs-sidebar {
		position: static;
		margin-bottom: 2rem;
	}
	.docs-nav {
		overflow-x: auto;
		padding-bottom: 0.5rem;
		flex-direction: row;
	}
	.docs-nav button {
		flex: 0 0 auto;
		white-space: nowrap;
	}
}
@media (width <= 820px) {
	.hero-card {
		grid-template-columns: 1fr;
		padding: 1.4rem;
	}
	.hero-logo-wrap {
		justify-content: flex-start;
	}
}
@media (width <= 640px) {
	.ovenbird-shell {
		padding-top: 0;
	}
	.hero-copy h1 {
		font-size: 1.35rem;
		letter-spacing: 0.12rem;
	}
	.package-card,
	.hero-card {
		padding: 1.15rem;
	}
	.meta-row {
		grid-template-columns: 1fr;
		gap: 0.25rem;
	}
}
/* --- RESULTS & BLOCKS --- */
.results {
	overflow-y: auto;
	padding: 1rem;
	min-height: 100px;
	max-height: 400px;
	font-family: var(--mono);
	font-size: 0.7rem;
	line-height: 1.4;
	color: #6ee7b7;
	background: #000;
	border: 1px solid #111;
	border-radius: 2px;
	white-space: pre-wrap;
	word-break: break-all;
}
.results b {
	font-weight: normal;
}
.label-p {
	font-weight: bold;
	color: #60a5fa;
} /* Param */
.label-g {
	font-weight: bold;
	color: var(--amber);
} /* Generated */
/* --- SPECIAL UI ELEMENTS --- */
.info-icon {
	position: relative;
	display: inline-block;
	margin-left: 6px;
	width: 14px;
	height: 14px;
	font-size: 0.7rem;
	line-height: 14px;
	text-align: center;
	color: #fff;
	background: var(--border-hi);
	border-radius: 50%;
	transition: background 0.2s;
	cursor: help;
	vertical-align: middle;
}
.info-icon:hover {
	background: var(--amber);
}
#tooltip {
	position: fixed;
	z-index: 1000;
	display: none;
	padding: 0.6rem 0.8rem;
	max-width: 250px;
	font-size: 0.7rem;
	line-height: 1.4;
	color: var(--text);
	background: #1a1a1a;
	border: 1px solid var(--border-hi);
	border-radius: 4px;
	animation: tooltip-fade 0.1s ease-out;
	box-shadow: 0 4px 15px rgb(0 0 0 / 60%);
	pointer-events: none;
}
@keyframes tooltip-fade {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
/* --- LOADING & PROGRESS --- */
.progress-bar {
	position: relative;
	display: none;
	overflow: hidden;
	width: 100%;
	height: 2px;
	background: var(--border);
}
.progress-fill {
	position: absolute;
	width: 100%;
	height: 100%;
	background: var(--amber);
	animation: slide 1.5s infinite linear;
}
@keyframes slide {
	from {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(100%);
	}
}
.running .progress-bar {
	display: block;
}
#loading-overlay {
	position: fixed;
	z-index: 2000;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--bg);
	inset: 0;
	flex-direction: column;
	gap: 1.5rem;
}
.loading-logo {
	font-family: var(--mono);
	font-size: 1rem;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--amber);
}
.loading-bar-wrap {
	overflow: hidden;
	width: 200px;
	height: 2px;
	background: var(--border);
	border-radius: 2px;
}
.loading-bar {
	width: 0%;
	height: 100%;
	background: var(--amber);
	transition: width 0.3s ease;
}
.loading-msg {
	font-family: var(--mono);
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-dim);
	letter-spacing: 0.1em;
}
/* --- UTILS --- */
.status-dot {
	display: inline-block;
	margin-right: 0.4rem;
	width: 6px;
	height: 6px;
	background: var(--text-dim);
	border-radius: 50%;
	transition: all 0.3s;
}
.status-dot.active {
	background: var(--green);
	box-shadow: 0 0 6px var(--green);
}
.status-dot.syncing {
	background: var(--amber);
	box-shadow: 0 0 6px var(--amber);
	animation: blink 1s infinite;
}
.status-dot.offline {
	background: var(--red);
	box-shadow: 0 0 6px var(--red);
}
/* --- BENCHMARK UTILS --- */
.summary-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}
.summary-item {
	padding: 1.25rem;
	text-align: center;
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: 4px;
}
.summary-label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-mid);
	letter-spacing: 0.1em;
}
.summary-value {
	font-family: var(--mono);
	font-size: 1.2rem;
	color: var(--amber);
}
.key-status {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5rem;
	padding: 0.75rem 1.25rem;
	font-family: var(--mono);
	font-size: 0.7rem;
	background: var(--glass);
	border: 1px solid var(--border);
	border-radius: 4px;
}
.status-stack {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.status-subline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.62rem;
}
.status-key {
	text-transform: uppercase;
	color: var(--text-mid);
	letter-spacing: 0.08em;
}
.status-value-inline {
	color: var(--amber);
	overflow-wrap: break-word;
}
.status-on {
	color: var(--green);
}
.status-off {
	color: var(--red);
}
@keyframes blink {
	50% {
		opacity: 0.3;
	}
}
.view {
	display: none;
	width: 100%;
	animation: fade-in 0.3s ease-out;
}
.view.active {
	display: block;
}
@keyframes fade-in {
	from {
		opacity: 0;
		transform: translateY(5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
/* --- BATCH BENCHMARK EXTRA --- */
.iteration-control {
	display: flex;
	align-items: center;
	margin-bottom: 1rem;
	padding: 1rem;
	background: var(--glass);
	border: 1px solid var(--border);
	border-radius: 4px;
	gap: 1rem;
}
.iteration-control label {
	font-family: var(--mono);
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-mid);
}
/* --- SHARED WORKSPACE UTILS --- */
.pending-badge {
	display: none;
	align-items: center;
	padding: 0.2rem 0.5rem;
	font-family: var(--mono);
	font-size: 0.55rem;
	text-transform: uppercase;
	color: var(--amber);
	background: rgb(245 158 11 / 8%);
	border: 1px solid var(--amber-dim);
	border-radius: 2px;
	letter-spacing: 0.1em;
}
.pending-badge.show {
	display: inline-flex;
}
.empty-state {
	padding: 1rem;
	font-family: var(--mono);
	font-size: 0.7rem;
	line-height: 1.8;
	text-align: center;
	color: var(--text-dim);
}
.workspace-shell {
	display: flex;
	flex: 1;
	min-height: 0;
}
.workspace-rail {
	display: flex;
	overflow: auto;
	width: 320px;
	background: var(--surface);
	border-right: 1px solid var(--border);
	flex-shrink: 0;
	flex-direction: column;
}
.workspace-main {
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
}
.workspace-content {
	flex: 1;
	overflow: auto;
	padding: 1.5rem;
	min-height: 0;
}
.workspace-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.5rem;
}
.workspace-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
	align-items: start;
}
.workspace-panel {
	display: flex;
	min-height: 0;
	flex-direction: column;
	gap: 1rem;
}
.metrics-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}
.metric-card {
	padding: 0.9rem 1rem;
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: 4px;
}
.metric-label {
	display: block;
	margin-bottom: 0.35rem;
	font-family: var(--mono);
	font-size: 0.55rem;
	text-transform: uppercase;
	color: var(--text-mid);
	letter-spacing: 0.1em;
}
.metric-value {
	font-family: var(--mono);
	font-size: 0.8rem;
	color: var(--amber);
	overflow-wrap: break-word;
}
.status-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--mono);
	font-size: 0.65rem;
	color: var(--text-mid);
}
.action-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.action-row-single .btn {
	flex-basis: 100%;
}
.action-row .btn {
	flex: 1 1 140px;
	min-width: 0;
}
.form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0.75rem 1rem;
}
.form-grid .field {
	margin-bottom: 0;
}
.form-grid + .action-row-single {
	margin-top: 0.75rem;
}
.helper-note {
	padding: 0.85rem 1rem;
	font-size: 0.68rem;
	line-height: 1.6;
	color: var(--text-mid);
	background: var(--glass);
	border: 1px solid var(--border);
	border-radius: 4px;
}
.snippet-box {
	overflow-x: auto;
	margin: 0;
	padding: 0.8rem 0.9rem;
	font-family: var(--mono);
	font-size: 0.65rem;
	line-height: 1.7;
	color: #6ee7b7;
	background: #050505;
	border: 1px solid var(--border);
	border-radius: 4px;
}
.editor-panel {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}
.editor-textarea {
	padding: 1rem;
	width: 100%;
	min-height: 260px;
	font-family: var(--mono);
	font-size: 0.72rem;
	line-height: 1.6;
	resize: vertical;
}
.console-block {
	display: flex;
	min-height: 0;
	background: #050505;
	border: 1px solid var(--border);
	border-radius: 4px;
	flex-direction: column;
}
.console-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.6rem 0.75rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-mid);
	background: var(--surface);
	border-bottom: 1px solid var(--border);
	letter-spacing: 0.1em;
	gap: 0.75rem;
}
.console-body {
	flex: 1;
	overflow: auto;
	padding: 0.85rem 1rem;
	font-family: var(--mono);
	font-size: 0.68rem;
	line-height: 1.65;
	color: #6ee7b7;
	white-space: pre-wrap;
	overflow-wrap: break-word;
}
.stack-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}
.toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}
.topbar .topbar-left,
.topbar .status-row,
.key-status .status-stack,
.key-status .toolbar,
.toolbar > *,
.card-title {
	min-width: 0;
}
.topbar .id-display,
.status-value-inline {
	overflow-wrap: anywhere;
}
@media (width <= 1100px) {
	.workspace-shell {
		flex-direction: column;
		min-height: auto;
	}
	.workspace-main {
		min-height: auto;
	}
	.workspace-rail {
		overflow: visible;
		width: 100%;
		border-right: none;
		border-bottom: 1px solid var(--border);
	}
	.workspace-content {
		overflow: visible;
	}
	.workspace-split,
	.stack-grid {
		grid-template-columns: 1fr;
	}
}
@media (width <= 720px) {
	.topbar,
	.key-status,
	.iteration-control,
	.status-row {
		padding: 0.75rem 1rem;
		height: auto;
	}
	.topbar,
	.key-status,
	.iteration-control {
		flex-wrap: wrap;
	}
	.container {
		padding: 0 1rem 1.5rem;
	}
	.card-grid,
	.workspace-grid,
	.metrics-grid,
	.summary-grid {
		grid-template-columns: 1fr;
	}
	.workspace-content {
		padding: 1rem;
	}
	.action-row .btn {
		flex-basis: 100%;
	}
	.workspace-panel.card {
		padding: 1.25rem;
		gap: 1rem;
	}
	.workspace-panel .card-header,
	.console-header,
	.state-viewer-header,
	.topbar {
		justify-content: flex-start;
		align-items: flex-start;
		flex-wrap: wrap;
	}
	.workspace-panel .tag,
	.topbar .id-display {
		max-width: 100%;
		white-space: normal;
		overflow-wrap: anywhere;
	}
	.workspace-panel .card-header .card-title,
	.workspace-panel .card-header .tag {
		flex: 1 1 100%;
	}
	.workspace-panel .card-header .tag {
		text-align: left;
	}
	.key-status .status-stack,
	.key-status .toolbar,
	.topbar .topbar-left,
	.topbar .status-row {
		width: 100%;
	}
	.toolbar > input,
	.toolbar > button {
		flex: 1 1 100%;
		min-width: 0;
	}
	.topbar .topbar-left {
		flex-wrap: wrap;
		gap: 0.35rem 0.75rem;
	}
	.topbar .status-row {
		justify-content: flex-start;
	}
	.topbar .id-display {
		width: 100%;
	}
	.workspace-panel .editor-textarea {
		min-height: 220px;
	}
	.workspace-panel .console-body,
	.state-viewer-body {
		font-size: 0.63rem;
	}
	.panel-grid {
		grid-template-columns: 1fr;
	}
}
/* --- OBFUSCA BENCHMARK EXTRA --- */
.code-area {
	padding: 1rem;
	width: 100%;
	height: 260px;
	font-family: var(--mono, monospace);
	font-size: 0.75rem;
	color: var(--text-1, #e0e0e0);
	background: var(--surface-2, #0a0a0a);
	border: 1px solid var(--border, #222);
	border-radius: 4px;
	resize: vertical;
	tab-size: 2;
}
.panel-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: 1rem;
	gap: 1rem;
}
.controls {
	display: flex;
	justify-content: center;
	margin-top: 1rem;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.output-console {
	overflow-y: auto;
	margin-top: 0.75rem;
	padding: 0.75rem;
	min-height: 60px;
	max-height: 200px;
	font-family: var(--mono, monospace);
	font-size: 0.7rem;
	color: var(--text-mid, #aaa);
	white-space: pre-wrap;
	background: var(--surface-2, #0a0a0a);
	border: 1px solid var(--border, #222);
	border-radius: 4px;
}
.output-console .log-ok {
	color: var(--green, #4caf50);
}
.output-console .log-err {
	color: var(--red, #f44336);
}
.output-console .log-dim {
	color: var(--text-mid, #666);
}
.panel-label {
	margin-bottom: 0.4rem;
	font-family: var(--mono, monospace);
	font-size: 0.65rem;
	text-transform: uppercase;
	color: var(--text-mid, #888);
}
/* --- OVENBIRD GENERIC COMPONENTS --- */
[hidden] {
	display: none !important;
}
.ob-visually-hidden {
	position: absolute !important;
	overflow: hidden;
	margin: -1px;
	padding: 0;
	width: 1px;
	height: 1px;
	white-space: nowrap;
	border: 0;
	clip-path: inset(50%);
}
.ob-container-demo {
	padding: 2rem 1rem 5rem;
}
.ob-inline-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}
.ob-divider {
	color: var(--border-hi);
}
.ob-mt-xs {
	margin-top: 0.5rem !important;
}
.ob-mt-sm {
	margin-top: 0.85rem !important;
}
.ob-mb-sm {
	margin-bottom: 0.5rem !important;
}
.ob-btn-compact {
	padding: 0.3rem 0.6rem;
	font-size: 0.6rem;
}
.ob-summary-value-sm {
	font-size: 0.85rem;
}
.ob-text-muted {
	color: var(--text-mid) !important;
}
.ob-text-success {
	color: var(--green) !important;
}
.ob-text-danger {
	color: var(--red) !important;
}
.ob-text-info {
	color: #6eb5ff !important;
}
.ob-text-accent {
	color: #c9a7ff !important;
}
.ob-text-warn {
	color: #ffb86b !important;
}
.ob-dropzone {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: 0.75rem;
	padding: 2rem 1rem;
	min-height: 110px;
	text-align: center;
	background: var(--glass);
	border: 1px dashed var(--border-hi);
	border-radius: 4px;
	transition:
		border-color 0.2s,
		background 0.2s;
	cursor: pointer;
	user-select: none;
}
.ob-dropzone:hover,
.ob-dropzone.drag-over {
	background: rgb(245 158 11 / 5%);
	border-color: var(--amber);
}
.ob-dropzone.has-file {
	background: rgb(16 185 129 / 5%);
	border-color: var(--green);
	border-style: solid;
}
.ob-dropzone__icon {
	font-size: 1.5rem;
	color: var(--text-dim);
	transition: color 0.2s;
}
.ob-dropzone:hover .ob-dropzone__icon,
.ob-dropzone.drag-over .ob-dropzone__icon {
	color: var(--amber);
}
.ob-dropzone.has-file .ob-dropzone__icon {
	color: var(--green);
}
.ob-dropzone__label {
	font-family: var(--mono);
	font-size: 0.65rem;
	color: var(--text-mid);
	letter-spacing: 0.06em;
}
.ob-file-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 1rem;
	padding: 0.6rem 0.8rem;
	background: var(--glass);
	border: 1px solid var(--border);
	border-radius: 4px;
}
.ob-file-name {
	overflow: hidden;
	min-width: 0;
	font-family: var(--mono);
	font-size: 0.7rem;
	color: var(--text);
	flex: 1;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ob-file-meta {
	flex-shrink: 0;
	font-family: var(--mono);
	font-size: 0.6rem;
	color: var(--text-mid);
	white-space: nowrap;
}
.ob-copy-row {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.5rem;
}
.ob-copy-row .results {
	padding: 0.65rem 0.85rem;
	min-height: auto;
	max-height: none;
	flex: 1;
	word-break: break-all;
}
.ob-transfer-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.4rem;
	font-family: var(--mono);
	font-size: 0.6rem;
	color: var(--text-mid);
}
.ob-transfer-meta__pct {
	color: var(--amber);
}
.ob-progress-track {
	position: relative;
	overflow: hidden;
	height: 3px;
	background: var(--border);
	border-radius: 2px;
}
.ob-progress-fill {
	position: absolute;
	top: 0;
	left: 0;
	width: 0%;
	height: 100%;
	background: var(--amber);
	transition:
		width 0.25s ease,
		background 0.2s ease;
}
.ob-progress-fill.is-done {
	background: var(--green);
}
.ob-download-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55rem 0.9rem;
	font-family: var(--mono);
	font-size: 0.65rem;
	color: var(--green);
	text-decoration: none;
	background: rgb(16 185 129 / 8%);
	border: 1px solid #065f46;
	border-radius: 2px;
	transition: background 0.15s;
}
.ob-download-link:hover {
	background: rgb(16 185 129 / 18%);
}
.ob-media-preview {
	display: block;
	margin-bottom: 0.75rem;
	max-width: 100%;
	max-height: 260px;
	border: 1px solid var(--border);
	border-radius: 4px;
}
.ob-event-stream {
	overflow: auto;
	min-height: 120px;
	max-height: 300px;
	font-family: var(--mono, monospace);
	font-size: 0.67rem;
	line-height: 1.7;
	letter-spacing: 0.04em;
	scrollbar-width: thin;
}
.ob-event-stream--surface {
	margin-top: 0.85rem;
	min-height: 72px;
}
.ob-event-stream--tall {
	max-height: 340px;
}
.ob-event-row {
	display: flex;
	align-items: baseline;
	gap: 0.55rem;
	padding: 0.05rem 0;
	animation: ob-row-in 180ms ease;
}
.ob-event-row__ts {
	flex-shrink: 0;
	color: rgb(255 255 255 / 28%);
}
.ob-event-row__kind {
	flex-shrink: 0;
	min-width: 4.5rem;
	font-weight: 600;
}
.ob-event-row__body {
	color: rgb(255 255 255 / 65%);
}
@keyframes ob-row-in {
	from {
		opacity: 0;
		transform: translateX(-4px);
	}
	to {
		opacity: 1;
	}
}
.ob-toggle-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.5rem;
	margin-bottom: 1rem;
}
.ob-toggle-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 0.75rem;
	font-size: 0.78rem;
	background: rgb(0 0 0 / 30%);
	border: 1px solid var(--border);
	border-radius: 4px;
}
.ob-toggle-item input {
	transform: scale(1.05);
}
.ob-inline-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: 0.85rem;
}
.ob-field-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
	gap: 0.7rem;
	margin-bottom: 0.85rem;
}
.ob-field-grid label,
.ob-control-note {
	font-family: var(--mono, monospace);
	font-size: 0.68rem;
	letter-spacing: 0.06em;
}
.ob-field-grid select,
.ob-field-grid input {
	margin-top: 0.3rem;
	width: 100%;
}
.ob-stat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}
.ob-stat-card {
	padding: 0.7rem 0.6rem;
	text-align: center;
	background: rgb(0 0 0 / 30%);
	border: 1px solid var(--border);
	border-radius: 4px;
}
.ob-stat-key {
	display: block;
	margin-bottom: 0.28rem;
	font-family: var(--mono, monospace);
	font-size: 0.6rem;
	text-transform: uppercase;
	color: var(--text-mid);
	letter-spacing: 0.08em;
}
.ob-stat-value {
	font-size: 1rem;
	transition: transform 100ms ease;
}
.ob-stat-value.is-bump {
	animation: ob-val-bump 180ms ease;
}
@keyframes ob-val-bump {
	0%,
	100% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.18);
	}
}
.ob-heatmap-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));
	gap: 0.45rem;
	margin-bottom: 0.75rem;
}
.ob-heatmap-grid--quarters {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ob-heat-cell {
	padding: 0.55rem 0.5rem;
	text-align: center;
	background: rgb(0 0 0 / 30%);
	border: 1px solid var(--border);
	border-radius: 4px;
	transition:
		background 300ms ease,
		border-color 300ms ease;
}
.ob-heat-cell__key {
	display: block;
	margin-bottom: 0.22rem;
	font-family: var(--mono, monospace);
	font-size: 0.58rem;
	text-transform: uppercase;
	color: var(--text-mid);
	letter-spacing: 0.08em;
}
.ob-heat-cell__value {
	font-family: var(--mono, monospace);
	font-size: 0.82rem;
}
.ob-results-compact {
	overflow: auto;
	min-height: 60px;
	max-height: 320px;
	font-family: var(--mono, monospace);
	font-size: 0.67rem;
	line-height: 1.65;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}
.ob-module-tree {
	overflow-x: auto;
	font-family: var(--mono, monospace);
	font-size: 0.71rem;
	line-height: 1.85;
	color: rgb(255 255 255 / 75%);
	letter-spacing: 0.04em;
	scrollbar-width: thin;
}
.ob-tree-dir {
	color: rgb(255 255 255 / 45%);
}
.ob-tree-file {
	color: rgb(255 255 255 / 85%);
	cursor: default;
}
.ob-tree-file:hover {
	color: #fff;
}
.ob-tree-note {
	color: rgb(255 255 255 / 32%);
}
.ob-tree-entry {
	font-weight: 600;
	color: #9af5c0;
}
.ob-tree-lines {
	color: rgb(255 255 255 / 20%);
}
.ob-chip {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.05rem 0.35rem;
	font-size: 0.58rem;
	letter-spacing: 0.08em;
	vertical-align: middle;
	border-radius: 3px;
}
.ob-chip--src {
	color: #6eb5ff;
	background: rgb(110 181 255 / 15%);
}
.ob-chip--build {
	color: #ffb86b;
	background: rgb(255 184 107 / 13%);
}
.ob-chip--singleton {
	color: #9af5c0;
	background: rgb(154 245 192 / 13%);
}
.ob-import-chain {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	margin-top: 0.85rem;
	font-family: var(--mono, monospace);
	font-size: 0.66rem;
	color: rgb(255 255 255 / 55%);
}
.ob-import-node {
	padding: 0.2rem 0.5rem;
	color: rgb(255 255 255 / 80%);
	background: rgb(255 255 255 / 5%);
	border: 1px solid rgb(255 255 255 / 10%);
	border-radius: 3px;
}
.ob-import-arrow {
	color: rgb(255 255 255 / 25%);
}
.ob-loading-bar--indeterminate {
	width: 100%;
	animation: slide 1.5s infinite linear;
}
@media (width <= 860px) {
	.ob-field-grid,
	.ob-stat-grid,
	.ob-heatmap-grid,
	.ob-toggle-grid {
		grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	}
}
@media (width <= 480px) {
	.ob-field-grid,
	.ob-stat-grid,
	.ob-heatmap-grid,
	.ob-toggle-grid {
		grid-template-columns: 1fr;
	}
	.ob-inline-actions {
		flex-direction: column;
	}
	.ob-inline-actions .btn {
		width: 100%;
	}
	.ob-heatmap-grid--quarters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
