.light { color: #000; background: #dbdbdb; font-family: Arial; } * { box-sizing: border-box; } .dark { color: #eee; font-family: Arial; background: #111; } #character-preset-categories { font-size: 24px; } #character-presets { font-size: 24px; } #export-area { max-width: 80%; width: 80%; } body.dark input { color: #eee; background: #444; background-color: rgba(0, 0, 0, 0.3); } body.dark select { color: #eee; background: #444; background-color: rgba(0, 0, 0, 0.3); } body.light button { color: #000; background: #ddd; border-width: 1px; border-color: #000; background-color: rgba(255, 255, 255, 0.3); } body.dark button { color: #eee; background: #111; border-width: 1px; background-color: rgba(0, 0, 0, 0.4); } body.dark div { background-color: transparent; } .game-area { display: none; margin: auto; width: 100vw; height: 100vh; gap: 16px; } #stat-container { grid-area: stats; } #action-panel { grid-area: actions; } #log { grid-area: log; display: none; } #react-log { grid-area: react-log; display: none; } #growth-amount-buttons { width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); grid-auto-rows: 48pt; } @media (max-aspect-ratio: 1/1){ .game-area { grid-template-areas: "stats actions" "log react-log"; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 2fr; width: 95vw; height: 95vh; } #stat-container { } #action-panel { } #log { } #react-log { } } @media (min-aspect-ratio: 1/1){ .game-area { grid-template-areas: "stats log react-log actions"; grid-template-columns: 1fr 2fr 2fr 1fr; width: 90vw; height: 90vh; } #log { } #react-log { } } .log { overflow: auto; padding: 25px; box-sizing: border-box; } body.light #react-log { color: #000; background-color: rgba(240, 240, 255, 0.3); } body.light #react-log div { background-color: transparent; } body.dark #react-log { color: #eee; background-color: rgba(0, 0, 0, 0.4); } body.dark #react-log div { background-color: transparent; } body.light #log { color: #000; background-color: rgba(240, 240, 255, 0.3); } body.light #log div { background-color: transparent; } body.dark #log { color: #eee; background-color: rgba(0, 0, 0, 0.4); } body.dark #log div { background-color: transparent; } .stat-header-self { font-weight: bold; font-size: 150%; min-width:250px; } .stat-header { font-weight: bold; font-size: 150%; min-width:130px; } .stat-line { font-weight: normal; font-size: 12pt; } .stat-line-hidden { font-weight: normal; font-size: 12pt; } .stat-line-hidden { display: none; position: relative; } .stat-line-hidden:before { content: attr(data-stat); position: absolute; text-align: center; top: 5px; left: 0; right: 0; } .stat-line-hidden .value { background-color: #0f0; display: inline-block; height: 24px; width: attr(data-percent percentage); } progress { background: blue; } .stat-percent-full { background: #f00; } .sidebar { display: none; flex-direction: column; } .preset-selector { height: 25px; } .option-container { margin: auto; } .button-container { flex-wrap: wrap; flex-direction: column; flex: 1; } .stat-container { width: 100%; display: flex; flex-wrap: wrap; flex-direction: row; flex: 1 } .action-part-container { max-height: 1000px; display: flex; flex-wrap: wrap; } #action-panel { display: none; } .option-button { font-size: 20px; width: 120px; height: 75px; } #button-start { width:300px; height:200px; font-size: 50px; } .option-form { font-size: 16px; width: 300px; height: 100px; } .stat-button { font-size: 18px; width: 50%; height: 75px; } .action-button { font-size: 18px; width: 50%; height: 75px; display: none; } body.light .action-button-disabled { color: #777 !important; background-color: rgba(150, 0, 0, 0.25); } body.dark .action-button-disabled { color: #aaa !important; background-color: rgba(150, 0, 0, 0.25); } #victim-table { display: none; margin: auto; width: 80%; } .victim-table-cell { width: 10%; } .reveal-if-active { opacity: 0; max-height: 0; overflow: hidden; } input[type="radio"]:checked ~ .reveal-if-active, input[type="checkbox"]:checked ~ .reveal-if-active { opacity: 1; max-height: 500000px; /* little bit of a magic number :( */ overflow: visible; } .flex-outer { width: 100%; display: flex; flex-direction: row; flex-wrap: wrap; text-align: center; justify-content: center; padding: 0px; } .custom-category { text-align: center; margin: 10px; width: 500px; } body.dark .custom-category.wide-category, body.light .custom-category.wide-category { width: 90%; background: none; } .custom-category-sub { text-align: center; margin: 10px; width: 100%; padding: 0px; } body.light .custom-category { background: #ddd; background-color: rgba(255, 255, 255, 0.4); } body.dark .custom-category { background: #222; background-color: rgba(0, 0, 0, 0.4); } body.dark .custom-category div { background: #222; background-color: transparent; } .custom-header-static { user-select: none; font-size: 250%; margin: 10px; display: inline-block; } body.light .custom-header-static { background: #ddd; } body.dark .custom-header-static { background: #555; } .custom-header { user-select: none; font-size: 250%; margin: 10px; display: inline-block; border-style: dotted; border-width: 1px; border-radius: 5px; } .custom-category-sub .custom-header { font-size: 200%; } .custom-category-sub .custom-category-sub .custom-header { font-size: 150%; } body.light .custom-header { color: #aaa; background-color: rgba(255, 255, 255, 0.3); border-width: 1px; padding-left: 10px; padding-right: 10px; border-color: #000; } body.dark .custom-header { color: #555; background-color: rgba(0, 0, 0, 0.3); padding: 5px; padding-left: 10px; padding-right: 10px; } body.light input[type="checkbox"]:checked+ .custom-header { color: #000; border-style: solid; background-color: rgba(230, 230, 230, 0.3); } body.dark input[type="checkbox"]:checked+ .custom-header { color: #fff; border-style: solid; background-color: rgba(0, 0, 0, 0.3); } .custom-header-checkbox { display: none; } .flex-outer li { display: flex; flex-wrap: wrap; align-items: center; text-align: center; width: 500px; margin: 10px auto; } .flex-outer input[type="radio"], .flex-outer input[type="checkbox"] { display: none; } .flex-outer input[type="radio"] + label:not(.custom-header), .flex-outer input[type="checkbox"] + label:not(.custom-header) { user-select: none; flex: 1 0 100%; font-size: 24px; } body.dark .flex-outer input[type="radio"] + label:not(.custom-header), body.dark .flex-outer input[type="checkbox"] + label:not(.custom-header) { color: #888; background: #311; } body.dark .flex-outer input[type="radio"]:checked + label:not(.custom-header), body.dark .flex-outer input[type="checkbox"]:checked + label:not(.custom-header) { color: #fff; background: #131; } body.light .flex-outer input[type="radio"] + label:not(.custom-header), body.light .flex-outer input[type="checkbox"] + label:not(.custom-header) { color: #555; background: #faa; } body.light .flex-outer input[type="radio"]:checked + label:not(.custom-header), body.light .flex-outer input[type="checkbox"]:checked + label:not(.custom-header) { color: #111; background: #afa; } .flex-outer { user-select: none; } .flex-outer label { flex: 0 1 40%; text-align: right; margin-right: 12pt; } .flex-outer label.solo { text-align: center; } .flex-outer label + * { flex: 1 1 20%; } .preview { flex: 1 1 10%; } .flex-outer-sub { padding: 0px; align-items: center; } .flex-outer-sub li { display: flex; flex-wrap: nowrap; align-items: center; margin: 5px auto; width: 90%; } body.light .flex-outer-sub { background: #c8c8c8; } body.light .flex-outer-sub .flex-outer-sub { background: #c0c0c0; } body.dark .flex-outer-sub { background: #181818; } body.dark .flex-outer-sub .flex-outer-sub { background: #202020; } body.light .has-tooltip { position: relative; display: inline-block; border-bottom: 1px dotted #777; } body.dark .has-tooltip { position: relative; display: inline-block; border-bottom: 1px dotted #777; } body.light a { color: #0000FF; text-decoration: none; } body.light a:visited { color: #0000ff; } body.light a:hover { color: #2222EE; } body.dark a { color: #8888FF; text-decoration: none; } body.dark a:visited { color: #8888DD; } body.dark a:hover { color: #AAAAEE; } a:hover { text-shadow: 0px 0px 5px #eeeeff; text-decoration: none; } .character-build { margin: 50px; width: 90%; text-align: center; } #grow-panel { width: 100%; } th { font-weight: normal; } ul { list-style: none; } .action-tab { flex-wrap: wrap; display: none; width: 100%; } .action-part-button { border: 1px; font-size: 30px; width: 50%; height: 70px; display: none; } @media (max-aspect-ratio: 1) { .action-part-button { width: 33%; } } body.light .action-part-button.active { background: #ccc; } body.dark .action-part-button.active { background: #555; } /* SRC: https://stackoverflow.com/questions/29738787/filling-water-animation/29740828 */ .meter { border-radius: 0%; width: 10%; height: 150px; overflow: hidden; backface-visibility: hidden; transform: translate3d(0, 0, 0); display: inline-block; } body.light .meter { background: #ccc !important; } body.dark .meter { background: #222 !important; } .meter .meterLabel { z-index: 1; writing-mode: vertical-lr; text-orientation: upright; background: none; transform: rotate(0deg); font-size: 12px; text-align: center; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } body.light .meterLabel { color: #000; } body.dark .meterLabel { color: #fff; mix-blend-mode: exclusion; } .meter { display: none } .meter .fill { position: absolute; top: 0; left: 0; background: none; pointer-events: none; } .meter #waveShape { animation-name: waveAction; animation-iteration-count: infinite; animation-timing-function: linear; animation-duration: 0.5s; width:300px; height: 150px; fill: #04ACFF; } .meter#arousalMeter #waveShape { fill: #FF0000; } .meter#orgasmMeter #waveShape { fill: #FFFFFF; } .meter#edgeMeter #waveShape { fill: #FF6600; } .meter#cumMeter #waveShape { fill: #EEEEEE; } .meter#femcumMeter #waveShape { fill: #999999; } .meter#milkMeter #waveShape { fill: #FFFFFF; } .meter#gasMeter #waveShape { fill: #33FF33; } .meter#pissMeter #waveShape { fill: #FFFF33; } .meter#scatMeter #waveShape { animation-duration: 2s; fill: #552222; } @keyframes fillAction { 0% { transform: translate(0, 150px); } 100% { transform: translate(0, -5px); } } @keyframes waveAction { 0% { transform: translate(-150px, 0); } 100% { transform: translate(0, 0); } } /* stolen directly from w3schools lol */ .shaking { animation: shake 1s; animation-iteration-count: infinite; } @keyframes shake { 0% { transform: translate(0px, 0px); } 10% { transform: translate(0px, -2px); } 25% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } } .growth-box { width: 100%; display: flex; flex-wrap: wrap; flex-direction: column; text-align: left; } #growth-part-select { display: block; height: 100px; width: 100%; font-size: 48px; text-align: center; } .growth-part { display: none; } .growth-part-active { background: #555 !important; } .growth-amount { display: block; font-size: 200%; } .save-version { display: none; } #custom-characters { font-size: 24px; } .intro-text { font-size: 18px; } .log::-webkit-scrollbar { width: 3px; height: 2px; } .log::-webkit-scrollbar-button { width: 0px; height: 0px; } .log::-webkit-scrollbar-thumb { background: #e1e1e1; border: 0px none #ffffff; border-radius: 50px; } .log::-webkit-scrollbar-thumb:hover { background: #ffffff; } .log::-webkit-scrollbar-thumb:active { background: #000000; } .log::-webkit-scrollbar-track { background: #666666; border: 0px none #ffffff; border-radius: 50px; } .log::-webkit-scrollbar-track:hover { background: #666666; } .log::-webkit-scrollbar-track:active { background: #333333; } .log::-webkit-scrollbar-corner { background: transparent; } .custom-label { text-align: center; font-size: 30px; margin: auto; padding-top: 6px; padding-bottom: 6px; user-select: none; } .log { --fade-animation: none; scrollbar-color: #e1e1e1 #888; scrollbar-width: thin; } .log > div { animation: var(--fade-animation); animation-fill-mode: forwards; } @keyframes log-dim { 0% { opacity: 1; } 70% { opacity: 1; } 100% { opacity: 0.6; } } @keyframes log-fade { 0% { opacity: 1; } 70% { opacity: 1; height: auto; } 99% { opacity: 0; height: auto; } 100% { opacity: 0; height: 0; } } body { --main-order: 1; --body-part-order-banner: 2; --body-part-order: 3; --nsfw-order-banner: 4; --nsfw-order: 5; --alt-vore-order-banner: 6; --alt-vore-order: 7; --gross-order-banner: 8; --gross-order: 9; --magic-order-banner: 10; --magic-order: 11; display: flex; justify-content: center; min-height: 100vh; margin: 0; } .sheet-group-main { order: var(--main-order); } .sheet-group-body-part { order: var(--body-part-order); } .group-banner.sheet-group-body-part { order: var(--body-part-order-banner); } .sheet-group-nsfw { order: var(--nsfw-order); } .group-banner.sheet-group-nsfw { order: var(--nsfw-order-banner); } .sheet-group-alt-vore { order: var(--alt-vore-order); } .group-banner.sheet-group-alt-vore { order: var(--alt-vore-order-banner); } .sheet-group-gross { order: var(--gross-order); } .group-banner.sheet-group-gross { order: var(--gross-order-banner); } .sheet-group-magic { order: var(--magic-order); } .group-banner.sheet-group-magic { order: var(--magic-order-banner); } .group-banner { min-width: 80vw; min-height: 7vh; font-size: 6vh; margin: auto; } body.dark div.group-banner { background-color: #333; } body.light div.group-banner { background-color: #ccc; } label.group-toggle { font-size: 30pt !important; }