/* Media Archive – uses the site's CSS variables, with safe fallbacks */
.mar, .mar-lb, .mar-fl {
	--m-primary: var(--primary, #634c9f);
	--m-primary-rgb: var(--primary-rgb, 99 76 159);
	--m-primary-hover: var(--primary-hover, #4d397f);
	--m-soft: var(--primary-soft, #eeeaf7);
	--m-link: var(--link, var(--primary, #634c9f));
	--m-surface: var(--surface, #fff);
	--m-alt: var(--surface-alt, #f8fafc);
	--m-glass: var(--surface-glass, rgb(255 255 255 / .72));
	--m-text: var(--text, #273142);
	--m-muted: var(--text-muted, #667085);
	--m-border: var(--border, #e2e8f0);
	--m-shadow: var(--shadow, 0 4px 18px rgb(15 23 42 / .07));
	--m-shadow-lg: var(--shadow-lg, 0 14px 36px rgb(15 23 42 / .16));
	--m-radius: var(--radius, .85rem);
	--m-radius-sm: var(--radius-sm, .55rem);
	--m-blur: var(--glass-blur, 14px);
	--m-ease: var(--ease-out, cubic-bezier(.22, 1, .36, 1));
	--m-t: var(--t, .28s);
	--m-t-fast: var(--t-fast, .16s);
	--m-font: var(--font-body, system-ui, -apple-system, "Segoe UI", Tahoma, Arial, sans-serif);
	font-family: var(--m-font);
	box-sizing: border-box;
}
.mar *, .mar *::before, .mar *::after, .mar-lb *, .mar-fl * { box-sizing: border-box; }
.mar [hidden], .mar-lb[hidden] { display: none !important; }

.mar {
	max-width: var(--container-width, 1280px);
	margin-inline: auto;
	padding-block: 1rem 2rem;
	color: var(--m-text);
	line-height: 1.5;
	--plyr-color-main: var(--m-primary);
	--plyr-video-background: #000;
	--plyr-font-family: var(--m-font);
}
.mar a { color: inherit; }
.mar-i { width: 1.1em; height: 1.1em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Buttons ---------- */
.mar-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
	padding: .6rem 1.05rem; border-radius: 999px; border: 1px solid var(--m-border);
	background: var(--m-surface); color: var(--m-text); font: inherit; font-size: .9rem; font-weight: 600;
	line-height: 1.2; cursor: pointer; text-decoration: none;
	transition: background var(--m-t-fast), border-color var(--m-t-fast), color var(--m-t-fast), transform var(--m-t-fast) var(--m-ease);
}
.mar-btn:hover { border-color: var(--m-primary); color: var(--m-link); }
.mar-btn:active { transform: scale(.97); }
.mar-btn-primary { background: var(--m-primary); border-color: transparent; color: #fff !important; }
.mar-btn-primary:hover { background: var(--m-primary-hover); border-color: transparent; color: #fff; }
.mar-btn-sm { padding: .42rem .8rem; font-size: .84rem; }
.mar-btn.is-on { background: var(--m-soft); border-color: var(--m-primary); color: var(--m-link); }
.mar button:focus-visible, .mar a:focus-visible, .mar-lb button:focus-visible, .mar-lb a:focus-visible, .mar-fl button:focus-visible, .mar input:focus-visible {
	outline: 3px solid rgb(var(--m-primary-rgb) / .55); outline-offset: 2px;
}

/* ---------- Index ---------- */
.mar-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.mar-title { margin: 0; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.2; letter-spacing: -.01em; }
.mar-sub { margin: .2rem 0 0; color: var(--m-muted); font-size: .92rem; }
.mar-search {
	display: flex; align-items: center; gap: .55rem; min-width: min(100%, 280px); padding: .55rem .95rem;
	border-radius: 999px; border: 1px solid var(--m-border); background: var(--m-glass);
	-webkit-backdrop-filter: blur(var(--m-blur)); backdrop-filter: blur(var(--m-blur)); color: var(--m-muted);
	transition: border-color var(--m-t-fast), box-shadow var(--m-t-fast);
}
.mar-search:focus-within { border-color: var(--m-primary); box-shadow: 0 0 0 3px rgb(var(--m-primary-rgb) / .18); }
.mar-search input { flex: 1; min-width: 0; border: 0; outline: 0 !important; background: transparent; color: var(--m-text); font: inherit; font-size: .95rem; padding: 0; box-shadow: none; }

.mar-albums { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 1.15rem; }
.mar-card {
	display: flex; flex-direction: column; overflow: hidden; text-decoration: none; color: inherit;
	background: var(--m-surface); border: 1px solid var(--m-border); border-radius: var(--m-radius); box-shadow: var(--m-shadow);
	transition: transform var(--m-t) var(--m-ease), box-shadow var(--m-t) var(--m-ease), border-color var(--m-t);
}
.mar-card:hover { transform: translateY(-4px); box-shadow: var(--m-shadow-lg); border-color: rgb(var(--m-primary-rgb) / .45); }
.mar-card-cover { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(135deg, var(--m-soft), var(--m-alt)); }
.mar-card-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--m-ease); }
.mar-card:hover .mar-card-cover img { transform: scale(1.06); }
.mar-card-ph { position: absolute; inset: 0; display: grid; place-items: center; color: var(--m-link); opacity: .5; }
.mar-card-ph .mar-i { width: 2.6rem; height: 2.6rem; stroke-width: 1.4; }
.mar-card-badges { position: absolute; left: .6rem; bottom: .6rem; display: flex; gap: .35rem; }
.mar-badge {
	display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .55rem; border-radius: 999px;
	font-size: .78rem; font-weight: 600; color: #fff; background: rgb(15 12 25 / .55);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.mar-card-body { display: flex; flex-direction: column; gap: .3rem; padding: .95rem 1.05rem 1.1rem; }
.mar-card-date { font-size: .8rem; font-weight: 600; color: var(--m-link); }
.mar-card-title { font-size: 1.05rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mar-card-desc { color: var(--m-muted); font-size: .88rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mar-more { display: flex; justify-content: center; margin-top: 1.5rem; }
.mar-empty, .mar-state { text-align: center; color: var(--m-muted); padding: 2.5rem 1rem; }
.mar-state { display: grid; gap: 1rem; justify-items: center; }

/* ---------- Album hero ---------- */
.mar-crumb { margin-bottom: .8rem; }
.mar-crumb a { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; font-weight: 600; color: var(--m-link); text-decoration: none; }
.mar-crumb a:hover { text-decoration: underline; }
.mar-hero {
	position: relative; isolation: isolate; overflow: hidden; display: flex; justify-content: space-between; align-items: flex-end; gap: 1.25rem; flex-wrap: wrap;
	padding: clamp(1.15rem, 3.2vw, 2.1rem); border-radius: calc(var(--m-radius) * 1.4);
	border: 1px solid var(--m-border); background: var(--m-surface); box-shadow: var(--m-shadow);
}
.mar-hero::before {
	content: ""; position: absolute; inset: -30px; z-index: -2; background: var(--mar-cover, none) center / cover no-repeat;
	filter: blur(34px) saturate(1.3); opacity: .28; transform: scale(1.1);
}
.mar-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(135deg, rgb(var(--m-primary-rgb) / .12), transparent 70%); }
.mar-hero-main { flex: 1 1 320px; min-width: 0; }
.mar-h1 { margin: 0 0 .75rem; font-size: clamp(1.55rem, 3.6vw, 2.5rem); line-height: 1.18; letter-spacing: -.015em; overflow-wrap: anywhere; }
.mar-meta { display: flex; flex-wrap: wrap; gap: .5rem; }
.mar-chip {
	display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .75rem; border-radius: 999px;
	background: var(--m-soft); color: var(--m-link); font-size: .85rem; font-weight: 600;
}
.mar-desc { margin-top: .95rem; max-width: 72ch; color: var(--m-text); opacity: .88; font-size: .98rem; overflow-wrap: anywhere; }

/* ---------- Prev / next album ---------- */
.mar-pn { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin-block: 1.25rem; }
.mar-pn-bottom { margin-top: 2.5rem; }
.mar-pn-card {
	display: flex; align-items: center; gap: .85rem; min-width: 0; padding: .7rem; text-decoration: none;
	background: var(--m-surface); border: 1px solid var(--m-border); border-radius: var(--m-radius);
	transition: border-color var(--m-t), transform var(--m-t) var(--m-ease), box-shadow var(--m-t);
}
.mar-pn-card:hover { border-color: var(--m-primary); box-shadow: var(--m-shadow); transform: translateY(-2px); }
.mar-pn-card.is-next { flex-direction: row-reverse; text-align: right; }
.mar-pn-thumb { flex: none; width: 4.2rem; aspect-ratio: 1; border-radius: var(--m-radius-sm); overflow: hidden; display: grid; place-items: center; background: var(--m-soft); color: var(--m-link); }
.mar-pn-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mar-pn-text { display: flex; flex-direction: column; gap: .15rem; min-width: 0; flex: 1; }
.mar-pn-label { display: inline-flex; align-items: center; gap: .3rem; font-size: .78rem; font-weight: 600; color: var(--m-link); }
.mar-pn-card.is-next .mar-pn-label { justify-content: flex-end; }
.mar-pn-title { font-size: .98rem; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mar-pn-meta { font-size: .8rem; color: var(--m-muted); }
.mar-pn-empty { display: block; }

/* ---------- Sections ---------- */
.mar-sec { margin-top: 2.25rem; }
.mar-sec-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.mar-sec-title { margin: 0; display: flex; align-items: center; gap: .6rem; font-size: 1.3rem; line-height: 1.2; }
.mar-sec-title .mar-ic { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: .65rem; background: var(--m-soft); color: var(--m-link); }
.mar-count { font-size: .85rem; font-weight: 600; color: var(--m-muted); }
.mar-sec-tools { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---------- Video carousel ---------- */
.mar-vstage { position: relative; overflow: hidden; border-radius: calc(var(--m-radius) * 1.2); background: #0b0a12; box-shadow: var(--m-shadow-lg); }
.mar-vtrack { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.mar-vtrack::-webkit-scrollbar { display: none; }
.mar-vslide { flex: 0 0 100%; min-width: 0; scroll-snap-align: center; scroll-snap-stop: always; }
.mar-vbox { position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: min(78vh, 720px); background: #000; margin-inline: auto; }
.mar-vbox .plyr, .mar-vbox .plyr__video-wrapper { width: 100%; height: 100%; }
.mar-vbox video { width: 100%; height: 100%; object-fit: contain; display: block; background: #000; }
.mar-vbox .plyr__controls { touch-action: pan-y; }
.mar-vposter {
	position: absolute; inset: 0; width: 100%; border: 0; display: grid; place-content: center; justify-items: center; gap: .75rem; padding: 1rem; cursor: pointer; color: #fff; font: inherit; text-align: center;
	background: radial-gradient(circle at 30% 20%, rgb(var(--m-primary-rgb) / .55), transparent 55%), #14111f;
}
.mar-vplay { display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; background: rgb(255 255 255 / .16); border: 1px solid rgb(255 255 255 / .35); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.mar-vplay .mar-i { width: 1.6rem; height: 1.6rem; fill: currentColor; margin-left: .15rem; }
.mar-vposter span:last-child { font-size: .9rem; opacity: .85; max-width: 80%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mar-vnav {
	position: absolute; top: 50%; z-index: 5; transform: translateY(-50%); display: grid; place-items: center; width: 2.9rem; height: 2.9rem; padding: 0;
	border-radius: 50%; border: 1px solid rgb(255 255 255 / .28); background: rgb(12 10 20 / .5); color: #fff; cursor: pointer;
	-webkit-backdrop-filter: blur(var(--m-blur)); backdrop-filter: blur(var(--m-blur));
	transition: background var(--m-t-fast), opacity var(--m-t), transform var(--m-t-fast) var(--m-ease);
}
.mar-vnav:hover { background: var(--m-primary); }
.mar-vnav:active { transform: translateY(-50%) scale(.92); }
.mar-vnav:disabled { opacity: 0; pointer-events: none; }
.mar-vnav.is-prev { left: .7rem; }
.mar-vnav.is-next { right: .7rem; }
.mar-vbar { display: flex; align-items: center; justify-content: space-between; gap: .75rem 1rem; flex-wrap: wrap; padding-top: .85rem; }
.mar-vinfo { display: flex; flex-direction: column; min-width: 0; flex: 1 1 220px; }
.mar-vname { font-size: 1.02rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mar-vsub { font-size: .84rem; color: var(--m-muted); }
.mar-vctl { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.mar-vcount { font-size: .88rem; font-weight: 600; color: var(--m-muted); padding-inline: .3rem; font-variant-numeric: tabular-nums; }
.mar-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin-top: .9rem; }
.mar-dot { width: .55rem; height: .55rem; padding: 0; border: 0; border-radius: 999px; background: var(--m-border); cursor: pointer; transition: width var(--m-t) var(--m-ease), background var(--m-t); }
.mar-dot:hover { background: var(--m-light, var(--m-primary)); }
.mar-dot.is-on { width: 1.7rem; background: var(--m-primary); }

/* ---------- Image grid ---------- */
.mar-panel {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem 1.6rem; align-items: end;
	padding: 1rem 1.15rem; margin-bottom: 1.1rem; border: 1px solid var(--m-border); border-radius: var(--m-radius);
	background: var(--m-glass); -webkit-backdrop-filter: blur(var(--m-blur)); backdrop-filter: blur(var(--m-blur));
	animation: mar-drop .3s var(--m-ease);
}
.mar-field { display: grid; gap: .35rem; font-size: .88rem; }
.mar-field > span { display: flex; justify-content: space-between; gap: .5rem; font-weight: 600; }
.mar-field > span em { font-style: normal; color: var(--m-link); font-variant-numeric: tabular-nums; }
.mar-field small { color: var(--m-muted); }
.mar-field input[type=range] { width: 100%; accent-color: var(--m-primary); margin: 0; }
.mar-check { display: flex; align-items: center; gap: .5rem; font-size: .9rem; font-weight: 600; cursor: pointer; }
.mar-check input { accent-color: var(--m-primary); width: 1.05rem; height: 1.05rem; margin: 0; }

.mar-grid {
	display: grid; grid-template-columns: repeat(var(--mar-cols, 5), minmax(0, 1fr));
	gap: var(--mar-gap, 8px);
}
.mar-div { grid-column: 1 / -1; display: flex; align-items: center; gap: .9rem; margin: 1rem 0 .15rem; }
.mar-div:first-child { margin-top: 0; }
.mar-div::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--m-border), transparent); }
.mar-div-label {
	display: inline-flex; align-items: center; flex-wrap: wrap; gap: .3rem .6rem; padding: .38rem .9rem; border-radius: 999px; font-size: .86rem;
	background: var(--m-glass); border: 1px solid var(--m-border);
	-webkit-backdrop-filter: blur(var(--m-blur)); backdrop-filter: blur(var(--m-blur));
}
.mar-div-label .mar-i { color: var(--m-link); }
.mar-div-label span { color: var(--m-muted); font-variant-numeric: tabular-nums; }
.mar-div-label em { font-style: normal; font-size: .76rem; font-weight: 700; padding: .05rem .5rem; border-radius: 999px; background: var(--m-soft); color: var(--m-link); }

.mar-tile {
	position: relative; isolation: isolate; overflow: hidden; aspect-ratio: 1 / var(--mar-r, .75);
	border-radius: var(--m-radius-sm); background: var(--m-alt);
	transition: box-shadow var(--m-t-fast), background var(--m-t-fast);
}
.mar-tile-open { position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.mar-tile img {
	width: 100%; height: 100%; display: block; object-fit: var(--mar-fit, cover);
	opacity: 0; transform: scale(1); transition: opacity .4s, transform .5s var(--m-ease), border-radius var(--m-t);
}
.mar-tile img.is-ready { opacity: 1; }
.mar-tile.is-broken { background: repeating-linear-gradient(45deg, var(--m-alt), var(--m-alt) 8px, var(--m-soft) 8px, var(--m-soft) 16px); }
@media (hover: hover) { .mar-tile:hover img.is-ready { transform: scale(1.05); } }
.mar-tile::after {
	content: ""; position: absolute; inset: auto 0 0 0; height: 45%; z-index: 1; pointer-events: none; opacity: 0;
	background: linear-gradient(transparent, rgb(8 6 14 / .6)); transition: opacity var(--m-t);
}
.mar-tile:hover::after { opacity: 1; }
.mar-tile-time { position: absolute; right: .5rem; bottom: .4rem; z-index: 2; font-size: .75rem; font-weight: 600; color: #fff; opacity: 0; transition: opacity var(--m-t); pointer-events: none; font-variant-numeric: tabular-nums; }
.mar-tile:hover .mar-tile-time { opacity: .95; }
.mar-tick {
	position: absolute; top: .5rem; left: .5rem; z-index: 3; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; padding: 0;
	border-radius: 50%; border: 2px solid #fff; background: rgb(0 0 0 / .3); color: #fff; cursor: pointer; opacity: 0; transform: scale(.85);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	transition: opacity var(--m-t-fast), transform var(--m-t-fast) var(--m-ease), background var(--m-t-fast);
}
.mar-tick .mar-i { width: .9rem; height: .9rem; opacity: 0; stroke-width: 3; }
.mar-tile:hover .mar-tick, .mar-tick:focus-visible, .mar.is-selecting .mar-tick { opacity: 1; transform: none; }
@media (hover: none) { .mar-tick { opacity: .9; transform: none; } }
.mar-tile.is-sel { box-shadow: 0 0 0 3px var(--m-primary); background: var(--m-soft); }
.mar-tile.is-sel .mar-tick { opacity: 1; transform: none; background: var(--m-primary); }
.mar-tile.is-sel .mar-tick .mar-i { opacity: 1; }
.mar-tile.is-sel img { transform: scale(.9) !important; border-radius: var(--m-radius-sm); }

.mar-foot { display: flex; flex-direction: column; align-items: center; gap: .85rem; margin-top: 1.5rem; text-align: center; }
.mar-showing { font-size: .9rem; color: var(--m-muted); font-variant-numeric: tabular-nums; }
.mar-prog { width: min(260px, 70vw); height: 4px; border-radius: 99px; background: var(--m-border); overflow: hidden; }
.mar-prog i { display: block; height: 100%; border-radius: inherit; background: var(--m-primary); transition: width .5s var(--m-ease); }
.mar-foot-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }

/* ---------- Floating (selection bar / toast) ---------- */
.mar-selbar {
	position: fixed; left: 50%; bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 9990; display: flex; align-items: center; gap: .6rem;
	max-width: calc(100vw - 1.25rem); padding: .5rem .55rem .5rem 1.15rem; border-radius: 999px; color: var(--m-text);
	background: var(--m-glass); border: 1px solid var(--m-border); box-shadow: var(--m-shadow-lg);
	-webkit-backdrop-filter: blur(var(--m-blur)) saturate(1.4); backdrop-filter: blur(var(--m-blur)) saturate(1.4);
	transform: translate(-50%, 160%); transition: transform .45s var(--m-ease);
}
.mar-selbar.is-on { transform: translate(-50%, 0); }
.mar-selbar-n { display: flex; flex-direction: column; line-height: 1.2; font-size: .9rem; white-space: nowrap; }
.mar-selbar-n small { color: var(--m-muted); font-size: .76rem; }
.mar-fl .mar-btn { white-space: nowrap; }
.mar-toast {
	position: fixed; left: 50%; bottom: calc(max(1rem, env(safe-area-inset-bottom)) + 4.4rem); z-index: 99998; max-width: calc(100vw - 1.5rem);
	padding: .65rem 1.2rem; border-radius: 999px; font-size: .9rem; font-weight: 600; line-height: 1.35; text-align: center;
	color: #fff; background: rgb(var(--m-primary-rgb) / .94); box-shadow: var(--m-shadow-lg);
	transform: translate(-50%, 220%); opacity: 0; transition: transform .4s var(--m-ease), opacity .3s; pointer-events: none;
}
.mar-toast.is-on { transform: translate(-50%, 0); opacity: 1; }
.mar-dlframe { position: absolute; width: 0; height: 0; border: 0; visibility: hidden; }

/* ---------- Lightbox ---------- */
.mar-lb { position: fixed; inset: 0; z-index: 99999; display: flex; flex-direction: column; color: #fff; background: rgb(8 6 14 / .95); -webkit-backdrop-filter: blur(var(--m-blur)); backdrop-filter: blur(var(--m-blur)); animation: mar-fade .25s ease; }
html.mar-lock { overflow: hidden; }
.mar-lb-top { display: flex; align-items: center; gap: .9rem; padding: .7rem max(.9rem, env(safe-area-inset-right)) .7rem max(.9rem, env(safe-area-inset-left)); padding-top: max(.7rem, env(safe-area-inset-top)); }
.mar-lb-count { font-size: .88rem; font-weight: 700; padding: .25rem .7rem; border-radius: 999px; background: rgb(255 255 255 / .12); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mar-lb-info { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.3; }
.mar-lb-name { font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mar-lb-sub { font-size: .8rem; opacity: .7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mar-lb-tools { display: flex; gap: .45rem; }
.mar-lb-btn {
	display: grid; place-items: center; width: 2.6rem; height: 2.6rem; padding: 0; border-radius: 50%; color: #fff; text-decoration: none; cursor: pointer;
	background: rgb(255 255 255 / .12); border: 1px solid rgb(255 255 255 / .18); transition: background var(--m-t-fast);
}
.mar-lb-btn:hover { background: rgb(255 255 255 / .24); }
.mar-lb-btn.is-on { background: var(--m-primary); border-color: transparent; }
.mar-lb-stage { position: relative; flex: 1; min-height: 0; overflow: hidden; touch-action: pan-y; }
.mar-lb-img { position: absolute; inset: 0; margin: auto; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; transition: opacity .25s; user-select: none; -webkit-user-drag: none; }
.mar-lb-img.is-loading { opacity: .3; }
.mar-lb-spin { position: absolute; left: 50%; top: 50%; width: 2.4rem; height: 2.4rem; margin: -1.2rem 0 0 -1.2rem; border-radius: 50%; border: 3px solid rgb(255 255 255 / .25); border-top-color: #fff; opacity: 0; pointer-events: none; animation: mar-spin .8s linear infinite; }
.mar-lb-img.is-loading ~ .mar-lb-spin { opacity: 1; }
.mar-lb-nav {
	position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); display: grid; place-items: center; width: 3rem; height: 3rem; padding: 0;
	border-radius: 50%; color: #fff; cursor: pointer; background: rgb(255 255 255 / .12); border: 1px solid rgb(255 255 255 / .2);
	transition: background var(--m-t-fast), opacity var(--m-t);
}
.mar-lb-nav:hover { background: var(--m-primary); }
.mar-lb-nav:disabled { opacity: 0; pointer-events: none; }
.mar-lb-nav.is-prev { left: max(.8rem, env(safe-area-inset-left)); }
.mar-lb-nav.is-next { right: max(.8rem, env(safe-area-inset-right)); }

@keyframes mar-fade { from { opacity: 0; } }
@keyframes mar-drop { from { opacity: 0; transform: translateY(-8px); } }
@keyframes mar-spin { to { transform: rotate(360deg); } }
@keyframes mar-rise { from { opacity: 0; transform: translateY(14px); } }
.mar-albums .mar-card { animation: mar-rise .55s var(--m-ease) both; }
.mar-albums .mar-card:nth-child(2) { animation-delay: .05s; }
.mar-albums .mar-card:nth-child(3) { animation-delay: .1s; }
.mar-albums .mar-card:nth-child(4) { animation-delay: .15s; }

/* ---------- Responsive ---------- */
@media (max-width: 720px) {
	.mar-pn { grid-template-columns: 1fr; }
	.mar-pn-card.is-next { flex-direction: row; text-align: left; }
	.mar-pn-card.is-next .mar-pn-label { justify-content: flex-start; }
	.mar-hero-actions, .mar-hero-actions .mar-btn { width: 100%; }
	.mar-vnav { width: 2.4rem; height: 2.4rem; }
	.mar-vnav.is-prev { left: .4rem; }
	.mar-vnav.is-next { right: .4rem; }
	.mar-sec-tools { width: 100%; }
	.mar-sec-tools .mar-btn { flex: 1 1 auto; }
	.mar-lb-nav { width: 2.5rem; height: 2.5rem; }
	.mar-lb-info { display: none; }
	.mar-lb-count { margin-right: auto; }
	.mar-selbar { width: calc(100vw - 1.25rem); justify-content: space-between; }
	.mar-div-label { font-size: .8rem; }
}
@media (max-width: 420px) {
	.mar-tick { width: 1.55rem; height: 1.55rem; top: .35rem; left: .35rem; }
}
@media (prefers-reduced-motion: reduce) {
	.mar *, .mar-lb, .mar-lb *, .mar-fl { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* =====================================================================
 * v1.1 – tags / category scroller, search + sort + filters, Plyr layout,
 *        fallback dialog and UI polish
 * ===================================================================== */

/* ---------- Tags ---------- */
.mar-tag {
	display: inline-flex; align-items: center; gap: .45rem; flex: none; padding: .42rem .95rem; border-radius: 999px;
	border: 1px solid var(--m-border); background: var(--m-surface); color: var(--m-text); font: inherit; font-size: .88rem; font-weight: 600;
	line-height: 1.2; white-space: nowrap; cursor: pointer; text-decoration: none; user-select: none;
	transition: background var(--m-t-fast), border-color var(--m-t-fast), color var(--m-t-fast), transform var(--m-t-fast) var(--m-ease);
}
.mar-tag em { font-style: normal; font-size: .74rem; font-weight: 700; padding: .05rem .45rem; border-radius: 999px; background: var(--m-soft); color: var(--m-link); }
.mar-tag:hover { border-color: var(--m-primary); color: var(--m-link); }
.mar-tag:active { transform: scale(.96); }
.mar-tag.is-on { background: var(--m-primary); border-color: transparent; color: #fff; box-shadow: 0 4px 14px rgb(var(--m-primary-rgb) / .35); }
.mar-tag.is-on em { background: rgb(255 255 255 / .22); color: #fff; }
.mar-tag.is-link { background: var(--m-soft); border-color: transparent; color: var(--m-link); }
.mar-tag.is-link:hover { background: var(--m-primary); color: #fff; }
.mar-hero-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .85rem; }

.mar-cats { position: relative; display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.mar-cats-track {
	display: flex; gap: .5rem; flex: 1; min-width: 0; padding: .3rem .15rem; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch; cursor: grab;
}
.mar-cats-track::-webkit-scrollbar { display: none; }
.mar-cats-track .mar-tag { scroll-snap-align: center; }
.mar-cats-track.is-drag { cursor: grabbing; scroll-snap-type: none; }
.mar-cats-track.is-drag .mar-tag { pointer-events: none; }
.mar-cats.is-scroll .mar-cats-track {
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 1.2rem, #000 calc(100% - 1.2rem), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 1.2rem, #000 calc(100% - 1.2rem), transparent 100%);
}
.mar-cats-nav {
	flex: none; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; padding: 0; border-radius: 50%; cursor: pointer;
	border: 1px solid var(--m-border); background: var(--m-surface); color: var(--m-text); box-shadow: var(--m-shadow);
	transition: opacity var(--m-t), background var(--m-t-fast), color var(--m-t-fast);
}
.mar-cats-nav:hover { background: var(--m-primary); color: #fff; border-color: transparent; }
.mar-cats-nav:disabled { opacity: .3; pointer-events: none; }
.mar-cats:not(.is-scroll) .mar-cats-nav { display: none; }
@media (hover: none) { .mar-cats-nav { display: none !important; } }

/* ---------- Search / sort / filter bar ---------- */
.mar-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-bottom: 1rem; }
.mar-bar .mar-search { flex: 1 1 260px; min-width: 0; }
.mar-select { display: inline-flex; align-items: center; gap: .55rem; padding: 0 .4rem 0 1rem; border-radius: 999px; border: 1px solid var(--m-border); background: var(--m-glass); -webkit-backdrop-filter: blur(var(--m-blur)); backdrop-filter: blur(var(--m-blur)); }
.mar-select span { font-size: .84rem; font-weight: 600; color: var(--m-muted); white-space: nowrap; }
.mar-select select { border: 0; background: transparent; color: var(--m-text); font: inherit; font-size: .92rem; font-weight: 600; padding: .6rem .6rem .6rem 0; cursor: pointer; outline: 0; }
.mar-select select option { color: #273142; background: #fff; }
.mar-bar .mar-btn { position: relative; }
.mar-dotbadge { font-style: normal; min-width: 1.15rem; height: 1.15rem; padding: 0 .3rem; border-radius: 999px; display: inline-grid; place-items: center; font-size: .7rem; font-weight: 700; color: #fff; background: var(--m-primary); }
.mar-btn.is-on .mar-dotbadge { background: var(--m-primary-hover); }
.mar-filters {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem 1.4rem; align-items: end;
	padding: 1rem 1.15rem; margin-bottom: 1rem; border: 1px solid var(--m-border); border-radius: var(--m-radius);
	background: var(--m-glass); -webkit-backdrop-filter: blur(var(--m-blur)); backdrop-filter: blur(var(--m-blur)); animation: mar-drop .3s var(--m-ease);
}
.mar-filters > .mar-field:first-child { grid-column: 1 / -1; }
.mar-presets { display: flex; flex-wrap: wrap; gap: .45rem; }
.mar-presets .mar-tag { padding: .3rem .8rem; font-size: .82rem; }
.mar-input {
	width: 100%; padding: .55rem .8rem; border-radius: var(--m-radius-sm); border: 1px solid var(--m-border); background: var(--m-surface);
	color: var(--m-text); font: inherit; font-size: .92rem; color-scheme: light dark; height: auto; box-shadow: none;
}
.mar-input:focus { outline: 0; border-color: var(--m-primary); box-shadow: 0 0 0 3px rgb(var(--m-primary-rgb) / .18); }
.mar-result { margin: 0 0 .9rem; font-size: .9rem; font-weight: 600; color: var(--m-muted); }
.mar-card-tags { display: flex; flex-wrap: wrap; gap: .3rem .5rem; margin-top: .25rem; font-size: .78rem; font-weight: 600; color: var(--m-link); }

/* ---------- Plyr: one progress bar on its own row above the tools ---------- */
.mar .plyr__controls { flex-wrap: wrap; row-gap: .1rem; padding: .35rem .75rem .6rem; }
.mar .plyr__controls .plyr__progress__container { order: -1; flex: 1 1 100%; width: 100%; min-width: 0; padding: 0 .3rem; margin: 0 0 .1rem; }
.mar .plyr__controls .plyr__progress { margin: 0; }
.mar .plyr__controls .plyr__controls__item:first-child {margin-right: auto;}
.mar .plyr__controls [data-plyr="mute"] { margin-left: auto; }
.mar .plyr__controls .plyr__volume { max-width: 96px; min-width: 56px; }
.mar .plyr__controls .plyr__time { padding-inline: .25rem; font-variant-numeric: tabular-nums; }
.mar .plyr--video .plyr__controls { background: linear-gradient(transparent, rgb(8 6 14 / .78)); padding-top: 1.6rem; }
.mar .plyr__control--overlaid { background: rgb(var(--m-primary-rgb) / .9); }

/* ---------- Fallback (one-by-one) dialog ---------- */
.mar-dialog { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 1rem; background: rgb(8 6 14 / .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: mar-fade .2s ease; }
.mar-dialog-box {
	width: min(440px, 100%); padding: 1.4rem 1.4rem 1.2rem; border-radius: calc(var(--m-radius) * 1.3); color: var(--m-text);
	background: var(--m-surface); border: 1px solid var(--m-border); box-shadow: var(--m-shadow-lg); animation: mar-rise .35s var(--m-ease);
}
.mar-dialog-box h3 { margin: 0 0 .5rem; font-size: 1.12rem; line-height: 1.3; }
.mar-dialog-box p { margin: .35rem 0; }
.mar-dialog-q { font-weight: 600; }
.mar-dialog-note { font-size: .84rem; color: var(--m-muted); }
.mar-dialog-prog { height: 6px; margin-top: .9rem; border-radius: 99px; background: var(--m-border); overflow: hidden; }
.mar-dialog-prog i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--m-primary); transition: width .4s var(--m-ease); }
.mar-dialog-st { font-size: .9rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.mar-dialog-btns { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; margin-top: 1.1rem; }

/* ---------- Polish ---------- */
.mar-hero { box-shadow: var(--m-shadow), inset 0 1px 0 rgb(255 255 255 / .35); }
.mar-card { will-change: transform; }
.mar-card-cover::after { content: ""; position: absolute; inset: auto 0 0 0; height: 45%; background: linear-gradient(transparent, rgb(8 6 14 / .5)); pointer-events: none; }
.mar-card-badges { z-index: 1; }
.mar-sec-title .mar-ic { box-shadow: inset 0 0 0 1px rgb(var(--m-primary-rgb) / .2); }
.mar-sec-head { padding-bottom: .75rem; border-bottom: 1px solid var(--m-border); }
.mar-vstage { border: 1px solid rgb(255 255 255 / .06); }
.mar-vbar { padding: .9rem .25rem 0; }
.mar-tile { box-shadow: 0 1px 2px rgb(15 23 42 / .08); }
.mar-field input[type=range] { height: 1.2rem; cursor: pointer; }
.mar-btn { box-shadow: 0 1px 2px rgb(15 23 42 / .05); }
.mar-btn-primary { box-shadow: 0 4px 14px rgb(var(--m-primary-rgb) / .3); }
.mar-search { flex: 1 1 240px; }
@media (max-width: 720px) {
	.mar-bar { gap: .5rem; }
	.mar-bar .mar-search { flex-basis: 100%; }
	.mar-select { flex: 1 1 auto; }
	.mar-select select { flex: 1; }
	.mar-filters { grid-template-columns: 1fr 1fr; }
	.mar-filters > .mar-field:first-child { grid-column: 1 / -1; }
	.mar .plyr__controls .plyr__volume {/* max-width: 72px; *//* min-width: 44px; */}
	.mar .plyr__controls .plyr__controls__item.plyr__control { padding: .4rem; }
	.mar-dialog { place-items: end center; }
	.mar-dialog-btns .mar-btn { flex: 1 1 auto; }
}
