.Board { display: flex; align-self: stretch; position: relative; flex: 1; align-items: stretch; margin-right: 40vw; } /* Offset 'BorderBox' such that 0,0 is the center * of 'Board' */ .BoardBox { position: absolute; left: 50%; top: 50%; } .Tile { z-index: 5; /* Below Road and Corner */ position: absolute; background-position-y: 0px; background-size: cover; transform: translate(-50%, -50%) rotate(-30deg); } .Tile.Active { z-index: 10; /* Above non-Active Tile, below Road and Corner */ filter: drop-shadow(8px 8px 12px black); } .Border { position: absolute; transform-origin: 0 0; background-size: cover; } .Pip { z-index: 50; /* Above Tile (5,10), Road (12), Corner (20) */ position: absolute; background-size: 600% auto; /* pip-numbers is a 6x6 grid of pip images */ width: 2em; height: 2em; transform: translate(-50%, -50%); } .Pip.Active { filter: drop-shadow(0px 0px 10px rgba(255, 0, 255, 1)); } .Pip.Active.Option { filter: brightness(150%) drop-shadow(0px 0px 10px rgba(255, 0, 255, 1)); } .Pips[disabled], .Tiles[disabled], .Roads[disabled], .Corners[disabled] { pointer-events: none; } .Corner { filter: drop-shadow(2.5px 2.5px 1.5px rgba(0, 0, 0, 0.75)); z-index: 20; /* Above Tile, below Road */ position: absolute; display: flex; align-items: center; justify-items: center; box-sizing: border-box; width: 1.5em; height: 1.5em; transform: translate(-50%, -50%); pointer-events: none; } .Corner-Shape { display: flex; position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; } .Corner:not([data-type]) .Corner-Shape, .Corner[data-type="settlement"] .Corner-Shape { clip-path: polygon(50% 0%,70% 15%,70% 2%,90% 2%,90% 30%,100% 40%,100% 100%,65% 100%,65% 65%,35% 65%,35% 100%,0% 100%,0% 40%); } .Corner[data-type="city"] .Corner-Shape { clip-path: polygon(15% 0%,39% 23%,39% 52%,100% 56%,100% 74%,100% 100%,80% 100%,63% 100%,62% 75%,46% 75%,47% 100%,0% 100%,0% 24%); } .Road { position: absolute; display: flex; align-items: center; justify-items: center; box-sizing: border-box; transform-origin: 50% 0; width: 0.5em; height: 2.5em; z-index: 11; /* Above Tile, below Corner */ pointer-events: none; } .Road-Shape { display: flex; position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; clip-path: polygon(0% 20%,0% 80%,100% 80%,100% 20%); } .Pip-Shape { display: flex; position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; clip-path: circle(50%); } .Tile-Shape { display: flex; position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; clip-path: polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%); } .Option { cursor: pointer; pointer-events: all; filter: brightness(115%); } .Option .Pip-Shape, .Option .Tile-Shape, .Option .Corner-Shape, .Option .Road-Shape { background-color: rgba(255, 255, 255, 0.5); } .Robber .Pip-Shape, .Pip-Shape:hover { clip-path: circle(45%); /* show through the border */ background-color:#e7c099; background-size: contain; background-position: center; } .Roberta .Pip-Shape { background-image:url("./assets/woman-robber.png"); } .Robert .Pip-Shape { background-image:url("./assets/man-robber.png"); } .Tile-Shape:hover, .Corner-Shape:hover, .Road-Shape:hover { background-color: white; filter: brightness(150%); } .Board .Selected { background-color: rgba(0, 0, 0, 1); box-shadow: 5px 5px 5px black; } [data-color='R'] > .Corner-Shape, [data-color='R'] > .Road-Shape { background-color: rgba(255, 0, 0, 1); } [data-color='O'] > .Corner-Shape, [data-color='O'] > .Road-Shape { background-color: rgb(255, 128, 0); } [data-color='W'] > .Corner-Shape, [data-color='W'] > .Road-Shape { background-color: rgba(255, 255, 255, 1); } [data-color='B'] > .Corner-Shape, [data-color='B'] > .Road-Shape { background-color: rgba(0, 0, 255, 1); }