
/* layout */

* {
  box-sizing: border-box;
}

html, body {
  font-family: -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    SegoeUI,
    Roboto,
    Oxygen,
    Ubuntu,
    Cantarell,
    "Open Sans",
    "Helvetica Neue",
    sans-serif;
    
  padding: 0;
  margin: 0;
  line-height:28px;
  font-size: 12pt;
}

.mask {
  position: fixed;
  top: 0px;
  left: 0px;
  right: 0px;
  bottom: 0px;
  z-index: 9;
  display: none;
}

.layout {
  border: 0;
  width: 100%;
  display: flex;
  flex-direction: row;
  padding: 1rem;
  margin: 1rem;
  align-items: center;
  align-content: center;
  justify-content: center;
}

.layout > div + div {
  margin-left: 2rem;
}

.view {
  display: grid;
  grid-template-columns: 300px 30px;
  grid-template-rows: 300px 30px;
  column-gap: 20px;
  row-gap: 20px;
}

.render {
  position: relative;
}

.render svg, .render canvas {
  position: absolute;
  top: 0px;
  left: 0px;
  background: #fff;
}

.render svg {
  z-index: 1;
}

.render canvas {
  z-index: 2;
}

/* sliders */

.horizontal-slider {
  height: 30px;
  width: 300px;
  border: 1px solid #ccc;
  border-radius: 3px;
  position: relative;
}

.horizontal-slider::after {
  min-width: 100%;
  height: 2px;
  overflow: hidden;
  top: calc(50% - 1px);
  background: gray;
  content: ' ';
  position: absolute;
}

.horizontal-slider .knob {
  position: absolute;
  left: calc(50% - 10px);
  top: -10px;
  height: 50px;
  border: 1px solid #ccc;
  background: #fff;
  z-index: 4;
  border-radius: 3px;
  width: 20px;
}

.vertical-slider {
  height: 300px;
  width: 30px;
  border: 1px solid #ccc;
  border-radius: 3px;
  position: relative;
}

.vertical-slider::after {
  min-height: 100%;
  width: 2px;
  overflow: hidden;
  left: calc(50% - 1px);
  background: gray;
  content: ' ';
  position: absolute;
}

.vertical-slider .knob {
  position: absolute;
  top: calc(50% - 10px);
  left: -10px;
  width: 50px;
  border: 1px solid #ccc;
  background: #fff;
  z-index: 4;
  border-radius: 3px;
  height: 20px;

}

/* controls */

.controls input[type=text], .controls select, .controls button {
  width: 4em;
  border-radius: 3px;
  padding: 3px 6px;
  font-size: inherit;
  font-family: inherit;
  border: 1px solid #ccc;
}

.controls input[type=text].wider {
  width: 6em;
}

 .controls select {
  width: auto;
 }

 .controls td {
   white-space: nowrap;
   padding: 2px;
 }

.controls tr td:first-child {
  text-align: right;
  padding-right: 1em;
}

/* svg */

svg {
  stroke: #666;
  fill: none;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-width: 1;
}

svg .light-source {
  stroke: red;
}

/*
svg .outline {
}

svg .landmass-shading {
}
*/

svg .shading-stroke {
  stroke-width: .5;
}

svg .landmass-outline {
  stroke-width: .75;
}

svg .shading-fill {
  fill: #666;
  stroke: none;
}
