:root
{
	--light:#faf8f5;
	--dark:#002929;
	--accent:#efff00; --submit:var(--accent); /* for use in form.jf */
	--dimm:#afafaf;
	--alert:#ff2c30;

	--sans:'adelle-sans',sans;
	--serif:'adelle-sans',sans;
	/* --serif:'utopia-std',serif; */
	
	--page-width:1400px;
	--page-padding:25px;
	--margin:25px;
	
	--spacing:15px;
	--spacing-double:30px;
	
	--header-height:50px;
	--sub-header-height:30px;

	--slide-button:26px;
	
	--default-type:18px;
	--default-line:24px;

	--small-type:16px;
	--small-line:21px;

	--article-type:18px;
	--article-line:24px;

	--article-small-type:13px;
	--article-small-line:17px;
	
	--menu-type:14px;

	--title-type:32px;
	--title-line:36px;

	--page-title-type:50px;
	--page-title-line:1;

	--intro-type:26px;
	--intro-line:32px;
	
	--button-type:16px;
	--button-line:25px;

	--button-large-type:22px;
	--button-large-line:34px;
	
	--banner-type:16px;
	--banner-line:50px;
	
	--streamer-type:45px;
	--streamer-line:50px;
	
	--form-type:18px;
	--form-line:30px;
	
	--curve:cubic-bezier(.23,.34,.18,1);	
}

html
{
	height:100%;
	
	scroll-behavior: smooth;
}
body
{
	margin:0;
	padding:0;
	height:100%;
	
	font-family:var(--serif);
	font-size:var(--default-type);
	line-height:var(--default-line);
	font-weight:normal;
	font-style:normal;

	-webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
	
	background-color:var(--light);
	color:var(--dark);
}
body.dark
{
	--light:#000000;
	--dark:#faf8f5;
	--accent:#0000FF;
	--submit:var(--accent);
}

body *
{
	box-sizing: border-box;
  -moz-box-sizing: border-box;
}
.is-hidden
{
	display:none !important;
}
.no-pointer-events
{
	pointer-events:none;
}
.pointer-events
{
	pointer-events:all;
}
.clickable
{
	cursor:pointer;
}
.dimmed
{
	opacity:.4;
}
.no-transition
{
	transition:none !important;
}
.no-scrollbar
{
	scrollbar-width: none; /* FF */
	-ms-overflow-style: none; /* Edge */
}
.no-scrollbar::-webkit-scrollbar
{
	display: none;
}
.flex
{
	display:flex;
}
.flex.center
{
	justify-content: center;
}
.flex-center-vertical
{
	align-items: center;
}
.flex-wrap
{
	flex-wrap:wrap;
}
.flex-break
{
	flex-basis:100%;
	height:0;
}
.clear:after
{
	content:'';
	display:table;
	clear:both;
}
.full-width
{
	width:100% !important;
}
.nowrap
{
	white-space:nowrap;
}
a
{
	color:inherit;
}

.button,
.head select,
.bar
{
	display:inline-block;
	padding:0 10px;
	border-radius:6px;

	background-color:var(--dark);
	color:var(--light);
	border:1px solid transparent;
	
	text-decoration:none;
	text-transform:uppercase;

	font-family:var(--sans);
	font-size:var(--button-type);
	line-height:var(--button-line);
	
	transition:all .3s ease 0s;

	-webkit-appearance:none;
	-moz-appearance:none;
	-ms-appearance:none;
}
.button.large
{
	font-size:var(--button-large-type);
	line-height:var(--button-large-line);
	padding:0 20px !important;
}
.button.transparent,
.button.cancel
{
	background-color:transparent;
	color:var(--dark);
	border-color:var(--dark);
}
.button.invert
{
	background-color:var(--light);
	color:var(--dark);
}

.text-accent
{
	color:var(--accent);
}
.sans
{
	font-family:var(--sans);
}
.ellipsis
{
	display:-webkit-box;
  -webkit-box-orient:vertical; 
  -webkit-line-clamp:5;
  overflow: hidden;        
}
.warning
{
	color:var(--alert);
}


/* header, menu */

header
{
	position:fixed;
	width:100%;
	z-index:2000;
	pointer-events: none;
	height:calc(var(--page-padding) + var(--header-height));
	
	background-color:var(--light);
}
header .logo,
header .page-menu
{
	pointer-events:all;
}
.page-logo
{
	position: relative;
 	/* width:calc(300px + 9px + var(--margin)); */
 	margin-bottom:var(--page-padding);
 	/* overflow:hidden; */
}
.page-intro
{
	position:absolute;
	left:calc(50% + (var(--margin) / 2));
	top:var(--page-padding);
	max-width:500px;
	margin-right:var(--page-padding);
	overflow:hidden;
	
	transition:transform .3s ease .3s;
}
.page-intro span
{
	transition:opacity .1s ease 0s;
}
.page-intro span.hide
{
	
	opacity:0;
}
#logo-graph
{
	border:1px solid var(--dark);
	margin-right:9px;

	transition:opacity .2s ease .3s;
	
	
}
.page-logo svg
{
	display:block;
	background-color:var(--light);
}
header .logo,
header .page-menu
{
	transform-origin:0 0;
	transition:all .3s ease 0s;
}
#page-theme
{
	position: absolute;
	left:318px;
	top:0;
	transition: opacity .2s ease .3s;
}

/* menu */

.page-menu
{
	background-color:var(--dark);
	color:var(--light);

	/* min-height:50px; */
	position:absolute;
	left:var(--page-padding);
	right:var(--page-padding);

	display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .4s ease 0s;
  
  user-select: none;
}
.page-menu.network
{
	top:10px;
	left:0;
	right:0;
/* 
	position:relative;
	left:unset;
	right:unset;
 */
	background-color:var(--dimm);
}
.page-menu.network .menu a.selected
{
	/* color:var(--dark); */
}
.page-menu:not(.expanded)
{
	cursor:pointer;
}
.page-menu.expanded
{
	grid-template-rows:1fr;
}
.page-menu section
{
	position:relative;
	overflow:hidden;
	height:100%;
	min-height:var(--header-height);
}
.page-menu .toggle,
article.network .toggle
{
	position:absolute;
	left:14px;
	top:13px;
	cursor:pointer;
}
.page-menu:not(.expanded) .toggle .close,
.page-menu.expanded .toggle .open
{
	display:none;
}
.page-menu .menu
{
	margin-top:50px;
	/* min-height:500px; */
	padding:40px var(--spacing) 80px var(--spacing);
}
.page-menu .menu > div:not(.members)
{
	margin-bottom:var(--spacing);
}
.page-menu .menu a
{
	display:block;
	margin:0 12px 0 0 !important;
	min-width:220px;
	text-decoration:none;
}
.page-menu .menu a:hover,
.page-menu .menu a.selected
{
	color:var(--accent);
}
/* .page-menu .menu div:not.member */
.page-menu .menu .members
{
	flex-grow:1;
	display:flex;
	justify-content: flex-end;
}
.page-menu .menu .members a
{
	min-width:0;
}
.page-menu .socials
{
	position:absolute;
	right:0;
}
.page-menu .socials
{
	padding:10px var(--spacing) 0 0;
}
.page-menu:not(.expanded) .socials
{
	opacity:0;
	pointer-events:none;
}
.page-menu .socials a
{
	width:30px;
	height:30px;
	background-color:var(--light);
	color:var(--dark);
	margin-right:5px;
	display:flex;
	justify-content: center;
	align-items: center;
	z-index:1;
}
.page-menu .socials a:last-child
{
	margin-right:0;
}

/* collapsed header (bar) */

header.collapsed .logo
{
	transform:translateX(-53px) scale(calc(1/3));
}
header.collapsed #logo-graph,
header.collapsed #page-theme
{
	opacity:0;
	transition:none;
}
header.collapsed .page-menu
{
	--x-offset:calc(var(--header-height) + 10px + var(--page-padding));
	--y-offset:calc(-150px - var(--page-padding));
	
	
	/* width:calc(100% - var(--x-offset)); */
	/* transform:translate(var(--x-offset),var(--y-offset)) */

	left:var(--x-offset);
	transform:translateY(var(--y-offset));
	
}
header.collapsed .page-intro
{
	transform:translateY(calc(-100% - var(--page-padding)));
	transition-delay:0s;
}



/* layout */

.page-centered
{
	position:relative;
	margin:auto;
	max-width:var(--page-width);
	padding:var(--page-padding);
	
	/* background-color:rgba(250,0,0,.1); */
	
}
.page
{
	padding-top:250px;
	min-height:calc(100vh - (var(--page-padding) * 2)  - 75px);
}
.body
{
	max-width:1000px;
	margin:auto;
}

.page-network
{
	/* margin-top:90px; */
}
.network .page > .head
{
	margin-top:-10px;
	height:70px;
	padding-bottom:20px;
	margin-bottom:calc(var(--page-padding) - 10px);
}

.column
{
	width:calc((100% - var(--margin)) / 2);
}
section
{
	position:relative;
}
.section-title
{
	margin:var(--margin) 0;
	
	text-transform: uppercase;
	text-align:center;
	height:50px;
	
	line-height:50px;

	background-color:var(--dark);
	color:var(--light);	
	
	font-family:var(--sans);
	font-size:var(--default-type);
	font-weight:normal;
}


/* page header */

.page > .head
{
	position:sticky;
	top:75px;
	margin-bottom:var(--page-padding);
	padding-top:10px;

	background-color:var(--light);

	z-index:1999;
}
.page > .head:empty
{
	display:none !important;
}
.page > .head.back:not(:has(.subpage))
{
	display:inline-block;
	/* background-color:transparent;	 */
}
.page > .head a
{
	margin:0 10px 10px 0;
}
.button.back .expand
{
	position:absolute;
	transform:rotate(90deg);
	left:5px;
	top:3px;
	width:18px;
	height:18px;
}
.button.back:has(.expand)
{
	position:relative;
	padding-left:26px;
}

.page > .head.agenda
{
	justify-content: space-between;
}
.page > .head:not(:empty):not(:has(.subpage)) + .body
{
	margin-top:-75px;
}


.head form.jf
{
	margin:0;
	flex-wrap:wrap;
}
.head form.jf > div.filter
{
	display:inline-block;
	position:relative;
	margin:0 10px 10px 0;
}
.head form.jf input,
.head form.jf select
{
	margin:0;
	width:240px;
	padding:0 10px;
	font-size:var(--button-type);
	line-height: var(--button-line);
}
.head form.jf select
{
	background-color:var(--dark);
	border-color:var(--dark);
	color:var(--light);
}
.head form.jf svg.icon.expand
{
	top:4px;
	color:var(--light);
}

.filter svg.search,
.filter svg.reset
{
	position:absolute;
	right:4px;
	top:4px;
}
.filter.active svg.reset
{
	cursor:pointer;
	display:block;
}
.filter svg.reset,
.filter.active svg.search
{
	display:none;
}

input#authors
{
	padding-right:25px;
}
.ui-autocomplete
{
	
	border:1px solid var(--dark) !important;
	border-top:none;
	/* margin-top:-3px; */
	
	font-size:var(--button-type) !important;
	
	color:var(--dark);
	background-color:var(--light);
	
	z-index:1999 !important;
}
.ui-autocomplete .ui-widget-content
{
	border:none !important;
	color:var(--dark);
}
.ui-autocomplete .ui-state-active
{
	margin:0;

	border-top-color:transparent !important;
	border-bottom-color:transparent !important;
	
	background:var(--accent) !important;
	color:var(--dark) !important;
/* 
	border-color:transparent;
	border-left-color:var(--dark);
	border-right-color:var(--dark);
 */
	
}

footer
{
	clear:both;
}
footer .page-centered
{
	padding-bottom:0;
}
footer .flex
{
	justify-content: space-between;
	padding:0 var(--spacing);
	height:50px;

	background-color:var(--dark);
	color:var(--light);
	
	font-size:var(--small-type);
	line-height:var(--small-line);
	
}
footer .flex a
{
	text-decoration: none;
}
footer .socials
{
	padding:0;
}
footer .socials a
{
	width:30px;
	margin-left:5px;
	text-align:center;
}


/* toggle */

.content-toggle
{
	display:flex;
	font-size:13px;
	line-height:16px;
	text-decoration: none;
	
	cursor:pointer;
}
.content-toggle > *
{
	pointer-events:none;
}
.content-toggle .toggle
{
	margin:1px 5px 0 0;
	position:relative;
	display:block;
	
	width:26px;
	height:14px;
	border-radius:14px;
	border:1px solid var(--dimm);
}
.content-toggle .toggle > span
{
	position:absolute;
	display:block;
	
	left:0;
	top:0;
	width:12px;
	height:12px;
	border-radius:50%;
	
	background-color:var(--dimm);
}
.content-toggle.selected .toggle
{
	border-color:var(--dark);
}
.content-toggle.selected .toggle > span
{
	left:auto;
	right:0;
	background-color:var(--dark);
}

/* theme toggle: vertical layout */
.content-toggle.theme
{
	font-size:12px;
	line-height:17px;
}
.content-toggle.theme .toggle 
{
	width:14px;
	height:30px;
	border-color:var(--dark);
}
.content-toggle.theme .toggle > span
{
	background-color:var(--dark);
}
.content-toggle.theme.selected .toggle > span
{
	top:auto;
	bottom:0;
}


/* banner */

.banners .item
{
	overflow:hidden; 
}
.banner
{
	background-color:var(--banner);
	border:1px solid var(--dark);
	height:var(--banner-line);

	font-size:var(--banner-type);
	line-height:var(--banner-line);
	text-transform: uppercase;
	
	overflow:hidden;
}
.banner.clickable:hover
{
	background-color:var(--dark);
	color:var(--light);
	
}
.marquee
{
	display:block;
 	
	z-index:1;
	text-align:left;

	text-decoration:none;
	white-space:nowrap;
}
.banner:hover
{
	/* background-color:var(--dark); */
}
.banner:hover .marquee
{
	/* color:var(--page-bg); */
}
.marquee > span
{
	padding:0 10px;
	display:inline-block;
	min-width:100%;
	
	text-align:center;

	will-change:transform;
	animation:marquee 16s linear infinite;
}
@keyframes marquee
{
  0% { transform:translate3D(0,0,0); }
  100% { transform:translate3D(-100%,0,0); }
}


/* streamer */

.page-streamer
{
	width:65%;
	margin:var(--margin) auto;
	
	font-family:var(--sans);
	font-size:var(--streamer-type);
	font-weight:bold;
	line-height:var(--streamer-line);
	text-align:center;
}
.page-streamer:first-child
{
	margin-top:0;
}
.home .page-streamer
{
	margin:calc(var(--margin) * 2) auto;
}
.page-streamer:not(.in-view)
{
	visibility:hidden;
}
.page-streamer .line-container
{
	overflow:hidden;
	/* background-color:rgba(250,0,0,.1); */
}
.page-streamer .line
{
  opacity:0;
  transition: opacity 1.1s ease 0s;

  transform:translateY(-100%);
  transition:transform .5s var(--curve) 0s;
  
}
.page-streamer.in-view .line
{
  opacity:1;
  
  transform:none;
}
.page-streamer:not(.in-view) .line
{
  transition:none;
}


/* highlights */

.highlights .navigation
{
	position:absolute;
	width:100%;
	z-index:1;
}
.highlights .navigation .flex
{
	margin-top:var(--margin);
	margin-top:var(--spacing-double);
	justify-content: flex-end;
}
.highlights .navigation a.button
{
	display:flex;
	justify-content: center;
	align-items: center;
	margin-left:9px;
	
	cursor:pointer;
	pointer-events:all;
	width:50px;
	height:50px;
	border-radius:0;
}
.highlights .cms-inline-media,
.highlights .slides
{
	aspect-ratio: 16/9 !important;
}
.highlights h2
{
	margin-top:var(--page-padding);
}
.highlights .cms-inline-media[data-caption] + .column h2
{
	margin-top:calc(var(--page-padding) - 24px);
}


/* grids */

.grid
{
	flex-wrap:wrap;
	justify-content:space-between;
}
.grid.articles,
.grid.network
{
	justify-content:flex-start;
}
.grid .item
{
	position:relative;
	
	flex-basis:calc((100% - var(--margin)) / 2);
	margin-right:var(--margin);
	margin-bottom:var(--page-padding);

	text-decoration:none;

	word-break: break-word;
	overflow-wrap: break-word;
}
.grid .item:empty
{
	display:none;
}
.grid .item.no-bottom-margin
{
	margin-bottom:0;
}
.grid a.item:hover
{
	background-color:var(--accent);
}
.grid.articles .item:nth-child(2n),
.grid.two-column .item:nth-child(2n)
{
	margin-right:0;
}
.grid .item .media
{
	aspect-ratio:16/9;
	background-color:rgba(0,0,0,.1);
}
.grid .item .media img
{
	display:block;
	width:100%;
	aspect-ratio:16/9;
	object-fit: cover;
	transition: opacity .6s ease 0s;
	opacity:0;
}
.grid .item .media:not(.in-view) img
{
	opacity:0 !important;
}
.grid .item .media .embed-wrapper
{
	background-size: cover;
  background-position: center;
}
.grid .item .meta
{
	margin-top:5px;
}
.grid .item h2
{
	margin:.5em 0;
  -webkit-line-clamp:2;
}
.grid .item .short
{
  -webkit-line-clamp:5;
}
.grid .item .price-tag
{
	position:absolute;
	right:var(--spacing);
	top:var(--spacing);
}

.grid.intro-right
{
	justify-content: flex-end;
}
.grid.intro-right .item
{
	margin-right:0;
}
.grid.intro-left .item p:first-child,
.grid.intro-right .item p:first-child
{
	margin-top:0;
}

/* related */

.grid.related
{
	border-top:1px solid var(--dark);
	justify-content: flex-start;
}
.grid.related .item,
.grid.network .item,
.grid.articles .item:nth-child(n+5)
{
	flex-basis:calc((100% - (3 * var(--margin))) / 4);
	margin-right:var(--margin);
}
.grid.articles .item:nth-child(n+5) h2
{
	-webkit-line-clamp:3;
}

.grid.related .item:nth-child(4n),
.grid.network .item:nth-child(4n),
.grid.articles .item:nth-child(4n)
{
	margin-right:0;
}
.grid.related .item h3
{
	margin:.4em 0 -.2em 0;
	
	font-size:var(--intro-type);
	line-height:var(--intro-line);
}

.grid.newspapers
{
	margin:auto;
	max-width:1080px;
}
.grid.newspapers .item
{
	flex-basis:calc((100% - 100px) / 3);
	margin-right:0 !important;
	margin-bottom:50px;

	font-size:var(--small-type);
	line-height:var(--small-line);
}
.grid.newspapers .item p
{
	margin:0;
}
.grid.newspapers .item .media
{
	margin-bottom:var(--spacing);
}
/* 
.grid.newspapers .item .media,
.grid.newspapers .item .media img
{
	aspect-ratio: auto;
}
 */
.grid.newspapers .item .media img
{
	aspect-ratio: .69;
	box-shadow: 5px 2px 5px rgba(0, 0, 0, 0.5);
	margin-bottom:10px;
}

/* media page */

.media .item
{
	margin-bottom:40px;
}

.media .text
{
	width:calc((100% - var(--margin)) / 2);
	font-size:var(--small-type);
	line-height: var(--small-line);
}
.media .text h2
{
	margin-bottom:0;
	font-size:var(--default-type);
	line-height: var(--default-line);
}
.media .text h2 + p
{
	margin-top:0;
}

/* projects */

.grid.projects .item:first-child
{
	flex-basis:100%;
}
.grid.projects .item:nth-child(odd)
{
	margin-right:0;
}


/* network */

.grid.network .item
{
	font-size:var(--small-type);
	line-height: var(--small-line);
}
.grid.network .item h2
{
	font-size:var(--default-type);
	line-height: var(--default-line);
}
article.network
{
	position:relative;
	background-color:var(--dark);
	color:var(--light);
	padding:var(--spacing);
}
article.network .toggle
{
	position:sticky;
	top:165px;
	z-index:1000;
}


article.network h1
{
	margin:0 0 var(--margin) 0;
}
article.network .button
{
	border-radius: 0;
}
article.network .info
{
	margin:var(--spacing) 0;
}
#map-display
{
	position:relative;
	width:100%;
	margin-bottom:var(--spacing-double);
	display: grid;
  grid-template-rows: 0fr;
  transition:all .4s ease 0s;
}
#map-display.init
{
	transition:none;
}
#map
{
	width:100%;
	height:100%;
	aspect-ratio:16/9;
}
#map-display.expanded
{
	grid-template-rows: 1fr;
}
#map-toggle + #map-display.expanded
{
	margin-top:var(--spacing-double);
}
#map-label
{
	position:absolute;
	border-radius:0;
	transition:opacity .4s ease .2s;
	transform:translateX(-50%);
	opacity:0;
	pointer-events:none;
}
#map-label.active
{
	opacity:1;
	transition-delay:0s;
	transition-duration:.2s;

}

.marker
{
	width:12px;
	height:12px;
	border-radius:50%;
	background-color:var(--dark);
	cursor:pointer;
}
.marker.recommendation
{
	background-color:var(--medium);
}
.marker.active,
.marker.hover,
.marker:hover
{
	background-color:var(--accent);
}


/* typo / article */

article
{
	font-size:var(--article-type);
	line-height:var(--article-line);
}
.small
{
	font-size:var(--article-small-type);
	line-height:var(--article-small-line);
}

h1.title
{
	font-size:var(--page-title-type);
	line-height:var(--page-title-line);
	margin-bottom:.1em;
}
h1.title + .byline
{
	margin:10px 0 40px 0;
	font-size:var(--small-type);
}
h1.title + .byline:not(:has(.author))
{
	margin-top:0;
}
h1.title + .byline .meta
{
	position:absolute;
	left:var(--page-padding);
}
article.has-intro h1.title + .byline .meta
{
	margin-top:44px;
}
article:not(:has(> .is-header)) h1.title + .byline .meta
{
	margin-top:40px;
}

.title,
h2,
form.jf h2
{
	font-size:var(--title-type);
	font-weight:700;
	line-height: var(--title-line);
}
.title.regular
{
	font-weight:400;
}
.title.section
{
	border-top:1px solid var(--dark);
	margin-top:var(--page-padding-y);
	padding-top:.75em;
}
.subtitle,
.intro,
blockquote
{
	font-family: var(--sans);
	font-size:var(--intro-type);
	line-height:var(--intro-line);
}
sup
{
	font-size:.7em;
	line-height:.8;
}
.meta
{
	font-family: courier;
	font-size:12px;
	line-height:1.5;
}

.issue-color
{
	display:inline-block;
	width:8px;
	height:8px;
	margin-right:4px;
}

h1:not(:hover) .edit
{
	/* display:none; */
}
h1 .edit,
h2 .edit
{
	margin-left:10px;
	font-size:12px;
	font-weight:normal;
	line-height:18px;
	cursor:pointer;
	vertical-align:top;
	
}
article h1
{
	margin-top:10px;
}
blockquote
{
	margin:1.5em auto;
	max-width:50%;
	border-top:1px solid var(--dark);
	border-bottom:1px solid var(--dark);
}
blockquote.left
{
	float:left;
	margin-right:1em;
}
blockquote.right
{
	float:right;
	margin-left:1em;
}

blockquote p:first-child
{
	margin-top:.5em;
}
blockquote p:last-child
{
	margin-bottom:.5em;
}

.callout
{
	margin:1.5em auto;
	padding:.8em;
	background-color:var(--dark);
	color:var(--light);
	border-radius:20px;
	
	padding:var(--spacing-double);
	
	font-family: var(--sans);
	
}

section > h2
{
	margin-top:0;
}

.page-width,
p.caption,
article:not(.full-width) .section-title,
article:not(.full-width) .banner,
hr
{
	--padding:calc(var(--page-padding) * 2);
	--max-width:min(calc(100vw - var(--padding)),calc(1400px - var(--padding)));
	
	width:var(--max-width);
	margin-left:min(0px, calc((1000px - var(--max-width)) / 2));
}

p.caption
{
	width:calc(var(--max-width) / 2);
	font-size:var(--small-type);
	line-height: var(--small-line);
}

.cms-inline-media + p.caption
{
	margin-top:-26px;
}

hr
{
	margin-top:1em;
	margin-bottom:1em;
  border:none;
  border-top:1px dotted var(--dark);
}




/* agenda */

.head.agenda .button
{
	margin-right:0;
}
.agenda > .heading
{
	font-size:var(--intro-type);
	margin:40px 0 15px 0;
}
.agenda-list
{
	margin-bottom:calc(var(--margin) * 2);
	/* min-height:calc(100vh - 200px - var(--page-padding-y)); */
}
.agenda-list hr,
.agenda-list + hr
{
	margin:0;
	border:none;
	border-top:1px solid var(--dark);
	width:100%;
}
.agenda-list + hr
{
	margin-bottom:var(--margin);
}
.header.bar
{
	display:block;
	border-radius:0;
	line-height: var(--sub-header-height);
}
.button.tickets
{
	border-radius:0;
}
.event
{
	position: relative;
	width:100%;
	text-decoration:none;
	padding:var(--spacing) 0;
	/* align-items: center; */
	transition:background-color .3s ease 0s;
}
.event:hover
{
	background-color:var(--accent);
}
.event:hover,
.event:hover .button
{
	/* transition:none; */
}
.event.past
{
	/* opacity:.5; */
}
.event .media
{
	width:160px;
	min-width: 160px;
	aspect-ratio:16/9;
	transition:opacity .6s ease 0s;
	flex-grow:0;
}
.event .media img
{
	display:block;
	width:100%;
	height:100%;
	/* aspect-ratio: 16/9; */
	object-fit:cover;
}
.event .media:not(.in-view)
{
	opacity:0;
}
.event section
{
	padding:0 10px;
	flex:1;
	min-width:0; /* this makes the ellipsis work */
}
.event section > *
{
	overflow:hidden;
	white-space:nowrap;
	text-overflow:ellipsis;
}
.event section .info
{
	font-size:var(--small-type);
	line-height: var(--small-line);
}
.event section .info .label,
.event-info .label
{
	color:var(--dimm);
}


.event h2
{
	margin:.1em 0;
	/* margin:-.15em 0 .4em 0; */
}
.event .button
{
	align-self:center;
}

.event-info 
{
	margin:25px 0;
}
.event-info .venue
{
	font-size:var(--intro-type);
	font-weight:bold;
	/* --intro-line:calc(30/26); */

}
.event-info + .button.tickets
{
	margin-bottom:30px;
}

.event-title
{
	margin:1em 0;
	font-size:var(--title-type);
	line-height: var(--title-line);
}
.event-title 	.line-up
{
	font-weight: normal;
}




.body.agenda
{
	margin-top:0;
}
.body.agenda .intro
{
	margin-bottom:var(--page-padding-y);
}
.body.agenda h1
{
	margin-bottom:.8em;
}
.body.agenda .intro .button
{
	margin:1.8em 0 0 0;
}

article.agenda .cms-inline-media:has(+ p + p) + p
{
	font-size:var(--intro-type);
	line-height:var(--intro-line);
}


/* tickets */

.agenda-list + .header.bar
{
	margin-top:var(--spacing);
}

#page-presale a.presale
{
	display:none;
}
#presale-form
{
	margin-top:42px;
}
#presale-form .header
{
	width:100%;
	margin-bottom:16px;
}

#cart
{
	padding:8px 0;
}
#cart div > span,
#cart div > strong
{
	padding-left:6px;
	display:inline-block;
	min-width:65px;
	text-align:right;
}
#cart div.total
{
	padding-top:10px;
}

.ticket
{
	position:relative;
	min-height:100px;
	
	margin-bottom:0;
	width:100%;
	padding:var(--spacing) 0;
	border-bottom:1px solid var(--dark);
}
label.ticket
{
	font-size:var(--default-type);
	font-family:var(--serif);
}


.ticket.disabled div.name
{
	color:var(--dimm) !important;
	text-decoration: line-through;
}
.ticket.not-available div.name
{
	color:var(--dimm) !important;
}
.ticket .expires
{
	color:var(--dimm);
	font-size:16px;
}
.ticket .stock
{
	font-size:14px;
}
#ticket-select .stats
{
	font-size:16px;
	color:#4796FF;
}
#ticket-select .stats.total
{
	margin-top:10px;
	font-weight:bold;
}
.ticket .amount
{
	float:right;
	text-align:right;
}
.ticket .amount input[type=number],
.ticket .amount.donation input
{
	color:inherit;
	/* line-height:50px; */
	width:60px;
	padding:4px 0 4px 10px;
	border:1px solid var(--dark);
	
	background-color:transparent;
	font-size:16px;
}
.ticket .amount.donation,
#cart div
{
	display:flex;
	justify-content: flex-end;
	align-items: center;
}
.ticket .amount.donation input
{
	margin-left:7px;
	/* text-align:right; */
}

#presale .submit
{
	margin-top:var(--page-padding);
	text-align:right;
}
#presale .submit .button.disabled
{
	opacity:.5;	
}
#presale .submit .button
{
	padding:0 20px;
	background-color:var(--dark);
	color:var(--light);
}
#presale-footer .total
{
	margin-top:var(--page-padding);
	text-align:right;
	font-family:var(--serif);
	font-size:var(--default-type);
}
#presale-footer .total
{
	
}


/* media */

.cms-inline-media
{
	position:relative;
}
.cms-inline-media-thumb,
article .cms-inline-media:not(:has(.slide))
{
	display:none;
}

article .cms-inline-media.left,
article .cms-inline-media.right
{
	width:calc((100% - var(--margin))/2);
}
article .cms-inline-media.left
{
	float:left;
	margin-right:var(--margin);
}
article .cms-inline-media.right
{
	float:right;
}
article .cms-inline-media.right + *
{
	clear:both;
}
article .cms-inline-media
{
	margin-bottom:2em;
	--slides-scale:100%;
}
article .cms-inline-media:not(.right)
{
	clear:left;
}
.cms-inline-media[data-caption]::after
{
	content:attr(data-caption);
	display:block;
	width:var(--slides-scale);
	margin:auto;

	font-size:12px;
	font-family: courier;
	min-height:24px;
}
.slides
{
	position:relative;
	margin:auto;
	/* width:100%; */
	max-height:var(--media-max-height);
	aspect-ratio: auto;
}
.slides .slide
{
	/* max-height:var(--media-max-height); */
	transition:opacity .6s ease 0s;
}
.slides .slide img
{
	margin:auto;
}
.slides .slide.single img
{
	width:100%;
}
.slides
{
	aspect-ratio:auto;
}
.slides .arrow
{
	position:sticky;
	top:50%;
	
/* 
	display:flex;
	align-items:center;
	z-index:auto;
 */
	
	text-align:center;
	padding:0;
	
	border-radius:50%;
	
	
	min-width:var(--slide-button);	
	height:var(--slide-button);

	cursor:pointer;
	
	color:var(--light);
/* 
	background-color:var(--light);
	color:var(--dark);
 */
}
.slides .arrow svg
{
	pointer-events:none;
}
.slides .arrow.prev
{
	right:calc(100% - 10px);
	transform:translate(100%,calc(var(--spacing) * -1));
}
.slides .arrow.prev svg
{
	/* transform:rotate(90deg); */
}
.slides .arrow.next
{
	right:10px;
	transform:translateY(calc(var(--spacing) * -1));
}
.slides .arrow.next svg
{
	transform:rotate(180deg);
}
.slides + .navigation
{
	display:none;
}
.slides + .navigation .dot
{
	border-radius:3px;
	background-color:var(--light);
}
.slides .slide .embed-wrapper
{
	/* width:100%; */
	max-width:100%;
	max-height:var(--media-max-height);
	
	overflow:hidden;
	flex-shrink:0;
	background-size:cover;
	background-position:center;
}
.slides .slide.single .embed-wrapper
{
	margin:auto;
	height:100%;
}
.slides .slide:not(.in-view)
{
	opacity:0;
}

.embed-wrapper iframe
{
	width:100%;
	height:100%;
  object-fit: cover;
}

#zoom
{
	position:fixed;
	inset:0 var(--margin);
	z-index:2000;
	
}
#zoom .slides
/* 
#zoom .slides .slide,
#zoom .slides .slide .embed-wrapper
 */
{
	max-height:calc(100vh - 80px);	
}
#zoom .cms-inline-media
{
	margin-top:var(--slides-valign);
}

#zoom .fill.fade
{
	position:absolute;
	inset:0;
	opacity:.89;
	z-index:-1;
	
}
.cms-inline-media.placeholder
{
	visibility: hidden;
}

.downloads 
{
	flex-direction: column;
	align-items: flex-start;
}
.downloads > .button
{
	margin-bottom:10px !important;
}


/* form */

form.jf
{
	--row-spacing:15px;
	--accent:var(--submit);

	margin:0;
	font-family: var(--sans);
	font-size:var(--small-type);
}
form.jf .header.bar
{	
	margin:30px 0 var(--spacing) 0;
}

form.jf.inline input,
form.jf.inline textarea,
form.jf.inline select,
form.jf.inline label.input
{
	/* margin-bottom:0; */
	border-radius:0;
}
form.jf div.check
{
	border:none;
}
form.jf svg.icon.expand,
form.jf svg.icon.locked
{
	top:2.4em;
}
form.jf em.guide
{
	color:var(--dimm);
	opacity:1;
	margin-top:.4em;
	line-height:1.5;
}

form.jf.inline input[type="submit"]
{
	padding:0 10px;
  border-radius:5px;
  background-color: var(--dark);
  border-color:var(--dark);
  color: var(--light);
}
form.jf input[type="submit"].button
{
	background-color:var(--accent) !important;
	color:var(--dark) !important;
	margin-top:.375rem;
	font-weight:normal;
}


/* responsive layouts */

@media (max-width:1300px)
{
	/* create space for left sidebar items */
	
	.page > .head:not(:empty):not(:has(.subpage)) + .body
	{
		margin-top:0;
	}
	.page > .head
	{
		margin-bottom:var(--page-padding);
	}
	
	article h1
	{
		margin-top:-5px;
	}
	article h1.title + .byline .meta,
	article.has-intro h1.title + .byline .meta,
	article:not(:has(> .is-header)) h1.title + .byline .meta
	{
		margin-top:10px;
	}
	.articles h1.title + .byline
	{
		margin-bottom:60px;
	}
}

@media (max-width:1100px)
{
	.page-menu .menu
	{
		flex-wrap:wrap;
		padding:var(--spacing);
		max-height:calc(100vh - 50px - (var(--page-padding) * 2));
		overflow:auto;
	}
	.page-menu .menu .members
	{
		flex-basis:100%;
	}
	.page-menu .menu strong
	{
		margin-right:12px;
	}
	.page-menu .menu .members > div
	{
		display:flex;
	}
	.grid.network .item
	{
  	flex-basis: calc((100% - var(--margin)) / 2);
  }
  .grid.network .item:nth-child(2n)
  {
  	margin-right:0;
  }
}

@media (max-width:900px)
{
	:root
	{
		--page-padding:12px;
		--page-padding-y:24px;

		--margin:12px;
	}
	#page-theme .label
	{
		display:none;
	}
	.page
	{
		padding-top:224px;
	}
	.page > .head
	{
		top:62px;
	}

	.highlights .navigation .flex
	{
		margin-top:var(--margin);
	}
	.highlights .cms-inline-media[data-caption] + .column h2
	{
		margin-top: calc(var(--page-padding) - 12px);
	}
	
	.event
	{
		flex-wrap:wrap;
	}
	.event .media
	{
		width:calc(240 / 900 * 100vw);
		min-width:0;
	}
	
	.grid.related .item
	{
  	flex-basis: calc((100% - var(--margin)) / 2);	
  }
  .grid.related .item:nth-child(2n)
  {
  	margin-right:0;
  }
  
  article.network .toggle
  {
  	top:153px;
  }
}

@media (max-width:650px)
{
	:root
	{
		--streamer-type:38px;
		--streamer-line:42px;
	}

	/* place intro below logo */
	
	.page
	{
		padding-top:calc(236px + var(--page-offset));
	}
	.page-intro
	{
		position:relative;
		left:auto;
		top:auto;
		margin:0 0 var(--page-padding) 0;
		max-width:100%;
		z-index:-1;
	}
	header.collapsed .page-menu
	{
	  --y-offset: calc(-150px - var(--page-padding) - var(--page-offset) - var(--page-padding));
	}
	header.collapsed .page-intro
	{
		transform: translateY(calc(-100% - var(--page-padding) - 150px - var(--page-padding)));
		transform:none;
	}
	header .page-intro section
	{
		transition:transform .3s ease .3s;
	}
	header.collapsed .page-intro section
	{
		transform:translateY(-100%);
		transition:none;
	}
	
	
	/* single column layout */
	
	.grid:not(.banners) .item
	{
		flex-basis:100% !important;
		margin-right:0;
	}
	.column,
	.page-streamer,
	.media .text
	{
		width:100%;
	}
	blockquote
	{
		margin-left:var(--page-padding);
		margin-right:var(--page-padding);

		max-width:100%;
	}
	.intro-right
	{
		margin-bottom:var(--page-padding);
	}
	.highlights h2
	{
		margin:68px 0 0	0;
	}
	.highlights .cms-inline-media[data-caption] + .column h2
	{
		margin:44px 0 0 0;
	}
/* 
	.head form.jf > div:first-child
	{
		flex-basis:100%;
	}
 */
	.page > .head.back:not(:has(.subpage))
	{
	  width:100%;
	}
	article .cms-inline-media.left,
	article .cms-inline-media.right
	{
		float:none;
		width:100%;
		margin:0;
	}
	p.caption
	{
		width:100%;
	}
	
	
	/* speed-up banners (smaller distance!) */
	
	.marquee > span
	{
		animation-duration:7s;
	}
}

@media (max-width:500px)
{
	.head:has(form.jf)
	{
		position:relative;
		top:auto;
	}
	.page-menu .menu .members
	{
		justify-content: flex-start;
	}
	.page-menu .menu .members > div
	{
		display:block;
	}
	.event .media
	{
		min-width: 100%;
	}
	.event section
	{
		flex-basis: 100%;
		padding:10px 0;
	}
	.event .button
	{
		margin:0 auto 10px auto;
	}
	label.ticket.donation strong
	{
		display:block;
	}
	
}
