

/* global actors */
.dialogue-message.actor-sourceless {
    text-align: center;
    text-transform: uppercase;
    --background: var(--bright-color);
    --color: var(--dark-color);
}

.actor-sourceless .dialogue-text {
    align-items: center;
    text-transform: uppercase;
}

.readout-log .sourceless [definition], #dialogue-box .sourceless [definition]:not(.reply), .sourceless.message [definition] {
    border-bottom: 2px dashed;
    margin-bottom: 2px;
}

.actor-moth .dialogue-portrait::after {
    background: url(https://corru.observer/img/sprites/moth/mothman.gif), linear-gradient(to bottom, rgba(255, 255, 255, 0.71), var(--friend-color));
    background-size: 150%, auto;
    background-position: center top;
    background-repeat: no-repeat;
}

.dialogue-message.actor-self {
    --background: var(--bright-color);
    --color: var(--dark-color);
    font-family: barcodetext;
    align-items: center;
    font-size: 2.5rem;
}

.dialogue-message.actor-self .dialogue-text {
    padding: 0.33em;
    text-align: center;
    text-transform: uppercase;
}

.dialogue-message.actor-sys {
    --color: var(--dark-color);
    --background: linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 40%, rgba(255,255,255,1) 60%, rgba(255,255,255,0) 100%), url(https://corru.observer/img/textures/warp.png), url(https://corru.observer/img/textures/static.gif);
    border-color: var(--bright-color);
    font-family: barcodetext, monospace;
    font-size: 2.3rem;
    text-shadow: 0px 0px var(--neutral-color); /* adjustment by octo */
}

.actor-sys .dialogue-portrait::after {
    background-position: center;
    background: url(https://corru.observer/img/mui/mindspikelogoactive.gif), url(https://corru.observer/img/textures/static.gif);
    background-size: 100%;
    background-position: center;
    animation: SPIN 30s linear infinite;
}

.actor-sys .dialogue-text {
    text-align: center;
    align-items: center;
    line-height: 1.25em;
    background-size: auto 100%;
}

.actor-movefriend, .actor-timestopper, .timestopper {
    text-transform: uppercase;
}

.dialogue-message.obesk {
    --background: url(https://corru.observer/img/textures/corruripple.gif);
    --color: var(--obesk-color);
    text-shadow: 1px 1px var(--bright-color);
    font-size: 1.25em;
    letter-spacing: 0.25em;
}

.dialogue-message.obesk [definition] {
    border-bottom: 1px dashed var(--bright-color) !important;    
}

.dialogue-message.uppercase {
    text-transform: uppercase;
}

.obesk .dialogue-portrait {
    background-image: url(https://corru.observer/img/textures/corruripple.gif);
    background-size: cover;
    border-radius: 100%;
}

.dialogue-message.qou, .dialogue-message.larval {
    --background: var(--dark-color);
    text-shadow: unset;
    letter-spacing: 0;
    font-size: 1em;
    line-height: 1.5em;
    text-transform: lowercase;
}

.dialogue-message.larval {
    font-size: 1rem;
}

.larval .dialogue-portrait, .larval.message img {
    background-image: url(https://corru.observer/img/textures/ccontours.gif);
}

.qou .dialogue-portrait {
    background-image: url(https://corru.observer/img/textures/corrurippletran.gif);
    background-color: var(--bright-color);
}

.blocker .dialogue-portait {
    background-image: url(https://corru.observer/img/textures/blocker.gif);
}

.dialogue-message.qou.akizet {
    letter-spacing: 0.25em;
}

.funfriend .dialogue-portrait::after {
    background-position: center;
    background-size: 150%;
}

.funfriend .dialogue-text {
    background-image: url(https://corru.observer/img/textures/static.gif);
    background-position: center;
    background-size: 100%;
    text-shadow: 1px 1px var(--dark-color), 2px 2px 2px var(--friend-color);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

#dialogue-box .funfriend [definition] {
    border-bottom: 2px dashed var(--dark-color) !important;
}

.funfriend.message, .message.uppercase {
    text-transform: uppercase;
}

.actor-unknown, .readout-log .message.velzie {
    --background: var(--bright-color);
    --color: var(--dark-color);
    font-family: beech;
    text-transform: lowercase;
    letter-spacing: 0.25em;
    font-size: 1.5em;
    text-align: center;
}

.actor-unknown .dialogue-portrait::after {
    background-color: var(--bright-color);
    background-size: 25%;
    background-position: center;
    background-repeat: no-repeat;
}

.readout-log .message.velzie {
    background: white;
    color: black;
    text-align: center;
}

#readout .message.velzie, .readout-log .message.velzie img, .readout-log .message.velzie h2 {
    display: none;
}

.dialogue-message.incoherent .dialogue-text, 
.readout-log .message.incoherent {
    text-shadow: 1px 1px var(--dark-color), 2px 2px var(--dark-color), 2px 2px var(--dark-color), 2px 2px var(--dark-color);
    letter-spacing: 0.75em;
    background: url(https://corru.observer/img/textures/fadein.gif), url(https://corru.observer/img/textures/corruripplegrayscale.gif);
    background-size: 150%, auto;
}

.readout-log .message.incoherent.cass,
.actor-cass.incoherent .dialogue-text {
    background: linear-gradient(180deg,rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 70%, rgb(0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%), url(https://corru.observer/img/textures/fadein.gif), url(https://corru.observer/img/textures/corruripplegrayscale.gif);
    letter-spacing: 0.25em;
    font-family: serif;
}

.dialogue-message.incoherent-mild .dialogue-text,
.readout-log .message.incoherent-mild {
    letter-spacing: 0.25em;
}

.dialogue-message.actor-echo, .message.actor-echo {
    --background: var(--bright-color);
    --color: var(--dark-color);
    text-shadow: 1px 1px var(--friend-color);
    border-color: var(--friend-color);
    font-size: 1em;
    letter-spacing: 0.1em;
}

.dialogue-message.bstrd .dialogue-portrait::after {
    background-size: 125%;
    background-position: center;
}

.dialogue-message.bstrd, .message.bstrd {
    --bright-color: var(--bastard-color);
}

.dialogue-message.actor-bsteli {
    --color: var(--bastard-color);
    --background: linear-gradient(0deg, rgba(0,0,0,0.79) 0%, rgb(0, 0, 0) 25%, rgb(0, 0, 0) 50%, rgb(0, 0, 0) 75%, rgba(0,0,0,0.9) 100%), url(https://corru.observer/img/textures/stun.gif);
}

.dialogue-message.bstrd .dialogue-text, .dialogue-message.actor-bsteli.expression__bstrd .dialogue-text {
    font-family: bastard;
    font-size: 3em;
    margin: 0.5rem;
    padding: 0.3em;
    background-image: linear-gradient(0deg, rgba(0,0,0,0.79) 0%, rgb(0, 0, 0) 25%, rgb(0, 0, 0) 50%, rgb(0, 0, 0) 75%, rgba(0,0,0,0.9) 100%), url(https://corru.observer/img/textures/stun.gif);
}

.dialogue-message.bstrd .dialogue-portrait::before {
    width: 100%;
    right: 0;
    border-radius: 0;
    transform: translateX(100%);
}

.dialogue-message.bstrd, .message.bstrd {
    color: var(--bright-color);
}  
    
.message.bstrd img {
    border-radius: 100%;
}

.message.bstrd p {
    font-family: bastard;
    font-size: 3em;
    line-height: 1em;
}

.bstrd [definition] {
    border-bottom: 2px dashed;
    padding-bottom: 5px;
}

.dialogue-message.actor-okidoia,
.dialogue-message.mutter,
.message[actor="okidoia"] {
    text-align: center;
    z-index: -1;
    position: relative;
}

.dialogue-message.actor-okidoia {
    transform: unset;
    transition: opacity 800ms ease-in-out;
    opacity: 0;
}

.dialogue-message.actor-okidoia.sent {
    opacity: 1;
}

.actor-okidoia .dialogue-text, 
.dialogue-message.mutter .dialogue-text,
.message[actor="okidoia"] {
    border: unset;
    background: transparent;
    color: var(--dark-color);
    letter-spacing: 0.5em;
    text-shadow: 1px 1px var(--friend-color), -1px 1px var(--neutral-color), 1px -1px var(--obesk-color), -1px -1px var(--obesk-color);
    position: relative;
    z-index: unset;
    padding: 1em 0.6em;
    font-size: 1.25em;
    text-transform: unset;
}

.actor-okidoia .dialogue-text::after, 
.dialogue-message.mutter .dialogue-text::after,
.message.mutter::after,
.message[actor="okidoia"]::after {
    content: "";
    position: absolute;
    width: 120%;
    height: 150%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: url(https://corru.observer/img/mui/text/okiblock.gif);
    z-index: -2;
    background-size: 100% 100%;
    pointer-events: none;
}

.actor-okidoia span[definition] {
    border-bottom: 1px dashed black !important;
}

.actor-okidoia.expression__dark span[definition] {
    border-bottom: 1px dashed white !important;
}

.message[actor="okidoia"] h2 {
    display: none;  
}

.message.mutter, .message[actor="okidoia"] {
    overflow: visible !important;
} 

.message[actor="okidoia"] {
    font-size: 1.5em;
}

.dialogue-message.mutter {
    color: var(--bright-color);
    letter-spacing: 5px;
    text-transform: initial;
}

.dialogue-message.mutter .dialogue-text {
    text-shadow: unset;
    background: var(--dark-color);
    color: var(--bright-color);
    font-size: 1em;
    letter-spacing: unset;
}

.message.mutter {
    background: black;
    transform: unset !important;
    position: relative;
    border: unset !important;
    color: var(--bright-color) !important;
}

.dialogue-message.mutter .dialogue-text::after,
.message.mutter::after {
    background-image: url(https://corru.observer/img/mui/text/okiblockdark.gif);
    z-index: -1;
}

.message.uppercase {
    text-transform: uppercase !important;
}










@font-face {
	font-family: "Arrh Mono";
	font-weight: 400;
	src: url(https://ozo.encodeco.de/corruskivi-assets/fonts/arrhmono.woff);
}

@font-face {
	font-family: "IBM BIOS";
	font-weight: 400;
	src: url(https://ozo.encodeco.de/corruskivi-assets/fonts/IBM_BIOS.woff);
}

@font-face {
	font-family: "VCR OSD";
	font-weight: 400;
	src: url(https://ozo.encodeco.de/corruskivi-assets/fonts/VCR_OSD_MONO.woff);
}





.dialogue-message.vhofffiend, .message.vhofffiend {
    letter-spacing: 0;
    text-shadow: 0px 1px #0000006b;
    z-index: 1;
    color: #6f6;
    /* background: black; */
    text-align: left;
    line-height: 1.5em;
    border-top: 5px ridge #6f6;
    border-bottom: 5px ridge #6f6;
}

.message.vhofferr {
    letter-spacing: 0;
    /* text-shadow: 0px 1px #0000006b; */
    z-index: 1;
    color: black;
    background: #6f6;
    text-align: left;
    line-height: 1.5em;
    /* border-top: 5px ridge #6f6;
    border-bottom: 5px ridge #6f6; */
}

.message.vhofferr > img {
    animation: HOVER 2.00s ease-in-out alternate-reverse infinite;
    border-radius: 100%;
} 

.message.vhofffiend > p {
    color: white;
}

.dialogue-message.vhofffiend > .dialogue-text {
    border-color: white;
}

.message.vhofffiend::after {
    content: "";
    position: absolute;
    pointer-events: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    opacity: 0.4;
    background: url(https://corru.observer/img/textures/hazeflow.gif);
    background-size: 100% auto, auto;
    background-position: center;
    background-attachment: fixed;
}

.dialogue-message.vhofffiend::after{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    opacity: 0.4;
    background: url(https://corru.observer/img/textures/hazeflow.gif);
    background-size: 100% auto, auto;
    background-position: center calc(var(--dialogue-scroll) * 0.7 - var(--distance-from-top));
    /* background-attachment: fixed; */
}

.dialogue-message.vhofffiend > .dialogue-portrait::after,
.message.vhofffiend > img,
.message.vhofferr > img {
    animation: HOVER 2.00s ease-in-out alternate-reverse infinite;
    border-radius: 100%;
} 

.dialogue-message.vhofffiend > .dialogue-portrait::before {
    right: -1.5em;
} 

.dialogue-message.vhofffiend + .dialogue-message.vhofffiend {
    border-top: 0px ridge #6f6;
    padding-top: 5px;
    margin-top: 0;
    transition: border-top 400ms, padding-top 400ms, transform 400ms;
}

.dialogue-message.vhofffiend:has( + .dialogue-message.vhofffiend) {
    border-bottom: 0px ridge #6f6;
    padding-bottom: 5px;
    margin-bottom: 0;
    transition: border-bottom 400ms, padding-bottom 400ms, transform 400ms;
}



.dialogue-message.vhofffiend.expression__mind > .dialogue-text {
    border-color: white;
    text-align: left;
    font-family: "Arrh Mono";
    font-size: 1.5em;
}

.dialogue-message.vhofffiend.expression__soul > .dialogue-text {
    border-color: white;
    text-align: right;
}

.message.vhofffiend > p.vhoff-mind {
    color: white;
    text-align: left;
    font-family: "Arrh Mono";
    font-size: 1.5em;
}

.message.vhofffiend > p.vhoff-soul {
    color: white;
    text-align: right;
}

.message.ochemfiend > p {
    color: white;
    font-family: "IBM BIOS";
    font-size: 0.75em;
}

.dialogue-message.ochemfiend > .dialogue-text {
    border-color: white;
    color: white;
    font-family: "IBM BIOS";
    font-size: 0.75em;
}

.dialogue-message.humorfiend > .dialogue-text {
    border-color: white;
    color: white;
    font-family: "VCR OSD";
    font-size: 1em;
}

.message.humorfiend > p {
    color: white;
    font-family: "VCR OSD";
    font-size: 1em;
}





.dialogue-message.ochemfiend, .message.ochemfiend {
    letter-spacing: 0;
    text-shadow: 0px 1px #0000006b;
    z-index: 1;
    color: #f06;
    /* background: black; */
    text-align: left;
    line-height: 1.5em;    
    border-top: 5px ridge #f06;
    border-bottom: 5px ridge #f06;
}

.message.ochemerr {
    letter-spacing: 0;
    /* text-shadow: 0px 1px #0000006b; */
    z-index: 1;
    color: black;
    background: #f06;
    text-align: left;
    line-height: 1.5em;
    /* border-top: 5px ridge #6f6;
    border-bottom: 5px ridge #6f6; */
}

.message.ochemfiend > p {
    color: white;
}

.dialogue-message.ochemfiend {
    margin-top: 0;
    margin-bottom: 0;
}

.message.ochemfiend::after {
    content: "";
    position: absolute;
    pointer-events: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    opacity: 0.4;
    background: url(https://corru.observer/img/textures/corruripplebastard.gif);
    background-size: 100% auto, auto;
    background-position: center;
    background-attachment: fixed;
}

.dialogue-message.ochemfiend::after{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    opacity: 0.4;
    background: url(https://corru.observer/img/textures/corruripplebastard.gif);
    background-size: 100% auto, auto;
    background-position: center calc(var(--dialogue-scroll) * 0.7 - var(--distance-from-top));
    /* background-attachment: fixed; */
}

.dialogue-message.ochemfiend > .dialogue-text {
    border-color: white;
}

.dialogue-message.ochemfiend > .dialogue-portrait::after,
.message.ochemfiend > img,
.message.ochemerr > img {
    animation: SPIN 6.00s linear infinite;
    border-radius: 100%;
}  

.dialogue-message.ochemfiend + .dialogue-message.ochemfiend {
    border-top: 0px ridge #f06;
    padding-top: 5px;
    margin-top: 0;
    transition: border-top 400ms, padding-top 400ms, transform 400ms;
}

.dialogue-message.ochemfiend:has( + .dialogue-message.ochemfiend) {
    border-bottom: 0px ridge #f06;
    padding-bottom: 5px;
    margin-bottom: 0;
    transition: border-bottom 400ms, padding-bottom 400ms, transform 400ms;
}

.dialogue-message.humorfiend, .message.humorfiend {
    letter-spacing: 0;
    text-shadow: 0px 1px #0000006b;
    z-index: 1;
    color: #f0f;
    /* background: black; */
    text-align: left;
    line-height: 1.5em;    
    border-top: 5px ridge #90f;
    border-bottom: 5px ridge #90f;
}

.message.humorerr {
    letter-spacing: 0;
    /* text-shadow: 0px 1px #0000006b; */
    z-index: 1;
    color: black;
    background: #f0f;
    text-align: left;
    line-height: 1.5em;    
    /* border-top: 5px ridge #90f;
    border-bottom: 5px ridge #90f; */
}

.message.humorfiend > p {
    color: white;
}


.dialogue-message.humorfiend > .dialogue-text {
    border-color: white;
}

.dialogue-message.humorfiend + .dialogue-message.humorfiend {
    border-top: 0px ridge #90f;
    padding-top: 5px;
    margin-top: 0;
    transition: border-top 400ms, padding-top 400ms, transform 400ms;
}

.dialogue-message.humorfiend:has( + .dialogue-message.humorfiend) {
    border-bottom: 0px ridge #90f;
    padding-bottom: 5px;
    margin-bottom: 0;
    transition: border-bottom 400ms, padding-bottom 400ms, transform 400ms;
}

 .message.humorfiend::after {
    content: "";
    position: absolute;
    pointer-events: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transform-origin: center;
    z-index: -1;
    opacity: 0.2;
    background: url(https://corru.observer/img/textures/papermelt.gif);
    background-size: 100% auto, auto;
    background-position: center;
    background-attachment: fixed;
}


.dialogue-message.humorfiend::after{
    content: "";
    position: absolute;
    pointer-events: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transform-origin: center;
    z-index: -1;
    opacity: 0.2;
    background: url(https://corru.observer/img/textures/papermelt.gif);
    background-size: 100% auto, auto;
    background-position: center calc(var(--dialogue-scroll) * 0.7 - var(--distance-from-top));
    /* background-attachment: fixed; */
}

.dialogue-message.humorfiend > .dialogue-portrait::after,
.message.humorfiend > img,
.message.humorerr > img {    
    animation: SPIN-Y 6.00s ease-in-out infinite;
    border-radius: 100%;
}