Keep back/press on controls in a fixed header when standalone.
[heroik.git] / heroik.css
index e9eea8c..40bb1ae 100644 (file)
@@ -66,10 +66,6 @@ html {
     height: 100%;
 }
 
-@media (max-width: 639px) {
-    html { font-size: 14px; }
-}
-
 body {
     background-color: black;
     min-height: 100%;
@@ -77,10 +73,6 @@ body {
     box-sizing: border-box;
 }
 
-body.standalone {
-    padding-top: 20px;
-}
-
 main {
     background-color: white;
     max-width: 25.2em;
@@ -91,8 +83,12 @@ main {
     box-sizing: border-box;
 }
 
-body.standalone main {
-    padding-top: 0.5em;
+body.standalone header + main {
+    padding-top: 5em;
+}
+
+body.standalone header:empty + main {
+    padding-top: 2em;
 }
 
 table {
@@ -176,6 +172,7 @@ h1 {
     border-bottom: solid hsl(270, 25%, 50%) 0.0625em;
     line-height: 0.8em;
     font-weight: normal;
+    letter-spacing: -0.02em;
     text-shadow: -1px 0 black, 1px 0 black,
                  0 1px black, 0 -1px black,
                  -0.707px -0.707px black, 0.707px 0.707px black,
@@ -251,6 +248,15 @@ input[type=checkbox] {
     box-shadow: 0.0625em 0.0625em 0.0625em 0.0625em #888;
 }
 
+
+.standalone header .button {
+    box-shadow: 0 0 0.5em 0.0625em #aaa;
+}
+
+.standalone header .button:active {
+    box-shadow: 0 0 0 0 #aaa;
+}
+
 main > div, main > noscript {
     text-align: center;
     margin-bottom: 1rem;
@@ -279,7 +285,7 @@ select {
     box-shadow: 0.125em 0.125em 0.25em 0.0625em #aaa;
     transition: box-shadow 0.167s, border-color 0.167s;
     -webkit-transition: box-shadow 0.167s, border-color 0.167s;
-    text-align:-webkit-center !important;
+    text-align: center;
     font-weight: bold;
 }
 
@@ -304,6 +310,16 @@ option {
     font-weight: normal;
 }
 
+optgroup {
+    font-style: normal;
+    font-family: inherit;
+    text-align: center;
+}
+
+optgroup + optgroup {
+    margin-top: 1px;
+}
+
 p, li {
     text-align: justify;
     -webkit-hyphens: auto;
@@ -385,20 +401,14 @@ table {
 
 .card {
     display: block;
-
     position: relative;
     width: 20em;
     height: 27.1875em;
     font-size: 88.275%;
-/*    width: 64mm;
-    height: 87mm;
-    font-size: 9pt;*/
-    margin: auto;
     margin: 0.5em auto;
     z-index: 1;
 }
 
-
 .card:after {
     content: '';
     display: block;
@@ -436,30 +446,36 @@ table {
     text-align: center;
     width: 77%;
     border: solid white 0.1em;
-    border-radius: 0.4em;
+    border-radius: 0.6em;
     line-height: 1.6em;
-    height: 5.5%;
+    height: 5.4%;
     font-size: 0.85em;
-    font-weight: bold;
     left: 11.5%;
     right: 11.5%;
     top: 3.5%;
     box-sizing: border-box;
-    text-shadow: 0 0 0.5em black;
+    text-shadow: -1px -1px rgba(0, 0, 0, 0.75),
+                 1px -1px rgba(0, 0, 0, 0.75),
+                 -1px 1px rgba(0, 0, 0, 0.75),
+                 1px 1px rgba(0, 0, 0, 0.75),
+                 1px 0 black,
+                 -1px 0 black,
+                 0 1px black,
+                 0 -1px black;
 }
 
 .card .type {
     color: black;
     letter-spacing: 0.05em;
     font-weight: bold;
-    text-shadow: -0.0707em -0.0707em rgba(255, 255, 255, 0.7),
-                 0.0707em -0.0707em rgba(255, 255, 255, 0.7),
-                 -0.0707em 0.0707em rgba(255, 255, 255, 0.7),
-                 0.0707em 0.0707em rgba(255, 255, 255, 0.7),
-                 0.1em 0 rgba(255, 255, 255, 0.7),
-                 -0.1em 0 rgba(255, 255, 255, 0.7),
-                 0 0.1em rgba(255, 255, 255, 0.7),
-                 0 -0.1em rgba(255, 255, 255, 0.7);
+    text-shadow: -0.707px -0.707px rgba(255, 255, 255, 0.75),
+                 0.707px -0.707px rgba(255, 255, 255, 0.75),
+                 -0.707px 0.707px rgba(255, 255, 255, 0.75),
+                 0.707px 0.707px rgba(255, 255, 255, 0.75),
+                 1px 0 white,
+                 -1px 0 white,
+                 0 1px white,
+                 0 -1px white;
     text-align: left;
     margin: auto;
     position: absolute;
@@ -504,36 +520,59 @@ table {
     width: 1.5em;
     height: 1.5em;
     border-radius: 1.5em;
-    border: solid black 0.75em;
     display: inline-block;
     box-sizing: border-box;
     margin: 0.5em 0.05em;
     box-shadow: 0 0 0.05em 0.05em black;
+    background-image: url(sword.png);
+    background-size: 0.2778em 1.3em;
+    background-position: center;
+    background-repeat: no-repeat;
+    text-align: center;
 }
 
-.card .cost span:before {
+.card .cost span:before, .card .cost span:after {
     position: absolute;
-    text-align: center;
-    left: -0.75em;
-    top: -0.75em;
-    color: black;
     line-height: 1.333em;
-    opacity: 0.5;
     width: 1.5em;
     height: 1.5em;
+    display: block;
+    transform-origin: 50% 65%;
+    background-image: url(sword.png);
+    background-size: 0.2778em 1.3em;
+    background-position: center;
+    background-repeat: no-repeat;
 }
 
+.card .cost .r:before {
+    transform: rotate(30deg);
+    -webkit-transform: rotate(30deg);
+    content: '';
+}
 
-.card .cost .r:before { content: 'r'; }
-.card .cost .g:before { content: 'g'; }
+.card .cost .r img {
+    /* :( would prefer with no extra elements... */
+    transform: rotate(60deg);
+    max-width: 1.3em;
+    position: absolute;
+    max-height: 1.3em;
+    transform-origin: 50% 65%;
+    left: 0.6em;
+    top: 0.1em;
+}
+
+.card .cost .r:after {
+    transform: rotate(-30deg);
+    -webkit-transform: rotate(-30deg);
+    content: '';
+}
 
 .card .cost .r {
+    transform: rotate(-15deg);
     background-color: #e4573c;
-    border-color: #e4573c;
 }
 .card .cost .g {
     background-color: #abbc45;
-    border-color: #abbc45;
 }
 
 .card .abilities .skill:before {
@@ -565,6 +604,8 @@ table {
     line-height: 1.05em;
 }
 
+.card .flavor:before { content: "«"; }
+.card .flavor:after { content: "»"; }
 .card .flavor {
     position: absolute;
     bottom: 9%;
@@ -591,18 +632,111 @@ table {
                  0 -0.06667em black;
 }
 
-#statusbar {
-    display: none;
-    position: fixed;
+
+.card.dungeon {
+    height: 17.5841em;
+    width: 25em;
+}
+
+.card.dungeon:after {
+    background-image: url(dungeon.jpg);
+}
+
+.card.final .name, .card.final .type {
+    background-color: #832b22;
+}
+
+.card.dungeon .name {
+    position: absolute;
+    color: #e3f902;
+    top: 2%;
+    height: 7.5%;
+}
+
+.card.dungeon .type {
+    color: #e3f902;
+    left: 2.25%;
+    right: 2.25%;
+    width: 95.5%;
+    height: 4.5%;
+    top: 74%;
+    text-shadow: -0.707px -0.707px rgba(0, 0, 0, 0.75),
+                 0.707px -0.707px rgba(0, 0, 0, 0.75),
+                 -0.707px 0.707px rgba(0, 0, 0, 0.75),
+                 0.707px 0.707px rgba(0, 0, 0, 0.75),
+                 1px 0 black,
+                 -1px 0 black,
+                 0 1px black,
+                 0 -1px black;
+}
+
+.card.dungeon .power img {
+    max-height: 1.5em;
+    vertical-align: bottom;
+}
+.card.dungeon .power {
+    font-size: 0.85em;
+    position: absolute;
+    top: 67%;
+    height: 1em;
+    color: white;
+    left: 68%;
+    width: 15%;
+    text-align: center;
+    text-shadow: -0.707px -0.707px rgba(0, 0, 0, 0.75),
+                 0.707px -0.707px rgba(0, 0, 0, 0.75),
+                 -0.707px 0.707px rgba(0, 0, 0, 0.75),
+                 0.707px 0.707px rgba(0, 0, 0, 0.75),
+                 1px 0 black,
+                 -1px 0 black,
+                 0 1px black,
+                 0 -1px black;
+}
+
+.card.dungeon .effect {
+    color: #e30000;
+    text-shadow: -0.707px -0.707px rgba(255, 255, 255, 0.75),
+                 0.707px -0.707px rgba(255, 255, 255, 0.75),
+                 -0.707px 0.707px rgba(255, 255, 255, 0.75),
+                 0.707px 0.707px rgba(255, 255, 255, 0.75),
+                 1px 0 white,
+                 -1px 0 white,
+                 0 1px white,
+                 0 -1px white;
+    font-size: 0.55em;
+    top: 83%;
+    left: 5%;
+    right: 5%;
+    width: 90%;
+    font-weight: bold;
+}
+
+.card.dungeon .code {
+    right: 4%;
+    bottom: 1.8%;
+}
+
+header {
     left: 0;
     top: 0;
     right: 0;
-    height: 20px;
-    background-color: black;
+    margin: auto;
+    max-width: 25.2em;
+    background-color: white;
+    padding: 0.5em;
+    box-sizing: border-box;
+    z-index: 2;
 }
 
-body.standalone #statusbar {
-    display: block;
+body.standalone header:empty {
+    padding: 0;
+    padding-top: 20px;
+}
+
+body.standalone header {
+    position: fixed;
+    padding-top: 20px;
+    background-color: black;
 }
 
 h1, h2, [onclick], label {
@@ -617,8 +751,11 @@ h1, h2, [onclick], label {
     cursor: pointer;
 }
 
-td:target {
-    font-weight: bold;
+@media (max-width: 639px) {
+    html { font-size: 14px; }
+    header .button {
+        padding: 0 0.2em;
+    }
 }
 
 @media print {
@@ -627,7 +764,7 @@ td:target {
         size: 3.5in 7in;
         margin: 0.5em;
     }
-    .no-print {
+    header, .no-print {
         display: none !important;
     }
 
@@ -639,13 +776,19 @@ td:target {
     main {
         max-width: 3.5in;
     }
+
+    .card {
+        width: 64mm;
+        height: 87mm;
+        font-size: 9pt;
+        page-break-inside: avoid;
+    }
 }
 
-@media screen and (-webkit-min-device-pixel-ratio:0) {
+@media all and (-webkit-min-device-pixel-ratio:0) {
     h1 {
         text-shadow: none;
-        -webkit-text-stroke: 1px black;
-        latter-spacing: -1px;
+        -webkit-text-stroke: 0.02em black;
     }
 
     .broken-on-webkit {