/% -------------------------------------------------------------------------------------- % SPECIALLY-TAGGED PASSAGE FOR DEFINING CSS STYLES. % See http://www.motoslave.net/sugarcube/2/docs/special-names.html#special-tags % -------------------------------------------------------------------------------------%/ :: stylesheet [stylesheet] /********************************************************************* * COLOR CONSTANTS ********************************************************************/ /* blood red: #810000 dirt color (dark brown): #241007 */ /********************************************************************* * BODY *********************************************************************/ /* Embedded typewriter font. * Note: the base-64 version of this file is now embedded directly into main.tws, so that it is available immediately upon load. */ /* @font-face { font-family: 'MyTyped'; src: url('assets/SpecialElite.ttf') format('truetype'); font-weight: normal; font-style: normal; } */ html { height: 100%; position: relative; background-color: black; } body { font-family: MyTyped,Lucida Sans Typewriter,Lucida Console,monaco,Bitstream Vera Sans Mono,monospace; background-repeat: no-repeat; background-position: center center; /* Cover the whole screen. */ -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; overflow: hidden; background-color: black; } .preload-image { background-repeat: no-repeat; background-position: -9999px -9999px; } .background-image { position: absolute; left: 0; top: 0; display: block; width: 100%; height: 100%; background-repeat: no-repeat; background-position: center center; /* Cover the whole screen. */ -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; margin: 0; padding: 0; z-index: 20; pointer-events: none; } #sunset-overlay { position: absolute; left: 0; top: 0; display: none; width: 100%; height: 100%; background-color: #ff6700; mix-blend-mode: soft-light; margin: 0; padding: 0; z-index: 88!important; pointer-events: none!important; } #night-overlay { position: absolute; left: 0; top: 0; display: none; width: 100%; height: 100%; background-color: #000f83; mix-blend-mode: soft-light; margin: 0; padding: 0; z-index: 89!important; pointer-events: none!important; } #sunrise-overlay { position: absolute; left: 0; top: 0; display: none; width: 100%; height: 100%; background-color: #ffc3ff; mix-blend-mode: soft-light; margin: 0; padding: 0; z-index: 88!important; pointer-events: none!important; } #fade-out { position: absolute; left: 0; top: 0; display: none; width: 100%; height: 100%; background-color: black; background-repeat: no-repeat; background-position: center center; /* Cover the whole screen. */ -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; margin: 0; padding: 0; z-index: 1000!important; pointer-events: none!important; } #ground { background-image: [img[ground]]; z-index: 0!important; display: block; } #blood-overlay { background-image: url('assets/a-necessary-evil_4614659778_a93bef3820_o.jpg'); mix-blend-mode: multiply; opacity: 0; z-index: 10!important; } #cover-image { /* Use embedded image for the cover, since we need it to load quickly during Twine preloading phase. */ background-image: [img[cover]]; z-index: 10!important; display: none; } /* SugarCube UI Bar */ #ui-bar { display: none; z-index: 9000; } /********************************************************************* * PASSAGES *********************************************************************/ .passage { position: absolute; bottom: 0%; width: 96%; /* 100% minus padding amount */ min-height: 12em; left: 0; right: 0; margin: auto; font-size: 1.2rem; font-weight: bold; color: black; /*text-shadow: 100px 100px 12px black;*/ background-color:rgba(255, 255, 255, 0.8); padding: 2%; z-index: 900; } .passage a { color: black; border-bottom: 1px dashed black; } .passage a:hover, .passage a:active { text-decoration: none; color: #810000; border-bottom: 1px solid #810000; } .passage a:active { border-bottom: 1px solid #810000; } .passage a.obvious { color: black; background-color: rgba(129, 0, 0, 0.3); padding: 4px 4px 0; border-bottom: none!important; text-decoration: none!important; } .passage.nobg { background-color: transparent; } .passage.white-text { color: white; } .passage.auto-fade { /* jQuery fadeOut() does not work properly if transition is also set. */ -webkit-transition-property: none; -moz-transition-property: none; -o-transition-property: none; transition-property: none; -webkit-transition: none; -moz-transition: none; -o-transition: none; transition: none; } /********************************************************************* * WARNING *********************************************************************/ #passage-warning { height: 100%; width: 100%; top: 0; left: 0; margin: 0; padding: 0; background-color: black; color: white; -webkit-transition-property: none; -moz-transition-property: none; -o-transition-property: none; transition-property: none; -webkit-transition: none; -moz-transition: none; -o-transition: none; transition: none; } #passage-warning #warning-message { position: absolute; width: 40rem; height: auto; top: 35%; left: 0; right: 0; margin: auto; text-align: center; } #passage-warning a { color: white!important; border: 1px solid white; padding: 0.5em; } #passage-warning a:hover { background-color: rgba(255, 255, 255, 0.3); } /********************************************************************* * TITLE SCREEN / COVER PASSAGE *********************************************************************/ #passage-title { height: 100%; width: 100%; margin: 0; padding: 0; top: 0; left: 0; background: none; font-weight: normal; color: #241007; -webkit-transition-property: none; -moz-transition-property: none; -o-transition-property: none; transition-property: none; -webkit-transition: none; -moz-transition: none; -o-transition: none; transition: none; } #passage-title #title-container { position: absolute; top: 32%; left: 4%; padding: 1em; } #passage-title #title{ font-size: 10vw; margin-bottom: -0.6em; margin-top: -0.2em; } #passage-title #by-line { font-size: 3vw; margin-left: 0.5em; } #passage-title #buttons { margin-left: 4em; font-size: 2vw; } #passage-title a { text-decoration: none; border-bottom: 0; } #passage-title a:hover { } #passage-title #version { position: absolute; right: 1rem; bottom: 1rem; } /********************************************************************* * CREDITS *********************************************************************/ table.fullscreen { border-collapse: collapse; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: 0; padding: 0; height: 100%; width: 100%; } table.fullscreen td { text-align: center; vertical-align: middle; margin: 0; padding: 2em; } #passage-credits { position: absolute; top: 0; left: 0; width: 100%; height: 100%; margin: 0; padding: 0; overflow:auto; } #passage-credits .heading { font-size: 1em; margin: 0; display: inline; text-transform: uppercase; } #passage-credits .name { font-size: 1.2em; font-weight: bold; } #passage-credits .name.special { font-size: 1.5em; } #passage-credits a { font-size: 1em; } #passage-credits .small { font-size: 0.9em; } /********************************************************************* * MISC *********************************************************************/ .monospace { font-family: monospace; } .fadein { animation: fadein 1s ease; } .fadein-slow { animation: fadein 4s ease; } .fadeout { animation: fadeout 1s ease; } .fadeout-slow { animation: fadeout 4s ease; } @keyframes fadein { from { opacity: 0 } to { opacity: 1 } } @keyframes fadeout { from { opacity: 1 } to { opacity: 0 } } .invisible { display: none; } /* Override default transition duration for <> macro */ .macro-timed-insert { transition-duration: 1s; } #passage-night-wait { display: none; } .passage table { width: 100%; /* font-size: 1.2rem!important;*/ } #reveal-container { position: absolute; top: 50%; } a.disabled { pointer-events: none!important; cursor: default!important; } /********************************************************************* * PUPPET SHOW *********************************************************************/ #puppetbg-container { position: absolute; display: block; top: 0; width: 50%; height: 100%; left: 0; background-color: transparent; z-index: 100; } #puppetbg { position: absolute; display: block; bottom: 0; right: 0; width: 100%; height: 100%; z-index: 95!important; background-color: transparent; } #puppetsheet { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: white; background-repeat: no-repeat; background-position: center center; /* Cover the whole screen. */ -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; z-index: 94!important; } #puppetbg .puppet { bottom: 0; display: block; position: absolute; z-index: 100!important; } .puppet#puppet-boy { right: 50%; height: 60%; width: auto; } .puppet#puppet-boy-rock { right: 50%; height: 60%; width: auto; } .puppet#puppet-father { right: 75%; height: 75%; width: auto; } .puppet#puppet-mother { right: 20%; height: 75%; width: auto; } .puppet#puppet-house { right: -10%; height: 50%; width: auto; z-index: 99!important; } .puppet#puppet-hospital { right: -75%; height: 70%; width: auto; } .puppet#puppet-wire { bottom: 0!important; right: -35%; height: 120%!important; width: auto; } .puppet#puppet-bulldozer { right: -70%; height: 80%; width: auto; } .puppet#puppet-soldier { right: -94%; height: 70%; width: auto; } .puppet#puppet-soldier-shooting { right: -94%; height: 70%; width: auto; } .puppet#puppet-question { right: 65%; height: 30%; width: auto; top: 10%!important; } /********************************************************************* * THE CHOICE *********************************************************************/ #the-choice { position: absolute; width: 100%; height: auto; top: 40%; left: 0; text-align: center; background-color: transparent; z-index: 9000; font-size: 6vh; font-weight: bold; color: black; /*text-shadow: 0 -200px 10px black;*/ } #the-choice .choice { cursor: default; } #the-choice .choice.clickable { cursor: pointer; } #the-choice .choice.clickable:hover { color: #810000; } #passage-the-choice { display: none; } #gun { position: absolute; width: 100%; height: auto; bottom: -90%; left: 0; background-color: transparent; z-index: 500; } #gun-shadow { position: absolute; width: 100%; height: auto; bottom: 4%; left: 0; right: 0; margin: auto; background-color: transparent; z-index: 100; opacity: 0.7; width: 50%; } .passage.end-story { min-height: auto; width: 100%; bottom: 40%; left: 0; margin: 0; padding: 0; text-align: center; background-color: transparent; } .passage.end-story .typed { background-color:rgba(255, 255, 255, 0.8); padding: 1em; } .passage.end-story.put-down { bottom: 40%; } #passage-story-end { z-index: 9000!important; -webkit-transition-property: none; -moz-transition-property: none; -o-transition-property: none; transition-property: none; -webkit-transition: none; -moz-transition: none; -o-transition: none; transition: none; } #passage-story-end .typed { background-color: transparent; } /** #passage-the-choice { height: 100%; width: 100%; top: 0; left: 0; margin: 0; padding: 0; background-image: url('assets/gun.png'); } #the-choice { } **/ /********************************************************************* * <> MACRO SET CSS *********************************************************************/ @-webkit-keyframes shakeanim { 0% { -webkit-transform: translate(2px, 1px) rotate(0deg); } 10% { -webkit-transform: translate(-1px, -2px) rotate(-1deg); } 20% { -webkit-transform: translate(-3px, 0px) rotate(1deg); } 30% { -webkit-transform: translate(0px, 2px) rotate(0deg); } 40% { -webkit-transform: translate(1px, -1px) rotate(1deg); } 50% { -webkit-transform: translate(-1px, 2px) rotate(-1deg); } 60% { -webkit-transform: translate(-3px, 1px) rotate(0deg); } 70% { -webkit-transform: translate(2px, 1px) rotate(-1deg); } 80% { -webkit-transform: translate(-1px, -1px) rotate(1deg); } 90% { -webkit-transform: translate(2px, 2px) rotate(0deg); } 100% { -webkit-transform: translate(1px, -2px) rotate(-1deg); } } @-o-keyframes shakeanim { 0% { -o-transform: translate(2px, 1px) rotate(0deg); } 10% { -o-transform: translate(-1px, -2px) rotate(-1deg); } 20% { -o-transform: translate(-3px, 0px) rotate(1deg); } 30% { -o-transform: translate(0px, 2px) rotate(0deg); } 40% { -o-transform: translate(1px, -1px) rotate(1deg); } 50% { -o-transform: translate(-1px, 2px) rotate(-1deg); } 60% { -o-transform: translate(-3px, 1px) rotate(0deg); } 70% { -o-transform: translate(2px, 1px) rotate(-1deg); } 80% { -o-transform: translate(-1px, -1px) rotate(1deg); } 90% { -o-transform: translate(2px, 2px) rotate(0deg); } 100% { -o-transform: translate(1px, -2px) rotate(-1deg); } } @keyframes shakeanim { 0% { transform: translate(2px, 1px) rotate(0deg); } 10% { transform: translate(-1px, -2px) rotate(-1deg); } 20% { transform: translate(-3px, 0px) rotate(1deg); } 30% { transform: translate(0px, 2px) rotate(0deg); } 40% { transform: translate(1px, -1px) rotate(1deg); } 50% { transform: translate(-1px, 2px) rotate(-1deg); } 60% { transform: translate(-3px, 1px) rotate(0deg); } 70% { transform: translate(2px, 1px) rotate(-1deg); } 80% { transform: translate(-1px, -1px) rotate(1deg); } 90% { transform: translate(2px, 2px) rotate(0deg); } 100% { transform: translate(1px, -2px) rotate(-1deg); } } .shake-block, .shake { -webkit-animation-duration: 0.8s; -o-animation-duration: 0.8s; animation-duration: 0.8s; -webkit-animation-iteration-count: infinite; -o-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-name: shakeanim; -o-animation-name: shakeanim; animation-name: shakeanim; -webkit-animation-timing-function: linear; -o-animation-timing-function: linear; animation-timing-function: linear; -webkit-transform-origin: 50% 50%; -ms-transform-origin: 50% 50%; -o-transform-origin: 50% 50%; transform-origin: 50% 50%; } .shake-block { display: block; } .shake { display: inline-block; } /********************************************************************* * TYPEDJS STYLES *********************************************************************/ /* Typed.js text (and cursor) styling. */ .typed, .typed-cursor { } /* Typed.js animated cursor styling. */ .typed-cursor { opacity: 1; -webkit-animation: blink 0.7s infinite; -moz-animation: blink 0.7s infinite; animation: blink 0.7s infinite; } @keyframes blink { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } } @-webkit-keyframes blink { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } } @-moz-keyframes blink { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } } /********************************************************************* * WAITING ANIMATION (ELLIPSIS) *********************************************************************/ .waiting { font-size: 1.4em; } .waiting:after { overflow: hidden; display: inline-block; vertical-align: bottom; -webkit-animation: ellipsis steps(4,end) 2000ms infinite; animation: ellipsis steps(4,end) 2000ms infinite; content: "\2026"; /* ascii code for the ellipsis character */ width: 0px; } @keyframes ellipsis { to { width: 1.5em; } } @-webkit-keyframes ellipsis { to { width: 1.5em; } } /********************************************************************* * TIC-TAC-TOE AND SOLO ETCHING (CANVAS DRAWING) *********************************************************************/ iframe#tictactoe { position: absolute; height: 20em; width: 100%; margin: 0; padding: 0; bottom: 100%; left: 0; overflow: hidden; background-color:rgba(255, 255, 255, 0.8); } #passage-play-tic-tac-toe { min-height: 0; } #passage-solo-etching { width: 100%; height: 100%; left: 0; top: 0; margin: 0; padding: 0; background-color: transparent; } #passage-solo-etching canvas { cursor: pointer; } #passage-solo-etching #meh { position: absolute; left: 5em; bottom: 5em; background-color: rgba(255, 255, 255, 0.8); padding: 0.5em 1em; } /********************************************************************* * ADJUSTMENTS FOR SMALL SCREENS (MEDIA) *********************************************************************/ /* Big Screens */ @media (min-width: 1200px) { .passage { font-size: 1.4rem; bottom: 10%; width: 60%; } } /* Small Screens */ @media (max-width: 1000px) { #passage-title #title-container { background-color:rgba(255, 255, 255, 0.8); top: 40%; } #passage-title #by-line { font-size: 4vw; margin-left: 0em; } #passage-title #buttons { margin-left: 1em; font-size: 4vw; } .passage.end-story .typed { background-color:rgba(255, 255, 255, 0.8); padding: 1em; display: inline-block!important; } } /* Tall Aspect */ @media (max-aspect-ratio: 2/1) { #puppetbg { height: 80%; } .puppet { bottom: 10%!important; } } /* Taller Aspect */ @media (max-aspect-ratio: 3/2) { #puppetbg { height: 60%!important; } .puppet { bottom: 20%!important; } } /* Even Taller Aspect */ @media (max-aspect-ratio: 1/1) { #puppetbg { height: 40%!important; } .puppet { bottom: 30%!important; } } /* Very Wide Aspect */ @media (min-aspect-ratio: 9/4) { #puppetbg { width: 60%!important; }