/* General */

li.pos::marker {
	content:'+ ';
	font-size:120%;
	font-weight:bold;
	color:green;
}
li.neg::marker {
	content:'− ';
	font-size:120%;
	font-weight:bold;
	color:red;
}

/* table without any spacing */

table.minimal {border-collapse: collapse;}
table.minimal td {padding:0px;}
table.minimal li {margin:0px;}



/* highlight some element on hover */

.hl-elem:hover {background-color:#FF000033; box-shadow: 0px 0px 5px #FF000088;}


/* Bimatrix Game */


.bimgame { border-collapse: collapse; }
.bimgame td + td { border-left: 1px solid; }
.bimgame tr + tr { border-top: 1px solid; }
.bimgame td {padding:7px 15px; text-align:center; vertical-align:middle;}

.table-hl td:hover {background-color:#FF000033; box-shadow: 0px 0px 5px #FF000088;}

.table-row-col-hl tr.cont:hover {background-color:#FF000033; box-shadow: 0px 0px 5px #FF000088;}
.table-row-col-hl:has(tr > td:nth-child(2):hover) tr > td:nth-child(2), 
	.table-row-col-hl:has(tr > td:nth-child(3):hover) tr > td:nth-child(3),
	.table-row-col-hl:has(tr > td:nth-child(4):hover) tr > td:nth-child(4),
	.table-row-col-hl:has(tr > td:nth-child(5):hover) tr > td:nth-child(5)
	{background-color:#FF000033; box-shadow: 0px 0px 5px #FF000088;}

.table-row-col-hl .clickedVisR {opacity:0; transition:all 1s;}
.table-row-col-hl tr.clicked .clickedVisR {opacity:1;}
.table-row-col-hl .clickedVisC {opacity:0; transition:all 1s;}
.table-row-col-hl td.clicked .clickedVisC {opacity:1;}


/* Code */

.code {
	font-family:monospace,Courier;
}

.AlgName {
	font-variant:small-caps;
}
@counter-style algorithm-list {
	system: extends decimal;
	prefix: '(';
	suffix: ') ';
}
.code ol {
	list-style: algorithm-list;
}
.code ol li {
	margin:0px;
}
.code ol li::marker {
	color:#808080; 
}

.keyword {
	font-weight:bold;
	font-variant:small-caps;
}	
.tab {
	visibility:hidden;
}

.code hr {margin:3px 0px;}

.code.hl li {transition:all 1s;}

.code.hl li:hover {background-color:#FF000033; box-shadow: 0px 0px 5px #FF000088;}



/* Slide specific styles (tempstep-classes etc) */

/* Introduction */

.tempClass-SmallerPuzzle {width:45% !important; right:0px !important;}
.tempClass-SmallerPuzzle div {transform:scale(0.45,0.45);}

.lecturenotes li {margin:15px 0px; transition:background-color .6s, box-shadow .6s, opacity 1s;}
.lecturenotes li:hover {background-color:#FF000033; box-shadow: 0px 0px 5px #FF000088;}

/* Strategic Games */

.impress-on-ZeroSumExistence #Lecture1 {z-index:-10 !important;}

.impress-on-ZeroSumExistence:has(.on-tempstep-3) #Lecture1, .impress-on-ZeroSumExistence:has(.on-tempstep-3) #PureBestResponse {opacity:.3;}


/* Computation of MNE */


.scene, .innerscene, .scene svg {
	width:550px; 
	height:500px;
}

.scene div, .scene svg, .test {transform-style: preserve-3d;}

.scene {perspective: 1000px; perspective-origin:150% 10%; transition: all 1s;}			
.scene .zaxis {transform-origin:8% 100%; transform:rotateY(90deg); transition: all 2s;}
.scene .barP2 {transform-origin:82% 100%; transform:rotateY(-45deg) scale(1.41,1); transition: all 2s;}
.scene .P2 {transform-origin:100% 95%; transform:rotateX(90deg) translateZ(43px); transition: all 2s;}

.scene:hover .zaxis {transform:rotateY(128deg);}
.scene:hover .barP2 {transform:rotateY(0deg);}

.innerscene {transform-origin:0% 95%; transform:rotateX(0deg); transition:all 3s;}
.scene.tempClass-reduced .innerscene {transform:rotateX(-90deg);} 

.scene.tempClass-projected .P2 {transform:rotateX(90deg) translateZ(0px);} 
.scene.tempClass-reduced:hover .zaxis {transform:rotateY(90deg);}
.scene.tempClass-reduced:hover .barP2 {transform:rotateY(-45deg) scale(1.41,1);}


.tempClass-x1hl {color:var(--x1color);}
.tempClass-x2hl {color:var(--x2color);}
.tempClass-x3hl {color:var(--x3color);}
.tempClass-y4hl {color:var(--y4color);}
.tempClass-y5hl {color:var(--y5color);}

.impress-on-LemkeHowson .runningExample {top:670px !important;}
.impress-on-LemkeHowsonThm .runningExample {top:830px !important;}
.impress-on-LemkeHowsonApplication .runningExample {top:1190px !important;}
.impress-on-LemkeHowsonApplication .runningExample .scene, .impress-on-LemkeHowsonApplication .runningExample .inequality {opacity:0 !important;}

.on-tempstep-9 .LHCanvas {transform:scale(1.7,1.7);}


/* Complexity */

:root {
	--NRcol0:var(--blue);
	--NRcoln:var(--red);
	--NRcolnm1:var(--green);
	--NRcolnm4:var(--purple);
	--NRcoleps:var(--yellow);
}


.NashReduction {border-collapse: collapse;}
.NashReduction td {text-align:center; padding:3px 7px; font-size:90%;}

.NashReduction {
	tr:nth-child(2), tr:nth-child(4), tr:nth-child(8), tr:nth-child(10)
	{border-bottom: 2px solid gray;}
}

.NashReduction tr {
	td:nth-child(1), td:nth-child(3), td:nth-child(7), td:nth-child(9)
	{border-right: 2px solid gray;}
}
.NashReduction tr:nth-child(1) {
	td:nth-child(2), td:nth-child(4) {border-right: 2px solid gray;}
}


.NashReduction .zero {color:var(--NRcol0);}
.NashReduction .n {color:var(--NRcoln);}
.NashReduction .nm1 {color:var(--NRcolnm1);}
.NashReduction .nm4 {color:var(--NRcolnm4);}
.NashReduction .eps {color:var(--NRcoleps);}

.NashReduction .clicked {background-color:#FF000022; box-shadow: 0px 0px 2px #FF000066;}


/* Congestion Games */

:root {
	--pl1col:var(--red);
	--pl2col:var(--blue);
	
	--stratTcol:var(--red);
	--stratBcol:var(--purple);
	--stratLcol:var(--blue);
	--stratCcol:var(--cyan);
	--stratRcol:var(--green);
	
}


#NetworkGameTab .clicked, .IsoGames .clicked {background-color:#FF000022; box-shadow: 0px 0px 2px #FF000066;}


#NetworkGame {path.T, path.B, path.L, path.R {opacity:0;}}
#NetworkGame.T path.T, #NetworkGame.B path.B, #NetworkGame.L path.L, #NetworkGame.R path.R {opacity:1}



#CoordGame.L rect.L, #CoordGame.C rect.C, #CoordGame.R rect.R, #CoordGame.T rect.T, #CoordGame.B rect.B {fill-opacity:.4;}

#CoordGame {g.TL, g.TC, g.TR, g.BL, g.BC, g.BR {opacity:0;}}
#CoordGame.T.L g.TL, #CoordGame.T.C g.TC, #CoordGame.T.R g.TR, #CoordGame.B.L g.BL, #CoordGame.B.C g.BC, #CoordGame.B.R g.BR {opacity:1;}
#CoordGame.T.L rect.TL, #CoordGame.T.C rect.TC, #CoordGame.T.R rect.TR, #CoordGame.B.L rect.BL, #CoordGame.B.C rect.BC, #CoordGame.B.R rect.BR {stroke:black; fill:gray; fill-opacity:.2;}
.TLtext, .TCtext, .TRtext, .BLtext, .BCtext, .BRtext {color:gray;}
#CoordGame.T.L .TLtext, #CoordGame.T.C .TCtext, #CoordGame.T.R .TRtext, #CoordGame.B.L .BLtext, #CoordGame.B.C .BCtext, #CoordGame.B.R .BRtext {color:black;}

#DummyGame.L path.L, #DummyGame.C path.C, #DummyGame.R path.R, #DummyGame.T path.T, #DummyGame.B path.B {fill-opacity:.4;}

#DummyGame {g.T, g.B, g.L, g.C, g.R {opacity:0;}}
#DummyGame.T g.T, #DummyGame.B g.B, #DummyGame.L g.L, #DummyGame.C g.C, #DummyGame.R g.R {opacity:1;}
#DummyGame.T rect.T, #DummyGame.B rect.B, #DummyGame.L rect.L, #DummyGame.C rect.C, #DummyGame.R rect.R {stroke:black; fill:gray; fill-opacity:.2;}
.Ttext, .Btext, .Ltext, .Ctext, .Rtext {color:gray;}
#DummyGame.T .Ttext, #DummyGame.B .Btext, #DummyGame.L .Ltext, #DummyGame.C .Ctext, #DummyGame.R .Rtext {color:black;}


.tempClass-moveRight {transform:translateX(100px);}
.tempClass-moveLeft {transform:translateX(-100px);}
.tempClass-front {z-index:100 !important;}


/* Exponential Runtime of Improving Moves Slide */

#ExpRuntimeStrats { border-spacing: 30px 15px;}

#ExpRuntimeCosts {border-spacing: 0px 20px;}
#ExpRuntimeCosts td {text-align:center; padding:0px;}
#ExpRuntimeCosts tr td:nth-child(1) {width:100px;}
#ExpRuntimeCosts tr td:nth-child(2) {width:220px;}
#ExpRuntimeCosts tr td:nth-child(n+3):nth-child(-n+8) {width:120px;}
#ExpRuntimeCosts tr td:nth-child(9) {width:220px;}

#ExpRuntimeCosts td {transition:color .5s;}
#ExpRuntimeCosts td:hover {color:red; opacity:1 !important;}

#ExpRuntimeImg [class], #ExpRuntimeStrats [class], #ExpRuntimeCosts [class] {transition:all 2s;}

#ExpRuntimeImg {
	.strategies {
		fill-opacity:.2;
	}	
	.loads {
		fill-opacity:.3;
	}	
}
#ExpRuntimeImg .loads rect {
		opacity:0;
}
.lTkmMark {
	opacity:0;
}

.tempClass-claims {
	#ExpRuntimeCosts tr td:nth-child(n+2) {
		opacity:.3;
	}
	#ExpRuntimeStrats {
		.plInitstP, .plInitstA, .plTriggerstP, .plTriggerstA, .plPlayerAstP, .plPlayerAstA, .plPlayerBstP, .plPlayerBstA {
			opacity:.3;
		}
	}
	#ExpRuntimeImg .strategies rect {
		opacity:.3;
	}
	.lTkmMark {
		opacity:1;
		fill-opacity:1;
	}
}


/* Acite vs. Passive strats */
.on-tempstep-41 { /* Passive */
	.plInitstA, .plTriggerstA, .plPlayerAstA, .plPlayerBstA,
	.stIA, .stTA, .stPAA, .stPBA
		{opacity:.3 !important;}
}
.on-tempstep-42 { /* active */
	.plInitstP, .plTriggerstP, .plPlayerAstP, .plPlayerBstP, .plStartstP,
	.stIP, .stTP, .stPAP, .stPBP
		{opacity:.3 !important;}
}


/* Claim 1 */
.on-tempstep-51 { /* Start */
	.plInitstP, .plTriggerstP, .plPlayerAstP, .plPlayerBstP,
	.stIP, .stTP, .stPAP, .stPBP,
	.lIP, .lTP, .lPAP, .lPBP, .lTkm,
	.rk01, .rk11, .rk21, .rk41 
		{opacity:1 !important;}
}
.on-tempstep-52 { /* Trigger */
	.plInitstP, .plTriggerstP, .plPlayerAstP, .plPlayerBstP,
	.stIP, .stTP, .stPAP, .stPBP, .stTkp,	
	.lIP, .lTP, .lPAP, .lPBP, .lTkp, .lTkm,
	.rkp1, .rk02, .rk11, .rk21, .rk41 
		{opacity:1 !important;}
	.lTkp.b {transform:translateY(-45px);}
}
.on-tempstep-53 { /* Step 1: Init */
	.plInitstA, .plTriggerstP, .plPlayerAstP, .plPlayerBstP,
	.stIA, .stTP, .stPAP, .stPBP, .stTkp,	
	.lIA, .lTP, .lPAP, .lPBP, .lTkp, .lTkm,
	.rkp31, .rk01, .rk12, .rk22, .rk41 
		{opacity:1 !important;}
	.lIA {transform:translateY(-45px);}
}
.on-tempstep-54 { /* Step 2: Trigger */
	.plInitstA, .plTriggerstA, .plPlayerAstP, .plPlayerBstP,
	.stIA, .stTA, .stPAP, .stPBP, .stTkp,	
	.lIA, .lTA, .lPAP, .lPBP, .lTkp, .lTkm,
	.rkp31, .rk01, .rk11, .rk22, .rk31, .rk41, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lIA.a, .lTA.b {transform:translateY(-45px);}
}
.on-tempstep-55 { /* Step 3: Player1 */
	.plInitstA, .plTriggerstA, .plPlayerAstA, .plPlayerBstP,
	.stIA, .stTA, .stPAA, .stPBP, .stTkp,	
	.lIA, .lTA, .lPAA, .lPBP, .lTkp, .lTkm,
	.rkp31, .rk01, .rk11, .rk21, .rk32, .rk42, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lTA.b, .lPAA {transform:translateY(-45px);}
}
.on-tempstep-56 { /* Step 4: Trigger */
	.plInitstA, .plTriggerstP, .plPlayerAstA, .plPlayerBstP,
	.stIA, .stTP, .stPAA, .stPBP, .stTkp,	
	.lIA, .lTP, .lPAA, .lPBP, .lTkp, .lTkm,
	.rkp31, .rk01, .rk12, .rk21, .rk31, .rk42  
		{opacity:1 !important;}
	.lTP, .lPAA.a {transform:translateY(-45px);}
}
.on-tempstep-57 { /* Step 5: PlayerB */
	.plInitstA, .plTriggerstP, .plPlayerAstA, .plPlayerBstA,
	.stIA, .stTP, .stPAA, .stPBA, .stTkp,	
	.lIA, .lTP, .lPAA, .lPBA, .lTkp, .lTkm,
	.rkp31, .rk01, .rk13, .rk21, .rk31, .rk41, .rk51  
		{opacity:1 !important;}
	.lTP {transform:translateY(-45px);}
	.lPBA.a {transform:translateY(-90px);}
}
.on-tempstep-58 { /* Step 6: Trigger */
	.plInitstA, .plTriggerstA, .plPlayerAstA, .plPlayerBstA,
	.stIA, .stTA, .stPAA, .stPBA, .stTkp,	
	.lIA, .lTA, .lPAA, .lPBA, .lTkp, .lTkm,
	.rkp31, .rk01, .rk12, .rk21, .rk32, .rk41, .rk51, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lTA, .lPBA.a {transform:translateY(-45px);}
}

/* Claim 2 */
.on-tempstep-71 { /* Start */
	.plInitstA, .plTriggerstA, .plPlayerAstA, .plPlayerBstA,
	.stIA, .stTA, .stPAA, .stPBA, .stTkp,	
	.lIA, .lTA, .lPAA, .lPBA, .lTkp, .lTkm,
	.rkp31, .rk01, .rk12, .rk21, .rk32, .rk41, .rk51, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lTA, .lPBA.a {transform:translateY(-45px);}
}
.on-tempstep-72 { /* Untrigger */
	.plInitstA, .plTriggerstA, .plPlayerAstA, .plPlayerBstA,
	.stIA, .stTA, .stPAA, .stPBA,	
	.lIA, .lTA, .lPAA, .lPBA, .lTkm,
	.rk12, .rk21, .rk32, .rk41, .rk51, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lTA, .lPBA.a {transform:translateY(-45px);}
}
.on-tempstep-73 { /* Step 1: Init */
	.plInitstP, .plTriggerstA, .plPlayerAstA, .plPlayerBstA,
	.stIP, .stTA, .stPAA, .stPBA,	
	.lIP, .lTA, .lPAA, .lPBA, .lTkm,
	.rk01, .rk11, .rk32, .rk41, .rk51, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lTA {transform:translateY(-45px);}
}
.on-tempstep-74 { /* Step 2: Player1 */
	.plInitstP, .plTriggerstA, .plPlayerAstP, .plPlayerBstA,
	.stIP, .stTA, .stPAP, .stPBA,	
	.lIP, .lTA, .lPAP, .lPBA, .lTkm,
	.rk01, .rk21, .rk11, .rk31, .rk51, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lTA.b {transform:translateY(-45px);}
}
.on-tempstep-75 { /* Step 3: Player2 */
	.plInitstP, .plTriggerstA, .plPlayerAstP, .plPlayerBstP,
	.stIP, .stTA, .stPAP, .stPBP,	
	.lIP, .lTA, .lPAP, .lPBP, .lTkm,
	.rk01, .rk21, .rk31, .rk41, .rkm01, .rkm02  
		{opacity:1 !important;}
	.lTA.b {transform:translateY(-45px);}
}
.on-tempstep-76 { /* Step 4: Trigger */
	.plInitstP, .plTriggerstP, .plPlayerAstP, .plPlayerBstP,
	.stIP, .stTP, .stPAP, .stPBP,	
	.lIP, .lTP, .lPAP, .lPBP, .lTkm,
	.rk01, .rk21, .rk11, .rk41  
		{opacity:1 !important;}
}


/* PLS-Slide */


#ComplexityTable { border-collapse: collapse; }
#ComplexityTable td {padding:3px 10px;}
#ComplexityTable td + td { border-left: 1px solid gray;}
#ComplexityTable tr:nth-child(2) { border-bottom: 1px solid gray;}
#ComplexityTable td + td {text-align:center;}
#ComplexityTable tr td:first-child {font-variant:small-caps;}

.rbNode {transition:all 2s;}
.rbNode.nodeBlue {fill:var(--blue);}
.rbNode.nodeRed {fill:var(--red);}


#redCut {
	opacity:.3;
	transition:all 2s;
}
.red1.red2.red3 #redCut {
	d:path("M100,150 L250,50 L350,150 L250,250 Z");
}
.red1.red2.blue3 #redCut {
	d:path("M100,150 L250,50 L350,150 L225,150 Z");
}
.red1.blue2.red3 #redCut {
	d:path("M100,150 L250,50 L250,150 L250,250 Z");
}
.red1.blue2.blue3 #redCut {
	d:path("M100,150 L250,50 L250,50 L250,50 Z");
}
.blue1.red2.red3 #redCut {
	d:path("M100,150 L225,150 L350,150 L250,250 Z");
}
.blue1.red2.blue3 #redCut {
	d:path("M100,150 L225,150 L350,150 L225,150 Z");
}
.blue1.blue2.red3 #redCut {
	d:path("M100,150 L250,250 L250,250 L250,250 Z");
}
.blue1.blue2.blue3 #redCut {
	d:path("M100,150 L125,125 L125,175 L100,150 Z");
}
#blueCut {
	opacity:.3;
	transition:all 2s;
}
.red1.red2.red3 #blueCut {
	d:path("M500,50 L500,50 L500,150 L500,150 L500,250 L500,250 Z");
}
.red1.red2.blue3 #blueCut {
	d:path("M500,50 L500,50 L500,150 L500,250 L250,250 L500,250 Z");
}
.red1.blue2.red3 #blueCut {
	d:path("M500,50 L500,50 L350,150 L350,150 L500,250 L500,250 Z");
}
.red1.blue2.blue3 #blueCut {
	d:path("M500,50 L500,50 L350,150 L350,150 L250,250 L500,250 Z");
}
.blue1.red2.red3 #blueCut {
	d:path("M500,50 L250,50 L500,50 L500,150 L500,250 L500,250 Z");
}
.blue1.red2.blue3 #blueCut {
	d:path("M500,50 L250,50 L500,50 L500,250 L250,250 L500,250 Z");
}
.blue1.blue2.red3 #blueCut {
	d:path("M500,50 L250,50 L350,150 L350,150 L500,250 L500,250 Z");
}
.blue1.blue2.blue3 #blueCut {
	d:path("M500,50 L250,50 L350,150 L350,150 L250,250 L500,250 Z");
}

#MaxCut g {transition:all 2s;}

.red1.red2.red3 {#edge14, #edge24, #edge25, #edge35 {opacity:.2;}} 
.red1.red2.blue3 {#edge14, #edge24, #edge25, #edge03, #edge13, #edge23 {opacity:.2;}} 
.red1.blue2.red3 {#edge14, #edge12, #edge23, #edge35 {opacity:.2;}} 
.red1.blue2.blue3 {#edge14, #edge12, #edge13, #edge03 {opacity:.2;}} 
.blue1.red2.red3 {#edge01, #edge13, #edge12, #edge24, #edge25, #edge35 {opacity:.2;}} 
.blue1.red2.blue3 {#edge01, #edge12, #edge24, #edge25, #edge23, #edge03 {opacity:.2;}} 
.blue1.blue2.red3 {#edge01, #edge13, #edge23, #edge35 {opacity:.2;}}
.blue1.blue2.blue3 {#edge01, #edge03 {opacity:.2;}}  

.MCcosts {opacity:0; transition:all 2s;}

.red1.red2.red3 #costRRR, .red1.red2.blue3 #costRRB, .red1.blue2.red3 #costRBR, .red1.blue2.blue3 #costRBB, .blue1.red2.red3 #costBRR, .blue1.red2.blue3 #costBRB, .blue1.blue2.red3 #costBBR, .blue1.blue2.blue3 #costBBB {opacity:1;}

.impress-on-PLScomplete {.on-tempstep-1, .on-tempstep-2, .on-tempstep-3, .on-tempstep-4, .on-tempstep-5, .on-tempstep-6 {#edges g {opacity:1 !important;}}}
.impress-on-PLScomplete {.on-tempstep-1, .on-tempstep-2, .on-tempstep-3, .on-tempstep-4 {#blueCut, #redCut {opacity:0 !important;}}}
.impress-on-PLScomplete {.on-tempstep-1, .on-tempstep-2, .on-tempstep-3, .on-tempstep-4 {.rbNode {fill:white !important;}}}


/* Slide on Symmetric Network Congestion Games */


@counter-style paraArab-list {
	system: extends arabic;
	prefix: '(';
	suffix: ')  ';
}
.paraArab {
	list-style: paraArab-list;
	margin-left:10px;
}
@counter-style matroid-list {
	system: extends arabic;
	prefix: '(M';
	suffix: ')  ';
}
.matroid {
	list-style: matroid-list;
	margin-left:30px;
}


/* Weighted Congestion Game Definition Slide */

.wcgSet, .wcgText {transition:all 2s;}
.tempClass-wcgSmall {
	rect {y:165px; height:210px;}
	text {transform:translateY(50px);}
}
.tempClass-wcgHigh {
	rect {y:45px; height:330px;}
	text {transform:translateY(-50px);}
}

.tempClass-shiftDown {
	transform:translateY(120px);
}


.trimgame { border-collapse: collapse; }
.trimgame td {padding:7px 15px; text-align:center; vertical-align:middle;}
.trimgame:first-child, .trimgame:nth-child(5) {border-color:gray; color:gray;}
.trimgame td:first-child { border-right: 2px solid; }
.trimgame tr:first-child { border-bottom: 2px solid; }
.trimgame td {background:#FFFFFF99;}
.trimgame {border:1px solid gray;}

.tempGClass-Overlay .hideUnderOverlay {opacity:.5 !important;}


/* Weighted Congestion Characterization */
.tempClass-stratActive {fill-opacity:.4 !important;}


/* Advertisment Slide */
.tempClass-animationActive {background-image:url(../img/IDEAnimation.gif) !important;}





/* Auctions */
.tempClass-bananaAlloc {transform:translate(-110px,-50px);}
.tempClass-appleAlloc {transform:translate(230px,-50px);}
.tempClass-grapesAlloc {transform:translate(-410px,-50px);}