body {
	background-color: rgba(48, 48, 48);
	color: black;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
	overflow-x: hidden;
	/* margin: 1% 1% 0 1%; */
	padding: 1.5vh;

	aspect-ratio: 4 / 3;
	max-width: 100vw;
	max-height: 100vh; 
	margin: 0 auto;
	display: flex;
	flex-direction: column;
}

:root {
	--page-height: 100vh;
	--prompt-opacity: 0;
}

div.page {
	display: flex;
	margin: 0 0;
	/* aspect-ratio: 4 / 3;
	max-width: 100vw; 
	max-height: calc(100vh - 4rem - 2%);  */
	width: 100%;
	/* min-height: calc(100% - 6vh);; */
	padding-top: 1.5vh;
	border-radius: 1.5vh;
	background-color: white;
	flex-grow: 1;
	flex-direction: column;
}

div.header { 
	font-size: 3vh;
	/* font-weight: bold; */
	padding-top: 0;
	padding-bottom: 1.25vh;
	margin-bottom: 1.5vh;
	display: flex;
	width: 100%;
	color: black;
	/* background-color: hsl(197, 20%, 20%); */
	font-family: 'webfontMDCN';
	border-width: 0 0 0.3vh 0;
	border-style: solid;
	border-color: #C0C0C0;
}

div.footer { 
	font-size: 1vh;
	position: relative;
	width: 100%;
	height: 6rem;
	color: black;
	/* margin: auto 0 2% 0; */
	/* background-color: rgba(51, 51, 51, 0.95); */
	/* background-color: hsl(197, 20%, 20%); */
	font-family: 'Arial', Helvetica, sans-serif;
	font-weight: bold;
	border-width: 0.3vh 0 0 0;
	border-style: solid;
	border-color: #C0C0C0;
	border-radius: 1.vh;
}

div.navbar { 
	font-size: 3vh;
	padding: 0;
	/* padding-bottom: 1rem;
	margin-bottom: 1rem; */
	width: 100vh;
	height: 7vh;
	color: black;
	text-align: left;
	background-color: rgba(48, 48, 48, 0.95);
	margin: 0 0;
	text-wrap: nowrap;
	display: flex;
}

div.muse {
	position: relative; left: 1vh; font-weight: bold;
	display: inline-block;
	text-wrap: nowrap;
}

#breadcrumb, #breadcrumb ul, .breadcrumb, .horizontal {
	height: 2vh;
	padding: 0;
	margin: 0;
	transition: none;
}

#breadcrumb ul {
	transform: translateY(-1vh);
	transition: none;
}

a{
	transition: none;
}

sub {
	display: inline-block;
    vertical-align: sub; /* Keep the subscript positioning */
	line-height: 1;
}

sup {
	display: inline-block;
    vertical-align: super; 
	line-height: 1;
}

div.code, div.maths {
	margin: 0 auto;
	text-align: left;
	white-space: pre;
	font-family: monospace;
	font-weight: bold;
	/* color:#808080; */
	transition: opacity 0.5s ease-in-out;
	tab-size: 3;
}

div.maths {
	font-family: 'Times New Roman', Times, serif;
	font-weight: normal;
	/* color:#808080; */
}

frac {
	position: relative;
	vertical-align: +40%;
}

frac::after {
	content: attr(data-y);
	position: absolute;
	left: 0;
	top: 100%;
	border-top: solid 1px black;
}

pre {
    display: none;
}

pre.code {
    visibility: visible;
	display: inline-block;
	position: relative;
	width: auto;
	height: auto;
	tab-size: 3;
	transition: opacity 0.25s ease-in-out;
	transition: color 0.25s ease-in-out;
}

pre.code:before {
	content: "CODE COPIED";
	display: inline-flex;
	position: absolute;
	font-size: 100%;
	border-radius: 2%;
	align-items: center;
	left: -5%;
	right: -5%;
	top: -5%;
	bottom: -5%;
	/* width: max-content; */
	/* left: 25%;
	top: 35%; */
	background-color: #ff660080;
	border: 2px dotted #ff6600;
	/* border-style: dotted; */
	justify-content: center;
	color: #000000;
	font-family: Lato;
	font-weight: bold;
	text-shadow: #ff6600;
	opacity: var(--prompt-opacity);
	transition: opacity 0.25s ease-in-out;
	/* background-color: #ff6600; */
	pointer-events: none;
}

pre.code:hover {
	cursor: pointer;
}

.pagenumber { 

}

div#pagenumber {
	position: absolute;
	font-size: 80%;
	right: 2vh;
	bottom: 2vh;
	color: #ffffff40;
	font-family: Lato;
	user-select: none;
	pointer-events: none;
}

c {
	font-weight: bolder;
	font-family: monospace;
}

div.left, div.right {
	cursor: pointer;
	user-select: none;
	/* transform: translateY(-5%); */
	background-image: url(img/sprites.svg)
}

div.left {
	position: absolute;
	transform: translateY(20%);
	z-index: 1;
	width: 4vh;
	height: 4vh;
	right: calc(11vh + calc(max(100vw,132vh) - 132vh) / 2);
	background-size: 128vh 64vh;
	background-position: -64vh -40vh;
	background-repeat: no-repeat;
}

div.right {
	position: absolute;
	transform: translateY(20%);
	width: 4vh;
	height: 4vh;
	right: calc(6vh + calc(max(100vw,132vh) - 132vh) / 2);
	/* left: calc(128vh - 8vh + max(0, 0.5 * (100vw - 100vh))); */
	/* right: 0vh; */
	/* right: -3vh; */
	background-size: 128vh 64vh;
	background-position: 0 -40vh;
	background-repeat: no-repeat;
}

div.left.disabled,div.right.disabled {
	cursor: default;
	opacity: 0;
	color: transparent;
}

div.extra {
	position: absolute;
	top: 11vh;
	right: calc(44vh + calc(max(100vw, 132vh) - 132vh) / 2);
	width: 22vh;
	height: 3.5vh;
	/* display: none; */
	background-color: #ff6600E0;
	border-radius: 0.5vh;
	text-align: center;
	align-content: center;
	color: white;
	font-weight: normal;
	cursor: pointer;
}

div#audio {
	display: inline-flex;
	position: absolute;
	top: 11vh;
	right: calc(32vh + calc(max(100vw, 132vh) - 132vh) / 2);
	width: 12vh;
	height: 3.5vh;
	display: none;
}

div#audio > img, div#video > img {
	width: 3.5vh;
	height: 3.5vh;
	margin-left: 0.75vh;
}

div#video {
	background-color: red;;
}

div#video > video {
	background-color: white;
	position: fixed;
	top: 19vh;
	width: 126vh;
	height: 78vh;
	left: calc(3vh + (max(100vw, 132vh) - 132vh) / 2);
	z-index: 150;
	border: 0.5vh dashed #ff6600;
	border-radius: 1vh;
}

div#video::after {
  content: "VIDEO";
  position: fixed;
  right: calc(5vh + (max(100vw, 132vh) - 132vh) / 2);
  top: 21vh;
  height: 4vh;
  background-color: #ff6600;
  color: white;
  font-size: 2vh;
  font-weight: bold;
  padding: 1vh;
  border-radius: 0.5vh;
  pointer-events: none;
  z-index: 150;
  display: inherit;
}

/* Base slider styling */
#seek {
	-webkit-appearance: none; /* Safari/Chrome */
	width: 20vh;
	height: 3.5vh;
	background: #c0c0c0;
	border-radius: 3px;
	outline: none;
	opacity: 0.7; /* Default opacity */
	margin-left: 0.75vh;
	border-radius: 0.5vh;
	padding: 0 1vh;
	transition: opacity 0.2s;
}

/* WebKit: Chrome, Safari, Edge (Chromium) */
#seek::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 1.5vh;
  height: 1.5vh;
  background: #404040;
  border-radius: 50%;
  cursor: pointer;
  margin-top: -.4vh;
}

#seek::-webkit-slider-runnable-track {
  height: 6px;
  background: gray;
  border-radius: 3px;
}

/* Firefox */
#seek::-moz-range-thumb {
  width: 20px;
  height: 20px;
  background: red;
  border-radius: 50%;
  border: none;
  cursor: pointer;
}

#seek::-moz-range-track {
  height: 6px;
  background: gray;
  border-radius: 3px;
}

/* Internet Explorer / Edge (Legacy) */
#seek::-ms-thumb {
  width: 20px;
  height: 20px;
  background: red;
  border-radius: 50%;
  cursor: pointer;
}

#seek::-ms-track {
  height: 6px;
  background: transparent;
  border-color: transparent;
  color: transparent;
}

#seek::-ms-fill-lower {
  background: gray;
  border-radius: 3px;
}

#seek::-ms-fill-upper {
  background: gray;
  border-radius: 3px;
}

div.title {
	position: relative;
	color:#ff6600;
	text-align: left;
	left: 0;
	/* padding-left: 3vh; */
	right: calc(100% - 14vh);
	font-size: 5vh;
	text-transform: uppercase;

	margin-left: 3vh; width: 32%; text-wrap: nowrap; 
}

.mac div.title {
	transform: translateY(10%);
}

#breadcrumb > img {
	float: right;
	height: 5vh;
	margin-top: 0.5vh; 
	margin-right: 1vh;
}

iframe#banner {
	border: none;
	overflow: hidden;
	width: calc(calc(min(100vw,132vh) - 46vh - 22vh));
	height: 5vh;
	position: fixed;
	top: 1.75vh;
	left: calc(46vh + calc(max(100vw,132vh) - 132vh) / 2);
	/* right: calc(23vh + calc(max(100vw,132vh) - 132vh) / 2); */
	flex-grow: 1;
}

iframe#inset {
	border: none;
	overflow: hidden;
	/* width: 132vh; */
	position: absolute;
	margin-left: 7vh;
	width: 116vh;
	height: 15vh;
	bottom: 8vh;
	/* min-height: 15vh; */
	/* position: fixed; */
	/* top: 1.75vh; */
	/* left: calc(46vh + calc(max(100vw,132vh) - 132vh) / 2); */
	/* right: calc(23vh + calc(max(100vw,132vh) - 132vh) / 2); */
	/* flex-grow: 1; */
}

div.practical {
	width: 95%;
	height: 40%;
	left: 2.5%;
	top: 5vh;
	color: white;
}

div.text {
	margin: 0 auto 0 auto;
	overflow: visible;
	padding-top: 2vh;
	width: 85%;
	height: 10vh;
	text-align: center;
	display: flexbox;
	color: black;
	font-family: 'Lato', Arial, Helvetica, sans-serif;
	/* z-index: 100; */
}

.main, .block {
	width: 90%;
	left: 0;
	margin: 0 auto;
	cursor: pointer;
	filter: invert() brightness(105%) saturate(120%) hue-rotate(7.5deg) ;
	mix-blend-mode: multiply;
}

.spectrum {
	filter: unset;
	clip-path: inset(2px);
	width: 75%;
	margin-top: 5%;
}

.spectrum2 {
	filter: unset;
	clip-path: inset(4px);
	width: 75%;
	margin-top: 5%;
}

.waveform {
	width: 75%;
	margin-top: 5%;
}

.function {
	width: 70%;
	padding-top: 7%;
}

h {
	color: #ff6600;
}

hb {
	color: #0066ff;
}

.hide {
	display: none;
}

.block {
	margin: auto;
	margin-top: 10vh;
	width: 80%;
	filter: unset;
}

.todo {
	color: red;
}

iframe.live, iframe.function {
	/* position: relative; */
	border:0;
	padding:0; 
	margin: auto auto 0 auto;
	margin-top: 3%;
	margin-bottom: 3%;
	filter:none; 
	width: 90%; 
	overflow: hidden; 
	border-radius: 5px;
	flex-grow: 1;
}

iframe.function {
	/* width: 50%; */
	/* flex-direction: row; */
	/* height: 100%;  */
	/* aspect-ratio: 1; */
}

table {
	margin: 0 auto;
	padding: 0;
	font-size: 100%;
	align-self: center;
}

td.header {
	font-weight: bold;
	padding-right: 20px;
	text-align: center;
}

li {
	font-size: 100%;
	padding-bottom: 5%;
}

ol.practical, ul.practical {
	margin-top: 2vh;
}

ol.practical li, ul.practical li {
	font-size: 80%;
	margin-top: 0.5vh;
	margin-bottom: 0.5vh;
	padding-bottom: unset;
	line-height: normal;
}

ul.left, ul.help {
	margin: 1vh auto;
}

ul.left, ul.help li {
	text-align: left;
	margin-bottom: 2vh;
	line-height: unset;
}

div.exercise {
	text-align: left;
	font-weight: bold;
	height: unset;
	display: flexbox;
}

ul.lesson, ul.summary {
	padding-top: 0;
	margin-top: 0;
}

.lesson li, .summary li {
	font-size: 80%;
	padding-bottom: 0px;
}

.summary li {
	margin-bottom: 1vh;
}

ul.exercise {
	margin-top: 1vh;
	font-weight: normal;
}

.exercise li {
	margin-left: 1vh;
	font-size: unset;
	line-height: unset;
}

p.code {
	font-family: monospace;
	font-size: 120%;
	tab-size: 3;
	transition: opacity 0.5s ease-in-out;
}

li.subitem {
	font-size: 80%;
	padding-top: 1vh;
	padding-bottom: 0;
	line-height: 2vh;
}

/* Container for the button and popup menu */
.menu-container {
	position: relative;
	display: inline-block;
}

/* Style the button */
.menu-button {
	/* width: 100%; */
	/* height: 100%; */
	cursor: pointer;
	background-color: transparent;
	color: #808080;
	border: none;
	margin-left: 2vh;
	transform: translateY(-1vh);
	font-size: 2vh;
}

/* Popup menu (hidden by default) */
.popup-menu {
	margin-left: 2vh;
	display: none;
	position: absolute;
	background-color: #808080;
	box-shadow: 0px 0.5vh 1vh rgba(0, 0, 0, 0.2);
	/* z-index: 1; */
	border-radius: 1vh;
	width: 32vh;
	font-size: 3vh;
	transform: translateY(-5vh);
	z-index: 200;
}

.faded {
	opacity: 0.25;
}

.small {
	font-size: 60%;
}

/* Style the menu options */
.popup-menu a {
	display: block;
	padding: 0.75vh 2vh;
	color: black;
	text-decoration: none;
}

.popup-menu a:hover {
	background-color: #bbb;
	border-radius: 1vh;
	/* color: #ff6666; */
}

/* Show the popup menu when hovering over the menu button */
.menu-container:hover .popup-menu {
	display: block;
}
/* 
b {
	color: black;
} */
p {
	line-height: normal;
}

.tooltip {
	position: absolute;
	background-color: #333;
	color: #fff;
	padding: 1vh 2vh;
	border-radius: 1vh;
	font-size: 2.5vh;
	pointer-events: none;
	white-space: nowrap;
	z-index: 1000;
	display: none;
	text-align: left;
	font-family: 'Lato', Arial, Helvetica, sans-serif;
	font-style: italic;
}

[data-tooltip] {
	/* color:hsl(24, 100%, 50%); */
	/* font-weight: bold; */
	cursor: help;
	text-decoration: dotted underline;
	text-decoration-thickness: 0.25vh;
	text-decoration-skip-ink: none;
	text-underline-position: right;;
	text-underline-offset: 0.5vh;
}

eg, usage {
	color: #808080;
	font-family: monospace;
	font-style: normal;
}

eg:before {
	margin-right: 10px;
	width: 50px;
	content: "EXAMPLE ";
	font-size: 60%;
	font-style: normal;
	font-weight: bold;
}

usage {
	font-family: 'Lato', Arial, Helvetica, sans-serif;
	font-style: italic;
}

usage:before {
	margin-right: 25px;
	content: "USAGE ";
	font-size: 60%;
	font-style: normal;
	font-weight: bold;
	font-family: monospace;
}

w {
	display: inline;
	position: relative;
	color: white;
}

faded {
	opacity: 50%;
}

challenge {
	color: #c0c0c0;
}

challenge:before {
	content: "CHALLENGE";
	color: #ff6600;
	padding-right: 1%;
	font-size: 70%;
	font-weight: bold;
}

comment {
	font-family: 'Lato';
	color: #808080;
}

m {
	font-family: 'Times New Roman', Times, serif;
	font-style: italic;
}

ol.practical li.tip {
	opacity: 0.75;
	line-height: 2.25vh;
	/* margin-top: 0; */
	padding-top: 0;
}

halfgap {
	line-height: 75%;
}

/* Hide scrollbar track */
::-webkit-scrollbar {
	width: 20px; /* Adjust width as needed */
	height: 10px; /* For horizontal scrollbars */
	
  }
  
/* Minimal thumb */
::-webkit-scrollbar-thumb {
	background: #80808060; /*linear-gradient(to right, #808080 0%, #808080 80%, transparent 80%, transparent 100%);  */
	border-radius: 0px;
	opacity: 0.5;
	mix-blend-mode: screen;
}

/* Hide the scrollbar track */
::-webkit-scrollbar-track {
	background: transparent;
}

/* Optional: Hover effect */
::-webkit-scrollbar-thumb:hover {
	background: #808080; /*linear-gradient(to right, #ff6600 0%, #ff6600 50%, transparent 50%, transparent 100%); */
}
  