@charset "UTF-8";

/**
 * styles.css 1.0.0
 * Author: hybrid.
 *
 * Project base overrides — chargé en dernier, après tous les composants.
 * Tokens projet, hr custom, typographie projet, utilitaires, post-*.
 *
 * Sections
 * VARS        — tokens projet (line-break, separators)
 * HR          — séparateur SVG projet (override reset.css hr)
 * FORMATS     — .distribution, .credits
 * TITLES      — .main-title, .book-title
 * SEE ALSO    — .see-also
 * BOOK        — .book-infos
 * UTILITIES   — .centered, .copyright, .logo
 * POST        — .post-infos, .post-metas, .post-meta
 *
 * Dependencies
 * --font-size          defined in fonts.css
 * --font-weight-bold   defined in fonts.css
 * --content-spacing    defined in spacing.css
 * --accent-color       defined in colors.css
 * --main-title-font-size defined in fonts.css
 * --line-break-ratio   defined here
 * --line-break         defined here
 */



/* ================================================================================================== */
/* ============================================= CONFIG ============================================= */
/* ================================================================================================== */

/* ============================== LINE BREAK ============================== */

:root {
	--line-break-ratio: 1340/16;
	--line-break: url('../images/layout/slpj-separator.svg');
	--line-separator-ratio: 247.19/16;
	--line-separator-2: url('../images/layout/slpj-separator-02.svg');
}



/* ================================================================================================= */
/* ============================================= THEME ============================================= */
/* ================================================================================================= */


/* ============================== HR ============================== */

hr:not(.blank) {
	border-bottom: 0;
	aspect-ratio: var(--line-break-ratio);
}
hr:not(.blank)::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	background: var(--line-break);
	background-size: 100% auto;
	background-position: center;
	background-repeat: no-repeat;
}

/* =============== SEPARATOR 2 =============== */

hr.separator-2 {
	aspect-ratio: var(--line-separator-ratio);
	max-height: 2em;
}
hr.separator-2::after {
	background: var(--line-separator-2);
}


/* ============================== TITLES ============================== */

/* =============== TITLE =============== */

.title {
	line-height: var(--title-line-height);
	text-transform: var(--title-transform);
}


/* =============== MAIN TITLE =============== */

/* Primary page title with optional SVG line */

.main-title {
	font-size: var(--main-title-font-size);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-transform: uppercase;
}
.page-title .description,
.main-title .description {
	line-height: 1;
}
.main-title .inline {
	width: 100%;
	align-items: center;
	gap: .25em;
}
.main-title .slpj-line {
	height: auto;
	width: 100%;
	max-height: .5em;
	max-width: 2em;
	aspect-ratio: 100/26;
	overflow: hidden;
}

@media (max-width: 760px) {
	.page-title .description,
	.main-title .description {
		font-size: .5em;
	}
}
@media (min-width: 760px) {
	.page-title .description,
	.main-title .description {
		font-size: .2875em;
	}
}


/* =============== WITH SMALL =============== */

h1 .small,
.page-title .small {
	display: inline-block;
	font-size: .5em;
}


/* =============== BOOK TITLE =============== */

/* Standalone book heading */

.book-title {
	font-size: calc(var(--font-size) * 3);
	text-transform: unset;
	font-weight: var(--font-weight-bold);
}


/* ============================== SEE ALSO ============================== */

/* For archives in single */

.see-also {
	position: relative;
	padding-top: calc(var(--content-spacing) * 1.5);
	padding-bottom: calc(var(--content-spacing) * 1.5);
}
.see-also:before,
.see-also:after {
	content: '';
	position: absolute;
	left: 0;
	width: 100%;
	aspect-ratio: var(--line-break-ratio);
	background: var(--line-break);
	background-size: 100% auto;
	background-position: center;
	background-repeat: no-repeat;
}
.see-also:before {
	top: 0;
}
.see-also:after {
	bottom: 0;
}
.see-also .hidden + * {
	margin-top: 0;
}
.see-also a {
	display: block;
}
.see-also a::after {
	display: none;
}

@media (max-width: 760px) {
	.see-also {
		font-size: calc(var(--font-size) * 1.25);
	}
}
@media (min-width: 760px) {
	.see-also {
		font-size: calc(var(--font-size) * 1.5);
	}
}


/* ============================== BOOK ============================== */

.book-infos.list {
	display: flex;
	flex-direction: column;
	gap: .5em 0;
}


/* ============================== UTILITIES ============================== */

.centered {
	text-align: center;
}
.copyright {
	font-size: .625rem;
	text-transform: none;
}
.logo {
	max-width: 10rem;
}


/* ============================== POST ============================== */

.post-infos a {
	color: var(--accent-color);
	font-weight: var(--font-weight-bold);
}
.post-infos a:hover {
	color: inherit;
}
.post-infos a::after {
	display: none;
}
.page-title + .post-range {
	margin-top: calc(var(--content-spacing) / 2);
}
.post-metas {
	display: inline-flex;
	gap: .5em;
}
.post-meta {
	display: inline-flex;
	gap: .5em;
}
.post-meta > * {
	margin: 0 !important;
}


/* ============================== BLOCKQUOTE ============================== */

/*
blockquote.important {
	font-size: 2em;
}
section.focus blockquote.important {
	margin-left: auto;
	margin-right: auto;
}
*/

blockquote cite {
	display: block;
	font-size: .75em;
	font-style: normal;
	text-align: right;
	font-weight: var(--font-weight-bold);
}
/*
blockquote cite:before {
	content: "— ";
}
*/



/* ================================================================================================= */
/* ============================================= THEME ============================================= */
/* ================================================================================================= */

/* here for project-specific overrides */

/*
.centered h1,
.centered h2,
.centered h3,
.centered h4,
.centered h5,
.centered h6 {
	text-align: center;
}
*/

/* =============== DEBUG =============== */

pre {
	display: inline-block;
	font-size: .75em;
	white-space: unset;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
pre.small {
	font-size: .625em;
}
.small pre {
	font-size: inherit;
}
.debug-panel {
	position: fixed;
	z-index: 999999;
	bottom: 0;
	right: 0;
	padding: 1em;
}


/* ============================== BOOK LABELS ============================== */

.book-label {
	display: inline-block;
	text-transform: uppercase;
	font-size: .875em;
	font-weight: var(--font-weight-bold);
	padding: .5em 1.5em;
	background: var(--theme-color);
}


.book-labels {
	display: inline-flex;
	flex-wrap: wrap;
	gap: .5em;
	font-size: .75em;
}
.book-labels a {
	display: inline-block;
	text-transform: uppercase;
	font-size: 1em;
	font-weight: var(--font-weight-bold);
	padding: .5em 1.5em;
	background: var(--theme-color);
}

.book-labels a::after,
.book-label::after {
	display: none;
}
main > .book-labels {
	align-self: flex-start;
	width: auto !important;
}
.book-labels + h1 {
	margin-top: calc(var(--content-spacing) / 2) !important;
}


/* =============== ACTIVE =============== */

.book-labels a.active,
.book-label.active {
	color: var(--theme-color);
	background: var(--dark-color);
}

.book-labels a.active {
	order: -1;
}

/* =============== HOVER =============== */

@media (hover: hover) {
	.book-labels a:hover,
	.book-label:hover {
		color: var(--theme-color);
		background: var(--dark-color);
	}
}
@media (hover: none) {
	.book-labels a.hover,
	.book-label.hover {
		color: var(--theme-color);
		background: var(--dark-color);
	}
}



/* ============================== LIVE ============================== */

/* =============== CONFIG =============== */

:root {
	--live-link-width: 20rem;
	--live-link-min-width: 10rem;
}
@media (max-width: 760px) {
	:root {
		--live-link-width: 15rem;
	}
}


/* =============== ANIMATIONS =============== */

.live-modal,
.live-modal a.live-link,
a.live-link .title,
a.live-link .play-button,
/*a.live-link iframe,*/
a.live-link figure.live-video-container {
	transition: all var(--duration-fast);
}
.live-modal:hover {
	animation: tilt-shaking var(--duration-normal) linear;
}
body.scrolled.down .live-modal:hover,
body.scrolled.end .live-modal:hover {
	animation: tilt-shaking var(--duration-fast) linear var(--duration-normal);
}


/* =============== LIVE MODAL =============== */

.live-modal {
	position: fixed;
	z-index: 2000;
	bottom: 1em;
	right: 1em;
	display: flex;
	flex-direction: column;
	border-radius: 1em;
	width: var(--live-link-width);
	margin: 0;
	font-size: .75em;
	filter: drop-shadow(0 0 .25em rgba(var(--dark-rgb), .5));
	background: var(--bright-color);
}
body.scrolled.down .live-modal,
body.scrolled.end .live-modal {
	font-size: .625em;
	width: var(--live-link-min-width);
}
body.scrolled.down .live-modal:hover,
body.scrolled.end .live-modal:hover {
	font-size: .75em;
	width: var(--live-link-width);
}



/* =============== LIVE LINK =============== */

a.live-link iframe {
	position: absolute;
	z-index: 20;
	top: 50%;
	left: 50%;
	height: 100%;
	width: 100%;
	/*aspect-ratio: 16/9;*/
	pointer-events: none;
	opacity: 0;
	border-radius: var(--thumbnail-border-radius);
	transform: translate3d(-50%, -50%, 0);
	/*will-change: opacity;*/
	/*transition: opacity var(--duration-normal);*/
	transition:
	opacity var(--duration-slow),
	width var(--duration-slow);
}

/*
a.live-link > * {
	margin: 0;
}
a.live-link .thumbnail {
	z-index: 1;
}
	*/
/*
a.live-link iframe {
	position: absolute;
	z-index: 20;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	aspect-ratio: 16/9;
	pointer-events: none;
	opacity: 0;
	border-radius: var(--thumbnail-border-radius);
}
*/
a.live-link .play-button {
	position: absolute;
	z-index: 30;
	top: 50%;
	left: 50%;
	margin: 0;
	transform: translate(-50%, -50%);
	background: var(--bright-color);
	padding: 1em;
	display: flex;
	border-radius: 50%;
	pointer-events: none;
	opacity: 0;
}
a.live-link:hover .play-button {
	opacity: 1;
}
a.live-link .title {
	position: absolute;
	z-index: 20;
	color: var(--alert-color);
	background: var(--bright-color);
	font-weight: var(--font-weight-medium);
	align-items: center;
	text-transform: uppercase;
	padding: .5em 1em;
	border-radius: 1em;
	margin: 1em;
}
a.live-close {
	position: absolute;
	z-index: 30;
	top: 1em;
	right: 1em;
	font-size: inherit;
	color: var(--bright-color);
	background: var(--alert-color);
	display: flex;
	align-items: center;
	justify-content: center;
	height: 2.5em;
	width: 2.5em;
	padding: .5em;
	border-radius: 50%;
}
a.live-close:hover {
	color: var(--alert-color);
	background: var(--bright-color);
}


/* =============== IS-LIVE =============== */

/* nav a.is-live — unused */

.is-live {
	display: inline-flex;
	gap: .5em;
	color: var(--alert-color);
}
.is-live::before {
	content: "";
	display: inline-block;
	height: .75em;
	width: .75em;
	border-radius: 50%;
	background-color: var(--alert-color);
}