Remove unofficial cards.
[heroik.git] / heroik.css
index d1a9936..89678cd 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,
@@ -236,6 +233,8 @@ input[type=checkbox] {
     box-shadow: 0.125em 0.125em 0.25em 0.0625em #aaa;
     border: solid hsl(270, 30%, 85%) 1px;
     min-width: 6em;
+    height: 1.375em;
+    max-height: 1.375em;
 }
 
 .button.small {
@@ -251,6 +250,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 +287,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 +312,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;
@@ -359,9 +377,11 @@ table {
 }
 
 .button.big {
-    display: block;
-    width: 80%;
-    margin: 1em auto;
+    display: inline-block;
+    width: 35%;
+    padding-top: 1em;
+    padding-bottom: 1em;
+    margin: 0.5em 0.5em;
 }    
 
 .card1 {
@@ -381,18 +401,344 @@ table {
     color: white;
 }
 
-#statusbar {
-    display: none;
-    position: fixed;
+.card {
+    display: block;
+    position: relative;
+    width: 20em;
+    height: 27.1875em;
+    font-size: 88.275%;
+    margin: 0.5em auto;
+    z-index: 1;
+}
+
+.card:after {
+    content: '';
+    display: block;
+    position:absolute;
+    width:100%;
+    height:100%;
+    left:0;
+    top:0;
+    background-image: url(card.png);
+    background-size: cover;
+    z-index: -1;
+}
+
+.card .art {
+    position: absolute;
+    z-index: -1;
+    left: 9.5%;
+    right: 9.5%;
+    width: 81%;
+    height: auto;
+    top: 7.1%;
+}
+
+.card.adventurer .name, .card.adventurer .type {
+    background-color: #4ba12f;
+}
+
+.card.object .name, .card.object .type {
+    background-color: #cdab4c;
+}
+
+.card .name {
+    position: absolute;
+    color: white;
+    text-align: center;
+    width: 77%;
+    border: solid white 0.1em;
+    border-radius: 0.6em;
+    line-height: 1.6em;
+    height: 5.4%;
+    font-size: 0.85em;
+    left: 11.5%;
+    right: 11.5%;
+    top: 3.5%;
+    box-sizing: border-box;
+    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.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;
+    height: 2.55%;
+    width: 84%;
+    left: 8%;
+    top: 52.3333%;
+    box-sizing: border-box;
+    padding-left: 0.6667em;
+    font-size: 0.575em;
+    line-height: 1.25em;
+    box-shadow: inset 0 0 0.25em black;
+}
+
+.card .gender {
+    position: absolute;
+    height: 9%;
+    top: 47.5%;
+    right: 8.5%;
+}
+
+.card .gender img {
+    float: right;
+    height: 100%;
+}
+
+.card .abilities {
+    text-align: left;
+    position: absolute;
+    top: 57%;
+    bottom: 8%;
+    left: 10%;
+    right: 10%;
+    font-size: 0.8em;
+    line-height: 1.05em;
+    padding-left: 1em;
+}
+
+.card .cost span {
+    position: relative;
+    content: ' ';
+    width: 1.5em;
+    height: 1.5em;
+    border-radius: 1.5em;
+    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:after {
+    position: absolute;
+    line-height: 1.333em;
+    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 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;
+}
+.card .cost .g {
+    background-color: #abbc45;
+}
+
+.card .abilities .skill:before {
+    content: "Skill: ";
+    font-weight: bold;
+    margin-left: -1em;
+}
+
+.card .abilities .temporary:before {
+    content: "Temporary power: ";
+    font-weight: bold;
+    margin-left: -1em;
+}
+
+.card .abilities .ultimate:before {
+    content: "Ultimate power: ";
+    font-weight: bold;
+    margin-left: -1em;
+}
+
+.card .effect {
+    text-align: center;
+    position: absolute;
+    top: 59%;
+    bottom: 8%;
+    left: 15%;
+    width: 70%;
+    font-size: 0.8em;
+    line-height: 1.05em;
+}
+
+.card .flavor:before { content: "«"; }
+.card .flavor:after { content: "»"; }
+.card .flavor {
+    position: absolute;
+    bottom: 9%;
+    width: 70%;
+    left: 15%;
+    font-style: italic;
+    color: black;
+    font-size: 0.6em;
+}
+
+.card .code {
+    position: absolute;
+    color: white;
+    bottom: 3.5%;
+    right: 12%;
+    font-size: 0.65em;
+    text-shadow: -0.0433em -0.0433em black,
+                 0.0433em -0.0433em black,
+                 -0.0433em 0.0433em black,
+                 0.0433em 0.0433em black,
+                 0.06667em 0 black,
+                 -0.06667em 0 black,
+                 0 0.06667em black,
+                 0 -0.06667em black;
+}
+
+
+.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 {
@@ -407,17 +753,20 @@ 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 {
 
     @page {
-        size: 3.5in 7in;
+        size: 85mm 170mm;
         margin: 0.5em;
     }
-    .no-print {
+    header, .no-print {
         display: none !important;
     }
 
@@ -429,13 +778,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 {